// Added by Luis Mirabal
Class.empty = function() { this.length = 0; return this; };

var Ticker = Class.create( {

  emptyFunction: function() { this.length = 0; return this; },

  setOptions: function(options) {
    this.options = Object.extend( { speed: 5, delay: 5000, direction: 'vertical', onComplete: Class.empty, onStart: Class.empty }, options || {} );
  },

  initialize: function(el,options) {
    this.setOptions(options);
    this.el = $(el);
    this.items = this.el.select('li');
    var w = 0;
    var h = 0;
    if(this.options.direction.toLowerCase()=='horizontal') {
      h = this.el.getHeight();
      this.items.each(function(li,index) {
        w += li.getWidth();
      });
    } else {
      w = this.el.getWidth();
      this.items.each(function(li,index) {
        h += li.getHeight();
      });
    }
    this.el.setStyle( {position: 'absolute', top: 0, left: 0, width: w, height: h} );

    this.fx = new Fx.Styles(this.el, {
      duration: this.options.speed,
      onComplete: function() {
        var i = (this.current==0) ? this.items.length : this.current;
        this.el.insert(this.items[i-1]); // this.items[i-1].insert(this.el);
        this.el.setStyle( {left:0, top:0} );
      }.bind(this)
    } );

    this.current = this.items.length;
    this.next();
  },

  next: function() {
    this.current++;
    if (this.current >= this.items.length)
      this.current = 0;
    var pos = this.items[this.current];
    this.fx.custom( {top: -pos.offsetTop, left: -pos.offsetLeft} );
    this.next.bind(this).delay(this.options.delay + this.options.speed);
  }

} );
var hor = new Ticker('TickerVertical', { speed: 1, delay: 4, direction: 'horizontal' } );
