﻿
window.addEvent('domready', function() {
	var Ticker = new Class({
   setOptions: function(options) {
      this.options = Object.extend({
         speed: 1500,
         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.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.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();
      },
   
   pause: function() {
       $clear(mytimer);
       mytimer = null;
   },
   resume: function() {
       if (mytimer == null) {
       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
      });
      mytimer = this.next.bind(this).delay(this.options.delay+this.options.speed);
   }
});

var mytimer = null;

   var hor = new Ticker('TickerVertical', {
      speed : 1000, delay : 5000, direction : 'vertical'});
   
   hor.el.addEvent('mouseenter', function() {
      hor.pause();
   });
      
   hor.el.addEvent('mouseleave', function() {
      hor.resume();
   });
});
