$.extend($.validator, {
	messages: {
		required: "Por favor, este campo é obrigatório.",
		remote: "Por favor, preencha corretamente este campo.",
		email: "Por favor, forneça um endereço de e-mail válido",
		url: "Por favor, digite um endereço URL válido (com 'http://').",
		date: "Por favor, insira um formato de data válido",
		dateISO: "Por favor, insira um formato de data válido (ISO).",
		dateDE: "Bitte geben Sie ein gÃ¼ltiges Datum ein.",
		number: "Por favor, um número válido",
		numberDE: "Bitte geben Sie eine Nummer ein.",
		digits: "Por favor, apenas os dígitos.",
		creditcard: "Por favor, insira um número de cartáo de crédito válido.",
		equalTo: "Por favor, insira o mesmo valor novamente.",
		accept: "Por favor, insira um valor com uma extensão válida.",
		maxlength: $.format("Por favor, não insira mais que {0} caracteres."),
		minlength: $.format("Por favor, insira pelo menos {0} caracteres."),
		rangelength: $.format("Por favor, insira um valor entre {0} e {1} caracteres."),
		range: $.format("Por favor, insira um valor entre {0} e {1}."),
		max: $.format("Por favor, insira um valor menor ou igual a {0}."),
		min: $.format("Por favor, insira um valor maior ou igual a {0}.")

	}
});
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;
}, "Por favor, forneça uma data no formato dd/mm/yyyy");  // Mensagem padrão
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;
}, "Por favor, forneça um CPF válido"); // Mensagem padrão 

jQuery.validator.addMethod("verificaCNPJ", function(value, element) {
	cnpj = value.replace(/\D/g,"");
	while(cnpj.length < 14) cnpj = "0"+ cnpj;
	var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	
	for (i=0; i<12; i++){
	a[i] = cnpj.charAt(i);
	b += a[i] * c[i+1];
	}
	
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
	b += (a[y] * c[y]);
	}
	
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((cnpj.charAt(12) != a[12]) || (cnpj.charAt(13) != a[13]) || cnpj.match(expReg) ) return false;
	return true;
}, "Por favor, forneça um CNPJ válido"); // Mensagem padrão

jQuery.validator.addMethod("verificaImagens", function(value, element) {
	
	var extensoes = "jpg,jpeg,gif,png";

	var extensoesArray = extensoes.split(',');
	
	if (value.length > 0) {
		if (extensoes.length >= 1) {
			for (i = 0; i < extensoesArray.length; i++) {
				var reg = new RegExp("." + extensoesArray[i] + "$");
				if (value.match(reg) == null) {
					if (i == extensoesArray.length - 1) {
						return false;
					}
				}
				else {
					return true;
				}
			}
		}
	} else {
		return true;
	}
}, "Seleciona apenas arquivos de imagem (*.jpg, *.jpeg, *.gif, *.png)"); // Mensagem padrão

jQuery.validator.addMethod("verificaArquivos", function(value, element) {
	
	var extensoes = "doc,docx,pdf,xls,xlsx,ppt,pptx,odt,ods,odp";

	var extensoesArray = extensoes.split(',');
	
	if (value.length > 0) {
		if (extensoes.length >= 1) {
			for (i = 0; i < extensoesArray.length; i++) {
				var reg = new RegExp("." + extensoesArray[i] + "$");
				if (value.match(reg) == null) {
					if (i == extensoesArray.length - 1) {
						return false;
					}
				}
				else {
					return true;
				}
			}
		}
	} else {
		return true;
	}
}, "Formato de arquivo inválido "); // Mensagem padrão