/*
* 	file: myAJAXlib.js  
*	desc: simple library encapsulating core ajax functionality
*	date: 12/21/2006		
*/

function createREQ()
{
	try
	{
		req = new XMLHttpRequest(); /* i.e. Firefox */
	} catch (err1)
	{
		try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP"); /* i.e. versions of IE */
		} catch (err2)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP"); /* i.e. versions of IE */
			} catch (err3)
			{
				req = false;
			}
		}
	}

	return req;
}

function requestGET (url,query,req)
{
	myRand = parseInt(Math.random() * 99999999);
	req.open("GET", url + '?' + query + '&rand=' + myRand, true);
	req.send(null);
}

function requestPOST (url,query,req)
{
	req.open("POST", url, true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(query);
}

function doCallback(callback, item)
{
	eval(callback + '(item)');
}

function doAjax(url,query,callback,reqtype,getxml)
{
	// create the XMLHTTPRequest object instance
	var myreq = createREQ();

	myreq.onreadystatechange = function()
	{
		if (myreq.readyState == 4)
		{
			if (myreq.status == 200)
			{
				var item = myreq.responseText;
				if (getxml == 1)
				{
					item = myreq.responseXML;
				}
				doCallback(callback,item);
			}
		}
	}
	
	if (reqtype == 'post')
	{
		requestPOST (url,query,myreq);
	} else
	{
		requestGET (url,query,myreq);
	}
}

