// funcoes de validacao usando jquery.validation
/*===================================================================================================================================*/

$(document).ready(function(){
	
	// inicializa a janela modal
	var modalWindow = $("#modalWindow");
	$(".modal").each(function(){
		$(this).css('display','none');
	});

	
	// Form em forma de abas
	var tabs = $("#cadastra > ul").tabs();
	$("#menu_cad").tabs({ fx: {opacity: 'toggle' } });
	$("#menu_cad").css("display","block");
	
	// Somente campos alfanuméricos no campo

	$("input[@validation=alphas]").validation({
        type: "alphas"
	}); 

	
	// Somente numeros no campo
	$("input[@validation=num]").validation({
        type: "int"
	}); 


	// Somente letras no campo
	$("input[@validation=alfa]").validation({
        type: "alpha"
	});
	
	// Validação de email
	$("input[@validation=mail]").validation({
        type: "mail"
	});
	
	// Validação de cep	
	$("input[@validation=cep]").validation({
		type: "cep"
	
	});
	
	// validacao de area total e area util
	$("input[@validation=float]").validation({
		type: "float"
	
	});
	
	// validacao para campos que precisam utilizar letras e numeros
	$("input[@validation=alfanumeric]").validation({
		type: "alphanumeric"
	
	});


	// Mostrar campos exclusivos de casa	
	$("#casa").click(function(){
		
		$("#outros_apto").hide();
		$("#obs_casa_rural").show();
		$("#obs_apartamento").hide();
		$("#obs_rural").hide();
		$("#composicao_imovel").show();
		$("#composicao_casa_apartamento_rural").show();
		$("#composicao_campos_rural").hide();
		$("#composicao_campos_casa_apartamento").show();
		$("#composicao_comercial").hide();
		$("#geral_apartamento").hide();
		$("#geral_terreno").hide();
		$("#geral_casa_apartamento_comercial_rural").show();
		$("#geral_casa_apto_comercial_terreno").show();
		$("#geral_rural").hide();
	})
	
	
// Mostrar campos exclusivos de terreno
	$("#terreno").click(function(){
				 
		
		$("#obs_apartamento").hide();
		$("#obs_rural").hide();
		$("#composicao_imovel").hide();
		$("#composicao_casa_apartamento_rural").hide();
		$("#composicao_comercial").hide();
		$("#geral_apartamento").hide();
		$("#geral_terreno").show();
		$("#geral_casa_apartamento_comercial_rural").hide();
		$("#geral_casa_apto_comercial_terreno").show();
		$("#geral_rural").hide();
		
		
	
	})	

// Mostrar campos exclusivos de apartamento
	$("#apartamento").click(function(){
		
		$("#outros_apto").show();
		$("#obs_casa_rural").hide();
		$("#obs_rural").hide();
		$("#obs_apartamento").show();
		$("#composicao_casa_apartamento_rural").show();
		$("#composicao_campos_casa_apartamento").show();
		$("#composicao_comercial").hide();
		$("#composicao_imovel").show();
		$("#composicao_campos_rural").hide();
		$("#geral_apartamento").show();
		$("#geral_terreno").hide();
		$("#geral_casa_apartamento_comercial_rural").show();
		$("#geral_casa_apto_comercial_terreno").show();
		$("#geral_rural").hide();
		
	})
	
	
// Mostrar campos exclusivos de comercial	
	$("#comercial").click(function(){
		
		$("#obs_apartamento").hide();
		$("#obs_rural").hide();
		$("#composicao_campos_rural").hide();
		$("#composicao_casa_apartamento_rural").hide();
		$("#composicao_comercial").show();
		$("#composicao_imovel").show();
		$("#geral_apartamento").hide();
		$("#geral_terreno").hide();
		$("#geral_casa_apartamento_comercial_rural").show();
		$("#geral_casa_apto_comercial_terreno").show();
		$("#geral_rural").hide();
	})
	
	
// Mostrar campos exclusivos de rural
	$("#rural").click(function(){
		
		$("#outros_apto").hide();
		$("#obs_casa_rural").show();
		$("#obs_apartamento").hide();
		$("#obs_rural").show();
		$("#composicao_comercial").hide();
		$("#composicao_casa_apartamento_rural").show();
		$("#composicao_campos_casa_apartamento").hide();
		$("#composicao_campos_rural").show();
		$("#composicao_imovel").show();
		$("#geral_apartamento").hide();
		$("#geral_terreno").hide();
		$("#geral_casa_apartamento_comercial_rural").show();
		$("#geral_casa_apto_comercial_terreno").hide();
		$("#geral_rural").show();
		
	})
	

/*================================================================================================================================= */
// Forma de Pagamento

   $("#CkbCompra").click(function(){		
		if($("#CkbCompra").attr("checked")){			
			$("#pagamento_compra").show();			
		}else{			
			$("#pagamento_compra").hide();		
		}
	})
   
  
   $("#CkbLocacao").click(function(){
		if($("#CkbLocacao").attr("checked")){		
			$("#pagamento_locacao").show();	
		}else{
			$("#pagamento_locacao").hide();
		}
	})
   
   
   $("#CkbTemporada").click(function(){	
		if($("#CkbTemporada").attr("checked")){		
			$("#pagamento_temporada").show();			
		}else{			
			$("#pagamento_temporada").hide();		
		}	
	})
   
   $("#CkbPermuta").click(function(){							   
		$('#CkbCompra').attr('checked','checked'); 
		if($("#CkbPermuta").attr("checked")){
			$("#pagamento_compra").show();
			$("#permuta").show();
			$("#obs_permuta").show();	
		}else{
			$("#permuta").hide();
			$("#obs_permuta").hide();
		}
	})
   
/*================================================================================================================================== */
   
// Esconder dizer caso o usuario nao escolha nenhuma disponibilidade
   $("a[@identificacao=forma_pagamento]").click(function(){	
			if($("#pagamento_compra").css("display") != 'none' || $("#pagamento_locacao").css("display") != 'none' || $("#pagamento_temporada").css("display") != 'none'){			
				$("#nenhuma_dispo").hide();			
			}else{				
				$("#nenhuma_dispo").show();
			}														 
   })
   
   $("div[@proximo=forma_pagamento]").click(function(){
			if($("#pagamento_compra").css("display") != 'none' || $("#pagamento_locacao").css("display") != 'none' || $("#pagamento_temporada").css("display") != 'none'){
				$("#nenhuma_dispo").hide();			
			}else{
				$("#nenhuma_dispo").show();
			}
   })
   
	/*===================================================================================================================================*/

	// Mascara dos campos do formulario

	$("#cep_proprietario").mask("99999-999");
	$("#fone_residencial_proprietario").mask("(99)9999-9999");
	$("#fone_comercial_proprietario").mask("(99)9999-9999");
	$("#fone_celular_proprietario").mask("(99)9999-9999");

	// Mascara para campo de valor

	$("#valor_vista").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#valor_prazo").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#valor_mensal").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#valor_deposito").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#preco_pacote").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#preco_por_dia").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#diaria").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#iptu").maskMoney({symbol:"R$",decimal:",",thousands:"."})
	$("#incra").maskMoney({symbol:"R$",decimal:",",thousands:"."})

   
	// Trocar as abas pelo botao
	$(".proximo").click(function(){
		var selected = $(tabs).data('selected.ui-tabs');
		$(tabs).tabs("select", selected+1);	
	})
	
	$(".anterior").click(function(){
		var selected = $(tabs).data('selected.ui-tabs');						  
		$(tabs).tabs("select", selected-1);
	})
	

	// Opções default do form
	
	$('#CkbCompra').attr('checked','checked'); 
	if($("#CkbCompra").attr("checked")){
		$("#pagamento_compra").show();			
	}else{			
		$("#pagamento_compra").hide();		
	}
	
	/**********************************************************************/
	// ENVIO DO FORM VIA AJAX
	/**********************************************************************/

	/*
	 * Função para validar os campos obrigatórios do formulário
	 */
	 
	$('#frm_encomenda_imovel').validate({
		
		// Regras de validação para os campos 
		rules: {
			nome_proprietario: "required",
			email_proprietario: {
				required: true,
				email: true
			}
		},
		messages: {
			nome_proprietario : "Nome proprietáio necessário",
			email_proprietario : { 
				required : "Email necessário",
				email: "Digite um email válido" 
			}
		},
		
		debug: true,
		onkeyup: false,
		
		// Tratamento visual para os campo inválidos
		
		/*highlight: function(element, errorClass) {
			$(element).css("border","1px dashed #FF0000")
		},
		
		// Método para limpar o visual dos campos que estavam inválidos
		unhighlight: function(element, errorClass) {
			$(element).css("border","1px solid #000000")
		},*/
		
		/*
		highlight: function(element, errorClass) {

		},
		unhighlight: function(element, errorClass) {

		}
		*/
		// Enviando o Formulário
		submitHandler:function(form){
			$(form).ajaxSubmit({ 
		        success: formResponse
		    });
		}

		,
		// Método para controlar como os erros são exibidos
		
		showErrors: function(errorMap, errorList) {
			
			if(this.numberOfInvalids() > 0){
				$("#errormsg").html("O formulário contém " + this.numberOfInvalids() + " erros, veja os detalhes abaixo.");
			}
			else{
				$("#errormsg").html("");
			}
			
			this.defaultShowErrors();
		},
		
		/*		
		 errorPlacement: function(error, element) {
		   error.appendTo("#summary");
		 },
		*/
		 
		 errorLabelContainer: "#errorlist",
		 
		 wrapper: "li"

	});
	
	// Método para tratamento do retorno no envio do formulário
	function formResponse(responseText,statusText)
	{
		if(responseText == 0)
		{
			$("#modalWindow").html("<center><p><strong>Erro no envio dos dados</strong></p>" +
			"<p>Por gentileza tente novamente.</p>" +
			"</center>");
			$('#modalWindow').modal();
		}
		else
		{
			$("#modalWindow").html("<center><p><strong>Envio com sucesso</strong></p>" +
			"<p>Seu cadastro será analisado. Retornaremos em breve.</p>" +
			"<p>Obrigado.</p>" +
			"</center>");
			$('#modalWindow').modal();
			$(tabs).tabs("select", 0);
			
		}				
	}
	 
	function formValidate()
	{
		var error_count = 0;
		
		/*
		$("input[@obrigatorio=sim]").each(function(){
			
			if($(this).val() == ""){
				$(this).css("border","2px solid #FF0000");
				error_count++;
			}
			
			if(typeof($(this).attr("value")) != "undefined" && $(this).css("border","2px solid #FF0000")){
				$(this).css("border","2px inset");
			}
			
		})
	
		if(error_count > 0)
		{
			//campos obrigatórios
			$("#modalWindow").html("<center><p><strong>Dados Obrigatórios</strong></p>" +
			"<p>Preencha os campos obrigatórios para finalizar o cadastro</p>" +
			"<p>Campos obrigatórios são identificados por '*'</p>" +
			"</center>" + "");
			
			$('#modalWindow').modal();
			return false;	
	
		}
		else
		{
			return true;		
		}
		*/
	}

});
