	function markErrorField(errField){
		errField.style.border= "solid 1px #ff0000";
	}
	
	function markNormalField(normField){
		normField.style.border= "solid 1px #CCCCCC";
	}
	
	function isValidDate(date) {
 		var dateStr = String(date);
		var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
		var matchArray = dateStr.match(datePat); 	
		var errMsg = "";
		
		if (matchArray == null) 
		{
			errMsg="Date is not in a valid format ";
			return errMsg;
			
		}
		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
		year = matchArray[4];
		if (month < 1 || month > 12)
		{ // check month range
			errMsg="Month must be between 1 and 12 ";
			return errMsg;
		}
		if (day < 1 || day > 31)
		{
			errMsg="Day must be between 1 and 31 ";
			return errMsg;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) 
		{
			errMsg="Month "+month+" doesn't have 31 days! ";
			return errMsg;
		}
		if (month == 2) 
		{ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) 
			{
				errMsg="February " + year + " doesn't have " + day + " days! ";
				return errMsg;
			}
		}
		
		return errMsg;  
	}
	
	function validateEmail(emailStr) {
     if (emailStr.length == 0) {
         return true;
     }
     var checkTLD=0;
     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 false;
     }
     var user=matchArray[1];
     var domain=matchArray[2];
     for (i=0; i<user.length; i++) {
         if (user.charCodeAt(i)>127) {
             return false;
         }
     }
     for (i=0; i<domain.length; i++) {
         if (domain.charCodeAt(i)>127) {
             return false;
         }
     }
     if (user.match(userPat)==null) {
         return false;
     }
     var IPArray=domain.match(ipDomainPat);
     if (IPArray!=null) {
         for (var i=1;i<=4;i++) {
             if (IPArray[i]>255) {
                 return false;
             }
         }
         return true;
     }
     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 false;
         }
     }
     if (checkTLD && domArr[domArr.length-1].length!=2 && 
         domArr[domArr.length-1].search(knownDomsPat)==-1) {
         return false;
     }
     if (len<2) {
         return false;
     }
     return true;
 }
	
	function isInteger(argvalue) {
 
 	var decimalReg = /^\d+$/;
 	if(isNaN(argvalue)){
 		
 	}
 	if(isNaN(argvalue)||!decimalReg.test(argvalue)){
 		return false;
 	}
 	return true;
 
  }
  
  function isFloat(val) {
  	var floatReg = /^\d+.\d+$/;
  	if(isNaN(val) || !floatReg.test(val)){
 		return false;
 	}
 	return true;
  
  }
  
  function isValidDecimalPlace(val){
  	var NumberOfDigitsAfterDecimalAllowed = 2;
  	var valid = false;
  	if(val.indexOf('.') > -1)
    {
		if((val.length - (val.indexOf('.')+1)) > NumberOfDigitsAfterDecimalAllowed)        
             valid = false;
          else
             valid = true;
    }
    else{
    		valid = true;
    }
    return valid;    
  }
