// Javascript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
         if(mascaraInteiro(cnpj)==false){
               event.returnValue = false;
               }
         return formataCampo(cnpj, '00.000.000/0000-00', event);
}

//adiciona mascara de cep
function MascaraCep(cep){
             if(mascaraInteiro(cep)==false){
             event.returnValue = false;
         }
         return formataCampo(cep, '00.000-000', event);
}
//adiciona mascara de data
function MascaraData(data){
           if(mascaraInteiro(data)==false){
           event.returnValue = false;
         }
         return formataCampo(data, '0000', event);
}
//adiciona mascara ao telefone
function MascaraTelefone(tel){
            if(mascaraInteiro(tel)==false){
                   event.returnValue = false;
         }
         return formataCampo(tel, '(00) 0000-0000', event);
}
//adiciona mascara ao CPF
function MascaraCPF(cpf){
            if(mascaraInteiro(cpf)==false){
            event.returnValue = false;
         }
         return formataCampo(cpf, '000.000.000-00', event);
}
//adiciona mascara a Identidade
function MascaraID(id){
            if(mascaraInteiro(id)==false){
            event.returnValue = false;
         }
         return formataCampo(id, '0.000.000', event);
}
//valida telefone
function ValidaTelefone(tel){
         exp = /\(\d{2}\)\ \d{4}\-\d{4}/
         if(!exp.test(tel.value))
                    alert('Numero de Telefone Inválido!');
}
//valida CEP
function ValidaCep(cep){
         exp = /\d{2}\.\d{3}\-\d{3}/
         if(!exp.test(cep.value))
                    alert('Numero de Cep Inválido!');
}
//valida data
function ValidaData(data){
         exp = /\d{2}\/\d{2}\/\d{4}/
         if(!exp.test(data.value))
                    alert('Data Inválida!');
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
         var cpf = Objcpf.value;
         exp = /\.|\-/g
         cpf = cpf.toString().replace( exp, "" );
         var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
         var soma1=0, soma2=0;
         var vlr =11;
         for(i=0;i<9;i++){
             soma1+=eval(cpf.charAt(i)*(vlr-1));
             soma2+=eval(cpf.charAt(i)*vlr);
             vlr--;
         }
         soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
         soma2=(((soma2+(2*soma1))*10)%11);

         var digitoGerado=(soma1*10)+soma2;
         if(digitoGerado!=digitoDigitado){
         alert('CPF inválido, digite novamente!');
		 Objcpf.value = '';
		if (form1.cpf.value == ""){
			form1.cpf.focus();
		return (false); 
		}	
		 }
}
//valida numero inteiro com mascara
function mascaraInteiro(){
         if (event.keyCode < 48 || event.keyCode > 57){
                           event.returnValue = false;
                           return false;
                      }
                      return true;
}
//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
         var cnpj = ObjCnpj.value;
         var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
         var dig1= new Number;
         var dig2= new Number;

         exp = /\.|\-|\//g
         cnpj = cnpj.toString().replace( exp, "" );
         var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
         for(i = 0; i<valida.length; i++){
               dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
               dig2 += cnpj.charAt(i)*valida[i];
         }
         dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
         dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));

         if(((dig1*10)+dig2) != digito)
         alert('CNPJ Inválido, digite novamente!');
		 Objcpf.value = "";
}
//formata de forma generica os campos
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) == " "))

                     if (boleanoMascara) {
                        NovoValorCampo += Mascara.charAt(i);
                                       TamanhoMascara++;
                     }else {
                           NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
                           posicaoCampo++;
                           }
                     }
                     campo.value = NovoValorCampo;
                                 return true;
               }else {
                     return true;
               }
}
          //  Formata Campos
			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;
            }
            }
            //Fim da Função Máscaras Gerais


function Limpar(valor, validos) {
// retira caracteres invalidos da string
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
result += aux;
}
}
return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && 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 <= dec )
{ campo.value = vr ; }

if ( (tam > dec) && (tam <= 5) ){
campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 6) && (tam <= 8) ){
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
}
if ( (tam >= 9) && (tam <= 11) ){
campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 12) && (tam <= 14) ){
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 15) && (tam <= 17) ){
campo.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 ) ;}
} 

}
