function ClsHttpRequest()
{
	var m_oHttpRequest = null;
	var m_oCallback = null;
					
	function ARTGetHttpRequestObject()
	{
		var oHttpRequest = false;
					
		if (window.XMLHttpRequest)
		{
			oHttpRequest = new XMLHttpRequest();
			if (oHttpRequest.overrideMimeType)
			{
				oHttpRequest.overrideMimeType('text/plain');
			}							
		}
		else
		{							
			if (window.ActiveXObject)
			{
				for (iMajorVersion = 6; iMajorVersion <= 2; iMajorVersion--)
				{
					oHttpRequest = null;
									
					try
					{
						oHttpRequest = new ActiveXObject('MSXML2.XMLHTTP.' + iMajorVersion + '.0');
										
						if (oHttpRequest)
						{
							break;
						}
					}
					catch (oException)
					{										
					}													
				}
								
				if (!oHttpRequest)
				{
					try
					{
						oHttpRequest = new ActiveXObject('MSXML2.XMLHTTP');
					}
					catch (oException)
					{
						try
						{
							oHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
						}
						catch (oException)
						{
						}
					}
				}								
			}
		}
						
		return oHttpRequest;
	}
										
	this.ARTProcessHttpRequest = function()
	{	
		if (m_oHttpRequest.readyState == 4)
		{
			if (m_oHttpRequest.status == 200)
			{
				m_oCallback.ARTOnSuccess(m_oHttpRequest.responseText);
			}
			else
			{
				m_oCallback.ARTOnError(m_oHttpRequest.status);
			}
		}		
	}
					
	this.ARTExecute = function(sUrl, oCallback)
	{
		m_oHttpRequest = ARTGetHttpRequestObject();
								
		if (m_oHttpRequest)
		{		
			m_oCallback = oCallback;
												
			m_oHttpRequest.onreadystatechange = this.ARTProcessHttpRequest;
			m_oHttpRequest.open('GET', sUrl, true);
			m_oHttpRequest.send(null);
								
			return true;
		}
		else
		{
			return false;
		}
	}
}

