var Ticker = new Class({
	setOptions: function(options) {
		this.options = Object.extend({
			speed: 1500,
			delay: 5000,
			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');	
		this.pos = 0;	
		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.showHide();
		
		this.fxForward = 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);			
					
			
		}.bind(this)});
		
		
		this.fxBackward = 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].inject(this.el, 'top');
			//console.log(this.items[i-1] + " --> " + this.el);
		}.bind(this)});
		
		//this.next();
	},
	next: function() {
		//this.current++;
		//if (this.current >= this.items.length) this.current = 0;
		//var pos = this.items[this.current];
		
		//this.pos = ( this.pos > 0 && this.pos > (this.items.length * -200)) ? 0 : this.pos - 200 ;
		
		this.pos = (this.pos <= 0 && this.pos > ((this.items.length - 1) * -200)) ? this.pos - 200 : ((this.items.length-1) * -200);
		
		this.showHide();
		
		this.fxForward.start({
			left: this.pos
		});

		//this.next.bind(this).delay(this.options.delay+this.options.speed);
	},
	prev: function() {
		//this.current--;
		//if (this.current < 0) this.current = (this.items.length -1);
		//var pos = this.items[this.current];
		
		this.pos = ( this.pos >= 0 ? ( 0 ) : this.pos + 200 );			
		
		this.showHide();
				
		this.fxBackward.start({
			left: this.pos
		});

		//this.next.bind(this).delay(this.options.delay+this.options.speed);
	},
	showHide: function(){
		
		if(!(this.pos > ((this.items.length - 1) * -200))){
			$('ticker_next').setStyle('visibility','hidden');
		} else {
			$('ticker_next').setStyle('visibility','visible');
		}
		if(this.pos >= 0){
			$('ticker_prev').setStyle('visibility','hidden');
		} else {
			$('ticker_prev').setStyle('visibility','visible');
		}
		
	}
	
});
