function initAjax()
{
	var ajaxRequest = null;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions and security blocked creation of the objects.
	try
	{
		ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			ajaxRequest = null;
		}
	 }

	@end @*/
	if (!ajaxRequest && typeof XMLHttpRequest != "undefined")
	{
		ajaxRequest = new XMLHttpRequest();
	}

	return ajaxRequest;
}

function sendAjax(id,url,body,timeout,callback)
{
	var array = url.split("#"); url = array[0]; var fragment = array[1]; cacheAjax || (url += (url.indexOf('?') < 0 ? "?" : "&") + "rnd=" + Math.random()); useCookie || (url += (url.indexOf('?') < 0 ? "?" : "&") + sessionName + "=" + sessionID);
	var ajaxRequest = null;
	var ajaxCallback = callback;
	var ajaxCallbackArgs = new Array(); for (var i=5;i<arguments.length;i++) ajaxCallbackArgs[i - 5] = arguments[i];

	function bindAjaxCallback()
	{
		switch (ajaxRequest.readyState)
		{
			case 0:	break;
			case 1:	typeof(timeout) == "number" && toggleDisplay("blind",true); break;
			case 2:	break;
			case 3:	break;
			case 4:
				if (ajaxRequest.status == 200 || ajaxRequest.status == 0)
				{
					if (ajaxRequest.responseText == "NO_AUTH")
					{
						top.location.href = "index.php";
					}
					else
					{
						if (id)
						{
							document.getElementById(id).innerHTMLOld = document.getElementById(id).innerHTML;
							document.getElementById(id).innerHTML = unescape(ajaxRequest.responseText);
						}
						else
						{
							ajaxRequest.responseText && ajaxCallbackArgs.unshift(ajaxRequest.responseText);
						}

						ajaxCallback && typeof(ajaxCallback) == "function" && ajaxCallback.apply(null,ajaxCallbackArgs);
					}
				}
				else
				{
					alert(ajaxRequest.statusText + "\n" + ajaxRequest.getAllResponseHeaders() + "\n" + ajaxRequest.responseText);
				}

				typeof(timeout) == "number" && setTimeout("toggleDisplay(\"blind\",false)",timeout);

				break;
		}
	}

	if (ajaxRequest = initAjax())
	{
		ajaxRequest.open(body ? "POST" : "GET",url,true);
		ajaxRequest.onreadystatechange = bindAjaxCallback;
		body && ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    		ajaxRequest.send(body);

		delete ajaxRequest;
	}
	else
	{
		alert("Uw browser ondersteunt niet de juiste functionaliteit binnen Javascript");
	}

	fragment && (document.location = document.location.protocol + "//" + document.location.host + document.location.pathname + "#" + fragment);

	return false;
}

var cacheAjax = false;
var useCookie = true;