<!-- hide this script from old browsers
// **
// Functions: checkRequiredFields is originally from NetscapeWorld
// **
submitted = 0;
img_blank="http://www.mis2.udel.edu/images/blank.gif";
img_bang ="http://www.mis2.udel.edu/images/bang.gif";
img_star ="http://www.mis2.udel.edu/images/star.gif";

function browser_test() {
   if (navigator.userAgent.indexOf("MSIE") > 0) {
     if (navigator.appVersion.substring(0, 1) >= "4") {
       return; }
	 else {
       sorrymsg();
       history.back(); }
   }
 
   if (navigator.appName == "Netscape") {
     if (navigator.appVersion.substring(0, 3) >= "3.1") {
       return; }
 
     if (navigator.appVersion.substring(0, 3) == "3.0") {
       if (navigator.appVersion.substring(3, 4) == "b") {
          sorrymsg();
          history.back(); }
       else {
          return; }
     } 
  }
  sorrymsg();
  history.back();
}

function sorrymsg() {
     alert('\nYou are using :' + navigator.appName + ' (' +
       navigator.appCodeName + ') ' + navigator.appVersion +
       '\nSorry! You must use Netscape 3.0+ or MSIE 4.0+');
}

function sub_form(form) {
  if ( submitted > 0 ) {
    alert("\nClick only once on buttons" +
          "\n\nThis form has already been submitted.");
    return(false);
  }

  if (checkRequiredFields(form) == false) { return(false); }
  else { return(true); }
}
 
function CheckField(form,fld,t_flag) {
  var     val,msg;
  //alert("fldtype-> "+(fld.type).substring(0,6)+" "+fld.name);
  if ( (fld.type).substring(0,6) != "select" ) {
    strip_blanks(fld);
    if (t_flag == 'U') { fld.value = fld.value.toUpperCase(); }
    val = fld.value;
  } else { 
    if ( fld.selectedIndex == 0 ) { val = ""; }
    else { val = "fine"; }
    }

  
  //---------  find index to current field -----------
  for (i = 0; i < requiredFields.length; i++ ) {
    if ( requiredFields[i] == fld.name ) {
      if ( flags[i] == 1 ) { // check email
        msg=validate_email(fld);
        if(msg != true) { val = ""; }
      } else if ( flags[i] == 2 ) { // check if SSN
        val = format_ssn(fld);
      } else if ( flags[i] == 3 ) { // check if PIN
        if ( fld.value.length > 3 && fld.value.length < 7 )
          { val = is_num(fld.value, fld.value.length); }
        else { val = ""; }
      } else if ( flags[i] == 4 ) { // check date by mvs standards
        msg=testd2(fld);
        if( msg != true) { val = ""; }
      } else if ( flags[i] == 5 ) { // check birthdate by mvs standards
        msg=testbd2(fld);
        if( msg != true) { val = ""; }
      } else if ( flags[i] == 6 ) { // check phone number (xxx) xxx-xxxx
        val = format_phone(fld, "paren");
      } else if ( flags[i] == 7 ) { // check phone number xxx-xxx-xxxx
        val = format_phone(fld, "dash");
      }

      //alert('found match: '+fld.name+' i:'+i+" val:"+val+" msg:"+msg); 
      if (val == "") {
        document.images[img[i]].src=img_bang;
      } else {
        document.images[img[i]].src=img_blank;
      }
      break;
    }
  }
  return;
}

/*
 * returns true if all characters are digits up to len char's
 */
function is_num(val, len) 
{ 
  for (var j=0; j < len; j++ ) 
    { if ( val.charAt(j) < '0' || val.charAt(j) > '9' ) { return(""); } }
  return("fine");
}

/**
 * Strips everything but numbers
 */
function strip_crap(val, len) 
{
  var tmp = "";
  
  for ( var j=0; j < len; j++ ) 
    { if ( val.charAt(j) >= '0' && val.charAt(j) <= '9' ) { tmp += val.charAt(j); } } 
  return(tmp);
}


function set_images() {
  for ( var t=0; t < requiredFields.length; t++) {
    if ( sta[t] == 0 ) {
      document.images[img[t]].src=img_blank;
    } else if ( sta[t] == 1 ) {
      document.images[img[t]].src=img_bang;
    } else if ( sta[t] == 2 ) {
      document.images[img[t]].src=img_star;
    }
  } /* end for loop */
  return;
}

function strip_blanks(fld) {
  if ((fld.value == null) || (fld.value.length == 0)) { return; }

  // strip leading blanks
  while ( fld.value.indexOf(" ") == 0 ) {
    if (fld.value.length == 1) { fld.value = ""; return; }
    else { fld.value = fld.value.substring(1,fld.value.length); }
  }

  // strip trailing blanks
  while ( fld.value.lastIndexOf(" ",fld.value.length-1) == fld.value.length-1 )
    { fld.value = fld.value.substring(0,fld.value.length-1); }

}

function checkRequiredFields(input) { 
    var fieldCheck   = true;
    var fieldsNeeded = "\nA value must be entered in the following " +
                       "field(s):\n\n\t";
 
    for(var i=0; i < requiredFields.length; i++) {
    if (input.elements[requiredFields[i]].type != null ) {
          if ( (input.elements[requiredFields[i]].type).substring(0,6) == "select" ) {
            if ( input.elements[requiredFields[i]].selectedIndex == 0 ) {
              document.images[img[i]].src=img_bang;
              fieldsNeeded += fieldNames[i] + "\n\t";
              fieldCheck = false;
            }
          }
          else if ((input.elements[requiredFields[i]].value == "") ||
            (input.elements[requiredFields[i]].value == " ")) {
            document.images[img[i]].src=img_bang;
            fieldsNeeded += fieldNames[i] + "\n\t";
            fieldCheck = false;
          } 
        } else {
          var found=false;
          for (var n2=0; n2 < input.elements[requiredFields[i]].length; n2++) {
            if ((input.elements[requiredFields[i]][n2].type == "radio")
                && (input.elements[requiredFields[i]][n2].checked == true))
              { found=true; break; }
          }
          if (found==false) {
            document.images[img[i]].src=img_bang;
            fieldsNeeded += fieldNames[i] + "\n\t";
            fieldCheck = false;
          }
        }
    }
 
      // have all required fields been entered?
    if (fieldCheck == true) { return(true); }
    else { alert(fieldsNeeded); return(false); }
}

function validate_email(email_addr) {
  var msg="";
 
  strip_blanks(email_addr);
 
  if((msg=check_email(email_addr)) != "ok")
    { alert('\n' + msg); email_addr.value = ""; email_addr.focus(); return(false); }
 
  return(true);
}

function check_email(email_addr) {
  var ex_id = "\n\nExamples: Jane.Doe@be.udel.edu, jdoe@udel.edu";
  var cntr=0;

  for(n1 = 0; n1 < email_addr.value.length; n1++) {
    var ch = email_addr.value.substring(n1,n1+1);
    if(ch == "@") {
      cntr++;
      if (n1 == email_addr.value.length-1) {
        return("An E-Mail Address must contain an '@' character and "+
               "a machine name." + ex_id);
      }
    }
  }
 
  if (cntr == 0) {
    return("An E-Mail Address must contain an '@' character and a machine name." + ex_id);
  }
 
  if (cntr > 1) {
    if (confirm("This E-Mail Address contains more than one '@' character." +
                "\n\nIf this is correct, click 'OK'") == false)
      { email_addr.value = ""; email_addr.value.focus(); return('ok'); }
  }
 
  if (email_addr.value.substring(email_addr.value.length-8,email_addr.value.length) == 'udel.edu')
    { return('ok'); }
 
  if (confirm("\nThis E-Mail Address does not contain 'udel.edu'. " + ex_id +
              "\n\nIf this is correct, click 'OK'") == true)
    { return('ok'); }

  email_addr.value= "";
  email_addr.focus();
  return('ok');
}

// MVS says 'cc' is 19 for 70-99 for non-birthdates
function testd2(date) {
   msg = "";

   if (date.value.length == 0 ) {
     return (true); }

   if(( msg=testdate(date, 70) ) != "ok") {
     alert(msg);
     date.value = "" ;
     date.focus();
     date.select();
     return (false);
   }
   return (true);
}

// MVS says 'cc' is 19 for 15-99 for birthdates
function testbd2(date) {
   msg = "";

   if (date.value.length == 0 ) {
     return (true); }

   if(( msg=testdate(date, 15) ) != "ok") {
     alert(msg);
     date.value = "" ;
     date.focus();
     date.select();
     return (false);
   }
   return (true);
}

function testdate(date, year_cutoff) {
   var tstm = tstd = tsty = 0;
   var slash1 = slash2 = slashcnt = 0;
   var msg = '\nDate must be in mm/dd/yy or mm/dd/ccyy format.  ';

   for (n = 0; n < date.value.length ; n++) {
     var ch = date.value.charAt(n) ;
     if (("0" > ch || ch > "9" ) && ch != '/'  )
       return (msg);
     if (ch == '/')  {
       slashcnt++;
       if (slashcnt > 2)
         return (msg + 'Too many "/".');

       if (slash1 == 0) {
         if (n == 0)
           return (msg + 'Month is missing.');
         slash1 = n;
       } else {
         if ( (n - slash1) > 3)
           return (msg + 'Day is to big.');
         if ( (n - slash1) == 1)
           return (msg + 'Day is missing.');
         if ( n == (date.value.length - 1))
           return (msg + 'Year is missing.');
         slash2 = n; }
     }
   }

   if ( slashcnt != 2 )
     return (msg + 'Missing "/".');

   if (slash1 == 1) { //----- force month to two digits ------
     date.value = "0" + date.value;
     slash1++;
     slash2++; }

   if (slash2 == 4) { //----- force day to two digits ------
     date.value = date.value.substring(0, slash1+1) + "0" + date.value.substring(slash2-1, date.value.length);
     slash2++; }

   if ((date.value.length < 8 ) || (date.value.length > 10 )) {
     return (msg + 'Length not 8 or 10.'); }

   tstm =  date.value.substring(0, 2) ;
   if ((tstm < 01) || (tstm > 12)) {
     return (msg + 'Invalid month.'); }

   tstd =  date.value.substring(3, 5) ;
   if ((tstd < 01) || (tstd > 31)) {
     return (msg + 'Invalid day.'); }

   tsty =  date.value.substring(6, 8);
   if (tstm == 2) {
      if (tstd > 29) return (msg + 'Invalid day for February.');
      else {
          if ((tstd == 29) && ((tsty/4)!=parseInt(tsty/4)))
          return (msg + 'Invalid day for February. Not a leap year.');
      }
   }

   if ((tstd > 30) && (tstm == 4)) {
     return (msg + 'Invalid day for April.'); }

   if ((tstd > 30) && (tstm == 6)) {
     return (msg + 'Invalid day for June.'); }

   if ((tstd > 30) && (tstm == 9)) {
     return (msg + 'Invalid day for September.'); }

   if ((tstd > 30) && (tstm == 11)) {
     return (msg + 'Invalid day for November.'); }

   if (date.value.length == 8 ) { //----- force year to four digits ------
     if ((tsty > year_cutoff ) && (tsty <= 99))
       date.value = date.value.substring(0,6) + "19" + date.value.substring(date.value.length-2, date.value.length);
     else
       date.value = date.value.substring(0,6) + "20" + date.value.substring(date.value.length-2, date.value.length);
   }

   return("ok");
}

function format_phone(fld, type)
{
  var		val;

  val = strip_crap(fld.value, fld.value.length);
  if ( val.length == 7 ) { 
    fld.value = val.substring(0, 3) + '-' + 
                val.substring(3, 7);
  } else if ( val.length == 10 ) { 
    if ( type == "paren" ) { 
      fld.value = '(' + val.substring(0, 3) + ') ' + 
                        val.substring(3, 6) + '-' + 
                        val.substring(6, 10) ;
    } else { 
      fld.value = val.substring(0, 3) + '-' + 
                  val.substring(3, 6) + '-' + 
                  val.substring(6, 10) ;
    }
  }
  else { val = ""; }

  return(val);
}

function format_ssn(fld)
{
  var 		val;

  val = strip_crap(fld.value, fld.value.length);
  if ( val.length == 9 ) {
    fld.value = val.substring(0, 3) + '-' + 
                val.substring(3, 5) + '-' + 
                val.substring(5, 9) ;
  }
  else { val = ""; }
  return(val);
}

function format_date(fld, type)
{
  if ( type == 'birthdate' ) { testdate(fld, 15); }
  else { testdate(fld, 70); }
}

// done hiding from old browsers -->
