<!--
function checkForm(thisform) {
  returnval=true;
  if (returnval) {
     if (thisform.elements["login"].value.length == 0 || isBlank(thisform.elements["login"].value)) {
        alert("Please enter your Desired Login Name.");
	thisform.elements["login"].focus();
        returnval = false;
      }
  }

  if (returnval) {
     if (thisform.elements["pw"].value.length == 0 || isBlank(thisform.elements["pw"].value)) {
        alert("Please enter Password.");
	thisform.elements["pw"].focus();
        returnval = false;
     } else if (thisform.elements["pw"].value.length < 5) {
        alert("Password must be at least 5 characters long.");
	thisform.elements["pw"].focus();
        returnval = false;
      }
  }

  if (returnval) {
     if (thisform.elements["pw2"].value.length == 0 || isBlank(thisform.elements["pw2"].value)) {
        alert("Please re-enter Password.");
	thisform.elements["pw2"].focus();
        returnval = false;
     } else if (thisform.elements["pw"].value != thisform.elements["pw2"].value) {
        alert("Passwords entered are not the same.");
	thisform.elements["pw2"].focus();
        returnval = false;
      }
  }

  if (returnval) {
     if (thisform.elements["fname"].value.length == 0 || isBlank(thisform.elements["fname"].value)) {
        alert("Please enter your First Name.");
	thisform.elements["fname"].focus();
        returnval = false;
      }
  }

  if (returnval) {
     if (thisform.elements["lname"].value.length == 0 || isBlank(thisform.elements["lname"].value)) {
        alert("Please enter your Last Name.");
	thisform.elements["lname"].focus();
        returnval = false;
      }
  }

  if (returnval) {
     if (thisform.elements["email"].value.length == 0 || isBlank(thisform.elements["email"].value)) {
        alert("Please enter Your Email Address.");
	thisform.elements["email"].focus();
        returnval = false;
     } else if (! isValidEmail(thisform.elements["email"].value)) {
         thisform.elements["email"].focus();
         returnval = false;
      }
  }
  return returnval;
}

function isBlank(str) {
   if (str == "")
      return 1;
   j = 1;
   for (i=0; i < str.length; i++) {
     if (str.charAt(i) == ' ' || str.charAt(i) == '\r' || str.charAt(i) == '\n') {}
     else {
        j = 0;
        break;
     }
   } 
   return j;
}


function isValidEmail(emailStr) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) {
    
    if ((emailStr.indexOf(".") > 2) && (emailStr.indexOf("@") > 0)) {
       return true;
    } else {
       alert("You entered an invalid email address.");
       return false;
    }
	
  }

  var emailPat=/^(.+)@(.+)$/;
  /* Do not allow ( ) < > @ , ; : \ " . [ ]    */
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
  var validChars="\[^\\s" + specialChars + "\]";
  /* "First Last"@test.com  is a legal e-mail address. */
  var quotedUser="(\"[^\"]*\")";
  /* test@[123.124.233.4] is a legal e-mail address. NOTE: [] are required. */
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
  /* The following string represents an atom (basically a series of
   non-special characters.) */
  var atom=validChars + '+';
  /* The following string represents one word in the typical username.
   For example, in john.doe@somewhere.com, john and doe are words.
   Basically, a word is either an atom or quoted string. */
   var word="(" + atom + "|" + quotedUser + ")";
  // The following pattern describes the structure of the user
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
  /* The following pattern describes the structure of a normal symbolic
   domain, as opposed to ipDomainPat, shown above. */
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");


  var matchArray=emailStr.match(emailPat);
  if (matchArray==null) {
     alert("You entered an invalid email address (check @ and .'s)");
     return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];

   // See if "user" is valid 
   if (user.match(userPat)==null) {
    // user is not valid
       alert("You entered an invalid email address (username is not valid)");
       return false;
   }

   /* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
   var IPArray=domain.match(ipDomainPat);
   if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("You entered an invalid email address (IP address is invalid!)");
		return false;
	    }
          }
          return true;
   }

   // Domain is symbolic name
   var domainArray=domain.match(domainPat);
   if (domainArray==null) {
	alert("You entered an invalid email address (domain name is invalid!)");
        return false;
   }

/* domain name seems valid, but now make sure that it ends in a
   three-letter word (like com, edu, gov) or a two-letter word,
   representing country (uk, nl), and that there's a hostname preceding 
   the domain or country. */

/* Now we need to break up the domain to get a count of how many atoms
   it consists of. */
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4) {
      alert("You entered an invalid email address (address must end in a three/four-letter domain, or two letter country.)");
      return false;
   }

   // Make sure there's a host name preceding the domain.
   if (len<2) {
      alert("You entered an invalid email address (address is missing a hostname!)");
      return false;
   }

   return true;
}

// -->

