﻿var Ticker = new Class({
	setOptions: function(options) {
		this.options = Object.extend({
			speed: 1500,
			delay: 10000,
			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().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,{transition: Fx.Transitions.Bounce.easeOut,duration:this.options.speed,onComplete:function() { */
		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.el.setStyles({
				left:0,
				top:0
			});
		}.bind(this)});
		
		
		this.fx1 = new Fx.Styles(this.el,{duration:this.options.speed,onComplete:function() {
			this.items[this.current].inject(this.items[(this.current+1==this.items.length)?0:this.current+1],'before');
			this.el.setStyles({
			left:0,
			top:0
			});
			this.options.busy = 0;
			}.bind(this),
			onStart:function() {
			this.options.busy = 1;
		}.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);
	},
	
	/*
	previous: 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);
	}
	*/
	
	previous: function(play) {
	if (this.options.busy == 1) return;
	this.current--;
	if (this.current < 0) this.current = this.items.length-1;
	var i = this.current;
	var j = (this.current-1<0)?this.items.length-1:this.current-1;
	var pos = this.items[i];
	var pos1 = this.items[j];
	this.fx1.start({
	top: pos.offsetTop,
	left: pos.offsetLeft-pos1.offsetLeft
	});
	if (!play)
	mytimer = this.next.bind(this).delay(this.options.delay+this.options.speed);
	}
	
	
	});

var mytimer = null;

window.addEvent('domready', function() {
   var hor = new Ticker('TickerVertical', {
      speed : 500, delay : 10000, direction : 'vertical'});
    $('stop_scroll').addEvent('click', function() {
		$('play_scroll_cont').style.display='block';
		$('stop_scroll_cont').style.display='none';
		hor.pause();
	});
    $('play_scroll').addEvent('click', function() {
		$('stop_scroll_cont').style.display='block';
		$('play_scroll_cont').style.display='none';
		hor.resume();
	});
	
    $('next').addEvent('click', function() {
		hor.pause();
		hor.next();
		$('stop_scroll_cont').style.display='block';
		$('play_scroll_cont').style.display='none';
		hor.resume();
	});
	
    $('previous').addEvent('click', function() {
		hor.pause();
		hor.previous();
		$('stop_scroll_cont').style.display='block';
		$('play_scroll_cont').style.display='none';
		hor.resume();
	});
	
	/* pause on mouse over*/
	$('NewsVertical').addEvent('mouseenter', function() {
		$('play_scroll_cont').style.display='block';
		$('stop_scroll_cont').style.display='none';
  		hor.pause();
  	});

	$('NewsVertical').addEvent('mouseleave', function() {
		$('stop_scroll_cont').style.display='block';
		$('play_scroll_cont').style.display='none';
  		hor.resume();
  	});
	
});