/*! * iScroll v4.1.6 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org * Released under MIT license, http://cubiq.org/license */ (function(){var f=Math,e=/webkit/i.test(navigator.appVersion)?"webkit":/firefox/i.test(navigator.userAgent)?"Moz":"opera"in window?"O":"",u="WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix,k="ontouchstart"in window,z=e+"Transform"in document.documentElement.style,A=/android/gi.test(navigator.appVersion),v=/iphone|ipad/gi.test(navigator.appVersion),q=/playbook/gi.test(navigator.appVersion),D=v||q,E=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame|| window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b){return setTimeout(b,17)}}(),B=window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout,w="onorientationchange"in window?"orientationchange":"resize",x=k?"touchstart":"mousedown",r=k?"touchmove":"mousemove",s=k?"touchend":"mouseup",t=k?"touchcancel":"mouseup",y=e=="Moz"?"DOMMouseScroll": "mousewheel",o="translate"+(u?"3d(":"("),p=u?",0)":")",q=function(b,a){var c=this,h;c.wrapper=typeof b=="object"?b:document.getElementById(b);c.wrapper.style.overflow="hidden";c.scroller=c.wrapper.children[0];c.options={hScroll:!0,vScroll:!0,bounce:!0,bounceLock:!1,momentum:!0,lockDirection:!0,useTransform:!0,useTransition:!1,checkDOMChanges:!1,hScrollbar:!0,vScrollbar:!0,fixedScrollbar:A,hideScrollbar:v,fadeScrollbar:v&&u,scrollbarClass:"",zoom:!1,zoomMin:1,zoomMax:4,doubleTapZoom:2,wheelAction:"scroll", snap:!1,snapThreshold:1,onRefresh:null,onBeforeScrollStart:function(a){a.preventDefault()},onScrollStart:null,onBeforeScrollMove:null,onScrollMove:null,onBeforeScrollEnd:null,onScrollEnd:null,onTouchEnd:null,onDestroy:null,onZoomStart:null,onZoom:null,onZoomEnd:null};for(h in a)c.options[h]=a[h];c.options.useTransform=z?c.options.useTransform:!1;c.options.hScrollbar=c.options.hScroll&&c.options.hScrollbar;c.options.vScrollbar=c.options.vScroll&&c.options.vScrollbar;c.options.zoom=c.options.useTransform&& c.options.zoom;c.options.useTransition=D&&c.options.useTransition;c.scroller.style[e+"TransitionProperty"]=c.options.useTransform?"-"+e.toLowerCase()+"-transform":"top left";c.scroller.style[e+"TransitionDuration"]="0";c.scroller.style[e+"TransformOrigin"]="0 0";c.options.useTransition&&(c.scroller.style[e+"TransitionTimingFunction"]="cubic-bezier(0.33,0.66,0.66,1)");c.options.useTransform?c.scroller.style[e+"Transform"]=o+"0,0"+p:c.scroller.style.cssText+=";position:absolute;top:0;left:0";if(c.options.useTransition)c.options.fixedScrollbar= !0;c.refresh();c._bind(w,window);c._bind(x);k||(c._bind("mouseout",c.wrapper),c._bind(y));if(c.options.checkDOMChanges)c.checkDOMTime=setInterval(function(){c._checkDOMChanges()},500)};q.prototype={enabled:!0,x:0,y:0,steps:[],scale:1,currPageX:0,currPageY:0,pagesX:[],pagesY:[],aniTime:null,handleEvent:function(b){switch(b.type){case x:if(!k&&b.button!==0)break;this._start(b);break;case r:this._move(b);break;case s:case t:this._end(b);break;case w:this._resize();break;case y:this._wheel(b);break;case "mouseout":this._mouseout(b); break;case "webkitTransitionEnd":this._transitionEnd(b)}},_checkDOMChanges:function(){!this.moved&&!this.zoomed&&!(this.animating||this.scrollerW==this.scroller.offsetWidth*this.scale&&this.scrollerH==this.scroller.offsetHeight*this.scale)&&this.refresh()},_scrollbar:function(b){var a=document,c;if(this[b+"Scrollbar"]){if(!this[b+"ScrollbarWrapper"]){c=a.createElement("div");this.options.scrollbarClass?c.className=this.options.scrollbarClass+b.toUpperCase():c.style.cssText="position:absolute;z-index:100;"+ (b=="h"?"height:7px;bottom:1px;left:2px;right:"+(this.vScrollbar?"7":"2")+"px":"width:7px;bottom:"+(this.hScrollbar?"7":"2")+"px;top:2px;right:1px");c.style.cssText+=";pointer-events:none;-"+e+"-transition-property:opacity;-"+e+"-transition-duration:"+(this.options.fadeScrollbar?"350ms":"0")+";overflow:hidden;opacity:"+(this.options.hideScrollbar?"0":"1");this.wrapper.appendChild(c);this[b+"ScrollbarWrapper"]=c;c=a.createElement("div");if(!this.options.scrollbarClass)c.style.cssText="position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-"+ e+"-background-clip:padding-box;-"+e+"-box-sizing:border-box;"+(b=="h"?"height:100%":"width:100%")+";-"+e+"-border-radius:3px;border-radius:3px";c.style.cssText+=";pointer-events:none;-"+e+"-transition-property:-"+e+"-transform;-"+e+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-"+e+"-transition-duration:0;-"+e+"-transform:"+o+"0,0"+p;this.options.useTransition&&(c.style.cssText+=";-"+e+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)");this[b+"ScrollbarWrapper"].appendChild(c); this[b+"ScrollbarIndicator"]=c}b=="h"?(this.hScrollbarSize=this.hScrollbarWrapper.clientWidth,this.hScrollbarIndicatorSize=f.max(f.round(this.hScrollbarSize*this.hScrollbarSize/this.scrollerW),8),this.hScrollbarIndicator.style.width=this.hScrollbarIndicatorSize+"px",this.hScrollbarMaxScroll=this.hScrollbarSize-this.hScrollbarIndicatorSize,this.hScrollbarProp=this.hScrollbarMaxScroll/this.maxScrollX):(this.vScrollbarSize=this.vScrollbarWrapper.clientHeight,this.vScrollbarIndicatorSize=f.max(f.round(this.vScrollbarSize* this.vScrollbarSize/this.scrollerH),8),this.vScrollbarIndicator.style.height=this.vScrollbarIndicatorSize+"px",this.vScrollbarMaxScroll=this.vScrollbarSize-this.vScrollbarIndicatorSize,this.vScrollbarProp=this.vScrollbarMaxScroll/this.maxScrollY);this._scrollbarPos(b,!0)}else this[b+"ScrollbarWrapper"]&&(z&&(this[b+"ScrollbarIndicator"].style[e+"Transform"]=""),this[b+"ScrollbarWrapper"].parentNode.removeChild(this[b+"ScrollbarWrapper"]),this[b+"ScrollbarWrapper"]=null,this[b+"ScrollbarIndicator"]= null)},_resize:function(){var b=this;setTimeout(function(){b.refresh()},A?200:0)},_pos:function(b,a){b=this.hScroll?b:0;a=this.vScroll?a:0;this.options.useTransform?this.scroller.style[e+"Transform"]=o+b+"px,"+a+"px"+p+" scale("+this.scale+")":(b=f.round(b),a=f.round(a),this.scroller.style.left=b+"px",this.scroller.style.top=a+"px");this.x=b;this.y=a;this._scrollbarPos("h");this._scrollbarPos("v")},_scrollbarPos:function(b,a){var c=b=="h"?this.x:this.y;if(this[b+"Scrollbar"])c*=this[b+"ScrollbarProp"], c<0?(this.options.fixedScrollbar||(c=this[b+"ScrollbarIndicatorSize"]+f.round(c*3),c<8&&(c=8),this[b+"ScrollbarIndicator"].style[b=="h"?"width":"height"]=c+"px"),c=0):c>this[b+"ScrollbarMaxScroll"]&&(this.options.fixedScrollbar?c=this[b+"ScrollbarMaxScroll"]:(c=this[b+"ScrollbarIndicatorSize"]-f.round((c-this[b+"ScrollbarMaxScroll"])*3),c<8&&(c=8),this[b+"ScrollbarIndicator"].style[b=="h"?"width":"height"]=c+"px",c=this[b+"ScrollbarMaxScroll"]+(this[b+"ScrollbarIndicatorSize"]-c))),this[b+"ScrollbarWrapper"].style[e+ "TransitionDelay"]="0",this[b+"ScrollbarWrapper"].style.opacity=a&&this.options.hideScrollbar?"0":"1",this[b+"ScrollbarIndicator"].style[e+"Transform"]=o+(b=="h"?c+"px,0":"0,"+c+"px")+p},_start:function(b){var a=k?b.touches[0]:b,c,h;if(this.enabled){this.options.onBeforeScrollStart&&this.options.onBeforeScrollStart.call(this,b);this.options.useTransition&&this._transitionTime(0);this.zoomed=this.animating=this.moved=!1;this.dirY=this.dirX=this.absDistY=this.absDistX=this.distY=this.distX=0;if(this.options.zoom&& k&&b.touches.length>1)h=f.abs(b.touches[0].pageX-b.touches[1].pageX),c=f.abs(b.touches[0].pageY-b.touches[1].pageY),this.touchesDistStart=f.sqrt(h*h+c*c),this.originX=f.abs(b.touches[0].pageX+b.touches[1].pageX-this.wrapperOffsetLeft*2)/2-this.x,this.originY=f.abs(b.touches[0].pageY+b.touches[1].pageY-this.wrapperOffsetTop*2)/2-this.y,this.options.onZoomStart&&this.options.onZoomStart.call(this,b);if(this.options.momentum&&(this.options.useTransform?(c=getComputedStyle(this.scroller,null)[e+"Transform"].replace(/[^0-9-.,]/g, "").split(","),h=c[4]*1,c=c[5]*1):(h=getComputedStyle(this.scroller,null).left.replace(/[^0-9-]/g,"")*1,c=getComputedStyle(this.scroller,null).top.replace(/[^0-9-]/g,"")*1),h!=this.x||c!=this.y))this.options.useTransition?this._unbind("webkitTransitionEnd"):B(this.aniTime),this.steps=[],this._pos(h,c);this.absStartX=this.x;this.absStartY=this.y;this.startX=this.x;this.startY=this.y;this.pointX=a.pageX;this.pointY=a.pageY;this.startTime=b.timeStamp||(new Date).getTime();this.options.onScrollStart&& this.options.onScrollStart.call(this,b);this._bind(r);this._bind(s);this._bind(t)}},_move:function(b){var a=k?b.touches[0]:b,c=a.pageX-this.pointX,h=a.pageY-this.pointY,d=this.x+c,g=this.y+h,C=b.timeStamp||(new Date).getTime();this.options.onBeforeScrollMove&&this.options.onBeforeScrollMove.call(this,b);if(this.options.zoom&&k&&b.touches.length>1){d=f.abs(b.touches[0].pageX-b.touches[1].pageX);g=f.abs(b.touches[0].pageY-b.touches[1].pageY);this.touchesDist=f.sqrt(d*d+g*g);this.zoomed=!0;a=1/this.touchesDistStart* this.touchesDist*this.scale;if(a<0.5)a=0.5;else if(a>this.options.zoomMax)a=this.options.zoomMax;this.lastScale=a/this.scale;d=this.originX-this.originX*this.lastScale+this.x;g=this.originY-this.originY*this.lastScale+this.y;this.scroller.style[e+"Transform"]=o+d+"px,"+g+"px"+p+" scale("+a+")";this.options.onZoom&&this.options.onZoom.call(this,b)}else{this.pointX=a.pageX;this.pointY=a.pageY;if(d>0||d=0||this.maxScrollX>=0?0:this.maxScrollX;if(g> 0||g=0||this.maxScrollY>=0?0:this.maxScrollY;if(this.absDistX<6&&this.absDistY<6)this.distX+=c,this.distY+=h,this.absDistX=f.abs(this.distX),this.absDistY=f.abs(this.distY);else{if(this.options.lockDirection)if(this.absDistX>this.absDistY+5)g=this.y,h=0;else if(this.absDistY>this.absDistX+5)d=this.x,c=0;this.moved=!0;this._pos(d,g);this.dirX=c>0?-1:c<0?1:0;this.dirY=h>0?-1:h<0?1:0;if(C-this.startTime>300)this.startTime=C,this.startX=this.x,this.startY= this.y;this.options.onScrollMove&&this.options.onScrollMove.call(this,b)}}},_end:function(b){if(!(k&&b.touches.length!=0)){var a=this,c=k?b.changedTouches[0]:b,h,d,g={dist:0,time:0},e={dist:0,time:0},n=(b.timeStamp||(new Date).getTime())-a.startTime,j=a.x,m=a.y;a._unbind(r);a._unbind(s);a._unbind(t);a.options.onBeforeScrollEnd&&a.options.onBeforeScrollEnd.call(a,b);if(a.zoomed)a.scale*=a.lastScale,a.x=a.originX-a.originX*a.lastScale+a.x,a.y=a.originY-a.originY*a.lastScale+a.y,a.scroller.style.webkitTransform= o+a.x+"px,"+a.y+"px"+p+" scale("+a.scale+")",a.refresh(),a.options.onZoomEnd&&a.options.onZoomEnd.call(a,b);else{if(a.moved){if(n<300&&a.options.momentum){g=j?a._momentum(j-a.startX,n,-a.x,a.scrollerW-a.wrapperW+a.x,a.options.bounce?a.wrapperW:0):g;e=m?a._momentum(m-a.startY,n,-a.y,a.maxScrollY<0?a.scrollerH-a.wrapperH+a.y:0,a.options.bounce?a.wrapperH:0):e;j=a.x+g.dist;m=a.y+e.dist;if(a.x>0&&j>0||a.x0&&m>0||a.y=0?0:this.x=0||this.maxScrollY>0?0:this.ythis.options.zoomMax)a=this.options.zoomMax;this.zoom(b.pageX,b.pageY,a,400)}else{"wheelDeltaX"in b?(a=this.x+b.wheelDeltaX/12,c=this.y+b.wheelDeltaY/12):"detail"in b?(a=this.x-b.detail*3,c=this.y-b.detail*3):(a=this.x-b.wheelDelta,c=this.y-b.wheelDelta);if(a>0)a=0;else if(a0)c=0;else if(c=e+d.time)b._pos(d.x,d.y),b.animating= !1,b.options.onAnimationEnd&&b.options.onAnimationEnd.call(b),b._startAni();else if(j=(j-e)/d.time-1,g=f.sqrt(1-j*j),j=(d.x-a)*g+a,b._pos(j,(d.y-c)*g+c),b.animating)b.aniTime=E(n)}()}else b._resetPos(400)},_transitionTime:function(b){b+="ms";this.scroller.style[e+"TransitionDuration"]=b;this.hScrollbar&&(this.hScrollbarIndicator.style[e+"TransitionDuration"]=b);this.vScrollbar&&(this.vScrollbarIndicator.style[e+"TransitionDuration"]=b)},_momentum:function(b,a,c,e,d){var a=f.abs(b)/a,g=a*a/0.0012, k=0,k=0;b>0&&g>c?(c+=d/(6/(g/a*6.0E-4)),a=a*c/g,g=c):b<0&&g>e&&(e+=d/(6/(g/a*6.0E-4)),a=a*e/g,g=e);g*=b<0?-1:1;return{dist:g,time:f.round(a/6.0E-4)}},_offset:function(b){for(var a=-b.offsetLeft,c=-b.offsetTop;b=b.offsetParent;)a-=b.offsetLeft,c-=b.offsetTop;b!=this.wrapper&&(a*=this.scale,c*=this.scale);return{left:a,top:c}},_snap:function(b,a){var c,e,d;d=this.pagesX.length-1;c=0;for(e=this.pagesX.length;c=this.pagesX[c]){d=c;break}d==this.currPageX&&d>0&&this.dirX<0&&d--;b=this.pagesX[d]; e=(e=f.abs(b-this.pagesX[this.currPageX]))?f.abs(this.x-b)/e*500:0;this.currPageX=d;d=this.pagesY.length-1;for(c=0;c=this.pagesY[c]){d=c;break}d==this.currPageY&&d>0&&this.dirY<0&&d--;a=this.pagesY[d];c=(c=f.abs(a-this.pagesY[this.currPageY]))?f.abs(this.y-a)/c*500:0;this.currPageY=d;d=f.round(f.max(e,c))||200;return{x:b,y:a,time:d}},_bind:function(b,a,c){(a||this.scroller).addEventListener(b,this,!!c)},_unbind:function(b,a,c){(a||this.scroller).removeEventListener(b,this,!!c)},destroy:function(){this.scroller.style[e+ "Transform"]="";this.vScrollbar=this.hScrollbar=!1;this._scrollbar("h");this._scrollbar("v");this._unbind(w,window);this._unbind(x);this._unbind(r);this._unbind(s);this._unbind(t);this.options.hasTouch&&(this._unbind("mouseout",this.wrapper),this._unbind(y));this.options.useTransition&&this._unbind("webkitTransitionEnd");this.options.checkDOMChanges&&clearInterval(this.checkDOMTime);this.options.onDestroy&&this.options.onDestroy.call(this)},refresh:function(){var b,a=0,c=0;if(this.scalethis.wrapperH); this.hScrollbar=this.hScroll&&this.options.hScrollbar;this.vScrollbar=this.vScroll&&this.options.vScrollbar&&this.scrollerH>this.wrapperH;b=this._offset(this.wrapper);this.wrapperOffsetLeft=-b.left;this.wrapperOffsetTop=-b.top;if(typeof this.options.snap=="string"){this.pagesX=[];this.pagesY=[];els=this.scroller.querySelectorAll(this.options.snap);i=0;for(l=els.length;i=this.maxScrollX;)this.pagesX[c]=a,a-=this.wrapperW,c++;this.maxScrollX%this.wrapperW&&(this.pagesX[this.pagesX.length]=this.maxScrollX-this.pagesX[this.pagesX.length-1]+this.pagesX[this.pagesX.length-1]);c=a=0;for(this.pagesY=[];a>=this.maxScrollY;)this.pagesY[c]=a,a-=this.wrapperH,c++;this.maxScrollY%this.wrapperH&&(this.pagesY[this.pagesY.length]=this.maxScrollY- this.pagesY[this.pagesY.length-1]+this.pagesY[this.pagesY.length-1])}this._scrollbar("h");this._scrollbar("v");this.scroller.style[e+"TransitionDuration"]="0";this._resetPos(200)},scrollTo:function(b,a,c,e){var d=b;this.stop();d.length||(d=[{x:b,y:a,time:c,relative:e}]);b=0;for(a=d.length;b0?0:c.left0?0:c.topthis.pagesX.length-1?this.pagesX.length-1: b,a=a<0?0:a>this.pagesY.length-1?this.pagesY.length-1:a,this.currPageX=b,this.currPageY=a,b=this.pagesX[b],a=this.pagesY[a];else{b*=-this.wrapperW;a*=-this.wrapperH;if(b