function startpositie() {
    if (self.pageYOffset) return self.pageYOffset; // FF,Chrome,Opera,Safari
    if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollTop;
    if (document.body.scrollTop) return document.body.scrollTop; // IE6,IE7,IE8
    return 0;
}
 
function doelpositie(eID) {
    var elm = document.getElementById(eID);
    var y = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    } return y;
}

function scroll_to(eID) {
    var startY = startpositie(); 
    var stopY = doelpositie(eID);
    var afstand = stopY > startY ? stopY - startY : startY - stopY;
    if (afstand < 100) {scrollTo(0, stopY); return; }
    var snelheid = Math.round(afstand / 100); // kleiner getal is trager  
    var stap = Math.round(afstand / 20); // groter getal is trager
    var sprongY = stopY > startY ? startY + stap : startY - stap;
    var timer = 0; 
    if (stopY > startY) { 
        for ( var i=startY; i<stopY; i+=stap ) { 
            setTimeout("window.scrollTo(0, "+sprongY+")", timer * snelheid); 
            sprongY += stap; 
						if (sprongY > stopY) sprongY = stopY; timer++; 
        } return;
    }
    for ( var i=startY; i>stopY; i-=stap ) { 
        setTimeout("window.scrollTo(0, "+sprongY+")", timer * snelheid);
        sprongY -= stap; 
				if (sprongY < stopY) sprongY = stopY; timer++;
    }
}

