var ajax;
var idTimeout;

function requisicaoHTTPinicio(tipo,url,assinc){
	if(window.XMLHttpRequest){
		ajax = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject){
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if (!ajax) {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
    }        
	if(ajax)
		iniciaRequisicaoinicio(tipo,url,assinc);
	else
		alert("Seu navegador não possui suporte para essa aplicação!");
}
function iniciaRequisicaoinicio(tipo,url,bool){
	ajax.onreadystatechange=trataSessoes;
	ajax.open(tipo,url,bool);
	idTimeout = setTimeout(tempoEsgotado, 10000);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.send(null);
}

function trataSessoes(){
	if(ajax.readyState == 4){
		clearTimeout(idTimeout);
		if(ajax.status == 200){
			trataInicio();
		} else {
			alert("Problema na comunicação com o objeto XMLHttpRequest.");
		}
	}
}

function requisicaoHTTP(tipo,url,assinc){
	if(window.XMLHttpRequest){
		ajax = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject){	
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if (!ajax) {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
    }      
    
	if(ajax)
		iniciaRequisicao(tipo,url,assinc);
	else
		alert("Seu navegador não possui suporte para essa aplicação!");
}

function iniciaRequisicao(tipo,url,bool){
	ajax.onreadystatechange=trataResposta;
	ajax.open(tipo,url,bool);
	idTimeout = setTimeout(tempoEsgotado, 10000);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.send(null);
}

function trataResposta(){
	if(ajax.readyState == 4){
		clearTimeout(idTimeout);
		if(ajax.status == 200){
			trataDados(); 
		} else {
			alert("Problema na comunicação com o objeto XMLHttpRequest.");
		}
	}
}

function tempoEsgotado(){
	ajax.abort();
	alert("Problema na comunicação com o servidor. Tente acessar mais tarde.");
}
