// JavaScript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj,e){
    if(mascaraInteiro(getEvent(e))==false){
		functionValue(getEvent(e));
    }    
    return formataCampo(cnpj, '00.000.000/0000-00', getEvent(e));
}

//adiciona mascara de cep
function MascaraCep(cep,e){
        if(mascaraInteiro(getEvent(e))==false){
		functionValue(getEvent(e));
    }    
    return formataCampo(cep, '00000-000', getEvent(e));
}

//adiciona mascara de data
function MascaraData(data,e){
    if(mascaraInteiro(getEvent(e))==false){
		functionValue(getEvent(e));
    }    
    return formataCampo(data, '00/00/0000', getEvent(e));
}

//adiciona mascara ao telefone
function MascaraTelefone(tel,e){
	if($F(tel) != ''){
    if(mascaraInteiro(getEvent(e))==false){
		functionValue(getEvent(e));
    }    
    return formataCampo(tel, '(00) 0000-0000', getEvent(e));
	}
}

//adiciona mascara ao CPF
function MascaraCPF(cpf,e){
    if(mascaraInteiro(getEvent(e))==false){
		functionValue(getEvent(e));
    }    
    return formataCampo(cpf, '000.000.000-00', getEvent(e));
}

//valida telefone
function ValidaTelefone(tel, rfvID){
    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
	if($F(tel) != ''){
		$(rfvID).style.display = 'none';
	    if(!exp.test($F(tel))){
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(tel).focus();}
			isValid = false;
		}
	}
}

//valida CEP
function ValidaCep(cep, rfvID){
    exp = /\d{5}\-\d{3}/
	if($F(cep) != ''){
		$(rfvID).style.display = 'none';
	    if(!exp.test($F(cep))){
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(cep).focus();}
			isValid = false;
		} 
	}
}

//valida data
function ValidaData(data, rfvID){
    exp = /\d{2}\/\d{2}\/\d{4}/
	if($F(data) != ''){
		$(rfvID).style.display = 'none';
		if(!exp.test($F(data))){
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(data).focus();}
			isValid = false;
		}     
	}
}

function ValidaEmail(mail, rfvID){
    var exp = /^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/
	if($F(mail) != ''){ 
		$(rfvID).style.display = 'none';
		if(!exp.test($F(mail))){ 
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(mail).focus();}
			isValid = false;
		} 
	}
}


//valida o CPF digitado
function ValidarCPF(Objcpf,rfvID){
	
	var cpf = $F(Objcpf);
	
    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);
	if(soma2 ==10)
	{
		soma2 = 0;
	}
    var digitoGerado=(soma1*10)+soma2;
    if(cpf != ''){
		$(rfvID).style.display = 'none';

if(digitoGerado!=digitoDigitado){
			
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(Objcpf).focus();}
			isValid = false;
		}
	}
}

//valida numero inteiro com mascara
function mascaraInteiro(e){
	// Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
	if (getEvent(e).keyCode == 8  ||  getEvent(e).keyCode == 9  ||  getEvent(e).keyCode == 13  ||  getEvent(e).keyCode == 27  ||  getEvent(e).keyCode == 46){
		return true;
	}

	// Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
	else if ((getEvent(e).keyCode >= 35)  &&  (getEvent(e).keyCode <= 40)) {
		return true
	}
	
	// Habilita números de 0 a 9
	else if ((getEvent(e).keyCode >= 48)  &&  (getEvent(e).keyCode <= 57)) {
	    return true
    } 
	else if ((getEvent(e).keyCode >= 95)  &&  (getEvent(e).keyCode <= 105)) {
		return true
	}
	
	else {
		functionValue(getEvent(e));
		return false;
	}
}


function functionValue(e) {
	var browser = navigator.appName;
	if ( browser == "Microsoft Internet Explorer" ) {
		 getEvent(e).returnValue = false;
	}
	else {
		getEvent(e).preventDefault();
	}
}


//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj, rfvID){
    var cnpj = $F(ObjCnpj);
    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(ObjCnpj != ''){
		$(rfvID).style.display = 'none';
		if(((dig1*10)+dig2) != digito){
			if(rfvID){
				$(rfvID).style.display = 'block';
				rfvArray[rfvArray.length] = rfvID;
			}
			if(isValid){$(ObjCnpj).focus();}
			isValid = false;
		}
	}
}


//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;
    }
}
	   
function getEvent(e){
	var ret = e;
	if(window.all){ret = event;}
	return ret;		   
}