function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function checkEmail(oEl) {
	oEl.value = trimString(oEl.value);
	var emailStr = oEl.value;
	if(emailStr.length==0) return "Please Enter an Email Address.\n";
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	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) {
		return ("Email address seems incorrect (check @ and .'s)\n");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return ("Ths username contains invalid characters.\n");
			return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return ("Ths domain name contains invalid characters.\n");
			return false;
	   }
	}
	if (user.match(userPat)==null) {
		return ("The username doesn't seem to be valid.\n");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return ("Destination IP address is invalid!\n");
				return false;
			}
		}
		return "";
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return ("The domain name does not seem to be valid.\n");
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return ("The address must end in a well-known domain or two letter " + "country.\n");
		return false;
	}
	if (len<2) {
		return ("This address is missing a hostname!\n");
		return false;
	}
	return "";
}



function checkPhone(oEl) {
	var error ="";
	var stripped = oEl.value.replace(/[\(\)\.\-\ ]/g, '');
	if (oEl.value == "") return("Please enter a valid " + oEl.name  + ".\n");
	if (isNaN(parseInt(stripped))) return("The phone number contains illegal characters.\n");
	if (stripped.length < 6) return("Please Enter a Valid Phone Number.\n");
	if (stripped.length > 25) return("Please Enter a Valid Phone Number.\n");
	return "";
}

function checkRadio(oEl,name) {
	for (i=0, n=oEl.length; i<n; i++)
		if (oEl[i].checked) var checkvalue = oEl[i].value;
	var error ="";
	if (!(checkvalue)) error = "Please check a " + name + " radio button.\n";
	return error;    
}

function checkDropdown(oEl) {
	var error ="";
    if (oEl.selectedIndex == 0) {
       error = "Please choose an option from the " + oEl.name + " drop-down list.\n";
    }    
return error;
}   

function checkName(oEl) {
	oEl.value = trimString(oEl.value);
	var error ="";
	if (oEl.value == "") error = "Please enter a valid " + oEl.name  + ".\n";
	var tempName = oEl.value;
	var removeChars = /'/gi;
	tempName = tempName.replace(removeChars,"");
	var removeChars = / /gi;
	tempName = tempName.replace(removeChars,"");
	var removeChars = /./gi;
	tempName = tempName.replace(removeChars,"");
	var illegalChars = /\W/;
    if (illegalChars.test(tempName)) error = oEl.name + " contains illegal characters.\n";
	return error;
}

function checkTime(oEl) {
  var error = "The Time is Invalid.\n";
  var parts = oEl.value.split(":");
 if(parts.length==1 && parts!="") { oEl.value+=":00"; parts = oEl.value.split(":");}
  if(parts.length==2)
	if(parseInt(parts[0])>0)
		if(parseInt(parts[0])<13) 
			if(parseInt(parts[1])>-1)
				if(parseInt(parts[1])<60)
					error = "";
	if(parts.length==2)
		if(parts[1].length!=2)
			error = "The Time is Invalid, please check Minutes.\n";
	return error;
}

function checkDate(oEl) {
	var error = "The Date is Invalid.\n";
	var parts = oEl.value.split("/");
	if(parts.length==0) parts = oEl.value.split("-");
	if(parts.length==3) if(parts[1].substring(0,1) == "0") parts[1] = parts[1].substring(1,2);
	if(parts.length==3) if(parts[0].substring(0,1) == "0") parts[0] = parts[0].substring(1,2);
	if(parts.length==3)
		if(parseInt(parts[0])>0)
			if(parseInt(parts[0])<13) 
				if(parseInt(parts[1])>0)
					if(parseInt(parts[1])<32)
						if(parseInt(parts[2])>2004)
							if(parseInt(parts[2])<2010)
								error = "";
	//alert("="+parseInt(parts[0])+"="+parseInt(parts[1])+"="+parseInt(parts[2])+"=");
  return error;
}

function checkZip(oEl) {
   var error="";
	var tempzip = oEl.value.replace(" ","");
	var tempzip = oEl.value.replace("-","");
  	var illegalChars = /\D/gi;
   if (illegalChars.test(tempzip)) error = oEl.name + " contains illegal characters.\n";
   if(tempzip.length != 5 && tempzip.length != 9) error = "The Zip Code is Invalid.\n";
   return error;
}
