if(!window.JSFX)
    JSFX=new Object();
JSFX.FadeElemMinOpacity = 50;
JSFX.FadeElemAutoUp     = 20;
JSFX.FadeElemAutoDown   = 5;
JSFX.FadeElemSavedOver  = null;
JSFX.FadeElemSavedOut   = null;
JSFX.FadeElemIdIndex   = 0;
document.write('<STYLE TYPE="text/css">.elemFader{ position:relative; filter:alpha(opacity='+JSFX.FadeElemMinOpacity+'); -moz-opacity:'+JSFX.FadeElemMinOpacity/101+'}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader1{ position:relative; filter:alpha(opacity=10); -moz-opacity:0.1}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader2{ position:relative; filter:alpha(opacity=20); -moz-opacity:0.2}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader3{ position:relative; filter:alpha(opacity=30); -moz-opacity:0.3}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader4{ position:relative; filter:alpha(opacity=40); -moz-opacity:0.4}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader5{ position:relative; filter:alpha(opacity=50); -moz-opacity:0.5}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader6{ position:relative; filter:alpha(opacity=60); -moz-opacity:0.6}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader7{ position:relative; filter:alpha(opacity=70); -moz-opacity:0.7}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader8{ position:relative; filter:alpha(opacity=80); -moz-opacity:0.8}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader9{ position:relative; filter:alpha(opacity=90); -moz-opacity:0.9}</STYLE>');
JSFX.fadeElem_actionOnMouseOver = function(e)
{
    srcElement=e ? e.target : event.srcElement;
    if(srcElement.className && srcElement.className.indexOf("elemFader") != -1)
        JSFX.fadeUp(srcElement);
    if(JSFX.FadeElemSavedOver != null)
        JSFX.FadeElemSavedOver(e);
}
JSFX.fadeElem_actionOnMouseOut = function(e)
{
    srcElement=e ? e.target : event.srcElement;
    if(srcElement.className && srcElement.className.indexOf("elemFader") != -1)
       JSFX.fadeDown(srcElement);
    if(JSFX.FadeElemSavedOut != null)
        JSFX.FadeElemSavedOut(e);
}
JSFX.fadeElemAuto = function(minOpacity, stepUp, stepDown)
{
    if(minOpacity)
        JSFX.FadeElemMinOpacity = minOpacity;
    if(stepUp)
        JSFX.FadeElemAutoUp    = stepUp;
    if(stepDown)
        JSFX.FadeElemAutoDown    = stepDown;
    JSFX.FadeElemSavedOver = document.onmouseover;
    JSFX.FadeElemSavedOut  = document.onmouseout;
    document.onmouseover    = JSFX.fadeElem_actionOnMouseOver ;
    document.onmouseout    = JSFX.fadeElem_actionOnMouseOut ;
}
JSFX.fadeUpElem = function(elemName, step)
{
    if(document.layers || window.opera)
        return;
    elem = document.getElementById(elemName);
    if(elem)
        JSFX.fadeUp(elem, step);
}
JSFX.fadeUp = function(elem, step)
{
    if(elem)
    {
        if(!step) step=JSFX.FadeElemAutoUp;
        if(elem.fade == null)
       {
            elem.fade = new Object();
            elem.fade.state     = "OFF";
            elem.fade.upStep     = step;
            elem.fade.downStep  = step;
            elem.fade.minOpacity  = JSFX.FadeElemMinOpacity;
            elem.fade.index = elem.fade.minOpacity;
            elem.animate=JSFX.FadeElemAnimation;
            elem.fadeId="JSFX_FadeElem" + JSFX.FadeElemIdIndex++;
            window[elem.fadeId] = elem;
           if(elem.filters)
               elem.fade.minOpacity = elem.filters.alpha.opacity;
           else
               elem.fade.minOpacity = document.defaultView.getComputedStyle(elem,'').getPropertyValue('-moz-opacity') * 100;
       }
       if(elem.fade.state == "OFF")
       {
           elem.fade.upStep  = step;
           elem.fade.state = "FADE_UP";
           elem.animate();
        }
        else if( elem.fade.state == "FADE_UP_DOWN"
            || elem.fade.state == "FADE_DOWN")
        {
            elem.fade.upStep  = step;
            elem.fade.state = "FADE_UP";
        }
    }
}
JSFX.fadeDownElem = function(elemName, step)
{
    if(document.layers || window.opera)
        return;
    elem = document.getElementById(elemName);
    if(elem)
        JSFX.fadeDown(elem, step);
}
JSFX.fadeDown = function(elem, step)
{
    if(elem)
    {
        if(!step) step=JSFX.FadeElemAutoDown;
        if(elem.fade.state=="ON")
        {
            elem.fade.downStep  = step;
            elem.fade.state="FADE_DOWN";
            elem.animate();
        }
       else if(elem.fade.state == "FADE_UP")
        {
            elem.fade.downStep  = step;
            elem.fade.state="FADE_UP_DOWN";
        }
    }
}
JSFX.FadeImageAnimation = function()
{
    JSFX.FadeElemRunning = false;
    for(i=0 ; i<document.elems.length ; i++)
    {
       var elem = document.elems[i];
        if(elem.fade)
        {
            if(elem.fade.state == "FADE_UP")
            {
                elem.fade.index+=elem.fade.upStep;
                if(elem.fade.index > 100)
                    elem.fade.index = 100;
                if(elem.filters)
                    elem.filters.alpha.opacity = elem.fade.index;
                else
                    elem.style.MozOpacity = elem.fade.index/101;
                if(elem.fade.index == 100)
                    elem.fade.state="ON";
                else
                    JSFX.FadeElemRunning = true;
            }
            else if(elem.fade.state == "FADE_UP_DOWN")
            {
                elem.fade.index+=elem.fade.upStep;
                if(elem.fade.index > 100)
                    elem.fade.index = 100;
                if(elem.filters)
                    elem.filters.alpha.opacity = elem.fade.index;
                else
                    elem.style.MozOpacity = elem.fade.index/101;
                if(elem.fade.index == 100)
                    elem.fade.state="FADE_DOWN";
                JSFX.FadeElemRunning = true;
            }
            else if(elem.fade.state == "FADE_DOWN")
            {
                elem.fade.index-=elem.fade.downStep;
                if(elem.fade.index < elem.fade.minOpacity)
                    elem.fade.index = elem.fade.minOpacity;
                if(elem.filters)
                    elem.filters.alpha.opacity = elem.fade.index;
                else
                    elem.style.MozOpacity = elem.fade.index/101;
                if(elem.fade.index == elem.fade.minOpacity)
                    elem.fade.state="OFF";
                else
                    JSFX.FadeElemRunning = true;
            }
        }
    }
    if(JSFX.FadeElemRunning)
        setTimeout("JSFX.FadeElemAnimation()", 40);
}
JSFX.FadeElemAnimation = function()
{
    var fadeElemRunning = false;
    var elem = this;
    if(elem.fade)
    {
        if(elem.fade.state == "FADE_UP")
        {
            elem.fade.index+=elem.fade.upStep;
            if(elem.fade.index > 100)
                elem.fade.index = 100;
            if(elem.filters)
                elem.filters.alpha.opacity = elem.fade.index;
            else
                elem.style.MozOpacity = elem.fade.index/101;
            if(elem.fade.index == 100)
                elem.fade.state="ON";
            else
               fadeElemRunning = true;
        }
        else if(elem.fade.state == "FADE_UP_DOWN")
       {
            elem.fade.index+=elem.fade.upStep;
            if(elem.fade.index > 100)
                elem.fade.index = 100;
            if(elem.filters)
                elem.filters.alpha.opacity = elem.fade.index;
            else
                elem.style.MozOpacity = elem.fade.index/101;
            if(elem.fade.index == 100)
                elem.fade.state="FADE_DOWN";
            fadeElemRunning = true;
        }
        else if(elem.fade.state == "FADE_DOWN")
        {
            elem.fade.index-=elem.fade.downStep;
            if(elem.fade.index < elem.fade.minOpacity)
                elem.fade.index = elem.fade.minOpacity;
            if(elem.filters)
                elem.filters.alpha.opacity = elem.fade.index;
            else
                elem.style.MozOpacity = elem.fade.index/101;
            if(elem.fade.index == elem.fade.minOpacity)
                elem.fade.state="OFF";
            else
               fadeElemRunning = true;
       }
   }
    if(fadeElemRunning)
        setTimeout("window['"+elem.fadeId+"'].animate()", 40);
}