/* opacity.js -- JavaScript for fading objects in and out.  */

/*
 * Copyright (C) 2005 Tudor Hulubei <tudor@hulubei.net>.
 * Distributed under the GNU General Public License.
 */


function MakeObjectHidden(name)
{
    document.write("<style type='text/css'>#" + name +
                   " { visibility: hidden; }</style>");
}


function HideObject(name)
{
    if (document.getElementById)
    {
        var objectId = name;
        var object = document.getElementById(objectId);

        if (object)
        {
            SetOpacity(object, 100);
            FadeOut(objectId, 0);
        }

        return object;
    }

    return null;
}


function ShowObject(name)
{
    if (document.getElementById)
    {
        var objectId = name;
        var object = document.getElementById(objectId);

        if (object)
        {
            SetOpacity(object, 0);
            object.style.visibility = "visible";
            FadeIn(objectId, 0);
        }

        return object;
    }

    return null;
}


function FadeIn(objectId, opacity)
{
    if (document.getElementById)
    {
        var object = document.getElementById(objectId);
        if (object && (opacity <= 100))
        {
            SetOpacity(object, opacity);
            opacity += 5;
            window.setTimeout(
                "FadeIn('" + objectId + "'," + opacity + ")", 10);
        }
    }
}


function FadeOut(objectId, opacity)
{
    if (document.getElementById)
    {
        var object = document.getElementById(objectId);
        if (object)
        {
            if (opacity > 0)
            {
                SetOpacity(object, opacity);
                opacity -= 5;
                window.setTimeout(
                    "FadeOut('" + objectId + "'," + opacity + ")", 10);
            }
            else
                object.style.visibility = "hidden";
        }
    }
}


function SetOpacity(object, opacity)
{
    opacity = (opacity >= 100) ? 99.999 : opacity;
    opacity = (opacity < 0) ? 0 : opacity;

    /* IE/Win.  */
    object.style.filter = "alpha(opacity:" + opacity + ")";
    /* Safari<1.2, Konqueror.  */
    object.style.KHTMLOpacity = opacity / 100;
    /* Older Mozilla and Firefox.  */
    object.style.MozOpacity = opacity / 100;
    /* Safari 1.2, newer Firefox and Mozilla, CSS3.  */
    object.style.opacity = opacity / 100;
}


/* Local Variables: */
/* mode: C++ */
/* End: */

