var Rolling = Class.create();
Rolling.prototype =
{
	frequency: 100,
	y: 0,
	yMax: 0,

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

		Element.makeClipping(this.frame);

		if(this.body.offsetHeight > 0)
		{
			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);
	}
}
