var whitespace = " \\t\\n\\r";

function isEmpty(s) {
        return ((s == null) || (s.length == 0))
}

function isWhitespace (s) {
        var i;
        if (isEmpty(s)) return true;
        for (i = 0; i < s.length; i++) {
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1) return false;
        }
        return true;
}

function howlong (s) {
        return s.length;
}

function isEmail (s) {
        if (isEmpty(s))
       if (isEmail.arguments.length == 1) return false;
       else return (isEmail.arguments[1] == true);

    // is s whitespace?
    if (isWhitespace(s)) return false;

    // there must be >= 1 character before \@, so we
    // start looking at character position 1
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for \@
    while ((i < sLength) && (s.charAt(i) != "\@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "\@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != ".")) { i++ }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function validation()
{
   if ( ! isEmail(document.signup.Email.value) )
   {
      alert('Please type in a valid Email address.');
      document.signup.Email.focus();
      return false;
   }
   else
   {
      return true;
   }
}
