{"version":3,"sources":["src/javascripts/mobile/iscroll-lite.js"],"names":["m","Math","mround","r","vendor","test","navigator","appVersion","userAgent","window","isIDevice","isPlaybook","isTouchPad","has3d","WebKitCSSMatrix","hasTouch","hasTransform","document","documentElement","style","hasTransitionEnd","nextFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","callback","setTimeout","cancelFrame","cancelRequestAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","clearTimeout","RESIZE_EV","START_EV","MOVE_EV","END_EV","CANCEL_EV","trnOpen","trnClose","iScroll","el","options","i","doc","this","wrapper","getElementById","overflow","scroller","children","hScroll","vScroll","x","y","bounce","bounceLock","momentum","lockDirection","useTransform","useTransition","onRefresh","onBeforeScrollStart","e","preventDefault","onScrollStart","onBeforeScrollMove","onScrollMove","onBeforeScrollEnd","onScrollEnd","onTouchEnd","onDestroy","hScrollbar","vScrollbar","toLowerCase","cssText","refresh","_bind","prototype","enabled","steps","scale","handleEvent","type","button","_start","_move","_end","_resize","_mouseout","_transitionEnd","_pos","left","top","matrix","point","touches","call","_transitionTime","moved","animating","zoomed","distX","distY","absDistX","absDistY","dirX","dirY","getComputedStyle","replace","split","_unbind","aniTime","startX","startY","pointX","pageX","pointY","pageY","startTime","timeStamp","Date","now","deltaX","deltaY","newX","newY","timestamp","maxScrollX","maxScrollY","abs","length","target","ev","newDuration","changedTouches","momentumX","dist","time","momentumY","duration","newPosX","newPosY","nodeType","parentNode","tagName","createEvent","initMouseEvent","view","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","_fake","dispatchEvent","_resetPos","_momentum","scrollerW","wrapperW","scrollerH","wrapperH","max","scrollTo","resetX","resetY","t","relatedTarget","_startAni","step","easeOut","animate","that","shift","onAnimationEnd","sqrt","maxDistUpper","maxDistLower","size","speed","newDist","_offset","offsetLeft","offsetTop","offsetParent","bubble","addEventListener","removeEventListener","destroy","offset","clientWidth","clientHeight","offsetWidth","offsetHeight","wrapperOffsetLeft","wrapperOffsetTop","relative","l","stop","push","scrollToElement","pos","querySelector","undefined","disable","enable","exports"],"mappings":"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","file":"iscroll-lite.min.js","sourcesContent":["/*!\r\n* iScroll Lite base on iScroll v4.1.6 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org\r\n* Released under MIT license, http://cubiq.org/license\r\n*/\r\n\r\n(function () {\r\n var m = Math,\r\n\tmround = function (r) { return r >> 0; },\r\n\tvendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :\r\n\t\t(/firefox/i).test(navigator.userAgent) ? 'Moz' :\r\n\t\t'opera' in window ? 'O' : '',\r\n\r\n // Browser capabilities\r\n isAndroid = (/android/gi).test(navigator.appVersion),\r\n isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),\r\n isPlaybook = (/playbook/gi).test(navigator.appVersion),\r\n isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),\r\n\r\n has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),\r\n hasTouch = 'ontouchstart' in window && !isTouchPad,\r\n hasTransform = vendor + 'Transform' in document.documentElement.style,\r\n hasTransitionEnd = isIDevice || isPlaybook,\r\n\r\n\tnextFrame = (function () {\r\n\t return window.requestAnimationFrame\r\n\t\t\t|| window.webkitRequestAnimationFrame\r\n\t\t\t|| window.mozRequestAnimationFrame\r\n\t\t\t|| window.oRequestAnimationFrame\r\n\t\t\t|| window.msRequestAnimationFrame\r\n\t\t\t|| function (callback) { return setTimeout(callback, 17); }\r\n\t})(),\r\n\tcancelFrame = (function () {\r\n\t return window.cancelRequestAnimationFrame\r\n\t\t\t|| window.webkitCancelAnimationFrame\r\n\t\t\t|| window.webkitCancelRequestAnimationFrame\r\n\t\t\t|| window.mozCancelRequestAnimationFrame\r\n\t\t\t|| window.oCancelRequestAnimationFrame\r\n\t\t\t|| window.msCancelRequestAnimationFrame\r\n\t\t\t|| clearTimeout\r\n\t})(),\r\n\r\n // Events\r\n\tRESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',\r\n\tSTART_EV = hasTouch ? 'touchstart' : 'mousedown',\r\n\tMOVE_EV = hasTouch ? 'touchmove' : 'mousemove',\r\n\tEND_EV = hasTouch ? 'touchend' : 'mouseup',\r\n\tCANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',\r\n\r\n // Helpers\r\n\ttrnOpen = 'translate' + (has3d ? '3d(' : '('),\r\n\ttrnClose = has3d ? ',0)' : ')',\r\n\r\n // Constructor\r\n\tiScroll = function (el, options) {\r\n\t var that = this,\r\n\t\t\tdoc = document,\r\n\t\t\ti;\r\n\r\n\t that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);\r\n\t that.wrapper.style.overflow = 'hidden';\r\n\t that.scroller = that.wrapper.children[0];\r\n\r\n\t // Default options\r\n\t that.options = {\r\n\t hScroll: true,\r\n\t vScroll: true,\r\n\t x: 0,\r\n\t y: 0,\r\n\t bounce: true,\r\n\t bounceLock: false,\r\n\t momentum: true,\r\n\t lockDirection: true,\r\n\t useTransform: true,\r\n\t useTransition: false,\r\n\r\n\t // Events\r\n\t onRefresh: null,\r\n\t onBeforeScrollStart: function (e) { e.preventDefault(); },\r\n\t onScrollStart: null,\r\n\t onBeforeScrollMove: null,\r\n\t onScrollMove: null,\r\n\t onBeforeScrollEnd: null,\r\n\t onScrollEnd: null,\r\n\t onTouchEnd: null,\r\n\t onDestroy: null\r\n\t };\r\n\r\n\t // User defined options\r\n\t for (i in options) that.options[i] = options[i];\r\n\r\n\t // Set starting position\r\n\t that.x = that.options.x;\r\n\t that.y = that.options.y;\r\n\r\n\t // Normalize options\r\n\t that.options.useTransform = hasTransform ? that.options.useTransform : false;\r\n\t that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;\r\n\t that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;\r\n\t that.options.useTransition = hasTransitionEnd && that.options.useTransition;\r\n\r\n\t // Set some default styles\r\n\t that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';\r\n\t that.scroller.style[vendor + 'TransitionDuration'] = '0';\r\n\t that.scroller.style[vendor + 'TransformOrigin'] = '0 0';\r\n\t if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';\r\n\r\n\t if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;\r\n\t else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';\r\n\r\n\t that.refresh();\r\n\r\n\t that._bind(RESIZE_EV, window);\r\n\t that._bind(START_EV);\r\n\t if (!hasTouch) that._bind('mouseout', that.wrapper);\r\n\t};\r\n\r\n // Prototype\r\n iScroll.prototype = {\r\n enabled: true,\r\n x: 0,\r\n y: 0,\r\n steps: [],\r\n scale: 1,\r\n\r\n handleEvent: function (e) {\r\n var that = this;\r\n switch (e.type) {\r\n case START_EV:\r\n if (!hasTouch && e.button !== 0) return;\r\n that._start(e);\r\n break;\r\n case MOVE_EV: that._move(e); break;\r\n case END_EV:\r\n case CANCEL_EV: that._end(e); break;\r\n case RESIZE_EV: that._resize(); break;\r\n case 'mouseout': that._mouseout(e); break;\r\n case 'webkitTransitionEnd': that._transitionEnd(e); break;\r\n }\r\n },\r\n\r\n _resize: function () {\r\n this.refresh();\r\n },\r\n\r\n _pos: function (x, y) {\r\n x = this.hScroll ? x : 0;\r\n y = this.vScroll ? y : 0;\r\n\r\n if (this.options.useTransform) {\r\n this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';\r\n } else {\r\n x = mround(x);\r\n y = mround(y);\r\n this.scroller.style.left = x + 'px';\r\n this.scroller.style.top = y + 'px';\r\n }\r\n\r\n this.x = x;\r\n this.y = y;\r\n },\r\n\r\n _start: function (e) {\r\n var that = this,\r\n\t\t\tpoint = hasTouch ? e.touches[0] : e,\r\n\t\t\tmatrix, x, y;\r\n\r\n if (!that.enabled) return;\r\n\r\n if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);\r\n\r\n if (that.options.useTransition) that._transitionTime(0);\r\n\r\n that.moved = false;\r\n that.animating = false;\r\n that.zoomed = false;\r\n that.distX = 0;\r\n that.distY = 0;\r\n that.absDistX = 0;\r\n that.absDistY = 0;\r\n that.dirX = 0;\r\n that.dirY = 0;\r\n\r\n if (that.options.momentum) {\r\n if (that.options.useTransform) {\r\n // Very lame general purpose alternative to CSSMatrix\r\n matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');\r\n x = matrix[4] * 1;\r\n y = matrix[5] * 1;\r\n } else {\r\n x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;\r\n y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;\r\n }\r\n\r\n if (x != that.x || y != that.y) {\r\n if (that.options.useTransition) that._unbind('webkitTransitionEnd');\r\n else cancelFrame(that.aniTime);\r\n that.steps = [];\r\n that._pos(x, y);\r\n }\r\n }\r\n\r\n that.startX = that.x;\r\n that.startY = that.y;\r\n that.pointX = point.pageX;\r\n that.pointY = point.pageY;\r\n\r\n that.startTime = e.timeStamp || Date.now();\r\n\r\n if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);\r\n\r\n that._bind(MOVE_EV);\r\n that._bind(END_EV);\r\n that._bind(CANCEL_EV);\r\n },\r\n\r\n _move: function (e) {\r\n var that = this,\r\n\t\t\tpoint = hasTouch ? e.touches[0] : e,\r\n\t\t\tdeltaX = point.pageX - that.pointX,\r\n\t\t\tdeltaY = point.pageY - that.pointY,\r\n\t\t\tnewX = that.x + deltaX,\r\n\t\t\tnewY = that.y + deltaY,\r\n\t\t\ttimestamp = e.timeStamp || Date.now();\r\n\r\n if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);\r\n\r\n that.pointX = point.pageX;\r\n that.pointY = point.pageY;\r\n\r\n // Slow down if outside of the boundaries\r\n if (newX > 0 || newX < that.maxScrollX) {\r\n newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;\r\n }\r\n if (newY > 0 || newY < that.maxScrollY) {\r\n newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= 0 || that.maxScrollY >= 0 ? 0 : that.maxScrollY;\r\n }\r\n\r\n that.distX += deltaX;\r\n that.distY += deltaY;\r\n that.absDistX = m.abs(that.distX);\r\n that.absDistY = m.abs(that.distY);\r\n\r\n if (that.absDistX < 6 && that.absDistY < 6) {\r\n return;\r\n }\r\n\r\n // Lock direction\r\n if (that.options.lockDirection) {\r\n if (that.absDistX > that.absDistY + 5) {\r\n newY = that.y;\r\n deltaY = 0;\r\n } else if (that.absDistY > that.absDistX + 5) {\r\n newX = that.x;\r\n deltaX = 0;\r\n }\r\n }\r\n\r\n that.moved = true;\r\n that._pos(newX, newY);\r\n that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;\r\n that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;\r\n\r\n if (timestamp - that.startTime > 300) {\r\n that.startTime = timestamp;\r\n that.startX = that.x;\r\n that.startY = that.y;\r\n }\r\n\r\n if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);\r\n },\r\n\r\n _end: function (e) {\r\n if (hasTouch && e.touches.length != 0) return;\r\n\r\n var that = this,\r\n\t\t\tpoint = hasTouch ? e.changedTouches[0] : e,\r\n\t\t\ttarget, ev,\r\n\t\t\tmomentumX = { dist: 0, time: 0 },\r\n\t\t\tmomentumY = { dist: 0, time: 0 },\r\n\t\t\tduration = (e.timeStamp || Date.now()) - that.startTime,\r\n\t\t\tnewPosX = that.x,\r\n\t\t\tnewPosY = that.y,\r\n\t\t\tnewDuration;\r\n\r\n that._unbind(MOVE_EV);\r\n that._unbind(END_EV);\r\n that._unbind(CANCEL_EV);\r\n\r\n if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);\r\n\r\n if (!that.moved) {\r\n if (hasTouch) {\r\n // Find the last touched element\r\n target = point.target;\r\n while (target.nodeType != 1) target = target.parentNode;\r\n\r\n if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {\r\n ev = document.createEvent('MouseEvents');\r\n ev.initMouseEvent('click', true, true, e.view, 1,\r\n\t\t\t\t\t\tpoint.screenX, point.screenY, point.clientX, point.clientY,\r\n\t\t\t\t\t\te.ctrlKey, e.altKey, e.shiftKey, e.metaKey,\r\n\t\t\t\t\t\t0, null);\r\n ev._fake = true;\r\n target.dispatchEvent(ev);\r\n }\r\n }\r\n\r\n that._resetPos(200);\r\n\r\n if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);\r\n return;\r\n }\r\n\r\n if (duration < 300 && that.options.momentum) {\r\n momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;\r\n momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;\r\n\r\n newPosX = that.x + momentumX.dist;\r\n newPosY = that.y + momentumY.dist;\r\n\r\n if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist: 0, time: 0 };\r\n if ((that.y > 0 && newPosY > 0) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist: 0, time: 0 };\r\n }\r\n\r\n if (momentumX.dist || momentumY.dist) {\r\n newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);\r\n\r\n that.scrollTo(mround(newPosX), mround(newPosY), newDuration);\r\n\r\n if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);\r\n return;\r\n }\r\n\r\n that._resetPos(200);\r\n if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);\r\n },\r\n\r\n _resetPos: function (time) {\r\n var that = this,\r\n\t\t\tresetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,\r\n\t\t\tresetY = that.y >= 0 || that.maxScrollY > 0 ? 0 : that.y < that.maxScrollY ? that.maxScrollY : that.y;\r\n\r\n if (resetX == that.x && resetY == that.y) {\r\n if (that.moved) {\r\n if (that.options.onScrollEnd) that.options.onScrollEnd.call(that); \t// Execute custom code on scroll end\r\n that.moved = false;\r\n }\r\n\r\n return;\r\n }\r\n\r\n that.scrollTo(resetX, resetY, time || 0);\r\n },\r\n\r\n _mouseout: function (e) {\r\n var t = e.relatedTarget;\r\n\r\n if (!t) {\r\n this._end(e);\r\n return;\r\n }\r\n\r\n while (t = t.parentNode) if (t == this.wrapper) return;\r\n\r\n this._end(e);\r\n },\r\n\r\n _transitionEnd: function (e) {\r\n var that = this;\r\n\r\n if (e.target != that.scroller) return;\r\n\r\n that._unbind('webkitTransitionEnd');\r\n\r\n that._startAni();\r\n },\r\n\r\n /**\r\n *\r\n * Utilities\r\n *\r\n */\r\n _startAni: function () {\r\n var that = this,\r\n\t\t\tstartX = that.x, startY = that.y,\r\n\t\t\tstartTime = Date.now(),\r\n\t\t\tstep, easeOut,\r\n\t\t\tanimate;\r\n\r\n if (that.animating) return;\r\n\r\n if (!that.steps.length) {\r\n that._resetPos(400);\r\n return;\r\n }\r\n\r\n step = that.steps.shift();\r\n\r\n if (step.x == startX && step.y == startY) step.time = 0;\r\n\r\n that.animating = true;\r\n that.moved = true;\r\n\r\n if (that.options.useTransition) {\r\n that._transitionTime(step.time);\r\n that._pos(step.x, step.y);\r\n that.animating = false;\r\n if (step.time) that._bind('webkitTransitionEnd');\r\n else that._resetPos(0);\r\n return;\r\n }\r\n\r\n animate = function () {\r\n var now = Date.now(),\r\n\t\t\t\tnewX, newY;\r\n\r\n if (now >= startTime + step.time) {\r\n that._pos(step.x, step.y);\r\n that.animating = false;\r\n if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that); \t\t// Execute custom code on animation end\r\n that._startAni();\r\n return;\r\n }\r\n\r\n now = (now - startTime) / step.time - 1;\r\n easeOut = m.sqrt(1 - now * now);\r\n newX = (step.x - startX) * easeOut + startX;\r\n newY = (step.y - startY) * easeOut + startY;\r\n that._pos(newX, newY);\r\n if (that.animating) that.aniTime = nextFrame(animate);\r\n };\r\n\r\n animate();\r\n },\r\n\r\n _transitionTime: function (time) {\r\n this.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';\r\n },\r\n\r\n _momentum: function (dist, time, maxDistUpper, maxDistLower, size) {\r\n var deceleration = 0.0006,\r\n\t\t\tspeed = m.abs(dist) / time,\r\n\t\t\tnewDist = (speed * speed) / (2 * deceleration),\r\n\t\t\tnewTime = 0, outsideDist = 0;\r\n\r\n // Proportinally reduce speed if we are outside of the boundaries \r\n if (dist > 0 && newDist > maxDistUpper) {\r\n outsideDist = size / (6 / (newDist / speed * deceleration));\r\n maxDistUpper = maxDistUpper + outsideDist;\r\n speed = speed * maxDistUpper / newDist;\r\n newDist = maxDistUpper;\r\n } else if (dist < 0 && newDist > maxDistLower) {\r\n outsideDist = size / (6 / (newDist / speed * deceleration));\r\n maxDistLower = maxDistLower + outsideDist;\r\n speed = speed * maxDistLower / newDist;\r\n newDist = maxDistLower;\r\n }\r\n\r\n newDist = newDist * (dist < 0 ? -1 : 1);\r\n newTime = speed / deceleration;\r\n\r\n return { dist: newDist, time: mround(newTime) };\r\n },\r\n\r\n _offset: function (el) {\r\n var left = -el.offsetLeft,\r\n\t\t\ttop = -el.offsetTop;\r\n\r\n while (el = el.offsetParent) {\r\n left -= el.offsetLeft;\r\n top -= el.offsetTop;\r\n }\r\n\r\n return { left: left, top: top };\r\n },\r\n\r\n _bind: function (type, el, bubble) {\r\n (el || this.scroller).addEventListener(type, this, !!bubble);\r\n },\r\n\r\n _unbind: function (type, el, bubble) {\r\n (el || this.scroller).removeEventListener(type, this, !!bubble);\r\n },\r\n\r\n\r\n /**\r\n *\r\n * Public methods\r\n *\r\n */\r\n destroy: function () {\r\n var that = this;\r\n\r\n that.scroller.style[vendor + 'Transform'] = '';\r\n\r\n // Remove the event listeners\r\n that._unbind(RESIZE_EV, window);\r\n that._unbind(START_EV);\r\n that._unbind(MOVE_EV);\r\n that._unbind(END_EV);\r\n that._unbind(CANCEL_EV);\r\n that._unbind('mouseout', that.wrapper);\r\n if (that.options.useTransition) that._unbind('webkitTransitionEnd');\r\n\r\n if (that.options.onDestroy) that.options.onDestroy.call(that);\r\n },\r\n\r\n refresh: function () {\r\n var that = this,\r\n\t\t\toffset;\r\n\r\n that.wrapperW = that.wrapper.clientWidth;\r\n that.wrapperH = that.wrapper.clientHeight;\r\n\r\n that.scrollerW = that.scroller.offsetWidth;\r\n that.scrollerH = that.scroller.offsetHeight;\r\n that.maxScrollX = that.wrapperW - that.scrollerW;\r\n that.maxScrollY = that.wrapperH - that.scrollerH;\r\n that.dirX = 0;\r\n that.dirY = 0;\r\n\r\n that.hScroll = that.options.hScroll && that.maxScrollX < 0;\r\n that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);\r\n\r\n offset = that._offset(that.wrapper);\r\n that.wrapperOffsetLeft = -offset.left;\r\n that.wrapperOffsetTop = -offset.top;\r\n\r\n\r\n that.scroller.style[vendor + 'TransitionDuration'] = '0';\r\n\r\n that._resetPos(200);\r\n },\r\n\r\n scrollTo: function (x, y, time, relative) {\r\n var that = this,\r\n\t\t\tstep = x,\r\n\t\t\ti, l;\r\n\r\n that.stop();\r\n\r\n if (!step.length) step = [{ x: x, y: y, time: time, relative: relative}];\r\n\r\n for (i = 0, l = step.length; i < l; i++) {\r\n if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }\r\n that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });\r\n }\r\n\r\n that._startAni();\r\n },\r\n\r\n scrollToElement: function (el, time) {\r\n var that = this, pos;\r\n el = el.nodeType ? el : that.scroller.querySelector(el);\r\n if (!el) return;\r\n\r\n pos = that._offset(el);\r\n pos.left += that.wrapperOffsetLeft;\r\n pos.top += that.wrapperOffsetTop;\r\n\r\n pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;\r\n pos.top = pos.top > 0 ? 0 : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;\r\n time = time === undefined ? m.max(m.abs(pos.left) * 2, m.abs(pos.top) * 2) : time;\r\n\r\n that.scrollTo(pos.left, pos.top, time);\r\n },\r\n\r\n disable: function () {\r\n this.stop();\r\n this._resetPos(0);\r\n this.enabled = false;\r\n\r\n // If disabled after touchstart we make sure that there are no left over events\r\n this._unbind(MOVE_EV);\r\n this._unbind(END_EV);\r\n this._unbind(CANCEL_EV);\r\n },\r\n\r\n enable: function () {\r\n this.enabled = true;\r\n },\r\n\r\n stop: function () {\r\n cancelFrame(this.aniTime);\r\n this.steps = [];\r\n this.moved = false;\r\n this.animating = false;\r\n }\r\n };\r\n\r\n if (typeof exports !== 'undefined') exports.iScroll = iScroll;\r\n else window.iScroll = iScroll;\r\n\r\n})();\r\n"]}