/* 
 * @version 1.0
 * @date 2010.17.02
 * @author jakim (selkar.pl)
 * W planach: lepsze wczytywanie paneli (preloader), detekcja wielkosci, rozwiazanie dla braku javaScript
 */
(function($){



    $.fn.jSlideShow = function(options){
        //alert("Testing preloader");
        // glowny obiekt
        var jSlideShow = $(this);
        // szerokosc jednego panelu
        var panelWidth = 215;//jSlideShow.find(".jSlideShow-panel").width();
        // wysokosc pierwszego panelu
        var panelHeight = 180;//jSlideShow.find(".jSlideShow-panel:first").height();
        // ilosc paneli
        var panelCount = jSlideShow.find(".jSlideShow-panel").size();
        // identyfikator zwracany przez setInterval
        var timer;
        // aktywny panel
        var currentPanel = 0;//Math.floor(Math.random()*panelCount);
        // kolejny panel
        //var nextPanel = 0;
        //poprzedni panel
        //var prevPanel = panelCount;

        //KONTENER NA WSZYSTKIE PANELE i NAWIGACJE
        $('.jSlideShow-cont', jSlideShow).css({
            width: (panelWidth*panelCount),
            height: panelHeight,
            overflow: 'hidden'
        });
        // KONTROLSY
        if(panelCount>1){ /* jesli wiecej niz jeden panel*/
            if(currentPanel != 0) /* jeli panel startowy inny niz pierwszy */
                jakimAnimateSlideShow(currentPanel);

            var jSlideShowNav = $('<ul class="jSlideShow-nav"></ul>');
            $('.jSlideShow-panel', jSlideShow).each(function(n) {
                var title = $(this).children('img').attr('alt');
                var li = $('<li title="'+ title +'">' + (n+1) + '</li>');
                $(li).bind('click', function(){
                    currentPanel = ($(this).text())-1;
                    jakimAnimateSlideShow(currentPanel);
                    jakimUpdateSlideShowNav(currentPanel);

                    clearInterval(timer);
                    timer = setInterval(jakimSlideShow, 5000);
                });
                jSlideShowNav.append(li);
            });
            jakimUpdateSlideShowNav(currentPanel)
            //jSlideShowNav.prepend('<li>&#171;</li>');
            //jSlideShowNav.append('<li>&#187;</li>');
            //jakimUpdateSlideShowNav(currentPanel);
            jSlideShow.prepend(jSlideShowNav);
        }
        function jakimSlideShow(){
            currentPanel++;
            if(currentPanel == panelCount) currentPanel = 0;
            // aktualizacja nawigacji
            jakimUpdateSlideShowNav(currentPanel);
            jakimAnimateSlideShow(currentPanel);
        }
        function jakimAnimateSlideShow(x){
            $('.jSlideShow-cont', jSlideShow).animate({
                marginLeft: -panelWidth*x,
                height:$('.jSlideShow-panel:eq('+x+')', jSlideShow).height()
            }, 500);
        }
        function jakimUpdateSlideShowNav(x){
            $('li[title]', jSlideShowNav).each(function(n){
                $(this).toggleClass('current', n==x);
            })
            /*
            nextPanel = x+1;
            prevPanel = x-1;
            if(x == 0){
                prevPanel = (panelCount-1);
            }else if(x == (panelCount-1)){
                nextPanel = 0;
            }
            $('li:first-child', jSlideShowNav).bind('click', function(){
                clearInterval(timer);
                jakimAnimateSlideShow(prevPanel);
            });
            $('li:last-child', jSlideShowNav).bind('click', function(){
                clearInterval(timer);
                jakimAnimateSlideShow(nextPanel);
            });
            */
        }

        // glowny silnik pluginu
        return this.each(function(){
            timer = setInterval(jakimSlideShow, 5000);
        });
    }
})(jQuery);

$(document).ready(function(){
    $('#liveBox').jSlideShow();
})
