
function FieldCheck( form_id )
{
  if (!form_id)
    form_id = 'form' ;
  this.fieldArray = Array() ;
  this.badValueArray = Array() ;
  this.messageArray = Array() ;
  this.returnArray = Array() ;

  this.radioArray = Array() ;
  this.radioMessageArray = Array() ;

  this.selectArray = Array() ;
  this.selectBadArray = Array () ;
  this.selectMessageArray = Array() ;

  this.form = getObj(form_id) ;
  
  this.addField = addField ;
  this.addRadio = addRadio ;
  this.addSelect = addSelect ;
  this.check = check ;

  var self = this ;
  this.onSubmit = new OnSubmit (this.form) ;
  this.onSubmit.addFunction ( function () 
    { return self.check(); } ) ;

  function addField ( field, bad_value, msg, rtrn )
  {
    var field_obj = getObj(field) ;
    if (field_obj)
    {
      this.fieldArray.push (field_obj) ;
      this.badValueArray.push (bad_value) ;
      this.messageArray.push (msg) ;
      this.returnArray.push (rtrn) ;
    }
//    else alert (field+', '+bad_value+', '+msg) ;
  }

  function addRadio ( field, msg )
  {
    var field_obj = this.form[field] ;
    if (field_obj)
    {
      this.radioArray.push (field_obj) ;
      this.radioMessageArray.push (msg) ;
    }
//    else alert (field+', '+bad_value+', '+msg) ;
        
  }
  
  function addSelect (field, bad_value, msg)
  {
    var field_obj = getObj (field) ;
    if(field_obj)
    {
      this.selectArray.push (field_obj) ; 
      this.selectBadArray.push (bad_value) ;
      this.selectMessageArray.push (msg) ;
    }
  }
  function check()
  {
    for ( var i=0 ; i < this.fieldArray.length ; i++ )
    {
      //alert (this.fieldArray[i].value+' == '+this.badValueArray[i]) ;
      if ( this.fieldArray[i].value == this.badValueArray[i] )
      {
        alert (this.messageArray[i]) ;
        return this.returnArray[i] ;
      }      
    }

    for ( var i=0 ; i < this.radioArray.length ; i++ )
    {
      var checked = false;
      for ( var j=0 ; j < this.radioArray[i].length ; j++ )
      {
        if ( this.radioArray[i][j].checked )
          checked = true;
      }
      if (!checked) 
      {
        alert (this.radioMessageArray[i]) ;
        return false ;      
      }
    }

    for ( var i=0; i < this.selectArray.length; i++ )
    {
      if (this.selectArray[i].options[this.selectArray[i].selectedIndex].value == this.selectBadArray[i])
      {
        alert(this.selectMessageArray[i]);
	return false
      }
    }
    
    return true ;
  }
}

function hideMessageOnChange(message_id, form_id)
{
  if (!form_id)
    form_id = 'form' ;

  var msg = getObj(message_id) ;
  if (msg)
  {
    var form = getObj(form_id) ;
    form.onfocus = form.onchange = form.onclick = function () 
    {
      msg.style.visibility = 'hidden' ;
      form.onfocus = form.onchange = form.onclick = function() {} ;
    }
  }
}

