var topPause
var bottomPause
var pixelsPerMove
var moveDelay
var scrollTimeout

function startScrolling(elementID, pauseAtTopIn, pauseAtBottomIn, pixelsPerMoveIn, moveDelayIn) {
	//Begin scrolling with the specified speed and pauses.  Call this somewhere on the page, after the target element exists.
	topPause = pauseAtTopIn * 1000;
	bottomPause = pauseAtBottomIn * 1000;
	pixelsPerMove = pixelsPerMoveIn;
	moveDelay = moveDelayIn * 1000;
	
	var element = document.getElementById(elementID);
	scrollTimeout = setTimeout('scroll(\''+elementID+'\', '+element.scrollTop+')',topPause);
}

function resumeScrolling(elementID) {
	//Resume scrolling with no pause.  Call this onMouseOut.
	var element = document.getElementById(elementID);
	scrollTimeout = setTimeout('scroll(\''+elementID+'\', '+element.scrollTop+')',0);
}

function scroll(elementID, prevScrollPos) {
	//Scrolls down the specified amount, pausing and starting over if at the bottom.
	var element = document.getElementById(elementID);
	element.scrollTop = element.scrollTop + pixelsPerMove;	
	
	if (element.scrollTop != prevScrollPos) {
		prevScrollPos = element.scrollTop;
		scrollTimeout = setTimeout('scroll(\''+elementID+'\','+prevScrollPos+')',moveDelay);
	}
	else {
		scrollTimeout = setTimeout('loopAround(\''+elementID+'\')',bottomPause);
	}
}

function loopAround(elementID) {
	//Return the scroll box to the top and restart scrolling
	var element = document.getElementById(elementID);
	element.scrollTop = 0;
	scrollTimeout = setTimeout('scroll(\''+elementID+'\', '+element.scrollTop+')',topPause);
}

function stopScrolling(elementID) {
	//Stop all scrolling.  Call this onMouseOver.
	clearTimeout(scrollTimeout);
}