/* V1
behavior attribute
faderShow = switch milisseconds,fade milisseconds
*/
var _FaderShow_OldOnload = window.onload;
window.onload = function()
{
    if(_FaderShow_OldOnload)
        _FaderShow_OldOnload();

    var oDivs = document.getElementsByTagName('DIV');
    for(var i = 0 ; i < oDivs.length;i++)
    {
        var oDiv = oDivs[i];
        for(var j=0;j<oDiv.attributes.length;j++)
        {
            var oAttrib = oDiv.attributes[j]    
            if(oAttrib.nodeName.toLowerCase().indexOf('fadershow') != -1)
                _initFShow(oDiv,oAttrib.nodeValue)
        }
    }
}

function _initFShow(oDiv,sTimer)
{
    oDiv.faddingElems = [];
    for(var i = 0 ; i < oDiv.childNodes.length; i++)
        if(oDiv.childNodes[i].nodeType == 1)
        {
            var oChild = oDiv.childNodes[i];
            oChild.style.visibility = 'hidden';
            oDiv.faddingElems.push(oChild);
        }
    oDiv.style.visibility = 'visible';
    if(oDiv.faddingElems.length==0)
        return;
    if(oDiv.faddingElems.length>=1)
        oDiv.faddingElems[0].style.visibility = 'visible';
    if(oDiv.faddingElems.length==1)
        return;
    
    var sDelay = "100";
    var oSplit =  sTimer.split(',');
    if(oSplit.length==2)
    {
        sDelay = oSplit[1];
        sTimer = oSplit[0];
    }    
    var nDelay = parseInt(sDelay);
    var nTimer = parseInt(sTimer);
    if(nDelay>nTimer)
        nDelay = nTimer / 2;
    
    oDiv.faderDelay = nDelay;
    oDiv.oSwapTimer = setInterval(function(){_SawpFShow(oDiv)},parseInt(sTimer))
    
    
    function _SawpFShow(oDiv)
    {
        FaderShow_Animate(oDiv,oDiv.faddingElems[0],100,0,oDiv.faderDelay/50)
        oDiv.faddingElems.push(oDiv.faddingElems.shift())
        FaderShow_Animate(oDiv,oDiv.faddingElems[0],0,100,oDiv.faderDelay/50)
    }
    
    
    oDiv.prev=function()
    {
        var oFather = this;
        clearInterval(this.oSwapTimer);
        clearInterval(this.oAnimTimer);
        for(var i = 1 ; i < this.faddingElems.length;i++)
        {
            this.faddingElems[i].style.opacity = 0;
            this.faddingElems[i].style.MozOpacity = this.faddingElems[i].style.opacity;
            this.faddingElems[i].style.filter = 'alpha(opacity=0)';
            //this.faddingElems[i].style.visibility = 'hidden'
        }
        this.faddingElems[0].style.opacity = 1.0;
        this.faddingElems[0].style.MozOpacity = this.faddingElems[0].style.opacity;
        this.faddingElems[0].style.filter = 'alpha(opacity=100)';
        this.faddingElems[0].style.visibility = 'visible'
        
        this.oSwapTimer = setInterval(function(){_SawpFShow(oFather)},parseInt(sTimer))
        FaderShow_Animate(this,this.faddingElems[0],100,0,this.faderDelay/50)
        this.faddingElems.unshift(this.faddingElems.pop())
        FaderShow_Animate(this,this.faddingElems[0],0,100,this.faderDelay/50)

    }
    oDiv.next=function()
    {
        var oFather = this;
        clearInterval(this.oSwapTimer);
        clearInterval(this.oAnimTimer);
        for(var i = 1 ; i< this.faddingElems.length;i++)
        {
            this.faddingElems[i].style.opacity = 0;
            this.faddingElems[i].style.MozOpacity = this.faddingElems[i].style.opacity;
            this.faddingElems[i].style.filter = 'alpha(opacity=0)';
            //this.faddingElems[0].style.visibility = 'hidden'
        }
        this.faddingElems[0].style.opacity = 1.0;
        this.faddingElems[0].style.MozOpacity = this.faddingElems[0].style.opacity;
        this.faddingElems[0].style.filter = 'alpha(opacity=100)';
        this.faddingElems[0].style.visibility = 'visible'
        
        this.oSwapTimer = setInterval(function(){_SawpFShow(oFather)},parseInt(sTimer))
        FaderShow_Animate(this,this.faddingElems[0],100,0,this.faderDelay/50)
        this.faddingElems.push(this.faddingElems.shift())
        FaderShow_Animate(this,this.faddingElems[0],0,100,this.faderDelay/50)

    }
    
    
    function FaderShow_Animate(father,obj,CurrentAlpha,TargetAlpha,steps)
    {
        if(TargetAlpha==100)
            obj.style.visibility = 'visible'
        CurrentAlpha = parseInt(CurrentAlpha);
        if (isNaN(CurrentAlpha))
        {
              CurrentAlpha = parseInt(obj.style.opacity*100);
              if (isNaN(CurrentAlpha))
                  CurrentAlpha=100;
        }
        var DeltaAlpha=parseInt((CurrentAlpha-TargetAlpha)/steps);
        var NewAlpha = CurrentAlpha - DeltaAlpha;
        obj.style.opacity = (NewAlpha / 100);
        obj.style.MozOpacity = obj.style.opacity;
        obj.style.filter = 'alpha(opacity='+NewAlpha+')';
         if (steps>1)
             father.oAnimTimer = setTimeout(function(){FaderShow_Animate(father,obj,NewAlpha,TargetAlpha,steps-1)}, 50);
         else
             if(TargetAlpha==0) obj.style.visibility = 'hidden'
         
    }

}


