(function($) {
    $.fn.spinner = function(options) {
        var settings = $.extend({
            'speed': 10000,
            'readSpeed': 20000,
            'fadeSpeed': 300,
            'ids': ['#b1', '#b2', '#b3', '#b4', '#b5']
        }, options || {});
    
        var elem = $(this);
        var size = settings.ids.length;
        var pos = 1;
        var prevPos = 0;
    
        var spin = function() {
            $(settings.ids[prevPos], elem).fadeOut(settings.fadeSpeed);
            $(settings.ids[pos], elem).fadeIn(settings.fadeSpeed);
            prevPos = pos;
            pos += 1;
    
            if (pos == size) {
                pos = 0;
            }
        };
    
        var interval;
        var timeout;

        $(window).blur(function() {
            clearInterval(interval);
            clearTimeout(timeout);
        });

        $(window).focus(function() {
            interval = setInterval(spin, settings.speed);
        });
    
        $('.spin-pages li', elem).click(function() {
            clearInterval(interval);
            clearTimeout(timeout);
            pos = $(this).index();
            spin();
    
            timeout = setTimeout(function() {
                interval = setInterval(spin, settings.speed);
            }, settings.readSpeed - settings.speed);
        });

        return this;
    };
})(jQuery);
