// JavaScript Document

function validar_data(obj) {
	if(obj.value != ""){
		var date = obj.value;
		var array_data = new Array;
		var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
		array_data = date.split("/");
		erro = false;
		if ( date.search(ExpReg) == -1 )
			erro = true;
		else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
			erro = true;
		else if ( array_data[1] == 2 ) {
			if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
				erro = true;
			if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
				erro = true;
		}
		
		return !erro;
	}
}

function validar_email(campo_email) {
 if (campo_email.value != '' ) {
	 //Expressão Regular utilizada para validar o endereço de email
	 var ExpReg = /^[a-zA-Z0-9_\.-]{2,}@([A-Za-z0-9_-]{2,}\.)+[A-Za-z]{2,4}$/;
	 if ( !ExpReg.test(campo_email.value) ) {
		 return false;
	 }
	 return true;
 }
}

function validar_cpf(Objcpf)
{
	var numcpf = Objcpf.value;
	exp = /\.|\-/g;
    numcpf = numcpf.toString().replace(exp, "");
	
	x = 0;
	soma = 0;
	dig1 = 0;
	dig2 = 0;
	texto = "";
	numcpf1="";
	len = numcpf.length; x = len -1;
	// var numcpf = "12345678909";
	for (var i=0; i <= len - 3; i++) {
		y = numcpf.substring(i,i+1);
		soma = soma + ( y * x);
		x = x - 1;
		texto = texto + y;
	}
	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ;
	if (dig1 == 11) dig1=0 ;
	numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;
	for (var i=0; i <= len - 2; i++) {
		soma = soma + (numcpf1.substring(i,i+1) * x);
		x = x - 1;
	}
	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0;
	if (dig2 == 11) dig2=0;
	//alert ("Digito Verificador : " + dig1 + "" + dig2);
	if ((dig1 + "" + dig2) == numcpf.substring(len,len-2)) {
		return true;
	}
	//alert ("Numero do CPF invalido !!!");
	return false;
}

$(document).ready(function() {
	$('.mask-cpf').blur(function() {
        if (this.value != "" && !validar_cpf(this)) {
			alert("CPF Inválido");
			this.focus();
		}
			
    });
    $('.mask-data').blur(function() {
        if (this.value != "" && !validar_data(this)) {
			alert("Data inválida!");
			this.focus();
		}
    });
	$('.mask-email').blur(function() {
		if (this.value != "" && !validar_email(this)) {
			alert("E-mail inválido!");
			this.focus();
		}        
    });
});
