// the <div> containers
// - "mainnav" (nav itself)
// - "DivBottom" (bottom of the "mainnav", to calculate nav height)
// - "footer"
// must be declared as position:relative/absolute, so that findPos() can calculate
// their absolute position.
// The minimum pos is declared hard-coded (feel free to change that).

function findPos(objId) {
    var obj     = findObj(objId);
	var curleft = curtop = 0;
	if (!obj) {
	   throw "object with id " + objId + " does not exist in this document";
	}
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop  += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft, curtop];
}

function findObj(objId) {
    return document.getElementById(objId);
}

function findScrollY() {
    var sp = document.body.parentNode.scrollTop;
    if (sp == 0) sp = document.body.scrollTop;
    return sp;
}

function autoscroll() {
    var mainnav     = findPos("mainnav");
    var divbottom   = findPos("DivBottom");
    var footer      = findPos("footer");
    var navHeight   = divbottom[1] - mainnav[1];
    //alert(navHeight);
    var minPosY     = 156; // top banner height
    var maxPosY     = footer[1] - navHeight;
    var scrollY     = findScrollY();
    //alert(scrollY + "\n" + contentwrap);
    var navObj      = findObj("mainnav");
    if (scrollY > minPosY) {
	    var newPosY     = Math.min(maxPosY, scrollY - minPosY) + "px";
	    //alert(navObj + "\n" + newPosY);
	    navObj.style.top = newPosY;
    } else {
        findObj("mainnav").style.top = 0 + "px";
    }
}

function autoscrollInit() {
    window.onscroll = autoscroll;
}