﻿(function($) {
    $.fn.newsScroller = $.fn.newsscroller = function(options) {
        var defaults = {
            speed: 400,
            delay: 3000,
            listItemHeight: this.children('li.article').outerHeight()
        };

        options = $.extend(defaults, options);

        animate = function(list) {
            if (list.paused && list.animated) return;

            list.animated = false;

            list.children('li.article:first')
  	    	    .animate({
  	    	            marginTop: '-' + options.listItemHeight,
  	    	            opacity: 'hide'
  	    	        }, options.speed,

    		        function() {
  	    	            list.children('li.article:first')
 				            .appendTo(list)
 					        .css('marginTop', 0)
 					        .fadeIn(300);

    		            list.animated = true;
    		        }
 	        );
        };

        return this.each(function() {
            var $this = $(this);

            $this.paused = false;
            $this.animated = false;

            $this.mouseenter(function() {
                $this.paused = true;
            });

            $this.mouseleave(function() {
                $this.paused = false;
            });

            setInterval(function() { animate($this); }, options.delay);
        });
    }
})(jQuery);