var fbNowShowError; // Выводить ли при проверки поля ошибки

function fbIsFormValid() {
       
        var formFeedBack = document.getElementById("FeedBackForm");
        var result = true;
       
        for (var i=0; i < formFeedBack.elements.length; i++) {
                if (typeof formFeedBack.elements[i].valid == "boolean") {
                        result = result && formFeedBack.elements[i].valid;
                }
        }
       
        return result;
       
}

function fbValidateField(txtField) {
       
        var fbNameError = document.getElementById("fbNameError");
        var fbEMailError = document.getElementById("fbEMailError");
        var fbTextError = document.getElementById("fbTextError");

        var fbGorodError = document.getElementById("fbGorodError");
        var fbPhoneError = document.getElementById("fbPhoneError");
       
        // Проверка имени
        if (txtField.name == "fbName") {
                if (txtField.value.length < 3) {
                        if (fbNowShowError) {
                                fbNameError.style.display = "block";
                                fbNameError.innerHTML = "Имя должно содержать не менее 3 символов";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbNameError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
        
        // Проверка Города
        if (txtField.name == "fbGorod") {
                if (txtField.value.length < 1) {
                        if (fbNowShowError) {
                                fbGorodError.style.display = "block";
                                fbGorodError.innerHTML = "Вы не ввели город";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbGorodError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }

        // Проверка Телефона
        if (txtField.name == "fbPhone") {
                if (txtField.value.length < 1) {
                        if (fbNowShowError) {
                                fbPhoneError.style.display = "block";
                                fbPhoneError.innerHTML = "Вы не ввели телефон";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbPhoneError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }


        // Проверка email
        if (txtField.name == "fbEMail") {
                var re = /^[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?\.[A-Za-z0-9]{2,6}$/;
                if (!re.test(txtField.value)) {
                        if (fbNowShowError) {
                                fbEMailError.style.display = "block";
                                fbEMailError.innerHTML = "Некорректный адрес электронной почты";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbEMailError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
       
        // Проверка текста сообщения
        if (txtField.name == "fbText") {
                if (txtField.value.length < 5) {
                        if (fbNowShowError) {
                                fbTextError.style.display = "block";
                                fbTextError.innerHTML = "Текст сообщения должен содержать не менее 10 символов";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbTextError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
       
        var fbSubmit = document.getElementById("fbSubmit");
       
        if (fbIsFormValid()) {
                fbSubmit.disabled = false;
                fbSubmit.style.cursor = 'pointer';
        } else {
                fbSubmit.disabled = true;
                fbSubmit.style.cursor = 'default';
        }
       
}

function fbValidateFieldOnChange(oEvent) {
       
        fbNowShowError = true;
       
        oEvent = oEvent || window.event;
        var txtField = oEvent.target || oEvent.srcElement;
       
        fbValidateField(txtField);
}

function fbValidateFieldOnKeyUp(oEvent) {
       
        fbNowShowError = false;
       
        oEvent = oEvent || window.event;
        var txtField = oEvent.target || oEvent.srcElement;
       
        fbValidateField(txtField);
}

window.onload = function () {

        var fbName = document.getElementById("fbName");
        var fbGorod = document.getElementById("fbGorod");
	var fbPhone = document.getElementById("fbPhone");
        var fbEMail = document.getElementById("fbEMail");
        var fbText = document.getElementById("fbText");
        var fbVeriCode = document.getElementById("vericode");
        var fbSubmit = document.getElementById("fbSubmit");
       
        fbSubmit.disabled = true;
        fbSubmit.style.cursor = 'default';
       
        fbName.valid = false;
        fbGorod.valid = false;
	fbPhone.valid = false;
        fbEMail.valid = false;
        fbText.valid = false;
       
        fbName.onchange = fbValidateFieldOnChange;
        fbGorod.onchange = fbValidateFieldOnChange;
        fbPhone.onchange = fbValidateFieldOnChange;
        fbEMail.onchange = fbValidateFieldOnChange;
        fbText.onchange = fbValidateFieldOnChange;
       
        fbName.onkeyup = fbValidateFieldOnKeyUp;
	fbGorod.onkeyup = fbValidateFieldOnKeyUp;
	fbPhone.onkeyup = fbValidateFieldOnKeyUp;
        fbEMail.onkeyup = fbValidateFieldOnKeyUp;
        fbText.onkeyup = fbValidateFieldOnKeyUp;
       
        fbNowShowError = true;
        if (fbName.value != '') fbValidateField(fbName);
      	if (fbGorod.value != '') fbValidateField(fbGorod);
	if (fbPhone.value != '') fbValidateField(fbPhone);
        if (fbEMail.value != '') fbValidateField(fbEMail);
        if (fbText.value != '') fbValidateField(fbText);
        fbNowShowError = false;
       
        fbVeriCode.value = '';
       
        fbValidateField;
       
};
