// Om de knoppen zichtbaar te houden moet men de volgende acties ondernemen
// De bodytag alsvolgt: <BODY onLoad="follow(YOffSet,SymbolHeight,milisec,pixels)" onUnload=ResetTimer()>
//    YOffSet       startpunt object t.o.v. bovenkant
//    SymbolHeight  hoogte symbool ivm met snel down- en upscrollen in zichtbare deel screen
//    milisec       het aantal miliseconden dat het opject volgt
//    pixels        aantal pixels per keer dat object verschuift
// Het opject wat moet verschuiven moet het ID="knoppen" krijgen
//
// Indien scherm kleiner is dan SymbolHeight dan wordt de bovenkant zichtbaar bij omhoog scrollen
// en de onderkant bij omlaag scrollen

  function Follow(YOffSet,SymbolHeight,milisec,pixels) {
// kopieren variabelen ivm met recursieve functie
    pts=pixels;
    ms=milisec;
    SymbolH=SymbolHeight
    OffSet=YOffSet;
    
// bepalen soortbrowser ivm bepaling pageYoffset en innerHeight
// scrYTop  plaats scherm bovenkant op document
// scrYLow  plaats scherm onderkant op document
    if (navigator.appName == "Microsoft Internet Explorer") {
      scrYTop = document.body.scrollTop;
      scrYLow = scrYTop+document.body.clientHeight;
      }
    else {
      scrYTop = window.pageYOffset;
      scrYLow = scrYTop+window.innerHeight;
      }
// ophalen huidige plaats symbol
    scrOldY=document.all.knoppen.offsetTop;

// bepalen nieuwe bovenhoek symbol
    if (scrYTop != LastYTop ) {
      if (scrYTop+15 <= OffSet) 
        YSymbol=OffSet;
      else 
        YSymbol=scrYTop+15;
// indien schermgrootte kleiner dan symbool hoogte dan afhankelijk van beweging scherm 
      if (scrYLow-scrYTop-SymbolH < 0 ) {
// dan onderkant symbool gelijk met onderkant scherm als dit zichtbaar wordt
        if (scrYTop > LastYTop) {                                    
          YSymbol=scrYLow-SymbolH-15;                                // bereken bovenkant symbool tov onderkant
          if (YSymbol < scrOldY)                                     // indien nog niet in beeld 
            YSymbol = scrOldY;                                       // positie niet wijzigen
          }
// bij opwaardse beweging bovenkant gelijk houden dit zichtbaar wordt
        else {
          if (YSymbol > scrOldY)                                     // indien bovenkant nog niet zichtbaar
            YSymbol = scrOldY;                                       // positie nog niet wijzigen
          }  
        }
      LastYTop = scrYTop;                                            // bewaren huidige plaats scherm
      }

// indien symbool nog niet op zijn plaats staat dan volgende punt uitrekenen
    if (scrOldY != YSymbol) {                                                
      if (scrOldY > YSymbol) {                                        // huidige punt hoger dan nieuwe plaats
        scrOldY = scrOldY - pts;                                      // aantal punten aftrekken
        if(scrOldY < YSymbol)                                         // indien nieuwe punt voor beginpunt 
          scrOldY = YSymbol;                                          // nieuwe punt wordt beginpunt
        else {
          if (scrYLow < scrOldY)                                      // indien nieuwe punt voorbij eindpunt 
            scrOldY=scrYLow;                                          // bovenkant symbool wordt onderkant browser
          }
        }
      else {
        scrOldY = scrOldY + pts;
        if(scrOldY > YSymbol)                                         // indien nieuwe punt voorbij eindpunt 
          scrOldY = YSymbol;                                          // nieuwe punt wordt eindpunt
        else {
          if (scrYTop > scrOldY+SymbolH)                              // indien symbool ver boven browserrand valt
                scrOldY=scrYTop-SymbolH;                              // onderkant symbool wordt bovenkant browser
          }
        }
      document.all.knoppen.style.top=scrOldY;                         // zet symbool op uitgerekende plaats
      }

    FollowTimer=setTimeout("Follow(OffSet,SymbolH,ms,pts)",ms);      // start timer voor volgende actie
  }


  function ResetTimer() {
// Stoppen van de FollowTimer
    clearTimeout(FollowTimer);
  }


// Initialiseren LastYTop
  var LastYTop = -1;

