// visited
// Written by Kevin Cole <kjcole@gri.gallaudet.edu> 2003.07.31
//
// Decides if the user has visited the field, by comparing the field value 
// to the default value (a tip) for that field.  If the default (tip)
// is still there, it clears the field and resets the class.  Otherwise
// it leaves the field alone.

function visited (field, tip, replacement) {
  if (field.value == tip)  {
    field.value = replacement;
    field.className = "optional";
  }
}

// The following functions were written by some canned package or another.

function MM_findObj(n, d) { //v4.0
  var p, i, x;  
  if (!d) 
    d = document;
  if ((p=n.indexOf("?")) > 0 && parent.frames.length) {
    d = parent.frames[n.substring(p+1)].document;
    n = n.substring(0,p);
  }
  if (!(x=d[n]) && d.all)
    x = d.all[n];
  for (i=0; !x && i<d.forms.length; i++) 
    x = d.forms[i][n];
  for (i=0; !x&&d.layers&&i<d.layers.length; i++)
    x = MM_findObj(n,d.layers[i].document);
  if (!x && document.getElementById) 
    x=document.getElementById(n);
  return x;
}

function MM_validateForm() { //v4.0
  var i, p, q, nm, test, num, min, max, errors='';
  var args = MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
    test = args[i+2];
    val  = MM_findObj(args[i]);
    if (val) { 
      nm = val.name; 
      if ((val=val.value) != "") {
        if (test.indexOf('isEmail') != -1) { 
          p = val.indexOf('@');
          if (p<1 || p==(val.length-1)) 
            errors += '- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') {
          if (isNaN(val)) 
            errors += '- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { 
            p   = test.indexOf(':');
            min = test.substring(8,p); 
            max = test.substring(p+1);
            if (val<min || max<val) 
              errors += '- '+nm+' must contain a number between '+min+' and '+max+'.\n';
          }
        }
      } else if (test.charAt(0) == 'R') 
          errors += '- '+nm+' is required.\n';
    }
  } 
  if (errors) 
    alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

