(function($){
    $.fn.carousel = function(options) {
        options = $.extend({
            display_li      : 5,
            animation_time  : 700,
            pause_time      : 3000,
            onScroll        : function() {}
        }, options);
 
        return this.each(function() {
            var $t = $(this);
 
            var $ul = $t.find('ul');
            var $li = $ul.find('li');
            var item_width = $li.first().outerWidth(true);
            var interval = null;
 
            var scrollPrev = function()
            {
                if (!$ul.is(':animated')) {
                    var $li = $ul.find('li');
                    $ul.css('left',-item_width);
                    $li.first().before($li.last());
                    $ul.animate({'left' : 0}, options.animation_time, function(){
                        options.onScroll();
                    });
                    clearInterval(interval);
                    interval = setTimeout(function() {scrollNext()}, options.pause_time);
                }
            }
 
            var scrollNext = function()
            {
                var $li = $ul.find('li');
 
                $ul.not(':animated').animate({'left' : -item_width}, options.animation_time, function(){
                    $li.last().after($li.first());
                    $ul.css({'left' : 0});
                    options.onScroll();
                });
                clearInterval(interval);
                interval = setTimeout(function() {scrollNext()}, options.pause_time);
 
            }
 
            interval = setTimeout(function() {scrollNext()}, options.pause_time);
        });
    }
})(jQuery);

