scrollview-scrollbars-min.js revision 02be055f2056b6600cfcbf09a3d1fd338abcc14c
YUI.add("scrollview-scrollbars",function(F){var A=F.ClassNameManager.getClassName,D=F.Transition.useNative,C,B="scrollbar",E="scrollview";function G(){G.superclass.constructor.apply(this,arguments);}G.CLASS_NAMES={showing:A(E,B,"showing"),scrollbar:A(E,B),scrollbarV:A(E,B,"vert"),scrollbarH:A(E,B,"horiz"),scrollbarVB:A(E,B,"vert","basic"),scrollbarHB:A(E,B,"horiz","basic"),child:A(E,"child"),first:A(E,"first"),middle:A(E,"middle"),last:A(E,"last")};C=G.CLASS_NAMES;G.NAME="pluginScrollViewScrollbars";G.NS="scrollbars";G.SCROLLBAR_TEMPLATE=["<div>",'<span class="'+C.child+" "+C.first+'"></span>','<span class="'+C.child+" "+C.middle+'"></span>','<span class="'+C.child+" "+C.last+'"></span>',"</div>"].join("");G.ATTRS={verticalNode:{setter:"_setVerticalNode",value:F.Node.create(G.SCROLLBAR_TEMPLATE)},horizontalNode:{setter:"_setHorizontalNode",value:F.Node.create(G.SCROLLBAR_TEMPLATE)}};F.namespace("Plugin").ScrollViewScrollbars=F.extend(G,F.Plugin.Base,{initializer:function(){this._host=this.get("host");this.afterHostMethod("_uiScrollY",this._update);this.afterHostMethod("_uiScrollX",this._update);this.afterHostMethod("_uiDimensionsChange",this._hostDimensionsChange);this.doAfter("scrollEnd",this.flash);},_hostDimensionsChange:function(){var L=this._host,J=L._bb,I=this.get("verticalNode"),M=this.get("horizontalNode"),K=I.inDoc(),H=M.inDoc();if(L._scrollsVertical&&!K){J.append(I);if(this._basic){I.addClass(C.scrollbarVB);}}else{if(!L._scrollsVertical&&K){I.remove();}}if(L._scrollsHorizontal&&!H){J.append(M);if(this._basic){M.addClass(C.scrollbarHB);}}else{if(!L._scrollsHorizontal&&H){M.remove();}}this._update();F.later(500,this,"flash",true);},_updateDim:function(V,H,R,I){var O=this._host,K=this._basic,Q=O._cb,J=0,W=1,Y,P,U,X,T=(V)?"Height":"Width",L=(V)?"height":"width",N=(V)?"top":"left",S=O.get(L),M=O["_scroll"+T]||Q.get("scroll"+T);J=Math.floor(S*(S/M));W=Math.floor((R/(M-S))*(S-J))*-1;if(J>S){J=1;}if(D){U=(V)?"translate(0, "+W+"px)":"translate("+W+"px, 0)";}else{X=W;}if(W>(S-J)){J=J-(W-(S-J));}if(W<0){if(D){U="translate(0,0)";}else{X=0;}J=J+W;}P=(V)?(J-8):(J-16);if(this["_sbSize"+V]!==P){this["_sbSize"+V]=P;Y={duration:I/1000};if(D){Y.transform=(V)?"scaleY("+P+")":"scaleX("+P+")";}else{Y[L]=P;}H.get("children").item(1).transition(Y);}Y={duration:I/1000};if(D){Y.transform=U;}else{Y[N]=X;}H.transition(Y);Y={duration:I/1000};if(D){Y.transform=(V)?"translate(0,"+(J-10)+"px)":"translate("+(J-12)+"px,0)";}else{if(V){Y.top=J-4;}else{Y.left=J-12;}}if(V||!K){H.get("children").item(2).transition(Y);}},_update:function(I,K,L){var J=this.get("verticalNode"),H=this.get("horizontalNode");K=K||0;if(!this._showingScrollBars){this.show();}if(J){this._updateDim(true,J,I*-1,K);}if(H){this._updateDim(false,H,I*-1,K);}},show:function(H){this._show(true,H);},hide:function(H){this._show(false,H);},_show:function(H,J){var I=this.get("verticalNode"),K=this.get("horizontalNode"),L={duration:(J)?0.6:0,opacity:(H)?1:0};this._showingScrollBars=H;if(this._flashTimer){this._flashTimer.cancel();}if(I){I.transition(L);}if(K){K.transition(L);}},flash:function(){var H=false,I=this._host;if(I._scrollsVertical&&(I._scrollHeight>I.get("height"))){H=true;}if(I._scrollsHorizontal&&(I._scrollWidth>this.get("host").get("width"))){H=true;}if(H){this.show(true);this._flashTimer=F.later(800,this,"hide",true);}},_setVerticalNode:function(H){H=F.one(H);if(H){H.addClass(C.scrollbar);H.addClass(C.scrollbarV);}return H;},_setHorizontalNode:function(H){H=F.one(H);if(H){H.addClass(C.scrollbar);H.addClass(C.scrollbarH);}return H;},_basic:F.UA.ie&&F.UA.ie<=8});},"@VERSION@",{skinnable:true,requires:["plugin"]});