﻿if (typeof (Galeria) == 'undefined')
    var Galeria = {};
/******************
Exemplo de criação de objeto aba
var Aba1 = {
    , classGaleria: ".div_aba_imoveis_1" //classe da div que engloba toda a ul da de cada aba da galeria
    , classLiGaleria: ".li_aba_imoveis_1" //classe da li que identifica a aba
};
var Aba2 = {
    , classGaleria: ".div_aba_imoveis_2"
    , classLiGaleria: ".li_aba_imoveis_2"
};
var objAbas = new Array(Aba1, Aba2); // exemplo de criação de instacia de array com abas
********************/
Galeria.ArrayAbas = {} // esse o atributo que recebe o array que defini as classes de cada aba
Galeria.ABA_INICIAL = 0; //o indice que identifica a primeira aba que estara visivel
Galeria.ITENS_POR_ABA = 3; //qtde de itens que aparecerão em cada aba
Galeria.VELOCIDADE_TROCA = 250; //velocidade de troca de item na galeria
Galeria.QTDE_ITEM_TROCA_POR_VEZ = 1; //qtde de itens que trocam em cada click na galeria
Galeria.BTN_PROXIMO = '#proximo'; //class ou id que identificam o botão de proximo
Galeria.BTN_ANTERIOR = '#anterior';  //class ou id que identificam o botão de anterior
Galeria.CLASS_GENERICA_LI_GALERIA = '.aba_imovel'; //class genérica que identifica a li da galeria (essa classe deve ser comum a todas as abas)
Galeria.CLASS_NAVEGACAO_OBJETIVA = '.navegacao_objetiva'; //class genérica que identifica a li da galeria (essa classe deve ser comum a todas as abas)

//função que faz a troca da aba de exibição da galeria
Galeria.trocaAba = function (indiceExibicao, indiceAnterior) {
    var retrocedendo = false;
    var itemInicial = 0;
    if (indiceAnterior > indiceExibicao) {//verificando se está retrocedendo nas exibições
        retrocedendo = true;
    }
    if (indiceExibicao > this.ArrayAbas.length - 1) {//verificando se ja está na ultima aba
        indiceExibicao = Galeria.ABA_INICIAL;
    } else if (indiceExibicao < Galeria.ABA_INICIAL) {//verificando se está na primeira aba e primeiro imovel para seja mostrada a ultima aba
        indiceExibicao = this.ArrayAbas.length - 1;
    }

    if (retrocedendo) {//caso esteja retrocedendo altera o item inicial para que a aba não inicie pelo item 0
        itemInicial = $(this.ArrayAbas[indiceExibicao].classGaleria + ' > ul').find('li').length - Galeria.ITENS_POR_ABA;
    }

    $(Galeria.CLASS_GENERICA_LI_GALERIA).removeClass('ativa'); //removendo a class ativa de todas as li
    $(this.ArrayAbas[indiceExibicao].classLiGaleria).addClass('ativa');
    $(Galeria.BTN_PROXIMO).unbind('click');
    $(Galeria.BTN_ANTERIOR).unbind('click');
    Galeria.montaGaleria(indiceExibicao, itemInicial);
}

Galeria.montaGaleria = function (indiceExibicao, itemInicial) {
    $(this.ArrayAbas[indiceExibicao].classGaleria).jCarouselLite({
        btnNext: Galeria.BTN_PROXIMO
                , btnPrev: Galeria.BTN_ANTERIOR
                , scroll: Galeria.QTDE_ITEM_TROCA_POR_VEZ
                , speed: Galeria.VELOCIDADE_TROCA
                , visible: Galeria.ITENS_POR_ABA
                , start: itemInicial
                , afterNext: function () { Galeria.trocaAba(indiceExibicao + 1, indiceExibicao); }
                , beforePrev: function () { Galeria.trocaAba(indiceExibicao - 1, indiceExibicao); }
                , afterEnd: function(a) { 
                    $(Galeria.CLASS_NAVEGACAO_OBJETIVA + ' > li').removeClass('ativa'); $(Galeria.CLASS_NAVEGACAO_OBJETIVA + ' > li').eq(parseInt(a / Galeria.ITENS_POR_ABA)).addClass('ativa'); 
                   }
    });
    Galeria.adicionaNavegacaoObjetiva(Galeria.CLASS_NAVEGACAO_OBJETIVA, indiceExibicao, itemInicial);
}
Galeria.adicionaContador = function (elementoContador) {
    //adicionando quantidade de itens por aba
    for (var i = 0; i < Galeria.ArrayAbas.length; i++) {
        var itens = $(Galeria.ArrayAbas[i].classGaleria + ' > ul').find('li').length;

        //adicionando lis vazias para tratar para trabalhar sempre com números divisiveis a QTDE_ITEM_TROCA_POR_VEZ 
        if (Galeria.ITENS_POR_ABA > 1 && itens % Galeria.ITENS_POR_ABA != 0) {
            var resto = itens % Galeria.ITENS_POR_ABA;
            while (resto < Galeria.ITENS_POR_ABA) {
                $(Galeria.ArrayAbas[i].classGaleria + ' > ul').append('<li>&nbsp;</li>');
                resto++;
            }
        }
        $(Galeria.ArrayAbas[i].classLiGaleria).find(elementoContador).html(itens);
    }
}
Galeria.adicionaNavegacaoObjetiva = function (elementoNavegacao, indiceExibicao, itemInicial) {
    var itens = $(Galeria.CLASS_GENERICA_LI_GALERIA + '.ativa').find('li').length;
    var paginas = parseInt(itens / Galeria.ITENS_POR_ABA);
    if (itens % Galeria.ITENS_POR_ABA != 0)
        paginas++;
    $(elementoNavegacao).html('');
    for (var i = 0; i < paginas; i++) {
        var cssClass = '';
        if (itemInicial / Galeria.ITENS_POR_ABA == i)
            cssClass = 'class="ativa"';
        $(elementoNavegacao).append('<li ' + cssClass + '><a href="#" onclick="Galeria.cliqueNavegacaoObjetiva(' + i + ', ' + indiceExibicao + ');return false;" title="seção ' + i + '">seção ' + i + '</a></li>');
    }
    if (($.browser.msie && $.browser.version <= 7)) {
        $(elementoNavegacao + ' > li').css('display', 'inline');
    }
}
Galeria.cliqueNavegacaoObjetiva = function (indiceLi, indiceExibicao) {
    $(Galeria.BTN_PROXIMO).unbind('click');//limpando ações padrão das setas
    $(Galeria.BTN_ANTERIOR).unbind('click');
    Galeria.montaGaleria(indiceExibicao, indiceLi * Galeria.ITENS_POR_ABA);
}
