function CheckFrmElm(elm){
	var ErrBackColor = "#CCFFFF";
	var OKBackColor = "";
	var elmOK = true;
	for (var i=0;i<elm.attributes.length;i++){
		switch(elm.attributes[i].name){
			case "required":
				if(elm.attributes[i].value == "true"){
					switch (elm.type){
						case "text":
							if(elm.value.length == 0){
								elm.style.backgroundColor = ErrBackColor;
								elmOK = false;
							}else{
								if(elmOK == true){elm.style.backgroundColor = OKBackColor};
							}
							break;
						
						case "select-one":
							if(elm.options[elm.selectedIndex].text.length ==0){
								elm.style.backgroundColor = ErrBackColor;
								elmOK = false;
							}else{
								if(elmOK == true){elm.style.backgroundColor = OKBackColor};
							}
							break;
					}//End Switch elm type
				} // End Value Check IF
				break;
			
			case "datatype":
				// Check Number DataType
				if(elm.attributes[i].value == "Number" && elm.value.length != 0){
					if(elm.value.match(/^\d+$/) == null){
						elm.style.backgroundColor = ErrBackColor;
						elmOK = false;
					}else{
						if(elmOK == true){elm.style.backgroundColor = OKBackColor;}
					}
				} // End Check Number
				
				// Check Date Data Type
				if(elm.attributes[i].value == "Date" && elm.value.length != 0){
					var objRegExp = /^\d{1,2}(|\/)\d{1,2}\1\d{4}$/
						//check to see if in correct format
						if(!objRegExp.test(elm.value)){	  
						//if(elm.value.match("/^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/") == null){
						elm.style.backgroundColor = ErrBackColor;
						elmOK = false;
					}else{
						if(elmOK == true){elm.style.backgroundColor = OKBackColor;}
					}
				} // End Check Date
								
				// Check Date Data Type
				if(elm.attributes[i].value == "MySqlDate" && elm.value.length != 0){
					if(elm.value.match("/(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])/") == null){
						elm.style.backgroundColor = ErrBackColor;
						elmOK = false;
					}else{
						if(elmOK == true){elm.style.backgroundColor = OKBackColor;}
					}
				} // End Check Date
				
				// Check Email DataType
				if(elm.attributes[i].value == "Email" && elm.value.length != 0){
					if(echeck(elm.value)){
						if(elmOK == true){elm.style.backgroundColor = OKBackColor;}
					}else{
						elm.style.backgroundColor = ErrBackColor;
						elmOK = false;
					}
				} // End Check Email
				break;
		
			case "minlength":
			// Check Length
				if(elm.value.length < elm.attributes[i].value && elm.value.length != 0){
					elm.style.backgroundColor = ErrBackColor;
					elmOK = false;
				}else{
					if(elmOK == true){elm.style.backgroundColor = OKBackColor;}
				} // End Length
				break;	
		
		} //  End Switch 
		
	}// End for
			
	return elmOK
}
function echeck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	
	if (str.indexOf(at)==-1){return false;}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){return false;}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){return false;}
	if (str.indexOf(at,(lat+1))!=-1){return false;}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){return false;}
	if (str.indexOf(dot,(lat+2))==-1){return false;}
	if (str.indexOf(" ")!=-1){return false;}
	if (str.indexOf(dot)==lstr-1){return false;}

	return true					
}

function CheckForm(frm,alertProb){
	var frmOK = true;
	for (var i=0;i<frm.length;i++){
		if(frmOK){
			frmOK = CheckFrmElm(frm[i]);
			if(!frmOK){	badElm = frm[i];}
		}else{
			CheckFrmElm(frm[i]);
		}
	} //  End for each Form Elm
	
	if(alertProb && !frmOK){
		alert("There is a problem with the field '"+badElm.name+"'. Please Correct.");
		badElm.focus();
	}
	return frmOK;
	
} // end CheckForm

function SubmitForm(frm){
	if(CheckForm(document.frm,true) == true){
		frm.submit();
	} // end if
	
} // End Submit frm
