
/*	FUNÇÃO DE VALIDAÇÃO DE FORMULÁRIO
	CHAMADA: validar(<objeto>, <função>)
		OBJETO: this
		FUNÇÃO: numeros, decimal, maiusculas, telefone, cpf, cnpj, cep, dia, mes, ano	*/
	function validar(o,f)
	{
		v_obj=o
		v_fun=f
		v_obj.value=v_fun(v_obj.value)
	}



/*	NUMEROS
		CHAMADA: onkeyup="validar(this,numeros)"
		LEGENDA: title="Digite apenas números."	*/
function numeros(v)
{
    return v.replace(/\D/g,"")
}


/*	DECIMAL
		CHAMADA: onkeyup="validar(this,decimal)"
		LEGENDA: title="Digite apenas números, e ponto no caso de decimais. Exemplo: 2.05"	*/
function decimal(v)
{
	v=v.replace(/,/gi,"."); // substitui virgula por ponto
	v=v.replace(/[^0-9\.\-]/gi,""); // retira qualquer caractere que não for numero ou ponto
	return v;
}


/*	MAIUSCULAS
		CHAMADA: onkeyup="validar(this,maiusculas)"
		LEGENDA: title="Digite apenas letras maiúsculas."	*/
function maiusculas(v)
{
	return v.replace(v,v.toUpperCase())
}


/*	TELEFONE
		CHAMADA: onkeypress="validar(this,telefone)"
		LEGENDA: title="Digite apenas números, informando o código de área na frente do seu número de telefone. O número será auto-formatado."	*/
function telefone(v)
{
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}


/*	CPF
		CHAMADA: onkeypress="validar(this,cpf)"
		LEGENDA: title="Digite apenas números. Seu CPF será auto-formatado."	*/
function cpf(v)
{
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //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})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}


/*	CEP
		CHAMADA: onkeypress="validar(this,cep)"
		LEGENDA: title="Digite apenas números. Seu CEP será auto-formatado."	*/
function cep(v)
{
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
}


/*	CNPJ
		CHAMADA: onkeypress="validar(this,cnpj)"
		LEGENDA: title="Digite apenas números. Seu CNPJ será auto-formatado." 	*/
function cnpj(v)
{
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}


/*	DIA
		CHAMADA: onblur="validar(this,dia)"
		LEGENDA: title="Digite apenas números de 1 a 31."	*/
function dia(v)
{
	if((v > 31 || v < 1) && v != ""){
		alert('O dia informado é inválido. Informe um dia entre 1 e 31.')
		v = ""
	}
	return v.replace(/\D/g,"")
}


/*	MES
		CHAMADA: onblur="validar(this,mes)"
		LEGENDA: title="Digite apenas números de 1 a 12." 	*/
function mes(v)
{
	if((v > 12 || v < 1) && v != ""){
		alert('O mês informado é inválido. Informe um mês entre 1 e 12.')
		v = ""
	}
	return v.replace(/\D/g,"")
}


/*	ANO
		CHAMADA: onblur="validar(this,ano)"
		LEGENDA: title="Digite apenas números, no formato de 4 dígitos. Exemplo: 2008"	*/
function ano(v)
{
	if((v > 3000 || v < 1900) && v != ""){
		alert('O ano informado é inválido. Informe o ano com 4 dígitos. Exemplo: 2008')
		v = ""
	}
	return v.replace(/\D/g,"")
}