var Ticker = new Class({
				setOptions: function(options) {
					this.options = new Hash({
						speed      : 5000,
						delay      : 5000,
						link       :'chain',
						direction  : 'vertical',
						onComplete : Class.empty,
						onStart    : Class.empty,
						transition : 'sine:in:out'
					});
					this.options.extend(options);
				},
				initialize: function(el,options){
					this.setOptions(options);
					this.el = $(el);
					this.items = this.el.getElements('li');
					if (this.items.length == 0) {
						this.el.setStyle('display', 'none');
						return;
					}
					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;
						});
						w = w * 10;
					} else {
						w = this.el.getSize().x;
						this.items.each(function(li,index) {
							h += li.getSize().y;
						});
					}
					this.el.setStyles({
						position: 'relative',
						top: 0,
						left: 0,
						width: (w),
						height: h
					});
					this.current = 0;
					this.next();
				},
				morphComplete: function() {
					this.items[this.current].inject(this.el, 'bottom');
					this.el.setStyles({
						left:0,
						top:0
					});
					this.current++;
					this.next.delay(this.options.delay, this);
				},
				next: function() {
					if (this.current >= this.items.length) this.current = 0;
					var pos = this.items[this.current];
					
					if(this.options.direction.toLowerCase()=='horizontal') {
						w     = pos.getCoordinates().width;
						speed = (w / 100) * this.options.speed;
						this.el.set('morph', {
								// Fx Options
								duration  :speed,
								transition:this.options.transition,
								onComplete:this.morphComplete.bind(this)
							});
						this.el.morph({left: -w});
					} else {
						h     = pos.getCoordinates().height;
						speed = (h / 100) * this.options.speed;
						this.el.set('morph', {
								// Fx Options
								duration:speed,
								transition:this.options.transition,
								onComplete:this.morphComplete.bind(this)
							});
						this.el.morph({top: -h});
					}
				}
			});