| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.fx.text"]){ |
| dojo._hasResource["dojox.fx.text"]=true; |
| dojo.provide("dojox.fx.text"); |
| dojo.require("dojo.fx"); |
| dojo.require("dojo.fx.easing"); |
| dojox.fx.text._split=function(_1){ |
| var _2=_1.node=dojo.byId(_1.node),s=_2.style,cs=dojo.getComputedStyle(_2),_3=dojo.coords(_2,true); |
| _1.duration=_1.duration||1000; |
| _1.words=_1.words||false; |
| var _4=(_1.text&&typeof (_1.text)=="string")?_1.text:_2.innerHTML,_5=s.height,_6=s.width,_7=[]; |
| dojo.style(_2,{height:cs.height,width:cs.width}); |
| var _8=/(<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)/g; |
| var _9=(_1.words?/(<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)\s*|([^\s<]+\s*)/g:/(<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)\s*|([^\s<]\s*)/g); |
| var _a=(typeof _1.text=="string")?_1.text.match(_9):_2.innerHTML.match(_9); |
| var _b=""; |
| var _c=0; |
| var _d=0; |
| for(var i=0;i<_a.length;i++){ |
| var _e=_a[i]; |
| if(!_e.match(_8)){ |
| _b+="<span>"+_e+"</span>"; |
| _c++; |
| }else{ |
| _b+=_e; |
| } |
| } |
| _2.innerHTML=_b; |
| function _f(_10){ |
| var _11=_10.nextSibling; |
| if(_10.tagName=="SPAN"&&_10.childNodes.length==1&&_10.firstChild.nodeType==3){ |
| var _12=dojo.coords(_10,true); |
| _d++; |
| dojo.style(_10,{padding:0,margin:0,top:(_1.crop?"0px":_12.t+"px"),left:(_1.crop?"0px":_12.l+"px"),display:"inline"}); |
| var _13=_1.pieceAnimation(_10,_12,_3,_d,_c); |
| if(dojo.isArray(_13)){ |
| _7=_7.concat(_13); |
| }else{ |
| _7[_7.length]=_13; |
| } |
| }else{ |
| if(_10.firstChild){ |
| _f(_10.firstChild); |
| } |
| } |
| if(_11){ |
| _f(_11); |
| } |
| }; |
| _f(_2.firstChild); |
| var _14=dojo.fx.combine(_7); |
| dojo.connect(_14,"onEnd",_14,function(){ |
| _2.innerHTML=_4; |
| dojo.style(_2,{height:_5,width:_6}); |
| }); |
| if(_1.onPlay){ |
| dojo.connect(_14,"onPlay",_14,_1.onPlay); |
| } |
| if(_1.onEnd){ |
| dojo.connect(_14,"onEnd",_14,_1.onEnd); |
| } |
| return _14; |
| }; |
| dojox.fx.text.explode=function(_15){ |
| var _16=_15.node=dojo.byId(_15.node); |
| var s=_16.style; |
| _15.distance=_15.distance||1; |
| _15.duration=_15.duration||1000; |
| _15.random=_15.random||0; |
| if(typeof (_15.fade)=="undefined"){ |
| _15.fade=true; |
| } |
| if(typeof (_15.sync)=="undefined"){ |
| _15.sync=true; |
| } |
| _15.random=Math.abs(_15.random); |
| _15.pieceAnimation=function(_17,_18,_19,_1a,_1b){ |
| var _1c=_18.h; |
| var _1d=_18.w; |
| var _1e=_15.distance*2; |
| var _1f=_15.duration; |
| var _20=parseFloat(_17.style.top); |
| var _21=parseFloat(_17.style.left); |
| var _22=0; |
| var _23=0; |
| var _24=0; |
| if(_15.random){ |
| var _25=(Math.random()*_15.random)+Math.max(1-_15.random,0); |
| _1e*=_25; |
| _1f*=_25; |
| _22=((_15.unhide&&_15.sync)||(!_15.unhide&&!_15.sync))?(_15.duration-_1f):0; |
| _23=Math.random()-0.5; |
| _24=Math.random()-0.5; |
| } |
| var _26=((_19.h-_1c)/2-(_18.y-_19.y)); |
| var _27=((_19.w-_1d)/2-(_18.x-_19.x)); |
| var _28=Math.sqrt(Math.pow(_27,2)+Math.pow(_26,2)); |
| var _29=_20-_26*_1e+_28*_24; |
| var _2a=_21-_27*_1e+_28*_23; |
| var _2b=dojo.animateProperty({node:_17,duration:_1f,delay:_22,easing:(_15.easing||(_15.unhide?dojo.fx.easing.sinOut:dojo.fx.easing.circOut)),beforeBegin:(_15.unhide?function(){ |
| if(_15.fade){ |
| dojo.style(_17,"opacity",0); |
| } |
| _17.style.position=_15.crop?"relative":"absolute"; |
| _17.style.top=_29+"px"; |
| _17.style.left=_2a+"px"; |
| }:function(){ |
| _17.style.position=_15.crop?"relative":"absolute"; |
| }),properties:{top:(_15.unhide?{start:_29,end:_20}:{start:_20,end:_29}),left:(_15.unhide?{start:_2a,end:_21}:{start:_21,end:_2a})}}); |
| if(_15.fade){ |
| var _2c=dojo.animateProperty({node:_17,duration:_1f,delay:_22,easing:(_15.fadeEasing||dojo.fx.easing.quadOut),properties:{opacity:(_15.unhide?{start:0,end:1}:{end:0})}}); |
| return (_15.unhide?[_2c,_2b]:[_2b,_2c]); |
| }else{ |
| return _2b; |
| } |
| }; |
| var _2d=dojox.fx.text._split(_15); |
| return _2d; |
| }; |
| dojox.fx.text.converge=function(_2e){ |
| _2e.unhide=true; |
| return dojox.fx.text.explode(_2e); |
| }; |
| dojox.fx.text.disintegrate=function(_2f){ |
| var _30=_2f.node=dojo.byId(_2f.node); |
| var s=_30.style; |
| _2f.duration=_2f.duration||1500; |
| _2f.distance=_2f.distance||1.5; |
| _2f.random=_2f.random||0; |
| if(!_2f.fade){ |
| _2f.fade=true; |
| } |
| var _31=Math.abs(_2f.random); |
| _2f.pieceAnimation=function(_32,_33,_34,_35,_36){ |
| var _37=_33.h; |
| var _38=_33.w; |
| var _39=_2f.interval||(_2f.duration/(1.5*_36)); |
| var _3a=(_2f.duration-_36*_39); |
| var _3b=Math.random()*_36*_39; |
| var _3c=(_2f.reverseOrder||_2f.distance<0)?(_35*_39):((_36-_35)*_39); |
| var _3d=_3b*_31+Math.max(1-_31,0)*_3c; |
| var _3e={}; |
| if(_2f.unhide){ |
| _3e.top={start:(parseFloat(_32.style.top)-_34.h*_2f.distance),end:parseFloat(_32.style.top)}; |
| if(_2f.fade){ |
| _3e.opacity={start:0,end:1}; |
| } |
| }else{ |
| _3e.top={end:(parseFloat(_32.style.top)+_34.h*_2f.distance)}; |
| if(_2f.fade){ |
| _3e.opacity={end:0}; |
| } |
| } |
| var _3f=dojo.animateProperty({node:_32,duration:_3a,delay:_3d,easing:(_2f.easing||(_2f.unhide?dojo.fx.easing.sinIn:dojo.fx.easing.circIn)),properties:_3e,beforeBegin:(_2f.unhide?function(){ |
| if(_2f.fade){ |
| dojo.style(_32,"opacity",0); |
| } |
| _32.style.position=_2f.crop?"relative":"absolute"; |
| _32.style.top=_3e.top.start+"px"; |
| }:function(){ |
| _32.style.position=_2f.crop?"relative":"absolute"; |
| })}); |
| return _3f; |
| }; |
| var _40=dojox.fx.text._split(_2f); |
| return _40; |
| }; |
| dojox.fx.text.build=function(_41){ |
| _41.unhide=true; |
| return dojox.fx.text.disintegrate(_41); |
| }; |
| dojox.fx.text.blockFadeOut=function(_42){ |
| var _43=_42.node=dojo.byId(_42.node); |
| var s=_43.style; |
| _42.duration=_42.duration||1000; |
| _42.random=_42.random||0; |
| var _44=Math.abs(_42.random); |
| _42.pieceAnimation=function(_45,_46,_47,_48,_49){ |
| var _4a=_42.interval||(_42.duration/(1.5*_49)); |
| var _4b=(_42.duration-_49*_4a); |
| var _4c=Math.random()*_49*_4a; |
| var _4d=(_42.reverseOrder)?((_49-_48)*_4a):(_48*_4a); |
| var _4e=_4c*_44+Math.max(1-_44,0)*_4d; |
| var _4f=dojo.animateProperty({node:_45,duration:_4b,delay:_4e,easing:(_42.easing||dojo.fx.easing.sinInOut),properties:{opacity:(_42.unhide?{start:0,end:1}:{end:0})},beforeBegin:(_42.unhide?function(){ |
| dojo.style(_45,"opacity",0); |
| }:undefined)}); |
| return _4f; |
| }; |
| var _50=dojox.fx.text._split(_42); |
| return _50; |
| }; |
| dojox.fx.text.blockFadeIn=function(_51){ |
| _51.unhide=true; |
| return dojox.fx.text.blockFadeOut(_51); |
| }; |
| dojox.fx.text.backspace=function(_52){ |
| var _53=_52.node=dojo.byId(_52.node); |
| var s=_53.style; |
| _52.words=false; |
| _52.duration=_52.duration||2000; |
| _52.random=_52.random||0; |
| var _54=Math.abs(_52.random); |
| var _55=10; |
| _52.pieceAnimation=function(_56,_57,_58,_59,_5a){ |
| var _5b=_52.interval||(_52.duration/(1.5*_5a)); |
| var _5c=_56.textContent; |
| var _5d=_5c.match(/\s/g); |
| if(typeof (_52.wordDelay)=="undefined"){ |
| _52.wordDelay=_5b*2; |
| } |
| if(!_52.unhide){ |
| _55=(_5a-_59-1)*_5b; |
| } |
| var _5e,_5f; |
| if(_52.fixed){ |
| if(_52.unhide){ |
| var _5e=function(){ |
| dojo.style(_56,"opacity",0); |
| }; |
| } |
| }else{ |
| if(_52.unhide){ |
| var _5e=function(){ |
| _56.style.display="none"; |
| }; |
| var _5f=function(){ |
| _56.style.display="inline"; |
| }; |
| }else{ |
| var _5f=function(){ |
| _56.style.display="none"; |
| }; |
| } |
| } |
| var _60=dojo.animateProperty({node:_56,duration:1,delay:_55,easing:(_52.easing||dojo.fx.easing.sinInOut),properties:{opacity:(_52.unhide?{start:0,end:1}:{end:0})},beforeBegin:_5e,onEnd:_5f}); |
| if(_52.unhide){ |
| var _61=Math.random()*_5c.length*_5b; |
| var _62=_61*_54/2+Math.max(1-_54/2,0)*_52.wordDelay; |
| _55+=_61*_54+Math.max(1-_54,0)*_5b*_5c.length+(_62*(_5d&&_5c.lastIndexOf(_5d[_5d.length-1])==_5c.length-1)); |
| } |
| return _60; |
| }; |
| var _63=dojox.fx.text._split(_52); |
| return _63; |
| }; |
| dojox.fx.text.type=function(_64){ |
| _64.unhide=true; |
| return dojox.fx.text.backspace(_64); |
| }; |
| } |