
//***********************************************************//
//** File name: mailer.js                                  **//
//** Location: /js                                         **//
//** Version: 1.0.0                                        **//
//***********************************************************//
//** Author: Jason Ilicic                                  **//
//** Company: Phoenix Labs                                 **//
//** Location: Adelaide, AU                                **//
//** E-mail: jasey@pxlabs.net.au                           **//
//** URL: www.pxlabs.net.au                                **//
//***********************************************************//

	function getXMLHttp() {
		var xmlHttp
		try {
			xmlHttp = new XMLHttpRequest();
		}
		catch(e) {
			try	{
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e) {
				try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e) {
					alert("Your browser does not support AJAX.");
					return;
				}
			}
		}
		return xmlHttp;
	}

	function addSubscriber() {
		var errorExists;
		var errorMsg = "";
		var firstName = document.getElementById("firstName").value;
		var lastName = document.getElementById("lastName").value;
		var areaCode = document.getElementById("areaCode").value;
		var contactNumber = document.getElementById("contactNumber").value;
		var emailAddress = document.getElementById("emailAddress").value;
		
		if (firstName.replace(new RegExp("^[\\s]+", "g"), "") == "") {
			errorExists = 1;
			document.getElementById("firstName").style.border = '2px #FF595E solid';
		}
		if (emailAddress.replace(new RegExp("^[\\s]+", "g"), "") == "") {
			errorExists = 1;
			document.getElementById("emailAddress").style.border = '2px #FF595E solid';
		}
		if (errorExists != 1) {
			postData = "firstName=" + firstName + "&lastName=" + lastName + "&areaCode=" + areaCode + "&contactNumber=" + contactNumber + "&emailAddress=" + emailAddress;
			document.getElementById("firstName").disabled = true;
			document.getElementById("lastName").disabled = true;
			document.getElementById("emailAddress").disabled = true;
			document.getElementById("contactNumber").disabled = true;
			document.getElementById("areaCode").disabled = true;
			document.getElementById("addSubscriber").value = 'Subscribing...';
			document.getElementById("addSubscriber").disabled = true;
			
			var xmlHttp = getXMLHttp();
			xmlHttp.onreadystatechange = function() {
											if(xmlHttp.readyState == 4) {
												var response = xmlHttp.responseText;
												var responseData = response.split("RESULT: ");
												var responseStatus = decodeURIComponent(responseData[1]);
												if (responseStatus == "OK") {
													document.getElementById("subscribeMain").style.display = 'none';
													document.getElementById("subscribeComplete").style.display = 'block';
												}
												else if (responseStatus == "INVALID_EMAIL") {
													document.getElementById("emailAddress").style.border = '2px #FF595E solid';	
													document.getElementById("firstName").disabled = false;
													document.getElementById("lastName").disabled = false;
													document.getElementById("emailAddress").disabled = false;
													document.getElementById("areaCode").disabled = false;
													document.getElementById("contactNumber").disabled = false;
													document.getElementById("addSubscriber").disabled = false;
													document.getElementById("addSubscriber").value = 'Subscribe';
												}
												else if (responseStatus == "ALREADY_EXISTS") {
													document.getElementById("emailAddress").style.border = '2px #FF595E solid';	
													document.getElementById("subscribeMain").style.display = 'none';
													document.getElementById("subscribeExists").style.display = 'block';
												}
												else {
													document.getElementById("firstName").disabled = false;
													document.getElementById("lastName").disabled = false;
													document.getElementById("emailAddress").disabled = false;
													document.getElementById("areaCode").disabled = false;
													document.getElementById("contactNumber").disabled = false;
													document.getElementById("addSubscriber").disabled = false;
													document.getElementById("addSubscriber").value = 'Subscribe';
													alert("An error has occured whilst trying to subscribe you to the mailing list. If the error continues, please contact help@aaacom.com.au for further assistance.");
												}
											}
										}
										
				xmlHttp.open("POST", "/extras/subscription.extra.php?do=subscribe", true);
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.send(postData);
		}
	}

	function clearForm() {
		if (document.getElementById("addSubscriber").disabled) {
			document.getElementById("firstName").disabled = false;
			document.getElementById("lastName").disabled = false;
			document.getElementById("emailAddress").disabled = false;
			document.getElementById("areaCode").disabled = false;
			document.getElementById("contactNumber").disabled = false;
			document.getElementById("addSubscriber").disabled = false;
			document.getElementById("addSubscriber").value = 'Subscribe';
		}
		document.getElementById("firstName").value = '';
		document.getElementById("lastName").value = '';
		document.getElementById("areaCode").value = '';
		document.getElementById("contactNumber").value = '';
		document.getElementById("emailAddress").value = '';
	}
	
	function clearField(textField) {
		textField.style.border = '';
	}
	
	function subscribeAgain() {
		document.getElementById("firstName").disabled = false;
		document.getElementById("lastName").disabled = false;
		document.getElementById("emailAddress").disabled = false;
		document.getElementById("contactNumber").disabled = false;
		document.getElementById("addSubscriber").disabled = false;
		document.getElementById("addSubscriber").value = 'Subscribe';
		document.getElementById("subscribeComplete").style.display = 'none';
		document.getElementById("subscribeExists").style.display = 'none';
		document.getElementById("subscribeMain").style.display = 'block';
	}
	
	function closeWindow() {
		parent.$.fancybox.close();	
	}
