﻿var Portfolio = {};

Portfolio.Inicializa = function() 
{
    Portfolio.DropCidades = Tesla.UI.ListControl.GetByID('dropCidadesPortfolio');
    Portfolio.DropCidades.Clear();
    Portfolio.DropCidades.DataBind(PortfolioCidades, 'Nome', 'ID', 'Cidades');
}

page.Empreendimentos = {};

Portfolio.MontaPaginacao = function(paginaAtual, empreendimentos, metodo) 
{
    var paginas = parseInt(empreendimentos / 20) + (empreendimentos % 20 ? 1 : 0);

    var html;
    if (paginaAtual > 0)
        html = String.Format('<a href="#" onclick="Portfolio.MontaPagina(0,{1}); return false;" class="pagFirst" title="Primeira p&aacute;gina"><span>Primeira p&aacute;gina</span></a> <a href="#" onclick="Portfolio.MontaPagina({0},{1}); return false;" class="pagPrev" title="Anterior"><span>Anterior</span></a>', paginaAtual - 1, metodo, ResourcePath);
    else
        html = String.Format('<a href="#" onclick="return false;" class="pagFirst" title="Primeira p&aacute;gina"><span>Primeira p&aacute;gina</span></a> <a href="#" onclick="return false;" class="pagPrev" title="Anterior"><span>Anterior</span></a>', ResourcePath);

    for (var i = 0; i < paginas; i++) {
        if (i == 0) {
			html += String.Format('<a href="#" class="pagNumberFirst {1}" onclick="Portfolio.MontaPagina({2},{3}); return false;">{0}</a>&nbsp;', i + 1, (i == paginaAtual ? 'pagNumber pagSelected' : 'pagNumber'), i, metodo);
		}
		else {
			html += String.Format('<a href="#" class="{1}" onclick="Portfolio.MontaPagina({2},{3}); return false;">{0}</a>&nbsp;', i + 1, (i == paginaAtual ? 'pagNumber pagSelected' : 'pagNumber'), i, metodo);
		}
    }
    if ((paginaAtual + 1) < paginas)
        html += String.Format('<a href="#" onclick="Portfolio.MontaPagina({0},{2}); return false;" class="pagNext" title="Pr&oacute;xima"><span>Pr&oacute;xima</span></a><a href="#" onclick="Portfolio.MontaPagina({1},{2}); return false;" class="pagLast" title="&Uacute;ltima p&aacute;gina"><span>&Uacute;ltima p&aacute;gina</span></a>', paginaAtual + 1, paginas - 1, metodo, ResourcePath);
    else
        html += String.Format('<a href="#" onclick="return false;" class="pagNext" title="Pr&oacute;xima"><span>Pr&oacute;xima</span></a><a href="#" onclick="return false;" class="pagLast" title="&Uacute;ltima p&aacute;gina"><span>&Uacute;ltima p&aacute;gina</span></a>', ResourcePath);

    document.getElementById('paginador_portfolio').innerHTML = html;
}

Portfolio.MontaPagina = function(paginaAtual, metodo)
{
	page.PaginaAtual = paginaAtual;
	page.Metodo = metodo;
	switch( metodo )
	{
		case 1:
			Ajax.ListaPortfolio( paginaAtual, Portfolio.PopulaRepeater );
		break;
		case 2:
			Ajax.PesquisaPortfolioCidade( page.CidadePortfolio, paginaAtual, Portfolio.PopulaRepeater );
		break;
		case 3:
			Ajax.PesquisaPortfolioPalavra( page.PalavraPortfolio, paginaAtual, Portfolio.PopulaRepeater );
		break;
	}
}

Portfolio.PopulaRepeater = function( rt )
{
	page.rptPortfolio.Bind( rt.Empreendimentos );
	Portfolio.MontaPaginacao( page.PaginaAtual, rt.Total, page.Metodo );
}

Portfolio.EfetuaPesquisaCidade = function()
{
	page.CidadePortfolio = Portfolio.DropCidades.SelectedValue();
	Portfolio.MontaPagina( 0, 2 );
}

Portfolio.EfetuaPesquisaPalavra = function() 
{
    var palavra = document.getElementById("txtPalavra");
    page.PalavraPortfolio = palavra.value;
    Portfolio.MontaPagina(0, 3);
}

Portfolio.ExibeMapas = function(id)
{
	if (page.Empreendimentos[id])
	{
		if (!page.Empreendimentos[id].Mapas.length)
		{
			alert("Não existem mapas para o empreendimento escolhido.");
			return;
		}
		Portfolio.divMapaImagem = $Get('divMapaImagem');
		Portfolio.imgMapa = $Get('imgMapa');
		Portfolio.divTexto = $Get('divTexto');

		Portfolio.divTexto.innerHTML = "Como Chegar";
		App.EscondeTela();
		Portfolio.divMapaImagem.style.display = '';
		Portfolio.divMapaImagem.style.zIndex = 1001;
		App.CentralizaControle(Portfolio.divMapaImagem);

		Portfolio.imgMapa.src = page.Empreendimentos[id].Mapas[0].Ampliada;
		page.rptThumbs.Bind(page.Empreendimentos[id].Mapas);
		//Portfolio.PopulaThumbMapas( id );
		return;
	}
	Ajax.ObtemEmpreendimento(id, function(rt) { Portfolio.PopulaEmpreendimento(rt, 1); });
}

Portfolio.PopulaThumbMapas = function( id )
{
	var indiceMax = page.Empreendimentos[id].Mapas.length < (page.IndiceMapas + 8) ? page.Empreendimentos[id].Mapas.length : (page.IndiceMapas + 8);
	page.rptThumbs.Bind( page.Empreendimentos[id].Mapas.ListRange( page.IndiceMapas, indiceMax ) );
}

Portfolio.ExibeFotos = function( id )
{
	if( page.Empreendimentos[id] )
	{
		if( !page.Empreendimentos[id].Fotos.length )
		{
			alert( "Não existem fotos para o empreendimento escolhido." );
			return;
		}	
		Portfolio.divMapaImagem = $Get('divMapaImagem');
		Portfolio.imgMapa = $Get('imgMapa');
		Portfolio.divTexto = $Get('divTexto');

		Portfolio.divTexto.innerHTML = "Fotos do Empreendimento";
		App.EscondeTela();
		Portfolio.divMapaImagem.style.display = '';
		Portfolio.divMapaImagem.style.zIndex = 1001;
		App.CentralizaControle(Portfolio.divMapaImagem);

		Portfolio.imgMapa.src = page.Empreendimentos[id].Fotos[0].Ampliada;
		page.rptThumbs.Bind( page.Empreendimentos[id].Fotos );
		//Portfolio.PopulaThumbFotos( id );
		return;
	}
	Ajax.ObtemEmpreendimento( id, function(rt){ Portfolio.PopulaEmpreendimento( rt, 2 ); } );
}

Portfolio.PopulaThumbFotos = function( id )
{
	var indiceMax = page.Empreendimentos[id].Fotos.length < (page.IndiceFotos + 8) ? page.Empreendimentos[id].Fotos.length : (page.IndiceFotos + 8);
	page.rptThumbs.Bind( page.Empreendimentos[id].Fotos.ListRange( page.IndiceFotos, indiceMax ) );
}

Portfolio.FechaPopup = function()
{
	App.ExibeTela();
	Portfolio.divMapaImagem = $Get('divMapaImagem');
	Portfolio.divMapaImagem.style.display = 'none';
}


Portfolio.PopulaEmpreendimento = function(rt, tipo)
{
	if (!rt)
	{
		switch (tipo)
		{
			case 1: alert('Não existem mapas para o empreendimento escolhido.'); break;
			case 2: alert('Não existem fotos para o empreendimento escolhido.'); break;
		}
		return;
	}
	page.Empreendimentos[rt.ID] = rt;
	switch (tipo)
	{
		case 1: Portfolio.ExibeMapas(rt.ID); break;
		case 2: Portfolio.ExibeFotos(rt.ID); break;
	}
}

Portfolio.MudaImagem = function(imagem)
{
	Portfolio.imgMapa = $Get('imgMapa');
	Portfolio.imgMapa.src = imagem;
}

page.AddOnPosLoad(Portfolio.Inicializa);
