/*** 

* Descrição.: formata um campo do formulário de 

* acordo com a máscara informada... 

* Parâmetros: - objForm (o Objeto Form) 

* - strField (string contendo o nome 

* do textbox) 

* - sMask (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... 

* - evtKeyPress (evento) 

* Uso.......: <input type="textbox" 

* name="xxx"..... 

* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 

* Observação: 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 Resid -> (99) 999-9999 

* Tel Cel -> (99) 9999-9999 

* Processo -> 99.999999999/999-99 

* C/C -> 999999-! 

* E por aí vai... 

***/



function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {

var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;



if(document.all) { // Internet Explorer

nTecla = evtKeyPress.keyCode; }

else if(document.layers) { // Nestcape

nTecla = evtKeyPress.which;

}

else if(document.getElementsByTagName('body')) { // Fire fox by Allan Rodrigues

nTecla = evtKeyPress.which;

}



sValue = objForm[strField].value;



// Limpa todos os caracteres de formatação que

// já estiverem no campo.

sValue = sValue.toString().replace( /-/g, "" );
sValue = sValue.toString().replace( /\./g, "" );
sValue = sValue.toString().replace( /\//g, "" );
sValue = sValue.toString().replace( /\(/g, "" );
sValue = sValue.toString().replace( /\)/g, "" );
sValue = sValue.toString().replace( / /g, "" );
sValue = sValue.toString().replace( /\:/g, "" );

fldLen = sValue.length;

mskLen = sMask.length;



i = 0;

nCount = 0;

sCod = "";

mskLen = fldLen;



while (i <= mskLen) {

bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == "\:"))

bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))



if (bolMask) {

sCod += sMask.charAt(i);

mskLen++; }

else {

sCod += sValue.charAt(nCount);

nCount++;

}



i++;

}



objForm[strField].value = sCod;



if (nTecla != 8) { // backspace

if (sMask.charAt(i-1) == "9") { // apenas números...

return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9

else { // qualquer caracter...

return true;

} }

else {

return true;

}

}



function mskInscricao(f,n,e) {
	var msk = '';
	switch(e.value) {
		case 'AC' : msk= '99.999.999/999-99'; break;
		case 'AL' : msk= '999999999'; break;
		case 'AP' : msk= '999999999'; break;
		case 'AM' : msk= '99.999.999-9'; break;
		case 'BA' : msk= '999999-99'; break;
		case 'CE' : msk= '99999999-9'; break;
		case 'DF' : msk= '99999999999-99'; break;
		case 'ES' : msk= '999999999'; break;
		case 'GO' : msk= '99.999.999-9'; break;
		case 'MA' : msk= '999999999'; break;
		case 'MT' : msk= '9999999999-9'; break;
		case 'MS' : msk= '999999999'; break;
		case 'MG' : msk= '999.999.999/9999'; break;
		case 'PB' : msk= '99999999-9'; break;
		case 'PR' : msk= '99999999-99'; break;
		case 'PA' : msk= '99-999999-9'; break;
		case 'PE' : msk= '99.9.999.9999999-9'; break;
		case 'PI' : msk= '999999999'; break;
		case 'RJ' : msk= '99.999.99-9'; break;
		case 'RN' : msk= '99.999.999-9'; break;
		case 'RS' : msk= '999/9999999'; break;
		case 'RO' : msk= '999.99999-9'; break;
		case 'RR' : msk= '99999999-9'; break;
		case 'SC' : msk= '999.999.999'; break;
		case 'SP' : msk= '999.999.999.999'; break;
		case 'SE' : msk= '999999999-9'; break;
		case 'TO' : msk= '99999999999'; break;
	}
	msk+='9999';
	return txtBoxFormat(f, n, ''+msk+'', event);	
}

