// Scroller functions
var scrollRunning = false;
var scrollInterval;

var slideDuration = 0.8;
var fps = 50;
var frame;
var totalFrames;

var desiredScroll;
var originalScroll;

	function scrollSlides( spotsToScroll )
	{
		if ( scrollRunning )
			return;
			
		var box = $('flipem-buttons');
		
		var imageHeight = 70;
		var imagePadding = 2;
		
		var sizeToMove = ( spotsToScroll * ( imageHeight + imagePadding ) );
		
		originalScroll = box.scrollTop;
		var estimatedScroll = box.scrollTop + sizeToMove;
		desiredScroll = Math.max(0, Math.min( box.scrollHeight - Element.getHeight('flipem-buttons'), estimatedScroll ) );
		
		if ( originalScroll == desiredScroll )
		{
			scrollRunning = false;
			return;
		}

		frame = 1;
		totalFrames = Math.ceil(Math.abs(fps*slideDuration*(desiredScroll-originalScroll)/sizeToMove));
		
		scrollRunning = true;
		scrollInterval = setInterval( "scrollIt()", 1000/fps );
	}
	
	function scrollIt()
	{
		var box = $('flipem-buttons');
		
		var pos = frame/totalFrames;
		
		var target = originalScroll + ( ( -Math.cos(pos*Math.PI)/2) + 0.5 ) * (desiredScroll - originalScroll);
		box.scrollTop = target;
		
		if ( box.scrollTop == 0 && target >= 1 )
		{
			box.style.overflow = "auto";
			box.scrollTop = target;
		}


		if ( frame == totalFrames )
		{
			scrollRunning = false;
			clearInterval(scrollInterval);
		}
		frame++;
	}
