var Ticker = new Class({

	Implements: [Options],
	
	options: {
		speed: 1500,
		delay: 5000,
		direction: 'vertical',
		height: '60px',
		onComplete: Class.empty,
		onStart: Class.empty
	},
	
	initialize: function(el,options){
		this.setOptions(options);
		this.el = $(el);
		this.wrapper = new Element('div', {
			styles: {
				'position' : 'relative',
				'height' : this.options.height,
				'overflow' : 'hidden',
				'margin-bottom' : '5px'
			}
		}).wraps(this.el);
		this.items = this.el.getElements('li');
		var w = 0;
		var h = 0;
		if(this.options.direction.toLowerCase()=='horizontal') {
			h = this.el.getSize().y;
			this.items.each(function(li,index) {
				w += li.getSize().x;
			});
		} else {
			w = this.el.getSize().x;
			this.items.each(function(li,index) {
				h += li.getSize().y;
			});
		}
		this.el.setStyles({
			position: 'absolute',
			'margin-top': '0px',
			top: 0,
			left: 0,
			width: w,
			height: h
		});
		this.fx = new Fx.Morph(this.el,{duration:this.options.speed,onComplete:function() {
			var i = (this.current==0)?this.items.length:this.current;
			this.items[i-1].injectInside(this.el);
			this.el.setStyles({
				left:0,
				top:0
			});
		}.bind(this)});
		this.current = 0;
		this.next();
	},
	next: function() {
		this.current++;
		if (this.current >= this.items.length) this.current = 0;
		var pos = this.items[this.current];
		this.fx.start({
			top: -pos.offsetTop,
			left: -pos.offsetLeft
		});
		this.next.bind(this).delay(this.options.delay+this.options.speed);
	}
});