function MakeXMLHttpRequest()
{
	var Result = null;
	
	if ((typeof XMLHttpRequest) != 'undefined') 
	{
		Result = new XMLHttpRequest();
	}
	else if (window.createRequest)
	{
		Result = window.createRequest();
	}
	else if (window.ActiveXObject)
	{
		Result = new ActiveXObject('Microsoft.XMLHTTP');
	}
	return Result;
}

function HttpGetRequest(Url, Params, ResponseFuction, ErrorFunction)
{
	HttpRequest(MakeXMLHttpRequest(), "GET", Url, Params, ResponseFuction, ErrorFunction);
}

function HttpPostRequest(Url, Params, ResponseFuction, ErrorFunction)
{
	HttpRequest(MakeXMLHttpRequest(), "POST", Url, Params, ResponseFuction, ErrorFunction);
}

function HttpRequest(XMLHttpRequest, Method, Url, Params, ResponseFuction, ErrorFunction)
{	
	if (XMLHttpRequest != null)
	{
		if (Method == "POST")
		{			
			XMLHttpRequest.open(Method, Url, false, null, null);
			XMLHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			XMLHttpRequest.setRequestHeader("Content-length", Params.length);
			XMLHttpRequest.setRequestHeader("Connection", "close");
			XMLHttpRequest.send(Params);
		}
		else
		{
			XMLHttpRequest.open(Method, Url, false, null, null);
			XMLHttpRequest.send(null);
		}

		if (XMLHttpRequest.status == 200)
		{
			Result = XMLHttpRequest.responseText.replace(/^\s+/, '').replace(/\s+$/, '');
			
			if (ResponseFuction != null)
			{
				ResponseFuction(Result);
			}
			else if (EventHttpResponse)
			{
				EventHttpResponse(Result);	
			}
		}
		else
		{
			if (ErrorFunction != null)
			{
				ErrorFunction(XMLHttpRequest.status);
			}
			else if (EventHttpError)
			{
				EventHttpError(XMLHttpRequest.status);
			}
		}
		
		return true;
	}
	return false;
}
