/*************************************************

FORM VALIDATION/HIGHLIGHT SCRIPT

***** DO NOT EDIT THIS FILE IT IS USED GLOBALLY *****


********** IMPORTANT SCRIPT NOTES **************

FORM TAG MUST INCLUDE 

onSubmit="return validateForm(this);"

or

IN THE SUBMIT BUTTON ITSELF

onClick="return validateForm(this.form);"

or

IN ANOTHER FUNCTION CALL

function someOtherFunction(){
	return validateForm(someFormObject);
}//end function someOtherFunction()

THEN WITHIN THE FORM STRUCTURE YOU MUST HAVE A
HIDDEN FIELD NAMED "req"

VALUE IS PIPE "|" AND TILDE "~" SEPARATED

<input type=hidden name=req value="somefield|Text to Be alerted~anotherfieldname|Text to Be alerted">

extraValidation VARIABLE SHOULD POINT TO YOUR EXTRA
VALIDATION SCRIPT/FUNCTION IF FORM HAS MORE COMPLEX
VALIDATION RULES LIKE SOMEFIELDS VALUE MUST BE GREATER
THAN 6 OR SOMETHING LIKE THAT

SYNTAX:

extraValidation="myExtraValidationFunction()";

function myExtraValidationFunction(){
	if(document.someform.somefield.value < 6){
			errorArray[t++]=new Array(document.someform.somefield,"Some fields value must be greater than 6.");						
	}	
}

************************************************
		IMPORTANT
************************************************

DO NOT EDIT THIS FILE THE EXTRA VALIDATION VAR 
SHOULD BE DEFINED IN ANOTHER PAGE AFTER THIS IS
INCLUDED OR IN A (window.onload) INIT SEQUENCE

************************************************
		IMPORTANT
************************************************

**************************************************/


var defaultColor="";
var defaultbgColor="";
var eColor="white";
var ebgColor="red";

/**********************************************
DO NOT EDIT BELOW THIS LINE
***********************************************/

var ErrorMsg="";
var extraValidation;
var eCount=0;
var msg;
var ns4 = (document.layers && !document.getElementById) ? true : false;

function trim(str){
	str = str.replace(/\s+$/,"");
	str = str.replace(/^\s+/,"");
	return str;
}//end function trim

function doErrorHigh(){
	for(var i=0; i<errorArray.length; i++){
		if(errorArray[i][0].disabled!=true){
			focusField = errorArray[i][0];
			break;
		}
	}
	for(var i=0; i<errorArray.length; i++){
		if(!ns4){
			if(errorArray[i][0].length && errorArray[i][0].type == undefined){//radio 
				for(var x=0; x<errorArray[i][0].length; x++){
			        	errorArray[i][0][x].style.backgroundColor=ebgColor;
			        }
			}
			else{
				errorArray[i][0].style.backgroundColor=ebgColor;
				errorArray[i][0].style.color=eColor;
			}
		}
		if(trim(errorArray[i][1]))ErrorMsg += errorArray[i][1]+",\n";	
	}
	ErrorMsg=ErrorMsg.replace(/,\n$/,"\n");
	msg="One or more fields require your attention:\n\n"+ErrorMsg+"\n"
	if(!ns4)msg+="The field(s) that need attention have been marked red.";
	alert(msg);
	ErrorMsg="";
	if(focusField)focusField.focus();
}//end function

function validateForm(tForm){
	errorArray = new Array;
	req = tForm.req.value.split("~");
	eCount=0;
	for(var i=0; i<req.length; i++){
		parts = req[i].split("|");
		dispFieldName = parts[1];
		getObj="var tempFormObj=tForm."+parts[0]+"";
		eval(getObj.valueOf());
		fieldValue="";
		fieldType = tempFormObj.type;
		fieldType = (tempFormObj.length && tempFormObj.type == undefined)? "radio" : fieldType;
		switch(fieldType){
			case "text":
				fieldValue = trim(tempFormObj.value);
			break;
			case "textarea":
				fieldValue = trim(tempFormObj.value);
			break;
			case "select-one":
				fieldValue = trim(tempFormObj.options[tempFormObj.selectedIndex].value); 
			break;	
			case "select-multiple":
				fieldValue = (tempFormObj.selectedIndex == -1) ? "" : true;
			break;	
			case "radio":
				for(var x=0; x<tempFormObj.length; x++){
					if(tempFormObj[x].checked == true)fieldValue=true;
				}
			break;	
			case "checkbox":
				if(tempFormObj.checked == true)fieldValue=true;
			break;	
		}//end switch
		if(fieldValue == ""){
			errorArray[eCount]=new Array(tempFormObj,""+parts[1]+"");
			eCount++;
		}
		else if(!ns4){
			if(fieldType == "radio"){//radio 
				for(var x=0; x<tempFormObj.length; x++){
			        	tempFormObj[x].style.backgroundColor=defaultbgColor;
			        }
			}
			else{
				tempFormObj.style.backgroundColor=defaultbgColor;
				tempFormObj.style.color=defaultColor;
			}
		}
	}
	if(extraValidation){ eval(extraValidation);} 
	if(eCount>0){//we have errors light them up
		doErrorHigh();
		return false;
		
	}
}//end function
