/******************************************************************************
		AUTHOR:				Drew Toto
									Internet Pipeline
		DATE:					11.06.2000
		DESCRIPTION:	Validates all elements on a form
		RETURNS:			True if valid, otherwise false.
			
******************************************************************************/

var errColor = "red";
var normColor = "black";
var errWeight = "bold";
var normWeight = "normal";

function _validate() {

  var _el, _elname, _eltype, _elval;
  var _req, _func, _lab
  var _err = -1;

  if (ie) {
    for(j=0;j<arrEl.length;j++) {
      if ( arrEl[j][3][0].length > 0 )
			  _lab = arrEl[j][3][0];
		  else {
			  _lab = arrEl[j][0][0] + "_label";
			  _lab = _lab.substr(4);
      }
      errHandler( _lab, false );
    }
  }
  
  for (i=0;i<arrEl.length;i++) {
    _req = "";
    _elval = "";
    _elname = arrEl[i][0][0].substr(4);
    _eltype = arrEl[i][0][0].substr(0, 3);
    _el = eval( "document.form1."+_elname );
    var dependIndex = -1, depend = arrEl[i][4][0];
    for (n=0;n<arrEl.length;n++) {
      if ( depend == arrEl[n][0][0].substr(4) ) {
         dependIndex = n;
         break;
      }
    }
    if ( dependIndex > 0 ) {
      var cond = arrEl[dependIndex][6][0];
      if ( cond.length > 0 ) {
        var condLen = arrEl[i][5].length;
        for (k=0;k<condLen;k++) {
          if ( arrEl[i][5][k] == cond || arrEl[i][5][k] == "*" ) {
            _req = arrEl[i][2][k];
            _func = arrEl[i][1][k];
            if ( arrEl[i][3].length > k ) {
							if ( arrEl[i][3][k].length > 0 ) {
								_lab = arrEl[i][3][k];
							}
							else {
								_lab = arrEl[i][0][0] + "_label";
								_lab = _lab.substr(4);
							}
            }
            else {
              _lab = arrEl[i][0][0] + "_label";
							_lab = _lab.substr(4);
            }
            break;
          }
        }
      }
      else {
        _req = "No";
        _func = arrEl[i][1][0];
        if ( arrEl[i][3][0].length > 0 )
					_lab = arrEl[i][3][0];
				else {
					_lab = arrEl[i][0][0] + "_label";
					_lab = _lab.substr(4);
        }
      }
    }
    else {
      _req = arrEl[i][2][0];
      _func = arrEl[i][1][0];
      if ( arrEl[i][3][0].length > 0 )
				_lab = arrEl[i][3][0];
			else {
				_lab = arrEl[i][0][0] + "_label";
				_lab = _lab.substr(4);
      }
    } 
    switch ( _eltype ) {
      case "rdo" : case "chk" :
        //if ( _req == "Yes" ) {
					for (j=0;j<_el.length;j++) {
					  if ( _el[j].checked ) {
					    _elval = _el[j].value;
					  }  
					}
			  //}
			  if ( _elval.length > 0 ) {
			    arrEl[i][6][0] = _elval;
			  }
			  else if ( _req == "Yes" || _elval.length > 0 ) {
			    if (ie) {
			      errHandler( _lab, true );
			    }  
			    else {
			      setFocus(i);
			      return errHandler( _elname+"_empty", true );
			    }
			    if ( i < _err || _err == -1 )
			      _err = i;
			  }
        break;
      case "txt" : case "hid" :
		//alert( _el.name + '  |  ' + _el.type + '  |  ' +_el.value+' | '+ (_el.value==null));
        _elval = _el.value;
	_elval = (_elval==null)?'':_elval
        arrEl[i][6][0] = _elval;
        if ( _req == "Yes" || _elval.length > 0 ) {
          if ( !eval(_func+'( _elval )') ) {
            if (ie) {
              errHandler( _lab, true );
			      }
			      else {
			        setFocus(i);
			        return errHandler( _elname+"_empty", true );
			      }
			      
			      if ( i < _err || _err == -1 )
			        _err = i;
			    }
        }
        break;
      case "sel" :
		//alert( _el.name + '  |  ' + _el.type + '  |  ' +_el.value+' | '+ _el.options[_el.options.selectedIndex].value);
        _elval = _el.options[_el.options.selectedIndex].value
	_elval = (_elval==null)?'':_elval
        arrEl[i][6][0] = _elval;
        if ( _req == "Yes" || _elval.length > 0 ) {
          if ( !eval(_func+'( _elval )') ) {
            if (ie) {
              errHandler( _lab, true );
			      }
			      else {
			        setFocus(i);
			        return errHandler( _elname+"_empty", true );
			      }
			      
			      if ( i < _err || _err == -1 )
			        _err = i;
			    }
        }
        break;
      
    }
  }
  
  if ( _err != -1 ) {
    setFocus(_err);
    return false;
  }
return true;
}

function errHandler( _str, _err ) {
  if ( _err ) {
    if ( ie ) {
      eval( _str ).style.color=errColor;
      eval( _str ).style.fontWeight=errWeight;
    } 
    else {
      alert( eval( _str ) );
			return false; 
	  }
	}
	else {
	  if ( ie ) {
		//alert( _str );
	    eval( _str ).style.color=normColor;
			eval( _str ).style.fontWeight=normWeight;
	  }
	  else {
	    return true;
	  }
  }
}

function setFocus( _index ) {
  var name = arrEl[_index][0][0];
  name = name.substr(4);
  for(i=0;i<document.form1.length;i++) {
    if ( document.form1.elements[i].name == name ) {
      if (document.form1.elements[i].type == "hidden") { //put focus elsewhere
		document.form1.elements[i-2].focus();
	  }
	  else{
         document.form1.elements[i].focus();
      }
      if (document.form1.elements[i].type == "Text")
        document.form1.elements[i].select();
      return;
    }
  }
}

