var scrollers = {};
function MyScroller()
{
	var cur_top = 0;
	var containerHeight=0;
	var offset;
	var globalOffset=0;
	var top_offset=0;
	var _scroll;
	var li_elements;
	var totalHeight=0;
	var id='';
	var timer = null;
	var speed=0;

	this.calculateHeight = function()
	{
		totalHeight=0;
		li_elements.each(function(elem){
			totalHeight += $(elem).getHeight();
		});
	}
	this.adjustHeight=function()
	{
		var add='';
		var m=parseInt(containerHeight/totalHeight)+1;
		li_elements.each(function(elem){
			add+='<li>'+(elem.innerHTML)+'</li>';
		});
		for(var i=0;i<=m;i++)
		{
			new Insertion.After(li_elements.last(), add);
			li_elements = $A($('scroll_'+id).getElementsByTagName('li'));
		}
		this.calculateHeight.bind(this).delay(0.5);
	}
	this.prepareScroll = function(val,sp)
	{
		id=val;
		speed=100;//sp;
		containerHeight=$('ANIMATION_'+id).getHeight();
		_scroll = $('scroll_'+id);
		li_elements = $A($('scroll_'+id).getElementsByTagName('li'));
		offset=$('ANIMATION_'+id).cumulativeOffset();
		this.calculateHeight();
		$('ANIMATION_'+id).observe("mouseover", this.stopScroll.bindAsEventListener(this));
		$('ANIMATION_'+id).observe("mouseout",  this.startScroll.bindAsEventListener(this));
		if((totalHeight - li_elements.first().getHeight()) <= containerHeight)
		{
			this.adjustHeight();
		}
		this.startScroll();
	}
	this.stopScroll=function()
	{
		clearInterval(timer);
		timer = null;
	}
	this.startScroll=function()
	{
		if (timer)
		{
			clearInterval(timer);
			timer = null;
		}
		timer = window.setInterval(this.doScroll.bind(this), speed);
	}
	this.doScroll=function()
	{
		cur_top--;
		_scroll.style.top = cur_top +'px';
		globalOffset+=1;
		var el = li_elements.first();
		if(el)
		{
			var h = el.getHeight();
			if (globalOffset == h)
			{
				cur_top = cur_top + h;
				new Insertion.After(li_elements.last(),'<li>'+(el.innerHTML)+'</li>');
				_scroll.style.top = cur_top + 'px';
				el.remove();
				li_elements = $A($('scroll_'+id).getElementsByTagName('li'));
				globalOffset=0;
			}
		}
	}
}