
$(document).ready(function() {
	/*métodos da validação*/

	jQuery.validator.addMethod("password", function( value, element ) {
		var result = this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
		if (!result) {
			element.value = "";
			var validator = this;
			setTimeout(function() {
				validator.blockFocusCleanup = true;
				element.focus();
				validator.blockFocusCleanup = false;
			}, 1);
		}
		return result;
	}, "Sua senha deve ter pelo menos 6 caracteres e conter pelo menos um número e uma letra.");
	
	jQuery.validator.addMethod("cadastroExtendido", function(value, element) {
		if ($("#campos2").css("display")=="none")
			return $(element).parents("#campos2").length;
		return !this.optional(element);
	}, "Campo obrigatório para o cadadstro completo.");

	jQuery.validator.addMethod("cpf", 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.");
	
	jQuery.validator.addMethod("dateBR", function(value, element) {
		if ($("#campos2").css("display")=="none") return true;
		
		if(value.length!=10) return false;
	
		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");
	
	jQuery.validator.messages.required = "Campo obrigatório.";

 	aplicaValidacao();
	
	
});


function aplicaValidacao() {
	
	showHidecampos2(($("#alterar2").val()==1),true);

	/* validação */
	
	$("#form_cadastro").validate({
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'Um campo obrigatório não foi preenchido'
					: errors + ' campos obrigatórios não foram preenchidos';
				$("div.error span").html(message);
				$("div.error").show();
			} else {
				$("div.error").hide();
			}
		},
		onkeyup: false,
		submitHandler: function() {
			$("div.error").hide();
			var data = $('#form_cadastro').serialize();
			$('#form_cadastro').html('<p>Enviando seus dados...</p>');
			$.post('simplecad.php', data , function(data){ 
				$(".chamada_dupla").html(data); 
				aplicaValidacao(); 
			} );
		},
		messages: {
			password2: {
				required: " ",
				equalTo: "Digite a mesma senha do campo ao lado."	
			},
			email: {
				required: " ",
				email: "Digite um e-mail válido."
			}
		}
	});
	
	/*ajustes*/
	
	if ($.browser.safari) {
		$("body").addClass("safari");
	}

	/*máscaras da validação*/
		$("input[name='cpf']").setMask("999.999.999-99");
		$("input.dateBR").setMask("99/99/9999");
		$("input.cep").setMask("99999-999");
		$("input.tel").setMask("(99) 9999-9999");
	
	
	/*ações do formulário*/

	$('#confraria1').click(function() {
		showHidecampos2(true,false);
	});
	$('#confraria0').click(function() {
		showHidecampos2(false,true);
	});

	$('select[name="estado"]').change(function() {
		preenche_combo_cidades($(this).val());
	});
};

function showHidecampos2(show,instant) {
	if (show) {
		if ($("#campos2").css("display")=="none") {
			if (instant) $('#campos2').show();
			else $("#campos2").slideDown("medium");
		}
	} else {
		if ($("#campos2").css("display")!="none") {
			$("#campos2").hide();
		}
	}
}

function showHideSenhas(show) {
	if (show) {
		$("#senha1").show();
		$("#senha2").show();
		if (!$("#senha").hasClass("required")) $("#senha").addClass("required");
		if (!$("#senha").hasClass("password")) $("#senha").addClass("password");
		if (!$("#password2").hasClass("required")) $("#password2").addClass("required");
		$("#password2").attr("equalto","#senha");
		$('#alt_senha').val("1");
	} else {
		if ($("#senha").hasClass("required")) $("#senha").removeClass("required");
		if ($("#senha").hasClass("password")) $("#senha").removeClass("password");
		if ($("#password2").hasClass("required")) $("#password2").removeClass("required");
		$("#password2").removeAttr("equalto");
		$("#senha1").hide();
		$("#senha2").hide();
		$('#alt_senha').val("0");
	}
	
}

	function preenche_combo_cidades(uf) {
		$('select[name="cidade"]').attr("disabled", "disabled");
		$('select[name="cidade"]').html("<option>(Aguarde, carregando...)</option>");
		$.post('select_cidades.php', { uf : uf, cidade:'<?=$cidade?>' }, function(data) {
			$('select[name="cidade"]').html(data);
			$('select[name="cidade"]').removeAttr("disabled");
		} );
	}

