
function ajax_get (url, params, callback)
{
	var http = getNewHTTPObject();
	if (!http)
	{
		callback(null);
		return;
	}
	
	http.open("GET", url + "?" + params, true);
	
	http.onreadystatechange = function() {
		if (http.readyState == 4)
			callback(http.responseText, http.status);
	};
	
	http.send(null);
	delete http;
}

function ajax_post (url, params, callback)
{
	var http = getNewHTTPObject();
	if (!http)
	{
		callback(null);
		return;
	}
	
	http.open("POST", url, true);
	
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");
	
	http.onreadystatechange = function() {
		if (http.readyState == 4)
			callback(http.responseText, http.status);
	};
	
	http.send(params);
	delete http;
}

function getNewHTTPObject ()
{
	var xmlhttp;
	
	/** Special IE only code ... */
	/*@cc_on
	@if (@_jscript_version >= 5)
		try
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (E)
			{
				xmlhttp = false;
			}
             	}
	@else
		xmlhttp = false;
	@end @*/
	
	/** Every other browser on the planet */
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	
	return xmlhttp;
}