﻿var opacityStyleName = (isIE) ? "filter" : "opacity";
var mozOpacityStyleName = "MozOpacity";
var safariKonquerorOpacityStyleName = "KHTMLOpacity";
var useMozOpacity = true;
var useSafariOpacity = true;
function setOpacity(domObjectId, targetValue, useFade, fadeInc, msDelay, fadeDown)
{
    try
    {
        var domObject = document.getElementById(domObjectId);
        var currentValue = getOpacity(domObjectId);
        if (!msDelay)
            msDelay = 10;
        if (!fadeInc)
            fadeInc = 3;
        if (!useFade)
            useFade = true;
        if (!fadeDown)
            fadeDown = (targetValue < currentValue) ? true : false;
        
        if ((fadeDown && (currentValue <= targetValue)) || (!fadeDown && (currentValue >= targetValue)))
        {
            useFade = false;
            currentValue = targetValue;
        }
        //alert("before\ncurrent: " + currentValue + "\ntarget" + targetValue);
        currentValue = (fadeDown) ? currentValue - fadeInc : currentValue - (-fadeInc);
        //alert("after\ncurrent: " + currentValue + "\ntarget" + targetValue);
        if (Navigator.isSafari())
        {
            domObject.style[safariKonquerorOpacityStyleName] = currentValue/100;
        }
        else
        {
            domObject.style[opacityStyleName] = (isIE) ? "alpha(opacity=" + currentValue + ");" : currentValue/100;
        }
        if (useMozOpacity)
            domObject.style[mozOpacityStyleName] = currentValue/100;
        if (useFade && (currentValue>=0 && currentValue<=100))
        {
        //alert(opacityStyleName + "\n" + domObject.style[opacityStyleName] + "\nsetOpacity('"+domObjectId+"',"+targetValue+","+useFade+","+fadeInc+","+msDelay+","+fadeDown+")");
        
            setTimeout("setOpacity('"+domObjectId+"',"+targetValue+","+useFade+","+fadeInc+","+msDelay+","+fadeDown+")", msDelay);
        }
    }
    catch (e)
    {
    }
}

function getOpacity(domObjectId)
{
    var opacity = 100;
    try
    {
        var domObject = document.getElementById(domObjectId);
        if (!isIE)
            opacity = parseFloat(domObject.style[opacityStyleName]);
        else
        {
            ieOpacityParts = domObject.style[opacityStyleName].split("=");
            if (ieOpacityParts.length > 0)
                opacity = parseInt(ieOpacityParts[1]);
        }
        
        if (opacity == NaN)
                opacity = parseFloat(domObject.style[mozOpacityStyleName]);
    }
    catch (e)
    {
    }
    if (!isNaN(opacity) && !isIE)
        opacity = opacity * 100;
    return (isNaN(opacity)) ? 100 : opacity;
}