defaultEmptyOK = false;
var whitespace = " \t\n\r";
	function sprWhitespace (s)
	{   var i;
		// Is s empty?
		if (sprEmpty(s)) return true;
		// Search through string's characters one by one
		// until we find a non-whitespace character.
		// When we do, return false; if we don't, 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 sprEmpty(s) {
	 return ((s == null) || (s.length == 0))
}
function sprEmail (s)
	{   if (sprEmpty(s)) 
		   if (sprEmail.arguments.length == 1) return defaultEmptyOK;
		   else return (sprEmail.arguments[1] == true);
	   
		// is s whitespace?
		if (sprWhitespace(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;
	}
