function makeRequest(url, element_name, onLoad, onError)
{
	var http_request = false;
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	} 
	else if (window.ActiveXObject) 
	{
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) { }
		}
	}

	if (!http_request)
	{
		alert('Cannot create an XMLHTTP instance');
		return false;
	}
	
	http_request.onreadystatechange = function()
	{ 
		if (http_request.readyState == 4)
		{
			if (http_request.status == 200)
				if (onLoad) onLoad(http_request, element_name);
				else defaultLoadHandler(http_request, element_name);
			else
				if (onError) onError(element_name); 
				else defaultErrorHandler(element_name);
		}
	}
	
	http_request.open('GET', url, true);
	http_request.send(null);
}

function defaultLoadHandler(http_request, element_name)
{
	var element;
	var responseText;
	if (http_request) responseText=http_request.responseText;
	else responseText="XMLHttpRequest object is not defined";
	if (element_name!=undefined)
	{
		element=document.getElementById(element_name)
		if (element) element.innerHTML=responseText;
		else alert("Can't find element: "+element_name);
	}
}

function defaultErrorHandler(element_name)
{
	var element;
	var date=new Date();
	var errorMessage=date.getHours()+":"+date.getMinutes()+" There was a problem with the request.";
	if (element_name!=undefined)
	{
		element=document.getElementById(element_name)
		if (element) element.innerHTML=errorMessage;
		else alert("Can't find element: "+element_name+"\r\n"+errorMessage);
	}
	else alert(errorMessage);
}

