/* product: macstrac macslink emacs */
/* last edit: 4/5/11 RF */
var validationPassed = true;

function formVal(frm) {
  var n, list, msg = '';
  var attr, el;
  var empty = true;
  var errs = [];
  var objRegExp  = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
  var addrErr = false;
  var result = true;
  var thisName = '', prevName = '';

  for (n = 0; n<frm.elements.length; n++) {
     el = frm.elements[n];
     attr = el.getAttribute("required");
     thisName = el.getAttribute("name");
     if (thisName === prevName) attr = '';
     prevName = thisName;
     if (attr) {
       switch (el.type) {
         case "select-one":
           if (el.selectedIndex === 0) {
             errs[errs.length] = el.getAttribute("desc");
           }
           break;
         case "textarea":
         case "text":
           if (el.value === '') {
             errs[errs.length] = el.getAttribute("desc");
           } else if (el.getAttribute("email") === 'Y' && !objRegExp.test(el.value)) {
             addrErr = true;
           }
           break;
         case "radio":
           empty = true;
           list = document.getElementsByName(el.name);
           for (x = 0; x < list.length; x++) {
              if (list[x].checked) {
                empty = false;
                break;
              }
           }
           if (empty) {
              errs[errs.length] = list[0].getAttribute("desc");
           }
           break;
         default:
           errs[errs.length] = el.getAttribute("desc");
           break;
       }
     }
  }
//if (addrErr || errs.length > 0) {
//  alert(errs.length);
//}
  if (errs.length > 0 || addrErr === 1) {
    result = false;
    if (errs.length === 1) {
      msg = errs[0] + ' is a required field.';
    } else if (errs.length > 1) {
      for (n = 0; n < (errs.length - 1); n++) {
         if (n > 0) msg += ', ';
         msg += errs[n];
      }
      msg += ' and ' + errs[errs.length - 1] + ' are required fields.';
    }
    if (addrErr) {
      msg += ' The format of the email address is not valid.';
    }
    alert(msg);
  }
  validationPassed = result;
  return result;
}

