// 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 validateHighLightRadio(vlabel,vfield) {
	vlabel.parentNode.parentNode.style.background = '#FEE0C5';
	//vlabel.parentNode.style.padding = '1px';
	vlabel.parentNode.parentNode.style.border = 'solid 1px #FC8205';
	if (!document.getElementById("err" + vfield.name)) {
		var objErrorMsg = validateCreatErrorMsg("err" + vfield.name,5,vlabel.innerHTML)
		objErrorMsg.style.color = "#FF0000"
		objErrorMsg.style.display = "block"
		objErrorMsg.style.fontWeight = "Bold"
		vlabel.parentNode.parentNode.appendChild (objErrorMsg);
	}
}
function validateUnHighLightRadio(vlabel,vfield) {
	vlabel.parentNode.parentNode.style.background = '';
	vlabel.parentNode.parentNode.style.border = '';
	var errorSpan = vlabel.parentNode.parentNode.getElementsByTagName("span");
	for(var i = 0; i < errorSpan.length; i++) {
		if (errorSpan[i].className == "reqmsg"){
			errorSpan[i].parentNode.removeChild(errorSpan[i]);
		}
	}
}
function validateUnHighLight(vlabel,vfield) {
	vlabel.parentNode.style.background = '';
	vlabel.parentNode.style.padding = '';
	vlabel.parentNode.style.border = '';
	vlabel.style.fontWeight = "Normal"
	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";
	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;
		case 5:
			errorMsg.innerHTML = "One of these options is required."
		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 checkRadio(objField,objForm) {
	var strGroupName = objField.name
	var intLength = objForm[strGroupName].length
	var blnValid = false
	for (var i=0; i < intLength; i++) {
		if (objForm[strGroupName][i].checked) {
			blnValid = true
			break
		}
		
	}
	return blnValid
}
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)
			validateUnHighLightRadio(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 "vreqradio" :
							if (!checkRadio(field,objForm) ){intErrType = 5; }
						break;
						case "vcompare" :
							if (!compareFields(field) ){intErrType = 4; }
						break;
					}
				}
			}
		}
		if (intErrType > -1) {
			if (intErrType == 5) {
				validateHighLightRadio(labels[i],field);
			}else{
				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'));
}