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="..."
    //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ágina não encontrada";
				break;
			case 500:
				return "Erro interno do servidor";
				break;
			default:
				return "Erro desconhecido<br>" + xmlhttp.status + " - " + xmlhttp.statusText.replace(/\+/g," ");
		}
	}


    function makeRequest(url) {

        http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() {
			if (http_request.readyState == 4) {
				if (http_request.status == 200) {
					update(http_request.responseText);
				} else {
					alert('There was a problem with the request.');
        	   	}
       		}
		};
        http_request.open('GET', url, true);
        http_request.send(null);

    }
	


