function EmailCheck( email ) {
	var email_pat     = /^(.+)@(.+)$/;
	var ip_domain_pat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom          = "\[^\\s\\(\\)<>@,;:\\\\\\\"\\.\\[\\]\]+";
	var word          = "(" + atom + "|(\"[^\"]*\"))";
	var user_pat      = new RegExp("^" + word + "(\\." + word + ")*$");
	var domain_pat    = new RegExp("^" + atom + "(\\." + atom +")*$");
	var match_array   = email.match( email_pat );
	if ( match_array == null ){
		return false;
	}
	var user   = match_array[1];
	var domain = match_array[2];
	if ( user.match( user_pat ) == null ){
		return false;
	}
	var ip_array = domain.match(ip_domain_pat);
	if ( ip_array != null ){
		for ( var i = 1; i <= 4; i++ ){
			if ( ip_array[ i ] > 255 ){
				return false;
			}
		}
		return true;
	}
	var domain_array = domain.match( domain_pat );
	if ( domain_array == null ){
		return false;
	}
	var atom_pat = new RegExp( atom, "g" );
	var dom_arr = domain.match( atom_pat );
	var len = dom_arr.length;
	if ( dom_arr[ dom_arr.length-1 ].length < 2 || dom_arr[ dom_arr.length-1 ].length > 3 ){
		return false;
	}
	if ( len < 2 ){
		return false;
	}
	return true;
}

