/*     This is the source code for the validation function.     Add the following code just after the </HEAD> in the files where the     generalised validation functionality is required.     <SCRIPT language="JavaScript1.2" src="validation.js"></SCRIPT> */     /*     *   File : validation.js     *         *       */ //---------------------------------EMail Check ------------------------------------ /*  checks the validity of an email address entered *   returns true or false *   */ function validateEmail(email){// a very simple email validation checking. // you can add more complex email checking if it helps     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 validateData *  Checks each field in a form *  Called from validateForm function */ function validateData(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 + " : campo obbligatorio";               }//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[Attuale lunghezza = " + objValue.value.length + " caratteri ]");                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 + ": minimo " + cmdvalue + " caratteri ";                }//if                              alert(strError + "\n[Attuale lunghezza = " + objValue.value.length + " caratteri ]");                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(!validateEmail(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.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; } /* * function validateForm * the function that can be used to validate any form * returns false if the validation fails; true if success * arguments : *   objFrm     : the form object *   arrObjDesc : an array of objects describing the validations to conduct on each *        input item. *          The array should consist of one object per input item in the order the input *          elements are present in the form. Each object consist of zero or more validation *          objects. Each of these validation object is a pair consisting of the validation *          descriptor string and an optional Error message. */ function validateForm(objFrm,arrObjDesc) {  for(var itrobj=0; itrobj < arrObjDesc.length; itrobj++)  {    if(objFrm.elements.length <= itrobj)    {         alert("BUG: Obj descriptor for a non existent form element");         return false;    }//if    for(var itrdesc=0; itrdesc < arrObjDesc[itrobj].length ;itrdesc++)    {       if(validateData(arrObjDesc[itrobj][itrdesc][0],                  objFrm[itrobj],arrObjDesc[itrobj][itrdesc][1]) == false)        { 	     objFrm[itrobj].focus();         return false;        }//if    }//for  }//for  return true;} 
