// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
// retrieves the XMLHttpRequest object
	function createXmlHttpRequestObject()
	{
		// will store the reference to the XMLHttpRequest object
		var xmlHttp;
		// if running Internet Explorer
		if(window.ActiveXObject)
		{
				try
			{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
				catch (e)
			{
			xmlHttp = false;
		}
	}
// if running Mozilla or other browsers
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
// return the created object or display an error message
if (!xmlHttp)

alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
// make asynchronous HTTP request using the XMLHttpRequest object
function process()
{
// proceed only if the xmlHttp object isn't busy
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// get the two values entered by the user
var bornKhartoum = encodeURIComponent(document.getElementById("bornKhartoum").value);
var liveKhartoum = encodeURIComponent(document.getElementById("liveKhartoum").value);
var numWifes = encodeURIComponent(document.getElementById("numWifes").value);
var numSonsKhartoum = encodeURIComponent(document.getElementById("numSonsKhartoum").value);
var numSonsOKh = encodeURIComponent(document.getElementById("numSonsOKh").value);
var work = encodeURIComponent(document.getElementById("work").value);
var warrantyReside = encodeURIComponent(document.getElementById("warrantyReside").value);
var reside = encodeURIComponent(document.getElementById("reside").value);

// create the params string
var params = "bornKhartoum=" + bornKhartoum +
"&liveKhartoum=" + liveKhartoum + "&numWifes=" + numWifes + "&numSonsKhartoum=" + numSonsKhartoum + "&numSonsOKh=" + numSonsOKh + "&work=" + work + "&warrantyReside=" + warrantyReside + "&reside=" + reside;
// initiate the asynchronous HTTP request

xmlHttp.open("GET", "pointscalc.php?" + params, true);
xmlHttp.onreadystatechange = handleServerResponse;
// make the server request
xmlHttp.send(null);
}
else
// if the connection is busy, try again after one second
setTimeout('process()', 1000);
}
// executed automatically when a message is received from the server
function handleServerResponse()
{
	if (xmlHttp.readyState == 1)
{

document.getElementById("loading").style.background = 'url(images/loadingsmall.gif) no-repeat center center';
}
// move forward only if the transaction has completed
if (xmlHttp.readyState == 4)
{
// status of 200 indicates the transaction completed successfully
if (xmlHttp.status == 200)
{
// extract the XML retrieved from the server
xmlResponse = xmlHttp.responseXML;
// obtain the document element (the root element) of the XML structure
xmlDocumentElement = xmlResponse.documentElement;
// get the text message, which is in the first child of
// the the document element
// update the client display using the data received from the server

document.getElementById("loading").style.background = '#F9EFD0';
bornKhartoumarray = xmlDocumentElement.getElementsByTagName("bornKhartoum");
bk = bornKhartoumarray.item(0).firstChild.data;
document.getElementById("bornKhartoumPoints").innerHTML = bk;

liveKhartoumarray = xmlDocumentElement.getElementsByTagName("liveKhartoum");
lk = liveKhartoumarray.item(0).firstChild.data;
document.getElementById("liveKhartoumPoints").innerHTML = lk;

numWifesarray = xmlDocumentElement.getElementsByTagName("numWifes");
nw = numWifesarray.item(0).firstChild.data;
document.getElementById("numWifesPoints").innerHTML = nw;

numSonsKhartoumarray = xmlDocumentElement.getElementsByTagName("numSonsKhartoum");
nsk = numSonsKhartoumarray.item(0).firstChild.data;
document.getElementById("numSonsKhartoumPoints").innerHTML = nsk;

numSonsOKharray = xmlDocumentElement.getElementsByTagName("numSonsOKh");
nsok = numSonsOKharray.item(0).firstChild.data;
document.getElementById("numSonsOKhPoints").innerHTML = nsok;

workarray = xmlDocumentElement.getElementsByTagName("work");
w = workarray.item(0).firstChild.data;
document.getElementById("workPoints").innerHTML = w;

warrantyResidearray = xmlDocumentElement.getElementsByTagName("warrantyReside");
wr = warrantyResidearray.item(0).firstChild.data;
document.getElementById("warrantyResidePoints").innerHTML = wr;

residearray = xmlDocumentElement.getElementsByTagName("reside");
r = residearray.item(0).firstChild.data;
document.getElementById("residePoints").innerHTML = r;

totalarray = xmlDocumentElement.getElementsByTagName("totalPoints");
t = totalarray.item(0).firstChild.data;
document.getElementById("totalPoints").innerHTML = t;


// restart sequence
//setTimeout('process()', 1000);
}
// a HTTP status different than 200 signals an error
else
{
alert("There was a problem accessing the server: " + xmlHttp.statusText);
}
}
}

/*	if (xmlHttp.readyState == 1)
{
loadingimg = '<img src="site_images/loadingsmall.gif" alt="" width="20" height="20" />';
document.getElementById("loading").innerHTML = loadingimg;
}
*/
