//***************  FUNÇÕES DIVERSAS  ****************************

//*** Função atualizar as seleções do usuário ***
function atualizaSelecao(formulario) {
    for (i=0; i < formulario.length; i++) {
        if (formulario[i].id == "listBox") {
              j = retornaIndice(parent.comando.document.formExecutar,formulario[i].name);
              parent.comando.document.formExecutar[j].value = concatSelecao(formulario[i]);
        } else
        if (formulario[i].id == "textBox") {
              j = retornaIndice(parent.comando.document.formExecutar,formulario[i].name);
              parent.comando.document.formExecutar[j].value = formulario[i].value;
        }
/*
        else if (formulario[i].id == "radioButton") {
           j = retornaIndice(parent.comando.document.formExecutar,formulario[i].name);
           parent.comando.document.formExecutar[j].value = formulario[i].value;
        }
*/
    }
    formulario.campo.value          = parent.comando.document.formExecutar.campo.value;
    formulario.ano.value            = parent.comando.document.formExecutar.ano.value;
    formulario.dependencia.value    = parent.comando.document.formExecutar.dependencia.value;
    formulario.localizacao.value    = parent.comando.document.formExecutar.localizacao.value;
    formulario.ensino.value         = parent.comando.document.formExecutar.ensino.value;
    formulario.serie.value          = parent.comando.document.formExecutar.serie.value;
    formulario.sexo.value           = parent.comando.document.formExecutar.sexo.value;
    formulario.turno.value          = parent.comando.document.formExecutar.turno.value;
    formulario.excepcional.value    = parent.comando.document.formExecutar.excepcional.value;
    formulario.orgAcademica.value   = parent.comando.document.formExecutar.orgAcademica.value;
    formulario.regimeTrabalho.value = parent.comando.document.formExecutar.regimeTrabalho.value;
    formulario.grauFormacao.value   = parent.comando.document.formExecutar.grauFormacao.value;

    formulario.configuracao.value   = parent.comando.document.formExecutar.configuracao.value;
    formulario.idOrigem.value       = parent.comando.document.formExecutar.idOrigem.value;
    formulario.idNivel.value        = parent.comando.document.formExecutar.idNivel.value;
    formulario.idSelecao.value      = parent.comando.document.formExecutar.idSelecao.value;
    formulario.idTab.value          = parent.comando.document.formExecutar.idTab.value;

    formulario.brasil.value   = parent.comando.document.formExecutar.geoBrasil.value;
    formulario.regiao.value   = parent.comando.document.formExecutar.geoRegiao.value;
    formulario.uf.value       = parent.comando.document.formExecutar.geoUf.value;

    formulario.munuf.value       = parent.comando.document.formExecutar.geoMunUf.value;
    formulario.municipio.value   = parent.comando.document.formExecutar.geoMunicipio.value;
    formulario.rbMunicipio.value   = parent.comando.document.formExecutar.rbMunicipio.value;

    formulario.selAreaGeral.value      = parent.comando.document.formExecutar.selSupAreaGeral.value;
    formulario.selAreaDetalhada.value  = parent.comando.document.formExecutar.selSupAreaDetalhada.value;
    formulario.selCurso.value          = parent.comando.document.formExecutar.selSupCurso.value;
}

function retornaIndice(formulario,nomeCampo) {
    for (l=0; l<formulario.length; l++) {
        if (formulario[l].name == nomeCampo) {
            return l;
        }
    }
    return -1;
}

//***************************************************************

//*** Gera String contendo seleçoes dos combobox ***
function concatSelecao(obj) {
    var sel="";
    for (k=0; k < obj.options.length; k++) {
        if (obj.options[k].selected==true)
            sel+=(obj.options[k].value+"|");
    }
    return sel+"#"+obj.options.length;
}

//*** Filtra opçoes do combobox ***
function filtraSelecao(obj,sel) {
    var filtro = sel.value.toUpperCase();
    for (i=0; i < obj.options.length; i++) {
        j = obj.options[i].value.indexOf("!");
        k = obj.options[i].value.indexOf("$");
        if (obj.options[i].value.substring(j+1,k).substring(0,filtro.length) == filtro) {
            obj.options[i].selected = true;
        }
    }
}

//***************************************************************
//** Valida Formularios
//***************************************************************
function qtOcorrencias(string, substring) {
    var qtde=0, l=0;
    while (true) {
        if ((l = string.indexOf(substring,l)+1) == 0)
            break;
        qtde++;
    }
    return qtde;
}

function validaFormulario(formulario, hlink) {

  if (hlink.substring(0,1) == 'A' && hlink.substring(1) == 'F') {
    document.getElementById('ImgAreaCurso').src = "images/bt_areas_up.gif";
    document.getElementById('sep1').src = "images/separador.gif";
    document.getElementById('sep2').src = "images/separador.gif";
    document.menuAreaCurso = "F";
    if (parent.selecao.document.forms[0].name == "formVariaveis") {
      document.getElementById('ImgVariaveis').src = "images/variaveis_2.gif";
      document.getElementById('sep0').src = "images/cabeca_2.gif";
      document.getElementById('sep1').src = "images/separador_2.gif";
      document.menuVariaveis = "T";
    } else {
      document.getElementById('ImgGeografia').src = "images/bt_geografia_2.gif";
      document.getElementById('sep2').src = "images/separador_3.gif";
      document.getElementById('sep3').src = "images/separador_2.gif";
      document.menuGeografia = "T";
    }
    alert('O tema escolhido não possui Área/Curso.');
    return false;
  } else {
     if (formulario.name != 'formUF' && formulario.name != 'formMunicipio') {
        var retorno = true;
        for (i=0; i < formulario.length; i++) {
            if (formulario[i].id == 'listBox')
              if (formulario[i].options.length > 0)
                if (camponenteVazio(formulario[i])) {
                    alert("Favor selecionar algum item do campo "+formulario[i].name+"!");
                    retorno = false;
                    break;
                }
        }
        return retorno;
     } else {
       if (formulario.name == "formMunicipio") {
         formulario.municipio.value = concatSelecao(formulario.geoMunicipio);
         return validaMunicipio(formulario);
       } else {
         return true;
       }
    }
  }
}

//*** Gera String contendo seleçoes dos combobox ***
function camponenteVazio(obj) {
    var retorno = true;
    for (k=0; k < obj.options.length; k++) {
        if (obj.options[k].selected==true) {
            retorno = false;
            break;
         }
    }
    return retorno;
}


function clicaBotao(action) {
   atualizaSelecao(parent.selecao.document.forms[0]);
   parent.selecao.document.forms[0].action = action;
   parent.selecao.document.forms[0].submit();
}

function validaMunicipio(formulario) {
    if (formulario.rbMunicipio.value.substring(formulario.rbMunicipio.value.length-1, formulario.rbMunicipio.value.length) == "0") {
      if (qtOcorrencias(formulario.municipio.value,"|") > 100) {
        alert('Para a opção "selecionar" o número máximo permitido de municípios é 100. Caso deseje pesquisar um número maior, clique em "Todos".');
        return false;
      } else {
        return true;
      }
    } else {
      return true;
    }
}
