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=[]
	ifila=0

//Carrega via XMLHTTP a url recebida e coloca seu valor
//no objeto com o id recebido
function ajaxHTML(id,url){
    //Carregando...
    document.getElementById(id).innerHTML="<p>Carregando...</p>"
    //Adiciona à 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(){
		//Abre a conexão
		xmlhttp.open("GET",fila[ifila][1],true);
		//Função para tratamento do retorno
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4){
				//Mostra o HTML recebido
				if (xmlhttp.status == 200 || xmlhttp.status==0) {
				//Caso o status seja 200(Sucesso) ou nao utilize servidor(chamada local [C:\...]), trata o valor retornado
					retorno=unescape(xmlhttp.responseText.replace(/\+/g," "));
				}else{
					//Caso o status ainda nao foi tratado, chama a funcao de tratamento de pagina de erro
					retorno=ajaxPaginaErro(xmlhttp);
				}
				document.getElementById(fila[ifila][0]).innerHTML=retorno;
							
				//Roda o próximo
				ifila++
				if(ifila<fila.length)setTimeout("ajaxRun()",20)
			}
		}
		//Executa
		xmlhttp.send(null)
	}



//FUNCAO PARA RETORNAR A MENSAGEM DE ERRO QUANDO O SERVIDOR RETORNAR UMA PAGINA DE ERRO
	function ajaxPaginaErro(xmlhttp){
		var retorno;
		switch (xmlhttp.status) {
			case 404:
				return "<p class='form_erro_msg'>Página não encontrada</p>";
				break;
			case 500:
				return "<p class='form_erro_msg'>Erro interno do servidor</p>";
				break;
			default:
				return "<p class='form_erro_msg'>Erro desconhecido!!!<br>" + xmlhttp.status + " - " + xmlhttp.statusText.replace(/\+/g," ");
		}
	}


