SmoothScroll = {
	_interval : false,
	_lastScrollTop : -1,
	_lastId : null,
	
	scrollTo: function(id, scrollContainer)
	{
		if(!scrollContainer)
			scrollContainer=document;
		var start = scrollContainer.scrollTop;
		var dest = gebi(id).offsetTop;
		clearInterval(this._interval);
		this._lastScrollTop=-1;
		this._interval = setInterval(this._doScroll.partial(dest, parseInt((dest-start)/25), id, scrollContainer).bind(this), 10);
		if(!!this._lastId)
			gebi(this._lastId).className='';
		this._lastId=id;
	},
	
	_doScroll : function(dest, amount, id, scrollContainer)
	{
		if(Math.abs(dest-scrollContainer.scrollTop) > Math.abs(amount) && this._lastScrollTop!=scrollContainer.scrollTop)
		{
			this._lastScrollTop = scrollContainer.scrollTop;
			scrollContainer.scrollTop += amount;
		}
		else
		{
			scrollContainer.scrollTop = dest;
			clearInterval(this._interval);
			gebi(id).className='highlighted';
		}
	}
}