function getid(elemento)
{
  return document.getElementById(elemento);
}

function getname(elemento)
{
  return document.getElementsByName(elemento);
}

function somente_numero(numero)
{
  var validos = "0123456789";
  var numero_ok = '';
  for(i = 0; i < numero.length; i++)
  {
     if(validos.indexOf(numero.substr(i, 1)) != - 1)
     {
        numero_ok += numero.substr(i, 1);
     }
  }
  return numero_ok;
}


function somente_letras(letra)
{
  var validos = "_abcdefghijklmnopkrstuvxzywçáéíóú ";
  var letra_ok = '';

  for(i = 0; i < letra.length; i++)
  {
     if(validos.indexOf(letra.substr(i, 1)) != - 1)
     {
        letra_ok += letra.substr(i, 1);
     }
  }
  return letra_ok;
}


function LTrim(str)
{
  var whitespace = new String(" \t\n\r");
  var s = new String(str);

  if(whitespace.indexOf(s.charAt(0)) != - 1)
  {
     var j = 0, i = s.length;
     while(j < i && whitespace.indexOf(s.charAt(j)) != - 1)
        j++;
     s = s.substring(j, i);
  }
  return s;
}

function RTrim(str)
{
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if(whitespace.indexOf(s.charAt(s.length - 1)) != - 1)
  {
     var i = s.length - 1;
     while(i >= 0 && whitespace.indexOf(s.charAt(i)) != - 1)
        i--;
     s = s.substring(0, i + 1);
  }
  return s;
}

function trim(str)
{
  return RTrim(LTrim(str));
}

function Mascara(objCampo, mascara)
{
  switch(mascara)
  {

     case 'cpf':
        objCampo.value = somente_numero(objCampo.value);
        pri = objCampo.value.substring(0, 3);
        seg = objCampo.value.substring(3, 6);
        ter = objCampo.value.substring(6, 9);
        qua = objCampo.value.substring(9, 11);

        objCampo.value = pri +
        ((seg != '') ? '.' + seg : '') +
        ((ter != '') ? '.' + ter : '') +
        ((qua != '') ? '-' + qua : '');
        break;


     case 'cnpj':
        objCampo.value = somente_numero(objCampo.value);
        pri = objCampo.value.substring(0, 2);
        seg = objCampo.value.substring(2, 5);
        ter = objCampo.value.substring(5, 8);
        qua = objCampo.value.substring(8, 12);
        qui = objCampo.value.substring(12, 14);

        objCampo.value = pri +
        ((seg != '') ? '.' + seg : '') +
        ((ter != '') ? '.' + ter : '') +
        ((qua != '') ? '/' + qua : '') +
        ((qui != '') ? '-' + qui : '');
        break;

     case 'dddtelefone':
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 2);
        seg = objCampo.value.substring(2, 6);
        ter = objCampo.value.substring(6, 10);

        objCampo.value = ((pri != '') ? '(' + pri + ') ' : '') +
        ((seg != '') ? seg : '') +
        ((ter != '') ? '-' + ter : '');
        break;

     case 'telefone' :
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 4);
        seg = objCampo.value.substring(4, 8);

        objCampo.value = ((pri != '') ? pri : '') +
        ((seg != '') ? '-' + seg : '');
        break;


     case 'cep':
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 5);
        seg = objCampo.value.substring(5, 8);

        objCampo.value = pri +
        ((seg != '') ? '-' + seg : '');
        break;


     case 'data':
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 2);
        seg = objCampo.value.substring(2, 4);
        ter = objCampo.value.substring(4, 8);

        objCampo.value = pri +
        ((seg != '') ? '/' + seg : '') +
        ((ter != '') ? '/' + ter : '')
        break;


     case 'venc_cartao':
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 2);
        seg = objCampo.value.substring(2, 6);

        objCampo.value = pri +
        ((seg != '') ? '/' + seg : '')
        break;


     case 'cartao':
        objCampo.value = somente_numero(objCampo.value);

        pri = objCampo.value.substring(0, 4);
        seg = objCampo.value.substring(4, 8);
        ter = objCampo.value.substring(8, 12);
        qua = objCampo.value.substring(12, 16);

        objCampo.value = pri +
        ((seg != '') ? '-' + seg : '') +
        ((ter != '') ? '-' + ter : '') +
        ((qua != '') ? '-' + qua : '');
        break;

     case 'numero':
        objCampo.value = somente_numero(objCampo.value);
        break;

     case 'letra':
        objCampo.value = somente_letras(objCampo.value);
        break;


     case 'moeda':
        len = 20
        cur = objCampo
        n = '0123456789';
        d = objCampo.value;
        l = d.length;
        r = '';

        if(l > 0)
        {
           z = d.substr(0, l);
           s = '';
           a = 0;

           for(i = 0; i < l; i++)
           {
              c = d.charAt(i);
              if(n.indexOf(c) > a)
              {
                 a = -1;
                 s += c;
              }
              ;
           }
           ;

           l = s.length;
           t = len - 1;
           if(l > t)
           {
              l = t;
              s = s.substr(0, t);
           }
           if(l > 2)
           {
              r = s.substr(0, l - 2) + ',' + s.substr(l - 2, 2);
           }
           else
           {
              if(l == 2)
              {
                 r = '0,' + s;
              }
              else
              {
                 if(l == 1)
                 {
                    r = '0,0' + s;
                 }
              }
           }
           if(r == '')
           {
              r = '0,00';
           }
           else
           {
              l = r.length;
              if(l > 6)
              {
                 j = l % 3;
                 w = r.substr(0, j);
                 wa = r.substr(j, l - j - 6);
                 wb = r.substr(l - 6, 6);
                 if(j > 0)
                 {
                    w += '.';
                 }
                 ;
                 k = (l - j) / 3 - 2;
                 for(i = 0; i < k; i++)
                 {
                    w += wa.substr(i * 3, 3) + '.';
                 }
                 ;
                 r = w + wb;
              }
           }
        }
        if(cur.value.length == len || cur.value.length > len)
        {
           cur.value = cur.value.substring(0, len);
           return false;
        }
        else
        {
           if(r.length <= len)
           {
              cur.value = r;
           }
           else
           {
              cur.value = z;
           }
           ;
        }
        break;
  }
}



function valida_email(email)
{
  email = email.value = trim(email.value);
  if(email == null)
  {
     return false;
  }

  if(email == '')
  {
     return true;
  }

  var atPos = email.indexOf("@");

  if(
  atPos < 1 ||
  email.indexOf(".", atPos) == - 1
  )
  {
     return false
  }

  var login = email.substring(0, atPos);
  var domain = email.substring(atPos + 1, email.length);

  // Regexp declarations
  var atom = "\[^\\s\\(\\)><@,;:\\\\\\\"\\.\\[\\]\]+";
  var word = "(" + atom + "|(\"[^\"]*\"))";
  var loginRE = new RegExp("^" + word + "(\\." + word + ")*$");

  for(i = 0; i < login.length; i++)
  {
     if(login.charCodeAt(i) > 127)
     {
        return false;
     }
  }

  if(!login.match(loginRE))
  {
     return false;
  }

  return this.valida_dominio(domain);
}


function validacpf(theCPF)
{

  var cpf = somente_numero(theCPF.value);

  if (cpf == "")
  {
    alert("Campo inválido. É necessário informar o CPF ou CNPJ");
    theCPF.focus();
    return (false);
  }
  if (((cpf.length == 11) && (cpf == 11111111111) || (cpf == 22222222222) || (cpf == 33333333333) || (cpf == 44444444444) || (cpf == 55555555555) || (cpf == 66666666666) || (cpf == 77777777777) || (cpf == 88888888888) || (cpf == 99999999999) || (cpf == 00000000000)))
  {
    alert("CPF ou CNPJ inválido");
    theCPF.focus();
    return (false);
  }


  if (!((cpf.length == 11) || (cpf.length == 14)))
  {
    alert("CPF ou CNPJ inválido");
    theCPF.focus();
    return (false);
  }

  var checkOK = "0123456789";
  var checkStr = cpf;
  var allValid = true;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("Favor preencher somente com dígitos o campo CPF/CNPJ.");
    theCPF.focus();
    return (false);
  }

  var chkVal = allNum;
  var prsVal = parseFloat(allNum);
  if (chkVal != "" && !(prsVal > "0"))
  {
    alert("CPF não pode ser zerado");
    theCPF.focus();
    return (false);
  }

if (cpf.length == 11)
{
  var tot = 0;

  for (i = 2;  i <= 10;  i++)
    tot += i * parseInt(checkStr.charAt(10 - i));

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(9)))
  {
    alert("CPF ou CNPJ inválido");
    theCPF.focus();
    return (false);
  }

  tot = 0;

  for (i = 2;  i <= 11;  i++)
    tot += i * parseInt(checkStr.charAt(11 - i));

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(10)))
  {
    alert("CPF ou CNPJ inválido");
    theCPF.focus();
    return (false);
  }
}
else
{
  var tot  = 0;
  var peso = 2;

  for (i = 0;  i <= 11;  i++)
  {
    tot += peso * parseInt(checkStr.charAt(11 - i));
    peso++;
    if (peso == 10)
    {
        peso = 2;
    }
  }

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(12)))
  {
    alert("CPF ou CNPJ inválido.");
    theCPF.focus();
    return (false);
  }

  tot  = 0;
  peso = 2;

  for (i = 0;  i <= 12;  i++)
  {
    tot += peso * parseInt(checkStr.charAt(12 - i));
    peso++;
    if (peso == 10)
    {
        peso = 2;
    }
  }

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(13)))
  {
    alert("CPF ou CNPJ inválido");
    theCPF.focus();
    return (false);
  }
}
  return(true);
}


function valida_minimo(objCampo, valorMinimo)
{
  valorMinimo = parseInt(valorMinimo);
  return(!(objCampo.value.length < valorMinimo));
}


function valida_maximo(objCampo, valorMaximo)
{
  valorMaximo = parseInt(valorMaximo);
  return(!(objCampo.value.length > valorMaximo));
}

function valida(objCampo, mensagem)
{
  if (objCampo.value == "") {
  alert(mensagem);
  objCampo.focus();
  return false;
  }
  else
  {
  return true;
  }
}

function verdata(pObj, obrig) {
  var expReg = /^((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 aRet = true;
  if (pObj.value == '' && obrig == false) return true;

  if ((pObj) && (pObj.value.match(expReg)) && (pObj.value != '')) {
    var dia = pObj.value.substring(0,2);
    var mes = pObj.value.substring(3,5);
    var ano = pObj.value.substring(6,10);
    if (ano < 1500)
      aRet = false;
      else
    if ((mes == 4 || mes == 6 || mes == 9 || mes == 11 ) && dia > 30)
      aRet = false;
      else
      if ((ano % 4) != 0 && mes == 2 && dia > 28)
        aRet = false;
      else
        if ((ano%4) == 0 && mes == 2 && dia > 29)
          aRet = false;
  }  else {
    aRet = false;
  }
  if (aRet == false) {
  alert("Data inválida");
  pObj.focus();
  }
  return aRet;
}
