function FadeInOnLoad(ImageID, StartOpacity, EndOpacity, Speed)
{
    var CachedImage = new Image();
    CachedImage.onload = function(){FadeIn(ImageID, StartOpacity, EndOpacity, Speed);};
    CachedImage.src = document.getElementById(ImageID).src;
}

function FadeIn(ElemID, StartOpacity, EndOpacity, Speed)
{
    SetOpacity(ElemID, StartOpacity);
    document.getElementById(ElemID).style.visibility = 'visible';
    for (var i=StartOpacity, j=0; i <= EndOpacity ; i++, j++)
    {
        setTimeout('SetOpacity("'+ElemID+'",'+i+')', ((100-Speed)*j));
    }
}

function FadeOut(ElemID, StartOpacity, EndOpacity, Speed)
{
    SetOpacity(ElemID, StartOpacity);
    document.getElementById(ElemID).style.visibility = 'visible';
    for (var i=StartOpacity, j=0; i >= EndOpacity ; i--, j++)
    {
        setTimeout('SetOpacity("'+ElemID+'",'+i+')', ((100-Speed)*j));
    }
}

function SetOpacity(ElemID, NewOpacity)
{
    if((NewOpacity >= 0) && (NewOpacity <= 100) && (document.getElementById(ElemID)) && (document.getElementById(ElemID).style))
    {
        if (typeof(document.getElementById(ElemID).style.opacity) != null)
            document.getElementById(ElemID).style.opacity = (NewOpacity / 100);
        if (typeof(document.getElementById(ElemID).style.filter) != null)
            document.getElementById(ElemID).style.filter = 'alpha(opacity=' + NewOpacity + ')';
    }
}

function GetOpacity(ElemID)
{
    return (document.getElementById(ElemID).style.opacity * 100);
}

