﻿$(document).ready(FormFields_Initialize);

function FormFields_Initialize() {
	var fieldContainerList = $(".fieldContainer");

	for (i = 0; i < fieldContainerList.length; i++) {
		var fieldContainer = $(fieldContainerList[i]);

		var fieldList = fieldContainer.find(":input");

		for (iField = 0; iField < fieldList.length; iField++) {
			var formField = $(fieldList[iField]);
			formField.bind("blur", FormFields_RunValidation);
			formField.bind("change", FormFields_RunValidation);
		}
	}

	$(".formSubmit").bind("click", FormFields_CheckSubmitValidation);
}

function FormFields_RunValidation(e) {
	//e.preventDefault();
	//e.stopPropagation();

	var formField = $(this);

	var fieldContainer = formField.parents(".fieldContainer");

	var validatorList = fieldContainer.find("span[controltovalidate='" + formField.attr("id") + "']");

	if (validatorList.length == 0) return;

	var isValid = true;

	for (i = 0; i < validatorList.length; i++) {
		ValidatorValidate(validatorList[i]);
		if (validatorList[i].style.display != "none") isValid = false;
	}

	fieldContainer.toggleClass("fieldContainerError", !isValid);
	formField.toggleClass("fieldError", !isValid);
}

function FormFields_CheckSubmitValidation(e) {
	//e.preventDefault();
	//e.stopPropagation();

	var fieldContainerList = $(".fieldContainer");

	for (i = 0; i < fieldContainerList.length; i++) {
		var fieldContainer = $(fieldContainerList[i]);

		var fieldList = fieldContainer.find(":input");

		for (iField = 0; iField < fieldList.length; iField++) {
			var formField = $(fieldList[iField]);
			formField.removeClass("fieldError");
		}

		var validatorList = fieldContainer.find("span[controltovalidate]");

		if (validatorList.length > 0) {

			var isValid = true;

			for (iVal = 0; iVal < validatorList.length; iVal++) {
				if (validatorList[iVal].style.display != "none") {
					isValid = false;
					var fieldName = $(validatorList[iVal]).attr("controltovalidate");
					$("#" + fieldName).addClass("fieldError");
				}
			}

			fieldContainer.toggleClass("fieldContainerError", !isValid);
		}
	}
}
