/*Arquivo de validações e Mascaras de campos*/
//Validação de campos vazios.
function ValidaCamposVazios(botao, email, cpf){
	var btnName = botao.name;
	if(btnName.toLowerCase() == "cadastrar"){
		var txtEmail = document.getElementById("txtEmailCad");
		var txtCpf = document.getElementById("txtCpfCad");
		valido = "";
		if(txtEmail.value == "" && txtCpf.value == ""){
			alert("Informe seu Email e CPF para entrar no cadastro.");
			txtEmail.select();
			valido = false;
		} else if(txtEmail.value == ""){
			alert("Informe seu Email para entrar no cadastro.");
			txtEmail.select();
			valido = false;
		} else if(txtCpf.value == ""){
			alert("Informe seu CPF para entrar no cadastro.");
			txtCpf.select();
			valido = false;
		}else if (!ValidaEmail(email) || !ValidarCPF(cpf)){
			valido = false;
		} else{
			valido = true;
		}
	}
	
	return valido;
}
//função que valida um email.
function ValidaEmail(email){
	valido = "";
    var str = email.value;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{3,6}(?:\.[a-z]{2})?)$/i;
	if(str!=""){
		if(filter.test(str))
			valido = true;
		else{
			alert("E-mail inválido!");
			valido = false;
			email.select();
		}
	}
	return valido;
}

//adiciona mascara ao CPF
function MascaraCPF(cpf, e){
	if(mascaraInteiro(cpf, e)==false){
		if (e.preventDefault){ //standart browsers
			e.preventDefault();
		}else{ // internet explorer
			e.returnValue = false;
		}
	}
	return formataCampo(cpf, '000.000.000-00', e);
}

//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(cpf != ""){
		if(digitoGerado!=digitoDigitado){       
			alert('CPF Invalido!');
			Objcpf.select();
			return false;
		}
	}
	return true;
}

//valida numero inteiro com mascara
function mascaraInteiro(cpf, e){
	if (window.event){
        if (event.keyCode < 48 || event.keyCode > 57){ //IE
                event.returnValue = false;
                return false;
        }
	}else{
		if(e.which < 48 || e.which > 57){ //Firefox
			e.returnValue = false;
			return false;
		}
	}
    return true;
}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) { 
	var boleanoMascara;
	var Digitato;
	if(window.event){
		Digitato = evento.keyCode; //IE
	}else{
		Digitato = evento.which; //Firefox
	}
	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; 
	}
}
