// Início - Retorno código da tecla.
function returnkey(e) {
	if (document.all)
		return e.keyCode//return e.keyCode
	else
		return e.which//return e.which
}
// Fim - Retorno código da tecla.

// Início - Trata entrada de dados.
function mascaraInteiro(tecla){
	if ((tecla < 48 || tecla > 57) && (tecla != 0) && (tecla != 8) && (tecla != 13)){
		//alert('false');
		return false;
    } else {
		return true;
	}
}
// Fim - Trata entrada de dados.

// Início - Trata entrada de dados.
function mascaraValor(tecla){
	if ((tecla < 48 || tecla > 57) && (tecla != 0) && (tecla != 8) && (tecla != 44) && (tecla != 13)){
		//alert('false');
		return false;
    } else {
		return true;
	}
}
// Fim - Trata entrada de dados.

// Início - Mascarador de campos.
function Mascarador(campo,e,mascara) {
	var tecla = returnkey(e)
	if((mascaraInteiro(tecla)==false) || (tecla == 9)){
        e.returnValue = false;
		return false;
    } else {
	    return formataCampo(campo, mascara, e);
	}
}
// Fim - Mascarador de campos.

// Início - Aplica a Formatação.
function formataCampo(campo, Mascara, evento) {
    var boleanoMascara;

    var Digitato = evento.keyCode;
    exp = /\-|\.|\/|\(|\)|\:| /g
    campoSoNumeros = campo.value.toString().replace( exp, "" );

    var posicaoCampo = 0;    
    var NovoValorCampo="";
    var TamanhoMascara = campoSoNumeros.length;

    if (Digitato != 8) { // backspace
        for(i=0; i<= TamanhoMascara; i++) {
            boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
                              || (Mascara.charAt(i) == "/"))
            boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(")
                              || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " ")
							  || (Mascara.charAt(i) == ":"))
            if (boleanoMascara) {
                NovoValorCampo += Mascara.charAt(i);
                  TamanhoMascara++;
            } else {
                NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
                posicaoCampo++;
              }           
          }    
        campo.value = NovoValorCampo;
          return true;
    } else {
        return true;
    }
}
// Fim - Aplica a Formatação.

// Início - CFP ou CNPJ.
//TAG: size="39" maxlength="19" onKeyPress="return mascaraInteiro(returnkey(event));" onKeyUp="cpfcnpj(this,event);"
function cpfcnpj(obj,evento) {
	var valor = obj.value.replace(/\./ig,'');
	valor = valor.replace(/\//ig,'');
	valor = valor.replace(/\-/ig,'');

	if (valor.length == 11){
		void formataCampo(obj, '000.000.000-00', evento)
	} else if(valor.length == 14) {
		void formataCampo(obj, '00.000.000/0000-00', evento)
	} else if(valor.length == 15) {
		void formataCampo(obj, '000.000.000/0000-00', evento)
	} 
}
// Fim - CFP ou CNPJ.