
/* common */
function getObject( id )
{
    return document.getElementById( id );
}

function addEvent( element, event, listener ) {
    if( element.addEventListener )
        element.addEventListener( event, listener, false );
    else if( element.attachEvent ) 
        element.attachEvent( 'on'+event, listener );
    else
        element['on'+event] = listener;
};

function eventSrc( event )
{
    var target;

    if( event.target )
        target = event.target;
    else if( event.srcElement ) 
        target = event.srcElement;
    if( target.nodeType == 3 ) // defeat Safari bug
        target = target.parentNode;

    return target
};

/* fader */
function FaderInit()
{
    Fader.addImage( 'layout/linker.jpg', 174, 32 );
    Fader.addImage( 'layout/linker1.jpg', 174, 32 );
    Fader.addImage( 'layout/linker2.jpg', 174, 32 );
    Fader.addImage( 'layout/linker3.jpg', 174, 32 );
    Fader.addImage( 'layout/linker4.jpg', 174, 32 );
    Fader.addImage( 'layout/linker5.jpg', 174, 32 );
    Fader.addImage( 'layout/linker6.jpg', 174, 32 );
    Fader.addImage( 'layout/alinker.jpg', 174, 32 );

    var menu  = getObject( 'menucontent' );
    var hrefs = menu.getElementsByTagName('a');

    
    if( hrefs ) {
        for( var i = 0; i < hrefs.length; i++ ) {
            var types = hrefs[i].getAttribute('id');
            if (types=='main')
            {
                hrefs[i].fader = new Fader( hrefs[i], 100 );
                addEvent( hrefs[i], 'mouseover', Fader.MouseOver );
                addEvent( hrefs[i], 'mouseout', Fader.MouseOut );
            }
        }
    }

};

function Fader( link, interval )
{
    var id = 'fader_'+ Fader.id++;
    
    this.id      = id;
    this.handler = link;
    this.state   = 0;
    this.dir     = 0;
    this.interval = interval;
    
    Fader.faders[this.id ] = this;
};

Fader.prototype.id      = null;
Fader.prototype.handler = null;
Fader.prototype.dir     = 0;
Fader.prototype.state   = 0;
Fader.prototype.interval = 0;

Fader.prototype.setBg = function() {
    this.handler.style.backgroundImage = "url("+Fader.images[this.state].src+")";
};

Fader.prototype.FadeIn = function() {
    this.dir      = 1;
    setTimeout( 'Fader.Timeout( \''+this.id+'\' )', this.interval );
};

Fader.prototype.FadeOut = function() {
    this.dir      = -1;
    setTimeout( 'Fader.Timeout( \''+this.id+'\' )', this.interval );
};

Fader.id     = 0;
Fader.faders = new Object();
Fader.images = [];
Fader.addImage = function( src, width, height ) {
    if (document.images) {
        var image = new Image( width, height ); 
        image.src = src;

        Fader.images[Fader.images.length] = image;
    } 
};  

Fader.MouseOver = function( event ) {
    if( !event ) var event = window.event;
    var src  = eventSrc( event );

    src.fader.FadeIn();
    return false;
};

Fader.MouseOut = function( event ) {
    if( !event ) var event = window.event;
    var src  = eventSrc( event );

    src.fader.FadeOut();
    return false;
};

Fader.Timeout = function( fader_id ) {
    var fader = Fader.faders[fader_id];
    
    if( fader.dir > 0 ) {
        if( fader.state < Fader.images.length-1 ) {
            fader.state++;
            fader.setBg();
            setTimeout( 'Fader.Timeout( \''+fader.id+'\' )', fader.interval );
        }    
    }

    if( fader.dir < 0 ) {
        if( fader.state > 0 ) {
            fader.state--;
            fader.setBg();
            setTimeout( 'Fader.Timeout( \''+fader.id+'\' )', fader.interval );
        }    
    }
};

/* init */
addEvent( window, 'load', FaderInit );

