// *******************************************************************
// fader.js - a small JavaScript mouseOver fade in and out library
// Developed by Martin Joergensen, (c) 2005
// martin@globalflyfisher.com, http://globalflyfisher.com
// This code is licensed under the Noncommercial Creative Commons License
// You are not only encouraged to use it noncommercially but also to develop it
// Please credit me if you use or redistribute it

// Global timer table
var timers=new Array();

function _fade_in(element, opacity) // private
    {
    // Get object
    obj = document.getElementById(element);

    // Tidy up timer and register
    stop_timeout(element);

    // Make visible
    if (opacity==0)
        obj.style.visibility="";

    // Fade in one more step
    if (opacity <= 100) {
        _set_opacity(obj, opacity);
        opacity+=10;
        window.setTimeout("_fade_in(\'"+element+"\',"+opacity+")", 50);
        }

    // If fully visible, start countdown to fade out
    if (opacity >= 100) {
        window.setTimeout("_fade_out(\'"+element+"\', 100)", 500000000);
        }
    }

function _fade_out(element, opacity) // private 
    {

    // Get object
    obj = document.getElementById(element);

    // If still visible, fade down one further step
    if (opacity > 0) {
        _set_opacity(obj, opacity);
        opacity-=10;
        window.setTimeout("_fade_out(\'"+element+"\',"+opacity+")", 50);
        }

    // If close to invisible, hide object completely
    if (opacity<10) {
        obj.style.visibility="hidden";
        }
    }

function _set_opacity(obj, opacity) // private
    {
    opacity=(opacity==100) ? 99.999 : opacity;

    // IE/Win
    obj.style.filter="alpha(opacity:"+opacity+")";

    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity=opacity/100;

    // Older Mozilla and Firefox
    obj.style.MozOpacity=opacity/100;

    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity=opacity/100;
    }
    
function fade_in(element) // public
    {
    var obj=document.getElementById(element);
    // Start timer
    timers[element]=setTimeout("_fade_in(\'"+element+"\', 0)", 100);
    }

function fade_out(element, e) // public
    {
    // Tidy up timer and register
    stop_timeout(element);

    // Make sure we´re outside the whole fading div
    var relTarg;
    if (e.relatedTarget) 
        relTarg = e.relatedTarget;
    else if (e.toElement) 
        relTarg = e.toElement;

    // If all the way out, fade out
    if (relTarg.id=="") 
        _fade_out(element, 100);
    }

function stop_timeout(element) // public
    {
    // Stop timer
    clearTimeout(timers[element]);

    // Clear register
    timers[element]=false;
    }