var scrollIt = new Class({
	  Implements: Options
	, options: {
		  duration: 500
		, elements: 'li'
		, offset:	0
		, period:	3000
	}
	, initialize: function(el, options)	{
		this.setOptions(options);
		
		this.el = el;
		this.elements = el.getElements(this.options.elements);
		
		c = this.elements.length;
		for(i = 0; i < c; i++)		{
			ul = this.elements[i].clone();
			if(i == 0)	{
				
				this.elements.push	(
					ul
				);
			}
			this.el.adopt(ul);
		};
		
		this.ticker = new Fx.Scroll(this.el, {
			  duration: this.options.duration
			, onComplete: this.comp.bind(this)
		});
		
		this.el.addEvent('mouseenter', function()	{
			$clear(this.idPeriodical);
		}.bind(this));
		this.el.addEvent('mouseleave', function()	{
			this.begin();
		}.bind(this));
		
		this.counter = this.options.offset;
		this.goTo(this.counter);
		
		this.begin();
	}
	, comp: function()	{
		if(this.counter == this.elements.length)	{
			this.ticker.set(0,0);
			this.counter = 1;
		}
	}
	, begin: function()	{
		this.idPeriodical	=
			this.rollIt.periodical	(
				this.options.period, this
			)
		;
	}
	, goTo: function(i)	{
		this.ticker.toElement(this.elements[i]);
	}
	, rollIt: function()	{
		this.goTo(this.counter++);
	}
});