attachLoadEvent(shiftMenu);

//repositions leftNav menu elements that are too long for the browser window
function shiftMenu() {
	var folders = document.getElementsByClassName("folder");
	var hiddenPos = -3000;
	for(var i=0; i<folders.length; i++) {
		folders[i].menu = folders[i].getElementsByTagName("ul")[0];
		folders[i].menu.style.left = hiddenPos+"px";
		folders[i].menu.style.top = hiddenPos+"px";
		folders[i].menu.style.display = "block";
		
		folders[i].onmouseover = function() {
			this.menu.style.left = "auto";
			this.menu.style.top = "auto";
			
			var windowScrollY = (window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop);
			var windowHeight = (window.innerHeight ? window.innerHeight : document.documentElement.clientHeight);
				
			var positionFromTop = findTopPosition(this)-windowScrollY;
			var heightFromTop = (positionFromTop+this.menu.offsetHeight);
			var amountBelowScreen = heightFromTop-windowHeight;
			
			if(heightFromTop > windowHeight && positionFromTop < this.menu.offsetHeight) {
				this.menu.style.marginTop = -1*(heightFromTop-windowHeight+20)+"px";
			}else if(heightFromTop > windowHeight) {
				this.menu.style.marginTop = (-1*this.menu.offsetHeight)+"px";
			} else {
				this.menu.style.marginTop = "-"+(this.offsetHeight-2)+"px";
			} 
		}
		folders[i].onmouseout = function() {
			this.menu.style.left = hiddenPos+"px";
		}
	}
}

