﻿(function($) {
    $.fn.slider = function() {
        var $this = $(this);

        var $slider = $this.find('ul');
        var $items = $slider.find('li');
        $slider.wrap('<div class=\"wrapper\"></div>');

        var $wrapper = $this.find('.wrapper');
        $wrapper.css('overflow', 'hidden');
        $wrapper.css('display', 'block');

        var singleWidth = $items.first().width();

        var pageWidth = $wrapper.width();

        var currentPage = 0;
        var pages = Math.ceil($items.length / Math.floor(pageWidth / singleWidth));
        pages = pages > 0 ? pages : 1;

        $this.find('.slideshow-page-counter span').html('' + (currentPage + 1) + ' av ' + pages);

        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = pageWidth * dir * n;

            if (page >= 0 && page < pages) {
                $wrapper.filter(':not(:animated)').animate({
                    scrollLeft: '+=' + left
                }, 500, function() {
                    currentPage = page;
                    $this.find('.slideshow-page-counter span').html('' + (currentPage + 1) + ' av ' + pages);
                });
            }

            return false;
        }

        $this.find('a.back').click(function(e) {
            e.preventDefault();
            return gotoPage(currentPage - 1);
        });

        $this.find('a.forward').click(function(e) {
            e.preventDefault();
            return gotoPage(currentPage + 1);
        });
    };
})(jQuery);
