function ClientValidatorObject()
  {
  this.arrFejl = new Array();
 
  this.strFejl='';     
  this.objToGetFocus; 

  this.Init =
  function(reset)
    {
    if (this.arrFejl.length > 0)
      {
      var objTmp;
      for (var n=0; n < this.arrFejl.length; n++) 
        { 
        objTmp=this.arrFejl[n];
        if (reset)
          objTmp.className = objTmp.className.replace(/Error/,"");
        else            
          objTmp.className += ' Error';
        }
      if (reset) 
        {
        this.arrFejl = new Array();
        this.strFejl = '';
        this.objToGetFocus = 0 ;
        }
      }
    }

  this.SetError =
    function (field,msg)
      {
      this.arrFejl[this.arrFejl.length] = field; 
      if (msg.length > 0) this.strFejl += msg + '\n\n' ;
      if (typeof(this.objToGetFocus) != 'object') this.objToGetFocus = field;
      }  

  this.TomString =
    function(field)
      {
      var regString =/\S+/;        
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes en tekst i feltet: ' + field.id : arguments[1];                    
      if (!regString.test(field.value)){
        this.SetError(field, ErrMsg);
        return false;
      }
      else{
        return true;
      }
    }
      
      

  this.Email =
    function(field)
      {
      var regEmail  =/^[\w-_\.]+[@]{1}[\w-_\.]*[\w][\.]{1}\w+$/;
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes en valid e-mail i feltet: ' + field.id : arguments[1];  
      if (!regEmail.test(field.value)){
        this.SetError(field, ErrMsg);
        return false;
      }
      else{
        return true;
      }
    }


  this.HelTal =
    function(field)
      {
      var regNumber =/^\d+$/;      
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes et heltal i feltet: ' + field.id : arguments[1];  
      if (!regNumber.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }
  this.Postnummer =
    function(field)
      {
      var regNumber =/^\d{1,5}$/;      
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes et postnummer bestående af 1-5 cifre' + field.id : arguments[1];  
      if (!regNumber.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }
  this.PositivtHelTal =
    function(field)
      {
      var regPosNumber =/^[1-9]+([0-9]*)?$/;      
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes et positivt heltal i feltet: ' + field.id : arguments[1];  
      if (!regPosNumber.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }
  this.ForanstilletNulHelTal =
    function(field)
      {
      var regPosNumber =/^[0-9]*?$/;      
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes et positivt heltal i feltet: ' + field.id : arguments[1];  
      if (!regPosNumber.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }



  this.Beloeb =
    function(field)
      {
      var regBeloeb=/^[-0-9]+([,][0-9]{0,2})?$/;
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes et beløb i feltet: ' + field.id : arguments[1];  
      if (!regBeloeb.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }

  this.Vaegt =
    function(field)
      {
      var regVaegt=/^[-0-9]+([,][0-9]{0,3})?$/;
      var ErrMsg = (arguments[1] == null) ? '- Der skal indtastes en vægt i feltet: ' + field.id : arguments[1];  
      if (!regVaegt.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else{
        return true;
      }
    }

    
    
  this.Evaluer =
    function(field1,field2,operator){
      var ErrMsg = (arguments[3] == null) ? '- Betingelserne er ikke opfyldt for: ' + field1.id + ' og ' + field2.id: arguments[3];
      var field1Temp=field1.value.replace(",",".");
      var field2Temp=field2.value.replace(",",".");
      if (field1Temp.length==0){
        field1Temp=0
      }
      if (field2Temp.length==0){
        field2Temp=0
      }

      if (isNaN(field1Temp)){
        this.SetError(field1, '- Dette felt er ikke nummerisk: ' + field1.id);
        return false;
      }
      if (isNaN(field2Temp)){
        this.SetError(field2, '- Dette felt er ikke nummerisk: ' + field2.id);
        return false;
      }
      if (!(eval(field1Temp+operator+field2Temp))){
        this.SetError(field1, ErrMsg);
        this.SetError(field2,"");
        return false;
      }
      else{
        return true;
      }
    }

  this.Radio =
    function(field)
      {
      var ErrMsg = (arguments[1] == null) ? '- Der skal vælges en radion button: ' + field.id : arguments[1];  
      var radioSelected = false;
      for (i=0;i<field.length;i++)
        {
        if (field[i].checked) 
          {
          radioSelected = true;
          break;
          }
        } 
      if (!radioSelected){
        this.SetError(field[0], ErrMsg);
        return false;
      }
      else{
        return true;
      }
    }
  this.EANKodeModulus =
    function(field)
      {
      var intModulus=0;
      var regEANNumber=/^[1-9]\d{6,12}$/;
      var ErrMsg = (arguments[1] == null) ? '- EANkoden er ikike udfyldt korrekt: ' + field.id : arguments[1];
      if (!regEANNumber.test(field.value)){
         this.SetError(field, ErrMsg);
         return false;
      }
      else if ((field.value>99999999 && field.value<1000000000)){
         this.SetError(field, ErrMsg);
         return false;
      }
      
      else{
        for (i=field.value.length-3;i>=0;i=i-2){
          intModulus=intModulus+(field.value.charAt(i)*1);
        }
        for (i=field.value.length-2;i>=0;i=i-2){
          intModulus=intModulus+(field.value.charAt(i)*3);
        }
        intModulus=(intModulus+(field.value.charAt(field.value.length-1)*1))*0.1;
        if(intModulus!=Math.round(intModulus)){
           this.SetError(field, ErrMsg);          
          return false;
        }
        return true;
      }
    }
    

  this.Resultat = 
    function()
      {
      if (this.strFejl != '') 
        { 
        this.Init(false); 
        alert('Fejl eller manglende indtastning! (markeret med gult)\n\n'+this.strFejl);
        if (typeof(this.objToGetFocus) == "object")
          {
          //Der forsøges at sætte feltet i focus og select
          try
            {
               this.objToGetFocus.focus();
               this.objToGetFocus.select();
             }
           catch (exception) 
             {
               //gør ingenting
            } 
           }
        return false;
        }
      else
      return true;
      }
  }
