﻿var Ticker = new Class({
	setOptions: function(options) {
		this.options = Object.extend({
			speed: 1500,
			delay: 5000,
			direction: 'vertical',
			onComplete: Class.empty,
			onStart: Class.empty,
			rollst: 'none'
		}, 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().size.y;
				this.items.each(function(li,index) {
				w += li.getSize().size.x;
			});
	} else {
			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;
			//alert(i);
			if(this.options.rollst=='next')
			{
				this.items[i-1].injectInside(this.el);
			}
			else if(this.options.rollst=='prev')
			{
				if(i>=9)
				{
					i=0;
				}
				this.items[i+1].injectInside(this.el);
				//this.options.rollst='next';
			}
			if(this.options.rollst=='none'){
			this.el.setStyles({
				left:0,
				top:0
			}); }
		}.bind(this)});
		this.current = 0;
			if(this.options.rollst=='none'){
				this.first();
			}
		},
	
	pause: function() {
	    $clear(mytimer);
	    mytimer = null;
	},
	resume: function() {
	    if (mytimer == null) {
	    this.next();
	    }
	},
	next: function() {
		this.options.rollst = 'next';
		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);
	},
	first: function() {
		this.options.rollst = 'next';
		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);
	},
	prev: function() {
		//this.current++;
		this.options.rollst = 'prev';
		var total=this.items.length;
		if (this.current >= this.items.length) this.current = 0;
		
		if(this.current==0)
		{
			var pos = this.items[total-1];
			this.current =total-1;
		}
		else
		{
			var pos = this.items[this.current-1];
			this.current = this.current-1;
		}
		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 : 0, delay : 5000, direction : 'horizontal'});

function Next()
{
	hor.pause();
	hor.next();
}
function Prev()
{
	hor.pause();
	hor.prev();
}
/*window.addEvent('domready', function() {
   var hor = new Ticker('TickerVertical', {
    speed : 5000, delay : 5000, direction : 'horizontal'});
});*/
