// Email Validation Browser -> AJAX -> PHP Bridge

function validateEmail(elName) {
	var request;
	var cont = true;
	var URI = "wservices/index.php"
	var RMethod = "POST";
	try {
		request = new XMLHttpRequest();
	} catch (erMS) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (erOtherMS) {
			try {
				$request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				$cont = false;
			}
		}
	}
	
	//Define Process Responses
	request.onreadystatechange = function () {
		if (request.readyState == 4) {
			//Change the graphic
			if (request.responseText == 0) {
				//Response Is Bad
				document.getElementById(elName + "_ok").style.display = 'none';
				document.getElementById(elName + "_bad").style.display = 'inline-block';
			} else if (request.responseText == 1) {
				//Response Is Good
				document.getElementById(elName + "_ok").style.display = 'inline-block';
				document.getElementById(elName + "_bad").style.display = 'none';
			} else {
				//Response Is Garbage
				document.getElementById(elName + "_ok").style.display = 'none';
				document.getElementById(elName + "_bad").style.display = 'inline-block';
			}
		}
	}
		
	//Get A Response
	if (cont == true) {
		//Do The Request
		request.open("POST", URI, true);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(	"task=" + escape("do.email.validate") +
						"&email=" + escape(document.getElementById(elName).value)
					);
	}
}


function validateEmailAndName(elNameField, elAddressField, elValidField) {
	var request;
	var cont = true;
	var URI = "wservices/index.php"
	var RMethod = "POST";
	try {
		request = new XMLHttpRequest();
	} catch (erMS) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (erOtherMS) {
			try {
				$request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				$cont = false;
			}
		}
	}
	
	//Define Process Responses
	request.onreadystatechange = function () {
		if (request.readyState == 4) {
			document.getElementById(elValidField).value = false;
			//Change the graphic
			if (request.responseText == 0) {
				//Response Is Bad
				document.getElementById(elAddressField + "_ok").style.display = 'none';
				document.getElementById(elAddressField + "_bad").style.display = 'inline-block';
			} else if (request.responseText == 1) {
				//Response Is Good
				if (document.getElementById(elNameField).value.length > 2) {
					//Name Is Good
					document.getElementById(elAddressField + "_ok").style.display = 'inline-block';
					document.getElementById(elAddressField + "_bad").style.display = 'none';
					document.getElementById(elValidField).value = true;
				} else {
					//Name Is Bad
					document.getElementById(elAddressField + "_ok").style.display = 'none';
					document.getElementById(elAddressField + "_bad").style.display = 'inline-block';
				}
			} else {
				//Response Is Garbage
				document.getElementById(elAddressField + "_ok").style.display = 'none';
				document.getElementById(elAddressField + "_bad").style.display = 'inline-block';
			}
		}
	}
		
	//Get A Response
	if (cont == true) {
		//Do The Request
		request.open("POST", URI, true);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(	"task=" + escape("do.email.validate") +
						"&email=" + escape(document.getElementById(elAddressField).value)
					);
	}
}

validEmailPair = false;

function compareEmailAddresses(elName, compareTo) {
	var request;
	var cont = true;
	var URI = "wservices/index.php"
	var RMethod = "POST";
	try {
		request = new XMLHttpRequest();
	} catch (erMS) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (erOtherMS) {
			try {
				$request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				$cont = false;
			}
		}
	}
	
	//Define Process Responses
	request.onreadystatechange = function () {
		if (request.readyState == 4) {
			validEmailPair = false;
			//Change the graphic
			if (request.responseText == 0) {
				//Response Is Bad
				document.getElementById(elName + "_ok").style.display = 'none';
				document.getElementById(elName + "_bad").style.display = 'inline-block';
				document.getElementById(compareTo + "_ok").style.display = 'none';
				document.getElementById(compareTo + "_bad").style.display = 'inline-block';
			} else if (request.responseText == 1) {
				//Response Is Good
				document.getElementById(elName + "_ok").style.display = 'inline-block';
				document.getElementById(elName + "_bad").style.display = 'none';
				
				//Check Repeated
				if (document.getElementById(elName).value != document.getElementById(compareTo).value) {
					//Is Bad
					document.getElementById(compareTo + "_ok").style.display = 'none';
					document.getElementById(compareTo + "_bad").style.display = 'inline-block';
				} else {
					//Is Good
					document.getElementById(compareTo + "_ok").style.display = 'inline-block';
					document.getElementById(compareTo + "_bad").style.display = 'none';
					validEmailPair = true;
				}
				
			} else {
				//Response Is Garbage
				document.getElementById(elName + "_ok").style.display = 'none';
				document.getElementById(elName + "_bad").style.display = 'inline-block';
				document.getElementById(compareTo + "_ok").style.display = 'none';
				document.getElementById(compareTo + "_bad").style.display = 'inline-block';
			}
		}
	}
		
	//Get A Response
	if (cont == true) {
		//Do The Request
		request.open("POST", URI, true);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(	"task=" + escape("do.email.validate") +
						"&email=" + escape(document.getElementById(elName).value)
					);
	}
}
