function FloatRelDiv(id, MarginTop0)
{
  var ns = (navigator.appName.indexOf("Netscape") != -1);
  var d = document;
  
  var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
  var px = document.layers ? "" : "px";
  var diff;
  
  window[id + "_obj"] = el;
  if(d.layers)el.style=el;
  el.MarginTopNew = el.MarginTop0 = MarginTop0;
  el.setMargin= function(y){this.style.marginTop=y+px;};
  
  el.floatIt=function()
  {  
    //General settings
    var ms = 40 // Zeitinvervall wann die Funktion sich selber wieder aufruft in ms
    var intSize = 12 // In wievele unterschiedliche Blöcke wird die Differenz der Abweichung (Position) eingeteilt ->  umso größer desto langsamer....
    var PosAbs = 135 + this.MarginTop0 ; // Das ist die Positon des Divs absolut von oben
    var PadBottom = 72 // Abstand von unten (Footer + Margin-Bottom + ein bißchen Luft) => Div kann nicht nach untern raus...
    var BrowserHeight;
    
    var PosAbsTmp = PosAbs;
    
    BrowserHeight = ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
    
    // Scrollen nach unten
    if ((getScrollPos() - PosAbsTmp + this.MarginTop0 - this.MarginTopNew) > 0 && BrowserHeight < el.clientHeight && getScrollPos() > PosAbsTmp) 
      PosAbsTmp = el.clientHeight - BrowserHeight + PosAbs + PadBottom;
      
    // Abweichung ermitteln
    if (getScrollPos() > PosAbsTmp)
      diff = (getScrollPos() - PosAbsTmp + this.MarginTop0 - this.MarginTopNew)/intSize;
    else
      diff = (this.MarginTop0 - this.MarginTopNew)/intSize;
    
    if (diff < 0) //Scrollen nach oben
    {
      if (getScrollPos() - PosAbs > this.MarginTopNew)
      {
        setTimeout(this.id + "_obj.floatIt()", ms);
        return;
      }
    }
    
    if (Math.abs(diff) < 1) diff = Math.ceil(diff); // Runden -> Ruckeln am Ende verhindern...
    this.MarginTopNew += diff; //Neues Margin
    this.setMargin(this.MarginTopNew); // Margin setzen

    setTimeout(this.id + "_obj.floatIt()", ms);
  }
  
  return el;
}