!function(){var n={},t={},e={},r={};n=function(n){function t(){}function e(n,e){var r;return Object.create?r=Object.create(n):(t.prototype=n,r=new t),r.constructor=e,r}function r(n,t){if(n){if(n.nodeType)return[n];var t=t&&t.nodeType?t:document;return n&&"string"==typeof n?t.querySelectorAll(n):void 0}}for(var o=/\\?\{([^{}]+)\}/g,i="",s=/^[\s\xa0]+|[\s\xa0]+$/g,a=String.prototype.trim,l=a?function(n){return null==n?i:a.call(n)}:function(n){return null==n?i:(n+"").replace(s,i)},u=0,c=function(n){var t=n.offsetTop;return null!=n.offsetParent&&(t+=c(n.offsetParent)),t},p=function(n){var t=n.offsetLeft;return null!=n.offsetParent&&(t+=p(n.offsetParent)),t},f=({isObject:function(n){return n===Object(n)},isArray:Array.isArray||function(n){return"[object Array]"==toString.call(n)},isEmpty:function(n){if(null==n)return!0;if(this.isArray(n)||this.isString(n))return 0===n.length;for(var t in n)if(this.has(n,t))return!1;return!0},mix:function(n,t,e){for(var r in t)n[r]=t[r];return n},extend:function(n,t,r,o){if(!t||!n)return n;var i,s=t.prototype;return i=e(s,n),n.prototype=this.mix(i,n.prototype),n.superclass=e(s,t),r&&this.mix(i,r),o&&this.mix(n,o),n},startsWith:function(n,t){return 0===n.lastIndexOf(t,0)},endsWith:function(n,t){var e=n.length-t.length;return e>=0&&n.indexOf(t,e)===e},trim:l,substitute:function(n,t,e){return"string"==typeof n&&t?n.replace(e||o,function(n,e){return"\\"===n.charAt(0)?n.slice(1):void 0===t[e]?i:t[e]}):n},vendor:function(){for(var n,t=document.createElement("div").style,e=["t","webkitT","MozT","msT","OT"],r=0,o=e.length;r1?e:e[0]||null}}}),"object"==typeof module&&module.exports?e=i:i}(e),r=function(t){var r=n,o=e,i=function(n){i.superclass.constructor.call(this,n),this.userConfig=r.mix({snapColIndex:0,snapRowIndex:0,snapDuration:500,snapEasing:"ease",snapOffsetLeft:0,snapOffsetTop:0,autoStep:!1},n)};if(r.extend(i,o,{pluginId:"snap",pluginInitializer:function(n){var t=this;t.xscroll=n.render(),t.snapColIndex=t.userConfig.snapColIndex,t.snapRowIndex=t.userConfig.snapRowIndex,t.render()},pluginDestructor:function(){var n=this,t=n.xscroll;t.on("panend",t._onpanend,t),t.off("panend",n._snapAnimate,n)},snapTo:function(n,t,e,r,o){return this.snapToCol(n,e,r,o),this.snapToRow(t,e,r,o),this},snapToCol:function(n,t,e,r){var o=this,i=o.xscroll,s=o.userConfig,t=t||s.snapDuration,e=e||s.snapEasing,a=s.snapWidth,l=s.snapColsNum,u=s.snapOffsetLeft;n=n>=l?l-1:n<0?0:n,o.prevColIndex=o.snapColIndex,o.snapColIndex=n;var c=o.snapColIndex*a+u;return c>i.containerWidth-i.boundry.width&&(c=i.containerWidth-i.boundry.width),i.scrollLeft(c,t,e,r),o},_colChange:function(n){var t=this;return t.prevColIndex!=t.snapColIndex&&t.trigger("colchange",r.mix(n,{type:"colchange",curColIndex:t.snapColIndex,prevColIndex:t.prevColIndex})),t},snapToRow:function(n,t,e,r){var o=this,i=o.xscroll,s=o.userConfig,t=t||s.snapDuration,e=e||s.snapEasing,a=s.snapHeight,l=s.snapRowsNum,u=s.snapOffsetTop;n=n>=l?l-1:n<0?0:n,o.prevRowIndex=o.snapRowIndex,o.snapRowIndex=n;var c=o.snapRowIndex*a+u;return c>i.containerHeight-i.boundry.height&&(c=i.containerHeight-i.boundry.height),o.xscroll.scrollTop(c,t,e,r),o},_rowChange:function(n){var t=this;return t.prevRowIndex!=t.snapRowIndex&&t.trigger("rowchange",r.mix(n,{type:"rowchange",curRowIndex:t.snapRowIndex,prevRowIndex:t.prevRowIndex})),t},_snapAnimate:function(n){var t=this,e=t.userConfig,r=e.snapWidth,o=e.snapHeight;t.xscroll.__topstart=null,t.xscroll.__leftstart=null;var i=n.direction;if(Math.abs(n.velocity)<=.2){var s=t.xscroll.getScrollLeft(),a=t.xscroll.getScrollTop(),l=Math.round(s/r),u=Math.round(a/o);t.snapTo(l,u)}else if(e.autoStep){var c=t.xscroll.computeScroll("x",n.velocityX),p=t.xscroll.computeScroll("y",n.velocityY),l=c&&c.pos?Math.round(c.pos/r):t.snapColIndex,u=p&&p.pos?Math.round(p.pos/o):t.snapRowIndex,f=Math.ceil(c&&c.duration,p&&p.duration);c&&"inside"==c.status?t.snapToCol(l,f,c&&c.easing,function(){t.xscroll.boundryCheckX()}):c&&t.xscroll.scrollLeft(c.pos,c.duration,c.easing,function(){t.xscroll.boundryCheckX(),t.prevColIndex=t.snapColIndex,t.snapColIndex=Math.round(Math.abs(t.xscroll.getScrollLeft())/r)}),p&&"inside"==p.status?t.snapToRow(u,f,p&&p.easing,function(){t.xscroll.boundryCheckY()}):p&&t.xscroll.scrollTop(p.pos,p.duration,p.easing,function(){t.xscroll.boundryCheckY(),t.prevRowIndex=t.snapRowIndex,t.snapRowIndex=Math.round(Math.abs(t.xscroll.getScrollTop())/o)})}else 2==i?t.snapColIndex++:4==i?t.snapColIndex--:void 0,8==i?t.snapRowIndex++:16==i?t.snapRowIndex--:void 0,t.snapTo(t.snapColIndex,t.snapRowIndex)},render:function(){var n=this,t=n.xscroll;return n.userConfig.snapWidth=n.userConfig.snapWidth||t.width||100,n.userConfig.snapHeight=n.userConfig.snapHeight||t.height||100,n.userConfig.snapColsNum=n.userConfig.snapColsNum||Math.max(Math.round(t.containerWidth/t.width),1),n.userConfig.snapRowsNum=n.userConfig.snapRowsNum||Math.max(Math.round(t.containerHeight/t.height),1),t.off("panend",t._onpanend),t.on("panend",n._snapAnimate,n),n._bindEvt(),n},_bindEvt:function(){var n=this,t=n.xscroll;n._isEvtBinded||(n._isEvtBinded=!0,t.on("scrollend",function(e){"y"!=e.zoomType||t.isBoundryOutTop()||t.isBoundryOutBottom()||n._rowChange(e)}),t.on("scrollend",function(e){"x"!=e.zoomType||t.isBoundryOutLeft()||t.isBoundryOutRight()||n._colChange(e)}))}}),"object"==typeof module&&module.exports)t=i;else if(window.XScroll&&window.XScroll.Plugins)return XScroll.Plugins.Snap=i;return t}(r)}();