$(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').attr('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'>Indiferente</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) {
					if (!testeVazio.test(retorno.bairros)) {
						$('#bairro option').remove();
						$('#bairro').attr('disabled','').append('<option value="-1">Indiferente</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').attr('disabled','').append('<option value="-1">Indiferente</option>');
						for (i in retorno.tipos)
						{
							var option = '<option value="'+retorno.tipos[i].id_tipo+'">'+retorno.tipos[i].nome_tipo+'</option>';
							$('#tipo').append(option);
						}
					}
					if (!testeVazio.test(retorno.valores)) {
						$('#valor_de option,#valor_ate option').remove();
						$('#valor_de,#valor_ate').attr('disabled','').append('<option value="-1">Indiferente</option>');
						for(i in retorno.valores)
						{
							var option = '<option value="'+i+'">'+retorno.valores[i]+'</option>';
							$('#valor_de,#valor_ate').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).attr('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();
	});
});