/*
    Datei: fixlayer.js
    Datum: 17.05.04
    Autor: J. Strübig <jstruebig@web.de>

    Beschreibung:

    Benötigt die Bibliotke layer.js
    http://home.arcor.de/struebig/computer/javascript/lib/layer.html

    Funktionsliste:
*/

document.write('<script src="layer.js" type="text/javascript">alert();<\/script>');

////////////////////////////////////////////////////////////
// Ein Layer fixieren
function fixLayer(id, win)
{
    if(!win) win = window;
    var obj = getById(id, win);
    if((typeof document.all == 'undefined' || typeof window.opera != 'undefined') && typeof document.layers == 'undefined')
    {
    var pos = pagePos(obj);
         setProp(obj, 'position', 'fixed');
         return null;
    }

    if(!obj) return alert('Fehler\n\nID:' + id + ' existiert nicht.');
    var sticky = new Sticky(obj, win);
    if(!sticky) return alert('Es trat ein Fehler auf');

    STICKY_OBJ_[STICKY_OBJ_.length] = sticky;

    _fixLayer_();

    // Nur einmal initialisieren
    if(STICKY_OBJ_.length > 1) return obj;
    if (typeof win.onscroll != 'undefined') win.onscroll = _fixLayer_;
    else if(typeof document.layers != 'undefined') setInterval ('_fixLayer_()', 150);
    else window.setInterval ('_fixLayer_()', 150);
    return obj
}

////////////////////////////////////////////////////////////
// Sticky -> Hilfsstruktur um die Startwerte zu sichern
function Sticky(obj, win)
{
    var pos = pagePos(obj);

    this.top  = pos.top;
    this.left = pos.left;
    this.obj  = obj;
    this.win  = win;
}
////////////////////////////////////////////////////////////
// Die eigentliche Funktion um einen Layer zu fixieren
function _fixLayer_()
{

    for(var i = 0; i < STICKY_OBJ_.length; i++)
    {
       var l = STICKY_OBJ_[i];
       if(!l) continue;
       var offset = pageOffset(l.win);
       l.old = pagePos(l.obj, l.top + offset.top, l.left + offset.left, l.win);
    }
}
var STICKY_OBJ_ = new Array(); // benötigt fixLayer