/* Validates forms based on the fields tagged as required (using class attribute). */
function validate(frm, reqname) {
	for (var i=0;i<=frm.length-1;i++) {
		if (frm[i].className==reqname) {
			if (isEmpty(frm[i], frm[i].title)) return false;
			// check email format
			if (frm[i].id=='EMAIL') {
					if (!isEmail(frm[i].value, frm[i].title)) {
						frm[i].select();
						return false;
					}
			}
			// check if passwords matched
			if ((frm[i].id=='PASSWORDRE')&&(frm.password)) {
					if (frm[i].value!=frm.password.value) {
							alert("Passwords did not matched. Please confirm.");
							frm[i].select();
							return false;
					}
			}
		}
	}
	return true;
}

/* validate empty value */
function isEmpty(frmField,fldName) {
	var fld = frmField.value;
	var ctr=0;
	var len = fld.length;
	
	for(var i=0;i<=len;i++) {
  		if (fld.charAt(i)==" ") ctr++;
 	}
 	if (len==ctr) {
		alert(fldName + ' is required.')
		frmField.focus();
		return true;
 	}
	return false;
}


/* validates alphanumeric values */
function isAlpha(frmField,fldName) {
	var AlphaSymbol = new String("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_$");
	el = trim(frmField.value);
	for(i=0;i<el.length;i++)
		if (AlphaSymbol.indexOf(el.charAt(i))==-1) {
		alert(fldName + " must be alphanumeric only.");
		frmField.focus;
		frmField.select();
		return false;
		}
return true;
}

/* validates numeric values */
function isNum(frmField,fldName) {
	//if (isEmpty(frmField, "Quantity")) return false;
	var NumSymbol = new String("1234567890.-");
	el = trim(frmField.value);
	for(i=0;i<el.length;i++)
		if (NumSymbol.indexOf(el.charAt(i))==-1) {
		alert(fldName + " must be numeric.");
		frmField.focus;
		frmField.select();
		return true;
		}
return false;
}

/* validates numeric values */
function isSelEmpty(frmField,fldName) {
	var fld = frmField[frmField.selectedIndex].value;
	var ctr=0;
	var len = fld.length;

	for(i=0;i<=len;i++) {
  		if (fld.charAt(i)==" ") ctr++;
 	}
 	
	if (len==ctr) {
		alert(fldName + " is required.");
		frmField.focus();
		return true;
	}
	return false;
}


function isEmail(emailStr, emailname) {
	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(emailname + " is not a valid format.");
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid
	if (user.match(userPat)==null) {
		alert(emailname + " is not a valid format.");
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert(emailname + " is not a valid format.");
			return false
			}
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
			alert(emailname + " is not a valid format.");
		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>3) {
		alert(emailname + " is not a valid format.");
	   //alert("The address must end in a three-letter domain, or two letter country.")
	   return false
	}
	
	if (len<2) {
		alert(emailname + " is not a valid format.");
		return false
	}
	
	return true;
}

/* removesleading and trailing whitespaces */
function trim(str) { 
	var myValue = new String(str);
	var Length_of_value = myValue.length;
	var newValue="";
	for (i=0;i<Length_of_value;i++)
		if(myValue.charAt(i)!=" ") newValue += myValue.charAt(i);

	return newValue;
}

function countChars(frmField, targetCont, maxlength) {
		if (frmField.value.length > maxlength)
			return document.getElementById(targetCont).innerHTML = "<font color='red'>"+frmField.value.length+"</font>";
		else
			return document.getElementById(targetCont).innerHTML = frmField.value.length;
}

/* get system date */
function DateNow(){
   var d = new Date();
   var s = new String();
   s= " " + d.getYear();
   var m = d.getMonth()+1;
   var d = d.getDate();
   if (m<10) {
	 m="0"+m;
   }
   if (d<10) {
	 d="0"+d;
   }
	s = s+m+d;
   return(s);
}

//  End Validation Script