
// function:
//  required_fields_valid
// purpose:
//  present alert if any required field is missing 
//  otherwise, submit form
function required_fields_valid(required_fields) {

 var returnval;

 // initialize required fields missing variables
 var rqrd_flds_missing_cnt = 0;
 var rqrd_flds_missing_lst = '';

 // verify all required fields have been supplied

 // loop through required_fields array
 for (var i=0 ; i < required_fields.length ; i++)
 {

  // check for valid required field name
  if ( eval('document.forms[0].' + required_fields[i] ) == null )
  {

   // required field element does not exist

   // include in required fields missing list
   rqrd_flds_missing_cnt++;
   if ( rqrd_flds_missing_lst.length > 0 )
   {
    rqrd_flds_missing_lst = rqrd_flds_missing_lst + '\n';
   }
   rqrd_flds_missing_lst = rqrd_flds_missing_lst + ' - ' + required_fields[i];

  }
  else
  {

   // required field element exists

   // check for valid field entry
   // note: if an element of the required_fields array is not a real
   //       form element, this script fails
   if ( eval('document.forms[0].' + required_fields[i] + '.value.length' ) == 0 )
   {
    rqrd_flds_missing_cnt++;
    if ( rqrd_flds_missing_lst.length > 0 )
    {
     rqrd_flds_missing_lst = rqrd_flds_missing_lst + '\n';
    }
    rqrd_flds_missing_lst = rqrd_flds_missing_lst + ' - ' + required_fields[i];
   }

  }

 }

 // check required fields missing count
 if ( rqrd_flds_missing_cnt > 0 )
 {
  var error_message = '';
  error_message = 'The following required fields are missing:\n'
   + rqrd_flds_missing_lst
   + '\nPlease fill these out and resubmit form.';
  window.alert(error_message); 
  returnval = false; 
 }
 // otherwise, submit and reset form
 else
 { 
  returnval = true; 
 }
 return returnval;

}

