FormVerifier.prototype.constructor=new FormVerifier(); FormVerifier.prototype.AddRequiredField=FormVerifier_AddRequiredField; FormVerifier.prototype.IsFieldRequired=FormVerifier_IsFieldRequired; FormVerifier.prototype.ClearErrors=FormVerifier_ClearErrors; FormVerifier.prototype.ErrorCount=FormVerifier_ErrorCount; FormVerifier.prototype.AddError=FormVerifier_AddError; FormVerifier.prototype.ReportErrors=FormVerifier_ReportErrors; FormVerifier.prototype.Reset=FormVerifier_Reset; FormVerifier.prototype.GetValueById=FormVerifier_GetValueById; FormVerifier.prototype.VerifyFieldExists=FormVerifier_VerifyFieldExists; FormVerifier.prototype.VerifyTextById=FormVerifier_VerifyTextById; FormVerifier.prototype.VerifyNumberById=FormVerifier_VerifyNumberById; FormVerifier.prototype.VerifyTextOrNumberById=FormVerifier_VerifyTextOrNumberById; FormVerifier.prototype.vpbi=FormVerifier_vpbi; FormVerifier.prototype.VerifyEmailById=FormVerifier_VerifyEmailById; FormVerifier.prototype.InValids=FormVerifier_InValids;   FormVerifier.prototype.TextCheck=FormVerifier_TextCheck; FormVerifier.prototype.NumberCheck=FormVerifier_NumberCheck;   FormVerifier.prototype.GC=FormVerifier_GC;   FormVerifier.prototype.ShowErrorField=FormVerifier_ShowErrorField; FormVerifier.prototype.GetRequired_NotSupplied=FormVerifier_GetRequired_NotSupplied;     var ERROR_ID=0; var ERROR_VAL=1; var STORED_TEXT=2;  var DISPLAYED_NAME=3;    var E_PROGRAMMER=0; var E_INVALID=1; var E_REQUIRED=2; var E_VALID=3;   function FormVerifier()  {   this.id_exists=false;  this.true_length=0;   this.data="";  this.required_fields=new Array();  this.required_field_names=new Array();  this.valids=new Array();  this.errors=new Array(2);  this.errors[ERROR_ID]=new Array();  this.errors[ERROR_VAL]=new Array();  this.errors[STORED_TEXT]=new Array();    this.error_messages=new Array();  this.error_messages[E_PROGRAMMER]="unknown error";  this.error_messages[E_INVALID]="";   this.error_messages[E_REQUIRED]="";     this.normal_text_colour='olive';  this.error_text_colour='red'; }    function FormVerifier_AddRequiredField(id, name)  {   this.required_fields.push(id);  this.required_field_names.push(name); }    function FormVerifier_IsFieldRequired(id)  {   var retVal=false;  for (var i=0;i < this.required_fields.length;i++)    if (this.required_fields[i] == id)     retVal=true;  return retVal; }    function FormVerifier_ClearErrors()  {   var i;  for(i=0;i < this.errors[ERROR_ID].length;i++)   {    this.ShowErrorField(i, false);   if (i < this.errors[ERROR_ID].length)     this.errors[ERROR_ID][i]=null;   if (i < this.errors[ERROR_VAL].length)     this.errors[ERROR_VAL][i]=null;   if (i < this.errors[STORED_TEXT].length)     this.errors[STORED_TEXT][i]=null;  }   this.errors[ERROR_ID].length=0;  this.errors[ERROR_VAL].length=0;  this.errors[STORED_TEXT].length=0;  this.errors.length=0;    this.errors=new Array(2);  this.errors[ERROR_ID]=new Array();  this.errors[ERROR_VAL]=new Array();  this.errors[STORED_TEXT]=new Array(); }    function FormVerifier_InValids(ch)  {   var i=0;   var found=false;  for (i=0;i < this.valids.length;i++)   {    if (this.valids[i] == ch)     found=true;  }   return found; }    function FormVerifier_GetRequired_NotSupplied()  {   var i=0;  var retStr="";  var errCount=0;  for (i=0;i < this.errors[ERROR_ID].length;i++)   {    if (this.errors[ERROR_VAL][i] == E_REQUIRED)    {     var id=this.errors[ERROR_ID][i];    for (var n=0;n < this.required_fields.length;n++)     {      if (this.required_fields[n] == id)      {       errCount++;      if (retStr.length)        retStr += "< ";      retStr += this.required_field_names[n];     }     }        }   }   var nLast=retStr.lastIndexOf("<");  if (nLast > 0 )   {    var len=retStr.length;   var open=retStr.substr(0, nLast);   var close=retStr.substr(nLast+1, len);   retStr=open + " and " + close;  }   retStr=retStr.replace(/</g, ",");    return retStr; }      function FormVerifier_ShowErrorField(index, highlight)  {   str=this.errors[ERROR_ID][index] + "_input";    if (elem_exists(str))   {    if (highlight)    {     gbi(str).style.color=this.error_text_colour;    var old_text=gbi(str).firstChild.data;    this.errors[STORED_TEXT][index]=old_text;    gbi(str).firstChild.data=old_text + ":   " + this.error_messages[this.errors[ERROR_VAL][index]];   }    else    {     gbi(str).style.color=this.normal_text_colour;;    gbi(str).firstChild.data=this.errors[STORED_TEXT][index];   }   }   else    alert("problem with " + str); }    function FormVerifier_ErrorCount()  {   return this.errors[ERROR_ID].length; }    function FormVerifier_AddError(id, e_type)  {   var found=false;  var i;  for (i=0;i < this.errors[ERROR_ID].length;i++)   {    if (this.errors[ERROR_ID][i] == id)     found=true;  }   if (!found)   {    var index=this.errors[ERROR_ID].length;   this.errors[ERROR_ID][index]=id;   this.errors[ERROR_VAL][index]=e_type;  }  }    function FormVerifier_ReportErrors()  {   var i=0;  for (i=0;i < this.errors[ERROR_ID].length;i++)   {    this.ShowErrorField(i, true);  }  }    function FormVerifier_Reset()  {   this.id_exists=false;  this.true_length=0;   this.data=""; }    function FormVerifier_GetValueById(id)  {   this.Reset();  if (!elem_exists(id+ "_field"))   {    alert("trying to vy non existant field " + id);   this.AddError(id, E_PROGRAMMER);   return false;  }   this.id_exists=true;  this.data=gbi(id+ "_field").value;  if (this.data.length)   {    var local_copy=this.data;   local_copy=local_copy.replace(/ /g, "");   this.true_length=local_copy.length;  }   return true; }      function FormVerifier_VerifyTextById(id)   {   var required=this.IsFieldRequired(id);  this.GetValueById(id);  this.valids.length=0;  this.valids.push(' ');  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return false;  }     if ((this.true_length == 0) && required)   {    this.AddError(id, E_REQUIRED);   return false;  }     var i=0;  for (i=0;i < this.data.length;i++)   {    if (!this.TextCheck(i) )    {     if (!this.InValids(this.data[i]))     {      this.AddError(id, E_INVALID);     return false;    }    }   }   return true; }      function FormVerifier_VerifyNumberById(id)   {   var required=this.IsFieldRequired(id);    this.GetValueById(id);  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return false;  }     if ((this.true_length) == 0 && required)   {    this.AddError(id, E_REQUIRED);   return false;  }     var i=0;  for (i=0;i < this.data.length;i++)   {    if (!this.NumberCheck(i) )    {     this.AddError(id, E_INVALID);    return false;   }   }   return true; }    function FormVerifier_VerifyTextOrNumberById(id)   {   var required=this.IsFieldRequired(id);    this.GetValueById(id);  this.valids.length=0;  this.valids.push(' ');  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return false;  }     if ((this.true_length) == 0 && required)   {    this.AddError(id, E_REQUIRED);   return false;  }     var i=0;  for (i=0;i < this.data.length;i++)   {    if ( (!this.TextCheck(i) )&&(!this.NumberCheck(i))&&(!this.InValids(this.data[i])) )    {     this.AddError(id, E_INVALID);    return false;   }   }   return true; }    function FormVerifier_vpbi(id)   {   var required=this.IsFieldRequired(id);    this.GetValueById(id);  this.valids.length=0;  this.valids.push(' ');  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return false;  }     if ((this.true_length) == 0 && required)   {    this.AddError(id, E_REQUIRED);   return false;  }     var i=0;  for (i=0;i < this.data.length;i++)   {    if (this.data[i] == '>' || this.data[i] == '<' || this.data[i] == ';')    {     this.AddError(id, E_INVALID);    return false;   }   }   return true; }      function FormVerifier_VerifyFieldExists(id)  {   this.GetValueById(id);  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return false;  }   return true; }    function FormVerifier_VerifyEmailById(id )   {   var required=this.IsFieldRequired(id);    this.GetValueById(id);  if (!this.id_exists)   {    this.AddError(id, E_PROGRAMMER);   return E_PROGRAMMER;  }     if ((this.true_length == 0) && required)   {    this.AddError(id, E_REQUIRED);   return E_REQUIRED;  }     this.valids.length=0;  this.valids.push('@');  this.valids.push('.');  this.valids.push('_');  this.valids.push('-');    var i=0;  for (i=0;i < this.data.length;i++)   {    if (!this.TextCheck(i) )    {     if (!this.NumberCheck(i))     {      if (!this.InValids(this.data[i]))      {       this.AddError(id, E_INVALID);      return E_INVALID;     }     }    }   }     var and_char=this.data.indexOf('@');  var dot_char=this.data.lastIndexOf('.');    if ((and_char == -1 )||(dot_char == -1))   {    this.AddError(id, E_INVALID);   return E_INVALID;  }   if ( dot_char <= and_char+1)   {    this.AddError(id, E_INVALID);   return E_INVALID;  }   return E_VALID;    }          function FormVerifier_TextCheck(i)  {   var retval=true;  if (this.data[i] < 'a' || this.data[i] > 'z')   {    if (this.data[i] < 'A' || this.data[i] > 'Z' )     retval=false;  }   return retval; }    function FormVerifier_NumberCheck(i)  {   var retval=true;  if (this.data[i] < '0' || this.data[i] > '9')    retval=false;  return retval; }        function FormVerifier_GC()  {       this.data=this.data.replace(/</g, "(");  this.data=this.data.replace(/>/g, ")");  this.data=this.data.replace(/;/g, ":");  this.data=this.data.replace(/&/g, escape('&'));  this.data=this.data.replace(new RegExp( "\\r\\n", "g" ),"|");  this.data=this.data.replace(new RegExp( "\\r", "g" ),"|");  this.data=this.data.replace(new RegExp( "\\n", "g" ),"|");    return this.data; }    