function smoothScrollTo(objID) {
	// yo listen up you code heads
	// smoothScrollTo() written by Maximilian Combuechen, www.maximiliancombuechen.com
	// makes use of findPos() and getPageHeight() by Peter-Paul Koch, www.quirksmode.org
	// feel free to use but include my credits
	
	var obj;
	if (document.getElementById) {
		obj = document.getElementById(objID);
		}
	else if (document.all) {
		obj = document.all.objID;
	}
                    
	var objPos = findPos(obj);
	objPos[1] -= 99;
	if (window.innerHeight) {
		objPos[1] = (objPos[1] > (getPageHeight()-window.innerHeight)) ? (getPageHeight()-window.innerHeight) : objPos[1];
		}
	else if (document.documentElement && document.documentElement.clientHeight) {
		if (objPos[1] > (getPageHeight()-document.documentElement.clientHeight)) {
			objPos[1] = getPageHeight()-document.documentElement.clientHeight;
			}
		}
                
	var curOffsetY = 0;
	if (window.pageYOffset) {
		curOffsetY = window.pageYOffset;
		}
	else if (document.body && document.body.scrollTop) {
		curOffsetY = document.body.scrollTop;
		}
	else if (document.documentElement && document.documentElement.scrollTop) {
		curOffsetY = document.documentElement.scrollTop;
		}
                
	var d = objPos[1] - curOffsetY;
                
	if (Math.abs(d) > 3) {
		window.scrollBy(0 , Math.round(d / 4));
		var s = "smoothScrollTo('"+ obj.id +"')";
		scrolling = setTimeout(s, 8);
		}
	else {
		window.scrollTo(window.pageXOffset, objPos[1]);
		if (scrolling) clearTimeout(scrolling);
		}
	}
                
function findPos(obj) {
	var x = y = 0;
	if (obj.offsetParent) {
		x = obj.offsetLeft;
		y = obj.offsetTop;
		while (obj = obj.offsetParent) {
			x += obj.offsetLeft;
			y += obj.offsetTop;
			}
		}
	return [x,y];
	}
            
function getPageHeight() {
	var height;
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight;
	if (test1 > test2) {
		height = document.body.scrollHeight;
		}
	else {
		height = document.body.offsetHeight;
		}
	return height;
	}