scrollview-scrollbars-min.js revision 1130bbe4761fc26163c5248c20a12ec65dfd3f3a
YUI.add("scrollview-scrollbars",function(A){var L=A.ClassNameManager.getClassName,I,J=A.Transition.useNative,X="scrollbar",c="scrollview",b="verticalNode",M="horizontalNode",S="childCache",U="top",Q="left",G="width",T="height",P="scrollWidth",H="scrollHeight",a="_sbh",R="_sbv",N="transitionProperty",F="transform",Z="opacity",E="translateX(",D="translateY(",W="scaleX(",V="scaleY(",K="px",C=")",O=K+C;function B(){B.superclass.constructor.apply(this,arguments);}B.CLASS_NAMES={showing:L(c,X,"showing"),scrollbar:L(c,X),scrollbarV:L(c,X,"vert"),scrollbarH:L(c,X,"horiz"),scrollbarVB:L(c,X,"vert","basic"),scrollbarHB:L(c,X,"horiz","basic"),child:L(c,"child"),first:L(c,"first"),middle:L(c,"middle"),last:L(c,"last")};I=B.CLASS_NAMES;B.NAME="pluginScrollViewScrollbars";B.NS="scrollbars";B.SCROLLBAR_TEMPLATE=["<div>",'<span class="'+I.child+" "+I.first+'"></span>','<span class="'+I.child+" "+I.middle+'"></span>','<span class="'+I.child+" "+I.last+'"></span>',"</div>"].join("");B.ATTRS={verticalNode:{setter:"_setNode",value:A.Node.create(B.SCROLLBAR_TEMPLATE)},horizontalNode:{setter:"_setNode",value:A.Node.create(B.SCROLLBAR_TEMPLATE)}};A.namespace("Plugin").ScrollViewScrollbars=A.extend(B,A.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.afterHostEvent("scrollEnd",this._hostScrollEnd);},_hostDimensionsChange:function(){var Y=this._host;this._renderBar(this.get(b),Y._scrollsVertical);this._renderBar(this.get(M),Y._scrollsHorizontal);this._update();A.later(500,this,"flash",true);},_hostScrollEnd:function(Y){if(!this._host._flicking){this.flash();}},_renderBar:function(d,f){var e=d.inDoc(),g=this._host._bb,Y=d.getData("isHoriz")?I.scrollbarHB:I.scrollbarVB;if(f&&!e){g.append(d);d.toggleClass(Y,this._basic);this._setChildCache(d);}else{if(!f&&e){d.remove();this._clearChildCache(d);}}},_setChildCache:function(f){var h=f.get("children"),d=h.item(0),g=h.item(1),e=h.item(2),Y=f.getData("isHoriz")?"offsetWidth":"offsetHeight";f.setStyle(N,F);g.setStyle(N,F);e.setStyle(N,F);f.setData(S,{fc:d,lc:e,mc:g,fcSize:d&&d.get(Y),lcSize:e&&e.get(Y)});},_clearChildCache:function(Y){Y.clearData(S);},_updateBar:function(Y,l,e,v){var j=this._host,f=this._basic,k=j._cb,q=0,m=1,d=Y.getData(S),r=d.lc,u=d.mc,z=d.fcSize,y=d.lcSize,n,w,t,i,x,p,g,s,o,h;if(v){p=G;g=Q;s=a;o=j.get(p);h=j._scrollWidth||k.get(P);i=E;x=W;}else{p=T;g=U;s=R;o=j.get(p);h=j._scrollHeight||k.get(H);i=D;x=V;}q=Math.floor(o*(o/h));m=Math.floor((l/(h-o))*(o-q));if(q>o){q=1;}if(m>(o-q)){q=q-(m-(o-q));}else{if(m<0){q=m+q;m=0;}}n=(q-(z+y));if(n<0){n=0;}if(n===0&&m!==0){m=o-(z+y)-1;}if(e!==0){t={duration:e};if(J){t.transform=i+m+O;}else{t[g]=m+K;}Y.transition(t);}else{if(J){Y.setStyle(F,i+m+O);}else{Y.setStyle(g,m+K);}}if(this[s]!==n){this[s]=n;if(n>0){if(e!==0){t={duration:e};if(J){t.transform=x+n+C;}else{t[p]=n+K;}u.transition(t);}else{if(J){u.setStyle(F,x+n+C);}else{u.setStyle(p,n+K);}}if(!v||!f){w=q-y;if(e!==0){t={duration:e};if(J){t.transform=i+w+O;}else{t[g]=w;}r.transition(t);}else{if(J){r.setStyle(F,i+w+O);}else{r.setStyle(g,w+K);}}}}}},_update:function(d,g,h){var f=this.get(b),Y=this.get(M),e=this._host;g=(g||0)/1000;if(!this._showing){this.show();}if(e._scrollsVertical&&f){this._updateBar(f,d,g,false);}if(e._scrollsHorizontal&&Y){this._updateBar(Y,d,g,true);}},show:function(Y){this._show(true,Y);},hide:function(Y){this._show(false,Y);},_show:function(Y,f){var e=this.get(b),g=this.get(M),h=(f)?0.6:0,d=(Y)?1:0,i;this._showing=Y;if(this._flashTimer){this._flashTimer.cancel();}if(h!==0){i={duration:h,opacity:d};if(e){e.transition(i);}if(g){g.transition(i);}}else{if(e){e.setStyle(Z,d);}if(g){g.setStyle(Z,d);}}},flash:function(){var Y=false,d=this._host;if(d._scrollsVertical&&(d._scrollHeight>d.get(T))){Y=true;}if(d._scrollsHorizontal&&(d._scrollWidth>d.get(G))){Y=true;}if(Y){this.show(false);this._flashTimer=A.later(800,this,"hide",true);}},_setNode:function(d,Y){var e=(Y==M);d=A.one(d);if(d){d.addClass(I.scrollbar);d.addClass((e)?I.scrollbarH:I.scrollbarV);d.setData("isHoriz",e);}return d;},_basic:A.UA.ie&&A.UA.ie<=8});},"@VERSION@",{skinnable:true,requires:["plugin"]});