//-----------------------------------------------------------
//
// HttpRequest class
//
// hh.Get(Url, function(Response) {
//	 alert(Response)
// });
//-----------------------------------------------------------
function HttpRequest()
{
	var _HttpRequestHandler = Init();
	
	function Init()
	{
		if ((typeof XMLHttpRequest) != "undefined") 
		{
			_HttpRequestHandler = new XMLHttpRequest();
		}
		else if (window.createRequest)
		{
			_HttpRequestHandler = window.createRequest();
		}
		else if (window.ActiveXObject)
		{
			_HttpRequestHandler = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		return _HttpRequestHandler;
	}
	
	this.Get = function(Url, Fun)
	{
		_HttpRequestHandler.open("GET", Url, false, null, null);
		_HttpRequestHandler.send(null);

		if (_HttpRequestHandler.status == 200)
		{
			Fun(_HttpRequestHandler.responseText);
		}
		else
		{
			Fun(null);
		}
	}
	
	this.GetASync = function(Url, Fun)
	{
		_HttpRequestHandler.open("GET", Url, true, null, null);
		_HttpRequestHandler.onreadystatechange = function() {
			if(_HttpRequestHandler.readyState == 4)
			{
				Fun(_HttpRequestHandler.responseText);
			}
		 }
		 _HttpRequestHandler.send(null);
	}
	
	this.GetASync2 = function(Url, Fun)
	{
		_HttpRequestHandler.open("GET", Url, true, null, null);
		_HttpRequestHandler.onreadystatechange = function() {
			if(_HttpRequestHandler.readyState == 4)
			{
				Fun(_HttpRequestHandler.responseXML);
			}
		 }
		 _HttpRequestHandler.send(null);
	}
	
	this.Post = function(Url, Fun)
	{
		_HttpRequestHandler.open("POST", Url, false, null, null);
		_HttpRequestHandler.setRequestHeader("Content-Type", "multipart/form-data; charset=utf-8"); 
		_HttpRequestHandler.send(null);
		
		if (_HttpRequestHandler.status == 200)
		{
			Fun(_HttpRequestHandler.responseText);
		}
		else
		{
			Fun(null);
		}
	}
}