/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: PT_BR
 */
jQuery.extend(jQuery.validator.messages, {
	required: "Preencha corretamente.",
	remote: "Por favor, corrija este campo.",
	email: "Email inv&aacute;lido.",
	dateITA: "Data inv&aacute;lida.",
	url: "Por favor, use uma URL v&aacute;lida.",
	date: "Data inv&aacute;lida.",
	dateISO: "Data inv&aacute;lida.",
	number: "N&uacute;mero inv&aacute;lida.",
	digits: "Use somente d&iacute;gitos.",
	creditcard: "Use um cart&atilde;o de cr&eacute;dito v&aacute;lido.",
	equalTo: "Use o mesmo valor.",
	accept: "Use um valor com uma extens&atilde;o v&aacute;lida.",
	maxlength: jQuery.validator.format("Use n&atilde;o mais que {0} caracteres."),
	minlength: jQuery.validator.format("Use ao menos {0} caracteres."),
	rangelength: jQuery.validator.format("Use um valor entre {0} e {1} caracteres de comprimento."),
	range: jQuery.validator.format("Use um valor entre {0} e {1}."),
	max: jQuery.validator.format("Use um valor menor ou igual a {0}."),
	min: jQuery.validator.format("Use um valor maior ou igual a {0}.")
});


jQuery.validator.addMethod('cpf', function(value, element) {
	if (value == '') return true;
	
	var cpf = value.replace('.','')
				   .replace('.','')
				   .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.");


jQuery.validator.addMethod('cnpj', function(value, element) {
	if (value == '') return true;
	
	var cnpj = value.replace('.','')
				    .replace('.','')
				    .replace('.','')
				    .replace('/','')
				    .replace('-','');
	 
	while (cnpj.length < 14) cnpj = "0"+cnpj;
	
	var dig_1 = 0;
	var dig_2 = 0;
	var controle_1 = 5;
	var controle_2 = 6;
	var resto = 0;
	var i;
	
	//coloca no formato padrao
	for ( i=0 ; i < 12 ; i++) {
		dig_1 = dig_1 + parseFloat(cnpj.substring(i, i+1) * controle_1);
		controle_1 = controle_1 - 1;
		if (i == 3) {
			controle_1 = 9;
		}
	}
	resto = dig_1 % 11;
	dig_1 = 11 - resto;
	if ((resto == 0) || (resto == 1)){
 		dig_1 = 0;
	}
	for ( i=0 ; i < 12 ; i++) {
		dig_2 = dig_2 + parseInt(cnpj.substring(i, i+1) * controle_2);
		controle_2 = controle_2 - 1;
		if (i == 4) {
			controle_2 = 9;
		}
	}
	dig_2 = dig_2 + (2 * dig_1);
	resto = dig_2 %11;
	dig_2 = 11 - resto;
	if ((resto == 0) || (resto == 1)){
 		dig_2 = 0;
	}
	var dig_ver = (dig_1 * 10) + dig_2;
	if (dig_ver != parseFloat(cnpj.substring(cnpj.length-2,cnpj.length))) {
		return false;
	}
 	return true;
}, "Informe um CNPJ válido.");

jQuery.validator.addMethod("NotEqualTo", function(value, element, param) {
    if (value != '') {
        return value != $(param).val();
    } else return true;
});

jQuery.validator.addMethod("cep", function(value, element) {
	return this.optional(element) || /\d{2}.?\d{3}-?\d{3}$/.test(value);
}, "O CEP deve ser no formato xx.xxx-xxx");
