/*  -------------------------------------------------------------------------	                    JavaScript Form Validator                                 Version 2.0.2	Copyright 2003 JavaScript-coder.com. All rights reserved.	You use this script in your Web pages, provided these opening credit    lines are kept intact.	The Form validation script is distributed free from JavaScript-Coder.com	You may please add a link to JavaScript-Coder.com, 	making it easy for others to find this script.	Checkout the Give a link and Get a link page:	http://www.javascript-coder.com/links/how-to-link.php    You may not reprint or redistribute this code without permission from     JavaScript-Coder.com.		JavaScript Coder	It precisely codes what you imagine!	Grab your copy here:		http://www.javascript-coder.com/    -------------------------------------------------------------------------  */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.clearAllValidations = clear_all_validations;}function set_addnl_vfunction(functionname){  this.formobj.addnlvalidation = functionname;}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();		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 = "";     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 = objValue.name + " : Required Field";               }//if               alert(strError);               return false;            }//if            break;                      }//case required         case "maxlength":         case "maxlen":           {              if(eval(objValue.value.length) >  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError = objValue.name + " : "+cmdvalue+" characters maximum ";                }//if                alert(strError + "\n[Current length = " + objValue.value.length + " ]");                return false;              }//if              break;           }//case maxlen         case "minlength":         case "minlen":            {              if(eval(objValue.value.length) <  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError = objValue.name + " : " + cmdvalue + " characters minimum  ";                }//if                              alert(strError + "\n[Current length = " + objValue.value.length + " ]");                return false;                              }//if              break;             }//case minlen         case "alnum":         case "alphanumeric":            {               var charpos = objValue.value.search("[^A-Za-z0-9]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                if(!strError || strError.length ==0)                 {                   strError = objValue.name+": Only alpha-numeric characters allowed ";                 }//if                 alert(strError + "\n [Error character position " + eval(charpos+1)+"]");                 return false;               }//if               break;            }//case alphanumeric         case "num":         case "numeric":            {               var charpos = objValue.value.search("[^0-9]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                 if(!strError || strError.length ==0)                 {                   strError = objValue.name+": Only digits allowed ";                 }//if                               alert(strError + "\n [Error character position " + eval(charpos+1)+"]");                 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 = objValue.name+": Only alphabetic characters allowed ";                 }//if                                             alert(strError + "\n [Error character position " + eval(charpos+1)+"]");                 return false;               }//if               break;            }//alpha 		case "alnumhyphen":			{              var charpos = objValue.value.search("[^A-Za-z0-9\-_]");               if(objValue.value.length > 0 &&  charpos >= 0)               {                   if(!strError || strError.length ==0)                 {                   strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _";                 }//if                                             alert(strError + "\n [Error character position " + eval(charpos+1)+"]");                 return false;               }//if 						break;			}        case "email":           {                if(!validateEmailv2(objValue.value))                {                  if(!strError || strError.length ==0)                  {                     strError = objValue.name+": Enter a valid Email address ";                  }//if                                                                alert(strError);                  return false;                }//if            break;           }//case email         case "lt":         case "lessthan":          {             if(isNaN(objValue.value))             {               alert(objValue.name+": Should be a number ");               return false;             }//if             if(eval(objValue.value) >=  eval(cmdvalue))             {               if(!strError || strError.length ==0)               {                 strError = objValue.name + " : value should be less than "+ cmdvalue;               }//if                             alert(strError);               return false;                              }//if                         break;          }//case lessthan         case "gt":         case "greaterthan":          {             if(isNaN(objValue.value))             {               alert(objValue.name+": Should be a number ");               return false;             }//if              if(eval(objValue.value) <=  eval(cmdvalue))              {                if(!strError || strError.length ==0)                {                  strError = objValue.name + " : 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 = objValue.name+": 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 = objValue.name+": Please Select one option ";               }//if                                                                             alert(strError);               return false;                                                }              break;          }//case dontselect     }//switch     return true; }/*	Copyright 2003 JavaScript-coder.com. All rights reserved.*/