var b_in_proc = false;
function AJAX() {
		
	this.Updater=carregarDados;	
	function carregarDados(caminhoRetorno,idResposta,metodo,mensagem,sIdLoadingAux,processaAfter) {
		
		/*if(b_in_proc)
		{
			sleep(100);
		}*/
						
		var bProcessaAfter = true;
		if(typeof(processaAfter) != "undefined")
		{bProcessaAfter = processaAfter;}
		
		var sLoadAux = "";
		if(typeof(sIdLoadingAux) != "undefined")
		{sLoadAux = sIdLoadingAux;}
		
		if(sLoadAux != "none")
		{
			show_loading(sLoadAux);
		}
				
		var conteudo;
		if(idResposta != '')
		{
			conteudo=document.getElementById(idResposta)
			conteudo.innerHTML= mensagem;
		}

		var xmlhttp = getXmlHttp();

		//Abre a url		
		xmlhttp.open(metodo.toUpperCase(), caminhoRetorno,false);		
		xmlhttp.send(null);

		//Executada quando o navegador obtiver o código
		/*xmlhttp.onreadystatechange=function(){	
			
			b_in_proc = true;
			
			if (xmlhttp.readyState==4){
				
				//Lê o texto*/
				var texto=xmlhttp.responseText;

				//Desfaz o urlencode
				texto=texto.replace(/\+/g," ");
				texto=unescape(texto);

				//Exibe o texto no div conteúdo

				if(idResposta != '')
				{
					conteudo=document.getElementById(idResposta);
					conteudo.innerHTML=texto;
				}
								
				if(bProcessaAfter)
				{					
					AfterAJAXUpdate(xmlhttp.responseText);
				}
				
				if(sLoadAux != "none")
				{
					hide_loading(sLoadAux);
				}	
				
				b_in_proc = false;
			/*}
		}
		xmlhttp.send(null);*/
	}	
}

AfterAJAXUpdate=function(){};

function getXmlHttp() {
	var xmlhttp;
	try{
		xmlhttp = new XMLHttpRequest();
	}catch(ee){
		try{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

function session_reg(sVar,sValue)
{
	var ajax = new AJAX();
	ajax.Updater(ROOT + 'session_reg.php?var=' + escape(sVar) + '&value=' + escape(sValue),'','get','','none',false);
}

var __AJAX_session_var = "";
function session_get(sVar)
{
	__AJAX_session_var = "";
	
	var xmlhttp = getXmlHttp();
	xmlhttp.open("GET", ROOT + "session_get.php?var=" + escape(sVar),true);

	xmlhttp.onreadystatechange=function() {

		if (xmlhttp.readyState==4){
			var texto=xmlhttp.responseText;
			__AJAX_session_var = texto;
		}
	}
	xmlhttp.send(null);
}

function hide_loading(id_aux)
{
	var sIdAux = '';
	if(id_aux)
	{sIdAux = id_aux;}
		
	if(document.getElementById('loading_image_' + sIdAux))
	{
		document.getElementById('loading_image_' + sIdAux).style.display = 'none';
	}
}

function show_loading(id_aux)
{
	var sIdAux = '';
	if(id_aux)
	{sIdAux = id_aux;}
	
	if(document.getElementById('loading_image_' + sIdAux))
	{
		document.getElementById('loading_image_' + sIdAux).style.display = '';
	}
}

function atualiza_listagem(sUrl,sIdCP)
{
	 var ajax = new AJAX();
	 AfterAJAXUpdate = function(){
		 if(typeof monta_popup_lista == 'function') {
			 monta_popup_lista();
		 }
	 }        
     ajax.Updater(sUrl,sIdCP,'get','','listagem',true);    
}

function makePOSTRequest(url, idForm, idDivRetorno, idLoading,idDivForm) {
	
   $("#form_cadastro input.erro, #form_cadastro select.erro, #form_cadastro textarea.erro").removeClass("erro");
	
   show_loading(idLoading);
   var http_request = getXmlHttp();
   var divRetorno = document.getElementById(idDivRetorno);
   var oForm = document.getElementById(idForm); 
	   
   if (!http_request) {
      alert('Seu navegador não suporta XMLHTTP');
      return false;
   }  
   
   var parameters = encodeURI(getFormValues(oForm));
      
   http_request.onreadystatechange=function(){
		
		if (http_request.readyState==4){
			divRetorno.innerHTML = http_request.responseText;
			if(http_request.responseText.search('<!--SUCESSO-->')>-1)
			{
				sleep(1000);
				document.getElementById(idDivForm).style.display = "none";				
			}
			hide_loading(idLoading);
		}
   }
   http_request.open('POST', url, true);
   http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   http_request.setRequestHeader("Content-length", parameters.length);
   http_request.setRequestHeader("Connection", "close");
   http_request.send(parameters);   
}

function getFormValues(oForm)
{	
	var sStr = "";
	var elements = oForm.getElementsByTagName("input");
	for(var i=0;i<elements.length;i++)
	{
		if(elements[i].name != "")
		{
			if(elements[i].type.toUpperCase() == "CHECKBOX" || elements[i].type.toUpperCase() == "RADIO")
			{
				if(elements[i].checked)
				{
					sStr += elements[i].name + "=" + elements[i].value + "&";
				}
			}
			else
			{sStr += elements[i].name + "=" + elements[i].value + "&";}
		}
	}
	var elements = oForm.getElementsByTagName("select");	
	for(var i=0;i<elements.length;i++)
	{
		if(elements[i].name != "")
		{sStr += elements[i].name + "=" + elements[i].options[elements[i].options.selectedIndex].value + "&";}
	}
	var elements = oForm.getElementsByTagName("textarea");	
	for(var i=0;i<elements.length;i++)
	{
		if(elements[i].name != "")
		{sStr += elements[i].name + "=" + elements[i].value + "&";}
	}
	return sStr;
}
