/*  Init */
var $ = jQuery.noConflict();

$(function(){
// INICIO - adicionar métodos no validate

	//adicionar método de verificação de data FORMATO = 26/12/2007
	jQuery.validator.addMethod("dateBR", function(value, element) {            
		 //contando chars 
		if(value.length!=10) return false;
		// verificando data
		var data 		= value;
		var dia 		= data.substr(0,2);
		var barra1		= data.substr(2,1);
		var mes 		= data.substr(3,2);			
		var barra2		= data.substr(5,1);
		var ano 		= data.substr(6,4);			
		if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false; 
		if((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
		if(mes==2 && (dia>29||(dia==29&&ano%4!=0)))return false;
		if(ano < 1900)return false;
		
		return true;		
	}, "Informe uma data válida");



	
	//adicionar método de verificação de data FORMATO = 26/12/2007
	jQuery.validator.addMethod("nascimento", function(value, element) {            
		hoje = new Date();
		anoAtual = hoje.getFullYear();
		
		 //contando chars 
		if(value.length!=10) return false;
		// verificando data
		var data 		= value;
		var dia 		= data.substr(0,2);
		var barra1		= data.substr(2,1);
		var mes 		= data.substr(3,2);			
		var barra2		= data.substr(5,1);
		var ano 		= data.substr(6,4);			
		if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false; 
		if((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
		if(mes==2 && (dia>29||(dia==29&&ano%4!=0)))return false;
		if(ano < 1900)return false;
		if(ano > anoAtual)return false;		
		
		return true;		
	}, "Informe uma data de nascimento corretamente.");		
   
   
   
   
	//adicionar método de verificação de senha
	jQuery.validator.addMethod("senha", function(value, element) {
		var soma = 0;
	    for(i=0; i<=value.length-2; i++){
	        if(parseInt(value.charAt(i))+1 == parseInt(value.charAt(i+1))) soma++;
	    }
		
		var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
		
	  	if(value.match(expReg) || soma == value.length-1) return false;
		return true;
		
	}, "Não utilize repetições de algarismos ou sequências, como 0000000 e 123456");
	
	
	
	
	//adicionar método de verificação de CPF
	jQuery.validator.addMethod("verificaCPF", function(value, element) {
		
		value = value.replace('.','');
		value = value.replace('.','');
		cpf = value.replace('-','');
		
		while(cpf.length < 11) cpf = "0"+ cpf;
		
		var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
		
		var a = [];
		var b = new Number;
		var c = 11;
		for (i=0; i<11; i++){
			a[i] = cpf.charAt(i);
			if (i < 9) b += (a[i] * --c);
		}
		if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
		b = 0;
		c = 11;
		for (y=0; y<10; y++) b += (a[y] * c--);
		if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
		if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;
		return true;
		
	}, "Informe um CPF válido.");
	
	
	
	
	//adicionar método de verificação de data FORMATO = 26/12/2007 15:43
	jQuery.validator.addMethod("dateTimeBR", function(value, element) {            

		 //contando chars 
		if(value.length!=16) return false;
		 // dividindo data e hora
		if(value.substr(10,1)!=' ') return false; // verificando se há espaço				 
		var arrOpcoes = value.split(' ');
		if(arrOpcoes.length!=2) return false; // verificando a divisão de data e hora
		// verificando data
		var data 		= arrOpcoes[0];
		var dia 		= data.substr(0,2);
		var barra1		= data.substr(2,1);
		var mes 		= data.substr(3,2);			
		var barra2		= data.substr(5,1);
		var ano 		= data.substr(6,4);			
		if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false; 
		if ((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
		if (mes==2 && (dia>29||(dia==29&&ano%4!=0)))return false;
		// verificando hora
		var horario 	= arrOpcoes[1];	
		var	hora 		= horario.substr(0,2);
		var doispontos 	= horario.substr(2,1);
		var minuto 		= horario.substr(3,2);			
		if(horario.length!=5||isNaN(hora)||isNaN(minuto)||hora>23||minuto>59||doispontos!=":")return false;

		return true;		
	}, "Informe uma data e uma hora válida");	
	
	
// FIM - adicionar métodos no validate
	
})

