var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function mailFormSend(){
	if (document.mailing.myemail.value == "") {
		alert("You must enter your e-mail.");
		document.mailing.myemail.focus();
		return;
	}
	else {
	    if(!validateAddress(document.mailing.myemail.value)) {
	        alert("Please check your e-mail address!");
	        return;
	    }
	}
	if (document.mailing.myname.value == "") {
		alert("You must enter your name.");
		document.mailing.myname.focus();
		return(false);
	}
	if (document.mailing.email.value == "") {
		alert("You must enter your friend's e-mail.");
		document.mailing.email.focus();
		return(false);
	}
    else {
	    if(!validateAddress(document.mailing.email.value)) {
	        alert("Please check your friend's e-mail address!");
	        return;
	    }
	}
	this_value = escape(document.mailing.myemail.value);
    data_set = 'myemail=' + this_value;
	this_value = escape(document.mailing.myname.value);
	data_set = data_set + '&myname=' + this_value;
	this_value = escape(document.mailing.email.value);
	data_set = data_set + '&email=' + this_value;
	url = 'mail_send.php';
    
    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("POST",url);
        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        document.getElementById("A1").innerHTML = 'Sending';
        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
                var result = XMLHttpRequestObject.responseText;
                document.getElementById("A1").innerHTML = result;
            }
        }
        XMLHttpRequestObject.send(data_set);
    }
    return(false);
}

function validateAddress(incoming) {
	var emailstring = incoming;
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
		// find a dot in the portion of the string after the ampersand only
	var dotIndex = afterAmp.indexOf(".");
		// determine dot position in entire string (not just after amp portion)
	dotIndex = dotIndex + ampIndex + 1;
		// afterAmp will be portion of string from ampersand to dot
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
		// afterDot will be portion of string from dot to end of string
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));
		//old regex did not allow subdomains and dots in names
		//var email_regex = /^[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+(\.[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~])*\@(((\w+[\w\d\-]*[\w\d]\.)+(\w+[\w\d\-]*[\w\d]))|((\d{1,3}\.){3}\d{1,3}))$/;
	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
		// index of -1 means "not found"
	if ((emailstring.indexOf("@") != "-1") &&
		(emailstring.length > 5) &&
		(afterAmp.length > 0) &&
		(beforeAmp.length > 1) &&
		(afterDot.length > 1) &&
		(email_regex.test(emailstring)) ) {
		  return true;
	} else {
			//alert("Please check your email address!");
			return false;
	}
}