// JavaScript Document
function validateHighLight(vlabel,vfield){
	
}
function validateUnHighLight(vlabel,vfield) {
	vlabel.parentNode.style.background = '';
	vlabel.parentNode.style.padding = '';
	vlabel.parentNode.style.border = '';
	var errorSpan = vlabel.parentNode.getElementsByTagName("span");
	var parentDiv = vlabel.parentNode;
	for(var i = 0; i < errorSpan.length; i++) {
		if (errorSpan[i].className == "reqmsg"){
			parentDiv.removeChild(errorSpan[i]);
		}
	}
}
function validateCreatErrorMsg (strID, intErrorID, strLabelValue){
	var errorMsg = document.createElement ("span");
	errorMsg.setAttribute("id",strID);
	errorMsg.className = "reqmsg";
	switch (intErrorID) {
		case 1:
			errorMsg.innerHTML =  "This field is required (" + strLabelValue.replace(":","") + ")"
		break;
		case 2:
			errorMsg.innerHTML = "This field must be a number (" + strLabelValue.replace(":","")  + ")"
		break;
		case 3:
			errorMsg.innerHTML = "This field must be a valid email address (" + strLabelValue.replace(":","")  + ")"
		break;
	}
	return errorMsg
}
function checkEmail(strValue) {
	if ((strValue.indexOf("@") == -1) || (strValue.indexOf(".") == -1)) {return false;}else{return true;}
}
function validateForm() {	
	
	var labels = document.getElementsByTagName("label");
	var field, strFieldID;
	var blnFormValid = true;
	var intErrType
	for(var i = 0; i < labels.length; i++) {
		strFieldID = labels[i].htmlFor;
		if (strFieldID != ""){
			field = document.getElementById(strFieldID);
			validateUnHighLight(labels[i],field)
		}
	}
    for(var i = 0; i < labels.length; i++) {
		strFieldID = labels[i].htmlFor;
		intErrType = -1;
		if (strFieldID != ""){
			field = document.getElementById(strFieldID);
			if (field){
				if (!field.disabled) {			
					switch (labels[i].className) {
						case "vrequired" :
							if (field.value == "") { intErrType = 1; }
						break;
						case "vnum" :
							if (field.value != ""){
								if (isNaN(field.value)) { intErrType = 2; }
							}
						break;
						case "vreqemail" :
							if (field.value == "") { 
								intErrType = 1; 
							}else if (!checkEmail(field.value)) { intErrType = 3; }
						break;
					}
				}
			}
		}
		if (intErrType > -1) {
			validateHighLight(labels[i],field); 
			labels[i].parentNode.appendChild (validateCreatErrorMsg("err" + field.name,intErrType,labels[i].innerHTML));
			blnFormValid = false;
		}
    }
	if (blnFormValid) { return true; }else{ alert("Please amend any fields with errors indicated."); return false }
}
function initLabels() {
    labels = document.getElementsByTagName("label");
    for(i = 0; i < labels.length; i++) {
        addEvent(labels[i], "click", labelFocus);
    }
}

function labelFocus() {
    new Field.focus(this.getAttribute('for'));
}
