/************************************************************************************************ 
* Descricao: Formata um campo do formulrio de acordo com os parmetros do segundo script.
* Autor: http://www.freecode.com.br/forum/lofiversion/index.php/t6463.html (sockentel)
* Adaptado por: VISNET (www.visnet.com.br) | Daniel Amaral (daniel@visnet.com.br)
* 
* Parametros: Pode criar mscaras utilizando os seguintes caracteres: - , ; : . / ( ) espaço
* "#" - Numeros
* "A" - Letras UpperCase
* "a" - Letras LowerCase
* "Z" - Letras
* "*" - Qualquer Caracter
* Ex.: function MaskTelefone(objeto, evt) { return Mascara(objeto, evt, '(##) ####-####'); }
*
* Uso: onkeypress="return MaskTelefone(this, event)" 
*
* Observação: As mascaras podem ser representadas como os exemplos abaixo:
* CEP  -> ##.###-###
* CPF  -> ###.###.###-##
* CNPJ -> ##.###.###/####-##
* Data -> ##/##/####
* Teld -> (##) ###-####
* Hora -> ##:##:##
************************************************************************************************/

function Mascara(objeto, evt, mask) {
 
var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var Numeros = '0123456789';
var Fixos   = '().-:/ ';
var Charset = '!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~';

evt = (evt) ? evt : (window.event) ? window.event : "";
var value = objeto.value;
if (evt) {
 var ntecla = (evt.which) ? evt.which : evt.keyCode;
 tecla = Charset.substr(ntecla - 33, 1);
 if (ntecla < 32) return true;

 var tamanho = value.length;
 if (tamanho >= mask.length) return false;

 var pos = mask.substr(tamanho,1);
 while (Fixos.indexOf(pos) != -1) {
  value += pos;
  tamanho = value.length;
  if (tamanho >= mask.length) return false;
  pos = mask.substr(tamanho,1);
 }

 switch (pos) {
   case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
   case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
   case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
   case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
   case '*' : objeto.value = value; return true; break;
   default : return false; break;
 }
}
objeto.value = value;
return true;
}


/******************************************************
   P A R A M E T R O S   D A S   M A S C A R A S
******************************************************/

function MaskCEP(objeto, evt) {
return Mascara(objeto, evt, '#####-###');
}

function MaskTelefone(objeto, evt) {
return Mascara(objeto, evt, '(##) ####-####');
//return Mascara(objeto, evt, '(**) ****-****');
}

function MaskCPF(objeto, evt) {
return Mascara(objeto, evt, '###.###.###-##');
}

function MaskCNPJ(objeto, evt) {
return Mascara(objeto, evt, '###.###.###/####-##');
}

function MaskPlacaCarro(objeto, evt) {
return Mascara(objeto, evt, 'AAA-####');
}

function MaskData(objeto, evt) {
return Mascara(objeto, evt, '##/##/####');
}