// Javascript Ticker
/*
 * modified for mootools 1.2
 * BLUEDOTMEDIA GmbH
 * am@bluedotmedia.de
 */
var Ticker = new Class({
	Implements:Options,
	
	options:{
		speed: 1500,
		delay: 9000,
		direction: 'vertical',
		transition: Fx.Transitions.linear,
		onComplete: $empty,
		onStart: $empty
	},
	
	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.contains('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,{
			transition: this.options.transition,
			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() {
		if(this.items.length > 2) {
			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;
// vertical ticker (newsticker)
window.addEvent('domready', function() {
	if($chk($$('.tickervertical'))) {
		$each($$('.tickervertical'), function(el, key) {
			new Ticker( el, {transition: Fx.Transitions.Sine.easeInOut, speed: 1500, delay: 9000, direction: 'vertical'});
		});
	}
});

// horizontal ticker (minirectangle-ticker)
window.addEvent('domready', function() {
	if($chk($$('.tickerhorizontal'))) {
		$each($$('.tickerhorizontal'), function(el, key) {
			new Ticker( el, {transition: Fx.Transitions.Sine.easeOut, speed: 2500, delay: 3000, direction: 'horizontal'});
		});
	}
});

