window.onload = UpdateControls;

var delay = 35;

var jump = 1;
var accel = 0.2;

var timeout = null;
var dist, effAccel;

function StartScrolling(dir) {
	StopScrolling();
	dist = dir * jump;
	effAccel = dir * accel;
	Scroll();
}

function Scroll() {
	var cont = document.getElementById("mainText");
	var cur = cont.scrollTop;
	cur += dist;
	dist += effAccel;
	cont.scrollTop = Math.max(0, cur);
	UpdateControls();
	timeout = setTimeout(Scroll, delay);
}

function StopScrolling() {
	if(!timeout)
		return;
		
	clearTimeout(timeout);
	timeout = null;
}

function UpdateControls() {
	var arrowUp = document.getElementById("arrowup");
	var arrowDown = document.getElementById("arrowdown");
	
	if(!arrowUp || !arrowDown)
		return;

	var cont = document.getElementById("mainText");
	if(!cont)
		return;
	var cur = cont.scrollTop;

	var up = (cur == 0);
	var down = (cur + cont.offsetHeight >= cont.scrollHeight);
	
	arrowUp.style["visibility"] = (up ? "hidden" : "visible");
	arrowDown.style["visibility"] = (down ? "hidden" : "visible");
}
