/*
 * returns a valid xmlHttp object or null if the browser doesn't support ajax
 */
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;
}

/*
 * generic ajax function
 */
function ajax(url,id,str,function_onreadystate,strict_query)
{
	
	if(url)
	{
		var xmlHttp=GetXmlHttpObject();
		
		if (xmlHttp==null)
		{
		  alert ("Your browser does not support AJAX!");
		  return;
		}
		if(str)
		{
			query = "?input=";
			if(strict_query)
			{
				query = "";
			}
			url=url+query+str;
			url=url+"&sid="+Math.random();
//			url=url+ "&prev_html=" + document.getElementById(id).innerHTML.replace(/&/g,'%26');
		} 
		xmlHttp.onreadystatechange= function()
		{
			
			if (xmlHttp.readyState==4)
			{
//				console.log("ajax("+url+","+id+","+function_onreadystate+","+strict_query+")");//debugging
				if(id)
				{
					document.getElementById(id).innerHTML=xmlHttp.responseText;	
				}
				if(function_onreadystate)
				{
					function_onreadystate.call();
				}
			}
		};
		
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}

} 
 