		function findPosY(obj)
		{
			var curtop = 0;
			if (obj.offsetParent)
			{
				while (obj.offsetParent)
				{
					curtop += obj.offsetTop
					obj = obj.offsetParent;
				}
			}
			else if (obj.y)
				curtop += obj.y;
			return curtop;
		}
		
		var yPos = 0;
		var scrolldelay;
		
		function jumpToObj(obj) {
			yPos = findPosY(obj) - 50;
			window.scroll(0, yPos);
		}

		function winScroller(obj,off){
			yPos = eval(findPosY(obj) + "-" + off);
			//window.scrollTo(0, yPos);
			pageScroll();
		}
		
		function pageScroll() {
			window.scrollBy(0,10); // horizontal and vertical scroll increments
			scrolldelay = setTimeout('pageScroll()',20); // scrolls every 100 milliseconds
			var yOff;
			var iebody;
			var docHeight;
			var foot = document.getElementById("footer");
			var footPosY = findPosY(foot);
			
			if (document.all) {
				iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
				yOff = iebody.scrollTop;
				docHeight = iebody.clientHeight;
				
			} else {
				yOff = window.pageYOffset;
				docHeight = window.innerHeight;
			}
			
			//alert("yOff: " + yOff + "\nyPos: " + yPos);
			if (eval(yOff + "+" + docHeight + ">=" + footPosY)) {
				clearTimeout(scrolldelay);
			} else {
				if (eval(yOff + ">" + yPos)) {
					clearTimeout(scrolldelay);
				} else {
					if (eval(yPos + "-" + yOff + "<=10")) {
						clearTimeout(scrolldelay);
						window.scrollTo(0, yPos);
					}
				} 
			}
		}