var	String_LiteralContainerAlfa = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +
	"àáâãäå¸æçèéêëìíîïðñòóôõö÷øùüûúýþÿÀÁÂÃÄÅ¨ÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÛÚÝÞß";
var	String_LiteralContainerDigit = "0123456789";
var	String_LiteralContainerSeparator = " `'~-_#()";
var	String_LiteralContainerEmailSymbol = "@.~_-&+";
var	String_LiteralContainerValidSQLspecial = " @.,|&#:/?\;%$";
var	String_LiteralContainersPecial = "~!@#$%^&*()_+|/`'";

 
function isLiteral(str, LiteralList, LiteralAddons) {
	var i, str_con, str_f, str_len;
	
	str_con = LiteralList;
	if ( LiteralAddons.length > 0 ) {
		if ( LiteralAddons.indexOf("a") >= 0 )
			str_con += String_LiteralContainerAlfa;
		if ( LiteralAddons.indexOf("d") >= 0 )
			str_con += String_LiteralContainerDigit;
		if ( LiteralAddons.indexOf("s") >= 0 )
			str_con += String_LiteralContainerSeparator;
		if ( LiteralAddons.indexOf("e") >= 0 )
			str_con += String_LiteralContainerEmailSymbol;
		if ( LiteralAddons.indexOf("v") >= 0 )
			str_con += String_LiteralContainerValidSQLspecial;
		if ( LiteralAddons.indexOf("p") >= 0 )
			str_con += String_LiteralContainersPecial;
	}
	if ( str.length == 0 || str_con.length == 0 )
		return false;
	else
		str_f = str;
	str_len = str_f.length;
	for ( i = 0; i <= str_len; i++ ) {
		if ( str_con.indexOf(str_f.substr(i,1)) < 0 ) {
			alert("Invalid symbol '"+str_f.substr(i,1)+"' in field!");
			return false;
		}
	}
	return true;
}
 
function isValidEmail(cemail) {
	var ees, email, eaf, edl, ec, eba, ll, s, sa, sb;
	ees = String_LiteralContainerEmailSymbol;
	email = cemail;

	if ( email.length == 0 || !isLiteral(email,ees,"ad") || cemail.length < 6 ) return false;
	eaf = email.indexOf("@");
	if ( eaf < 1 || eaf != email.lastIndexOf("@") ) return false;
	edl = email.lastIndexOf(".");
	if ( edl < 0 || edl < eaf || email.indexOf(".") < 1 ) return false;
	ec = email.substr(edl + 1, email.length - (edl + 1));
	if ( ec.length < 2 || ec.length > 3 || !isLiteral(ec, "", "a") ) return false;
	eba = email.substr(eaf - 1, 3);
	if ( !isLiteral(eba, ees, "ad") ) return false;
	ll = cemail.length - 1;
	for ( i = 1; i <= ll; i++ ) {
		s = cemail.substr(i,1);
		sb = cemail.substr(i-1,1);
		sa = cemail.substr(i+1,1);
		if ( ( s == "@" || s == "." ) && ( sb == "@" || sb == "." || sa == "@" || sa == "." ) ) return false;
	}
	return true;
}
 
 
 

