var update_status=new Array();
var page=new Array();
var thePage=new Array();
var objXMLHttp=new Array();
var a_id=0;
var timeouts=new Array();

function createXmlHttpObject(){
 var req=null;
 try{req=new XMLHttpRequest();}
 catch(e){
  try{req=new ActiveXObject("Msxml2.XMLHTTP");}
  catch(e){
   try{req=new ActiveXObject("Microsoft.XMLHTTP");}
   catch(e){return false;}
  }
 }
 return req;
}
function update(url,newstatus){		
 var id=a_id++;
 update_status[id]=newstatus;		
 var ajx=objXMLHttp[id]=createXmlHttpObject();
 if(ajx==null){return;}
 ajx.id=id;
 ajx.result=function()
 {
  var id=this.id;
	req=objXMLHttp[id];
	upd=update_status[id];
	msg="<img onclick=\"failure(" + id + ");\" title=\"Click to Cancel\" src=\"images/loading2.gif\" />"; 
  if(req.readyState==0 || req.readyState==1 || req.readyState==2 || req.readyState==3){
    document.getElementById(upd).innerHTML=msg;
  }
  else if(req.readyState==4 || req.readyState=="complete"){
	  if(page==1){pageTracker._trackPageview(thePage);page=0;}
    document.getElementById(upd).innerHTML=req.responseText;
		delete req;
		delete upd;
		clearTimeout(timeouts[id]);
  }
 }
 ajx.onreadystatechange=ajx.result;
 ajx.open('GET',url,true);
 ajx.send(null);
 timeouts[id]=setTimeout("failure("+id+");",5000);
}
function update_page(url,newstatus){
 page=1;
 thePage=url;
 update(url,newstatus);
} 
function failure(id){
 document.getElementById(update_status[id]).innerHTML="";     
 objXMLHttp[id].abort();
 delete objXMLHttp[id];
 delete update_status[id];
}


