/**
 * Script for auto scroling news/event/...
 *
 * Sample
 * Event.observe(window,'load', function() {new Rolling('news-frame-id','news-body-id');}, false);
 *
 */
var Rolling = Class.create();
Rolling.prototype =
{
	frequency: 100,
	y: 0,
	yMax: 0,

	initialize: function(frame_id, body_id)
	{
		this.frame = $(frame_id);
		this.body = $(body_id);
		if(this.body.innerHTML.length == 0)
		{
			return;
		}

		Element.makeClipping(this.frame);

		while(this.frame.offsetHeight > this.body.offsetHeight)
		{
			this.body.innerHTML = this.body.innerHTML + this.body.innerHTML;
		}

		this.yMax = this.body.offsetHeight;
		this.body.innerHTML = this.body.innerHTML + this.body.innerHTML;

		this.timer = setTimeout(this.doScroll.bind(this), this.frequency);
		Event.observe(this.body, 'mouseover', this.on.bind(this));
		Event.observe(this.body, 'mouseout', this.out.bind(this));
	},

	doScroll: function ()
	{
		this.y = this.y % this.yMax;
		this.body.style.top = - this.y + 'px';
		this.y += 1;

		this.timer = setTimeout(this.doScroll.bind(this), this.frequency);
	},

	on: function()
	{
		if(this.timer)
		{
			clearTimeout(this.timer);
		}
	},

	out: function()
	{
		this.timer = setTimeout(this.doScroll.bind(this), this.frequency);
	}
}
