$('input[type=text],textarea').focus(function(){
        if (this.value==$(this).attr('title'))
                $(this).val('');
        $(this).addClass('selecionado');
	}).blur(function(){
		if ($(this).attr('title')==this.value || this.value=='')
			$(this).val($(this).attr('title'));
		$(this).removeClass('selecionado');
	}).each(function(){
		$(this).val($(this).attr('title'));
	});

var localizacao = {
	getBairros:function() {
		var cidade = parseInt(this.value);
		if (cidade!=0) {
                        $.ajax({
                                url:baseUrl()+'ajax/getBairros/',
                                data:{'id_cidade':cidade,'operacao':$('input[name=operacao]:checked').val()},
                                beforeSend:function(){
                                        $('#ajax_loader p').html('Aguarde...');
                                        $('#ajax_loader').show();
                                        $('#bairro').attr('disabled','true').children().slice(0).html('Aguarde...');
                                },
                                success:function(obj){
                                        var bg = $('#div_bairro').css('background');
                                        $('#div_bairro').css('background-color','#FFF7AE');
                                        setTimeout(function() {
                                            $('#div_bairro').css('background-color',bg);
                                        },1500);
                                        
                                        $('#bairros').find('label').remove();
                                        for(i in obj) {
                                            var label = document.createElement('label');
                                            $(label).append('<input type="checkbox" value="'+obj[i].id_bairro+'" name="bairro[]" title="'+obj[i].nome+'"/>'+obj[i].nome+'('+obj[i].qnt_imoveis+')');
                                            $('#bairros #inputs_bairros').append(label);
                                        }

// 					tiposImovel.getTipos();
                                        return false;
                                }
                        });
		}
	},
	trocaCombosCidades:function() {
		var id = this.value;
		$('select[rel=busca_cidade] option').attr('selected','').filter('[value='+id+']').attr('selected','true');
		$.ajax({
			url:baseUrl()+'ajax/getInfoBuscaFromCidade/',
   			data:{'id':id},
      			success:function(obj){
				$('#bairro_imovel').attr('disabled','').children().remove();
				for(i in obj.bairros)
				{
					var opt = document.createElement('option');
					$(opt).val(obj.bairros[i].id_bairro).html(obj.bairros[i].nome);
					$('#bairro_imovel').append(opt);	
				}
				if (obj.tipos!=undefined)
				{
					$('#busca_tipos').attr('disabled','').children().remove();
					for (j in obj.tipos)
					{
						var opt = document.createElement('option');
						$(opt).val(obj.tipos[j].id_tipo).html(obj.tipos[j].nome);
						$('#busca_tipos').append(opt);
					}
				}
			}
		});
	}
}

var tiposImovel = {
	tipos : {},
	getTipos:function(id_cidade){
		var id_bairro = parseInt(this.value);
		var id_cidade = (isNaN(id_bairro) || id_bairro==0) ?$('#cidade').val():null;
		$.ajax({
			url:baseUrl()+'ajax/getTiposFromBairro/',
			data:{'id_bairro':id_bairro,'id_cidade':id_cidade,'operacao':$('#operacao').val()},
			beforeSend:function(){
				$('#tipo_imovel').attr('disabled','true').children().slice(0).html('Aguarde...');
				$('#ajax_loader p').html('Aguarde...');
				$('#ajax_loader').show();
			},
			success:function(obj){
				$('#tipo_imovel').attr('disabled','').children().remove();
				for (i in obj)
				{
					var option = document.createElement('option');
					$(option).attr({'value':obj[i].id_tipo,'title':obj[i].nome}).html(obj[i].nome+' ('+obj[i].qnt_imoveis+')');
					$('#tipo_imovel').append(option);
				}
				var fake = document.createElement('option');
				$(fake).html('Tipo indiferente').attr('value',0);
				$('#tipo_imovel').prepend(fake).children()[0].selected = 'true';
				return false;
			}
		});
	}
}

var operacao = {
    trocaOperacao:function(){
        
        if (this.value==1)//Venda
        {
            select_cidades_aluguel = $('#cidade').clone();
            $('#cidade option').remove();
            $('#cidade').append($(select_cidades_venda).children());
        }
        else if(this.value==2)
        {
            select_cidades_venda = $('#cidade').clone();
            $('#cidade option').remove();
            $('#cidade').append($(select_cidades_aluguel).children());
        }
        $('#cidade option:first-child').attr('selected','selected');
    }
}

var layout = {
        div_arrastada : {
            pos_inicial:null,
            tam_div:null,
            limite:null
        },
        toggleBusca:function(e,time) {
            var tempo = time || 350;
            $('#status').slideToggle(time,function(){
                if ($(this).is(':hidden')) {
                    $('#aba_topo').removeClass('aberto').addClass('fechado');
                    var contador = parseInt(cookie.get('menu_fechado')) + 1;
                    cookie.add('menu_fechado',contador);
                }else {
                    $('#aba_topo').removeClass('fechado').addClass('aberto');
                    if (typeof(e)!=undefined) {
                        cookie.add('menu_fechado',-1);
                    }
                }
            });
        },
        escondeBusca:function() {
            var size = 2;
            if (isLocalHost()) {
                size = 3;
            }
            if (window.location.pathname.split('/').length > size) {
                var contador = cookie.get('menu_fechado');
                if (contador>=3 || contador == -1) {
                    layout.toggleBusca(null,0);
                }else {
                    setTimeout(function() {
                        layout.toggleBusca();
                    },3000);
                }
            }
        },
        trocaCorSelect:function() {
            $('#cidade').css('background','none');
            $('#aviso').html('');
        },
        valoresAluguel:function() {
            $('#preco').children().remove().andSelf().append('<option value="-1" title="Selecione uma cidade" selected="selected">Selecione uma faixa</option><option value="<300" title="Selecione uma cidade">até R$ 300</option><option value="300|500" title="Selecione uma cidade">de R$ 300 até R$ 500 </option><option value="500|1000" title="Selecione uma cidade">de R$ 500 até R$ 1000 </option><option value=">1000" title="Selecione uma cidade">acima de R$ 1000 </option>');
        },
        valoresCompra:function() {
            $('#preco').children().remove().andSelf().append('<option value="-1" title="Selecione uma cidade" selected="selected">Selecione uma faixa</option><option value="<50000" title="Selecione uma cidade">até 50 mil</option><option value="50000|100000" title="Selecione uma cidade">de 50 mil até 100 mil</option><option value="100000|200000" title="Selecione uma cidade">de 100 mil até 200 mil</option><option value="200000|500000" title="Selecione uma cidade">de 200 mil até 500 mil</option><option value=">500000" title="Selecione uma cidade">acima de 500 mil</option>');
        },
        mostraBairros:function(e) {
            if (!$('#bairros').is(':empty')) {
                $('#bairros').show();
                $('#fechar_bairros').live('click',function() {
                    $('#bairros').slideUp(500,function() {
                        var tmp = '';
                        $(this).find('input:checked').each(function(i){
                            tmp += $(this).attr('title')+', ';
                            if (i>2) {
                                return false;
                            }
                        });
                        $('#div_bairro span').html(tmp);
                    });
                });
                function marcaLabel() {
                    $(this).closest('label').toggleClass('selecionado');
                }
                $('#bairros input').die('click').live('click',marcaLabel);
                $('#trigger_buscar').die('click').live('click',function() {
                    $('#nova_busca').submit();
                });
            }else {
                var bg = $('#cidade').css('background');
                $('#cidade').css('background','#FFF7AE');
                $('#aviso').html('Selecione uma cidade');
            }
        },
	mostraAbas:function(){
		//Mostra e esconde as abas
		$('#aba_fotos,#aba_detalhes,#aba_contato').css('display','none');
		$($(this).attr('data')).css('display','block');
		$('#topo #elementos_aba a').removeClass('destaque');
		$(this).addClass('destaque');
	},
 	hide:function(elems){
		$(elems).hide();
	},
 	trocaAbasTipo:function(elems,destaque){
		$(elems).live('click',function(){
			$(destaque).removeClass('destaque');
			$(this).addClass('destaque');
			$('#destaque_abas > div:visible').hide();
			$('#'+$(this).attr('data')).show();
                        imgs.carregaImgs($('#'+$(this).attr('data')));
		});
                
	},
 	trocaAbasBaixo:function(elems,destaque){
		$(elems).live('click',function(){
			$(destaque).removeClass('destaque');
			$(this).addClass('destaque');
			$('.container > div:visible').hide();
			$('#'+$(this).attr('data')).show();
                        imgs.carregaImgs($('#'+$(this).attr('data')));
		});
	},
 	trocaAbasBuscas:function(elems,destaque){
		$(elems).live('click',function(){
			$(destaque).removeClass('destaque');
			$(this).addClass('destaque');
			$('#busca_rapida > div:visible').hide();
			$('#'+$(this).attr('data')).show();
		});
	},
        escondeTopo:function(){
            $('div#menu ul').slice(1).hide();
        },
        trocaMenuTopo:function(elems){
            $(elems).live('click',function(){
                $('div#abas_topo a.destaque').removeClass('destaque');
                $(this).addClass('destaque');
                $('#menu ul').filter(':visible').hide().andSelf().filter('[rel='+$(this).attr('rel')+']').show();
            });
        },
        checaMenuTopo:function(){
            var local = location.pathname.split('/')[3];
            if (local!=undefined)
            {
                local = local.replace('_',' ');
                var expReg = new RegExp(local);
                $('div#menu ul li a').each(function(){
                    if (expReg.test(this.innerHTML.toLowerCase()))
                    {
                        $('div#menu ul').hide();
                        var rel = $(this).parent().parent().show().attr('rel');
                        $('div#abas_topo li a').removeClass('destaque').filter('[rel='+rel+']').addClass('destaque');
                        return false;
                    }
                });
            }
        },
        arrastaDivLateral:function(div){
            if (div.length>0 && location.pathname.split('/').length>3)
            {
                layout.div_arrastada.pos_inicial = $(div).position().top;
                layout.div_arrastada.limite = parseInt(($('#rodape').position().top));
                $(div).css('position','absolute');
                $(window).bind('scroll',function(e){
                    var scroolTop = typeof(window.scrollY)!='undefined'?window.scrollY:document.body.scrollTop;
                    if (scroolTop>layout.div_arrastada.pos_inicial)
                        $(div).animate({'top':scroolTop},150);
                });
            }
        }
}

var imgs = {
	baseImg : function(){
		return baseUrl()+'resize.php?imagem=';
	},
 	ajaxLoader:function(append_in,no_meio_de){
		var src = './images/js/ajax-loader.gif';
		var img = document.createElement('img');
		var meio_x = $(no_meio_de).width() /2 - ($(img).width() / 2);
		var meio_y = $(no_meio_de).height() /2 - ($(img).height() / 2);
		var posicao = $(no_meio_de).offset();
		$(img).css({'left':posicao.left+meio_x+'px','top':posicao.top+meio_y+'px'});
		$(img).attr({'src':src,'title':'Carregando','class':'loading'});
		$(append_in).append(img);
	},
 	removeAjaxLoader:function(){
		$('.loading').remove();
	},
	getCaminhoDaFotoComResize:function(path){
		//Remove todos os lixos da variável
		return path.split('=')[1].split('&')[0];
	},
 	getTamanhoDoResizeDaFotoEmDestaque:function(){
		var caminho = $('#foto_destaque img#em_destaque').attr('src');
		var vetor_tmp = caminho.substr(caminho.length - 9,caminho.length);
		vetor_tmp = vetor_tmp.split('&h=');
		return {
			'width':'&w='+vetor_tmp[0],
   			'height':'&h='+vetor_tmp[1]
		}
	},	
  	trocarFoto:function(obj){
		if (obj!=undefined)
		{
			var src = $(obj).attr('src');
		}
		var path = imgs.getCaminhoDaFotoComResize(src);
		var tamanho = imgs.getTamanhoDoResizeDaFotoEmDestaque();
		var novo_path = imgs.baseImg()+path+tamanho.width+tamanho.height;
		clearTimeout(TM);
		imgs.ajaxLoader('#foto_destaque','img#em_destaque');
		$('#foto_destaque img#em_destaque').attr({'src':novo_path}).load(function(){
			imgs.toolTip($(obj).attr('titulo'),$(obj).offset());
			imgs.removeAjaxLoader();
			$(this).unbind('load');
			imgs.soltaPause();
			return false;
		});
	},
 	toolTip:function(title,posicao){
		title = title.replace('[',"<strong>");
		title = title.replace(']',"</strong>");
		title = title.replace('[',"<strong>");
		title = title.replace(']',"</strong>");
		$('.tooltip_destaque').remove();
		var div = document.createElement('div');
		$(div).addClass('tooltip_destaque').html(title);
		$('body').append(div);
		var width = $(div).width() + 20;
		$(div).css({'top':posicao.top,'left':(posicao.left - width)});
	},
 	soltaPause:function(){
		TM = setInterval(imgs.interval,SEGUNDOS);
	},
 	hoverImage:function(){
		for (var k=TM-10;k<=TM;k++)//Macetado
			clearTimeout(k);
		imagemT = parseInt($(this).attr('data')) + 1;
		if (imagemT==QNT_IMGS)
			imagemT = 0;
		imgs.trocarFoto(this);
	},
 	tiraTitle:function(elementos){
		$(elementos).each(function(){
			var tmp = $(this).attr('title');
			$(this).attr('titulo',tmp);
			$(this).removeAttr('title');
		});
	},
 	timer:function(seletor,segundos){
		//Trocar as fotos a cada X segundos
		SEGUNDOS = segundos * 1000;
		IMGS_DESTAQUE = $(seletor);
		QNT_IMGS = $(IMGS_DESTAQUE).size();
		imagemT = 1;//Inicia com 1 para pular a primeira que já está carregada
		TM = setInterval(imgs.interval,SEGUNDOS);
	},
 	interval:function(){
		try{
			imgs.trocarFoto(IMGS_DESTAQUE[imagemT]);
			imagemT++;
			if (imagemT==QNT_IMGS)
				imagemT = 0;
		}catch(E)
		{
			console.log(E);
		}
	},
        carregaImgs:function(elems){
            $(elems).find('img').each(function(){
                if ($(this).attr('thumb'))
                    $(this).attr('src',$(this).attr('thumb')).removeAttr('thumb');
            });
        }
}

var detalhes = {
	imoveis:null,
 	dias_cookies : 30,
	opcoes:function(){
		var opcao = $(this).attr('id');
		detalhes.imoveis = $('.selecionar:checked');
		if ($(detalhes.imoveis).size()>0)
		{
			switch(opcao)
			{
				case 'salvar_favoritos':
					detalhes.salvar_favoritos();
				break;
				case 'comparar':
					detalhes.comparar();
				break;
				case 'salvar_busca':
				break;
			}
		}
		else
			alert("Nenhum imóvel foi selecionado.\nSelecione um imóvel e tente novamente.");
	},
	salvar_favoritos:function(){
		var favoritos = cookie.get('favoritos');
		cookie.del('favoritos');
		var fav = new Array();
		if (favoritos!=null)
		{
			var tmp = favoritos.split('#');
			for(var i in tmp)
				fav.push(tmp[i]);
		}
		$(detalhes.imoveis).each(function(){
			fav.push($(this).attr('data'));
		});
		favoritos = '';
		fav = $.unique(fav);
		for(var j in fav)
			favoritos += '#'+fav[j];
		cookie.add('favoritos',favoritos,detalhes.dias_cookies);
	},
 	comparar:function(){
		if ($(detalhes.imoveis).size()<2)
		{
			alert("Selecione pelo menos 2 imóveis para comparar");
			return false;
		}
		else
		{
			var ids = new Array();
			$(detalhes.imoveis).each(function(){
				ids.push($(this).attr('data'));
			});
			$.ajax({
				data:{'imoveis[]':ids},
    				url:baseUrl()+"ajax/comparacao",
				dataType:'html',
    				success:function(obj){
					$('#resultado_busca').hide().after(obj);
					var li = new Array();
					$('.box_comparacao li').each(function(){
						li.push(this);
					}).filter(':odd').addClass('fundo_escuro');
					$('#voltar_listagem').click(function(){
						$('#resultado_busca').show();
						$('#comparacao').remove();
						$('.selecionar:checked').attr('checked','');
					});
				}
			});
		}
	}
}

var listagem = {
	ordenar:function(){
            $(this).closest('form').submit();
	}
}

function ie6(){
    var mensagem = "O navegador de internet que você está utilizando encontra-se em uma versão em desuso.<br />";
    mensagem += "Ele foi desenvolvido em 2001 e já tá velinho, tem 8 anos de vida!!!<br />";
    mensagem += "A equipe da <strong>Action Plus</strong> sempre preocupada com o usuário recomenda que o seu navegador seja atualizado para uma versão mais recente.<br />";
    mensagem += "Logo abaixo tem uma lista com alguns links de navegadores com novas tecnologias,seguros e muito mais rápidos.";
    var links = {
        ff:"Firefox=http://getfirefox.com/",
        opera:"Opera=http://opera.com/",
        safari:"Safari=http://apple.com/safari",
        chrome:"Google Chrome=http://www.google.com/chrome",
        ie8:"IE7=http://www.microsoft.com/windows/downloads/ie/getitnow.mspx"
    }
    function getMsg(){
        return this.mensagem;
    }
    return {
        testaNavegador:function(){
            return ($.browser.msie && $.browser.version<=6)?true:false;
        },
        getAlerta:function(){
            return {'mensagem':mensagem,'links':links}
        }
    }
}

IE = new ie6();

$(function(){
	var config_ajx = {
		'type':'post',
  		'dataType':'json',
    		beforeSend:function(){
			$('#ajax_loader p').html('Aguarde...');
			$('#ajax_loader').show();
		},
  		complete:function(){
			$('#ajax_loader p').html('Ok');
			$('#ajax_loader').slideUp(600);
		}
	}
	$.ajaxSetup(config_ajx);
        
/*
        if (IE.testaNavegador())
        {
            var alerta = cookie.get('alerta_ie');
            if (alerta==null || alerta==0)
            {
                var msg = IE.getAlerta();
                var ul = document.createElement('ul');
                for(var j in msg.links)
                {
                    var li = document.createElement('li');
                    var titulo = msg.links[j].split("=")[0];
                    var link = msg.links[j].split("=")[1];
                    var a = document.createElement('a');
                    $(a).attr({'href':link,'target':'_blank'}).html(titulo);
                    $(ul).append($(li).append(a));
                }
                var div_ie6 = document.createElement('div');
                var alerta_seguranca = document.createElement('a');
                $(alerta_seguranca).html('Aviso de segurança. Clique aqui para visualizar.').attr({'id':'alerta_ie6','href':'javascript:void(0)'});
                $(div_ie6).attr('id','ie6');
                $('div#geral').prepend(alerta_seguranca).prepend(div_ie6);
                var nao_exibir = document.createElement('label');
                $(nao_exibir).attr('for','nao_exibir').html('Não mostre esse aviso novamente!');
                
                var bt_nao_exibir = document.createElement('input');
                $(bt_nao_exibir).attr({'type':'checkbox','id':'nao_exibir'}).val(0);
                var bt_ok = document.createElement('input');
                $(bt_ok).attr({'type':'button','id':'fechar_modal'}).val('Ok');
                $(div_ie6).append('<p>'+msg.mensagem+'</p>').append(ul).append(bt_nao_exibir).append(nao_exibir).append(bt_ok);
    
                $('#alerta_ie6').click(function(){
                    $('#ie6').fadeIn();
                    $('#fechar_modal').live('click',function(){
                        if ($('#nao_exibir').is(':checked'))
                        {
                            $('#alerta_ie6').remove();
                            cookie.add('alerta_ie',1);
                        }
                        else
                            cookie.add('alerta_ie',0);
                        $('#ie6').fadeOut();
                    });
                });
            }
        }
*/
        
	//Adiciona eventos aos elementos da páginas on ready state
	var imagens = $('#destaque a[rel=trocar_foto] > img');
	if ($(imagens).size()>0)
	{
		imgs.tiraTitle(imagens);
		$(imagens).hover(imgs.hoverImage,imgs.soltaPause);
		imgs.timer(imagens,7);
		imgs.toolTip($(imagens).slice(0,1).attr('titulo'),$(imagens).slice(0,1).position());
	}
	$('.abas a').click(layout.mostraAbas);
        $('#operacao').change(operacao.trocaOperacao);
	$('#cidade').change(localizacao.getBairros).click(layout.trocaCorSelect);
	$('#div_bairro').click(layout.mostraBairros);

        $('#aba_topo').click(layout.toggleBusca);
        layout.escondeBusca();

        $('#para_alugar').click(layout.valoresAluguel);
        $('#para_comprar').click(layout.valoresCompra);
        layout.escondeTopo();//Esconde menus do topo do site
        layout.trocaMenuTopo($('div#abas_topo li a'));//Abas do menu do topo
        layout.checaMenuTopo();//Verifica se o menu foi aberto em outra página
	layout.hide($('#boxes_locacao,#boxes_temporada'));//Boxes de cima do layout
	layout.hide($('#familia,#solteiro,#comercial'));//Parte de baixo do layout
	layout.hide($('#busca_preco,#busca_localidade'));//Buscas na lateral
	layout.trocaAbasTipo($('#abas_tipo li a'),'#abas_tipo .destaque');
	layout.trocaAbasBaixo($('#tipos li a'),'#tipos li a.destaque');//Troca abas de famílias,casal,solteiro
	layout.trocaAbasBuscas($('#buscas_rapidas li a'),'#buscas_rapidas .destaque');
//         layout.arrastaDivLateral($('#mais_ofertas'));
        
	$('select[rel=busca_cidade]').change(localizacao.trocaCombosCidades);
	if(document.getElementById('selecao'))
		$('#comparar,#salvar_favoritos,#salvar_busca').click(detalhes.opcoes);
	$('#ordenacao').change(listagem.ordenar);
        if (document.getElementById('recaptcha_table')!=null)
	   $('#recaptcha_table span').slice(0)[0].innerHTML = 'Preencha as duas palavras:';

        function inArray(array,required) {
            for(i in array) {
                if (array[i]==required)
                return true;
            }
            return false;
        }
        
        function apagarUltimos(array,qnt) {
            var total = array.length;
            var novo = new Array();
            if (total>qnt) {
                for(var i=0;i<(total-qnt);i++) {
                    novo.push(array[i]);
                }
                return novo;
            }else {
                return array;
            }
        }


        var path = location.pathname;
        var exp = new RegExp('/detalhes/');
        if (exp.test(path)) {
            var id = location.pathname.split('/');
            var idLimpo = new Array();
            for(i in id) {
                if (id[i]!='') {
                    idLimpo.push(id[i]);
                }
            }
            id = parseInt(idLimpo[idLimpo.length -1]);
            var visitados = cookie.get('visitados');
            if (visitados==null || visitados=='') {
                cookie.del('visitados');
                cookie.add('visitados',id);
            }else {
                visitados = visitados.split(',');
                if (!inArray(visitados,id)) {
                    visitados.push(id);
                    visitados = apagarUltimos(visitados,5);
                    cookie.add('visitados',visitados);
                }
            }
        }

});