var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate = reDate4;

function doDate(pStr, pFmt){
   eval("reDate = reDate4");
   if (reDate.test(pStr)) {
      return true;
   } else if (pStr != null && pStr != "") {
      return false;
   }
}

function validaData(sData) {
   var nDia   = parseInt(sData.substr(0,2),10);
   var nMes   = parseInt(sData.substr(3,2),10);
   var nAno   = parseInt(sData.substr(6,4),10);
   var aMeses = Array (0,31,29,31,30,31,30,31,31,30,31,30,31);

   if (   (nAno < 1500)
       || (nAno > 2499)
       || (nMes < 1)
       || (nMes > 12) ) {
     return false;
   } else if (   (nDia < 1)
              || (nDia > aMeses[nMes]) ) {
      return false;
   } else if (nMes == 2) {
      if (nDia > 29) {
         return false;
      } else if (nDia > 28) {
         if (   (((nAno%4)==0) && ((nAno%100)!=0))
             || ((nAno%400)==0) ) {
            // é ano bissexto
            return true;
         } else {
            return false;
         }
      } else {
         return true;
      }
   }else{
     return true;
   }
}

function barra(obj) {
   if (   (obj.value.length == 2)
       || (obj.value.length == 5) ) {
      obj.value += "/";
   }
}

function trim(sString) {
   while (sString.substring(0,1) == ' ') {
      sString = sString.substring(1, sString.length);
   }
   while (sString.substring(sString.length-1, sString.length) == ' ') {
      sString = sString.substring(0,sString.length-1);
   }
   return sString;
}

function campo( cCampo, cCampoFin ){
   if (   (cCampo.checked)
       || ((cCampo.value == 'S') && (cCampo.type != 'checkbox')) ){
      cCampoFin.value    = '';
      cCampoFin.disabled = false;
   } else {
      cCampoFin.value    = '';
      cCampoFin.disabled = true;
   }
}

function ajustaCampos(pCase) {
   for (var i=0; i<document.frm01.elements.length; i++) {
      if (document.frm01.elements[i].type == "text") {
         if (pCase == "S") {
            if (document.frm01.elements[i].name == "email") {
               document.frm01.elements[i].value = document.frm01.elements[i].value.toLowerCase();
            } else {
               document.frm01.elements[i].value = document.frm01.elements[i].value.toUpperCase();
            }
         }
         document.frm01.elements[i].value = document.frm01.elements[i].value.replace(/"/g,"");
         document.frm01.elements[i].value = document.frm01.elements[i].value.replace(/'/g,"");
      }
   }
}

function checkValido(input) {
   var ok = true;
      perm = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   for (var i = 0; i < input.length; i++) {
      var chr = input.charAt(i);
      var found = false;
      for (var j = 0; j < perm.length; j++) {
          if (chr == perm.charAt(j)) found = true;
      }
      if (!found) ok = false;
   }
   return ok;
}

function checkNumeros(input) {
   var ok = true;
      perm = "0123456789";
   for (var i = 0; i < input.length; i++) {
      var chr = input.charAt(i);
      var found = false;
      for (var j = 0; j < perm.length; j++) {
          if (chr == perm.charAt(j)) found = true;
      }
      if (!found) ok = false;
   }
   return ok;
}

function validaCPF (CPF) {
   if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
      CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" ||
      CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
      CPF == "88888888888" || CPF == "99999999999") {
      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)))
      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)))
      return false;
   return true;
}

// função para validar e-mail.
function emailValido(e) {
    var valido = true;
        perm = "0123456789.@-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (e.length > 0) {
       if (   (e.indexOf("@") == -1)                     // não existe @
           || (e.indexOf(".") == -1)                     // não existe .
           || (e.indexOf("@") > e.lastIndexOf('.'))      // @ está após último .
           || (e.indexOf("@") == 0)                      // começa com @
           || (e.indexOf(".") == 0)                      // começa com .
           || (e.indexOf("@.") != -1)                    // existe . logo após @
           || (e.lastIndexOf("@") == e.length-1)         // termina com @
           || (e.lastIndexOf(".") == e.length-1)         // termina com .
           || (e.indexOf("@") != e.lastIndexOf("@"))     // existem 2 @
          ) {
          valido = false;
       } else {
          for (var i = 0; i < e.length; i++) {
              var chr = e.charAt(i);
              var found = false;
              for (var j = 0; j < perm.length; j++) {
                  if (chr == perm.charAt(j)) {
                     found = true;
                  }
              }
              if (!found) {
                 valido = false;
              }
          }
       }
    }
    return (valido);
}

// Busca endereço baseado no CEP digitado
function trocaCEP() {
   //ajustaCampos("N");
   if (   (document.frm01.txt_cep.value != "")
       && (document.frm01.txt_cep.value != document.frm01.txt_cep_old.value)
       && (document.frm01.cmb_interesse_adm != "") ) {
      document.frm01.txt_disciplinas.value = ajustaDiscips();
      document.frm01.cmd.value = 1;
      document.frm01.action    = "frm_curriculo.php";
      document.frm01.submit();
   }
}

function ajustaDiscips () {
   // Ajusta as disciplinas selecionada na área de interesse acadêmica
   // formando string com os códigos das disciplinas separados por ";".
   var sDiscips = ";";
   for (var i=0; i<document.frm01.cmb_interesse_adm.length; i++) {
      if (document.frm01.cmb_interesse_adm[i].selected) {
         sDiscips =   sDiscips
                    + document.frm01.cmb_interesse_adm[i].value
                    + ';';
      }
   }
   return (document.frm01.cmb_interesse_adm.value);
}

function valida_frm(){
   // Ajusta as disciplinas selecionadas.
   document.frm01.txt_disciplinas.value = ajustaDiscips();
   if ( !document.frm01.opt_mc.checked && !document.frm01.opt_vl.checked){
      alert('Selecione o Campus : Mogi e/ou Villa-Lobos !!!');
      return false;
   } else if ( document.frm01.opt_def.checked && trim(document.frm01.txt_deficiencia.value) == ""){
      alert('Informe o Tipo de Deficiência !!!');
      document.frm01.txt_deficiencia.value = trim(document.frm01.txt_deficiencia.value);
      document.frm01.txt_deficiencia.focus();
      return false;
   } else if (document.frm01.cmb_interesse_adm.value == ""){
      alert('Selecione pelo menos uma Área de Interesse Acadêmica !!!');
      document.frm01.cmb_interesse_adm.focus();
      return false;
   } else if (trim(document.frm01.txt_cpf.value) == ""){
      alert('Informe o CPF !!!');
      document.frm01.txt_cpf.value = trim(document.frm01.txt_cpf.value);
      document.frm01.txt_cpf.focus();
      return false;
   } else if ( !checkNumeros(document.frm01.txt_cpf.value)){
      alert('Informe o CPF somente com números !!!');
      document.frm01.txt_cpf.focus();
      return false;
   } else if (!validaCPF(document.frm01.txt_cpf.value)){
      alert('CPF inválido !!!');
      document.frm01.txt_cpf.focus();
      return false;
   } else if ( trim(document.frm01.txt_rg.value) == ""){
      alert('Informe o RG !!!');
      document.frm01.txt_rg.value = trim(document.frm01.txt_rg.value);
      document.frm01.txt_rg.focus();
      return false;
   } else if (!checkValido(document.frm01.txt_rg.value)) {
      alert ("Preencha o campo RG somente com LETRAS SEM ACENTUAÇÃO ou NÚMEROS.");
      document.frm01.txt_rg.focus();
      return false;
   } else if ( document.frm01.cmb_origemrg.value == ""){
      alert('Informe a Origem do RG !!!');
      document.frm01.cmb_origemrg.focus();
      return false;
   } else if ( trim(document.frm01.txt_datemissao.value) == ""){
      alert('Informe a Data de Emissão do RG !!!');
      document.frm01.txt_datemissao.value = trim(document.frm01.txt_datemissao.value);
      document.frm01.txt_datemissao.focus();
      return false;
   } else if (doDate(trim(document.frm01.txt_datemissao.value)) == false){
      alert('A Data de Emissão do RG deve ter o formato dd/mm/aaaa !!!');
      document.frm01.txt_datemissao.value = trim(document.frm01.txt_datemissao.value);
      document.frm01.txt_datemissao.focus();
      return false;
   } else if (validaData(trim(document.frm01.txt_datemissao.value)) == false){
      alert('A Data de Emissão do RG inválida !!!');
      document.frm01.txt_datemissao.value = trim(document.frm01.txt_datemissao.value);
      document.frm01.txt_datemissao.focus();
      return false;
   } else if ( trim(document.frm01.txt_nome.value) == ""){
      alert('Informe o Nome !!!');
      document.frm01.txt_nome.value = trim(document.frm01.txt_nome.value);
      document.frm01.txt_nome.focus();
      return false;
   } else if ( trim(document.frm01.txt_nascimento.value) == ""){
      alert('Informe a Data de Nascimento !!!');
      document.frm01.txt_nascimento.value = trim(document.frm01.txt_nascimento.value);
      document.frm01.txt_nascimento.focus();
      return false;
   } else if (doDate(trim(document.frm01.txt_nascimento.value)) == false){
      alert('A Data de Nascimento deve ter o formato dd/mm/aaaa !!!');
      document.frm01.txt_nascimento.value = trim(document.frm01.txt_nascimento.value);
      document.frm01.txt_nascimento.focus();
      return false;
   } else if (validaData(trim(document.frm01.txt_nascimento.value)) == false){
      alert('A Data de Nascimento inválida !!!');
      document.frm01.txt_nascimento.value = trim(document.frm01.txt_nascimento.value);
      document.frm01.txt_nascimento.focus();
      return false;
   } else if ( document.frm01.cmb_estcivil.value == ""){
      alert('Informe o Estado Civil !!!');
      document.frm01.cmb_estcivil.focus();
      return false;
   } else if (trim (document.frm01.txt_email.value) == "") {
      alert ( "Informe o E-mail.");
      document.frm01.txt_email.value="";
      document.frm01.txt_email.focus();
      return false;
   } else if (!emailValido(document.frm01.txt_email.value)) {
      alert ( "E-mail inválido.");
      document.frm01.txt_email.focus();
      return false;
   } else if ( trim(document.frm01.txt_cep.value) == ""){
      alert('Informe o CEP !!!');
      document.frm01.txt_cep.value = trim(document.frm01.txt_cep.value);
      document.frm01.txt_cep.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_cep.value))){
      alert('Informe o CEP somente com números !!!');
      document.frm01.txt_cep.value = trim(document.frm01.txt_cep.value);
      document.frm01.txt_cep.focus();
      return false;
   } else if ( document.frm01.txt_end.value == ""){
      alert('Informe o Endereço !!!');
      document.frm01.txt_end.focus();
      return false;
   } else if ( document.frm01.txt_num.value == ""){
      alert('Informe o Número do endereço !!!');
      document.frm01.txt_num.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_num.value))){
      alert('Informe o Número do endereço somente com números !!!');
      document.frm01.txt_num.value = trim(document.frm01.txt_num.value);
      document.frm01.txt_num.focus();
      return false;
   } else if ( document.frm01.txt_bairro.value == ""){
      alert('Informe o Bairro !!!');
      document.frm01.txt_bairro.focus();
      return false;
   } else if ( document.frm01.txt_cidade.value == ""){
      alert('Informe a Cidade do endereço!!!');
      document.frm01.txt_cidade.focus();
      return false;
   } else if ( document.frm01.txt_uf.value == ""){
      alert('Informe o Estado do endereço !!!');
      document.frm01.txt_uf.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_ddd.value))){
      alert('Informe o DDD residencial somente com números !!!');
      document.frm01.txt_ddd.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_fone.value))){
      alert('Informe o Telefone residencial somente com números !!!');
      document.frm01.txt_fone.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_ddd_cel.value))){
      alert('Informe o DDD do celular somente com números !!!');
      document.frm01.txt_ddd_cel.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_fone_cel.value))){
      alert('Informe o Telefone celular somente com números !!!');
      document.frm01.txt_fone_cel.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_ddd_rec.value))){
      alert('Informe o DDD para recados somente com números !!!');
      document.frm01.txt_ddd_rec.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_fone_rec.value))){
      alert('Informe o Telefone para recados somente com números !!!');
      document.frm01.txt_fone_rec.focus();
      return false;
   } else if ( document.frm01.cmb_dependente.value == "S" && document.frm01.txt_dep_qtde.value == ""){
      alert('Informe a Quantidade de Dependentes !!!');
      document.frm01.txt_dep_qtde.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_dep_qtde.value))){
      alert('Informe a Quantidade de Dependentes somente com números !!!');
      document.frm01.txt_dep_qtde.value = trim(document.frm01.txt_dep_qtde.value);
      document.frm01.txt_dep_qtde.focus();
      return false;
   } else if ( document.frm01.cmb_nivel.value == ""){
      alert('Informe o Nível de Formação !!!');
      document.frm01.cmb_nivel.focus();
      return false;
   } else if ( document.frm01.cmb_instituicao.value == ""){
      alert('Informe a Instituição !!!');
      document.frm01.cmb_instituicao.focus();
      return false;
   } else if ( document.frm01.txt_curso.value == ""){
      alert('Informe o Curso !!!');
      document.frm01.txt_curso.focus();
      return false;
   } else if ( !checkNumeros(trim(document.frm01.txt_ano_conclui.value))){
      alert('Informe o Ano de Conclusão somente com números !!!');
      document.frm01.txt_ano_conclui.value = trim(document.frm01.txt_ano_conclui.value);
      document.frm01.txt_ano_conclui.focus();
      return false;
   } else if (   (trim(document.frm01.txt_ano_conclui.value) < 1500)
              || (trim(document.frm01.txt_ano_conclui.value) > 2499) ){
      alert('Ano inválido !!!');
      document.frm01.txt_ano_conclui.value = trim(document.frm01.txt_ano_conclui.value);
      document.frm01.txt_ano_conclui.focus();
      return false;
   } else if ( document.frm01.cmb_possui.value == "S" && document.frm01.txt_conjuge_nome.value == ""){
      alert('Informe o nome do Cônjuge ou Parente que trabalha na OMEC/UMC !!!');
      document.frm01.txt_conjuge_nome.focus();
      return false;
   } else if (   /*(trim(document.frm01.txt_curr_lattes.value) == "")*/
              /*&&*/ (document.frm01.curriculo_file.value == "") ) {
      alert('Anexe o seu curriculo com extensão ".doc" ou ".pdf" !!!');
      document.frm01.curriculo_file.focus();
      return false;
    } else if ( document.frm01.cmb_sem_conclui.value == ""){
      alert('Informe o semestre de Conclusão da Formação Acadêmica !!!');
      document.frm01.cmb_sem_conclui.focus();
//      document.getElementById("cmb_sem_conclui").style.color = "#ff0000";
      return false;
   } else {
      var sElement = '';
      for (var i=0; i<document.frm01.elements.length; i++) {
         sElement = document.frm01.elements[i].name;
         if (   (sElement.substr(0,4) == "cri_")
               && (document.frm01.elements[i].value == '') ) {
             alert('Campo "'+document.frm01.elements[i].id+'" obrigatório !!!');
             document.frm01.elements[i].focus();
             return false;
         }
      }

      document.frm01.action = "act_curriculo.php";
      document.frm01.submit();
   }
}
/*function valida() {
   } else {
      ajustaCampos("S");
      document.frm01.nome_curso.value = document.frm01.curso.options[document.frm01.curso.selectedIndex].text.toUpperCase();
      document.frm01.action = "confere.php"
      document.frm01.submit();
   }
}
*/

function setCargo(valor){
   document.frm01.aux_cargo.value = valor;
   document.frm01.submit();
}

