jQuery.fn.coolTicker = function(options){
	
	options = options || {};
	
	options = jQuery.extend({
		delay: 5000,
		verticalTravel: 22,
		horizontalTravel: 10,
		pauseOnHover: true
	}, options);
	
	var container = $j(this);
	var items = container.find('li');
	
	if (items.length < 1) return this;
	
	container.css('position', 'relative');
	items.hide();
	
	container.data('item_set', items);
	container.data('current_item', $j(items.get(-1)) );
	container.data('next_item', $j(items[0]) );
	container.data('ticker_options', options);
	
	var gotoNext = function(){
		var options = container.data('ticker_options');
		var currentItem = container.data('current_item');
		var nextItem = container.data('next_item');
		var set = container.data('item_set');
		var i = set.index(nextItem);
		var n = ((i + 1) >= set.length)? 0 : i + 1;
		
		container.data('current_item', nextItem);
		container.data('next_item', $j(set[n]) );
		
		currentItem.animate({'paddingLeft': 0, 'opacity': 0}, null, null, (function(nextItem, verticalTravel, horizontalTravel){
			return function(){
				$j(this).hide();
				nextItem.show().css({'paddingTop': verticalTravel, 'paddingLeft': horizontalTravel, 'opacity': 0});
				nextItem.animate({
					'paddingTop': 0,
					'opacity': 1
				});
				
			}
		})(nextItem, options.verticalTravel, options.horizontalTravel));
		
	}
	
	container.data('gotoNext', gotoNext);
	
	if(options.pauseOnHover){
		container.bind('mouseenter', function(){
			clearInterval($j(this).data('cool_ticker_timer'));
		}).bind('mouseleave', function(){
			$j(this).data('cool_ticker_timer', setInterval(gotoNext, options.delay) );
		});
	}
	
	container.data('cool_ticker_timer', setInterval(gotoNext, options.delay) );
	
	gotoNext();
	
	return this;
	
};
