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 fbPhoneError = document.getElementById("fbPhoneError");
	var fbEMailError = document.getElementById("fbEMailError");
	var fbTextError = document.getElementById("fbTextError");

	// Проверка имени
	if (txtField.name == "fbName") {
		if (txtField.value.length < 5) {
			if (fbNowShowError) {
				fbNameError.style.display = "block"; 
				fbNameError.innerHTML = "Имя должно содержать не менее 5 символов";
			}
			txtField.valid = false;
		} else {
			if (fbNowShowError) {
				fbNameError.style.display = "none";
			}
			txtField.valid = true;
		}
	}

	// Проверка телефона
	if (txtField.name == "fbPhone") {
		if (txtField.value.length < 5) {
			if (fbNowShowError) {
				fbPhoneError.style.display = "block"; 
				fbPhoneError.innerHTML = "Телефон должн содержать не менее 5 символов";
			}
			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 < 15) {
			if (fbNowShowError) {
				fbTextError.style.display = "block"; 
				fbTextError.innerHTML = "Текст сообщения должен содержать не менее 15 символов";
			}
			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 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;
	fbPhone.valid = false;
	fbEMail.valid = false;
	fbText.valid = false;
	
	fbName.onchange = fbValidateFieldOnChange;
	fbPhone.onchange = fbValidateFieldOnChange;
	fbEMail.onchange = fbValidateFieldOnChange;
	fbText.onchange = fbValidateFieldOnChange;
	
	fbName.onkeyup = fbValidateFieldOnKeyUp;
	fbPhone.onkeyup = fbValidateFieldOnKeyUp;
	fbEMail.onkeyup = fbValidateFieldOnKeyUp;
	fbText.onkeyup = fbValidateFieldOnKeyUp;
	
	fbNowShowError = true;
	if (fbName.value != '') fbValidateField(fbName);
	if (fbPhone.value != '') fbValidateField(fbPhone);
	if (fbEMail.value != '') fbValidateField(fbEMail);
	if (fbText.value != '') fbValidateField(fbText);
	fbNowShowError = false;
	
	//fbVeriCode.value = '';
	
	fbValidateField;
	
};
