/**
 * Cria um objeto XMLHttp
 * retorna objeto XMLHttp
 */
function criaXMLHttp() {
	if (typeof XMLHttpRequest != "undefined") 
		return new XMLHttpRequest();
	else if (typeof ActiveXObject != "undefined") {
		var aVersoes = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0",
		"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
		"MSXML2.XMLHttp", "Microsoft.XMLHttp"
		];
		for (var i = 0; i < aVersoes.length; i++){
			try{
				return new ActiveXObject(aVersoes[i]);
			}catch (e) {}
		}
	}
	// se xmlhttp não for suportado
	throw new Error("Seu browser nao suporta AJAX");
}

/**
 * Realiza a consulta
 * Retorna resultado
 */
function ajax(metodo, arquivo){	
	consulta = criaXMLHttp();
	if (consulta != null) {
		consulta.open(metodo, arquivo, true);
		consulta.send(null);
		consulta.onreadystatechange = function(){
			if(consulta.readyState == 4){
				consulta.close;
			}	
		}
	}
}

function sjax(source){
	var xmlHttp;
	var resposta = -1;

	try{
	  xmlHttp=new XMLHttpRequest();
	}catch (e){
	  try{
    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }catch (e){
    	try{
	      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    	}catch (e){
	      alert("Seu navegador não tem suporte a SJAX!");
    	  return false;
	    }
	  }
	}
	
	var uid	 = 10 + Math.floor(Math.random() * 985486);
	
	var td = new Date();
	
	var data = td.getDate();
	var hora = td.getTime();
	
	if( source.indexOf("?") != -1 ){
		source += "&uidajax=" + uid + "&dataajax=" + data + "&horaajax=" + hora;
	}else{
		source += "?uidajax=" + uid + "&dataajax=" + data + "&horaajax=" + hora;
	}
	
	xmlHttp.open("GET",source,false);
	xmlHttp.send(null);

	if(xmlHttp.status==200){
		resposta = xmlHttp.responseText;
	}else{
		resposta = 0;
	}

	xmlHttp = null;
	return resposta;
}



/* ex de uso:
   ajax(nome da consulta, metodo, arquivo, dados, div resultado, div estado, somar div resultado);
*/
