Function.prototype.bind = function (obj) {
	var fn = this;
	return function () {
		var args = [this];
		for (var i = 0, ix = arguments.length; i < ix; i++) {
			args.push(arguments[i]);
		}
		return fn.apply(obj, args);
	};
};
	
function FS_CreateXMLObj()
{
	var oAJAX;
	try
	{
		oAJAX = new XMLHttpRequest();			
	}
	catch(e)
	{
		try
		{
			oAJAX = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				oAJAX = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				// Okay, look, we tried. We really did. But this person just
				// does not support AJAX. Fail quietly and with dignity.
				
				oAJAX = false;
			}
		}
	}
	
	return oAJAX;
}

function FS_GetFormData(dForm)
{
	var nLen = dForm.elements.length;
	var dObj = null;
	var szReturn = "";
	var i = 0;
	
	for(i = 0; i < nLen; i++)
	{
		if(szReturn != "")
		{
			szReturn += "&";
		}
		dObj = dForm.elements[i];
		
		szReturn += dObj.name + "=" + encodeURI(dObj.value);
	}
	
	return szReturn;
}

function FS_OnReadyStateChange()
{
	var dObj;
	var dTemp = new Array();
	if(this.readyState == 4)
	{
		if(this.status == 200)
		{
			if (this.responseText == "true") 
			{
				if (g_dForm)
				{
					dObj = g_dForm.parentNode
					g_dForm.style.display = "none";
					
					dTemp[0] = document.createElement("div");
					dTemp[0].className = "servSuccess";
					dTemp[0].appendChild(document.createTextNode("Thank you, you are now signed up to receive our newsletter!"));
					
					dObj.appendChild(dTemp[0]);
				}
			}
			else
			{
				dObj = g_dForm.parentNode
				g_dForm.style.display = "none";
				
				dTemp[0] = document.createElement("div");
				dTemp[0].className = "servFail";
				dTemp[0].appendChild(document.createTextNode("Thank you, you are now signed up to receive our newsletter!"));
				
				dObj.insertBefore(dTemp[0], g_dForm);
			}
		}
	}
}

function FS_SubmitForm(dForm)
{
	var szPostString = "";
	
	g_dForm = dForm;
	
	if(dXML)
	{
		dXML.onreadystatechange = FS_OnReadyStateChange.bind(dXML);
		szPostString = FS_GetFormData(dForm);
		
		dXML.open("POST", "newsletter-signup.html", true);
		dXML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		dXML.setRequestHeader("Content-length", szPostString.length);
		dXML.setRequestHeader("Connection", "close");
		dXML.send(szPostString);
	}
}    

var dXML = FS_CreateXMLObj();
var g_dForm = null;