(function($){
    $.fn.pagingWidget = function(options) {
        var opts = $.extend({}, $.fn.pagingWidget.defaults, options);
        return this.each(function() {
            var $elem = $(this);
            var resize = opts.resize || ($elem.attr('data-paging-resize') === 'true');
            var scrollTime = opts.scroll || parseInt($elem.attr('data-paging-scroll'));
            var pagingNav = opts.navElement || $('.' + opts.navClass, $elem).eq(0);
            var pagingItems = $('.' + opts.itemClass, $elem);
            $elem.data('paging-tallest', 0);

            function selectItem(item) {
                pagingItems.hide();
                pagingItems.removeClass(opts.activeClass);
                $('a', pagingNav).removeClass(opts.activeClass);
                var pageItem = $(item).data('page-item');
                if (pageItem) {
                    pageItem.show();
                    pageItem.addClass(opts.activeClass);
                    $(item).addClass(opts.activeClass);
                }
            }
    
            function autoCycle() {
                var navLinks = $('a', pagingNav);
                var activeLink = $('a.' + opts.activeClass, pagingNav);
                var currentIndex = navLinks.index(activeLink);
                var nextIndex = currentIndex + 1;
                if (nextIndex == navLinks.length) {
                    nextIndex = 0;
                }
                selectItem(navLinks.eq(nextIndex));
            }

            var scrollInterval = null;
            if (scrollTime) {
                scrollInterval = setInterval(autoCycle, scrollTime);
            }

            function linkClick(e) {
                e.preventDefault();
                selectItem($(this));
                if (scrollInterval) {
                    clearInterval(scrollInterval);
                }
            }

            pagingItems.each(function(i, item) {
                var link = $('<a/>').text(i)
                .attr('href', '#' + $(item).attr('id'))
                .data('page-item', $(item));
                $elem.data('paging-tallest', Math.max($elem.data('paging-tallest'), $(item).height()));
                link.click(linkClick);
                pagingNav.append(link);
            });
            if (resize) {
                $elem.css('height', $elem.data('paging-tallest'));
            }
            selectItem(pagingNav.find('a').eq(0));
            if (pagingItems.length === 1) {
                pagingNav.hide();
            }
        });
    };
	$.fn.pagingWidget.defaults = {
		navClass: "paging",
        navElement: null,
        itemClass: "page-item",
        activeClass: "here",
        resize: false,
        scroll: null
    };
})(jQuery);

jQuery(function($) {
    $('.paging-block').pagingWidget();
    var dateNav = $('#date-scrollable');
    if (dateNav.length) {
        dateNav.scrollable({
            items: '.month-block',
            next: '.next',
            prev: '.previous',
            disabledClass: 'dimmed'
        });
        var api = dateNav.data("scrollable");
        var here = $('#date-scrollable a.here').eq(0).parents().filter('.month-block').eq(0);
        var index = api.getItems().index(here);
        if (index != -1) api.seekTo(index, 400);
    }
});

