﻿function AdicionaBairro(idx)
{
	if( idx == 1 )
	{
		page.PainelBusca.style.height	= '185px'
		page.divBairro2.style.display	= '';
		page.imgMaisBairro1.src			= ResourcePath + 'include/img/form_select_menos.gif';
		page.btnMaisBairro1.onclick	= function(){ return RemoveBairro(1); };
	}
	else
	{
		page.PainelBusca.style.height	= '215px'
		page.divBairro3.style.display	= '';
		page.imgMaisBairro2.src			= ResourcePath + 'include/img/form_select_menos.gif';
		page.btnMaisBairro2.onclick	= function(){ return RemoveBairro(2); };
	}
	
	return false;
}

function RemoveBairro(idx)
{
	if( idx == 1 )
	{
		page.dropBairro2.value = 0;
		page.PainelBusca.style.height	= '156px'
		page.divBairro2.style.display	= 'none';
		page.imgMaisBairro1.src			= ResourcePath + 'include/img/form_select_mais.gif';
		page.btnMaisBairro1.onclick	= function(){ return AdicionaBairro(1); };
	}
	else
	{
		page.dropBairro3.value = 0;
		page.PainelBusca.style.height	= '185px'
		page.divBairro3.style.display	= 'none';
		page.imgMaisBairro2.src			= ResourcePath + 'include/img/form_select_mais.gif';
		page.btnMaisBairro2.onclick	= function(){ return AdicionaBairro(1); };
	}
	
	return false;
}

function InicializaPagina()
{
	page.ltTotalEmpreendimentos	= $('ltTotalEmpreendimentos');
	page.ltTotalEmpreendimentos2	= $('ltTotalEmpreendimentos2');
	page.ltItensPagina				= $('ltItensPagina');

	page.PainelBusca		 = $('busca_avancada_box');
	page.divBairro2		 = $('divBairro2');
	page.divBairro3		 = $('divBairro3');

	page.btnMaisBairro1	 = $('btnMaisBairro1');
	page.btnMaisBairro2	 = $('btnMaisBairro2');
	page.imgMaisBairro1	 = $('imgMaisBairro1');
	page.imgMaisBairro2	 = $('imgMaisBairro2');
	page.Paginador			 = $('resultado_imoveis_paginacao');

	page.BuscaLocalizacao = $('busca_avancada_localizacao');
	page.BuscaVagas		 = $('busca_avancada_vagas');
	page.BuscaArea			 = $('busca_avancada_privativa');

	page.BuscaDormitorios = $('busca_avancada_dormitorios');
	page.BuscaValor		 = $('busca_avancada_valor_de_select').parentNode.parentNode;
	page.divBtnBuscar		 = $('div_busca_avancada_botao');

	page.imgMudaExibicaoAvancada = $('imgMudaExibicaoAvancada');
	page.imgMudaExibicaoRapida   = $('imgMudaExibicaoRapida');

	page.dropEstados.onchange = OnEstadoChange;
	page.dropCidades.onchange = OnCidadeChange;

	page.EmpreendimentosPaginaAtual = {};
	
	if( /MSIE 6/.test(navigator.userAgent) )
	{
		page.divBtnBuscar.style.left = '884px';
		page.divBtnBuscar.style.top = '345px';
		page.btnMaisBairro1.style.position = 'relative';
		page.btnMaisBairro2.style.position = 'relative';
		page.btnMaisBairro1.style.left = '-8px'
		page.btnMaisBairro2.style.left = '-4px'
	}
}


function OnEstadoChange()
{
	InicializaDropBairros();
	if( (this.SelectedValue()||'').length == 2 )
	{
		page.dropCidades.Clear();
		page.dropCidades.Add( 'Aguarde...', 'Aguarde...' );
		page.dropCidades.SetDisabled();
		Ajax.ListaCidadesAtivas( this.SelectedValue(), PopulaCidades );
	}
}

function OnCidadeChange()
{
	InicializaDropBairros();
	if( Validadores.ValidaNumero( this.value ) )
	{
		page.dropBairro1.Clear();
		page.dropBairro1.Add( 'Aguarde...', 'Aguarde...' );
		Ajax.ListaBairrosAtivos( parseInt(this.value), PopulaBairros );
	}
}

function PopulaCidades( cidades )
{
	if( !cidades || !cidades.length )
	{
		page.dropCidades.Clear();
		page.dropCidades.Add( 'Cidades', 'Cidades' );
		page.dropCidades.SetDisabled();
		return;
    }

    var capital = RetornaCapital();
    if (capital)
    {
        var arr = [capital];
        for (var i = 0; i < cidades.length; i++)
            arr.Add(cidades[i]);
        cidades = arr;
    }

	page.dropCidades.SetEnabled();
	page.dropCidades.Bind( cidades, 'ID', 'Nome', 'Cidades' );
}

function RetornaCapital()
{
    var estado = page.dropEstados.SelectedValue();
    if (String.IsNullOrEmpty(estado))
        return null;

    switch (estado.toLowerCase())
    {
        case 'ac': return { ID: 16, Nome: '<b>Rio Branco</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'al': return { ID: 109, Nome: '<b>Maceió</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'am': return { ID: 243, Nome: '<b>Manaus</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ap': return { ID: 307, Nome: '<b>Macapá</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ba': return { ID: 988, Nome: '<b>Salvador</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ce': return { ID: 1347, Nome: '<b>Fortaleza</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'df': return { ID: 1778, Nome: '<b>Brasília</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'es': return { ID: 2048, Nome: '<b>Vitória</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'go': return { ID: 2174, Nome: '<b>Goiânia</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ma': return { ID: 2587, Nome: '<b>São Luís</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'mg': return { ID: 2754, Nome: '<b>Belo Horizonte</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ms': return { ID: 4141, Nome: '<b>Campo Grande</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'mt': return { ID: 4347, Nome: '<b>Cuiabá</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'pa': return { ID: 4565, Nome: '<b>Belém</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'pb': return { ID: 4964, Nome: '<b>João Pessoa</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'pe': return { ID: 5406, Nome: '<b>Recife</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'pi': return { ID: 5721, Nome: '<b>Teresina</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'pr': return { ID: 6015, Nome: '<b>Curitiba</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'rj': return { ID: 7043, Nome: '<b>Rio de Janeiro</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'rn': return { ID: 7221, Nome: '<b>Natal</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'ro': return { ID: 7352, Nome: '<b>Porto Velho</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'rr': return { ID: 7375, Nome: '<b>Boa Vista</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'rs': return { ID: 7994, Nome: '<b>Porto Alegre</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'sc': return { ID: 8452, Nome: '<b>Florianópolis</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'se': return { ID: 8770, Nome: '<b>Aracaju</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'sp': return { ID: 9668, Nome: '<b>São Paulo</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
        case 'to': return { ID: 9899, Nome: '<b>Palmas</b><div class="rossi_separador_drop_reta"><img src="include/img/trans.gif" width="1" class="absmiddle" alt="" style="width:128px;" /></div>', __NoSeparator: 1 };
    }

    return null;
}

function PopulaBairros(bairros)
{
	if( !bairros || !bairros.length )
	{
		InicializaDropBairros();
		return;
	}

	for(var i=0; i<bairros.length; i++)
		bairros[i].Nome = bairros[i].Nome.Capitalize();

	page.dropBairro1.SetEnabled();
	page.dropBairro1.Bind( bairros, 'ID', 'Nome', 'Bairros' );
	page.dropBairro2.Bind( bairros, 'ID', 'Nome', 'Bairros' );
	page.dropBairro3.Bind( bairros, 'ID', 'Nome', 'Bairros' );
	page.btnMaisBairro1.style.display = '';
}

function EfetuaPesquisa(pagina, nomeCidade)
{
	var busca = {};
	page.PaginaAtual  = pagina||0;

	busca.Pagina		= page.PaginaAtual;
	busca.Apto			= page.chkApto.checked;
	busca.Casa			= page.chkCasa.checked;
	busca.Lote			= page.chkLote.checked;
	busca.Comercial	= page.chkComercial.checked;

	busca.EstadoID		= page.dropEstados.SelectedValue();
	if( page.BuscaRapida )
	{
		busca.EstadoID = App.EstadoBusca;
		busca.CidadeID = App.CidadeBusca;
	}
	else
	{
		busca.CidadeID		= page.dropCidades.SelectedValue();
		busca.Bairro1		= page.dropBairro1.SelectedValue();
		busca.Bairro2		= page.dropBairro2.SelectedValue();
		busca.Bairro3		= page.dropBairro3.SelectedValue();

		busca.AreaDe		= page.dropAreaDe.SelectedValue();
		busca.AreaAte		= page.dropAreaAte.SelectedValue();

		busca.Vagas			= page.dropVagas.SelectedValue();
	}

	busca.Ordenacao	= page.dropOrdenacao.SelectedValue();
	busca.FaseObraID	= page.dropFaseDaObra.SelectedValue();
	busca.ValorDe		= page.dropValorDe.SelectedValue() * 1000;
	busca.ValorAte		= page.dropValorAte.SelectedValue() * 1000;

	busca.Dormitorios = page.dropDormitorios.SelectedValue();

	App.ExibeAlerta( 'Rossi', 'Efetuando Pesquisa...', true );
	AtualizaMenu(busca.EstadoID, busca.CidadeID);
	Ajax.EfetuaPesquisa( busca, FinalizaPesquisa );
}

var comparacao = [];

function AtualizaComparacao(id)
{
	if( comparacao.IndexOf(id) >= 0 )
	{
		comparacao.Remove(id);
		$('imgComparar'+id).src = ResourcePath + 'include/img/form_checkbox_off4.jpg';
	}
	else
	{
		if( comparacao.length >= 4 )
		{
			alert('Somente 4 empreendimentos podem ser comparados por vez.');
			return;
		}
		comparacao.Add(id);
		$('imgComparar'+id).src = ResourcePath + 'include/img/form_checkbox_on4.jpg';
	}
}

function Comparar()
{
	if( comparacao.length < 2 )
	{
		alert( 'Ao menos 2 empreendimentos devem ser selecionados' );
		return;
	}
	var url = page.ResolveUrl('~/empreendimentos-comparacao.aspx?');
	for(var i=0; i<comparacao.length; i++)
		url += String.Format('emp{0}={1}&', (i+1), comparacao[i] );
		
	url += String.Format('estado={0}&cidade={1}', App.EstadoBusca, App.CidadeBusca||'');
	window.location = url;
}

function MontaPaginacao(paginaAtual, totalItens, itensPorPagina, funcaoPesquisa, paginador)
{
	itensPorPagina = itensPorPagina || 15;
	funcaoPesquisa = funcaoPesquisa || 'EfetuaPesquisa';
	paginador = paginador || page.Paginador;
	
	var paginas = parseInt(totalItens / itensPorPagina) + (totalItens%itensPorPagina?1:0);

	var html;
	if(paginaAtual > 0)
		html = String.Format('<b>P&aacute;gina</b><a href="#" onclick="{2}(0); return false;"><img src="{1}include/img/paginacao_anterior_p.gif" width="11" height="11" class="absmiddle" hspace="2" border="0" alt="Primeira p&aacute;gina" /></a> <a href="#" onclick="{2}({0}); return false;"><img src="{1}include/img/paginacao_anterior_g.gif" width="16" height="15" class="absmiddle" hspace="2" border="0" alt="Anterior" /></a>', paginaAtual - 1, ResourcePath, funcaoPesquisa);
	else
		html = String.Format('<b>P&aacute;gina</b><a href="#" onclick="return false;"><img src="{0}include/img/paginacao_anterior_p.gif" width="11" height="11" class="absmiddle" hspace="2" border="0" alt="Primeira p&aacute;gina" /></a> <a href="#" onclick="return false;"><img src="{0}include/img/paginacao_anterior_g.gif" width="16" height="15" class="absmiddle" hspace="2" border="0" alt="Anterior" /></a>', ResourcePath);

	for(var i=0; i<paginas; i++)
	{
			html += String.Format( '<a href="#" class="{1}" onclick="{3}({2}); return false;">{0}</a>&nbsp;', i+1, (i==paginaAtual?'cinzaM b nLinha':'azulpisc nLinha'), i, funcaoPesquisa );
			if( i+1 <paginas )
				html += String.Format('<img src="{0}include/img/paginacao_pontilhado.gif" width="1" height="7" alt="" />&nbsp;', ResourcePath);
	}
	if( (paginaAtual+1) < paginas )
		html += String.Format('<a href="#" onclick="{3}({0}); return false;"><img src="{2}include/img/paginacao_proximo_g.gif" width="16" height="15" class="absmiddle" hspace="2" border="0" alt="Pr&oacute;xima" /></a><a href="#" onclick="{3}({1}); return false;"><img src="{2}include/img/paginacao_proximo_p.gif" width="11" height="11" class="absmiddle" hspace="2" border="0" alt="&Uacute;ltima p&aacute;gina" /></a>', paginaAtual + 1, paginas - 1, ResourcePath, funcaoPesquisa);
	else
		html += String.Format('<a href="#" onclick="return false;"><img src="{0}include/img/paginacao_proximo_g.gif" width="16" height="15" class="absmiddle" hspace="2" border="0" alt="Pr&oacute;xima" /></a><a href="#" onclick="return false;"><img src="{0}include/img/paginacao_proximo_p.gif" width="11" height="11" class="absmiddle" hspace="2" border="0" alt="&Uacute;ltima p&aacute;gina" /></a>', ResourcePath);

	paginador.innerHTML = html;
}

function InicializaDropBairros()
{
	page.dropBairro1.Clear();
	page.dropBairro1.Add( 'Bairro', 'Bairro' );
	page.dropBairro1.SetDisabled();
	page.btnMaisBairro1.style.display = 'none';

	page.dropBairro2.Clear();
	page.dropBairro2.Add( 'Bairro', 'Bairro' );

	page.dropBairro3.Clear();
	page.dropBairro3.Add( 'Bairro', 'Bairro' );

}

function MudaExibicao(buscaRapida, naoEfetuaPesquisa)
{
	page.BuscaRapida = buscaRapida;
	if( buscaRapida )
	{
		page.imgMudaExibicaoAvancada.src	= ResourcePath + 'include/img/lateral_aba_buscaavancada_off.gif';
		page.imgMudaExibicaoRapida.src		= ResourcePath + 'include/img/lateral_aba_buscarapida_on.gif';

		page.PainelBusca.style.height		= '90px'
		page.BuscaLocalizacao.style.display	= 'none';
		page.BuscaVagas.style.display		= 'none';
		page.BuscaArea.style.display		= 'none';
		$('buscaAvancadaCentroDireita').style.width = '694px';
	}
	else
	{
		page.imgMudaExibicaoAvancada.src	= ResourcePath + 'include/img/lateral_aba_buscaavancada_on.gif';
		page.imgMudaExibicaoRapida.src		= ResourcePath + 'include/img/lateral_aba_buscarapida_off2.gif';

		page.PainelBusca.style.height		 = '156px'
		page.BuscaLocalizacao.style.display  = '';
		page.BuscaVagas.style.display		 = '';
		page.BuscaArea.style.display		 = '';
		page.BuscaDormitorios.style.position = '';
		page.BuscaValor.style.position		 = '';
		$('buscaAvancadaCentroDireita').style.width = '514px';

		if( /MSIE 6/.test(navigator.userAgent) )
		{
			page.divBtnBuscar.style.left = '884px';
			page.divBtnBuscar.style.top  = '345px';
		}
		else
		{
			page.divBtnBuscar.style.left	= '880px';
			page.divBtnBuscar.style.top	= '340px';
		}
	}

	if(!naoEfetuaPesquisa)
		EfetuaPesquisa();
}

function PesquisaImoveisAVenda( estado, cidade, nomeCidade )
{
	App.TrackPesquisa(estado, nomeCidade);

	var busca = {};
	busca.EstadoID = estado;
	busca.CidadeID = cidade;

	busca.Apto			= 1;
	busca.Casa			= 1;
	busca.Lote			= 1;
	busca.Comercial		= 1;
	page.PaginaAtual	= 0;
	App.ExibeAlerta( 'Rossi', 'Efetuando Pesquisa...', true );
	MudaExibicao(1, 1);
	AtualizaMenu(estado, cidade);
	Ajax.EfetuaPesquisa( busca, FinalizaPesquisa );
}

App.TrackPesquisa = function(estado, cidade, bairro)
{
	if (!String.IsNullOrEmpty(bairro))
		App.TrackAnalytics('imoveis-a-venda', String.Format('{0}/{1}/imoveis-{2}.aspx', estado.toLowerCase(), cidade.ToUrlFormat(), bairro.ToUrlFormat()));
	else if (!String.IsNullOrEmpty(cidade))
		App.TrackAnalytics('imoveis-a-venda', String.Format('{0}/imoveis-{1}.aspx', estado.toLowerCase(), cidade.ToUrlFormat()));
	else
		App.TrackAnalytics('imoveis-a-venda', String.Format('imoveis-{0}.aspx', estado.toLowerCase()));
}


function AtualizaMenu(estado, cidade)
{
	if( App.MenuEstado )
		App.MenuEstado.className = 'menu_off';

	estado = (estado||'').toUpperCase();
	var elem = $('lista_iavs_' + (App.CidadeBusca||App.EstadoBusca) );
	if( elem )
	{
		elem.className = 'submenu_off';
		elem.removeAttribute('menuPinned');
	}

	App.CidadeBusca = cidade;
	App.EstadoBusca = estado;

	var elem = $('lista_iavs_'+(cidade||estado));
	if( elem )
	{
		elem.className = 'submenu_on';
		elem.setAttribute('menuPinned', '1');
	}
	elem = $('lista_iav_'+estado);
	if( elem )
		elem.className = 'menu_on';

	App.MenuEstado = elem;
	App.ExpandeImoveisAVenda(estado, 'divIAV', 1)
}

function FinalizaPesquisa(rt)
{
    var empreendimentos = (rt[0] || {}).TotalEmpreendimentos || 0;
    page.PaginaAtual = (page.PaginaAtual || 0);

    MontaPaginacao(page.PaginaAtual, empreendimentos);
    page.rptResultado.Bind(rt);

    var start = (page.PaginaAtual * 15) + 1;
    var end = -1 + start + rt.length;
    page.ltTotalEmpreendimentos.innerHTML = empreendimentos.toString();
    page.ltTotalEmpreendimentos2.innerHTML = end.toString();
    page.ltItensPagina.innerHTML = start.toString();
    

    App.FechaAlerta();
    page.EmpreendimentosPaginaAtual = rt;
}

function ExibePopImpressao()
{
	var ids = "";
	for( i = 0; i < page.EmpreendimentosPaginaAtual.length; i++ )
		ids += page.EmpreendimentosPaginaAtual[i].ID + ",";
	
	window.open( page.ResolveUrl('~/aspx/Empreendimentos/PopImpressao.aspx?ids='+ ids ), '_blank', 'location=no, menubar=nom resizable=yes, scrollbars=yes, status=no, titlebar=no, toolbar=no, width=750, height=550' )
}

page.AddOnPosLoad( InicializaPagina );
page.AddOnPosLoad( function(){ setTimeout('if( !page.dropCidades.value ) InicializaDropBairros();', 100); } );
