
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++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1)
			return false;
    }

    // All characters are whitespace.
    return true;
}

function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1)
			return defaultEmptyOK;
       else
			return (isEmail.arguments[1] == true);
   
    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;
}
