var W3CDOM = (document.getElementsByTagName && document.createElement);

function validate() {
    validForm = true;
    firstError = null;
    errorstring = '';
    var x = document.forms['feedback'].elements;

    if (x['fm_mail'].value.indexOf('@') == -1)
        writeError(x['fm_mail'],'Указан неверный адрес!');
    if (!x['fm_name'].value)
        writeError(x['fm_name'],'Поле обязательно для заполнения!');
    if (!x['fm_message'].value)
        writeError(x['fm_message'],'Поле обязательно для заполнения!');     
    if (x['fm_code'].value.indexOf('4368') == -1)
        writeError(x['fm_code'],'Указан неверный код!'); 
    if (!W3CDOM)
        alert(errorstring);
    if (firstError)
        firstError.focus();
	if (validForm) {
        return true;
    }
    else return false;
}

function writeError(obj,message) {
    validForm = false;
    if (obj.hasError) return;
    if (W3CDOM) {
        obj.className = 'fld-error';
        obj.onchange = removeError;
        var sp = document.createElement('span');
        sp.className = 'msg-error';
        sp.appendChild(document.createTextNode(message));
        obj.parentNode.appendChild(sp);
        obj.hasError = sp;
    }
    else {
        errorstring += obj.name + ': ' + message + '\n';
        obj.hasError = true;
    }
    if (!firstError)
        firstError = obj;
}

function removeError()
{
    this.className = this.className.substring(0,this.className.lastIndexOf(' '));
    this.parentNode.removeChild(this.hasError);
    this.hasError = null;
    this.onchange = null;
}
