try{
	xmlhttp = new XMLHttpRequest();
}catch(ee){
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(E){
			xmlhttp = false;
		}
	}
}

//Fila de conexões
fila = new Array();
ifila=0;

function ajaxHTML(id,url){
	//Adiciona na fila
	fila[fila.length]=[id,url];
	//Se não há conexões pendentes, executa
	if((ifila+1)==fila.length)ajaxRun();
}

//Executa a próxima conexão da fila
function ajaxRun(){
	xmlhttp.open("GET",fila[ifila][1],true);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4){
			//Mostra o HTML recebido
			retorno=unescape(xmlhttp.responseText);
			document.getElementById(fila[ifila][0]).innerHTML = document.getElementById(fila[ifila][0]).innerHTML + retorno;
			//Roda o próximo
			ifila++;
			if(ifila < fila.length) setTimeout("ajaxRun()",20);
		}
	}
	//Executa
	xmlhttp.send(null)
}

function ajaxHTMLPost(id,url,campos){
	//Adiciona na fila
	fila[fila.length]=[id,url,campos];
	//Se não há conexões pendentes, executa
	
	if((ifila+1)==fila.length)ajaxRunPost();
}

//Executa a próxima conexão da fila
function ajaxRunPost(){
	
	xmlhttp.open("POST",fila[ifila][1]+"?"+fila[ifila][2],true);
	xmlhttp.send(fila[ifila][2]);
	xmlhttp.onreadystatechange=function() {
		
		if (xmlhttp.readyState==4){
			//Mostra o HTML recebido
			retorno=unescape(xmlhttp.responseText);
			document.getElementById(fila[ifila][0]).innerHTML = retorno;
			//Roda o próximo
			ifila++;
			if(ifila < fila.length) setTimeout("ajaxRun()",20);
		}
	}
	//Executa
	xmlhttp.send(null);
}
