
//Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
var navegador = navigator.userAgent.toLowerCase();
 
//Cria uma variável global chamada 'xmlhttp'
var xmlhttp; 

//Função que inicia o objeto XMLHttpRequest
function objetoXML() {
	if (navegador.indexOf('msie') != -1) { //Internet Explorer
		var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; //Operador ternário que adiciona o objeto padrão do seu navegador (caso for o IE) à variável 'controle'
		try {
			xmlhttp = new ActiveXObject(controle); //Inicia o objeto no IE
		} catch (e) { }
	} else { //Firefox, Safari, Mozilla
		xmlhttp = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
	}
}

//Função que envia o formulário
function enviarForm(url, parametros, pardestino, mensagem, parbutton, metodo, funcao) {

    //Atribui à variável 'elemento' o elemento que irá receber a página postada
	var destino = document.getElementById(pardestino);
	if (parbutton != ""){
	   var button = document.getElementById(parbutton);	
    }
    else{
       var button = "";
    }
	//Executa a função objetoXML()
	objetoXML(); 
	
	//Verifica se deu erro para iniciar o objeto
	if (!xmlhttp) { 
        alert("Desculpe, ocorreu um erro ao carregar página!")
		destino.innerHTML = 'Entre em contato com o administrador!'; 
		return;
	} else { 
        //se o objeto foi iniciado com sucesso executa as ações de espera
		destino.innerHTML = mensagem; //mensagem carregando
		if (button != "") {
		  button.disabled = true; //desabilita o botão		  
        }
	}
	
	xmlhttp.onreadystatechange = function () {
		//Se a requisição estiver completada
    	if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) {
			//Se o status da requisição estiver OK 
    		if (xmlhttp.status == 200) { 
				//Insere no 'destino' a página postada
				retorno = unescape(xmlhttp.responseText.replace(/\+/g," "));			             
				//retorno = xmlhttp.responseText;				
				destino.innerHTML = retorno;    			
				if (button != "") {
		          button.disabled = false; //habilita o botão
                }
				if (funcao) {
				    funcao();
                }
				//AtualizaTotal();
				
    		} else { 
                //se der erro gera mensagem
                destino.innerHTML = 'Página não encontrada!';    			
    		}
    	}
	}
	//Abre a página que receberá os campos do formulário
	if (metodo == 'POST'){		
        xmlhttp.open('POST', url+'?'+parametros, true); 	
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        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");
    	xmlhttp.send(parametros); 
	}
	else if (metodo == 'GET'){
        xmlhttp.open("GET", url+'?'+parametros, true);
        xmlhttp.send(null);    
    }
}

