
// ----------------------------------------------------------------------------------------
function CarregaCombo (obj, frm, dest, sql) 
{
  if (!window.top.frames['proc']) {
    window.top.location = '/';
    return ;
  }

  var valSelect = obj.options[obj.selectedIndex].value;
  var parms = 'cb_parm='+valSelect+'&cb_sql='+sql+'&cb_dest='+dest;

  if ( !empty(valSelect) ) {
    parent.proc.location = '/fnt/proc.php?'+parms;
    OptObj = new Option(' carregando ... ');
  } else {
    OptObj = new Option('-------------------- selecione --------------------');
  }

  eval(dest).options.length = 0;
  eval(dest).options[0] = OptObj;
  eval(dest).options.selectedIndex = 0;
}

// ----------------------------------------------------------------------------------------
function EscreveCombo(dest, obj) 
{
  obj  = eval(obj);
  dest = eval(dest);
  dest.options[dest.options.length] = obj;
  dest.options.selectedIndex = 0;
}

// ----------------------------------------------------------------------------------------
function isCPF(cpf) 
{
  var dac = "", inicio = 2, fim = 10, soma, digito, i, j  

  if (cpf=='11111111111' || cpf=='22222222222' || cpf=='33333333333' || cpf=='44444444444' || cpf=='55555555555' || cpf=='66666666666' || cpf=='77777777777' || cpf=='88888888888' || cpf=='99999999999') {
    return false;
  }

  for (j=1; j<=2; j++) {  
    soma = 0  
    for (i=inicio; i<=fim; i++) {  
      soma += parseInt(cpf.substring(i-j-1,i-j))*(fim+1+j-i)  
    }  
    if (j == 2) { soma += 2*digito }  
    digito = (10*soma) % 11  
    if (digito == 10) { digito = 0 }  
    dac += digito  
    inicio = 3  
    fim = 11  
  }  
  return (dac == cpf.substring(cpf.length-2,cpf.length))  
}

// ----------------------------------------------------------------------------------------
function isCNPJ(cnpj) 
{
  var df, resto, dac = ""  

  if ((cnpj.indexOf("-") != -1) || (cnpj.indexOf(".") != -1) || (cnpj.indexOf("/") != -1)) { 
    return false
  }  
  df = 5*cnpj.charAt(0)+
       4*cnpj.charAt(1)+
       3*cnpj.charAt(2)+
       2*cnpj.charAt(3)+
       9*cnpj.charAt(4)+
       8*cnpj.charAt(5)+
       7*cnpj.charAt(6)+
       6*cnpj.charAt(7)+
       5*cnpj.charAt(8)+
       4*cnpj.charAt(9)+
       3*cnpj.charAt(10)+
       2*cnpj.charAt(11)  
  resto = df % 11  
  dac += ( (resto <= 1) ? 0 : (11-resto) )  
  df = 6*cnpj.charAt(0)+
       5*cnpj.charAt(1)+
       4*cnpj.charAt(2)+
       3*cnpj.charAt(3)+
       2*cnpj.charAt(4)+
       9*cnpj.charAt(5)+
       8*cnpj.charAt(6)+
       7*cnpj.charAt(7)+
       6*cnpj.charAt(8)+
       5*cnpj.charAt(9)+
       4*cnpj.charAt(10)+
       3*cnpj.charAt(11)+
       2*parseInt(dac)  
  resto = df % 11  
  dac += ( (resto <= 1) ? 0 : (11-resto) )  
  return (dac == cnpj.substring(cnpj.length-2,cnpj.length))  
}

// ----------------------------------------------------------------------------------------
function isEMail (email)
{
  var jSintaxe, jArroba, jPontos;
  var ExpReg = new RegExp('[^a-zA-Z0-9\.@_-]', 'g');

  // Checa a sintaxe.
  jSintaxe = !ExpReg.test(email);

  // Checa se há pontos inválidos.
  jPontos = (email.indexOf('.') > 0) && !(email.indexOf('..') > 0);

  // Checa se existe somente uma arroba.
  jArroba = (email.indexOf('@') > 0) && (email.indexOf('@') == email.lastIndexOf('@'));
    
  return ( jSintaxe && jPontos && jArroba)
}

// ----------------------------------------------------------------------------------------
function ValData (data) 
{
  if ( (data == null) || (data.length < 10) || data.substring(2,3) != '/' || data.substring(5,6) != '/' ) {
    return false;
  }

  var jsDataValida = true;
  var jsDia = data.substring(0,2)-0;
  var jsMes = data.substring(3,5)-1;
  var jsAno = data.substring(6,10)-0;
  var oData = new Date(jsAno, jsMes, jsDia);    
  
  if (jsDia != oData.getDate()) { jsDataValida = false }
  if (jsMes != oData.getMonth()) { jsDataValida = false }
  if (jsAno != oData.getFullYear()) { jsDataValida = false }

  return jsDataValida;
}

// ----------------------------------------------------------------------------------------
function CharsCount (obj, max)
{
  if (obj.value.length > max) {
    alert('Seu texto ultrapassou o limite de ' + max + ' caracteres.');
    obj.value = obj.value.substring(0, max);
    obj.focus();
    return ;
  }
}

// ----------------------------------------------------------------------------------------
// Verifica se uma variável tipo numérica ou string estão vazias.
function empty (x)
{
  if ( isNaN(x) ) {
    return ( x.replace(/[" "]/g, '') == '' );
  } else {
    return ( x == 0 );
  }
}

// ----------------------------------------------------------------------------------------
// Formata um número, ajustando o número de casas decimais indicado.
  function FrmNumero (num, dec)
  {
    var i, pos, bl01, bl02, strInc, strZero, zeros, NumRet;

    pos = Math.max(num.lastIndexOf('.'), num.lastIndexOf(',')) 

    if ( pos >= 0 ) {
      bl01 = num.substring(0, pos);
      bl02 = num.substring(pos+1);
    } else {
      bl01 = num;
      bl02 = '';
    }

    bl01 = bl01.replace(/[^0-9]/g,'');
    bl02 = bl02.replace(/[^0-9]/g,'');

    if (bl01 == '') bl01 = '0';
    bl01 = parseFloat( bl01.replace(/[^0-9]/g,'') ) + '';

    if ( bl02.length >= dec ) {
      strInc  = '';
      strZero = '';
      for (i=0; i<dec; i++) {
        strInc  += '9';
        strZero += '0';
      }
      if ( (bl02.substring(0, dec) == strInc) && (bl02.length > dec) && (bl02.charAt(dec) > 4) ) {
        bl01++;
        bl02 = strZero;
      } else {
        if (dec > 0) bl02 = Math.round( bl02.substring(0, dec) + '.' + bl02.substring(dec) ) + '';
        if (bl02.length != dec) {
          zeros = '';
          for (i=0; i<(dec - bl02.length); i++) zeros += '0';
          bl02 = zeros + bl02;
        }
      }
    } else {
      zeros = '';
      for (i=0; i<(dec - bl02.length); i++) zeros += '0';
      bl02 = bl02 + zeros;
    }

    if ( (dec == 0) && (pos >= 0) ) {
      NumRet = Math.round( bl01 + '.' + bl02 ) + '';
    } else {
      if (bl02.length > 0) {
        NumRet = bl01 + '.' + bl02;
      } else {
        NumRet = bl01;
      }
    }

    return ( NumRet );
  }

// ----------------------------------------------------------------------------------------
// Habilita os componentes agrupados pelo "ID".
  function Grupo (grp)
  {
    var obj = document.forms[0];
    
    for (i=0; i<obj.elements.length; i++) {

      if (obj.elements[i].id == grp) {

        obj.elements[i].disabled = false;
        obj.elements[i].readOnly = false;

      } else if (obj.elements[i].id != '') {

        obj.elements[i].disabled = true;
        obj.elements[i].readOnly = true;

      }

    }
    
  }

