if(typeof XMLHttpRequest == "undefined")
	XMLHttpRequest = function()
	{
		try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {};
		try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {};
		try { return new ActiveXObject("Msxml2.XMLHTTP"); }     catch(e) {};
		try { return new ActiveXObject("Microsoft.XMLHTTP"); }  catch(e) {};

		throw new Error("Browser does not support XMLHttpRequest or XMLHTTP.");
	};
 
function ajaxGet(url, callback, param, ajaxOptions)
{
	ajax(url, "GET", null, callback, param, ajaxOptions);
}

function ajaxPost(url, vars, callback, param, ajaxOptions)
{
	ajax(url, "POST", vars, callback, param, ajaxOptions);
}
 
function ajax(url, method, vars, callback, param, ajaxOptions)
{
	if(ajaxOptions == 'default')
		ajaxOptions = {'loading': 'showElement(\'ajaxLoadIndicator\')', 'complete': 'hideElement(\'ajaxLoadIndicator\')'};
	if(ajaxOptions != null)
		eval(ajaxOptions["loading"]);
	var req =  new XMLHttpRequest();
	req.open(method, url, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{//&& request.status == 200
			if (req.responseText && callback != null)
			{
				if(ajaxOptions != null)
					eval(ajaxOptions["complete"]);
				callback(req.responseText, param, ajaxOptions);
			}
		}
	};
	req.send(vars);
}