// Scroller functions
var scrollRunning = false;
var scrollInterval;

var slideDuration = 0.8;
var fps = 50;
var frame;
var totalFrames;

var desiredScroll;
var originalScroll;


function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
} 

function scrollDiv(div)
{
	alert(div);
	var scroll = $(div).cumulativeScrollOffset();
	alert(scroll[1]);
	scrollSlides(scroll[1], 'latestnews');
}

	function scrollSlides( spotsToScroll, boxToScroll, move )
	{
		if ( scrollRunning )
			return;
			
		var box = $(boxToScroll);
		
		var imageHeight = 24;
		var imagePadding = 2;
		if (move != null)
		{
			
			$(boxToScroll).scrollTop = 0;
			var sizeToMove = move;
		}
		else
		{
			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 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++;
	}
