
/**
 * uSlider : plugin permettant la gestion du jQuery.cycle sur les sliders de la home
**/

$.fn.uSlider = function (arg) {
    return (this.each(function(){
        $this = $(this);

        $this.find('.slider-list').cycle({
            fx: 'scrollHorz',
            pager: $this.find('.slider-pages'),
            timeout: 0,
            fit: 0,
            prev: $this.find('.slider-button-left'),
            next: $this.find('.slider-button-right'),
            updateActivePagerLink: function(pager, currSlideIndex) {
                var pagesCount = this.elements.length;
                var $pager = $(pager);
                pager.empty();
                var showAround = 2;
                var prevIsSep = false;

                for (var i = 0; i < pagesCount; i++) {
                    var diff = Math.abs(i - currSlideIndex);

                    if (diff <= showAround || i == 0 || (i+1) == pagesCount) {
                        var el = $('<span class="page '+(i == currSlideIndex ? 'currSlide' : '')+'">'+(i+1)+'</span>')
                        el.get(0).slideIndex = i;

                        el.click(function(){
                            $(this).parents('.slider').find('.slider-list').cycle(this.slideIndex);
                        });

                        $pager.append(el);
                        prevIsSep = false;
                        if (i != (pagesCount - 1))
                            $pager.append(' | ');
                    } else {
                        if (!prevIsSep) {
                            $pager.append('...');
                            prevIsSep = true;
                            if (i != (pagesCount - 1))
                                $pager.append(' | ');
                        }
                    }

                }
            }
        });
    }));
};

