{"version":3,"sources":["akamai-viewer.es2015"],"names":["global","time","Date","now","desiredFrames","millisecondsPerSecond","running","counter","core","effect","Animate","requestAnimationFrame","requestFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","isNative","test","toString","callback","root","TARGET_FPS","requests","requestCount","rafHandle","intervalHandle","lastActive","callbackHandle","setInterval","currentRequests","key","hasOwnProperty","clearInterval","stop","id","cleared","isRunning","start","stepCallback","verifyCallback","completedCallback","duration","easingMethod","lastFrame","percent","dropCounter","document","body","newRunning","usedId","step","virtual","render","droppedFrames","Math","round","j","min","value","Scroller","options","__callback","scrollingX","scrollingY","animating","animationDuration","bouncing","locking","paging","snapping","zooming","minZoom","maxZoom","easeOutCubic","pos","pow","easeInOutCubic","members","__isSingleTouch","__isTracking","__isGesturing","__isDragging","__isDecelerating","__isAnimating","__clientLeft","__clientTop","__clientWidth","__clientHeight","__contentWidth","__contentHeight","__snapWidth","__snapHeight","__refreshHeight","__refreshActive","__refreshActivate","__refreshDeactivate","__refreshStart","__zoomLevel","__scrollLeft","__scrollTop","__maxScrollLeft","__maxScrollTop","__scheduledLeft","__scheduledTop","__scheduledZoom","__lastTouchLeft","__lastTouchTop","__lastTouchMove","__positions","__minDecelerationScrollLeft","__minDecelerationScrollTop","__maxDecelerationScrollLeft","__maxDecelerationScrollTop","__decelerationVelocityX","__decelerationVelocityY","setDimensions","clientWidth","clientHeight","contentWidth","contentHeight","self","__computeScrollMax","scrollTo","setPosition","left","top","setSnapSize","width","height","activatePullToRefresh","activateCallback","deactivateCallback","startCallback","finishPullToRefresh","getValues","zoom","getScrollMax","zoomTo","level","animate","originLeft","originTop","Error","oldLevel","max","__publish","zoomBy","factor","scrollBy","startLeft","startTop","doMouseZoom","wheelDelta","timeStamp","pageX","pageY","change","doTouchStart","touches","length","valueOf","currentTouchLeft","currentTouchTop","isSingleTouch","abs","__initialTouchLeft","__initialTouchTop","__zoomLevelStart","__lastScale","__enableScrollX","__enableScrollY","doTouchMove","scale","positions","moveX","moveY","scrollLeft","scrollTop","currentTouchLeftRel","currentTouchTopRel","maxScrollLeft","maxScrollTop","splice","push","minimumTrackingForScroll","minimumTrackingForDrag","distanceX","distanceY","doTouchEnd","endPos","startPos","i","timeOffset","movedLeft","movedTop","minVelocityToStartDeceleration","__startDeceleration","wasAnimating","oldLeft","oldTop","oldZoom","diffLeft","diffTop","diffZoom","verify","completed","renderedFramesPerSecond","animationId","wasFinished","zoomLevel","floor","ceil","__stepThroughDeceleration","minVelocityToKeepDecelerating","scrollLeftFixed","scrollTopFixed","frictionFactor","scrollOutsideX","scrollOutsideY","penetrationDeceleration","penetrationAcceleration","prototype","factory","define","amd","module","exports","win","window","doc","shoestring","prim","sec","pType","ret","sel","Shoestring","call","ready","constructor","indexOf","dfrag","createElement","innerHTML","children","each","removeChild","find","querySelectorAll","Object","NodeList","Array","selector","merge","reverse","fn","extend","first","second","len","ajax","url","params","req","XMLHttpRequest","settings","data","encodeURIComponent","method","open","async","setRequestHeader","headers","onreadystatechange","readyState","res","responseText","replace","status","cancel","match","RegExp","$1","error","success","send","get","load","args","arguments","intCB","html","apply","post","collection","val","il","inArray","needle","haystack","isin","readyQueue","runReady","shift","attachEvent","addEventListener","is","parents","check","_checkElements","parent","e","needles","name","undefined","shoestringData","removeData","$","addClass","className","classes","split","add","after","fragment","nodeType","jl","insertEl","cloneNode","parentNode","insertBefore","nextSibling","append","appendChild","appendTo","attr","nameStr","setAttribute","getAttribute","before","childs","clone","closest","element","$self","parentElement","cssExceptions","convertPropertyName","str","character","toUpperCase","_getStyle","property","getComputedStyle","getPropertyValue","vendorPrefixes","convert","k","_setStyle","convertedProperty","style","css","eq","index","filter","wsel","context","createDocumentFragment","finds","concat","elements","_dimension","set","offsetName","letter","h","l","outerHTML","pile","_getIndex","result","item","documentElement","childNodes","insertAfter","last","next","found","not","offset","offsetTop","offsetLeft","curr","prepend","firstChild","prependTo","prev","prevAll","$previous","propFix","contenteditable","readonly","tabindex","prop","removeAttr","removeAttribute","removeClass","cname","newClassName","regex","remove","removeProp","replaceWith","replaceChild","inputTypes","inputTypeTest","join","serialize","type","checked","nodeName","selectedIndex","nodeValue","siblings","sibs","el","getText","elem","node","textContent","text","tagName","optionSet","option","values","newIndex","selected","wrapInner","inH","initEventCache","evt","events","loop","addToEventCache","eventInfo","obj","isCustomEvent","callfunc","originalCallback","namespace","customEventLoop","bind","evts","encasedCallback","triggeredElement","_namespace","returnTrue","isDefaultPrevented","originalPreventDefault","preventDefault","preventDefaultConstructor","returnValue","target","srcElement","stopPropagation","cancelBubble","_args","domEventCallback","customEventCallback","oEl","originalEvent","ssEventTrigger","on","unbind","event","unbindAll","bound","matched","removeEventListener","evtKey","off","one","thisevt","cbs","$t","triggerHandler","createEvent","bindings","initEvent","unshift","trigger","click","dispatchEvent","jQuery","Akamai","componentNamespace","$window","$doc","ns","Function","Tau","startIndex","reducedStepSize","$element","$initial","$loading","frames","parseInt","stepSize","autoRotateStartDelay","autoplay","delay","mouseMoveBinding","rotateEvent","touchMoveBinding","path","Path","$render","canvas","getContext","canvasCtx","clearTimeout","canvasResizeTimeout","setTimeout","renderCanvas","controls","play","right","createControls","createImages","enabled","autostartTimeout","autoRotate","autoRotateTraversalTime","verticalScrollRatio","maxVelocity","$controls","controlAnchorMarkup","arrows","onControlDown","onControlUp","$link","stopAutoRotate","autoInterval","delta","goto","$next","normalizedIndex","imageCount","$images","tauImageLoaded","showLoading","$current","$img","img","naturalWidth","naturalHeight","parentWidth","calcHeight","complete","drawImage","src","$new","boundImageLoaded","loadedCount","markImageLoaded","template","imgs","imageLoaded","initTriggered","hideLoading","initialized","track","autoRotateDelay","interval","point","tracking","release","reset","cursorGrab","defaultThreshold","rotateThreshold","sensitivity","getPoint","downX","x","downY","y","downIndex","slow","isSufficient","clearSlowInterval","rotate","velocity","decelVal","decelTimeStep","slowInterval","decel","sign","cursorRelease","touch","clientX","clientY","deltaX","deltaY","record","getTime","prevPoint","prevPrevPoint","distance","prevTime","prevPrevTime","timeStep","Util","preflight","_$el","_dataAttr","_options","defaultOptions","_originalOptions","mapEvents","component","init","constr","existing","_trigger","toLowerCase","createMany","mapping","_componentEventMapping","mappedTo","to","$el","mapEvent","from","$comps","objects","propRequired","msg","componentName","fullEvent","camelToKabob","string","m","defaults","dataAttrOptions","cloneDefaults","getDataAttrOptions","finalOptions","setDataAttrOptions","prefix","dashedProp","currentDataProp","subDefaults","newPrefix","subConfig","coerceAttrVal","setDataAttrOptionsPrefix","subOptions","parseFloat","deep","copy","copyIsArray","isPlainObject","proto","Ctor","rtrim","trim","map","array","reduce","acc","log","console","mapJSONVals","o","escapeJSONVals","escapeHTML","entityMap","String","fromEntityMap","s","Advanceable","extension","getIndex","previous","Sourceable","_srcArray","includeW","policy","thumbnail","widthParam","widths","w","_srcset","_fallbackSrc","_largestSrc","pop","extendStatic","raf","toss","tossing","sLeft","sTop","op","easing","finished","endLeft","endTop","startTime","endTime","run","curTime","tossingElems","state","t","b","c","d","pluginName","optionsOrMethod","pluginArgs","scrollListening","testProp","snapSupported","CSS","supports","itemsAtOffset","$childNodes","containWidth","activeItems","outerWidth","$elem","outerHeight","snapEvent","activeSlides","nothrow","overthrow","innerResult","addNextPrev","autoTimeout","$slider","enhancedClass","$itemsContain","$items","numItems","$nav","navSelectedClass","useDeepLinking","slice","itemWidth","snapScroll","updateWidths","$navInner","getAutoplayInterval","autoTiming","parseError","itemsContainStyle","itemStyle","sliderWidth","computed","itemLeftMargin","itemRightMargin","outerItemWidth","iPercentWidth","iPercentRightMargin","iPercentLeftMargin","outerPercentWidth","percentAsWidth","percentAsRightMargin","percentAsLeftMargin","$nextprev","$nextprevContain","slideID","arrowNavigate","$slide","history","replaceState","title","keyCode","stopImmediatePropagation","snapScrollCancelled","isTouched","currScroll","roundedScroll","maxScroll","startSlide","afterResize","snapStay","forward","scrollNav","lastActiveItem","activeItem","force","currTime","navWidth","navHeight","activeIndex","activeChild","thumbX","thumbY","scrollStop","scrolling","lastScroll","timeout","enlarge","button","hoverZoomWithoutClick","flyout","placement","magnification","internalResult","testimg","srcsetSupported","srcsetSizesSupported","$anchor","initialImg","targetImg","imgOriginalSrc","srcset","imgOriginalSizes","imgZoomSrc","href","initialText","innerText","zoomClass","delayClass","$contain","$zoomContain","$parentPane","$zoomParent","zoomed","lockZoomClass","standardToggleZoom","updatePlacement","$flyout","positionFlyout","flyoutSide","loupe","disable","disabled","opts","hoverEnabled","image","sizes","toggleImgSrc","addLoader","toggleZoomState","zoomimg","Image","onload","imgZoomWidth","scrollToCenter","pw","ph","offsetWidth","offsetHeight","toggleLockZoom","lockedZoom","focus","toggleImgZoom","forceInlineMode","oldO","resetPlacement","trackingOn","trackingTimer","mouseEntered","touchStarted","lastMouseMove","startTrackingDelay","scrollWithMouse","stopTrackingDelay","ev","getBoundingClientRect","mLeft","mTop","containHeight","containScrollWidth","containScrollHeight","zoomContainWidth","zoomContainHeight","widthFactor","heightFactor","defaultConfig","Spin360","_comp","_updateOptions","_renderImg","images","json","alt","urls","pause","getElement","States","Playing","Paused","getState","MagnifierImpl","updateOptions","zoomIn","zoomOut","isMagnified","toggleZoom","dataAttr","fallbackSrc","largestSrc","srcSet","ex","MagnifierImplEnlarge","create","buttonText","ClickTracker","handler","onDown","isDown","down","timestamp","onMove","isMoved","onUp","up","Infinity","MagnifierImplScroller","_container","_content","_imgCast","_zoomInBtn","_zoomOutBtn","_magnification","scroller","_renderer","rect","clientLeft","clientTop","_installEventHandlers","_updateButtonStates","_onResize","_zoomBy","incrementalZoomFactor","cyclicZoom","zoomInBtnText","zoomOutBtnText","Number","animateZoom","_onZoom","oldMagnification","toFixed","docStyle","engine","opera","navigator","cpuClass","vendorPrefix","trident","gecko","webkit","presto","helperElem","undef","perspectiveProperty","transformProperty","marginLeft","marginTop","clickTracker","changedTouches","Magnifier","mode","MODE_ANIMATED_ZOOM","_impl","MODE_HOVER_ZOOM","impl","in","out","toggle","VideoImpl","VideoImplPristine","Video","poster","mime","attrs","muted","VideoImplIm","_validateOptions","isArray","some","size","isNaN","viewPortWidth","innerWidth","joiner","_$videoElement","_videoElement","_unsupportedAPI","_unsupported","_setState","paused","_createPlayButton","MODE_IM","MODE_PRISTINE","_state","seek","newTime","currentTime","setLoop","videoPlayButton","videoWrapper","video","insertAdjacentHTML","classList","Carousel","_spins","spin360","_magnifiers","magnifier","_videos","snapper","_setAspectRatio","_bindAspectAttributes","slideshow","autostart","startSlideshow","_activeItemAttributes","_handleAutoplayables","_stopSlideshowEvents","stopSlideshow","isParentActive","comp","activeItemAttr","forEach","_carouselWasPlaying","update","aspectratio","renderMapping","_typeMapping","_uniqueItemId","_renderItem","mappedType","_renderThumbnailAnchor","thumbUrl","altText","_thumbUrl","_renderThumbnails","_setAspectAttributes","orientationAttr","loadBound","$item","$loadable","loadBinding","carouselOptions","templateAttrs","getSpin360s","getMagnifiers","getVideos","_itemAttr","_activeItemAttr","attrAllItems","attrActiveItem","_slideshowTimer","refresh","Fullscreen","_init","_$fullscreen","addButton","_fullscreenApiKeys","_keys","native","_useNativeApi","_fullscreenFallbackEnabled","_$placeholder","_isFullscreen","addEvents","btn","btnContainer","enterBtn","exitBtn","active","fallback","_$widthAdjust","_$buttonContainer","$target","enter","exit","onchange","_exit","code","which","_keyLookup","keys","_maximizePlacement","_restorePlacement","_adjustWidth","widthSmall","heightSmall","viewportWidth","screen","viewportHeight","innerHeight","widthBig","_revertWidth","Viewer","_carousels","isFullscreen","_updateSizesOptions","_onResizeComplete","carousel","_extendCarouselOptions","_withData","_checkJSONUrls","items","_tagMapping","_tagSplit","_fullscreen","fullscreen","_resolveBreakpointOptions","_setBreakpoints","localUpdateOnly","elWidth","fail","uri","_exceedsLimit","JSON","parse","kb","stringify","limit","_breakpoints","_reduceBreakpoints","breakpoints","_fullscreenBreakpoints","fullscreenBreakpoints","_bindBreakpoints","bps","bp","sort","a","_bindMatchMedia","cbtimer","minWidth","maxWidth","matchMedia","query","initList","addListener","_mediaMatch","list","ignoreDefault","matches","resolvedOptions","_getCurrentMinWidth","bpConfig","cloned","ptions","clonedCarousel","hostnames","_urlHostnameMatch","parser","hostname","location","defaultTag","renderAll","tags","tag","def","tagMapping","_firstRenderTag","_tagAttr","_renderTag","unwrapped","childMarkup","datum","wrapped","getCarousels","switchTag","getTags","$taggedViewer","$markup","$imgs","imgCount","loaded","carousels","_showViewer","$viewer","_tags","akamaiViewer"],"mappings":"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","file":"akamai-viewer.js","sourcesContent":["/*! Copyright 2019, Akamai Technologies, Inc. All Rights Reserved. akamai-viewer-0.7.2 *//**\n * Generic animation class with support for dropped frames both optional easing and duration.\n *\n * Optional duration is useful when the lifetime is defined by another condition than time\n * e.g. speed of an animating object, etc.\n *\n * Dropped frame logic allows to keep using the same updater logic independent from the actual\n * rendering. This eases a lot of cases where it might be pretty complex to break down a state\n * based on the pure time difference.\n */\n(function(global) {\n\tvar time = Date.now || function() {\n\t\treturn +new Date();\n\t};\n\tvar desiredFrames = 60;\n\tvar millisecondsPerSecond = 1000;\n\tvar running = {};\n\tvar counter = 1;\n\n\t// Create namespaces\n\tif (!global.core) {\n\t\tglobal.core = { effect : {} };\n\n\t} else if (!core.effect) {\n\t\tcore.effect = {};\n\t}\n\n\tcore.effect.Animate = {\n\n\t\t/**\n\t\t * A requestAnimationFrame wrapper / polyfill.\n\t\t *\n\t\t * @param callback {Function} The callback to be invoked before the next repaint.\n\t\t * @param root {HTMLElement} The root element for the repaint\n\t\t */\n\t\trequestAnimationFrame: (function() {\n\n\t\t\t// Check for request animation Frame support\n\t\t\tvar requestFrame = global.requestAnimationFrame || global.webkitRequestAnimationFrame || global.mozRequestAnimationFrame || global.oRequestAnimationFrame;\n\t\t\tvar isNative = !!requestFrame;\n\n\t\t\tif (requestFrame && !/requestAnimationFrame\\(\\)\\s*\\{\\s*\\[native code\\]\\s*\\}/i.test(requestFrame.toString())) {\n\t\t\t\tisNative = false;\n\t\t\t}\n\n\t\t\tif (isNative) {\n\t\t\t\treturn function(callback, root) {\n\t\t\t\t\trequestFrame(callback, root)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar TARGET_FPS = 60;\n\t\t\tvar requests = {};\n\t\t\tvar requestCount = 0;\n\t\t\tvar rafHandle = 1;\n\t\t\tvar intervalHandle = null;\n\t\t\tvar lastActive = +new Date();\n\n\t\t\treturn function(callback, root) {\n\t\t\t\tvar callbackHandle = rafHandle++;\n\n\t\t\t\t// Store callback\n\t\t\t\trequests[callbackHandle] = callback;\n\t\t\t\trequestCount++;\n\n\t\t\t\t// Create timeout at first request\n\t\t\t\tif (intervalHandle === null) {\n\n\t\t\t\t\tintervalHandle = setInterval(function() {\n\n\t\t\t\t\t\tvar time = +new Date();\n\t\t\t\t\t\tvar currentRequests = requests;\n\n\t\t\t\t\t\t// Reset data structure before executing callbacks\n\t\t\t\t\t\trequests = {};\n\t\t\t\t\t\trequestCount = 0;\n\n\t\t\t\t\t\tfor(var key in currentRequests) {\n\t\t\t\t\t\t\tif (currentRequests.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tcurrentRequests[key](time);\n\t\t\t\t\t\t\t\tlastActive = time;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Disable the timeout when nothing happens for a certain\n\t\t\t\t\t\t// period of time\n\t\t\t\t\t\tif (time - lastActive > 2500) {\n\t\t\t\t\t\t\tclearInterval(intervalHandle);\n\t\t\t\t\t\t\tintervalHandle = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}, 1000 / TARGET_FPS);\n\t\t\t\t}\n\n\t\t\t\treturn callbackHandle;\n\t\t\t};\n\n\t\t})(),\n\n\n\t\t/**\n\t\t * Stops the given animation.\n\t\t *\n\t\t * @param id {Integer} Unique animation ID\n\t\t * @return {Boolean} Whether the animation was stopped (aka, was running before)\n\t\t */\n\t\tstop: function(id) {\n\t\t\tvar cleared = running[id] != null;\n\t\t\tif (cleared) {\n\t\t\t\trunning[id] = null;\n\t\t\t}\n\n\t\t\treturn cleared;\n\t\t},\n\n\n\t\t/**\n\t\t * Whether the given animation is still running.\n\t\t *\n\t\t * @param id {Integer} Unique animation ID\n\t\t * @return {Boolean} Whether the animation is still running\n\t\t */\n\t\tisRunning: function(id) {\n\t\t\treturn running[id] != null;\n\t\t},\n\n\n\t\t/**\n\t\t * Start the animation.\n\t\t *\n\t\t * @param stepCallback {Function} Pointer to function which is executed on every step.\n\t\t * Signature of the method should be `function(percent, now, virtual) { return continueWithAnimation; }`\n\t\t * @param verifyCallback {Function} Executed before every animation step.\n\t\t * Signature of the method should be `function() { return continueWithAnimation; }`\n\t\t * @param completedCallback {Function}\n\t\t * Signature of the method should be `function(droppedFrames, finishedAnimation) {}`\n\t\t * @param duration {Integer} Milliseconds to run the animation\n\t\t * @param easingMethod {Function} Pointer to easing function\n\t\t * Signature of the method should be `function(percent) { return modifiedValue; }`\n\t\t * @param root {Element ? document.body} Render root, when available. Used for internal\n\t\t * usage of requestAnimationFrame.\n\t\t * @return {Integer} Identifier of animation. Can be used to stop it any time.\n\t\t */\n\t\tstart: function(stepCallback, verifyCallback, completedCallback, duration, easingMethod, root) {\n\n\t\t\tvar start = time();\n\t\t\tvar lastFrame = start;\n\t\t\tvar percent = 0;\n\t\t\tvar dropCounter = 0;\n\t\t\tvar id = counter++;\n\n\t\t\tif (!root) {\n\t\t\t\troot = document.body;\n\t\t\t}\n\n\t\t\t// Compacting running db automatically every few new animations\n\t\t\tif (id % 20 === 0) {\n\t\t\t\tvar newRunning = {};\n\t\t\t\tfor (var usedId in running) {\n\t\t\t\t\tnewRunning[usedId] = true;\n\t\t\t\t}\n\t\t\t\trunning = newRunning;\n\t\t\t}\n\n\t\t\t// This is the internal step method which is called every few milliseconds\n\t\t\tvar step = function(virtual) {\n\n\t\t\t\t// Normalize virtual value\n\t\t\t\tvar render = virtual !== true;\n\n\t\t\t\t// Get current time\n\t\t\t\tvar now = time();\n\n\t\t\t\t// Verification is executed before next animation step\n\t\t\t\tif (!running[id] || (verifyCallback && !verifyCallback(id))) {\n\n\t\t\t\t\trunning[id] = null;\n\t\t\t\t\tcompletedCallback && completedCallback(desiredFrames - (dropCounter / ((now - start) / millisecondsPerSecond)), id, false);\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\t// For the current rendering to apply let's update omitted steps in memory.\n\t\t\t\t// This is important to bring internal state variables up-to-date with progress in time.\n\t\t\t\tif (render) {\n\n\t\t\t\t\tvar droppedFrames = Math.round((now - lastFrame) / (millisecondsPerSecond / desiredFrames)) - 1;\n\t\t\t\t\tfor (var j = 0; j < Math.min(droppedFrames, 4); j++) {\n\t\t\t\t\t\tstep(true);\n\t\t\t\t\t\tdropCounter++;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Compute percent value\n\t\t\t\tif (duration) {\n\t\t\t\t\tpercent = (now - start) / duration;\n\t\t\t\t\tif (percent > 1) {\n\t\t\t\t\t\tpercent = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Execute step callback, then...\n\t\t\t\tvar value = easingMethod ? easingMethod(percent) : percent;\n\t\t\t\tif ((stepCallback(value, now, render) === false || percent === 1) && render) {\n\t\t\t\t\trunning[id] = null;\n\t\t\t\t\tcompletedCallback && completedCallback(desiredFrames - (dropCounter / ((now - start) / millisecondsPerSecond)), id, percent === 1 || duration == null);\n\t\t\t\t} else if (render) {\n\t\t\t\t\tlastFrame = now;\n\t\t\t\t\tcore.effect.Animate.requestAnimationFrame(step, root);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Mark as running\n\t\t\trunning[id] = true;\n\n\t\t\t// Init first step\n\t\t\tcore.effect.Animate.requestAnimationFrame(step, root);\n\n\t\t\t// Return unique animation ID\n\t\t\treturn id;\n\t\t}\n\t};\n})(this);\n\n\nvar Scroller;\n\n(function() {\n\t\n\t/**\n\t * A pure logic 'component' for 'virtual' scrolling/zooming.\n\t */\n\tScroller = function(callback, options) {\n\n\t\tthis.__callback = callback;\n\n\t\tthis.options = {\n\t\t\t\n\t\t\t/** Enable scrolling on x-axis */\n\t\t\tscrollingX: true,\n\n\t\t\t/** Enable scrolling on y-axis */\n\t\t\tscrollingY: true,\n\n\t\t\t/** Enable animations for deceleration, snap back, zooming and scrolling */\n\t\t\tanimating: true,\n\n\t\t\t/** duration for animations triggered by scrollTo/zoomTo */\n\t\t\tanimationDuration: 250,\n\n\t\t\t/** Enable bouncing (content can be slowly moved outside and jumps back after releasing) */\n\t\t\tbouncing: true,\n\n\t\t\t/** Enable locking to the main axis if user moves only slightly on one of them at start */\n\t\t\tlocking: true,\n\n\t\t\t/** Enable pagination mode (switching between full page content panes) */\n\t\t\tpaging: false,\n\n\t\t\t/** Enable snapping of content to a configured pixel grid */\n\t\t\tsnapping: false,\n\n\t\t\t/** Enable zooming of content via API, fingers and mouse wheel */\n\t\t\tzooming: false,\n\n\t\t\t/** Minimum zoom level */\n\t\t\tminZoom: 0.5,\n\n\t\t\t/** Maximum zoom level */\n\t\t\tmaxZoom: 3\n\t\t\t\n\t\t};\n\n\t\tfor (var key in options) {\n\t\t\tthis.options[key] = options[key];\n\t\t}\n\n\t};\n\t\n\t\n\t// Easing Equations (c) 2003 Robert Penner, all rights reserved.\n\t// Open source under the BSD License.\n\t\n\t/**\n\t * @param pos {Number} position between 0 (start of effect) and 1 (end of effect)\n\t**/\n\tvar easeOutCubic = function(pos) {\n\t\treturn (Math.pow((pos - 1), 3) + 1);\n\t};\n\n\t/**\n\t * @param pos {Number} position between 0 (start of effect) and 1 (end of effect)\n\t**/\n\tvar easeInOutCubic = function(pos) {\n\t\tif ((pos /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(pos, 3);\n\t\t}\n\n\t\treturn 0.5 * (Math.pow((pos - 2), 3) + 2);\n\t};\n\t\n\t\n\tvar members = {\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tINTERNAL FIELDS :: STATUS\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/** {Boolean} Whether only a single finger is used in touch handling */\n\t\t__isSingleTouch: false,\n\n\t\t/** {Boolean} Whether a touch event sequence is in progress */\n\t\t__isTracking: false,\n\n\t\t/**\n\t\t * {Boolean} Whether a gesture zoom/rotate event is in progress. Activates when\n\t\t * a gesturestart event happens. This has higher priority than dragging.\n\t\t */\n\t\t__isGesturing: false,\n\n\t\t/**\n\t\t * {Boolean} Whether the user has moved by such a distance that we have enabled\n\t\t * dragging mode. Hint: It's only enabled after some pixels of movement to\n\t\t * not interrupt with clicks etc.\n\t\t */\n\t\t__isDragging: false,\n\n\t\t/**\n\t\t * {Boolean} Not touching and dragging anymore, and smoothly animating the\n\t\t * touch sequence using deceleration.\n\t\t */\n\t\t__isDecelerating: false,\n\n\t\t/**\n\t\t * {Boolean} Smoothly animating the currently configured change\n\t\t */\n\t\t__isAnimating: false,\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tINTERNAL FIELDS :: DIMENSIONS\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/** {Integer} Available outer left position (from document perspective) */\n\t\t__clientLeft: 0,\n\n\t\t/** {Integer} Available outer top position (from document perspective) */\n\t\t__clientTop: 0,\n\n\t\t/** {Integer} Available outer width */\n\t\t__clientWidth: 0,\n\n\t\t/** {Integer} Available outer height */\n\t\t__clientHeight: 0,\n\n\t\t/** {Integer} Outer width of content */\n\t\t__contentWidth: 0,\n\n\t\t/** {Integer} Outer height of content */\n\t\t__contentHeight: 0,\n\n\t\t/** {Integer} Snapping width for content */\n\t\t__snapWidth: 100,\n\n\t\t/** {Integer} Snapping height for content */\n\t\t__snapHeight: 100,\n\n\t\t/** {Integer} Height to assign to refresh area */\n\t\t__refreshHeight: null,\n\t\t\n\t\t/** {Boolean} Whether the refresh process is enabled when the event is released now */\n\t\t__refreshActive: false,\n\t\t\n\t\t/** {Function} Callback to execute on activation. This is for signalling the user about a refresh is about to happen when he release */\n\t\t__refreshActivate: null,\n\n\t\t/** {Function} Callback to execute on deactivation. This is for signalling the user about the refresh being cancelled */\n\t\t__refreshDeactivate: null,\n\t\t\n\t\t/** {Function} Callback to execute to start the actual refresh. Call {@link #refreshFinish} when done */\n\t\t__refreshStart: null,\n\n\t\t/** {Number} Zoom level */\n\t\t__zoomLevel: 1,\n\n\t\t/** {Number} Scroll position on x-axis */\n\t\t__scrollLeft: 0,\n\n\t\t/** {Number} Scroll position on y-axis */\n\t\t__scrollTop: 0,\n\n\t\t/** {Integer} Maximum allowed scroll position on x-axis */\n\t\t__maxScrollLeft: 0,\n\n\t\t/** {Integer} Maximum allowed scroll position on y-axis */\n\t\t__maxScrollTop: 0,\n\n\t\t/* {Number} Scheduled left position (final position when animating) */\n\t\t__scheduledLeft: 0,\n\n\t\t/* {Number} Scheduled top position (final position when animating) */\n\t\t__scheduledTop: 0,\n\n\t\t/* {Number} Scheduled zoom level (final scale when animating) */\n\t\t__scheduledZoom: 0,\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tINTERNAL FIELDS :: LAST POSITIONS\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/** {Number} Left position of finger at start */\n\t\t__lastTouchLeft: null,\n\n\t\t/** {Number} Top position of finger at start */\n\t\t__lastTouchTop: null,\n\n\t\t/** {Date} Timestamp of last move of finger. Used to limit tracking range for deceleration speed. */\n\t\t__lastTouchMove: null,\n\t\t\n\t\t/** {Array} List of positions, uses three indexes for each state: left, top, timestamp */\n\t\t__positions: null,\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tINTERNAL FIELDS :: DECELERATION SUPPORT\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/** {Integer} Minimum left scroll position during deceleration */\n\t\t__minDecelerationScrollLeft: null,\n\n\t\t/** {Integer} Minimum top scroll position during deceleration */\n\t\t__minDecelerationScrollTop: null,\n\n\t\t/** {Integer} Maximum left scroll position during deceleration */\n\t\t__maxDecelerationScrollLeft: null,\n\n\t\t/** {Integer} Maximum top scroll position during deceleration */\n\t\t__maxDecelerationScrollTop: null,\n\n\t\t/** {Number} Current factor to modify horizontal scroll position with on every step */\n\t\t__decelerationVelocityX: null,\n\n\t\t/** {Number} Current factor to modify vertical scroll position with on every step */\n\t\t__decelerationVelocityY: null,\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tPUBLIC API\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/**\n\t\t * Configures the dimensions of the client (outer) and content (inner) elements.\n\t\t * Requires the available space for the outer element and the outer size of the inner element.\n\t\t * All values which are falsy (null or zero etc.) are ignored and the old value is kept.\n\t\t *\n\t\t * @param clientWidth {Integer ? null} Inner width of outer element\n\t\t * @param clientHeight {Integer ? null} Inner height of outer element\n\t\t * @param contentWidth {Integer ? null} Outer width of inner element\n\t\t * @param contentHeight {Integer ? null} Outer height of inner element\n\t\t */\n\t\tsetDimensions: function(clientWidth, clientHeight, contentWidth, contentHeight) {\n\n\t\t\tvar self = this;\n\n\t\t\t// Only update values which are defined\n\t\t\tif (clientWidth) {\n\t\t\t\tself.__clientWidth = clientWidth;\n\t\t\t}\n\n\t\t\tif (clientHeight) {\n\t\t\t\tself.__clientHeight = clientHeight;\n\t\t\t}\n\n\t\t\tif (contentWidth) {\n\t\t\t\tself.__contentWidth = contentWidth;\n\t\t\t}\n\n\t\t\tif (contentHeight) {\n\t\t\t\tself.__contentHeight = contentHeight;\n\t\t\t}\n\n\t\t\t// Refresh maximums\n\t\t\tself.__computeScrollMax();\n\n\t\t\t// Refresh scroll position\n\t\t\tself.scrollTo(self.__scrollLeft, self.__scrollTop, true);\n\t\t\t\n\t\t},\n\n\n\t\t/**\n\t\t * Sets the client coordinates in relation to the document.\n\t\t *\n\t\t * @param left {Integer ? 0} Left position of outer element\n\t\t * @param top {Integer ? 0} Top position of outer element\n\t\t */\n\t\tsetPosition: function(left, top) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.__clientLeft = left || 0;\n\t\t\tself.__clientTop = top || 0;\n\n\t\t},\n\n\n\t\t/**\n\t\t * Configures the snapping (when snapping is active)\n\t\t *\n\t\t * @param width {Integer} Snapping width\n\t\t * @param height {Integer} Snapping height\n\t\t */\n\t\tsetSnapSize: function(width, height) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.__snapWidth = width;\n\t\t\tself.__snapHeight = height;\n\n\t\t},\n\n\n\t\t/**\n\t\t * Activates pull-to-refresh. A special zone on the top of the list to start a list refresh whenever\n\t\t * the user event is released during visibility of this zone. This was introduced by some apps on iOS like\n\t\t * the official Twitter client.\n\t\t *\n\t\t * @param height {Integer} Height of pull-to-refresh zone on top of rendered list\n\t\t * @param activateCallback {Function} Callback to execute on activation. This is for signalling the user about a refresh is about to happen when he release.\n\t\t * @param deactivateCallback {Function} Callback to execute on deactivation. This is for signalling the user about the refresh being cancelled.\n\t\t * @param startCallback {Function} Callback to execute to start the real async refresh action. Call {@link #finishPullToRefresh} after finish of refresh.\n\t\t */\n\t\tactivatePullToRefresh: function(height, activateCallback, deactivateCallback, startCallback) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.__refreshHeight = height;\n\t\t\tself.__refreshActivate = activateCallback;\n\t\t\tself.__refreshDeactivate = deactivateCallback;\n\t\t\tself.__refreshStart = startCallback;\n\n\t\t},\n\t\t\n\t\t\n\t\t/**\n\t\t * Signalizes that pull-to-refresh is finished. \n\t\t */\n\t\tfinishPullToRefresh: function() {\n\t\t\t\n\t\t\tvar self = this;\n\t\t\t\n\t\t\tself.__refreshActive = false;\n\t\t\tif (self.__refreshDeactivate) {\n\t\t\t\tself.__refreshDeactivate();\n\t\t\t}\n\t\t\t\n\t\t\tself.scrollTo(self.__scrollLeft, self.__scrollTop, true);\n\t\t\t\n\t\t},\n\n\n\t\t/**\n\t\t * Returns the scroll position and zooming values\n\t\t *\n\t\t * @return {Map} `left` and `top` scroll position and `zoom` level\n\t\t */\n\t\tgetValues: function() {\n\n\t\t\tvar self = this;\n\n\t\t\treturn {\n\t\t\t\tleft: self.__scrollLeft,\n\t\t\t\ttop: self.__scrollTop,\n\t\t\t\tzoom: self.__zoomLevel\n\t\t\t};\n\n\t\t},\n\t\t\n\t\t\n\t\t/**\n\t\t * Returns the maximum scroll values\n\t\t *\n\t\t * @return {Map} `left` and `top` maximum scroll values\n\t\t */\n\t\tgetScrollMax: function() {\n\t\t\t\n\t\t\tvar self = this;\n\t\t\t\n\t\t\treturn {\n\t\t\t\tleft: self.__maxScrollLeft,\n\t\t\t\ttop: self.__maxScrollTop\n\t\t\t};\n\t\t\t\n\t\t},\n\n\n\t\t/**\n\t\t * Zooms to the given level. Supports optional animation. Zooms\n\t\t * the center when no coordinates are given.\n\t\t *\n\t\t * @param level {Number} Level to zoom to\n\t\t * @param animate {Boolean ? false} Whether to use animation\n\t\t * @param originLeft {Number ? null} Zoom in at given left coordinate\n\t\t * @param originTop {Number ? null} Zoom in at given top coordinate\n\t\t */\n\t\tzoomTo: function(level, animate, originLeft, originTop) {\n\n\t\t\tvar self = this;\n\n\t\t\tif (!self.options.zooming) {\n\t\t\t\tthrow new Error(\"Zooming is not enabled!\");\n\t\t\t}\n\n\t\t\t// Stop deceleration\n\t\t\tif (self.__isDecelerating) {\n\t\t\t\tcore.effect.Animate.stop(self.__isDecelerating);\n\t\t\t\tself.__isDecelerating = false;\n\t\t\t}\n\n\t\t\tvar oldLevel = self.__zoomLevel;\n\n\t\t\t// Normalize input origin to center of viewport if not defined\n\t\t\tif (originLeft == null) {\n\t\t\t\toriginLeft = self.__clientWidth / 2;\n\t\t\t}\n\n\t\t\tif (originTop == null) {\n\t\t\t\toriginTop = self.__clientHeight / 2;\n\t\t\t}\n\n\t\t\t// Limit level according to configuration\n\t\t\tlevel = Math.max(Math.min(level, self.options.maxZoom), self.options.minZoom);\n\n\t\t\t// Recompute maximum values while temporary tweaking maximum scroll ranges\n\t\t\tself.__computeScrollMax(level);\n\n\t\t\t// Recompute left and top coordinates based on new zoom level\n\t\t\tvar left = ((originLeft + self.__scrollLeft) * level / oldLevel) - originLeft;\n\t\t\tvar top = ((originTop + self.__scrollTop) * level / oldLevel) - originTop;\n\n\t\t\t// Limit x-axis\n\t\t\tif (left > self.__maxScrollLeft) {\n\t\t\t\tleft = self.__maxScrollLeft;\n\t\t\t} else if (left < 0) {\n\t\t\t\tleft = 0;\n\t\t\t}\n\n\t\t\t// Limit y-axis\n\t\t\tif (top > self.__maxScrollTop) {\n\t\t\t\ttop = self.__maxScrollTop;\n\t\t\t} else if (top < 0) {\n\t\t\t\ttop = 0;\n\t\t\t}\n\n\t\t\t// Push values out\n\t\t\tself.__publish(left, top, level, animate);\n\n\t\t},\n\n\n\t\t/**\n\t\t * Zooms the content by the given factor.\n\t\t *\n\t\t * @param factor {Number} Zoom by given factor\n\t\t * @param animate {Boolean ? false} Whether to use animation\n\t\t * @param originLeft {Number ? 0} Zoom in at given left coordinate\n\t\t * @param originTop {Number ? 0} Zoom in at given top coordinate\n\t\t */\n\t\tzoomBy: function(factor, animate, originLeft, originTop) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.zoomTo(self.__zoomLevel * factor, animate, originLeft, originTop);\n\n\t\t},\n\n\n\t\t/**\n\t\t * Scrolls to the given position. Respect limitations and snapping automatically.\n\t\t *\n\t\t * @param left {Number?null} Horizontal scroll position, keeps current if value is null
\n\t\t * @param top {Number?null} Vertical scroll position, keeps current if value is null
\n\t\t * @param animate {Boolean?false} Whether the scrolling should happen using an animation\n\t\t * @param zoom {Number?null} Zoom level to go to\n\t\t */\n\t\tscrollTo: function(left, top, animate, zoom) {\n\n\t\t\tvar self = this;\n\t\t\t\n\t\t\t// Stop deceleration\n\t\t\tif (self.__isDecelerating) {\n\t\t\t\tcore.effect.Animate.stop(self.__isDecelerating);\n\t\t\t\tself.__isDecelerating = false;\n\t\t\t}\n\t\t\t\n\t\t\t// Correct coordinates based on new zoom level\n\t\t\tif (zoom != null && zoom !== self.__zoomLevel) {\n\t\t\t\t\n\t\t\t\tif (!self.options.zooming) {\n\t\t\t\t\tthrow new Error(\"Zooming is not enabled!\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tleft *= zoom;\n\t\t\t\ttop *= zoom;\n\t\t\t\t\n\t\t\t\t// Recompute maximum values while temporary tweaking maximum scroll ranges\n\t\t\t\tself.__computeScrollMax(zoom);\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\t// Keep zoom when not defined\n\t\t\t\tzoom = self.__zoomLevel;\n\t\t\t\t\n\t\t\t}\n\n\t\t\tif (!self.options.scrollingX) {\n\n\t\t\t\tleft = self.__scrollLeft;\n\n\t\t\t} else {\n\n\t\t\t\tif (self.options.paging) {\n\t\t\t\t\tleft = Math.round(left / self.__clientWidth) * self.__clientWidth;\n\t\t\t\t} else if (self.options.snapping) {\n\t\t\t\t\tleft = Math.round(left / self.__snapWidth) * self.__snapWidth;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif (!self.options.scrollingY) {\n\n\t\t\t\ttop = self.__scrollTop;\n\n\t\t\t} else {\n\n\t\t\t\tif (self.options.paging) {\n\t\t\t\t\ttop = Math.round(top / self.__clientHeight) * self.__clientHeight;\n\t\t\t\t} else if (self.options.snapping) {\n\t\t\t\t\ttop = Math.round(top / self.__snapHeight) * self.__snapHeight;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Limit for allowed ranges\n\t\t\tleft = Math.max(Math.min(self.__maxScrollLeft, left), 0);\n\t\t\ttop = Math.max(Math.min(self.__maxScrollTop, top), 0);\n\n\t\t\t// Don't animate when no change detected, still call publish to make sure\n\t\t\t// that rendered position is really in-sync with internal data\n\t\t\tif (left === self.__scrollLeft && top === self.__scrollTop) {\n\t\t\t\tanimate = false;\n\t\t\t}\n\t\t\t\n\t\t\t// Publish new values\n\t\t\tself.__publish(left, top, zoom, animate);\n\n\t\t},\n\n\n\t\t/**\n\t\t * Scroll by the given offset\n\t\t *\n\t\t * @param left {Number ? 0} Scroll x-axis by given offset\n\t\t * @param top {Number ? 0} Scroll x-axis by given offset\n\t\t * @param animate {Boolean ? false} Whether to animate the given change\n\t\t */\n\t\tscrollBy: function(left, top, animate) {\n\n\t\t\tvar self = this;\n\n\t\t\tvar startLeft = self.__isAnimating ? self.__scheduledLeft : self.__scrollLeft;\n\t\t\tvar startTop = self.__isAnimating ? self.__scheduledTop : self.__scrollTop;\n\n\t\t\tself.scrollTo(startLeft + (left || 0), startTop + (top || 0), animate);\n\n\t\t},\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tEVENT CALLBACKS\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/**\n\t\t * Mouse wheel handler for zooming support\n\t\t */\n\t\tdoMouseZoom: function(wheelDelta, timeStamp, pageX, pageY) {\n\n\t\t\tvar self = this;\n\t\t\tvar change = wheelDelta > 0 ? 0.97 : 1.03;\n\n\t\t\treturn self.zoomTo(self.__zoomLevel * change, false, pageX - self.__clientLeft, pageY - self.__clientTop);\n\n\t\t},\n\n\n\t\t/**\n\t\t * Touch start handler for scrolling support\n\t\t */\n\t\tdoTouchStart: function(touches, timeStamp) {\n\n\t\t\t// Array-like check is enough here\n\t\t\tif (touches.length == null) {\n\t\t\t\tthrow new Error(\"Invalid touch list: \" + touches);\n\t\t\t}\n\n\t\t\tif (timeStamp instanceof Date) {\n\t\t\t\ttimeStamp = timeStamp.valueOf();\n\t\t\t}\n\t\t\tif (typeof timeStamp !== \"number\") {\n\t\t\t\tthrow new Error(\"Invalid timestamp value: \" + timeStamp);\n\t\t\t}\n\t\t\t\n\t\t\tvar self = this;\n\n\t\t\t// Stop deceleration\n\t\t\tif (self.__isDecelerating) {\n\t\t\t\tcore.effect.Animate.stop(self.__isDecelerating);\n\t\t\t\tself.__isDecelerating = false;\n\t\t\t}\n\n\t\t\t// Stop animation\n\t\t\tif (self.__isAnimating) {\n\t\t\t\tcore.effect.Animate.stop(self.__isAnimating);\n\t\t\t\tself.__isAnimating = false;\n\t\t\t}\n\n\t\t\t// Use center point when dealing with two fingers\n\t\t\tvar currentTouchLeft, currentTouchTop;\n\t\t\tvar isSingleTouch = touches.length === 1;\n\t\t\tif (isSingleTouch) {\n\t\t\t\tcurrentTouchLeft = touches[0].pageX;\n\t\t\t\tcurrentTouchTop = touches[0].pageY;\n\t\t\t} else {\n\t\t\t\tcurrentTouchLeft = Math.abs(touches[0].pageX + touches[1].pageX) / 2;\n\t\t\t\tcurrentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2;\n\t\t\t}\n\n\t\t\t// Store initial positions\n\t\t\tself.__initialTouchLeft = currentTouchLeft;\n\t\t\tself.__initialTouchTop = currentTouchTop;\n\n\t\t\t// Store current zoom level\n\t\t\tself.__zoomLevelStart = self.__zoomLevel;\n\n\t\t\t// Store initial touch positions\n\t\t\tself.__lastTouchLeft = currentTouchLeft;\n\t\t\tself.__lastTouchTop = currentTouchTop;\n\n\t\t\t// Store initial move time stamp\n\t\t\tself.__lastTouchMove = timeStamp;\n\n\t\t\t// Reset initial scale\n\t\t\tself.__lastScale = 1;\n\n\t\t\t// Reset locking flags\n\t\t\tself.__enableScrollX = !isSingleTouch && self.options.scrollingX;\n\t\t\tself.__enableScrollY = !isSingleTouch && self.options.scrollingY;\n\n\t\t\t// Reset tracking flag\n\t\t\tself.__isTracking = true;\n\n\t\t\t// Dragging starts directly with two fingers, otherwise lazy with an offset\n\t\t\tself.__isDragging = !isSingleTouch;\n\n\t\t\t// Some features are disabled in multi touch scenarios\n\t\t\tself.__isSingleTouch = isSingleTouch;\n\n\t\t\t// Clearing data structure\n\t\t\tself.__positions = [];\n\n\t\t},\n\n\n\t\t/**\n\t\t * Touch move handler for scrolling support\n\t\t */\n\t\tdoTouchMove: function(touches, timeStamp, scale) {\n\n\t\t\t// Array-like check is enough here\n\t\t\tif (touches.length == null) {\n\t\t\t\tthrow new Error(\"Invalid touch list: \" + touches);\n\t\t\t}\n\n\t\t\tif (timeStamp instanceof Date) {\n\t\t\t\ttimeStamp = timeStamp.valueOf();\n\t\t\t}\n\t\t\tif (typeof timeStamp !== \"number\") {\n\t\t\t\tthrow new Error(\"Invalid timestamp value: \" + timeStamp);\n\t\t\t}\n\t\t\t\n\t\t\tvar self = this;\n\n\t\t\t// Ignore event when tracking is not enabled (event might be outside of element)\n\t\t\tif (!self.__isTracking) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tvar currentTouchLeft, currentTouchTop;\n\n\t\t\t// Compute move based around of center of fingers\n\t\t\tif (touches.length === 2) {\n\t\t\t\tcurrentTouchLeft = Math.abs(touches[0].pageX + touches[1].pageX) / 2;\n\t\t\t\tcurrentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2;\n\t\t\t} else {\n\t\t\t\tcurrentTouchLeft = touches[0].pageX;\n\t\t\t\tcurrentTouchTop = touches[0].pageY;\n\t\t\t}\n\n\t\t\tvar positions = self.__positions;\n\n\t\t\t// Are we already is dragging mode?\n\t\t\tif (self.__isDragging) {\n\n\t\t\t\t// Compute move distance\n\t\t\t\tvar moveX = currentTouchLeft - self.__lastTouchLeft;\n\t\t\t\tvar moveY = currentTouchTop - self.__lastTouchTop;\n\n\t\t\t\t// Read previous scroll position and zooming\n\t\t\t\tvar scrollLeft = self.__scrollLeft;\n\t\t\t\tvar scrollTop = self.__scrollTop;\n\t\t\t\tvar level = self.__zoomLevel;\n\n\t\t\t\t// Work with scaling\n\t\t\t\tif (scale != null && self.options.zooming) {\n\n\t\t\t\t\tvar oldLevel = level;\n\n\t\t\t\t\t// Recompute level based on previous scale and new scale\n\t\t\t\t\tlevel = level / self.__lastScale * scale;\n\n\t\t\t\t\t// Limit level according to configuration\n\t\t\t\t\tlevel = Math.max(Math.min(level, self.options.maxZoom), self.options.minZoom);\n\n\t\t\t\t\t// Only do further compution when change happened\n\t\t\t\t\tif (oldLevel !== level) {\n\n\t\t\t\t\t\t// Compute relative event position to container\n\t\t\t\t\t\tvar currentTouchLeftRel = currentTouchLeft - self.__clientLeft;\n\t\t\t\t\t\tvar currentTouchTopRel = currentTouchTop - self.__clientTop;\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Recompute left and top coordinates based on new zoom level\n\t\t\t\t\t\tscrollLeft = ((currentTouchLeftRel + scrollLeft) * level / oldLevel) - currentTouchLeftRel;\n\t\t\t\t\t\tscrollTop = ((currentTouchTopRel + scrollTop) * level / oldLevel) - currentTouchTopRel;\n\n\t\t\t\t\t\t// Recompute max scroll values\n\t\t\t\t\t\tself.__computeScrollMax(level);\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (self.__enableScrollX) {\n\n\t\t\t\t\tscrollLeft -= moveX;\n\t\t\t\t\tvar maxScrollLeft = self.__maxScrollLeft;\n\n\t\t\t\t\tif (scrollLeft > maxScrollLeft || scrollLeft < 0) {\n\n\t\t\t\t\t\t// Slow down on the edges\n\t\t\t\t\t\tif (self.options.bouncing) {\n\n\t\t\t\t\t\t\tscrollLeft += (moveX / 2);\n\n\t\t\t\t\t\t} else if (scrollLeft > maxScrollLeft) {\n\n\t\t\t\t\t\t\tscrollLeft = maxScrollLeft;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tscrollLeft = 0;\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Compute new vertical scroll position\n\t\t\t\tif (self.__enableScrollY) {\n\n\t\t\t\t\tscrollTop -= moveY;\n\t\t\t\t\tvar maxScrollTop = self.__maxScrollTop;\n\n\t\t\t\t\tif (scrollTop > maxScrollTop || scrollTop < 0) {\n\n\t\t\t\t\t\t// Slow down on the edges\n\t\t\t\t\t\tif (self.options.bouncing) {\n\n\t\t\t\t\t\t\tscrollTop += (moveY / 2);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Support pull-to-refresh (only when only y is scrollable)\n\t\t\t\t\t\t\tif (!self.__enableScrollX && self.__refreshHeight != null) {\n\n\t\t\t\t\t\t\t\tif (!self.__refreshActive && scrollTop <= -self.__refreshHeight) {\n\n\t\t\t\t\t\t\t\t\tself.__refreshActive = true;\n\t\t\t\t\t\t\t\t\tif (self.__refreshActivate) {\n\t\t\t\t\t\t\t\t\t\tself.__refreshActivate();\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else if (self.__refreshActive && scrollTop > -self.__refreshHeight) {\n\n\t\t\t\t\t\t\t\t\tself.__refreshActive = false;\n\t\t\t\t\t\t\t\t\tif (self.__refreshDeactivate) {\n\t\t\t\t\t\t\t\t\t\tself.__refreshDeactivate();\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if (scrollTop > maxScrollTop) {\n\n\t\t\t\t\t\t\tscrollTop = maxScrollTop;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tscrollTop = 0;\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Keep list from growing infinitely (holding min 10, max 20 measure points)\n\t\t\t\tif (positions.length > 60) {\n\t\t\t\t\tpositions.splice(0, 30);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Track scroll movement for decleration\n\t\t\t\tpositions.push(scrollLeft, scrollTop, timeStamp);\n\n\t\t\t\t// Sync scroll position\n\t\t\t\tself.__publish(scrollLeft, scrollTop, level);\n\n\t\t\t// Otherwise figure out whether we are switching into dragging mode now.\n\t\t\t} else {\n\n\t\t\t\tvar minimumTrackingForScroll = self.options.locking ? 3 : 0;\n\t\t\t\tvar minimumTrackingForDrag = 5;\n\n\t\t\t\tvar distanceX = Math.abs(currentTouchLeft - self.__initialTouchLeft);\n\t\t\t\tvar distanceY = Math.abs(currentTouchTop - self.__initialTouchTop);\n\n\t\t\t\tself.__enableScrollX = self.options.scrollingX && distanceX >= minimumTrackingForScroll;\n\t\t\t\tself.__enableScrollY = self.options.scrollingY && distanceY >= minimumTrackingForScroll;\n\t\t\t\t\n\t\t\t\tpositions.push(self.__scrollLeft, self.__scrollTop, timeStamp);\n\n\t\t\t\tself.__isDragging = (self.__enableScrollX || self.__enableScrollY) && (distanceX >= minimumTrackingForDrag || distanceY >= minimumTrackingForDrag);\n\n\t\t\t}\n\n\t\t\t// Update last touch positions and time stamp for next event\n\t\t\tself.__lastTouchLeft = currentTouchLeft;\n\t\t\tself.__lastTouchTop = currentTouchTop;\n\t\t\tself.__lastTouchMove = timeStamp;\n\t\t\tself.__lastScale = scale;\n\n\t\t},\n\n\n\t\t/**\n\t\t * Touch end handler for scrolling support\n\t\t */\n\t\tdoTouchEnd: function(timeStamp) {\n\t\t\t\n\t\t\tif (timeStamp instanceof Date) {\n\t\t\t\ttimeStamp = timeStamp.valueOf();\n\t\t\t}\n\t\t\tif (typeof timeStamp !== \"number\") {\n\t\t\t\tthrow new Error(\"Invalid timestamp value: \" + timeStamp);\n\t\t\t}\n\t\t\t\n\t\t\tvar self = this;\n\n\t\t\t// Ignore event when tracking is not enabled (no touchstart event on element)\n\t\t\t// This is required as this listener ('touchmove') sits on the document and not on the element itself.\n\t\t\tif (!self.__isTracking) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t// Not touching anymore (when two finger hit the screen there are two touch end events)\n\t\t\tself.__isTracking = false;\n\n\t\t\t// Be sure to reset the dragging flag now. Here we also detect whether\n\t\t\t// the finger has moved fast enough to switch into a deceleration animation.\n\t\t\tif (self.__isDragging) {\n\n\t\t\t\t// Reset dragging flag\n\t\t\t\tself.__isDragging = false;\n\n\t\t\t\t// Start deceleration\n\t\t\t\t// Verify that the last move detected was in some relevant time frame\n\t\t\t\tif (self.__isSingleTouch && self.options.animating && (timeStamp - self.__lastTouchMove) <= 100) {\n\n\t\t\t\t\t// Then figure out what the scroll position was about 100ms ago\n\t\t\t\t\tvar positions = self.__positions;\n\t\t\t\t\tvar endPos = positions.length - 1;\n\t\t\t\t\tvar startPos = endPos;\n\t\t\t\t\t\n\t\t\t\t\t// Move pointer to position measured 100ms ago\n\t\t\t\t\tfor (var i = endPos; i > 0 && positions[i] > (self.__lastTouchMove - 100); i -= 3) {\n\t\t\t\t\t\tstartPos = i;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// If start and stop position is identical in a 100ms timeframe, \n\t\t\t\t\t// we cannot compute any useful deceleration.\n\t\t\t\t\tif (startPos !== endPos) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Compute relative movement between these two points\n\t\t\t\t\t\tvar timeOffset = positions[endPos] - positions[startPos];\n\t\t\t\t\t\tvar movedLeft = self.__scrollLeft - positions[startPos - 2];\n\t\t\t\t\t\tvar movedTop = self.__scrollTop - positions[startPos - 1];\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Based on 50ms compute the movement to apply for each render step\n\t\t\t\t\t\tself.__decelerationVelocityX = movedLeft / timeOffset * (1000 / 60);\n\t\t\t\t\t\tself.__decelerationVelocityY = movedTop / timeOffset * (1000 / 60);\n\n\t\t\t\t\t\t// How much velocity is required to start the deceleration\n\t\t\t\t\t\tvar minVelocityToStartDeceleration = self.options.paging || self.options.snapping ? 4 : 1;\n\n\t\t\t\t\t\t// Verify that we have enough velocity to start deceleration\n\t\t\t\t\t\tif (Math.abs(self.__decelerationVelocityX) > minVelocityToStartDeceleration || Math.abs(self.__decelerationVelocityY) > minVelocityToStartDeceleration) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Deactivate pull-to-refresh when decelerating\n\t\t\t\t\t\t\tif (!self.__refreshActive) {\n\n\t\t\t\t\t\t\t\tself.__startDeceleration(timeStamp);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If this was a slower move it is per default non decelerated, but this\n\t\t\t// still means that we want snap back to the bounds which is done here.\n\t\t\t// This is placed outside the condition above to improve edge case stability\n\t\t\t// e.g. touchend fired without enabled dragging. This should normally do not\n\t\t\t// have modified the scroll positions or even showed the scrollbars though.\n\t\t\tif (!self.__isDecelerating) {\n\n\t\t\t\tif (self.__refreshActive && self.__refreshStart) {\n\t\t\t\t\t\n\t\t\t\t\t// Use publish instead of scrollTo to allow scrolling to out of boundary position\n\t\t\t\t\t// We don't need to normalize scrollLeft, zoomLevel, etc. here because we only y-scrolling when pull-to-refresh is enabled\n\t\t\t\t\tself.__publish(self.__scrollLeft, -self.__refreshHeight, self.__zoomLevel, true);\n\t\t\t\t\t\n\t\t\t\t\tif (self.__refreshStart) {\n\t\t\t\t\t\tself.__refreshStart();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tself.scrollTo(self.__scrollLeft, self.__scrollTop, true, self.__zoomLevel);\n\t\t\t\t\t\n\t\t\t\t\t// Directly signalize deactivation (nothing todo on refresh?)\n\t\t\t\t\tif (self.__refreshActive) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tself.__refreshActive = false;\n\t\t\t\t\t\tif (self.__refreshDeactivate) {\n\t\t\t\t\t\t\tself.__refreshDeactivate();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Fully cleanup list\n\t\t\tself.__positions.length = 0;\n\n\t\t},\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tPRIVATE API\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/**\n\t\t * Applies the scroll position to the content element\n\t\t *\n\t\t * @param left {Number} Left scroll position\n\t\t * @param top {Number} Top scroll position\n\t\t * @param animate {Boolean?false} Whether animation should be used to move to the new coordinates\n\t\t */\n\t\t__publish: function(left, top, zoom, animate) {\n\n\t\t\tvar self = this;\n\t\t\t\n\t\t\t// Remember whether we had an animation, then we try to continue based on the current \"drive\" of the animation\n\t\t\tvar wasAnimating = self.__isAnimating;\n\t\t\tif (wasAnimating) {\n\t\t\t\tcore.effect.Animate.stop(wasAnimating);\n\t\t\t\tself.__isAnimating = false;\n\t\t\t}\n\n\t\t\tif (animate && self.options.animating) {\n\n\t\t\t\t// Keep scheduled positions for scrollBy/zoomBy functionality\n\t\t\t\tself.__scheduledLeft = left;\n\t\t\t\tself.__scheduledTop = top;\n\t\t\t\tself.__scheduledZoom = zoom;\n\n\t\t\t\tvar oldLeft = self.__scrollLeft;\n\t\t\t\tvar oldTop = self.__scrollTop;\n\t\t\t\tvar oldZoom = self.__zoomLevel;\n\n\t\t\t\tvar diffLeft = left - oldLeft;\n\t\t\t\tvar diffTop = top - oldTop;\n\t\t\t\tvar diffZoom = zoom - oldZoom;\n\n\t\t\t\tvar step = function(percent, now, render) {\n\n\t\t\t\t\tif (render) {\n\n\t\t\t\t\t\tself.__scrollLeft = oldLeft + (diffLeft * percent);\n\t\t\t\t\t\tself.__scrollTop = oldTop + (diffTop * percent);\n\t\t\t\t\t\tself.__zoomLevel = oldZoom + (diffZoom * percent);\n\n\t\t\t\t\t\t// Push values out\n\t\t\t\t\t\tif (self.__callback) {\n\t\t\t\t\t\t\tself.__callback(self.__scrollLeft, self.__scrollTop, self.__zoomLevel);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tvar verify = function(id) {\n\t\t\t\t\treturn self.__isAnimating === id;\n\t\t\t\t};\n\n\t\t\t\tvar completed = function(renderedFramesPerSecond, animationId, wasFinished) {\n\t\t\t\t\tif (animationId === self.__isAnimating) {\n\t\t\t\t\t\tself.__isAnimating = false;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (self.options.zooming) {\n\t\t\t\t\t\tself.__computeScrollMax();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t// When continuing based on previous animation we choose an ease-out animation instead of ease-in-out\n\t\t\t\tself.__isAnimating = core.effect.Animate.start(step, verify, completed, self.options.animationDuration, wasAnimating ? easeOutCubic : easeInOutCubic);\n\n\t\t\t} else {\n\n\t\t\t\tself.__scheduledLeft = self.__scrollLeft = left;\n\t\t\t\tself.__scheduledTop = self.__scrollTop = top;\n\t\t\t\tself.__scheduledZoom = self.__zoomLevel = zoom;\n\n\t\t\t\t// Push values out\n\t\t\t\tif (self.__callback) {\n\t\t\t\t\tself.__callback(left, top, zoom);\n\t\t\t\t}\n\n\t\t\t\t// Fix max scroll ranges\n\t\t\t\tif (self.options.zooming) {\n\t\t\t\t\tself.__computeScrollMax();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Recomputes scroll minimum values based on client dimensions and content dimensions.\n\t\t */\n\t\t__computeScrollMax: function(zoomLevel) {\n\n\t\t\tvar self = this;\n\t\t\t\n\t\t\tif (zoomLevel == null) {\n\t\t\t\tzoomLevel = self.__zoomLevel;\n\t\t\t}\n\n\t\t\tself.__maxScrollLeft = Math.max((self.__contentWidth * zoomLevel) - self.__clientWidth, 0);\n\t\t\tself.__maxScrollTop = Math.max((self.__contentHeight * zoomLevel) - self.__clientHeight, 0);\n\t\t\t\n\t\t},\n\n\n\n\t\t/*\n\t\t---------------------------------------------------------------------------\n\t\t\tANIMATION (DECELERATION) SUPPORT\n\t\t---------------------------------------------------------------------------\n\t\t*/\n\n\t\t/**\n\t\t * Called when a touch sequence end and the speed of the finger was high enough\n\t\t * to switch into deceleration mode.\n\t\t */\n\t\t__startDeceleration: function(timeStamp) {\n\n\t\t\tvar self = this;\n\n\t\t\tif (self.options.paging) {\n\n\t\t\t\tvar scrollLeft = Math.max(Math.min(self.__scrollLeft, self.__maxScrollLeft), 0);\n\t\t\t\tvar scrollTop = Math.max(Math.min(self.__scrollTop, self.__maxScrollTop), 0);\n\t\t\t\tvar clientWidth = self.__clientWidth;\n\t\t\t\tvar clientHeight = self.__clientHeight;\n\n\t\t\t\t// We limit deceleration not to the min/max values of the allowed range, but to the size of the visible client area.\n\t\t\t\t// Each page should have exactly the size of the client area.\n\t\t\t\tself.__minDecelerationScrollLeft = Math.floor(scrollLeft / clientWidth) * clientWidth;\n\t\t\t\tself.__minDecelerationScrollTop = Math.floor(scrollTop / clientHeight) * clientHeight;\n\t\t\t\tself.__maxDecelerationScrollLeft = Math.ceil(scrollLeft / clientWidth) * clientWidth;\n\t\t\t\tself.__maxDecelerationScrollTop = Math.ceil(scrollTop / clientHeight) * clientHeight;\n\n\t\t\t} else {\n\n\t\t\t\tself.__minDecelerationScrollLeft = 0;\n\t\t\t\tself.__minDecelerationScrollTop = 0;\n\t\t\t\tself.__maxDecelerationScrollLeft = self.__maxScrollLeft;\n\t\t\t\tself.__maxDecelerationScrollTop = self.__maxScrollTop;\n\n\t\t\t}\n\n\t\t\t// Wrap class method\n\t\t\tvar step = function(percent, now, render) {\n\t\t\t\tself.__stepThroughDeceleration(render);\n\t\t\t};\n\n\t\t\t// How much velocity is required to keep the deceleration running\n\t\t\tvar minVelocityToKeepDecelerating = self.options.snapping ? 4 : 0.1;\n\n\t\t\t// Detect whether it's still worth to continue animating steps\n\t\t\t// If we are already slow enough to not being user perceivable anymore, we stop the whole process here.\n\t\t\tvar verify = function() {\n\t\t\t\treturn Math.abs(self.__decelerationVelocityX) >= minVelocityToKeepDecelerating || Math.abs(self.__decelerationVelocityY) >= minVelocityToKeepDecelerating;\n\t\t\t};\n\n\t\t\tvar completed = function(renderedFramesPerSecond, animationId, wasFinished) {\n\t\t\t\tself.__isDecelerating = false;\n\n\t\t\t\t// Animate to grid when snapping is active, otherwise just fix out-of-boundary positions\n\t\t\t\tself.scrollTo(self.__scrollLeft, self.__scrollTop, self.options.snapping);\n\t\t\t};\n\n\t\t\t// Start animation and switch on flag\n\t\t\tself.__isDecelerating = core.effect.Animate.start(step, verify, completed);\n\n\t\t},\n\n\n\t\t/**\n\t\t * Called on every step of the animation\n\t\t *\n\t\t * @param inMemory {Boolean?false} Whether to not render the current step, but keep it in memory only. Used internally only!\n\t\t */\n\t\t__stepThroughDeceleration: function(render) {\n\n\t\t\tvar self = this;\n\n\n\t\t\t//\n\t\t\t// COMPUTE NEXT SCROLL POSITION\n\t\t\t//\n\n\t\t\t// Add deceleration to scroll position\n\t\t\tvar scrollLeft = self.__scrollLeft + self.__decelerationVelocityX;\n\t\t\tvar scrollTop = self.__scrollTop + self.__decelerationVelocityY;\n\n\n\t\t\t//\n\t\t\t// HARD LIMIT SCROLL POSITION FOR NON BOUNCING MODE\n\t\t\t//\n\n\t\t\tif (!self.options.bouncing) {\n\n\t\t\t\tvar scrollLeftFixed = Math.max(Math.min(self.__maxDecelerationScrollLeft, scrollLeft), self.__minDecelerationScrollLeft);\n\t\t\t\tif (scrollLeftFixed !== scrollLeft) {\n\t\t\t\t\tscrollLeft = scrollLeftFixed;\n\t\t\t\t\tself.__decelerationVelocityX = 0;\n\t\t\t\t}\n\n\t\t\t\tvar scrollTopFixed = Math.max(Math.min(self.__maxDecelerationScrollTop, scrollTop), self.__minDecelerationScrollTop);\n\t\t\t\tif (scrollTopFixed !== scrollTop) {\n\t\t\t\t\tscrollTop = scrollTopFixed;\n\t\t\t\t\tself.__decelerationVelocityY = 0;\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t//\n\t\t\t// UPDATE SCROLL POSITION\n\t\t\t//\n\n\t\t\tif (render) {\n\n\t\t\t\tself.__publish(scrollLeft, scrollTop, self.__zoomLevel);\n\n\t\t\t} else {\n\n\t\t\t\tself.__scrollLeft = scrollLeft;\n\t\t\t\tself.__scrollTop = scrollTop;\n\n\t\t\t}\n\n\n\t\t\t//\n\t\t\t// SLOW DOWN\n\t\t\t//\n\n\t\t\t// Slow down velocity on every iteration\n\t\t\tif (!self.options.paging) {\n\n\t\t\t\t// This is the factor applied to every iteration of the animation\n\t\t\t\t// to slow down the process. This should emulate natural behavior where\n\t\t\t\t// objects slow down when the initiator of the movement is removed\n\t\t\t\tvar frictionFactor = 0.95;\n\n\t\t\t\tself.__decelerationVelocityX *= frictionFactor;\n\t\t\t\tself.__decelerationVelocityY *= frictionFactor;\n\n\t\t\t}\n\n\n\t\t\t//\n\t\t\t// BOUNCING SUPPORT\n\t\t\t//\n\n\t\t\tif (self.options.bouncing) {\n\n\t\t\t\tvar scrollOutsideX = 0;\n\t\t\t\tvar scrollOutsideY = 0;\n\n\t\t\t\t// This configures the amount of change applied to deceleration/acceleration when reaching boundaries\n\t\t\t\tvar penetrationDeceleration = 0.03;\n\t\t\t\tvar penetrationAcceleration = 0.08;\n\n\t\t\t\t// Check limits\n\t\t\t\tif (scrollLeft < self.__minDecelerationScrollLeft) {\n\t\t\t\t\tscrollOutsideX = self.__minDecelerationScrollLeft - scrollLeft;\n\t\t\t\t} else if (scrollLeft > self.__maxDecelerationScrollLeft) {\n\t\t\t\t\tscrollOutsideX = self.__maxDecelerationScrollLeft - scrollLeft;\n\t\t\t\t}\n\n\t\t\t\tif (scrollTop < self.__minDecelerationScrollTop) {\n\t\t\t\t\tscrollOutsideY = self.__minDecelerationScrollTop - scrollTop;\n\t\t\t\t} else if (scrollTop > self.__maxDecelerationScrollTop) {\n\t\t\t\t\tscrollOutsideY = self.__maxDecelerationScrollTop - scrollTop;\n\t\t\t\t}\n\n\t\t\t\t// Slow down until slow enough, then flip back to snap position\n\t\t\t\tif (scrollOutsideX !== 0) {\n\t\t\t\t\tif (scrollOutsideX * self.__decelerationVelocityX <= 0) {\n\t\t\t\t\t\tself.__decelerationVelocityX += scrollOutsideX * penetrationDeceleration;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.__decelerationVelocityX = scrollOutsideX * penetrationAcceleration;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (scrollOutsideY !== 0) {\n\t\t\t\t\tif (scrollOutsideY * self.__decelerationVelocityY <= 0) {\n\t\t\t\t\t\tself.__decelerationVelocityY += scrollOutsideY * penetrationDeceleration;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.__decelerationVelocityY = scrollOutsideY * penetrationAcceleration;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\t\n\t// Copy over members to prototype\n\tfor (var key in members) {\n\t\tScroller.prototype[key] = members[key];\n\t}\n\t\t\n})();\n\n(function( factory ) {\n\tif( typeof define === 'function' && define.amd ) {\n\t\t\t// AMD. Register as an anonymous module.\n\t\t\tdefine( [ 'shoestring' ], factory );\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node/CommonJS\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals\n\t\tfactory();\n\t}\n}(function () {\n\tvar win = typeof window !== \"undefined\" ? window : this;\n\tvar doc = win.document;\n\n\n\t/**\n\t * The shoestring object constructor.\n\t *\n\t * @param {string,object} prim The selector to find or element to wrap.\n\t * @param {object} sec The context in which to match the `prim` selector.\n\t * @returns shoestring\n\t * @this window\n\t */\n\tfunction shoestring( prim, sec ){\n\t\tvar pType = typeof( prim ),\n\t\t\t\tret = [],\n\t\t\t\tsel;\n\n\t\t// return an empty shoestring object\n\t\tif( !prim ){\n\t\t\treturn new Shoestring( ret );\n\t\t}\n\n\t\t// ready calls\n\t\tif( prim.call ){\n\t\t\treturn shoestring.ready( prim );\n\t\t}\n\n\t\t// handle re-wrapping shoestring objects\n\t\tif( prim.constructor === Shoestring && !sec ){\n\t\t\treturn prim;\n\t\t}\n\n\t\t// if string starting with <, make html\n\t\tif( pType === \"string\" && prim.indexOf( \"<\" ) === 0 ){\n\t\t\tvar dfrag = doc.createElement( \"div\" );\n\n\t\t\tdfrag.innerHTML = prim;\n\n\t\t\t// TODO depends on children (circular)\n\t\t\treturn shoestring( dfrag ).children().each(function(){\n\t\t\t\tdfrag.removeChild( this );\n\t\t\t});\n\t\t}\n\n\t\t// if string, it's a selector, use qsa\n\t\tif( pType === \"string\" ){\n\t\t\tif( sec ){\n\t\t\t\treturn shoestring( sec ).find( prim );\n\t\t\t}\n\n\t\t\t\tsel = doc.querySelectorAll( prim );\n\n\t\t\treturn new Shoestring( sel, prim );\n\t\t}\n\n\t\t// array like objects or node lists\n\t\tif( Object.prototype.toString.call( pType ) === '[object Array]' ||\n\t\t\t\t(win.NodeList && prim instanceof win.NodeList) ){\n\n\t\t\treturn new Shoestring( prim, prim );\n\t\t}\n\n\t\t// if it's an array, use all the elements\n\t\tif( prim.constructor === Array ){\n\t\t\treturn new Shoestring( prim, prim );\n\t\t}\n\n\t\t// otherwise assume it's an object the we want at an index\n\t\treturn new Shoestring( [prim], prim );\n\t}\n\n\tvar Shoestring = function( ret, prim ) {\n\t\tthis.length = 0;\n\t\tthis.selector = prim;\n\t\tshoestring.merge(this, ret);\n\t};\n\n\t// TODO only required for tests\n\tShoestring.prototype.reverse = [].reverse;\n\n\t// For adding element set methods\n\tshoestring.fn = Shoestring.prototype;\n\n\tshoestring.Shoestring = Shoestring;\n\n\t// For extending objects\n\t// TODO move to separate module when we use prototypes\n\tshoestring.extend = function( first, second ){\n\t\tfor( var i in second ){\n\t\t\tif( second.hasOwnProperty( i ) ){\n\t\t\t\tfirst[ i ] = second[ i ];\n\t\t\t}\n\t\t}\n\n\t\treturn first;\n\t};\n\n\t// taken directly from jQuery\n\tshoestring.merge = function( first, second ) {\n\t\tvar len, j, i;\n\n\t\tlen = +second.length,\n\t\tj = 0,\n\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t};\n\n\t// expose\n\twin.shoestring = shoestring;\n\n\n\n\t/**\n\t * Make an HTTP request to a url.\n\t *\n\t * **NOTE** the following options are supported:\n\t *\n\t * - *method* - The HTTP method used with the request. Default: `GET`.\n\t * - *data* - Raw object with keys and values to pass with request as query params. Default `null`.\n\t * - *headers* - Set of request headers to add. Default `{}`.\n\t * - *async* - Whether the opened request is asynchronouse. Default `true`.\n\t * - *success* - Callback for successful request and response. Passed the response data.\n\t * - *error* - Callback for failed request and response.\n\t * - *cancel* - Callback for cancelled request and response.\n\t *\n\t * @param {string} url The url to request.\n\t * @param {object} options The options object, see Notes.\n\t * @return shoestring\n\t * @this shoestring\n\t */\n\n\tshoestring.ajax = function( url, options ) {\n\t\tvar params = \"\", req = new XMLHttpRequest(), settings, key;\n\n\t\tsettings = shoestring.extend( {}, shoestring.ajax.settings );\n\n\t\tif( options ){\n\t\t\tshoestring.extend( settings, options );\n\t\t}\n\n\t\tif( !url ){\n\t\t\turl = settings.url;\n\t\t}\n\n\t\tif( !req || !url ){\n\t\t\treturn;\n\t\t}\n\n\t\t// create parameter string from data object\n\t\tif( settings.data ){\n\t\t\tfor( key in settings.data ){\n\t\t\t\tif( settings.data.hasOwnProperty( key ) ){\n\t\t\t\t\tif( params !== \"\" ){\n\t\t\t\t\t\tparams += \"&\";\n\t\t\t\t\t}\n\t\t\t\t\tparams += encodeURIComponent( key ) + \"=\" +\n\t\t\t\t\t\tencodeURIComponent( settings.data[key] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// append params to url for GET requests\n\t\tif( settings.method === \"GET\" && params ){\n\t\t\t\n\t\t\turl += \"?\" + params;\n\t\t}\n\n\t\treq.open( settings.method, url, settings.async );\n\n\t\tif( req.setRequestHeader ){\n\t\t\treq.setRequestHeader( \"X-Requested-With\", \"XMLHttpRequest\" );\n\n\t\t\t// Set 'Content-type' header for POST requests\n\t\t\tif( settings.method === \"POST\" && params ){\n\t\t\t\treq.setRequestHeader( \"Content-type\", \"application/x-www-form-urlencoded\" );\n\t\t\t}\n\n\t\t\tfor( key in settings.headers ){\n\t\t\t\tif( settings.headers.hasOwnProperty( key ) ){\n\t\t\t\t\treq.setRequestHeader(key, settings.headers[ key ]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treq.onreadystatechange = function () {\n\t\t\tif( req.readyState === 4 ){\n\t\t\t\t// Trim the whitespace so shoestring('