//Cria o objeto XMLHttpRequest   
wd_ajax = function (){   
  try {   
    ajax = new XMLHttpRequest();   
  } catch(ee) {   
    try {   
      ajax = new ActiveXObject("Msxml2.XMLHTTP");   
    } catch(e) {   
      try {   
        ajax = new ActiveXObject("Microsoft.XMLHTTP");   
      } catch(E) {   
        ajax = false;   
      }   
    }   
  }   
}         

//Função para procurar tags de script JS no retorno do ajax e executar o conteudo
function wdExtraiScript(texto)
{
  //inicializa o inicio ><
  var ini = 0;
  //loop enquanto achar um script
  while (ini!=-1){
    //procura uma tag de script 
    ini = texto.indexOf('<script', ini);
    //se encontrar
    if (ini >=0){
      //define o inicio para depois do fechamento dessa tag
      ini = texto.indexOf('>', ini) + 1;
      //procura o final do script
      var fim = texto.indexOf('</script>', ini);
      //extrai apenas o script
      codigo = texto.substring(ini,fim);
      //executa o script
      eval(codigo);
      novo = document.createElement("script")
      novo.text = codigo;
      document.body.appendChild(novo);
    }
  }
}


//Cria a função de carregamento via ajax
//Parâmetros:
//str_caminho = url que será carregada
//str_retornar = div ou contâiner que receberá os dados
//str_metodo = modo de envio dos dados (Get ou Post)
//str_campo = string contendo os campos que serão enviados pelo formulário (sep |)
//str_formulario = nome do formulário de envio (usar document. antes)
//status = marcar com 1 se deve exibir o status das operação de processamento
//cabecalho = marcar com 1 se deve exibir a barra de cabecalho
function workAjax(str_caminho_url,str_retornar){

	var Conteudo = document.getElementById(str_retornar);   
	//Gerar um parâmetro de número randômico para o navegador não guardar no cache
	//Cria a variavel que será pesquisada (nesse caso o caractere de igual =)
	var limitador = '=';
	//Caso NÃO ache o sinal de igual, é porque não foi passado nenhum parametro GET na URL
	if(str_caminho_url.search(limitador) == -1)
	{
		//Cria o link adicionando uma variável GET UNICA e adicionando a semente randômica
		var LinkAjax = str_caminho_url + "?TimeStamp=" + new Date() .getTime();
	}
	
	//Caso ACHE o sinal de igual é porque tem um parâmetro sendo passado via GET
	else
	{
		//Monta o link ajax adicionando MAIS UMA VARIÁVEL na URL (para a semente randômica)
		var LinkAjax = str_caminho_url + "&TimeStamp=" + new Date() .getTime();
	}
	

	//Cria a mensagem que a página está sendo carregada COM cabeçalho
	Conteudo.innerHTML = "<table width='500' border='0' align='center' cellpadding='0' cellspacing='0' class='text'><tr><td valign='top' align='center'><br/><br/><img src='./images/bt_processando.gif' border='0' /><br/><span style='font-family: arial;font-size: 16px;font-weight: bold'>Aguarde...</span><br/><br/></td></tr></table>";	
		

    //Abre a página solicitada via ajax usando GET
    ajax.open("POST",LinkAjax,true);		
  
	//Cria os cabeçalhos da página html para instruções de chache ao navegador
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	ajax.onreadystatechange = function() 
	{   
    
		//Verifica se o estado do ajax retornou OK      
		if( ajax.readyState == 4 )
		{   
			//Cria a variável com o retorno do ajax
			var valorRetorno = ajax.responseText;                   
			//Coloca o valor do retorno dentro do div informado
			Conteudo.innerHTML = valorRetorno;
			//Executa a procura por tags javascript do retorno e executa
			wdExtraiScript(valorRetorno);
		}      
	}
	
	//Se não for post, envia null pelo ajax
	ajax.send( null );	

  return true;
}  
