
// <!--
//Created by Jimmy Mercado
//11/14/2006


function ValidateRadioButton(fld){
	val = "";
	for (counter = 0; counter < fld.length; counter++){
		if (fld[counter].checked) val = fld[counter].value; 
	}
	
	if (val!="") return true;
	else return false;
}

function ValidateRadioButtonArray(qFld, aFld, cnt){
	f = document.form1;
	var errCount = 0;
	
	for(i=1; i<=cnt; i++){
		
		if(!ValidateRadioButton(f.elements[aFld + "_" + i])) {
			document.getElementById(qFld + "_" + i).style.color = errTrue;
			errCount++;
		}else document.getElementById(qFld + "_" + i).style.color = errFalse;
	}
	
	if(errCount==0) return true;
	else return false;
}

function ValidateChkArray(strField, cnt){
	f = document.form1;
	val = 0;
	var errCount = 0;
	
	for(i=0; i<=cnt; i++){
		fldName = (document.getElementById(strField + "_" + i).name);
		if(f.elements[fldName].checked) {
			val = val + 1;
		}
	}
	
	if (val>=1) return true;
	else return false;
}

function ClearCheckBoxes(fld){
	val = "";
	for (counter = 0; counter < fld.length -1; counter++){
		//if(fld[counter].value.toUpperCase() != "NONE"){
			fld[counter].checked = false; 
		//}
	}
}

function ValidateSelect(fld){
	val = true;
	if (fld.selectedIndex == 0) val = false;
	return val;
}

function ValidateTextBox(fld, datatype){
	txtbox = fld;
	val = false;
	
	if(txtbox.value==""){
		val = false;
	}else{
		val = true;
		if(datatype!=null){
			switch (datatype){
				case "INT":
					if (isNaN(txtbox.value)){
						val = false;
					}
					break;
					
				case "EMAIL":
					if (!emailCheck(txtbox.value)){
						val = false;
					}
					break;
			}
		}else{
			val = true;
		}
	}
	return val;
}

function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
		
	else // otherwise, update 'characters left' counter
	countfield.value = maxlimit - field.value.length;
}


function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)")
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	if (user.match(userPat)==null) {
	    // user is not valid
	    //alert("The username doesn't seem to be valid.")
	    return false;
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	   host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		        alert("Destination IP address is invalid!")
			return false;
		    }
	    }
	    return true;
	}
	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.")
	    return false;
	}
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4) {
	   // the address must end in a two-letter to four letter-word.
	   alert("The address must end in a two-letter to four letter-word domain extension")
	   return false;
	}
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr="This address is missing a hostname!"
	   alert(errStr)
	   return false;
	}
	// If we've gotten this far, everything's valid!
	return true;
}

function MarkUp(fld, isValid){
	errColor = "#FFFFCC";
	errBorder = "#000000";
	clrColor = "#FFFFFF";
	clrBorder = "#999999";
	if(!isValid){
		fld.style.background = errColor;
		fld.style.borderColor = errBorder;
	}else{
		fld.style.background = clrColor;
		fld.style.borderColor = clrBorder;
	}
	//alert(txtbox.style.background);
}

function MarkUpChkArray(txtbox, isValid){
	errColor = "#FFFFCC";
	errBorder = "#000000";
	clrColor = "transparent";
	clrBorder = "#999999";
	if(!isValid){
		txtbox.style.backgroundColor = errColor;
		txtbox.style.borderColor = errBorder;
	}else{
		txtbox.style.backgroundColor = clrColor;
		txtbox.style.borderColor = clrBorder;
	}
	
}


function isFieldValid(fld, fldType){

	val = true;
	if(fldType==null) fldType = "TEXT"; //check if fldType is present
	
	switch (fldType){
		case "TEXT":
			val = ValidateTextBox(fld, "TEXT")
			break;
			
		case "INTEGER":
			val = ValidateTextBox(fld, "INT")
			break;
		
		case "EMAIL":
			val = ValidateTextBox(fld, "EMAIL")
			break;
			
		case "SELECT":
			val = ValidateSelect(fld);
			break;
	}
	
	MarkUp(fld, val);
	//alert(fld + val);
	return val;
}



function isCheckListValid(strField, cnt){
	f = document.form1;
	val = 0;
/*	alert(strField);*/
	
	for(i=0; i<=cnt; i++){
		fldName = (document.getElementById(strField + "_" + i).name);
		
		if(f.elements[fldName].checked) {
			val = val + 1;
		}
	}
	MarkUpChkArray(document.getElementById(strField), val);
	if (val>=1) return true;
	else return false;
}

//-->
