/**********************************************************************
* Autor: Tulio J Silva
* Email: tuliojs@yahoo.com.br
* Data: Monday, July 21, 2003 10:38:01 AM
*
* 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 -> 99999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* IE -> 999.999.999.999
* C/C -> 999999-!
* Tel -> (99) 9999-9999
*
*************************************************************************/

/************************************************************************
* FUNÇÃO: txtBoxCleanField(strField);
* Responsabilidade: Tirar os caracteres -./)( da string que for passada
*************************************************************************/
function txtBoxCleanField(strField)
{
	sValue = strField.value;
	// Limpa todos os caracteres de formatação que já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );		
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );		
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );	
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );	
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );			
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );	
	strField.value = sValue;
}


/**********************************************************************************
* FUNÇÃO: txtBoxFormat(objForm, strField, sMask, evtKeyPress);
* Responsabilidade: Coloca a mascara no field passado
**********************************************************************************/
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;
	}

	sValue = objForm[strField].value;
	
	// Limpa todos os caracteres de formatação que já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	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) == "/"))
		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;
	}
}


/**********************************************************************************
* FUNÇÃO: txtBoxFormat(objForm, strField, sMask);
* Responsabilidade: Coloca a mascara no field passado
**********************************************************************************/
function txtBoxFormat(objForm, strField, sMask) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	sValue = objForm[strField].value;
	
	// Limpa todos os caracteres de formatação que já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	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) == "/"))
		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;
}
