try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

atual=0
function executa_funcao(n, alvo, parametros){
	LimpaDivAlerta();
	var conteudo=document.getElementById(alvo)
    conteudo.innerHTML='<span class="carregando"><img src="img/loading.gif">Carregando...</span>'
    xmlhttp.open("POST", 'monta_tela.php?'+n+'&param='+parametros,true);
    xmlhttp.onreadystatechange=function() 
	  {
        if (xmlhttp.readyState==4)
		  {
            var texto=xmlhttp.responseText
            //Desfaz o urlencode
            texto=texto.replace(/\+/g," ")
            ExtraiScript(texto);
            texto=unescape(texto)
            var conteudo=document.getElementById(alvo)
            conteudo.innerHTML=texto;
        }
      }
    xmlhttp.send(null);
  }

function executa_funcao_ambiente(fpagina, n, alvo, parametros){
	var conteudo=document.getElementById(alvo)
    conteudo.innerHTML='<span class="carregando"><img src="img/loading.gif">Carregando...</span>'

	
    xmlhttp.open("POST", fpagina+'?'+n+'&param='+parametros,true);
    //Executada quando o navegador obtiver o código
    xmlhttp.onreadystatechange=function() {

        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
            var conteudo=document.getElementById(alvo)
            conteudo.innerHTML=texto;
			
			ExtraiScript(texto);
        }
    }
    xmlhttp.send(null)
}

//Função para pegar dados de formulario e montar URL, para enviar via post.

function MontaValores(fOrdemForm, fParametroAdicional) 
  { 	
	var queryString = ""; 
	var form = document.getElementById(fOrdemForm);
    for (var i = 0; i < form.elements.length; i++) { 
	  //alert('teste'+form.elements[i].name+''+form.elements[i].value);
        if ( (form.elements[i].type == "text" || form.elements[i].type == "password" || 
            form.elements[i].type == "textarea" || form.elements[i].type == "combobox" ||form.elements[i].type == "select-one" || form.elements[i].type == "hidden" ) &&  (form.elements[i].getAttribute('readonly') != true))  { 
         queryString = queryString + form.elements[i].name + "=" + url_encode(form.elements[i].value.replace(/^\ /, '')) + "&"; 
        } 
        if (form.elements[i].type == "checkbox") { 
         queryString = queryString + form.elements[i].name + "=" + form.elements[i].checked + "&"; 
        } 
        if (form.elements[i].type == "radio") { 
            if (form.elements[i].checked == true) { 
             queryString = queryString + form.elements[i].name + "=" + form.elements[i].value + "&"; 
            } 
        } 
    } 
	// TipoOperacao é uma variável global definida no arquivo scripts_js
  if(fParametroAdicional.length > 0)
    fParametroAdicional += "=0&TIPO_OPERACAO="+TipoOperacao;
  else
    fParametroAdicional = "TIPO_OPERACAO="+TipoOperacao;
	
  queryString = queryString + fParametroAdicional;
  //queryString = queryString + "&"+ fParametroAdicional + "=0&TIPO_OPERACAO="+TipoOperacao ;
  return queryString; 
}

function EnviaForm(fActionForm, fAlvo, fForm, fParametroAdicional)
  {
	
	var conteudo=document.getElementById(fAlvo);
	
    // Verifica se tem algum campo com required=S e que não tem valor
	var campos_obrigatorios = "";
	var qtde_campo_em_branco=0;
	var texto = "Os campos marcados em vermelho são obrigatórios e não foram preenchidos. <br>";
	formulario = document.getElementById(fForm);
	conta_primeiro = 0;
	
	for(i=0;i<formulario.elements.length;i++)
	  {	
		if(formulario.elements[i].getAttribute('required') == "S")
		  {
		    if(formulario.elements[i].value == "") 
		      {
		        campos_obrigatorios = campos_obrigatorios + "  * "+ formulario.elements[i].id+'<br>' ;
				nome_label = "label_"+formulario.elements[i].id;
				var label_campo = document.getElementById(nome_label);
				if(conta_primeiro <= 0)
				  {
					nome_primeiro = formulario.elements[i].id;
					//alert(nome_primeiro);
					conta_primeiro++;
				 	var primeiro = document.getElementById(nome_primeiro);
				  //	alert('Primeiro: ' + primeiro +'Nome primeiro: ' + nome_primeiro);
				  }
				// tenho q olhar a linha abaixo com calma..pq nao funca no FireFox....
				label_campo.className = "marca_obrigatorio";
				
			    qtde_campo_em_branco++;
			  }
		  }
	  }
	// Fim da verificacao
	if(qtde_campo_em_branco >=1)
	  {
		primeiro.focus();
		conteudo.innerHTML=texto;
		return false;
	  }
	
	if(qtde_campo_em_branco <=0)
	  {
		// Se for passado como parametro adicional "desabilita_form", então executa DesabilitaTudo para este form
		
		
		if(fParametroAdicional == "desabilita_form")
		  DesabilitaTudo(true, fForm);  
 
		xmlhttp.open("POST", ""+fActionForm, true); 
		this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    this.xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	    this.xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	    this.xmlhttp.setRequestHeader("Pragma", "no-cache");
		//conteudo = unescape(xmlhttp.responseText.replace(/\+/g," ")).
		//alert(MontaValores(fForm, fParametroAdicional));
		xmlhttp.send(MontaValores(fForm, fParametroAdicional));		
		xmlhttp.onreadystatechange=function() 
		  {
	        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
	            //var conteudo=document.getElementById(fAlvo)
	            conteudo.innerHTML=texto;
				ExtraiScript(texto);
				
				if( fAlvo == 'elemento_destino_post')
				  var excluir_div_destino = window.setTimeout(function () { conteudo.parentNode.removeChild(conteudo); }, 5000);
			  } // fim do if xmlhtt.readState=4
		  } // fim de xmlhttp.onreadystatechange=function()
		return true;
	  } // Fim do if(qtde_campo_em_branco <=0)
  }


// url_encode version 1.0  
    function url_encode(str) {  
        var hex_chars = "0123456789ABCDEF";  
        var noEncode = /^([a-zA-Z0-9\_\-\.])$/;  
        var n, strCode, hex1, hex2, strEncode = "";  

        for(n = 0; n < str.length; n++) {  
            if (noEncode.test(str.charAt(n))) {  
                strEncode += str.charAt(n);  
            } else {  
                strCode = str.charCodeAt(n);  
                hex1 = hex_chars.charAt(Math.floor(strCode / 16));  
                hex2 = hex_chars.charAt(strCode % 16);  
                strEncode += "%" + (hex1 + hex2);  
            }  
        }  
        return strEncode;  
    }  

    // url_decode version 1.0  
    function url_decode(str) {  
        var n, strCode, strDecode = "";  

        for (n = 0; n < str.length; n++) {  
            if (str.charAt(n) == "%") {  
                strCode = str.charAt(n + 1) + str.charAt(n + 2);  
                strDecode += String.fromCharCode(parseInt(strCode, 16));  
                n += 2;  
            } else {  
                strDecode += str.charAt(n);  
            }  
        }  

        return strDecode;  
    }  

function AbreTela(fNomeTela)
  {

	nome_div=fNomeTela;
	nome_div = nome_div.replace("=","");
	alert('nome_div: '+nome_div);
	pai = document.getElementById("corpo");
 	filho = document.createElement("span");

    filho.setAttribute("id", nome_div);
	if(filho.setAttribute("className","div_telinhas"))
	  {        
	    // ClassName é para funcionar no IE
	    filho.setAttribute("className","div_telinhas");        
	  } 
	else 
	  {   
	    // Class é para funcionar no FireFox
	    filho.setAttribute("class","div_telinhas");        
	  }
	
    
   // ele.setAttribute("type", "file");

    pai.appendChild(filho);
	filho.InnerHTML='<strong>testando 213asdasdasdasd</strong>';
	
	//cabeca_filha = document.createElement("div");
	//cabeca_filha.setAttribute("id", nome_div_cabeca);
	
	//Abre com ajax
	executa_funcao(fNomeTela, nome_div, '');

	

	
  }
  
  
function ExtraiScript(texto){
    var ini, pos_src, fim, codigo;
    var objScript = null;
    ini = texto.indexOf('<script', 0)
    while (ini!=-1){
        var objScript = document.createElement("script");
        //Busca se tem algum src a partir do inicio do script
        pos_src = texto.indexOf(' src', ini)
        ini = texto.indexOf('>', ini) + 1;

        //Verifica se este e um bloco de script ou include para um arquivo de scripts
        if (pos_src < ini && pos_src >=0){//Se encontrou um "src" dentro da tag script, esta e um include de um arquivo script
            //Marca como sendo o inicio do nome do arquivo para depois do src
            ini = pos_src + 4;
            //Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
            fim = texto.indexOf('.', ini)+4;
            //Pega o nome do arquivo
            codigo = texto.substring(ini,fim);
            //Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
            codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
            // Adiciona o arquivo de script ao objeto que sera adicionado ao documento
            objScript.src = codigo;
        }else{//Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
            // Procura o final do script
            fim = texto.indexOf('</script>', ini);
            // Extrai apenas o script
            codigo = texto.substring(ini,fim);
            // Adiciona o bloco de script ao objeto que sera adicionado ao documento
            objScript.text = codigo;
        }
        //Adiciona o script ao documento
        document.body.appendChild(objScript);
        // Procura a proxima tag de <script
        ini = texto.indexOf('<script', fim);

        //Limpa o objeto de script
        objScript = null;
    }
}

//if(xmlhttp)window.onload=init;


