function mascaraCNPJ(event, cnpj){
  event = event?event:window.event;
  if(mascaraInteiro(event)==false){
    return false;
  }  
  return formataCampo(event, cnpj, "00.000.000/0000-00");
}

function mascaraCPF(event, cpf) {
  event = event?event:window.event;
  if(mascaraInteiro(event)==false){
    return false;
  }  
  return formataCampo(event, cpf, "000.000.000-00");
}

function mascaraCPFCNPJ(event, cpfcnpj) {
  event = event?event:window.event;
  if(mascaraInteiro(event)==false){
    return false;
  }  
  return ((cpfcnpj.value.length>14)?formataCampo(event, cpfcnpj, "00.000.000/0000-00"):formataCampo(event, cpfcnpj, "000.000.000-00"));
}

function mascaraCEP(event, cep){
  event = event?event:window.event;
  if(mascaraInteiro(event)==false){
    return false;
  }
  return formataCampo(event, cep, "00.000-000");
}

function mascaraReal(event, numero){
  event = event?event:window.event;
  if(mascaraInteiro(event)==false||(numero.getAttribute("maxLength")==numero.value.length&&!teclaControle(event))) {
    return false;
  }
  var exp = /\,|\./g;
  var aux = numero.value.toString().replace(exp,"").length-2;
  if (aux<0)
    aux = 1;

  var exp = /\./g;
  var auxStr = "";
  for (var i=0;i<aux+1;i++) {
    if (auxStr.replace(exp,"").length % 3 == 0 && i != 0)
      auxStr = "0." + auxStr;
    else
      auxStr = "0" + auxStr;
  }
  return formataCampo(event, numero, auxStr+",00");
}

function mascaraData(event, data){
  event = event?event:window.event;
  if(mascaraInteiro(event)==false){
    return false;
  }  
  return formataCampo(event, data, "00/00/0000");
}

function mascaraInteiro(event) {
  event = event?event:window.event;
  var tecla = (event.keyCode!=0)?event.keyCode:event.which;
  if ((tecla < 48 || tecla > 57)&&!teclaControle(event)) {
    return false;
  }
  return true;
}

//verifica se está sendo digitado teclas de controle (Alt, Ctrl, etc)
function teclaControle(event) {
  event = event?event:window.event;
  var tecla = (event.keyCode!=0)?event.keyCode:event.which;
  return tecla==8||tecla==9||tecla==13||tecla==27||tecla==35||tecla==36||tecla==37||tecla==39||tecla==46||tecla==116;
}


//formata de forma generica os campos
function formataCampo(event, campo, Mascara) { 
  event = event?event:window.event;
  var boleanoMascara; 
  var Digitato = (event.keyCode!=0)?event.keyCode:event.which;
  exp = /\,|\-|\.|\/|\(|\)| /g
  campoSoNumeros = campo.value.toString().replace(exp,""); 
   
  var posicaoCampo = 0;     
  var NovoValorCampo="";
  var TamanhoMascara = campoSoNumeros.length;; 

  if (Digitato != 8) { // backspace 
    for(i=0; i<= TamanhoMascara; i++) { 
        boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/") || (Mascara.charAt(i) == ","));
        boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));

        if (boleanoMascara) { 
          NovoValorCampo += Mascara.charAt(i); 
            TamanhoMascara++;
        } else { 
          NovoValorCampo += campoSoNumeros.charAt(posicaoCampo); 
          posicaoCampo++; 
        }          
      }   

    campo.value = NovoValorCampo;
    return true; 
  } else { 
    return true; 
  }
}
