{"version":3,"sources":["webpack:///scripts/site__scf001--c665298f27eec3d51680.js","webpack:///./client/src/core/vendor/photoswipe/photoswipe-ui-default.js","webpack:///./client/src/core/vendor/photoswipe/photoswipe.js","webpack:///./client/src/site__scf001/components/site/sprites nonrecursive \\.svg$","webpack:///./client/src/core/plugins/lib/fn.js","webpack:///./client/src/core/plugins/lib/index.js","webpack:///./client/src/core/plugins/lib/objects.js","webpack:///./client/src/core/plugins/lib/selectors.js","webpack:///./client/src/core/plugins/lib/strings.js","webpack:///./client/src/site__scf001/components/blocks/comparison-table/index.js","webpack:///./client/src/site__scf001/components/blocks/gallery/index.js","webpack:///./client/src/site__scf001/components/blocks/image-gallery/index.js","webpack:///./client/src/site__scf001/components/blocks/index.js","webpack:///./client/src/site__scf001/components/blocks/sales-block/index.js","webpack:///./client/src/site__scf001/components/index.js","webpack:///./client/src/site__scf001/components/search/global-search/index.js","webpack:///./client/src/site__scf001/components/search/global-search/search-form-collapsible.js","webpack:///./client/src/site__scf001/components/search/index.js","webpack:///./client/src/site__scf001/components/site-header/header/header-controller.js","webpack:///./client/src/site__scf001/components/site-header/header/index.js","webpack:///./client/src/site__scf001/components/site-header/index.js","webpack:///./client/src/site__scf001/components/site/index.js","webpack:///./client/src/site__scf001/components/site/sprites/index.js","webpack:///./client/src/site__scf001/components/tab-form/index.js","webpack:///./client/src/site__scf001/components/wysiwyg/index.js","webpack:///./client/src/site__scf001/components/wysiwyg/tables.js","webpack:///./client/src/site__scf001/components/wysiwyg/video-block.js","webpack:///./client/src/site__scf001/index.js","webpack:///./client/src/site__scf001/utilities/a11y__focus.js","webpack:///./client/src/site__scf001/utilities/index.js","webpack:///./node_modules/ally.js/src/event/shadow-focus.js","webpack:///./node_modules/ally.js/src/get/active-elements.js","webpack:///./node_modules/ally.js/src/get/shadow-host-parents.js","webpack:///./node_modules/ally.js/src/get/shadow-host.js","webpack:///./node_modules/ally.js/src/is/shadowed.js","webpack:///./node_modules/ally.js/src/observe/interaction-type.js","webpack:///./node_modules/ally.js/src/style/focus-source.js","webpack:///./node_modules/ally.js/src/util/context-to-element.js","webpack:///./node_modules/ally.js/src/util/decorate-service.js","webpack:///./node_modules/ally.js/src/util/node-array.js","webpack:///./node_modules/ally.js/src/util/toggle-class.js","webpack:///./node_modules/debug/node_modules/ms/index.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/common.js","webpack:///./node_modules/process/browser.js","webpack:///./client/src/site__scf001/favicons/html_code.html","webpack:///./client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg","webpack:///./client/src/site__scf001/components/site/sprites/SCF-logo.svg","webpack:///./client/src/site__scf001/components/site/sprites/add.svg","webpack:///./client/src/site__scf001/components/site/sprites/alert.svg","webpack:///./client/src/site__scf001/components/site/sprites/anchor-down.svg","webpack:///./client/src/site__scf001/components/site/sprites/anchor-up.svg","webpack:///./client/src/site__scf001/components/site/sprites/arrow-left.svg","webpack:///./client/src/site__scf001/components/site/sprites/arrow-right.svg","webpack:///./client/src/site__scf001/components/site/sprites/article.svg","webpack:///./client/src/site__scf001/components/site/sprites/australia.svg","webpack:///./client/src/site__scf001/components/site/sprites/calendar.svg","webpack:///./client/src/site__scf001/components/site/sprites/check-circle-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/check-circle.svg","webpack:///./client/src/site__scf001/components/site/sprites/check.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-down.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-left.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-right.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-up.svg","webpack:///./client/src/site__scf001/components/site/sprites/choose-container-white.svg","webpack:///./client/src/site__scf001/components/site/sprites/clock.svg","webpack:///./client/src/site__scf001/components/site/sprites/close-circle-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/close-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/comparison-check.svg","webpack:///./client/src/site__scf001/components/site/sprites/comparison-uncheck.svg","webpack:///./client/src/site__scf001/components/site/sprites/container-simple.svg","webpack:///./client/src/site__scf001/components/site/sprites/container.svg","webpack:///./client/src/site__scf001/components/site/sprites/dot-scf.svg","webpack:///./client/src/site__scf001/components/site/sprites/dot.svg","webpack:///./client/src/site__scf001/components/site/sprites/download.svg","webpack:///./client/src/site__scf001/components/site/sprites/edit.svg","webpack:///./client/src/site__scf001/components/site/sprites/email.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-current.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-default.svg","webpack:///./client/src/site__scf001/components/site/sprites/expand.svg","webpack:///./client/src/site__scf001/components/site/sprites/fax.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-container.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-flag.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-handshake.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-happy.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-idea.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-padlock.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-phone.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-product-selector.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-shipping.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-thinking.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-tick.svg","webpack:///./client/src/site__scf001/components/site/sprites/hamburger.svg","webpack:///./client/src/site__scf001/components/site/sprites/info.svg","webpack:///./client/src/site__scf001/components/site/sprites/map.svg","webpack:///./client/src/site__scf001/components/site/sprites/menu-close.svg","webpack:///./client/src/site__scf001/components/site/sprites/menu-open.svg","webpack:///./client/src/site__scf001/components/site/sprites/minus.svg","webpack:///./client/src/site__scf001/components/site/sprites/money.svg","webpack:///./client/src/site__scf001/components/site/sprites/nz-truck.svg","webpack:///./client/src/site__scf001/components/site/sprites/person.svg","webpack:///./client/src/site__scf001/components/site/sprites/phone-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/phone-outline.svg","webpack:///./client/src/site__scf001/components/site/sprites/pin.svg","webpack:///./client/src/site__scf001/components/site/sprites/play.svg","webpack:///./client/src/site__scf001/components/site/sprites/plus.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-accommodation.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-chemicals.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dimensions.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dont-mind.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-entrance-end.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-entrance-side.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-grain.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-liquid.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-palletised.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-20.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-40.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-44.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-48.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-powder.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-refrigerated.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-selector-feature.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step1.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step2.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step3.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-storage.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-transport.svg","webpack:///./client/src/site__scf001/components/site/sprites/question.svg","webpack:///./client/src/site__scf001/components/site/sprites/quote.svg","webpack:///./client/src/site__scf001/components/site/sprites/remove.svg","webpack:///./client/src/site__scf001/components/site/sprites/rewind.svg","webpack:///./client/src/site__scf001/components/site/sprites/search-complex.svg","webpack:///./client/src/site__scf001/components/site/sprites/search-simple.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-facebook.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-instagram.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-linkedin.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-twitter.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-youtube.svg","webpack:///./client/src/site__scf001/components/site/sprites/spinner.svg","webpack:///./client/src/site__scf001/components/site/sprites/star.svg","webpack:///./client/src/site__scf001/components/site/sprites/talk.svg","webpack:///external \"jQuery\""],"names":["webpackJsonp","/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js","module","exports","__webpack_require__","root","factory","this","pswp","framework","_fullscrenAPI","_controls","_captionContainer","_fakeCaptionContainer","_indexIndicator","_shareButton","_shareModal","_initalCloseOnScrollValue","_isIdle","_listen","_loadingIndicator","_loadingIndicatorHidden","_loadingIndicatorTimeout","_galleryHasOneSlide","_options","_blockControlsTap","_blockControlsTapTimeout","_idleInterval","_idleTimer","ui","_overlayUIUpdated","_controlsVisible","_shareModalHidden","_defaultUIOptions","barsSize","top","bottom","closeElClasses","timeToIdle","timeToIdleOutside","loadingIndicatorDelay","addCaptionHTMLFn","item","captionEl","title","children","innerHTML","closeEl","fullscreenEl","zoomEl","shareEl","counterEl","arrowEl","preloaderEl","tapToClose","tapToToggleControls","clickToCloseNonZoomable","shareButtons","id","label","url","download","getImageURLForShare","currItem","src","getPageURLForShare","window","location","href","getTextForShare","indexIndicatorSep","fitControlsWidth","_onControlsTap","e","event","mouseUsed","_onIdleMouseMove","uiElement","found","target","srcElement","clickedClass","getAttribute","i","_uiElements","length","onTap","indexOf","name","stopPropagation","tapDelay","features","isOldAndroid","setTimeout","_fitControlsInViewport","likelyTouchDevice","screen","width","_togglePswpClass","el","cName","add","_countNumItems","hasOneSlide","getNumItemsFn","_toggleShareModalClass","_toggleShareModal","removeClass","addClass","_updateShareURLs","_openWindowPopup","shout","hasAttribute","open","Math","round","shareButtonData","shareURL","image_url","page_url","share_text","shareButtonOut","replace","encodeURIComponent","parseShareButtonOut","onclick","_hasCloseClass","hasClass","_idleIncrement","clearTimeout","setIdle","_onMouseLeaveWindow","from","relatedTarget","toElement","nodeName","_setupFullscreenAPI","getFullscreenAPI","bind","document","eventK","updateFullscreen","template","_setupLoadingIndicator","_toggleLoadingIndicator","loading","allowProgressiveImg","img","naturalWidth","index","hide","_applyNavBarGaps","gap","vGap","bars","createEl","appendChild","insertBefore","captionSize","clientHeight","parseInt","_setupIdle","setInterval","_setupHidingControlsDuringGestures","now","hideControls","showControls","pinchControlsHidden","option","onInit","toggleDesktopZoom","close","prev","next","isFullscreen","exit","enter","_setupUIElements","classAttr","loopThroughChildElements","sChildren","l","className","a","topBar","getChildByClass","init","extend","options","scrollWrap","listen","update","point","initialZoomLevel","getZoomLevel","zoomTo","getDoubleTapZoom","isDown","preventObj","t","type","test","tagName","prevent","onGlobalTap","onMouseOver","clearInterval","unbind","hideAnimationDuration","removeChild","showAnimationDuration","isIdle","updateIndexIndicator","setScrollOffset","getScrollY","getCurrentIndex","detail","pointerType","fitRatio","releasePoint","supportsFullscreen","d","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","api","dE","documentElement","tF","requestFullscreen","enterK","exitK","elementK","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","closeOnScroll","Element","ALLOW_KEYBOARD_INPUT","/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js","UiClass","items","listener","methodName","split","isArray","obj","Array","classes","tag","createElement","yOffset","pageYOffset","undefined","scrollTop","reg","RegExp","parentEl","childClassName","node","firstChild","nextSibling","arraySearch","array","value","key","o1","o2","preventOverwrite","prop","hasOwnProperty","easing","sine","out","k","sin","PI","inOut","cos","cubic","detectFeatures","helperEl","helperStyle","style","vendor","oldIE","all","addEventListener","touch","requestAnimationFrame","raf","caf","cancelAnimationFrame","pointerEvent","navigator","msPointerEnabled","ua","userAgent","platform","v","match","isOldIOSPhone","androidversion","parseFloat","androidVersion","isMobileOpera","styleCheckItem","styleName","styleChecks","vendors","charAt","toUpperCase","slice","toLowerCase","lastTime","fn","currTime","Date","getTime","timeToCall","max","svg","createElementNS","createSVGRect","evName","_handleEv","handleEvent","call","self","allowPanToNext","spacing","bgOpacity","loop","pinchToClose","closeOnVerticalDrag","verticalDragRange","showHideOpacity","focus","escKey","arrowKeys","mainScrollEndFriction","panEndFriction","isClickableElement","isMouseClick","maxSpreadZoom","modal","scaleMode","_isOpen","_isDestroying","_closedByScroll","_currentItemIndex","_containerStyle","_containerShiftIndex","_upMoveEvents","_downEvents","_globalEventHandlers","_currZoomLevel","_startZoomLevel","_translatePrefix","_translateSufix","_updateSizeInterval","_itemsNeedUpdate","_itemHolders","_prevItemIndex","_dragStartEvent","_dragMoveEvent","_dragEndEvent","_dragCancelEvent","_transformKey","_pointerEventEnabled","_likelyTouchDevice","_requestAF","_cancelAF","_initalClassName","_initalWindowScrollY","_oldIE","_currentWindowScrollY","_features","_orientationChangeTimeout","_gestureStartTime","_gestureCheckSpeedTime","_releaseAnimData","_isZoomingIn","_verticalDragInitiated","_oldAndroidTouchEndTimeout","_isDragging","_isMultitouch","_zoomStarted","_moved","_dragAnimFrame","_mainScrollShifted","_currentPoints","_isZooming","_currPointsDistance","_startPointsDistance","_currPanBounds","_currZoomElementStyle","_mainScrollAnimating","_direction","_isFirstMove","_opacityChanged","_bgOpacity","_wasOverInitialZoom","_tempCounter","_getEmptyPoint","x","y","_currPanDist","_startPanOffset","_panOffset","_viewportSize","_currPositionIndex","_offset","_slideSize","_indexDiff","_isFixedPosition","_modules","_windowVisibleSize","_renderMaxResolution","_registerModule","publicMethods","push","_getLoopedId","numSlides","_getNumItems","_listeners","_shout","listeners","args","prototype","arguments","shift","apply","_getCurrentTime","_applyBgOpacity","opacity","bg","_applyZoomTransform","styleObj","zoom","_applyCurrentZoomPan","allowRenderResolution","_setImageSize","_applyZoomPanToItem","container","initialPosition","_setTranslateX","elStyle","_moveMainScroll","dragging","newSlideIndexOffset","delta","_mainScrollPos","_calculatePanOffset","axis","zoomLevel","m","_midZoomPoint","_equalizePoints","p1","p2","_roundPoint","p","_mouseMoveTimeout","_onFirstMouseMove","_bindEvents","transform","_unbindEvents","scroll","_calculatePanBounds","bounds","_calculateItemSize","_getMinZoomLevel","_getMaxZoomLevel","w","_modifyDestPanOffset","destPanBounds","destPanOffset","destZoomLevel","min","_setupTransforms","allow3dTransform","perspective","left","zoomRatio","s","h","height","_onKeyDown","keydownAction","keyCode","ctrlKey","altKey","shiftKey","metaKey","preventDefault","returnValue","_onGlobalClick","_updatePageScrollOffset","_animations","_numAnimations","_stopAnimation","_registerStartAnimation","_stopAllAnimations","_animateProp","b","endProp","easingFn","onUpdate","onComplete","startAnimTime","animloop","viewportSize","isMainScrollAnimating","isDragging","isZooming","applyZoomPan","panX","panY","itemHolders","wrap","display","resize","updateSize","orientationchange","clientWidth","keydown","click","oldPhone","animationName","isNaN","_getItemAt","setAttribute","position","rootClasses","mainClass","setContent","updateCurrItem","_showOrHide","destroy","_showOrHideTimeout","_stopDragUpdateLoop","panTo","force","goTo","diff","updateCurrZoomItem","emulateSetContent","zoomElement","center","invalidateCurrItems","needsUpdate","beforeAnimation","tempHolder","diffAbs","abs","NUM_HOLDERS","pop","unshift","prevItem","windowScrollY","innerWidth","innerHeight","holder","hIndex","cleanSlide","centerPoint","speed","updateFn","initialPanOffset","_currPoint","_startPoint","_currPointers","_startMainScrollPos","_posPoints","_tempPoint","_currZoomedItemIndex","_centerPoint","_lastReleaseTime","_currCenterPoint","_isEqualPoints","_isNearbyPoints","touch0","touch1","_calculatePointsDistance","sqrt","_dragUpdateLoop","_renderMovement","_canPan","_closestElement","parentNode","_preventObj","_preventDefaultEventBehaviour","_convertTouchToPoint","pageX","pageY","identifier","_findCenterOfPoints","pCenter","_pushPosPoint","time","o","_calculateVerticalDragOpacityRatio","_ePoint1","_ePoint2","_tempPointsArr","_getTouchPoints","forEach","touches","_panOrMoveMainScroll","panFriction","startOverDiff","newPanPos","newMainScrollPos","newOffset","dir","newMainScrollPosition","mainScrollDiff","_onDragStart","button","_initialZoomRunning","pointerIndex","pointerId","startPointsList","numPoints","_onDragMove","touchesList","pointsDistance","_calculateZoomLevel","zoomFriction","minZoomLevel","maxZoomLevel","minusDiff","percent","opacityRatio","mainScrollChanged","_onDragRelease","splice","MSPOINTER_TYPES","4","2","3","gestureType","touchList","changedTouches","releaseTimeDiff","_initDragReleaseAnimationData","calculateSwipeSpeed","initalPanY","initialBgOpacity","itemChanged","_finishSwipeMainScrollGesture","_completeZoomGesture","_completePanGesture","lastFlickDuration","tempReleasePos","lastFlickOffset","lastFlickDist","lastFlickSpeed","slowDownRatio","slowDownRatioReverse","speedDecelerationRatio","speedDecelerationRatioAbs","distanceOffset","backAnimDestination","backAnimStarted","calculateOverBoundsAnimOffset","pos","calculateAnimOffset","timeDiff","panAnimLoop","zoomPan","lastNow","animData","itemsDiff","totalShiftDist","isFastLastFlick","nextCircle","finishAnimDuration","animateToX","animateToDist","touchesDistance","initialOpacity","initGestures","addEventNames","pref","down","move","up","cancel","maxTouchPoints","msMaxTouchPoints","mousedown","mousemove","mouseup","_items","_initialContentSet","_initialIsLoop","completeFn","thumbBounds","initialLayout","getThumbBoundsFn","duration","removeAttribute","closeWithRaf","fadeEverything","loadError","miniImg","webkitBackfaceVisibility","initalBgOpacity","_tempPanAreaSize","_imagesToAppendPool","_controllerDefaultOptions","errorMsg","forceProgressiveLoading","preload","_getZeroBounds","_calculateSingleItemPanBounds","realPanElementW","realPanElementH","isInitial","hRatio","vRatio","_appendImage","baseDiv","preventAnimation","keepPlaceholder","imageAppended","loaded","placeholder","_preloadImage","loadComplete","onload","onerror","_checkForError","cleanUp","maxRes","lastChild","_appendImagesPool","poolItem","clearPlaceholder","lazyLoadItem","initController","getItemAt","isNext","preloadBefore","preloadAfter","preloader","html","placeholderClassName","msrc","tapTimer","tapReleasePoint","_dispatchTapEvent","origEvent","createEvent","eDetail","initCustomEvent","dispatchEvent","initTap","onTapStart","onTapRelease","p0","_wheelDelta","initDesktopZoom","setupDesktopZoom","events","handleMouseWheel","mouseZoomedIn","hasDraggingClass","updateZoomable","removeDraggingClass","deltaY","deltaMode","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","newPanX","newPanY","doubleTapZoomLevel","zoomOut","_historyUpdateTimeout","_hashChangeTimeout","_hashAnimCheckTimeout","_hashChangedByScript","_hashChangedByHistory","_hashReseted","_initialHash","_historyChanged","_closedFromURL","_urlChangedOnce","_windowLoc","_supportsPushState","_historyDefaultOptions","history","galleryUID","_getHash","hash","substring","_cleanHistoryTimeouts","_parseItemIndexFromURL","params","vars","pair","galleryPIDs","searchfor","pid","_updateHash","newHash","newURL","initHistory","updateURL","onHashChange","returnToOriginal","back","pushState","pathname","search","/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\.svg$/","webpackContext","req","webpackContextResolve","map","Error","keys","Object","resolve","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/fn.js","debounce","func","wait","immediate","timeout","context","later","callNow","defineProperty","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js","_interopRequireWildcard","__esModule","newObj","default","_interopRequireDefault","plugin","pluginName","klass","shortHand","formattedPluginName","toCamelCase","dataName","$","$bus","subscribe","publish","data","trigger","$util","objects","strings","selectors","inViewport","elm","rect","getBoundingClientRect","viewHeight","each","$this","overrides","elementOptions","filter","reduce","result","path","log","instance","DEFAULTS","$utils","jquery","defaults","_typeof","Symbol","iterator","constructor","_jquery2","_jquery","_debug2","_debug","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","element","filterFn","transformFn","output","attrs","get","ZERO","attributes","attribute","Boolean","objectPath","val","delimiter","props","final","part","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/selectors.js","selectorPattern","directives","join","selectTarget","selector","$element","$target","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","closest","find","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/strings.js","preserveCamelCase","str","isLastCharLower","isLastCharUpper","isLastLastCharUpper","c","substr","trim","tmpl","$tmpl","templateString","attr","text","mustache","invert","ctx","render","inverted","childCode","depth","assign","code","z","raw","comment","isRaw","partial","Option","booleanify","lower","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/comparison-table/index.js","ready","NO_ICON_TABLE_CELL_LOCATOR","getElementsByClassName","on","toggleClass","noIconCells","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/gallery/index.js","initGalleryBlock","galleryContainerSelector","containerElement","flickityElement","Flickity","eq","fadeIn","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/image-gallery/index.js","PhotoSwipe","require","PhotoSwipeUIDefault","gallerySelector","div","getElementsByTagName","parseThumbnailElements","figureEl","linkEl","size","thumbElements","childNodes","numNodes","nodeType","onThumbnailsClick","eTarget","clickedListItem","clickedGallery","numChildNodes","nodeIndex","openPhotoSwipe","galleryElement","disableAnimation","fromURL","gallery","pswpElement","querySelectorAll","thumbnail","pageYScroll","j","galleryElements","hashData","gid","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/sales-block/index.js","displayValue","select","after","one","isFirst","showToggle","includes","not","show","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/page/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/search-form-collapsible.js","_classCallCheck","Constructor","TypeError","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_lib2","_lib","SearchFormCollapsible","enabled","formElements","elementsSelector","watch","toggle","disable","removeAttr","handler","enable","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/header-controller.js","HeaderController","isSearchCollapsible","searchComponentSelector","searchComponent","tryConcealSearch","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/index.js","files","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/tab-form/index.js","tabForm","querySelector","tabHeader","tabHeaderElements","tabBody","tabBodyElements","classList","remove","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/tables.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/video-block.js","videoContainers","playButton","video","paused","play","pause","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/a11y__focus.js","_focusSource","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/event/shadow-focus.js","_activeElements2","_activeElements","_decorateService2","_decorateService","engage","disengage","createShadowRoot","blurTimer","blurElement","handleElementBlurEvent","stopHandleElementBlurEvent","clearImmediate","setImmediate","handleFocusChange","observeElementBlurEvent","removeEventListener","_active","shadowFocusEvent","CustomEvent","bubbles","cancelable","elements","active","hosts","handleDocumentFocusEvent","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/active-elements.js","walkToShadowedElement","list","activeElement","shadowRoot","walkFromShadowedElement","concat","body","_shadowed2","_shadowed","_shadowHostParents2","_shadowHostParents","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host-parents.js","_shadowHost2","_shadowHost","_contextToElement2","_contextToElement","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host.js","DOCUMENT_FRAGMENT_NODE","host","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/is/shadowed.js","resolveDocument","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/observe/interaction-type.js","handleWindowBlurEvent","_activePointers","_activeKeys","handlePointerStartEvent","isPrimary","handlePointerEndEvent","handleKeyStartEvent","which","handleKeyEndEvent","getInteractionType","pointer","pointerStartEvents","pointerEndEvents","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/style/focus-source.js","handleFocusEvent","source","focusEventName","interactionType","interactionTypeHandler","lock","blurEventName","used","current","getCurrentFocusSource","getUsedFocusSource","lockFocusSource","unlockFocusSource","shadowHandle","unlock","_shadowFocus2","_shadowFocus","_interactionType2","_interactionType","supportsFocusIn","script","initial","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js","defaultToDocument","Node","DOCUMENT_NODE","ELEMENT_NODE","_nodeArray2","_nodeArray","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js","destruct","instances","_result","initialize","noop","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/node-array.js","input","String","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/toggle-class.js","getClassNames","classNames","idx","shouldHaveClass","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/node_modules/ms/index.js","parse","exec","n","fmtShort","ms","msAbs","fmtLong","plural","isPlural","isFinite","long","JSON","stringify","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js","useColors","process","__nwjs","WebkitAppearance","console","firebug","exception","table","$1","formatArgs","namespace","humanize","color","lastC","_console","save","namespaces","storage","setItem","removeItem","error","load","r","getItem","env","DEBUG","_typeof2","localStorage","colors","formatters","message","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/common.js","setup","selectColor","charCodeAt","createDebug","debug","_len","_key","curr","Number","prevTime","coerce","format","formatter","names","skips","len","stack","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/process/browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","nextTick","browser","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","/home/vsts/work/1/s/src/SCF/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--14-0!/home/vsts/work/1/s/src/SCF/node_modules/css-loader/index.js??ref--14-1!/home/vsts/work/1/s/src/SCF/node_modules/postcss-loader/lib/index.js??ref--14-2!/home/vsts/work/1/s/src/SCF/node_modules/sass-loader/lib/loader.js??ref--14-3!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.scss","/home/vsts/work/1/s/src/SCF/node_modules/file-loader/dist/cjs.js??ref--2-0!/home/vsts/work/1/s/src/SCF/node_modules/extract-loader/lib/extractLoader.js!/home/vsts/work/1/s/src/SCF/node_modules/html-loader/index.js??ref--2-2!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/favicons/html_code.html","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg","viewBox","toString","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg","external \"jQuery\"","jQuery","multi /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.js /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.scss"],"mappings":"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","file":"scripts/site__scf001--c665298f27eec3d51680.js","sourcesContent":["webpackJsonp([\"site__scf001\"],{\n\n/***/ \"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n/**\n*\n* UI on top of main sliding area (caption, arrows, close button, etc.).\n* Built just using public methods/properties of PhotoSwipe.\n* \n*/\n(function (root, factory) { \n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipeUI_Default = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\n\n\nvar PhotoSwipeUI_Default =\n function(pswp, framework) {\n\n\tvar ui = this;\n\tvar _overlayUIUpdated = false,\n\t\t_controlsVisible = true,\n\t\t_fullscrenAPI,\n\t\t_controls,\n\t\t_captionContainer,\n\t\t_fakeCaptionContainer,\n\t\t_indexIndicator,\n\t\t_shareButton,\n\t\t_shareModal,\n\t\t_shareModalHidden = true,\n\t\t_initalCloseOnScrollValue,\n\t\t_isIdle,\n\t\t_listen,\n\n\t\t_loadingIndicator,\n\t\t_loadingIndicatorHidden,\n\t\t_loadingIndicatorTimeout,\n\n\t\t_galleryHasOneSlide,\n\n\t\t_options,\n\t\t_defaultUIOptions = {\n\t\t\tbarsSize: {top:44, bottom:'auto'},\n\t\t\tcloseElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'], \n\t\t\ttimeToIdle: 4000, \n\t\t\ttimeToIdleOutside: 1000,\n\t\t\tloadingIndicatorDelay: 1000, // 2s\n\t\t\t\n\t\t\taddCaptionHTMLFn: function(item, captionEl /*, isFake */) {\n\t\t\t\tif(!item.title) {\n\t\t\t\t\tcaptionEl.children[0].innerHTML = '';\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tcaptionEl.children[0].innerHTML = item.title;\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tcloseEl:true,\n\t\t\tcaptionEl: true,\n\t\t\tfullscreenEl: true,\n\t\t\tzoomEl: true,\n\t\t\tshareEl: true,\n\t\t\tcounterEl: true,\n\t\t\tarrowEl: true,\n\t\t\tpreloaderEl: true,\n\n\t\t\ttapToClose: false,\n\t\t\ttapToToggleControls: true,\n\n\t\t\tclickToCloseNonZoomable: true,\n\n\t\t\tshareButtons: [\n\t\t\t\t{id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},\n\t\t\t\t{id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},\n\t\t\t\t{id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/'+\n\t\t\t\t\t\t\t\t\t\t\t\t\t'?url={{url}}&media={{image_url}}&description={{text}}'},\n\t\t\t\t{id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}\n\t\t\t],\n\t\t\tgetImageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.src || '';\n\t\t\t},\n\t\t\tgetPageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn window.location.href;\n\t\t\t},\n\t\t\tgetTextForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.title || '';\n\t\t\t},\n\t\t\t\t\n\t\t\tindexIndicatorSep: ' / ',\n\t\t\tfitControlsWidth: 1200\n\n\t\t},\n\t\t_blockControlsTap,\n\t\t_blockControlsTapTimeout;\n\n\n\n\tvar _onControlsTap = function(e) {\n\t\t\tif(_blockControlsTap) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\n\t\t\te = e || window.event;\n\n\t\t\tif(_options.timeToIdle && _options.mouseUsed && !_isIdle) {\n\t\t\t\t// reset idle timer\n\t\t\t\t_onIdleMouseMove();\n\t\t\t}\n\n\n\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\tuiElement,\n\t\t\t\tclickedClass = target.getAttribute('class') || '',\n\t\t\t\tfound;\n\n\t\t\tfor(var i = 0; i < _uiElements.length; i++) {\n\t\t\t\tuiElement = _uiElements[i];\n\t\t\t\tif(uiElement.onTap && clickedClass.indexOf('pswp__' + uiElement.name ) > -1 ) {\n\t\t\t\t\tuiElement.onTap();\n\t\t\t\t\tfound = true;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(found) {\n\t\t\t\tif(e.stopPropagation) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\t_blockControlsTap = true;\n\n\t\t\t\t// Some versions of Android don't prevent ghost click event \n\t\t\t\t// when preventDefault() was called on touchstart and/or touchend.\n\t\t\t\t// \n\t\t\t\t// This happens on v4.3, 4.2, 4.1, \n\t\t\t\t// older versions strangely work correctly, \n\t\t\t\t// but just in case we add delay on all of them)\t\n\t\t\t\tvar tapDelay = framework.features.isOldAndroid ? 600 : 30;\n\t\t\t\t_blockControlsTapTimeout = setTimeout(function() {\n\t\t\t\t\t_blockControlsTap = false;\n\t\t\t\t}, tapDelay);\n\t\t\t}\n\n\t\t},\n\t\t_fitControlsInViewport = function() {\n\t\t\treturn !pswp.likelyTouchDevice || _options.mouseUsed || screen.width > _options.fitControlsWidth;\n\t\t},\n\t\t_togglePswpClass = function(el, cName, add) {\n\t\t\tframework[ (add ? 'add' : 'remove') + 'Class' ](el, 'pswp__' + cName);\n\t\t},\n\n\t\t// add class when there is just one item in the gallery\n\t\t// (by default it hides left/right arrows and 1ofX counter)\n\t\t_countNumItems = function() {\n\t\t\tvar hasOneSlide = (_options.getNumItemsFn() === 1);\n\n\t\t\tif(hasOneSlide !== _galleryHasOneSlide) {\n\t\t\t\t_togglePswpClass(_controls, 'ui--one-slide', hasOneSlide);\n\t\t\t\t_galleryHasOneSlide = hasOneSlide;\n\t\t\t}\n\t\t},\n\t\t_toggleShareModalClass = function() {\n\t\t\t_togglePswpClass(_shareModal, 'share-modal--hidden', _shareModalHidden);\n\t\t},\n\t\t_toggleShareModal = function() {\n\n\t\t\t_shareModalHidden = !_shareModalHidden;\n\t\t\t\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModalClass();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(!_shareModalHidden) {\n\t\t\t\t\t\tframework.addClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\t\t}\n\t\t\t\t}, 30);\n\t\t\t} else {\n\t\t\t\tframework.removeClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(_shareModalHidden) {\n\t\t\t\t\t\t_toggleShareModalClass();\n\t\t\t\t\t}\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_updateShareURLs();\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t_openWindowPopup = function(e) {\n\t\t\te = e || window.event;\n\t\t\tvar target = e.target || e.srcElement;\n\n\t\t\tpswp.shout('shareLinkClick', e, target);\n\n\t\t\tif(!target.href) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif( target.hasAttribute('download') ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\twindow.open(target.href, 'pswp_share', 'scrollbars=yes,resizable=yes,toolbar=no,'+\n\t\t\t\t\t\t\t\t\t\t'location=yes,width=550,height=420,top=100,left=' + \n\t\t\t\t\t\t\t\t\t\t(window.screen ? Math.round(screen.width / 2 - 275) : 100) );\n\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\t\t\t\n\t\t\treturn false;\n\t\t},\n\t\t_updateShareURLs = function() {\n\t\t\tvar shareButtonOut = '',\n\t\t\t\tshareButtonData,\n\t\t\t\tshareURL,\n\t\t\t\timage_url,\n\t\t\t\tpage_url,\n\t\t\t\tshare_text;\n\n\t\t\tfor(var i = 0; i < _options.shareButtons.length; i++) {\n\t\t\t\tshareButtonData = _options.shareButtons[i];\n\n\t\t\t\timage_url = _options.getImageURLForShare(shareButtonData);\n\t\t\t\tpage_url = _options.getPageURLForShare(shareButtonData);\n\t\t\t\tshare_text = _options.getTextForShare(shareButtonData);\n\n\t\t\t\tshareURL = shareButtonData.url.replace('{{url}}', encodeURIComponent(page_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{image_url}}', encodeURIComponent(image_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{raw_image_url}}', image_url )\n\t\t\t\t\t\t\t\t\t.replace('{{text}}', encodeURIComponent(share_text) );\n\n\t\t\t\tshareButtonOut += '' + \n\t\t\t\t\t\t\t\t\tshareButtonData.label + '';\n\n\t\t\t\tif(_options.parseShareButtonOut) {\n\t\t\t\t\tshareButtonOut = _options.parseShareButtonOut(shareButtonData, shareButtonOut);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_shareModal.children[0].innerHTML = shareButtonOut;\n\t\t\t_shareModal.children[0].onclick = _openWindowPopup;\n\n\t\t},\n\t\t_hasCloseClass = function(target) {\n\t\t\tfor(var i = 0; i < _options.closeElClasses.length; i++) {\n\t\t\t\tif( framework.hasClass(target, 'pswp__' + _options.closeElClasses[i]) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_idleInterval,\n\t\t_idleTimer,\n\t\t_idleIncrement = 0,\n\t\t_onIdleMouseMove = function() {\n\t\t\tclearTimeout(_idleTimer);\n\t\t\t_idleIncrement = 0;\n\t\t\tif(_isIdle) {\n\t\t\t\tui.setIdle(false);\n\t\t\t}\n\t\t},\n\t\t_onMouseLeaveWindow = function(e) {\n\t\t\te = e ? e : window.event;\n\t\t\tvar from = e.relatedTarget || e.toElement;\n\t\t\tif (!from || from.nodeName === 'HTML') {\n\t\t\t\tclearTimeout(_idleTimer);\n\t\t\t\t_idleTimer = setTimeout(function() {\n\t\t\t\t\tui.setIdle(true);\n\t\t\t\t}, _options.timeToIdleOutside);\n\t\t\t}\n\t\t},\n\t\t_setupFullscreenAPI = function() {\n\t\t\tif(_options.fullscreenEl && !framework.features.isOldAndroid) {\n\t\t\t\tif(!_fullscrenAPI) {\n\t\t\t\t\t_fullscrenAPI = ui.getFullscreenAPI();\n\t\t\t\t}\n\t\t\t\tif(_fullscrenAPI) {\n\t\t\t\t\tframework.bind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\t\tui.updateFullscreen();\n\t\t\t\t\tframework.addClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t} else {\n\t\t\t\t\tframework.removeClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_setupLoadingIndicator = function() {\n\t\t\t// Setup loading indicator\n\t\t\tif(_options.preloaderEl) {\n\t\t\t\n\t\t\t\t_toggleLoadingIndicator(true);\n\n\t\t\t\t_listen('beforeChange', function() {\n\n\t\t\t\t\tclearTimeout(_loadingIndicatorTimeout);\n\n\t\t\t\t\t// display loading indicator with delay\n\t\t\t\t\t_loadingIndicatorTimeout = setTimeout(function() {\n\n\t\t\t\t\t\tif(pswp.currItem && pswp.currItem.loading) {\n\n\t\t\t\t\t\t\tif( !pswp.allowProgressiveImg() || (pswp.currItem.img && !pswp.currItem.img.naturalWidth) ) {\n\t\t\t\t\t\t\t\t// show preloader if progressive loading is not enabled, \n\t\t\t\t\t\t\t\t// or image width is not defined yet (because of slow connection)\n\t\t\t\t\t\t\t\t_toggleLoadingIndicator(false); \n\t\t\t\t\t\t\t\t// items-controller.js function allowProgressiveImg\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_toggleLoadingIndicator(true); // hide preloader\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}, _options.loadingIndicatorDelay);\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t\t_listen('imageLoadComplete', function(index, item) {\n\t\t\t\t\tif(pswp.currItem === item) {\n\t\t\t\t\t\t_toggleLoadingIndicator(true);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\t\t},\n\t\t_toggleLoadingIndicator = function(hide) {\n\t\t\tif( _loadingIndicatorHidden !== hide ) {\n\t\t\t\t_togglePswpClass(_loadingIndicator, 'preloader--active', !hide);\n\t\t\t\t_loadingIndicatorHidden = hide;\n\t\t\t}\n\t\t},\n\t\t_applyNavBarGaps = function(item) {\n\t\t\tvar gap = item.vGap;\n\n\t\t\tif( _fitControlsInViewport() ) {\n\t\t\t\t\n\t\t\t\tvar bars = _options.barsSize; \n\t\t\t\tif(_options.captionEl && bars.bottom === 'auto') {\n\t\t\t\t\tif(!_fakeCaptionContainer) {\n\t\t\t\t\t\t_fakeCaptionContainer = framework.createEl('pswp__caption pswp__caption--fake');\n\t\t\t\t\t\t_fakeCaptionContainer.appendChild( framework.createEl('pswp__caption__center') );\n\t\t\t\t\t\t_controls.insertBefore(_fakeCaptionContainer, _captionContainer);\n\t\t\t\t\t\tframework.addClass(_controls, 'pswp__ui--fit');\n\t\t\t\t\t}\n\t\t\t\t\tif( _options.addCaptionHTMLFn(item, _fakeCaptionContainer, true) ) {\n\n\t\t\t\t\t\tvar captionSize = _fakeCaptionContainer.clientHeight;\n\t\t\t\t\t\tgap.bottom = parseInt(captionSize,10) || 44;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgap.bottom = bars.top; // if no caption, set size of bottom gap to size of top\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tgap.bottom = bars.bottom === 'auto' ? 0 : bars.bottom;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// height of top bar is static, no need to calculate it\n\t\t\t\tgap.top = bars.top;\n\t\t\t} else {\n\t\t\t\tgap.top = gap.bottom = 0;\n\t\t\t}\n\t\t},\n\t\t_setupIdle = function() {\n\t\t\t// Hide controls when mouse is used\n\t\t\tif(_options.timeToIdle) {\n\t\t\t\t_listen('mouseUsed', function() {\n\t\t\t\t\t\n\t\t\t\t\tframework.bind(document, 'mousemove', _onIdleMouseMove);\n\t\t\t\t\tframework.bind(document, 'mouseout', _onMouseLeaveWindow);\n\n\t\t\t\t\t_idleInterval = setInterval(function() {\n\t\t\t\t\t\t_idleIncrement++;\n\t\t\t\t\t\tif(_idleIncrement === 2) {\n\t\t\t\t\t\t\tui.setIdle(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, _options.timeToIdle / 2);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t_setupHidingControlsDuringGestures = function() {\n\n\t\t\t// Hide controls on vertical drag\n\t\t\t_listen('onVerticalDrag', function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.95) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else if(!_controlsVisible && now >= 0.95) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Hide controls when pinching to close\n\t\t\tvar pinchControlsHidden;\n\t\t\t_listen('onPinchClose' , function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.9) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t\tpinchControlsHidden = true;\n\t\t\t\t} else if(pinchControlsHidden && !_controlsVisible && now > 0.9) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_listen('zoomGestureEnded', function() {\n\t\t\t\tpinchControlsHidden = false;\n\t\t\t\tif(pinchControlsHidden && !_controlsVisible) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t};\n\n\n\n\tvar _uiElements = [\n\t\t{ \n\t\t\tname: 'caption', \n\t\t\toption: 'captionEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_captionContainer = el; \n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'share-modal', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareModal = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--share', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareButton = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--zoom', \n\t\t\toption: 'zoomEl',\n\t\t\tonTap: pswp.toggleDesktopZoom\n\t\t},\n\t\t{ \n\t\t\tname: 'counter', \n\t\t\toption: 'counterEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_indexIndicator = el;\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--close', \n\t\t\toption: 'closeEl',\n\t\t\tonTap: pswp.close\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--left', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.prev\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--right', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.next\n\t\t},\n\t\t{ \n\t\t\tname: 'button--fs', \n\t\t\toption: 'fullscreenEl',\n\t\t\tonTap: function() { \n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t} else {\n\t\t\t\t\t_fullscrenAPI.enter();\n\t\t\t\t}\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'preloader', \n\t\t\toption: 'preloaderEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_loadingIndicator = el;\n\t\t\t} \n\t\t}\n\n\t];\n\n\tvar _setupUIElements = function() {\n\t\tvar item,\n\t\t\tclassAttr,\n\t\t\tuiElement;\n\n\t\tvar loopThroughChildElements = function(sChildren) {\n\t\t\tif(!sChildren) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar l = sChildren.length;\n\t\t\tfor(var i = 0; i < l; i++) {\n\t\t\t\titem = sChildren[i];\n\t\t\t\tclassAttr = item.className;\n\n\t\t\t\tfor(var a = 0; a < _uiElements.length; a++) {\n\t\t\t\t\tuiElement = _uiElements[a];\n\n\t\t\t\t\tif(classAttr.indexOf('pswp__' + uiElement.name) > -1 ) {\n\n\t\t\t\t\t\tif( _options[uiElement.option] ) { // if element is not disabled from options\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tframework.removeClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\tif(uiElement.onInit) {\n\t\t\t\t\t\t\t\tuiElement.onInit(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//item.style.display = 'block';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tframework.addClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\t//item.style.display = 'none';\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};\n\t\tloopThroughChildElements(_controls.children);\n\n\t\tvar topBar = framework.getChildByClass(_controls, 'pswp__top-bar');\n\t\tif(topBar) {\n\t\t\tloopThroughChildElements( topBar.children );\n\t\t}\n\t};\n\n\n\t\n\n\tui.init = function() {\n\n\t\t// extend options\n\t\tframework.extend(pswp.options, _defaultUIOptions, true);\n\n\t\t// create local link for fast access\n\t\t_options = pswp.options;\n\n\t\t// find pswp__ui element\n\t\t_controls = framework.getChildByClass(pswp.scrollWrap, 'pswp__ui');\n\n\t\t// create local link\n\t\t_listen = pswp.listen;\n\n\n\t\t_setupHidingControlsDuringGestures();\n\n\t\t// update controls when slides change\n\t\t_listen('beforeChange', ui.update);\n\n\t\t// toggle zoom on double-tap\n\t\t_listen('doubleTap', function(point) {\n\t\t\tvar initialZoomLevel = pswp.currItem.initialZoomLevel;\n\t\t\tif(pswp.getZoomLevel() !== initialZoomLevel) {\n\t\t\t\tpswp.zoomTo(initialZoomLevel, point, 333);\n\t\t\t} else {\n\t\t\t\tpswp.zoomTo(_options.getDoubleTapZoom(false, pswp.currItem), point, 333);\n\t\t\t}\n\t\t});\n\n\t\t// Allow text selection in caption\n\t\t_listen('preventDragEvent', function(e, isDown, preventObj) {\n\t\t\tvar t = e.target || e.srcElement;\n\t\t\tif(\n\t\t\t\tt && \n\t\t\t\tt.getAttribute('class') && e.type.indexOf('mouse') > -1 && \n\t\t\t\t( t.getAttribute('class').indexOf('__caption') > 0 || (/(SMALL|STRONG|EM)/i).test(t.tagName) ) \n\t\t\t) {\n\t\t\t\tpreventObj.prevent = false;\n\t\t\t}\n\t\t});\n\n\t\t// bind events for UI\n\t\t_listen('bindEvents', function() {\n\t\t\tframework.bind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.bind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\n\t\t\tif(!pswp.likelyTouchDevice) {\n\t\t\t\tframework.bind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\t\t\t}\n\t\t});\n\n\t\t// unbind events for UI\n\t\t_listen('unbindEvents', function() {\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\n\t\t\tif(_idleInterval) {\n\t\t\t\tclearInterval(_idleInterval);\n\t\t\t}\n\t\t\tframework.unbind(document, 'mouseout', _onMouseLeaveWindow);\n\t\t\tframework.unbind(document, 'mousemove', _onIdleMouseMove);\n\t\t\tframework.unbind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\n\t\t\tif(_fullscrenAPI) {\n\t\t\t\tframework.unbind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_options.hideAnimationDuration = 0;\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t}\n\t\t\t\t_fullscrenAPI = null;\n\t\t\t}\n\t\t});\n\n\n\t\t// clean up things when gallery is destroyed\n\t\t_listen('destroy', function() {\n\t\t\tif(_options.captionEl) {\n\t\t\t\tif(_fakeCaptionContainer) {\n\t\t\t\t\t_controls.removeChild(_fakeCaptionContainer);\n\t\t\t\t}\n\t\t\t\tframework.removeClass(_captionContainer, 'pswp__caption--empty');\n\t\t\t}\n\n\t\t\tif(_shareModal) {\n\t\t\t\t_shareModal.children[0].onclick = null;\n\t\t\t}\n\t\t\tframework.removeClass(_controls, 'pswp__ui--over-close');\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t\tui.setIdle(false);\n\t\t});\n\t\t\n\n\t\tif(!_options.showAnimationDuration) {\n\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t}\n\t\t_listen('initialZoomIn', function() {\n\t\t\tif(_options.showAnimationDuration) {\n\t\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t\t}\n\t\t});\n\t\t_listen('initialZoomOut', function() {\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t});\n\n\t\t_listen('parseVerticalMargin', _applyNavBarGaps);\n\t\t\n\t\t_setupUIElements();\n\n\t\tif(_options.shareEl && _shareButton && _shareModal) {\n\t\t\t_shareModalHidden = true;\n\t\t}\n\n\t\t_countNumItems();\n\n\t\t_setupIdle();\n\n\t\t_setupFullscreenAPI();\n\n\t\t_setupLoadingIndicator();\n\t};\n\n\tui.setIdle = function(isIdle) {\n\t\t_isIdle = isIdle;\n\t\t_togglePswpClass(_controls, 'ui--idle', isIdle);\n\t};\n\n\tui.update = function() {\n\t\t// Don't update UI if it's hidden\n\t\tif(_controlsVisible && pswp.currItem) {\n\t\t\t\n\t\t\tui.updateIndexIndicator();\n\n\t\t\tif(_options.captionEl) {\n\t\t\t\t_options.addCaptionHTMLFn(pswp.currItem, _captionContainer);\n\n\t\t\t\t_togglePswpClass(_captionContainer, 'caption--empty', !pswp.currItem.title);\n\t\t\t}\n\n\t\t\t_overlayUIUpdated = true;\n\n\t\t} else {\n\t\t\t_overlayUIUpdated = false;\n\t\t}\n\n\t\tif(!_shareModalHidden) {\n\t\t\t_toggleShareModal();\n\t\t}\n\n\t\t_countNumItems();\n\t};\n\n\tui.updateFullscreen = function(e) {\n\n\t\tif(e) {\n\t\t\t// some browsers change window scroll position during the fullscreen\n\t\t\t// so PhotoSwipe updates it just in case\n\t\t\tsetTimeout(function() {\n\t\t\t\tpswp.setScrollOffset( 0, framework.getScrollY() );\n\t\t\t}, 50);\n\t\t}\n\t\t\n\t\t// toogle pswp--fs class on root element\n\t\tframework[ (_fullscrenAPI.isFullscreen() ? 'add' : 'remove') + 'Class' ](pswp.template, 'pswp--fs');\n\t};\n\n\tui.updateIndexIndicator = function() {\n\t\tif(_options.counterEl) {\n\t\t\t_indexIndicator.innerHTML = (pswp.getCurrentIndex()+1) + \n\t\t\t\t\t\t\t\t\t\t_options.indexIndicatorSep + \n\t\t\t\t\t\t\t\t\t\t_options.getNumItemsFn();\n\t\t}\n\t};\n\t\n\tui.onGlobalTap = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\tif(_blockControlsTap) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(e.detail && e.detail.pointerType === 'mouse') {\n\n\t\t\t// close gallery if clicked outside of the image\n\t\t\tif(_hasCloseClass(target)) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(framework.hasClass(target, 'pswp__img')) {\n\t\t\t\tif(pswp.getZoomLevel() === 1 && pswp.getZoomLevel() <= pswp.currItem.fitRatio) {\n\t\t\t\t\tif(_options.clickToCloseNonZoomable) {\n\t\t\t\t\t\tpswp.close();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpswp.toggleDesktopZoom(e.detail.releasePoint);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t} else {\n\n\t\t\t// tap anywhere (except buttons) to toggle visibility of controls\n\t\t\tif(_options.tapToToggleControls) {\n\t\t\t\tif(_controlsVisible) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tap to close gallery\n\t\t\tif(_options.tapToClose && (framework.hasClass(target, 'pswp__img') || _hasCloseClass(target)) ) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t}\n\t};\n\tui.onMouseOver = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\t// add class when mouse is over an element that should close the gallery\n\t\t_togglePswpClass(_controls, 'ui--over-close', _hasCloseClass(target));\n\t};\n\n\tui.hideControls = function() {\n\t\tframework.addClass(_controls,'pswp__ui--hidden');\n\t\t_controlsVisible = false;\n\t};\n\n\tui.showControls = function() {\n\t\t_controlsVisible = true;\n\t\tif(!_overlayUIUpdated) {\n\t\t\tui.update();\n\t\t}\n\t\tframework.removeClass(_controls,'pswp__ui--hidden');\n\t};\n\n\tui.supportsFullscreen = function() {\n\t\tvar d = document;\n\t\treturn !!(d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen);\n\t};\n\n\tui.getFullscreenAPI = function() {\n\t\tvar dE = document.documentElement,\n\t\t\tapi,\n\t\t\ttF = 'fullscreenchange';\n\n\t\tif (dE.requestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'requestFullscreen',\n\t\t\t\texitK: 'exitFullscreen',\n\t\t\t\telementK: 'fullscreenElement',\n\t\t\t\teventK: tF\n\t\t\t};\n\n\t\t} else if(dE.mozRequestFullScreen ) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'mozRequestFullScreen',\n\t\t\t\texitK: 'mozCancelFullScreen',\n\t\t\t\telementK: 'mozFullScreenElement',\n\t\t\t\teventK: 'moz' + tF\n\t\t\t};\n\n\t\t\t\n\n\t\t} else if(dE.webkitRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'webkitRequestFullscreen',\n\t\t\t\texitK: 'webkitExitFullscreen',\n\t\t\t\telementK: 'webkitFullscreenElement',\n\t\t\t\teventK: 'webkit' + tF\n\t\t\t};\n\n\t\t} else if(dE.msRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'msRequestFullscreen',\n\t\t\t\texitK: 'msExitFullscreen',\n\t\t\t\telementK: 'msFullscreenElement',\n\t\t\t\teventK: 'MSFullscreenChange'\n\t\t\t};\n\t\t}\n\n\t\tif(api) {\n\t\t\tapi.enter = function() { \n\t\t\t\t// disable close-on-scroll in fullscreen\n\t\t\t\t_initalCloseOnScrollValue = _options.closeOnScroll; \n\t\t\t\t_options.closeOnScroll = false; \n\n\t\t\t\tif(this.enterK === 'webkitRequestFullscreen') {\n\t\t\t\t\tpswp.template[this.enterK]( Element.ALLOW_KEYBOARD_INPUT );\n\t\t\t\t} else {\n\t\t\t\t\treturn pswp.template[this.enterK](); \n\t\t\t\t}\n\t\t\t};\n\t\t\tapi.exit = function() { \n\t\t\t\t_options.closeOnScroll = _initalCloseOnScrollValue;\n\n\t\t\t\treturn document[this.exitK](); \n\n\t\t\t};\n\t\t\tapi.isFullscreen = function() { return document[this.elementK]; };\n\t\t}\n\n\t\treturn api;\n\t};\n\n\n\n};\nreturn PhotoSwipeUI_Default;\n\n\n});\n\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! PhotoSwipe - v4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n(function (root, factory) { \n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipe = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\tvar PhotoSwipe = function(template, UiClass, items, options){\n\n/*>>framework-bridge*/\n/**\n *\n * Set of generic functions used by gallery.\n * \n * You're free to modify anything here as long as functionality is kept.\n * \n */\nvar framework = {\n\tfeatures: null,\n\tbind: function(target, type, listener, unbind) {\n\t\tvar methodName = (unbind ? 'remove' : 'add') + 'EventListener';\n\t\ttype = type.split(' ');\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tif(type[i]) {\n\t\t\t\ttarget[methodName]( type[i], listener, false);\n\t\t\t}\n\t\t}\n\t},\n\tisArray: function(obj) {\n\t\treturn (obj instanceof Array);\n\t},\n\tcreateEl: function(classes, tag) {\n\t\tvar el = document.createElement(tag || 'div');\n\t\tif(classes) {\n\t\t\tel.className = classes;\n\t\t}\n\t\treturn el;\n\t},\n\tgetScrollY: function() {\n\t\tvar yOffset = window.pageYOffset;\n\t\treturn yOffset !== undefined ? yOffset : document.documentElement.scrollTop;\n\t},\n\tunbind: function(target, type, listener) {\n\t\tframework.bind(target,type,listener,true);\n\t},\n\tremoveClass: function(el, className) {\n\t\tvar reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n\t\tel.className = el.className.replace(reg, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, ''); \n\t},\n\taddClass: function(el, className) {\n\t\tif( !framework.hasClass(el,className) ) {\n\t\t\tel.className += (el.className ? ' ' : '') + className;\n\t\t}\n\t},\n\thasClass: function(el, className) {\n\t\treturn el.className && new RegExp('(^|\\\\s)' + className + '(\\\\s|$)').test(el.className);\n\t},\n\tgetChildByClass: function(parentEl, childClassName) {\n\t\tvar node = parentEl.firstChild;\n\t\twhile(node) {\n\t\t\tif( framework.hasClass(node, childClassName) ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t\tnode = node.nextSibling;\n\t\t}\n\t},\n\tarraySearch: function(array, value, key) {\n\t\tvar i = array.length;\n\t\twhile(i--) {\n\t\t\tif(array[i][key] === value) {\n\t\t\t\treturn i;\n\t\t\t} \n\t\t}\n\t\treturn -1;\n\t},\n\textend: function(o1, o2, preventOverwrite) {\n\t\tfor (var prop in o2) {\n\t\t\tif (o2.hasOwnProperty(prop)) {\n\t\t\t\tif(preventOverwrite && o1.hasOwnProperty(prop)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\to1[prop] = o2[prop];\n\t\t\t}\n\t\t}\n\t},\n\teasing: {\n\t\tsine: {\n\t\t\tout: function(k) {\n\t\t\t\treturn Math.sin(k * (Math.PI / 2));\n\t\t\t},\n\t\t\tinOut: function(k) {\n\t\t\t\treturn - (Math.cos(Math.PI * k) - 1) / 2;\n\t\t\t}\n\t\t},\n\t\tcubic: {\n\t\t\tout: function(k) {\n\t\t\t\treturn --k * k * k + 1;\n\t\t\t}\n\t\t}\n\t\t/*\n\t\t\telastic: {\n\t\t\t\tout: function ( k ) {\n\n\t\t\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\t\t\tif ( k === 0 ) return 0;\n\t\t\t\t\tif ( k === 1 ) return 1;\n\t\t\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\t\t\treturn ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );\n\n\t\t\t\t},\n\t\t\t},\n\t\t\tback: {\n\t\t\t\tout: function ( k ) {\n\t\t\t\t\tvar s = 1.70158;\n\t\t\t\t\treturn --k * k * ( ( s + 1 ) * k + s ) + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t*/\n\t},\n\n\t/**\n\t * \n\t * @return {object}\n\t * \n\t * {\n\t * raf : request animation frame function\n\t * caf : cancel animation frame function\n\t * transfrom : transform property key (with vendor), or null if not supported\n\t * oldIE : IE8 or below\n\t * }\n\t * \n\t */\n\tdetectFeatures: function() {\n\t\tif(framework.features) {\n\t\t\treturn framework.features;\n\t\t}\n\t\tvar helperEl = framework.createEl(),\n\t\t\thelperStyle = helperEl.style,\n\t\t\tvendor = '',\n\t\t\tfeatures = {};\n\n\t\t// IE8 and below\n\t\tfeatures.oldIE = document.all && !document.addEventListener;\n\n\t\tfeatures.touch = 'ontouchstart' in window;\n\n\t\tif(window.requestAnimationFrame) {\n\t\t\tfeatures.raf = window.requestAnimationFrame;\n\t\t\tfeatures.caf = window.cancelAnimationFrame;\n\t\t}\n\n\t\tfeatures.pointerEvent = !!(window.PointerEvent) || navigator.msPointerEnabled;\n\n\t\t// fix false-positive detection of old Android in new IE\n\t\t// (IE11 ua string contains \"Android 4.0\")\n\t\t\n\t\tif(!features.pointerEvent) { \n\n\t\t\tvar ua = navigator.userAgent;\n\n\t\t\t// Detect if device is iPhone or iPod and if it's older than iOS 8\n\t\t\t// http://stackoverflow.com/a/14223920\n\t\t\t// \n\t\t\t// This detection is made because of buggy top/bottom toolbars\n\t\t\t// that don't trigger window.resize event.\n\t\t\t// For more info refer to _isFixedPosition variable in core.js\n\n\t\t\tif (/iP(hone|od)/.test(navigator.platform)) {\n\t\t\t\tvar v = (navigator.appVersion).match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n\t\t\t\tif(v && v.length > 0) {\n\t\t\t\t\tv = parseInt(v[1], 10);\n\t\t\t\t\tif(v >= 1 && v < 8 ) {\n\t\t\t\t\t\tfeatures.isOldIOSPhone = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Detect old Android (before KitKat)\n\t\t\t// due to bugs related to position:fixed\n\t\t\t// http://stackoverflow.com/questions/7184573/pick-up-the-android-version-in-the-browser-by-javascript\n\t\t\t\n\t\t\tvar match = ua.match(/Android\\s([0-9\\.]*)/);\n\t\t\tvar androidversion = match ? match[1] : 0;\n\t\t\tandroidversion = parseFloat(androidversion);\n\t\t\tif(androidversion >= 1 ) {\n\t\t\t\tif(androidversion < 4.4) {\n\t\t\t\t\tfeatures.isOldAndroid = true; // for fixed position bug & performance\n\t\t\t\t}\n\t\t\t\tfeatures.androidVersion = androidversion; // for touchend bug\n\t\t\t}\t\n\t\t\tfeatures.isMobileOpera = /opera mini|opera mobi/i.test(ua);\n\n\t\t\t// p.s. yes, yes, UA sniffing is bad, propose your solution for above bugs.\n\t\t}\n\t\t\n\t\tvar styleChecks = ['transform', 'perspective', 'animationName'],\n\t\t\tvendors = ['', 'webkit','Moz','ms','O'],\n\t\t\tstyleCheckItem,\n\t\t\tstyleName;\n\n\t\tfor(var i = 0; i < 4; i++) {\n\t\t\tvendor = vendors[i];\n\n\t\t\tfor(var a = 0; a < 3; a++) {\n\t\t\t\tstyleCheckItem = styleChecks[a];\n\n\t\t\t\t// uppercase first letter of property name, if vendor is present\n\t\t\t\tstyleName = vendor + (vendor ? \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem.charAt(0).toUpperCase() + styleCheckItem.slice(1) : \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem);\n\t\t\t\n\t\t\t\tif(!features[styleCheckItem] && styleName in helperStyle ) {\n\t\t\t\t\tfeatures[styleCheckItem] = styleName;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(vendor && !features.raf) {\n\t\t\t\tvendor = vendor.toLowerCase();\n\t\t\t\tfeatures.raf = window[vendor+'RequestAnimationFrame'];\n\t\t\t\tif(features.raf) {\n\t\t\t\t\tfeatures.caf = window[vendor+'CancelAnimationFrame'] || \n\t\t\t\t\t\t\t\t\twindow[vendor+'CancelRequestAnimationFrame'];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\t\n\t\tif(!features.raf) {\n\t\t\tvar lastTime = 0;\n\t\t\tfeatures.raf = function(fn) {\n\t\t\t\tvar currTime = new Date().getTime();\n\t\t\t\tvar timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\t\t\t\tvar id = window.setTimeout(function() { fn(currTime + timeToCall); }, timeToCall);\n\t\t\t\tlastTime = currTime + timeToCall;\n\t\t\t\treturn id;\n\t\t\t};\n\t\t\tfeatures.caf = function(id) { clearTimeout(id); };\n\t\t}\n\n\t\t// Detect SVG support\n\t\tfeatures.svg = !!document.createElementNS && \n\t\t\t\t\t\t!!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;\n\n\t\tframework.features = features;\n\n\t\treturn features;\n\t}\n};\n\nframework.detectFeatures();\n\n// Override addEventListener for old versions of IE\nif(framework.features.oldIE) {\n\n\tframework.bind = function(target, type, listener, unbind) {\n\t\t\n\t\ttype = type.split(' ');\n\n\t\tvar methodName = (unbind ? 'detach' : 'attach') + 'Event',\n\t\t\tevName,\n\t\t\t_handleEv = function() {\n\t\t\t\tlistener.handleEvent.call(listener);\n\t\t\t};\n\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tevName = type[i];\n\t\t\tif(evName) {\n\n\t\t\t\tif(typeof listener === 'object' && listener.handleEvent) {\n\t\t\t\t\tif(!unbind) {\n\t\t\t\t\t\tlistener['oldIE' + evName] = _handleEv;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!listener['oldIE' + evName]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener['oldIE' + evName]);\n\t\t\t\t} else {\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t};\n\t\n}\n\n/*>>framework-bridge*/\n\n/*>>core*/\n//function(template, UiClass, items, options)\n\nvar self = this;\n\n/**\n * Static vars, don't change unless you know what you're doing.\n */\nvar DOUBLE_TAP_RADIUS = 25, \n\tNUM_HOLDERS = 3;\n\n/**\n * Options\n */\nvar _options = {\n\tallowPanToNext:true,\n\tspacing: 0.12,\n\tbgOpacity: 1,\n\tmouseUsed: false,\n\tloop: true,\n\tpinchToClose: true,\n\tcloseOnScroll: true,\n\tcloseOnVerticalDrag: true,\n\tverticalDragRange: 0.75,\n\thideAnimationDuration: 333,\n\tshowAnimationDuration: 333,\n\tshowHideOpacity: false,\n\tfocus: true,\n\tescKey: true,\n\tarrowKeys: true,\n\tmainScrollEndFriction: 0.35,\n\tpanEndFriction: 0.35,\n\tisClickableElement: function(el) {\n return el.tagName === 'A';\n },\n getDoubleTapZoom: function(isMouseClick, item) {\n \tif(isMouseClick) {\n \t\treturn 1;\n \t} else {\n \t\treturn item.initialZoomLevel < 0.7 ? 1 : 1.33;\n \t}\n },\n maxSpreadZoom: 1.33,\n\tmodal: true,\n\n\t// not fully implemented yet\n\tscaleMode: 'fit' // TODO\n};\nframework.extend(_options, options);\n\n\n/**\n * Private helper variables & functions\n */\n\nvar _getEmptyPoint = function() { \n\t\treturn {x:0,y:0}; \n\t};\n\nvar _isOpen,\n\t_isDestroying,\n\t_closedByScroll,\n\t_currentItemIndex,\n\t_containerStyle,\n\t_containerShiftIndex,\n\t_currPanDist = _getEmptyPoint(),\n\t_startPanOffset = _getEmptyPoint(),\n\t_panOffset = _getEmptyPoint(),\n\t_upMoveEvents, // drag move, drag end & drag cancel events array\n\t_downEvents, // drag start events array\n\t_globalEventHandlers,\n\t_viewportSize = {},\n\t_currZoomLevel,\n\t_startZoomLevel,\n\t_translatePrefix,\n\t_translateSufix,\n\t_updateSizeInterval,\n\t_itemsNeedUpdate,\n\t_currPositionIndex = 0,\n\t_offset = {},\n\t_slideSize = _getEmptyPoint(), // size of slide area, including spacing\n\t_itemHolders,\n\t_prevItemIndex,\n\t_indexDiff = 0, // difference of indexes since last content update\n\t_dragStartEvent,\n\t_dragMoveEvent,\n\t_dragEndEvent,\n\t_dragCancelEvent,\n\t_transformKey,\n\t_pointerEventEnabled,\n\t_isFixedPosition = true,\n\t_likelyTouchDevice,\n\t_modules = [],\n\t_requestAF,\n\t_cancelAF,\n\t_initalClassName,\n\t_initalWindowScrollY,\n\t_oldIE,\n\t_currentWindowScrollY,\n\t_features,\n\t_windowVisibleSize = {},\n\t_renderMaxResolution = false,\n\t_orientationChangeTimeout,\n\n\n\t// Registers PhotoSWipe module (History, Controller ...)\n\t_registerModule = function(name, module) {\n\t\tframework.extend(self, module.publicMethods);\n\t\t_modules.push(name);\n\t},\n\n\t_getLoopedId = function(index) {\n\t\tvar numSlides = _getNumItems();\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t\n\t// Micro bind/trigger\n\t_listeners = {},\n\t_listen = function(name, fn) {\n\t\tif(!_listeners[name]) {\n\t\t\t_listeners[name] = [];\n\t\t}\n\t\treturn _listeners[name].push(fn);\n\t},\n\t_shout = function(name) {\n\t\tvar listeners = _listeners[name];\n\n\t\tif(listeners) {\n\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\targs.shift();\n\n\t\t\tfor(var i = 0; i < listeners.length; i++) {\n\t\t\t\tlisteners[i].apply(self, args);\n\t\t\t}\n\t\t}\n\t},\n\n\t_getCurrentTime = function() {\n\t\treturn new Date().getTime();\n\t},\n\t_applyBgOpacity = function(opacity) {\n\t\t_bgOpacity = opacity;\n\t\tself.bg.style.opacity = opacity * _options.bgOpacity;\n\t},\n\n\t_applyZoomTransform = function(styleObj,x,y,zoom,item) {\n\t\tif(!_renderMaxResolution || (item && item !== self.currItem) ) {\n\t\t\tzoom = zoom / (item ? item.fitRatio : self.currItem.fitRatio);\t\n\t\t}\n\t\t\t\n\t\tstyleObj[_transformKey] = _translatePrefix + x + 'px, ' + y + 'px' + _translateSufix + ' scale(' + zoom + ')';\n\t},\n\t_applyCurrentZoomPan = function( allowRenderResolution ) {\n\t\tif(_currZoomElementStyle) {\n\n\t\t\tif(allowRenderResolution) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\tif(!_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem, false, true);\n\t\t\t\t\t\t_renderMaxResolution = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem);\n\t\t\t\t\t\t_renderMaxResolution = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\t_applyZoomTransform(_currZoomElementStyle, _panOffset.x, _panOffset.y, _currZoomLevel);\n\t\t}\n\t},\n\t_applyZoomPanToItem = function(item) {\n\t\tif(item.container) {\n\n\t\t\t_applyZoomTransform(item.container.style, \n\t\t\t\t\t\t\t\titem.initialPosition.x, \n\t\t\t\t\t\t\t\titem.initialPosition.y, \n\t\t\t\t\t\t\t\titem.initialZoomLevel,\n\t\t\t\t\t\t\t\titem);\n\t\t}\n\t},\n\t_setTranslateX = function(x, elStyle) {\n\t\telStyle[_transformKey] = _translatePrefix + x + 'px, 0px' + _translateSufix;\n\t},\n\t_moveMainScroll = function(x, dragging) {\n\n\t\tif(!_options.loop && dragging) {\n\t\t\tvar newSlideIndexOffset = _currentItemIndex + (_slideSize.x * _currPositionIndex - x) / _slideSize.x,\n\t\t\t\tdelta = Math.round(x - _mainScrollPos.x);\n\n\t\t\tif( (newSlideIndexOffset < 0 && delta > 0) || \n\t\t\t\t(newSlideIndexOffset >= _getNumItems() - 1 && delta < 0) ) {\n\t\t\t\tx = _mainScrollPos.x + delta * _options.mainScrollEndFriction;\n\t\t\t} \n\t\t}\n\t\t\n\t\t_mainScrollPos.x = x;\n\t\t_setTranslateX(x, _containerStyle);\n\t},\n\t_calculatePanOffset = function(axis, zoomLevel) {\n\t\tvar m = _midZoomPoint[axis] - _offset[axis];\n\t\treturn _startPanOffset[axis] + _currPanDist[axis] + m - m * ( zoomLevel / _startZoomLevel );\n\t},\n\t\n\t_equalizePoints = function(p1, p2) {\n\t\tp1.x = p2.x;\n\t\tp1.y = p2.y;\n\t\tif(p2.id) {\n\t\t\tp1.id = p2.id;\n\t\t}\n\t},\n\t_roundPoint = function(p) {\n\t\tp.x = Math.round(p.x);\n\t\tp.y = Math.round(p.y);\n\t},\n\n\t_mouseMoveTimeout = null,\n\t_onFirstMouseMove = function() {\n\t\t// Wait until mouse move event is fired at least twice during 100ms\n\t\t// We do this, because some mobile browsers trigger it on touchstart\n\t\tif(_mouseMoveTimeout ) { \n\t\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\t\t\tframework.addClass(template, 'pswp--has_mouse');\n\t\t\t_options.mouseUsed = true;\n\t\t\t_shout('mouseUsed');\n\t\t}\n\t\t_mouseMoveTimeout = setTimeout(function() {\n\t\t\t_mouseMoveTimeout = null;\n\t\t}, 100);\n\t},\n\n\t_bindEvents = function() {\n\t\tframework.bind(document, 'keydown', self);\n\n\t\tif(_features.transform) {\n\t\t\t// don't bind click event in browsers that don't support transform (mostly IE8)\n\t\t\tframework.bind(self.scrollWrap, 'click', self);\n\t\t}\n\t\t\n\n\t\tif(!_options.mouseUsed) {\n\t\t\tframework.bind(document, 'mousemove', _onFirstMouseMove);\n\t\t}\n\n\t\tframework.bind(window, 'resize scroll orientationchange', self);\n\n\t\t_shout('bindEvents');\n\t},\n\n\t_unbindEvents = function() {\n\t\tframework.unbind(window, 'resize scroll orientationchange', self);\n\t\tframework.unbind(window, 'scroll', _globalEventHandlers.scroll);\n\t\tframework.unbind(document, 'keydown', self);\n\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\n\t\tif(_features.transform) {\n\t\t\tframework.unbind(self.scrollWrap, 'click', self);\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\t\t}\n\n\t\tclearTimeout(_orientationChangeTimeout);\n\n\t\t_shout('unbindEvents');\n\t},\n\t\n\t_calculatePanBounds = function(zoomLevel, update) {\n\t\tvar bounds = _calculateItemSize( self.currItem, _viewportSize, zoomLevel );\n\t\tif(update) {\n\t\t\t_currPanBounds = bounds;\n\t\t}\n\t\treturn bounds;\n\t},\n\t\n\t_getMinZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.initialZoomLevel;\n\t},\n\t_getMaxZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.w > 0 ? _options.maxSpreadZoom : 1;\n\t},\n\n\t// Return true if offset is out of the bounds\n\t_modifyDestPanOffset = function(axis, destPanBounds, destPanOffset, destZoomLevel) {\n\t\tif(destZoomLevel === self.currItem.initialZoomLevel) {\n\t\t\tdestPanOffset[axis] = self.currItem.initialPosition[axis];\n\t\t\treturn true;\n\t\t} else {\n\t\t\tdestPanOffset[axis] = _calculatePanOffset(axis, destZoomLevel); \n\n\t\t\tif(destPanOffset[axis] > destPanBounds.min[axis]) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.min[axis];\n\t\t\t\treturn true;\n\t\t\t} else if(destPanOffset[axis] < destPanBounds.max[axis] ) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.max[axis];\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t_setupTransforms = function() {\n\n\t\tif(_transformKey) {\n\t\t\t// setup 3d transforms\n\t\t\tvar allow3dTransform = _features.perspective && !_likelyTouchDevice;\n\t\t\t_translatePrefix = 'translate' + (allow3dTransform ? '3d(' : '(');\n\t\t\t_translateSufix = _features.perspective ? ', 0px)' : ')';\t\n\t\t\treturn;\n\t\t}\n\n\t\t// Override zoom/pan/move functions in case old browser is used (most likely IE)\n\t\t// (so they use left/top/width/height, instead of CSS transform)\n\t\n\t\t_transformKey = 'left';\n\t\tframework.addClass(template, 'pswp--ie');\n\n\t\t_setTranslateX = function(x, elStyle) {\n\t\t\telStyle.left = x + 'px';\n\t\t};\n\t\t_applyZoomPanToItem = function(item) {\n\n\t\t\tvar zoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\ts = item.container.style,\n\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\th = zoomRatio * item.h;\n\n\t\t\ts.width = w + 'px';\n\t\t\ts.height = h + 'px';\n\t\t\ts.left = item.initialPosition.x + 'px';\n\t\t\ts.top = item.initialPosition.y + 'px';\n\n\t\t};\n\t\t_applyCurrentZoomPan = function() {\n\t\t\tif(_currZoomElementStyle) {\n\n\t\t\t\tvar s = _currZoomElementStyle,\n\t\t\t\t\titem = self.currItem,\n\t\t\t\t\tzoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\t\th = zoomRatio * item.h;\n\n\t\t\t\ts.width = w + 'px';\n\t\t\t\ts.height = h + 'px';\n\n\n\t\t\t\ts.left = _panOffset.x + 'px';\n\t\t\t\ts.top = _panOffset.y + 'px';\n\t\t\t}\n\t\t\t\n\t\t};\n\t},\n\n\t_onKeyDown = function(e) {\n\t\tvar keydownAction = '';\n\t\tif(_options.escKey && e.keyCode === 27) { \n\t\t\tkeydownAction = 'close';\n\t\t} else if(_options.arrowKeys) {\n\t\t\tif(e.keyCode === 37) {\n\t\t\t\tkeydownAction = 'prev';\n\t\t\t} else if(e.keyCode === 39) { \n\t\t\t\tkeydownAction = 'next';\n\t\t\t}\n\t\t}\n\n\t\tif(keydownAction) {\n\t\t\t// don't do anything if special key pressed to prevent from overriding default browser actions\n\t\t\t// e.g. in Chrome on Mac cmd+arrow-left returns to previous page\n\t\t\tif( !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey ) {\n\t\t\t\tif(e.preventDefault) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t} else {\n\t\t\t\t\te.returnValue = false;\n\t\t\t\t} \n\t\t\t\tself[keydownAction]();\n\t\t\t}\n\t\t}\n\t},\n\n\t_onGlobalClick = function(e) {\n\t\tif(!e) {\n\t\t\treturn;\n\t\t}\n\n\t\t// don't allow click event to pass through when triggering after drag or some other gesture\n\t\tif(_moved || _zoomStarted || _mainScrollAnimating || _verticalDragInitiated) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\n\t_updatePageScrollOffset = function() {\n\t\tself.setScrollOffset(0, framework.getScrollY());\t\t\n\t};\n\t\n\n\n\t\n\n\n\n// Micro animation engine\nvar _animations = {},\n\t_numAnimations = 0,\n\t_stopAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\tif(_animations[name].raf) {\n\t\t\t\t_cancelAF( _animations[name].raf );\n\t\t\t}\n\t\t\t_numAnimations--;\n\t\t\tdelete _animations[name];\n\t\t}\n\t},\n\t_registerStartAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\t_stopAnimation(name);\n\t\t}\n\t\tif(!_animations[name]) {\n\t\t\t_numAnimations++;\n\t\t\t_animations[name] = {};\n\t\t}\n\t},\n\t_stopAllAnimations = function() {\n\t\tfor (var prop in _animations) {\n\n\t\t\tif( _animations.hasOwnProperty( prop ) ) {\n\t\t\t\t_stopAnimation(prop);\n\t\t\t} \n\t\t\t\n\t\t}\n\t},\n\t_animateProp = function(name, b, endProp, d, easingFn, onUpdate, onComplete) {\n\t\tvar startAnimTime = _getCurrentTime(), t;\n\t\t_registerStartAnimation(name);\n\n\t\tvar animloop = function(){\n\t\t\tif ( _animations[name] ) {\n\t\t\t\t\n\t\t\t\tt = _getCurrentTime() - startAnimTime; // time diff\n\t\t\t\t//b - beginning (start prop)\n\t\t\t\t//d - anim duration\n\n\t\t\t\tif ( t >= d ) {\n\t\t\t\t\t_stopAnimation(name);\n\t\t\t\t\tonUpdate(endProp);\n\t\t\t\t\tif(onComplete) {\n\t\t\t\t\t\tonComplete();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdate( (endProp - b) * easingFn(t/d) + b );\n\n\t\t\t\t_animations[name].raf = _requestAF(animloop);\n\t\t\t}\n\t\t};\n\t\tanimloop();\n\t};\n\t\n\n\nvar publicMethods = {\n\n\t// make a few local variables and functions public\n\tshout: _shout,\n\tlisten: _listen,\n\tviewportSize: _viewportSize,\n\toptions: _options,\n\n\tisMainScrollAnimating: function() {\n\t\treturn _mainScrollAnimating;\n\t},\n\tgetZoomLevel: function() {\n\t\treturn _currZoomLevel;\n\t},\n\tgetCurrentIndex: function() {\n\t\treturn _currentItemIndex;\n\t},\n\tisDragging: function() {\n\t\treturn _isDragging;\n\t},\t\n\tisZooming: function() {\n\t\treturn _isZooming;\n\t},\n\tsetScrollOffset: function(x,y) {\n\t\t_offset.x = x;\n\t\t_currentWindowScrollY = _offset.y = y;\n\t\t_shout('updateScrollOffset', _offset);\n\t},\n\tapplyZoomPan: function(zoomLevel,panX,panY,allowRenderResolution) {\n\t\t_panOffset.x = panX;\n\t\t_panOffset.y = panY;\n\t\t_currZoomLevel = zoomLevel;\n\t\t_applyCurrentZoomPan( allowRenderResolution );\n\t},\n\n\tinit: function() {\n\n\t\tif(_isOpen || _isDestroying) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar i;\n\n\t\tself.framework = framework; // basic functionality\n\t\tself.template = template; // root DOM element of PhotoSwipe\n\t\tself.bg = framework.getChildByClass(template, 'pswp__bg');\n\n\t\t_initalClassName = template.className;\n\t\t_isOpen = true;\n\t\t\t\t\n\t\t_features = framework.detectFeatures();\n\t\t_requestAF = _features.raf;\n\t\t_cancelAF = _features.caf;\n\t\t_transformKey = _features.transform;\n\t\t_oldIE = _features.oldIE;\n\t\t\n\t\tself.scrollWrap = framework.getChildByClass(template, 'pswp__scroll-wrap');\n\t\tself.container = framework.getChildByClass(self.scrollWrap, 'pswp__container');\n\n\t\t_containerStyle = self.container.style; // for fast access\n\n\t\t// Objects that hold slides (there are only 3 in DOM)\n\t\tself.itemHolders = _itemHolders = [\n\t\t\t{el:self.container.children[0] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[1] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[2] , wrap:0, index: -1}\n\t\t];\n\n\t\t// hide nearby item holders until initial zoom animation finishes (to avoid extra Paints)\n\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'none';\n\n\t\t_setupTransforms();\n\n\t\t// Setup global events\n\t\t_globalEventHandlers = {\n\t\t\tresize: self.updateSize,\n\n\t\t\t// Fixes: iOS 10.3 resize event\n\t\t\t// does not update scrollWrap.clientWidth instantly after resize\n\t\t\t// https://github.com/dimsemenov/PhotoSwipe/issues/1315\n\t\t\torientationchange: function() {\n\t\t\t\tclearTimeout(_orientationChangeTimeout);\n\t\t\t\t_orientationChangeTimeout = setTimeout(function() {\n\t\t\t\t\tif(_viewportSize.x !== self.scrollWrap.clientWidth) {\n\t\t\t\t\t\tself.updateSize();\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t},\n\t\t\tscroll: _updatePageScrollOffset,\n\t\t\tkeydown: _onKeyDown,\n\t\t\tclick: _onGlobalClick\n\t\t};\n\n\t\t// disable show/hide effects on old browsers that don't support CSS animations or transforms, \n\t\t// old IOS, Android and Opera mobile. Blackberry seems to work fine, even older models.\n\t\tvar oldPhone = _features.isOldIOSPhone || _features.isOldAndroid || _features.isMobileOpera;\n\t\tif(!_features.animationName || !_features.transform || oldPhone) {\n\t\t\t_options.showAnimationDuration = _options.hideAnimationDuration = 0;\n\t\t}\n\n\t\t// init modules\n\t\tfor(i = 0; i < _modules.length; i++) {\n\t\t\tself['init' + _modules[i]]();\n\t\t}\n\t\t\n\t\t// init\n\t\tif(UiClass) {\n\t\t\tvar ui = self.ui = new UiClass(self, framework);\n\t\t\tui.init();\n\t\t}\n\n\t\t_shout('firstUpdate');\n\t\t_currentItemIndex = _currentItemIndex || _options.index || 0;\n\t\t// validate index\n\t\tif( isNaN(_currentItemIndex) || _currentItemIndex < 0 || _currentItemIndex >= _getNumItems() ) {\n\t\t\t_currentItemIndex = 0;\n\t\t}\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\n\t\t\n\t\tif(_features.isOldIOSPhone || _features.isOldAndroid) {\n\t\t\t_isFixedPosition = false;\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'false');\n\t\tif(_options.modal) {\n\t\t\tif(!_isFixedPosition) {\n\t\t\t\ttemplate.style.position = 'absolute';\n\t\t\t\ttemplate.style.top = framework.getScrollY() + 'px';\n\t\t\t} else {\n\t\t\t\ttemplate.style.position = 'fixed';\n\t\t\t}\n\t\t}\n\n\t\tif(_currentWindowScrollY === undefined) {\n\t\t\t_shout('initialLayout');\n\t\t\t_currentWindowScrollY = _initalWindowScrollY = framework.getScrollY();\n\t\t}\n\t\t\n\t\t// add classes to root element of PhotoSwipe\n\t\tvar rootClasses = 'pswp--open ';\n\t\tif(_options.mainClass) {\n\t\t\trootClasses += _options.mainClass + ' ';\n\t\t}\n\t\tif(_options.showHideOpacity) {\n\t\t\trootClasses += 'pswp--animate_opacity ';\n\t\t}\n\t\trootClasses += _likelyTouchDevice ? 'pswp--touch' : 'pswp--notouch';\n\t\trootClasses += _features.animationName ? ' pswp--css_animation' : '';\n\t\trootClasses += _features.svg ? ' pswp--svg' : '';\n\t\tframework.addClass(template, rootClasses);\n\n\t\tself.updateSize();\n\n\t\t// initial update\n\t\t_containerShiftIndex = -1;\n\t\t_indexDiff = null;\n\t\tfor(i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, _itemHolders[i].el.style);\n\t\t}\n\n\t\tif(!_oldIE) {\n\t\t\tframework.bind(self.scrollWrap, _downEvents, self); // no dragging for old IE\n\t\t}\t\n\n\t\t_listen('initialZoomInEnd', function() {\n\t\t\tself.setContent(_itemHolders[0], _currentItemIndex-1);\n\t\t\tself.setContent(_itemHolders[2], _currentItemIndex+1);\n\n\t\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'block';\n\n\t\t\tif(_options.focus) {\n\t\t\t\t// focus causes layout, \n\t\t\t\t// which causes lag during the animation, \n\t\t\t\t// that's why we delay it untill the initial zoom transition ends\n\t\t\t\ttemplate.focus();\n\t\t\t}\n\t\t\t \n\n\t\t\t_bindEvents();\n\t\t});\n\n\t\t// set content for center slide (first time)\n\t\tself.setContent(_itemHolders[1], _currentItemIndex);\n\t\t\n\t\tself.updateCurrItem();\n\n\t\t_shout('afterInit');\n\n\t\tif(!_isFixedPosition) {\n\n\t\t\t// On all versions of iOS lower than 8.0, we check size of viewport every second.\n\t\t\t// \n\t\t\t// This is done to detect when Safari top & bottom bars appear, \n\t\t\t// as this action doesn't trigger any events (like resize). \n\t\t\t// \n\t\t\t// On iOS8 they fixed this.\n\t\t\t// \n\t\t\t// 10 Nov 2014: iOS 7 usage ~40%. iOS 8 usage 56%.\n\t\t\t\n\t\t\t_updateSizeInterval = setInterval(function() {\n\t\t\t\tif(!_numAnimations && !_isDragging && !_isZooming && (_currZoomLevel === self.currItem.initialZoomLevel) ) {\n\t\t\t\t\tself.updateSize();\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\n\t\tframework.addClass(template, 'pswp--visible');\n\t},\n\n\t// Close the gallery, then destroy it\n\tclose: function() {\n\t\tif(!_isOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\t_isOpen = false;\n\t\t_isDestroying = true;\n\t\t_shout('close');\n\t\t_unbindEvents();\n\n\t\t_showOrHide(self.currItem, null, true, self.destroy);\n\t},\n\n\t// destroys the gallery (unbinds events, cleans up intervals and timeouts to avoid memory leaks)\n\tdestroy: function() {\n\t\t_shout('destroy');\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'true');\n\t\ttemplate.className = _initalClassName;\n\n\t\tif(_updateSizeInterval) {\n\t\t\tclearInterval(_updateSizeInterval);\n\t\t}\n\n\t\tframework.unbind(self.scrollWrap, _downEvents, self);\n\n\t\t// we unbind scroll event at the end, as closing animation may depend on it\n\t\tframework.unbind(window, 'scroll', self);\n\n\t\t_stopDragUpdateLoop();\n\n\t\t_stopAllAnimations();\n\n\t\t_listeners = null;\n\t},\n\n\t/**\n\t * Pan image to position\n\t * @param {Number} x \n\t * @param {Number} y \n\t * @param {Boolean} force Will ignore bounds if set to true.\n\t */\n\tpanTo: function(x,y,force) {\n\t\tif(!force) {\n\t\t\tif(x > _currPanBounds.min.x) {\n\t\t\t\tx = _currPanBounds.min.x;\n\t\t\t} else if(x < _currPanBounds.max.x) {\n\t\t\t\tx = _currPanBounds.max.x;\n\t\t\t}\n\n\t\t\tif(y > _currPanBounds.min.y) {\n\t\t\t\ty = _currPanBounds.min.y;\n\t\t\t} else if(y < _currPanBounds.max.y) {\n\t\t\t\ty = _currPanBounds.max.y;\n\t\t\t}\n\t\t}\n\t\t\n\t\t_panOffset.x = x;\n\t\t_panOffset.y = y;\n\t\t_applyCurrentZoomPan();\n\t},\n\t\n\thandleEvent: function (e) {\n\t\te = e || window.event;\n\t\tif(_globalEventHandlers[e.type]) {\n\t\t\t_globalEventHandlers[e.type](e);\n\t\t}\n\t},\n\n\n\tgoTo: function(index) {\n\n\t\tindex = _getLoopedId(index);\n\n\t\tvar diff = index - _currentItemIndex;\n\t\t_indexDiff = diff;\n\n\t\t_currentItemIndex = index;\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_currPositionIndex -= diff;\n\t\t\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\t\t\n\n\t\t_stopAllAnimations();\n\t\t_mainScrollAnimating = false;\n\n\t\tself.updateCurrItem();\n\t},\n\tnext: function() {\n\t\tself.goTo( _currentItemIndex + 1);\n\t},\n\tprev: function() {\n\t\tself.goTo( _currentItemIndex - 1);\n\t},\n\n\t// update current zoom/pan objects\n\tupdateCurrZoomItem: function(emulateSetContent) {\n\t\tif(emulateSetContent) {\n\t\t\t_shout('beforeChange', 0);\n\t\t}\n\n\t\t// itemHolder[1] is middle (current) item\n\t\tif(_itemHolders[1].el.children.length) {\n\t\t\tvar zoomElement = _itemHolders[1].el.children[0];\n\t\t\tif( framework.hasClass(zoomElement, 'pswp__zoom-wrap') ) {\n\t\t\t\t_currZoomElementStyle = zoomElement.style;\n\t\t\t} else {\n\t\t\t\t_currZoomElementStyle = null;\n\t\t\t}\n\t\t} else {\n\t\t\t_currZoomElementStyle = null;\n\t\t}\n\t\t\n\t\t_currPanBounds = self.currItem.bounds;\t\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\n\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t_panOffset.y = _currPanBounds.center.y;\n\n\t\tif(emulateSetContent) {\n\t\t\t_shout('afterChange');\n\t\t}\n\t},\n\n\n\tinvalidateCurrItems: function() {\n\t\t_itemsNeedUpdate = true;\n\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\tif( _itemHolders[i].item ) {\n\t\t\t\t_itemHolders[i].item.needsUpdate = true;\n\t\t\t}\n\t\t}\n\t},\n\n\tupdateCurrItem: function(beforeAnimation) {\n\n\t\tif(_indexDiff === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar diffAbs = Math.abs(_indexDiff),\n\t\t\ttempHolder;\n\n\t\tif(beforeAnimation && diffAbs < 2) {\n\t\t\treturn;\n\t\t}\n\n\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_renderMaxResolution = false;\n\t\t\n\t\t_shout('beforeChange', _indexDiff);\n\n\t\tif(diffAbs >= NUM_HOLDERS) {\n\t\t\t_containerShiftIndex += _indexDiff + (_indexDiff > 0 ? -NUM_HOLDERS : NUM_HOLDERS);\n\t\t\tdiffAbs = NUM_HOLDERS;\n\t\t}\n\t\tfor(var i = 0; i < diffAbs; i++) {\n\t\t\tif(_indexDiff > 0) {\n\t\t\t\ttempHolder = _itemHolders.shift();\n\t\t\t\t_itemHolders[NUM_HOLDERS-1] = tempHolder; // move first to last\n\n\t\t\t\t_containerShiftIndex++;\n\t\t\t\t_setTranslateX( (_containerShiftIndex+2) * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex - diffAbs + i + 1 + 1);\n\t\t\t} else {\n\t\t\t\ttempHolder = _itemHolders.pop();\n\t\t\t\t_itemHolders.unshift( tempHolder ); // move last to first\n\n\t\t\t\t_containerShiftIndex--;\n\t\t\t\t_setTranslateX( _containerShiftIndex * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex + diffAbs - i - 1 - 1);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// reset zoom/pan on previous item\n\t\tif(_currZoomElementStyle && Math.abs(_indexDiff) === 1) {\n\n\t\t\tvar prevItem = _getItemAt(_prevItemIndex);\n\t\t\tif(prevItem.initialZoomLevel !== _currZoomLevel) {\n\t\t\t\t_calculateItemSize(prevItem , _viewportSize );\n\t\t\t\t_setImageSize(prevItem);\n\t\t\t\t_applyZoomPanToItem( prevItem ); \t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\t// reset diff after update\n\t\t_indexDiff = 0;\n\n\t\tself.updateCurrZoomItem();\n\n\t\t_prevItemIndex = _currentItemIndex;\n\n\t\t_shout('afterChange');\n\t\t\n\t},\n\n\n\n\tupdateSize: function(force) {\n\t\t\n\t\tif(!_isFixedPosition && _options.modal) {\n\t\t\tvar windowScrollY = framework.getScrollY();\n\t\t\tif(_currentWindowScrollY !== windowScrollY) {\n\t\t\t\ttemplate.style.top = windowScrollY + 'px';\n\t\t\t\t_currentWindowScrollY = windowScrollY;\n\t\t\t}\n\t\t\tif(!force && _windowVisibleSize.x === window.innerWidth && _windowVisibleSize.y === window.innerHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t_windowVisibleSize.x = window.innerWidth;\n\t\t\t_windowVisibleSize.y = window.innerHeight;\n\n\t\t\t//template.style.width = _windowVisibleSize.x + 'px';\n\t\t\ttemplate.style.height = _windowVisibleSize.y + 'px';\n\t\t}\n\n\n\n\t\t_viewportSize.x = self.scrollWrap.clientWidth;\n\t\t_viewportSize.y = self.scrollWrap.clientHeight;\n\n\t\t_updatePageScrollOffset();\n\n\t\t_slideSize.x = _viewportSize.x + Math.round(_viewportSize.x * _options.spacing);\n\t\t_slideSize.y = _viewportSize.y;\n\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\n\t\t_shout('beforeResize'); // even may be used for example to switch image sources\n\n\n\t\t// don't re-calculate size on inital size update\n\t\tif(_containerShiftIndex !== undefined) {\n\n\t\t\tvar holder,\n\t\t\t\titem,\n\t\t\t\thIndex;\n\n\t\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\tholder = _itemHolders[i];\n\t\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, holder.el.style);\n\n\t\t\t\thIndex = _currentItemIndex+i-1;\n\n\t\t\t\tif(_options.loop && _getNumItems() > 2) {\n\t\t\t\t\thIndex = _getLoopedId(hIndex);\n\t\t\t\t}\n\n\t\t\t\t// update zoom level on items and refresh source (if needsUpdate)\n\t\t\t\titem = _getItemAt( hIndex );\n\n\t\t\t\t// re-render gallery item if `needsUpdate`,\n\t\t\t\t// or doesn't have `bounds` (entirely new slide object)\n\t\t\t\tif( item && (_itemsNeedUpdate || item.needsUpdate || !item.bounds) ) {\n\n\t\t\t\t\tself.cleanSlide( item );\n\t\t\t\t\t\n\t\t\t\t\tself.setContent( holder, hIndex );\n\n\t\t\t\t\t// if \"center\" slide\n\t\t\t\t\tif(i === 1) {\n\t\t\t\t\t\tself.currItem = item;\n\t\t\t\t\t\tself.updateCurrZoomItem(true);\n\t\t\t\t\t}\n\n\t\t\t\t\titem.needsUpdate = false;\n\n\t\t\t\t} else if(holder.index === -1 && hIndex >= 0) {\n\t\t\t\t\t// add content first time\n\t\t\t\t\tself.setContent( holder, hIndex );\n\t\t\t\t}\n\t\t\t\tif(item && item.container) {\n\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t_setImageSize(item);\n\t\t\t\t\t_applyZoomPanToItem( item );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t_itemsNeedUpdate = false;\n\t\t}\t\n\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\t\t_currPanBounds = self.currItem.bounds;\n\n\t\tif(_currPanBounds) {\n\t\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t\t_panOffset.y = _currPanBounds.center.y;\n\t\t\t_applyCurrentZoomPan( true );\n\t\t}\n\t\t\n\t\t_shout('resize');\n\t},\n\t\n\t// Zoom current item to\n\tzoomTo: function(destZoomLevel, centerPoint, speed, easingFn, updateFn) {\n\t\t/*\n\t\t\tif(destZoomLevel === 'fit') {\n\t\t\t\tdestZoomLevel = self.currItem.fitRatio;\n\t\t\t} else if(destZoomLevel === 'fill') {\n\t\t\t\tdestZoomLevel = self.currItem.fillRatio;\n\t\t\t}\n\t\t*/\n\n\t\tif(centerPoint) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_midZoomPoint.x = Math.abs(centerPoint.x) - _panOffset.x ;\n\t\t\t_midZoomPoint.y = Math.abs(centerPoint.y) - _panOffset.y ;\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\t\t}\n\n\t\tvar destPanBounds = _calculatePanBounds(destZoomLevel, false),\n\t\t\tdestPanOffset = {};\n\n\t\t_modifyDestPanOffset('x', destPanBounds, destPanOffset, destZoomLevel);\n\t\t_modifyDestPanOffset('y', destPanBounds, destPanOffset, destZoomLevel);\n\n\t\tvar initialZoomLevel = _currZoomLevel;\n\t\tvar initialPanOffset = {\n\t\t\tx: _panOffset.x,\n\t\t\ty: _panOffset.y\n\t\t};\n\n\t\t_roundPoint(destPanOffset);\n\n\t\tvar onUpdate = function(now) {\n\t\t\tif(now === 1) {\n\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t_panOffset.x = destPanOffset.x;\n\t\t\t\t_panOffset.y = destPanOffset.y;\n\t\t\t} else {\n\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t_panOffset.x = (destPanOffset.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t_panOffset.y = (destPanOffset.y - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t}\n\n\t\t\tif(updateFn) {\n\t\t\t\tupdateFn(now);\n\t\t\t}\n\n\t\t\t_applyCurrentZoomPan( now === 1 );\n\t\t};\n\n\t\tif(speed) {\n\t\t\t_animateProp('customZoomTo', 0, 1, speed, easingFn || framework.easing.sine.inOut, onUpdate);\n\t\t} else {\n\t\t\tonUpdate(1);\n\t\t}\n\t}\n\n\n};\n\n\n/*>>core*/\n\n/*>>gestures*/\n/**\n * Mouse/touch/pointer event handlers.\n * \n * separated from @core.js for readability\n */\n\nvar MIN_SWIPE_DISTANCE = 30,\n\tDIRECTION_CHECK_OFFSET = 10; // amount of pixels to drag to determine direction of swipe\n\nvar _gestureStartTime,\n\t_gestureCheckSpeedTime,\n\n\t// pool of objects that are used during dragging of zooming\n\tp = {}, // first point\n\tp2 = {}, // second point (for zoom gesture)\n\tdelta = {},\n\t_currPoint = {},\n\t_startPoint = {},\n\t_currPointers = [],\n\t_startMainScrollPos = {},\n\t_releaseAnimData,\n\t_posPoints = [], // array of points during dragging, used to determine type of gesture\n\t_tempPoint = {},\n\n\t_isZoomingIn,\n\t_verticalDragInitiated,\n\t_oldAndroidTouchEndTimeout,\n\t_currZoomedItemIndex = 0,\n\t_centerPoint = _getEmptyPoint(),\n\t_lastReleaseTime = 0,\n\t_isDragging, // at least one pointer is down\n\t_isMultitouch, // at least two _pointers are down\n\t_zoomStarted, // zoom level changed during zoom gesture\n\t_moved,\n\t_dragAnimFrame,\n\t_mainScrollShifted,\n\t_currentPoints, // array of current touch points\n\t_isZooming,\n\t_currPointsDistance,\n\t_startPointsDistance,\n\t_currPanBounds,\n\t_mainScrollPos = _getEmptyPoint(),\n\t_currZoomElementStyle,\n\t_mainScrollAnimating, // true, if animation after swipe gesture is running\n\t_midZoomPoint = _getEmptyPoint(),\n\t_currCenterPoint = _getEmptyPoint(),\n\t_direction,\n\t_isFirstMove,\n\t_opacityChanged,\n\t_bgOpacity,\n\t_wasOverInitialZoom,\n\n\t_isEqualPoints = function(p1, p2) {\n\t\treturn p1.x === p2.x && p1.y === p2.y;\n\t},\n\t_isNearbyPoints = function(touch0, touch1) {\n\t\treturn Math.abs(touch0.x - touch1.x) < DOUBLE_TAP_RADIUS && Math.abs(touch0.y - touch1.y) < DOUBLE_TAP_RADIUS;\n\t},\n\t_calculatePointsDistance = function(p1, p2) {\n\t\t_tempPoint.x = Math.abs( p1.x - p2.x );\n\t\t_tempPoint.y = Math.abs( p1.y - p2.y );\n\t\treturn Math.sqrt(_tempPoint.x * _tempPoint.x + _tempPoint.y * _tempPoint.y);\n\t},\n\t_stopDragUpdateLoop = function() {\n\t\tif(_dragAnimFrame) {\n\t\t\t_cancelAF(_dragAnimFrame);\n\t\t\t_dragAnimFrame = null;\n\t\t}\n\t},\n\t_dragUpdateLoop = function() {\n\t\tif(_isDragging) {\n\t\t\t_dragAnimFrame = _requestAF(_dragUpdateLoop);\n\t\t\t_renderMovement();\n\t\t}\n\t},\n\t_canPan = function() {\n\t\treturn !(_options.scaleMode === 'fit' && _currZoomLevel === self.currItem.initialZoomLevel);\n\t},\n\t\n\t// find the closest parent DOM element\n\t_closestElement = function(el, fn) {\n\t \tif(!el || el === document) {\n\t \t\treturn false;\n\t \t}\n\n\t \t// don't search elements above pswp__scroll-wrap\n\t \tif(el.getAttribute('class') && el.getAttribute('class').indexOf('pswp__scroll-wrap') > -1 ) {\n\t \t\treturn false;\n\t \t}\n\n\t \tif( fn(el) ) {\n\t \t\treturn el;\n\t \t}\n\n\t \treturn _closestElement(el.parentNode, fn);\n\t},\n\n\t_preventObj = {},\n\t_preventDefaultEventBehaviour = function(e, isDown) {\n\t _preventObj.prevent = !_closestElement(e.target, _options.isClickableElement);\n\n\t\t_shout('preventDragEvent', e, isDown, _preventObj);\n\t\treturn _preventObj.prevent;\n\n\t},\n\t_convertTouchToPoint = function(touch, p) {\n\t\tp.x = touch.pageX;\n\t\tp.y = touch.pageY;\n\t\tp.id = touch.identifier;\n\t\treturn p;\n\t},\n\t_findCenterOfPoints = function(p1, p2, pCenter) {\n\t\tpCenter.x = (p1.x + p2.x) * 0.5;\n\t\tpCenter.y = (p1.y + p2.y) * 0.5;\n\t},\n\t_pushPosPoint = function(time, x, y) {\n\t\tif(time - _gestureCheckSpeedTime > 50) {\n\t\t\tvar o = _posPoints.length > 2 ? _posPoints.shift() : {};\n\t\t\to.x = x;\n\t\t\to.y = y; \n\t\t\t_posPoints.push(o);\n\t\t\t_gestureCheckSpeedTime = time;\n\t\t}\n\t},\n\n\t_calculateVerticalDragOpacityRatio = function() {\n\t\tvar yOffset = _panOffset.y - self.currItem.initialPosition.y; // difference between initial and current position\n\t\treturn 1 - Math.abs( yOffset / (_viewportSize.y / 2) );\n\t},\n\n\t\n\t// points pool, reused during touch events\n\t_ePoint1 = {},\n\t_ePoint2 = {},\n\t_tempPointsArr = [],\n\t_tempCounter,\n\t_getTouchPoints = function(e) {\n\t\t// clean up previous points, without recreating array\n\t\twhile(_tempPointsArr.length > 0) {\n\t\t\t_tempPointsArr.pop();\n\t\t}\n\n\t\tif(!_pointerEventEnabled) {\n\t\t\tif(e.type.indexOf('touch') > -1) {\n\n\t\t\t\tif(e.touches && e.touches.length > 0) {\n\t\t\t\t\t_tempPointsArr[0] = _convertTouchToPoint(e.touches[0], _ePoint1);\n\t\t\t\t\tif(e.touches.length > 1) {\n\t\t\t\t\t\t_tempPointsArr[1] = _convertTouchToPoint(e.touches[1], _ePoint2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_ePoint1.x = e.pageX;\n\t\t\t\t_ePoint1.y = e.pageY;\n\t\t\t\t_ePoint1.id = '';\n\t\t\t\t_tempPointsArr[0] = _ePoint1;//_ePoint1;\n\t\t\t}\n\t\t} else {\n\t\t\t_tempCounter = 0;\n\t\t\t// we can use forEach, as pointer events are supported only in modern browsers\n\t\t\t_currPointers.forEach(function(p) {\n\t\t\t\tif(_tempCounter === 0) {\n\t\t\t\t\t_tempPointsArr[0] = p;\n\t\t\t\t} else if(_tempCounter === 1) {\n\t\t\t\t\t_tempPointsArr[1] = p;\n\t\t\t\t}\n\t\t\t\t_tempCounter++;\n\n\t\t\t});\n\t\t}\n\t\treturn _tempPointsArr;\n\t},\n\n\t_panOrMoveMainScroll = function(axis, delta) {\n\n\t\tvar panFriction,\n\t\t\toverDiff = 0,\n\t\t\tnewOffset = _panOffset[axis] + delta[axis],\n\t\t\tstartOverDiff,\n\t\t\tdir = delta[axis] > 0,\n\t\t\tnewMainScrollPosition = _mainScrollPos.x + delta.x,\n\t\t\tmainScrollDiff = _mainScrollPos.x - _startMainScrollPos.x,\n\t\t\tnewPanPos,\n\t\t\tnewMainScrollPos;\n\n\t\t// calculate fdistance over the bounds and friction\n\t\tif(newOffset > _currPanBounds.min[axis] || newOffset < _currPanBounds.max[axis]) {\n\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t// Linear increasing of friction, so at 1/4 of viewport it's at max value. \n\t\t\t// Looks not as nice as was expected. Left for history.\n\t\t\t// panFriction = (1 - (_panOffset[axis] + delta[axis] + panBounds.min[axis]) / (_viewportSize[axis] / 4) );\n\t\t} else {\n\t\t\tpanFriction = 1;\n\t\t}\n\t\t\n\t\tnewOffset = _panOffset[axis] + delta[axis] * panFriction;\n\n\t\t// move main scroll or start panning\n\t\tif(_options.allowPanToNext || _currZoomLevel === self.currItem.initialZoomLevel) {\n\n\n\t\t\tif(!_currZoomElementStyle) {\n\t\t\t\t\n\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t} else if(_direction === 'h' && axis === 'x' && !_zoomStarted ) {\n\t\t\t\t\n\t\t\t\tif(dir) {\n\t\t\t\t\tif(newOffset > _currPanBounds.min[axis]) {\n\t\t\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t\t\toverDiff = _currPanBounds.min[axis] - newOffset;\n\t\t\t\t\t\tstartOverDiff = _currPanBounds.min[axis] - _startPanOffset[axis];\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// drag right\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff < 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\t\t\t\t\t\tif(mainScrollDiff < 0 && newMainScrollPosition > _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif(newOffset < _currPanBounds.max[axis] ) {\n\t\t\t\t\t\tpanFriction =_options.panEndFriction;\n\t\t\t\t\t\toverDiff = newOffset - _currPanBounds.max[axis];\n\t\t\t\t\t\tstartOverDiff = _startPanOffset[axis] - _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff > 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t\t\t\tif(mainScrollDiff > 0 && newMainScrollPosition < _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\n\t\t\t\t//\n\t\t\t}\n\n\t\t\tif(axis === 'x') {\n\n\t\t\t\tif(newMainScrollPos !== undefined) {\n\t\t\t\t\t_moveMainScroll(newMainScrollPos, true);\n\t\t\t\t\tif(newMainScrollPos === _startMainScrollPos.x) {\n\t\t\t\t\t\t_mainScrollShifted = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_mainScrollShifted = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\tif(newPanPos !== undefined) {\n\t\t\t\t\t\t_panOffset.x = newPanPos;\n\t\t\t\t\t} else if(!_mainScrollShifted) {\n\t\t\t\t\t\t_panOffset.x += delta.x * panFriction;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn newMainScrollPos !== undefined;\n\t\t\t}\n\n\t\t}\n\n\t\tif(!_mainScrollAnimating) {\n\t\t\t\n\t\t\tif(!_mainScrollShifted) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\t_panOffset[axis] += delta[axis] * panFriction;\n\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\n\t\t}\n\t\t\n\t},\n\n\t// Pointerdown/touchstart/mousedown handler\n\t_onDragStart = function(e) {\n\n\t\t// Allow dragging only via left mouse button.\n\t\t// As this handler is not added in IE8 - we ignore e.which\n\t\t// \n\t\t// http://www.quirksmode.org/js/events_properties.html\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/event.button\n\t\tif(e.type === 'mousedown' && e.button > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_initialZoomRunning) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mousedown') {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_preventDefaultEventBehaviour(e, true)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\n\n\t\t_shout('pointerDown');\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex < 0) {\n\t\t\t\tpointerIndex = _currPointers.length;\n\t\t\t}\n\t\t\t_currPointers[pointerIndex] = {x:e.pageX, y:e.pageY, id: e.pointerId};\n\t\t}\n\t\t\n\n\n\t\tvar startPointsList = _getTouchPoints(e),\n\t\t\tnumPoints = startPointsList.length;\n\n\t\t_currentPoints = null;\n\n\t\t_stopAllAnimations();\n\n\t\t// init drag\n\t\tif(!_isDragging || numPoints === 1) {\n\n\t\t\t\n\n\t\t\t_isDragging = _isFirstMove = true;\n\t\t\tframework.bind(window, _upMoveEvents, self);\n\n\t\t\t_isZoomingIn = \n\t\t\t\t_wasOverInitialZoom = \n\t\t\t\t_opacityChanged = \n\t\t\t\t_verticalDragInitiated = \n\t\t\t\t_mainScrollShifted = \n\t\t\t\t_moved = \n\t\t\t\t_isMultitouch = \n\t\t\t\t_zoomStarted = false;\n\n\t\t\t_direction = null;\n\n\t\t\t_shout('firstTouchStart', startPointsList);\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_currPanDist.x = _currPanDist.y = 0;\n\t\t\t_equalizePoints(_currPoint, startPointsList[0]);\n\t\t\t_equalizePoints(_startPoint, _currPoint);\n\n\t\t\t//_equalizePoints(_startMainScrollPos, _mainScrollPos);\n\t\t\t_startMainScrollPos.x = _slideSize.x * _currPositionIndex;\n\n\t\t\t_posPoints = [{\n\t\t\t\tx: _currPoint.x,\n\t\t\t\ty: _currPoint.y\n\t\t\t}];\n\n\t\t\t_gestureCheckSpeedTime = _gestureStartTime = _getCurrentTime();\n\n\t\t\t//_mainScrollAnimationEnd(true);\n\t\t\t_calculatePanBounds( _currZoomLevel, true );\n\t\t\t\n\t\t\t// Start rendering\n\t\t\t_stopDragUpdateLoop();\n\t\t\t_dragUpdateLoop();\n\t\t\t\n\t\t}\n\n\t\t// init zoom\n\t\tif(!_isZooming && numPoints > 1 && !_mainScrollAnimating && !_mainScrollShifted) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_zoomStarted = false; // true if zoom changed at least once\n\n\t\t\t_isZooming = _isMultitouch = true;\n\t\t\t_currPanDist.y = _currPanDist.x = 0;\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_equalizePoints(p, startPointsList[0]);\n\t\t\t_equalizePoints(p2, startPointsList[1]);\n\n\t\t\t_findCenterOfPoints(p, p2, _currCenterPoint);\n\n\t\t\t_midZoomPoint.x = Math.abs(_currCenterPoint.x) - _panOffset.x;\n\t\t\t_midZoomPoint.y = Math.abs(_currCenterPoint.y) - _panOffset.y;\n\t\t\t_currPointsDistance = _startPointsDistance = _calculatePointsDistance(p, p2);\n\t\t}\n\n\n\t},\n\n\t// Pointermove/touchmove/mousemove handler\n\t_onDragMove = function(e) {\n\n\t\te.preventDefault();\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\tvar p = _currPointers[pointerIndex];\n\t\t\t\tp.x = e.pageX;\n\t\t\t\tp.y = e.pageY; \n\t\t\t}\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tvar touchesList = _getTouchPoints(e);\n\t\t\tif(!_direction && !_moved && !_isZooming) {\n\n\t\t\t\tif(_mainScrollPos.x !== _slideSize.x * _currPositionIndex) {\n\t\t\t\t\t// if main scroll position is shifted – direction is always horizontal\n\t\t\t\t\t_direction = 'h';\n\t\t\t\t} else {\n\t\t\t\t\tvar diff = Math.abs(touchesList[0].x - _currPoint.x) - Math.abs(touchesList[0].y - _currPoint.y);\n\t\t\t\t\t// check the direction of movement\n\t\t\t\t\tif(Math.abs(diff) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\t\t_direction = diff > 0 ? 'h' : 'v';\n\t\t\t\t\t\t_currentPoints = touchesList;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_currentPoints = touchesList;\n\t\t\t}\n\t\t}\t\n\t},\n\t// \n\t_renderMovement = function() {\n\n\t\tif(!_currentPoints) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar numPoints = _currentPoints.length;\n\n\t\tif(numPoints === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t_equalizePoints(p, _currentPoints[0]);\n\n\t\tdelta.x = p.x - _currPoint.x;\n\t\tdelta.y = p.y - _currPoint.y;\n\n\t\tif(_isZooming && numPoints > 1) {\n\t\t\t// Handle behaviour for more than 1 point\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\t\t\n\t\t\t// check if one of two points changed\n\t\t\tif( !delta.x && !delta.y && _isEqualPoints(_currentPoints[1], p2) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_equalizePoints(p2, _currentPoints[1]);\n\n\n\t\t\tif(!_zoomStarted) {\n\t\t\t\t_zoomStarted = true;\n\t\t\t\t_shout('zoomGestureStarted');\n\t\t\t}\n\t\t\t\n\t\t\t// Distance between two points\n\t\t\tvar pointsDistance = _calculatePointsDistance(p,p2);\n\n\t\t\tvar zoomLevel = _calculateZoomLevel(pointsDistance);\n\n\t\t\t// slightly over the of initial zoom level\n\t\t\tif(zoomLevel > self.currItem.initialZoomLevel + self.currItem.initialZoomLevel / 15) {\n\t\t\t\t_wasOverInitialZoom = true;\n\t\t\t}\n\n\t\t\t// Apply the friction if zoom level is out of the bounds\n\t\t\tvar zoomFriction = 1,\n\t\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\t\tif ( zoomLevel < minZoomLevel ) {\n\t\t\t\t\n\t\t\t\tif(_options.pinchToClose && !_wasOverInitialZoom && _startZoomLevel <= self.currItem.initialZoomLevel) {\n\t\t\t\t\t// fade out background if zooming out\n\t\t\t\t\tvar minusDiff = minZoomLevel - zoomLevel;\n\t\t\t\t\tvar percent = 1 - minusDiff / (minZoomLevel / 1.2);\n\n\t\t\t\t\t_applyBgOpacity(percent);\n\t\t\t\t\t_shout('onPinchClose', percent);\n\t\t\t\t\t_opacityChanged = true;\n\t\t\t\t} else {\n\t\t\t\t\tzoomFriction = (minZoomLevel - zoomLevel) / minZoomLevel;\n\t\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t\t}\n\t\t\t\t\tzoomLevel = minZoomLevel - zoomFriction * (minZoomLevel / 3);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if ( zoomLevel > maxZoomLevel ) {\n\t\t\t\t// 1.5 - extra zoom level above the max. E.g. if max is x6, real max 6 + 1.5 = 7.5\n\t\t\t\tzoomFriction = (zoomLevel - maxZoomLevel) / ( minZoomLevel * 6 );\n\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t}\n\t\t\t\tzoomLevel = maxZoomLevel + zoomFriction * minZoomLevel;\n\t\t\t}\n\n\t\t\tif(zoomFriction < 0) {\n\t\t\t\tzoomFriction = 0;\n\t\t\t}\n\n\t\t\t// distance between touch points after friction is applied\n\t\t\t_currPointsDistance = pointsDistance;\n\n\t\t\t// _centerPoint - The point in the middle of two pointers\n\t\t\t_findCenterOfPoints(p, p2, _centerPoint);\n\t\t\n\t\t\t// paning with two pointers pressed\n\t\t\t_currPanDist.x += _centerPoint.x - _currCenterPoint.x;\n\t\t\t_currPanDist.y += _centerPoint.y - _currCenterPoint.y;\n\t\t\t_equalizePoints(_currCenterPoint, _centerPoint);\n\n\t\t\t_panOffset.x = _calculatePanOffset('x', zoomLevel);\n\t\t\t_panOffset.y = _calculatePanOffset('y', zoomLevel);\n\n\t\t\t_isZoomingIn = zoomLevel > _currZoomLevel;\n\t\t\t_currZoomLevel = zoomLevel;\n\t\t\t_applyCurrentZoomPan();\n\n\t\t} else {\n\n\t\t\t// handle behaviour for one point (dragging or panning)\n\n\t\t\tif(!_direction) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_isFirstMove) {\n\t\t\t\t_isFirstMove = false;\n\n\t\t\t\t// subtract drag distance that was used during the detection direction \n\n\t\t\t\tif( Math.abs(delta.x) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.x -= _currentPoints[0].x - _startPoint.x;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( Math.abs(delta.y) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.y -= _currentPoints[0].y - _startPoint.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\n\t\t\t// do nothing if pointers position hasn't changed\n\t\t\tif(delta.x === 0 && delta.y === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_direction === 'v' && _options.closeOnVerticalDrag) {\n\t\t\t\tif(!_canPan()) {\n\t\t\t\t\t_currPanDist.y += delta.y;\n\t\t\t\t\t_panOffset.y += delta.y;\n\n\t\t\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\t\t\t_verticalDragInitiated = true;\n\t\t\t\t\t_shout('onVerticalDrag', opacityRatio);\n\n\t\t\t\t\t_applyBgOpacity(opacityRatio);\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_pushPosPoint(_getCurrentTime(), p.x, p.y);\n\n\t\t\t_moved = true;\n\t\t\t_currPanBounds = self.currItem.bounds;\n\t\t\t\n\t\t\tvar mainScrollChanged = _panOrMoveMainScroll('x', delta);\n\t\t\tif(!mainScrollChanged) {\n\t\t\t\t_panOrMoveMainScroll('y', delta);\n\n\t\t\t\t_roundPoint(_panOffset);\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t}\n\n\t},\n\t\n\t// Pointerup/pointercancel/touchend/touchcancel/mouseup event handler\n\t_onDragRelease = function(e) {\n\n\t\tif(_features.isOldAndroid ) {\n\n\t\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mouseup') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// on Android (v4.1, 4.2, 4.3 & possibly older) \n\t\t\t// ghost mousedown/up event isn't preventable via e.preventDefault,\n\t\t\t// which causes fake mousedown event\n\t\t\t// so we block mousedown/up for 600ms\n\t\t\tif( e.type.indexOf('touch') > -1 ) {\n\t\t\t\tclearTimeout(_oldAndroidTouchEndTimeout);\n\t\t\t\t_oldAndroidTouchEndTimeout = setTimeout(function() {\n\t\t\t\t\t_oldAndroidTouchEndTimeout = 0;\n\t\t\t\t}, 600);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t_shout('pointerUp');\n\n\t\tif(_preventDefaultEventBehaviour(e, false)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tvar releasePoint;\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\t\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\treleasePoint = _currPointers.splice(pointerIndex, 1)[0];\n\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\tvar MSPOINTER_TYPES = {\n\t\t\t\t\t\t4: 'mouse', // event.MSPOINTER_TYPE_MOUSE\n\t\t\t\t\t\t2: 'touch', // event.MSPOINTER_TYPE_TOUCH \n\t\t\t\t\t\t3: 'pen' // event.MSPOINTER_TYPE_PEN\n\t\t\t\t\t};\n\t\t\t\t\treleasePoint.type = MSPOINTER_TYPES[e.pointerType];\n\n\t\t\t\t\tif(!releasePoint.type) {\n\t\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tvar touchList = _getTouchPoints(e),\n\t\t\tgestureType,\n\t\t\tnumPoints = touchList.length;\n\n\t\tif(e.type === 'mouseup') {\n\t\t\tnumPoints = 0;\n\t\t}\n\n\t\t// Do nothing if there were 3 touch points or more\n\t\tif(numPoints === 2) {\n\t\t\t_currentPoints = null;\n\t\t\treturn true;\n\t\t}\n\n\t\t// if second pointer released\n\t\tif(numPoints === 1) {\n\t\t\t_equalizePoints(_startPoint, touchList[0]);\n\t\t}\t\t\t\t\n\n\n\t\t// pointer hasn't moved, send \"tap release\" point\n\t\tif(numPoints === 0 && !_direction && !_mainScrollAnimating) {\n\t\t\tif(!releasePoint) {\n\t\t\t\tif(e.type === 'mouseup') {\n\t\t\t\t\treleasePoint = {x: e.pageX, y: e.pageY, type:'mouse'};\n\t\t\t\t} else if(e.changedTouches && e.changedTouches[0]) {\n\t\t\t\t\treleasePoint = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY, type:'touch'};\n\t\t\t\t}\t\t\n\t\t\t}\n\n\t\t\t_shout('touchRelease', e, releasePoint);\n\t\t}\n\n\t\t// Difference in time between releasing of two last touch points (zoom gesture)\n\t\tvar releaseTimeDiff = -1;\n\n\t\t// Gesture completed, no pointers left\n\t\tif(numPoints === 0) {\n\t\t\t_isDragging = false;\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\n\t\t\t_stopDragUpdateLoop();\n\n\t\t\tif(_isZooming) {\n\t\t\t\t// Two points released at the same time\n\t\t\t\treleaseTimeDiff = 0;\n\t\t\t} else if(_lastReleaseTime !== -1) {\n\t\t\t\treleaseTimeDiff = _getCurrentTime() - _lastReleaseTime;\n\t\t\t}\n\t\t}\n\t\t_lastReleaseTime = numPoints === 1 ? _getCurrentTime() : -1;\n\t\t\n\t\tif(releaseTimeDiff !== -1 && releaseTimeDiff < 150) {\n\t\t\tgestureType = 'zoom';\n\t\t} else {\n\t\t\tgestureType = 'swipe';\n\t\t}\n\n\t\tif(_isZooming && numPoints < 2) {\n\t\t\t_isZooming = false;\n\n\t\t\t// Only second point released\n\t\t\tif(numPoints === 1) {\n\t\t\t\tgestureType = 'zoomPointerUp';\n\t\t\t}\n\t\t\t_shout('zoomGestureEnded');\n\t\t}\n\n\t\t_currentPoints = null;\n\t\tif(!_moved && !_zoomStarted && !_mainScrollAnimating && !_verticalDragInitiated) {\n\t\t\t// nothing to animate\n\t\t\treturn;\n\t\t}\n\t\n\t\t_stopAllAnimations();\n\n\t\t\n\t\tif(!_releaseAnimData) {\n\t\t\t_releaseAnimData = _initDragReleaseAnimationData();\n\t\t}\n\t\t\n\t\t_releaseAnimData.calculateSwipeSpeed('x');\n\n\n\t\tif(_verticalDragInitiated) {\n\n\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\tif(opacityRatio < _options.verticalDragRange) {\n\t\t\t\tself.close();\n\t\t\t} else {\n\t\t\t\tvar initalPanY = _panOffset.y,\n\t\t\t\t\tinitialBgOpacity = _bgOpacity;\n\n\t\t\t\t_animateProp('verticalDrag', 0, 1, 300, framework.easing.cubic.out, function(now) {\n\t\t\t\t\t\n\t\t\t\t\t_panOffset.y = (self.currItem.initialPosition.y - initalPanY) * now + initalPanY;\n\n\t\t\t\t\t_applyBgOpacity( (1 - initialBgOpacity) * now + initialBgOpacity );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t});\n\n\t\t\t\t_shout('onVerticalDrag', 1);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\n\t\t// main scroll \n\t\tif( (_mainScrollShifted || _mainScrollAnimating) && numPoints === 0) {\n\t\t\tvar itemChanged = _finishSwipeMainScrollGesture(gestureType, _releaseAnimData);\n\t\t\tif(itemChanged) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgestureType = 'zoomPointerUp';\n\t\t}\n\n\t\t// prevent zoom/pan animation when main scroll animation runs\n\t\tif(_mainScrollAnimating) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t// Complete simple zoom gesture (reset zoom level if it's out of the bounds) \n\t\tif(gestureType !== 'swipe') {\n\t\t\t_completeZoomGesture();\n\t\t\treturn;\n\t\t}\n\t\n\t\t// Complete pan gesture if main scroll is not shifted, and it's possible to pan current image\n\t\tif(!_mainScrollShifted && _currZoomLevel > self.currItem.fitRatio) {\n\t\t\t_completePanGesture(_releaseAnimData);\n\t\t}\n\t},\n\n\n\t// Returns object with data about gesture\n\t// It's created only once and then reused\n\t_initDragReleaseAnimationData = function() {\n\t\t// temp local vars\n\t\tvar lastFlickDuration,\n\t\t\ttempReleasePos;\n\n\t\t// s = this\n\t\tvar s = {\n\t\t\tlastFlickOffset: {},\n\t\t\tlastFlickDist: {},\n\t\t\tlastFlickSpeed: {},\n\t\t\tslowDownRatio: {},\n\t\t\tslowDownRatioReverse: {},\n\t\t\tspeedDecelerationRatio: {},\n\t\t\tspeedDecelerationRatioAbs: {},\n\t\t\tdistanceOffset: {},\n\t\t\tbackAnimDestination: {},\n\t\t\tbackAnimStarted: {},\n\t\t\tcalculateSwipeSpeed: function(axis) {\n\t\t\t\t\n\n\t\t\t\tif( _posPoints.length > 1) {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureCheckSpeedTime + 50;\n\t\t\t\t\ttempReleasePos = _posPoints[_posPoints.length-2][axis];\n\t\t\t\t} else {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureStartTime; // total gesture duration\n\t\t\t\t\ttempReleasePos = _startPoint[axis];\n\t\t\t\t}\n\t\t\t\ts.lastFlickOffset[axis] = _currPoint[axis] - tempReleasePos;\n\t\t\t\ts.lastFlickDist[axis] = Math.abs(s.lastFlickOffset[axis]);\n\t\t\t\tif(s.lastFlickDist[axis] > 20) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = s.lastFlickOffset[axis] / lastFlickDuration;\n\t\t\t\t} else {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\tif( Math.abs(s.lastFlickSpeed[axis]) < 0.1 ) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ts.slowDownRatio[axis] = 0.95;\n\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\ts.speedDecelerationRatio[axis] = 1;\n\t\t\t},\n\n\t\t\tcalculateOverBoundsAnimOffset: function(axis, speed) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\n\t\t\t\t\tif(_panOffset[axis] > _currPanBounds.min[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.min[axis];\n\t\t\t\t\t\t\n\t\t\t\t\t} else if(_panOffset[axis] < _currPanBounds.max[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif(s.backAnimDestination[axis] !== undefined) {\n\t\t\t\t\t\ts.slowDownRatio[axis] = 0.7;\n\t\t\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\t\t\tif(s.speedDecelerationRatioAbs[axis] < 0.05) {\n\n\t\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t\t\ts.backAnimStarted[axis] = true;\n\n\t\t\t\t\t\t\t_animateProp('bounceZoomPan'+axis,_panOffset[axis], \n\t\t\t\t\t\t\t\ts.backAnimDestination[axis], \n\t\t\t\t\t\t\t\tspeed || 300, \n\t\t\t\t\t\t\t\tframework.easing.sine.out, \n\t\t\t\t\t\t\t\tfunction(pos) {\n\t\t\t\t\t\t\t\t\t_panOffset[axis] = pos;\n\t\t\t\t\t\t\t\t\t_applyCurrentZoomPan();\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}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Reduces the speed by slowDownRatio (per 10ms)\n\t\t\tcalculateAnimOffset: function(axis) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\t\t\t\t\ts.speedDecelerationRatio[axis] = s.speedDecelerationRatio[axis] * (s.slowDownRatio[axis] + \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] - \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] * s.timeDiff / 10);\n\n\t\t\t\t\ts.speedDecelerationRatioAbs[axis] = Math.abs(s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis]);\n\t\t\t\t\ts.distanceOffset[axis] = s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis] * s.timeDiff;\n\t\t\t\t\t_panOffset[axis] += s.distanceOffset[axis];\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tpanAnimLoop: function() {\n\t\t\t\tif ( _animations.zoomPan ) {\n\t\t\t\t\t_animations.zoomPan.raf = _requestAF(s.panAnimLoop);\n\n\t\t\t\t\ts.now = _getCurrentTime();\n\t\t\t\t\ts.timeDiff = s.now - s.lastNow;\n\t\t\t\t\ts.lastNow = s.now;\n\t\t\t\t\t\n\t\t\t\t\ts.calculateAnimOffset('x');\n\t\t\t\t\ts.calculateAnimOffset('y');\n\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('x');\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('y');\n\n\n\t\t\t\t\tif (s.speedDecelerationRatioAbs.x < 0.05 && s.speedDecelerationRatioAbs.y < 0.05) {\n\n\t\t\t\t\t\t// round pan position\n\t\t\t\t\t\t_panOffset.x = Math.round(_panOffset.x);\n\t\t\t\t\t\t_panOffset.y = Math.round(_panOffset.y);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\n\t\t\t\t\t\t_stopAnimation('zoomPan');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t};\n\t\treturn s;\n\t},\n\n\t_completePanGesture = function(animData) {\n\t\t// calculate swipe speed for Y axis (paanning)\n\t\tanimData.calculateSwipeSpeed('y');\n\n\t\t_currPanBounds = self.currItem.bounds;\n\t\t\n\t\tanimData.backAnimDestination = {};\n\t\tanimData.backAnimStarted = {};\n\n\t\t// Avoid acceleration animation if speed is too low\n\t\tif(Math.abs(animData.lastFlickSpeed.x) <= 0.05 && Math.abs(animData.lastFlickSpeed.y) <= 0.05 ) {\n\t\t\tanimData.speedDecelerationRatioAbs.x = animData.speedDecelerationRatioAbs.y = 0;\n\n\t\t\t// Run pan drag release animation. E.g. if you drag image and release finger without momentum.\n\t\t\tanimData.calculateOverBoundsAnimOffset('x');\n\t\t\tanimData.calculateOverBoundsAnimOffset('y');\n\t\t\treturn true;\n\t\t}\n\n\t\t// Animation loop that controls the acceleration after pan gesture ends\n\t\t_registerStartAnimation('zoomPan');\n\t\tanimData.lastNow = _getCurrentTime();\n\t\tanimData.panAnimLoop();\n\t},\n\n\n\t_finishSwipeMainScrollGesture = function(gestureType, _releaseAnimData) {\n\t\tvar itemChanged;\n\t\tif(!_mainScrollAnimating) {\n\t\t\t_currZoomedItemIndex = _currentItemIndex;\n\t\t}\n\n\n\t\t\n\t\tvar itemsDiff;\n\n\t\tif(gestureType === 'swipe') {\n\t\t\tvar totalShiftDist = _currPoint.x - _startPoint.x,\n\t\t\t\tisFastLastFlick = _releaseAnimData.lastFlickDist.x < 10;\n\n\t\t\t// if container is shifted for more than MIN_SWIPE_DISTANCE, \n\t\t\t// and last flick gesture was in right direction\n\t\t\tif(totalShiftDist > MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x > 20) ) {\n\t\t\t\t// go to prev item\n\t\t\t\titemsDiff = -1;\n\t\t\t} else if(totalShiftDist < -MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x < -20) ) {\n\t\t\t\t// go to next item\n\t\t\t\titemsDiff = 1;\n\t\t\t}\n\t\t}\n\n\t\tvar nextCircle;\n\n\t\tif(itemsDiff) {\n\t\t\t\n\t\t\t_currentItemIndex += itemsDiff;\n\n\t\t\tif(_currentItemIndex < 0) {\n\t\t\t\t_currentItemIndex = _options.loop ? _getNumItems()-1 : 0;\n\t\t\t\tnextCircle = true;\n\t\t\t} else if(_currentItemIndex >= _getNumItems()) {\n\t\t\t\t_currentItemIndex = _options.loop ? 0 : _getNumItems()-1;\n\t\t\t\tnextCircle = true;\n\t\t\t}\n\n\t\t\tif(!nextCircle || _options.loop) {\n\t\t\t\t_indexDiff += itemsDiff;\n\t\t\t\t_currPositionIndex -= itemsDiff;\n\t\t\t\titemChanged = true;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t}\n\n\t\tvar animateToX = _slideSize.x * _currPositionIndex;\n\t\tvar animateToDist = Math.abs( animateToX - _mainScrollPos.x );\n\t\tvar finishAnimDuration;\n\n\n\t\tif(!itemChanged && animateToX > _mainScrollPos.x !== _releaseAnimData.lastFlickSpeed.x > 0) {\n\t\t\t// \"return to current\" duration, e.g. when dragging from slide 0 to -1\n\t\t\tfinishAnimDuration = 333; \n\t\t} else {\n\t\t\tfinishAnimDuration = Math.abs(_releaseAnimData.lastFlickSpeed.x) > 0 ? \n\t\t\t\t\t\t\t\t\tanimateToDist / Math.abs(_releaseAnimData.lastFlickSpeed.x) : \n\t\t\t\t\t\t\t\t\t333;\n\n\t\t\tfinishAnimDuration = Math.min(finishAnimDuration, 400);\n\t\t\tfinishAnimDuration = Math.max(finishAnimDuration, 250);\n\t\t}\n\n\t\tif(_currZoomedItemIndex === _currentItemIndex) {\n\t\t\titemChanged = false;\n\t\t}\n\t\t\n\t\t_mainScrollAnimating = true;\n\t\t\n\t\t_shout('mainScrollAnimStart');\n\n\t\t_animateProp('mainScroll', _mainScrollPos.x, animateToX, finishAnimDuration, framework.easing.cubic.out, \n\t\t\t_moveMainScroll,\n\t\t\tfunction() {\n\t\t\t\t_stopAllAnimations();\n\t\t\t\t_mainScrollAnimating = false;\n\t\t\t\t_currZoomedItemIndex = -1;\n\t\t\t\t\n\t\t\t\tif(itemChanged || _currZoomedItemIndex !== _currentItemIndex) {\n\t\t\t\t\tself.updateCurrItem();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t_shout('mainScrollAnimComplete');\n\t\t\t}\n\t\t);\n\n\t\tif(itemChanged) {\n\t\t\tself.updateCurrItem(true);\n\t\t}\n\n\t\treturn itemChanged;\n\t},\n\n\t_calculateZoomLevel = function(touchesDistance) {\n\t\treturn 1 / _startPointsDistance * touchesDistance * _startZoomLevel;\n\t},\n\n\t// Resets zoom if it's out of bounds\n\t_completeZoomGesture = function() {\n\t\tvar destZoomLevel = _currZoomLevel,\n\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\tif ( _currZoomLevel < minZoomLevel ) {\n\t\t\tdestZoomLevel = minZoomLevel;\n\t\t} else if ( _currZoomLevel > maxZoomLevel ) {\n\t\t\tdestZoomLevel = maxZoomLevel;\n\t\t}\n\n\t\tvar destOpacity = 1,\n\t\t\tonUpdate,\n\t\t\tinitialOpacity = _bgOpacity;\n\n\t\tif(_opacityChanged && !_isZoomingIn && !_wasOverInitialZoom && _currZoomLevel < minZoomLevel) {\n\t\t\t//_closedByScroll = true;\n\t\t\tself.close();\n\t\t\treturn true;\n\t\t}\n\n\t\tif(_opacityChanged) {\n\t\t\tonUpdate = function(now) {\n\t\t\t\t_applyBgOpacity( (destOpacity - initialOpacity) * now + initialOpacity );\n\t\t\t};\n\t\t}\n\n\t\tself.zoomTo(destZoomLevel, 0, 200, framework.easing.cubic.out, onUpdate);\n\t\treturn true;\n\t};\n\n\n_registerModule('Gestures', {\n\tpublicMethods: {\n\n\t\tinitGestures: function() {\n\n\t\t\t// helper function that builds touch/pointer/mouse events\n\t\t\tvar addEventNames = function(pref, down, move, up, cancel) {\n\t\t\t\t_dragStartEvent = pref + down;\n\t\t\t\t_dragMoveEvent = pref + move;\n\t\t\t\t_dragEndEvent = pref + up;\n\t\t\t\tif(cancel) {\n\t\t\t\t\t_dragCancelEvent = pref + cancel;\n\t\t\t\t} else {\n\t\t\t\t\t_dragCancelEvent = '';\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t_pointerEventEnabled = _features.pointerEvent;\n\t\t\tif(_pointerEventEnabled && _features.touch) {\n\t\t\t\t// we don't need touch events, if browser supports pointer events\n\t\t\t\t_features.touch = false;\n\t\t\t}\n\n\t\t\tif(_pointerEventEnabled) {\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\t// IE10 pointer events are case-sensitive\n\t\t\t\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t\t\t\t} else {\n\t\t\t\t\taddEventNames('pointer', 'down', 'move', 'up', 'cancel');\n\t\t\t\t}\n\t\t\t} else if(_features.touch) {\n\t\t\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t\t\t\t_likelyTouchDevice = true;\n\t\t\t} else {\n\t\t\t\taddEventNames('mouse', 'down', 'move', 'up');\t\n\t\t\t}\n\n\t\t\t_upMoveEvents = _dragMoveEvent + ' ' + _dragEndEvent + ' ' + _dragCancelEvent;\n\t\t\t_downEvents = _dragStartEvent;\n\n\t\t\tif(_pointerEventEnabled && !_likelyTouchDevice) {\n\t\t\t\t_likelyTouchDevice = (navigator.maxTouchPoints > 1) || (navigator.msMaxTouchPoints > 1);\n\t\t\t}\n\t\t\t// make variable public\n\t\t\tself.likelyTouchDevice = _likelyTouchDevice; \n\t\t\t\n\t\t\t_globalEventHandlers[_dragStartEvent] = _onDragStart;\n\t\t\t_globalEventHandlers[_dragMoveEvent] = _onDragMove;\n\t\t\t_globalEventHandlers[_dragEndEvent] = _onDragRelease; // the Kraken\n\n\t\t\tif(_dragCancelEvent) {\n\t\t\t\t_globalEventHandlers[_dragCancelEvent] = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\t// Bind mouse events on device with detected hardware touch support, in case it supports multiple types of input.\n\t\t\tif(_features.touch) {\n\t\t\t\t_downEvents += ' mousedown';\n\t\t\t\t_upMoveEvents += ' mousemove mouseup';\n\t\t\t\t_globalEventHandlers.mousedown = _globalEventHandlers[_dragStartEvent];\n\t\t\t\t_globalEventHandlers.mousemove = _globalEventHandlers[_dragMoveEvent];\n\t\t\t\t_globalEventHandlers.mouseup = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\tif(!_likelyTouchDevice) {\n\t\t\t\t// don't allow pan to next slide from zoomed state on Desktop\n\t\t\t\t_options.allowPanToNext = false;\n\t\t\t}\n\t\t}\n\n\t}\n});\n\n\n/*>>gestures*/\n\n/*>>show-hide-transition*/\n/**\n * show-hide-transition.js:\n *\n * Manages initial opening or closing transition.\n *\n * If you're not planning to use transition for gallery at all,\n * you may set options hideAnimationDuration and showAnimationDuration to 0,\n * and just delete startAnimation function.\n * \n */\n\n\nvar _showOrHideTimeout,\n\t_showOrHide = function(item, img, out, completeFn) {\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\n\t\t_initialZoomRunning = true;\n\t\t_initialContentSet = true;\n\t\t\n\t\t// dimensions of small thumbnail {x:,y:,w:}.\n\t\t// Height is optional, as calculated based on large image.\n\t\tvar thumbBounds; \n\t\tif(item.initialLayout) {\n\t\t\tthumbBounds = item.initialLayout;\n\t\t\titem.initialLayout = null;\n\t\t} else {\n\t\t\tthumbBounds = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t}\n\n\t\tvar duration = out ? _options.hideAnimationDuration : _options.showAnimationDuration;\n\n\t\tvar onComplete = function() {\n\t\t\t_stopAnimation('initialZoom');\n\t\t\tif(!out) {\n\t\t\t\t_applyBgOpacity(1);\n\t\t\t\tif(img) {\n\t\t\t\t\timg.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tframework.addClass(template, 'pswp--animated-in');\n\t\t\t\t_shout('initialZoom' + (out ? 'OutEnd' : 'InEnd'));\n\t\t\t} else {\n\t\t\t\tself.template.removeAttribute('style');\n\t\t\t\tself.bg.removeAttribute('style');\n\t\t\t}\n\n\t\t\tif(completeFn) {\n\t\t\t\tcompleteFn();\n\t\t\t}\n\t\t\t_initialZoomRunning = false;\n\t\t};\n\n\t\t// if bounds aren't provided, just open gallery without animation\n\t\tif(!duration || !thumbBounds || thumbBounds.x === undefined) {\n\n\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\n\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t_applyCurrentZoomPan();\n\n\t\t\ttemplate.style.opacity = out ? 0 : 1;\n\t\t\t_applyBgOpacity(1);\n\n\t\t\tif(duration) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tonComplete();\n\t\t\t\t}, duration);\n\t\t\t} else {\n\t\t\t\tonComplete();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAnimation = function() {\n\t\t\tvar closeWithRaf = _closedByScroll,\n\t\t\t\tfadeEverything = !self.currItem.src || self.currItem.loadError || _options.showHideOpacity;\n\t\t\t\n\t\t\t// apply hw-acceleration to image\n\t\t\tif(item.miniImg) {\n\t\t\t\titem.miniImg.style.webkitBackfaceVisibility = 'hidden';\n\t\t\t}\n\n\t\t\tif(!out) {\n\t\t\t\t_currZoomLevel = thumbBounds.w / item.w;\n\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t_panOffset.y = thumbBounds.y - _initalWindowScrollY;\n\n\t\t\t\tself[fadeEverything ? 'template' : 'bg'].style.opacity = 0.001;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t\t_registerStartAnimation('initialZoom');\n\t\t\t\n\t\t\tif(out && !closeWithRaf) {\n\t\t\t\tframework.removeClass(template, 'pswp--animated-in');\n\t\t\t}\n\n\t\t\tif(fadeEverything) {\n\t\t\t\tif(out) {\n\t\t\t\t\tframework[ (closeWithRaf ? 'remove' : 'add') + 'Class' ](template, 'pswp--animate_opacity');\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tframework.addClass(template, 'pswp--animate_opacity');\n\t\t\t\t\t}, 30);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_showOrHideTimeout = setTimeout(function() {\n\n\t\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\t\t\t\t\n\n\t\t\t\tif(!out) {\n\n\t\t\t\t\t// \"in\" animation always uses CSS transitions (instead of rAF).\n\t\t\t\t\t// CSS transition work faster here, \n\t\t\t\t\t// as developer may also want to animate other things, \n\t\t\t\t\t// like ui on top of sliding area, which can be animated just via CSS\n\t\t\t\t\t\n\t\t\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t_applyBgOpacity(1);\n\n\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\ttemplate.style.opacity = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_applyBgOpacity(1);\n\t\t\t\t\t}\n\n\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t} else {\n\n\t\t\t\t\t// \"out\" animation uses rAF only when PhotoSwipe is closed by browser scroll, to recalculate position\n\t\t\t\t\tvar destZoomLevel = thumbBounds.w / item.w,\n\t\t\t\t\t\tinitialPanOffset = {\n\t\t\t\t\t\t\tx: _panOffset.x,\n\t\t\t\t\t\t\ty: _panOffset.y\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinitialZoomLevel = _currZoomLevel,\n\t\t\t\t\t\tinitalBgOpacity = _bgOpacity,\n\t\t\t\t\t\tonUpdate = function(now) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(now === 1) {\n\t\t\t\t\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t\t\t\t\t_panOffset.y = thumbBounds.y - _currentWindowScrollY;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = (thumbBounds.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t\t\t\t\t_panOffset.y = (thumbBounds.y - _currentWindowScrollY - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\t\t\ttemplate.style.opacity = 1 - now;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_applyBgOpacity( initalBgOpacity - now * initalBgOpacity );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\tif(closeWithRaf) {\n\t\t\t\t\t\t_animateProp('initialZoom', 0, 1, duration, framework.easing.cubic.out, onUpdate, onComplete);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonUpdate(1);\n\t\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t}, out ? 25 : 90); // Main purpose of this delay is to give browser time to paint and\n\t\t\t\t\t// create composite layers of PhotoSwipe UI parts (background, controls, caption, arrows).\n\t\t\t\t\t// Which avoids lag at the beginning of scale transition.\n\t\t};\n\t\tstartAnimation();\n\n\t\t\n\t};\n\n/*>>show-hide-transition*/\n\n/*>>items-controller*/\n/**\n*\n* Controller manages gallery items, their dimensions, and their content.\n* \n*/\n\nvar _items,\n\t_tempPanAreaSize = {},\n\t_imagesToAppendPool = [],\n\t_initialContentSet,\n\t_initialZoomRunning,\n\t_controllerDefaultOptions = {\n\t\tindex: 0,\n\t\terrorMsg: '