// 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, boxToScroll )
	{
		if ( scrollRunning )
			return;
			
		var box = $(boxToScroll);
		var imageHeight = 26;
		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(boxToScroll), estimatedScroll ) );
		
		if ( originalScroll == desiredScroll )
		{
			scrollRunning = false;
			return;
		}

		frame = 1;
		totalFrames = Math.ceil(Math.abs(fps*slideDuration*(desiredScroll-originalScroll)/sizeToMove));
		
		scrollRunning = true;
		scrollInterval = setInterval( "scrollIt( '" + boxToScroll + "')", 1000/fps );
	}
	
	function scrollThumbs( spotsToScroll )
	{
		if ( scrollRunning )
			return;
			
		var box = $('thumbnails-box');
		
		var imageWidth = 45;
		var imagePadding = 8;
		
		var sizeToMove = ( spotsToScroll * ( imageWidth + imagePadding ) );
		
		originalScroll = box.scrollLeft;
		var estimatedScroll = box.scrollLeft + sizeToMove;
		desiredScroll = Math.max(0,estimatedScroll);
		
		if ( estimatedScroll >= Element.getWidth('thumbnails-box-width') )
			return;
			
		if ( originalScroll == desiredScroll )
		{
			scrollRunning = false;
			return;
		}

		frame = 1;
		totalFrames = Math.ceil(Math.abs(fps*slideDuration*(desiredScroll-originalScroll)/sizeToMove));
		
		scrollRunning = true;
		scrollInterval = setInterval( "scrollItH( 'thumbnails-box')", 1000/fps );
	}

	function scrollItH(boxz)
			{
				var box = $(boxz);
				
				var pos = frame/totalFrames;
				
				var target = originalScroll + ( ( -Math.cos(pos*Math.PI)/2) + 0.5 ) * (desiredScroll - originalScroll);
				box.scrollLeft = target;
				
				if ( box.scrollLeft == 0 && target >= 1 )
				{
					box.style.overflow = "auto";
					box.scrollLeft = target;
				}
		
		
				if ( frame == totalFrames )
				{
					scrollRunning = false;
					clearInterval(scrollInterval);
				}
				frame++;
			}

	
	
	function scrollIt(boxToScroll)
	{
		var box = $(boxToScroll);
		
		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++;
	}
