
	function Motif_GetHttpText(url, returnHeaderName)
	{
		// synchronous request
		oHttpRequest = Motif_GetXmlHttp();
		if (oHttpRequest)
		{
			oHttpRequest.open('GET', url, false);
			oHttpRequest.send(null);
			if (returnHeaderName)
				return oHttpRequest.getResponseHeader(returnHeaderName);
			else
				return oHttpRequest.responseText
		}
		return null;
	}
	
	function Motif_PostHttpText(url, postData, returnHeaderName)
	{
		// synchronous request
		oHttpRequest = Motif_GetXmlHttp();
		if (oHttpRequest)
		{
			oHttpRequest.open("POST", url, false);
			oHttpRequest.send(postData);
			
			if (returnHeaderName)
				return oHttpRequest.getResponseHeader(returnHeaderName);
			else
				return oHttpRequest.responseText
		}
		return null;
	}	
	
	function Motif_AsyncHttpXml(serverURL, xml, callbackFunction)
	{
		var httpRequest = Motif_GetXmlHttp();

		if(httpRequest != null)
		{
			try
			{
				httpRequest.open("POST", serverURL, true);
				httpRequest.setRequestHeader("Content-Type", "text/xml");
				if (callbackFunction)
				{
				    httpRequest.onreadystatechange = function(){
					    Motif_WatchState(httpRequest, callbackFunction);
				    };
				}
				httpRequest.send(xml);
				return httpRequest;
			}
			catch(e)
			{
				return null;
			}
		}
		else
			return null;
	}
	
	function Motif_AsyncHttp(serverURL, callbackFunction)
	{
		var httpRequest = Motif_GetXmlHttp();

		if(httpRequest != null)
		{
			try
			{
				httpRequest.open("GET", serverURL, true);
				if (callbackFunction)
				{
				    httpRequest.onreadystatechange = function(){
					    Motif_WatchState(httpRequest, callbackFunction);
				    };
				}
				httpRequest.send(null);
				return httpRequest;
			}
			catch(e)
			{
				return null;
			}
		}
		else
			return null;
	}
	
	function Motif_WatchState(Response, callbackFunction)
	{
		if(Response.readyState == 4)
			callbackFunction(Response);
	} 
	
	function Motif_GetXmlHttp()
	{
		var httpRequest = null;
	
		if (window.XMLHttpRequest)
			httpRequest = new XMLHttpRequest();
		else if (window.ActiveXObject)
			httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		
		return httpRequest;
	}

