/* START AJAX-RELATED FUNCTIONS */
function createXMLHttpRequest() {
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new XMLHttpRequest(); } catch(e) {}
   alert("XMLHttpRequest not supported");
   return null;
}

function importXML(sXML)
{
	var xmlDoc;
	
	if (document.implementation && document.implementation.createDocument)
	{
		// not sure what is needed here yet...
		
		// this \/
		//xmlDoc = document.implementation.createDocument("", "", null);
		
		
		// or this \/
		var domParser = new DOMParser();
		xmlDoc = domParser.parseFromString(sXML, 'application/xml');
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML(sXML);
 	}
	else
	{
		alert('Your browser can\'t handle this XML script');
		return;
	}
	
	
	return xmlDoc;
} 


function signMeUp()
{
	var emailAddress = document.newsletterForm.newsletterEmail.value;
	
	if(!isEmail(emailAddress))
	{
		document.getElementById("newsletterMessage").innerHTML = "<span class='errMsg'>Please enter a valid email address</span>";
		return;
	}
		
	var xmlDoc;

	var xReq = createXMLHttpRequest();
	
	xReq.open("GET", "ajax.request.data.asp?action=newsletterSignup&email_address=" + emailAddress, true);
	xReq.onreadystatechange = function() {
		if (xReq.readyState != 4)  { return; }
	  	xmlDoc = importXML(xReq.responseText);
	  	
	  	var responseMessage;

			responseMessage = xmlDoc.selectSingleNode("/responseMessages/responseMessage").text;
			
			document.getElementById("newsletterMessage").innerHTML = responseMessage;
	};
	xReq.send(null);
	
}


function isEmail(s)
{       			
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(s);
}
/* END AJAX-RELATED FUNCTIONS */