/*  -------------------------------------------------------------------------	                    JavaScript Form Validator Class                                 	    -------------------------------------------------------------------------  */  function compareCPC(CPC,maxAmt) {if(parseInt(CPC)>parseInt(maxAmt)) {	alert("CPC can't be greater than Max Amount Per Day.");	return false;}}function compareCPM(CPM,maxAmt) {	if(parseInt(CPM)>parseInt(maxAmt)) {		alert("CPM can't be greater than Max Amount Per Day.");		return false;	}}function checkBalance(balance,maxAmt) {	if(parseInt(balance)<parseInt(maxAmt)) {		alert("Your account balance is low. Please add balance in your account.");		return false;	}}/***********VALIDATIONS FOR URL STARTS******************/	function checkValidURLNew(val){			 			var httpregex=/^([a-zA-Z]+:\/\/)/;			var urlregex=/^\w+.[.\w]*\w$/;			var value=val;			var match=value.match(httpregex); // has a protocol indicator  				 if (match)				 {	 					  match=value.substr(match[1].length,value.length);					/*-----------------------------------------------------------------*/ 					  if(match.lastIndexOf("/")>0)	 				   match=match.substring(0,match.lastIndexOf("/"));					  var ipPattern1 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):(\d{1,4})$/;					  var ipPattern =	/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;  					  var ipPattern0 =	/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;					    					  var ipPattern2 =	/^(\d{1,3})\.(\d{1,3})$/;					  					     					  var ipPattern3 =	/^(\d{1,3})$/;							  	  					  if(match.match(ipPattern) || match.match(ipPattern1) || match.match(ipPattern0) || match.match(ipPattern2) || match.match(ipPattern3))					 	 							match=verifyIP(match);				  					 					  else					  					   					  					  		match=validarURL(match);										/*-----------------------------------------------------------------*/					  				}				else{ 						 					 					  var match=value;					  /*-----------------------------------------------------------------*/ 					  if(match.lastIndexOf("/")>0)	 				   match=match.substring(0,match.lastIndexOf("/"));					  var ipPattern1 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):(\d{1,4})$/;					  var ipPattern =	/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;  					  var ipPattern0 =	/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;					    					  var ipPattern2 =	/^(\d{1,3})\.(\d{1,3})$/;					  					     					  var ipPattern3 =	/^(\d{1,3})$/;							  			  					  if(match.match(ipPattern) || match.match(ipPattern1) || match.match(ipPattern0) || match.match(ipPattern2) || match.match(ipPattern3))					 	 							match=verifyIP(match);				  					 					  else					  					   					  					  		match=validarURL(match);										/*-----------------------------------------------------------------*/																					}				 				  				 if(match==false || match==null)				 {					  return false;				 }				 else 				 	return true;		}		//check Valid URL ends		function validarURL(val) 	{    		var myRegxp = /^www./;		var match=val.match(myRegxp);				if(match) val=val.substr(4,val.length);	  		var v = new RegExp(); 	    v.compile("^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); 	    	if (!v.test(val))          	return false;      		else			return true;	}  	<!-- Begin	function verifyIP(IPvalue) {		errorString = "";				var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;				var ipPattern1 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):(\d{1,4})$/;				var ipArray = IPvalue.match(ipPattern);		if(ipArray==null)		 ipArray=IPvalue.match(ipPattern1);				if (IPvalue == "0.0.0.0")			errorString = 'error'		else if (IPvalue == "255.255.255.255")			errorString = 'error';		if (ipArray == null)			errorString = 'error';		else {					for (i = 0; i < 4; i++) {				thisSegment = ipArray[i];			 				if (thisSegment > 255 && thisSegment!='' ) {				errorString = 'error';				i = 4;				}				if ((i == 0) && (thisSegment > 255)) {					errorString = 'error';					i = 4;				  }		   }		}		extensionLength = 3;		if (errorString == "")			return true;		else			return false; 		}	/*****************VALIDATIONS FOR URL ENDS ********************/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(frmAddSupplier.txtPassword.value != frmAddSupplier.txtConfirmPassword.value) {		alert('Password does not match with Confirm password !! ');		return false;	}		if(frmAddSupplier.txtPhone.value=="" && frmAddSupplier.txtMobile.value=="") {		alert('Please input at least one of phone or mobile.   ');return false;	}		 }function DoSupplierValidation() {			if(frmSupplierProfile.txtPhone.value=="" && frmSupplierProfile.txtMobile.value=="") {		alert('Please input at least one of phone or mobile.   ');return false;	}		 }// ---------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	//alert(document.frmfeedback.txtRate.length);	var itemobj = this.formobj[itemname];//var itemobj = eval("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 	var re = /^\D(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,5}))$/    return re.test(email);/*    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 		     if((objValue.value) == 0 )            {                             strError ="Please avoid blank spaces !!"; 				//objValue.name.focus();					              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(objValue.value != "") {             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 				 if(objValue.value.length > 0&&objValue.value ==0)                 {                   strError = "please provide correct values ";                //if                               alert(strError);                 return false; 				 }				 var at=objValue.value.charAt(0);			if(objValue.value.length > 0&&at==0) {			alert("Enter the first character non zero  ");		    return false			}              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}){1,2}))$");			//	var goodurl =checkValidURLNew	(objValue.value);			if (!goodurl)		{		   alert("Please enter a tetealid 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-z  A-Z0-9-&\.]+)$");					if (!goodChararter)		{		  if(!strError || strError.length ==0)                 {                   strError = " Please input valid user name. ";                }//if                                             alert(strError); 		   		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}			 case "zipCodesix":	{	if(objValue.value.length==0){ return true;	}	if((objValue.value.length>0)&&(objValue.value.length!=6)){				alert("Please enter six character for zip code" );				 return false;	}		var goodChararter =objValue.value.match("^([_a-zA-Z0-9-&\.]+)$");					if (!goodChararter)		{		                    strError = " Please input valid zip code. ";                          alert(strError); 		   		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}case "specialCharacterwithNotReq":	{	if(objValue.value.length==0){		return true;	}else{		var goodChararter =objValue.value.match("^([a-zA-Z\. ]+)$");					if (!goodChararter)		{		  if(!strError || strError.length ==0)                 {                   strError = " Special characters are not allowed in user name. ";                }//if                                             alert(strError); 		   		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}}	case "floatwithNotReg":	{		if(objValue.value.length==0){		return true;	}else{			if(objValue.value.length<16){				 alert("Please enter valid card No. "); 		   objValue.focus();		   return false;						}		var goodChararter =objValue.value.match("^([0-9. ]+)$");					if (!goodChararter)		{			if(!strError || strError.length ==0)                 {                   strError = "Please  enter numeric values";                 }//if                         		     alert(strError); 		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}}		case "floatwithNotRegCardVar":	{		if(objValue.value.length==0){		return true;	}else{			if((objValue.value.length<3)||(objValue.value.length>6)){				 alert("Please enter valid card verfication No. "); 		   objValue.focus();		   return false;						}		var goodChararter =objValue.value.match("^([0-9. ]+)$");					if (!goodChararter)		{			if(!strError || strError.length ==0)                 {                   strError = "Please  enter numeric values";                 }//if                         		     alert(strError); 		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}}	case "float":	{		var j=0;		for(i=0;i<objValue.value.length;i++) {			if(objValue.value.charAt(i)==".") {				j++;			}		}		if(j>=2) {			strError="Please enter valid currency value.";		   alert(strError); 		   objValue.focus();		   return false;		}		var goodChararter =objValue.value.match("^([0-9.]+)$");					if (!goodChararter)		{			if(!strError || strError.length ==0)                 {                   strError = "Please enter numeric values.";                 }//if                         		     alert(strError); 		   objValue.focus();		   return false;		}		else{			return true;		}	break;			}			 			 case "floatPrice":	{		var goodChararter =objValue.value.match("^([0-9.a-z ]+)$");					if (!goodChararter)		{		   		   if(!strError || strError.length ==0)                 {                   strError = "Please enter the price.";                 }//if                         		     alert(strError); 		   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 				if(objValue.value!="") {						var str=objValue.value						var filter=/^[A-Za-z]([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,4}(?:\.[a-z]{2})?)$/i							if (!filter.test(str)){							alert("Please enter correct email address ");								objValue.focus();								return false						}				}						//	if (confirm("Do you really want to send email ?  ")){/*				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 !! ");				return false; 				}*/								/*				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 		case "compareCPMandMaxAmt":		{			if(parseInt(objValue.value)>=parseInt(strError)) {				alert("CPM can't be greater that max amount per day.");				return false;			}		}		case "compareCPCandMaxAmt":		{			if(parseInt(objValue.value)>=parseInt(strError)) {				alert("CPC can't be greater that max amount per day.");				return false;			}		}			    }//switch     return true; }function ltrim ( s ){	return s.replace( /^\s*/, "" )}function rtrim ( s ){	return s.replace( /\s*$/, "" );}function trim ( s ){	return rtrim(ltrim(s));}