// JavaScript Document
function Ajax() {
  	var transport;
  	if (window.XMLHttpRequest) {
    	transport = new XMLHttpRequest();
  	} else {
    	try { transport = new ActiveXObject("MSXML2.XMLHTTP.6.0"); } catch(e){}
    	try { transport = new ActiveXObject("MSXML2.XMLHTTP"); } catch(e){}
  	}
  	if (!transport) return;
  	this.transport = transport;
}

Ajax.prototype.send = function(url, options) {
  	if (!this.transport) return;
  	var transport = this.transport;
  	var aborted = false;
  	var _options = {
      	method: "POST",
		data: null,
      	timeout: 5,
      	onerror: function(){},
      	onsuccess: function(){}
     };

   	for (var key in options) {
     	_options[key] = options[key];
   	}

   	function checkForTimeout() {
      	if (transport.readyState != 4) {
        	aborted = true;
        	transport.abort();
      	}
   	}
   	setTimeout(checkForTimeout, _options.timeout * 1000);

   	function onreadystateCallback() {
    	if (transport.readyState == 4) {
      		if (!aborted && (transport.status == 200 || transport.status == 304)) {
        		_options.onsuccess(transport);
      		} else {
        		_options.onerror(transport);
      		}
    	}
   	}

   	transport.open(_options.method, url, true);
	if (_options.method == "POST") {
		transport.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
   	transport.onreadystatechange = onreadystateCallback;
   	transport.send(_options.data);
}

function processRequest(transport) {
	document.getElementById('formsubmitted').innerHTML = transport.responseText;
	document.getElementById('email').value = "";
}

function init() {
	var formData = "";
	
	document.getElementById('emailSignUp').onsubmit = function() {
		for (var i=0; i<this.elements.length; i++) {
			formData += this.elements[i].name;
			formData += "=";
			formData += escape(this.elements[i].value);
			formData += "&";
		}
		
		var ajax = new Ajax();
		ajax.send('processEmail.php', {
			method: "POST",
			data: formData,
			onerror: function(transport) {
				alert('error' + formData);
			},
			onsuccess: processRequest
		});
		
		return false;
	}
}
