var yy;

function start() {
	yy = findPosY(document.getElementById('maindiv'));
	window.setInterval("action()", 10);
}

function action() {
	var py = getScrollY() + 6 - yy;
	
	if (py < 0) py = 0;
	var dy = parseInt(document.getElementById('scrollmenu').style.top);
	if (isNaN(dy)) dy = 1;
	var ds = py - dy;
	if (ds == 0) return;

	if (Math.abs(ds) > 128) speed = 4;
	else speed = Math.ceil(4 * Math.sin(Math.abs(ds) * Math.PI / 256.0));

	speed = speed * (ds > 0 ? +1 : -1);

	document.getElementById('scrollmenu').style.top = (dy + speed) + "px";
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while(1) {
			curtop += obj.offsetTop;
			if (!obj.offsetParent) break;
			obj = obj.offsetParent;
		}
	} else if (obj.y) curtop += obj.y;
	return curtop;
}

function getScrollY() {
	var scrOfY = 0;
	if (typeof(window.pageYOffset) == 'number') {
		//Netscape compliant
		scrOfY = window.pageYOffset;
	} else if (document.body && document.body.scrollTop) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
	}
	return scrOfY;
}