// JavaScript Document

function validateHighLight(vlabel,vfield){
	vlabel.parentNode.style.background = '#FEE0C5';
	//vlabel.parentNode.style.padding = '1px';
	vlabel.parentNode.style.border = 'solid 1px #FC8205';
	vlabel.style.fontWeight = "Bold"
	vlabel.style.color = "#FF0000"
}
function validateUnHighLight(vlabel,vfield) {
	vlabel.parentNode.style.background = '';
	vlabel.parentNode.style.padding = '';
	vlabel.parentNode.style.border = '';
	vlabel.style.fontWeight = "Normal"
	vlabel.style.color = ""
	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";
	errorMsg.style.display = "block"
	errorMsg.style.clear = "both"
	strLabelValue = strLabelValue.replace(":","")
	strLabelValue = strLabelValue.replace("*","")
	switch (intErrorID) {
		case 1:
			errorMsg.innerHTML = "This field is required."
		break;
		case 2:
			errorMsg.innerHTML = "This field must be a number."
		break;
		case 3:
			errorMsg.innerHTML = "This field must be a valid email address (" + strLabelValue.replace(":","")  + ")"
		break;
		case 4:
			errorMsg.innerHTML = "These fields must be the same."
		break;
	}
	return errorMsg
}
function checkEmail(strValue) {
	if ((strValue.indexOf("@") == -1) || (strValue.indexOf(".") == -1)) {return false;}else{return true;}
}
function compareFields(objField) {
	var strConField = objField.name.replace("con","")
	var objConField = document.getElementById(strConField);
	
	if (objField.value == objConField.value) {return true;}else{return false}
}

function hexValidate(objForm) {	
	var labels = (objForm != null) ? objForm.getElementsByTagName("label") : 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) {
					if (!labels[i].className == null) {alert("JKL")}
					switch (labels[i].className) {
						
						case "vrequired" :
							if (field.value == "") { intErrType = 1; }
						break;
						case "vreqnum" :
							if (field.value == "") { 
								intErrType = 1; 
							}else{
								if (isNaN(field.value)) { intErrType = 2; }
							}
						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;
						case "vreqcompare" :
							if (field.value == "") { 
								intErrType = 1; 
							}else if (!compareFields(field) ){intErrType = 4; }
							
						break;
						case "vcompare" :
							if (!compareFields(field) ){intErrType = 4; }
						break;
						case "vchecked" :
							if (!field.checked) {intErrType = 1;}
						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("Invalid data has been entered. See page for details."); 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'));
}