//Generic AJAX object for all get/post work
var ajax;
ajax = new Object();
ajax.httpRequest = null; //Initialize
ajax.callbackFunc = null; //Initialize

//Creates http request object
function __createHttpRequest()
{
	var httpRequest = false;
	if(window.XMLHttpRequest) //Mozilla, Safari etc
	{
		httpRequest =new XMLHttpRequest();
	}
	else if(window.ActiveXObject) //IE
	{
		try
		{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	return httpRequest;
}

//GET method request
ajax.getRequest = function(url, parameters, callbackFunc)
{
	this.httpRequest = __createHttpRequest() //recreate ajax object to defeat cache problem in IE
	this.callbackFunc = callbackFunc;
	if(this.httpRequest)
	{
		this.httpRequest.onreadystatechange = __handleResponse;
		this.httpRequest.open('GET', url+"?hash="+Math.random()+'&'+parameters, true);
		this.httpRequest.send(null)
	}
}

//POST method request
ajax.postRequest = function(url, parameters, callbackFunc)
{
	this.httpRequest = __createHttpRequest() //recreate ajax object to defeat cache problem in IE
	this.callbackFunc = callbackFunc;
	if (this.httpRequest)
	{
		this.httpRequest.onreadystatechange = __handleResponse;
		this.httpRequest.open('POST', url, true);
		this.httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
		this.httpRequest.setRequestHeader("Content-length", parameters.length);
		this.httpRequest.setRequestHeader("Connection", "close");
		this.httpRequest.send(parameters);
	}
}

//Handle response, pass the result to callbackFunc
function __handleResponse()
{
	if(ajax.httpRequest.readyState == 4)
	{
		ajax.callbackFunc(ajax.httpRequest.responseText);
	}
}

