var objXHR;
var objLocalResultado;
var strURL;

//===
// Função que cria o objetos XMLHttpRequest
//===
function criarObjXHR(){
	if (window.ActiveXObject)
		objXHR = new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest)
		objXHR = new XMLHttpRequest();
	return;
}


//===
// Funcao Ajax com metodo GET
//===
function ExecAjax(url, strLocalResultado){
	//===
	// configura o objeto XMLHttpRequest
	//===
	criarObjXHR();														//Criando o objeto
	
	//Forçando uma url sempre diferente		
	if(url.indexOf("?") == -1){
		strURL = url + "?timestamp=" + new Date().getTime();
	}else{
		strURL = url + "&timestamp=" + new Date().getTime();
	 }

	objLocalResultado = document.getElementById(strLocalResultado);		//Determinando o local de retorno do resultado
	objXHR.open("GET", strURL, false);									//Configurando a chamada ao servidor	
	
	//===
	// Setando cabeçalhos
	//===
	objXHR.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	objXHR.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	objXHR.setRequestHeader("Pragma", "no-cache");

	//===
	// Determina a função de callback
	//===
	objXHR.onreadystatechange = callBack;
	
	//===	
	// Submete								
	//===
	objXHR.send(null);													
}

//===
// Nova Funcao Ajax com metodo GET 
//===
function executarAjaxGET(strUrlAlvo, strLocalResultado){
	//===
	// configura o objeto XMLHttpRequest
	//===
	criarObjXHR();														//Criando o objeto

	//Forçando uma url sempre diferente		
	if(strUrlAlvo.indexOf("?") == -1){
		strURL = strUrlAlvo + "?timestamp=" + new Date().getTime();
	}else{
		strURL = strUrlAlvo + "&timestamp=" + new Date().getTime();
	 }	 	
	objLocalResultado = document.getElementById(strLocalResultado);		//Determinando o local de retorno do resultado
	//alert(objLocalResultado);

	objXHR.open("GET", strURL);							//Configurando a chamada ao servidor	
	
	//===
	// Setando cabeçalhos
	//===
	objXHR.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	objXHR.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	objXHR.setRequestHeader("Pragma", "no-cache");

	//===
	// Determina a função de callback
	//===
	objXHR.onreadystatechange = callBack;
	
	//===	
	// Submete								
	//===
	objXHR.send(null);													
}


//===
// Funcao Ajax com metodo POST
//===
function ExecAjaxPOST(url, strQueryString, strLocalResultado){
	//===
	// Configura o objeto XMLHttpRequest
	//===
	criarObjXHR();														//Criando o objeto
	objLocalResultado = document.getElementById(strLocalResultado);		//Determinando o local de retorno do resultado
	strURL = url;														//Determina a URL
	objXHR.open("POST", strURL, false);									//Configurando a chamada ao servidor	
	
	//===
	// Seta cabeçalhos
	//===
	objXHR.setRequestHeader('Content-Type', "application/x-www-form-urlencoded;charset='ISO-8859-1'");
    objXHR.setRequestHeader("Content-length", strQueryString.length);	
					
	//===
	// Determina a função de callback
	//===
	objXHR.onreadystatechange = callBack;

	//===	
	// Submete								
	//===
	objXHR.send(strQueryString);	
}


//===
// Função que é executada a cada alteração de estado do objeto XMLHttpRequest
//===
function callBack(){
		
	/*===	
	RESULTADOS RETORNADOS EM readyState
	0 -> não inicializada
	1 -> carregando
	2 -> carregada
	3 -> interativa
	4 -> concluída
	===*/	
	
	if(objXHR.readyState == 1)
	{
		objLocalResultado.innerHTML = "<br><img src='./images/wait.gif'><br><br>";
	}
	
	if(objXHR.readyState == 4)
	{

		// Quando estiver tudo pronto.
		if(objXHR.status == 200)
		{
			objLocalResultado.innerHTML = objXHR.responseText;
		} 
		else 
		{
			//Em ambiente de produção - existe também statusText
			//objLocalResultado.innerHTML = "Ocorreram erros no processamento...<br>" + objXHR.status + '  : ' + objXHR.statusText;

			//Em ambiente de desenvolvimento
			window.open(strURL, 'Erro_do_arquivo_chamado_pelo_AJAX');
		}
		
	}
	
	return;
}


//===
// Funcao que apartir de um form, retorna uma querystring com todos os campos do form
//===
function montarParametros(objForm) { 
   var str 		= ""; 

   for(var i = 0; i < objForm.elements.length; i++) { 

       switch(objForm.elements[i].type) { 

           case "text": 
                str += objForm.elements[i].name + "=" + escape(objForm.elements[i].value) + "&"; 
                break; 
				 
           case "hidden": 
                str += objForm.elements[i].name + "=" + escape(objForm.elements[i].value) + "&"; 
                break; 				 

           case "select-one": 
                str += objForm.elements[i].name + "=" + objForm.elements[i].options[objForm.elements[i].selectedIndex].value + "&"; 
                break; 

           case "radio":
                if (objForm.elements[i].checked) {
                	str += objForm.elements[i].name + "=" + objForm.elements[i].value + "&"; 
                }
                break;
                
           case "checkbox":
                if (objForm.elements[i].checked) {
                	str += objForm.elements[i].name + "=" + objForm.elements[i].value + "&"; 
                }
                break;
                
           case "textarea":
                str += objForm.elements[i].name + "=" + escape(objForm.elements[i].value) + "&"; 
                break;                                                    
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}



function fListaTabela(strUrl, objresult)
			{
				ExecAjax(strUrl, objresult);
				
			}


function caracter(strVerifica){
	str = document.getElementById(strVerifica).value;
	x = str.length;
	for (i = 0; i <= x; i++){
		str = str.replace(/'/,"");
		str = str.replace(/"/,"");
		}
		document.getElementById(strVerifica).value = str;
		return true;
}
