<!--
// Author:  Yee Hsu
// Date:    6/4/2004
//
// Desc:    Javascript Toolbar Pull down Menu Animation
-->
<!--
        // See KB article about changing this dynamic HTML
        dynamicanimAttr = "dynamicanimation"
        animCancel = "skipanim"
        fpanimationPrefix = "fpAnim"
        animateElements = new Array()
        currentElement = 0
        speed = 1
        stepsZoom = 8
        stepsWord = 8
        stepsFly = 17
        stepsSpiral = 16
        stepsSpiralWord = 19
        stepsElastic = 32
        steps = stepsZoom
        step = 0
        cornerPhase=0
        outEffect=0
        function remSuffix(str)
        {
                ind=str.indexOf("FP")
                str = str.substring(0,ind)
                return str
        }
        function dynAnimOut(el)
        {
                outEffect=1
                dynAnimation(el)
                outEffect=0
        }
        function dynAnimation(obj)
        {               
                animateElements = new Array()
                var ms = navigator.appVersion.indexOf("MSIE")
                var macness = navigator.appVersion.indexOf("Macintosh")

                ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
                ns6 = false
                if(!ie4)
                {
                        if((navigator.appName == "Netscape") &&
                                (parseInt(navigator.appVersion.substring(0, 1)) >= 5))
                        {
                                ns6=true
                                doc_els=document.getElementsByTagName('*')
                        }
                        else if((navigator.appName == "Netscape") &&
                                (parseInt(navigator.appVersion.substring(0, 1)) == 4))
                        {
                                doc_els=document.layers
                        }
                        else
                                return
                }
                else
                        doc_els=document.all
        if(outEffect && !ie4)
            return
                if(ie4)
                {
                    for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
                        {
                                el = document.all[index]
                                if(outEffect && el != obj)
                                        continue
                                if(outEffect)
                                        animationId = el.id.substring(9,el.id.length)
                                else
                                        animationId = el.id.substring(6,el.id.length)
                                animation=remSuffix(animationId)
                                if(null != animation)
                                {
                                        altcnt=0
                                        if(     animation == "dropWord"                         ||
                                                animation == "flyTopRightWord"                  ||
                                                animation == "flyBottomRightWord"               ||
                                                animation == "waveWords"                        ||
                                                animation == "hopWords")
                                        {
                                                ih = el.innerHTML
                                                outString = ""
                                                i1 = 0
                                                iend = ih.length
                                                while(true)
                                                {
                                                        i2 = startWord(ih, i1)
                                                        if(i2 == -1)
                                                        i2 = iend
                                                        outWord(ih, i1, i2, false, "", outEffect ? obj.id : el.id)
                                                        if(i2 == iend)
                                                                break
                                                        i1 = i2
                                                        i2 = endWord(ih, i1)
                                                        if(i2 == -1)
                                                                i2 = iend
                                                        if (animation == "waveWords")
                                                                outWordAlt(ih, i1, i2, true, animation, altcnt)
                                                        else
                                                                outWord(ih, i1, i2, true, (outEffect ? "Out" : "") + animation,
                                                                        outEffect ?  obj.id : el.id)

                                                        if(i2 == iend)
                                                                break
                                                        i1 = i2
                                                        altcnt++
                                                }
                                                document.all[index].innerHTML = outString
                                                document.all[index].style.posLeft = 0
                                                document.all[index].setAttribute(animCancel, true)
                                                document.all[index].style.visibility="visible"
                                        }
                                }
                        }
                }
                i = 0
                for (index=0; index < doc_els.length; index++)
                {
                        el = doc_els[index]
                        if(0 != el.id.indexOf(fpanimationPrefix))
                                continue
                        if (ie4)
                        {
                                elprops=el.style
                                scrollOffsetTop=document.body.scrollTop
                                docHeight=document.body.offsetHeight
                                docWidth=document.body.offsetWidth
                                elW=100
                                elH=el.offsetHeight
                        }
                        else
                        {
                                scrollOffsetTop=window.pageYOffset
                                docHeight=window.innerHeight
                                docWidth=window.innerWidth
                                if (ns6)
                                {
                                        elprops=el.style
                                        elW=100
                                        elH=el.offsetHeight
                                }
                                else{
                                        elprops=el
                                        elW=el.clip.width
                                        elH=el.clip.height
                                }
                        }
                        if(outEffect)
                                animationId = el.id.substring(9,el.id.length)
                        else
                                animationId = el.id.substring(6,el.id.length)
                        animation=remSuffix(animationId)
                        if(outEffect && (obj != el))
                        {
                                if(el.SRCID != obj.id)
                                        continue
                        }
                        if (null != animation )
                        {
                                if(ie4 && null!=el.getAttribute(animCancel, false))
                                        continue
                                if(!ie4)
                                {
                                        elprops.posLeft=elprops.left
                                        elprops.posTop=elprops.top
                                }
                                el.startL=offsetLeft(el)
                                if(animation == "flyLeft")
                                {
                                        elprops.posLeft = -offsetLeft(el)-elW
                                        elprops.posTop = 0
                                }
                                else if(animation == "flyRight" || animation=="elasticRight")
                                {
                                        elprops.posLeft = -offsetLeft(el)+docWidth
                                        elprops.posTop = 0
                                }
                                else if(animation == "flyTop" || animation == "dropWord")
                                {
                                        elprops.posLeft = 0
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
                                }
                                else if(animation == "flyBottom" || animation == "elasticBottom")
                                {
                                        elprops.posLeft = 0
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight 
                                }
                                else if(animation == "flyTopLeft")
                                {
                                        elprops.posLeft = -offsetLeft(el)-elW
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
                                }
                                else if(animation == "flyTopRight" || animation == "flyTopRightWord")
                                {
                                        elprops.posLeft = -offsetLeft(el)+docWidth
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
                                }
                                else if(animation == "flyCorner")
                                {
                                        elprops.posLeft = docWidth*0.2-offsetLeft(el)
                                        
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight 
                                }
                                else if(animation == "flyBottomLeft")
                                {
                                        elprops.posLeft = -offsetLeft(el)-elW
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
                                }
                                else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
                                {
                                        elprops.posLeft = -offsetLeft(el)+docWidth
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
                                }
                                else if(animation == "spiral")
                                {
                                        elprops.posLeft = -offsetLeft(el)+docWidth
                                        elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
                                }
                                else if((animation.indexOf("waveWords") != -1) || animation=="hopWords")
                                {
                                        if(i)
                                        {
                                                prevEl=animateElements[i-1]
                                                elprops.r = offsetLeft(el)-prevEl.startL
                                        }
                                        else
                                                elprops.r = offsetLeft(el)
                                }
                                else if(animation == "wipeLR" || animation == "wipeMID")
                                {
                                        if (ie4 && elprops.position=="absolute")
                                        {
                                                el.sizeW=el.offsetWidth

                                                if(macness < 0)
                                                        elprops.clip="rect(0 0 0 0)"
                                        }
                                        else if (!ie4)
                                        {
                                                if (ns6)
                                                {
                                                        elprops.clip="rect(0 0 0 0)"
                                                }
                                                else{
                                                        el.sizeW=el.clip.width
                                                        el.clip.width=0
                                                }
                                        }
                                }
                                else if(animation == "wipeTB")
                                {
                                        if (ie4 && elprops.position=="absolute")
                                        {
                                                elprops.clip="rect(0 0 0 0)"
                                        }
                                        else if(!ie4)
                                        {
                                                if (ns6)
                                                {
                                                        elprops.clip="rect(0 0 0 0)"
                                                }
                                                else{
                                                        el.sizeH=el.clip.height
                                                        el.clip.height=0
                                                }
                                        }
                                }
                                else if(animation == "zoomIn")
                                {
                                        elprops.posLeft = 0
                                        elprops.posTop = 0
                                }
                                else if(animation == "zoomOut")
                                {
                                        elprops.posLeft = 0
                                        elprops.posTop = 0
                                }
                                else
                                {
                                        continue
                                }
                                if(!outEffect)
                                {
                                        el.initLeft = elprops.posLeft
                                        el.initTop  = elprops.posTop
                                        el.endLeft  = 0
                                        el.endTop   = 0
                                        elprops.visibility = "hidden"
                                }
                                else
                                {
                                        el.initLeft = 0
                                        el.initTop  = 0
                                        el.endLeft = elprops.posLeft
                                        el.endTop  = elprops.posTop
                                        elprops.posTop = 0
                                        elprops.posLeft = 0
                                }
                                if(!ie4)
                                {
                                        elprops.left=elprops.initLeft
                                        elprops.top =elprops.initTop
                                }
                                animateElements[i++] = el
                        }
                }
                if(animateElements.length > 0)
                {
                        if(outEffect)
                                window.setTimeout("animate(1);", speed, "Javascript")
                        else
                                window.setTimeout("animate(0);", speed, "Javascript")
                }
        }
        function offsetLeft(el)
        {
                if(ie4 || ns6)
                {
                        x = el.offsetLeft
                        for (e = el.offsetParent; e; e = e.offsetParent)
                                x += e.offsetLeft
                        return x
                }
                else
                {
                        x = el.pageX
                        return x
                }
        } 
        function offsetTop(el)
        {
                if(ie4 || ns6)
                {
                        y = el.offsetTop
                        for (e = el.offsetParent; e; e = e.offsetParent)
                                y += e.offsetTop;
                        return y
                }
                else
                {
                        y = el.pageY
                        return y        
                }
        }
        function startWord(ih, i)
        {
                for(tag = false; i < ih.length; i++)
                {
                        c = ih.charAt(i)
                        if(c == '<')
                        {
                                if(ih.substring(i+1, i+4) == "IMG")
                                return i;
                                tag = true
                        }
                        if(!tag)
                                return i
                        if(c == '>')
                                tag = false
                }
                return -1
        }
        function endWord(ih, i)
        {
                nonSpace = false
                space = false
                img = false
                if(ih.charAt(i) == '<')
                {
                        img = true
                        i++;
                }
                while(i < ih.length)
                {
                        c = ih.charAt(i)
                        if(c != ' ')
                                nonSpace = true
                        if(img && c == '>')
                                img = false;
                        if(nonSpace && !img && c == ' ')
                                space = true
                        if(c == '<')
                                return i
                        if(space && c != ' ')
                                return i
                        i++
                }
                return -1
        }
        function outWord(ih, i1, i2, dyn, anim, srcID)
        {
                if(dyn)
                        if(!outEffect)
                                outString += "<SPAN ID=\"" +  fpanimationPrefix + anim + "FP\" style=\"position: relative; visibility: hidden;\">"
                        else
                                outString += "<SPAN SRCID=\"" + srcID + "\"ID=\"" +  fpanimationPrefix + anim + "FP\" style=\"position: relative;\">"
                outString += ih.substring(i1, i2)
                if(dyn)
                        outString += "</SPAN>"
        }
        function outWordAlt(ih, i1, i2, dyn, anim, altcnt)
        {
                if(dyn)
                {
                        if(altcnt%2)
                                outString += "<SPAN ID=\"" +  fpanimationPrefix + anim + "LFP\" style=\"position: relative;  visibility: hidden;\">"
                        else
                                outString += "<SPAN ID=\"" +  fpanimationPrefix + anim + "RFP\" style=\"position: relative;  visibility: hidden;\">"
                }
                        
                outString += ih.substring(i1, i2)
                if(dyn)
                        outString += "</SPAN>"
        }
        function animate(animOut)
        {
                {
                        el = animateElements[currentElement]

                        if(animOut)
                                animationId = el.id.substring(9,el.id.length);
                        else
                                animationId = el.id.substring(6,el.id.length);
                        animation=remSuffix(animationId)
                        if (ie4)
                                elprops=el.style
                        else{
                                if (ns6)
                                        elprops=el.style
                                else
                                        elprops=el
                        }

                        if(!step && !animOut)
                                elprops.visibility="visible"
                        step++
                        if(animation == "spiral")
                        {
                                steps = stepsSpiral
                                v = step/steps
                                rf = 1.0 - v
                                t = v * 2.0*Math.PI
                                rx = Math.max(Math.abs(el.initLeft), 200)
                                ry = Math.max(Math.abs(el.initTop),  200)
                                elprops.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
                                elprops.posTop  = Math.ceil(-rf*Math.sin(t)*ry)
                        }
                        else if(animation == "waveWordsL" || animation=="hopWords" || animation == "waveWords")
                        {
                                steps = stepsSpiralWord
                                v = step/steps
                                rf = (1.0 - v)
                                t = v * 1.0*Math.PI
                                elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
                                elprops.posTop  = Math.ceil(-rf*Math.sin(t)*elprops.r)
                        }
                        else if(animation == "waveWordsR")
                        {
                                steps = stepsSpiralWord
                                v = step/steps
                                rf = (1.0 - v)
                                t = v * 1.0*Math.PI
                                elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
                                elprops.posTop  = Math.ceil( rf*Math.sin(t)*elprops.r)
                        }
                        else if(animation == "zoomIn")
                        {
                                steps = stepsZoom
                                elprops.fontSize = Math.ceil(50+50*step/steps) + "%"
                                elprops.posLeft = 0
                        }
                        else if(animation == "zoomOut")
                        {
                                steps = stepsZoom
                                fontSz=Math.ceil(100+200*(steps-step)/steps) + "%"
                                elprops.fontSize = fontSz
                                elprops.posLeft = 0
                        }
                        else if(animation == "elasticRight")
                        {
                                steps = stepsElastic
                                v = step/steps
                                rf=Math.exp(-v*7)
                                t = v * 1.5*Math.PI
                                rx =Math.abs(el.initLeft)
                                elprops.posLeft = rf*Math.cos(t)*rx
                                elprops.posTop  = 0
                        }
                        else if(animation == "elasticBottom")
                        {
                                steps = stepsElastic
                                v = step/steps
                                rf=Math.exp(-v*7)
                                t = v * 2.5*Math.PI
                                ry =Math.abs(el.initTop)
                                elprops.posLeft = 0
                                elprops.posTop  = rf*Math.cos(t)*ry
                        }
                        else if(animation == "wipeLR")
                        {
                                steps = stepsElastic
                                if(ie4 && elprops.position=="absolute")
                                        elprops.clip = "rect(0 "+ step/steps*100 +"% 100% 0)"
                                else if (!ie4)
                                {
                                        if (ns6)
                                        {
                                                postop = elprops.top
                                                posleft = elprops.left
                                                str="position:absolute;top:"+postop+";left:"+posleft+";clip:rect(0px " + step/steps*el.offsetWidth + "px "+el.offsetHeight+"px 0px)";
                                                el.setAttribute("style",str);
                                        }
                                        else
                                                elprops.clip.right=step/steps*el.sizeW
                                }
                        }
                        else if(animation == "wipeTB")
                        {
                                steps = stepsElastic
                                if(ie4 && elprops.position=="absolute")
                                        elprops.clip = "rect(0 100% "+step/steps*el.offsetHeight+"px 0)"
                                else{
                                        if (ns6)
                                        {
                                                postop = elprops.top
                                                posleft = elprops.left
                                                str="position:absolute;top:"+postop+";left:"+posleft+";clip:rect(0px "+ el.offsetWidth + "px " +step/steps*el.offsetHeight+"px 0px)";
                                                el.setAttribute("style",str);
                                        }
                                        else{
                                                elprops.clip.bottom=step/steps*el.sizeH         
                                        }
                                }
                        }
                        else if(animation == "wipeMID")
                        {
                                steps = stepsElastic
                                if(ie4 && elprops.position=="absolute")
                                {
                                        elprops.clip = "rect(0 "+el.sizeW/2*(1+step/steps)+"px 100% "+el.sizeW/2*(1-step/steps)+")"
                                }
                                else if(!ie4)
                                {
                                        if (ns6)
                                        {
                                                postop = elprops.top
                                                posleft = elprops.left
                                                str="position:absolute;top:"+postop+";left:"+posleft+";clip:rect(0px "+ el.offsetWidth/2*(1+step/steps) + "px "+el.offsetHeight+"px "+el.offsetWidth/2*(1-step/steps)+"px)";
                                                el.setAttribute("style",str);   
                                        }
                                        else{
                                                elprops.clip.right=el.sizeW/2*(1+step/steps)
                                                elprops.clip.left=el.sizeW/2*(1-step/steps)
                                        }
                                }
                        }
                        else if(animation == "flyCorner")
                        {
                                if(!cornerPhase)
                                {
                                        steps = stepsElastic/2
                                        v = step/steps
                                        rf=Math.exp(-v*7)
                                        t = v * 2.5*Math.PI
                                        ry =Math.abs(el.initTop)
                                        elprops.posTop  = Math.ceil(rf*Math.cos(t)*ry)
                                }
                                else
                                {
                                        steps = stepsFly
                                        dl = el.initLeft / steps
                                        elprops.posLeft = elprops.posLeft - dl
                                        elprops.posTop = 0
                                }
                        }
                        else
                        {
                                steps = stepsFly
                                if(animation == "dropWord" || animation == "flyTopRightWord" || animation == "flyBottomRightWord")
                                        steps = stepsWord
                                dl = (el.endLeft - el.initLeft) / steps
                                dt = (el.endTop  - el.initTop)  / steps
                                elprops.posLeft = elprops.posLeft + dl
                                elprops.posTop = elprops.posTop + dt
                        }
                        if (step >= steps) 
                        {
                                if(!(animation == "wipeLR"      ||
                                        animation  == "wipeTB"  ||
                                        animation  == "wipeMID" ||
                                        (animation == "flyCorner" && !cornerPhase)))
                                {
                                        elprops.posLeft = el.endLeft
                                        elprops.posTop = el.endTop
                                }
                                if(animOut)
                                {
                                        elprops.visibility="hidden"
                                }

                                step = 0
                                if(animation=="flyCorner" && !cornerPhase)
                                        cornerPhase=1
                                else
                                {
                                        cornerPhase=0
                                        currentElement++
                                }

                        }
                        if(!ie4)
                        {
                                elprops.left = elprops.posLeft
                                elprops.top = elprops.posTop
                        }
                        if(currentElement < animateElements.length)
                        {
                                if(animOut)
                                        window.setTimeout("animate(1);", speed, "Javascript")
                                else                                    
                                        window.setTimeout("animate(0);", speed, "Javascript")
                        }
                        else
                                currentElement=0
                }
        }
        function rollIn(el)
        {
                var ms = navigator.appVersion.indexOf("MSIE")
                ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
                if(ie4)
                {
                        el.initstyle=el.style.cssText;el.style.cssText=el.fprolloverstyle
                }
        }
        function rollOut(el)
        {
                var ms = navigator.appVersion.indexOf("MSIE")
                ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
                if(ie4)
                {
                        el.style.cssText=el.initstyle
                }
        }
        function clickSwapStyle(el)
        {
                var ms = navigator.appVersion.indexOf("MSIE")
                ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
                if(ie4)
                {
                        ts=el.style.cssText
                        el.style.cssText=el.fprolloverstyle
                        el.fprolloverstyle=ts
                }
        }
        function clickSwapImg(el)
        {
                if(el)
                        {
                        ts=el.src
                        el.src=el.lowsrc?el.lowsrc:el.getAttribute?el.getAttribute('lowsrc'):el.src;
                        el.lowsrc=ts
                        }
        }
//-->