(function($) {
	var defaults = {};
	
	function Ticker(config) {
		var self = this;
		
		$.extend(this , {
			init: function() {
				var ticker = $("#ticker");
				ticker.children().filter("dt").each(function() {
					var dt = $(this);
					container = $("<div>");
				  
					dt.next().appendTo(container);
					dt.prependTo(container);
				  
					container.appendTo(ticker);
				});
				
				ticker.css("overflow", "hidden");
				
				this.animator(ticker.children(":first"));
				
				ticker.mouseenter(function() {
					ticker.children().stop();
				});
				
				ticker.mouseleave(function() {
					self.animator(ticker.children(":first"));
				});
			},
			animator: function(currentItem) {
				var distance = currentItem.height();
				duration = (distance + parseInt(currentItem.css("marginTop"))) / 0.015;
			
				currentItem.animate({ marginTop: -distance }, duration, "linear", function() {
					currentItem.appendTo(currentItem.parent()).css("marginTop", 0);
					self.animator(currentItem.parent().children(":first"));
				}); 
			}
		});
	}
	
	$.fn.ticker = function(options) {
		var config = $.extend({}, defaults, options || {});
		$.ticker = new Ticker(config);
		$.ticker.init();
	};
	
})(jQuery);

