(function($) {
$.fn.newsticker = function(delay,speed){
	delay = delay || 5000;
	speed = speed || 200;
	initTicker = function(el){
		stopTicker(el);
		el.items = $("li", el);
		el.items.not(":eq(0)").hide().end();
		el.currentitem = 0;
		startTicker(el);
	};
	startTicker = function(el){el.tickfn = setInterval(function() { doTick(el) }, delay)};
	stopTicker = function(el){clearInterval(el.tickfn);};
	pauseTicker = function(el){el.pause = true;};
	resumeTicker = function(el){el.pause = false;};
	doTick = function(el){
		if(el.pause) return;
		el.pause = true;
		$(el.items[el.currentitem]).fadeOut("slow",
			function(){
				$(this).hide();
				el.currentitem = ++el.currentitem % (el.items.size());
				$(el.items[el.currentitem]).fadeIn(speed,function(){el.pause = false;});
			}
		);
	};
	this.each(function(){initTicker(this);})
	.hover(function(){pauseTicker(this);},function(){resumeTicker(this);});
	return this;
};
})(jQuery);