/*************************************************
* Author: Will Steinmetz
* Date: 11/16/07
* Name: ajaxbase.php
*
* Description: base code for AJAX abilities
*************************************************/

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
		for (var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch(e) {}
		}
	}
	if (!xmlHttp)
		alert("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}

function fetchData(url, dataToSend, objectID)
{
	// holds an instance of XMLHttpRequest
	var xmlHttp = createXmlHttpRequestObject();
	
	xmlHttp.onreadystatechange = function() {
		filterData(xmlHttp, objectID);
	}
	
	if (dataToSend)
	{
		var sendData = "senddata=" + dataToSend;
		xmlHttp.open('POST', url, true);
		xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlHttp.send(sendData);
	} else {
		xmlHttp.open('GET', url, true);
		xmlHttp.send(null);
	}
}

function filterData(xmlHttp, objectID)
{
	var object = document.getElementById(objectID);
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			object.innerHTML = xmlHttp.responseText;
		}
		else if (xmlHttp.status == 404)
		{
			object.innerHTML = 'Sorry, that information is currently unavailable.';
		}
		else
		{
			object.innerHTML = 'Sorry, there was a server error.';
		}
	}
	else
		return;
}