Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
599 lines (591 sloc)
13.3 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!-- | |
| // 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") | |
| ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4) | |
| if(!ie4) | |
| { | |
| 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 | |
| { | |
| elprops=el | |
| scrollOffsetTop=window.pageYOffset | |
| docHeight=window.innerHeight | |
| docWidth=window.innerWidth | |
| 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 | |
| elprops.clip="rect(0 0 0 0)" | |
| } | |
| else if (!ie4) | |
| { | |
| 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) | |
| { | |
| 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) | |
| { | |
| 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) | |
| { | |
| 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 | |
| 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) | |
| { | |
| 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 | |
| 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) | |
| { | |
| 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 = 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(document.all || document.layers) | |
| { | |
| ts=el.src | |
| el.src=el.lowsrc | |
| el.lowsrc=ts | |
| } | |
| } | |
| //--> | |