﻿(function($) {

    $.fn.simpleSpy = function(limit, interval) {
        limit = limit || 2;
        interval = interval || 9000;

        return this.each(function() {
            var $list = $(this),
			    items = [], 
			    currentItem = limit,
			    total = 0, 
			    height = $list.find('> li:first').height();

            $list.find('> li').each(function() {
                items.push('<li>' + $(this).html() + '</li>');
            });

            total = items.length;
            $list.wrap('<div class="spyWrapper" />').parent().css({ height: height * limit });
            $list.find('> li').filter(':gt(' + (limit - 1) + ')').remove();
       
            function spy() {
                var $insert = $(items[currentItem]).css({
                    height: 0,
                    opacity: 0,
                    display: 'none'
                }).prependTo($list);

                $list.find('> li:last').animate({ opacity: 0 }, 2000, function() {
                    $insert.animate({ height: height }, 1000).animate({ opacity: 1 }, 2000);
                    $(this).remove();
                });
                currentItem++;
                if (currentItem >= total) {
                    currentItem = 0;
                }
                if (animate) {
                    setTimeout(spy, interval)
                }
            }
            spy();
        });
    };
})(jQuery);
