// JavaScript Documentvar errorCount = 0;function resetFields(whichform) {  for (var i=0; i<whichform.elements.length; i++) {    var element = whichform.elements[i];    if (element.type == "submit") continue;    if (!element.defaultValue) continue;    element.onfocus = function() {    if (this.value == this.defaultValue) {      this.value = "";     }    }    element.onblur = function() {      if (this.value == "") {        this.value = this.defaultValue;      }    }  }}function validateForm(whichform) {	//keeps a list of radio button arrays	var radioArrays = new Array();	// remove any error messages	var divs = document.getElementsByTagName("div");	for (var i=0; i<divs.length; i++) {		if (divs[i].getAttribute("className") == "errorMsg") {			divs[i].parentNode.removeChild(divs[i]);			i--;		}	}	//test mode	if (whichform.className.indexOf("test") != -1) {		if (!confirm("You are in test mode. Do you want to continue?")) return false;	}	var validated = true;	for (var i=0; i<whichform.elements.length; i++) {		var element = whichform.elements[i];		if (element.className.indexOf("required") != -1) { //if this field is mandatory			if (element.name.toLowerCase().indexOf("email") != -1) {				if (whichform.className.indexOf("test") != -1) element.value = "Test@Value.com";				if (!isEmail(element)) {					createErrorMsg("Please enter a valid email!", element);					validated = false;				}			//Radio Buttons			} else if (element.type == "radio") {				//alert(element.name);				if (isNewArray(element.name,radioArrays)) {					var radioArray = element.form[element.name];					radioArrays.push(element.name);					if (!isRadioSelected(radioArray)) {						//alert(element.form[element.name][0]);						createErrorMsg("Please select one of the following:", radioArray[0]);						validated = false;					}				}			//Date fields			} else if (element.name.toLowerCase().indexOf("date") != -1) {				if (!isDate(element)) {					createErrorMsg("Please enter a date in the following format: dd/mm/yyyy", element);					validated = false;				}							//call custom validation function and error messages			/*} else if (condition) {				if (!isFunction(element)) {					createErrorMsg("", element);					validated = false;				}			*/					} else {				if (whichform.className.indexOf("test") != -1) element.value = "Test Value";				if (!isFilled(element)) {					//alert("Error");					//error message for each field					createErrorMsg("Please complete!", element);					validated = false;				}			}		}	}	if (whichform.className.indexOf("test") != -1) {		if (!confirm("Do you want to submit this form?")) return false;	}	if (!validated) {		errorCount = 0;	}	return validated;}function createErrorMsg(msg, element) {	if (errorCount == 0) {		element.focus();	}	var errorMsg = document.createElement("div");	errorMsg.setAttribute("class","errorMsg");	errorMsg.setAttribute("className","errorMsg");	var emText = document.createTextNode(msg);	errorMsg.appendChild(emText); 	element.parentNode.insertBefore(errorMsg,element);		errorCount++;}function isFilled(field) {  if (field.value.length < 1) {    return false;  } else {    return true;  }}function isRadioSelected(radioArray) {	myOption = -1;	for (i=radioArray.length-1; i > -1; i--) {		if (radioArray[i].checked) {			myOption = i;			i = -1;		}	}	if (myOption == -1) {		return false;	} else {    	return true;	}}function isEmail(field) {	var emailString = field.value;	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";	var regex = new RegExp(emailReg);	return regex.test(emailString) }function isDate(field) {	var dateStr = field.value;	if (dateStr.indexOf("/") == -1) {		return false;	} else {		var comps = dateStr.split("/");		theDate = new Date(comps[2],comps[1],comps[0]);		if (isNaN(theDate)) {			return false;		} else {			return true;		}	}	}function isNewArray(en,ra) {	for (var i=0;i<ra.length;i++) {		if (en == ra[i]) return false;	}	return true;}function prepareForms() {  for (var i=0; i<document.forms.length; i++) {    var thisform = document.forms[i];    //resetFields(thisform);    thisform.onsubmit = function() {    	return validateForm(this);    }  }  // add maxlength function to textareas  var textareas = document.getElementsByTagName("textarea");  for (var j=0; j<textareas.length; j++) {	//alert(textareas[j]);  	textareas[j].onkeyup= function() {		return isMaxLength(this);	}  }}function isMaxLength(obj){	//alert("Hello");	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""	if (obj.getAttribute && obj.value.length>mlength)	obj.value=obj.value.substring(0,mlength)}function removeErrorMsg() {	var paras = document.getElementsByTagName("p");	for (var i=0; i<paras.length; i++) {		if (paras[i].getAttribute("class") == "errorMsg") {			paras[i].parentNode.removeChild(paras[i]);			i--;		}	}}function displayError(where,msg) {	if (!document.createElement) return false;	if (!document.createTextNode) return false;	if (!document.getElementById) return false;	var beforeElement = document.getElementById(where);	var errorMsg = document.createElement("p");	//errorMsg.setAttribute("className","errorMsg");	errorMsg.setAttribute("class","errorMsg");	var errorMsgText = document.createTextNode(msg);	errorMsg.appendChild(errorMsgText);	insertAfter(errorMsg,beforeElement);}addLoadEvent(prepareForms);