/*
This section of code provides the validation functions for Quick Contact & Request Info forms
*/
var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
var emptyFieldErrMsg = "You must enter a value for #.";
var noneCheckedErrMsg = "You must choose an option from #.";
var nonChosenErrMsg = "You must choose a #";
var errMsgDiv = "";
var errDiv = "validation_err";

function clearDefault(field) {
	if (isDefault(field)) {
		field.value = "";
	}
}

function resetDefault(field) {
	var defaultValue = field.id.replace(/_/g, " ");
	if (field.value == "") {
		field.value = defaultValue;
	}
}

function validate(form) {
	var element; 

	hideErr(form);

	for (var i = 0; i < form.elements.length; i++) {
		element = form.elements[i];
		
		//if (confirm(element.name)) { alert(element.name == undefined); return false; }
		if (element.name == undefined) {
			;
		} else if (element.type == "text") {
			if(isRequired(element) && (isEmpty(element) || isDefault(element))) {
				return errRoutine(element, emptyFieldErrMsg);
			} 
		} else if (element.type.indexOf("select") > -1) {
			if (isRequired(element) && isEmpty(element)) {
				return errRoutine(element, emptyFieldErrMsg);
			}
		} else if (element.type == "checkbox") {
			if (isRequired(element) && noneChecked(element)) {
				return errRoutine(element, noneCheckedErrMsg);
			}
		}
	}
	return true;
}

function isRequired(field) {
	var label_id = field.id + "_label";
	//alert(label_id);
	var className = document.getElementById(label_id).className;

	if (className == "required") {
		return true;
	} else {
		return false;
	}
}

function noneChecked(field) {
	var arrChk = document.getElementsByName(field.name);
	var none_checked = true; 
	
	for (j = 0; j < arrChk.length; j++) {
		if (arrChk[j].checked) {
			none_checked = false;
			break;
		}
	}
	return none_checked;
}

function isEmpty(field) {
	var value = field.value; 
	
	value = value.replace(/ /g, "");
	if (value.length == 0) {
		return true;
	} else { 
		return false;
	}
}

function isDefault(field) {
	var value = field.value;
	var defaultValue = field.id;

	defaultValue = defaultValue.replace(/_/g, " ");
	
	if (value == defaultValue) {
		return true;
	} else {
		return false;
	}
}

function checkNumber(val) {
	var strPass = val.value;
	var strLength = strPass.length;
	var lchar = val.value.charAt((strLength) - 1);
	var cCode = CalcKeyCode(lchar);

	if (cCode < 48 || cCode > 57 ) {
		var myNumber = val.value.substring(0, (strLength) - 1);
		val.value = myNumber;
	}
	return false;
}

function CalcKeyCode(aChar) {
	var character = aChar.substring(0,1);
	var code = aChar.charCodeAt(0);
	return code;
}

function formatPhone(field) {
	var value = field.value; 
	var returnValue = "";

	value = value.replace(/ /g, "").replace(/-/g, "").replace(/\(/g, "").replace(/\)/g, "").replace(/[a-zA-Z]/g, "");
	
	if (value.length < 7) {
		returnValue = "";
	} else if (value.length == 7) {
		returnValue = value.substring(0,3) + "-" + value.substring(3);
	} else if (value.length < 10) {
		returnValue = "";
	} else {
		if (value.length > 10) {
			value = value.substring(0, 10);
		} 
		returnValue = "(" + value.substring(0, 3) + ") " + value.substring(3, 6) + "-" + value.substring(6);
	}
	field.value = returnValue;
}

function errRoutine(field, message) {
	var fieldName = field.id.replace(/_/g, " " );
	var className = "form_field_err";
	
	message = message.replace(/\#/g, fieldName);
	document.getElementById(field.id).className = className;
	field.focus();
	showErr(message);
	return false;
}

function showErr(message) {
	if (moz) {
		document.getElementById(errDiv).innerHTML = "<br />" + message;
	} else {
		document.getElementById(errDiv).innerHTML = message;
		document.getElementById(errDiv).style.display = "block";
	}
	//document.getElementById(errMsgDiv).style.display = "block";
}

function hideErr(form) {
	var className = "form_field";
	var element; 
	
	for (var i = 0; i < form.elements.length; i++) {
		element = form.elements[i];
		
		if (element.type != "submit" && element.type != "button" && element.type != "select-one" && element.type != "checkbox") {
			element.className = className;
		} else if (element.type == "select-one") {
			element.className = className + "select";	
		} 
	}
	if (moz) {
		document.getElementById(errDiv).innerHTML = "&nbsp;";
	} else {
		document.getElementById(errDiv).innerHTML = "<br />";
		document.getElementById(errDiv).style.display = "inline";
	}
}
