var msg=true;
function validate(object,rule,errMsg)
{

	if(msg==true)
	{
		if(validateValues(object,rule,errMsg)==false)
		{
			if(object.readOnly==false)
			{
				object.focus();
			}
			if(object.type=='select-one')
			{
				object.focus();
			}
			msg=false;
		}
	}
}
function validateValues(formObj,rule,errMsg)
{
   	var epos = rule.search("="); 
    var  cmdvalue = ""; 
    var temp=null;
    if(epos >= 0) 
    { 
      temp  = rule.substring(0,epos); 
      cmdvalue = rule.substr(epos+1); 
      rule=temp;     
    } 
  switch(rule) 
    { 
        case "req": 
        case "required": 
         { 
         //alert(formObj.name)
           if(eval(formObj.value.length)== 0) 
           { 
             //alert(eval(formObj.value.length)==0)
             alert(errMsg); 
             return false; 
           }//if 
           break;             
         }
        case "maxlen": 
        case "maxlength": 
         { 
         //alert(formObj.name)
           if(eval(formObj.value.length)> cmdvalue) 
           { 
             //alert(eval(formObj.value.length)==0)
             alert(errMsg); 
             return false; 
           }//if 
           break;             
         }
         //case LESSTHAN NUMBERS
         case "lessthan": 
         case "lt": 
         { 
            if(isNaN(formObj.value)) 
            { 
              alert(formObj+": Should be a number "); 
              return false; 
            }//if 
             if(eval(formObj.value) <  eval(cmdvalue)) 
             { 
               if(!errMsg || errMsg.length ==0) 
               { 
                 strError = formObj.name+ " : value should be greater than to"+ cmdvalue; 
               }//if               
               alert(errMsg); 
               return false;                 
             }//if             
            break; 
         }
         //case Greater NUMBERS
         case "greaterthan": 
         case "gt": 
         { 
            if(isNaN(formObj.value)) 
            { 
              alert(formObj+": Should be a number "); 
              return false; 
            }//if 
             if(eval(formObj.value) >  eval(cmdvalue)) 
             { 
               if(!errMsg || errMsg.length ==0) 
               { 
                 strError = formObj.name+ " : value should be greater than to"+ cmdvalue; 
               }//if               
               alert(errMsg); 
               return false;                 
             }//if             
            break; 
         }
         //case lesser dates 
         case "lesserDates":
        {
           var date1=dateValue(formObj.value);
           var date2=dateValue(cmdvalue);
           /*alert(formObj.name)
           alert(date1+"-------"+date2)-*/
           if(date1<date2)
           {
              alert(errMsg); 
              return false;     
           }
           break;
        }
         case "greaterDates":
        {
           var date1=dateValue(formObj.value);
           var date2=dateValue(cmdvalue);
           if(date1>date2)
           {
              alert(errMsg); 
              return false;     
           }
           break;
        }
        case "equals":
        {
           var leftValue=formObj.value;
           var rigthValue=cmdvalue;
           if(leftValue==rigthValue)
           {
              alert(errMsg); 
              return false;     
           }
           break;
        }
        case "notequals":
        {
           var leftValue=formObj.value;
           var rigthValue=cmdvalue;
           if(leftValue!=rigthValue)
           {
              alert(errMsg); 
              return false;     
           }
           break;
        }
        
              
   }//End of switch

return true;
}
//End of Validating Functions
//Function Converts Date into a Number
function dateValue(gdate)
{
	var splitdt = new Array();
	var newdt
	splitdt = gdate.split("-");
	newdt = splitdt[2]+splitdt[1]+splitdt[0];
	return newdt;
}



function regExpChecking(regExp,formObj,errMsg)
{
      
     if(msg==true)
     { 
       var tst=formObj.value;
	   var pattern = regExp;
	   
   	   var matchArray = tst.match(pattern);
   	  
   	   if (matchArray == null) 
	   {		
		 alert(errMsg);
		 if(formObj.readOnly==false)
		 {
		 	formObj.focus();
		 }
		 if(formObj.type=='select-one')
		 {
		 	formObj.focus();
		 }
		 msg=false;
		 return false;
	}	 
		
	   }//if
}

// Removes leading whitespaces
  function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
  }

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}
//for not accepting special characters	     
function blockingSplChars()
{
	if((event.keyCode==34||event.keyCode==43||event.keyCode==35||event.keyCode==37||event.keyCode==38||event.keyCode==39))
        return false;
    else
    	return true;    
}
