/**
 * Site Up Money
 * Peart Web Solutions
 * Autores: Gabriel De Presbiteris - Programação
 *	        Jorge Curuchet         - Designer
 *	        Marco Aurélio          - Analista de Desenvolvimento
 *
 * Nome do programa: paginacao_ajax.js 
 * Criado dia  : 30/10/2007 - 20:35
 * Alterado dia: 30/10/2007 - 20:40
 * Alterações realizadas por: Gabriel Peart
 *                            - Edentação do código-fonte
 *                            - Inclusão de tratamento para permissão de tag <script> em paginação ajax   
 *                            - Obs.:  Necessário arquivo loading_paginacao.gif na pasta images
 *                                     Div resposta_loading para Incluir mensagem: "Carregando"
 *
 * Alterado dia: 12/11/2007 - 11:27
 * Alterações realizadas por: Gabriel Peart
 *                            - Inclusão de Função getCookie para tratamento dos cookies
 *                            - Tratamento para paginação inteligente 
 *                            - Inclusão de Assunto no Formulário de Contato (quando o usuário vir da página 
 *                              de Sites Uteis).
 *                           
 * Alterado dia: 21/11/2007 - 24:52
 * Alterações realizadas por: Gabriel Peart
 *                            - Inclusão de Função paginacao_fases para paginação interna da página COMO FAZER
 *                           
 *
 ** 
 *
 * Copyright 2007 - Peart Web Solutions®. Todos os direitos reservados
 *
 **
 */




/*aqui eu chamo a funcao que tem o objeto com o metodo definido*/
var myConn = new XHConn();

/*aqui e  a famoso deu erro na inclusãoo do xhConn.js */
if (!myConn) alert("Browser não Compatível com Ajax.");

/*aqui e variavel onde será o include*/
var inclusao      = function (oXML) { document.getElementById('texto_conteudo').innerHTML = oXML.responseText; var texto=oXML.responseText; extraiScript(texto); };
var inclusao_fase = function (oXML) { document.getElementById('texto_conteudo_fases').innerHTML = oXML.responseText; var texto=oXML.responseText; extraiScript(texto); };

function paginacao (url, link_direto) {

  varLink = url.split('?link=');
  url = varLink[1];

  location.hash = "?link="+url;
  var localHash = location.hash;
  localHash = localHash ? unescape(localHash).split('#')[1] : ''; 
  location.hash = localHash;
  
  var varpagina_anterior = "";
  varpagina_anterior = getCookie('nome_pagina');
  document.cookie="nome_pagina_ant="+varpagina_anterior;
 
  /*Grava cookie com o nome da página*/
  
  var varnome_pagina = url;
  
  if(varnome_pagina == varpagina_anterior && link_direto != "S"){
      return false
  }
  
  if (url == "contato_ind") {
      url = "contato";
  }
  if (url == "contato_ava") {
      url = "contato";
  }
  
  document.cookie="nome_pagina="+varnome_pagina; 
  
  /*Loading da Página*/

  document.getElementById('texto_conteudo').innerHTML = '<br /><br /><br /><br /><br /><br /><br /><br /><center><div id="resposta_loading"><span class="negrito_azul">Carregando</span><br /><img src="images/loading_paginacao.gif" /></div></center><br /><br /><br /><br /><br /><br /><br /><br />';
	
	/*Executa a açãoo para mandar para a pagina include.php com metodo get o value
  da variavel + o conteudo e onde deverá atualizar que no caso está dentro da div conteudo*/
  
	myConn.connect("include.php", "GET", "variavel="+url, inclusao);
	
}


/*Aqui eu fiz a paginação da tela COMO FAZER*/

function paginacao_fases (url) {

  var varpagina_anterior = "";
  varpagina_anterior = getCookie('nome_pagina');
  document.cookie="nome_pagina_ant="+varpagina_anterior;
 
  /*Grava cookie com o nome da página*/
  
  var varnome_pagina = url;
  
  if(varnome_pagina == varpagina_anterior){
      return false
  }
  
  if (url == "contato_ind") {
      url = "contato";
  }
  
  document.cookie="nome_pagina="+varnome_pagina; 
  
  /*Loading da Página*/

  document.getElementById('texto_conteudo_fases').innerHTML = '<br /><br /><center><div id="resposta_loading"><span class="negrito_azul">Carregando</span><br /><img src="images/loading_paginacao.gif" /></div></center><br /><br />';
	
	/*Executa a açãoo para mandar para a pagina include.php com metodo get o value
  da variavel + o conteudo e onde deverá atualizar que no caso está dentro da div conteudo*/
  
	myConn.connect("include_fases.php", "GET", "variavel="+url, inclusao_fase);
	
}


/*Aqui eu corrigo o bug de script carregados via ajax*/

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;
    }
}



function getCookie(nome){        
      if(document.cookie.length > 0){	      
            c_start = document.cookie.indexOf(nome + "=");      
         if(c_start != -1){ 	        
              c_start = c_start + nome.length + 1; 	        
              c_end = document.cookie.indexOf(";", c_start);        
            if(c_end == -1)          
                c_end = document.cookie.length;	      
                return unescape(document.cookie.substring(c_start, c_end));      
         }     
      }    
      return null;
}
