/*  -------------------------------------------------------------------------	                    JavaScript Form Validator Class                                 	    -------------------------------------------------------------------------  */  function Validator(frmname)	{			  this.formobj=document.forms[frmname];			if(!this.formobj)		{		  alert("BUG: couldnot get Form object "+frmname);			return;		}		if(this.formobj.onsubmit)		{					 this.formobj.old_onsubmit = this.formobj.onsubmit;		 this.formobj.onsubmit=null;		}		else		{					 this.formobj.old_onsubmit = null;		}				this.formobj.onsubmit=form_submit_handler; 		this.addValidation = add_validation;		this.setAddnlValidationFunction=set_addnl_vfunction;		this.setAddnlValidationFunctionAdmin=set_addnl_vfunctionAdmin;		this.clearAllValidations = clear_all_validations;	}// ---------To check the Password & confirm Password (Registration)function set_addnl_vfunction(DoCustomValidation)	{	  this.formobj.addnlvalidation = DoCustomValidation;	}function DoCustomValidation(){  if(frmRegister.txtPassword.value != frmRegister.txtConfirmPassword.value)   {    alert('Confirm password does not match with new password !! ');    return false;  }  else  {    return true;  }}//----------// ---------To check the Password & confirm Password (Change Password Admin)function set_addnl_vfunctionAdmin(DoCustomValidationAdmin)	{ 	  this.formobj.addnlvalidation = DoCustomValidationAdmin;	}function DoCustomValidationAdmin(){     if(frmChangePassword.txtNewPassword.value != frmChangePassword.txtConfirmPassword.value)  {    alert('Confirm password does not match with new password !! ');	frmChangePassword.txtNewPassword.value="";	frmChangePassword.txtNewPassword.focus();	frmChangePassword.txtNewPassword.style.backgroundColor="#FFFFCC";    return false;  }  else  {    return true;  }}//----------function clear_all_validations(){	for(var itr=0;itr < this.formobj.elements.length;itr++)	{		this.formobj.elements[itr].validationset = null;	}}function form_submit_handler(){	for(var itr=0;itr < this.elements.length;itr++)	{		if(this.elements[itr].validationset &&	   !this.elements[itr].validationset.validate())		{		  return false;		}	}	if(this.addnlvalidation)	{	  str =" var ret = "+this.addnlvalidation+"()";	  eval(str);    if(!ret) return ret;	}	return true;}function add_validation(itemname,descriptor,errstr){  if(!this.formobj)	{	  alert("BUG: the form object is not set properly");		return;	}//if	var itemobj = this.formobj[itemname];  if(!itemobj)	{	  alert("BUG: Couldnot get the input object named: "+itemname);		return;	}	if(!itemobj.validationset)	{	  itemobj.validationset = new ValidationSet(itemobj);	}  itemobj.validationset.add(descriptor,errstr);}function ValidationDesc(inputitem,desc,error){  this.desc=desc;	this.error=error;	this.itemobj = inputitem;	this.validate=vdesc_validate;}function vdesc_validate(){ if(!V2validateData(this.desc,this.itemobj,this.error)) {    this.itemobj.focus();	this.itemobj.style.backgroundColor="#FFFFCC";		return false; } return true;}function ValidationSet(inputitem){    this.vSet=new Array();	this.add= add_validationdesc;	this.validate= vset_validate;	this.itemobj = inputitem;}function add_validationdesc(desc,error){  this.vSet[this.vSet.length]= 	  new ValidationDesc(this.itemobj,desc,error);}function vset_validate(){   for(var itr=0;itr<this.vSet.length;itr++)	 {	   if(!this.vSet[itr].validate())		 {		   return false;		 }	 }	 return true;}function validateEmailv2(email){// a very simple email validation checking. // you can add more complex email checking if it helps     if(email.length <= 0)	{	  return true;	}    var splitted = email.match("^(.+)@(.+)$");    if(splitted == null) return false;    if(splitted[1] != null )    {      var regexp_user=/^\"?[\w-_\.]*\"?$/;      if(splitted[1].match(regexp_user) == null) return false;    }    if(splitted[2] != null)    {      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;      if(splitted[2].match(regexp_domain) == null)       {	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;	    if(splitted[2].match(regexp_ip) == null) return false;      }// if      return true;    }return false;}function V2validateData(strValidateStr,objValue,strError) {     var epos = strValidateStr.search("=");     var  command  = "";     var  cmdvalue = "";     var  textboxname = (objValue.name).substring(3);//To Print the textboxname while error occurs	if(epos >= 0)     {      command  = strValidateStr.substring(0,epos);      cmdvalue = strValidateStr.substr(epos+1);     }     else     {      command = strValidateStr;     }     switch(command)     {         case "req":         case "required":          { 			           if(eval(objValue.value.length) == 0)            {               if(!strError || strError.length ==0)               {                 strError ="Required Field !!"; 				//objValue.name.focus();			                 			  }//if               alert(strError);               return false;            }//if 			var at=objValue.value.charAt(0);			if(at==0) {		  			alert("Please Enter Valid Character !!");					    return false			}           break;                      }//case required         case "maxlength":         case "maxlen":           {              if(eval(objValue.value.length) >  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError = cmdvalue+"characters maximum ";                }//if                alert(strError);                return false;              }//if              break;           }//case maxlen         case "minlength":         case "minlen":            {              if(eval(objValue.value.length) <  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError = cmdvalue + " characters minimum !! ";                }//if                              alert(strError);                return false;                              }//if              break;             }//case minlen         case "alnum":         case "alphanumeric":            {               var charpos = objValue.value.search("[^A-Za-z0-9]"); 			  var At=objValue.value.charAt(0);			  if(isNaN(objValue.value.charAt(0))==0){			  alert("Please Enter Valid character !!");			  return false;			  }else if(objValue.value.length > 0 &&  charpos >= 0)  					  {						if(!strError || strError.length ==0) 							{ 							  strError ="Only alpha-numeric characters allowed !!"; 							}//if 											alert(strError);					return false; 					  }				//}//else 			  			  break;        }//case alphanumeric         case "alnumlogin":         case "alphanumericlogin":            { 			                var charpos = objValue.value.search("[^A-Za-z0-9_-]");               var At=objValue.value.charAt(0);			  if(isNaN(objValue.value.charAt(0))==0){			  alert("Enter valid Login Name !!");			  return false;			  }else if(objValue.value.length > 0 &&  charpos >= 0)               {                if(!strError || strError.length ==0)                 {                   strError ="Only alpha-numeric, undescores, dash are allowed !! ";                 }//if                               return false;               }//if               break; 			            }//case alphanumericlogin 		          case "num":         case "numeric":            {               var charpos = objValue.value.search("[^0-9]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                 if(!strError || strError.length ==0)                 {                   strError = "Only digits allowed ";                 }//if                               alert(strError);                 return false;               }//if               break;                          }//numeric         case "alphabetic":         case "alpha":            {               var charpos = objValue.value.search("[^A-Za-z]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                   if(!strError || strError.length ==0)                 {                   strError = "Only alphabetic characters allowed !!";                 }//if                                             alert(strError);                 return false;               }//if               break;            }//alpha 							 case "alphabeticumerictrim":          case "alpha1numtrim":           { 			/*var at=objValue.value.charAt(0);			if(at==0) {			alert("Enter the first character without white space");		    return false			}*/			if(objValue.value.length < 0 &&  charpos < 0 )               {                  if(!strError || strError.length ==0)                 {                   strError = "Only alphabetic characters allowed !!";                 }//if                                             alert(strError);                 return false;               }//if               break;            }//alphalnumtrim 				 case "whitespaceatbegining":          case "whitespatbeg":           { 			var at=objValue.value.charAt(0);			if(at==0) {			alert("Enter the first character without white space !!");		    return false			}		break;		 }	case "validUrl":	{		var goodurl =objValue.value.match("^((http:\/\/www\.|https:\/\/www\.|ftp:\/\/|www\.|www\.)([a-zA-Z0-9]+)(\.[a-zA-Z]{2,3}))$");					if (!goodurl)		{		   alert("Please enter a valid website URL");		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}		case "validLinkUrl":	{		var goodurl =objValue.value.match("^((http:\/\/www\.|https:\/\/www\.|ftp:\/\/|www\.|www\.)([a-zA-Z0-9]+)(\.[a-zA-Z]{2,3}\/[a-zA-Z\.]+))$");					if (!goodurl)		{		   alert("Please enter a valid website URL");		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}	case "specialCharacter":	{		var goodChararter =objValue.value.match("^([a-zA-Z0-9-&\. ]+)$");					if (!goodChararter)		{		   alert("Please do not enter any special character");		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}			 			case "alnumhyphen":			{              var charpos = objValue.value.search("[^A-Za-z0-9\-_]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                   if(!strError || strError.length ==0)                 {                   strError = "characters allowed are A-Z,a-z,0-9,- and _";                 }//if                                             alert(strError);                 return false;               }//if 						break;			}		        case "email":           {                if(!validateEmailv2(objValue.value))                {                  if(!strError || strError.length ==0)                  {                     strError ="Enter a valid Email address !! "; 					                  }//if                                                                alert(strError);                  return false;                }//if 				var at=objValue.value.charAt(0);				if(objValue.value.indexOf('@.') != -1 || objValue.value.indexOf('.@') != -1 || objValue.value.indexOf('..') != -1 || at=='.'){				alert("Enter a valid Email address !! ");				}								/*				if(at==".") {				alert("Enter a valid Email address ");				return false				}*/           break;           }//case email         case "lt":         case "lessthan":          {             if(isNaN(objValue.value))             {               alert("Should be a number !!");               return false;             }//if             if(eval(objValue.value) >=  eval(cmdvalue))             {               if(!strError || strError.length ==0)               {                 strError = " value should be less than "+ cmdvalue;               }//if                             alert(strError);               return false;                              }//if                         break;          }//case lessthan         case "gt":         case "greaterthan":          {             if(isNaN(objValue.value))             {               alert("Should be a number !!");               return false;             }//if              if(eval(objValue.value) <=  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError =" value should be greater than "+ cmdvalue;                }//if                              alert(strError);                return false;                              }//if                         break;          }//case greaterthan         case "regexp":          { 		 	if(objValue.value.length > 0)			{	            if(!objValue.value.match(cmdvalue)) 	            { 	              if(!strError || strError.length ==0) 	              { 	                strError = " Invalid characters found !! "; 	              }//if                                                               	              alert(strError); 	              return false;                   	            }//if 			}           break;          }//case regexp         case "dontselect":          {             if(objValue.selectedIndex == null)             {               alert("BUG: dontselect command for non-select Item");               return false;             }             if(objValue.selectedIndex == eval(cmdvalue))             {              if(!strError || strError.length ==0)               {               strError =" Please Select one option !! ";               }//if                                                                             alert(strError);               return false;                                                }              break;          }//case dontselect     }//switch     return true; }function ltrim ( s ){	return s.replace( /^\s*/, "" )}function rtrim ( s ){	return s.replace( /\s*$/, "" );}function trim ( s ){	return rtrim(ltrim(s));}