// JavaScript Document
var Ticker = new Class({
					   
				setOptions: function(options) {
					
					this.options = Object.extend({
						speed: options.speed ? options.speed : 800 ,
						delay: options.delay ? options.delay : 2000 ,
						direction: options.direction ? options.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;
					
					w = this.el.getSize().size.x;
					this.items.each(function(li,index) {
						h += li.getSize().size.y;
					});
					
					this.el.setStyles({
						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.items[i-1].injectInside(this.el);
						this.flagMotionControl = 'not running';
						this.el.setStyles({
							left:0,
							top:0
						});
					}.bind(this)});
					
					this.current = 0;
					this.next();
				},
						
				next: function() {
					if (this.flagMotionControl != 'running') {
						this.current++;
						if (this.current >= this.items.length) this.current = 0;
						
					}
					var pos = this.items[this.current];
					this.flagMotionControl = 'running';
					this.fx.start({
						top: -pos.offsetTop,
						left: -pos.offsetLeft
					});
					ticTimer = this.next.bind(this).delay(this.options.delay+this.options.speed);
				},
				
			pause: function() {
					$clear(ticTimer);
					ticTimer = null;
			},
			
			resume: function() {
					if (ticTimer == null) {
						this.next();
					}
			}
}); // class
