/***
* Descriçao.: formata um campo do formulário de
* acordo com a máscara informada...
*
* Parâmetros: 
*
* - form (o Objeto Form)
* 
* - campo (string contendo o nome
* do textbox)
* 
* - mascara (mascara que define o
* formato que o dado será apresentado,
* usando o algarismo "9" para
* definir números e o símbolo "!" para
* qualquer caracter...
* 
* - evento (evento - OnKeyPress, OnKeyDown, OnKeyUp)
*
* Observaçao: As máscaras podem ser representadas como os exemplos abaixo:
* CEP -> 99.999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* Data -> 99/99/9999
* Tel -> (99) 9999-9999
* Processo -> 99.999999999/999-99
* RG -> 9.999.999
* etc...
***/

function mascarar(form, campo, mascara, evento) {
var i, contador, string_valor, campo_tamanho, mascara_tamanho, bolMask, sCod, char;

if(document.all) { // Internet Explorer
char = evento.keyCode; }
else if(document.layers) { // Nestcape
char = evento.which;
} else if(document.getElementById) { // FireFox
char = evento.which;
}

string_valor = form[campo].value;

// Limpa todos os caracteres de formataçao que
// já estiverem no campo.
string_valor = string_valor.toString().replace( "-", "" );
string_valor = string_valor.toString().replace( "-", "" );
string_valor = string_valor.toString().replace( ".", "" );
string_valor = string_valor.toString().replace( ".", "" );
string_valor = string_valor.toString().replace( "/", "" );
string_valor = string_valor.toString().replace( "/", "" );
string_valor = string_valor.toString().replace( "(", "" );
string_valor = string_valor.toString().replace( "(", "" );
string_valor = string_valor.toString().replace( ")", "" );
string_valor = string_valor.toString().replace( ")", "" );
string_valor = string_valor.toString().replace( " ", "" );
string_valor = string_valor.toString().replace( " ", "" );
campo_tamanho = string_valor.length;
mascara_tamanho = mascara.length;

i = 0;
contador = 0;
sCod = "";
mascara_tamanho = campo_tamanho;

while (i <= mascara_tamanho) {
bolMask = ((mascara.charAt(i) == "-") || (mascara.charAt(i) == ".") || (mascara.charAt(i) == "/"))
bolMask = bolMask || ((mascara.charAt(i) == "(") || (mascara.charAt(i) == ")") || (mascara.charAt(i) == " "))

if (bolMask) {
sCod += mascara.charAt(i);
mascara_tamanho++; }
else {
sCod += string_valor.charAt(contador);
contador++;
}

i++;
}

if (char != 8) { // backspace e tab
form[campo].value = sCod;
if (mascara.charAt(i-1) == "9") { // apenas números...
return ((char > 47) && (char < 58)); } // números de 0 a 9
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}
//Fim da Funçao Máscaras Gerais