var xmlHttp;

/*
 * Url = document url
 * Params = array of parameters to pass along
 * Callback = callback function
 */
function fetchData(url, params, callback)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var glue = "?";
	if(params.length > 0) {
		for(x in params) {
			url = url + glue + params[x].key + "=" + params[x].value;
			glue = "&";
		}
	}
	url = url + glue + "sid="+Math.random();
	xmlHttp.onreadystatechange=callback;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/*
 * Example callback function
 */ 
function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
 		document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
 	} 
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
 	{
 		// Firefox, Opera 8.0+, Safari
		 xmlHttp=new XMLHttpRequest();
 	}
	catch (e)
	{
		//Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
			catch (e)
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
	return xmlHttp;
}