    var G_AjaxPath = '/tools/PHPSnippetAjax.php?action=saveEmail';
    
    function SaveEmail()
    {
        var Email = document.getElementById('EnteredEmail').value;
        if(!isEmailValid(Email))
        {
            alert('Entered e-mail address is invalid. Please enter a valid e-mail.')
            return;
        }
        (new dtmlXMLLoaderObject(SaveEmailCallBack, window, true, true)).loadXML(G_AjaxPath+'&Email='+escape(Email));
    }
    function SaveEmailCallBack(p1,p2,p3,p4,data)
    {
        var Status = data.xmlDoc.responseXML.getElementsByTagName('STATUS')[0].firstChild.data;
        if(Status == 'OK')
            alert('Email successfully saved');
        if(Status == 'EXISTS')
            alert('This email address already exists in database, please use other email address.');
    }
    
    
/**
 *  What:       check wether email address is valid
 *  Who/When:   Denis Zenkovich, 27 June 2006
**/
function isEmailValid(email)
{
	if(email == null){ //if no email entered ->
		return false; //exit with FALSE
	}
	var atPos = email.indexOf("@"); //get position of AT char
	if( atPos < 1 || email.indexOf(".", atPos) == -1 ){ //if "@" is first, or "." is before "@"
		return false //exit with FALSE
	}
	var login = email.substring(0, atPos); //get lagin name
	var domain = email.substring(atPos + 1, email.length); //get domain
	var atom = "\[^\\s\\(\\)<>@,;:\\\\\\\"\\.\\[\\]\]+"; //login pattern
	var word = "(" + atom + '(|-("[^\"]*")))'; //finish pattern
	var loginRE = new RegExp('^' + word + '(\\.' + word + ')*$'); //create regexp object
	for (var i = 0; i < login.length; i++){ //for all characters ->
		if (login.charCodeAt(i) > 127){ //if not latin ->
			return false; //exit with FALSE
		}
	}
	if (!login.match(loginRE)){ //if login not valid ->
		return false; //exit with FALSE
	}
	return isDomainValid(domain); //check domain and return result
}
/**
 *  What:       check wether domain address is valid
 *  Who/When:   Denis Zenkovich, 27 June 2006
**/
function isDomainValid(domain)
{
    if(typeof(domain) != 'string'){ //if no a string ->
        return false; //exit with FALSE
    }
    for (var i = 0; i < domain.length; i++){ //for all characters ->
        if (domain.charCodeAt(i) > 127){ //if not latin ->
            return false; //exit with FALSE
        }
    }
    var ipDigit = "(0?0?\\d|[01]?\\d\\d|2[0-4]\\d|25[0-6])"; //domain pattern
    var ipRE = new RegExp("^" + ipDigit + "\\." + ipDigit + "\\." + ipDigit + "\\." + ipDigit + "$"); //create regex object
    if (ipRE.test(domain)) { //if pattern match ->
        return true; //exit with TRUE
    }
    var domains = domain.split("."); //get domain parts
    if (domains.length < 2) { //if only 1 part ->
        return false; //exit with FALSE
    }
    for (var i = 0; i < domains.length - 1; i++) { //for domain name ->
        if (!(/^[a-zA-Z0-9\-]+$/).test(domains[i])) { //if name not match word pattern ->
            return false; //exit with FALSE
        }
    }
    if(domains[domains.length-2].length < 2){ //if subdomain lenth is less than 2 chars ->
        return false; //exit with FALSE
    }
    if (!(/^[a-zA-Z]{2,}$/).test(domains[domains.length-1])){ //if domain ext not match word ->
        return false; //exit with FALSE
    }
    return true; //exit with TRUE
}
