

///////////////////////////////////////////////////////////
// Konfiguration!
var ext    = '.gif';  // Der Grafiktyp

var over   = '_on';   // Dateinamenerweiterung für
var stay   = '_stay'; // die Buttons
var down   = '_down'; // in den verschiedenen Zuständen

///////////////////////////////////////////////////////////
// Funktion: start_mouse_over()
//
function start_mouse_over()
{
    var doc = self.document;
    if(!doc.images) return;

    for(var i = 0; i < doc.images.length; i++)
    {
        var img = doc.images[i];
        ///////////////////////////////////////////////////
        // Button suchen
        // und events zuweisen.
        if( img.name.indexOf('gototop') == 0) addEventsToImage(img);
    }
}
///////////////////////////////////////////////////////////
// Funktion: addEventsToImage(img)
//
// die events zuweisen.
function addEventsToImage(img)
{
    var folder = img.src.substring(0, img.src.lastIndexOf('/') + 1) ;
    ///////////////////////////////////////////////////////
    // Die Events
    img.onmouseover = on_mouse_over;
    img.onmouseout  = on_mouse_out;
    img.onmousedown = on_mouse_down;
    img.onclick     = on_click;

    ///////////////////////////////////////////////////////
    // Bild vorladen
    img.stay = new Image();
    img.stay.img = img;
    img.stay.onerror = function() { this.img.onclick = null;}
    img.stay.src = folder + img.name + stay + ext;

    img.over = new Image();
    img.over.img = img;
    img.over.onerror = function() { this.img.onmouseover = null;}
    img.over.src = folder + img.name + over + ext;

    img.down = new Image();
    img.down.img = img;
    img.down.onerror = function() { this.img.onmousedown = null;}
    img.down.src = folder + img.name + down + ext;

    ///////////////////////////////////////////////////////
    // die ürsprüngliche Grafik sichern.
    img.out = img.src;

    ///////////////////////////////////////////////////////
    // wurde breits auf die Grafik geklickt?
    if(window.name == img.name) img.onclick();
}
///////////////////////////////////////////////////////////
// Funktion: on_mouse_down()
function on_mouse_down()
{
    if(_click_ == this) return false; // ist bereits angeklickt.
    this.src = this.down.src;
    return true;
}
///////////////////////////////////////////////////////////
// Funktion: on_mouse_over()
function on_mouse_over()
{
    if(_click_ == this) return false; // ist bereits angeklickt.
    this.src = this.over.src;
    return true;
}
///////////////////////////////////////////////////////////
// Funktion: on_mouse_out()
function on_mouse_out()
{
    if(_click_ == this) return false;

    this.src = this.out;
    return true;
}
///////////////////////////////////////////////////////////
// Funktion: on_click()
function on_click()
{
    if(_click_ == this) return false;
    this.src = this.stay.src;

    // den vorherigen Zustand eines angeklickten Buttons herstellen.
    if(_click_) _click_.src = _click_.out;
    _click_ = this;
    window.name = this.name;
    return true;
}
///////////////////////////////////////////////////////////
// globale Deklaration
var _click_       = null;

///////////////////////////////////////////////////////////
// Funktion: on_resize()
function on_resize()
{
    if(_click_) _click_.src = _click_.stay.src;
}

///////////////////////////////////////////////////////////
// das Skript startet automatisch.
if(window.addEventListener) window.addEventListener('onload', start_mouse_over, true);
if(window.addEventListener) window.addEventListener('onresize', on_resize, true);

window.onload   = start_mouse_over;
window.onresize = on_resize;

