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 fbBirthError = document.getElementById("fbBirthError");
		var fbJobError = document.getElementById("fbJobError");
		var fbTimeError = document.getElementById("fbTimeError");
		var fbCompanyError = document.getElementById("fbCompanyError");
		var fbNumberError = document.getElementById("fbNumberError");
		var fbEMailError = document.getElementById("fbEMailError");
        var fbPhoneError = document.getElementById("fbPhoneError");
		var fbTextError = document.getElementById("fbTextError");
       
        // Проверка имени
        if (txtField.name == "fbName") {
                if (txtField.value.length < 5) {
                        if (fbNowShowError) {
                                fbNameError.style.display = "block";
                                fbNameError.innerHTML = "Incorrect Name <5";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbNameError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
		
		    // Проверка поля Birth
        if (txtField.name == "fbBirth") {
                if (txtField.value.length < 5) {
                        if (fbNowShowError) {
                                fbBirthError.style.display = "block";
                                fbBirthError.innerHTML = "Incorrect Birth <5";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbBirthError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
		
		  // Проверка поля Job
        if (txtField.name == "fbJob") {
                if (txtField.value.length < 3) {
                        if (fbNowShowError) {
                                fbJobError.style.display = "block";
                                fbJobError.innerHTML = " Incorrect job <3";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbJobError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
       
	 		  // Проверка поля Time
        if (txtField.name == "fbTime") {
                if (txtField.value.length < 1) {
                        if (fbNowShowError) {
                                fbTimeError.style.display = "block";
                                fbTimeError.innerHTML = "Incorrect time <1";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbTimeError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }  
		
			  // Проверка поля Company
        if (txtField.name == "fbCompany") {
                if (txtField.value.length < 3) {
                        if (fbNowShowError) {
                                fbCompanyError.style.display = "block";
                                fbCompanyError.innerHTML = "Incorrect company <3";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbCompanyError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }  
		
		
				  // Проверка поля Number
        if (txtField.name == "fbNumber") {
                if (txtField.value.length < 1) {
                        if (fbNowShowError) {
                                fbNumberError.style.display = "block";
                                fbNumberError.innerHTML = "Incorrect number <1";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbNumberError.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 = "Incorrect email";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbEMailError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
       
	   
	       // Проверка телефона
        if (txtField.name == "fbPhone") {
                if (txtField.value.length < 5) {
                        if (fbNowShowError) {
                                fbPhoneError.style.display = "block";
                                fbPhoneError.innerHTML = "Incorrect phone number <5";
                        }
                        txtField.valid = false;
                } else {
                        if (fbNowShowError) {
                                fbPhoneError.style.display = "none";
                        }
                        txtField.valid = true;
                }
        }
		
        // Проверка текста сообщения
        if (txtField.name == "fbText") {
                if (txtField.value.length < 15) {
                        if (fbNowShowError) {
                                fbTextError.style.display = "block";
                                fbTextError.innerHTML = "Text message < 15 symbols";
                        }
                        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 fbBirth = document.getElementById("fbBirth");
		var fbJob = document.getElementById("fbJob");
		var fbTime = document.getElementById("fbTime");
		var fbCompany = document.getElementById("fbCompany");
		var fbNumber = document.getElementById("fbNumber");
        var fbEMail = document.getElementById("fbEMail");
		var fbPhone = document.getElementById("fbPhone");
        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;
		fbBirth.valid = false;
		fbJob.valid = false;
		fbTime.valid = false;
		fbCompany.valid = false;
		fbNumber.valid = false;
		fbEMail.valid = false;
		fbPhone.valid = false;
        fbText.valid = false;
       
        fbName.onchange = fbValidateFieldOnChange;
		fbBirth.onchange = fbValidateFieldOnChange;
		fbJob.onchange = fbValidateFieldOnChange;
		fbTime.onchange = fbValidateFieldOnChange;
		fbCompany.onchange = fbValidateFieldOnChange;
		fbNumber.onchange = fbValidateFieldOnChange;
        fbEMail.onchange = fbValidateFieldOnChange;
		fbPhone.onchange = fbValidateFieldOnChange;
        fbText.onchange = fbValidateFieldOnChange;
       
        fbName.onkeyup = fbValidateFieldOnKeyUp;
		fbBirth.onkeyup = fbValidateFieldOnKeyUp;
		fbJob.onkeyup = fbValidateFieldOnKeyUp;
		fbTime.onkeyup = fbValidateFieldOnKeyUp;
		fbCompany.onkeyup = fbValidateFieldOnKeyUp;
		fbNumber.onkeyup = fbValidateFieldOnKeyUp;
        fbEMail.onkeyup = fbValidateFieldOnKeyUp;
		fbPhone.onkeyup = fbValidateFieldOnKeyUp;
        fbText.onkeyup = fbValidateFieldOnKeyUp;
       
        fbNowShowError = true;
        if (fbName.value != '') fbValidateField(fbName);
		if (fbBirth.value != '') fbValidateField(fbBirth);
		if (fbJob.value != '') fbValidateField(fbJob);
		if (fbTime.value != '') fbValidateField(fbTime);
		if (fbCompany.value != '') fbValidateField(fbCompany);
		if (fbNumber.value != '') fbValidateField(fbNumber);
		if (fbEMail.value != '') fbValidateField(fbEMail);
		if (fbPhone.value != '') fbValidateField(fbPhone);
        if (fbText.value != '') fbValidateField(fbText);
        fbNowShowError = false;
       
        fbVeriCode.value = '';
       
        fbValidateField;
       
};
