﻿// JScript File
// version 1.0
// updated 2/21
// updated 5/21 turn the script into a script src call rather than include it on each form
function validateForm( frm )
{
var errors = "";

if( frm.avx_required )
{
  var reqs = frm.avx_required.value.split( "," );    
  for( var i = 0; i<= reqs.length - 1; i++ )
  {
    // first check to see if item is even defined
    if( defined( eval( 'frm.'+reqs[i] ) ) )
    {
      // first check to see if item is a radio object because if it is, I need to test each element individually
      if( isRadio( eval( 'frm.'+reqs[i] ) ) )
      {
          var obj = eval( 'frm.'+reqs[i] );
          var itemSelected = false;
          for( var j = 0; j <= obj.length - 1; j++ )
          {
            if( obj[j].checked )itemSelected = true;
          }
          if( !itemSelected )
          {
            if( errors != "" )errors += "\n";
            errors += '\t'+reqs[i]+' is a required field.';
          }
      }
      else
      {
        if( eval( 'frm.'+reqs[i]+'.value==null || frm.'+reqs[i]+'.value==""' ) )
        {
          if( errors != "" )errors += "\n";
          errors += '\t'+reqs[i]+' is a required field.';
        }
      } // END - if( isRadio( eval( 'frm.'+reqs[i] ) ) )
    } // END - if( defined( eval( 'frm.'+reqs[i] ) ) )
  } // END - for( var i = 0; i<= reqs.length - 1; i++ )
}

if( frm.avx_required_optionals )
{
  var reqs_opts = frm.avx_required_optionals.value.split( "," );
  for( var i = 0; i<= reqs_opts.length - 1; i++ )
  {
    var flds = reqs_opts[i].split( "|" );
    var exp = "", names = "";
    
    for( var j = 0; j <= flds.length - 1; j++ )
    {
      // first check to see if item is even defined
      if( defined( eval( 'frm.'+flds[j] ) ) )
      {
        if( exp != "" )exp += ' && ';
        exp += '( frm.'+flds[j]+'.value==null || frm.'+flds[j]+'.value=="" )';
        if( names != "" )names += ' or ';
        names += flds[j];
      }
    }
    if( eval( exp ) )
    {
      if( errors != "" )errors += "\n";
      errors += '\tEither '+names+' must be supplied.'; 
    }
  }
 }

if( errors != "" ) 
{
  alert( 'Please correct the errors noted below:\n\n' + errors + '\n');
  return false;
}
else
{
  return true;
}
}
function isRadio( testObject ) {
if( isArray( testObject ) )
{
  if( testObject[ 0 ].type == 'radio' ) return true;
}
return false;
}
function isArray(testObject) {   
return defined( testObject[0] ); //return testObject && !(testObject.propertyIsEnumerable('length')) && typeof testObject === 'object' && typeof testObject.length === 'number';
}
function defined(o) {
return typeof(o)!="undefined";
}


