$(function(){
	
	$.ajaxSetup({
		dataType:'json',
		type:'post',
		beforeSend:function(){
			$('body').css('cursor','wait');
		},
		complete:function(){
			$('body').css('cursor','default');
		}
	});

	function urlDecode(str) {
 		return decodeURIComponent(str);
	}

    
	function checaSelect() {
		if (parseInt($('#valor_de option:selected').val())>-1)
			$('#valor_ate').removeAttr('disabled');
	}

	function urlSearch(varUrl,callback) {
		var params = window.location.search.split('&');
		for(var i in params) {
			var param = params[i].split('=');
			var variavel = param[0];
			var valor = urlDecode(param[1]);
			if (variavel == varUrl && valor != -1) {
				callback(valor);
			}
		}
	}

	function fillPreco() {
		urlSearch('preco',function(valor) {
			var elem = $('#preco option[value='+valor+']').attr('selected','selected')[0];
			var index = $('#preco option').index(elem);
			$('#preco').selectedIndex = index;
		});
	}

	function fillTipo() {
		urlSearch('tipo',function(valor) {
			var elem = $('#tipo option[value='+valor+']').attr('selected','selected')[0];
			var index = $('#tipo option').index(elem);
			$('#tipo').selectedIndex = index;
			fillPreco();
		});
	}

	function fillBairro() {
		urlSearch('bairro',function(valor) {
			var elem = $('#bairro option[value='+valor+']').attr('selected','selected')[0];
			var index = $('#bairro option').index(elem);
			$('#bairro').selectedIndex = index;
			changeBairro(null,$(elem).val(),fillTipo);
		});
	}

	function changeBairro(event,id,callback) {
		var idBairro = id || this.value;
		$.ajax({
			url:baseUrl()+'ajax/getTiposFromBairroEImobiliaria',
			data:{'id_bairro':idBairro},
			success:function(response) {
				$('#tipo option').remove();
				$('#tipo').append("<option value='-1'>todos os tipos</option>");
				for (var i in response){
					var option = document.createElement('option');
					$(option).val(response[i].id_tipo).html(response[i].nome);
					$('#tipo').append(option);
				}
			},
   			complete : function() {
				$('body').css('cursor','default');
            	if (typeof(callback) == 'function') {
					callback();
				}
			}
		});
	}

	function changeCidade(event,id,callback) {
		
		var value = id || this.value;

		if (value != -1) {
			
			cidade = parseInt(value);
			if ($('#operacao').size() > 0) {
				var tipo = $('#operacao').val()==1?'venda':'aluguel';
			}else {
				var path = window.location.pathname.split('/');
				var tipo = path[path.length -1];

				if (tipo!='venda' || tipo!='aluguel')
					tipo='venda';
			}
			testeVazio = new RegExp('^$');
			requisicao=baseUrl()+'ajax/pegaInfoCidade/';
			$.ajax({
				url: requisicao,
				data: { 'id' : cidade, 'tipo' : tipo },
				beforeSend: function(){
					$('body').css('cursor','wait');
				},
				success: function(retorno) {
				
					$('#operacao option').remove();
				    $('#operacao').removeAttr('disabled').append('<option value="" selected="" >operação</option>');
					var option = '<option value="1">venda</option>';
					$('#operacao').append(option);
					option = '<option value="2">aluguel</option>';
					$('#operacao').append(option);
						
					
					if (!testeVazio.test(retorno.bairros)) {
						$('#bairro option').remove();
						$('#bairro').removeAttr('disabled').append('<option value="-1">bairros</option>');
						for(i in retorno.bairros)
						{
							var option = '<option value="'+retorno.bairros[i].id_bairro+'">'+retorno.bairros[i].nome+'</option>';
							$('#bairro').append(option);
						}
					}
					if (!testeVazio.test(retorno.tipos)) {
						$('#tipo option').remove();
						$('#tipo').removeAttr('disabled').append('<option style="text-transform: capitalize;" value="-1">tipos</option>');
						for (i in retorno.tipos)
						{
							var option = '<option value="'+retorno.tipos[i].id_tipo+'">'+retorno.tipos[i].nome_tipo.toLowerCase()+'</option>';
							$('#tipo').append(option);
						}
					}
					if (!testeVazio.test(retorno.valores)) {
                        $('#valor_de option,#valor_ate option, .select_valor option').remove();
						$('#valor_de,#valor_ate, .select_valor').removeAttr('disabled').append('<option value="-1">valores</option>');
						for(i in retorno.valores)
						{
							var option = '<option value="'+i+'">'+retorno.valores[i]+'</option>';
                            $('#valor_de,#valor_ate, .select_valor').append(option);
						}
					}
				},
				complete:function(){
					$('body').css('cursor','default');
					if (typeof(callback) == 'function') {
						callback();
					};
				}
			});
		}
		else {
			$('#bairro,#valor_de,#valor_ate,#tipo').attr('disabled','disabled');
		}
	}
	
	$('#valor_de').change(function() {
		var de = parseInt($(this).val());
		checaSelect();
		$('#valor_ate option').each(function(){
			if (parseInt($(this).val()) <= de)
			{
				$(this).attr('disabled','true');
			}
			else
				$(this).removeAttr('disabled');

		});
	});
	checaSelect();
	if ($('#cidade option').size() > 0)	{
		$('#cidade').change(changeCidade);
		if ($('#cidade').val() > 0) {
			changeCidade(null,$('#cidade').val(),fillBairro);
		}
		$('#bairro').change(changeBairro);
	}


	$('#box-favoritos dl').slice(2,$('#box-favoritos dl').size()).hide().parent().children().filter('dl').slice(1,2).addClass('ultimo');
	$('a#ver_todos_favoritos').click(function(){
		$('#box-favoritos dl').fadeIn();
	});
});

