    /*Devolve um objeto XmlHttpRequest ou false se não conseguir criá-lo*/
    function getXmlHttp(){
        var xmlhttp;
	try {
            xmlhttp = new XMLHttpRequest();
	} catch(ee) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(ee2) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(ee3) {
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
    }
				
    /**
     * Muda o texto do elemento ID para o texto gerado pela chamada a URL
     * 
     * URL = endereço web a ser executado
     * ID  = ID do elemento html a ser utilizado para colocar a resposta vinda de URL
     * MODE = true->chamada assíncrona    false->chamada síncrona
     */
    function setContent(URL, ID, MODE){
	var xmlhttp = getXmlHttp();
		
	xmlhttp.open("GET", URL, MODE);
		xmlhttp.setRequestHeader('Content-Type', "application/x-www-form-urlencoded; charset=iso-8859-1");
        xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
        xmlhttp.setRequestHeader("Pragma", "no-cache");

	/*Monitora o estado da thread XmlHttpRequest*/
	/*Quando ela acabar de receber o conteúdo o if abaixo é executado*/
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4){
			texto = xmlhttp.responseText;
			window.document.getElementById(ID).innerHTML = texto;
		} else {
			texto = "erro";
		}
        };
        
        /*Envia a requisição da página informada no método open*/
        /*No IE isso tem que ficar abaixo da checagem da thread acima*/
        xmlhttp.send(null);
    }