/* --------------------------------------------------------------------------
   Função    : F_Vazio1
   Objetivo  : Verificar se um determinado campo de um formulário está em
               branco, retornando true, neste caso, ou false, caso contrário
   Data      : 16/09/2003
   Parâmetros: _campo - Objeto do formulário a ser verificado
               ST_mens - Mensagem a ser exibida, caso o campo esteja em branco
   -------------------------------------------------------------------------- */
function F_Vazio1(_campo, ST_mens)
 {
  ST_valor = new String(_campo.value);
  BO_reto = true;

  if (ST_valor.length != 0)
    for (SI_ind1 = 0; SI_ind1 < ST_valor.length; SI_ind1++)
      if (ST_valor.substr(SI_ind1,1) != " ")
       {
        BO_reto = false;
        break;
       }

  if (BO_reto && ST_mens != "")
   {
    alert(ST_mens);
    _campo.focus();
   }

  return(BO_reto);
 }

/* --------------------------------------------------------------------------
   Função    : F_CorrigeRG1
   Objetivo  : Verificar o número do RG foi digitado com pontos, traços e
               espaços e retirá-los, neste caso
   Data      : 13/10/2004
   Parâmetros: ST_nurg - Número do RG digitado
   -------------------------------------------------------------------------- */
function F_CorrigeRG1(ST_nurg)
 {
  ST_val1 = new String(ST_nurg);
  ST_val1 = ST_val1.toUpperCase();
  ST_val2 = "";
  ST_vali = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

  for (SI_ind1 = 0; SI_ind1 < ST_val1.length; SI_ind1++)
   {
    ST_cara = ST_val1.substr(SI_ind1,1);

    for (SI_ind2 = 0; SI_ind2 < ST_vali.length; SI_ind2++)
      if (ST_cara == ST_vali.charAt(SI_ind2))
        break;

    if (SI_ind2 < ST_vali.length)
      ST_val2 = ST_val2 + ST_cara;
   }

  return(ST_val2);
 }

/* --------------------------------------------------------------------------
   Função    : F_SubstStr1
   Objetivo  : Localizar um determinado caracter na string e substituí-lo por
               outro
   Data      : 07/05/2005
   Parâmetros: ST_str1 - String inicial
               ST_car1 - Caracter a localizar
               ST_car2 - Caracter a substituir
   -------------------------------------------------------------------------- */
function F_SubstStr1(ST_str1, ST_car1, ST_car2)
 {
  var ST_temp = new String(ST_str1);
  var ST_reto = new String('');
  var SI_ind1;

  for (SI_ind1 = 0; SI_ind1 < ST_temp.length; SI_ind1++)
    if (ST_temp.substr(SI_ind1,1) == ST_car1)
      ST_reto = ST_reto + ST_car2;
    else
      ST_reto = ST_reto + ST_temp.substr(SI_ind1,1);

  return(ST_reto);
 }

// ---------------------------------------------------------------------------------------
// Valida um determinado campo de acordo com seu tipo
//
// Parâmetros: field - campo a ser verificado
//             tipoval - tipo da validação:
//                       0 = verificar string
//                       1 = verificar números
//                       2 = verificar datas
//                       3 = verificar se a string está ou não vazia
//                       4 = verificar numeros entre 0 e 9
// ---------------------------------------------------------------------------------------
function F_ValidField1(field,tipoval)
 {
  with (field)
   {
    checkvalue = value;
    checksize  = value.length;
   }

// Validação de string
  if (tipoval == 0)
    var checkOK = "'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ \t\r\n\f";	

// Validação de números
  else if (tipoval == 1)
    var checkOK = "0123456789-.";

// Verificação se a string está ou não vazia
  else if (tipoval == 3)
    if (F_Vazio1(field.value,""))
      return(false);
    else
      return(true);

// Verificação de números entre 0 e 9
  else if (tipoval == 4)
    var checkOK = "0123456789";

  var allValid = true;

// Se for verificação de números ou de string
  if (tipoval <= 1 || tipoval == 4)
   {
    var decPoints = 0;
    var allNum = "";
    for (i = 0; i < checksize; i++)
     {
      ch = checkvalue.charAt(i);
      for (j = 0; j < checkOK.length; j++)
        if (ch == checkOK.charAt(j))
          break;
				
      if (j == checkOK.length)
       {
        allValid = false;
        break;
       }

      if (ch != ".")
        allNum += ch;
     }
   }

// Verificação de datas
  else
   {	
    if (checksize == 8)
     {
      var dia2 = checkvalue.substring(0,2);
      var mes2 = checkvalue.substring(2,4);
      var ano2 = checkvalue.substring(4,8);
      field.value = dia2 + "/" + mes2 + "/" + ano2;
      checkvalue = field.value;
      checksize  = field.value.length;	
     }
		
    if (checksize == 10)
     {
      if (checkvalue.charAt(2) != "/"  || checkvalue.charAt(5) != "/")
        return false;

      var dia = checkvalue.substring(0,2);
      var mes = checkvalue.substring(3,5);
      var ano = checkvalue.substring(6,10);

      if (isNaN(dia) || isNaN(mes) || isNaN(ano))
        return false;
			
      mes--;
			
      calDate = new Date(ano, mes, dia); 
			
      if (calDate.getDate() == dia && calDate.getMonth() == mes && calDate.getUTCFullYear() == ano)
        allValid = true;
      else
        allValid = false;
     }
    else
      return (false);
   }

  return (allValid);
 }

// ---------------------------------------------------------------------------------------
// Verifica se a data é menor do que a data mínima 
//
// Parâmetros: checkdata - data a ser verificada
//             anomin    - menor ano aceito
// ---------------------------------------------------------------------------------------
function F_IsMinDate(checkdata, anomin)
 {
  var dia = checkvalue.substring(0,2);
  var mes = checkvalue.substring(3,5);
  var ano = checkvalue.substring(6,10);
	
  if (isNaN(dia) || isNaN(mes) || isNaN(ano))
    return false;
	
  calDate = new Date(ano, mes, dia);
	
  if (calDate.getUTCFullYear() > anomin)
    return false;
  else
    return true;
 }

// ---------------------------------------------------------------------------------------
// Verifica se a data inicial é anterior à final
//
// Parâmetros: DT_dtin - Data inicial
//             DT_dtfi - Data inal
// ---------------------------------------------------------------------------------------
function F_VerData1(DT_dtin, DT_dtfi)
 {
  var dia1 = DT_dtin.substring(0,2);
  var mes1 = DT_dtin.substring(3,5);
  var ano1 = DT_dtin.substring(6,10);

  var dia2 = DT_dtfi.substring(0,2);
  var mes2 = DT_dtfi.substring(3,5);
  var ano2 = DT_dtfi.substring(6,10);

  var VC_data1
  var VC_data2

  if (isNaN(dia1) || isNaN(mes1) || isNaN(ano1) || isNaN(dia2) || isNaN(mes2) || isNaN(ano2))
    return false;

  VC_data1 = ano1 + mes1 + dia1;
  VC_data2 = ano2 + mes2 + dia2;

  if (VC_data1 >= VC_data2)
    return false;
  else
    return true;
 }

// ---------------------------------------------------------------------------------------
// Verifica os números de um campo de CPF
//
// Parâmetros: strcpf - CPF a ser validado
// ---------------------------------------------------------------------------------------
function F_ValidCpf(strcpf)
 {
  var wSomaDosProdutos=0;
  var wResto=0;
  var wDigitChk=0;
  var wDigitChk2=0;
  var wStatus=0;
  var wI=0;
	
  for (wI = 0; wI < 9; wI++)
    wSomaDosProdutos += parseInt( strcpf.substring(wI, wI+1),10 ) * (11 - (wI+1) );
	
  var wResto = wSomaDosProdutos - parseInt( wSomaDosProdutos / 11 ) * 11;
  if (wResto == 0 || wResto == 1)
    wDigitChk1 = 0;
  else
    wDigitChk1 = 11 - wResto;

  wSomaDosProdutos = 0;
  for (wI = 0;wI<9;wI++)
    wSomaDosProdutos += parseInt(strcpf.substring(wI,wI+ 1),10) * (12 - (wI+1));
	
  wSomaDosProdutos += 2 * wDigitChk1;
  wResto = wSomaDosProdutos - parseInt(wSomaDosProdutos / 11) * 11;

  if (wResto == 0 || wResto == 1)
    wDigitChk2 = 0;
  else
    wDigitChk2 = 11-wResto ;
		
  var ch1 = strcpf.charAt(9);
  var ch2 = strcpf.charAt(10);
	
  if (parseInt(ch1) == wDigitChk1 && parseInt(ch2) == wDigitChk2)
    return (true);
  else
    return (false);
 }

// ---------------------------------------------------------------------------------------
// Evento OnBlur para campos data, para preencher com barras entre os números
//
// Parâmetros: checkdata - data a ser preenchida
// ---------------------------------------------------------------------------------------
function F_OnBlurDate1(checkdata)
 {
  if (checkdata.value.length == 8)
   {
    var dia = checkdata.value.substring(0,2);
    var mes = checkdata.value.substring(2,4);
    var ano = checkdata.value.substring(4,8);
    checkdata.value = dia + "/" + mes + "/" + ano;
   }
 }

// ---------------------------------------------------------------------------------------
// Grava um cookie na máquina do usuário
//
// Parâmetros: Nome - nome do cookie a ser gravado
//             Valor - valor do cookie
//             Expira - data de expiração
// ---------------------------------------------------------------------------------------
function F_GravarCookie(Nome, Valor, Expira)
 {
  document.cookie = Nome + "=" + escape(Valor) + ((Expira == null) ? "" : (";expires=" + Expira.toGMTString()));
 }

// ---------------------------------------------------------------------------------------
// Lê um cookie na máquina do usuário
//
// Parâmetros: Nome - nome do cookie a ser lido
// ---------------------------------------------------------------------------------------
function F_LerCookie(Nome)
 {
  Result = "";
  Busca = Nome + "=";

  if (document.cookie.length > 0)
   {
    Posic = document.cookie.indexOf(Busca);

    if (Posic != -1)
     {
      Posic += Busca.length;
      Fim = document.cookie.indexOf(";", Posic);

      if (Fim == -1)
        Fim = document.cookie.length;

      Result = unescape(document.cookie.substring(Posic, Fim));

     }
   }

  return (Result);
 }

// ---------------------------------------------------------------------------------------
// Preenche o início de uma string com determinado caracter
//
// Parâmetros: Campo : Campo a preencher
//             Carac : Caracter de preenchimento
//             Tam1  : Tamanho a preencher
// ---------------------------------------------------------------------------------------
function F_FillEsq(Campo, Carac, Tam1)
 {
  Str1 = new String(Campo);
  Tam2 = Str1.length;
  Ret = "";

  for(ind1 = 1; ind1 <= Tam1 - Tam2; ind1++)
    Ret = Ret + Carac;

  return (Ret + Campo);
 }

// ---------------------------------------------------------------------------------------
// Valida um campo de nome de pessoa
//
// Parâmetros: rotulo - descriçao do campo a ser validado
//             campo - campo a ser verificado
//             converte - pode ser 0 : deixa como está
//                                 1 : converte para maiúsculo
//                                 2 : converte para minúsculo
//                                 3 : converte as iniciais para maiúsculo
// ---------------------------------------------------------------------------------------
function F_ValidNome1(rotulo,campo,converte)
 {
  if (converte == "1")
    campo.value = campo.value.toUpperCase();
  else if (converte == "2")
    campo.value = campo.value.toLowerCase();
  else if (converte == "3")
    campo.value = campo.value.toUpperCase();

  if (!F_ValidField1(campo,0))
   {
    campo.focus();
    alert("Favor digitar apenas letras no campo \"" + rotulo + "\".");
    campo.value = "";
    return (false);
   }

  if (campo.value.length < 5)
   {
    campo.focus();
    alert("Favor digitar um nome válido no campo \"" + rotulo + "\".");
    campo.value = "";
    return (false);
   }

  return (true);
 }

// ---------------------------------------------------------------------------------------
// Evento OnBlur para campos CPF, para preencher com . e - entre os números
//
// Parâmetros: checkcpf - CPF a ser preenchido
// ---------------------------------------------------------------------------------------
function F_OnBlurCpf1(checkcpf)
 {
  if (checkcpf.value.length == 11)
   {
    var cpf1 = checkcpf.value.substring(0,3);
    var cpf2 = checkcpf.value.substring(3,6);
    var cpf3 = checkcpf.value.substring(6,9);
    var cpf4 = checkcpf.value.substring(9,11);

    checkcpf.value = cpf1 + "." + cpf2 + "." + cpf3 + "-" + cpf4;
   }
 }

// ---------------------------------------------------------------------------------------
// Evento OnBlur para campos CEP, para preencher com - entre os números
//
// Parâmetros: checkcpf - CEP a ser preenchido
// ---------------------------------------------------------------------------------------
function F_OnBlurCep1(checkcep)
 {
  if (checkcep.value.length == 8)
   {
    var cep1 = checkcep.value.substring(0,5);
    var cep2 = checkcep.value.substring(5,8);

    checkcep.value = cep1 + "-" + cep2;
   }
 }

// ---------------------------------------------------------------------------------------
// Evento OnBlur para campos telefone, para preencher com espaço entre os números
//
// Parâmetros: _txttele - Campo telefone a ser preenchido
// ---------------------------------------------------------------------------------------
function F_OnBlurTel1(_txttele)
 {
  if (_txttele.value.length == 8 && _txttele.value.substr(3,1) != " ")
   {
    var tel1 = _txttele.value.substr(0,4);
    var tel2 = _txttele.value.substr(4,4);

    _txttele.value = tel1 + " " + tel2;
   }

  else if (_txttele.value.length == 7)
   {
    var tel1 = _txttele.value.substr(0,3);
    var tel2 = _txttele.value.substr(3,7);

    _txttele.value = tel1 + " " + tel2;
   }
 }

// ---------------------------------------------------------------------------------------
// Grava um cookie na máquina do usuário
//
// Parâmetros: Nome - nome do cookie a ser gravado
//             Valor - valor do cookie
//             Expira - data de expiração
// ---------------------------------------------------------------------------------------
function F_GravarCookie(Nome, Valor, Expira)
 {
  document.cookie = Nome + "=" + escape(Valor) + ((Expira == null) ? "" : (";expires=" + Expira.toGMTString()));
 }

// ---------------------------------------------------------------------------------------
// Lê um cookie na máquina do usuário
//
// Parâmetros: Nome - nome do cookie a ser lido
// ---------------------------------------------------------------------------------------
function F_LerCookie(Nome)
 {
  Result = "";
  Busca = Nome + "=";

  if (document.cookie.length > 0)
   {
    Posic = document.cookie.indexOf(Busca);

    if (Posic != -1)
     {
      Posic += Busca.length;
      Fim = document.cookie.indexOf(";", Posic);

      if (Fim == -1)
        Fim = document.cookie.length;

      Result = unescape(document.cookie.substring(Posic, Fim));

     }
   }

  return (Result);
 }

// ---------------------------------------------------------------------------------------
// Preenche o início de uma string com determinado caracter
//
// Parâmetros: Campo : Campo a preencher
//             Carac : Caracter de preenchimento
//             Tam1  : Tamanho a preencher
// ---------------------------------------------------------------------------------------
function F_FillEsq(Campo, Carac, Tam1)
 {
  Str1 = new String(Campo);
  Tam2 = Str1.length;
  Ret = "";

  for(ind1 = 1; ind1 <= Tam1 - Tam2; ind1++)
    Ret = Ret + Carac;

  return (Ret + Campo);
 }

// ---------------------------------------------------------------------------------------
// Calcular o dígito verificador do código de barras através do módulo 10
//
// Parâmetros: Numero : String contendo os números para o cálculo do dígito verificador
// ---------------------------------------------------------------------------------------
function F_Modulo10(Numero)
 {
// Inicia o multiplicador com 2
  num1 = new String(Numero);
  var mult = 2;
  soma = new String("");
  var tam1 = num1.length;
  var ind1 = 0;

  for (ind1 = tam1 - 1; ind1 >= 0; ind1--)
   {
    soma = soma + String(parseInt(num1.substr(ind1,1)) * mult);

  // Alterna o multiplicador entre 1 e 2
    if (mult == 2)
      mult = 1;
    else
      mult = 2;
   }

// Obtém a soma dos dígitos encontrados
  som1 = 0;
  for (ind1 = 0; ind1 <= soma.length - 1; ind1++)
    som1 = som1 + parseInt(soma.substr(ind1,1));

// Obtém o resto da divisão da soma por 10
  rest = som1 % 10;

  if (rest == 0)
    return ("0");
  else
    return (String(10 - rest));
 }

// ---------------------------------------------------------------------------------------
// Obter a descrição do copyright na tela
// ---------------------------------------------------------------------------------------
function F_CopyRight1()
 {
  document.write("<table align='center'>");
  document.write("  <tr>");
  document.write("    <td align='center' valign='bottom'>");
  document.write("      <font size='1'>");
  document.write("        <p>");
  document.write("        &copy UNIVÁS Todos os direitos reservados");
  document.write("      </font>");
  document.write("    </td>");
  document.write("  </tr>");
  document.write("</table>");

  return (true);
 }

// ---------------------------------------------------------------------------------------
// Verifica se um determinado valor é número inteiro
//
// Parâmetros: ST_valo - Valor a ser verificado
// ---------------------------------------------------------------------------------------
function F_IsNumInt1(ST_valo)
 {
  var ST_nume = "0123456789";
  var BO_vali = true;
  var ST_car1 = "";

  for (SI_ind1 = 0; SI_ind1 < ST_valo.length; SI_ind1++)
   {
    ST_car1 = ST_valo.charAt(SI_ind1);

    for (SI_ind2 = 0; SI_ind2 < ST_nume.length; SI_ind2++)
      if (ST_car1 == ST_nume.charAt(SI_ind2))
        break;

    if (SI_ind2 == ST_nume.length)
     {
      BO_vali = false;
      break;
     }
   }

  return(BO_vali);
 }

// ---------------------------------------------------------------------------------------
// Obtém o valor do item selecionado de um radiobutton
//
// Parâmetros: _RadioBtn - RadioButton a ser verificado
// ---------------------------------------------------------------------------------------
function F_ValorRadio1(_RadioBtn)
 {
  var SI_valor = -1;
  var SI_ind1 = 0;

  for (SI_ind1 = 0; SI_ind1 < _RadioBtn.length; SI_ind1++)
    if (_RadioBtn[SI_ind1].checked)
      SI_valor = SI_ind1 + 1;

  return (String(SI_valor));
 }

// ---------------------------------------------------------------------------------------
// Obtém o valor do item selecionado de um radiobutton
//
// Parâmetros: _RadioBtn - RadioButton a ser verificado
// ---------------------------------------------------------------------------------------
function F_ValorRadio2(_RadioBtn)
 {
  var SI_valor = -1;
  var SI_ind1 = 0;

  for (SI_ind1 = 0; SI_ind1 < _RadioBtn.length; SI_ind1++)
    if (_RadioBtn[SI_ind1].checked)
      SI_valor = SI_ind1 + 1;

  if (SI_valor == "-1")
    return("");
  else
    return(_RadioBtn[SI_valor - 1].value);
 }

// ---------------------------------------------------------------------------------------
// Verifica se um determinado valor numérico é real
//
// Parâmetros: ST_nume - Número a ser verificado
//             ST_mens - Mensagem a ser exibida caso o valor não seja real. Se for = ""
//                       não exibe mensagem
// ---------------------------------------------------------------------------------------
function F_IsFloatNum1(ST_nume, ST_mens)
 {
  var TI_ind1 = 0;
  var BO_reto = false;
  var BO_virg = false;

  if (ST_nume.length > 0)
    BO_reto = true;
  else
    BO_reto = false;

  BO_virg = false;

  for(TI_ind1 = 0; TI_ind1 < ST_nume.length; TI_ind1++)
    if (ST_nume.charAt(TI_ind1) < '0' || ST_nume.charAt(TI_ind1) > '9')
      if ((ST_nume.charAt(TI_ind1) == '.' || ST_nume.charAt(TI_ind1) == ',') && (BO_virg == false))
        BO_virg = true;
      else
       {
        BO_reto = false;
        break;
       }

  if (BO_reto == true)
    return(true);
  else
   {
    if (ST_mens != "")
      alert(ST_mens);

    return(false);
   }
 }

// ---------------------------------------------------------------------------------------
// Verifica se um determinado valor é número inteiro
//
// Parâmetros: ST_valo - Valor a ser verificado
//             ST_mens - Mensagem a ser exibida caso o valor não seja inteiro. Se for = ""
//                       nenhuma mensagem será exibida
// ---------------------------------------------------------------------------------------
function F_IsNumInt2(ST_valo, ST_mens)
 {
  var BO_reto = F_IsNumInt1(ST_valo);

  if (BO_reto == false && ST_mens != "")
    alert(ST_mens);

  return(BO_reto);
 }

// -----------------------------------------------------------------------------
// Substituir a tecla Enter pelo Tab para mudar de campo em um formulário
// -----------------------------------------------------------------------------
function F_EnterTab1()
 {
  var Tecla = window.event.keyCode;

  if (Tecla==13)
    window.event.keyCode = 9;

  event.returnValue = true;

 }

// -----------------------------------------------------------------------------
// Função F_StretchImage1
// Objetivo: Redimensionar uma imagem na tela de forma que ela se encaixo em
//           determinadas coordenadas
// Parâmetros: SI_height - Altura máxima da imagem
//             SI_width  - Largura máxima da imagem
//             _Image1   - Componente da imagem (Nome do <IMG>)
// -----------------------------------------------------------------------------
function F_StretchImage1(SI_height, SI_width, _Image1)
 {
// Tamanho padrão
  SI_height1 = SI_height;
  SI_width1  = SI_width;

// Calcula a melhor altura e largura
  if ((SI_height1 * 100) / _Image1.height <= (SI_width1 * 100) / _Image1.width)
    RE_porc = (SI_height1 * 100) / _Image1.height
  else
    RE_porc = (SI_width1 * 100) / _Image1.width;

  SI_height1 = _Image1.height * RE_porc / 100;
  SI_width1  = _Image1.width * RE_porc / 100;

  _Image1.height = SI_height1;
  _Image1.width  = SI_width1;

  return(true);
 }

// -----------------------------------------------------------------------------
// Função F_ObtExt1
// Objetivo: Obter a extensão de um arquivo
// Parâmetros: VC_nomearq - Nome do arquivo
// -----------------------------------------------------------------------------
function F_ObtExt1(ST_nomearq)
 {
  var SI_ind1
  var VC_reto

  VC_reto = "";

  for (SI_ind1 = ST_nomearq.length - 1; SI_ind1 >= 0; SI_ind1--)
   {
    VC_reto = ST_nomearq.substr(SI_ind1,1) + VC_reto;

    if (ST_nomearq.substr(SI_ind1,1) == ".")
      break;
   }

  return(VC_reto);
 }
