var whitespace = " \t\n\r";
var allowed = " _-,.@";

function isWhitespace( str ) {
	for( var i = 0; i < str.length; i++ ) {	if( whitespace.indexOf( str.charAt( i ) ) != -1 ) {	return( true );	}}
	return( false );
}

function isAlpha( str ) {
	var str = str.toLowerCase( );
	for( var i = 0; i < str.length; i++ ) {
		var chr = str.charAt( i );
		if( !((chr >= 'a') && (chr <= 'z')) ) {	return( false );}
	}
	return( true );
}

// isInput: string -> bool
// Returns true if str is a valid input and false otherwise
function isInput( str ) {
	var str = str.toLowerCase( );
	for( var i = 0; i < str.length; i++ ) {
	    var chr = str.charAt( i );
	    if( !((chr >= '0') && (chr <= '9')) && !((chr >= 'a') && (chr <= 'z')) && (allowed.indexOf( chr ) == -1) ) {
		return( false );
	    }
	}
	return( true );
    }

// isInput: string -> bool
// Returns true if str is a valid input and false otherwise
function isNumber( str ) {
	var str = str.toLowerCase( );
	for( var i = 0; i < str.length; i++ ) {
	    var chr = str.charAt( i );
	    if( !((chr >= '0') && (chr <= '9')) && (allowed.indexOf( chr ) == -1) ) {
		return( false );
	    }
	}
	return( true );
}

function isEmail( str ) {
	var lengtht = str.length;
	if( isWhitespace( str ) || !isInput( str ) ) {	return( false );}
	var at = str.indexOf( "@" );
	if( at != -1 ) {
		var sub = str.substr( (at + 1), (length - at) );
		if( sub.indexOf( "@" ) >= 0 ) return( false );
		var dot = str.lastIndexOf( "." );
		if( (at > 0) && (dot != -1) && (dot > (at + 1)) && ((dot = (length - 2)) || (dot = (length - 3)) || (dot = (length - 4))) ) {
			return( true );

		} else {return( false );}
	} else {return( false );}
}