            var Ticker = new Class({
                setOptions: function(options) {
                    this.options = Object.extend({
                        speed: 2000,
                        delay: 10,
                        direction: 'horizontal',
                        onComplete: Class.empty,
                        onStart: Class.empty
                    }, options || {});
                },
                initialize: function(el,options){
                    this.setOptions(options);
                    this.el = $(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',
                        top: 0,
                        left: 0,
                        width: w,
                        height: h
                    });
                    

                    this.fx = new Fx.Morph(this.el,{duration:(this.items[0].getSize().x*20),transition: Fx.Transitions.linear,link:'chain',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.fx.options.duration = this.items[this.current].getSize().x*20;
                    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.fx.options.duration+this.fx.options.duration/20);
                }
            });
