/////////////////////////////////////////////////////////////////////////////
// \file mascara.js
// \author Ciro Luiz Araujo Ceissler
// \brief
// <BR>
// Data de Criacao do Modulo: 13/01/2011 17:25
// <BR>
// Descricao: Máscara para <input>
/////////////////////////////////////////////////////////////////////////////

//***************************************************************************
//* Variáveis           													*
//***************************************************************************
var obj;

//***************************************************************************
//* Corpo da funções locais                                                 *
//***************************************************************************

/////////////////////////////////////////////////////////////////////////////
// \brief Máscara genérica.
/////////////////////////////////////////////////////////////////////////////
function mascara(o,f)
{
    obj = o;
	v_obj=o;
	v_fun=f;	
	setTimeout("execmascara()",0);	
}

/////////////////////////////////////////////////////////////////////////////
// \brief Execução da máscara.
///////////////////////////////////////////////////////////////////////////// 
function execmascara()
{
    v_obj.value=v_fun(v_obj.value);
}

/////////////////////////////////////////////////////////////////////////////
// \brief Só retornar números.
///////////////////////////////////////////////////////////////////////////// 
function soNumeros(v)
{
	return v.replace(/\D/g,"");	
}


function cpfCnpj(v)
{
	//CPF
	if (v.length <= 14) 
	{
		//Remove tudo o que não é dígito
		v=v.replace(/\D/g,"");
		//Coloca um ponto entre o terceiro e o quarto dígitos
		v=v.replace(/(\d{3})(\d)/,"$1.$2");		
		//Coloca um ponto entre o terceiro e o quarto dígitos
		//de novo (para o segundo bloco de números)
		v=v.replace(/(\d{3})(\d)/,"$1.$2");
		//Coloca um hífen entre o terceiro e o quarto dígitos
		v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2");
	} 
	else //CNPJ
	{ 
		//Remove tudo o que não é dígito
		v=v.replace(/\D/g,"");
		//Coloca ponto entre o segundo e o terceiro dígitos
		v=v.replace(/^(\d{2})(\d)/,"$1.$2");
		//Coloca ponto entre o quinto e o sexto dígitos
		v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3");
		//Coloca uma barra entre o oitavo e o nono dígitos
		v=v.replace(/\.(\d{3})(\d)/,".$1/$2");
		//Coloca um hífen depois do bloco de quatro dígitos
		v=v.replace(/(\d{4})(\d)/,"$1-$2");
	}

	return v
}
