//INICIALIZA AS VARIAVEIS PARA CONTROLE DA FILA
var ifila = 0;
var fila = new Array();
//fila[X][0] - Div onde sera carregada a pagina.
//fila[X][1] - Pagina que sera chamada
//fila[X][2] - Metodo de envio
//fila[X][3] - Campos do form concatenados no padrao para serem enviados. Null caso seja um link
//fila[X][4] - Funcao que sera executada ao termino do processo. Null caso seja um ajaxLink/ajaxForm

//INICIALIZA O OBJETO QUE IRA FAZER AS SOLICITACOES
try{
  xmlhttp = new XMLHttpRequest();// Mozilla, Safari, Firefox, etc...
  try {
    if (xmlhttp.overrideMimeType) {  //Se possível, ignora cabecalho usado pelo servidor e forca o padrao "text/xml". Alguns navegadores exigem esse padrao e pode dar erro se o servidor nao utilizar ele
      xmlhttp.overrideMimeType('text/xml');
    }
  } catch (e1) { }
}catch(e2){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");// Internet Explorer
    }catch(e3){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");// Internet Explorer
        }catch(e4){
            //tratamento para alguma outra forma de implementar XMLHTTP
            xmlhttp = false;
        }
    }
}

if(!xmlhttp){
  alert("AJAX error. Your browser must support XMLHttpRequest object or enable use of scripting."); //Nao conseguiu instanciar o objeto xmlhttp para fazer as solicitacoes
}

function AjaxLink(id_target,url){ //GUARDA NA FILA O ID DO OBJETO E A URL QUE SERAO CARREGADOS PELO LINK CLICADO

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,"GET",null,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function AjaxForm(id_target,id_form){ //GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO

if (document.getElementById(id_form).titulo.value=="")
    {
        alert ("Por favor digite o Título.");
		document.getElementById(id_form).titulo.focus();
        return false;
    }	
	if (document.getElementById(id_form).eixo.value=="")
    {
        alert ("Por favor digite o Eixo Temático.");
		document.getElementById(id_form).eixo.focus();
        return false;
    }
	if (document.getElementById(id_form).autores.value=="")
    {
        alert ("Por favor digite o(s) Autor(es).");
		document.getElementById(id_form).autores.focus();
        return false;
    }
	if (document.getElementById(id_form).sobrenome.value=="")
    {
        alert ("Por favor digite o sobrenome do Autor Inscrito.");
		document.getElementById(id_form).sobrenome.focus();
        return false;
    }
	if (document.getElementById(id_form).nome.value=="")
    {
        alert ("Por favor digite o nome do Autor Inscrito.");
		document.getElementById(id_form).nome.focus();
        return false;
    }
	if (document.getElementById(id_form).resumo.value=="")
    {
        alert ("Por favor digite o Resumo.");
		document.getElementById(id_form).resumo.focus();
        return false;
    }
	if (document.getElementById(id_form).palavra.value=="")
    {
        alert ("Por favor digite as Palavras-chave.");
		document.getElementById(id_form).palavra.focus();
        return false;
    }
	if (document.getElementById(id_form).referencia.value=="")
    {
        alert ("Por favor digite as Referências.");
		document.getElementById(id_form).referencia.focus();
        return false;
    }
	if (document.getElementById(id_form).email.value == "")
	{
           alert("Por favor digite seu E-mail.");
           document.getElementById(id_form).email.focus();
           return false;
    }
	
	
  
  var url = document.getElementById(id_form).action; //Pega a pagina que sera chamada pelo form

  var metodoEnvio = document.getElementById(id_form).method.toUpperCase(); //Pega a pagina que sera chamada pelo form

  var elementos_form = BuscaElementosForm(id_form); //Busca os elementos do form que serao enviados para a pagina solicitada

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,metodoEnvio,elementos_form,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function AjaxForm2(id_target,id_form){ //GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO

 var cpf = document.getElementById(id_form).cpf.value;
    
   if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
	  cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
	  cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
	  cpf == "88888888888" || cpf == "99999999999"){
	  window.alert("Digite corretamente seu CPF.");
	  document.getElementById(id_form).cpf.focus();
	  return false;
   }

   soma = 0;
   for(i = 0; i < 9; i++)
   	 soma += parseInt(cpf.charAt(i)) * (10 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(cpf.charAt(9))){
	 window.alert("Digite corretamente seu CPF.");
	 document.getElementById(id_form).cpf.focus();
	 return false;
   }
   soma = 0;
   for(i = 0; i < 10; i ++)
	 soma += parseInt(cpf.charAt(i)) * (11 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(cpf.charAt(10))){
     window.alert("Digite corretamente seu CPF.");
	 document.getElementById(id_form).cpf.focus();
	 return false;
   }
 	     
   if ( (document.getElementById('tipo_inscrito1').checked == false ) && (document.getElementById('tipo_inscrito2').checked == false) && (document.getElementById('tipo_inscrito3').checked == false )) 
	{
        alert ("Por favor escolha uma opção de inscrição.");
        return false;
    }
	if ( (document.getElementById('tipo_inscrito1').checked == true ) && (document.getElementById(id_form).matricula.value == "")) 
	{
        alert ("Por favor digite sua matrícula.");
		document.getElementById(id_form).matricula.focus();
        return false;
    }
   if (document.getElementById(id_form).nome.value == "")
    {
        alert ("Por favor digite o nome.");
		document.getElementById(id_form).nome.focus();
        return false;
    }
	if (document.getElementById(id_form).nome_cracha.value == "")
    {
        alert ("Por favor digite o nome no crachá.");
		document.getElementById(id_form).nome_cracha.focus();
        return false;
    }
	
	if (document.getElementById(id_form).data.value == '')
    {
        alert ("Por favor digite sua data de nascimento.");
		document.getElementById(id_form).data.focus();
        return false;
    }
	if (document.getElementById(id_form).rg.value == '')
    {
        alert ("Por favor digite seu RG.");
		document.getElementById(id_form).rg.focus();
        return false;
    }
	if (document.getElementById(id_form).orgao.value == '')
    {
        alert ("Por favor digite o orgão emissor.");
		document.getElementById(id_form).orgao.focus();
        return false;
    }
	if (document.getElementById(id_form).nacionalidade.value == 0)
    {
        alert ("Por favor escolha uma nacionalidade.");
		document.getElementById(id_form).nacionalidade.focus();
        return false;
    }
	if ( (document.getElementById('masc').checked == false ) && (document.getElementById('fem').checked == false)) 
	{
        alert ("Por favor escolha o sexo.");
        return false;
    }
	if (document.getElementById(id_form).email.value == "")
	{
           alert("Por favor digite seu E-mail.");
           document.getElementById(id_form).email.focus();
           return false;
    }
	
	if (document.getElementById(id_form).logradouro.value == '')
    {
        alert ("Por favor digite o logradouro.");
		document.getElementById(id_form).logradouro.focus();
        return false;
    }
	if (document.getElementById(id_form).numero.value == '')
    {
        alert ("Por favor digite o número.");
		document.getElementById(id_form).numero.focus();
        return false;
    }
	if (document.getElementById(id_form).complemento.value == '')
    {
        alert ("Por favor digite o complemento.");
		document.getElementById(id_form).complemento.focus();
        return false;
    }
	if (document.getElementById(id_form).cep.value == '')
    {
        alert ("Por favor digite o CEP.");
		document.getElementById(id_form).cep.focus();
        return false;
    }
	if (document.getElementById(id_form).bairro.value == '')
    {
        alert ("Por favor digite o bairro.");
		document.getElementById(id_form).bairro.focus();
        return false;
    }
	if (document.getElementById(id_form).cidade.value == '')
    {
        alert ("Por favor digite a cidade.");
		document.getElementById(id_form).cidade.focus();
        return false;
    }
	if (document.getElementById(id_form).uf.value == 'nao')
    {
        alert ("Por favor escolha o estado.");
		document.getElementById(id_form).uf.focus();
        return false;
    }
	if (document.getElementById(id_form).pais.value == '')
    {
        alert ("Por favor digite o país.");
		document.getElementById(id_form).pais.focus();
        return false;
    }
	if (document.getElementById(id_form).ddd.value == '')
    {
        alert ("Por favor digite o nº do ddd.");
		document.getElementById(id_form).ddd.focus();
        return false;
    }
	if (document.getElementById(id_form).tel.value == '')
    {
        alert ("Por favor digite o nº do telefone.");
		document.getElementById(id_form).tel.focus();
        return false;
    }
	
	if (document.getElementById(id_form).senha.value == '')
    {
        alert ("Por favor digite a senha de acesso.");
		document.getElementById(id_form).senha.focus();
        return false;
    }
	if (document.getElementById(id_form).conf_senha.value == '')
    {
        alert ("Por favor digite a confirmação da senha de acesso.");
		document.getElementById(id_form).conf_senha.focus();
        return false;
    }
	if (document.getElementById(id_form).senha.value != document.getElementById(id_form).conf_senha.value)
    {
        alert ("O valor digitado no campo Senha deve ser igual ao valor digitado no campo Confirmar Senha.");
		document.getElementById(id_form).conf_senha.focus();
        return false;
    }
  
  var url = document.getElementById(id_form).action; //Pega a pagina que sera chamada pelo form

  var metodoEnvio = document.getElementById(id_form).method.toUpperCase(); //Pega a pagina que sera chamada pelo form

  var elementos_form = BuscaElementosForm(id_form); //Busca os elementos do form que serao enviados para a pagina solicitada

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,metodoEnvio,elementos_form,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function AjaxForm3(id_target,id_form){ //GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO

 if ( (document.getElementById('1').checked == false ) && (document.getElementById('2').checked == false) && (document.getElementById('3').checked == false ) && (document.getElementById('4').checked == false ) && (document.getElementById('5').checked == false )) 
	{
        alert ("Por favor selecione a situação funcional.");
        return false;
    }

 var url = document.getElementById(id_form).action; //Pega a pagina que sera chamada pelo form

  var metodoEnvio = document.getElementById(id_form).method.toUpperCase(); //Pega a pagina que sera chamada pelo form

  var elementos_form = BuscaElementosForm(id_form); //Busca os elementos do form que serao enviados para a pagina solicitada

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,metodoEnvio,elementos_form,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function AjaxForm4(id_target,id_form){ //GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO

   if (document.getElementById(id_form).nome.value == "")
    {
        alert ("Por favor digite o nome.");
		document.getElementById(id_form).nome.focus();
        return false;
    }
	if (document.getElementById(id_form).nome_cracha.value == "")
    {
        alert ("Por favor digite o nome no crachá.");
		document.getElementById(id_form).nome_cracha.focus();
        return false;
    }
	
	if (document.getElementById(id_form).data.value == '')
    {
        alert ("Por favor digite sua data de nascimento.");
		document.getElementById(id_form).data.focus();
        return false;
    }
	if (document.getElementById(id_form).rg.value == '')
    {
        alert ("Por favor digite seu RG.");
		document.getElementById(id_form).rg.focus();
        return false;
    }
	if (document.getElementById(id_form).orgao.value == '')
    {
        alert ("Por favor digite o orgão emissor.");
		document.getElementById(id_form).orgao.focus();
        return false;
    }
	if (document.getElementById(id_form).email.value == "")
	{
           alert("Por favor digite seu E-mail.");
           document.getElementById(id_form).email.focus();
           return false;
    }
	
	if (document.getElementById(id_form).logradouro.value == '')
    {
        alert ("Por favor digite o logradouro.");
		document.getElementById(id_form).logradouro.focus();
        return false;
    }
	if (document.getElementById(id_form).numero.value == '')
    {
        alert ("Por favor digite o número.");
		document.getElementById(id_form).numero.focus();
        return false;
    }
	if (document.getElementById(id_form).complemento.value == '')
    {
        alert ("Por favor digite o complemento.");
		document.getElementById(id_form).complemento.focus();
        return false;
    }
	if (document.getElementById(id_form).cep.value == '')
    {
        alert ("Por favor digite o CEP.");
		document.getElementById(id_form).cep.focus();
        return false;
    }
	if (document.getElementById(id_form).bairro.value == '')
    {
        alert ("Por favor digite o bairro.");
		document.getElementById(id_form).bairro.focus();
        return false;
    }
	if (document.getElementById(id_form).cidade.value == '')
    {
        alert ("Por favor digite a cidade.");
		document.getElementById(id_form).cidade.focus();
        return false;
    }
	if (document.getElementById(id_form).pais.value == '')
    {
        alert ("Por favor digite o país.");
		document.getElementById(id_form).pais.focus();
        return false;
    }
	if (document.getElementById(id_form).telefone.value == '')
    {
        alert ("Por favor digite o nº do telefone(ddd-telefone).");
		document.getElementById(id_form).telefone.focus();
        return false;
    }
	
 var url = document.getElementById(id_form).action; //Pega a pagina que sera chamada pelo form

  var metodoEnvio = document.getElementById(id_form).method.toUpperCase(); //Pega a pagina que sera chamada pelo form

  var elementos_form = BuscaElementosForm(id_form); //Busca os elementos do form que serao enviados para a pagina solicitada

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,metodoEnvio,elementos_form,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function AjaxForm5(id_target,id_form){ //GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO

  if (document.getElementById(id_form).Nome.value == "")
    {
        alert ("Digite seu nome.");
		document.getElementById(id_form).Nome.focus();
        return false;
    }
	
	 if (document.getElementById(id_form).Email.value == "")
    {
        alert ("Digite seu E-mail.");
		document.getElementById(id_form).Email.focus();
        return false;
    }
	
	 if (document.getElementById(id_form).titulo.value == "")
    {
        alert ("Digite o título.");
		document.getElementById(id_form).titulo.focus();
        return false;
    }
	
	 if (document.getElementById(id_form).secao.value == "0")
    {
        alert ("Selecione a seção.");
		document.getElementById(id_form).secao.focus();
        return false;
    }
	
	 if (document.getElementById(id_form).Mensagem.value == "")
    {
        alert ("Digite a mensagem.");
		document.getElementById(id_form).Mensagem.focus();
        return false;
    }
	if (document.getElementById(id_form).codigo.value == "")
    {
        alert ("Digite o código.");
		document.getElementById(id_form).codigo.focus();
        return false;
    }

  var url = document.getElementById(id_form).action; //Pega a pagina que sera chamada pelo form

  var metodoEnvio = document.getElementById(id_form).method.toUpperCase(); //Pega a pagina que sera chamada pelo form

  var elementos_form = BuscaElementosForm(id_form); //Busca os elementos do form que serao enviados para a pagina solicitada

  ajaxMensagemCarregando(id_target); //Exibe mensagem de que esta carregando a pagina no objeto de ID informado

  fila[fila.length]=[id_target,url,metodoEnvio,elementos_form,null]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}



function AjaxFunction(id_target,funcao,url){

  fila[fila.length]=[id_target,url,"GET",null,funcao.replace('()',"")]; //Adiciona a solicitacao na fila

  if(fila.length==1){ //Se nao tem conexoes na fila, inicia a execucao
    ajaxRun();
  }
  return;
}

function ajaxRun(){ //EXECUTA A PROXIMA SOLICITACAO DA FILA

  var url = fila[ifila][1];

  var metodoEnvio; //Define o metodo de envio (GET ou POST)

  if (fila[ifila][3]==null){
    metodoEnvio = "GET"; //Se for Link/Funcao, utiliza GET
  }
  else{
    metodoEnvio = fila[ifila][2]; //Se for Form, define o metodo de envio e prepara a url
    if(metodoEnvio=="" || metodoEnvio==null){
      metodoEnvio = "POST"; //Se nao tiver definido nada, usa POST
    }
    if (metodoEnvio=="GET"){
      url = url + "?" + fila[ifila][3]; //Metodo GET passa as informacoes na linha da url
    }
  }

  xmlhttp.open(metodoEnvio,url,true); //Abre a conexao

  xmlhttp.onreadystatechange=ajaxXMLHTTP_StateChange; //Seta as funcoes que irao tratar a mudanca de estado do objeto XMLHTTP

  if(metodoEnvio=="POST"){ //Executa a solicitacao

    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //Metodo POST precisa definir este RequestHeader
    xmlhttp.send(fila[ifila][3]); //Metodo POST passa as variaveis pelo metodo Send
  }
  else{
    xmlhttp.send(null);
  }
  return;
}

function ajaxXMLHTTP_StateChange() { //FUNCAO EXECUTADA QUANDO ALTERAR O STATUS DA SOLICITACAO (readyState)

  if(xmlhttp.readyState==1){ //0-Nao inicializado, 1-Carregando, 2-Carregado, 3-Interativo, 4-Completo
    ajaxXMLHTTP_StateChange_Carregando(fila[ifila][0], fila[ifila][4]);//Quando iniciar a solicitacao
  }
  else{
    if(xmlhttp.readyState==4){
      ajaxXMLHTTP_StateChange_Completo(xmlhttp, fila[ifila][0], fila[ifila][4]); //Quando estiver completa a solicitacao
    }
  }
}

function ajaxXMLHTTP_StateChange_Carregando(id, funcao){
  
  if(funcao==null){ //Exibe mensagem de que está carregando a página no objeto de ID que solicitacao esta sendo feita
    ajaxMensagemCarregando(id);
  }
  return;
}

function ajaxXMLHTTP_StateChange_Completo(xmlhttp, id_retorno, funcao){ //FUNCAO EXECUTADA QUANDO A SOLICITACAO ESTIVER COMPLETA (readyState=4)

  var retorno;
    
  if (xmlhttp.status == 200 || xmlhttp.status==0) { //Verifica o status da pagina de retorno
    retorno=xmlhttp.responseText;  //Caso o status seja 200(Sucesso) ou nao utilize servidor(chamada local [C:\...]), trata o valor retornado
//    retorno=retorno.replace(/\+/g," ");
    retorno=unescape(retorno);
  }
  else{
    retorno=ajaxPaginaErro(xmlhttp); //Caso o status ainda nao foi tratado, chama a funcao de tratamento de pagina de erro
  }

  if(funcao==null){ //Exibe o valor retornado no objeto de ID informado
    document.getElementById(id_retorno).innerHTML=retorno;
  }
  else{
    eval(funcao+"('"+id_retorno+"','"+retorno+"');"); //Se definiu uma funcao, executa esta funcao
  }
  ExtraiScript(retorno); // executa scripts

  ifila++; //passa para a proxima posicao da fila
  if(ifila<fila.length){
    setTimeout("ajaxRun()",20); //Caso tenha mais solicitacoes na fila, executa a proxima
  }
  else{
    fila = null; //Caso nao tenha mais solicitacoes na fila, reinicia a fila
    fila = new Array();
    ifila = 0;
  }
  return;
}

function ajaxPaginaErro(xmlhttp){ //FUNCAO PARA RETORNAR A MENSAGEM DE ERRO QUANDO O SERVIDOR RETORNAR UMA PAGINA DE ERRO

  var retorno;
  switch (xmlhttp.status) {
    case 404:
      return "Página não encontrada!!!";
      break;
    case 500:
      return "Erro interno do servidor!!!";
      break;
    default:
      return "Erro desconhecido!!!<br>" + xmlhttp.status + " - " + xmlhttp.statusText.replace(/\+/g," ");
  }
}

function ajaxMensagemCarregando(id){ //FUNCAO PARA RETORNAR A MENSAGEM DE QUE ESTA CARREGANDO A PAGINA
  document.getElementById(id).innerHTML = "Aguarde, carregando...";
}
 
function ExtraiScript(texto){ //FUNCAO PARA PEGAR OS CODIGOS SCRIPT
   
  var ini, pos_src, fim, codigo, texto_pesquisa;
  var objScript = null;

  texto_pesquisa = texto.toLowerCase();  //Joga na variavel de pesquisa o texto todo em minusculo para na hora da pesquisa nao ter problema com case-sensitive

  ini = texto_pesquisa.indexOf('<script', 0); // Busca a primeira tag <script
    
  while (ini!=-1){ // Executa o loop enquanto achar um <script

    var objScript = document.createElement("script"); //Inicia o objeto script

    pos_src = texto_pesquisa.indexOf(' src', ini); //Busca se tem algum src a partir do inicio do script

    ini = texto_pesquisa.indexOf('>', ini) + 1; // Define o inicio para depois do fechamento dessa tag

    //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
      ini = pos_src + 4; //Marca como sendo o inicio do nome do arquivo para depois do src
      fim = texto_pesquisa.indexOf('.', ini)+4; //Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
      codigo = texto.substring(ini,fim); //Pega o nome do arquivo
      codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">",""); //Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
      objScript.src = codigo; // Adiciona o arquivo de script ao objeto que sera adicionado ao documento
    }
    else { //Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
      fim = texto_pesquisa.indexOf('</script>', ini); // Procura o final do script
      codigo = texto.substring(ini,fim); // Extrai apenas o script
      objScript.text = codigo; // Adiciona o bloco de script ao objeto que sera adicionado ao documento
    }

    document.body.appendChild(objScript); //Adiciona o script ao documento
    ini = texto.indexOf('<script', fim);  // Procura a proxima tag de <script
    objScript = null; //Limpa o objeto de script
 }
}
 
function BuscaElementosForm(idForm) { //FUNCAO PARA PEGAR OS ELEMENTOS DO FORM

  var elementosFormulario = document.getElementById(idForm).elements;
  var qtdElementos = elementosFormulario.length;
  var queryString = "";
  var elemento;

  this.ConcatenaElemento = function(nome,valor) { //Cria uma funcao interna para concatenar os elementos do form
                             if (queryString.length>0) {
                               queryString += "&";
                             }
                             //queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor);
                             queryString += encodeURI(nome) + "=" + encodeURI(valor).replace("&", "%26");
                           };

  for (var i=0; i<qtdElementos; i++) { //Loop para percorrer todos os elementos
    elemento = elementosFormulario[i]; //Pega o elemento
    if (!elemento.disabled) {
      switch(elemento.type) { //Trabalha com o elemento caso ele nao esteja desabilitado
        case 'text':
        case 'password':
        case 'hidden':
        case 'textarea': 
          this.ConcatenaElemento(elemento.name,elemento.value);
          break;
        case 'select-one':
          if (elemento.selectedIndex>=0) {
            this.ConcatenaElemento(elemento.name,elemento.options[elemento.selectedIndex].value);
          }
          break;
        case 'select-multiple':
          for (var j=0; j<elemento.options.length; j++) {
            if (elemento.options[j].selected) {
              this.ConcatenaElemento(elemento.name,elemento.options[j].value);
            }
          }
          break;
        case 'checkbox':
        case 'radio':
          if(elemento.checked) {
            this.ConcatenaElemento(elemento.name,elemento.value);
          }
          break;
      }
    }
  }
  return queryString;
}
