// JavaScript Document

	function FormataCNPJ(e, TeclaPres) {
    	var tecla = TeclaPres.keyCode;
    	var vr;
    	var tam;
    	var TamanhoMaximo = 14;
 
		vr = e.value;
    	vr = vr.replace("/", "");
    	vr = vr.replace("/", "");
    	vr = vr.replace("/", "");
    	vr = vr.replace(",", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace(".", "");
    	vr = vr.replace("-", "");
    	vr = vr.replace("-", "");
    	vr = vr.replace("-", "");
    	vr = vr.replace("-", "");
    	vr = vr.replace("-", "");
    	tam = vr.length;

		if (tam < TamanhoMaximo && tecla != 8) {
			tam = vr.length + 1;
    	}
    	if (tecla == 8) {
			tam = tam - 1;
    	}
    	if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) {
      		if (tam <= 2) {
				e.value = vr;
      		}
       		if ((tam > 2) && (tam <= 6)) {
				e.value = vr.substr(0, tam - 2) + '-' + vr.substr(tam - 2, tam);
       		}
       		if ((tam >= 7) && (tam <= 9)) {
				e.value = vr.substr(0, tam - 6) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam);
      		}
       		if ((tam >= 10) && (tam <= 12)) {
				e.value = vr.substr(0, tam - 9) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam);
      		}
			if ((tam >= 13) && (tam <= 14)) {
				e.value = vr.substr(0, tam - 12) + '.' + vr.substr(tam - 12, 3) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam);
			}
       		if ((tam >= 15) && (tam <= 17)) {
				e.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + '-' + vr.substr(tam - 2, tam);
			}
		}
	}
	
 function formataData(x,tecla){
        separador="/"; // Você pode definir o separador. Ex: "/" ou "-" ou "."
        tecla=tecla.keyCode; // Identifica a tecla, caso seja backspace
        valor=x.value.split(''); // Pega o valor do campo e transforma cada caractere em uma string
        formatado=""; // Variável para carregar formatação temporariamente
        i=0; // variável de controle
        while(i<valor.length) {
            caractere=valor[i];
            numeros=/^\d+$/; // Variavel contendo números positivos

			if(numeros.test(caractere) || caractere==separador){ formatado+=String(caractere); }
            if((formatado.length==2 || formatado.length==5) && tecla!=8){ formatado+=separador; i++; }
            i++;
        }
        x.value=formatado;
    }	

 	function formataDIDADSI(x,tecla){
	 	if (x.value.replace(" ","") == "") { return; }
	 
        separador="/"; // Você pode definir o separador. Ex: "/" ou "-" ou "."
        tecla=tecla.keyCode; // Identifica a tecla, caso seja backspace
        valor=x.value.split(''); // Pega o valor do campo e transforma cada caractere em uma string
        formatado=""; // Variável para carregar formatação temporariamente
        i=0; // variável de controle
        while(i<valor.length) {
            caractere=valor[i];
            numeros=/^\d+$/; // Variavel contendo números positivos

			if(numeros.test(caractere) || caractere==separador){ formatado+=String(caractere); }
            if((formatado.length==2) && tecla!=8){ formatado+="/"; i++; }
            if((formatado.length==10) && tecla!=8){ formatado+="-"; i++; }
            i++;
        }
        x.value=formatado;
    }	

 	function formataREDSE(x,tecla){
	 	if (x.value.replace(" ","") == "") { return; }
	 
        separador="/"; // Você pode definir o separador. Ex: "/" ou "-" ou "."
        tecla=tecla.keyCode; // Identifica a tecla, caso seja backspace
        valor=x.value.split(''); // Pega o valor do campo e transforma cada caractere em uma string
        formatado=""; // Variável para carregar formatação temporariamente
        i=0; // variável de controle
        while(i<valor.length) {
            caractere=valor[i];
            numeros=/^\d+$/; // Variavel contendo números positivos

			if(numeros.test(caractere) || caractere==separador){ formatado+=String(caractere); }
            if((formatado.length==2) && tecla!=8){ formatado+="/"; i++; }
            if((formatado.length==10) && tecla!=8){ formatado+="-"; i++; }
            i++;
        }
        x.value=formatado;
    }	

 	function formataNumeros(x,tecla){
	 	if (x.value.replace(" ","") == "") { return; }
	 
        tecla=tecla.keyCode; // Identifica a tecla, caso seja backspace
        valor=x.value.split(''); // Pega o valor do campo e transforma cada caractere em uma string
        formatado=""; // Variável para carregar formatação temporariamente
        i=0; // variável de controle
        while(i<valor.length) {
            caractere=valor[i];
            numeros=/^\d+$/; // Variavel contendo números positivos

			if(numeros.test(caractere)){ formatado+=String(caractere); }
            i++;
        }
        x.value=formatado;
    }	

 	function formataNReferencia(x,tecla){
	 	if (x.value.replace(" ","") == "") { return; }
	 
        separador="/"; // Você pode definir o separador. Ex: "/" ou "-" ou "."
        tecla=tecla.keyCode; // Identifica a tecla, caso seja backspace
        valor=x.value.split(''); // Pega o valor do campo e transforma cada caractere em uma string
        formatado="WB"; // Variável para carregar formatação temporariamente
        i=0; // variável de controle
        while(i<valor.length) {
            caractere=valor[i];
            numeros=/^\d+$/; // Variavel contendo números positivos

			if(numeros.test(caractere) || caractere==separador){ formatado+=String(caractere); }
            if((formatado.length==6) && tecla!=8){ formatado+="/"; i++; }
            i++;
        }
        x.value=formatado;
    }	

	function validarData(campo) {
		var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
		if ((campo.value.match(expReg)) && (campo.value!='')) {
			var dia = campo.value.substring(0,2);
			var mes = campo.value.substring(3,5);
			var ano = campo.value.substring(6,10);
			if((mes==4 || mes==6 || mes==9 || mes==11) && Number(dia) > 30) {
				return false;
			} else {
				if(ano%4!=0 && mes==2 && dia>28) {
					return false;
				} else {
					if(ano%4==0 && mes==2 && dia>29) {
						return false;
					} else {
						return true; /* data válida */
					}
				}
			}
		} else {
			/* formato inválido */
			return false;
		}
	}
