// Create namespace
if (cb == undefined) var cb = {};

// Newsscroller Class
cb.newsscroller = Class.create();
cb.newsscroller.prototype = {
	initialize: function()
	{
		// Get elements
		this.interval = 30;
		this.container = $("tdyscroll");
		if(!this.container) {return;}
		this.messages  = $A(this.container.getElementsByTagName("li"));
		this.number_of_messages = this.messages.length;
		this.stop = 0;
		this.repeatHeight = 15;
		this.currentHeight = 15;
		this.previousHeight = 0;
		this.current_message = 0;
		this.previous_message = null;
		this.eventMouseOver = this.stopScroll.bindAsEventListener(this);
		this.eventMouseOut   = this.startScroll.bindAsEventListener(this);	
    	Event.observe(this.container, "mouseover", this.eventMouseOver);
    	Event.observe(this.container, "mouseout", this.eventMouseOut);		
		
		// Install timer
		setTimeout(this.showMessage.bind(this), this.interval);
  	},
	showMessage: function()
	{
		if(this.stop==1) {
			setTimeout(this.showMessage.bind(this),this.interval);
			return;
		}
		
		this.moveUp();
		var current = this.messages[this.current_message];
		if(current.style.top.replace("px","")>0) { 
			// keep on scrolin' 
			setTimeout(this.showMessage.bind(this),this.interval);
		}
		else { //we have hit the wrap point
			//alert("changing message");
			this.currentHeight = this.repeatHeight-1;
			if (this.current_message < this.number_of_messages-1)
			{
				this.previous_message = this.current_message;
				this.current_message = this.current_message + 1;
			} else {
				this.current_message = 0;
				this.previous_message = this.number_of_messages - 1;
			}
			setTimeout(this.showMessage.bind(this),4000);
		}
	},
	moveUp: function()
	{
		var current = this.messages[this.current_message];
		current.style.top = this.currentHeight+"px";
		this.currentHeight = this.currentHeight-1;
		if(this.previous_message!=null) {
			var previous = this.messages[this.previous_message];
			//alert(previous.style.top);
			if(previous.style.top.replace("px","")-1 == this.repeatHeight*-1) {
				previous.style.top = this.repeatHeight+"px";
				this.previousHeight = 0;
			} else {
				this.previousHeight = this.previousHeight-1;
				previous.style.top = this.previousHeight+"px";
								
			}
			
		}
	},
	stopScroll: function(event)
	{
		this.stop = 1;
	},
	startScroll: function(event)
	{
		this.stop=0;
	}
}
Event.observe(window, "load", function(){new cb.newsscroller()}, false);