/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : 
    oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}



function validate(theForm)
	{
	var returnFlag;
	var frmLength;
	var firstBlank;
	var strEmailAddress;
	var strMessage;
		
	var arrReqFields = getElementsByClassName(document.getElementById(theForm.id), "*", "required");
	
	strMessage = "Please complete all required fields."
	firstBlank = -1;
	
	// loop through fields to clear out default values
	frmLength = arrReqFields.length;
	
	for (i=0; i<frmLength;i++){ 
		if(arrReqFields[i].value == "")
		{
			
			arrReqFields[i].className = "required warning";
			returnFlag = false;
			if(firstBlank == -1) {
				firstBlank = i
			}
		}
		else if(arrReqFields[i].name == "email") {
			strEmailAddress = arrReqFields[i].value;
			intAtPosition = strEmailAddress.indexOf("@");
			intLastDotPosition = strEmailAddress.lastIndexOf(".");
			if((strEmailAddress=="") || (intAtPosition == 0) || (intAtPosition == 1) || (intLastDotPosition == -1) || (intAtPosition > intLastDotPosition) || (intLastDotPosition+1 == strEmailAddress.length)){
				arrReqFields[i].className = "required warning";
				returnFlag = false;
				if(firstBlank == -1) {
					firstBlank = i;
					strMessage = "Please enter a valid email address";
					
				}
			}
		}
		else {
			arrReqFields[i].className = "required";
		}
	}
				
	if(returnFlag == false)
		{
			alert(strMessage);
			arrReqFields[firstBlank].focus()
		}
		
	return returnFlag;
	}