var READY_STATE_COMPLETE = 4;
var STATUS_OK = 200;

function initXMLHTTPRequest()
	{
		if (window.XMLHttpRequest)
			{
				this.reqObject = new XMLHttpRequest();
			}
		else if (window.ActiveXObject)
			{
				this.reqObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
		return this.reqObject;
	}




function sendRequest(funcCall, url, params, HttpMethod)
	{
		var req = new initXMLHTTPRequest();
		if (!HttpMethod)
			{
				HttpMethod = "GET";
			}
			
		if (params)
			{
				if (SESSION_ID)
					{
						params += "&" + SESSION_ID;
					}
			}
		else
			{
				if (SESSION_ID)
					{
						params = SESSION_ID;
					}
			}
			
		if (req)
			{
				req.open(HttpMethod,url, true);
				req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
				
				req.onreadystatechange = function()
					{
						if ((req.readyState == READY_STATE_COMPLETE) && (req.status == STATUS_OK))
							{
								eval(funcCall+"('"+req.responseText+"')");
							}
					}
				req.send(params);
			}
	}




function urldecode (str)
	{    
		return decodeURIComponent(str.replace(/\+/g, '%20'));
	}
