{"version":3,"sources":["bootstrap.js","jquery-migrate-3.0.0.js","jquery.mobile-events.js","bootstrap-add-clear.js","camera.js","underscore-min.js","jquery.lazy.js","cropper.js","photoswipe.js","photoswipe-ui-default.js","gallery.js","jquery.matchHeight.js","loadingoverlay.js","loadingoverlay_progress.js","jquery-confirm.js","jquery.toast.min.js","swiper.js","jquery.timeago.js","jquery.timeago.trans.js","jquery-ui.js","ixtranet_util.js"],"names":["jQuery","window","migrateVersion","migrateMute","log","console","apply","arguments","test","fn","jquery","migrateWarnings","warnedAbout","migrateWarn","msg","push","warn","migrateTrace","trace","migrateWarnProp","obj","prop","value","Object","defineProperty","configurable","enumerable","get","undefined","migrateReset","length","document","compatMode","findProp","oldInit","init","oldIsNumeric","isNumeric","oldFind","find","rattrHashTest","rattrHashGlob","arg1","args","Array","prototype","slice","call","this","selector","querySelector","err1","replace","_","attr","op","err2","hasOwnProperty","size","parseJSON","JSON","parse","val","realStringObj","newValue","oldValue","toString","isArray","parseFloat","uniqueSort","expr","pseudos","oldAjax","ajax","jQXHR","promise","done","fail","always","oldRemoveAttr","removeAttr","oldToggleClass","toggleClass","rmatchNonSpace","name","self","each","match","i","bool","state","className","getAttribute","data","setAttribute","internalSwapCall","swap","oldHook","cssHooks","ret","elem","options","callback","old","style","oldData","curData","camelCase","hasData","oldTweenRun","Tween","run","percent","easing","bind","duration","oldLoad","load","originalFix","event","fix","props","fixHooks","originalEvent","type","fixHook","join","addProp","pop","_migrated_","filter","splice","on","triggerHandler","special","ready","setup","extend","types","unbind","off","delegate","undelegate","oldOffset","offset","docElem","origin","top","left","nodeType","ownerDocument","documentElement","contains","oldParam","param","traditional","ajaxTraditional","ajaxSettings","oldSelf","andSelf","addBack","oldDeferred","Deferred","tuples","Callbacks","func","deferred","pipe","fns","newDefer","tuple","isFunction","returned","resolve","reject","progress","notify","$","attrFn","agent","navigator","userAgent","toLowerCase","isChromeDesktop","indexOf","settings","tap_pixel_range","swipe_h_threshold","swipe_v_threshold","taphold_threshold","doubletap_int","touch_capable","orientation_support","startevent","endevent","moveevent","tapevent","scrollevent","hold_timer","tap_timer","isTouchCapable","getStartEvent","getEndEvent","getMoveEvent","getTapEvent","getScrollEvent","trigger","tapstart","thisObject","$this","tapStartFunc","e","which","origEvent","touchData","position","x","touches","screenX","y","screenY","Math","round","changedTouches","pageX","pageY","time","Date","now","target","triggerCustomEvent","remove","callee","tapmove","tapMoveFunc","tapend","tapEndFunc","taphold","origTarget","start_pos","end_x","end_y","tapHoldFunc1","start_time","startPosition","startOffset","offsetLeft","offsetX","offsetTop","offsetY","targetTouches","ele_threshold","parent","threshold","parseInt","setTimeout","diff_x","diff_y","end_time","endPosition","endOffset","startTime","endTime","tapHoldFunc2","clearTimeout","tapHoldFunc3","callee1","callee2","callee3","doubletap","action","firstTap","cooling","doubleTapFunc1","doubleTapFunc2","delta","lastTap","secondTap","interval","singletap","singleTapFunc1","singleTapFunc2","end_pos_x","end_pos_y","tap","started","tapFunc1","tapFunc2","touch","swipe","startEvnt","hasSwiped","originalCoord","finalCoord","touchStart","currentTarget","touchMove","swipedir","ele_x_threshold","ele_y_threshold","h_threshold","v_threshold","endEvnt","xAmount","abs","yAmount","direction","touchEnd","scrollstart","scrolling","timer","scrollFunc","get_orientation","last_orientation","initial_orientation_is_landscape","initial_orientation_is_default","win","portrait_map","0","180","ww","innerWidth","width","wh","innerHeight","height","orientation","-90","90","handler","orientationchange","teardown","add","handleObj","old_handler","clientWidth","clientHeight","throttledresize","throttle_handler","heldCall","curr","diff","lastCall","eventType","originalType","dispatch","scrollend","swipeup","swiperight","swipedown","swipeleft","swipeend","tap2","srcE","noop","pluginName","Plugin","element","defaults","_defaults","_name","me","wrap","wrapperClass","after","symbolClass","closeSymbol","next","css","color","cursor","text-decoration","display","overflow","pointer-events","right","z-index","zindex","showOnLoad","siblings","show","hideOnBlur","hide","clearOnEscape","keyCode","focus","onClear","returnFocus","preventDefault","optionName","optionValue","oldInstance","Constructor","Error","compress","imgElem","maxSize","mimeType","quality","calcWidth","calcHeight","ratio","actWidth","actHeight","canvas","createElement","context","getContext","scale","drawImage","toDataURL","version","split","emulateTransitionEnd","called","$el","one","support","transition","end","el","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","bsTransitionEnd","bindType","delegateType","handle","is","dismiss","Alert","close","VERSION","TRANSITION_DURATION","$parent","removeElement","detach","closest","Event","isDefaultPrevented","removeClass","hasClass","alert","option","noConflict","Button","$element","DEFAULTS","isLoading","toggle","setState","loadingText","d","resetText","proxy","addClass","changed","$input","button","$btn","first","Carousel","$indicators","paused","sliding","$active","$items","keyboard","keydown","pause","cycle","slide","to","tagName","prev","clearInterval","setInterval","getItemIndex","item","children","index","getItemForDirection","active","activeIndex","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","offsetWidth","carousel","clickHandler","href","$target","slideIndex","$carousel","Collapse","$trigger","id","transitioning","getParent","addAriaAndCollapsedClass","getTargetFromTrigger","dimension","activesData","actives","startEvent","complete","scrollSize","offsetHeight","isOpen","collapse","backdrop","Dropdown","clearMenus","isActive","insertAfter","stopPropagation","dropdown","Modal","$body","body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","_relatedTarget","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","escape","resize","appendTo","scrollTop","adjustDialog","enforceFocus","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","doAnimate","callbackRemove","modalIsOverflowing","scrollHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","documentElementRect","getBoundingClientRect","measureScrollbar","bodyPad","scrollDiv","append","removeChild","modal","showEvent","Tooltip","enabled","timeout","hoverState","inState","animation","placement","template","title","delay","html","container","viewport","padding","getOptions","$viewport","click","hover","constructor","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","key","tip","isInStateTrue","hasContent","inDom","$tip","tipId","getUID","setContent","autoToken","autoPlace","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","bottom","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","marginTop","marginLeft","isNaN","setOffset","using","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","elRect","isSvg","SVGElement","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","removeData","tooltip","Popover","content","getContent","popover","ScrollSpy","$scrollElement","offsets","targets","activeTarget","process","refresh","getScrollHeight","max","offsetMethod","offsetBase","isWindow","map","$href","sort","a","b","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetBottom","targetHeight","initializing","colliderTop","getPinnedOffset","affix","affixType","n","r","u","k","m","keys","c","t","O","min","l","I","Function","f","s","p","h","v","g","create","_wrapped","exports","module","identity","isObject","matcher","property","iteratee","j","w","A","pow","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","findIndex","findKey","select","negate","every","all","some","any","includes","include","values","invoke","pluck","where","findWhere","shuffle","sample","sortBy","criteria","F","groupBy","indexBy","countBy","toArray","partition","head","take","initial","last","rest","tail","drop","compact","S","isArguments","flatten","without","difference","uniq","unique","isBoolean","union","intersection","zip","unzip","object","findLastIndex","sortedIndex","floor","lastIndexOf","range","ceil","E","TypeError","concat","partial","bindAll","memoize","cache","defer","throttle","leading","trailing","debounce","compose","before","once","M","propertyIsEnumerable","allKeys","mapObject","pairs","invert","functions","methods","extendOwn","assign","pick","omit","String","clone","isMatch","N","isEqual","isEmpty","isString","isElement","Int8Array","isFinite","isNumber","isNull","isUndefined","constant","propertyOf","matches","times","getTime","B","&","<",">","\"","'","`","T","R","RegExp","unescape","result","q","uniqueId","templateSettings","evaluate","interpolate","K","z","\\","\r","\n","
","
","D","L","source","variable","chain","_chain","P","mixin","valueOf","toJSON","define","amd","Zepto","lazyInstanceId","windowLoaded","_executeLazy","instance","config","items","events","namespace","_awaitingAfterLoad","_actualWidth","_actualHeight","_isRetinaDisplay","_afterLoad","_load","_error","_img","_src","_srcset","_sizes","_backgroundImage","_initialize","lastExecute","devicePixelRatio","_prepareItems","_lazyLoadItems","combined","ignoreThrottle","elapsed","enableThrottle","additionalItems","loadedName","forcedItems","appendScroll","defaultImage","placeholder","imageBase","srcsetAttribute","loaderAttribute","forcedTags","_f","tag","_getElementTagName","handledName","attribute","elementImageBase","imageBaseAttribute","_getCorrectedSrcSet","allItems","forced","elements","loadTriggered","_isInLoadableArea","customLoader","visibleOnly","_handleItem","autoDestroy","errorCallback","_triggerCallback","_reduceAwaiting","srcAttribute","sizesAttribute","retinaAttribute","removeAttribute","elementRetina","loadCallback","response","imageObj","Image","effect","effectTime","imageSrc","elementBound","scrollDirection","vertical","horizontal","srcset","entries","trim","LazyPlugin","_instance","_config","_events","_namespace","entryName","addItems","getItems","update","useThrottle","force","loadAll","chainable","Lazy","lazy","names","loader","beforeLoad","afterLoad","onError","onFinishedAll","global","factory","Cropper","viewMode","dragMode","aspectRatio","NaN","preview","responsive","restore","checkCrossOrigin","checkOrientation","guides","center","highlight","background","autoCrop","autoCropArea","movable","rotatable","scalable","zoomable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","cropstart","cropmove","cropend","crop","zoom","_typeof","Symbol","iterator","classCallCheck","createClass","defineProperties","descriptor","writable","protoProps","staticProps","REGEXP_DATA_URL_HEAD","REGEXP_HYPHENATE","REGEXP_ORIGINS","REGEXP_SPACES","REGEXP_SUFFIX","REGEXP_TRIM","IS_SAFARI_OR_UIWEBVIEW","objectProto","fromCharCode","typeOf","num","isPlainObject","_constructor","str","arr","_len","_key","deep","shift","arg","_len2","_key2","_len3","args2","_key3","setStyle","styles","classList","added","hyphenate","getData$1","dataset","setData$1","removeListener","removeEventListener","detachEvent","addListener","_handler","originalHandler","_len4","_key4","addEventListener","attachEvent","dispatchEvent","CustomEvent","bubbles","cancelable","detail","createEvent","initEvent","initCustomEvent","fireEvent","getEvent","srcElement","clientX","eventDoc","doc","scrollLeft","clientLeft","clientY","clientTop","getOffset","box","scrollX","scrollY","getByTag","getElementsByTagName","getByClass","getElementsByClassName","querySelectorAll","appendChild","parentNode","isCrossOriginURL","url","parts","location","protocol","hostname","port","addTimestamp","timestamp","getTransforms","transforms","translateX","translateY","rotate","scaleX","scaleY","transform","WebkitTransform","msTransform","getRotatedSizes","reversed","deg","degree","arc","PI","sinArc","sin","cosArc","cos","newWidth","newHeight","getSourceCanvas","image","dstX","dstY","dstWidth","naturalWidth","dstHeight","naturalHeight","advanced","canvasWidth","canvasHeight","rotated","save","translate","getOrientation","arrayBuffer","dataView","DataView","byteLength","tiffOffset","firstIFDOffset","littleEndian","endianness","app1Start","ifdStart","getUint8","start","getStringFromCharCode","getUint16","getUint32","setUint16","render$1","render","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","containerData","cropper","hidden","Number","imageData","canvasData","oldLeft","oldTop","limited","limitCanvas","initialImageData","initialCanvasData","sizeLimited","positionLimited","cropBoxData","minWidth","minHeight","maxWidth","Infinity","maxHeight","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","rotatedData","renderImage","limitCropBox","output","newImageData","reversedData","reversedWidth","reversedHeight","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","disabled","getData","preview$1","initPreview","crossOrigin","crossOriginUrl","src","viewBox","image2","previews","img","innerHTML","cssText","firstChild","empty","resetPreview","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","PointerEvent","EVENT_MOUSE_DOWN","EVENT_MOUSE_MOVE","EVENT_MOUSE_UP","onCropStart","cropStart","onWheel","wheel","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","REGEXP_ACTIONS","getPointer","_ref","endOnly","endX","endY","startX","startY","handlers","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","dragBox","wheeling","deltaY","wheelDelta","pointers","identifier","pointerId","cropping","change","change$1","renderable","shiftKey","pointer","X","Y","move","pointers2","ratios","pointer2","x1","y1","x2","y2","z1","sqrt","getMaxZoomRatio","reset","onlyColorChanged","isImg","replaced","loaded","originalUrl","unbuild","moveTo","_originalEvent","zoomTo","oldRatio","count","getPointersCenter","rotateTo","_scaleX","_scaleY","rounded","setData","scaled","getContainerData","getImageData","widthChanged","heightChanged","getCroppedCanvas","HTMLCanvasElement","scaledWidth","scaledHeight","scaledRatio","fillColor","fillStyle","fillRect","sourceWidth","sourceHeight","params","srcX","srcY","srcWidth","srcHeight","parameters","arr2","from","toConsumableArray","setAspectRatio","mode","croppable","REGEXP_DATA_URL","AnotherCropper","ArrayBuffer","read","dataURL","base64","decodeURIComponent","binary","atob","Uint8Array","charCodeAt","dataURLToArrayBuffer","xhr","XMLHttpRequest","onerror","onabort","onload","open","responseType","withCredentials","send","btoa","arrayBufferToDataURL","stop","onStart","onStop","insertBefore","nextSibling","newImage","getImageSize","build","NAMESPACE","completing","ImageCropper","imageSelector","getCropper","destroyCropper","getImageSelector","getCroppedImage","imgData","uploadImage","JSInterface","onSavePicture","captureImage","loadImage","setImage","root","PhotoSwipe","UiClass","framework","features","listener","methodName","createEl","classes","getScrollY","yOffset","pageYOffset","reg","getChildByClass","parentEl","childClassName","node","arraySearch","array","o1","o2","preventOverwrite","sine","out","inOut","cubic","detectFeatures","helperStyle","vendor","oldIE","requestAnimationFrame","raf","caf","cancelAnimationFrame","pointerEvent","pointerEnabled","msPointerEnabled","ua","platform","appVersion","isOldIOSPhone","androidversion","isOldAndroid","androidVersion","isMobileOpera","styleCheckItem","styleName","styleChecks","vendors","charAt","toUpperCase","lastTime","currTime","timeToCall","svg","createElementNS","createSVGRect","evName","_handleEv","handleEvent","allowPanToNext","spacing","bgOpacity","mouseUsed","loop","pinchToClose","closeOnScroll","closeOnVerticalDrag","hideAnimationDuration","showAnimationDuration","showHideOpacity","escKey","arrowKeys","mainScrollEndFriction","panEndFriction","isClickableElement","getDoubleTapZoom","isMouseClick","maxSpreadZoom","scaleMode","alwaysFadeIn","_isOpen","_isDestroying","_closedByScroll","_currentItemIndex","_containerStyle","_containerShiftIndex","_upMoveEvents","_downEvents","_globalEventHandlers","_currZoomLevel","_startZoomLevel","_translatePrefix","_translateSufix","_updateSizeInterval","_itemsNeedUpdate","_offset","_scrollChanged","_itemHolders","_prevItemIndex","_dragStartEvent","_dragMoveEvent","_dragEndEvent","_dragCancelEvent","_transformKey","_pointerEventEnabled","_likelyTouchDevice","_requestAF","_cancelAF","_initalClassName","_initalWindowScrollY","_oldIE","_currentWindowScrollY","_features","_gestureStartTime","_gestureCheckSpeedTime","_releaseAnimData","_isZoomingIn","_verticalDragInitiated","_oldAndroidTouchEndTimeout","_isDragging","_isMultitouch","_zoomStarted","_moved","_dragAnimFrame","_mainScrollShifted","_currentPoints","_isZooming","_startPointsDistance","_currPanBounds","_currZoomElementStyle","_mainScrollAnimating","_direction","_isFirstMove","_opacityChanged","_bgOpacity","_wasOverInitialZoom","_tempCounter","_currPanDist","_startPanOffset","_panOffset","_viewportSize","_currPositionIndex","_slideSize","_indexDiff","_isFixedPosition","_modules","_windowVisibleSize","_registerModule","publicMethods","_getLoopedId","numSlides","_getNumItems","_listeners","_listen","_shout","listeners","_getCurrentTime","_applyBgOpacity","opacity","bg","_applyZoomTransform","styleObj","_applyCurrentZoomPan","_applyZoomPanToItem","initialPosition","initialZoomLevel","_setTranslateX","elStyle","_moveMainScroll","dragging","newSlideIndexOffset","_mainScrollPos","_calculatePanOffset","axis","zoomLevel","_midZoomPoint","_equalizePoints","p1","p2","_roundPoint","_mouseMoveTimeout","_onFirstMouseMove","_calculatePanBounds","bounds","_calculateItemSize","currItem","_getMinZoomLevel","_getMaxZoomLevel","_modifyDestPanOffset","destPanBounds","destPanOffset","destZoomLevel","_onKeyDown","keydownAction","ctrlKey","altKey","metaKey","returnValue","_onGlobalClick","_onPageScroll","likelyTouchDevice","_animations","_numAnimations","_stopAnimation","_registerStartAnimation","_stopAllAnimations","_animateProp","endProp","easingFn","onUpdate","onComplete","startAnimTime","animloop","shout","listen","viewportSize","isMainScrollAnimating","getZoomLevel","getCurrentIndex","isDragging","isZooming","applyZoomPan","panX","panY","scrollWrap","itemHolders","allow3dTransform","perspective","fitRatio","_setupTransforms","updateSize","oldPhone","animationName","ui","_getItemAt","rootClasses","mainClass","updateCurrItem","_showOrHide","_showOrHideTimeout","_stopDragUpdateLoop","panTo","goTo","updateCurrZoomItem","emulateSetContent","zoomElement","invalidateCurrItems","needsUpdate","beforeAnimation","tempHolder","diffAbs","NUM_HOLDERS","unshift","prevItem","windowScrollY","holder","hIndex","cleanSlide","centerPoint","speed","updateFn","initialPanOffset","_currPoint","_startPoint","_currPointers","_startMainScrollPos","_posPoints","_tempPoint","_currZoomedItemIndex","_centerPoint","_lastReleaseTime","_currCenterPoint","_calculatePointsDistance","_dragUpdateLoop","_renderMovement","_closestElement","_preventObj","_preventDefaultEventBehaviour","isDown","prevent","_convertTouchToPoint","_findCenterOfPoints","pCenter","_calculateVerticalDragOpacityRatio","_ePoint1","_ePoint2","_tempPointsArr","_getTouchPoints","_panOrMoveMainScroll","panFriction","startOverDiff","newPanPos","newMainScrollPos","newOffset","dir","newMainScrollPosition","mainScrollDiff","_onDragStart","_initialZoomRunning","pointerIndex","startPointsList","numPoints","_onDragMove","touchesList","_isEqualPoints","pointsDistance","_calculateZoomLevel","zoomFriction","minZoomLevel","maxZoomLevel","opacityRatio","_pushPosPoint","_onDragRelease","releasePoint","pointerType","4","2","3","gestureType","touchList","releaseTimeDiff","_initDragReleaseAnimationData","calculateSwipeSpeed","initalPanY","initialBgOpacity","_finishSwipeMainScrollGesture","_completePanGesture","_completeZoomGesture","lastFlickDuration","tempReleasePos","lastFlickOffset","lastFlickDist","lastFlickSpeed","slowDownRatio","slowDownRatioReverse","speedDecelerationRatio","speedDecelerationRatioAbs","distanceOffset","backAnimDestination","backAnimStarted","calculateOverBoundsAnimOffset","calculateAnimOffset","timeDiff","panAnimLoop","zoomPan","lastNow","animData","itemChanged","itemsDiff","nextCircle","totalShiftDist","isFastLastFlick","finishAnimDuration","animateToX","animateToDist","touchesDistance","initialOpacity","initGestures","addEventNames","pref","down","up","cancel","maxTouchPoints","msMaxTouchPoints","mousedown","mousemove","mouseup","_items","_initialContentSet","completeFn","thumbBounds","initialLayout","getThumbBoundsFn","closeWithRaf","fadeEverything","loadError","miniImg","webkitBackfaceVisibility","initalBgOpacity","_tempPanAreaSize","_imagesToAppendPool","_controllerDefaultOptions","errorMsg","forceProgressiveLoading","preload","getNumItemsFn","isInitial","vGap","hRatio","vRatio","realPanElementW","realPanElementH","_calculateSingleItemPanBounds","_appendImage","baseDiv","preventAnimation","keepPlaceholder","isSwiping","slideMightBeVisible","imageAppended","_preloadImage","loading","loadComplete","_checkForError","cleanUp","_appendImagesPool","poolItem","lazyLoadItem","initController","getItemAt","isNext","preloadBefore","preloadAfter","preloader","allowProgressiveImg","screen","placeholderClassName","msrc","tapTimer","_wheelDelta","tapReleasePoint","_dispatchTapEvent","eDetail","initTap","onTapStart","onTapRelease","touch0","touch1","p0","initDesktopZoom","setupDesktopZoom","onInit","handleMouseWheel","mouseZoomedIn","hasDraggingClass","updateZoomable","removeDraggingClass","deltaX","wheelDeltaX","wheelDeltaY","toggleDesktopZoom","doubleTapZoomLevel","zoomOut","_historyUpdateTimeout","_hashChangeTimeout","_hashAnimCheckTimeout","_hashChangedByScript","_hashChangedByHistory","_hashReseted","_initialHash","_historyChanged","_closedFromURL","_urlChangedOnce","_windowLoc","_supportsPushState","_historyDefaultOptions","history","galleryUID","_getHash","hash","substring","_cleanHistoryTimeouts","_parseItemIndexFromURL","vars","pair","pid","_updateHash","newHash","newURL","initHistory","updateURL","onHashChange","returnToOriginal","back","pushState","pathname","search","PhotoSwipeUI_Default","pswp","_fullscrenAPI","_controls","_captionContainer","_fakeCaptionContainer","_indexIndicator","_shareButton","_shareModal","_initalCloseOnScrollValue","_isIdle","_loadingIndicator","_loadingIndicatorHidden","_loadingIndicatorTimeout","_galleryHasOneSlide","_blockControlsTap","_idleInterval","_idleTimer","_overlayUIUpdated","_controlsVisible","_shareModalHidden","_defaultUIOptions","barsSize","closeElClasses","timeToIdle","timeToIdleOutside","loadingIndicatorDelay","addCaptionHTMLFn","captionEl","closeEl","fullscreenEl","zoomEl","shareEl","counterEl","arrowEl","preloaderEl","tapToClose","tapToToggleControls","shareButtons","label","download","getImageURLForShare","getPageURLForShare","getTextForShare","indexIndicatorSep","_onControlsTap","uiElement","found","clickedClass","_uiElements","onTap","tapDelay","_togglePswpClass","cName","_countNumItems","hasOneSlide","_toggleShareModalClass","_toggleShareModal","_updateShareURLs","_openWindowPopup","hasAttribute","shareButtonData","image_url","page_url","share_text","shareButtonOut","encodeURIComponent","parseShareButtonOut","onclick","_hasCloseClass","_idleIncrement","_onIdleMouseMove","setIdle","_onMouseLeaveWindow","toElement","nodeName","_toggleLoadingIndicator","_applyNavBarGaps","gap","bars","captionSize","isFullscreen","exit","pinchControlsHidden","hideControls","showControls","point","preventObj","onGlobalTap","onMouseOver","eventK","updateFullscreen","classAttr","loopThroughChildElements","sChildren","topBar","_setupUIElements","getFullscreenAPI","isIdle","updateIndexIndicator","supportsFullscreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","api","dE","tF","requestFullscreen","enterK","exitK","elementK","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","galleryTmpl","gallery_init","initPhotoSwipeFromDOM","gallery_set_thumb_heights","thumbSelector","elems","openGallery","thumbs","pswpElement","thumbImg","imgSrc","figCaption","imgWidth","imgHeight","imgSize","splitSize","error","thumb","vLink","require","_previousResizeWidth","_updateTimeout","_parse","_rows","lastTop","rows","$that","lastRow","_parseOptions","opts","byRow","matchHeight","_groups","group","not","_apply","_throttle","_maintainScroll","_beforeUpdate","_afterUpdate","$elements","$hiddenParents","outerHeight","padding-top","padding-bottom","margin-top","margin-bottom","border-top-width","border-bottom-width","row","$row","verticalPadding","_applyDataApi","groups","groupId","_update","windowWidth","custom","fade","fontawesome","imagePosition","minSize","resizeInterval","zIndex","_Show","wholePage","overlay","class","background-color","flex-direction","align-items","justify-content","background-image","background-position","background-repeat","_Resize","resizeIntervalId","LoadingOverlay","LoadingOverlayFadeOutDuration","fadeIn","_Hide","fadeOut","LoadingOverlaySetup","jconfirm","Jconfirm","LoadingOverlayProgress","_bar","_text","_settings","bar","text","font","Init","wrapper","text-align","white-space","Update","_positionClasses","_defaultIcons","prepareOptions","toast","addToDom","bindToast","_toastEl","allowToastClose","heading","bgColor","textColor","textAlign","icon","inArray","_container","outerWidth","processLoader","showHideTransition","slideUp","beforeShow","afterShown","beforeHide","afterHidden","stack","canAutoHide","hideAfter","loaderBg","slideDown","div","Swiper","touchEventsTarget","initialSlide","autoplay","autoplayDisableOnInteraction","autoplayStopOnLast","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","coverflow","stretch","depth","modifier","slideShadows","flip","limitRotation","cube","shadow","shadowOffset","shadowScale","crossFade","parallax","zoomMax","zoomMin","zoomToggle","scrollbar","scrollbarHide","scrollbarDraggable","scrollbarSnapOnRelease","keyboardControl","mousewheelControl","mousewheelReleaseOnEdges","mousewheelInvert","mousewheelForceToAxis","mousewheelSensitivity","mousewheelEventsTarged","hashnav","hashnavWatchState","replaceState","breakpoints","spaceBetween","slidesPerView","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","onlyExternal","touchMoveStopPropagation","touchReleaseOnEdges","uniqueNavElements","pagination","paginationElement","paginationClickable","paginationHide","paginationBulletRender","paginationProgressRender","paginationFractionRender","paginationCustomRender","paginationType","resistance","resistanceRatio","nextButton","prevButton","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","lazyLoading","lazyLoadingInPrevNext","lazyLoadingInPrevNextAmount","lazyLoadingOnTransitionStart","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","control","controlInverse","controlBy","normalizeSlideIndex","allowSwipeToPrev","allowSwipeToNext","swipeHandler","noSwiping","noSwipingClass","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","bulletClass","bulletActiveClass","buttonDisabledClass","paginationCurrentClass","paginationTotalClass","paginationHiddenClass","paginationProgressbarClass","paginationClickableClass","paginationModifierClass","lazyLoadingClass","lazyStatusLoadingClass","lazyStatusLoadedClass","lazyPreloaderClass","notificationClass","preloaderClass","zoomContainerClass","observer","observeParents","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","runCallbacksOnInit","initialVirtualTranslate","originalParams","Dom7","deepParam","def","deepDef","classNames","currentBreakpoint","getActiveBreakpoint","breakpoint","points","setBreakpoint","breakPointsParams","needsReLoop","destroyLoop","reLoop","swipers","swiper","flexbox","transforms3d","paginationContainer","isHorizontal","rtl","wrongRTL","device","android","velocity","lockSwipeToNext","unsetGrabCursor","lockSwipeToPrev","lockSwipes","unlockSwipeToNext","setGrabCursor","unlockSwipeToPrev","unlockSwipes","moving","imagesToLoad","imagesLoaded","imgElement","sizes","checkForComplete","onReady","_onReady","emit","currentSrc","autoplayTimeoutId","autoplaying","autoplayPaused","startAutoplay","stopAutoplay","internal","pauseAutoplay","minTranslate","snapGrid","maxTranslate","updateAutoHeight","activeSlides","slides","updateContainerSize","updateSlidesSize","slidesGrid","slidesSizesGrid","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginRight","marginBottom","newSlidesGrid","slidesPerRow","numFullColumns","newSlideOrderIndex","column","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","swiperSlideSize","updateSlidesOffset","swiperSlideOffset","currentSlidesPerView","spv","breakLoop","updateSlidesProgress","offsetCenter","slideProgress","slideBefore","slideAfter","updateProgress","translatesDiff","wasBeginning","isBeginning","wasEnd","isEnd","updateActiveIndex","newActiveIndex","snapIndex","previousIndex","updateClasses","updateRealIndex","realIndex","activeSlide","nextSlide","prevSlide","current","total","bullets","updatePagination","paginationHTML","numberOfBullets","initPagination","updateTranslate","newTranslate","set","controller","spline","forceSetTranslate","slideTo","setWrapperTranslate","forceUpdatePagination","onBeforeResize","slideChangedBySlideTo","onAfterResize","touchEventsDesktop","touchEvents","initEvents","actionDom","moveCapture","nested","browser","ie","onTouchStart","onTouchMove","onTouchEnd","passiveListener","passive","capture","ios","onClickNext","onEnterKey","onClickPrev","onClickIndex","attachEvents","detachEvents","allowClick","animating","stopImmediatePropagation","slideNext","slidePrev","updateClickedSlide","findElementInEvent","slideFound","clickedSlide","clickedIndex","slideToIndex","fixLoop","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","clickTimeout","allowMomentumBounce","isTouchEvent","startMoving","formElements","lastClickTime","velocities","plugin","currentX","currentY","swipeDirection","activeElement","blur","preventedByNestedSwiper","atan2","getWrapperTranslate","setWrapperTransition","disableParentSwiper","currentPos","touchEndTime","lastMoveEvent","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","slideReset","onTransitionStart","onTransitionEnd","stopIndex","groupSize","_slideTo","runCallbacks","lteIE9","setHistory","setHash","_slideNext","_slidePrev","disableTouchControl","enableTouchControl","byController","effects","setTransition","setTranslate","getTranslate","matrix","curTransform","curStyle","transformMatrix","getComputedStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","getPropertyValue","m41","m42","observers","initObservers","containerParents","initObserver","childList","attributes","disconnectObservers","disconnect","createLoop","prependSlides","appendSlides","cloneNode","prepend","updatePosition","oldIndex","newIndex","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","tx","ty","slideOpacity","eventTriggered","triggerEvents","rotateY","rotateX","shadowBefore","shadowAfter","cubeShadow","wrapperRotate","slideAngle","tz","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowAngle","multiplier","scale1","scale2","zFactor","isSafari","isUiWebView","offsetMultiplier","translateZ","slideTransform","perspectiveOrigin","initialImageLoaded","loadImageInSlide","loadInDuplicate","slideOriginalIndex","originalSlide","duplicatedSlide","amount","maxIndex","minIndex","setDragPosition","sb","track","dragSize","positionMin","moveDivider","positionMax","dragStart","dragTimeout","drag","dragMove","dragEnd","draggableEvents","enableDraggable","disableDraggable","trackSize","divider","newPos","newSize","LinearSpline","guess","i1","i3","binarySearch","lastIndex","getInterpolateFunction","controlledTranslate","controlled","setControlledTranslate","setControlledTransition","onHashCange","initialized","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","slugify","disableKeyboardControl","handleKeyboard","enableKeyboardControl","mousewheel","lastScrollTime","isSupported","implementation","hasFeature","isEventSupported","disableMousewheelControl","handleMousewheel","enableMousewheelControl","setParallaxTransform","parallaxDuration","currentScale","isScaling","gesture","slideWidth","slideHeight","imageWrap","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","onGestureStart","gestures","scaleStart","onGestureChange","scaleMove","onGestureEnd","os","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","toggleZoom","touchX","touchY","diffX","diffY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","_plugins","plugins","callPlugins","eventName","emitterEventListeners","normalizeEventName","makeFocusable","addRole","role","addLabel","liveRegion","message","notification","bullet","hashnavReplaceState","cleanupStyles","deleteInstance","autoplayDelay","_el","MutationObserver","WebkitMutationObserver","mutations","mutation","observe","characterData","kc","charCode","inView","windowScroll","pageXOffset","windowHeight","swiperOffset","swiperCoord","sX","sY","pX","pY","rtlFactor","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","ieTouch","ipad","ipod","iphone","Modernizr","DocumentTouch","csstransforms3d","supportsPassive","domLib","els","tempParent","toCreate","childNodes","attrs","attrName","dom7ElementDataStorage","dataKey","webkitTransitionDuration","MsTransitionDuration","msTransitionDuration","MozTransitionDuration","OTransitionDuration","transitionDuration","targetSelector","handleLiveEvent","dom7LiveListeners","liveListener","dom","eventData","evt","fireCallBack","includeMargins","textContent","compareWith","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","foundElements","toAdd","swiperDomPlugins","addLibraryPlugin","lib","firstInstance","timeago","inWords","datetime","$t","refreshMillis","allowPast","allowFuture","localeTitle","cutoff","strings","prefixAgo","prefixFromNow","suffixAgo","suffixFromNow","inPast","seconds","minute","minutes","hour","hours","day","days","month","months","year","years","wordSeparator","numbers","distanceMillis","$l","suffix","substitute","stringOrFunction","number","string","words","separator","iso8601","isTime","refresh_el","$s","_timeagoInterval","parsedTime","toLocaleString","updateFromDOM","dispose","prepareData","date","translationList","orig","widgetUuid","widgetSlice","cleanData","_data","widget","base","existingConstructor","basePrototype","proxiedPrototype","fullName","Widget","_createWidget","_proto","_childConstructors","_super","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","bridge","input","inputIndex","inputLength","isMethodCall","methodValue","pushStack","_init","defaultElement","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","defaultView","parentWindow","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","_destroy","_removeClass","curOption","_setOptions","_setOption","_setOptionClasses","classKey","currentElements","_classes","_toggleClass","full","processClassString","checkOption","extra","_untrackClassesElement","_addClass","suppressDisabledCheck","delegateElement","handlerProxy","guid","_off","_delay","_hoverable","mouseenter","mouseleave","_focusable","focusin","focusout","method","defaultEffect","hasOptions","effectName","isEmptyObject","queue","cachedScrollbarWidth","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","parseCss","w1","w2","innerDiv","getScrollInfo","within","overflowX","isDocument","overflowY","hasOverflowX","scrollWidth","getWithinInfo","withinElement","of","atOffset","targetWidth","targetOffset","basePosition","dimensions","raw","scrollInfo","collision","at","horizontalOffset","verticalOffset","exec","collisionPosition","elemWidth","elemHeight","collisionWidth","collisionHeight","myOffset","my","feedback","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","newOverLeft","newOverTop","flipfit","selectorEscape","form","formResetMixin","_formResetHandler","instances","_bindFormResetHandler","_unbindFormResetHandler","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","escapeSelector","labels","ancestor","ancestors","removeUniqueId","safeActiveElement","icons","submenu","menus","activeMenu","mouseHandled","tabIndex","mousedown .ui-menu-item","click .ui-menu-item","isPropagationStopped","expand","mouseenter .ui-menu-item","previousFilter","actualTarget","mouseleave .ui-menu","keepActiveItem","collapseAll","_closeOnDocumentClick","submenus","_keydown","character","skip","previousPage","nextPage","_move","previous","_activate","filterTimer","_filterMenuItems","newSubmenus","newItems","newWrappers","aria-hidden","aria-expanded","menu","submenuCaret","_isDivider","_itemRole","listbox","focused","activeParent","_scrollIntoView","_close","_startOpening","borderTop","paddingTop","elementHeight","itemHeight","_hasScroll","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","escapedCharacter","regex","autoFocus","minLength","requestIndex","pending","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isInput","isMultiLine","_isContentEditable","valueMethod","isNewMenu","_keyEvent","_value","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_change","_initSource","_appendTo","menufocus","menuselect","aria-live","aria-relevant","beforeunload","abort","_isEventTargetInWidget","menuElement","_closeOnClickOutside","request","autocomplete","dataType","success","equalValues","menuVisible","modifierKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","editable","escapeRegex","grep","messages","noResults","results","datepicker_instActive","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","showOn","showAnim","showOptions","defaultDate","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","en","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","inline","datepicker_extendRemove","markerClassName","maxRows","_widgetDatepicker","setDefaults","_attachDatepicker","inst","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_get","_showDatepicker","alt","_lastInput","_hideDatepicker","findMax","maxI","setMonth","setDate","getDay","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","_dialogInst","_dialogInput","_pos","blockUI","_destroyDatepicker","_enableDatepicker","_getInst","err","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","sel","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","chr","_possibleChars","lastVal","parseDate","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","datepicker_getZindex","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","cols","activeCell","yearshtml","replaceWith","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","filters","postProcess","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","getDate","getMonth","getFullYear","_notifyChange","_selectMonthYear","selectedIndex","td","_selectDate","formatDate","noWeekends","checkDate","format","iFormat","dim","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","digits","getName","shortNames","longNames","substr","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","len","formatName","dates","_restrictMinMax","_determineDate","newDate","pattern","offsetString","offsetNumeric","setHours","setMinutes","setSeconds","setMilliseconds","getHours","noChange","origMonth","origYear","today","selectDay","selectMonth","selectYear","maxDraw","gotoDate","controls","buttonPanel","dow","col","selectedDate","cornerClass","calender","thead","daysInMonth","leadDays","curRows","numRows","printDate","dRow","tbody","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","secondary","inMinYear","inMaxYear","thisYear","determineYear","endYear","monthHtml","onChange","minMax","curYear","curMonth","yearSplit","minYear","maxYear","otherArgs","rhash","ui-selectmenu-button-open","ui-selectmenu-button-closed","selectmenuId","ids","_drawButton","_drawMenu","_rendered","menuItems","_parseOption","tabindex","aria-autocomplete","aria-owns","aria-haspopup","buttonItem","_renderButtonItem","_resizeButton","_buttonEvents","_refreshMenu","aria-labelledby","menuWrap","menuInstance","ui-menu","_setSelection","_select","focusIndex","_getSelectedItem","_setAria","_toggleAttr","_documentClick","menuWidget","_setText","currentOptgroup","li","optgroup","_toggle","selection","getSelection","removeAllRanges","addRange","rangeCount","getRangeAt","createRange","_selectFocusedItem","aria-activedescendant","ui-tabs","ui-tabs-nav","ui-tabs-panel","ui-tabs-tab","collapsible","heightStyle","beforeActivate","_isLocal","anchor","anchorUrl","locationUrl","running","_processTabs","_initialActive","tabs","anchors","_findActive","_refresh","locationHash","panel","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","lastTabIndex","_setupEvents","_setupHeightStyle","_sanitizeSelector","lis","tablist","aria-selected","panels","prevTabs","prevAnchors","prevPanels","_getList","panelId","anchorId","originalAriaControls","_createPanel","aria-controls","currentItem","_eventHandler","clickedIsActive","collapsing","toShow","toHide","oldTab","oldPanel","newTab","newPanel","_show","_hide","_getIndex","merge","jqXHR","status","_ajaxSettings","statusText","beforeSend","uiBackCompat","ui-tooltip","_addDescribedBy","describedby","_removeDescribedBy","mouseover","tooltips","disabledTitles","tooltipData","_updateContent","_disable","_enable","blurEvent","_registerCloseHandlers","contentOption","delayedShow","a11yContent","positionOption","_find","_tooltip","fx","keyup","fakeEvent","_removeTooltip","closing","hiding","tooltipClass","replaceBadChars","flashObject","randomPassword","temp_pass","temp","getParameterByName","prependTitle","initCollapsible","toggleIcon","scrollToBottom","ScrollToObject","getCountersForActionBar","actionBar","pageid","paragraphid","binaryid","commid","ControlsToShow","vfooteractionbarlike","vfooteractionbarcomment","getCountersForActionBar_handlerCall","getJSON","todo","Type","likeCount","Count","ReactedWith","reactionCount","trans","Text","HaveCommented","setLikesForActionBar","actionBarIcon","post","confirm","option2","jcOption","buttons","pluginDefaults","defaultButtons","firstBtn","dialog","closeIcon","confirmKeys","pluginOptions","_lastFocused","_id","_buildHTML","_parseAnimation","closeAnimation","_parseBgDismissAnimation","backgroundDismissAnimation","_parseColumnClass","columnClass","_parseTheme","theme","_parseType","animationParsed","backgroundDismissAnimationParsed","typeParsed","typeAnimated","useBootstrap","bootstrapClasses","columnClassParsed","containerFluid","boxWidth","titleClass","themeParsed","ariaLabel","$jconfirmBoxContainer","$jconfirmBox","$jconfirmBg","$title","$content","$contentPane","$icon","$closeIcon","$btnc","$scrollPane","_contentReady","_modalReady","setTitle","setIcon","_setButtons","_parseContent","isAjax","showLoading","when","then","isAjaxLoading","hideLoading","onContentReady","autoClose","_startCountDown","_contentHash","_hash","_contentHeight","_watchContent","setDialogCenter","animationSpeed","animationBounce","_getCSS","_typePrefix","setType","oldClass","_themePrefix","setTheme","_bgDismissPrefix","bgDismissAnimation","closeAnimationParsed","_animationPrefix","setAnimation","animations","a_string","setCloseAnimation","setAnimationSpeed","setColumnClass","colClass","_timer","nowHeight","_imagesLoaded","watchInterval","_hilightAnimating","_hiLightModal","_bindEvents","boxClicked","buttonName","shouldClose","backgroundDismiss","btnResponse","reactOnKey","_cubic_bezier","bounce","-webkit-transition-duration","transition-duration","-webkit-transition-timing-function","transition-timing-function","imageLoadInterval","total_buttons","btnClass","button_element","res","onAction","_stopCountDown","setText","closeIconClass","closeHtml","iconClass","setContentPrepend","contentParsed","setContentAppend","loadingSpinner","disableButtons","enableButtons","ajaxResponse","contentLoaded","autoCloseInterval","$cd","opt","button_key","_getKey","keyChar","escapeKey","buttonKey","contentHeight","paneHeight","marginTopChild","boxHeight","topMargin","minMargin","_unwatchContent","closeTimer","st","ot","onDestroy","onOpenBefore","transition-property","onOpen","isClosed","ok","cur","mainDiv","react","reaction","parentElement","commenttodo","empToken","uniqueKey","LoadComments"],"mappings":"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","file":"scripts.min.js","sourcesContent":["/*!\r\n * Bootstrap v3.3.7 (http://getbootstrap.com)\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under the MIT license\r\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery');\n}\n\n+function ($) {\n 'use strict';\n\n var version = $.fn.jquery.split(' ')[0].split('.');\n if (version[0] < 2 && version[1] < 9 || version[0] == 1 && version[1] == 9 && version[2] < 1 || version[0] > 3) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4');\n }\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: transition.js v3.3.7\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap');\n\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] };\n }\n }\n\n return false; // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false;\n var $el = this;\n $(this).one('bsTransitionEnd', function () {\n called = true;\n });\n var callback = function () {\n if (!called) $($el).trigger($.support.transition.end);\n };\n setTimeout(callback, duration);\n return this;\n };\n\n $(function () {\n $.support.transition = transitionEnd();\n\n if (!$.support.transition) return;\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);\n }\n };\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: alert.js v3.3.7\r\n * http://getbootstrap.com/javascript/#alerts\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]';\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close);\n };\n\n Alert.VERSION = '3.3.7';\n\n Alert.TRANSITION_DURATION = 150;\n\n Alert.prototype.close = function (e) {\n var $this = $(this);\n var selector = $this.attr('data-target');\n\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector);\n\n if (e) e.preventDefault();\n\n if (!$parent.length) {\n $parent = $this.closest('.alert');\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'));\n\n if (e.isDefaultPrevented()) return;\n\n $parent.removeClass('in');\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove();\n }\n\n $.support.transition && $parent.hasClass('fade') ? $parent.one('bsTransitionEnd', removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION) : removeElement();\n };\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.alert');\n\n if (!data) $this.data('bs.alert', data = new Alert(this));\n if (typeof option == 'string') data[option].call($this);\n });\n }\n\n var old = $.fn.alert;\n\n $.fn.alert = Plugin;\n $.fn.alert.Constructor = Alert;\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old;\n return this;\n };\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close);\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: button.js v3.3.7\r\n * http://getbootstrap.com/javascript/#buttons\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element);\n this.options = $.extend({}, Button.DEFAULTS, options);\n this.isLoading = false;\n };\n\n Button.VERSION = '3.3.7';\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n };\n\n Button.prototype.setState = function (state) {\n var d = 'disabled';\n var $el = this.$element;\n var val = $el.is('input') ? 'val' : 'html';\n var data = $el.data();\n\n state += 'Text';\n\n if (data.resetText == null) $el.data('resetText', $el[val]());\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state]);\n\n if (state == 'loadingText') {\n this.isLoading = true;\n $el.addClass(d).attr(d, d).prop(d, true);\n } else if (this.isLoading) {\n this.isLoading = false;\n $el.removeClass(d).removeAttr(d).prop(d, false);\n }\n }, this), 0);\n };\n\n Button.prototype.toggle = function () {\n var changed = true;\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]');\n\n if ($parent.length) {\n var $input = this.$element.find('input');\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false;\n $parent.find('.active').removeClass('active');\n this.$element.addClass('active');\n } else if ($input.prop('type') == 'checkbox') {\n if ($input.prop('checked') !== this.$element.hasClass('active')) changed = false;\n this.$element.toggleClass('active');\n }\n $input.prop('checked', this.$element.hasClass('active'));\n if (changed) $input.trigger('change');\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'));\n this.$element.toggleClass('active');\n }\n };\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.button');\n var options = typeof option == 'object' && option;\n\n if (!data) $this.data('bs.button', data = new Button(this, options));\n\n if (option == 'toggle') data.toggle();else if (option) data.setState(option);\n });\n }\n\n var old = $.fn.button;\n\n $.fn.button = Plugin;\n $.fn.button.Constructor = Button;\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old;\n return this;\n };\n\n // BUTTON DATA-API\n // ===============\n\n $(document).on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn');\n Plugin.call($btn, 'toggle');\n if (!$(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]')) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault();\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus');else $btn.find('input:visible,button:visible').first().trigger('focus');\n }\n }).on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type));\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: carousel.js v3.3.7\r\n * http://getbootstrap.com/javascript/#carousel\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element);\n this.$indicators = this.$element.find('.carousel-indicators');\n this.options = options;\n this.paused = null;\n this.sliding = null;\n this.interval = null;\n this.$active = null;\n this.$items = null;\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this));\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element.on('mouseenter.bs.carousel', $.proxy(this.pause, this)).on('mouseleave.bs.carousel', $.proxy(this.cycle, this));\n };\n\n Carousel.VERSION = '3.3.7';\n\n Carousel.TRANSITION_DURATION = 600;\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n };\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return;\n switch (e.which) {\n case 37:\n this.prev();break;\n case 39:\n this.next();break;\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false);\n\n this.interval && clearInterval(this.interval);\n\n this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval));\n\n return this;\n };\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item');\n return this.$items.index(item || this.$active);\n };\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active);\n var willWrap = direction == 'prev' && activeIndex === 0 || direction == 'next' && activeIndex == this.$items.length - 1;\n if (willWrap && !this.options.wrap) return active;\n var delta = direction == 'prev' ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this.$items.length;\n return this.$items.eq(itemIndex);\n };\n\n Carousel.prototype.to = function (pos) {\n var that = this;\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'));\n\n if (pos > this.$items.length - 1 || pos < 0) return;\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () {\n that.to(pos);\n }); // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle();\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos));\n };\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true);\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end);\n this.cycle(true);\n }\n\n this.interval = clearInterval(this.interval);\n\n return this;\n };\n\n Carousel.prototype.next = function () {\n if (this.sliding) return;\n return this.slide('next');\n };\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return;\n return this.slide('prev');\n };\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active');\n var $next = next || this.getItemForDirection(type, $active);\n var isCycling = this.interval;\n var direction = type == 'next' ? 'left' : 'right';\n var that = this;\n\n if ($next.hasClass('active')) return this.sliding = false;\n\n var relatedTarget = $next[0];\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n });\n this.$element.trigger(slideEvent);\n if (slideEvent.isDefaultPrevented()) return;\n\n this.sliding = true;\n\n isCycling && this.pause();\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active');\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]);\n $nextIndicator && $nextIndicator.addClass('active');\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }); // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type);\n $next[0].offsetWidth; // force reflow\n $active.addClass(direction);\n $next.addClass(direction);\n $active.one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active');\n $active.removeClass(['active', direction].join(' '));\n that.sliding = false;\n setTimeout(function () {\n that.$element.trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(Carousel.TRANSITION_DURATION);\n } else {\n $active.removeClass('active');\n $next.addClass('active');\n this.sliding = false;\n this.$element.trigger(slidEvent);\n }\n\n isCycling && this.cycle();\n\n return this;\n };\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.carousel');\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option);\n var action = typeof option == 'string' ? option : options.slide;\n\n if (!data) $this.data('bs.carousel', data = new Carousel(this, options));\n if (typeof option == 'number') data.to(option);else if (action) data[action]();else if (options.interval) data.pause().cycle();\n });\n }\n\n var old = $.fn.carousel;\n\n $.fn.carousel = Plugin;\n $.fn.carousel.Constructor = Carousel;\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old;\n return this;\n };\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href;\n var $this = $(this);\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')); // strip for ie7\n if (!$target.hasClass('carousel')) return;\n var options = $.extend({}, $target.data(), $this.data());\n var slideIndex = $this.attr('data-slide-to');\n if (slideIndex) options.interval = false;\n\n Plugin.call($target, options);\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex);\n }\n\n e.preventDefault();\n };\n\n $(document).on('click.bs.carousel.data-api', '[data-slide]', clickHandler).on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler);\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this);\n Plugin.call($carousel, $carousel.data());\n });\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: collapse.js v3.3.7\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element);\n this.options = $.extend({}, Collapse.DEFAULTS, options);\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' + '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]');\n this.transitioning = null;\n\n if (this.options.parent) {\n this.$parent = this.getParent();\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger);\n }\n\n if (this.options.toggle) this.toggle();\n };\n\n Collapse.VERSION = '3.3.7';\n\n Collapse.TRANSITION_DURATION = 350;\n\n Collapse.DEFAULTS = {\n toggle: true\n };\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width');\n return hasWidth ? 'width' : 'height';\n };\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return;\n\n var activesData;\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing');\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse');\n if (activesData && activesData.transitioning) return;\n }\n\n var startEvent = $.Event('show.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide');\n activesData || actives.data('bs.collapse', null);\n }\n\n var dimension = this.dimension();\n\n this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true);\n\n this.$trigger.removeClass('collapsed').attr('aria-expanded', true);\n\n this.transitioning = 1;\n\n var complete = function () {\n this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('');\n this.transitioning = 0;\n this.$element.trigger('shown.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'));\n\n this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]);\n };\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return;\n\n var startEvent = $.Event('hide.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n\n var dimension = this.dimension();\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight;\n\n this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false);\n\n this.$trigger.addClass('collapsed').attr('aria-expanded', false);\n\n this.transitioning = 1;\n\n var complete = function () {\n this.transitioning = 0;\n this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n\n this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION);\n };\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']();\n };\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent).find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]').each($.proxy(function (i, element) {\n var $element = $(element);\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element);\n }, this)).end();\n };\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in');\n\n $element.attr('aria-expanded', isOpen);\n $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen);\n };\n\n function getTargetFromTrigger($trigger) {\n var href;\n var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, ''); // strip for ie7\n\n return $(target);\n }\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.collapse');\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option);\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false;\n if (!data) $this.data('bs.collapse', data = new Collapse(this, options));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.collapse;\n\n $.fn.collapse = Plugin;\n $.fn.collapse.Constructor = Collapse;\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old;\n return this;\n };\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this);\n\n if (!$this.attr('data-target')) e.preventDefault();\n\n var $target = getTargetFromTrigger($this);\n var data = $target.data('bs.collapse');\n var option = data ? 'toggle' : $this.data();\n\n Plugin.call($target, option);\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: dropdown.js v3.3.7\r\n * http://getbootstrap.com/javascript/#dropdowns\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop';\n var toggle = '[data-toggle=\"dropdown\"]';\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle);\n };\n\n Dropdown.VERSION = '3.3.7';\n\n function getParent($this) {\n var selector = $this.attr('data-target');\n\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n\n var $parent = selector && $(selector);\n\n return $parent && $parent.length ? $parent : $this.parent();\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return;\n $(backdrop).remove();\n $(toggle).each(function () {\n var $this = $(this);\n var $parent = getParent($this);\n var relatedTarget = { relatedTarget: this };\n\n if (!$parent.hasClass('open')) return;\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return;\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) return;\n\n $this.attr('aria-expanded', 'false');\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget));\n });\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this);\n\n if ($this.is('.disabled, :disabled')) return;\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n\n clearMenus();\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus);\n }\n\n var relatedTarget = { relatedTarget: this };\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) return;\n\n $this.trigger('focus').attr('aria-expanded', 'true');\n\n $parent.toggleClass('open').trigger($.Event('shown.bs.dropdown', relatedTarget));\n }\n\n return false;\n };\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;\n\n var $this = $(this);\n\n e.preventDefault();\n e.stopPropagation();\n\n if ($this.is('.disabled, :disabled')) return;\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus');\n return $this.trigger('click');\n }\n\n var desc = ' li:not(.disabled):visible a';\n var $items = $parent.find('.dropdown-menu' + desc);\n\n if (!$items.length) return;\n\n var index = $items.index(e.target);\n\n if (e.which == 38 && index > 0) index--; // up\n if (e.which == 40 && index < $items.length - 1) index++; // down\n if (!~index) index = 0;\n\n $items.eq(index).trigger('focus');\n };\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.dropdown');\n\n if (!data) $this.data('bs.dropdown', data = new Dropdown(this));\n if (typeof option == 'string') data[option].call($this);\n });\n }\n\n var old = $.fn.dropdown;\n\n $.fn.dropdown = Plugin;\n $.fn.dropdown.Constructor = Dropdown;\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old;\n return this;\n };\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) {\n e.stopPropagation();\n }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: modal.js v3.3.7\r\n * http://getbootstrap.com/javascript/#modals\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options;\n this.$body = $(document.body);\n this.$element = $(element);\n this.$dialog = this.$element.find('.modal-dialog');\n this.$backdrop = null;\n this.isShown = null;\n this.originalBodyPad = null;\n this.scrollbarWidth = 0;\n this.ignoreBackdropClick = false;\n\n if (this.options.remote) {\n this.$element.find('.modal-content').load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal');\n }, this));\n }\n };\n\n Modal.VERSION = '3.3.7';\n\n Modal.TRANSITION_DURATION = 300;\n Modal.BACKDROP_TRANSITION_DURATION = 150;\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n };\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget);\n };\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this;\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget });\n\n this.$element.trigger(e);\n\n if (this.isShown || e.isDefaultPrevented()) return;\n\n this.isShown = true;\n\n this.checkScrollbar();\n this.setScrollbar();\n this.$body.addClass('modal-open');\n\n this.escape();\n this.resize();\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this));\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true;\n });\n });\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade');\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body); // don't move modals dom position\n }\n\n that.$element.show().scrollTop(0);\n\n that.adjustDialog();\n\n if (transition) {\n that.$element[0].offsetWidth; // force reflow\n }\n\n that.$element.addClass('in');\n\n that.enforceFocus();\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget });\n\n transition ? that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e);\n }).emulateTransitionEnd(Modal.TRANSITION_DURATION) : that.$element.trigger('focus').trigger(e);\n });\n };\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault();\n\n e = $.Event('hide.bs.modal');\n\n this.$element.trigger(e);\n\n if (!this.isShown || e.isDefaultPrevented()) return;\n\n this.isShown = false;\n\n this.escape();\n this.resize();\n\n $(document).off('focusin.bs.modal');\n\n this.$element.removeClass('in').off('click.dismiss.bs.modal').off('mouseup.dismiss.bs.modal');\n\n this.$dialog.off('mousedown.dismiss.bs.modal');\n\n $.support.transition && this.$element.hasClass('fade') ? this.$element.one('bsTransitionEnd', $.proxy(this.hideModal, this)).emulateTransitionEnd(Modal.TRANSITION_DURATION) : this.hideModal();\n };\n\n Modal.prototype.enforceFocus = function () {\n $(document).off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target && this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus');\n }\n }, this));\n };\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide();\n }, this));\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal');\n }\n };\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this));\n } else {\n $(window).off('resize.bs.modal');\n }\n };\n\n Modal.prototype.hideModal = function () {\n var that = this;\n this.$element.hide();\n this.backdrop(function () {\n that.$body.removeClass('modal-open');\n that.resetAdjustments();\n that.resetScrollbar();\n that.$element.trigger('hidden.bs.modal');\n });\n };\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove();\n this.$backdrop = null;\n };\n\n Modal.prototype.backdrop = function (callback) {\n var that = this;\n var animate = this.$element.hasClass('fade') ? 'fade' : '';\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate;\n\n this.$backdrop = $(document.createElement('div')).addClass('modal-backdrop ' + animate).appendTo(this.$body);\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false;\n return;\n }\n if (e.target !== e.currentTarget) return;\n this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide();\n }, this));\n\n if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow\n\n this.$backdrop.addClass('in');\n\n if (!callback) return;\n\n doAnimate ? this.$backdrop.one('bsTransitionEnd', callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callback();\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in');\n\n var callbackRemove = function () {\n that.removeBackdrop();\n callback && callback();\n };\n $.support.transition && this.$element.hasClass('fade') ? this.$backdrop.one('bsTransitionEnd', callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callbackRemove();\n } else if (callback) {\n callback();\n }\n };\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog();\n };\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight;\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n });\n };\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n });\n };\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth;\n if (!fullWindowWidth) {\n // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect();\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth;\n this.scrollbarWidth = this.measureScrollbar();\n };\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt(this.$body.css('padding-right') || 0, 10);\n this.originalBodyPad = document.body.style.paddingRight || '';\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth);\n };\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad);\n };\n\n Modal.prototype.measureScrollbar = function () {\n // thx walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = 'modal-scrollbar-measure';\n this.$body.append(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this.$body[0].removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.modal');\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option);\n\n if (!data) $this.data('bs.modal', data = new Modal(this, options));\n if (typeof option == 'string') data[option](_relatedTarget);else if (options.show) data.show(_relatedTarget);\n });\n }\n\n var old = $.fn.modal;\n\n $.fn.modal = Plugin;\n $.fn.modal.Constructor = Modal;\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old;\n return this;\n };\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this);\n var href = $this.attr('href');\n var $target = $($this.attr('data-target') || href && href.replace(/.*(?=#[^\\s]+$)/, '')); // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());\n\n if ($this.is('a')) e.preventDefault();\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return; // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus');\n });\n });\n Plugin.call($target, option, this);\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null;\n this.options = null;\n this.enabled = null;\n this.timeout = null;\n this.hoverState = null;\n this.$element = null;\n this.inState = null;\n\n this.init('tooltip', element, options);\n };\n\n Tooltip.VERSION = '3.3.7';\n\n Tooltip.TRANSITION_DURATION = 150;\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true;\n this.type = type;\n this.$element = $(element);\n this.options = this.getOptions(options);\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport);\n this.inState = { click: false, hover: false, focus: false };\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!');\n }\n\n var triggers = this.options.trigger.split(' ');\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this));\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin';\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout';\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this));\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this));\n }\n }\n\n this.options.selector ? this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' }) : this.fixTitle();\n };\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS;\n };\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options);\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n return options;\n };\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {};\n var defaults = this.getDefaults();\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value;\n });\n\n return options;\n };\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type);\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions());\n $(obj.currentTarget).data('bs.' + this.type, self);\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true;\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in';\n return;\n }\n\n clearTimeout(self.timeout);\n\n self.hoverState = 'in';\n\n if (!self.options.delay || !self.options.delay.show) return self.show();\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show();\n }, self.options.delay.show);\n };\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true;\n }\n\n return false;\n };\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type);\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions());\n $(obj.currentTarget).data('bs.' + this.type, self);\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false;\n }\n\n if (self.isInStateTrue()) return;\n\n clearTimeout(self.timeout);\n\n self.hoverState = 'out';\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide();\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide();\n }, self.options.delay.hide);\n };\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type);\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e);\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);\n if (e.isDefaultPrevented() || !inDom) return;\n var that = this;\n\n var $tip = this.tip();\n\n var tipId = this.getUID(this.type);\n\n this.setContent();\n $tip.attr('id', tipId);\n this.$element.attr('aria-describedby', tipId);\n\n if (this.options.animation) $tip.addClass('fade');\n\n var placement = typeof this.options.placement == 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement;\n\n var autoToken = /\\s?auto?\\s?/i;\n var autoPlace = autoToken.test(placement);\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top';\n\n $tip.detach().css({ top: 0, left: 0, display: 'block' }).addClass(placement).data('bs.' + this.type, this);\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element);\n this.$element.trigger('inserted.bs.' + this.type);\n\n var pos = this.getPosition();\n var actualWidth = $tip[0].offsetWidth;\n var actualHeight = $tip[0].offsetHeight;\n\n if (autoPlace) {\n var orgPlacement = placement;\n var viewportDim = this.getPosition(this.$viewport);\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement;\n\n $tip.removeClass(orgPlacement).addClass(placement);\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight);\n\n this.applyPlacement(calculatedOffset, placement);\n\n var complete = function () {\n var prevHoverState = that.hoverState;\n that.$element.trigger('shown.bs.' + that.type);\n that.hoverState = null;\n\n if (prevHoverState == 'out') that.leave(that);\n };\n\n $.support.transition && this.$tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete();\n }\n };\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip();\n var width = $tip[0].offsetWidth;\n var height = $tip[0].offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10);\n var marginLeft = parseInt($tip.css('margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top += marginTop;\n offset.left += marginLeft;\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n });\n }\n }, offset), 0);\n\n $tip.addClass('in');\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth;\n var actualHeight = $tip[0].offsetHeight;\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) offset.left += delta.left;else offset.top += delta.top;\n\n var isVertical = /top|bottom/.test(placement);\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight;\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n $tip.offset(offset);\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical);\n };\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow().css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%').css(isVertical ? 'top' : 'left', '');\n };\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip();\n var title = this.getTitle();\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title);\n $tip.removeClass('fade in top bottom left right');\n };\n\n Tooltip.prototype.hide = function (callback) {\n var that = this;\n var $tip = $(this.$tip);\n var e = $.Event('hide.bs.' + this.type);\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach();\n if (that.$element) {\n // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element.removeAttr('aria-describedby').trigger('hidden.bs.' + that.type);\n }\n callback && callback();\n }\n\n this.$element.trigger(e);\n\n if (e.isDefaultPrevented()) return;\n\n $tip.removeClass('in');\n\n $.support.transition && $tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete();\n\n this.hoverState = null;\n\n return this;\n };\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element;\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '');\n }\n };\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle();\n };\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element;\n\n var el = $element[0];\n var isBody = el.tagName == 'BODY';\n\n var elRect = el.getBoundingClientRect();\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement;\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : isSvg ? null : $element.offset();\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() };\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null;\n\n return $.extend({}, elRect, scroll, outerDims, elOffset);\n };\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */{ top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width };\n };\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 };\n if (!this.$viewport) return delta;\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0;\n var viewportDimensions = this.getPosition(this.$viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll;\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) {\n // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) {\n // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding;\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) {\n // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.right) {\n // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n };\n\n Tooltip.prototype.getTitle = function () {\n var title;\n var $e = this.$element;\n var o = this.options;\n\n title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title);\n\n return title;\n };\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000); while (document.getElementById(prefix));\n return prefix;\n };\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template);\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!');\n }\n }\n return this.$tip;\n };\n\n Tooltip.prototype.arrow = function () {\n return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow');\n };\n\n Tooltip.prototype.enable = function () {\n this.enabled = true;\n };\n\n Tooltip.prototype.disable = function () {\n this.enabled = false;\n };\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled;\n };\n\n Tooltip.prototype.toggle = function (e) {\n var self = this;\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type);\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions());\n $(e.currentTarget).data('bs.' + this.type, self);\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click;\n if (self.isInStateTrue()) self.enter(self);else self.leave(self);\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self);\n }\n };\n\n Tooltip.prototype.destroy = function () {\n var that = this;\n clearTimeout(this.timeout);\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type);\n if (that.$tip) {\n that.$tip.detach();\n }\n that.$tip = null;\n that.$arrow = null;\n that.$viewport = null;\n that.$element = null;\n });\n };\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.tooltip');\n var options = typeof option == 'object' && option;\n\n if (!data && /destroy|hide/.test(option)) return;\n if (!data) $this.data('bs.tooltip', data = new Tooltip(this, options));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.tooltip;\n\n $.fn.tooltip = Plugin;\n $.fn.tooltip.Constructor = Tooltip;\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old;\n return this;\n };\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: popover.js v3.3.7\r\n * http://getbootstrap.com/javascript/#popovers\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options);\n };\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js');\n\n Popover.VERSION = '3.3.7';\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n });\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype);\n\n Popover.prototype.constructor = Popover;\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS;\n };\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip();\n var title = this.getTitle();\n var content = this.getContent();\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title);\n $tip.find('.popover-content').children().detach().end()[// we use append for html objects to maintain js events\n this.options.html ? typeof content == 'string' ? 'html' : 'append' : 'text'](content);\n\n $tip.removeClass('fade top bottom left right in');\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide();\n };\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent();\n };\n\n Popover.prototype.getContent = function () {\n var $e = this.$element;\n var o = this.options;\n\n return $e.attr('data-content') || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content);\n };\n\n Popover.prototype.arrow = function () {\n return this.$arrow = this.$arrow || this.tip().find('.arrow');\n };\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.popover');\n var options = typeof option == 'object' && option;\n\n if (!data && /destroy|hide/.test(option)) return;\n if (!data) $this.data('bs.popover', data = new Popover(this, options));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.popover;\n\n $.fn.popover = Plugin;\n $.fn.popover.Constructor = Popover;\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old;\n return this;\n };\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: scrollspy.js v3.3.7\r\n * http://getbootstrap.com/javascript/#scrollspy\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body);\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element);\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options);\n this.selector = (this.options.target || '') + ' .nav li > a';\n this.offsets = [];\n this.targets = [];\n this.activeTarget = null;\n this.scrollHeight = 0;\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this));\n this.refresh();\n this.process();\n }\n\n ScrollSpy.VERSION = '3.3.7';\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n };\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight);\n };\n\n ScrollSpy.prototype.refresh = function () {\n var that = this;\n var offsetMethod = 'offset';\n var offsetBase = 0;\n\n this.offsets = [];\n this.targets = [];\n this.scrollHeight = this.getScrollHeight();\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position';\n offsetBase = this.$scrollElement.scrollTop();\n }\n\n this.$body.find(this.selector).map(function () {\n var $el = $(this);\n var href = $el.data('target') || $el.attr('href');\n var $href = /^#./.test(href) && $(href);\n\n return $href && $href.length && $href.is(':visible') && [[$href[offsetMethod]().top + offsetBase, href]] || null;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).each(function () {\n that.offsets.push(this[0]);\n that.targets.push(this[1]);\n });\n };\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset;\n var scrollHeight = this.getScrollHeight();\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height();\n var offsets = this.offsets;\n var targets = this.targets;\n var activeTarget = this.activeTarget;\n var i;\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i);\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null;\n return this.clear();\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i] && scrollTop >= offsets[i] && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) && this.activate(targets[i]);\n }\n };\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target;\n\n this.clear();\n\n var selector = this.selector + '[data-target=\"' + target + '\"],' + this.selector + '[href=\"' + target + '\"]';\n\n var active = $(selector).parents('li').addClass('active');\n\n if (active.parent('.dropdown-menu').length) {\n active = active.closest('li.dropdown').addClass('active');\n }\n\n active.trigger('activate.bs.scrollspy');\n };\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector).parentsUntil(this.options.target, '.active').removeClass('active');\n };\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.scrollspy');\n var options = typeof option == 'object' && option;\n\n if (!data) $this.data('bs.scrollspy', data = new ScrollSpy(this, options));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.scrollspy;\n\n $.fn.scrollspy = Plugin;\n $.fn.scrollspy.Constructor = ScrollSpy;\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old;\n return this;\n };\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this);\n Plugin.call($spy, $spy.data());\n });\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: tab.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element);\n // jscs:enable requireDollarBeforejQueryAssignment\n };\n\n Tab.VERSION = '3.3.7';\n\n Tab.TRANSITION_DURATION = 150;\n\n Tab.prototype.show = function () {\n var $this = this.element;\n var $ul = $this.closest('ul:not(.dropdown-menu)');\n var selector = $this.data('target');\n\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return;\n\n var $previous = $ul.find('.active:last a');\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n });\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n });\n\n $previous.trigger(hideEvent);\n $this.trigger(showEvent);\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return;\n\n var $target = $(selector);\n\n this.activate($this.closest('li'), $ul);\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n });\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n });\n });\n };\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active');\n var transition = callback && $.support.transition && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length);\n\n function next() {\n $active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active').end().find('[data-toggle=\"tab\"]').attr('aria-expanded', false);\n\n element.addClass('active').find('[data-toggle=\"tab\"]').attr('aria-expanded', true);\n\n if (transition) {\n element[0].offsetWidth; // reflow for transition\n element.addClass('in');\n } else {\n element.removeClass('fade');\n }\n\n if (element.parent('.dropdown-menu').length) {\n element.closest('li.dropdown').addClass('active').end().find('[data-toggle=\"tab\"]').attr('aria-expanded', true);\n }\n\n callback && callback();\n }\n\n $active.length && transition ? $active.one('bsTransitionEnd', next).emulateTransitionEnd(Tab.TRANSITION_DURATION) : next();\n\n $active.removeClass('in');\n };\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.tab');\n\n if (!data) $this.data('bs.tab', data = new Tab(this));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.tab;\n\n $.fn.tab = Plugin;\n $.fn.tab.Constructor = Tab;\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old;\n return this;\n };\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault();\n Plugin.call($(this), 'show');\n };\n\n $(document).on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler).on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler);\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: affix.js v3.3.7\r\n * http://getbootstrap.com/javascript/#affix\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options);\n\n this.$target = $(this.options.target).on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)).on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this));\n\n this.$element = $(element);\n this.affixed = null;\n this.unpin = null;\n this.pinnedOffset = null;\n\n this.checkPosition();\n };\n\n Affix.VERSION = '3.3.7';\n\n Affix.RESET = 'affix affix-top affix-bottom';\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n };\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop();\n var position = this.$element.offset();\n var targetHeight = this.$target.height();\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false;\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return scrollTop + this.unpin <= position.top ? false : 'bottom';\n return scrollTop + targetHeight <= scrollHeight - offsetBottom ? false : 'bottom';\n }\n\n var initializing = this.affixed == null;\n var colliderTop = initializing ? scrollTop : position.top;\n var colliderHeight = initializing ? targetHeight : height;\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top';\n if (offsetBottom != null && colliderTop + colliderHeight >= scrollHeight - offsetBottom) return 'bottom';\n\n return false;\n };\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset;\n this.$element.removeClass(Affix.RESET).addClass('affix');\n var scrollTop = this.$target.scrollTop();\n var position = this.$element.offset();\n return this.pinnedOffset = position.top - scrollTop;\n };\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1);\n };\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return;\n\n var height = this.$element.height();\n var offset = this.options.offset;\n var offsetTop = offset.top;\n var offsetBottom = offset.bottom;\n var scrollHeight = Math.max($(document).height(), $(document.body).height());\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset;\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element);\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element);\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom);\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '');\n\n var affixType = 'affix' + (affix ? '-' + affix : '');\n var e = $.Event(affixType + '.bs.affix');\n\n this.$element.trigger(e);\n\n if (e.isDefaultPrevented()) return;\n\n this.affixed = affix;\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null;\n\n this.$element.removeClass(Affix.RESET).addClass(affixType).trigger(affixType.replace('affix', 'affixed') + '.bs.affix');\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n });\n }\n };\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.affix');\n var options = typeof option == 'object' && option;\n\n if (!data) $this.data('bs.affix', data = new Affix(this, options));\n if (typeof option == 'string') data[option]();\n });\n }\n\n var old = $.fn.affix;\n\n $.fn.affix = Plugin;\n $.fn.affix.Constructor = Affix;\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old;\n return this;\n };\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this);\n var data = $spy.data();\n\n data.offset = data.offset || {};\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom;\n if (data.offsetTop != null) data.offset.top = data.offsetTop;\n\n Plugin.call($spy, data);\n });\n });\n}(jQuery);","/*!\r\n * jQuery Migrate - v3.0.0 - 2016-06-09\r\n * Copyright jQuery Foundation and other contributors\r\n */\n(function (jQuery, window) {\n\t\"use strict\";\n\n\tjQuery.migrateVersion = \"3.0.0\";\n\n\t(function () {\n\n\t\tjQuery.migrateMute = true;\n\t\t// Support: IE9 only\n\t\t// IE9 only creates console object when dev tools are first opened\n\t\t// Also, avoid Function#bind here to simplify PhantomJS usage\n\t\tvar log = window.console && window.console.log && function () {\n\t\t\twindow.console.log.apply(window.console, arguments);\n\t\t},\n\t\t rbadVersions = /^[12]\\./;\n\n\t\tif (!log) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Need jQuery 3.0.0+ and no older Migrate loaded\n\t\tif (!jQuery || rbadVersions.test(jQuery.fn.jquery)) {\n\t\t\tlog(\"JQMIGRATE: jQuery 3.0.0+ REQUIRED\");\n\t\t}\n\t\tif (jQuery.migrateWarnings) {\n\t\t\tlog(\"JQMIGRATE: Migrate plugin loaded multiple times\");\n\t\t}\n\n\t\t// Show a message on the console so devs know we're active\n\t\tlog(\"JQMIGRATE: Migrate is installed\" + (jQuery.migrateMute ? \"\" : \" with logging active\") + \", version \" + jQuery.migrateVersion);\n\t})();\n\n\tvar warnedAbout = {};\n\n\t// List of warnings already given; public read only\n\tjQuery.migrateWarnings = [];\n\n\t// Set to false to disable traces that appear with warnings\n\tif (jQuery.migrateTrace === undefined) {\n\t\tjQuery.migrateTrace = true;\n\t}\n\n\t// Forget any warnings we've already given; public\n\tjQuery.migrateReset = function () {\n\t\twarnedAbout = {};\n\t\tjQuery.migrateWarnings.length = 0;\n\t};\n\n\tfunction migrateWarn(msg) {\n\t\tvar console = window.console;\n\t\tif (!warnedAbout[msg]) {\n\t\t\twarnedAbout[msg] = true;\n\t\t\tjQuery.migrateWarnings.push(msg);\n\t\t\tif (console && console.warn && !jQuery.migrateMute) {\n\t\t\t\tconsole.warn(\"JQMIGRATE: \" + msg);\n\t\t\t\tif (jQuery.migrateTrace && console.trace) {\n\t\t\t\t\tconsole.trace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction migrateWarnProp(obj, prop, value, msg) {\n\t\tObject.defineProperty(obj, prop, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\tmigrateWarn(msg);\n\t\t\t\treturn value;\n\t\t\t}\n\t\t});\n\t}\n\n\tif (document.compatMode === \"BackCompat\") {\n\n\t\t// JQuery has never supported or tested Quirks Mode\n\t\tmigrateWarn(\"jQuery is not compatible with Quirks Mode\");\n\t}\n\n\tvar oldInit = jQuery.fn.init,\n\t oldIsNumeric = jQuery.isNumeric,\n\t oldFind = jQuery.find,\n\t rattrHashTest = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/,\n\t rattrHashGlob = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/g;\n\n\tjQuery.fn.init = function (arg1) {\n\t\tvar args = Array.prototype.slice.call(arguments);\n\n\t\tif (typeof arg1 === \"string\" && arg1 === \"#\") {\n\n\t\t\t// JQuery( \"#\" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0\n\t\t\tmigrateWarn(\"jQuery( '#' ) is not a valid selector\");\n\t\t\targs[0] = [];\n\t\t}\n\n\t\treturn oldInit.apply(this, args);\n\t};\n\tjQuery.fn.init.prototype = jQuery.fn;\n\n\tjQuery.find = function (selector) {\n\t\tvar args = Array.prototype.slice.call(arguments);\n\n\t\t// Support: PhantomJS 1.x\n\t\t// String#match fails to match when used with a //g RegExp, only on some strings\n\t\tif (typeof selector === \"string\" && rattrHashTest.test(selector)) {\n\n\t\t\t// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0\n\t\t\t// First see if qS thinks it's a valid selector, if so avoid a false positive\n\t\t\ttry {\n\t\t\t\tdocument.querySelector(selector);\n\t\t\t} catch (err1) {\n\n\t\t\t\t// Didn't *look* valid to qSA, warn and try quoting what we think is the value\n\t\t\t\tselector = selector.replace(rattrHashGlob, function (_, attr, op, value) {\n\t\t\t\t\treturn \"[\" + attr + op + \"\\\"\" + value + \"\\\"]\";\n\t\t\t\t});\n\n\t\t\t\t// If the regexp *may* have created an invalid selector, don't update it\n\t\t\t\t// Note that there may be false alarms if selector uses jQuery extensions\n\t\t\t\ttry {\n\t\t\t\t\tdocument.querySelector(selector);\n\t\t\t\t\tmigrateWarn(\"Attribute selector with '#' must be quoted: \" + args[0]);\n\t\t\t\t\targs[0] = selector;\n\t\t\t\t} catch (err2) {\n\t\t\t\t\tmigrateWarn(\"Attribute selector with '#' was not fixed: \" + args[0]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn oldFind.apply(this, args);\n\t};\n\n\t// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)\n\tvar findProp;\n\tfor (findProp in oldFind) {\n\t\tif (Object.prototype.hasOwnProperty.call(oldFind, findProp)) {\n\t\t\tjQuery.find[findProp] = oldFind[findProp];\n\t\t}\n\t}\n\n\t// The number of elements contained in the matched element set\n\tjQuery.fn.size = function () {\n\t\tmigrateWarn(\"jQuery.fn.size() is deprecated; use the .length property\");\n\t\treturn this.length;\n\t};\n\n\tjQuery.parseJSON = function () {\n\t\tmigrateWarn(\"jQuery.parseJSON is deprecated; use JSON.parse\");\n\t\treturn JSON.parse.apply(null, arguments);\n\t};\n\n\tjQuery.isNumeric = function (val) {\n\n\t\t// The jQuery 2.2.3 implementation of isNumeric\n\t\tfunction isNumeric2(obj) {\n\t\t\tvar realStringObj = obj && obj.toString();\n\t\t\treturn !jQuery.isArray(obj) && realStringObj - parseFloat(realStringObj) + 1 >= 0;\n\t\t}\n\n\t\tvar newValue = oldIsNumeric(val),\n\t\t oldValue = isNumeric2(val);\n\n\t\tif (newValue !== oldValue) {\n\t\t\tmigrateWarn(\"jQuery.isNumeric() should not be called on constructed objects\");\n\t\t}\n\n\t\treturn oldValue;\n\t};\n\n\tmigrateWarnProp(jQuery, \"unique\", jQuery.uniqueSort, \"jQuery.unique is deprecated, use jQuery.uniqueSort\");\n\n\t// Now jQuery.expr.pseudos is the standard incantation\n\tmigrateWarnProp(jQuery.expr, \"filters\", jQuery.expr.pseudos, \"jQuery.expr.filters is now jQuery.expr.pseudos\");\n\tmigrateWarnProp(jQuery.expr, \":\", jQuery.expr.pseudos, \"jQuery.expr[\\\":\\\"] is now jQuery.expr.pseudos\");\n\n\tvar oldAjax = jQuery.ajax;\n\n\tjQuery.ajax = function () {\n\t\tvar jQXHR = oldAjax.apply(this, arguments);\n\n\t\t// Be sure we got a jQXHR (e.g., not sync)\n\t\tif (jQXHR.promise) {\n\t\t\tmigrateWarnProp(jQXHR, \"success\", jQXHR.done, \"jQXHR.success is deprecated and removed\");\n\t\t\tmigrateWarnProp(jQXHR, \"error\", jQXHR.fail, \"jQXHR.error is deprecated and removed\");\n\t\t\tmigrateWarnProp(jQXHR, \"complete\", jQXHR.always, \"jQXHR.complete is deprecated and removed\");\n\t\t}\n\n\t\treturn jQXHR;\n\t};\n\n\tvar oldRemoveAttr = jQuery.fn.removeAttr,\n\t oldToggleClass = jQuery.fn.toggleClass,\n\t rmatchNonSpace = /\\S+/g;\n\n\tjQuery.fn.removeAttr = function (name) {\n\t\tvar self = this;\n\n\t\tjQuery.each(name.match(rmatchNonSpace), function (i, attr) {\n\t\t\tif (jQuery.expr.match.bool.test(attr)) {\n\t\t\t\tmigrateWarn(\"jQuery.fn.removeAttr no longer sets boolean properties: \" + attr);\n\t\t\t\tself.prop(attr, false);\n\t\t\t}\n\t\t});\n\n\t\treturn oldRemoveAttr.apply(this, arguments);\n\t};\n\n\tjQuery.fn.toggleClass = function (state) {\n\n\t\t// Only deprecating no-args or single boolean arg\n\t\tif (state !== undefined && typeof state !== \"boolean\") {\n\t\t\treturn oldToggleClass.apply(this, arguments);\n\t\t}\n\n\t\tmigrateWarn(\"jQuery.fn.toggleClass( boolean ) is deprecated\");\n\n\t\t// Toggle entire class name of each element\n\t\treturn this.each(function () {\n\t\t\tvar className = this.getAttribute && this.getAttribute(\"class\") || \"\";\n\n\t\t\tif (className) {\n\t\t\t\tjQuery.data(this, \"__className__\", className);\n\t\t\t}\n\n\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\tif (this.setAttribute) {\n\t\t\t\tthis.setAttribute(\"class\", className || state === false ? \"\" : jQuery.data(this, \"__className__\") || \"\");\n\t\t\t}\n\t\t});\n\t};\n\n\tvar internalSwapCall = false;\n\n\t// If this version of jQuery has .swap(), don't false-alarm on internal uses\n\tif (jQuery.swap) {\n\t\tjQuery.each([\"height\", \"width\", \"reliableMarginRight\"], function (_, name) {\n\t\t\tvar oldHook = jQuery.cssHooks[name] && jQuery.cssHooks[name].get;\n\n\t\t\tif (oldHook) {\n\t\t\t\tjQuery.cssHooks[name].get = function () {\n\t\t\t\t\tvar ret;\n\n\t\t\t\t\tinternalSwapCall = true;\n\t\t\t\t\tret = oldHook.apply(this, arguments);\n\t\t\t\t\tinternalSwapCall = false;\n\t\t\t\t\treturn ret;\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t}\n\n\tjQuery.swap = function (elem, options, callback, args) {\n\t\tvar ret,\n\t\t name,\n\t\t old = {};\n\n\t\tif (!internalSwapCall) {\n\t\t\tmigrateWarn(\"jQuery.swap() is undocumented and deprecated\");\n\t\t}\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor (name in options) {\n\t\t\told[name] = elem.style[name];\n\t\t\telem.style[name] = options[name];\n\t\t}\n\n\t\tret = callback.apply(elem, args || []);\n\n\t\t// Revert the old values\n\t\tfor (name in options) {\n\t\t\telem.style[name] = old[name];\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\tvar oldData = jQuery.data;\n\n\tjQuery.data = function (elem, name, value) {\n\t\tvar curData;\n\n\t\t// If the name is transformed, look for the un-transformed name in the data object\n\t\tif (name && name !== jQuery.camelCase(name)) {\n\t\t\tcurData = jQuery.hasData(elem) && oldData.call(this, elem);\n\t\t\tif (curData && name in curData) {\n\t\t\t\tmigrateWarn(\"jQuery.data() always sets/gets camelCased names: \" + name);\n\t\t\t\tif (arguments.length > 2) {\n\t\t\t\t\tcurData[name] = value;\n\t\t\t\t}\n\t\t\t\treturn curData[name];\n\t\t\t}\n\t\t}\n\n\t\treturn oldData.apply(this, arguments);\n\t};\n\n\tvar oldTweenRun = jQuery.Tween.prototype.run;\n\n\tjQuery.Tween.prototype.run = function (percent) {\n\t\tif (jQuery.easing[this.easing].length > 1) {\n\t\t\tmigrateWarn(\"easing function \" + \"\\\"jQuery.easing.\" + this.easing.toString() + \"\\\" should use only first argument\");\n\n\t\t\tjQuery.easing[this.easing] = jQuery.easing[this.easing].bind(jQuery.easing, percent, this.options.duration * percent, 0, 1, this.options.duration);\n\t\t}\n\n\t\toldTweenRun.apply(this, arguments);\n\t};\n\n\tvar oldLoad = jQuery.fn.load,\n\t originalFix = jQuery.event.fix;\n\n\tjQuery.event.props = [];\n\tjQuery.event.fixHooks = {};\n\n\tjQuery.event.fix = function (originalEvent) {\n\t\tvar event,\n\t\t type = originalEvent.type,\n\t\t fixHook = this.fixHooks[type],\n\t\t props = jQuery.event.props;\n\n\t\tif (props.length) {\n\t\t\tmigrateWarn(\"jQuery.event.props are deprecated and removed: \" + props.join());\n\t\t\twhile (props.length) {\n\t\t\t\tjQuery.event.addProp(props.pop());\n\t\t\t}\n\t\t}\n\n\t\tif (fixHook && !fixHook._migrated_) {\n\t\t\tfixHook._migrated_ = true;\n\t\t\tmigrateWarn(\"jQuery.event.fixHooks are deprecated and removed: \" + type);\n\t\t\tif ((props = fixHook.props) && props.length) {\n\t\t\t\twhile (props.length) {\n\t\t\t\t\tjQuery.event.addProp(props.pop());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tevent = originalFix.call(this, originalEvent);\n\n\t\treturn fixHook && fixHook.filter ? fixHook.filter(event, originalEvent) : event;\n\t};\n\n\tjQuery.each([\"load\", \"unload\", \"error\"], function (_, name) {\n\n\t\tjQuery.fn[name] = function () {\n\t\t\tvar args = Array.prototype.slice.call(arguments, 0);\n\n\t\t\t// If this is an ajax load() the first arg should be the string URL;\n\t\t\t// technically this could also be the \"Anything\" arg of the event .load()\n\t\t\t// which just goes to show why this dumb signature has been deprecated!\n\t\t\t// jQuery custom builds that exclude the Ajax module justifiably die here.\n\t\t\tif (name === \"load\" && typeof args[0] === \"string\") {\n\t\t\t\treturn oldLoad.apply(this, args);\n\t\t\t}\n\n\t\t\tmigrateWarn(\"jQuery.fn.\" + name + \"() is deprecated\");\n\n\t\t\targs.splice(0, 0, name);\n\t\t\tif (arguments.length) {\n\t\t\t\treturn this.on.apply(this, args);\n\t\t\t}\n\n\t\t\t// Use .triggerHandler here because:\n\t\t\t// - load and unload events don't need to bubble, only applied to window or image\n\t\t\t// - error event should not bubble to window, although it does pre-1.7\n\t\t\t// See http://bugs.jquery.com/ticket/11820\n\t\t\tthis.triggerHandler.apply(this, args);\n\t\t\treturn this;\n\t\t};\n\t});\n\n\t// Trigger \"ready\" event only once, on document ready\n\tjQuery(function () {\n\t\tjQuery(document).triggerHandler(\"ready\");\n\t});\n\n\tjQuery.event.special.ready = {\n\t\tsetup: function () {\n\t\t\tif (this === document) {\n\t\t\t\tmigrateWarn(\"'ready' event is deprecated\");\n\t\t\t}\n\t\t}\n\t};\n\n\tjQuery.fn.extend({\n\n\t\tbind: function (types, data, fn) {\n\t\t\tmigrateWarn(\"jQuery.fn.bind() is deprecated\");\n\t\t\treturn this.on(types, null, data, fn);\n\t\t},\n\t\tunbind: function (types, fn) {\n\t\t\tmigrateWarn(\"jQuery.fn.unbind() is deprecated\");\n\t\t\treturn this.off(types, null, fn);\n\t\t},\n\t\tdelegate: function (selector, types, data, fn) {\n\t\t\tmigrateWarn(\"jQuery.fn.delegate() is deprecated\");\n\t\t\treturn this.on(types, selector, data, fn);\n\t\t},\n\t\tundelegate: function (selector, types, fn) {\n\t\t\tmigrateWarn(\"jQuery.fn.undelegate() is deprecated\");\n\t\t\treturn arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n\t\t}\n\t});\n\n\tvar oldOffset = jQuery.fn.offset;\n\n\tjQuery.fn.offset = function () {\n\t\tvar docElem,\n\t\t elem = this[0],\n\t\t origin = { top: 0, left: 0 };\n\n\t\tif (!elem || !elem.nodeType) {\n\t\t\tmigrateWarn(\"jQuery.fn.offset() requires a valid DOM element\");\n\t\t\treturn origin;\n\t\t}\n\n\t\tdocElem = (elem.ownerDocument || document).documentElement;\n\t\tif (!jQuery.contains(docElem, elem)) {\n\t\t\tmigrateWarn(\"jQuery.fn.offset() requires an element connected to a document\");\n\t\t\treturn origin;\n\t\t}\n\n\t\treturn oldOffset.apply(this, arguments);\n\t};\n\n\tvar oldParam = jQuery.param;\n\n\tjQuery.param = function (data, traditional) {\n\t\tvar ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\n\t\tif (traditional === undefined && ajaxTraditional) {\n\n\t\t\tmigrateWarn(\"jQuery.param() no longer uses jQuery.ajaxSettings.traditional\");\n\t\t\ttraditional = ajaxTraditional;\n\t\t}\n\n\t\treturn oldParam.call(this, data, traditional);\n\t};\n\n\tvar oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;\n\n\tjQuery.fn.andSelf = function () {\n\t\tmigrateWarn(\"jQuery.fn.andSelf() replaced by jQuery.fn.addBack()\");\n\t\treturn oldSelf.apply(this, arguments);\n\t};\n\n\tvar oldDeferred = jQuery.Deferred,\n\t tuples = [\n\n\t// Action, add listener, callbacks, .then handlers, final state\n\t[\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\")]];\n\n\tjQuery.Deferred = function (func) {\n\t\tvar deferred = oldDeferred(),\n\t\t promise = deferred.promise();\n\n\t\tdeferred.pipe = promise.pipe = function () /* fnDone, fnFail, fnProgress */{\n\t\t\tvar fns = arguments;\n\n\t\t\tmigrateWarn(\"deferred.pipe() is deprecated\");\n\n\t\t\treturn jQuery.Deferred(function (newDefer) {\n\t\t\t\tjQuery.each(tuples, function (i, tuple) {\n\t\t\t\t\tvar fn = jQuery.isFunction(fns[i]) && fns[i];\n\n\t\t\t\t\t// Deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\tdeferred[tuple[1]](function () {\n\t\t\t\t\t\tvar returned = fn && fn.apply(this, arguments);\n\t\t\t\t\t\tif (returned && jQuery.isFunction(returned.promise)) {\n\t\t\t\t\t\t\treturned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewDefer[tuple[0] + \"With\"](this === promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tfns = null;\n\t\t\t}).promise();\n\t\t};\n\n\t\tif (func) {\n\t\t\tfunc.call(deferred, deferred);\n\t\t}\n\n\t\treturn deferred;\n\t};\n})(jQuery, window);","/*!\r\n * jQuery Mobile Events\r\n * by Ben Major\r\n *\r\n * Copyright 2011-2015, Ben Major\r\n * Licensed under the MIT License:\r\n * \r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n * \r\n */\n\n\"use strict\";\n\n(function ($) {\n $.attrFn = $.attrFn || {};\n\n // navigator.userAgent.toLowerCase() isn't reliable for Chrome installs\n // on mobile devices. As such, we will create a boolean isChromeDesktop\n // The reason that we need to do this is because Chrome annoyingly\n // purports support for touch events even if the underlying hardware\n // does not!\n var agent = navigator.userAgent.toLowerCase(),\n isChromeDesktop = agent.indexOf('chrome') > -1 && (agent.indexOf('windows') > -1 || agent.indexOf('macintosh') > -1 || agent.indexOf('linux') > -1) && agent.indexOf('mobile') < 0 && agent.indexOf('android') < 0,\n settings = {\n tap_pixel_range: 5,\n swipe_h_threshold: 50,\n swipe_v_threshold: 50,\n taphold_threshold: 750,\n doubletap_int: 500,\n\n touch_capable: 'ontouchstart' in window && !isChromeDesktop,\n orientation_support: 'orientation' in window && 'onorientationchange' in window,\n\n startevent: 'ontouchstart' in window && !isChromeDesktop ? 'touchstart' : 'mousedown',\n endevent: 'ontouchstart' in window && !isChromeDesktop ? 'touchend' : 'mouseup',\n moveevent: 'ontouchstart' in window && !isChromeDesktop ? 'touchmove' : 'mousemove',\n tapevent: 'ontouchstart' in window && !isChromeDesktop ? 'tap' : 'click',\n scrollevent: 'ontouchstart' in window && !isChromeDesktop ? 'touchmove' : 'scroll',\n\n hold_timer: null,\n tap_timer: null\n };\n\n // Convenience functions:\n $.isTouchCapable = function () {\n return settings.touch_capable;\n };\n $.getStartEvent = function () {\n return settings.startevent;\n };\n $.getEndEvent = function () {\n return settings.endevent;\n };\n $.getMoveEvent = function () {\n return settings.moveevent;\n };\n $.getTapEvent = function () {\n return settings.tapevent;\n };\n $.getScrollEvent = function () {\n return settings.scrollevent;\n };\n\n // Add Event shortcuts:\n $.each(['tapstart', 'tapend', 'tapmove', 'tap', 'tap2', 'tap3', 'tap4', 'singletap', 'doubletap', 'taphold', 'swipe', 'swipeup', 'swiperight', 'swipedown', 'swipeleft', 'swipeend', 'scrollstart', 'scrollend', 'orientationchange'], function (i, name) {\n $.fn[name] = function (fn) {\n return fn ? this.on(name, fn) : this.trigger(name);\n };\n\n $.attrFn[name] = true;\n });\n\n // tapstart Event:\n $.event.special.tapstart = {\n setup: function () {\n\n var thisObject = this,\n $this = $(thisObject);\n\n $this.on(settings.startevent, function tapStartFunc(e) {\n\n $this.data('callee', tapStartFunc);\n if (e.which && e.which !== 1) {\n return false;\n }\n\n var origEvent = e.originalEvent,\n touchData = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n triggerCustomEvent(thisObject, 'tapstart', e, touchData);\n return true;\n });\n },\n\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee);\n }\n };\n\n // tapmove Event:\n $.event.special.tapmove = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject);\n\n $this.on(settings.moveevent, function tapMoveFunc(e) {\n $this.data('callee', tapMoveFunc);\n\n var origEvent = e.originalEvent,\n touchData = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n triggerCustomEvent(thisObject, 'tapmove', e, touchData);\n return true;\n });\n },\n remove: function () {\n $(this).off(settings.moveevent, $(this).data.callee);\n }\n };\n\n // tapend Event:\n $.event.special.tapend = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject);\n\n $this.on(settings.endevent, function tapEndFunc(e) {\n // Touch event data:\n $this.data('callee', tapEndFunc);\n\n var origEvent = e.originalEvent;\n var touchData = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.changedTouches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.changedTouches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n triggerCustomEvent(thisObject, 'tapend', e, touchData);\n return true;\n });\n },\n remove: function () {\n $(this).off(settings.endevent, $(this).data.callee);\n }\n };\n\n // taphold Event:\n $.event.special.taphold = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n origTarget,\n start_pos = {\n x: 0,\n y: 0\n },\n end_x = 0,\n end_y = 0;\n\n $this.on(settings.startevent, function tapHoldFunc1(e) {\n if (e.which && e.which !== 1) {\n return false;\n } else {\n $this.data('tapheld', false);\n origTarget = e.target;\n\n var origEvent = e.originalEvent;\n var start_time = Date.now(),\n startPosition = {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n startOffset = {\n 'x': settings.touch_capable ? origEvent.touches[0].pageX - origEvent.touches[0].target.offsetLeft : e.offsetX,\n 'y': settings.touch_capable ? origEvent.touches[0].pageY - origEvent.touches[0].target.offsetTop : e.offsetY\n };\n\n start_pos.x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n start_pos.y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n\n end_x = start_pos.x;\n end_y = start_pos.y;\n\n // Get the element's threshold:\n\n var ele_threshold = $this.parent().data('threshold') ? $this.parent().data('threshold') : $this.data('threshold'),\n threshold = typeof ele_threshold !== 'undefined' && ele_threshold !== false && parseInt(ele_threshold) ? parseInt(ele_threshold) : settings.taphold_threshold;\n\n settings.hold_timer = window.setTimeout(function () {\n\n var diff_x = start_pos.x - end_x,\n diff_y = start_pos.y - end_y;\n\n if (e.target == origTarget && (start_pos.x == end_x && start_pos.y == end_y || diff_x >= -settings.tap_pixel_range && diff_x <= settings.tap_pixel_range && diff_y >= -settings.tap_pixel_range && diff_y <= settings.tap_pixel_range)) {\n $this.data('tapheld', true);\n\n var end_time = Date.now(),\n endPosition = {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n endOffset = {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n };\n var duration = end_time - start_time;\n\n // Build the touch data:\n var touchData = {\n 'startTime': start_time,\n 'endTime': end_time,\n 'startPosition': startPosition,\n 'startOffset': startOffset,\n 'endPosition': endPosition,\n 'endOffset': endOffset,\n 'duration': duration,\n 'target': e.target\n };\n $this.data('callee1', tapHoldFunc1);\n triggerCustomEvent(thisObject, 'taphold', e, touchData);\n }\n }, threshold);\n\n return true;\n }\n }).on(settings.endevent, function tapHoldFunc2() {\n $this.data('callee2', tapHoldFunc2);\n $this.data('tapheld', false);\n window.clearTimeout(settings.hold_timer);\n }).on(settings.moveevent, function tapHoldFunc3(e) {\n $this.data('callee3', tapHoldFunc3);\n\n end_x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n end_y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n });\n },\n\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee1).off(settings.endevent, $(this).data.callee2).off(settings.moveevent, $(this).data.callee3);\n }\n };\n\n // doubletap Event:\n $.event.special.doubletap = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n origTarget,\n action,\n firstTap = null,\n origEvent,\n cooloff,\n cooling = false;\n\n $this.on(settings.startevent, function doubleTapFunc1(e) {\n if (e.which && e.which !== 1) {\n return false;\n }\n $this.data('doubletapped', false);\n origTarget = e.target;\n $this.data('callee1', doubleTapFunc1);\n\n origEvent = e.originalEvent;\n if (!firstTap) {\n firstTap = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n }\n\n return true;\n }).on(settings.endevent, function doubleTapFunc2(e) {\n\n var now = Date.now();\n var lastTouch = $this.data('lastTouch') || now + 1;\n var delta = now - lastTouch;\n window.clearTimeout(action);\n $this.data('callee2', doubleTapFunc2);\n\n if (delta < settings.doubletap_int && e.target == origTarget && delta > 100) {\n $this.data('doubletapped', true);\n window.clearTimeout(settings.tap_timer);\n\n // Now get the current event:\n var lastTap = {\n 'position': {\n 'x': settings.touch_capable ? e.originalEvent.changedTouches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? e.originalEvent.changedTouches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n var touchData = {\n 'firstTap': firstTap,\n 'secondTap': lastTap,\n 'interval': lastTap.time - firstTap.time\n };\n\n if (!cooling) {\n triggerCustomEvent(thisObject, 'doubletap', e, touchData);\n firstTap = null;\n }\n\n cooling = true;\n\n cooloff = window.setTimeout(function () {\n cooling = false;\n }, settings.doubletap_int);\n } else {\n $this.data('lastTouch', now);\n action = window.setTimeout(function () {\n firstTap = null;\n window.clearTimeout(action);\n }, settings.doubletap_int, [e]);\n }\n $this.data('lastTouch', now);\n });\n },\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee1).off(settings.endevent, $(this).data.callee2);\n }\n };\n\n // singletap Event:\n // This is used in conjuction with doubletap when both events are needed on the same element\n $.event.special.singletap = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n origTarget = null,\n startTime = null,\n start_pos = {\n x: 0,\n y: 0\n };\n\n $this.on(settings.startevent, function singleTapFunc1(e) {\n if (e.which && e.which !== 1) {\n return false;\n } else {\n startTime = Date.now();\n origTarget = e.target;\n $this.data('callee1', singleTapFunc1);\n\n // Get the start x and y position:\n start_pos.x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n start_pos.y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n\n return true;\n }\n }).on(settings.endevent, function singleTapFunc2(e) {\n $this.data('callee2', singleTapFunc2);\n if (e.target == origTarget) {\n\n // Get the end point:\n var end_pos_x = e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageX : e.pageX,\n end_pos_y = e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageY : e.pageY;\n\n // We need to check if it was a taphold:\n\n settings.tap_timer = window.setTimeout(function () {\n\n var diff_x = start_pos.x - end_pos_x,\n diff_y = start_pos.y - end_pos_y;\n\n if (!$this.data('doubletapped') && !$this.data('tapheld') && (start_pos.x == end_pos_x && start_pos.y == end_pos_y || diff_x >= -settings.tap_pixel_range && diff_x <= settings.tap_pixel_range && diff_y >= -settings.tap_pixel_range && diff_y <= settings.tap_pixel_range)) {\n\n var origEvent = e.originalEvent;\n var touchData = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.changedTouches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.changedTouches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n // Was it a taphold?\n if (touchData.time - startTime < settings.taphold_threshold) {\n triggerCustomEvent(thisObject, 'singletap', e, touchData);\n }\n }\n }, settings.doubletap_int);\n }\n });\n },\n\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee1).off(settings.endevent, $(this).data.callee2);\n }\n };\n\n // tap Event:\n $.event.special.tap = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n started = false,\n origTarget = null,\n start_time,\n start_pos = {\n x: 0,\n y: 0\n },\n touches;\n\n $this.on(settings.startevent, function tapFunc1(e) {\n $this.data('callee1', tapFunc1);\n\n if (e.which && e.which !== 1) {\n return false;\n } else {\n started = true;\n start_pos.x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n start_pos.y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n start_time = Date.now();\n origTarget = e.target;\n\n touches = e.originalEvent.targetTouches ? e.originalEvent.targetTouches : [e];\n return true;\n }\n }).on(settings.endevent, function tapFunc2(e) {\n $this.data('callee2', tapFunc2);\n\n // Only trigger if they've started, and the target matches:\n var end_x = e.originalEvent.targetTouches ? e.originalEvent.changedTouches[0].pageX : e.pageX,\n end_y = e.originalEvent.targetTouches ? e.originalEvent.changedTouches[0].pageY : e.pageY,\n diff_x = start_pos.x - end_x,\n diff_y = start_pos.y - end_y,\n eventName;\n\n if (origTarget == e.target && started && Date.now() - start_time < settings.taphold_threshold && (start_pos.x == end_x && start_pos.y == end_y || diff_x >= -settings.tap_pixel_range && diff_x <= settings.tap_pixel_range && diff_y >= -settings.tap_pixel_range && diff_y <= settings.tap_pixel_range)) {\n var origEvent = e.originalEvent;\n var touchData = [];\n\n for (var i = 0; i < touches.length; i++) {\n var touch = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.changedTouches[i].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.changedTouches[i].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[i].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[i].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n touchData.push(touch);\n }\n\n triggerCustomEvent(thisObject, 'tap', e, touchData);\n }\n });\n },\n\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee1).off(settings.endevent, $(this).data.callee2);\n }\n };\n\n // swipe Event (also handles swipeup, swiperight, swipedown and swipeleft):\n $.event.special.swipe = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n started = false,\n hasSwiped = false,\n originalCoord = {\n x: 0,\n y: 0\n },\n finalCoord = {\n x: 0,\n y: 0\n },\n startEvnt;\n\n // Screen touched, store the original coordinate\n\n function touchStart(e) {\n $this = $(e.currentTarget);\n $this.data('callee1', touchStart);\n originalCoord.x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n originalCoord.y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n finalCoord.x = originalCoord.x;\n finalCoord.y = originalCoord.y;\n started = true;\n var origEvent = e.originalEvent;\n // Read event data into our startEvt:\n startEvnt = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n }\n\n // Store coordinates as finger is swiping\n\n function touchMove(e) {\n $this = $(e.currentTarget);\n $this.data('callee2', touchMove);\n finalCoord.x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX;\n finalCoord.y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;\n\n var swipedir;\n\n // We need to check if the element to which the event was bound contains a data-xthreshold | data-vthreshold:\n var ele_x_threshold = $this.parent().data('xthreshold') ? $this.parent().data('xthreshold') : $this.data('xthreshold'),\n ele_y_threshold = $this.parent().data('ythreshold') ? $this.parent().data('ythreshold') : $this.data('ythreshold'),\n h_threshold = typeof ele_x_threshold !== 'undefined' && ele_x_threshold !== false && parseInt(ele_x_threshold) ? parseInt(ele_x_threshold) : settings.swipe_h_threshold,\n v_threshold = typeof ele_y_threshold !== 'undefined' && ele_y_threshold !== false && parseInt(ele_y_threshold) ? parseInt(ele_y_threshold) : settings.swipe_v_threshold;\n\n if (originalCoord.y > finalCoord.y && originalCoord.y - finalCoord.y > v_threshold) {\n swipedir = 'swipeup';\n }\n if (originalCoord.x < finalCoord.x && finalCoord.x - originalCoord.x > h_threshold) {\n swipedir = 'swiperight';\n }\n if (originalCoord.y < finalCoord.y && finalCoord.y - originalCoord.y > v_threshold) {\n swipedir = 'swipedown';\n }\n if (originalCoord.x > finalCoord.x && originalCoord.x - finalCoord.x > h_threshold) {\n swipedir = 'swipeleft';\n }\n if (swipedir != undefined && started) {\n originalCoord.x = 0;\n originalCoord.y = 0;\n finalCoord.x = 0;\n finalCoord.y = 0;\n started = false;\n\n // Read event data into our endEvnt:\n var origEvent = e.originalEvent;\n var endEvnt = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.touches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.touches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n // Calculate the swipe amount (normalized):\n var xAmount = Math.abs(startEvnt.position.x - endEvnt.position.x),\n yAmount = Math.abs(startEvnt.position.y - endEvnt.position.y);\n\n var touchData = {\n 'startEvnt': startEvnt,\n 'endEvnt': endEvnt,\n 'direction': swipedir.replace('swipe', ''),\n 'xAmount': xAmount,\n 'yAmount': yAmount,\n 'duration': endEvnt.time - startEvnt.time\n };\n hasSwiped = true;\n $this.trigger('swipe', touchData).trigger(swipedir, touchData);\n }\n }\n\n function touchEnd(e) {\n $this = $(e.currentTarget);\n var swipedir = \"\";\n $this.data('callee3', touchEnd);\n if (hasSwiped) {\n // We need to check if the element to which the event was bound contains a data-xthreshold | data-vthreshold:\n var ele_x_threshold = $this.data('xthreshold'),\n ele_y_threshold = $this.data('ythreshold'),\n h_threshold = typeof ele_x_threshold !== 'undefined' && ele_x_threshold !== false && parseInt(ele_x_threshold) ? parseInt(ele_x_threshold) : settings.swipe_h_threshold,\n v_threshold = typeof ele_y_threshold !== 'undefined' && ele_y_threshold !== false && parseInt(ele_y_threshold) ? parseInt(ele_y_threshold) : settings.swipe_v_threshold;\n\n var origEvent = e.originalEvent;\n var endEvnt = {\n 'position': {\n 'x': settings.touch_capable ? origEvent.changedTouches[0].screenX : e.screenX,\n 'y': settings.touch_capable ? origEvent.changedTouches[0].screenY : e.screenY\n },\n 'offset': {\n 'x': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageX - ($this.offset() ? $this.offset().left : 0)) : Math.round(e.pageX - ($this.offset() ? $this.offset().left : 0)),\n 'y': settings.touch_capable ? Math.round(origEvent.changedTouches[0].pageY - ($this.offset() ? $this.offset().top : 0)) : Math.round(e.pageY - ($this.offset() ? $this.offset().top : 0))\n },\n 'time': Date.now(),\n 'target': e.target\n };\n\n // Read event data into our endEvnt:\n if (startEvnt.position.y > endEvnt.position.y && startEvnt.position.y - endEvnt.position.y > v_threshold) {\n swipedir = 'swipeup';\n }\n if (startEvnt.position.x < endEvnt.position.x && endEvnt.position.x - startEvnt.position.x > h_threshold) {\n swipedir = 'swiperight';\n }\n if (startEvnt.position.y < endEvnt.position.y && endEvnt.position.y - startEvnt.position.y > v_threshold) {\n swipedir = 'swipedown';\n }\n if (startEvnt.position.x > endEvnt.position.x && startEvnt.position.x - endEvnt.position.x > h_threshold) {\n swipedir = 'swipeleft';\n }\n\n // Calculate the swipe amount (normalized):\n var xAmount = Math.abs(startEvnt.position.x - endEvnt.position.x),\n yAmount = Math.abs(startEvnt.position.y - endEvnt.position.y);\n\n var touchData = {\n 'startEvnt': startEvnt,\n 'endEvnt': endEvnt,\n 'direction': swipedir.replace('swipe', ''),\n 'xAmount': xAmount,\n 'yAmount': yAmount,\n 'duration': endEvnt.time - startEvnt.time\n };\n $this.trigger('swipeend', touchData);\n }\n\n started = false;\n hasSwiped = false;\n }\n\n $this.on(settings.startevent, touchStart);\n $this.on(settings.moveevent, touchMove);\n $this.on(settings.endevent, touchEnd);\n },\n\n remove: function () {\n $(this).off(settings.startevent, $(this).data.callee1).off(settings.moveevent, $(this).data.callee2).off(settings.endevent, $(this).data.callee3);\n }\n };\n\n // scrollstart Event (also handles scrollend):\n $.event.special.scrollstart = {\n setup: function () {\n var thisObject = this,\n $this = $(thisObject),\n scrolling,\n timer;\n\n function trigger(event, state) {\n scrolling = state;\n triggerCustomEvent(thisObject, scrolling ? 'scrollstart' : 'scrollend', event);\n }\n\n // iPhone triggers scroll after a small delay; use touchmove instead\n $this.on(settings.scrollevent, function scrollFunc(event) {\n $this.data('callee', scrollFunc);\n\n if (!scrolling) {\n trigger(event, true);\n }\n\n clearTimeout(timer);\n timer = setTimeout(function () {\n trigger(event, false);\n }, 50);\n });\n },\n\n remove: function () {\n $(this).off(settings.scrollevent, $(this).data.callee);\n }\n };\n\n // This is the orientation change (largely borrowed from jQuery Mobile):\n var win = $(window),\n special_event,\n get_orientation,\n last_orientation,\n initial_orientation_is_landscape,\n initial_orientation_is_default,\n portrait_map = {\n '0': true,\n '180': true\n };\n\n if (settings.orientation_support) {\n var ww = window.innerWidth || win.width(),\n wh = window.innerHeight || win.height(),\n landscape_threshold = 50;\n\n initial_orientation_is_landscape = ww > wh && ww - wh > landscape_threshold;\n initial_orientation_is_default = portrait_map[window.orientation];\n\n if (initial_orientation_is_landscape && initial_orientation_is_default || !initial_orientation_is_landscape && !initial_orientation_is_default) {\n portrait_map = {\n '-90': true,\n '90': true\n };\n }\n }\n\n $.event.special.orientationchange = special_event = {\n setup: function () {\n // If the event is supported natively, return false so that jQuery\n // will on to the event using DOM methods.\n if (settings.orientation_support) {\n return false;\n }\n\n // Get the current orientation to avoid initial double-triggering.\n last_orientation = get_orientation();\n\n win.on('throttledresize', handler);\n return true;\n },\n teardown: function () {\n if (settings.orientation_support) {\n return false;\n }\n\n win.off('throttledresize', handler);\n return true;\n },\n add: function (handleObj) {\n // Save a reference to the bound event handler.\n var old_handler = handleObj.handler;\n\n handleObj.handler = function (event) {\n event.orientation = get_orientation();\n return old_handler.apply(this, arguments);\n };\n }\n };\n\n // If the event is not supported natively, this handler will be bound to\n // the window resize event to simulate the orientationchange event.\n\n function handler() {\n // Get the current orientation.\n var orientation = get_orientation();\n\n if (orientation !== last_orientation) {\n // The orientation has changed, so trigger the orientationchange event.\n last_orientation = orientation;\n win.trigger(\"orientationchange\");\n }\n }\n\n $.event.special.orientationchange.orientation = get_orientation = function () {\n var isPortrait = true,\n elem = document.documentElement;\n\n if (settings.orientation_support) {\n isPortrait = portrait_map[window.orientation];\n } else {\n isPortrait = elem && elem.clientWidth / elem.clientHeight < 1.1;\n }\n\n return isPortrait ? 'portrait' : 'landscape';\n };\n\n // throttle Handler:\n $.event.special.throttledresize = {\n setup: function () {\n $(this).on('resize', throttle_handler);\n },\n teardown: function () {\n $(this).off('resize', throttle_handler);\n }\n };\n\n var throttle = 250,\n throttle_handler = function () {\n curr = Date.now();\n diff = curr - lastCall;\n\n if (diff >= throttle) {\n lastCall = curr;\n $(this).trigger('throttledresize');\n } else {\n if (heldCall) {\n window.clearTimeout(heldCall);\n }\n\n // Promise a held call will still execute\n heldCall = window.setTimeout(handler, throttle - diff);\n }\n },\n lastCall = 0,\n heldCall,\n curr,\n diff;\n\n // Trigger a custom event:\n\n function triggerCustomEvent(obj, eventType, event, touchData) {\n var originalType = event.type;\n event.type = eventType;\n\n $.event.dispatch.call(obj, event, touchData);\n event.type = originalType;\n }\n\n // Correctly on anything we've overloaded:\n $.each({\n scrollend: 'scrollstart',\n swipeup: 'swipe',\n swiperight: 'swipe',\n swipedown: 'swipe',\n swipeleft: 'swipe',\n swipeend: 'swipe',\n tap2: 'tap'\n }, function (e, srcE) {\n $.event.special[e] = {\n setup: function () {\n $(this).on(srcE, $.noop);\n }\n };\n });\n})(jQuery);","/*!\r\n * bootstrap-add-clear v1.0.7 (http://github.com/gesquive/bootstrap-add-clear)\r\n * Licensed under MIT (http://github.com/gesquive/bootstrap-add-clear/blob/master/LICENSE)\r\n */\n;(function ($, window, document, undefined) {\n\n var pluginName = \"addClear\";\n\n // The actual plugin constructor\n function Plugin(element, options) {\n this.element = element;\n\n this.options = $.extend({}, defaults, options);\n\n this._defaults = defaults;\n this._name = pluginName;\n\n this.init();\n }\n\n Plugin.prototype = {\n\n init: function () {\n var $this = $(this.element),\n me = this,\n options = this.options;\n\n $this.wrap(\"
\");\n $this.after($(\"\"));\n $this.next().css({\n 'color': options.color,\n 'cursor': 'pointer',\n 'text-decoration': 'none',\n 'display': 'none',\n 'overflow': 'hidden',\n 'position': 'absolute',\n 'pointer-events': 'auto',\n 'right': options.right,\n 'top': options.top,\n 'z-index': options.zindex\n }, this);\n\n if ($this.val().length >= 1 && options.showOnLoad === true) {\n $this.siblings(\".add-clear-x\").show();\n }\n\n $this.on('focus.addclear', function () {\n if ($(this).val().length >= 1) {\n $(this).siblings(\".add-clear-x\").show();\n }\n });\n\n $this.on('blur.addclear', function () {\n var self = this;\n\n if (options.hideOnBlur) {\n setTimeout(function () {\n $(self).siblings(\".add-clear-x\").hide();\n }, 50);\n }\n });\n\n $this.on('keyup.addclear', function (e) {\n if (options.clearOnEscape === true && e.keyCode == 27) {\n $(this).val('').focus();\n if (options.onClear) {\n options.onClear($(this).siblings(\"input\"));\n }\n }\n if ($(this).val().length >= 1) {\n $(this).siblings(\".add-clear-x\").show();\n } else {\n $(this).siblings(\".add-clear-x\").hide();\n }\n });\n\n $this.on('input.addclear change.addclear paste.addclear', function () {\n if ($(this).val().length >= 1) {\n $(this).siblings(\".add-clear-x\").show();\n } else {\n $(this).siblings(\".add-clear-x\").hide();\n }\n });\n\n $this.siblings(\".add-clear-x\").on('click.addclear', function (e) {\n $(this).siblings(me.element).val(\"\");\n $(this).hide();\n if (options.returnFocus === true) {\n $(this).siblings(me.element).focus();\n }\n if (options.onClear) {\n options.onClear($(this).siblings(\"input\"));\n }\n e.preventDefault();\n });\n }\n\n };\n\n $.fn[pluginName] = function (options, optionName, optionValue) {\n return this.each(function () {\n if (options === \"option\") {\n var $this = $(this);\n if (optionName === \"show\") {\n $this.siblings(\".add-clear-x\").show();\n } else if (optionName === \"hide\") {\n $this.siblings(\".add-clear-x\").hide();\n }\n }\n var isSetOption = optionName && optionName !== \"show\" && optionName !== \"hide\";\n if (isSetOption) {\n var oldInstance = $.data(this, \"plugin_\" + pluginName);\n if (!oldInstance || !oldInstance.options) {\n throw \"Cannot set option, plugin was not instantiated\";\n }\n oldInstance.options[optionName] = optionValue;\n } else {\n if (!$.data(this, \"plugin_\" + pluginName)) {\n $.data(this, \"plugin_\" + pluginName, new Plugin(this, options));\n }\n }\n });\n };\n\n $.fn[pluginName].Constructor = Plugin;\n\n var defaults = $.fn[pluginName].defaults = {\n closeSymbol: \"\",\n symbolClass: 'glyphicon glyphicon-remove-circle',\n color: \"#CCC\",\n top: 0,\n right: 0,\n returnFocus: true,\n showOnLoad: false,\n onClear: null,\n hideOnBlur: false,\n clearOnEscape: true,\n wrapperClass: '',\n zindex: 100\n };\n})(jQuery, window, document);","// image compress\nfunction compress(imgElem, maxSize, mimeType, quality) {\n maxSize = typeof maxSize !== 'undefined' ? maxSize : 2048;\n mimeType = typeof mimeType !== 'undefined' ? mimeType : \"image/jpeg\";\n quality = typeof quality !== 'undefined' ? quality : 85;\n\n var actWidth = imgElem.width;\n var actHeight = imgElem.height;\n\n var calcWidth;\n var calcHeight;\n\n if (actWidth >= actHeight) {\n if (actWidth > maxSize) {\n var ratio = maxSize / actWidth;\n calcWidth = actWidth * ratio;\n calcHeight = actHeight * ratio;\n } else {\n calcWidth = actWidth;\n calcHeight = actHeight;\n }\n } else {\n if (actHeight > maxSize) {\n var ratio = maxSize / actHeight;\n calcWidth = actWidth * ratio;\n calcHeight = actHeight * ratio;\n } else {\n calcWidth = actWidth;\n calcHeight = actHeight;\n }\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = calcWidth;\n canvas.height = calcHeight;\n var context = canvas.getContext(\"2d\");\n context.scale(calcWidth / actWidth, calcHeight / actHeight);\n context.drawImage(imgElem, 0, 0);\n\n return canvas.toDataURL(mimeType, quality / 100);\n}\n\nvar ImageCropper = function (imageSelector) {\n\n function initCropper() {\n var image = $(imageSelector)[0];\n new Cropper(image, {\n viewMode: 1,\n dragMode: 'move',\n aspectRatio: 1,\n autoCropArea: 0.8\n });\n }\n\n this.getImageSelector = function () {\n return imageSelector;\n };\n\n function getCropper() {\n return $(imageSelector)[0].cropper;\n }\n\n function destroyCropper() {\n var cropper = getCropper();\n if (cropper != null) {\n cropper.destroy();\n }\n }\n\n this.getCroppedImage = function () {\n var canvas = getCropper().getCroppedCanvas({ width: 600, height: 600 });\n var imgData = canvas.toDataURL(\"image/png\");\n imgData = imgData.slice(imgData.indexOf(',') + 1);\n console.log(imgData);\n return imgData;\n };\n\n this.uploadImage = function () {\n var canvas = getCropper().getCroppedCanvas({ width: 600, height: 600 });\n var imgData = canvas.toDataURL(\"image/png\");\n var img = $(imageSelector)[0];\n img.src = imgData;\n imgData = imgData.slice(imgData.indexOf(',') + 1);\n // call to native function - only works within the app\n JSInterface.onSavePicture(imgData);\n };\n\n // capture image from device camera\n this.captureImage = function () {\n destroyCropper();\n // call to native function - only works within the app\n JSInterface.captureImage();\n };\n\n // load image from gallery\n this.loadImage = function () {\n destroyCropper();\n // call to native function - only works within the app\n JSInterface.loadImage();\n };\n\n this.setImage = function (imgData) {\n if (imgData == null) {\n imgData = JSInterface.getImageData();\n }\n $(imageSelector).attr('src', imgData);\n initCropper();\n };\n};","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n(function () {\n function n(n) {\n function t(t, r, e, u, i, o) {\n for (; i >= 0 && o > i; i += n) {\n var a = u ? u[i] : i;e = r(e, t[a], a, t);\n }return e;\n }return function (r, e, u, i) {\n e = b(e, i, 4);var o = !k(r) && m.keys(r),\n a = (o || r).length,\n c = n > 0 ? 0 : a - 1;return arguments.length < 3 && (u = r[o ? o[c] : c], c += n), t(r, e, u, o, c, a);\n };\n }function t(n) {\n return function (t, r, e) {\n r = x(r, e);for (var u = O(t), i = n > 0 ? 0 : u - 1; i >= 0 && u > i; i += n) if (r(t[i], i, t)) return i;return -1;\n };\n }function r(n, t, r) {\n return function (e, u, i) {\n var o = 0,\n a = O(e);if (\"number\" == typeof i) n > 0 ? o = i >= 0 ? i : Math.max(i + a, o) : a = i >= 0 ? Math.min(i + 1, a) : i + a + 1;else if (r && i && a) return i = r(e, u), e[i] === u ? i : -1;if (u !== u) return i = t(l.call(e, o, a), m.isNaN), i >= 0 ? i + o : -1;for (i = n > 0 ? o : a - 1; i >= 0 && a > i; i += n) if (e[i] === u) return i;return -1;\n };\n }function e(n, t) {\n var r = I.length,\n e = n.constructor,\n u = m.isFunction(e) && e.prototype || a,\n i = \"constructor\";for (m.has(n, i) && !m.contains(t, i) && t.push(i); r--;) i = I[r], i in n && n[i] !== u[i] && !m.contains(t, i) && t.push(i);\n }var u = this,\n i = u._,\n o = Array.prototype,\n a = Object.prototype,\n c = Function.prototype,\n f = o.push,\n l = o.slice,\n s = a.toString,\n p = a.hasOwnProperty,\n h = Array.isArray,\n v = Object.keys,\n g = c.bind,\n y = Object.create,\n d = function () {},\n m = function (n) {\n return n instanceof m ? n : this instanceof m ? void (this._wrapped = n) : new m(n);\n };\"undefined\" != typeof exports ? (\"undefined\" != typeof module && module.exports && (exports = module.exports = m), exports._ = m) : u._ = m, m.VERSION = \"1.8.3\";var b = function (n, t, r) {\n if (t === void 0) return n;switch (null == r ? 3 : r) {case 1:\n return function (r) {\n return n.call(t, r);\n };case 2:\n return function (r, e) {\n return n.call(t, r, e);\n };case 3:\n return function (r, e, u) {\n return n.call(t, r, e, u);\n };case 4:\n return function (r, e, u, i) {\n return n.call(t, r, e, u, i);\n };}return function () {\n return n.apply(t, arguments);\n };\n },\n x = function (n, t, r) {\n return null == n ? m.identity : m.isFunction(n) ? b(n, t, r) : m.isObject(n) ? m.matcher(n) : m.property(n);\n };m.iteratee = function (n, t) {\n return x(n, t, 1 / 0);\n };var _ = function (n, t) {\n return function (r) {\n var e = arguments.length;if (2 > e || null == r) return r;for (var u = 1; e > u; u++) for (var i = arguments[u], o = n(i), a = o.length, c = 0; a > c; c++) {\n var f = o[c];t && r[f] !== void 0 || (r[f] = i[f]);\n }return r;\n };\n },\n j = function (n) {\n if (!m.isObject(n)) return {};if (y) return y(n);d.prototype = n;var t = new d();return d.prototype = null, t;\n },\n w = function (n) {\n return function (t) {\n return null == t ? void 0 : t[n];\n };\n },\n A = Math.pow(2, 53) - 1,\n O = w(\"length\"),\n k = function (n) {\n var t = O(n);return \"number\" == typeof t && t >= 0 && A >= t;\n };m.each = m.forEach = function (n, t, r) {\n t = b(t, r);var e, u;if (k(n)) for (e = 0, u = n.length; u > e; e++) t(n[e], e, n);else {\n var i = m.keys(n);for (e = 0, u = i.length; u > e; e++) t(n[i[e]], i[e], n);\n }return n;\n }, m.map = m.collect = function (n, t, r) {\n t = x(t, r);for (var e = !k(n) && m.keys(n), u = (e || n).length, i = Array(u), o = 0; u > o; o++) {\n var a = e ? e[o] : o;i[o] = t(n[a], a, n);\n }return i;\n }, m.reduce = m.foldl = m.inject = n(1), m.reduceRight = m.foldr = n(-1), m.find = m.detect = function (n, t, r) {\n var e;return e = k(n) ? m.findIndex(n, t, r) : m.findKey(n, t, r), e !== void 0 && e !== -1 ? n[e] : void 0;\n }, m.filter = m.select = function (n, t, r) {\n var e = [];return t = x(t, r), m.each(n, function (n, r, u) {\n t(n, r, u) && e.push(n);\n }), e;\n }, m.reject = function (n, t, r) {\n return m.filter(n, m.negate(x(t)), r);\n }, m.every = m.all = function (n, t, r) {\n t = x(t, r);for (var e = !k(n) && m.keys(n), u = (e || n).length, i = 0; u > i; i++) {\n var o = e ? e[i] : i;if (!t(n[o], o, n)) return !1;\n }return !0;\n }, m.some = m.any = function (n, t, r) {\n t = x(t, r);for (var e = !k(n) && m.keys(n), u = (e || n).length, i = 0; u > i; i++) {\n var o = e ? e[i] : i;if (t(n[o], o, n)) return !0;\n }return !1;\n }, m.contains = m.includes = m.include = function (n, t, r, e) {\n return k(n) || (n = m.values(n)), (\"number\" != typeof r || e) && (r = 0), m.indexOf(n, t, r) >= 0;\n }, m.invoke = function (n, t) {\n var r = l.call(arguments, 2),\n e = m.isFunction(t);return m.map(n, function (n) {\n var u = e ? t : n[t];return null == u ? u : u.apply(n, r);\n });\n }, m.pluck = function (n, t) {\n return m.map(n, m.property(t));\n }, m.where = function (n, t) {\n return m.filter(n, m.matcher(t));\n }, m.findWhere = function (n, t) {\n return m.find(n, m.matcher(t));\n }, m.max = function (n, t, r) {\n var e,\n u,\n i = -1 / 0,\n o = -1 / 0;if (null == t && null != n) {\n n = k(n) ? n : m.values(n);for (var a = 0, c = n.length; c > a; a++) e = n[a], e > i && (i = e);\n } else t = x(t, r), m.each(n, function (n, r, e) {\n u = t(n, r, e), (u > o || u === -1 / 0 && i === -1 / 0) && (i = n, o = u);\n });return i;\n }, m.min = function (n, t, r) {\n var e,\n u,\n i = 1 / 0,\n o = 1 / 0;if (null == t && null != n) {\n n = k(n) ? n : m.values(n);for (var a = 0, c = n.length; c > a; a++) e = n[a], i > e && (i = e);\n } else t = x(t, r), m.each(n, function (n, r, e) {\n u = t(n, r, e), (o > u || 1 / 0 === u && 1 / 0 === i) && (i = n, o = u);\n });return i;\n }, m.shuffle = function (n) {\n for (var t, r = k(n) ? n : m.values(n), e = r.length, u = Array(e), i = 0; e > i; i++) t = m.random(0, i), t !== i && (u[i] = u[t]), u[t] = r[i];return u;\n }, m.sample = function (n, t, r) {\n return null == t || r ? (k(n) || (n = m.values(n)), n[m.random(n.length - 1)]) : m.shuffle(n).slice(0, Math.max(0, t));\n }, m.sortBy = function (n, t, r) {\n return t = x(t, r), m.pluck(m.map(n, function (n, r, e) {\n return { value: n, index: r, criteria: t(n, r, e) };\n }).sort(function (n, t) {\n var r = n.criteria,\n e = t.criteria;if (r !== e) {\n if (r > e || r === void 0) return 1;if (e > r || e === void 0) return -1;\n }return n.index - t.index;\n }), \"value\");\n };var F = function (n) {\n return function (t, r, e) {\n var u = {};return r = x(r, e), m.each(t, function (e, i) {\n var o = r(e, i, t);n(u, e, o);\n }), u;\n };\n };m.groupBy = F(function (n, t, r) {\n m.has(n, r) ? n[r].push(t) : n[r] = [t];\n }), m.indexBy = F(function (n, t, r) {\n n[r] = t;\n }), m.countBy = F(function (n, t, r) {\n m.has(n, r) ? n[r]++ : n[r] = 1;\n }), m.toArray = function (n) {\n return n ? m.isArray(n) ? l.call(n) : k(n) ? m.map(n, m.identity) : m.values(n) : [];\n }, m.size = function (n) {\n return null == n ? 0 : k(n) ? n.length : m.keys(n).length;\n }, m.partition = function (n, t, r) {\n t = x(t, r);var e = [],\n u = [];return m.each(n, function (n, r, i) {\n (t(n, r, i) ? e : u).push(n);\n }), [e, u];\n }, m.first = m.head = m.take = function (n, t, r) {\n return null == n ? void 0 : null == t || r ? n[0] : m.initial(n, n.length - t);\n }, m.initial = function (n, t, r) {\n return l.call(n, 0, Math.max(0, n.length - (null == t || r ? 1 : t)));\n }, m.last = function (n, t, r) {\n return null == n ? void 0 : null == t || r ? n[n.length - 1] : m.rest(n, Math.max(0, n.length - t));\n }, m.rest = m.tail = m.drop = function (n, t, r) {\n return l.call(n, null == t || r ? 1 : t);\n }, m.compact = function (n) {\n return m.filter(n, m.identity);\n };var S = function (n, t, r, e) {\n for (var u = [], i = 0, o = e || 0, a = O(n); a > o; o++) {\n var c = n[o];if (k(c) && (m.isArray(c) || m.isArguments(c))) {\n t || (c = S(c, t, r));var f = 0,\n l = c.length;for (u.length += l; l > f;) u[i++] = c[f++];\n } else r || (u[i++] = c);\n }return u;\n };m.flatten = function (n, t) {\n return S(n, t, !1);\n }, m.without = function (n) {\n return m.difference(n, l.call(arguments, 1));\n }, m.uniq = m.unique = function (n, t, r, e) {\n m.isBoolean(t) || (e = r, r = t, t = !1), null != r && (r = x(r, e));for (var u = [], i = [], o = 0, a = O(n); a > o; o++) {\n var c = n[o],\n f = r ? r(c, o, n) : c;t ? (o && i === f || u.push(c), i = f) : r ? m.contains(i, f) || (i.push(f), u.push(c)) : m.contains(u, c) || u.push(c);\n }return u;\n }, m.union = function () {\n return m.uniq(S(arguments, !0, !0));\n }, m.intersection = function (n) {\n for (var t = [], r = arguments.length, e = 0, u = O(n); u > e; e++) {\n var i = n[e];if (!m.contains(t, i)) {\n for (var o = 1; r > o && m.contains(arguments[o], i); o++);o === r && t.push(i);\n }\n }return t;\n }, m.difference = function (n) {\n var t = S(arguments, !0, !0, 1);return m.filter(n, function (n) {\n return !m.contains(t, n);\n });\n }, m.zip = function () {\n return m.unzip(arguments);\n }, m.unzip = function (n) {\n for (var t = n && m.max(n, O).length || 0, r = Array(t), e = 0; t > e; e++) r[e] = m.pluck(n, e);return r;\n }, m.object = function (n, t) {\n for (var r = {}, e = 0, u = O(n); u > e; e++) t ? r[n[e]] = t[e] : r[n[e][0]] = n[e][1];return r;\n }, m.findIndex = t(1), m.findLastIndex = t(-1), m.sortedIndex = function (n, t, r, e) {\n r = x(r, e, 1);for (var u = r(t), i = 0, o = O(n); o > i;) {\n var a = Math.floor((i + o) / 2);r(n[a]) < u ? i = a + 1 : o = a;\n }return i;\n }, m.indexOf = r(1, m.findIndex, m.sortedIndex), m.lastIndexOf = r(-1, m.findLastIndex), m.range = function (n, t, r) {\n null == t && (t = n || 0, n = 0), r = r || 1;for (var e = Math.max(Math.ceil((t - n) / r), 0), u = Array(e), i = 0; e > i; i++, n += r) u[i] = n;return u;\n };var E = function (n, t, r, e, u) {\n if (!(e instanceof t)) return n.apply(r, u);var i = j(n.prototype),\n o = n.apply(i, u);return m.isObject(o) ? o : i;\n };m.bind = function (n, t) {\n if (g && n.bind === g) return g.apply(n, l.call(arguments, 1));if (!m.isFunction(n)) throw new TypeError(\"Bind must be called on a function\");var r = l.call(arguments, 2),\n e = function () {\n return E(n, e, t, this, r.concat(l.call(arguments)));\n };return e;\n }, m.partial = function (n) {\n var t = l.call(arguments, 1),\n r = function () {\n for (var e = 0, u = t.length, i = Array(u), o = 0; u > o; o++) i[o] = t[o] === m ? arguments[e++] : t[o];for (; e < arguments.length;) i.push(arguments[e++]);return E(n, r, this, this, i);\n };return r;\n }, m.bindAll = function (n) {\n var t,\n r,\n e = arguments.length;if (1 >= e) throw new Error(\"bindAll must be passed function names\");for (t = 1; e > t; t++) r = arguments[t], n[r] = m.bind(n[r], n);return n;\n }, m.memoize = function (n, t) {\n var r = function (e) {\n var u = r.cache,\n i = \"\" + (t ? t.apply(this, arguments) : e);return m.has(u, i) || (u[i] = n.apply(this, arguments)), u[i];\n };return r.cache = {}, r;\n }, m.delay = function (n, t) {\n var r = l.call(arguments, 2);return setTimeout(function () {\n return n.apply(null, r);\n }, t);\n }, m.defer = m.partial(m.delay, m, 1), m.throttle = function (n, t, r) {\n var e,\n u,\n i,\n o = null,\n a = 0;r || (r = {});var c = function () {\n a = r.leading === !1 ? 0 : m.now(), o = null, i = n.apply(e, u), o || (e = u = null);\n };return function () {\n var f = m.now();a || r.leading !== !1 || (a = f);var l = t - (f - a);return e = this, u = arguments, 0 >= l || l > t ? (o && (clearTimeout(o), o = null), a = f, i = n.apply(e, u), o || (e = u = null)) : o || r.trailing === !1 || (o = setTimeout(c, l)), i;\n };\n }, m.debounce = function (n, t, r) {\n var e,\n u,\n i,\n o,\n a,\n c = function () {\n var f = m.now() - o;t > f && f >= 0 ? e = setTimeout(c, t - f) : (e = null, r || (a = n.apply(i, u), e || (i = u = null)));\n };return function () {\n i = this, u = arguments, o = m.now();var f = r && !e;return e || (e = setTimeout(c, t)), f && (a = n.apply(i, u), i = u = null), a;\n };\n }, m.wrap = function (n, t) {\n return m.partial(t, n);\n }, m.negate = function (n) {\n return function () {\n return !n.apply(this, arguments);\n };\n }, m.compose = function () {\n var n = arguments,\n t = n.length - 1;return function () {\n for (var r = t, e = n[t].apply(this, arguments); r--;) e = n[r].call(this, e);return e;\n };\n }, m.after = function (n, t) {\n return function () {\n return --n < 1 ? t.apply(this, arguments) : void 0;\n };\n }, m.before = function (n, t) {\n var r;return function () {\n return --n > 0 && (r = t.apply(this, arguments)), 1 >= n && (t = null), r;\n };\n }, m.once = m.partial(m.before, 2);var M = !{ toString: null }.propertyIsEnumerable(\"toString\"),\n I = [\"valueOf\", \"isPrototypeOf\", \"toString\", \"propertyIsEnumerable\", \"hasOwnProperty\", \"toLocaleString\"];m.keys = function (n) {\n if (!m.isObject(n)) return [];if (v) return v(n);var t = [];for (var r in n) m.has(n, r) && t.push(r);return M && e(n, t), t;\n }, m.allKeys = function (n) {\n if (!m.isObject(n)) return [];var t = [];for (var r in n) t.push(r);return M && e(n, t), t;\n }, m.values = function (n) {\n for (var t = m.keys(n), r = t.length, e = Array(r), u = 0; r > u; u++) e[u] = n[t[u]];return e;\n }, m.mapObject = function (n, t, r) {\n t = x(t, r);for (var e, u = m.keys(n), i = u.length, o = {}, a = 0; i > a; a++) e = u[a], o[e] = t(n[e], e, n);return o;\n }, m.pairs = function (n) {\n for (var t = m.keys(n), r = t.length, e = Array(r), u = 0; r > u; u++) e[u] = [t[u], n[t[u]]];return e;\n }, m.invert = function (n) {\n for (var t = {}, r = m.keys(n), e = 0, u = r.length; u > e; e++) t[n[r[e]]] = r[e];return t;\n }, m.functions = m.methods = function (n) {\n var t = [];for (var r in n) m.isFunction(n[r]) && t.push(r);return t.sort();\n }, m.extend = _(m.allKeys), m.extendOwn = m.assign = _(m.keys), m.findKey = function (n, t, r) {\n t = x(t, r);for (var e, u = m.keys(n), i = 0, o = u.length; o > i; i++) if (e = u[i], t(n[e], e, n)) return e;\n }, m.pick = function (n, t, r) {\n var e,\n u,\n i = {},\n o = n;if (null == o) return i;m.isFunction(t) ? (u = m.allKeys(o), e = b(t, r)) : (u = S(arguments, !1, !1, 1), e = function (n, t, r) {\n return t in r;\n }, o = Object(o));for (var a = 0, c = u.length; c > a; a++) {\n var f = u[a],\n l = o[f];e(l, f, o) && (i[f] = l);\n }return i;\n }, m.omit = function (n, t, r) {\n if (m.isFunction(t)) t = m.negate(t);else {\n var e = m.map(S(arguments, !1, !1, 1), String);t = function (n, t) {\n return !m.contains(e, t);\n };\n }return m.pick(n, t, r);\n }, m.defaults = _(m.allKeys, !0), m.create = function (n, t) {\n var r = j(n);return t && m.extendOwn(r, t), r;\n }, m.clone = function (n) {\n return m.isObject(n) ? m.isArray(n) ? n.slice() : m.extend({}, n) : n;\n }, m.tap = function (n, t) {\n return t(n), n;\n }, m.isMatch = function (n, t) {\n var r = m.keys(t),\n e = r.length;if (null == n) return !e;for (var u = Object(n), i = 0; e > i; i++) {\n var o = r[i];if (t[o] !== u[o] || !(o in u)) return !1;\n }return !0;\n };var N = function (n, t, r, e) {\n if (n === t) return 0 !== n || 1 / n === 1 / t;if (null == n || null == t) return n === t;n instanceof m && (n = n._wrapped), t instanceof m && (t = t._wrapped);var u = s.call(n);if (u !== s.call(t)) return !1;switch (u) {case \"[object RegExp]\":case \"[object String]\":\n return \"\" + n == \"\" + t;case \"[object Number]\":\n return +n !== +n ? +t !== +t : 0 === +n ? 1 / +n === 1 / t : +n === +t;case \"[object Date]\":case \"[object Boolean]\":\n return +n === +t;}var i = \"[object Array]\" === u;if (!i) {\n if (\"object\" != typeof n || \"object\" != typeof t) return !1;var o = n.constructor,\n a = t.constructor;if (o !== a && !(m.isFunction(o) && o instanceof o && m.isFunction(a) && a instanceof a) && \"constructor\" in n && \"constructor\" in t) return !1;\n }r = r || [], e = e || [];for (var c = r.length; c--;) if (r[c] === n) return e[c] === t;if (r.push(n), e.push(t), i) {\n if (c = n.length, c !== t.length) return !1;for (; c--;) if (!N(n[c], t[c], r, e)) return !1;\n } else {\n var f,\n l = m.keys(n);if (c = l.length, m.keys(t).length !== c) return !1;for (; c--;) if (f = l[c], !m.has(t, f) || !N(n[f], t[f], r, e)) return !1;\n }return r.pop(), e.pop(), !0;\n };m.isEqual = function (n, t) {\n return N(n, t);\n }, m.isEmpty = function (n) {\n return null == n ? !0 : k(n) && (m.isArray(n) || m.isString(n) || m.isArguments(n)) ? 0 === n.length : 0 === m.keys(n).length;\n }, m.isElement = function (n) {\n return !(!n || 1 !== n.nodeType);\n }, m.isArray = h || function (n) {\n return \"[object Array]\" === s.call(n);\n }, m.isObject = function (n) {\n var t = typeof n;return \"function\" === t || \"object\" === t && !!n;\n }, m.each([\"Arguments\", \"Function\", \"String\", \"Number\", \"Date\", \"RegExp\", \"Error\"], function (n) {\n m[\"is\" + n] = function (t) {\n return s.call(t) === \"[object \" + n + \"]\";\n };\n }), m.isArguments(arguments) || (m.isArguments = function (n) {\n return m.has(n, \"callee\");\n }), \"function\" != typeof /./ && \"object\" != typeof Int8Array && (m.isFunction = function (n) {\n return \"function\" == typeof n || !1;\n }), m.isFinite = function (n) {\n return isFinite(n) && !isNaN(parseFloat(n));\n }, m.isNaN = function (n) {\n return m.isNumber(n) && n !== +n;\n }, m.isBoolean = function (n) {\n return n === !0 || n === !1 || \"[object Boolean]\" === s.call(n);\n }, m.isNull = function (n) {\n return null === n;\n }, m.isUndefined = function (n) {\n return n === void 0;\n }, m.has = function (n, t) {\n return null != n && p.call(n, t);\n }, m.noConflict = function () {\n return u._ = i, this;\n }, m.identity = function (n) {\n return n;\n }, m.constant = function (n) {\n return function () {\n return n;\n };\n }, m.noop = function () {}, m.property = w, m.propertyOf = function (n) {\n return null == n ? function () {} : function (t) {\n return n[t];\n };\n }, m.matcher = m.matches = function (n) {\n return n = m.extendOwn({}, n), function (t) {\n return m.isMatch(t, n);\n };\n }, m.times = function (n, t, r) {\n var e = Array(Math.max(0, n));t = b(t, r, 1);for (var u = 0; n > u; u++) e[u] = t(u);return e;\n }, m.random = function (n, t) {\n return null == t && (t = n, n = 0), n + Math.floor(Math.random() * (t - n + 1));\n }, m.now = Date.now || function () {\n return new Date().getTime();\n };var B = { \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\", \"`\": \"`\" },\n T = m.invert(B),\n R = function (n) {\n var t = function (t) {\n return n[t];\n },\n r = \"(?:\" + m.keys(n).join(\"|\") + \")\",\n e = RegExp(r),\n u = RegExp(r, \"g\");return function (n) {\n return n = null == n ? \"\" : \"\" + n, e.test(n) ? n.replace(u, t) : n;\n };\n };m.escape = R(B), m.unescape = R(T), m.result = function (n, t, r) {\n var e = null == n ? void 0 : n[t];return e === void 0 && (e = r), m.isFunction(e) ? e.call(n) : e;\n };var q = 0;m.uniqueId = function (n) {\n var t = ++q + \"\";return n ? n + t : t;\n }, m.templateSettings = { evaluate: /<%([\\s\\S]+?)%>/g, interpolate: /<%=([\\s\\S]+?)%>/g, escape: /<%-([\\s\\S]+?)%>/g };var K = /(.)^/,\n z = { \"'\": \"'\", \"\\\\\": \"\\\\\", \"\\r\": \"r\", \"\\n\": \"n\", \"\\u2028\": \"u2028\", \"\\u2029\": \"u2029\" },\n D = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g,\n L = function (n) {\n return \"\\\\\" + z[n];\n };m.template = function (n, t, r) {\n !t && r && (t = r), t = m.defaults({}, t, m.templateSettings);var e = RegExp([(t.escape || K).source, (t.interpolate || K).source, (t.evaluate || K).source].join(\"|\") + \"|$\", \"g\"),\n u = 0,\n i = \"__p+='\";n.replace(e, function (t, r, e, o, a) {\n return i += n.slice(u, a).replace(D, L), u = a + t.length, r ? i += \"'+\\n((__t=(\" + r + \"))==null?'':_.escape(__t))+\\n'\" : e ? i += \"'+\\n((__t=(\" + e + \"))==null?'':__t)+\\n'\" : o && (i += \"';\\n\" + o + \"\\n__p+='\"), t;\n }), i += \"';\\n\", t.variable || (i = \"with(obj||{}){\\n\" + i + \"}\\n\"), i = \"var __t,__p='',__j=Array.prototype.join,\" + \"print=function(){__p+=__j.call(arguments,'');};\\n\" + i + \"return __p;\\n\";try {\n var o = new Function(t.variable || \"obj\", \"_\", i);\n } catch (a) {\n throw a.source = i, a;\n }var c = function (n) {\n return o.call(this, n, m);\n },\n f = t.variable || \"obj\";return c.source = \"function(\" + f + \"){\\n\" + i + \"}\", c;\n }, m.chain = function (n) {\n var t = m(n);return t._chain = !0, t;\n };var P = function (n, t) {\n return n._chain ? m(t).chain() : t;\n };m.mixin = function (n) {\n m.each(m.functions(n), function (t) {\n var r = m[t] = n[t];m.prototype[t] = function () {\n var n = [this._wrapped];return f.apply(n, arguments), P(this, r.apply(m, n));\n };\n });\n }, m.mixin(m), m.each([\"pop\", \"push\", \"reverse\", \"shift\", \"sort\", \"splice\", \"unshift\"], function (n) {\n var t = o[n];m.prototype[n] = function () {\n var r = this._wrapped;return t.apply(r, arguments), \"shift\" !== n && \"splice\" !== n || 0 !== r.length || delete r[0], P(this, r);\n };\n }), m.each([\"concat\", \"join\", \"slice\"], function (n) {\n var t = o[n];m.prototype[n] = function () {\n return P(this, t.apply(this._wrapped, arguments));\n };\n }), m.prototype.value = function () {\n return this._wrapped;\n }, m.prototype.valueOf = m.prototype.toJSON = m.prototype.value, m.prototype.toString = function () {\n return \"\" + this._wrapped;\n }, \"function\" == typeof define && define.amd && define(\"underscore\", [], function () {\n return m;\n });\n}).call(this);\n//# sourceMappingURL=underscore-min.map","/*!\r\n * jQuery & Zepto Lazy - v1.7.10\r\n * http://jquery.eisbehr.de/lazy/\r\n *\r\n * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern\r\n *\r\n * Dual licensed under the MIT and GPL-2.0 licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl-2.0.html\r\n *\r\n * $(\"img.lazy\").lazy();\r\n */\n\n;(function (window, undefined) {\n \"use strict\";\n\n // noinspection JSUnresolvedVariable\n /**\r\n * library instance - here and not in construct to be shorter in minimization\r\n * @return void\r\n */\n\n var $ = window.jQuery || window.Zepto,\n\n\n /**\r\n * unique plugin instance id counter\r\n * @type {number}\r\n */\n lazyInstanceId = 0,\n\n\n /**\r\n * helper to register window load for jQuery 3\r\n * @type {boolean}\r\n */\n windowLoaded = false;\n\n /**\r\n * make lazy available to jquery - and make it a bit more case-insensitive :)\r\n * @access public\r\n * @type {function}\r\n * @param {object} settings\r\n * @return {LazyPlugin}\r\n */\n $.fn.Lazy = $.fn.lazy = function (settings) {\n return new LazyPlugin(this, settings);\n };\n\n /**\r\n * helper to add plugins to lazy prototype configuration\r\n * @access public\r\n * @type {function}\r\n * @param {string|Array} names\r\n * @param {string|Array|function} [elements]\r\n * @param {function} loader\r\n * @return void\r\n */\n $.Lazy = $.lazy = function (names, elements, loader) {\n // make second parameter optional\n if ($.isFunction(elements)) {\n loader = elements;\n elements = [];\n }\n\n // exit here if parameter is not a callable function\n if (!$.isFunction(loader)) {\n return;\n }\n\n // make parameters an array of names to be sure\n names = $.isArray(names) ? names : [names];\n elements = $.isArray(elements) ? elements : [elements];\n\n var config = LazyPlugin.prototype.config,\n forced = config._f || (config._f = {});\n\n // add the loader plugin for every name\n for (var i = 0, l = names.length; i < l; i++) {\n if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {\n config[names[i]] = loader;\n }\n }\n\n // add forced elements loader\n for (var c = 0, a = elements.length; c < a; c++) {\n forced[elements[c]] = names[0];\n }\n };\n\n /**\r\n * contains all logic and the whole element handling\r\n * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance\r\n * @access private\r\n * @type {function}\r\n * @param {LazyPlugin} instance\r\n * @param {object} config\r\n * @param {object|Array} items\r\n * @param {object} events\r\n * @param {string} namespace\r\n * @return void\r\n */\n function _executeLazy(instance, config, items, events, namespace) {\n /**\r\n * a helper to trigger the 'onFinishedAll' callback after all other events\r\n * @access private\r\n * @type {number}\r\n */\n var _awaitingAfterLoad = 0,\n\n\n /**\r\n * visible content width\r\n * @access private\r\n * @type {number}\r\n */\n _actualWidth = -1,\n\n\n /**\r\n * visible content height\r\n * @access private\r\n * @type {number}\r\n */\n _actualHeight = -1,\n\n\n /**\r\n * determine possibly detected high pixel density\r\n * @access private\r\n * @type {boolean}\r\n */\n _isRetinaDisplay = false,\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _afterLoad = 'afterLoad',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _load = 'load',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _error = 'error',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _img = 'img',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _src = 'src',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _srcset = 'srcset',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _sizes = 'sizes',\n\n\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\n _backgroundImage = 'background-image';\n\n /**\r\n * initialize plugin\r\n * bind loading to events or set delay time to load all items at once\r\n * @access private\r\n * @return void\r\n */\n function _initialize() {\n // detect actual device pixel ratio\n // noinspection JSUnresolvedVariable\n _isRetinaDisplay = window.devicePixelRatio > 1;\n\n // prepare all initial items\n items = _prepareItems(items);\n\n // if delay time is set load all items at once after delay time\n if (config.delay >= 0) {\n setTimeout(function () {\n _lazyLoadItems(true);\n }, config.delay);\n }\n\n // if no delay is set or combine usage is active bind events\n if (config.delay < 0 || config.combined) {\n // create unique event function\n events.e = _throttle(config.throttle, function (event) {\n // reset detected window size on resize event\n if (event.type === 'resize') {\n _actualWidth = _actualHeight = -1;\n }\n\n // execute 'lazy magic'\n _lazyLoadItems(event.all);\n });\n\n // create function to add new items to instance\n events.a = function (additionalItems) {\n additionalItems = _prepareItems(additionalItems);\n items.push.apply(items, additionalItems);\n };\n\n // create function to get all instance items left\n events.g = function () {\n // filter loaded items before return in case internal filter was not running until now\n return items = $(items).filter(function () {\n return !$(this).data(config.loadedName);\n });\n };\n\n // create function to force loading elements\n events.f = function (forcedItems) {\n for (var i = 0; i < forcedItems.length; i++) {\n // only handle item if available in current instance\n // use a compare function, because Zepto can't handle object parameter for filter\n // var item = items.filter(forcedItems[i]);\n /* jshint loopfunc: true */\n var item = items.filter(function () {\n return this === forcedItems[i];\n });\n\n if (item.length) {\n _lazyLoadItems(false, item);\n }\n }\n };\n\n // load initial items\n _lazyLoadItems();\n\n // bind lazy load functions to scroll and resize event\n // noinspection JSUnresolvedVariable\n $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);\n }\n }\n\n /**\r\n * prepare items before handle them\r\n * @access private\r\n * @param {Array|object|jQuery} items\r\n * @return {Array|object|jQuery}\r\n */\n function _prepareItems(items) {\n // fetch used configurations before loops\n var defaultImage = config.defaultImage,\n placeholder = config.placeholder,\n imageBase = config.imageBase,\n srcsetAttribute = config.srcsetAttribute,\n loaderAttribute = config.loaderAttribute,\n forcedTags = config._f || {};\n\n // filter items and only add those who not handled yet and got needed attributes available\n items = $(items).filter(function () {\n var element = $(this),\n tag = _getElementTagName(this);\n\n return !element.data(config.handledName) && (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);\n })\n\n // append plugin instance to all elements\n .data('plugin_' + config.name, instance);\n\n for (var i = 0, l = items.length; i < l; i++) {\n var element = $(items[i]),\n tag = _getElementTagName(items[i]),\n elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;\n\n // generate and update source set if an image base is set\n if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {\n element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));\n }\n\n // add loader to forced element types\n if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {\n element.attr(loaderAttribute, forcedTags[tag]);\n }\n\n // set default image on every element without source\n if (tag === _img && defaultImage && !element.attr(_src)) {\n element.attr(_src, defaultImage);\n }\n\n // set placeholder on every element without background image\n else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {\n element.css(_backgroundImage, \"url('\" + placeholder + \"')\");\n }\n }\n\n return items;\n }\n\n /**\r\n * the 'lazy magic' - check all items\r\n * @access private\r\n * @param {boolean} [allItems]\r\n * @param {object} [forced]\r\n * @return void\r\n */\n function _lazyLoadItems(allItems, forced) {\n // skip if no items where left\n if (!items.length) {\n // destroy instance if option is enabled\n if (config.autoDestroy) {\n // noinspection JSUnresolvedFunction\n instance.destroy();\n }\n\n return;\n }\n\n var elements = forced || items,\n loadTriggered = false,\n imageBase = config.imageBase || '',\n srcsetAttribute = config.srcsetAttribute,\n handledName = config.handledName;\n\n // loop all available items\n for (var i = 0; i < elements.length; i++) {\n // item is at least in loadable area\n if (allItems || forced || _isInLoadableArea(elements[i])) {\n var element = $(elements[i]),\n tag = _getElementTagName(elements[i]),\n attribute = element.attr(config.attribute),\n elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,\n customLoader = element.attr(config.loaderAttribute);\n\n // is not already handled \n if (!element.data(handledName) && (\n // and is visible or visibility doesn't matter\n !config.visibleOnly || element.is(':visible')) && (\n // and image source or source set attribute is available\n (attribute || element.attr(srcsetAttribute)) && (\n // and is image tag where attribute is not equal source or source set\n tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset)) ||\n // or is non image tag where attribute is not equal background\n tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage)) ||\n // or custom loader is available\n customLoader)) {\n // mark element always as handled as this point to prevent double handling\n loadTriggered = true;\n element.data(handledName, true);\n\n // load item\n _handleItem(element, tag, elementImageBase, customLoader);\n }\n }\n }\n\n // when something was loaded remove them from remaining items\n if (loadTriggered) {\n items = $(items).filter(function () {\n return !$(this).data(handledName);\n });\n }\n }\n\n /**\r\n * load the given element the lazy way\r\n * @access private\r\n * @param {object} element\r\n * @param {string} tag\r\n * @param {string} imageBase\r\n * @param {function} [customLoader]\r\n * @return void\r\n */\n function _handleItem(element, tag, imageBase, customLoader) {\n // increment count of items waiting for after load\n ++_awaitingAfterLoad;\n\n // extended error callback for correct 'onFinishedAll' handling\n var errorCallback = function () {\n _triggerCallback('onError', element);\n _reduceAwaiting();\n\n // prevent further callback calls\n errorCallback = $.noop;\n };\n\n // trigger function before loading image\n _triggerCallback('beforeLoad', element);\n\n // fetch all double used data here for better code minimization\n var srcAttribute = config.attribute,\n srcsetAttribute = config.srcsetAttribute,\n sizesAttribute = config.sizesAttribute,\n retinaAttribute = config.retinaAttribute,\n removeAttribute = config.removeAttribute,\n loadedName = config.loadedName,\n elementRetina = element.attr(retinaAttribute);\n\n // handle custom loader\n if (customLoader) {\n // on load callback\n var loadCallback = function () {\n // remove attribute from element\n if (removeAttribute) {\n element.removeAttr(config.loaderAttribute);\n }\n\n // mark element as loaded\n element.data(loadedName, true);\n\n // call after load event\n _triggerCallback(_afterLoad, element);\n\n // remove item from waiting queue and possibly trigger finished event\n // it's needed to be asynchronous to run after filter was in _lazyLoadItems\n setTimeout(_reduceAwaiting, 1);\n\n // prevent further callback calls\n loadCallback = $.noop;\n };\n\n // bind error event to trigger callback and reduce waiting amount\n element.off(_error).one(_error, errorCallback)\n\n // bind after load callback to element\n .one(_load, loadCallback);\n\n // trigger custom loader and handle response\n if (!_triggerCallback(customLoader, element, function (response) {\n if (response) {\n element.off(_load);\n loadCallback();\n } else {\n element.off(_error);\n errorCallback();\n }\n })) {\n element.trigger(_error);\n }\n }\n\n // handle images\n else {\n // create image object\n var imageObj = $(new Image());\n\n // bind error event to trigger callback and reduce waiting amount\n imageObj.one(_error, errorCallback)\n\n // bind after load callback to image\n .one(_load, function () {\n // remove element from view\n element.hide();\n\n // set image back to element\n // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'\n if (tag === _img) {\n element.attr(_sizes, imageObj.attr(_sizes)).attr(_srcset, imageObj.attr(_srcset)).attr(_src, imageObj.attr(_src));\n } else {\n element.css(_backgroundImage, \"url('\" + imageObj.attr(_src) + \"')\");\n }\n\n // bring it back with some effect!\n element[config.effect](config.effectTime);\n\n // remove attribute from element\n if (removeAttribute) {\n element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute);\n\n // only remove 'sizes' attribute, if it was a custom one\n if (sizesAttribute !== _sizes) {\n element.removeAttr(sizesAttribute);\n }\n }\n\n // mark element as loaded\n element.data(loadedName, true);\n\n // call after load event\n _triggerCallback(_afterLoad, element);\n\n // cleanup image object\n imageObj.remove();\n\n // remove item from waiting queue and possibly trigger finished event\n _reduceAwaiting();\n });\n\n // set sources\n // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'\n var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || '';\n imageObj.attr(_sizes, element.attr(sizesAttribute)).attr(_srcset, element.attr(srcsetAttribute)).attr(_src, imageSrc ? imageBase + imageSrc : null);\n\n // call after load even on cached image\n imageObj.complete && imageObj.trigger(_load); // jshint ignore : line\n }\n }\n\n /**\r\n * check if the given element is inside the current viewport or threshold\r\n * @access private\r\n * @param {object} element\r\n * @return {boolean}\r\n */\n function _isInLoadableArea(element) {\n var elementBound = element.getBoundingClientRect(),\n direction = config.scrollDirection,\n threshold = config.threshold,\n vertical = // check if element is in loadable area from top\n _getActualHeight() + threshold > elementBound.top &&\n // check if element is even in loadable are from bottom\n -threshold < elementBound.bottom,\n horizontal = // check if element is in loadable area from left\n _getActualWidth() + threshold > elementBound.left &&\n // check if element is even in loadable area from right\n -threshold < elementBound.right;\n\n if (direction === 'vertical') {\n return vertical;\n } else if (direction === 'horizontal') {\n return horizontal;\n }\n\n return vertical && horizontal;\n }\n\n /**\r\n * receive the current viewed width of the browser\r\n * @access private\r\n * @return {number}\r\n */\n function _getActualWidth() {\n return _actualWidth >= 0 ? _actualWidth : _actualWidth = $(window).width();\n }\n\n /**\r\n * receive the current viewed height of the browser\r\n * @access private\r\n * @return {number}\r\n */\n function _getActualHeight() {\n return _actualHeight >= 0 ? _actualHeight : _actualHeight = $(window).height();\n }\n\n /**\r\n * get lowercase tag name of an element\r\n * @access private\r\n * @param {object} element\r\n * @returns {string}\r\n */\n function _getElementTagName(element) {\n return element.tagName.toLowerCase();\n }\n\n /**\r\n * prepend image base to all srcset entries\r\n * @access private\r\n * @param {string} srcset\r\n * @param {string} imageBase\r\n * @returns {string}\r\n */\n function _getCorrectedSrcSet(srcset, imageBase) {\n if (imageBase) {\n // trim, remove unnecessary spaces and split entries\n var entries = srcset.split(',');\n srcset = '';\n\n for (var i = 0, l = entries.length; i < l; i++) {\n srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : '');\n }\n }\n\n return srcset;\n }\n\n /**\r\n * helper function to throttle down event triggering\r\n * @access private\r\n * @param {number} delay\r\n * @param {function} callback\r\n * @return {function}\r\n */\n function _throttle(delay, callback) {\n var timeout,\n lastExecute = 0;\n\n return function (event, ignoreThrottle) {\n var elapsed = +new Date() - lastExecute;\n\n function run() {\n lastExecute = +new Date();\n // noinspection JSUnresolvedFunction\n callback.call(instance, event);\n }\n\n timeout && clearTimeout(timeout); // jshint ignore : line\n\n if (elapsed > delay || !config.enableThrottle || ignoreThrottle) {\n run();\n } else {\n timeout = setTimeout(run, delay - elapsed);\n }\n };\n }\n\n /**\r\n * reduce count of awaiting elements to 'afterLoad' event and fire 'onFinishedAll' if reached zero\r\n * @access private\r\n * @return void\r\n */\n function _reduceAwaiting() {\n --_awaitingAfterLoad;\n\n // if no items were left trigger finished event\n if (!items.length && !_awaitingAfterLoad) {\n _triggerCallback('onFinishedAll');\n }\n }\n\n /**\r\n * single implementation to handle callbacks, pass element and set 'this' to current instance\r\n * @access private\r\n * @param {string|function} callback\r\n * @param {object} [element]\r\n * @param {*} [args]\r\n * @return {boolean}\r\n */\n function _triggerCallback(callback, element, args) {\n if (callback = config[callback]) {\n // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads\n // below is shorthand of 'Array.prototype.slice.call(arguments, 1)'\n callback.apply(instance, [].slice.call(arguments, 1));\n return true;\n }\n\n return false;\n }\n\n // if event driven or window is already loaded don't wait for page loading\n if (config.bind === 'event' || windowLoaded) {\n _initialize();\n }\n\n // otherwise load initial items and start lazy after page load\n else {\n // noinspection JSUnresolvedVariable\n $(window).on(_load + '.' + namespace, _initialize);\n }\n }\n\n /**\r\n * lazy plugin class constructor\r\n * @constructor\r\n * @access private\r\n * @param {object} elements\r\n * @param {object} settings\r\n * @return {object|LazyPlugin}\r\n */\n function LazyPlugin(elements, settings) {\n /**\r\n * this lazy plugin instance\r\n * @access private\r\n * @type {object|LazyPlugin|LazyPlugin.prototype}\r\n */\n var _instance = this,\n\n\n /**\r\n * this lazy plugin instance configuration\r\n * @access private\r\n * @type {object}\r\n */\n _config = $.extend({}, _instance.config, settings),\n\n\n /**\r\n * instance generated event executed on container scroll or resize\r\n * packed in an object to be referenceable and short named because properties will not be minified\r\n * @access private\r\n * @type {object}\r\n */\n _events = {},\n\n\n /**\r\n * unique namespace for instance related events\r\n * @access private\r\n * @type {string}\r\n */\n _namespace = _config.name + '-' + ++lazyInstanceId;\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * wrapper to get or set an entry from plugin instance configuration\r\n * much smaller on minify as direct access\r\n * @access public\r\n * @type {function}\r\n * @param {string} entryName\r\n * @param {*} [value]\r\n * @return {LazyPlugin|*}\r\n */\n _instance.config = function (entryName, value) {\n if (value === undefined) {\n return _config[entryName];\n }\n\n _config[entryName] = value;\n return _instance;\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * add additional items to current instance\r\n * @access public\r\n * @param {Array|object|string} items\r\n * @return {LazyPlugin}\r\n */\n _instance.addItems = function (items) {\n _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line\n return _instance;\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * get all left items of this instance\r\n * @access public\r\n * @returns {object}\r\n */\n _instance.getItems = function () {\n return _events.g ? _events.g() : {};\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * force lazy to load all items in loadable area right now\r\n * by default without throttle\r\n * @access public\r\n * @type {function}\r\n * @param {boolean} [useThrottle]\r\n * @return {LazyPlugin}\r\n */\n _instance.update = function (useThrottle) {\n _events.e && _events.e({}, !useThrottle); // jshint ignore : line\n return _instance;\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * force element(s) to load directly, ignoring the viewport\r\n * @access public\r\n * @param {Array|object|string} items\r\n * @return {LazyPlugin}\r\n */\n _instance.force = function (items) {\n _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line\n return _instance;\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * force lazy to load all available items right now\r\n * this call ignores throttling\r\n * @access public\r\n * @type {function}\r\n * @return {LazyPlugin}\r\n */\n _instance.loadAll = function () {\n _events.e && _events.e({ all: true }, true); // jshint ignore : line\n return _instance;\n };\n\n // noinspection JSUndefinedPropertyAssignment\n /**\r\n * destroy this plugin instance\r\n * @access public\r\n * @type {function}\r\n * @return undefined\r\n */\n _instance.destroy = function () {\n // unbind instance generated events\n // noinspection JSUnresolvedFunction, JSUnresolvedVariable\n $(_config.appendScroll).off('.' + _namespace, _events.e);\n // noinspection JSUnresolvedVariable\n $(window).off('.' + _namespace);\n\n // clear events\n _events = {};\n\n return undefined;\n };\n\n // start using lazy and return all elements to be chainable or instance for further use\n // noinspection JSUnresolvedVariable\n _executeLazy(_instance, _config, elements, _events, _namespace);\n return _config.chainable ? elements : _instance;\n }\n\n /**\r\n * settings and configuration data\r\n * @access public\r\n * @type {object|*}\r\n */\n LazyPlugin.prototype.config = {\n // general\n name: 'lazy',\n chainable: true,\n autoDestroy: true,\n bind: 'load',\n threshold: 500,\n visibleOnly: false,\n appendScroll: window,\n scrollDirection: 'both',\n imageBase: null,\n defaultImage: 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',\n placeholder: null,\n delay: -1,\n combined: false,\n\n // attributes\n attribute: 'data-src',\n srcsetAttribute: 'data-srcset',\n sizesAttribute: 'data-sizes',\n retinaAttribute: 'data-retina',\n loaderAttribute: 'data-loader',\n imageBaseAttribute: 'data-imagebase',\n removeAttribute: true,\n handledName: 'handled',\n loadedName: 'loaded',\n\n // effect\n effect: 'show',\n effectTime: 0,\n\n // throttle\n enableThrottle: true,\n throttle: 250,\n\n // callbacks\n beforeLoad: undefined,\n afterLoad: undefined,\n onError: undefined,\n onFinishedAll: undefined\n };\n\n // register window load event globally to prevent not loading elements\n // since jQuery 3.X ready state is fully async and may be executed after 'load' \n $(window).on('load', function () {\n windowLoaded = true;\n });\n})(window);","/*!\r\n * Cropper.js v1.0.0-beta.1\r\n * https://github.com/fengyuanchen/cropperjs\r\n *\r\n * Copyright (c) 2017 Fengyuan Chen\r\n * Released under the MIT license\r\n *\r\n * Date: 2017-01-21T12:28:26.786Z\r\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.Cropper = factory();\n})(this, function () {\n 'use strict';\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0, // 0, 1, 2, 3\n\n // Define the dragging mode of the cropper\n dragMode: 'crop', // 'crop', 'move' or 'none'\n\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n\n // An object with the previous cropping result data\n data: null,\n\n // A selector for adding extra containers to preview\n preview: '',\n\n // Re-render the cropper when resize the window\n responsive: true,\n\n // Restore the cropped area after resize the window\n restore: true,\n\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n\n // Show the black modal\n modal: true,\n\n // Show the dashed lines for guiding\n guides: true,\n\n // Show the center indicator for guiding\n center: true,\n\n // Show the white modal to highlight the crop box\n highlight: true,\n\n // Show the grid background\n background: true,\n\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n\n // Enable to move the image\n movable: true,\n\n // Enable to rotate the image\n rotatable: true,\n\n // Enable to scale the image\n scalable: true,\n\n // Enable to zoom the image\n zoomable: true,\n\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n\n // Enable to move the crop box\n cropBoxMovable: true,\n\n // Enable to resize the crop box\n cropBoxResizable: true,\n\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: 200,\n minContainerHeight: 100,\n\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var set = function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if (\"value\" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n };\n\n var toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n };\n\n // RegExps\n var REGEXP_DATA_URL_HEAD = /^data:([^;]+);base64,/;\n var REGEXP_HYPHENATE = /([a-z\\d])([A-Z])/g;\n var REGEXP_ORIGINS = /^(https?:)\\/\\/([^:/?#]+):?(\\d*)/i;\n var REGEXP_SPACES = /\\s+/;\n var REGEXP_SUFFIX = /^(width|height|left|top|marginLeft|marginTop)$/;\n var REGEXP_TRIM = /^\\s+(.*)\\s+$/;\n var REGEXP_USERAGENT = /(Macintosh|iPhone|iPod|iPad).*AppleWebKit/i;\n\n // Utilities\n var navigator = typeof window !== 'undefined' ? window.navigator : null;\n var IS_SAFARI_OR_UIWEBVIEW = navigator && REGEXP_USERAGENT.test(navigator.userAgent);\n var objectProto = Object.prototype;\n var toString = objectProto.toString;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var slice = Array.prototype.slice;\n var fromCharCode = String.fromCharCode;\n\n function typeOf(obj) {\n return toString.call(obj).slice(8, -1).toLowerCase();\n }\n\n function isNumber(num) {\n return typeof num === 'number' && !isNaN(num);\n }\n\n function isUndefined(obj) {\n return typeof obj === 'undefined';\n }\n\n function isObject(obj) {\n return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null;\n }\n\n function isPlainObject(obj) {\n if (!isObject(obj)) {\n return false;\n }\n\n try {\n var _constructor = obj.constructor;\n var prototype = _constructor.prototype;\n\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (e) {\n return false;\n }\n }\n\n function isFunction(fn) {\n return typeOf(fn) === 'function';\n }\n\n function isArray(arr) {\n return Array.isArray ? Array.isArray(arr) : typeOf(arr) === 'array';\n }\n\n function trim(str) {\n if (typeof str === 'string') {\n str = str.trim ? str.trim() : str.replace(REGEXP_TRIM, '$1');\n }\n\n return str;\n }\n\n function each(obj, callback) {\n if (obj && isFunction(callback)) {\n var i = void 0;\n\n if (isArray(obj) || isNumber(obj.length) /* array-like */) {\n var length = obj.length;\n\n for (i = 0; i < length; i++) {\n if (callback.call(obj, obj[i], i, obj) === false) {\n break;\n }\n }\n } else if (isObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n callback.call(obj, obj[key], key, obj);\n });\n }\n }\n\n return obj;\n }\n\n function extend() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var deep = args[0] === true;\n var data = deep ? args[1] : args[0];\n\n if (isObject(data) && args.length > 1) {\n args.shift();\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n if (deep && isObject(data[key])) {\n extend(true, data[key], arg[key]);\n } else {\n data[key] = arg[key];\n }\n });\n }\n });\n }\n\n return data;\n }\n\n function proxy(fn, context) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return function () {\n for (var _len3 = arguments.length, args2 = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args2[_key3] = arguments[_key3];\n }\n\n return fn.apply(context, args.concat(args2));\n };\n }\n\n function setStyle(element, styles) {\n var style = element.style;\n\n each(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value += 'px';\n }\n\n style[property] = value;\n });\n }\n\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n\n function addClass(element, value) {\n if (isNumber(element.length)) {\n each(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = trim(element.className);\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = className + ' ' + value;\n }\n }\n\n function removeClass(element, value) {\n if (isNumber(element.length)) {\n each(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n\n function toggleClass(element, value, added) {\n if (isNumber(element.length)) {\n each(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n }\n\n // IE10-11 doesn't support the second parameter of `classList.toggle`\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n\n function hyphenate(str) {\n return str.replace(REGEXP_HYPHENATE, '$1-$2').toLowerCase();\n }\n\n function getData$1(element, name) {\n if (isObject(element[name])) {\n return element[name];\n } else if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute('data-' + hyphenate(name));\n }\n\n function setData$1(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute('data-' + hyphenate(name), data);\n }\n }\n\n function removeData(element, name) {\n if (isObject(element[name])) {\n delete element[name];\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (e) {\n element.dataset[name] = null;\n }\n } else {\n element.removeAttribute('data-' + hyphenate(name));\n }\n }\n\n function removeListener(element, type, handler) {\n var types = trim(type).split(REGEXP_SPACES);\n\n if (types.length > 1) {\n each(types, function (t) {\n removeListener(element, t, handler);\n });\n return;\n }\n\n if (element.removeEventListener) {\n element.removeEventListener(type, handler, false);\n } else if (element.detachEvent) {\n element.detachEvent('on' + type, handler);\n }\n }\n\n function addListener(element, type, _handler, once) {\n var types = trim(type).split(REGEXP_SPACES);\n var originalHandler = _handler;\n\n if (types.length > 1) {\n each(types, function (t) {\n addListener(element, t, _handler);\n });\n return;\n }\n\n if (once) {\n _handler = function handler() {\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n removeListener(element, type, _handler);\n\n return originalHandler.apply(element, args);\n };\n }\n\n if (element.addEventListener) {\n element.addEventListener(type, _handler, false);\n } else if (element.attachEvent) {\n element.attachEvent('on' + type, _handler);\n }\n }\n\n function dispatchEvent(element, type, data) {\n if (element.dispatchEvent) {\n var event = void 0;\n\n // Event and CustomEvent on IE9-11 are global objects, not constructors\n if (isFunction(Event) && isFunction(CustomEvent)) {\n if (isUndefined(data)) {\n event = new Event(type, {\n bubbles: true,\n cancelable: true\n });\n } else {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n }\n } else if (isUndefined(data)) {\n event = document.createEvent('Event');\n event.initEvent(type, true, true);\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n // IE9+\n return element.dispatchEvent(event);\n } else if (element.fireEvent) {\n // IE6-10 (native events only)\n return element.fireEvent('on' + type);\n }\n\n return true;\n }\n\n function getEvent(event) {\n var e = event || window.event;\n\n // Fix target property (IE8)\n if (!e.target) {\n e.target = e.srcElement || document;\n }\n\n if (!isNumber(e.pageX) && isNumber(e.clientX)) {\n var eventDoc = event.target.ownerDocument || document;\n var doc = eventDoc.documentElement;\n var body = eventDoc.body;\n\n e.pageX = e.clientX + ((doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0));\n e.pageY = e.clientY + ((doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0));\n }\n\n return e;\n }\n\n function getOffset(element) {\n var doc = document.documentElement;\n var box = element.getBoundingClientRect();\n\n return {\n left: box.left + ((window.scrollX || doc && doc.scrollLeft || 0) - (doc && doc.clientLeft || 0)),\n top: box.top + ((window.scrollY || doc && doc.scrollTop || 0) - (doc && doc.clientTop || 0))\n };\n }\n\n function getByTag(element, tagName) {\n return element.getElementsByTagName(tagName);\n }\n\n function getByClass(element, className) {\n return element.getElementsByClassName ? element.getElementsByClassName(className) : element.querySelectorAll('.' + className);\n }\n\n function createElement(tagName) {\n return document.createElement(tagName);\n }\n\n function appendChild(element, elem) {\n element.appendChild(elem);\n }\n\n function removeChild(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n\n function empty(element) {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n }\n\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n\n return parts && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n\n function addTimestamp(url) {\n var timestamp = 'timestamp=' + new Date().getTime();\n\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n\n function getImageSize(image, callback) {\n // Modern browsers (ignore Safari)\n if (image.naturalWidth && !IS_SAFARI_OR_UIWEBVIEW) {\n callback(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n // IE8: Don't use `new Image()` here\n var newImage = createElement('img');\n\n newImage.onload = function load() {\n callback(this.width, this.height);\n };\n\n newImage.src = image.src;\n }\n\n function getTransforms(data) {\n var transforms = [];\n var translateX = data.translateX;\n var translateY = data.translateY;\n var rotate = data.rotate;\n var scaleX = data.scaleX;\n var scaleY = data.scaleY;\n\n if (isNumber(translateX) && translateX !== 0) {\n transforms.push('translateX(' + translateX + 'px)');\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n transforms.push('translateY(' + translateY + 'px)');\n }\n\n // Rotate should come first before scale to match orientation transform\n if (isNumber(rotate) && rotate !== 0) {\n transforms.push('rotate(' + rotate + 'deg)');\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n transforms.push('scaleX(' + scaleX + ')');\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n transforms.push('scaleY(' + scaleY + ')');\n }\n\n var transform = transforms.length ? transforms.join(' ') : 'none';\n\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n\n function getRotatedSizes(data, reversed) {\n var deg = Math.abs(data.degree) % 180;\n var arc = (deg > 90 ? 180 - deg : deg) * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var width = data.width;\n var height = data.height;\n var aspectRatio = data.aspectRatio;\n var newWidth = void 0;\n var newHeight = void 0;\n\n if (!reversed) {\n newWidth = width * cosArc + height * sinArc;\n newHeight = width * sinArc + height * cosArc;\n } else {\n newWidth = width / (cosArc + sinArc / aspectRatio);\n newHeight = newWidth / aspectRatio;\n }\n\n return {\n width: newWidth,\n height: newHeight\n };\n }\n\n function getSourceCanvas(image, data) {\n var canvas = createElement('canvas');\n var context = canvas.getContext('2d');\n var dstX = 0;\n var dstY = 0;\n var dstWidth = data.naturalWidth;\n var dstHeight = data.naturalHeight;\n var rotate = data.rotate;\n var scaleX = data.scaleX;\n var scaleY = data.scaleY;\n var scalable = isNumber(scaleX) && isNumber(scaleY) && (scaleX !== 1 || scaleY !== 1);\n var rotatable = isNumber(rotate) && rotate !== 0;\n var advanced = rotatable || scalable;\n var canvasWidth = dstWidth * Math.abs(scaleX || 1);\n var canvasHeight = dstHeight * Math.abs(scaleY || 1);\n var translateX = void 0;\n var translateY = void 0;\n var rotated = void 0;\n\n if (scalable) {\n translateX = canvasWidth / 2;\n translateY = canvasHeight / 2;\n }\n\n if (rotatable) {\n rotated = getRotatedSizes({\n width: canvasWidth,\n height: canvasHeight,\n degree: rotate\n });\n\n canvasWidth = rotated.width;\n canvasHeight = rotated.height;\n translateX = canvasWidth / 2;\n translateY = canvasHeight / 2;\n }\n\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n\n if (advanced) {\n dstX = -dstWidth / 2;\n dstY = -dstHeight / 2;\n\n context.save();\n context.translate(translateX, translateY);\n }\n\n // Rotate should come first before scale as in the \"getTransform\" function\n if (rotatable) {\n context.rotate(rotate * Math.PI / 180);\n }\n\n if (scalable) {\n context.scale(scaleX, scaleY);\n }\n\n context.drawImage(image, Math.floor(dstX), Math.floor(dstY), Math.floor(dstWidth), Math.floor(dstHeight));\n\n if (advanced) {\n context.restore();\n }\n\n return canvas;\n }\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i = start;\n\n for (length += start; i < length; i++) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n\n function getOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var length = dataView.byteLength;\n var orientation = void 0;\n var exifIDCode = void 0;\n var tiffOffset = void 0;\n var firstIFDOffset = void 0;\n var littleEndian = void 0;\n var endianness = void 0;\n var app1Start = void 0;\n var ifdStart = void 0;\n var offset = void 0;\n var i = void 0;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n offset = 2;\n\n while (offset < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset++;\n }\n }\n\n if (app1Start) {\n exifIDCode = app1Start + 4;\n tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n length = dataView.getUint16(ifdStart, littleEndian);\n\n for (i = 0; i < length; i++) {\n offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(offset, littleEndian);\n\n // Override the orientation with its default value for Safari\n if (IS_SAFARI_OR_UIWEBVIEW) {\n dataView.setUint16(offset, 1, littleEndian);\n }\n\n break;\n }\n }\n }\n\n return orientation;\n }\n\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n // auf einigen Android(?) Geräten kam hier im BASE64 string eine %0A daher, daraufhin stürzte es.\n base64 = decodeURIComponent(base64.replace(/\\s/g, ''));\n var binary = atob(base64);\n var length = binary.length;\n var arrayBuffer = new ArrayBuffer(length);\n var dataView = new Uint8Array(arrayBuffer);\n var i = void 0;\n\n for (i = 0; i < length; i++) {\n dataView[i] = binary.charCodeAt(i);\n }\n\n return arrayBuffer;\n }\n\n // Only available for JPEG image\n function arrayBufferToDataURL(arrayBuffer) {\n var dataView = new Uint8Array(arrayBuffer);\n var length = dataView.length;\n var base64 = '';\n var i = void 0;\n\n for (i = 0; i < length; i++) {\n base64 += fromCharCode(dataView[i]);\n }\n\n return 'data:image/jpeg;base64,' + btoa(base64);\n }\n\n var render$1 = {\n render: function render() {\n var self = this;\n\n self.initContainer();\n self.initCanvas();\n self.initCropBox();\n\n self.renderCanvas();\n\n if (self.cropped) {\n self.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var self = this;\n var options = self.options;\n var element = self.element;\n var container = self.container;\n var cropper = self.cropper;\n var hidden = 'cropper-hidden';\n var containerData = void 0;\n\n addClass(cropper, hidden);\n removeClass(element, hidden);\n\n self.containerData = containerData = {\n width: Math.max(container.offsetWidth, Number(options.minContainerWidth) || 200),\n height: Math.max(container.offsetHeight, Number(options.minContainerHeight) || 100)\n };\n\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n\n addClass(element, hidden);\n removeClass(cropper, hidden);\n },\n\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var self = this;\n var viewMode = self.options.viewMode;\n var containerData = self.containerData;\n var imageData = self.imageData;\n var rotated = Math.abs(imageData.rotate) === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: aspectRatio,\n width: canvasWidth,\n height: canvasHeight\n };\n\n canvasData.oldLeft = canvasData.left = (containerData.width - canvasWidth) / 2;\n canvasData.oldTop = canvasData.top = (containerData.height - canvasHeight) / 2;\n\n self.canvasData = canvasData;\n self.limited = viewMode === 1 || viewMode === 2;\n self.limitCanvas(true, true);\n self.initialImageData = extend({}, imageData);\n self.initialCanvasData = extend({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var self = this;\n var options = self.options;\n var viewMode = options.viewMode;\n var containerData = self.containerData;\n var canvasData = self.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n var cropBoxData = self.cropBoxData;\n var cropped = self.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n if (minCanvasWidth && minCanvasHeight) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n } else {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n }\n } else if (minCanvasWidth) {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n } else if (minCanvasHeight) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n }\n\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && self.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed) {\n var self = this;\n var canvasData = self.canvasData;\n var imageData = self.imageData;\n var rotate = imageData.rotate;\n var aspectRatio = void 0;\n var rotatedData = void 0;\n\n if (self.rotated) {\n self.rotated = false;\n\n // Computes rotated sizes with image sizes\n rotatedData = getRotatedSizes({\n width: imageData.width,\n height: imageData.height,\n degree: rotate\n });\n\n aspectRatio = rotatedData.width / rotatedData.height;\n\n if (aspectRatio !== canvasData.aspectRatio) {\n canvasData.left -= (rotatedData.width - canvasData.width) / 2;\n canvasData.top -= (rotatedData.height - canvasData.height) / 2;\n canvasData.width = rotatedData.width;\n canvasData.height = rotatedData.height;\n canvasData.aspectRatio = aspectRatio;\n canvasData.naturalWidth = imageData.naturalWidth;\n canvasData.naturalHeight = imageData.naturalHeight;\n\n // Computes rotated sizes with natural image sizes\n if (rotate % 180) {\n rotatedData = getRotatedSizes({\n width: imageData.naturalWidth,\n height: imageData.naturalHeight,\n degree: rotate\n });\n\n canvasData.naturalWidth = rotatedData.width;\n canvasData.naturalHeight = rotatedData.height;\n }\n\n self.limitCanvas(true, false);\n }\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n\n self.limitCanvas(false, true);\n\n canvasData.oldLeft = canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.oldTop = canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n\n setStyle(self.canvas, extend({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n\n self.renderImage();\n\n if (self.cropped && self.limited) {\n self.limitCropBox(true, true);\n }\n\n if (changed) {\n self.output();\n }\n },\n renderImage: function renderImage(changed) {\n var self = this;\n var canvasData = self.canvasData;\n var imageData = self.imageData;\n var newImageData = void 0;\n var reversedData = void 0;\n var reversedWidth = void 0;\n var reversedHeight = void 0;\n\n if (imageData.rotate) {\n reversedData = getRotatedSizes({\n width: canvasData.width,\n height: canvasData.height,\n degree: imageData.rotate,\n aspectRatio: imageData.aspectRatio\n }, true);\n\n reversedWidth = reversedData.width;\n reversedHeight = reversedData.height;\n\n newImageData = {\n width: reversedWidth,\n height: reversedHeight,\n left: (canvasData.width - reversedWidth) / 2,\n top: (canvasData.height - reversedHeight) / 2\n };\n }\n\n extend(imageData, newImageData || {\n width: canvasData.width,\n height: canvasData.height,\n left: 0,\n top: 0\n });\n\n setStyle(self.image, extend({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(extend({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n self.output();\n }\n },\n initCropBox: function initCropBox() {\n var self = this;\n var options = self.options;\n var aspectRatio = options.aspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var canvasData = self.canvasData;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n self.cropBoxData = cropBoxData;\n self.limitCropBox(true, true);\n\n // Initialize auto crop area\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n // The width/height of auto crop area must large than \"minWidth/Height\"\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.oldLeft = cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.oldTop = cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n\n self.initialCropBoxData = extend({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var self = this;\n var options = self.options;\n var aspectRatio = options.aspectRatio;\n var containerData = self.containerData;\n var canvasData = self.canvasData;\n var cropBoxData = self.cropBoxData;\n var limited = self.limited;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = Math.min(containerData.width, limited ? canvasData.width : containerData.width);\n var maxCropBoxHeight = Math.min(containerData.height, limited ? canvasData.height : containerData.height);\n\n // The min/maxCropBoxWidth/Height must be less than containerWidth/Height\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n }\n\n // The minWidth/Height must be less than maxWidth/Height\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var self = this;\n var options = self.options;\n var containerData = self.containerData;\n var cropBoxData = self.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n self.limitCropBox(false, true);\n\n cropBoxData.oldLeft = cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.oldTop = cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData$1(self.face, 'action', cropBoxData.width === containerData.width && cropBoxData.height === containerData.height ? 'move' : 'all');\n }\n\n setStyle(self.cropBox, extend({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (self.cropped && self.limited) {\n self.limitCanvas(true, true);\n }\n\n if (!self.disabled) {\n self.output();\n }\n },\n output: function output() {\n var self = this;\n\n self.preview();\n\n if (self.complete) {\n dispatchEvent(self.element, 'crop', self.getData());\n }\n }\n };\n\n var DATA_PREVIEW = 'preview';\n\n var preview$1 = {\n initPreview: function initPreview() {\n var self = this;\n var preview = self.options.preview;\n var image = createElement('img');\n var crossOrigin = self.crossOrigin;\n var url = crossOrigin ? self.crossOriginUrl : self.url;\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n appendChild(self.viewBox, image);\n self.image2 = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview.querySelector ? [preview] : document.querySelectorAll(preview);\n\n self.previews = previews;\n\n each(previews, function (element) {\n var img = createElement('img');\n\n // Save the original size for recover\n setData$1(element, DATA_PREVIEW, {\n width: element.offsetWidth,\n height: element.offsetHeight,\n html: element.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n\n /**\r\n * Override img element styles\r\n * Add `display:block` to avoid margin top issue\r\n * Add `height:auto` to override `height` attribute on IE8\r\n * (Occur only when margin-top <= -height)\r\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n\n empty(element);\n appendChild(element, img);\n });\n },\n resetPreview: function resetPreview() {\n each(this.previews, function (element) {\n var data = getData$1(element, DATA_PREVIEW);\n\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var self = this;\n var imageData = self.imageData;\n var canvasData = self.canvasData;\n var cropBoxData = self.cropBoxData;\n var cropBoxWidth = cropBoxData.width;\n var cropBoxHeight = cropBoxData.height;\n var width = imageData.width;\n var height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!self.cropped || self.disabled) {\n return;\n }\n\n setStyle(self.image2, extend({\n width: width,\n height: height\n }, getTransforms(extend({\n translateX: -left,\n translateY: -top\n }, imageData))));\n\n each(self.previews, function (element) {\n var data = getData$1(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n\n setStyle(getByTag(element, 'img')[0], extend({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(extend({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n // Globals\n var PointerEvent = typeof window !== 'undefined' ? window.PointerEvent : null;\n\n // Events\n var EVENT_MOUSE_DOWN = PointerEvent ? 'pointerdown' : 'touchstart mousedown';\n var EVENT_MOUSE_MOVE = PointerEvent ? 'pointermove' : 'touchmove mousemove';\n var EVENT_MOUSE_UP = PointerEvent ? ' pointerup pointercancel' : 'touchend touchcancel mouseup';\n var EVENT_WHEEL = 'wheel mousewheel DOMMouseScroll';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_RESIZE = 'resize';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP$1 = 'crop';\n var EVENT_ZOOM = 'zoom';\n\n var events = {\n bind: function bind() {\n var self = this;\n var options = self.options;\n var element = self.element;\n var cropper = self.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP$1, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_MOUSE_DOWN, self.onCropStart = proxy(self.cropStart, self));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, self.onWheel = proxy(self.wheel, self));\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, self.onDblclick = proxy(self.dblclick, self));\n }\n\n addListener(document, EVENT_MOUSE_MOVE, self.onCropMove = proxy(self.cropMove, self));\n addListener(document, EVENT_MOUSE_UP, self.onCropEnd = proxy(self.cropEnd, self));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, self.onResize = proxy(self.resize, self));\n }\n },\n unbind: function unbind() {\n var self = this;\n var options = self.options;\n var element = self.element;\n var cropper = self.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP$1, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_MOUSE_DOWN, self.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, self.onWheel);\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, self.onDblclick);\n }\n\n removeListener(document, EVENT_MOUSE_MOVE, self.onCropMove);\n removeListener(document, EVENT_MOUSE_UP, self.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, self.onResize);\n }\n }\n };\n\n var REGEXP_ACTIONS = /^(e|w|s|n|se|sw|ne|nw|all|crop|move|zoom)$/;\n\n function getPointer(_ref, endOnly) {\n var pageX = _ref.pageX,\n pageY = _ref.pageY;\n\n var end = {\n endX: pageX,\n endY: pageY\n };\n\n if (endOnly) {\n return end;\n }\n\n return extend({\n startX: pageX,\n startY: pageY\n }, end);\n }\n\n var handlers = {\n resize: function resize() {\n var self = this;\n var restore = self.options.restore;\n var container = self.container;\n var containerData = self.containerData;\n\n // Check `container` is necessary for IE8\n if (self.disabled || !containerData) {\n return;\n }\n\n var ratio = container.offsetWidth / containerData.width;\n var canvasData = void 0;\n var cropBoxData = void 0;\n\n // Resize when width changed or height changed\n if (ratio !== 1 || container.offsetHeight !== containerData.height) {\n if (restore) {\n canvasData = self.getCanvasData();\n cropBoxData = self.getCropBoxData();\n }\n\n self.render();\n\n if (restore) {\n self.setCanvasData(each(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n self.setCropBoxData(each(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n var self = this;\n\n if (self.disabled) {\n return;\n }\n\n self.setDragMode(hasClass(self.dragBox, 'cropper-crop') ? 'move' : 'crop');\n },\n wheel: function wheel(event) {\n var self = this;\n var e = getEvent(event);\n var ratio = Number(self.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (self.disabled) {\n return;\n }\n\n e.preventDefault();\n\n // Limit wheel speed to prevent zoom too fast (#21)\n if (self.wheeling) {\n return;\n }\n\n self.wheeling = true;\n\n setTimeout(function () {\n self.wheeling = false;\n }, 50);\n\n if (e.deltaY) {\n delta = e.deltaY > 0 ? 1 : -1;\n } else if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n } else if (e.detail) {\n delta = e.detail > 0 ? 1 : -1;\n }\n\n self.zoom(-delta * ratio, e);\n },\n cropStart: function cropStart(event) {\n var self = this;\n\n if (self.disabled) {\n return;\n }\n\n var options = self.options;\n var pointers = self.pointers;\n var e = getEvent(event);\n var action = void 0;\n\n if (e.changedTouches) {\n // Handle touch event\n each(e.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[e.pointerId || 0] = getPointer(e);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = 'zoom';\n } else {\n action = getData$1(e.target, 'action');\n }\n\n if (REGEXP_ACTIONS.test(action)) {\n if (dispatchEvent(self.element, 'cropstart', {\n originalEvent: e,\n action: action\n }) === false) {\n return;\n }\n\n e.preventDefault();\n\n self.action = action;\n self.cropping = false;\n\n if (action === 'crop') {\n self.cropping = true;\n addClass(self.dragBox, 'cropper-modal');\n }\n }\n },\n cropMove: function cropMove(event) {\n var self = this;\n var action = self.action;\n\n if (self.disabled || !action) {\n return;\n }\n\n var pointers = self.pointers;\n var e = getEvent(event);\n\n e.preventDefault();\n\n if (dispatchEvent(self.element, 'cropmove', {\n originalEvent: e,\n action: action\n }) === false) {\n return;\n }\n\n if (e.changedTouches) {\n each(e.changedTouches, function (touch) {\n extend(pointers[touch.identifier], getPointer(touch, true));\n });\n } else {\n extend(pointers[e.pointerId || 0], getPointer(e, true));\n }\n\n self.change(e);\n },\n cropEnd: function cropEnd(event) {\n var self = this;\n var action = self.action;\n\n if (self.disabled || !action) {\n return;\n }\n\n var pointers = self.pointers;\n var e = getEvent(event);\n\n e.preventDefault();\n\n if (e.changedTouches) {\n each(e.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[e.pointerId || 0];\n }\n\n if (!Object.keys(pointers).length) {\n self.action = '';\n }\n\n if (self.cropping) {\n self.cropping = false;\n toggleClass(self.dragBox, 'cropper-modal', self.cropped && this.options.modal);\n }\n\n dispatchEvent(self.element, 'cropend', {\n originalEvent: e,\n action: action\n });\n }\n };\n\n // Actions\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n\n function getMaxZoomRatio(pointers) {\n var pointers2 = extend({}, pointers);\n var ratios = [];\n\n each(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n\n each(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n ratios.push(ratio);\n });\n });\n\n ratios.sort(function (a, b) {\n return Math.abs(a) < Math.abs(b);\n });\n\n return ratios[0];\n }\n\n var change$1 = {\n change: function change(e) {\n var self = this;\n var options = self.options;\n var containerData = self.containerData;\n var canvasData = self.canvasData;\n var cropBoxData = self.cropBoxData;\n var aspectRatio = options.aspectRatio;\n var action = self.action;\n var width = cropBoxData.width;\n var height = cropBoxData.height;\n var left = cropBoxData.left;\n var top = cropBoxData.top;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset = void 0;\n\n // Locking aspect ratio in \"free mode\" by holding shift key\n if (!aspectRatio && e.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (self.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointers = self.pointers;\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n if (aspectRatio) {\n range.X = range.y * aspectRatio;\n range.Y = range.x / aspectRatio;\n }\n\n switch (action) {\n // Move crop box\n case 'all':\n left += range.x;\n top += range.y;\n break;\n\n // Resize crop box\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n width += range.x;\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top -= range.Y / 2;\n }\n\n if (width < 0) {\n action = ACTION_WEST;\n width = 0;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n height -= range.y;\n top += range.y;\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += range.X / 2;\n }\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = 0;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n width -= range.x;\n left += range.x;\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += range.Y / 2;\n }\n\n if (width < 0) {\n action = ACTION_EAST;\n width = 0;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n height += range.y;\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left -= range.X / 2;\n }\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = 0;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = 0;\n width = 0;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = 0;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = 0;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += range.X;\n } else {\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = 0;\n width = 0;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = 0;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = 0;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = 0;\n width = 0;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = 0;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = 0;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n width += range.x;\n height = width / aspectRatio;\n } else {\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = 0;\n width = 0;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = 0;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = 0;\n }\n\n break;\n\n // Move canvas\n case 'move':\n self.move(range.x, range.y);\n renderable = false;\n break;\n\n // Zoom canvas\n case 'zoom':\n self.zoom(getMaxZoomRatio(pointers), e);\n renderable = false;\n break;\n\n // Create crop box\n case 'crop':\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(self.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n }\n\n // Show the crop box if is hidden\n if (!self.cropped) {\n removeClass(self.cropBox, 'cropper-hidden');\n self.cropped = true;\n\n if (self.limited) {\n self.limitCropBox(true, true);\n }\n }\n\n break;\n\n // No default\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n self.action = action;\n\n self.renderCropBox();\n }\n\n // Override\n each(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n\n each(pointers, function (_ref) {\n var startX = _ref.startX,\n startY = _ref.startY;\n\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n\n pageX /= count;\n pageY /= count;\n\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n var self = this;\n\n if (self.ready && !self.disabled) {\n if (!self.cropped) {\n self.cropped = true;\n self.limitCropBox(true, true);\n\n if (self.options.modal) {\n addClass(self.dragBox, 'cropper-modal');\n }\n\n removeClass(self.cropBox, 'cropper-hidden');\n }\n\n self.setCropBoxData(self.initialCropBoxData);\n }\n\n return self;\n },\n\n // Reset the image and crop box to their initial states\n reset: function reset() {\n var self = this;\n\n if (self.ready && !self.disabled) {\n self.imageData = extend({}, self.initialImageData);\n self.canvasData = extend({}, self.initialCanvasData);\n self.cropBoxData = extend({}, self.initialCropBoxData);\n\n self.renderCanvas();\n\n if (self.cropped) {\n self.renderCropBox();\n }\n }\n\n return self;\n },\n\n // Clear the crop box\n clear: function clear() {\n var self = this;\n\n if (self.cropped && !self.disabled) {\n extend(self.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n\n self.cropped = false;\n self.renderCropBox();\n\n self.limitCanvas();\n\n // Render canvas after crop box rendered\n self.renderCanvas();\n\n removeClass(self.dragBox, 'cropper-modal');\n addClass(self.cropBox, 'cropper-hidden');\n }\n\n return self;\n },\n\n /**\r\n * Replace the image's src and rebuild the cropper\r\n *\r\n * @param {String} url\r\n * @param {Boolean} onlyColorChanged (optional)\r\n */\n replace: function replace(url, onlyColorChanged) {\n var self = this;\n\n if (!self.disabled && url) {\n if (self.isImg) {\n self.element.src = url;\n }\n\n if (onlyColorChanged) {\n self.url = url;\n self.image.src = url;\n\n if (self.ready) {\n self.image2.src = url;\n\n each(self.previews, function (element) {\n getByTag(element, 'img')[0].src = url;\n });\n }\n } else {\n if (self.isImg) {\n self.replaced = true;\n }\n\n // Clear previous data\n self.options.data = null;\n self.load(url);\n }\n }\n\n return self;\n },\n\n // Enable (unfreeze) the cropper\n enable: function enable() {\n var self = this;\n\n if (self.ready) {\n self.disabled = false;\n removeClass(self.cropper, 'cropper-disabled');\n }\n\n return self;\n },\n\n // Disable (freeze) the cropper\n disable: function disable() {\n var self = this;\n\n if (self.ready) {\n self.disabled = true;\n addClass(self.cropper, 'cropper-disabled');\n }\n\n return self;\n },\n\n // Destroy the cropper and remove the instance from the image\n destroy: function destroy() {\n var self = this;\n var element = self.element;\n var image = self.image;\n\n if (self.loaded) {\n if (self.isImg && self.replaced) {\n element.src = self.originalUrl;\n }\n\n self.unbuild();\n removeClass(element, 'cropper-hidden');\n } else if (self.isImg) {\n removeListener(element, 'load', self.start);\n } else if (image) {\n removeChild(image);\n }\n\n removeData(element, 'cropper');\n\n return self;\n },\n\n /**\r\n * Move the canvas with relative offsets\r\n *\r\n * @param {Number} offsetX\r\n * @param {Number} offsetY (optional)\r\n */\n move: function move(offsetX, offsetY) {\n var self = this;\n var canvasData = self.canvasData;\n\n return self.moveTo(isUndefined(offsetX) ? offsetX : canvasData.left + Number(offsetX), isUndefined(offsetY) ? offsetY : canvasData.top + Number(offsetY));\n },\n\n /**\r\n * Move the canvas to an absolute point\r\n *\r\n * @param {Number} x\r\n * @param {Number} y (optional)\r\n */\n moveTo: function moveTo(x, y) {\n var self = this;\n var canvasData = self.canvasData;\n var changed = false;\n\n // If \"y\" is not present, its default value is \"x\"\n if (isUndefined(y)) {\n y = x;\n }\n\n x = Number(x);\n y = Number(y);\n\n if (self.ready && !self.disabled && self.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n self.renderCanvas(true);\n }\n }\n\n return self;\n },\n\n /**\r\n * Zoom the canvas with a relative ratio\r\n *\r\n * @param {Number} ratio\r\n * @param {Event} _originalEvent (private)\r\n */\n zoom: function zoom(ratio, _originalEvent) {\n var self = this;\n var canvasData = self.canvasData;\n\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return self.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, _originalEvent);\n },\n\n /**\r\n * Zoom the canvas to an absolute ratio\r\n *\r\n * @param {Number} ratio\r\n * @param {Event} _originalEvent (private)\r\n */\n zoomTo: function zoomTo(ratio, _originalEvent) {\n var self = this;\n var options = self.options;\n var canvasData = self.canvasData;\n var width = canvasData.width;\n var height = canvasData.height;\n var naturalWidth = canvasData.naturalWidth;\n var naturalHeight = canvasData.naturalHeight;\n\n ratio = Number(ratio);\n\n if (ratio >= 0 && self.ready && !self.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(self.element, 'zoom', {\n originalEvent: _originalEvent,\n oldRatio: width / naturalWidth,\n ratio: newWidth / naturalWidth\n }) === false) {\n return self;\n }\n\n if (_originalEvent) {\n var pointers = self.pointers;\n var offset = getOffset(self.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n };\n\n // Zoom from the triggering point of the event\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n self.renderCanvas(true);\n }\n\n return self;\n },\n\n /**\r\n * Rotate the canvas with a relative degree\r\n *\r\n * @param {Number} degree\r\n */\n rotate: function rotate(degree) {\n var self = this;\n\n return self.rotateTo((self.imageData.rotate || 0) + Number(degree));\n },\n\n /**\r\n * Rotate the canvas to an absolute degree\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#rotate()\r\n *\r\n * @param {Number} degree\r\n */\n rotateTo: function rotateTo(degree) {\n var self = this;\n\n degree = Number(degree);\n\n if (isNumber(degree) && self.ready && !self.disabled && self.options.rotatable) {\n self.imageData.rotate = degree % 360;\n self.rotated = true;\n self.renderCanvas(true);\n }\n\n return self;\n },\n\n /**\r\n * Scale the image\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#scale()\r\n *\r\n * @param {Number} scaleX\r\n * @param {Number} scaleY (optional)\r\n */\n scale: function scale(scaleX, scaleY) {\n var self = this;\n var imageData = self.imageData;\n var changed = false;\n\n // If \"scaleY\" is not present, its default value is \"scaleX\"\n if (isUndefined(scaleY)) {\n scaleY = scaleX;\n }\n\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (self.ready && !self.disabled && self.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n changed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n changed = true;\n }\n\n if (changed) {\n self.renderImage(true);\n }\n }\n\n return self;\n },\n\n /**\r\n * Scale the abscissa of the image\r\n *\r\n * @param {Number} scaleX\r\n */\n scaleX: function scaleX(_scaleX) {\n var self = this;\n var scaleY = self.imageData.scaleY;\n\n return self.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\r\n * Scale the ordinate of the image\r\n *\r\n * @param {Number} scaleY\r\n */\n scaleY: function scaleY(_scaleY) {\n var self = this;\n var scaleX = self.imageData.scaleX;\n\n return self.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\r\n * Get the cropped area position and size data (base on the original image)\r\n *\r\n * @param {Boolean} rounded (optional)\r\n * @return {Object} data\r\n */\n getData: function getData(rounded) {\n var self = this;\n var options = self.options;\n var imageData = self.imageData;\n var canvasData = self.canvasData;\n var cropBoxData = self.cropBoxData;\n var ratio = void 0;\n var data = void 0;\n\n if (self.ready && self.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n\n ratio = imageData.width / imageData.naturalWidth;\n\n each(data, function (n, i) {\n n /= ratio;\n data[i] = rounded ? Math.round(n) : n;\n });\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\r\n * Set the cropped area position and size with new data\r\n *\r\n * @param {Object} data\r\n */\n setData: function setData(data) {\n var self = this;\n var options = self.options;\n var imageData = self.imageData;\n var canvasData = self.canvasData;\n var cropBoxData = {};\n var rotated = void 0;\n var scaled = void 0;\n var ratio = void 0;\n\n if (isFunction(data)) {\n data = data.call(self.element);\n }\n\n if (self.ready && !self.disabled && isPlainObject(data)) {\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n self.rotated = rotated = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n scaled = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n scaled = true;\n }\n }\n\n if (rotated) {\n self.renderCanvas();\n } else if (scaled) {\n self.renderImage();\n }\n\n ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n self.setCropBoxData(cropBoxData);\n }\n\n return self;\n },\n\n /**\r\n * Get the container size data\r\n *\r\n * @return {Object} data\r\n */\n getContainerData: function getContainerData() {\n var self = this;\n\n return self.ready ? self.containerData : {};\n },\n\n /**\r\n * Get the image position and size data\r\n *\r\n * @return {Object} data\r\n */\n getImageData: function getImageData() {\n var self = this;\n\n return self.loaded ? self.imageData : {};\n },\n\n /**\r\n * Get the canvas position and size data\r\n *\r\n * @return {Object} data\r\n */\n getCanvasData: function getCanvasData() {\n var self = this;\n var canvasData = self.canvasData;\n var data = {};\n\n if (self.ready) {\n each(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\r\n * Set the canvas position and size with new data\r\n *\r\n * @param {Object} data\r\n */\n setCanvasData: function setCanvasData(data) {\n var self = this;\n var canvasData = self.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (isFunction(data)) {\n data = data.call(self.element);\n }\n\n if (self.ready && !self.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n self.renderCanvas(true);\n }\n\n return self;\n },\n\n /**\r\n * Get the crop box position and size data\r\n *\r\n * @return {Object} data\r\n */\n getCropBoxData: function getCropBoxData() {\n var self = this;\n var cropBoxData = self.cropBoxData;\n var data = void 0;\n\n if (self.ready && self.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\r\n * Set the crop box position and size with new data\r\n *\r\n * @param {Object} data\r\n */\n setCropBoxData: function setCropBoxData(data) {\n var self = this;\n var cropBoxData = self.cropBoxData;\n var aspectRatio = self.options.aspectRatio;\n var widthChanged = void 0;\n var heightChanged = void 0;\n\n if (isFunction(data)) {\n data = data.call(self.element);\n }\n\n if (self.ready && self.cropped && !self.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n self.renderCropBox();\n }\n\n return self;\n },\n\n /**\r\n * Get a canvas drawn the cropped image\r\n *\r\n * @param {Object} options (optional)\r\n * @return {HTMLCanvasElement} canvas\r\n */\n getCroppedCanvas: function getCroppedCanvas(options) {\n var self = this;\n\n if (!self.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n // Return the whole canvas if not cropped\n if (!self.cropped) {\n return getSourceCanvas(self.image, self.imageData);\n }\n\n if (!isPlainObject(options)) {\n options = {};\n }\n\n var data = self.getData();\n var originalWidth = data.width;\n var originalHeight = data.height;\n var aspectRatio = originalWidth / originalHeight;\n var scaledWidth = void 0;\n var scaledHeight = void 0;\n var scaledRatio = void 0;\n\n if (isPlainObject(options)) {\n scaledWidth = options.width;\n scaledHeight = options.height;\n\n if (scaledWidth) {\n scaledHeight = scaledWidth / aspectRatio;\n scaledRatio = scaledWidth / originalWidth;\n } else if (scaledHeight) {\n scaledWidth = scaledHeight * aspectRatio;\n scaledRatio = scaledHeight / originalHeight;\n }\n }\n\n // The canvas element will use `Math.floor` on a float number, so floor first\n var canvasWidth = Math.floor(scaledWidth || originalWidth);\n var canvasHeight = Math.floor(scaledHeight || originalHeight);\n\n var canvas = createElement('canvas');\n var context = canvas.getContext('2d');\n\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n\n if (options.fillColor) {\n context.fillStyle = options.fillColor;\n context.fillRect(0, 0, canvasWidth, canvasHeight);\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n var parameters = function () {\n var source = getSourceCanvas(self.image, self.imageData);\n var sourceWidth = source.width;\n var sourceHeight = source.height;\n var canvasData = self.canvasData;\n var params = [source];\n\n // Source canvas\n var srcX = data.x + canvasData.naturalWidth * (Math.abs(data.scaleX || 1) - 1) / 2;\n var srcY = data.y + canvasData.naturalHeight * (Math.abs(data.scaleY || 1) - 1) / 2;\n var srcWidth = void 0;\n var srcHeight = void 0;\n\n // Destination canvas\n var dstX = void 0;\n var dstY = void 0;\n var dstWidth = void 0;\n var dstHeight = void 0;\n\n if (srcX <= -originalWidth || srcX > sourceWidth) {\n srcX = srcWidth = dstX = dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = dstWidth = Math.min(sourceWidth, originalWidth + srcX);\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = dstWidth = Math.min(originalWidth, sourceWidth - srcX);\n }\n\n if (srcWidth <= 0 || srcY <= -originalHeight || srcY > sourceHeight) {\n srcY = srcHeight = dstY = dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = dstHeight = Math.min(sourceHeight, originalHeight + srcY);\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = dstHeight = Math.min(originalHeight, sourceHeight - srcY);\n }\n\n params.push(Math.floor(srcX), Math.floor(srcY), Math.floor(srcWidth), Math.floor(srcHeight));\n\n // Scale destination sizes\n if (scaledRatio) {\n dstX *= scaledRatio;\n dstY *= scaledRatio;\n dstWidth *= scaledRatio;\n dstHeight *= scaledRatio;\n }\n\n // Avoid \"IndexSizeError\" in IE and Firefox\n if (dstWidth > 0 && dstHeight > 0) {\n params.push(Math.floor(dstX), Math.floor(dstY), Math.floor(dstWidth), Math.floor(dstHeight));\n }\n\n return params;\n }();\n\n context.drawImage.apply(context, toConsumableArray(parameters));\n\n return canvas;\n },\n\n /**\r\n * Change the aspect ratio of the crop box\r\n *\r\n * @param {Number} aspectRatio\r\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var self = this;\n var options = self.options;\n\n if (!self.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (self.ready) {\n self.initCropBox();\n\n if (self.cropped) {\n self.renderCropBox();\n }\n }\n }\n\n return self;\n },\n\n /**\r\n * Change the drag mode\r\n *\r\n * @param {String} mode (optional)\r\n */\n setDragMode: function setDragMode(mode) {\n var self = this;\n var options = self.options;\n var dragBox = self.dragBox;\n var face = self.face;\n var croppable = void 0;\n var movable = void 0;\n\n if (self.loaded && !self.disabled) {\n croppable = mode === 'crop';\n movable = options.movable && mode === 'move';\n mode = croppable || movable ? mode : 'none';\n\n setData$1(dragBox, 'action', mode);\n toggleClass(dragBox, 'cropper-crop', croppable);\n toggleClass(dragBox, 'cropper-move', movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData$1(face, 'action', mode);\n toggleClass(face, 'cropper-crop', croppable);\n toggleClass(face, 'cropper-move', movable);\n }\n }\n\n return self;\n }\n };\n\n // Constants\n var NAMESPACE = 'cropper';\n\n // Classes\n var CLASS_HIDDEN = NAMESPACE + '-hidden';\n\n // Events\n var EVENT_ERROR = 'error';\n var EVENT_LOAD = 'load';\n var EVENT_READY = 'ready';\n var EVENT_CROP = 'crop';\n\n // RegExps\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg.*;base64,/;\n\n var AnotherCropper = void 0;\n\n var Cropper = function () {\n function Cropper(element, options) {\n classCallCheck(this, Cropper);\n\n var self = this;\n\n self.element = element;\n self.options = extend({}, DEFAULTS, isPlainObject(options) && options);\n self.loaded = false;\n self.ready = false;\n self.complete = false;\n self.rotated = false;\n self.cropped = false;\n self.disabled = false;\n self.replaced = false;\n self.limited = false;\n self.wheeling = false;\n self.isImg = false;\n self.originalUrl = '';\n self.canvasData = null;\n self.cropBoxData = null;\n self.previews = null;\n self.pointers = {};\n self.init();\n }\n\n createClass(Cropper, [{\n key: 'init',\n value: function init() {\n var self = this;\n var element = self.element;\n var tagName = element.tagName.toLowerCase();\n var url = void 0;\n\n if (getData$1(element, NAMESPACE)) {\n return;\n }\n\n setData$1(element, NAMESPACE, self);\n\n if (tagName === 'img') {\n self.isImg = true;\n\n // e.g.: \"img/picture.jpg\"\n self.originalUrl = url = element.getAttribute('src');\n\n // Stop when it's a blank image\n if (!url) {\n return;\n }\n\n // e.g.: \"http://example.com/img/picture.jpg\"\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n self.load(url);\n }\n }, {\n key: 'load',\n value: function load(url) {\n var self = this;\n var options = self.options;\n var element = self.element;\n\n if (!url) {\n return;\n }\n\n self.url = url;\n self.imageData = {};\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n self.clone();\n return;\n }\n\n // XMLHttpRequest disallows to open a Data URL in some browsers like IE11 and Safari\n if (REGEXP_DATA_URL.test(url)) {\n if (REGEXP_DATA_URL_JPEG) {\n self.read(dataURLToArrayBuffer(url));\n } else {\n self.clone();\n }\n return;\n }\n\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = xhr.onabort = function () {\n self.clone();\n };\n\n xhr.onload = function () {\n self.read(xhr.response);\n };\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n }\n\n xhr.open('get', url);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: 'read',\n value: function read(arrayBuffer) {\n var self = this;\n var options = self.options;\n var orientation = getOrientation(arrayBuffer);\n var imageData = self.imageData;\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n self.url = arrayBufferToDataURL(arrayBuffer);\n\n switch (orientation) {\n\n // flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // flip vertical + rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // flip horizontal + rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n self.clone();\n }\n }, {\n key: 'clone',\n value: function clone() {\n var self = this;\n var element = self.element;\n var url = self.url;\n var crossOrigin = void 0;\n var crossOriginUrl = void 0;\n var start = void 0;\n var stop = void 0;\n\n if (self.options.checkCrossOrigin && isCrossOriginURL(url)) {\n crossOrigin = element.crossOrigin;\n\n if (crossOrigin) {\n crossOriginUrl = url;\n } else {\n crossOrigin = 'anonymous';\n\n // Bust cache when there is not a \"crossOrigin\" property\n crossOriginUrl = addTimestamp(url);\n }\n }\n\n self.crossOrigin = crossOrigin;\n self.crossOriginUrl = crossOriginUrl;\n\n var image = createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n self.image = image;\n self.onStart = start = proxy(self.start, self);\n self.onStop = stop = proxy(self.stop, self);\n\n if (self.isImg) {\n if (element.complete) {\n self.start();\n } else {\n addListener(element, EVENT_LOAD, start);\n }\n } else {\n addListener(image, EVENT_LOAD, start);\n addListener(image, EVENT_ERROR, stop);\n addClass(image, 'cropper-hide');\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }\n }, {\n key: 'start',\n value: function start(event) {\n var self = this;\n var image = self.isImg ? self.element : self.image;\n\n if (event) {\n removeListener(image, EVENT_LOAD, self.onStart);\n removeListener(image, EVENT_ERROR, self.onStop);\n }\n\n getImageSize(image, function (naturalWidth, naturalHeight) {\n extend(self.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n\n self.loaded = true;\n self.build();\n });\n }\n }, {\n key: 'stop',\n value: function stop() {\n var self = this;\n var image = self.image;\n\n removeListener(image, EVENT_LOAD, self.onStart);\n removeListener(image, EVENT_ERROR, self.onStop);\n\n removeChild(image);\n self.image = null;\n }\n }, {\n key: 'build',\n value: function build() {\n var self = this;\n var options = self.options;\n var element = self.element;\n var image = self.image;\n var container = void 0;\n var cropper = void 0;\n var canvas = void 0;\n var dragBox = void 0;\n var cropBox = void 0;\n var face = void 0;\n\n if (!self.loaded) {\n return;\n }\n\n // Unbuild first when replace\n if (self.ready) {\n self.unbuild();\n }\n\n var template = createElement('div');\n template.innerHTML = TEMPLATE;\n\n // Create cropper elements\n self.container = container = element.parentNode;\n self.cropper = cropper = getByClass(template, 'cropper-container')[0];\n self.canvas = canvas = getByClass(cropper, 'cropper-canvas')[0];\n self.dragBox = dragBox = getByClass(cropper, 'cropper-drag-box')[0];\n self.cropBox = cropBox = getByClass(cropper, 'cropper-crop-box')[0];\n self.viewBox = getByClass(cropper, 'cropper-view-box')[0];\n self.face = face = getByClass(cropBox, 'cropper-face')[0];\n\n appendChild(canvas, image);\n\n // Hide the original image\n addClass(element, CLASS_HIDDEN);\n\n // Inserts the cropper after to the current image\n container.insertBefore(cropper, element.nextSibling);\n\n // Show the image if is hidden\n if (!self.isImg) {\n removeClass(image, 'cropper-hide');\n }\n\n self.initPreview();\n self.bind();\n\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n\n self.cropped = options.autoCrop;\n\n if (options.autoCrop) {\n if (options.modal) {\n addClass(dragBox, 'cropper-modal');\n }\n } else {\n addClass(cropBox, CLASS_HIDDEN);\n }\n\n if (!options.guides) {\n addClass(getByClass(cropBox, 'cropper-dashed'), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(getByClass(cropBox, 'cropper-center'), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, 'cropper-bg');\n }\n\n if (!options.highlight) {\n addClass(face, 'cropper-invisible');\n }\n\n if (options.cropBoxMovable) {\n addClass(face, 'cropper-move');\n setData$1(face, 'action', 'all');\n }\n\n if (!options.cropBoxResizable) {\n addClass(getByClass(cropBox, 'cropper-line'), CLASS_HIDDEN);\n addClass(getByClass(cropBox, 'cropper-point'), CLASS_HIDDEN);\n }\n\n self.setDragMode(options.dragMode);\n self.render();\n self.ready = true;\n self.setData(options.data);\n\n // Call the \"ready\" option asynchronously to keep \"image.cropper\" is defined\n self.completing = setTimeout(function () {\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, true);\n }\n\n dispatchEvent(element, EVENT_READY);\n dispatchEvent(element, EVENT_CROP, self.getData());\n\n self.complete = true;\n }, 0);\n }\n }, {\n key: 'unbuild',\n value: function unbuild() {\n var self = this;\n\n if (!self.ready) {\n return;\n }\n\n if (!self.complete) {\n clearTimeout(self.completing);\n }\n\n self.ready = false;\n self.complete = false;\n self.initialImageData = null;\n\n // Clear `initialCanvasData` is necessary when replace\n self.initialCanvasData = null;\n self.initialCropBoxData = null;\n self.containerData = null;\n self.canvasData = null;\n\n // Clear `cropBoxData` is necessary when replace\n self.cropBoxData = null;\n self.unbind();\n\n self.resetPreview();\n self.previews = null;\n\n self.viewBox = null;\n self.cropBox = null;\n self.dragBox = null;\n self.canvas = null;\n self.container = null;\n\n removeChild(self.cropper);\n self.cropper = null;\n }\n }], [{\n key: 'noConflict',\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n }, {\n key: 'setDefaults',\n value: function setDefaults(options) {\n extend(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n return Cropper;\n }();\n\n extend(Cropper.prototype, render$1);\n extend(Cropper.prototype, preview$1);\n extend(Cropper.prototype, events);\n extend(Cropper.prototype, handlers);\n extend(Cropper.prototype, change$1);\n extend(Cropper.prototype, methods);\n\n if (typeof window !== 'undefined') {\n AnotherCropper = window.Cropper;\n window.Cropper = Cropper;\n }\n\n return Cropper;\n});\n//# sourceMappingURL=cropper.js.map","/*! PhotoSwipe - v4.0.3 - 2015-01-05\r\n* http://photoswipe.com\r\n* Copyright (c) 2015 Dmitry Semenov; */\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\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\n\tvar PhotoSwipe = function (template, UiClass, items, options) {\n\n\t\t/*>>framework-bridge*/\n\t\t/**\r\n *\r\n * Set of generic functions used by gallery.\r\n *\r\n * You're free to modify anything here as long as functionality is kept.\r\n *\r\n */\n\t\tvar framework = {\n\t\t\tfeatures: null,\n\t\t\tbind: function (target, type, listener, unbind) {\n\t\t\t\tvar methodName = (unbind ? 'remove' : 'add') + 'EventListener';\n\t\t\t\ttype = type.split(' ');\n\t\t\t\tfor (var i = 0; i < type.length; i++) {\n\t\t\t\t\tif (type[i]) {\n\t\t\t\t\t\ttarget[methodName](type[i], listener, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tisArray: function (obj) {\n\t\t\t\treturn obj instanceof Array;\n\t\t\t},\n\t\t\tcreateEl: function (classes, tag) {\n\t\t\t\tvar el = document.createElement(tag || 'div');\n\t\t\t\tif (classes) {\n\t\t\t\t\tel.className = classes;\n\t\t\t\t}\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\tgetScrollY: function () {\n\t\t\t\tvar yOffset = window.pageYOffset;\n\t\t\t\treturn yOffset !== undefined ? yOffset : document.documentElement.scrollTop;\n\t\t\t},\n\t\t\tunbind: function (target, type, listener) {\n\t\t\t\tframework.bind(target, type, listener, true);\n\t\t\t},\n\t\t\tremoveClass: function (el, className) {\n\t\t\t\tvar reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n\t\t\t\tel.className = el.className.replace(reg, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t\t\t},\n\t\t\taddClass: function (el, className) {\n\t\t\t\tif (!framework.hasClass(el, className)) {\n\t\t\t\t\tel.className += (el.className ? ' ' : '') + className;\n\t\t\t\t}\n\t\t\t},\n\t\t\thasClass: function (el, className) {\n\t\t\t\treturn el.className && new RegExp('(^|\\\\s)' + className + '(\\\\s|$)').test(el.className);\n\t\t\t},\n\t\t\tgetChildByClass: function (parentEl, childClassName) {\n\t\t\t\tvar node = parentEl.firstChild;\n\t\t\t\twhile (node) {\n\t\t\t\t\tif (framework.hasClass(node, childClassName)) {\n\t\t\t\t\t\treturn node;\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t},\n\t\t\tarraySearch: function (array, value, key) {\n\t\t\t\tvar i = array.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tif (array[i][key] === value) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\textend: function (o1, o2, preventOverwrite) {\n\t\t\t\tfor (var prop in o2) {\n\t\t\t\t\tif (o2.hasOwnProperty(prop)) {\n\t\t\t\t\t\tif (preventOverwrite && o1.hasOwnProperty(prop)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\to1[prop] = o2[prop];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\teasing: {\n\t\t\t\tsine: {\n\t\t\t\t\tout: function (k) {\n\t\t\t\t\t\treturn Math.sin(k * (Math.PI / 2));\n\t\t\t\t\t},\n\t\t\t\t\tinOut: function (k) {\n\t\t\t\t\t\treturn -(Math.cos(Math.PI * k) - 1) / 2;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcubic: {\n\t\t\t\t\tout: function (k) {\n\t\t\t\t\t\treturn --k * k * k + 1;\n\t\t\t\t\t}\n\t\t\t\t\t/*\r\n \telastic: {\r\n \t\tout: function ( k ) {\r\n \t\t\t\t\tvar s, a = 0.1, p = 0.4;\r\n \t\t\tif ( k === 0 ) return 0;\r\n \t\t\tif ( k === 1 ) return 1;\r\n \t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\r\n \t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\r\n \t\t\treturn ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );\r\n \t\t\t\t},\r\n \t},\r\n \tback: {\r\n \t\tout: function ( k ) {\r\n \t\t\tvar s = 1.70158;\r\n \t\t\treturn --k * k * ( ( s + 1 ) * k + s ) + 1;\r\n \t\t}\r\n \t}\r\n */\n\t\t\t\t} },\n\n\t\t\t/**\r\n *\r\n * @return {object}\r\n *\r\n * {\r\n * raf : request animation frame function\r\n * caf : cancel animation frame function\r\n * transfrom : transform property key (with vendor), or null if not supported\r\n * oldIE : IE8 or below\r\n * }\r\n *\r\n */\n\t\t\tdetectFeatures: function () {\n\t\t\t\tif (framework.features) {\n\t\t\t\t\treturn framework.features;\n\t\t\t\t}\n\t\t\t\tvar helperEl = framework.createEl(),\n\t\t\t\t helperStyle = helperEl.style,\n\t\t\t\t vendor = '',\n\t\t\t\t features = {};\n\n\t\t\t\t// IE8 and below\n\t\t\t\tfeatures.oldIE = document.all && !document.addEventListener;\n\n\t\t\t\tfeatures.touch = 'ontouchstart' in window;\n\n\t\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\t\tfeatures.raf = window.requestAnimationFrame;\n\t\t\t\t\tfeatures.caf = window.cancelAnimationFrame;\n\t\t\t\t}\n\n\t\t\t\tfeatures.pointerEvent = navigator.pointerEnabled || navigator.msPointerEnabled;\n\n\t\t\t\t// fix false-positive detection of old Android in new IE\n\t\t\t\t// (IE11 ua string contains \"Android 4.0\")\n\n\t\t\t\tif (!features.pointerEvent) {\n\n\t\t\t\t\tvar ua = navigator.userAgent;\n\n\t\t\t\t\t// Detect if device is iPhone or iPod and if it's older than iOS 8\n\t\t\t\t\t// http://stackoverflow.com/a/14223920\n\t\t\t\t\t//\n\t\t\t\t\t// This detection is made because of buggy top/bottom toolbars\n\t\t\t\t\t// that don't trigger window.resize event.\n\t\t\t\t\t// For more info refer to _isFixedPosition variable in core.js\n\n\t\t\t\t\tif (/iP(hone|od)/.test(navigator.platform)) {\n\t\t\t\t\t\tvar v = navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n\t\t\t\t\t\tif (v && v.length > 0) {\n\t\t\t\t\t\t\tv = parseInt(v[1], 10);\n\t\t\t\t\t\t\tif (v >= 1 && v < 8) {\n\t\t\t\t\t\t\t\tfeatures.isOldIOSPhone = true;\n\t\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\t// Detect old Android (before KitKat)\n\t\t\t\t\t// due to bugs related to position:fixed\n\t\t\t\t\t// http://stackoverflow.com/questions/7184573/pick-up-the-android-version-in-the-browser-by-javascript\n\n\t\t\t\t\tvar match = ua.match(/Android\\s([0-9\\.]*)/);\n\t\t\t\t\tvar androidversion = match ? match[1] : 0;\n\t\t\t\t\tandroidversion = parseFloat(androidversion);\n\t\t\t\t\tif (androidversion >= 1) {\n\t\t\t\t\t\tif (androidversion < 4.4) {\n\t\t\t\t\t\t\tfeatures.isOldAndroid = true; // for fixed position bug & performance\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfeatures.androidVersion = androidversion; // for touchend bug\n\t\t\t\t\t}\n\t\t\t\t\tfeatures.isMobileOpera = /opera mini|opera mobi/i.test(ua);\n\n\t\t\t\t\t// p.s. yes, yes, UA sniffing is bad, propose your solution for above bugs.\n\t\t\t\t}\n\n\t\t\t\tvar styleChecks = ['transform', 'perspective', 'animationName'],\n\t\t\t\t vendors = ['', 'webkit', 'Moz', 'ms', 'O'],\n\t\t\t\t styleCheckItem,\n\t\t\t\t styleName;\n\n\t\t\t\tfor (var i = 0; i < 4; i++) {\n\t\t\t\t\tvendor = vendors[i];\n\n\t\t\t\t\tfor (var a = 0; a < 3; a++) {\n\t\t\t\t\t\tstyleCheckItem = styleChecks[a];\n\n\t\t\t\t\t\t// uppercase first letter of property name, if vendor is present\n\t\t\t\t\t\tstyleName = vendor + (vendor ? styleCheckItem.charAt(0).toUpperCase() + styleCheckItem.slice(1) : styleCheckItem);\n\n\t\t\t\t\t\tif (!features[styleCheckItem] && styleName in helperStyle) {\n\t\t\t\t\t\t\tfeatures[styleCheckItem] = styleName;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (vendor && !features.raf) {\n\t\t\t\t\t\tvendor = vendor.toLowerCase();\n\t\t\t\t\t\tfeatures.raf = window[vendor + 'RequestAnimationFrame'];\n\t\t\t\t\t\tif (features.raf) {\n\t\t\t\t\t\t\tfeatures.caf = window[vendor + 'CancelAnimationFrame'] || window[vendor + 'CancelRequestAnimationFrame'];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!features.raf) {\n\t\t\t\t\tvar lastTime = 0;\n\t\t\t\t\tfeatures.raf = function (fn) {\n\t\t\t\t\t\tvar currTime = new Date().getTime();\n\t\t\t\t\t\tvar timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\t\t\t\t\t\tvar id = window.setTimeout(function () {\n\t\t\t\t\t\t\tfn(currTime + timeToCall);\n\t\t\t\t\t\t}, timeToCall);\n\t\t\t\t\t\tlastTime = currTime + timeToCall;\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t};\n\t\t\t\t\tfeatures.caf = function (id) {\n\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Detect SVG support\n\t\t\t\tfeatures.svg = !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;\n\n\t\t\t\tframework.features = features;\n\n\t\t\t\treturn features;\n\t\t\t}\n\t\t};\n\n\t\tframework.detectFeatures();\n\n\t\t// Override addEventListener for old versions of IE\n\t\tif (framework.features.oldIE) {\n\n\t\t\tframework.bind = function (target, type, listener, unbind) {\n\n\t\t\t\ttype = type.split(' ');\n\n\t\t\t\tvar methodName = (unbind ? 'detach' : 'attach') + 'Event',\n\t\t\t\t evName,\n\t\t\t\t _handleEv = function () {\n\t\t\t\t\tlistener.handleEvent.call(listener);\n\t\t\t\t};\n\n\t\t\t\tfor (var i = 0; i < type.length; i++) {\n\t\t\t\t\tevName = type[i];\n\t\t\t\t\tif (evName) {\n\n\t\t\t\t\t\tif (typeof listener === 'object' && listener.handleEvent) {\n\t\t\t\t\t\t\tif (!unbind) {\n\t\t\t\t\t\t\t\tlistener['oldIE' + evName] = _handleEv;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (!listener['oldIE' + evName]) {\n\t\t\t\t\t\t\t\t\treturn false;\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\ttarget[methodName]('on' + evName, listener['oldIE' + evName]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[methodName]('on' + evName, listener);\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\n\t\t/*>>framework-bridge*/\n\n\t\t/*>>core*/\n\t\t//function(template, UiClass, items, options)\n\n\t\tvar self = this;\n\n\t\t/**\r\n * Static vars, don't change unless you know what you're doing.\r\n */\n\t\tvar DOUBLE_TAP_RADIUS = 25,\n\t\t NUM_HOLDERS = 3;\n\n\t\t/**\r\n * Options\r\n */\n\t\tvar _options = {\n\t\t\tallowPanToNext: true,\n\t\t\tspacing: 0.12,\n\t\t\tbgOpacity: 0.9,\n\t\t\tmouseUsed: false,\n\t\t\tloop: true,\n\t\t\tpinchToClose: true,\n\t\t\tcloseOnScroll: true,\n\t\t\tcloseOnVerticalDrag: true,\n\t\t\thideAnimationDuration: 333,\n\t\t\tshowAnimationDuration: 333,\n\t\t\tshowHideOpacity: false,\n\t\t\tfocus: true,\n\t\t\tescKey: true,\n\t\t\tarrowKeys: true,\n\t\t\tmainScrollEndFriction: 0.35,\n\t\t\tpanEndFriction: 0.35,\n\t\t\tisClickableElement: function (el) {\n\t\t\t\treturn el.tagName === 'A';\n\t\t\t},\n\t\t\tgetDoubleTapZoom: function (isMouseClick, item) {\n\t\t\t\treturn 1;\n\t\t\t\tif (isMouseClick) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else {\n\t\t\t\t\treturn item.initialZoomLevel < 0.7 ? 1 : 1.5;\n\t\t\t\t}\n\t\t\t},\n\t\t\tmaxSpreadZoom: 2,\n\n\t\t\t// not fully implemented yet\n\t\t\tscaleMode: 'fit', // TODO\n\t\t\tmodal: true, // TODO\n\t\t\talwaysFadeIn: false // TODO\n\t\t};\n\t\tframework.extend(_options, options);\n\n\t\t/**\r\n * Private helper variables & functions\r\n */\n\n\t\tvar _getEmptyPoint = function () {\n\t\t\treturn { x: 0, y: 0 };\n\t\t};\n\n\t\tvar _isOpen,\n\t\t _isDestroying,\n\t\t _closedByScroll,\n\t\t _currentItemIndex,\n\t\t _containerStyle,\n\t\t _containerShiftIndex,\n\t\t _currPanDist = _getEmptyPoint(),\n\t\t _startPanOffset = _getEmptyPoint(),\n\t\t _panOffset = _getEmptyPoint(),\n\t\t _upMoveEvents,\n\t\t // drag move, drag end & drag cancel events array\n\t\t_downEvents,\n\t\t // drag start events array\n\t\t_globalEventHandlers,\n\t\t _viewportSize = {},\n\t\t _currZoomLevel,\n\t\t _startZoomLevel,\n\t\t _translatePrefix,\n\t\t _translateSufix,\n\t\t _updateSizeInterval,\n\t\t _itemsNeedUpdate,\n\t\t _currPositionIndex = 0,\n\t\t _offset,\n\t\t _slideSize = _getEmptyPoint(),\n\t\t // size of slide area, including spacing\n\t\t_scrollChanged,\n\t\t _itemHolders,\n\t\t _prevItemIndex,\n\t\t _indexDiff = 0,\n\t\t // difference of indexes since last content update\n\t\t_dragStartEvent,\n\t\t _dragMoveEvent,\n\t\t _dragEndEvent,\n\t\t _dragCancelEvent,\n\t\t _transformKey,\n\t\t _pointerEventEnabled,\n\t\t _isFixedPosition = true,\n\t\t _likelyTouchDevice,\n\t\t _modules = [],\n\t\t _requestAF,\n\t\t _cancelAF,\n\t\t _initalClassName,\n\t\t _initalWindowScrollY,\n\t\t _oldIE,\n\t\t _currentWindowScrollY,\n\t\t _features,\n\t\t _windowVisibleSize = {},\n\n\n\t\t// Registers PhotoSWipe module (History, Controller ...)\n\t\t_registerModule = function (name, module) {\n\t\t\tframework.extend(self, module.publicMethods);\n\t\t\t_modules.push(name);\n\t\t},\n\t\t _getLoopedId = function (index) {\n\t\t\tvar numSlides = _getNumItems();\n\t\t\tif (index > numSlides - 1) {\n\t\t\t\treturn index - numSlides;\n\t\t\t} else if (index < 0) {\n\t\t\t\treturn numSlides + index;\n\t\t\t}\n\t\t\treturn index;\n\t\t},\n\n\n\t\t// Micro bind/trigger\n\t\t_listeners = {},\n\t\t _listen = function (name, fn) {\n\t\t\tif (!_listeners[name]) {\n\t\t\t\t_listeners[name] = [];\n\t\t\t}\n\t\t\treturn _listeners[name].push(fn);\n\t\t},\n\t\t _shout = function (name) {\n\t\t\tvar listeners = _listeners[name];\n\n\t\t\tif (listeners) {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\targs.shift();\n\n\t\t\t\tfor (var i = 0; i < listeners.length; i++) {\n\t\t\t\t\tlisteners[i].apply(self, args);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t _getCurrentTime = function () {\n\t\t\treturn new Date().getTime();\n\t\t},\n\t\t _applyBgOpacity = function (opacity) {\n\t\t\t_bgOpacity = opacity;\n\t\t\tself.bg.style.opacity = opacity * _options.bgOpacity;\n\t\t},\n\t\t _applyZoomTransform = function (styleObj, x, y, zoom) {\n\t\t\tstyleObj[_transformKey] = _translatePrefix + x + 'px, ' + y + 'px' + _translateSufix + ' scale(' + zoom + ')';\n\t\t},\n\t\t _applyCurrentZoomPan = function () {\n\t\t\tif (_currZoomElementStyle) {\n\t\t\t\t_applyZoomTransform(_currZoomElementStyle, _panOffset.x, _panOffset.y, _currZoomLevel);\n\t\t\t}\n\t\t},\n\t\t _applyZoomPanToItem = function (item) {\n\t\t\tif (item.container) {\n\t\t\t\t_applyZoomTransform(item.container.style, item.initialPosition.x, item.initialPosition.y, item.initialZoomLevel);\n\t\t\t}\n\t\t},\n\t\t _setTranslateX = function (x, elStyle) {\n\t\t\telStyle[_transformKey] = _translatePrefix + x + 'px, 0px' + _translateSufix;\n\t\t},\n\t\t _moveMainScroll = function (x, dragging) {\n\n\t\t\tif (!_options.loop && dragging) {\n\t\t\t\t// if of current item during scroll (float)\n\t\t\t\tvar newSlideIndexOffset = _currentItemIndex + (_slideSize.x * _currPositionIndex - x) / _slideSize.x;\n\t\t\t\tvar delta = Math.round(x - _mainScrollPos.x);\n\n\t\t\t\tif (newSlideIndexOffset < 0 && delta > 0 || newSlideIndexOffset >= _getNumItems() - 1 && delta < 0) {\n\t\t\t\t\tx = _mainScrollPos.x + delta * _options.mainScrollEndFriction;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_mainScrollPos.x = x;\n\t\t\t_setTranslateX(x, _containerStyle);\n\t\t},\n\t\t _calculatePanOffset = function (axis, zoomLevel) {\n\t\t\tvar m = _midZoomPoint[axis] - _offset[axis];\n\t\t\treturn _startPanOffset[axis] + _currPanDist[axis] + m - m * (zoomLevel / _startZoomLevel);\n\t\t},\n\t\t _equalizePoints = function (p1, p2) {\n\t\t\tp1.x = p2.x;\n\t\t\tp1.y = p2.y;\n\t\t\tif (p2.id) {\n\t\t\t\tp1.id = p2.id;\n\t\t\t}\n\t\t},\n\t\t _roundPoint = function (p) {\n\t\t\tp.x = Math.round(p.x);\n\t\t\tp.y = Math.round(p.y);\n\t\t},\n\t\t _mouseMoveTimeout = null,\n\t\t _onFirstMouseMove = function () {\n\t\t\t// Wait until mouse move event is fired at least twice during 100ms\n\t\t\t// We do this, because some mobile browsers trigger it on touchstart\n\t\t\tif (_mouseMoveTimeout) {\n\t\t\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\t\t\t\tframework.addClass(template, 'pswp--has_mouse');\n\t\t\t\t_options.mouseUsed = true;\n\t\t\t\t_shout('mouseUsed');\n\t\t\t}\n\t\t\t_mouseMoveTimeout = setTimeout(function () {\n\t\t\t\t_mouseMoveTimeout = null;\n\t\t\t}, 100);\n\t\t},\n\t\t _bindEvents = function () {\n\t\t\tframework.bind(document, 'keydown', self);\n\n\t\t\tif (_features.transform) {\n\t\t\t\t// don't bind click event in browsers that don't support transform (mostly IE8)\n\t\t\t\tframework.bind(self.scrollWrap, 'click', self);\n\t\t\t}\n\n\t\t\tif (!_options.mouseUsed) {\n\t\t\t\tframework.bind(document, 'mousemove', _onFirstMouseMove);\n\t\t\t}\n\n\t\t\tframework.bind(window, 'resize scroll', self);\n\n\t\t\t_shout('bindEvents');\n\t\t},\n\t\t _unbindEvents = function () {\n\t\t\tframework.unbind(window, 'resize', self);\n\t\t\tframework.unbind(window, 'scroll', _globalEventHandlers.scroll);\n\t\t\tframework.unbind(document, 'keydown', self);\n\t\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\n\t\t\tif (_features.transform) {\n\t\t\t\tframework.unbind(self.scrollWrap, 'click', self);\n\t\t\t}\n\n\t\t\tif (_isDragging) {\n\t\t\t\tframework.unbind(window, _upMoveEvents, self);\n\t\t\t}\n\n\t\t\t_shout('unbindEvents');\n\t\t},\n\t\t _calculatePanBounds = function (zoomLevel, update) {\n\t\t\tvar bounds = _calculateItemSize(self.currItem, _viewportSize, zoomLevel);\n\t\t\tif (update) {\n\t\t\t\t_currPanBounds = bounds;\n\t\t\t}\n\t\t\treturn bounds;\n\t\t},\n\t\t _getMinZoomLevel = function (item) {\n\t\t\tif (!item) {\n\t\t\t\titem = self.currItem;\n\t\t\t}\n\t\t\treturn item.initialZoomLevel;\n\t\t},\n\t\t _getMaxZoomLevel = function (item) {\n\t\t\tif (!item) {\n\t\t\t\titem = self.currItem;\n\t\t\t}\n\t\t\treturn item.w > 0 ? _options.maxSpreadZoom : 1;\n\t\t},\n\n\n\t\t// Return true if offset is out of the bounds\n\t\t_modifyDestPanOffset = function (axis, destPanBounds, destPanOffset, destZoomLevel) {\n\t\t\tif (destZoomLevel === self.currItem.initialZoomLevel) {\n\t\t\t\tdestPanOffset[axis] = self.currItem.initialPosition[axis];\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tdestPanOffset[axis] = _calculatePanOffset(axis, destZoomLevel);\n\n\t\t\t\tif (destPanOffset[axis] > destPanBounds.min[axis]) {\n\t\t\t\t\tdestPanOffset[axis] = destPanBounds.min[axis];\n\t\t\t\t\treturn true;\n\t\t\t\t} else if (destPanOffset[axis] < destPanBounds.max[axis]) {\n\t\t\t\t\tdestPanOffset[axis] = destPanBounds.max[axis];\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t _setupTransforms = function () {\n\n\t\t\tif (_transformKey) {\n\t\t\t\t// setup 3d transforms\n\t\t\t\tvar allow3dTransform = _features.perspective && !_likelyTouchDevice;\n\t\t\t\t_translatePrefix = 'translate' + (allow3dTransform ? '3d(' : '(');\n\t\t\t\t_translateSufix = _features.perspective ? ', 0px)' : ')';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Override zoom/pan/move functions in case old browser is used (most likely IE)\n\t\t\t// (so they use left/top/width/height, instead of CSS transform)\n\n\t\t\t_transformKey = 'left';\n\t\t\tframework.addClass(template, 'pswp--ie');\n\n\t\t\t_setTranslateX = function (x, elStyle) {\n\t\t\t\telStyle.left = x + 'px';\n\t\t\t};\n\t\t\t_applyZoomPanToItem = function (item) {\n\n\t\t\t\tvar s = item.container.style,\n\t\t\t\t w = item.fitRatio * item.w,\n\t\t\t\t h = item.fitRatio * item.h;\n\n\t\t\t\ts.width = w + 'px';\n\t\t\t\ts.height = h + 'px';\n\t\t\t\ts.left = item.initialPosition.x + 'px';\n\t\t\t\ts.top = item.initialPosition.y + 'px';\n\t\t\t};\n\t\t\t_applyCurrentZoomPan = function () {\n\t\t\t\tif (_currZoomElementStyle) {\n\t\t\t\t\tvar s = _currZoomElementStyle;\n\t\t\t\t\tvar item = self.currItem;\n\n\t\t\t\t\tvar w = item.fitRatio * item.w;\n\t\t\t\t\tvar h = item.fitRatio * item.h;\n\n\t\t\t\t\ts.width = w + 'px';\n\t\t\t\t\ts.height = h + 'px';\n\n\t\t\t\t\ts.left = _panOffset.x + 'px';\n\t\t\t\t\ts.top = _panOffset.y + 'px';\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\t _onKeyDown = function (e) {\n\t\t\tvar keydownAction = '';\n\t\t\tif (_options.escKey && e.keyCode === 27) {\n\t\t\t\tkeydownAction = 'close';\n\t\t\t} else if (_options.arrowKeys) {\n\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\tkeydownAction = 'prev';\n\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\tkeydownAction = 'next';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (keydownAction) {\n\t\t\t\t// don't do anything if special key pressed to prevent from overriding default browser actions\n\t\t\t\t// e.g. in Chrome on Mac cmd+arrow-left returns to previous page\n\t\t\t\tif (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n\t\t\t\t\tif (e.preventDefault) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else {\n\t\t\t\t\t\te.returnValue = false;\n\t\t\t\t\t}\n\t\t\t\t\tself[keydownAction]();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t _onGlobalClick = function (e) {\n\t\t\tif (!e) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// don't allow click event to pass through when triggering after drag or some other gesture\n\t\t\tif (_moved || _zoomStarted || _mainScrollAnimating || _verticalDragInitiated) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t},\n\t\t _onPageScroll = function () {\n\t\t\t_scrollChanged = true;\n\t\t\t// \"close\" on scroll works only on desktop devices, or when mouse is used\n\t\t\tif (_options.closeOnScroll && _isOpen && (!self.likelyTouchDevice || _options.mouseUsed)) {\n\t\t\t\t// if scrolled for more than 2px\n\t\t\t\tif (Math.abs(framework.getScrollY() - _initalWindowScrollY) > 2) {\n\t\t\t\t\t_closedByScroll = true;\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Micro animation engine\n\t\tvar _animations = {},\n\t\t _numAnimations = 0,\n\t\t _stopAnimation = function (name) {\n\t\t\tif (_animations[name]) {\n\t\t\t\tif (_animations[name].raf) {\n\t\t\t\t\t_cancelAF(_animations[name].raf);\n\t\t\t\t}\n\t\t\t\t_numAnimations--;\n\t\t\t\tdelete _animations[name];\n\t\t\t}\n\t\t},\n\t\t _registerStartAnimation = function (name) {\n\t\t\tif (_animations[name]) {\n\t\t\t\t_stopAnimation(name);\n\t\t\t}\n\t\t\tif (!_animations[name]) {\n\t\t\t\t_numAnimations++;\n\t\t\t\t_animations[name] = {};\n\t\t\t}\n\t\t},\n\t\t _stopAllAnimations = function () {\n\t\t\tfor (var prop in _animations) {\n\n\t\t\t\tif (_animations.hasOwnProperty(prop)) {\n\t\t\t\t\t_stopAnimation(prop);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t _animateProp = function (name, b, endProp, d, easingFn, onUpdate, onComplete) {\n\t\t\tvar startAnimTime = _getCurrentTime(),\n\t\t\t t;\n\t\t\t_registerStartAnimation(name);\n\n\t\t\tvar animloop = function () {\n\t\t\t\tif (_animations[name]) {\n\n\t\t\t\t\tt = _getCurrentTime() - startAnimTime; // time diff\n\t\t\t\t\t//b - beginning (start prop)\n\t\t\t\t\t//d - anim duration\n\n\t\t\t\t\tif (t >= d) {\n\t\t\t\t\t\t_stopAnimation(name);\n\t\t\t\t\t\tonUpdate(endProp);\n\t\t\t\t\t\tif (onComplete) {\n\t\t\t\t\t\t\tonComplete();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonUpdate((endProp - b) * easingFn(t / d) + b);\n\n\t\t\t\t\t_animations[name].raf = _requestAF(animloop);\n\t\t\t\t}\n\t\t\t};\n\t\t\tanimloop();\n\t\t};\n\n\t\tvar publicMethods = {\n\n\t\t\t// make a few local variables and functions public\n\t\t\tshout: _shout,\n\t\t\tlisten: _listen,\n\t\t\tviewportSize: _viewportSize,\n\t\t\toptions: _options,\n\n\t\t\tisMainScrollAnimating: function () {\n\t\t\t\treturn _mainScrollAnimating;\n\t\t\t},\n\t\t\tgetZoomLevel: function () {\n\t\t\t\treturn _currZoomLevel;\n\t\t\t},\n\t\t\tgetCurrentIndex: function () {\n\t\t\t\treturn _currentItemIndex;\n\t\t\t},\n\t\t\tisDragging: function () {\n\t\t\t\treturn _isDragging;\n\t\t\t},\n\t\t\tisZooming: function () {\n\t\t\t\treturn _isZooming;\n\t\t\t},\n\t\t\tapplyZoomPan: function (zoomLevel, panX, panY) {\n\t\t\t\t_panOffset.x = panX;\n\t\t\t\t_panOffset.y = panY;\n\t\t\t\t_currZoomLevel = zoomLevel;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t},\n\n\t\t\tinit: function () {\n\n\t\t\t\tif (_isOpen || _isDestroying) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar i;\n\n\t\t\t\tself.framework = framework; // basic function\n\t\t\t\tself.template = template; // root DOM element of PhotoSwipe\n\t\t\t\tself.bg = framework.getChildByClass(template, 'pswp__bg');\n\n\t\t\t\t_initalClassName = template.className;\n\t\t\t\t_isOpen = true;\n\n\t\t\t\t_features = framework.detectFeatures();\n\t\t\t\t_requestAF = _features.raf;\n\t\t\t\t_cancelAF = _features.caf;\n\t\t\t\t_transformKey = _features.transform;\n\t\t\t\t_oldIE = _features.oldIE;\n\n\t\t\t\tself.scrollWrap = framework.getChildByClass(template, 'pswp__scroll-wrap');\n\t\t\t\tself.container = framework.getChildByClass(self.scrollWrap, 'pswp__container');\n\n\t\t\t\t_containerStyle = self.container.style; // for fast access\n\n\t\t\t\t// Objects that hold slides (there are only 3 in DOM)\n\t\t\t\tself.itemHolders = _itemHolders = [{ el: self.container.children[0], wrap: 0, index: -1 }, { el: self.container.children[1], wrap: 0, index: -1 }, { el: self.container.children[2], wrap: 0, index: -1 }];\n\n\t\t\t\t// hide nearby item holders until initial zoom animation finishes (to avoid extra Paints)\n\t\t\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'none';\n\n\t\t\t\t_setupTransforms();\n\n\t\t\t\t// Setup global events\n\t\t\t\t_globalEventHandlers = {\n\t\t\t\t\tresize: self.updateSize,\n\t\t\t\t\tscroll: _onPageScroll,\n\t\t\t\t\tkeydown: _onKeyDown,\n\t\t\t\t\tclick: _onGlobalClick\n\t\t\t\t};\n\n\t\t\t\t// disable show/hide effects on old browsers that don't support CSS animations or transforms,\n\t\t\t\t// old IOS, Android and Opera mobile. Blackberry seems to work fine, even older models.\n\t\t\t\tvar oldPhone = _features.isOldIOSPhone || _features.isOldAndroid || _features.isMobileOpera;\n\t\t\t\tif (!_features.animationName || !_features.transform || oldPhone) {\n\t\t\t\t\t_options.showAnimationDuration = _options.hideAnimationDuration = 0;\n\t\t\t\t}\n\n\t\t\t\t// init modules\n\t\t\t\tfor (i = 0; i < _modules.length; i++) {\n\t\t\t\t\tself['init' + _modules[i]]();\n\t\t\t\t}\n\n\t\t\t\t// init\n\t\t\t\tif (UiClass) {\n\t\t\t\t\tvar ui = self.ui = new UiClass(self, framework);\n\t\t\t\t\tui.init();\n\t\t\t\t}\n\n\t\t\t\t_shout('firstUpdate');\n\t\t\t\t_currentItemIndex = _currentItemIndex || _options.index || 0;\n\t\t\t\t// validate index\n\t\t\t\tif (isNaN(_currentItemIndex) || _currentItemIndex < 0 || _currentItemIndex >= _getNumItems()) {\n\t\t\t\t\t_currentItemIndex = 0;\n\t\t\t\t}\n\t\t\t\tself.currItem = _getItemAt(_currentItemIndex);\n\n\t\t\t\tif (_features.isOldIOSPhone || _features.isOldAndroid) {\n\t\t\t\t\t_isFixedPosition = false;\n\t\t\t\t}\n\n\t\t\t\tif (_options.modal) {\n\t\t\t\t\ttemplate.setAttribute('aria-hidden', 'false');\n\t\t\t\t\tif (!_isFixedPosition) {\n\t\t\t\t\t\ttemplate.style.position = 'absolute';\n\t\t\t\t\t\ttemplate.style.top = framework.getScrollY() + 'px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttemplate.style.position = 'fixed';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (_currentWindowScrollY === undefined) {\n\t\t\t\t\t_shout('initialLayout');\n\t\t\t\t\t_currentWindowScrollY = _initalWindowScrollY = framework.getScrollY();\n\t\t\t\t}\n\n\t\t\t\t// add classes to root element of PhotoSwipe\n\t\t\t\tvar rootClasses = 'pswp--open ';\n\t\t\t\tif (_options.mainClass) {\n\t\t\t\t\trootClasses += _options.mainClass + ' ';\n\t\t\t\t}\n\t\t\t\tif (_options.showHideOpacity) {\n\t\t\t\t\trootClasses += 'pswp--animate_opacity ';\n\t\t\t\t}\n\t\t\t\trootClasses += _likelyTouchDevice ? 'pswp--touch' : 'pswp--notouch';\n\t\t\t\trootClasses += _features.animationName ? ' pswp--css_animation' : '';\n\t\t\t\trootClasses += _features.svg ? ' pswp--svg' : '';\n\t\t\t\tframework.addClass(template, rootClasses);\n\n\t\t\t\tself.updateSize();\n\n\t\t\t\t// initial update\n\t\t\t\t_containerShiftIndex = -1;\n\t\t\t\t_indexDiff = null;\n\t\t\t\tfor (i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\t\t_setTranslateX((i + _containerShiftIndex) * _slideSize.x, _itemHolders[i].el.style);\n\t\t\t\t}\n\n\t\t\t\tif (!_oldIE) {\n\t\t\t\t\tframework.bind(self.scrollWrap, _downEvents, self); // no dragging for old IE\n\t\t\t\t}\n\n\t\t\t\t_listen('initialZoomInEnd', function () {\n\t\t\t\t\tself.setContent(_itemHolders[0], _currentItemIndex - 1);\n\t\t\t\t\tself.setContent(_itemHolders[2], _currentItemIndex + 1);\n\n\t\t\t\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'block';\n\n\t\t\t\t\tif (_options.focus) {\n\t\t\t\t\t\t// focus causes layout,\n\t\t\t\t\t\t// which causes lag during the animation,\n\t\t\t\t\t\t// that's why we delay it untill the initial zoom transition ends\n\t\t\t\t\t\ttemplate.focus();\n\t\t\t\t\t}\n\n\t\t\t\t\t_bindEvents();\n\t\t\t\t});\n\n\t\t\t\t// set content for center slide (first time)\n\t\t\t\tself.setContent(_itemHolders[1], _currentItemIndex);\n\n\t\t\t\tself.updateCurrItem();\n\n\t\t\t\t_shout('afterInit');\n\n\t\t\t\tif (!_isFixedPosition) {\n\n\t\t\t\t\t// On all versions of iOS lower than 8.0, we check size of viewport every second.\n\t\t\t\t\t//\n\t\t\t\t\t// This is done to detect when Safari top & bottom bars appear,\n\t\t\t\t\t// as this action doesn't trigger any events (like resize).\n\t\t\t\t\t//\n\t\t\t\t\t// On iOS8 they fixed this.\n\t\t\t\t\t//\n\t\t\t\t\t// 10 Nov 2014: iOS 7 usage ~40%. iOS 8 usage 56%.\n\n\t\t\t\t\t_updateSizeInterval = setInterval(function () {\n\t\t\t\t\t\tif (!_numAnimations && !_isDragging && !_isZooming && _currZoomLevel === self.currItem.initialZoomLevel) {\n\t\t\t\t\t\t\tself.updateSize();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\n\t\t\t\tframework.addClass(template, 'pswp--visible');\n\t\t\t},\n\n\t\t\t// Closes the gallery, then destroy it\n\t\t\tclose: function () {\n\t\t\t\tif (!_isOpen) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_isOpen = false;\n\t\t\t\t_isDestroying = true;\n\t\t\t\t_shout('close');\n\t\t\t\t_unbindEvents();\n\n\t\t\t\t_showOrHide(self.currItem, null, true, self.destroy);\n\t\t\t},\n\n\t\t\t// destroys gallery (unbinds events, cleans up intervals and timeouts to avoid memory leaks)\n\t\t\tdestroy: function () {\n\t\t\t\t_shout('destroy');\n\n\t\t\t\tif (_showOrHideTimeout) {\n\t\t\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t\t\t}\n\n\t\t\t\tif (_options.modal) {\n\t\t\t\t\ttemplate.setAttribute('aria-hidden', 'true');\n\t\t\t\t\ttemplate.className = _initalClassName;\n\t\t\t\t}\n\n\t\t\t\tif (_updateSizeInterval) {\n\t\t\t\t\tclearInterval(_updateSizeInterval);\n\t\t\t\t}\n\n\t\t\t\tframework.unbind(self.scrollWrap, _downEvents, self);\n\n\t\t\t\t// we unbind lost event at the end, as closing animation may depend on it\n\t\t\t\tframework.unbind(window, 'scroll', self);\n\n\t\t\t\t_stopDragUpdateLoop();\n\n\t\t\t\t_stopAllAnimations();\n\n\t\t\t\t_listeners = null;\n\t\t\t},\n\n\t\t\t/**\r\n * Pan image to position\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Boolean} force Will ignore bounds if set to true.\r\n */\n\t\t\tpanTo: function (x, y, force) {\n\t\t\t\tif (!force) {\n\t\t\t\t\tif (x > _currPanBounds.min.x) {\n\t\t\t\t\t\tx = _currPanBounds.min.x;\n\t\t\t\t\t} else if (x < _currPanBounds.max.x) {\n\t\t\t\t\t\tx = _currPanBounds.max.x;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y > _currPanBounds.min.y) {\n\t\t\t\t\t\ty = _currPanBounds.min.y;\n\t\t\t\t\t} else if (y < _currPanBounds.max.y) {\n\t\t\t\t\t\ty = _currPanBounds.max.y;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_panOffset.x = x;\n\t\t\t\t_panOffset.y = y;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t},\n\n\t\t\thandleEvent: function (e) {\n\t\t\t\te = e || window.event;\n\t\t\t\tif (_globalEventHandlers[e.type]) {\n\t\t\t\t\t_globalEventHandlers[e.type](e);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgoTo: function (index) {\n\n\t\t\t\tindex = _getLoopedId(index);\n\n\t\t\t\tvar diff = index - _currentItemIndex;\n\t\t\t\t_indexDiff = diff;\n\n\t\t\t\t_currentItemIndex = index;\n\t\t\t\tself.currItem = _getItemAt(_currentItemIndex);\n\t\t\t\t_currPositionIndex -= diff;\n\n\t\t\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\n\t\t\t\t_stopAllAnimations();\n\t\t\t\t_mainScrollAnimating = false;\n\n\t\t\t\tself.updateCurrItem();\n\t\t\t},\n\t\t\tnext: function () {\n\t\t\t\tself.goTo(_currentItemIndex + 1);\n\t\t\t},\n\t\t\tprev: function () {\n\t\t\t\tself.goTo(_currentItemIndex - 1);\n\t\t\t},\n\n\t\t\t// update current zoom/pan objects\n\t\t\tupdateCurrZoomItem: function (emulateSetContent) {\n\t\t\t\tif (emulateSetContent) {\n\t\t\t\t\t_shout('beforeChange', 0);\n\t\t\t\t}\n\n\t\t\t\t// itemHolder[1] is middle (current) item\n\t\t\t\tif (_itemHolders[1].el.children.length) {\n\t\t\t\t\tvar zoomElement = _itemHolders[1].el.children[0];\n\t\t\t\t\tif (framework.hasClass(zoomElement, 'pswp__zoom-wrap')) {\n\t\t\t\t\t\t_currZoomElementStyle = zoomElement.style;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_currZoomElementStyle = null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_currZoomElementStyle = null;\n\t\t\t\t}\n\n\t\t\t\t_currPanBounds = self.currItem.bounds;\n\t\t\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\n\t\t\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t\t\t_panOffset.y = _currPanBounds.center.y;\n\n\t\t\t\tif (emulateSetContent) {\n\t\t\t\t\t_shout('afterChange');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tinvalidateCurrItems: function () {\n\t\t\t\t_itemsNeedUpdate = true;\n\t\t\t\tfor (var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\t\tif (_itemHolders[i].item) {\n\t\t\t\t\t\t_itemHolders[i].item.needsUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tupdateCurrItem: function (beforeAnimation) {\n\n\t\t\t\tif (_indexDiff === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar diffAbs = Math.abs(_indexDiff),\n\t\t\t\t tempHolder;\n\n\t\t\t\tif (beforeAnimation && diffAbs < 2) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tself.currItem = _getItemAt(_currentItemIndex);\n\n\t\t\t\t_shout('beforeChange', _indexDiff);\n\n\t\t\t\tif (diffAbs >= NUM_HOLDERS) {\n\t\t\t\t\t_containerShiftIndex += _indexDiff + (_indexDiff > 0 ? -NUM_HOLDERS : NUM_HOLDERS);\n\t\t\t\t\tdiffAbs = NUM_HOLDERS;\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < diffAbs; i++) {\n\t\t\t\t\tif (_indexDiff > 0) {\n\t\t\t\t\t\ttempHolder = _itemHolders.shift();\n\t\t\t\t\t\t_itemHolders[NUM_HOLDERS - 1] = tempHolder; // move first to last\n\n\t\t\t\t\t\t_containerShiftIndex++;\n\t\t\t\t\t\t_setTranslateX((_containerShiftIndex + 2) * _slideSize.x, tempHolder.el.style);\n\t\t\t\t\t\tself.setContent(tempHolder, _currentItemIndex - diffAbs + i + 1 + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempHolder = _itemHolders.pop();\n\t\t\t\t\t\t_itemHolders.unshift(tempHolder); // move last to first\n\n\t\t\t\t\t\t_containerShiftIndex--;\n\t\t\t\t\t\t_setTranslateX(_containerShiftIndex * _slideSize.x, tempHolder.el.style);\n\t\t\t\t\t\tself.setContent(tempHolder, _currentItemIndex + diffAbs - i - 1 - 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// reset zoom/pan on previous item\n\t\t\t\tif (_currZoomElementStyle && Math.abs(_indexDiff) === 1) {\n\n\t\t\t\t\tvar prevItem = _getItemAt(_prevItemIndex);\n\t\t\t\t\tif (prevItem.initialZoomLevel !== _currZoomLevel) {\n\t\t\t\t\t\t_calculateItemSize(prevItem, _viewportSize);\n\t\t\t\t\t\t_applyZoomPanToItem(prevItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// reset diff after update\n\t\t\t\t_indexDiff = 0;\n\n\t\t\t\tself.updateCurrZoomItem();\n\n\t\t\t\t_prevItemIndex = _currentItemIndex;\n\n\t\t\t\t_shout('afterChange');\n\t\t\t},\n\n\t\t\tupdateSize: function (force) {\n\n\t\t\t\tif (!_isFixedPosition) {\n\t\t\t\t\tvar windowScrollY = framework.getScrollY();\n\t\t\t\t\tif (_currentWindowScrollY !== windowScrollY) {\n\t\t\t\t\t\ttemplate.style.top = windowScrollY + 'px';\n\t\t\t\t\t\t_currentWindowScrollY = windowScrollY;\n\t\t\t\t\t}\n\t\t\t\t\tif (!force && _windowVisibleSize.x === window.innerWidth && _windowVisibleSize.y === window.innerHeight) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_windowVisibleSize.x = window.innerWidth;\n\t\t\t\t\t_windowVisibleSize.y = window.innerHeight;\n\n\t\t\t\t\t//template.style.width = _windowVisibleSize.x + 'px';\n\t\t\t\t\ttemplate.style.height = _windowVisibleSize.y + 'px';\n\t\t\t\t}\n\n\t\t\t\t_viewportSize.x = self.scrollWrap.clientWidth;\n\t\t\t\t_viewportSize.y = self.scrollWrap.clientHeight;\n\n\t\t\t\t_offset = { x: 0, y: _currentWindowScrollY }; //framework.getOffset(template);\n\n\t\t\t\t_slideSize.x = _viewportSize.x + Math.round(_viewportSize.x * _options.spacing);\n\t\t\t\t_slideSize.y = _viewportSize.y;\n\n\t\t\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\n\t\t\t\t_shout('beforeResize'); // even may be used for example to switch image sources\n\n\t\t\t\t// don't re-calculate size on inital size update\n\t\t\t\tif (_containerShiftIndex !== undefined) {\n\n\t\t\t\t\tvar holder, item, hIndex;\n\n\t\t\t\t\tfor (var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\t\t\tholder = _itemHolders[i];\n\t\t\t\t\t\t_setTranslateX((i + _containerShiftIndex) * _slideSize.x, holder.el.style);\n\n\t\t\t\t\t\thIndex = _getLoopedId(_currentItemIndex + i - 1);\n\n\t\t\t\t\t\t// update zoom level on items and refresh source (if needsUpdate)\n\t\t\t\t\t\titem = _getItemAt(hIndex);\n\n\t\t\t\t\t\t// re-render gallery item if `needsUpdate`,\n\t\t\t\t\t\t// or doesn't have `bounds` (entirely new slide object)\n\t\t\t\t\t\tif (_itemsNeedUpdate || item.needsUpdate || !item.bounds) {\n\n\t\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\t\tself.cleanSlide(item);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tself.setContent(holder, hIndex);\n\n\t\t\t\t\t\t\t// if \"center\" slide\n\t\t\t\t\t\t\tif (i === 1) {\n\t\t\t\t\t\t\t\tself.currItem = item;\n\t\t\t\t\t\t\t\tself.updateCurrZoomItem(true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.needsUpdate = false;\n\t\t\t\t\t\t} else if (holder.index === -1 && hIndex >= 0) {\n\t\t\t\t\t\t\t// add content first time\n\t\t\t\t\t\t\tself.setContent(holder, hIndex);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item && item.container) {\n\t\t\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t\t\t_applyZoomPanToItem(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t_itemsNeedUpdate = false;\n\t\t\t\t}\n\n\t\t\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\t\t\t\t_currPanBounds = self.currItem.bounds;\n\n\t\t\t\tif (_currPanBounds) {\n\t\t\t\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t\t\t\t_panOffset.y = _currPanBounds.center.y;\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t}\n\n\t\t\t\t_shout('resize');\n\t\t\t},\n\n\t\t\t//Zoom current item to\n\t\t\tzoomTo: function (destZoomLevel, centerPoint, speed, easingFn, updateFn) {\n\n\t\t\t\t/*\r\n \tif(destZoomLevel === 'fit') {\r\n \t\tdestZoomLevel = self.currItem.fitRatio;\r\n \t} else if(destZoomLevel === 'fill') {\r\n \t\tdestZoomLevel = self.currItem.fillRatio;\r\n \t}\r\n */\n\n\t\t\t\tif (centerPoint) {\n\t\t\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t\t\t_midZoomPoint.x = Math.abs(centerPoint.x) - _panOffset.x;\n\t\t\t\t\t_midZoomPoint.y = Math.abs(centerPoint.y) - _panOffset.y;\n\t\t\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\t\t\t\t}\n\n\t\t\t\tvar destPanBounds = _calculatePanBounds(destZoomLevel, false),\n\t\t\t\t destPanOffset = {};\n\n\t\t\t\t_modifyDestPanOffset('x', destPanBounds, destPanOffset, destZoomLevel);\n\t\t\t\t_modifyDestPanOffset('y', destPanBounds, destPanOffset, destZoomLevel);\n\n\t\t\t\tvar initialZoomLevel = _currZoomLevel;\n\t\t\t\tvar initialPanOffset = {\n\t\t\t\t\tx: _panOffset.x,\n\t\t\t\t\ty: _panOffset.y\n\t\t\t\t};\n\n\t\t\t\t_roundPoint(destPanOffset);\n\n\t\t\t\t//_startZoomLevel = destZoomLevel;\n\t\t\t\tvar onUpdate = function (now) {\n\t\t\t\t\tif (now === 1) {\n\t\t\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t\t\t_panOffset.x = destPanOffset.x;\n\t\t\t\t\t\t_panOffset.y = destPanOffset.y;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t\t\t_panOffset.x = (destPanOffset.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t\t\t_panOffset.y = (destPanOffset.y - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (updateFn) {\n\t\t\t\t\t\tupdateFn(now);\n\t\t\t\t\t}\n\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t};\n\n\t\t\t\tif (speed) {\n\t\t\t\t\t_animateProp('customZoomTo', 0, 1, speed, easingFn || framework.easing.sine.inOut, onUpdate);\n\t\t\t\t} else {\n\t\t\t\t\tonUpdate(1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t\t/*>>core*/\n\n\t\t/*>>gestures*/\n\t\t/**\r\n * Mouse/touch/pointer event handlers.\r\n *\r\n * separated from @core.js for readability\r\n */\n\n\t\tvar MIN_SWIPE_DISTANCE = 30,\n\t\t DIRECTION_CHECK_OFFSET = 10; // amount of pixels to drag to determine direction of swipe\n\n\t\tvar _gestureStartTime,\n\t\t _gestureCheckSpeedTime,\n\n\n\t\t// pool of objects that are used during dragging of zooming\n\t\tp = {},\n\t\t // first point\n\t\tp2 = {},\n\t\t // second point (for zoom gesture)\n\t\tdelta = {},\n\t\t _currPoint = {},\n\t\t _startPoint = {},\n\t\t _currPointers = [],\n\t\t _startMainScrollPos = {},\n\t\t _releaseAnimData,\n\t\t _posPoints = [],\n\t\t // array of points during dragging, used to determine type of gesture\n\t\t_tempPoint = {},\n\t\t _isZoomingIn,\n\t\t _verticalDragInitiated,\n\t\t _oldAndroidTouchEndTimeout,\n\t\t _currZoomedItemIndex = 0,\n\t\t _centerPoint = _getEmptyPoint(),\n\t\t _lastReleaseTime = 0,\n\t\t _isDragging,\n\t\t // at least one pointer is down\n\t\t_isMultitouch,\n\t\t // at least two _pointers are down\n\t\t_zoomStarted,\n\t\t // zoom level changed during zoom gesture\n\t\t_moved,\n\t\t _dragAnimFrame,\n\t\t _mainScrollShifted,\n\t\t _currentPoints,\n\t\t // array of current touch points\n\t\t_isZooming,\n\t\t _currPointsDistance,\n\t\t _startPointsDistance,\n\t\t _currPanBounds,\n\t\t _mainScrollPos = _getEmptyPoint(),\n\t\t _currZoomElementStyle,\n\t\t _mainScrollAnimating,\n\t\t // true, if animation after swipe gesture is running\n\t\t_midZoomPoint = _getEmptyPoint(),\n\t\t _currCenterPoint = _getEmptyPoint(),\n\t\t _direction,\n\t\t _isFirstMove,\n\t\t _opacityChanged,\n\t\t _bgOpacity,\n\t\t _wasOverInitialZoom,\n\t\t _isEqualPoints = function (p1, p2) {\n\t\t\treturn p1.x === p2.x && p1.y === p2.y;\n\t\t},\n\t\t _isNearbyPoints = function (touch0, touch1) {\n\t\t\treturn Math.abs(touch0.x - touch1.x) < DOUBLE_TAP_RADIUS && Math.abs(touch0.y - touch1.y) < DOUBLE_TAP_RADIUS;\n\t\t},\n\t\t _calculatePointsDistance = function (p1, p2) {\n\t\t\t_tempPoint.x = Math.abs(p1.x - p2.x);\n\t\t\t_tempPoint.y = Math.abs(p1.y - p2.y);\n\t\t\treturn Math.sqrt(_tempPoint.x * _tempPoint.x + _tempPoint.y * _tempPoint.y);\n\t\t},\n\t\t _stopDragUpdateLoop = function () {\n\t\t\tif (_dragAnimFrame) {\n\t\t\t\t_cancelAF(_dragAnimFrame);\n\t\t\t\t_dragAnimFrame = null;\n\t\t\t}\n\t\t},\n\t\t _dragUpdateLoop = function () {\n\t\t\tif (_isDragging) {\n\t\t\t\t_dragAnimFrame = _requestAF(_dragUpdateLoop);\n\t\t\t\t_renderMovement();\n\t\t\t}\n\t\t},\n\t\t _canPan = function () {\n\t\t\treturn !(_options.scaleMode === 'fit' && _currZoomLevel === self.currItem.initialZoomLevel);\n\t\t},\n\n\n\t\t// find the closest parent DOM element\n\t\t_closestElement = function (el, fn) {\n\t\t\tif (!el) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// don't search elements above pswp__scroll-wrap\n\t\t\tif (el.className && el.className.indexOf('pswp__scroll-wrap') > -1) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (fn(el)) {\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\treturn _closestElement(el.parentNode, fn);\n\t\t},\n\t\t _preventObj = {},\n\t\t _preventDefaultEventBehaviour = function (e, isDown) {\n\t\t\t_preventObj.prevent = !_closestElement(e.target, _options.isClickableElement);\n\n\t\t\t_shout('preventDragEvent', e, isDown, _preventObj);\n\t\t\treturn _preventObj.prevent;\n\t\t},\n\t\t _convertTouchToPoint = function (touch, p) {\n\t\t\tp.x = touch.pageX;\n\t\t\tp.y = touch.pageY;\n\t\t\tp.id = touch.identifier;\n\t\t\treturn p;\n\t\t},\n\t\t _findCenterOfPoints = function (p1, p2, pCenter) {\n\t\t\tpCenter.x = (p1.x + p2.x) * 0.5;\n\t\t\tpCenter.y = (p1.y + p2.y) * 0.5;\n\t\t},\n\t\t _pushPosPoint = function (time, x, y) {\n\t\t\tif (time - _gestureCheckSpeedTime > 50) {\n\t\t\t\tvar o = _posPoints.length > 2 ? _posPoints.shift() : {};\n\t\t\t\to.x = x;\n\t\t\t\to.y = y;\n\t\t\t\t_posPoints.push(o);\n\t\t\t\t_gestureCheckSpeedTime = time;\n\t\t\t}\n\t\t},\n\t\t _calculateVerticalDragOpacityRatio = function () {\n\t\t\tvar yOffset = _panOffset.y - self.currItem.initialPosition.y; // difference between initial and current position\n\t\t\treturn 1 - Math.abs(yOffset / (_viewportSize.y / 2));\n\t\t},\n\n\n\t\t// points pool, reused during touch events\n\t\t_ePoint1 = {},\n\t\t _ePoint2 = {},\n\t\t _tempPointsArr = [],\n\t\t _tempCounter,\n\t\t _getTouchPoints = function (e) {\n\t\t\t// clean up previous points, without recreating array\n\t\t\twhile (_tempPointsArr.length > 0) {\n\t\t\t\t_tempPointsArr.pop();\n\t\t\t}\n\n\t\t\tif (!_pointerEventEnabled) {\n\t\t\t\tif (e.type.indexOf('touch') > -1) {\n\n\t\t\t\t\tif (e.touches && e.touches.length > 0) {\n\t\t\t\t\t\t_tempPointsArr[0] = _convertTouchToPoint(e.touches[0], _ePoint1);\n\t\t\t\t\t\tif (e.touches.length > 1) {\n\t\t\t\t\t\t\t_tempPointsArr[1] = _convertTouchToPoint(e.touches[1], _ePoint2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_ePoint1.x = e.pageX;\n\t\t\t\t\t_ePoint1.y = e.pageY;\n\t\t\t\t\t_ePoint1.id = '';\n\t\t\t\t\t_tempPointsArr[0] = _ePoint1; //_ePoint1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t_tempCounter = 0;\n\t\t\t\t// we can use forEach, as pointer events are supported only in modern browsers\n\t\t\t\t_currPointers.forEach(function (p) {\n\t\t\t\t\tif (_tempCounter === 0) {\n\t\t\t\t\t\t_tempPointsArr[0] = p;\n\t\t\t\t\t} else if (_tempCounter === 1) {\n\t\t\t\t\t\t_tempPointsArr[1] = p;\n\t\t\t\t\t}\n\t\t\t\t\t_tempCounter++;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn _tempPointsArr;\n\t\t},\n\t\t _panOrMoveMainScroll = function (axis, delta) {\n\n\t\t\tvar panFriction,\n\t\t\t overDiff = 0,\n\t\t\t newOffset = _panOffset[axis] + delta[axis],\n\t\t\t startOverDiff,\n\t\t\t dir = delta[axis] > 0,\n\t\t\t newMainScrollPosition = _mainScrollPos.x + delta.x,\n\t\t\t mainScrollDiff = _mainScrollPos.x - _startMainScrollPos.x,\n\t\t\t newPanPos,\n\t\t\t newMainScrollPos;\n\n\t\t\t// calculate fdistance over the bounds and friction\n\t\t\tif (newOffset > _currPanBounds.min[axis] || newOffset < _currPanBounds.max[axis]) {\n\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t// Linear increasing of friction, so at 1/4 of viewport it's at max value.\n\t\t\t\t// Looks not as nice as was expected. Left for history.\n\t\t\t\t// panFriction = (1 - (_panOffset[axis] + delta[axis] + panBounds.min[axis]) / (_viewportSize[axis] / 4) );\n\t\t\t} else {\n\t\t\t\tpanFriction = 1;\n\t\t\t}\n\n\t\t\tnewOffset = _panOffset[axis] + delta[axis] * panFriction;\n\n\t\t\t// move main scroll or start panning\n\t\t\tif (_options.allowPanToNext || _currZoomLevel === self.currItem.initialZoomLevel) {\n\n\t\t\t\tif (!_currZoomElementStyle) {\n\n\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\t\t\t\t} else if (_direction === 'h' && axis === 'x' && !_zoomStarted) {\n\n\t\t\t\t\tif (dir) {\n\t\t\t\t\t\tif (newOffset > _currPanBounds.min[axis]) {\n\t\t\t\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t\t\t\toverDiff = _currPanBounds.min[axis] - newOffset;\n\t\t\t\t\t\t\tstartOverDiff = _currPanBounds.min[axis] - _startPanOffset[axis];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// drag right\n\t\t\t\t\t\tif ((startOverDiff <= 0 || mainScrollDiff < 0) && _getNumItems() > 1) {\n\t\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\t\t\t\t\t\t\tif (mainScrollDiff < 0 && newMainScrollPosition > _startMainScrollPos.x) {\n\t\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif (newOffset < _currPanBounds.max[axis]) {\n\t\t\t\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t\t\t\toverDiff = newOffset - _currPanBounds.max[axis];\n\t\t\t\t\t\t\tstartOverDiff = _startPanOffset[axis] - _currPanBounds.max[axis];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ((startOverDiff <= 0 || mainScrollDiff > 0) && _getNumItems() > 1) {\n\t\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t\t\t\t\tif (mainScrollDiff > 0 && newMainScrollPosition < _startMainScrollPos.x) {\n\t\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\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\t//\n\t\t\t\t}\n\n\t\t\t\tif (axis === 'x') {\n\n\t\t\t\t\tif (newMainScrollPos !== undefined) {\n\t\t\t\t\t\t_moveMainScroll(newMainScrollPos, true);\n\t\t\t\t\t\tif (newMainScrollPos === _startMainScrollPos.x) {\n\t\t\t\t\t\t\t_mainScrollShifted = false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_mainScrollShifted = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\tif (newPanPos !== undefined) {\n\t\t\t\t\t\t\t_panOffset.x = newPanPos;\n\t\t\t\t\t\t} else if (!_mainScrollShifted) {\n\t\t\t\t\t\t\t_panOffset.x += delta.x * panFriction;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn newMainScrollPos !== undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!_mainScrollAnimating) {\n\n\t\t\t\tif (!_mainScrollShifted) {\n\t\t\t\t\tif (_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\t\t_panOffset[axis] += delta[axis] * panFriction;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t// Pointerdown/touchstart/mousedown handler\n\t\t_onDragStart = function (e) {\n\n\t\t\t// Allow dragging only via left mouse button.\n\t\t\t// As this handler is not added in IE8 - we ignore e.which\n\t\t\t//\n\t\t\t// http://www.quirksmode.org/js/events_properties.html\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/event.button\n\t\t\tif (e.type === 'mousedown' && e.button > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_initialZoomRunning) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_oldAndroidTouchEndTimeout && e.type === 'mousedown') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_preventDefaultEventBehaviour(e, true)) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\t_shout('pointerDown');\n\n\t\t\tif (_pointerEventEnabled) {\n\t\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\t\tif (pointerIndex < 0) {\n\t\t\t\t\tpointerIndex = _currPointers.length;\n\t\t\t\t}\n\t\t\t\t_currPointers[pointerIndex] = { x: e.pageX, y: e.pageY, id: e.pointerId };\n\t\t\t}\n\n\t\t\tvar startPointsList = _getTouchPoints(e),\n\t\t\t numPoints = startPointsList.length;\n\n\t\t\t_currentPoints = null;\n\n\t\t\t_stopAllAnimations();\n\n\t\t\t// init drag\n\t\t\tif (!_isDragging || numPoints === 1) {\n\n\t\t\t\t_isDragging = _isFirstMove = true;\n\t\t\t\tframework.bind(window, _upMoveEvents, self);\n\n\t\t\t\t_isZoomingIn = _wasOverInitialZoom = _opacityChanged = _verticalDragInitiated = _mainScrollShifted = _moved = _isMultitouch = _zoomStarted = false;\n\n\t\t\t\t_direction = null;\n\n\t\t\t\t_shout('firstTouchStart', startPointsList);\n\n\t\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t\t_currPanDist.x = _currPanDist.y = 0;\n\t\t\t\t_equalizePoints(_currPoint, startPointsList[0]);\n\t\t\t\t_equalizePoints(_startPoint, _currPoint);\n\n\t\t\t\t//_equalizePoints(_startMainScrollPos, _mainScrollPos);\n\t\t\t\t_startMainScrollPos.x = _slideSize.x * _currPositionIndex;\n\n\t\t\t\t_posPoints = [{\n\t\t\t\t\tx: _currPoint.x,\n\t\t\t\t\ty: _currPoint.y\n\t\t\t\t}];\n\n\t\t\t\t_gestureCheckSpeedTime = _gestureStartTime = _getCurrentTime();\n\n\t\t\t\t//_mainScrollAnimationEnd(true);\n\t\t\t\t_calculatePanBounds(_currZoomLevel, true);\n\n\t\t\t\t// Start rendering\n\t\t\t\t_stopDragUpdateLoop();\n\t\t\t\t_dragUpdateLoop();\n\t\t\t}\n\n\t\t\t// init zoom\n\t\t\tif (!_isZooming && numPoints > 1 && !_mainScrollAnimating && !_mainScrollShifted) {\n\t\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t\t_zoomStarted = false; // true if zoom changed at least once\n\n\t\t\t\t_isZooming = _isMultitouch = true;\n\t\t\t\t_currPanDist.y = _currPanDist.x = 0;\n\n\t\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t\t_equalizePoints(p, startPointsList[0]);\n\t\t\t\t_equalizePoints(p2, startPointsList[1]);\n\n\t\t\t\t_findCenterOfPoints(p, p2, _currCenterPoint);\n\n\t\t\t\t_midZoomPoint.x = Math.abs(_currCenterPoint.x) - _panOffset.x;\n\t\t\t\t_midZoomPoint.y = Math.abs(_currCenterPoint.y) - _panOffset.y;\n\t\t\t\t_currPointsDistance = _startPointsDistance = _calculatePointsDistance(p, p2);\n\t\t\t}\n\t\t},\n\n\n\t\t// Pointermove/touchmove/mousemove handler\n\t\t_onDragMove = function (e) {\n\n\t\t\te.preventDefault();\n\n\t\t\tif (_pointerEventEnabled) {\n\t\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\t\tif (pointerIndex > -1) {\n\t\t\t\t\tvar p = _currPointers[pointerIndex];\n\t\t\t\t\tp.x = e.pageX;\n\t\t\t\t\tp.y = e.pageY;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (_isDragging) {\n\t\t\t\tvar touchesList = _getTouchPoints(e);\n\t\t\t\tif (!_direction && !_moved && !_isZooming) {\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} else {\n\t\t\t\t\t_currentPoints = touchesList;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t//\n\t\t_renderMovement = function () {\n\n\t\t\tif (!_currentPoints) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar numPoints = _currentPoints.length;\n\n\t\t\tif (numPoints === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_equalizePoints(p, _currentPoints[0]);\n\n\t\t\tdelta.x = p.x - _currPoint.x;\n\t\t\tdelta.y = p.y - _currPoint.y;\n\n\t\t\tif (_isZooming && numPoints > 1) {\n\t\t\t\t// Handle behaviour for more than 1 point\n\n\t\t\t\t_currPoint.x = p.x;\n\t\t\t\t_currPoint.y = p.y;\n\n\t\t\t\t// check if one of two points changed\n\t\t\t\tif (!delta.x && !delta.y && _isEqualPoints(_currentPoints[1], p2)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_equalizePoints(p2, _currentPoints[1]);\n\n\t\t\t\tif (!_zoomStarted) {\n\t\t\t\t\t_zoomStarted = true;\n\t\t\t\t\t_shout('zoomGestureStarted');\n\t\t\t\t}\n\n\t\t\t\t// Distance between two points\n\t\t\t\tvar pointsDistance = _calculatePointsDistance(p, p2);\n\n\t\t\t\tvar zoomLevel = _calculateZoomLevel(pointsDistance);\n\n\t\t\t\t// slightly over the of initial zoom level\n\t\t\t\tif (zoomLevel > self.currItem.initialZoomLevel + self.currItem.initialZoomLevel / 15) {\n\t\t\t\t\t_wasOverInitialZoom = true;\n\t\t\t\t}\n\n\t\t\t\t// Apply the friction if zoom level is out of the bounds\n\t\t\t\tvar zoomFriction = 1,\n\t\t\t\t minZoomLevel = _getMinZoomLevel(),\n\t\t\t\t maxZoomLevel = _getMaxZoomLevel();\n\n\t\t\t\tif (zoomLevel < minZoomLevel) {\n\n\t\t\t\t\tif (_options.pinchToClose && !_wasOverInitialZoom && _startZoomLevel <= self.currItem.initialZoomLevel) {\n\t\t\t\t\t\t// fade out background if zooming out\n\t\t\t\t\t\tvar minusDiff = minZoomLevel - zoomLevel;\n\t\t\t\t\t\tvar percent = 1 - minusDiff / (minZoomLevel / 1.2);\n\n\t\t\t\t\t\t_applyBgOpacity(percent);\n\t\t\t\t\t\t_shout('onPinchClose', percent);\n\t\t\t\t\t\t_opacityChanged = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tzoomFriction = (minZoomLevel - zoomLevel) / minZoomLevel;\n\t\t\t\t\t\tif (zoomFriction > 1) {\n\t\t\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tzoomLevel = minZoomLevel - zoomFriction * (minZoomLevel / 3);\n\t\t\t\t\t}\n\t\t\t\t} else if (zoomLevel > maxZoomLevel) {\n\t\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\t\tzoomFriction = (zoomLevel - maxZoomLevel) / (minZoomLevel * 6);\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 = maxZoomLevel + zoomFriction * minZoomLevel;\n\t\t\t\t}\n\n\t\t\t\tif (zoomFriction < 0) {\n\t\t\t\t\tzoomFriction = 0;\n\t\t\t\t}\n\n\t\t\t\t// distance between touch points after friction is applied\n\t\t\t\t_currPointsDistance = pointsDistance;\n\n\t\t\t\t// _centerPoint - The point in the middle of two pointers\n\t\t\t\t_findCenterOfPoints(p, p2, _centerPoint);\n\n\t\t\t\t// paning with two pointers pressed\n\t\t\t\t_currPanDist.x += _centerPoint.x - _currCenterPoint.x;\n\t\t\t\t_currPanDist.y += _centerPoint.y - _currCenterPoint.y;\n\t\t\t\t_equalizePoints(_currCenterPoint, _centerPoint);\n\n\t\t\t\t_panOffset.x = _calculatePanOffset('x', zoomLevel);\n\t\t\t\t_panOffset.y = _calculatePanOffset('y', zoomLevel);\n\n\t\t\t\t_isZoomingIn = zoomLevel > _currZoomLevel;\n\t\t\t\t_currZoomLevel = zoomLevel;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t} else {\n\n\t\t\t\t// handle behaviour for one point (dragging or panning)\n\n\t\t\t\tif (!_direction) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (_isFirstMove) {\n\t\t\t\t\t_isFirstMove = false;\n\n\t\t\t\t\t// subtract drag distance that was used during the detection direction\n\n\t\t\t\t\tif (Math.abs(delta.x) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\t\tdelta.x -= _currentPoints[0].x - _startPoint.x;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Math.abs(delta.y) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\t\tdelta.y -= _currentPoints[0].y - _startPoint.y;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_currPoint.x = p.x;\n\t\t\t\t_currPoint.y = p.y;\n\n\t\t\t\t// do nothing if pointers position hasn't changed\n\t\t\t\tif (delta.x === 0 && delta.y === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (_direction === 'v' && _options.closeOnVerticalDrag) {\n\t\t\t\t\tif (!_canPan()) {\n\n\t\t\t\t\t\t_currPanDist.y += delta.y;\n\t\t\t\t\t\t_panOffset.y += delta.y;\n\n\t\t\t\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\t\t\t\t_verticalDragInitiated = true;\n\t\t\t\t\t\t_shout('onVerticalDrag', opacityRatio);\n\n\t\t\t\t\t\t_applyBgOpacity(opacityRatio);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_pushPosPoint(_getCurrentTime(), p.x, p.y);\n\n\t\t\t\t_moved = true;\n\t\t\t\t_currPanBounds = self.currItem.bounds;\n\n\t\t\t\tvar mainScrollChanged = _panOrMoveMainScroll('x', delta);\n\t\t\t\tif (!mainScrollChanged) {\n\t\t\t\t\t_panOrMoveMainScroll('y', delta);\n\n\t\t\t\t\t_roundPoint(_panOffset);\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t// Pointerup/pointercancel/touchend/touchcancel/mouseup event handler\n\t\t_onDragRelease = function (e) {\n\n\t\t\tif (_features.isOldAndroid) {\n\n\t\t\t\tif (_oldAndroidTouchEndTimeout && e.type === 'mouseup') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// on Android (v4.1, 4.2, 4.3 & possibly older)\n\t\t\t\t// ghost mousedown/up event isn't preventable via e.preventDefault,\n\t\t\t\t// which causes fake mousedown event\n\t\t\t\t// so we block mousedown/up for 600ms\n\t\t\t\tif (e.type.indexOf('touch') > -1) {\n\t\t\t\t\tclearTimeout(_oldAndroidTouchEndTimeout);\n\t\t\t\t\t_oldAndroidTouchEndTimeout = setTimeout(function () {\n\t\t\t\t\t\t_oldAndroidTouchEndTimeout = 0;\n\t\t\t\t\t}, 600);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_shout('pointerUp');\n\n\t\t\tif (_preventDefaultEventBehaviour(e, false)) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tvar releasePoint;\n\n\t\t\tif (_pointerEventEnabled) {\n\t\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\n\t\t\t\tif (pointerIndex > -1) {\n\t\t\t\t\treleasePoint = _currPointers.splice(pointerIndex, 1)[0];\n\n\t\t\t\t\tif (navigator.pointerEnabled) {\n\t\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar MSPOINTER_TYPES = {\n\t\t\t\t\t\t\t4: 'mouse', // event.MSPOINTER_TYPE_MOUSE\n\t\t\t\t\t\t\t2: 'touch', // event.MSPOINTER_TYPE_TOUCH\n\t\t\t\t\t\t\t3: 'pen' // event.MSPOINTER_TYPE_PEN\n\t\t\t\t\t\t};\n\t\t\t\t\t\treleasePoint.type = MSPOINTER_TYPES[e.pointerType];\n\n\t\t\t\t\t\tif (!releasePoint.type) {\n\t\t\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\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\tvar touchList = _getTouchPoints(e),\n\t\t\t gestureType,\n\t\t\t numPoints = touchList.length;\n\n\t\t\tif (e.type === 'mouseup') {\n\t\t\t\tnumPoints = 0;\n\t\t\t}\n\n\t\t\t// Do nothing if there were 3 touch points or more\n\t\t\tif (numPoints === 2) {\n\t\t\t\t_currentPoints = null;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if second pointer released\n\t\t\tif (numPoints === 1) {\n\t\t\t\t_equalizePoints(_startPoint, touchList[0]);\n\t\t\t}\n\n\t\t\t// pointer hasn't moved, send \"tap release\" point\n\t\t\tif (numPoints === 0 && !_direction && !_mainScrollAnimating) {\n\t\t\t\tif (!releasePoint) {\n\t\t\t\t\tif (e.type === 'mouseup') {\n\t\t\t\t\t\treleasePoint = { x: e.pageX, y: e.pageY, type: 'mouse' };\n\t\t\t\t\t} else if (e.changedTouches && e.changedTouches[0]) {\n\t\t\t\t\t\treleasePoint = { x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY, type: 'touch' };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_shout('touchRelease', e, releasePoint);\n\t\t\t}\n\n\t\t\t// Difference in time between releasing of two last touch points (zoom gesture)\n\t\t\tvar releaseTimeDiff = -1;\n\n\t\t\t// Gesture completed, no pointers left\n\t\t\tif (numPoints === 0) {\n\t\t\t\t_isDragging = false;\n\t\t\t\tframework.unbind(window, _upMoveEvents, self);\n\n\t\t\t\t_stopDragUpdateLoop();\n\n\t\t\t\tif (_isZooming) {\n\t\t\t\t\t// Two points released at the same time\n\t\t\t\t\treleaseTimeDiff = 0;\n\t\t\t\t} else if (_lastReleaseTime !== -1) {\n\t\t\t\t\treleaseTimeDiff = _getCurrentTime() - _lastReleaseTime;\n\t\t\t\t}\n\t\t\t}\n\t\t\t_lastReleaseTime = numPoints === 1 ? _getCurrentTime() : -1;\n\n\t\t\tif (releaseTimeDiff !== -1 && releaseTimeDiff < 150) {\n\t\t\t\tgestureType = 'zoom';\n\t\t\t} else {\n\t\t\t\tgestureType = 'swipe';\n\t\t\t}\n\n\t\t\tif (_isZooming && numPoints < 2) {\n\t\t\t\t_isZooming = false;\n\n\t\t\t\t// Only second point released\n\t\t\t\tif (numPoints === 1) {\n\t\t\t\t\tgestureType = 'zoomPointerUp';\n\t\t\t\t}\n\t\t\t\t_shout('zoomGestureEnded');\n\t\t\t}\n\n\t\t\t_currentPoints = null;\n\t\t\tif (!_moved && !_zoomStarted && !_mainScrollAnimating && !_verticalDragInitiated) {\n\t\t\t\t// nothing to animate\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_stopAllAnimations();\n\n\t\t\tif (!_releaseAnimData) {\n\t\t\t\t_releaseAnimData = _initDragReleaseAnimationData();\n\t\t\t}\n\n\t\t\t_releaseAnimData.calculateSwipeSpeed('x');\n\n\t\t\tif (_verticalDragInitiated) {\n\n\t\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\t\tif (opacityRatio < 0.6) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else {\n\t\t\t\t\tvar initalPanY = _panOffset.y,\n\t\t\t\t\t initialBgOpacity = _bgOpacity;\n\n\t\t\t\t\t_animateProp('verticalDrag', 0, 1, 300, framework.easing.cubic.out, function (now) {\n\n\t\t\t\t\t\t_panOffset.y = (self.currItem.initialPosition.y - initalPanY) * now + initalPanY;\n\n\t\t\t\t\t\t_applyBgOpacity((1 - initialBgOpacity) * now + initialBgOpacity);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t});\n\n\t\t\t\t\t_shout('onVerticalDrag', 1);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// main scroll\n\t\t\tif ((_mainScrollShifted || _mainScrollAnimating) && numPoints === 0) {\n\t\t\t\tvar itemChanged = _finishSwipeMainScrollGesture(gestureType, _releaseAnimData);\n\t\t\t\tif (itemChanged) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tgestureType = 'zoomPointerUp';\n\t\t\t}\n\n\t\t\t// prevent zoom/pan animation when main scroll animation runs\n\t\t\tif (_mainScrollAnimating) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Complete simple zoom gesture (reset zoom level if it's out of the bounds)\n\t\t\tif (gestureType !== 'swipe') {\n\t\t\t\t_completeZoomGesture();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Complete pan gesture if main scroll is not shifted, and it's possible to pan current image\n\t\t\tif (!_mainScrollShifted && _currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t_completePanGesture(_releaseAnimData);\n\t\t\t}\n\t\t},\n\n\n\t\t// Returns object with data about gesture\n\t\t// It's created only once and then reused\n\t\t_initDragReleaseAnimationData = function () {\n\t\t\t// temp local vars\n\t\t\tvar lastFlickDuration, tempReleasePos;\n\n\t\t\t// s = this\n\t\t\tvar s = {\n\t\t\t\tlastFlickOffset: {},\n\t\t\t\tlastFlickDist: {},\n\t\t\t\tlastFlickSpeed: {},\n\t\t\t\tslowDownRatio: {},\n\t\t\t\tslowDownRatioReverse: {},\n\t\t\t\tspeedDecelerationRatio: {},\n\t\t\t\tspeedDecelerationRatioAbs: {},\n\t\t\t\tdistanceOffset: {},\n\t\t\t\tbackAnimDestination: {},\n\t\t\t\tbackAnimStarted: {},\n\t\t\t\tcalculateSwipeSpeed: function (axis) {\n\n\t\t\t\t\tif (_posPoints.length > 1) {\n\t\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureCheckSpeedTime + 50;\n\t\t\t\t\t\ttempReleasePos = _posPoints[_posPoints.length - 2][axis];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureStartTime; // total gesture duration\n\t\t\t\t\t\ttempReleasePos = _startPoint[axis];\n\t\t\t\t\t}\n\t\t\t\t\ts.lastFlickOffset[axis] = _currPoint[axis] - tempReleasePos;\n\t\t\t\t\ts.lastFlickDist[axis] = Math.abs(s.lastFlickOffset[axis]);\n\t\t\t\t\tif (s.lastFlickDist[axis] > 20) {\n\t\t\t\t\t\ts.lastFlickSpeed[axis] = s.lastFlickOffset[axis] / lastFlickDuration;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (Math.abs(s.lastFlickSpeed[axis]) < 0.1) {\n\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\ts.slowDownRatio[axis] = 0.95;\n\t\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\t\ts.speedDecelerationRatio[axis] = 1;\n\t\t\t\t},\n\n\t\t\t\tcalculateOverBoundsAnimOffset: function (axis, speed) {\n\t\t\t\t\tif (!s.backAnimStarted[axis]) {\n\n\t\t\t\t\t\tif (_panOffset[axis] > _currPanBounds.min[axis]) {\n\t\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.min[axis];\n\t\t\t\t\t\t} else if (_panOffset[axis] < _currPanBounds.max[axis]) {\n\t\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.max[axis];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (s.backAnimDestination[axis] !== undefined) {\n\t\t\t\t\t\t\ts.slowDownRatio[axis] = 0.7;\n\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\t\t\t\tif (s.speedDecelerationRatioAbs[axis] < 0.05) {\n\n\t\t\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t\t\t\ts.backAnimStarted[axis] = true;\n\n\t\t\t\t\t\t\t\t_animateProp('bounceZoomPan' + axis, _panOffset[axis], s.backAnimDestination[axis], speed || 300, framework.easing.sine.out, function (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\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// Reduces the speed by slowDownRatio (per 10ms)\n\t\t\t\tcalculateAnimOffset: function (axis) {\n\t\t\t\t\tif (!s.backAnimStarted[axis]) {\n\t\t\t\t\t\ts.speedDecelerationRatio[axis] = s.speedDecelerationRatio[axis] * (s.slowDownRatio[axis] + s.slowDownRatioReverse[axis] - s.slowDownRatioReverse[axis] * s.timeDiff / 10);\n\n\t\t\t\t\t\ts.speedDecelerationRatioAbs[axis] = Math.abs(s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis]);\n\t\t\t\t\t\ts.distanceOffset[axis] = s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis] * s.timeDiff;\n\t\t\t\t\t\t_panOffset[axis] += s.distanceOffset[axis];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tpanAnimLoop: function () {\n\t\t\t\t\tif (_animations.zoomPan) {\n\t\t\t\t\t\t_animations.zoomPan.raf = _requestAF(s.panAnimLoop);\n\n\t\t\t\t\t\ts.now = _getCurrentTime();\n\t\t\t\t\t\ts.timeDiff = s.now - s.lastNow;\n\t\t\t\t\t\ts.lastNow = s.now;\n\n\t\t\t\t\t\ts.calculateAnimOffset('x');\n\t\t\t\t\t\ts.calculateAnimOffset('y');\n\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\n\t\t\t\t\t\ts.calculateOverBoundsAnimOffset('x');\n\t\t\t\t\t\ts.calculateOverBoundsAnimOffset('y');\n\n\t\t\t\t\t\tif (s.speedDecelerationRatioAbs.x < 0.05 && s.speedDecelerationRatioAbs.y < 0.05) {\n\n\t\t\t\t\t\t\t// round pan position\n\t\t\t\t\t\t\t_panOffset.x = Math.round(_panOffset.x);\n\t\t\t\t\t\t\t_panOffset.y = Math.round(_panOffset.y);\n\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\n\t\t\t\t\t\t\t_stopAnimation('zoomPan');\n\t\t\t\t\t\t\treturn;\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\treturn s;\n\t\t},\n\t\t _completePanGesture = function (animData) {\n\t\t\t// calculate swipe speed for Y axis (paanning)\n\t\t\tanimData.calculateSwipeSpeed('y');\n\n\t\t\t_currPanBounds = self.currItem.bounds;\n\n\t\t\tanimData.backAnimDestination = {};\n\t\t\tanimData.backAnimStarted = {};\n\n\t\t\t// Avoid acceleration animation if speed is too low\n\t\t\tif (Math.abs(animData.lastFlickSpeed.x) <= 0.05 && Math.abs(animData.lastFlickSpeed.y) <= 0.05) {\n\t\t\t\tanimData.speedDecelerationRatioAbs.x = animData.speedDecelerationRatioAbs.y = 0;\n\n\t\t\t\t// Run pan drag release animation. E.g. if you drag image and release finger without momentum.\n\t\t\t\tanimData.calculateOverBoundsAnimOffset('x');\n\t\t\t\tanimData.calculateOverBoundsAnimOffset('y');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Animation loop that controls the acceleration after pan gesture ends\n\t\t\t_registerStartAnimation('zoomPan');\n\t\t\tanimData.lastNow = _getCurrentTime();\n\t\t\tanimData.panAnimLoop();\n\t\t},\n\t\t _finishSwipeMainScrollGesture = function (gestureType, _releaseAnimData) {\n\t\t\tvar itemChanged;\n\t\t\tif (!_mainScrollAnimating) {\n\t\t\t\t_currZoomedItemIndex = _currentItemIndex;\n\t\t\t}\n\n\t\t\tvar itemsDiff;\n\n\t\t\tif (gestureType === 'swipe') {\n\t\t\t\tvar totalShiftDist = _currPoint.x - _startPoint.x,\n\t\t\t\t isFastLastFlick = _releaseAnimData.lastFlickDist.x < 10;\n\n\t\t\t\t// if container is shifted for more than MIN_SWIPE_DISTANCE,\n\t\t\t\t// and last flick gesture was in right direction\n\t\t\t\tif (totalShiftDist > MIN_SWIPE_DISTANCE && (isFastLastFlick || _releaseAnimData.lastFlickOffset.x > 20)) {\n\t\t\t\t\t// go to prev item\n\t\t\t\t\titemsDiff = -1;\n\t\t\t\t} else if (totalShiftDist < -MIN_SWIPE_DISTANCE && (isFastLastFlick || _releaseAnimData.lastFlickOffset.x < -20)) {\n\t\t\t\t\t// go to next item\n\t\t\t\t\titemsDiff = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar nextCircle;\n\n\t\t\tif (itemsDiff) {\n\n\t\t\t\t_currentItemIndex += itemsDiff;\n\n\t\t\t\tif (_currentItemIndex < 0) {\n\t\t\t\t\t_currentItemIndex = _options.loop ? _getNumItems() - 1 : 0;\n\t\t\t\t\tnextCircle = true;\n\t\t\t\t} else if (_currentItemIndex >= _getNumItems()) {\n\t\t\t\t\t_currentItemIndex = _options.loop ? 0 : _getNumItems() - 1;\n\t\t\t\t\tnextCircle = true;\n\t\t\t\t}\n\n\t\t\t\tif (!nextCircle || _options.loop) {\n\t\t\t\t\t_indexDiff += itemsDiff;\n\t\t\t\t\t_currPositionIndex -= itemsDiff;\n\t\t\t\t\titemChanged = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar animateToX = _slideSize.x * _currPositionIndex;\n\t\t\tvar animateToDist = Math.abs(animateToX - _mainScrollPos.x);\n\t\t\tvar finishAnimDuration;\n\n\t\t\tif (!itemChanged && animateToX > _mainScrollPos.x !== _releaseAnimData.lastFlickSpeed.x > 0) {\n\t\t\t\t// \"return to current\" duration, e.g. when dragging from slide 0 to -1\n\t\t\t\tfinishAnimDuration = 333;\n\t\t\t} else {\n\t\t\t\tfinishAnimDuration = Math.abs(_releaseAnimData.lastFlickSpeed.x) > 0 ? animateToDist / Math.abs(_releaseAnimData.lastFlickSpeed.x) : 333;\n\n\t\t\t\tfinishAnimDuration = Math.min(finishAnimDuration, 400);\n\t\t\t\tfinishAnimDuration = Math.max(finishAnimDuration, 250);\n\t\t\t}\n\n\t\t\tif (_currZoomedItemIndex === _currentItemIndex) {\n\t\t\t\titemChanged = false;\n\t\t\t}\n\n\t\t\t_mainScrollAnimating = true;\n\n\t\t\t_animateProp('mainScroll', _mainScrollPos.x, animateToX, finishAnimDuration, framework.easing.cubic.out, _moveMainScroll, function () {\n\t\t\t\t_stopAllAnimations();\n\t\t\t\t_mainScrollAnimating = false;\n\t\t\t\t_currZoomedItemIndex = -1;\n\n\t\t\t\tif (itemChanged || _currZoomedItemIndex !== _currentItemIndex) {\n\t\t\t\t\tself.updateCurrItem();\n\t\t\t\t}\n\n\t\t\t\t_shout('mainScrollAnimComplete');\n\t\t\t});\n\n\t\t\tif (itemChanged) {\n\t\t\t\tself.updateCurrItem(true);\n\t\t\t}\n\n\t\t\treturn itemChanged;\n\t\t},\n\t\t _calculateZoomLevel = function (touchesDistance) {\n\t\t\treturn 1 / _startPointsDistance * touchesDistance * _startZoomLevel;\n\t\t},\n\n\n\t\t// Resets zoom if it's out of bounds\n\t\t_completeZoomGesture = function () {\n\t\t\tvar destZoomLevel = _currZoomLevel,\n\t\t\t minZoomLevel = _getMinZoomLevel(),\n\t\t\t maxZoomLevel = _getMaxZoomLevel();\n\n\t\t\tif (_currZoomLevel < minZoomLevel) {\n\t\t\t\tdestZoomLevel = minZoomLevel;\n\t\t\t} else if (_currZoomLevel > maxZoomLevel) {\n\t\t\t\tdestZoomLevel = maxZoomLevel;\n\t\t\t}\n\n\t\t\tvar destOpacity = 1,\n\t\t\t onUpdate,\n\t\t\t initialOpacity = _bgOpacity;\n\n\t\t\tif (_opacityChanged && !_isZoomingIn && !_wasOverInitialZoom && _currZoomLevel < minZoomLevel) {\n\t\t\t\t//_closedByScroll = true;\n\t\t\t\tself.close();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (_opacityChanged) {\n\t\t\t\tonUpdate = function (now) {\n\n\t\t\t\t\t_applyBgOpacity((destOpacity - initialOpacity) * now + initialOpacity);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tself.zoomTo(destZoomLevel, 0, 300, framework.easing.cubic.out, onUpdate);\n\t\t\treturn true;\n\t\t};\n\n\t\t_registerModule('Gestures', {\n\t\t\tpublicMethods: {\n\n\t\t\t\tinitGestures: function () {\n\n\t\t\t\t\t// helper function that builds touch/pointer/mouse events\n\t\t\t\t\tvar addEventNames = function (pref, down, move, up, cancel) {\n\t\t\t\t\t\t_dragStartEvent = pref + down;\n\t\t\t\t\t\t_dragMoveEvent = pref + move;\n\t\t\t\t\t\t_dragEndEvent = pref + up;\n\t\t\t\t\t\tif (cancel) {\n\t\t\t\t\t\t\t_dragCancelEvent = pref + cancel;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_dragCancelEvent = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t_pointerEventEnabled = _features.pointerEvent;\n\t\t\t\t\tif (_pointerEventEnabled && _features.touch) {\n\t\t\t\t\t\t// we don't need touch events, if browser supports pointer events\n\t\t\t\t\t\t_features.touch = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_pointerEventEnabled) {\n\t\t\t\t\t\tif (navigator.pointerEnabled) {\n\t\t\t\t\t\t\taddEventNames('pointer', 'down', 'move', 'up', 'cancel');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// IE10 pointer events are case-sensitive\n\t\t\t\t\t\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (_features.touch) {\n\t\t\t\t\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t\t\t\t\t\t_likelyTouchDevice = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddEventNames('mouse', 'down', 'move', 'up');\n\t\t\t\t\t}\n\n\t\t\t\t\t_upMoveEvents = _dragMoveEvent + ' ' + _dragEndEvent + ' ' + _dragCancelEvent;\n\t\t\t\t\t_downEvents = _dragStartEvent;\n\n\t\t\t\t\tif (_pointerEventEnabled && !_likelyTouchDevice) {\n\t\t\t\t\t\t_likelyTouchDevice = navigator.maxTouchPoints > 1 || navigator.msMaxTouchPoints > 1;\n\t\t\t\t\t}\n\t\t\t\t\t// make variable public\n\t\t\t\t\tself.likelyTouchDevice = _likelyTouchDevice;\n\n\t\t\t\t\t_globalEventHandlers[_dragStartEvent] = _onDragStart;\n\t\t\t\t\t_globalEventHandlers[_dragMoveEvent] = _onDragMove;\n\t\t\t\t\t_globalEventHandlers[_dragEndEvent] = _onDragRelease; // the Kraken\n\n\t\t\t\t\tif (_dragCancelEvent) {\n\t\t\t\t\t\t_globalEventHandlers[_dragCancelEvent] = _globalEventHandlers[_dragEndEvent];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Bind mouse events on device with detected hardware touch support, in case it supports multiple types of input.\n\t\t\t\t\tif (_features.touch) {\n\t\t\t\t\t\t_downEvents += ' mousedown';\n\t\t\t\t\t\t_upMoveEvents += ' mousemove mouseup';\n\t\t\t\t\t\t_globalEventHandlers.mousedown = _globalEventHandlers[_dragStartEvent];\n\t\t\t\t\t\t_globalEventHandlers.mousemove = _globalEventHandlers[_dragMoveEvent];\n\t\t\t\t\t\t_globalEventHandlers.mouseup = _globalEventHandlers[_dragEndEvent];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_likelyTouchDevice) {\n\t\t\t\t\t\t// don't allow pan to next slide from zoomed state on Desktop\n\t\t\t\t\t\t_options.allowPanToNext = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\n\t\t/*>>gestures*/\n\n\t\t/*>>show-hide-transition*/\n\t\t/**\r\n * show-hide-transition.js:\r\n *\r\n * Manages initial opening or closing transition.\r\n *\r\n * If you're not planning to use transition for gallery at all,\r\n * you may set options hideAnimationDuration and showAnimationDuration to 0,\r\n * and just delete startAnimation function.\r\n *\r\n */\n\n\t\tvar _showOrHideTimeout,\n\t\t _showOrHide = function (item, img, out, completeFn) {\n\n\t\t\tif (_showOrHideTimeout) {\n\t\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t\t}\n\n\t\t\t_initialZoomRunning = true;\n\t\t\t_initialContentSet = true;\n\n\t\t\t// dimensions of small thumbnail {x:,y:,w:}.\n\t\t\t// Height is optional, as calculated based on large image.\n\t\t\tvar thumbBounds;\n\t\t\tif (item.initialLayout) {\n\t\t\t\tthumbBounds = item.initialLayout;\n\t\t\t\titem.initialLayout = null;\n\t\t\t} else {\n\t\t\t\tthumbBounds = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t\t}\n\n\t\t\tvar duration = out ? _options.hideAnimationDuration : _options.showAnimationDuration;\n\n\t\t\tvar onComplete = function () {\n\t\t\t\t_stopAnimation('initialZoom');\n\t\t\t\tif (!out) {\n\t\t\t\t\t_applyBgOpacity(1);\n\t\t\t\t\tif (img) {\n\t\t\t\t\t\timg.style.display = 'block';\n\t\t\t\t\t}\n\t\t\t\t\tframework.addClass(template, 'pswp--animated-in');\n\t\t\t\t\t_shout('initialZoom' + (out ? 'OutEnd' : 'InEnd'));\n\t\t\t\t} else {\n\t\t\t\t\tself.template.removeAttribute('style');\n\t\t\t\t\tself.bg.removeAttribute('style');\n\t\t\t\t}\n\n\t\t\t\tif (completeFn) {\n\t\t\t\t\tcompleteFn();\n\t\t\t\t}\n\t\t\t\t_initialZoomRunning = false;\n\t\t\t};\n\n\t\t\t// if bounds aren't provided, just open gallery without animation\n\t\t\tif (!duration || !thumbBounds || thumbBounds.x === undefined) {\n\n\t\t\t\tvar finishWithoutAnimation = function () {\n\t\t\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In'));\n\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\n\t\t\t\t\t// no transition\n\t\t\t\t\ttemplate.style.opacity = out ? 0 : 1;\n\t\t\t\t\t_applyBgOpacity(1);\n\n\t\t\t\t\tonComplete();\n\t\t\t\t};\n\t\t\t\tfinishWithoutAnimation();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar startAnimation = function () {\n\t\t\t\tvar closeWithRaf = _closedByScroll,\n\t\t\t\t fadeEverything = !self.currItem.src || self.currItem.loadError || _options.showHideOpacity;\n\n\t\t\t\t// apply hw-acceleration to image\n\t\t\t\tif (item.miniImg) {\n\t\t\t\t\titem.miniImg.style.webkitBackfaceVisibility = 'hidden';\n\t\t\t\t}\n\n\t\t\t\tif (!out) {\n\t\t\t\t\t_currZoomLevel = thumbBounds.w / item.w;\n\t\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t\t_panOffset.y = thumbBounds.y - _initalWindowScrollY;\n\n\t\t\t\t\tself[fadeEverything ? 'template' : 'bg'].style.opacity = 0.001;\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t}\n\n\t\t\t\t_registerStartAnimation('initialZoom');\n\n\t\t\t\tif (out && !closeWithRaf) {\n\t\t\t\t\tframework.removeClass(template, 'pswp--animated-in');\n\t\t\t\t}\n\n\t\t\t\tif (fadeEverything) {\n\t\t\t\t\tif (out) {\n\t\t\t\t\t\tframework[(closeWithRaf ? 'remove' : 'add') + 'Class'](template, 'pswp--animate_opacity');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tframework.addClass(template, 'pswp--animate_opacity');\n\t\t\t\t\t\t}, 30);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_showOrHideTimeout = setTimeout(function () {\n\n\t\t\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In'));\n\n\t\t\t\t\tif (!out) {\n\n\t\t\t\t\t\t// \"in\" animation always uses CSS transitions (instead of rAF).\n\t\t\t\t\t\t// CSS transition work faster here,\n\t\t\t\t\t\t// as developer may also want to animate other things,\n\t\t\t\t\t\t// like ui on top of sliding area, which can be animated just via CSS\n\n\t\t\t\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t\t\t\t_equalizePoints(_panOffset, item.initialPosition);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t_applyBgOpacity(1);\n\n\t\t\t\t\t\tif (fadeEverything) {\n\t\t\t\t\t\t\ttemplate.style.opacity = 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_applyBgOpacity(1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t\t} else {\n\n\t\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\t\tvar destZoomLevel = thumbBounds.w / item.w,\n\t\t\t\t\t\t initialPanOffset = {\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\t initialZoomLevel = _currZoomLevel,\n\t\t\t\t\t\t scrollY = _initalWindowScrollY,\n\t\t\t\t\t\t initalBgOpacity = _bgOpacity,\n\t\t\t\t\t\t onUpdate = function (now) {\n\t\t\t\t\t\t\tif (_scrollChanged) {\n\t\t\t\t\t\t\t\tscrollY = framework.getScrollY();\n\t\t\t\t\t\t\t\t_scrollChanged = false;\n\t\t\t\t\t\t\t}\n\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 - scrollY;\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 - scrollY - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t\t\t\t\t}\n\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\t\tif (closeWithRaf) {\n\t\t\t\t\t\t\t_animateProp('initialZoom', 0, 1, duration, framework.easing.cubic.out, onUpdate, onComplete);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonUpdate(1);\n\t\t\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, out ? 25 : 90); // Main purpose of this delay is to give browser time to paint and\n\t\t\t\t// create composite layers of PhotoSwipe UI parts (background, controls, caption, arrows).\n\t\t\t\t// Which avoids lag at the beginning of scale transition.\n\t\t\t};\n\t\t\tstartAnimation();\n\t\t};\n\n\t\t/*>>show-hide-transition*/\n\n\t\t/*>>items-controller*/\n\t\t/**\r\n *\r\n * Controller manages gallery items, their dimensions, and their content.\r\n *\r\n */\n\n\t\tvar _items,\n\t\t _tempPanAreaSize = {},\n\t\t _imagesToAppendPool = [],\n\t\t _initialContentSet,\n\t\t _initialZoomRunning,\n\t\t _controllerDefaultOptions = {\n\t\t\tindex: 0,\n\t\t\terrorMsg: '
The image could not be loaded.
',\n\t\t\tforceProgressiveLoading: false, // TODO\n\t\t\tpreload: [1, 1],\n\t\t\tgetNumItemsFn: function () {\n\t\t\t\treturn _items.length;\n\t\t\t}\n\t\t};\n\n\t\tvar _getItemAt,\n\t\t _getNumItems,\n\t\t _initialIsLoop,\n\t\t _getZeroBounds = function () {\n\t\t\treturn {\n\t\t\t\tcenter: { x: 0, y: 0 },\n\t\t\t\tmax: { x: 0, y: 0 },\n\t\t\t\tmin: { x: 0, y: 0 }\n\t\t\t};\n\t\t},\n\t\t _calculateSingleItemPanBounds = function (item, realPanElementW, realPanElementH) {\n\t\t\tvar bounds = item.bounds;\n\n\t\t\t// position of element when it's centered\n\t\t\tbounds.center.x = Math.round((_tempPanAreaSize.x - realPanElementW) / 2);\n\t\t\tbounds.center.y = Math.round((_tempPanAreaSize.y - realPanElementH) / 2) + item.vGap.top;\n\n\t\t\t// maximum pan position\n\t\t\tbounds.max.x = realPanElementW > _tempPanAreaSize.x ? Math.round(_tempPanAreaSize.x - realPanElementW) : bounds.center.x;\n\n\t\t\tbounds.max.y = realPanElementH > _tempPanAreaSize.y ? Math.round(_tempPanAreaSize.y - realPanElementH) + item.vGap.top : bounds.center.y;\n\n\t\t\t// minimum pan position\n\t\t\tbounds.min.x = realPanElementW > _tempPanAreaSize.x ? 0 : bounds.center.x;\n\t\t\tbounds.min.y = realPanElementH > _tempPanAreaSize.y ? item.vGap.top : bounds.center.y;\n\t\t},\n\t\t _calculateItemSize = function (item, viewportSize, zoomLevel) {\n\n\t\t\tif (item.src && !item.loadError) {\n\t\t\t\tvar isInitial = !zoomLevel;\n\n\t\t\t\tif (isInitial) {\n\t\t\t\t\tif (!item.vGap) {\n\t\t\t\t\t\titem.vGap = { top: 0, bottom: 0 };\n\t\t\t\t\t}\n\t\t\t\t\t// allows overriding vertical margin for individual items\n\t\t\t\t\t_shout('parseVerticalMargin', item);\n\t\t\t\t}\n\n\t\t\t\t_tempPanAreaSize.x = viewportSize.x;\n\t\t\t\t_tempPanAreaSize.y = viewportSize.y - item.vGap.top - item.vGap.bottom;\n\n\t\t\t\tif (isInitial) {\n\t\t\t\t\tvar hRatio = _tempPanAreaSize.x / item.w;\n\t\t\t\t\tvar vRatio = _tempPanAreaSize.y / item.h;\n\n\t\t\t\t\titem.fitRatio = hRatio < vRatio ? hRatio : vRatio;\n\t\t\t\t\t//item.fillRatio = hRatio > vRatio ? hRatio : vRatio;\n\n\t\t\t\t\tvar scaleMode = _options.scaleMode;\n\n\t\t\t\t\tif (scaleMode === 'orig') {\n\t\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t\t} else if (scaleMode === 'fit') {\n\t\t\t\t\t\tzoomLevel = item.fitRatio;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zoomLevel > 1) {\n\t\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\titem.initialZoomLevel = zoomLevel;\n\n\t\t\t\t\tif (!item.bounds) {\n\t\t\t\t\t\t// reuse bounds object\n\t\t\t\t\t\titem.bounds = _getZeroBounds();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!zoomLevel) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_calculateSingleItemPanBounds(item, item.w * zoomLevel, item.h * zoomLevel);\n\n\t\t\t\tif (isInitial && zoomLevel === item.initialZoomLevel) {\n\t\t\t\t\titem.initialPosition = item.bounds.center;\n\t\t\t\t}\n\n\t\t\t\treturn item.bounds;\n\t\t\t} else {\n\t\t\t\titem.w = item.h = 0;\n\t\t\t\titem.initialZoomLevel = item.fitRatio = 1;\n\t\t\t\titem.bounds = _getZeroBounds();\n\t\t\t\titem.initialPosition = item.bounds.center;\n\n\t\t\t\t// if it's not image, we return zero bounds (content is not zoomable)\n\t\t\t\treturn item.bounds;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t _appendImage = function (index, item, baseDiv, img, preventAnimation, keepPlaceholder) {\n\n\t\t\tif (item.loadError) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar animate,\n\t\t\t isSwiping = self.isDragging() && !self.isZooming(),\n\t\t\t slideMightBeVisible = index === _currentItemIndex || self.isMainScrollAnimating() || isSwiping;\n\n\t\t\t// fade in loaded image only when current holder is active, or might be visible\n\t\t\tif (!preventAnimation && (_likelyTouchDevice || _options.alwaysFadeIn) && slideMightBeVisible) {\n\t\t\t\tanimate = true;\n\t\t\t}\n\n\t\t\tif (img) {\n\t\t\t\tif (animate) {\n\t\t\t\t\timg.style.opacity = 0;\n\t\t\t\t}\n\n\t\t\t\titem.imageAppended = true;\n\n\t\t\t\tbaseDiv.appendChild(img);\n\n\t\t\t\tif (animate) {\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\timg.style.opacity = 1;\n\t\t\t\t\t\tif (keepPlaceholder) {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t// hide image placeholder \"behind\"\n\t\t\t\t\t\t\t\tif (item && item.loaded && item.placeholder) {\n\t\t\t\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t _preloadImage = function (item) {\n\t\t\titem.loading = true;\n\t\t\titem.loaded = false;\n\t\t\tvar img = item.img = framework.createEl('pswp__img', 'img');\n\t\t\tvar onComplete = function () {\n\t\t\t\titem.loading = false;\n\t\t\t\titem.loaded = true;\n\n\t\t\t\tif (item.loadComplete) {\n\t\t\t\t\titem.loadComplete(item);\n\t\t\t\t} else {\n\t\t\t\t\titem.img = null; // no need to store image object\n\t\t\t\t}\n\t\t\t\timg.onload = img.onerror = null;\n\t\t\t\timg = null;\n\t\t\t};\n\t\t\timg.onload = onComplete;\n\t\t\timg.onerror = function () {\n\t\t\t\titem.loadError = true;\n\t\t\t\tonComplete();\n\t\t\t};\n\n\t\t\timg.src = item.src; // + '?a=' + Math.random();\n\n\t\t\treturn img;\n\t\t},\n\t\t _checkForError = function (item, cleanUp) {\n\t\t\tif (item.src && item.loadError && item.container) {\n\n\t\t\t\tif (cleanUp) {\n\t\t\t\t\titem.container.innerHTML = '';\n\t\t\t\t}\n\n\t\t\t\titem.container.innerHTML = _options.errorMsg.replace('%url%', item.src);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t _appendImagesPool = function () {\n\n\t\t\tif (_imagesToAppendPool.length) {\n\t\t\t\tvar poolItem;\n\n\t\t\t\tfor (var i = 0; i < _imagesToAppendPool.length; i++) {\n\t\t\t\t\tpoolItem = _imagesToAppendPool[i];\n\t\t\t\t\tif (poolItem.holder.index === poolItem.index) {\n\t\t\t\t\t\t_appendImage(poolItem.index, poolItem.item, poolItem.baseDiv, poolItem.img);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_imagesToAppendPool = [];\n\t\t\t}\n\t\t};\n\n\t\t_registerModule('Controller', {\n\n\t\t\tpublicMethods: {\n\n\t\t\t\tlazyLoadItem: function (index) {\n\t\t\t\t\tindex = _getLoopedId(index);\n\t\t\t\t\tvar item = _getItemAt(index);\n\n\t\t\t\t\tif (!item || !item.src || item.loaded || item.loading) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t_shout('gettingData', index, item);\n\t\t\t\t\t_preloadImage(item);\n\t\t\t\t},\n\t\t\t\tinitController: function () {\n\t\t\t\t\tframework.extend(_options, _controllerDefaultOptions, true);\n\t\t\t\t\tself.items = _items = items;\n\t\t\t\t\t_getItemAt = self.getItemAt;\n\t\t\t\t\t_getNumItems = _options.getNumItemsFn; //self.getNumItems;\n\n\n\t\t\t\t\t_initialIsLoop = _options.loop;\n\t\t\t\t\tif (_getNumItems() < 3) {\n\t\t\t\t\t\t_options.loop = false; // disable loop if less then 3 items\n\t\t\t\t\t}\n\n\t\t\t\t\t_listen('beforeChange', function (diff) {\n\n\t\t\t\t\t\tvar p = _options.preload,\n\t\t\t\t\t\t isNext = diff === null ? true : diff > 0,\n\t\t\t\t\t\t preloadBefore = Math.min(p[0], _getNumItems()),\n\t\t\t\t\t\t preloadAfter = Math.min(p[1], _getNumItems()),\n\t\t\t\t\t\t i;\n\n\t\t\t\t\t\tfor (i = 1; i <= (isNext ? preloadAfter : preloadBefore); i++) {\n\t\t\t\t\t\t\tself.lazyLoadItem(_currentItemIndex + i);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (i = 1; i <= (isNext ? preloadBefore : preloadAfter); i++) {\n\t\t\t\t\t\t\tself.lazyLoadItem(_currentItemIndex - i);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t_listen('initialLayout', function () {\n\t\t\t\t\t\tself.currItem.initialLayout = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t\t\t\t});\n\n\t\t\t\t\t_listen('mainScrollAnimComplete', _appendImagesPool);\n\t\t\t\t\t_listen('initialZoomInEnd', _appendImagesPool);\n\n\t\t\t\t\t_listen('destroy', function () {\n\t\t\t\t\t\tvar item;\n\t\t\t\t\t\tfor (var i = 0; i < _items.length; i++) {\n\t\t\t\t\t\t\titem = _items[i];\n\t\t\t\t\t\t\t// remove reference to DOM elements, for GC\n\t\t\t\t\t\t\tif (item.container) {\n\t\t\t\t\t\t\t\titem.container = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.placeholder) {\n\t\t\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.img) {\n\t\t\t\t\t\t\t\titem.img = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.preloader) {\n\t\t\t\t\t\t\t\titem.preloader = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.loadError) {\n\t\t\t\t\t\t\t\titem.loaded = item.loadError = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_imagesToAppendPool = null;\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tgetItemAt: function (index) {\n\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\treturn _items[index] !== undefined ? _items[index] : false;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\n\t\t\t\tallowProgressiveImg: function () {\n\t\t\t\t\t// 1. Progressive image loading isn't working on webkit/blink\n\t\t\t\t\t// when hw-acceleration (e.g. translateZ) is applied to IMG element.\n\t\t\t\t\t// That's why in PhotoSwipe parent element gets zoom transform, not image itself.\n\t\t\t\t\t//\n\t\t\t\t\t// 2. Progressive image loading sometimes blinks in webkit/blink when applying animation to parent element.\n\t\t\t\t\t// That's why it's disabled on touch devices (mainly because of swipe transition)\n\t\t\t\t\t//\n\t\t\t\t\t// 3. Progressive image loading sometimes doesn't work in IE (up to 11).\n\n\t\t\t\t\t// Don't allow progressive loading on non-large touch devices\n\t\t\t\t\treturn _options.forceProgressiveLoading || !_likelyTouchDevice || _options.mouseUsed || screen.width > 1200;\n\t\t\t\t\t// 1200 - to eliminate touch devices with large screen (like Chromebook Pixel)\n\t\t\t\t},\n\n\t\t\t\tsetContent: function (holder, index) {\n\n\t\t\t\t\t//console.log(holder.el);\n\n\t\t\t\t\tif (_options.loop) {\n\t\t\t\t\t\tindex = _getLoopedId(index);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar prevItem = self.getItemAt(holder.index);\n\t\t\t\t\tif (prevItem) {\n\t\t\t\t\t\tprevItem.container = null;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar item = self.getItemAt(index),\n\t\t\t\t\t img;\n\n\t\t\t\t\tif (!item) {\n\t\t\t\t\t\tholder.el.innerHTML = '';\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// allow to override data\n\t\t\t\t\t_shout('gettingData', index, item);\n\n\t\t\t\t\tholder.index = index;\n\t\t\t\t\tholder.item = item;\n\n\t\t\t\t\t// base container DIV is created only once for each of 3 holders\n\t\t\t\t\tvar baseDiv = item.container = framework.createEl('pswp__zoom-wrap');\n\n\t\t\t\t\tif (!item.src && item.html) {\n\t\t\t\t\t\tif (item.html.tagName) {\n\t\t\t\t\t\t\tbaseDiv.appendChild(item.html);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbaseDiv.innerHTML = item.html;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t_checkForError(item);\n\n\t\t\t\t\tif (item.src && !item.loadError && !item.loaded) {\n\n\t\t\t\t\t\titem.loadComplete = function (item) {\n\n\t\t\t\t\t\t\t// gallery closed before image finished loading\n\t\t\t\t\t\t\tif (!_isOpen) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Apply hw-acceleration only after image is loaded.\n\t\t\t\t\t\t\t// This is webkit progressive image loading bugfix.\n\t\t\t\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=108630\n\t\t\t\t\t\t\t// https://code.google.com/p/chromium/issues/detail?id=404547\n\t\t\t\t\t\t\titem.img.style.webkitBackfaceVisibility = 'hidden';\n\n\t\t\t\t\t\t\t// check if holder hasn't changed while image was loading\n\t\t\t\t\t\t\tif (holder && holder.index === index) {\n\t\t\t\t\t\t\t\tif (_checkForError(item, true)) {\n\t\t\t\t\t\t\t\t\titem.loadComplete = item.img = null;\n\t\t\t\t\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t\t\t\t\t_applyZoomPanToItem(item);\n\n\t\t\t\t\t\t\t\t\tif (holder.index === _currentItemIndex) {\n\t\t\t\t\t\t\t\t\t\t// recalculate dimensions\n\t\t\t\t\t\t\t\t\t\tself.updateCurrZoomItem();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (!item.imageAppended) {\n\t\t\t\t\t\t\t\t\tif (_features.transform && (_mainScrollAnimating || _initialZoomRunning)) {\n\t\t\t\t\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\t\t\t\t\titem: item,\n\t\t\t\t\t\t\t\t\t\t\tbaseDiv: baseDiv,\n\t\t\t\t\t\t\t\t\t\t\timg: item.img,\n\t\t\t\t\t\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\t\t\t\t\t\tholder: holder\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, _mainScrollAnimating || _initialZoomRunning);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// remove preloader & mini-img\n\t\t\t\t\t\t\t\t\tif (!_initialZoomRunning && item.placeholder) {\n\t\t\t\t\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t\t\t\t\t}\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\titem.loadComplete = null;\n\t\t\t\t\t\t\titem.img = null; // no need to store image element after it's added\n\n\t\t\t\t\t\t\t_shout('imageLoadComplete', index, item);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (framework.features.transform) {\n\n\t\t\t\t\t\t\tvar placeholderClassName = 'pswp__img pswp__img--placeholder';\n\t\t\t\t\t\t\tplaceholderClassName += item.msrc ? '' : ' pswp__img--placeholder--blank';\n\n\t\t\t\t\t\t\tvar placeholder = framework.createEl(placeholderClassName, item.msrc ? 'img' : '');\n\t\t\t\t\t\t\tif (item.msrc) {\n\t\t\t\t\t\t\t\tplaceholder.src = item.msrc;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tplaceholder.style.width = item.w + 'px';\n\t\t\t\t\t\t\tplaceholder.style.height = item.h + 'px';\n\n\t\t\t\t\t\t\tbaseDiv.appendChild(placeholder);\n\t\t\t\t\t\t\titem.placeholder = placeholder;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!item.loading) {\n\t\t\t\t\t\t\t_preloadImage(item);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.allowProgressiveImg()) {\n\t\t\t\t\t\t\t// just append image\n\t\t\t\t\t\t\tif (!_initialContentSet && _features.transform) {\n\t\t\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\t\t\titem: item,\n\t\t\t\t\t\t\t\t\tbaseDiv: baseDiv,\n\t\t\t\t\t\t\t\t\timg: item.img,\n\t\t\t\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\t\t\t\tholder: holder\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, true, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (item.src && !item.loadError) {\n\t\t\t\t\t\t// image object is created every time, due to bugs of image loading & delay when switching images\n\t\t\t\t\t\timg = framework.createEl('pswp__img', 'img');\n\t\t\t\t\t\timg.style.webkitBackfaceVisibility = 'hidden';\n\t\t\t\t\t\timg.style.opacity = 1;\n\t\t\t\t\t\timg.src = item.src;\n\t\t\t\t\t\t_appendImage(index, item, baseDiv, img, true);\n\t\t\t\t\t}\n\n\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\n\t\t\t\t\tif (!_initialContentSet && index === _currentItemIndex) {\n\t\t\t\t\t\t_currZoomElementStyle = baseDiv.style;\n\t\t\t\t\t\t_showOrHide(item, img || item.img);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_applyZoomPanToItem(item);\n\t\t\t\t\t}\n\n\t\t\t\t\tholder.el.innerHTML = '';\n\t\t\t\t\tholder.el.appendChild(baseDiv);\n\t\t\t\t},\n\n\t\t\t\tcleanSlide: function (item) {\n\t\t\t\t\tif (item.img) {\n\t\t\t\t\t\titem.img.onload = item.img.onerror = null;\n\t\t\t\t\t}\n\t\t\t\t\titem.loaded = item.loading = item.img = item.imageAppended = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\n\t\t/*>>items-controller*/\n\n\t\t/*>>tap*/\n\t\t/**\r\n * tap.js:\r\n *\r\n * Displatches tap and double-tap events.\r\n *\r\n */\n\n\t\tvar tapTimer,\n\t\t tapReleasePoint = {},\n\t\t _dispatchTapEvent = function (origEvent, releasePoint, pointerType) {\n\t\t\tvar e = document.createEvent('CustomEvent'),\n\t\t\t eDetail = {\n\t\t\t\torigEvent: origEvent,\n\t\t\t\ttarget: origEvent.target,\n\t\t\t\treleasePoint: releasePoint,\n\t\t\t\tpointerType: pointerType || 'touch'\n\t\t\t};\n\n\t\t\te.initCustomEvent('pswpTap', true, true, eDetail);\n\t\t\torigEvent.target.dispatchEvent(e);\n\t\t};\n\n\t\t_registerModule('Tap', {\n\t\t\tpublicMethods: {\n\t\t\t\tinitTap: function () {\n\t\t\t\t\t_listen('firstTouchStart', self.onTapStart);\n\t\t\t\t\t_listen('touchRelease', self.onTapRelease);\n\t\t\t\t\t_listen('destroy', function () {\n\t\t\t\t\t\ttapReleasePoint = {};\n\t\t\t\t\t\ttapTimer = null;\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonTapStart: function (touchList) {\n\t\t\t\t\tif (touchList.length > 1) {\n\t\t\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\t\t\ttapTimer = null;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonTapRelease: function (e, releasePoint) {\n\t\t\t\t\tif (!releasePoint) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_moved && !_isMultitouch && !_numAnimations) {\n\t\t\t\t\t\tvar p0 = releasePoint;\n\t\t\t\t\t\tif (tapTimer) {\n\t\t\t\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\t\t\t\ttapTimer = null;\n\n\t\t\t\t\t\t\t// Check if taped on the same place\n\t\t\t\t\t\t\tif (_isNearbyPoints(p0, tapReleasePoint)) {\n\t\t\t\t\t\t\t\t_shout('doubleTap', p0);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (releasePoint.type === 'mouse') {\n\t\t\t\t\t\t\t_dispatchTapEvent(e, releasePoint, 'mouse');\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar clickedTagName = e.target.tagName.toUpperCase();\n\t\t\t\t\t\t// avoid double tap delay on buttons and elements that have class pswp__single-tap\n\t\t\t\t\t\tif (clickedTagName === 'BUTTON' || framework.hasClass(e.target, 'pswp__single-tap')) {\n\t\t\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_equalizePoints(tapReleasePoint, p0);\n\n\t\t\t\t\t\ttapTimer = setTimeout(function () {\n\t\t\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\t\t\ttapTimer = null;\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/*>>tap*/\n\n\t\t/*>>desktop-zoom*/\n\t\t/**\r\n *\r\n * desktop-zoom.js:\r\n *\r\n * - Binds mousewheel event for paning zoomed image.\r\n * - Manages \"dragging\", \"zoomed-in\", \"zoom-out\" classes.\r\n * (which are used for cursors and zoom icon)\r\n * - Adds toggleDesktopZoom function.\r\n *\r\n */\n\n\t\tvar _wheelDelta;\n\n\t\t_registerModule('DesktopZoom', {\n\n\t\t\tpublicMethods: {\n\n\t\t\t\tinitDesktopZoom: function () {\n\n\t\t\t\t\tif (_oldIE) {\n\t\t\t\t\t\t// no zoom for old IE (<=8)\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_likelyTouchDevice) {\n\t\t\t\t\t\t// if detected hardware touch support, we wait until mouse is used,\n\t\t\t\t\t\t// and only then apply desktop-zoom features\n\t\t\t\t\t\t_listen('mouseUsed', function () {\n\t\t\t\t\t\t\tself.setupDesktopZoom();\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.setupDesktopZoom(true);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tsetupDesktopZoom: function (onInit) {\n\n\t\t\t\t\t_wheelDelta = {};\n\n\t\t\t\t\tvar events = 'wheel mousewheel DOMMouseScroll';\n\n\t\t\t\t\t_listen('bindEvents', function () {\n\t\t\t\t\t\tframework.bind(template, events, self.handleMouseWheel);\n\t\t\t\t\t});\n\n\t\t\t\t\t_listen('unbindEvents', function () {\n\t\t\t\t\t\tif (_wheelDelta) {\n\t\t\t\t\t\t\tframework.unbind(template, events, self.handleMouseWheel);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.mouseZoomedIn = false;\n\n\t\t\t\t\tvar hasDraggingClass,\n\t\t\t\t\t updateZoomable = function () {\n\t\t\t\t\t\tif (self.mouseZoomedIn) {\n\t\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoomed-in');\n\t\t\t\t\t\t\tself.mouseZoomedIn = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (_currZoomLevel < 1) {\n\t\t\t\t\t\t\tframework.addClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveDraggingClass();\n\t\t\t\t\t},\n\t\t\t\t\t removeDraggingClass = function () {\n\t\t\t\t\t\tif (hasDraggingClass) {\n\t\t\t\t\t\t\tframework.removeClass(template, 'pswp--dragging');\n\t\t\t\t\t\t\thasDraggingClass = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t_listen('resize', updateZoomable);\n\t\t\t\t\t_listen('afterChange', updateZoomable);\n\t\t\t\t\t_listen('pointerDown', function () {\n\t\t\t\t\t\tif (self.mouseZoomedIn) {\n\t\t\t\t\t\t\thasDraggingClass = true;\n\t\t\t\t\t\t\tframework.addClass(template, 'pswp--dragging');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t_listen('pointerUp', removeDraggingClass);\n\n\t\t\t\t\tif (!onInit) {\n\t\t\t\t\t\tupdateZoomable();\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\thandleMouseWheel: function (e) {\n\n\t\t\t\t\tif (_currZoomLevel <= self.currItem.fitRatio) {\n\t\t\t\t\t\tif (!_options.closeOnScroll) {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t// allow just one event to fire\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n\t\t\t\t\t_wheelDelta.x = 0;\n\n\t\t\t\t\tif ('deltaX' in e) {\n\t\t\t\t\t\t_wheelDelta.x = e.deltaX;\n\t\t\t\t\t\t_wheelDelta.y = e.deltaY;\n\t\t\t\t\t} else if ('wheelDelta' in e) {\n\t\t\t\t\t\tif (e.wheelDeltaX) {\n\t\t\t\t\t\t\t_wheelDelta.x = -0.16 * e.wheelDeltaX;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (e.wheelDeltaY) {\n\t\t\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDeltaY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDelta;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ('detail' in e) {\n\t\t\t\t\t\t_wheelDelta.y = e.detail;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// TODO: use rAF instead of mousewheel?\n\t\t\t\t\t_calculatePanBounds(_currZoomLevel, true);\n\t\t\t\t\tself.panTo(_panOffset.x - _wheelDelta.x, _panOffset.y - _wheelDelta.y);\n\t\t\t\t},\n\n\t\t\t\ttoggleDesktopZoom: function (centerPoint) {\n\t\t\t\t\tcenterPoint = centerPoint || { x: _viewportSize.x / 2, y: _viewportSize.y / 2 + _initalWindowScrollY };\n\n\t\t\t\t\tvar doubleTapZoomLevel = _options.getDoubleTapZoom(true, self.currItem);\n\t\t\t\t\tvar zoomOut = _currZoomLevel === doubleTapZoomLevel;\n\n\t\t\t\t\tself.mouseZoomedIn = !zoomOut;\n\n\t\t\t\t\tself.zoomTo(zoomOut ? self.currItem.initialZoomLevel : doubleTapZoomLevel, centerPoint, 333);\n\t\t\t\t\tframework[(!zoomOut ? 'add' : 'remove') + 'Class'](template, 'pswp--zoomed-in');\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\n\t\t/*>>desktop-zoom*/\n\n\t\t/*>>history*/\n\t\t/**\r\n *\r\n * history.js:\r\n *\r\n * - Back button to close gallery.\r\n *\r\n * - Unique URL for each slide: example.com/&pid=1&gid=3\r\n * (where PID is picture index, and GID and gallery index)\r\n *\r\n * - Switch URL when slides change.\r\n *\r\n */\n\n\t\tvar _historyDefaultOptions = {\n\t\t\thistory: true,\n\t\t\tgalleryUID: 1\n\t\t};\n\n\t\tvar _historyUpdateTimeout,\n\t\t _hashChangeTimeout,\n\t\t _hashAnimCheckTimeout,\n\t\t _hashChangedByScript,\n\t\t _hashChangedByHistory,\n\t\t _hashReseted,\n\t\t _initialHash,\n\t\t _historyChanged,\n\t\t _closedFromURL,\n\t\t _urlChangedOnce,\n\t\t _windowLoc,\n\t\t _supportsPushState,\n\t\t _getHash = function () {\n\t\t\treturn _windowLoc.hash.substring(1);\n\t\t},\n\t\t _cleanHistoryTimeouts = function () {\n\n\t\t\tif (_historyUpdateTimeout) {\n\t\t\t\tclearTimeout(_historyUpdateTimeout);\n\t\t\t}\n\n\t\t\tif (_hashAnimCheckTimeout) {\n\t\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t\t}\n\t\t},\n\n\n\t\t// pid - Picture index\n\t\t// gid - Gallery index\n\t\t_parseItemIndexFromURL = function () {\n\t\t\tvar hash = _getHash(),\n\t\t\t params = {};\n\n\t\t\tif (hash.length < 5) {\n\t\t\t\t// pid=1\n\t\t\t\treturn params;\n\t\t\t}\n\n\t\t\tvar vars = hash.split('&');\n\t\t\tfor (var i = 0; i < vars.length; i++) {\n\t\t\t\tif (!vars[i]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar pair = vars[i].split('=');\n\t\t\t\tif (pair.length < 2) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tparams[pair[0]] = pair[1];\n\t\t\t}\n\t\t\tparams.pid = parseInt(params.pid, 10) - 1;\n\t\t\tif (params.pid < 0) {\n\t\t\t\tparams.pid = 0;\n\t\t\t}\n\t\t\treturn params;\n\t\t},\n\t\t _updateHash = function () {\n\n\t\t\tif (_hashAnimCheckTimeout) {\n\t\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t\t}\n\n\t\t\tif (_numAnimations || _isDragging) {\n\t\t\t\t// changing browser URL forces layout/paint in some browsers, which causes noticable lag during animation\n\t\t\t\t// that's why we update hash only when no animations running\n\t\t\t\t_hashAnimCheckTimeout = setTimeout(_updateHash, 500);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_hashChangedByScript) {\n\t\t\t\tclearTimeout(_hashChangeTimeout);\n\t\t\t} else {\n\t\t\t\t_hashChangedByScript = true;\n\t\t\t}\n\n\t\t\tvar newHash = _initialHash + '&' + 'gid=' + _options.galleryUID + '&' + 'pid=' + (_currentItemIndex + 1);\n\n\t\t\tif (!_historyChanged) {\n\t\t\t\tif (_windowLoc.hash.indexOf(newHash) === -1) {\n\t\t\t\t\t_urlChangedOnce = true;\n\t\t\t\t}\n\t\t\t\t// first time - add new hisory record, then just replace\n\t\t\t}\n\n\t\t\tvar newURL = _windowLoc.href.split('#')[0] + '#' + newHash;\n\n\t\t\tif (_supportsPushState) {\n\n\t\t\t\tif ('#' + newHash !== window.location.hash) {\n\t\t\t\t\thistory[_historyChanged ? 'replaceState' : 'pushState']('', document.title, newURL);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (_historyChanged) {\n\t\t\t\t\t_windowLoc.replace(newURL);\n\t\t\t\t} else {\n\t\t\t\t\t_windowLoc.hash = newHash;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_historyChanged = true;\n\t\t\t_hashChangeTimeout = setTimeout(function () {\n\t\t\t\t_hashChangedByScript = false;\n\t\t\t}, 60);\n\t\t};\n\n\t\t_registerModule('History', {\n\n\t\t\tpublicMethods: {\n\t\t\t\tinitHistory: function () {\n\n\t\t\t\t\tframework.extend(_options, _historyDefaultOptions, true);\n\n\t\t\t\t\tif (!_options.history) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t_windowLoc = window.location;\n\t\t\t\t\t_urlChangedOnce = false;\n\t\t\t\t\t_closedFromURL = false;\n\t\t\t\t\t_historyChanged = false;\n\t\t\t\t\t_initialHash = _getHash();\n\t\t\t\t\t_supportsPushState = 'pushState' in history;\n\n\t\t\t\t\tif (_initialHash.indexOf('gid=') > -1) {\n\t\t\t\t\t\t_initialHash = _initialHash.split('&gid=')[0];\n\t\t\t\t\t\t_initialHash = _initialHash.split('?gid=')[0];\n\t\t\t\t\t}\n\n\t\t\t\t\t_listen('afterChange', self.updateURL);\n\t\t\t\t\t_listen('unbindEvents', function () {\n\t\t\t\t\t\tframework.unbind(window, 'hashchange', self.onHashChange);\n\t\t\t\t\t});\n\n\t\t\t\t\tvar returnToOriginal = function () {\n\t\t\t\t\t\t_hashReseted = true;\n\t\t\t\t\t\tif (!_closedFromURL) {\n\n\t\t\t\t\t\t\tif (_urlChangedOnce) {\n\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tif (_initialHash) {\n\t\t\t\t\t\t\t\t\t_windowLoc.hash = _initialHash;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (_supportsPushState) {\n\n\t\t\t\t\t\t\t\t\t\t// remove hash from url without refreshing it or scrolling to top\n\t\t\t\t\t\t\t\t\t\thistory.pushState('', document.title, _windowLoc.pathname + _windowLoc.search);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t_windowLoc.hash = '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_cleanHistoryTimeouts();\n\t\t\t\t\t};\n\n\t\t\t\t\t_listen('unbindEvents', function () {\n\t\t\t\t\t\tif (_closedByScroll) {\n\t\t\t\t\t\t\t// if PhotoSwipe is closed by scroll, we go \"back\" before the closing animation starts\n\t\t\t\t\t\t\t// this is done to keep the scroll position\n\t\t\t\t\t\t\treturnToOriginal();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t_listen('destroy', function () {\n\t\t\t\t\t\tif (!_hashReseted) {\n\t\t\t\t\t\t\treturnToOriginal();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t_listen('firstUpdate', function () {\n\t\t\t\t\t\t_currentItemIndex = _parseItemIndexFromURL().pid;\n\t\t\t\t\t});\n\n\t\t\t\t\tvar index = _initialHash.indexOf('pid=');\n\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\t_initialHash = _initialHash.substring(0, index);\n\t\t\t\t\t\tif (_initialHash.slice(-1) === '&') {\n\t\t\t\t\t\t\t_initialHash = _initialHash.slice(0, -1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tif (_isOpen) {\n\t\t\t\t\t\t\t// hasn't destroyed yet\n\t\t\t\t\t\t\tframework.bind(window, 'hashchange', self.onHashChange);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 40);\n\t\t\t\t},\n\t\t\t\tonHashChange: function () {\n\n\t\t\t\t\tif (_getHash() === _initialHash) {\n\n\t\t\t\t\t\t_closedFromURL = true;\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!_hashChangedByScript) {\n\n\t\t\t\t\t\t_hashChangedByHistory = true;\n\t\t\t\t\t\tself.goTo(_parseItemIndexFromURL().pid);\n\t\t\t\t\t\t_hashChangedByHistory = false;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tupdateURL: function () {\n\n\t\t\t\t\t// Delay the update of URL, to avoid lag during transition,\n\t\t\t\t\t// and to not to trigger actions like \"refresh page sound\" or \"blinking favicon\" to often\n\n\t\t\t\t\t_cleanHistoryTimeouts();\n\n\t\t\t\t\tif (_hashChangedByHistory) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_historyChanged) {\n\t\t\t\t\t\t_updateHash(); // first time\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_historyUpdateTimeout = setTimeout(_updateHash, 800);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\n\t\t/*>>history*/\n\t\tframework.extend(self, publicMethods);\n\t};\n\treturn PhotoSwipe;\n});","/*! PhotoSwipe Default UI - 4.0.3 - 2015-01-03\r\n* http://photoswipe.com\r\n* Copyright (c) 2015 Dmitry Semenov; */\n/**\r\n*\r\n* UI on top of main sliding area (caption, arrows, close button, etc.).\r\n* Built just using public methods/properties of PhotoSwipe.\r\n*\r\n*/\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\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\tvar PhotoSwipeUI_Default = function (pswp, framework) {\n\n\t\tvar ui = this;\n\t\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\t\t _loadingIndicator,\n\t\t _loadingIndicatorHidden,\n\t\t _loadingIndicatorTimeout,\n\t\t _galleryHasOneSlide,\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\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\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\tshareButtons: [{ id: 'facebook', label: 'Share on Facebook', url: 'https://www.facebook.com/sharer/sharer.php?u={{url}}' }, { id: 'twitter', label: 'Tweet', url: 'https://twitter.com/intent/tweet?text={{text}}&url={{url}}' }, { id: 'pinterest', label: 'Pin it', url: 'http://www.pinterest.com/pin/create/button/' + '?url={{url}}&media={{image_url}}&description={{text}}' }, { id: 'download', label: 'Download image', url: '{{raw_image_url}}', download: true }],\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\n\t\t\tindexIndicatorSep: ' / '\n\n\t\t},\n\t\t _blockControlsTap,\n\t\t _blockControlsTapTimeout;\n\n\t\tvar _onControlsTap = function (e) {\n\t\t\tif (_blockControlsTap) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\te = e || window.event;\n\n\t\t\tvar target = e.target || e.srcElement,\n\t\t\t uiElement,\n\t\t\t clickedClass = target.className,\n\t\t\t found;\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\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)\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\t\t},\n\t\t _fitControlsInViewport = function () {\n\t\t\treturn !pswp.likelyTouchDevice || _options.mouseUsed || screen.width > 1200;\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\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\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\n\t\t\tif (!_shareModalHidden) {\n\t\t\t\t_updateShareURLs();\n\t\t\t}\n\t\t\treturn false;\n\t\t},\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,' + 'location=yes,width=550,height=420,top=100,left=' + (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\n\t\t\treturn false;\n\t\t},\n\t\t _updateShareURLs = function () {\n\t\t\tvar shareButtonOut = '',\n\t\t\t shareButtonData,\n\t\t\t shareURL,\n\t\t\t image_url,\n\t\t\t page_url,\n\t\t\t share_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)).replace('{{image_url}}', encodeURIComponent(image_url)).replace('{{raw_image_url}}', image_url).replace('{{text}}', encodeURIComponent(share_text));\n\n\t\t\t\tshareButtonOut += '' + shareButtonData.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\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) {\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\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} else {\n\t\t\t\t\t\t\t_toggleLoadingIndicator(true); // hide preloader\n\t\t\t\t\t\t}\n\t\t\t\t\t}, _options.loadingIndicatorDelay);\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\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\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;\n\t\t\t\t}\n\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\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\t\t};\n\n\t\tvar _uiElements = [{\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\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\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\tname: 'button--zoom',\n\t\t\toption: 'zoomEl',\n\t\t\tonTap: pswp.toggleDesktopZoom\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\tname: 'button--close',\n\t\t\toption: 'closeEl',\n\t\t\tonTap: pswp.close\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\tname: 'button--arrow--right',\n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.next\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\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\tvar _setupUIElements = function () {\n\t\t\tvar item, classAttr, uiElement;\n\n\t\t\tvar loopThroughChildElements = function (sChildren) {\n\t\t\t\tif (!sChildren) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar l = sChildren.length;\n\t\t\t\tfor (var i = 0; i < l; i++) {\n\t\t\t\t\titem = sChildren[i];\n\t\t\t\t\tclassAttr = item.className;\n\n\t\t\t\t\tfor (var a = 0; a < _uiElements.length; a++) {\n\t\t\t\t\t\tuiElement = _uiElements[a];\n\n\t\t\t\t\t\tif (classAttr.indexOf('pswp__' + uiElement.name) > -1) {\n\n\t\t\t\t\t\t\tif (_options[uiElement.option]) {\n\t\t\t\t\t\t\t\t// if element is not disabled from options\n\n\t\t\t\t\t\t\t\tframework.removeClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\t\tif (uiElement.onInit) {\n\t\t\t\t\t\t\t\t\tuiElement.onInit(item);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t//item.style.display = 'block';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tframework.addClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\t\t//item.style.display = 'none';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tloopThroughChildElements(_controls.children);\n\n\t\t\tvar topBar = framework.getChildByClass(_controls, 'pswp__top-bar');\n\t\t\tif (topBar) {\n\t\t\t\tloopThroughChildElements(topBar.children);\n\t\t\t}\n\t\t};\n\n\t\tui.init = function () {\n\n\t\t\t// extend options\n\t\t\tframework.extend(pswp.options, _defaultUIOptions, true);\n\n\t\t\t// create local link for fast access\n\t\t\t_options = pswp.options;\n\n\t\t\t// find pswp__ui element\n\t\t\t_controls = framework.getChildByClass(pswp.scrollWrap, 'pswp__ui');\n\n\t\t\t// create local link\n\t\t\t_listen = pswp.listen;\n\n\t\t\t_setupHidingControlsDuringGestures();\n\n\t\t\t// update controls when slides change\n\t\t\t_listen('beforeChange', ui.update);\n\n\t\t\t// toggle zoom on double-tap\n\t\t\t_listen('doubleTap', function (point) {\n\t\t\t\tvar initialZoomLevel = pswp.currItem.initialZoomLevel;\n\t\t\t\tif (pswp.getZoomLevel() !== initialZoomLevel) {\n\t\t\t\t\tpswp.zoomTo(initialZoomLevel, point, 333);\n\t\t\t\t} else {\n\t\t\t\t\tpswp.zoomTo(_options.getDoubleTapZoom(false, pswp.currItem), point, 333);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Allow text selection in caption\n\t\t\t_listen('preventDragEvent', function (e, isDown, preventObj) {\n\t\t\t\tvar t = e.target || e.srcElement;\n\t\t\t\tif (t && t.className && e.type.indexOf('mouse') > -1 && (t.className.indexOf('__caption') > 0 || /(SMALL|STRONG|EM)/i.test(t.tagName))) {\n\t\t\t\t\tpreventObj.prevent = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// bind events for UI\n\t\t\t_listen('bindEvents', function () {\n\t\t\t\tframework.bind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\t\tframework.bind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\n\t\t\t\tif (!pswp.likelyTouchDevice) {\n\t\t\t\t\tframework.bind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// unbind events for UI\n\t\t\t_listen('unbindEvents', function () {\n\t\t\t\tif (!_shareModalHidden) {\n\t\t\t\t\t_toggleShareModal();\n\t\t\t\t}\n\n\t\t\t\tif (_idleInterval) {\n\t\t\t\t\tclearInterval(_idleInterval);\n\t\t\t\t}\n\t\t\t\tframework.unbind(document, 'mouseout', _onMouseLeaveWindow);\n\t\t\t\tframework.unbind(document, 'mousemove', _onIdleMouseMove);\n\t\t\t\tframework.unbind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\t\tframework.unbind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\t\t\t\tframework.unbind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\n\t\t\t\tif (_fullscrenAPI) {\n\t\t\t\t\tframework.unbind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\t\tif (_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t\t_options.hideAnimationDuration = 0;\n\t\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t\t}\n\t\t\t\t\t_fullscrenAPI = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// clean up things when gallery is destroyed\n\t\t\t_listen('destroy', function () {\n\t\t\t\tif (_options.captionEl) {\n\t\t\t\t\tif (_fakeCaptionContainer) {\n\t\t\t\t\t\t_controls.removeChild(_fakeCaptionContainer);\n\t\t\t\t\t}\n\t\t\t\t\tframework.removeClass(_captionContainer, 'pswp__caption--empty');\n\t\t\t\t}\n\n\t\t\t\tif (_shareModal) {\n\t\t\t\t\t_shareModal.children[0].onclick = null;\n\t\t\t\t}\n\t\t\t\tframework.removeClass(_controls, 'pswp__ui--over-close');\n\t\t\t\tframework.addClass(_controls, 'pswp__ui--hidden');\n\t\t\t\tui.setIdle(false);\n\t\t\t});\n\n\t\t\tif (!_options.showAnimationDuration) {\n\t\t\t\tframework.removeClass(_controls, 'pswp__ui--hidden');\n\t\t\t}\n\t\t\t_listen('initialZoomIn', function () {\n\t\t\t\tif (_options.showAnimationDuration) {\n\t\t\t\t\tframework.removeClass(_controls, 'pswp__ui--hidden');\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('initialZoomOut', function () {\n\t\t\t\tframework.addClass(_controls, 'pswp__ui--hidden');\n\t\t\t});\n\n\t\t\t_listen('parseVerticalMargin', _applyNavBarGaps);\n\n\t\t\t_setupUIElements();\n\n\t\t\tif (_options.shareEl && _shareButton && _shareModal) {\n\t\t\t\t_shareModalHidden = true;\n\t\t\t}\n\n\t\t\t_countNumItems();\n\n\t\t\t_setupIdle();\n\n\t\t\t_setupFullscreenAPI();\n\n\t\t\t_setupLoadingIndicator();\n\t\t};\n\n\t\tui.setIdle = function (isIdle) {\n\t\t\t_isIdle = isIdle;\n\t\t\t_togglePswpClass(_controls, 'ui--idle', isIdle);\n\t\t};\n\n\t\tui.update = function () {\n\t\t\t// Don't update UI if it's hidden\n\t\t\tif (_controlsVisible && pswp.currItem) {\n\n\t\t\t\tui.updateIndexIndicator();\n\n\t\t\t\tif (_options.captionEl) {\n\t\t\t\t\t_options.addCaptionHTMLFn(pswp.currItem, _captionContainer);\n\n\t\t\t\t\t_togglePswpClass(_captionContainer, 'caption--empty', !pswp.currItem.title);\n\t\t\t\t}\n\n\t\t\t\t_overlayUIUpdated = true;\n\t\t\t} else {\n\t\t\t\t_overlayUIUpdated = false;\n\t\t\t}\n\n\t\t\t_countNumItems();\n\t\t};\n\n\t\tui.updateFullscreen = function () {\n\t\t\t_togglePswpClass(pswp.template, 'fs', _fullscrenAPI.isFullscreen());\n\t\t};\n\n\t\tui.updateIndexIndicator = function () {\n\t\t\tif (_options.counterEl) {\n\t\t\t\t_indexIndicator.innerHTML = pswp.getCurrentIndex() + 1 + _options.indexIndicatorSep + _options.getNumItemsFn();\n\t\t\t}\n\t\t};\n\n\t\tui.onGlobalTap = function (e) {\n\t\t\te = e || window.event;\n\t\t\tvar target = e.target || e.srcElement;\n\n\t\t\tif (_blockControlsTap) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (e.detail && e.detail.pointerType === 'mouse') {\n\n\t\t\t\t// close gallery if clicked outside of the image\n\t\t\t\tif (_hasCloseClass(target)) {\n\t\t\t\t\tpswp.close();\n\t\t\t\t}\n\n\t\t\t\tif (framework.hasClass(target, 'pswp__img')) {\n\t\t\t\t\tif (pswp.getZoomLevel() === 1 && pswp.getZoomLevel() <= pswp.currItem.fitRatio) {\n\t\t\t\t\t\tpswp.close();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpswp.toggleDesktopZoom(e.detail.releasePoint);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// tap anywhere (except buttons) to toggle visibility of controls\n\t\t\t\tif (_options.tapToToggleControls) {\n\t\t\t\t\tif (_controlsVisible) {\n\t\t\t\t\t\tui.hideControls();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tui.showControls();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// tap to close gallery\n\t\t\t\tif (_options.tapToClose && (framework.hasClass(target, 'pswp__img') || _hasCloseClass(target))) {\n\t\t\t\t\tpswp.close();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tui.onMouseOver = function (e) {\n\t\t\te = e || window.event;\n\t\t\tvar target = e.target || e.srcElement;\n\n\t\t\t// add class when mouse is over an element that should close the gallery\n\t\t\t_togglePswpClass(_controls, 'ui--over-close', _hasCloseClass(target));\n\t\t};\n\n\t\tui.hideControls = function () {\n\t\t\tframework.addClass(_controls, 'pswp__ui--hidden');\n\t\t\t_controlsVisible = false;\n\t\t};\n\n\t\tui.showControls = function () {\n\t\t\t_controlsVisible = true;\n\t\t\tif (!_overlayUIUpdated) {\n\t\t\t\tui.update();\n\t\t\t}\n\t\t\tframework.removeClass(_controls, 'pswp__ui--hidden');\n\t\t};\n\n\t\tui.supportsFullscreen = function () {\n\t\t\tvar d = document;\n\t\t\treturn !!(d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen);\n\t\t};\n\n\t\tui.getFullscreenAPI = function () {\n\t\t\tvar dE = document.documentElement,\n\t\t\t api,\n\t\t\t tF = 'fullscreenchange';\n\n\t\t\tif (dE.requestFullscreen) {\n\t\t\t\tapi = {\n\t\t\t\t\tenterK: 'requestFullscreen',\n\t\t\t\t\texitK: 'exitFullscreen',\n\t\t\t\t\telementK: 'fullscreenElement',\n\t\t\t\t\teventK: tF\n\t\t\t\t};\n\t\t\t} else if (dE.mozRequestFullScreen) {\n\t\t\t\tapi = {\n\t\t\t\t\tenterK: 'mozRequestFullScreen',\n\t\t\t\t\texitK: 'mozCancelFullScreen',\n\t\t\t\t\telementK: 'mozFullScreenElement',\n\t\t\t\t\teventK: 'moz' + tF\n\t\t\t\t};\n\t\t\t} else if (dE.webkitRequestFullscreen) {\n\t\t\t\tapi = {\n\t\t\t\t\tenterK: 'webkitRequestFullscreen',\n\t\t\t\t\texitK: 'webkitExitFullscreen',\n\t\t\t\t\telementK: 'webkitFullscreenElement',\n\t\t\t\t\teventK: 'webkit' + tF\n\t\t\t\t};\n\t\t\t} else if (dE.msRequestFullscreen) {\n\t\t\t\tapi = {\n\t\t\t\t\tenterK: 'msRequestFullscreen',\n\t\t\t\t\texitK: 'msExitFullscreen',\n\t\t\t\t\telementK: 'msFullscreenElement',\n\t\t\t\t\teventK: 'MSFullscreenChange'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (api) {\n\t\t\t\tapi.enter = function () {\n\t\t\t\t\t// disable close-on-scroll in fullscreen\n\t\t\t\t\t_initalCloseOnScrollValue = _options.closeOnScroll;\n\t\t\t\t\t_options.closeOnScroll = false;\n\n\t\t\t\t\tif (this.enterK === 'webkitRequestFullscreen') {\n\t\t\t\t\t\tpswp.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pswp.template[this.enterK]();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tapi.exit = function () {\n\t\t\t\t\t_options.closeOnScroll = _initalCloseOnScrollValue;\n\n\t\t\t\t\treturn document[this.exitK]();\n\t\t\t\t};\n\t\t\t\tapi.isFullscreen = function () {\n\t\t\t\t\treturn document[this.elementK];\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn api;\n\t\t};\n\t};\n\treturn PhotoSwipeUI_Default;\n});","var galleryTmpl = ' \\\r\n
\\\r\n \\\r\n
\\\r\n \\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
';\n\nfunction gallery_init(selector) {\n jQuery(document.body).append(galleryTmpl);\n initPhotoSwipeFromDOM(selector);\n}\n\nfunction gallery_set_thumb_heights(selector) {\n var elems = jQuery(selector);\n elems.each(function (index, elem) {\n var width = jQuery(elem).width();\n jQuery(elem).css('height', width + 'px');\n });\n}\n\nvar initPhotoSwipeFromDOM = function (thumbSelector) {\n var gallery;\n var items = null;\n\n var parseThumbnailElements = function () {\n var elems = jQuery(thumbSelector);\n var thumbs = [];\n elems.each(function (index, item) {\n var thumbImg = jQuery(item).find('img');\n if (thumbImg.length === 0) {\n console.error('there must be an image inside the link');\n return;\n }\n var imgSrc = thumbImg.attr('src');\n var title = thumbImg.attr('alt');\n\n /* if there is no alt attribute use the fig caption */\n if (title === undefined || title.length === 0) {\n var figCaption = jQuery(item).find('figcaption');\n if (figCaption.length > 0) {\n title = figCaption.html();\n }\n }\n var imgSize = thumbImg.attr('data-size');\n var imgWidth, imgHeight;\n if (imgSize === 'undefined') {\n var splitSize = imgSize.split('x');\n if (splitSize.length !== 2) {\n console.error('invalid data size: ' + imgSize);\n return;\n }\n imgWidth = splitSize[0];\n imgHeight = splitSize[1];\n } else {\n imgWidth = thumbImg[0].naturalWidth;\n imgHeight = thumbImg[0].naturalHeight;\n }\n var thumb = {\n src: imgSrc,\n w: imgWidth,\n h: imgHeight,\n title: title\n };\n thumbs.push(thumb);\n });\n return thumbs;\n };\n\n var openGallery = function (index) {\n var pswpElement = jQuery('.pswp')[0];\n if (items === null) {\n items = parseThumbnailElements();\n }\n options = {\n index: index,\n fullscreenEl: false,\n zoomEl: false,\n shareEl: false,\n arrowEl: false,\n bgOpacity: 1,\n closeOnScroll: false,\n pinchToClose: false,\n closeOnVerticalDrag: false\n };\n gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);\n gallery.init();\n };\n\n var addGalleryClickCallback = function () {\n var elems = jQuery(thumbSelector);\n elems.each(function (index, elem) {\n jQuery(elem).attr('data-index', index);\n });\n elems.unbind(\"click\");\n elems.click(function (e) {\n if (jQuery(e.target).hasClass(\"imgRemove\") || jQuery(e.target).parent().hasClass(\"imgRemove\")) {\n return true;\n }\n e.preventDefault();\n var parent;\n if (e.target.tagName === 'FIGURE') {\n parent = jQuery(e.target);\n } else {\n parent = jQuery(e.target).parent('figure');\n }\n var index = elems.index(parent);\n\n var vLink = parent.children(\"img\").first().attr(\"vLink\");\n if (vLink) {\n window.location.href = vLink;\n } else {\n openGallery(index);\n }\n });\n };\n\n addGalleryClickCallback();\n};","/**\r\n* jquery-match-height master by @liabru\r\n* http://brm.io/jquery-match-height/\r\n* License: MIT\r\n*/\n\n;(function (factory) {\n // eslint-disable-line no-extra-semi\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(['jquery'], factory);\n } else if (typeof module !== 'undefined' && module.exports) {\n // CommonJS\n module.exports = factory(require('jquery'));\n } else {\n // Global\n factory(jQuery);\n }\n})(function ($) {\n /*\r\n * internal\r\n */\n\n var _previousResizeWidth = -1,\n _updateTimeout = -1;\n\n /*\r\n * _parse\r\n * value parse utility function\r\n */\n\n var _parse = function (value) {\n // parse value and convert NaN to 0\n return parseFloat(value) || 0;\n };\n\n /*\r\n * _rows\r\n * utility function returns array of jQuery selections representing each row\r\n * (as displayed after float wrapping applied by browser)\r\n */\n\n var _rows = function (elements) {\n var tolerance = 1,\n $elements = $(elements),\n lastTop = null,\n rows = [];\n\n // group elements by their top position\n $elements.each(function () {\n var $that = $(this),\n top = $that.offset().top - _parse($that.css('margin-top')),\n lastRow = rows.length > 0 ? rows[rows.length - 1] : null;\n\n if (lastRow === null) {\n // first item on the row, so just push it\n rows.push($that);\n } else {\n // if the row top is the same, add to the row group\n if (Math.floor(Math.abs(lastTop - top)) <= tolerance) {\n rows[rows.length - 1] = lastRow.add($that);\n } else {\n // otherwise start a new row group\n rows.push($that);\n }\n }\n\n // keep track of the last row top\n lastTop = top;\n });\n\n return rows;\n };\n\n /*\r\n * _parseOptions\r\n * handle plugin options\r\n */\n\n var _parseOptions = function (options) {\n var opts = {\n byRow: true,\n property: 'height',\n target: null,\n remove: false\n };\n\n if (typeof options === 'object') {\n return $.extend(opts, options);\n }\n\n if (typeof options === 'boolean') {\n opts.byRow = options;\n } else if (options === 'remove') {\n opts.remove = true;\n }\n\n return opts;\n };\n\n /*\r\n * matchHeight\r\n * plugin definition\r\n */\n\n var matchHeight = $.fn.matchHeight = function (options) {\n var opts = _parseOptions(options);\n\n // handle remove\n if (opts.remove) {\n var that = this;\n\n // remove fixed height from all selected elements\n this.css(opts.property, '');\n\n // remove selected elements from all groups\n $.each(matchHeight._groups, function (key, group) {\n group.elements = group.elements.not(that);\n });\n\n // TODO: cleanup empty groups\n\n return this;\n }\n\n if (this.length <= 1 && !opts.target) {\n return this;\n }\n\n // keep track of this group so we can re-apply later on load and resize events\n matchHeight._groups.push({\n elements: this,\n options: opts\n });\n\n // match each element's height to the tallest element in the selection\n matchHeight._apply(this, opts);\n\n return this;\n };\n\n /*\r\n * plugin global options\r\n */\n\n matchHeight.version = 'master';\n matchHeight._groups = [];\n matchHeight._throttle = 80;\n matchHeight._maintainScroll = true;\n matchHeight._beforeUpdate = null;\n matchHeight._afterUpdate = null;\n matchHeight._rows = _rows;\n matchHeight._parse = _parse;\n matchHeight._parseOptions = _parseOptions;\n\n /*\r\n * matchHeight._apply\r\n * apply matchHeight to given elements\r\n */\n\n matchHeight._apply = function (elements, options) {\n var opts = _parseOptions(options),\n $elements = $(elements),\n rows = [$elements];\n\n // take note of scroll position\n var htmlHeight = $('html').outerHeight(true);\n\n // get hidden parents\n var $hiddenParents = $elements.parents().filter(':hidden');\n\n // cache the original inline style\n $hiddenParents.each(function () {\n var $that = $(this);\n $that.data('style-cache', $that.attr('style'));\n });\n\n // temporarily must force hidden parents visible\n $hiddenParents.css('display', 'block');\n\n // get rows if using byRow, otherwise assume one row\n if (opts.byRow && !opts.target) {\n\n // must first force an arbitrary equal height so floating elements break evenly\n $elements.each(function () {\n var $that = $(this),\n display = $that.css('display');\n\n // temporarily force a usable display value\n if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') {\n display = 'block';\n }\n\n // cache the original inline style\n $that.data('style-cache', $that.attr('style'));\n\n $that.css({\n 'display': display,\n 'padding-top': '0',\n 'padding-bottom': '0',\n 'margin-top': '0',\n 'margin-bottom': '0',\n 'border-top-width': '0',\n 'border-bottom-width': '0',\n 'height': '100px',\n 'overflow': 'hidden'\n });\n });\n\n // get the array of rows (based on element top position)\n rows = _rows($elements);\n\n // revert original inline styles\n $elements.each(function () {\n var $that = $(this);\n $that.attr('style', $that.data('style-cache') || '');\n });\n }\n\n $.each(rows, function (key, row) {\n var $row = $(row),\n targetHeight = 0;\n\n if (!opts.target) {\n // skip apply to rows with only one item\n if (opts.byRow && $row.length <= 1) {\n $row.css(opts.property, '');\n return;\n }\n\n // iterate the row and find the max height\n $row.each(function () {\n var $that = $(this),\n style = $that.attr('style'),\n display = $that.css('display');\n\n // temporarily force a usable display value\n if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') {\n display = 'block';\n }\n\n // ensure we get the correct actual height (and not a previously set height value)\n var css = { 'display': display };\n css[opts.property] = '';\n $that.css(css);\n\n // find the max height (including padding, but not margin)\n if ($that.outerHeight(false) > targetHeight) {\n targetHeight = $that.outerHeight(false);\n }\n\n // revert styles\n if (style) {\n $that.attr('style', style);\n } else {\n $that.css('display', '');\n }\n });\n } else {\n // if target set, use the height of the target element\n targetHeight = opts.target.outerHeight(false);\n }\n\n // iterate the row and apply the height to all elements\n $row.each(function () {\n var $that = $(this),\n verticalPadding = 0;\n\n // don't apply to a target\n if (opts.target && $that.is(opts.target)) {\n return;\n }\n\n // handle padding and border correctly (required when not using border-box)\n if ($that.css('box-sizing') !== 'border-box') {\n verticalPadding += _parse($that.css('border-top-width')) + _parse($that.css('border-bottom-width'));\n verticalPadding += _parse($that.css('padding-top')) + _parse($that.css('padding-bottom'));\n }\n\n // set the height (accounting for padding and border)\n $that.css(opts.property, targetHeight - verticalPadding + 'px');\n });\n });\n\n // revert hidden parents\n $hiddenParents.each(function () {\n var $that = $(this);\n $that.attr('style', $that.data('style-cache') || null);\n });\n\n // restore scroll position if enabled\n\n return this;\n };\n\n /*\r\n * matchHeight._applyDataApi\r\n * applies matchHeight to all elements with a data-match-height attribute\r\n */\n\n matchHeight._applyDataApi = function () {\n var groups = {};\n\n // generate groups by their groupId set by elements using data-match-height\n $('[data-match-height], [data-mh]').each(function () {\n var $this = $(this),\n groupId = $this.attr('data-mh') || $this.attr('data-match-height');\n\n if (groupId in groups) {\n groups[groupId] = groups[groupId].add($this);\n } else {\n groups[groupId] = $this;\n }\n });\n\n // apply matchHeight to each group\n $.each(groups, function () {\n this.matchHeight(true);\n });\n };\n\n /*\r\n * matchHeight._update\r\n * updates matchHeight on all current groups with their correct options\r\n */\n\n var _update = function (event) {\n if (matchHeight._beforeUpdate) {\n matchHeight._beforeUpdate(event, matchHeight._groups);\n }\n\n $.each(matchHeight._groups, function () {\n matchHeight._apply(this.elements, this.options);\n });\n\n if (matchHeight._afterUpdate) {\n matchHeight._afterUpdate(event, matchHeight._groups);\n }\n };\n\n matchHeight._update = function (throttle, event) {\n // prevent update if fired from a resize event\n // where the viewport width hasn't actually changed\n // fixes an event looping bug in IE8\n if (event && event.type === 'resize') {\n var windowWidth = $(window).width();\n if (windowWidth === _previousResizeWidth) {\n return;\n }\n _previousResizeWidth = windowWidth;\n }\n\n // throttle updates\n if (!throttle) {\n _update(event);\n } else if (_updateTimeout === -1) {\n _updateTimeout = setTimeout(function () {\n _update(event);\n _updateTimeout = -1;\n }, matchHeight._throttle);\n }\n };\n\n /*\r\n * bind events\r\n */\n\n // apply on DOM ready event\n $(matchHeight._applyDataApi);\n\n // update heights on load and resize events\n $(window).bind('load', function (event) {\n matchHeight._update(false, event);\n });\n\n // throttled update heights on resize events\n $(window).bind('resize orientationchange', function (event) {\n matchHeight._update(true, event);\n });\n});","/***************************************************************************************************\r\nLoadingOverlay - A flexible loading overlay jQuery plugin\r\n Author : Gaspare Sganga\r\n Version : 1.5.3\r\n License : MIT\r\n Documentation : http://gasparesganga.com/labs/jquery-loading-overlay/\r\n****************************************************************************************************/\n(function ($, undefined) {\n // Default Settings\n var _defaults = {\n color: \"rgba(255, 255, 255, 0.8)\",\n custom: \"\",\n fade: true,\n fontawesome: \"\",\n image: \"data:image/gif;base64,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\",\n imagePosition: \"center center\",\n maxSize: \"100px\",\n minSize: \"20px\",\n resizeInterval: 50,\n size: \"50%\",\n zIndex: 9999\n };\n\n $.LoadingOverlaySetup = function (settings) {\n $.extend(true, _defaults, settings);\n };\n\n $.LoadingOverlay = function (action, options) {\n switch (action.toLowerCase()) {\n case \"show\":\n var settings = $.extend(true, {}, _defaults, options);\n _Show(\"body\", settings);\n break;\n\n case \"hide\":\n _Hide(\"body\", options);\n break;\n }\n };\n\n $.fn.LoadingOverlay = function (action, options) {\n switch (action.toLowerCase()) {\n case \"show\":\n var settings = $.extend(true, {}, _defaults, options);\n return this.each(function () {\n _Show(this, settings);\n });\n\n case \"hide\":\n return this.each(function () {\n _Hide(this, options);\n });\n }\n };\n\n function _Show(container, settings) {\n container = $(container);\n var wholePage = container.is(\"body\");\n var count = container.data(\"LoadingOverlayCount\");\n if (count === undefined) count = 0;\n if (count == 0) {\n var overlay = $(\"
\", {\n class: \"loadingoverlay\",\n css: {\n \"background-color\": settings.color,\n \"position\": \"relative\",\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n \"align-items\": \"center\",\n \"justify-content\": \"center\"\n }\n });\n if (settings.zIndex !== undefined) overlay.css(\"z-index\", settings.zIndex);\n if (settings.image) overlay.css({\n \"background-image\": \"url(\" + settings.image + \")\",\n \"background-position\": settings.imagePosition,\n \"background-repeat\": \"no-repeat\"\n });\n if (settings.fontawesome) $(\"
\", {\n class: \"loadingoverlay_fontawesome \" + settings.fontawesome\n }).appendTo(overlay);\n if (settings.custom) $(settings.custom).appendTo(overlay);\n if (wholePage) {\n overlay.css({\n \"position\": \"fixed\",\n \"top\": 0,\n \"left\": 0,\n \"width\": \"100%\",\n \"height\": \"100%\"\n });\n } else {\n overlay.css(\"position\", container.css(\"position\") == \"fixed\" ? \"fixed\" : \"absolute\");\n }\n _Resize(container, overlay, settings, wholePage);\n if (settings.resizeInterval > 0) {\n var resizeIntervalId = setInterval(function () {\n _Resize(container, overlay, settings, wholePage);\n }, settings.resizeInterval);\n container.data(\"LoadingOverlayResizeIntervalId\", resizeIntervalId);\n }\n if (!settings.fade) {\n settings.fade = [0, 0];\n } else if (settings.fade === true) {\n settings.fade = [400, 200];\n } else if (typeof settings.fade == \"string\" || typeof settings.fade == \"number\") {\n settings.fade = [settings.fade, settings.fade];\n }\n container.data({\n \"LoadingOverlay\": overlay,\n \"LoadingOverlayFadeOutDuration\": settings.fade[1]\n });\n overlay.hide().appendTo(\"body\").fadeIn(settings.fade[0]);\n }\n count++;\n container.data(\"LoadingOverlayCount\", count);\n }\n\n function _Hide(container, force) {\n container = $(container);\n var count = container.data(\"LoadingOverlayCount\");\n if (count === undefined) return;\n count--;\n if (force || count <= 0) {\n var resizeIntervalId = container.data(\"LoadingOverlayResizeIntervalId\");\n if (resizeIntervalId) clearInterval(resizeIntervalId);\n container.data(\"LoadingOverlay\").fadeOut(container.data(\"LoadingOverlayFadeOutDuration\"), function () {\n $(this).remove();\n });\n container.removeData([\"LoadingOverlay\", \"LoadingOverlayCount\", \"LoadingOverlayFadeOutDuration\", \"LoadingOverlayResizeIntervalId\"]);\n } else {\n container.data(\"LoadingOverlayCount\", count);\n }\n }\n\n function _Resize(container, overlay, settings, wholePage) {\n if (!wholePage) {\n var x = container.css(\"position\") == \"fixed\" ? container.position() : container.offset();\n overlay.css({\n top: x.top + parseInt(container.css(\"border-top-width\"), 10),\n left: x.left + parseInt(container.css(\"border-left-width\"), 10),\n width: container.innerWidth(),\n height: container.innerHeight()\n });\n }\n var c = wholePage ? $(window) : container;\n var size = \"auto\";\n if (settings.size && settings.size != \"auto\") {\n size = Math.min(c.innerWidth(), c.innerHeight()) * parseFloat(settings.size) / 100;\n if (settings.maxSize && size > parseInt(settings.maxSize, 10)) size = parseInt(settings.maxSize, 10) + \"px\";\n if (settings.minSize && size < parseInt(settings.minSize, 10)) size = parseInt(settings.minSize, 10) + \"px\";\n }\n overlay.css(\"background-size\", size);\n overlay.children(\".loadingoverlay_fontawesome\").css(\"font-size\", size);\n }\n})(jQuery);","/***************************************************************************************************\r\nLoadingOverlay Extras - Progress\r\n Author : Gaspare Sganga\r\n Version : 1.5.3\r\n License : MIT\r\n Documentation : http://gasparesganga.com/labs/jquery-loading-overlay/\r\n****************************************************************************************************/\nvar LoadingOverlayProgress = function (options) {\n var _bar;\n var _text;\n var _settings = $.extend(true, {}, {\n bar: {\n \"bottom\": \"25px\",\n \"height\": \"20px\",\n \"background\": \"#9bbb59\"\n },\n text: {\n \"bottom\": \"50px\",\n \"font\": \"14pt/1.2 sans-serif\",\n \"color\": \"#303030\"\n }\n }, options);\n\n return {\n Init: Init,\n Update: Update\n };\n\n function Init() {\n var wrapper = $(\"
\", {\n class: \"loadingoverlay_progress_wrapper\",\n css: {\n \"position\": \"absolute\",\n \"top\": 0,\n \"left\": 0,\n \"width\": \"100%\",\n \"height\": \"100%\"\n }\n });\n _bar = $(\"
\", {\n class: \"loadingoverlay_progress_bar\",\n css: $.extend(true, {\n \"position\": \"absolute\",\n \"left\": \"0\"\n }, _settings.bar)\n }).appendTo(wrapper);\n _text = $(\"
\", {\n class: \"loadingoverlay_progress_text\",\n css: $.extend(true, {\n \"position\": \"absolute\",\n \"left\": \"0\",\n \"text-align\": \"right\",\n \"white-space\": \"nowrap\"\n }, _settings.text),\n text: \"0 %\"\n }).appendTo(wrapper);\n Update(0);\n return wrapper;\n }\n\n function Update(value) {\n if (value < 0) value = 0;\n if (value > 100) value = 100;\n var r = { \"right\": 100 - value + \"%\" };\n _bar.css(r);\n _text.css(r);\n _text.text(value + \"%\");\n }\n};","/*!\r\n * jquery-confirm v3.0.3 (http://craftpip.github.io/jquery-confirm/)\r\n * Author: Boniface Pereira\r\n * Website: www.craftpip.com\r\n * Contact: hey@craftpip.com\r\n *\r\n * Copyright 2013-2016 jquery-confirm\r\n * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE)\r\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('jquery-confirm requires jQuery');\n}\n\nvar jconfirm, Jconfirm;\n(function ($) {\n \"use strict\";\n\n $.fn.confirm = function (options, option2) {\n if (typeof options === 'undefined') options = {};\n if (typeof options === 'string') options = {\n content: options,\n title: option2 ? option2 : false\n };\n\n /*\r\n * Alias of $.confirm to emulate native confirm()\r\n */\n $(this).each(function () {\n var $this = $(this);\n $this.on('click', function (e) {\n e.preventDefault();\n var jcOption = $.extend({}, options);\n if ($this.attr('data-title')) jcOption['title'] = $this.attr('data-title');\n if ($this.attr('data-content')) jcOption['content'] = $this.attr('data-content');\n if (typeof jcOption['buttons'] == 'undefined') jcOption['buttons'] = {};\n\n jcOption['$target'] = $this;\n if ($this.attr('href') && Object.keys(jcOption['buttons']).length == 0) {\n var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});\n var firstBtn = Object.keys(buttons)[0];\n jcOption['buttons'] = buttons;\n jcOption.buttons[firstBtn].action = function () {\n location.href = $this.attr('href');\n };\n }\n jcOption['closeIcon'] = false;\n $.confirm(jcOption);\n });\n });\n return $(this);\n };\n $.confirm = function (options, option2) {\n if (typeof options === 'undefined') options = {};\n if (typeof options === 'string') options = {\n content: options,\n title: option2 ? option2 : false\n };\n\n if (typeof options['buttons'] != 'object') options['buttons'] = {};\n\n if (Object.keys(options['buttons']).length == 0) {\n var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});\n options['buttons'] = buttons;\n }\n\n /*\r\n * Alias of jconfirm\r\n */\n return jconfirm(options);\n };\n $.alert = function (options, option2) {\n if (typeof options === 'undefined') options = {};\n if (typeof options === 'string') options = {\n content: options,\n title: option2 ? option2 : false\n };\n\n if (typeof options.buttons != 'object') options.buttons = {};\n\n if (Object.keys(options['buttons']).length == 0) {\n var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});\n var firstBtn = Object.keys(buttons)[0];\n options['buttons'][firstBtn] = buttons[firstBtn];\n }\n /*\r\n * Alias of jconfirm\r\n */\n return jconfirm(options);\n };\n $.dialog = function (options, option2) {\n if (typeof options === 'undefined') options = {};\n if (typeof options === 'string') options = {\n content: options,\n title: option2 ? option2 : false,\n closeIcon: function () {\n // Just close the modal\n }\n };\n\n options['buttons'] = {}; // purge buttons\n\n if (typeof options['closeIcon'] == 'undefined') {\n // Dialog must have a closeIcon.\n options['closeIcon'] = function () {};\n }\n /*\r\n * Alias of jconfirm\r\n */\n options.confirmKeys = [13];\n return jconfirm(options);\n };\n\n jconfirm = function (options) {\n if (typeof options === 'undefined') options = {};\n /*\r\n * initial function for calling.\r\n */\n var pluginOptions = $.extend(true, {}, jconfirm.pluginDefaults);\n if (jconfirm.defaults) {\n pluginOptions = $.extend(true, pluginOptions, jconfirm.defaults);\n }\n\n /*\r\n * merge options with plugin defaults.\r\n */\n pluginOptions = $.extend(true, {}, pluginOptions, options);\n var instance = new Jconfirm(pluginOptions);\n jconfirm.instances.push(instance);\n return instance;\n };\n Jconfirm = function (options) {\n /*\r\n * constructor function Jconfirm,\r\n * options = user options.\r\n */\n $.extend(this, options);\n this._init();\n };\n Jconfirm.prototype = {\n _init: function () {\n var that = this;\n\n this._lastFocused = $('body').find(':focus');\n this._id = Math.round(Math.random() * 99999);\n setTimeout(function () {\n that.open();\n }, 0);\n },\n _buildHTML: function () {\n var that = this;\n\n // prefix the animation string and store in animationParsed\n this._parseAnimation(this.animation, 'o');\n this._parseAnimation(this.closeAnimation, 'c');\n this._parseBgDismissAnimation(this.backgroundDismissAnimation);\n this._parseColumnClass(this.columnClass);\n this._parseTheme(this.theme);\n this._parseType(this.type);\n\n /*\r\n * Append html.\r\n */\n var template = $(this.template);\n template.find('.jconfirm-box').addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);\n\n if (this.typeAnimated) template.find('.jconfirm-box').addClass('jconfirm-type-animated');\n\n if (this.useBootstrap) {\n template.find('.jc-bs3-row').addClass(this.bootstrapClasses.row);\n template.find('.jconfirm-box-container').addClass(this.columnClassParsed);\n\n if (this.containerFluid) template.find('.jc-bs3-container').addClass(this.bootstrapClasses.containerFluid);else template.find('.jc-bs3-container').addClass(this.bootstrapClasses.container);\n } else {\n template.find('.jconfirm-box').css('width', this.boxWidth);\n }\n\n if (this.titleClass) template.find('.jconfirm-title-c').addClass(this.titleClass);\n\n template.addClass(this.themeParsed);\n var ariaLabel = 'jconfirm-box' + this._id;\n template.find('.jconfirm-box').attr('aria-labelledby', ariaLabel).attr('tabindex', -1);\n template.find('.jconfirm-content').attr('id', ariaLabel);\n if (this.bgOpacity != null) template.find('.jconfirm-bg').css('opacity', this.bgOpacity);\n if (this.rtl) template.addClass('jconfirm-rtl');\n\n this.$el = template.appendTo(this.container);\n this.$jconfirmBoxContainer = this.$el.find('.jconfirm-box-container');\n this.$jconfirmBox = this.$body = this.$el.find('.jconfirm-box');\n this.$jconfirmBg = this.$el.find('.jconfirm-bg');\n this.$title = this.$el.find('.jconfirm-title');\n this.$content = this.$el.find('div.jconfirm-content');\n this.$contentPane = this.$el.find('.jconfirm-content-pane');\n this.$icon = this.$el.find('.jconfirm-icon-c');\n this.$closeIcon = this.$el.find('.jconfirm-closeIcon');\n // this.$content.css(this._getCSS(this.animationSpeed, this.animationBounce));\n this.$btnc = this.$el.find('.jconfirm-buttons');\n this.$scrollPane = this.$el.find('.jconfirm-scrollpane');\n\n // for loading content via URL\n this._contentReady = $.Deferred();\n this._modalReady = $.Deferred();\n\n this.setTitle();\n this.setIcon();\n this._setButtons();\n this._parseContent();\n\n if (this.isAjax) this.showLoading(false);\n\n $.when(this._contentReady, this._modalReady).then(function () {\n if (that.isAjaxLoading) setTimeout(function () {\n that.isAjaxLoading = false;\n that.setContent();\n that.setTitle();\n that.setIcon();\n setTimeout(function () {\n that.hideLoading(false);\n }, 100);\n if (typeof that.onContentReady == 'function') that.onContentReady();\n }, 50);else {\n that.setContent();\n that.setTitle();\n that.setIcon();\n if (typeof that.onContentReady == 'function') that.onContentReady();\n }\n\n // start countdown after content has loaded.\n if (that.autoClose) that._startCountDown();\n });\n\n // initial hash for comparison\n that._contentHash = this._hash(that.$content.html());\n that._contentHeight = this.$content.height();\n\n this._watchContent();\n this.setDialogCenter();\n\n if (this.animation == 'none') {\n this.animationSpeed = 1;\n this.animationBounce = 1;\n }\n\n this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce));\n this.$contentPane.css(this._getCSS(this.animationSpeed, 1));\n this.$jconfirmBg.css(this._getCSS(this.animationSpeed, 1));\n },\n _typePrefix: 'jconfirm-type-',\n typeParsed: '',\n _parseType: function (type) {\n this.typeParsed = this._typePrefix + type;\n },\n setType: function (type) {\n var oldClass = this.typeParsed;\n this._parseType(type);\n this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);\n },\n themeParsed: '',\n _themePrefix: 'jconfirm-',\n setTheme: function (theme) {\n var that = this;\n var previous = this.theme;\n this.theme = theme || this.theme;\n this._parseTheme(this.theme);\n if (previous) this.$el.removeClass(previous);\n this.$el.addClass(this.themeParsed);\n this.theme = theme;\n },\n _parseTheme: function (theme) {\n var that = this;\n theme = theme.split(',');\n $.each(theme, function (k, a) {\n if (a.indexOf(that._themePrefix) == -1) theme[k] = that._themePrefix + $.trim(a);\n });\n this.themeParsed = theme.join(' ').toLowerCase();\n },\n backgroundDismissAnimationParsed: '',\n _bgDismissPrefix: 'jconfirm-hilight-',\n _parseBgDismissAnimation: function (bgDismissAnimation) {\n var animation = bgDismissAnimation.split(',');\n var that = this;\n $.each(animation, function (k, a) {\n if (a.indexOf(that._bgDismissPrefix) == -1) animation[k] = that._bgDismissPrefix + $.trim(a);\n });\n this.backgroundDismissAnimationParsed = animation.join(' ').toLowerCase();\n },\n animationParsed: '',\n closeAnimationParsed: '',\n _animationPrefix: 'jconfirm-animation-',\n setAnimation: function (animation) {\n this.animation = animation || this.animation;\n this._parseAnimation(this.animation, 'o');\n },\n _parseAnimation: function (animation, which) {\n which = which || 'o'; // parse what animation and store where. open or close?\n var animations = animation.split(',');\n var that = this;\n $.each(animations, function (k, a) {\n if (a.indexOf(that._animationPrefix) == -1) animations[k] = that._animationPrefix + $.trim(a);\n });\n var a_string = animations.join(' ').toLowerCase();\n if (which == 'o') this.animationParsed = a_string;else this.closeAnimationParsed = a_string;\n\n return a_string;\n },\n setCloseAnimation: function (closeAnimation) {\n this.closeAnimation = closeAnimation || this.closeAnimation;\n this._parseAnimation(this.closeAnimation, 'c');\n },\n setAnimationSpeed: function (speed) {\n this.animationSpeed = speed || this.animationSpeed;\n // this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce));\n },\n columnClassParsed: '',\n setColumnClass: function (colClass) {\n this.columnClass = colClass || this.columnClass;\n this._parseColumnClass(this.columnClass);\n this.$jconfirmBoxContainer.addClass(this.columnClassParsed);\n },\n _parseColumnClass: function (colClass) {\n colClass = colClass.toLowerCase();\n var p;\n switch (colClass) {\n case 'xl':\n case 'xlarge':\n p = 'col-md-12';\n break;\n case 'l':\n case 'large':\n p = 'col-md-8 col-md-offset-2';\n break;\n case 'm':\n case 'medium':\n p = 'col-md-6 col-md-offset-3';\n break;\n case 's':\n case 'small':\n p = 'col-md-4 col-md-offset-4';\n break;\n case 'xs':\n case 'xsmall':\n p = 'col-md-2 col-md-offset-5';\n break;\n default:\n p = colClass;\n }\n this.columnClassParsed = p;\n },\n _hash: function (a) {\n return btoa(encodeURIComponent(a));\n },\n _watchContent: function () {\n var that = this;\n if (this._timer) clearInterval(this._timer);\n this._timer = setInterval(function () {\n var now = that._hash(that.$content.html());\n var nowHeight = that.$content.height();\n if (that._contentHash != now || that._contentHeight != nowHeight) {\n that._contentHash = now;\n that._contentHeight = nowHeight;\n that.setDialogCenter();\n that._imagesLoaded();\n }\n }, this.watchInterval);\n },\n _hilightAnimating: false,\n _hiLightModal: function () {\n var that = this;\n if (this._hilightAnimating) return;\n\n that.$body.addClass('hilight');\n // var duration = parseFloat(that.$body.css('animation-duration')) || 0;\n var duration = 2; // 2 seconds default\n this._hilightAnimating = true;\n setTimeout(function () {\n that._hilightAnimating = false;\n that.$body.removeClass('hilight');\n }, duration * 1000);\n },\n _bindEvents: function () {\n var that = this;\n this.boxClicked = false;\n\n this.$scrollPane.click(function (e) {\n // Ignore propagated clicks\n if (!that.boxClicked) {\n // Background clicked\n /*\r\n If backgroundDismiss is a function and its return value is truthy\r\n proceed to close the modal.\r\n */\n var buttonName = false;\n var shouldClose = false;\n var str;\n\n if (typeof that.backgroundDismiss == 'function') str = that.backgroundDismiss();else str = that.backgroundDismiss;\n\n if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') {\n buttonName = str;\n shouldClose = false;\n } else if (typeof str == 'undefined' || !!str == true) {\n shouldClose = true;\n } else {\n shouldClose = false;\n }\n\n if (buttonName) {\n var btnResponse = that.buttons[buttonName].action.apply(that);\n shouldClose = typeof btnResponse == 'undefined' || !!btnResponse;\n }\n\n if (shouldClose) that.close();else that._hiLightModal();\n }\n that.boxClicked = false;\n });\n\n this.$jconfirmBox.click(function (e) {\n that.boxClicked = true;\n });\n\n setTimeout(function () {\n $(window).on('keyup.' + that._id, function (e) {\n that.reactOnKey(e);\n });\n }, 10);\n\n $(window).on('resize.' + this._id, function () {\n that.setDialogCenter(true);\n });\n },\n _cubic_bezier: '0.36, 0.55, 0.19',\n _getCSS: function (speed, bounce) {\n return {\n '-webkit-transition-duration': speed / 1000 + 's',\n 'transition-duration': speed / 1000 + 's',\n '-webkit-transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')',\n 'transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')'\n };\n },\n _imagesLoaded: function () {\n // detect if the image is loaded by checking on its height.\n var that = this;\n if (that.imageLoadInterval) clearInterval(that.imageLoadInterval);\n\n $.each(this.$content.find('img:not(.loaded)'), function (i, a) {\n that.imageLoadInterval = setInterval(function () {\n var h = $(a).css('height');\n if (h !== '0px') {\n $(a).addClass('loaded');\n clearInterval(that.imageLoadInterval);\n that.setDialogCenter();\n }\n }, 40);\n });\n },\n _setButtons: function () {\n var that = this;\n /*\r\n * Settings up buttons\r\n */\n\n var total_buttons = 0;\n if (typeof this.buttons !== 'object') this.buttons = {};\n\n $.each(this.buttons, function (key, button) {\n total_buttons += 1;\n if (typeof button === 'function') {\n that.buttons[key] = button = {\n action: button\n };\n }\n\n that.buttons[key].text = button.text || key;\n that.buttons[key].btnClass = button.btnClass || 'btn-default';\n that.buttons[key].action = button.action || function () {};\n that.buttons[key].keys = button.keys || [];\n\n $.each(that.buttons[key].keys, function (i, a) {\n that.buttons[key].keys[i] = a.toLowerCase();\n });\n\n var button_element = $('').click(function (e) {\n e.preventDefault();\n var res = that.buttons[key].action.apply(that);\n that.onAction(key);\n that._stopCountDown();\n if (typeof res === 'undefined' || res) that.close();\n });\n that.buttons[key].el = button_element;\n that.buttons[key].setText = function (text) {\n button_element.html(text);\n };\n that.buttons[key].addClass = function (className) {\n button_element.addClass(className);\n };\n that.buttons[key].removeClass = function (className) {\n button_element.removeClass(className);\n };\n that.buttons[key].disable = function () {\n button_element.prop('disabled', true);\n };\n that.buttons[key].enable = function () {\n button_element.prop('disabled', false);\n };\n that.buttons[key].show = function () {\n button_element.css('display', '');\n that.setDialogCenter();\n };\n that.buttons[key].hide = function () {\n button_element.css('display', 'none');\n that.setDialogCenter();\n };\n /*\r\n Buttons are prefixed with $_ or $$ for quick access\r\n */\n that['$_' + key] = that['$$' + key] = button_element;\n that.$btnc.append(button_element);\n });\n\n if (total_buttons === 0) this.$btnc.hide();\n if (this.closeIcon === null && total_buttons === 0) {\n /*\r\n in case when no buttons are present & closeIcon is null, closeIcon is set to true,\r\n set closeIcon to true to explicitly tell to hide the close icon\r\n */\n this.closeIcon = true;\n }\n\n if (this.closeIcon) {\n if (this.closeIconClass) {\n // user requires a custom class.\n var closeHtml = '';\n this.$closeIcon.html(closeHtml);\n }\n\n this.$closeIcon.click(function (e) {\n e.preventDefault();\n\n var buttonName = false;\n var shouldClose = false;\n var str;\n\n if (typeof that.closeIcon == 'function') {\n str = that.closeIcon();\n } else {\n str = that.closeIcon;\n }\n\n if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') {\n buttonName = str;\n shouldClose = false;\n } else if (typeof str == 'undefined' || !!str == true) {\n shouldClose = true;\n } else {\n shouldClose = false;\n }\n if (buttonName) {\n var btnResponse = that.buttons[buttonName].action.apply(that);\n shouldClose = typeof btnResponse == 'undefined' || !!btnResponse;\n }\n if (shouldClose) {\n that.close();\n }\n });\n this.$closeIcon.show();\n } else {\n this.$closeIcon.hide();\n }\n },\n setTitle: function (string, force) {\n force = force || false;\n\n if (typeof string !== 'undefined') if (typeof string == 'string') this.title = string;else if (typeof string == 'function') {\n if (typeof string.promise == 'function') console.error('Promise was returned from title function, this is not supported.');\n\n var response = string();\n if (typeof response == 'string') this.title = response;else this.title = false;\n } else this.title = false;\n\n if (this.isAjax && !force) return;\n\n this.$title.html(this.title || '');\n },\n setIcon: function (iconClass, force) {\n force = force || false;\n\n if (typeof iconClass !== 'undefined') if (typeof iconClass == 'string') this.icon = iconClass;else if (typeof iconClass === 'function') {\n var response = iconClass();\n if (typeof response == 'string') this.icon = response;else this.icon = false;\n } else this.icon = false;\n\n if (this.isAjax && !force) return;\n\n this.$icon.html(this.icon ? '' : '');\n },\n setContentPrepend: function (string, force) {\n this.contentParsed = string + this.contentParsed;\n if (this.isAjaxLoading && !force) return;\n\n this.$content.prepend(string);\n },\n setContentAppend: function (string, force) {\n this.contentParsed = this.contentParsed + string;\n if (this.isAjaxLoading && !force) return;\n\n this.$content.append(string);\n },\n setContent: function (string, force) {\n force = force || false;\n var that = this;\n this.contentParsed = typeof string == 'undefined' ? this.contentParsed : string;\n if (this.isAjaxLoading && !force) return;\n\n this.$content.html(this.contentParsed);\n this.setDialogCenter();\n setTimeout(function () {\n that.$body.find('input[autofocus]:visible:first').focus();\n }, 100);\n },\n loadingSpinner: false,\n showLoading: function (disableButtons) {\n this.loadingSpinner = true;\n this.$jconfirmBox.addClass('loading');\n if (disableButtons) this.$btnc.find('button').prop('disabled', true);\n\n this.setDialogCenter();\n },\n hideLoading: function (enableButtons) {\n this.loadingSpinner = false;\n this.$jconfirmBox.removeClass('loading');\n if (enableButtons) this.$btnc.find('button').prop('disabled', false);\n\n this.setDialogCenter();\n },\n ajaxResponse: false,\n contentParsed: '',\n isAjax: false,\n isAjaxLoading: false,\n _parseContent: function () {\n var that = this;\n var e = ' ';\n\n if (typeof this.content == 'function') {\n var res = this.content.apply(this);\n if (typeof res == 'string') {\n this.content = res;\n } else if (typeof res == 'object' && typeof res.always == 'function') {\n // this is ajax loading via promise\n this.isAjax = true;\n this.isAjaxLoading = true;\n res.always(function (data, status, xhr) {\n that.ajaxResponse = {\n data: data,\n status: status,\n xhr: xhr\n };\n that._contentReady.resolve(data, status, xhr);\n if (typeof that.contentLoaded == 'function') that.contentLoaded(data, status, xhr);\n });\n this.content = e;\n } else {\n this.content = e;\n }\n }\n\n if (typeof this.content == 'string' && this.content.substr(0, 4).toLowerCase() === 'url:') {\n this.isAjax = true;\n this.isAjaxLoading = true;\n var u = this.content.substring(4, this.content.length);\n $.get(u).done(function (html) {\n that.contentParsed = html;\n }).always(function (data, status, xhr) {\n that.ajaxResponse = {\n data: data,\n status: status,\n xhr: xhr\n };\n that._contentReady.resolve(data, status, xhr);\n if (typeof that.contentLoaded == 'function') that.contentLoaded(data, status, xhr);\n });\n }\n\n if (!this.content) this.content = e;\n\n if (!this.isAjax) {\n this.contentParsed = this.content;\n this.setContent(this.contentParsed);\n that._contentReady.resolve();\n }\n },\n _stopCountDown: function () {\n clearInterval(this.autoCloseInterval);\n if (this.$cd) this.$cd.remove();\n },\n _startCountDown: function () {\n var that = this;\n var opt = this.autoClose.split('|');\n if (opt.length !== 2) {\n console.error('Invalid option for autoClose. example \\'close|10000\\'');\n return false;\n }\n\n var button_key = opt[0];\n var time = parseInt(opt[1]);\n if (typeof this.buttons[button_key] === 'undefined') {\n console.error('Invalid button key \\'' + button_key + '\\' for autoClose');\n return false;\n }\n\n var seconds = time / 1000;\n this.$cd = $(' (' + seconds + ')').appendTo(this['$_' + button_key]);\n\n this.autoCloseInterval = setInterval(function () {\n that.$cd.html(' (' + (seconds -= 1) + ') ');\n if (seconds === 0) {\n that['$$' + button_key].trigger('click');\n that._stopCountDown();\n }\n }, 1000);\n },\n _getKey: function (key) {\n // very necessary keys.\n switch (key) {\n case 192:\n return 'tilde';\n case 13:\n return 'enter';\n case 16:\n return 'shift';\n case 9:\n return 'tab';\n case 20:\n return 'capslock';\n case 17:\n return 'ctrl';\n case 91:\n return 'win';\n case 18:\n return 'alt';\n case 27:\n return 'esc';\n case 32:\n return 'space';\n }\n\n // only trust alphabets with this.\n var initial = String.fromCharCode(key);\n if (/^[A-z0-9]+$/.test(initial)) return initial.toLowerCase();else return false;\n },\n reactOnKey: function (e) {\n var that = this;\n\n /*\r\n Prevent keyup event if the dialog is not last!\r\n */\n var a = $('.jconfirm');\n if (a.eq(a.length - 1)[0] !== this.$el[0]) return false;\n\n var key = e.which;\n /*\r\n Do not react if Enter or Space is pressed on input elements\r\n */\n if (this.$content.find(':input').is(':focus') && /13|32/.test(key)) return false;\n\n var keyChar = this._getKey(key);\n\n // If esc is pressed\n if (keyChar === 'esc' && this.escapeKey) {\n if (this.escapeKey === true) {\n this.$scrollPane.trigger('click');\n } else if (typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function') {\n var buttonKey;\n if (typeof this.escapeKey === 'function') {\n buttonKey = this.escapeKey();\n } else {\n buttonKey = this.escapeKey;\n }\n\n if (buttonKey) if (typeof this.buttons[buttonKey] === 'undefined') {\n console.warn('Invalid escapeKey, no buttons found with key ' + buttonKey);\n } else {\n this['$_' + buttonKey].trigger('click');\n }\n }\n }\n\n // check if any button is listening to this key.\n $.each(this.buttons, function (key, button) {\n if (button.keys.indexOf(keyChar) != -1) {\n that['$_' + key].trigger('click');\n }\n });\n },\n setDialogCenter: function () {\n var contentHeight;\n var paneHeight;\n var style;\n\n contentHeight = 0;\n paneHeight = 0;\n if (this.$contentPane.css('display') != 'none') {\n contentHeight = this.$content.outerHeight() || 0;\n paneHeight = this.$contentPane.height() || 0;\n }\n\n // if the child has margin top\n var children = this.$content.children();\n if (children.length != 0) {\n var marginTopChild = parseInt(children.eq(0).css('margin-top'));\n if (marginTopChild) contentHeight += marginTopChild;\n }\n\n if (paneHeight == 0) paneHeight = contentHeight;\n\n var windowHeight = $(window).height();\n var boxHeight;\n\n boxHeight = this.$body.outerHeight() - paneHeight + contentHeight;\n\n var topMargin = (windowHeight - boxHeight) / 2;\n var minMargin = 100; // todo: include this in options\n if (boxHeight > windowHeight - minMargin) {\n style = {\n 'margin-top': minMargin / 2,\n 'margin-bottom': minMargin / 2\n };\n $('body').addClass('jconfirm-no-scroll-' + this._id);\n } else {\n style = {\n 'margin-top': topMargin,\n 'margin-bottom': minMargin / 2\n };\n $('body').removeClass('jconfirm-no-scroll-' + this._id);\n }\n\n this.$contentPane.css({\n 'height': contentHeight\n }).scrollTop(0);\n this.$body.css(style);\n },\n _unwatchContent: function () {\n clearInterval(this._timer);\n },\n close: function () {\n var that = this;\n\n if (typeof this.onClose === 'function') this.onClose();\n\n this._unwatchContent();\n clearInterval(this.imageLoadInterval);\n\n /*\r\n unbind the window resize & keyup event.\r\n */\n $(window).unbind('resize.' + this._id);\n $(window).unbind('keyup.' + this._id);\n $('body').removeClass('jconfirm-no-scroll-' + this._id);\n this.$body.addClass(this.closeAnimationParsed);\n this.$jconfirmBg.addClass('jconfirm-bg-h');\n var closeTimer = this.closeAnimation == 'none' ? 1 : this.animationSpeed;\n setTimeout(function () {\n that.$el.remove();\n\n if (that._lastFocused.length && $.contains(document, that._lastFocused[0])) {\n var st = $(window).scrollTop();\n var ot = that._lastFocused.offset().top;\n var wh = $(window).height();\n if (!(ot > st && ot < st + wh)) {\n $('html, body').animate({\n scrollTop: ot - Math.round(wh / 3)\n }, that.animationSpeed, 'swing', function () {\n that._lastFocused.focus();\n });\n } else {\n that._lastFocused.focus();\n }\n }\n\n if (typeof that.onDestroy == 'function') that.onDestroy();\n }, closeTimer * 0.40);\n\n return true;\n },\n open: function () {\n // var that = this;\n this._buildHTML();\n this._bindEvents();\n this._open();\n\n return true;\n },\n _open: function () {\n var that = this;\n if (typeof that.onOpenBefore == 'function') that.onOpenBefore();\n this.$body.removeClass(this.animationParsed);\n this.$jconfirmBg.removeClass('jconfirm-bg-h');\n this.$body.focus();\n setTimeout(function () {\n that.$body.css(that._getCSS(that.animationSpeed, 1));\n that.$body.css({\n 'transition-property': that.$body.css('transition-property') + ', margin'\n });\n that._modalReady.resolve();\n if (typeof that.onOpen === 'function') that.onOpen();\n }, this.animationSpeed);\n },\n isClosed: function () {\n return this.$el.css('display') === '';\n },\n isOpen: function () {\n return !this.isClosed();\n },\n toggle: function () {\n if (!this.isOpen()) this.open();else this.close();\n }\n };\n\n jconfirm.instances = [];\n jconfirm.pluginDefaults = {\n template: '' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
×
' + '
' + '' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
',\n title: 'Hello',\n titleClass: '',\n type: 'default',\n typeAnimated: true,\n content: 'Are you sure to continue?',\n buttons: {},\n defaultButtons: {\n ok: {\n action: function () {}\n },\n close: {\n action: function () {}\n }\n },\n contentLoaded: function () {},\n icon: '',\n bgOpacity: null,\n theme: 'light',\n animation: 'zoom',\n closeAnimation: 'scale',\n animationSpeed: 400,\n animationBounce: 1.2,\n escapeKey: true,\n rtl: false,\n container: 'body',\n containerFluid: false,\n backgroundDismiss: false,\n backgroundDismissAnimation: 'shake',\n autoClose: false,\n closeIcon: null,\n closeIconClass: false,\n watchInterval: 100,\n columnClass: 'col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1',\n boxWidth: '50%',\n useBootstrap: true,\n bootstrapClasses: {\n container: 'container',\n containerFluid: 'container-fluid',\n row: 'row'\n },\n onContentReady: function () {},\n onOpenBefore: function () {},\n onOpen: function () {},\n onClose: function () {},\n onDestroy: function () {},\n onAction: function () {}\n };\n})(jQuery);","\"function\" != typeof Object.create && (Object.create = function (t) {\n function o() {}return o.prototype = t, new o();\n}), function (t, o) {\n \"use strict\";\n var i = { _positionClasses: [\"bottom-left\", \"bottom-right\", \"top-right\", \"top-left\", \"bottom-center\", \"top-center\", \"mid-center\"], _defaultIcons: [\"success\", \"error\", \"info\", \"warning\"], init: function (o) {\n this.prepareOptions(o, t.toast.options), this.process();\n }, prepareOptions: function (o, i) {\n var s = {};\"string\" == typeof o || o instanceof Array ? s.text = o : s = o, this.options = t.extend({}, i, s);\n }, process: function () {\n this.setup(), this.addToDom(), this.position(), this.bindToast(), this.animate();\n }, setup: function () {\n var o = \"\";if (this._toastEl = this._toastEl || t(\"
\", { \"class\": \"jq-toast-single\" }), o += '', this.options.allowToastClose && (o += '×'), this.options.text instanceof Array) {\n this.options.heading && (o += '

' + this.options.heading + \"

\"), o += '
    ';for (var i = 0; i < this.options.text.length; i++) o += '
  • ' + this.options.text[i] + \"
  • \";o += \"
\";\n } else this.options.heading && (o += '

' + this.options.heading + \"

\"), o += this.options.text;this._toastEl.html(o), this.options.bgColor !== !1 && this._toastEl.css(\"background-color\", this.options.bgColor), this.options.textColor !== !1 && this._toastEl.css(\"color\", this.options.textColor), this.options.textAlign && this._toastEl.css(\"text-align\", this.options.textAlign), this.options.icon !== !1 && (this._toastEl.addClass(\"jq-has-icon\"), -1 !== t.inArray(this.options.icon, this._defaultIcons) && this._toastEl.addClass(\"jq-icon-\" + this.options.icon));\n }, position: function () {\n \"string\" == typeof this.options.position && -1 !== t.inArray(this.options.position, this._positionClasses) ? \"bottom-center\" === this.options.position ? this._container.css({ left: t(o).outerWidth() / 2 - this._container.outerWidth() / 2, bottom: 20 }) : \"top-center\" === this.options.position ? this._container.css({ left: t(o).outerWidth() / 2 - this._container.outerWidth() / 2, top: 20 }) : \"mid-center\" === this.options.position ? this._container.css({ left: t(o).outerWidth() / 2 - this._container.outerWidth() / 2, top: t(o).outerHeight() / 2 - this._container.outerHeight() / 2 }) : this._container.addClass(this.options.position) : \"object\" == typeof this.options.position ? this._container.css({ top: this.options.position.top ? this.options.position.top : \"auto\", bottom: this.options.position.bottom ? this.options.position.bottom : \"auto\", left: this.options.position.left ? this.options.position.left : \"auto\", right: this.options.position.right ? this.options.position.right : \"auto\" }) : this._container.addClass(\"bottom-left\");\n }, bindToast: function () {\n var t = this;this._toastEl.on(\"afterShown\", function () {\n t.processLoader();\n }), this._toastEl.find(\".close-jq-toast-single\").on(\"click\", function (o) {\n o.preventDefault(), \"fade\" === t.options.showHideTransition ? (t._toastEl.trigger(\"beforeHide\"), t._toastEl.fadeOut(function () {\n t._toastEl.trigger(\"afterHidden\");\n })) : \"slide\" === t.options.showHideTransition ? (t._toastEl.trigger(\"beforeHide\"), t._toastEl.slideUp(function () {\n t._toastEl.trigger(\"afterHidden\");\n })) : (t._toastEl.trigger(\"beforeHide\"), t._toastEl.hide(function () {\n t._toastEl.trigger(\"afterHidden\");\n }));\n }), \"function\" == typeof this.options.beforeShow && this._toastEl.on(\"beforeShow\", function () {\n t.options.beforeShow();\n }), \"function\" == typeof this.options.afterShown && this._toastEl.on(\"afterShown\", function () {\n t.options.afterShown();\n }), \"function\" == typeof this.options.beforeHide && this._toastEl.on(\"beforeHide\", function () {\n t.options.beforeHide();\n }), \"function\" == typeof this.options.afterHidden && this._toastEl.on(\"afterHidden\", function () {\n t.options.afterHidden();\n });\n }, addToDom: function () {\n var o = t(\".jq-toast-wrap\");if (0 === o.length ? (o = t(\"
\", { \"class\": \"jq-toast-wrap\" }), t(\"body\").append(o)) : (!this.options.stack || isNaN(parseInt(this.options.stack, 10))) && o.empty(), o.find(\".jq-toast-single:hidden\").remove(), o.append(this._toastEl), this.options.stack && !isNaN(parseInt(this.options.stack), 10)) {\n var i = o.find(\".jq-toast-single\").length,\n s = i - this.options.stack;s > 0 && t(\".jq-toast-wrap\").find(\".jq-toast-single\").slice(0, s).remove();\n }this._container = o;\n }, canAutoHide: function () {\n return this.options.hideAfter !== !1 && !isNaN(parseInt(this.options.hideAfter, 10));\n }, processLoader: function () {\n if (!this.canAutoHide() || this.options.loader === !1) return !1;var t = this._toastEl.find(\".jq-toast-loader\"),\n o = (this.options.hideAfter - 400) / 1e3 + \"s\",\n i = this.options.loaderBg,\n s = t.attr(\"style\") || \"\";s = s.substring(0, s.indexOf(\"-webkit-transition\")), s += \"-webkit-transition: width \" + o + \" ease-in; -o-transition: width \" + o + \" ease-in; transition: width \" + o + \" ease-in; background-color: \" + i + \";\", t.attr(\"style\", s).addClass(\"jq-toast-loaded\");\n }, animate: function () {\n var t = this;if (this._toastEl.hide(), this._toastEl.trigger(\"beforeShow\"), \"fade\" === this.options.showHideTransition.toLowerCase() ? this._toastEl.fadeIn(function () {\n t._toastEl.trigger(\"afterShown\");\n }) : \"slide\" === this.options.showHideTransition.toLowerCase() ? this._toastEl.slideDown(function () {\n t._toastEl.trigger(\"afterShown\");\n }) : this._toastEl.show(function () {\n t._toastEl.trigger(\"afterShown\");\n }), this.canAutoHide()) {\n var t = this;o.setTimeout(function () {\n \"fade\" === t.options.showHideTransition.toLowerCase() ? (t._toastEl.trigger(\"beforeHide\"), t._toastEl.fadeOut(function () {\n t._toastEl.trigger(\"afterHidden\");\n })) : \"slide\" === t.options.showHideTransition.toLowerCase() ? (t._toastEl.trigger(\"beforeHide\"), t._toastEl.slideUp(function () {\n t._toastEl.trigger(\"afterHidden\");\n })) : (t._toastEl.trigger(\"beforeHide\"), t._toastEl.hide(function () {\n t._toastEl.trigger(\"afterHidden\");\n }));\n }, this.options.hideAfter);\n }\n }, reset: function (o) {\n \"all\" === o ? t(\".jq-toast-wrap\").remove() : this._toastEl.remove();\n }, update: function (t) {\n this.prepareOptions(t, this.options), this.setup(), this.bindToast();\n } };t.toast = function (t) {\n var o = Object.create(i);return o.init(t, this), { reset: function (t) {\n o.reset(t);\n }, update: function (t) {\n o.update(t);\n } };\n }, t.toast.options = { text: \"\", heading: \"\", showHideTransition: \"fade\", allowToastClose: !0, hideAfter: 3e3, loader: !0, loaderBg: \"#9EC600\", stack: 5, position: \"bottom-left\", bgColor: !1, textColor: !1, textAlign: \"left\", icon: !1, beforeShow: function () {}, afterShown: function () {}, beforeHide: function () {}, afterHidden: function () {} };\n}(jQuery, window, document);","/**\r\n * Swiper 3.4.2\r\n * Most modern mobile touch slider and framework with hardware accelerated transitions\r\n * \r\n * http://www.idangero.us/swiper/\r\n * \r\n * Copyright 2017, Vladimir Kharlampidi\r\n * The iDangero.us\r\n * http://www.idangero.us/\r\n * \r\n * Licensed under MIT\r\n * \r\n * Released on: March 10, 2017\r\n */\n(function () {\n 'use strict';\n\n var $;\n\n /*===========================\r\n Swiper\r\n ===========================*/\n var Swiper = function (container, params) {\n if (!(this instanceof Swiper)) return new Swiper(container, params);\n\n var defaults = {\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n // autoplay\n autoplay: false,\n autoplayDisableOnInteraction: true,\n autoplayStopOnLast: false,\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n coverflow: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true\n },\n flip: {\n slideShadows: true,\n limitRotation: true\n },\n cube: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n },\n fade: {\n crossFade: false\n },\n // Parallax\n parallax: false,\n // Zoom\n zoom: false,\n zoomMax: 3,\n zoomMin: 1,\n zoomToggle: true,\n // Scrollbar\n scrollbar: null,\n scrollbarHide: true,\n scrollbarDraggable: false,\n scrollbarSnapOnRelease: false,\n // Keyboard Mousewheel\n keyboardControl: false,\n mousewheelControl: false,\n mousewheelReleaseOnEdges: false,\n mousewheelInvert: false,\n mousewheelForceToAxis: false,\n mousewheelSensitivity: 1,\n mousewheelEventsTarged: 'container',\n // Hash Navigation\n hashnav: false,\n hashnavWatchState: false,\n // History\n history: false,\n // Commong Nav State\n replaceState: false,\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n onlyExternal: false,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Pagination\n pagination: null,\n paginationElement: 'span',\n paginationClickable: false,\n paginationHide: false,\n paginationBulletRender: null,\n paginationProgressRender: null,\n paginationFractionRender: null,\n paginationCustomRender: null,\n paginationType: 'bullets', // 'bullets' or 'progress' or 'fraction' or 'custom'\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Next/prev buttons\n nextButton: null,\n prevButton: null,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Lazy Loading\n lazyLoading: false,\n lazyLoadingInPrevNext: false,\n lazyLoadingInPrevNextAmount: 1,\n lazyLoadingOnTransitionStart: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n // Control\n control: undefined,\n controlInverse: false,\n controlBy: 'slide', //or 'container'\n normalizeSlideIndex: true,\n // Swiping/no swiping\n allowSwipeToPrev: true,\n allowSwipeToNext: true,\n swipeHandler: null, //'.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n buttonDisabledClass: 'swiper-button-disabled',\n paginationCurrentClass: 'swiper-pagination-current',\n paginationTotalClass: 'swiper-pagination-total',\n paginationHiddenClass: 'swiper-pagination-hidden',\n paginationProgressbarClass: 'swiper-pagination-progressbar',\n paginationClickableClass: 'swiper-pagination-clickable', // NEW\n paginationModifierClass: 'swiper-pagination-', // NEW\n lazyLoadingClass: 'swiper-lazy',\n lazyStatusLoadingClass: 'swiper-lazy-loading',\n lazyStatusLoadedClass: 'swiper-lazy-loaded',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n notificationClass: 'swiper-notification',\n preloaderClass: 'preloader',\n zoomContainerClass: 'swiper-zoom-container',\n\n // Observer\n observer: false,\n observeParents: false,\n // Accessibility\n a11y: false,\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n // Callbacks\n runCallbacksOnInit: true\n /*\r\n Callbacks:\r\n onInit: function (swiper)\r\n onDestroy: function (swiper)\r\n onBeforeResize: function (swiper)\r\n onAfterResize: function (swiper)\r\n onClick: function (swiper, e)\r\n onTap: function (swiper, e)\r\n onDoubleTap: function (swiper, e)\r\n onSliderMove: function (swiper, e)\r\n onSlideChangeStart: function (swiper)\r\n onSlideChangeEnd: function (swiper)\r\n onTransitionStart: function (swiper)\r\n onTransitionEnd: function (swiper)\r\n onImagesReady: function (swiper)\r\n onProgress: function (swiper, progress)\r\n onTouchStart: function (swiper, e)\r\n onTouchMove: function (swiper, e)\r\n onTouchMoveOpposite: function (swiper, e)\r\n onTouchEnd: function (swiper, e)\r\n onReachBeginning: function (swiper)\r\n onReachEnd: function (swiper)\r\n onSetTransition: function (swiper, duration)\r\n onSetTranslate: function (swiper, translate)\r\n onAutoplayStart: function (swiper)\r\n onAutoplayStop: function (swiper),\r\n onLazyImageLoad: function (swiper, slide, image)\r\n onLazyImageReady: function (swiper, slide, image)\r\n onKeyPress: function (swiper, keyCode)\r\n */\n\n };\n var initialVirtualTranslate = params && params.virtualTranslate;\n\n params = params || {};\n var originalParams = {};\n for (var param in params) {\n if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || typeof Dom7 !== 'undefined' && params[param] instanceof Dom7 || typeof jQuery !== 'undefined' && params[param] instanceof jQuery)) {\n originalParams[param] = {};\n for (var deepParam in params[param]) {\n originalParams[param][deepParam] = params[param][deepParam];\n }\n } else {\n originalParams[param] = params[param];\n }\n }\n for (var def in defaults) {\n if (typeof params[def] === 'undefined') {\n params[def] = defaults[def];\n } else if (typeof params[def] === 'object') {\n for (var deepDef in defaults[def]) {\n if (typeof params[def][deepDef] === 'undefined') {\n params[def][deepDef] = defaults[def][deepDef];\n }\n }\n }\n }\n\n // Swiper\n var s = this;\n\n // Params\n s.params = params;\n s.originalParams = originalParams;\n\n // Classname\n s.classNames = [];\n /*=========================\r\n Dom Library and plugins\r\n ===========================*/\n if (typeof $ !== 'undefined' && typeof Dom7 !== 'undefined') {\n $ = Dom7;\n }\n if (typeof $ === 'undefined') {\n if (typeof Dom7 === 'undefined') {\n $ = window.Dom7 || window.Zepto || window.jQuery;\n } else {\n $ = Dom7;\n }\n if (!$) return;\n }\n // Export it to Swiper instance\n s.$ = $;\n\n /*=========================\r\n Breakpoints\r\n ===========================*/\n s.currentBreakpoint = undefined;\n s.getActiveBreakpoint = function () {\n //Get breakpoint for window width\n if (!s.params.breakpoints) return false;\n var breakpoint = false;\n var points = [],\n point;\n for (point in s.params.breakpoints) {\n if (s.params.breakpoints.hasOwnProperty(point)) {\n points.push(point);\n }\n }\n points.sort(function (a, b) {\n return parseInt(a, 10) > parseInt(b, 10);\n });\n for (var i = 0; i < points.length; i++) {\n point = points[i];\n if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n };\n s.setBreakpoint = function () {\n //Set breakpoint for window width and update parameters\n var breakpoint = s.getActiveBreakpoint();\n if (breakpoint && s.currentBreakpoint !== breakpoint) {\n var breakPointsParams = breakpoint in s.params.breakpoints ? s.params.breakpoints[breakpoint] : s.originalParams;\n var needsReLoop = s.params.loop && breakPointsParams.slidesPerView !== s.params.slidesPerView;\n for (var param in breakPointsParams) {\n s.params[param] = breakPointsParams[param];\n }\n s.currentBreakpoint = breakpoint;\n if (needsReLoop && s.destroyLoop) {\n s.reLoop(true);\n }\n }\n };\n // Set breakpoint on load\n if (s.params.breakpoints) {\n s.setBreakpoint();\n }\n\n /*=========================\r\n Preparation - Define Container, Wrapper and Pagination\r\n ===========================*/\n s.container = $(container);\n if (s.container.length === 0) return;\n if (s.container.length > 1) {\n var swipers = [];\n s.container.each(function () {\n var container = this;\n swipers.push(new Swiper(this, params));\n });\n return swipers;\n }\n\n // Save instance in container HTML Element and in data\n s.container[0].swiper = s;\n s.container.data('swiper', s);\n\n s.classNames.push(s.params.containerModifierClass + s.params.direction);\n\n if (s.params.freeMode) {\n s.classNames.push(s.params.containerModifierClass + 'free-mode');\n }\n if (!s.support.flexbox) {\n s.classNames.push(s.params.containerModifierClass + 'no-flexbox');\n s.params.slidesPerColumn = 1;\n }\n if (s.params.autoHeight) {\n s.classNames.push(s.params.containerModifierClass + 'autoheight');\n }\n // Enable slides progress when required\n if (s.params.parallax || s.params.watchSlidesVisibility) {\n s.params.watchSlidesProgress = true;\n }\n // Max resistance when touchReleaseOnEdges\n if (s.params.touchReleaseOnEdges) {\n s.params.resistanceRatio = 0;\n }\n // Coverflow / 3D\n if (['cube', 'coverflow', 'flip'].indexOf(s.params.effect) >= 0) {\n if (s.support.transforms3d) {\n s.params.watchSlidesProgress = true;\n s.classNames.push(s.params.containerModifierClass + '3d');\n } else {\n s.params.effect = 'slide';\n }\n }\n if (s.params.effect !== 'slide') {\n s.classNames.push(s.params.containerModifierClass + s.params.effect);\n }\n if (s.params.effect === 'cube') {\n s.params.resistanceRatio = 0;\n s.params.slidesPerView = 1;\n s.params.slidesPerColumn = 1;\n s.params.slidesPerGroup = 1;\n s.params.centeredSlides = false;\n s.params.spaceBetween = 0;\n s.params.virtualTranslate = true;\n }\n if (s.params.effect === 'fade' || s.params.effect === 'flip') {\n s.params.slidesPerView = 1;\n s.params.slidesPerColumn = 1;\n s.params.slidesPerGroup = 1;\n s.params.watchSlidesProgress = true;\n s.params.spaceBetween = 0;\n if (typeof initialVirtualTranslate === 'undefined') {\n s.params.virtualTranslate = true;\n }\n }\n\n // Grab Cursor\n if (s.params.grabCursor && s.support.touch) {\n s.params.grabCursor = false;\n }\n\n // Wrapper\n s.wrapper = s.container.children('.' + s.params.wrapperClass);\n\n // Pagination\n if (s.params.pagination) {\n s.paginationContainer = $(s.params.pagination);\n if (s.params.uniqueNavElements && typeof s.params.pagination === 'string' && s.paginationContainer.length > 1 && s.container.find(s.params.pagination).length === 1) {\n s.paginationContainer = s.container.find(s.params.pagination);\n }\n\n if (s.params.paginationType === 'bullets' && s.params.paginationClickable) {\n s.paginationContainer.addClass(s.params.paginationModifierClass + 'clickable');\n } else {\n s.params.paginationClickable = false;\n }\n s.paginationContainer.addClass(s.params.paginationModifierClass + s.params.paginationType);\n }\n // Next/Prev Buttons\n if (s.params.nextButton || s.params.prevButton) {\n if (s.params.nextButton) {\n s.nextButton = $(s.params.nextButton);\n if (s.params.uniqueNavElements && typeof s.params.nextButton === 'string' && s.nextButton.length > 1 && s.container.find(s.params.nextButton).length === 1) {\n s.nextButton = s.container.find(s.params.nextButton);\n }\n }\n if (s.params.prevButton) {\n s.prevButton = $(s.params.prevButton);\n if (s.params.uniqueNavElements && typeof s.params.prevButton === 'string' && s.prevButton.length > 1 && s.container.find(s.params.prevButton).length === 1) {\n s.prevButton = s.container.find(s.params.prevButton);\n }\n }\n }\n\n // Is Horizontal\n s.isHorizontal = function () {\n return s.params.direction === 'horizontal';\n };\n // s.isH = isH;\n\n // RTL\n s.rtl = s.isHorizontal() && (s.container[0].dir.toLowerCase() === 'rtl' || s.container.css('direction') === 'rtl');\n if (s.rtl) {\n s.classNames.push(s.params.containerModifierClass + 'rtl');\n }\n\n // Wrong RTL support\n if (s.rtl) {\n s.wrongRTL = s.wrapper.css('display') === '-webkit-box';\n }\n\n // Columns\n if (s.params.slidesPerColumn > 1) {\n s.classNames.push(s.params.containerModifierClass + 'multirow');\n }\n\n // Check for Android\n if (s.device.android) {\n s.classNames.push(s.params.containerModifierClass + 'android');\n }\n\n // Add classes\n s.container.addClass(s.classNames.join(' '));\n\n // Translate\n s.translate = 0;\n\n // Progress\n s.progress = 0;\n\n // Velocity\n s.velocity = 0;\n\n /*=========================\r\n Locks, unlocks\r\n ===========================*/\n s.lockSwipeToNext = function () {\n s.params.allowSwipeToNext = false;\n if (s.params.allowSwipeToPrev === false && s.params.grabCursor) {\n s.unsetGrabCursor();\n }\n };\n s.lockSwipeToPrev = function () {\n s.params.allowSwipeToPrev = false;\n if (s.params.allowSwipeToNext === false && s.params.grabCursor) {\n s.unsetGrabCursor();\n }\n };\n s.lockSwipes = function () {\n s.params.allowSwipeToNext = s.params.allowSwipeToPrev = false;\n if (s.params.grabCursor) s.unsetGrabCursor();\n };\n s.unlockSwipeToNext = function () {\n s.params.allowSwipeToNext = true;\n if (s.params.allowSwipeToPrev === true && s.params.grabCursor) {\n s.setGrabCursor();\n }\n };\n s.unlockSwipeToPrev = function () {\n s.params.allowSwipeToPrev = true;\n if (s.params.allowSwipeToNext === true && s.params.grabCursor) {\n s.setGrabCursor();\n }\n };\n s.unlockSwipes = function () {\n s.params.allowSwipeToNext = s.params.allowSwipeToPrev = true;\n if (s.params.grabCursor) s.setGrabCursor();\n };\n\n /*=========================\r\n Round helper\r\n ===========================*/\n function round(a) {\n return Math.floor(a);\n }\n /*=========================\r\n Set grab cursor\r\n ===========================*/\n s.setGrabCursor = function (moving) {\n s.container[0].style.cursor = 'move';\n s.container[0].style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n s.container[0].style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n s.container[0].style.cursor = moving ? 'grabbing' : 'grab';\n };\n s.unsetGrabCursor = function () {\n s.container[0].style.cursor = '';\n };\n if (s.params.grabCursor) {\n s.setGrabCursor();\n }\n /*=========================\r\n Update on Images Ready\r\n ===========================*/\n s.imagesToLoad = [];\n s.imagesLoaded = 0;\n\n s.loadImage = function (imgElement, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback) callback();\n }\n if (!imgElement.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n //image already loaded...\n onReady();\n }\n };\n s.preloadImages = function () {\n s.imagesToLoad = s.container.find('img');\n function _onReady() {\n if (typeof s === 'undefined' || s === null || !s) return;\n if (s.imagesLoaded !== undefined) s.imagesLoaded++;\n if (s.imagesLoaded === s.imagesToLoad.length) {\n if (s.params.updateOnImagesReady) s.update();\n s.emit('onImagesReady', s);\n }\n }\n for (var i = 0; i < s.imagesToLoad.length; i++) {\n s.loadImage(s.imagesToLoad[i], s.imagesToLoad[i].currentSrc || s.imagesToLoad[i].getAttribute('src'), s.imagesToLoad[i].srcset || s.imagesToLoad[i].getAttribute('srcset'), s.imagesToLoad[i].sizes || s.imagesToLoad[i].getAttribute('sizes'), true, _onReady);\n }\n };\n\n /*=========================\r\n Autoplay\r\n ===========================*/\n s.autoplayTimeoutId = undefined;\n s.autoplaying = false;\n s.autoplayPaused = false;\n function autoplay() {\n var autoplayDelay = s.params.autoplay;\n var activeSlide = s.slides.eq(s.activeIndex);\n if (activeSlide.attr('data-swiper-autoplay')) {\n autoplayDelay = activeSlide.attr('data-swiper-autoplay') || s.params.autoplay;\n }\n s.autoplayTimeoutId = setTimeout(function () {\n if (s.params.loop) {\n s.fixLoop();\n s._slideNext();\n s.emit('onAutoplay', s);\n } else {\n if (!s.isEnd) {\n s._slideNext();\n s.emit('onAutoplay', s);\n } else {\n if (!params.autoplayStopOnLast) {\n s._slideTo(0);\n s.emit('onAutoplay', s);\n } else {\n s.stopAutoplay();\n }\n }\n }\n }, autoplayDelay);\n }\n s.startAutoplay = function () {\n if (typeof s.autoplayTimeoutId !== 'undefined') return false;\n if (!s.params.autoplay) return false;\n if (s.autoplaying) return false;\n s.autoplaying = true;\n s.emit('onAutoplayStart', s);\n autoplay();\n };\n s.stopAutoplay = function (internal) {\n if (!s.autoplayTimeoutId) return;\n if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n s.autoplaying = false;\n s.autoplayTimeoutId = undefined;\n s.emit('onAutoplayStop', s);\n };\n s.pauseAutoplay = function (speed) {\n if (s.autoplayPaused) return;\n if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n s.autoplayPaused = true;\n if (speed === 0) {\n s.autoplayPaused = false;\n autoplay();\n } else {\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.autoplayPaused = false;\n if (!s.autoplaying) {\n s.stopAutoplay();\n } else {\n autoplay();\n }\n });\n }\n };\n /*=========================\r\n Min/Max Translate\r\n ===========================*/\n s.minTranslate = function () {\n return -s.snapGrid[0];\n };\n s.maxTranslate = function () {\n return -s.snapGrid[s.snapGrid.length - 1];\n };\n /*=========================\r\n Slider/slides sizes\r\n ===========================*/\n s.updateAutoHeight = function () {\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n // Find slides currently in view\n if (s.params.slidesPerView !== 'auto' && s.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(s.params.slidesPerView); i++) {\n var index = s.activeIndex + i;\n if (index > s.slides.length) break;\n activeSlides.push(s.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(s.slides.eq(s.activeIndex)[0]);\n }\n\n // Find new height from heighest slide in view\n for (i = 0; i < activeSlides.length; i++) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) s.wrapper.css('height', newHeight + 'px');\n };\n s.updateContainerSize = function () {\n var width, height;\n if (typeof s.params.width !== 'undefined') {\n width = s.params.width;\n } else {\n width = s.container[0].clientWidth;\n }\n if (typeof s.params.height !== 'undefined') {\n height = s.params.height;\n } else {\n height = s.container[0].clientHeight;\n }\n if (width === 0 && s.isHorizontal() || height === 0 && !s.isHorizontal()) {\n return;\n }\n\n //Subtract paddings\n width = width - parseInt(s.container.css('padding-left'), 10) - parseInt(s.container.css('padding-right'), 10);\n height = height - parseInt(s.container.css('padding-top'), 10) - parseInt(s.container.css('padding-bottom'), 10);\n\n // Store values\n s.width = width;\n s.height = height;\n s.size = s.isHorizontal() ? s.width : s.height;\n };\n\n s.updateSlidesSize = function () {\n s.slides = s.wrapper.children('.' + s.params.slideClass);\n s.snapGrid = [];\n s.slidesGrid = [];\n s.slidesSizesGrid = [];\n\n var spaceBetween = s.params.spaceBetween,\n slidePosition = -s.params.slidesOffsetBefore,\n i,\n prevSlideSize = 0,\n index = 0;\n if (typeof s.size === 'undefined') return;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * s.size;\n }\n\n s.virtualSize = -spaceBetween;\n // reset margins\n if (s.rtl) s.slides.css({ marginLeft: '', marginTop: '' });else s.slides.css({ marginRight: '', marginBottom: '' });\n\n var slidesNumberEvenToRows;\n if (s.params.slidesPerColumn > 1) {\n if (Math.floor(s.slides.length / s.params.slidesPerColumn) === s.slides.length / s.params.slidesPerColumn) {\n slidesNumberEvenToRows = s.slides.length;\n } else {\n slidesNumberEvenToRows = Math.ceil(s.slides.length / s.params.slidesPerColumn) * s.params.slidesPerColumn;\n }\n if (s.params.slidesPerView !== 'auto' && s.params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, s.params.slidesPerView * s.params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = s.params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = slidesPerRow - (s.params.slidesPerColumn * slidesPerRow - s.slides.length);\n for (i = 0; i < s.slides.length; i++) {\n slideSize = 0;\n var slide = s.slides.eq(i);\n if (s.params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex;\n var column, row;\n if (s.params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n if (++row >= slidesPerColumn) {\n row = 0;\n column++;\n }\n }\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n 'order': newSlideOrderIndex\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css('margin-' + (s.isHorizontal() ? 'top' : 'left'), row !== 0 && s.params.spaceBetween && s.params.spaceBetween + 'px').attr('data-swiper-column', column).attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') continue;\n if (s.params.slidesPerView === 'auto') {\n slideSize = s.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n if (s.params.roundLengths) slideSize = round(slideSize);\n } else {\n slideSize = (s.size - (s.params.slidesPerView - 1) * spaceBetween) / s.params.slidesPerView;\n if (s.params.roundLengths) slideSize = round(slideSize);\n\n if (s.isHorizontal()) {\n s.slides[i].style.width = slideSize + 'px';\n } else {\n s.slides[i].style.height = slideSize + 'px';\n }\n }\n s.slides[i].swiperSlideSize = slideSize;\n s.slidesSizesGrid.push(slideSize);\n\n if (s.params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (index % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n s.slidesGrid.push(slidePosition);\n } else {\n if (index % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n s.slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n s.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index++;\n }\n s.virtualSize = Math.max(s.virtualSize, s.size) + s.params.slidesOffsetAfter;\n var newSlidesGrid;\n\n if (s.rtl && s.wrongRTL && (s.params.effect === 'slide' || s.params.effect === 'coverflow')) {\n s.wrapper.css({ width: s.virtualSize + s.params.spaceBetween + 'px' });\n }\n if (!s.support.flexbox || s.params.setWrapperSize) {\n if (s.isHorizontal()) s.wrapper.css({ width: s.virtualSize + s.params.spaceBetween + 'px' });else s.wrapper.css({ height: s.virtualSize + s.params.spaceBetween + 'px' });\n }\n\n if (s.params.slidesPerColumn > 1) {\n s.virtualSize = (slideSize + s.params.spaceBetween) * slidesNumberEvenToRows;\n s.virtualSize = Math.ceil(s.virtualSize / s.params.slidesPerColumn) - s.params.spaceBetween;\n if (s.isHorizontal()) s.wrapper.css({ width: s.virtualSize + s.params.spaceBetween + 'px' });else s.wrapper.css({ height: s.virtualSize + s.params.spaceBetween + 'px' });\n if (s.params.centeredSlides) {\n newSlidesGrid = [];\n for (i = 0; i < s.snapGrid.length; i++) {\n if (s.snapGrid[i] < s.virtualSize + s.snapGrid[0]) newSlidesGrid.push(s.snapGrid[i]);\n }\n s.snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!s.params.centeredSlides) {\n newSlidesGrid = [];\n for (i = 0; i < s.snapGrid.length; i++) {\n if (s.snapGrid[i] <= s.virtualSize - s.size) {\n newSlidesGrid.push(s.snapGrid[i]);\n }\n }\n s.snapGrid = newSlidesGrid;\n if (Math.floor(s.virtualSize - s.size) - Math.floor(s.snapGrid[s.snapGrid.length - 1]) > 1) {\n s.snapGrid.push(s.virtualSize - s.size);\n }\n }\n if (s.snapGrid.length === 0) s.snapGrid = [0];\n\n if (s.params.spaceBetween !== 0) {\n if (s.isHorizontal()) {\n if (s.rtl) s.slides.css({ marginLeft: spaceBetween + 'px' });else s.slides.css({ marginRight: spaceBetween + 'px' });\n } else s.slides.css({ marginBottom: spaceBetween + 'px' });\n }\n if (s.params.watchSlidesProgress) {\n s.updateSlidesOffset();\n }\n };\n s.updateSlidesOffset = function () {\n for (var i = 0; i < s.slides.length; i++) {\n s.slides[i].swiperSlideOffset = s.isHorizontal() ? s.slides[i].offsetLeft : s.slides[i].offsetTop;\n }\n };\n\n /*=========================\r\n Dynamic Slides Per View\r\n ===========================*/\n s.currentSlidesPerView = function () {\n var spv = 1,\n i,\n j;\n if (s.params.centeredSlides) {\n var size = s.slides[s.activeIndex].swiperSlideSize;\n var breakLoop;\n for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n if (s.slides[i] && !breakLoop) {\n size += s.slides[i].swiperSlideSize;\n spv++;\n if (size > s.size) breakLoop = true;\n }\n }\n for (j = s.activeIndex - 1; j >= 0; j--) {\n if (s.slides[j] && !breakLoop) {\n size += s.slides[j].swiperSlideSize;\n spv++;\n if (size > s.size) breakLoop = true;\n }\n }\n } else {\n for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n if (s.slidesGrid[i] - s.slidesGrid[s.activeIndex] < s.size) {\n spv++;\n }\n }\n }\n return spv;\n };\n /*=========================\r\n Slider/slides progress\r\n ===========================*/\n s.updateSlidesProgress = function (translate) {\n if (typeof translate === 'undefined') {\n translate = s.translate || 0;\n }\n if (s.slides.length === 0) return;\n if (typeof s.slides[0].swiperSlideOffset === 'undefined') s.updateSlidesOffset();\n\n var offsetCenter = -translate;\n if (s.rtl) offsetCenter = translate;\n\n // Visible Slides\n s.slides.removeClass(s.params.slideVisibleClass);\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides[i];\n var slideProgress = (offsetCenter + (s.params.centeredSlides ? s.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.params.spaceBetween);\n if (s.params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + s.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < s.size || slideAfter > 0 && slideAfter <= s.size || slideBefore <= 0 && slideAfter >= s.size;\n if (isVisible) {\n s.slides.eq(i).addClass(s.params.slideVisibleClass);\n }\n }\n slide.progress = s.rtl ? -slideProgress : slideProgress;\n }\n };\n s.updateProgress = function (translate) {\n if (typeof translate === 'undefined') {\n translate = s.translate || 0;\n }\n var translatesDiff = s.maxTranslate() - s.minTranslate();\n var wasBeginning = s.isBeginning;\n var wasEnd = s.isEnd;\n if (translatesDiff === 0) {\n s.progress = 0;\n s.isBeginning = s.isEnd = true;\n } else {\n s.progress = (translate - s.minTranslate()) / translatesDiff;\n s.isBeginning = s.progress <= 0;\n s.isEnd = s.progress >= 1;\n }\n if (s.isBeginning && !wasBeginning) s.emit('onReachBeginning', s);\n if (s.isEnd && !wasEnd) s.emit('onReachEnd', s);\n\n if (s.params.watchSlidesProgress) s.updateSlidesProgress(translate);\n s.emit('onProgress', s, s.progress);\n };\n s.updateActiveIndex = function () {\n var translate = s.rtl ? s.translate : -s.translate;\n var newActiveIndex, i, snapIndex;\n for (i = 0; i < s.slidesGrid.length; i++) {\n if (typeof s.slidesGrid[i + 1] !== 'undefined') {\n if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1] - (s.slidesGrid[i + 1] - s.slidesGrid[i]) / 2) {\n newActiveIndex = i;\n } else if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1]) {\n newActiveIndex = i + 1;\n }\n } else {\n if (translate >= s.slidesGrid[i]) {\n newActiveIndex = i;\n }\n }\n }\n // Normalize slideIndex\n if (s.params.normalizeSlideIndex) {\n if (newActiveIndex < 0 || typeof newActiveIndex === 'undefined') newActiveIndex = 0;\n }\n // for (i = 0; i < s.slidesGrid.length; i++) {\n // if (- translate >= s.slidesGrid[i]) {\n // newActiveIndex = i;\n // }\n // }\n snapIndex = Math.floor(newActiveIndex / s.params.slidesPerGroup);\n if (snapIndex >= s.snapGrid.length) snapIndex = s.snapGrid.length - 1;\n\n if (newActiveIndex === s.activeIndex) {\n return;\n }\n s.snapIndex = snapIndex;\n s.previousIndex = s.activeIndex;\n s.activeIndex = newActiveIndex;\n s.updateClasses();\n s.updateRealIndex();\n };\n s.updateRealIndex = function () {\n s.realIndex = parseInt(s.slides.eq(s.activeIndex).attr('data-swiper-slide-index') || s.activeIndex, 10);\n };\n\n /*=========================\r\n Classes\r\n ===========================*/\n s.updateClasses = function () {\n s.slides.removeClass(s.params.slideActiveClass + ' ' + s.params.slideNextClass + ' ' + s.params.slidePrevClass + ' ' + s.params.slideDuplicateActiveClass + ' ' + s.params.slideDuplicateNextClass + ' ' + s.params.slideDuplicatePrevClass);\n var activeSlide = s.slides.eq(s.activeIndex);\n // Active classes\n activeSlide.addClass(s.params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n } else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.next('.' + s.params.slideClass).addClass(s.params.slideNextClass);\n if (s.params.loop && nextSlide.length === 0) {\n nextSlide = s.slides.eq(0);\n nextSlide.addClass(s.params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prev('.' + s.params.slideClass).addClass(s.params.slidePrevClass);\n if (s.params.loop && prevSlide.length === 0) {\n prevSlide = s.slides.eq(-1);\n prevSlide.addClass(s.params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n } else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n } else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n }\n }\n\n // Pagination\n if (s.paginationContainer && s.paginationContainer.length > 0) {\n // Current/Total\n var current,\n total = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n if (s.params.loop) {\n current = Math.ceil((s.activeIndex - s.loopedSlides) / s.params.slidesPerGroup);\n if (current > s.slides.length - 1 - s.loopedSlides * 2) {\n current = current - (s.slides.length - s.loopedSlides * 2);\n }\n if (current > total - 1) current = current - total;\n if (current < 0 && s.params.paginationType !== 'bullets') current = total + current;\n } else {\n if (typeof s.snapIndex !== 'undefined') {\n current = s.snapIndex;\n } else {\n current = s.activeIndex || 0;\n }\n }\n // Types\n if (s.params.paginationType === 'bullets' && s.bullets && s.bullets.length > 0) {\n s.bullets.removeClass(s.params.bulletActiveClass);\n if (s.paginationContainer.length > 1) {\n s.bullets.each(function () {\n if ($(this).index() === current) $(this).addClass(s.params.bulletActiveClass);\n });\n } else {\n s.bullets.eq(current).addClass(s.params.bulletActiveClass);\n }\n }\n if (s.params.paginationType === 'fraction') {\n s.paginationContainer.find('.' + s.params.paginationCurrentClass).text(current + 1);\n s.paginationContainer.find('.' + s.params.paginationTotalClass).text(total);\n }\n if (s.params.paginationType === 'progress') {\n var scale = (current + 1) / total,\n scaleX = scale,\n scaleY = 1;\n if (!s.isHorizontal()) {\n scaleY = scale;\n scaleX = 1;\n }\n s.paginationContainer.find('.' + s.params.paginationProgressbarClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(s.params.speed);\n }\n if (s.params.paginationType === 'custom' && s.params.paginationCustomRender) {\n s.paginationContainer.html(s.params.paginationCustomRender(s, current + 1, total));\n s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n }\n }\n\n // Next/active buttons\n if (!s.params.loop) {\n if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n if (s.isBeginning) {\n s.prevButton.addClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.disable(s.prevButton);\n } else {\n s.prevButton.removeClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.enable(s.prevButton);\n }\n }\n if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n if (s.isEnd) {\n s.nextButton.addClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.disable(s.nextButton);\n } else {\n s.nextButton.removeClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.enable(s.nextButton);\n }\n }\n }\n };\n\n /*=========================\r\n Pagination\r\n ===========================*/\n s.updatePagination = function () {\n if (!s.params.pagination) return;\n if (s.paginationContainer && s.paginationContainer.length > 0) {\n var paginationHTML = '';\n if (s.params.paginationType === 'bullets') {\n var numberOfBullets = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i++) {\n if (s.params.paginationBulletRender) {\n paginationHTML += s.params.paginationBulletRender(s, i, s.params.bulletClass);\n } else {\n paginationHTML += '<' + s.params.paginationElement + ' class=\"' + s.params.bulletClass + '\">';\n }\n }\n s.paginationContainer.html(paginationHTML);\n s.bullets = s.paginationContainer.find('.' + s.params.bulletClass);\n if (s.params.paginationClickable && s.params.a11y && s.a11y) {\n s.a11y.initPagination();\n }\n }\n if (s.params.paginationType === 'fraction') {\n if (s.params.paginationFractionRender) {\n paginationHTML = s.params.paginationFractionRender(s, s.params.paginationCurrentClass, s.params.paginationTotalClass);\n } else {\n paginationHTML = '' + ' / ' + '';\n }\n s.paginationContainer.html(paginationHTML);\n }\n if (s.params.paginationType === 'progress') {\n if (s.params.paginationProgressRender) {\n paginationHTML = s.params.paginationProgressRender(s, s.params.paginationProgressbarClass);\n } else {\n paginationHTML = '';\n }\n s.paginationContainer.html(paginationHTML);\n }\n if (s.params.paginationType !== 'custom') {\n s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n }\n }\n };\n /*=========================\r\n Common update method\r\n ===========================*/\n s.update = function (updateTranslate) {\n if (!s) return;\n s.updateContainerSize();\n s.updateSlidesSize();\n s.updateProgress();\n s.updatePagination();\n s.updateClasses();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n }\n var newTranslate;\n function forceSetTranslate() {\n var translate = s.rtl ? -s.translate : s.translate;\n newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n s.setWrapperTranslate(newTranslate);\n s.updateActiveIndex();\n s.updateClasses();\n }\n if (updateTranslate) {\n var translated;\n if (s.controller && s.controller.spline) {\n s.controller.spline = undefined;\n }\n if (s.params.freeMode) {\n forceSetTranslate();\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n } else {\n if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n translated = s.slideTo(s.slides.length - 1, 0, false, true);\n } else {\n translated = s.slideTo(s.activeIndex, 0, false, true);\n }\n if (!translated) {\n forceSetTranslate();\n }\n }\n } else if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n };\n\n /*=========================\r\n Resize Handler\r\n ===========================*/\n s.onResize = function (forceUpdatePagination) {\n if (s.params.onBeforeResize) s.params.onBeforeResize(s);\n //Breakpoints\n if (s.params.breakpoints) {\n s.setBreakpoint();\n }\n\n // Disable locks on resize\n var allowSwipeToPrev = s.params.allowSwipeToPrev;\n var allowSwipeToNext = s.params.allowSwipeToNext;\n s.params.allowSwipeToPrev = s.params.allowSwipeToNext = true;\n\n s.updateContainerSize();\n s.updateSlidesSize();\n if (s.params.slidesPerView === 'auto' || s.params.freeMode || forceUpdatePagination) s.updatePagination();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n }\n if (s.controller && s.controller.spline) {\n s.controller.spline = undefined;\n }\n var slideChangedBySlideTo = false;\n if (s.params.freeMode) {\n var newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n s.setWrapperTranslate(newTranslate);\n s.updateActiveIndex();\n s.updateClasses();\n\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n } else {\n s.updateClasses();\n if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n slideChangedBySlideTo = s.slideTo(s.slides.length - 1, 0, false, true);\n } else {\n slideChangedBySlideTo = s.slideTo(s.activeIndex, 0, false, true);\n }\n }\n if (s.params.lazyLoading && !slideChangedBySlideTo && s.lazy) {\n s.lazy.load();\n }\n // Return locks after resize\n s.params.allowSwipeToPrev = allowSwipeToPrev;\n s.params.allowSwipeToNext = allowSwipeToNext;\n if (s.params.onAfterResize) s.params.onAfterResize(s);\n };\n\n /*=========================\r\n Events\r\n ===========================*/\n\n //Define Touch Events\n s.touchEventsDesktop = { start: 'mousedown', move: 'mousemove', end: 'mouseup' };\n if (window.navigator.pointerEnabled) s.touchEventsDesktop = { start: 'pointerdown', move: 'pointermove', end: 'pointerup' };else if (window.navigator.msPointerEnabled) s.touchEventsDesktop = { start: 'MSPointerDown', move: 'MSPointerMove', end: 'MSPointerUp' };\n s.touchEvents = {\n start: s.support.touch || !s.params.simulateTouch ? 'touchstart' : s.touchEventsDesktop.start,\n move: s.support.touch || !s.params.simulateTouch ? 'touchmove' : s.touchEventsDesktop.move,\n end: s.support.touch || !s.params.simulateTouch ? 'touchend' : s.touchEventsDesktop.end\n };\n\n // WP8 Touch Events Fix\n if (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) {\n (s.params.touchEventsTarget === 'container' ? s.container : s.wrapper).addClass('swiper-wp8-' + s.params.direction);\n }\n\n // Attach/detach events\n s.initEvents = function (detach) {\n var actionDom = detach ? 'off' : 'on';\n var action = detach ? 'removeEventListener' : 'addEventListener';\n var touchEventsTarget = s.params.touchEventsTarget === 'container' ? s.container[0] : s.wrapper[0];\n var target = s.support.touch ? touchEventsTarget : document;\n\n var moveCapture = s.params.nested ? true : false;\n\n //Touch Events\n if (s.browser.ie) {\n touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, false);\n target[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n target[action](s.touchEvents.end, s.onTouchEnd, false);\n } else {\n if (s.support.touch) {\n var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? { passive: true, capture: false } : false;\n touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, passiveListener);\n touchEventsTarget[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n touchEventsTarget[action](s.touchEvents.end, s.onTouchEnd, passiveListener);\n }\n if (params.simulateTouch && !s.device.ios && !s.device.android || params.simulateTouch && !s.support.touch && s.device.ios) {\n touchEventsTarget[action]('mousedown', s.onTouchStart, false);\n document[action]('mousemove', s.onTouchMove, moveCapture);\n document[action]('mouseup', s.onTouchEnd, false);\n }\n }\n window[action]('resize', s.onResize);\n\n // Next, Prev, Index\n if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n s.nextButton[actionDom]('click', s.onClickNext);\n if (s.params.a11y && s.a11y) s.nextButton[actionDom]('keydown', s.a11y.onEnterKey);\n }\n if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n s.prevButton[actionDom]('click', s.onClickPrev);\n if (s.params.a11y && s.a11y) s.prevButton[actionDom]('keydown', s.a11y.onEnterKey);\n }\n if (s.params.pagination && s.params.paginationClickable) {\n s.paginationContainer[actionDom]('click', '.' + s.params.bulletClass, s.onClickIndex);\n if (s.params.a11y && s.a11y) s.paginationContainer[actionDom]('keydown', '.' + s.params.bulletClass, s.a11y.onEnterKey);\n }\n\n // Prevent Links Clicks\n if (s.params.preventClicks || s.params.preventClicksPropagation) touchEventsTarget[action]('click', s.preventClicks, true);\n };\n s.attachEvents = function () {\n s.initEvents();\n };\n s.detachEvents = function () {\n s.initEvents(true);\n };\n\n /*=========================\r\n Handle Clicks\r\n ===========================*/\n // Prevent Clicks\n s.allowClick = true;\n s.preventClicks = function (e) {\n if (!s.allowClick) {\n if (s.params.preventClicks) e.preventDefault();\n if (s.params.preventClicksPropagation && s.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n };\n // Clicks\n s.onClickNext = function (e) {\n e.preventDefault();\n if (s.isEnd && !s.params.loop) return;\n s.slideNext();\n };\n s.onClickPrev = function (e) {\n e.preventDefault();\n if (s.isBeginning && !s.params.loop) return;\n s.slidePrev();\n };\n s.onClickIndex = function (e) {\n e.preventDefault();\n var index = $(this).index() * s.params.slidesPerGroup;\n if (s.params.loop) index = index + s.loopedSlides;\n s.slideTo(index);\n };\n\n /*=========================\r\n Handle Touches\r\n ===========================*/\n function findElementInEvent(e, selector) {\n var el = $(e.target);\n if (!el.is(selector)) {\n if (typeof selector === 'string') {\n el = el.parents(selector);\n } else if (selector.nodeType) {\n var found;\n el.parents().each(function (index, _el) {\n if (_el === selector) found = selector;\n });\n if (!found) return undefined;else return selector;\n }\n }\n if (el.length === 0) {\n return undefined;\n }\n return el[0];\n }\n s.updateClickedSlide = function (e) {\n var slide = findElementInEvent(e, '.' + s.params.slideClass);\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < s.slides.length; i++) {\n if (s.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n s.clickedSlide = slide;\n s.clickedIndex = $(slide).index();\n } else {\n s.clickedSlide = undefined;\n s.clickedIndex = undefined;\n return;\n }\n if (s.params.slideToClickedSlide && s.clickedIndex !== undefined && s.clickedIndex !== s.activeIndex) {\n var slideToIndex = s.clickedIndex,\n realIndex,\n duplicatedSlides,\n slidesPerView = s.params.slidesPerView === 'auto' ? s.currentSlidesPerView() : s.params.slidesPerView;\n if (s.params.loop) {\n if (s.animating) return;\n realIndex = parseInt($(s.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (s.params.centeredSlides) {\n if (slideToIndex < s.loopedSlides - slidesPerView / 2 || slideToIndex > s.slides.length - s.loopedSlides + slidesPerView / 2) {\n s.fixLoop();\n slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n setTimeout(function () {\n s.slideTo(slideToIndex);\n }, 0);\n } else {\n s.slideTo(slideToIndex);\n }\n } else {\n if (slideToIndex > s.slides.length - slidesPerView) {\n s.fixLoop();\n slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n setTimeout(function () {\n s.slideTo(slideToIndex);\n }, 0);\n } else {\n s.slideTo(slideToIndex);\n }\n }\n } else {\n s.slideTo(slideToIndex);\n }\n }\n };\n\n var isTouched,\n isMoved,\n allowTouchCallbacks,\n touchStartTime,\n isScrolling,\n currentTranslate,\n startTranslate,\n allowThresholdMove,\n\n // Form elements to match\n formElements = 'input, select, textarea, button, video',\n\n // Last click time\n lastClickTime = Date.now(),\n clickTimeout,\n\n //Velocities\n velocities = [],\n allowMomentumBounce;\n\n // Animating Flag\n s.animating = false;\n\n // Touches information\n s.touches = {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n };\n\n // Touch handlers\n var isTouchEvent, startMoving;\n s.onTouchStart = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n isTouchEvent = e.type === 'touchstart';\n if (!isTouchEvent && 'which' in e && e.which === 3) return;\n if (s.params.noSwiping && findElementInEvent(e, '.' + s.params.noSwipingClass)) {\n s.allowClick = true;\n return;\n }\n if (s.params.swipeHandler) {\n if (!findElementInEvent(e, s.params.swipeHandler)) return;\n }\n\n var startX = s.touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n var startY = s.touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n if (s.device.ios && s.params.iOSEdgeSwipeDetection && startX <= s.params.iOSEdgeSwipeThreshold) {\n return;\n }\n\n isTouched = true;\n isMoved = false;\n allowTouchCallbacks = true;\n isScrolling = undefined;\n startMoving = undefined;\n s.touches.startX = startX;\n s.touches.startY = startY;\n touchStartTime = Date.now();\n s.allowClick = true;\n s.updateContainerSize();\n s.swipeDirection = undefined;\n if (s.params.threshold > 0) allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($(e.target).is(formElements)) preventDefault = false;\n if (document.activeElement && $(document.activeElement).is(formElements)) {\n document.activeElement.blur();\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n s.emit('onTouchStart', s, e);\n };\n\n s.onTouchMove = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n if (isTouchEvent && e.type === 'mousemove') return;\n if (e.preventedByNestedSwiper) {\n s.touches.startX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.startY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n return;\n }\n if (s.params.onlyExternal) {\n // isMoved = true;\n s.allowClick = false;\n if (isTouched) {\n s.touches.startX = s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.startY = s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = Date.now();\n }\n return;\n }\n if (isTouchEvent && s.params.touchReleaseOnEdges && !s.params.loop) {\n if (!s.isHorizontal()) {\n // Vertical\n if (s.touches.currentY < s.touches.startY && s.translate <= s.maxTranslate() || s.touches.currentY > s.touches.startY && s.translate >= s.minTranslate()) {\n return;\n }\n } else {\n if (s.touches.currentX < s.touches.startX && s.translate <= s.maxTranslate() || s.touches.currentX > s.touches.startX && s.translate >= s.minTranslate()) {\n return;\n }\n }\n }\n if (isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(formElements)) {\n isMoved = true;\n s.allowClick = false;\n return;\n }\n }\n if (allowTouchCallbacks) {\n s.emit('onTouchMove', s, e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (typeof isScrolling === 'undefined') {\n var touchAngle;\n if (s.isHorizontal() && s.touches.currentY === s.touches.startY || !s.isHorizontal() && s.touches.currentX === s.touches.startX) {\n isScrolling = false;\n } else {\n touchAngle = Math.atan2(Math.abs(s.touches.currentY - s.touches.startY), Math.abs(s.touches.currentX - s.touches.startX)) * 180 / Math.PI;\n isScrolling = s.isHorizontal() ? touchAngle > s.params.touchAngle : 90 - touchAngle > s.params.touchAngle;\n }\n }\n if (isScrolling) {\n s.emit('onTouchMoveOpposite', s, e);\n }\n if (typeof startMoving === 'undefined') {\n if (s.touches.currentX !== s.touches.startX || s.touches.currentY !== s.touches.startY) {\n startMoving = true;\n }\n }\n if (!isTouched) return;\n if (isScrolling) {\n isTouched = false;\n return;\n }\n if (!startMoving) {\n return;\n }\n s.allowClick = false;\n s.emit('onSliderMove', s, e);\n e.preventDefault();\n if (s.params.touchMoveStopPropagation && !s.params.nested) {\n e.stopPropagation();\n }\n\n if (!isMoved) {\n if (params.loop) {\n s.fixLoop();\n }\n startTranslate = s.getWrapperTranslate();\n s.setWrapperTransition(0);\n if (s.animating) {\n s.wrapper.trigger('webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd');\n }\n if (s.params.autoplay && s.autoplaying) {\n if (s.params.autoplayDisableOnInteraction) {\n s.stopAutoplay();\n } else {\n s.pauseAutoplay();\n }\n }\n allowMomentumBounce = false;\n //Grab Cursor\n if (s.params.grabCursor && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n s.setGrabCursor(true);\n }\n }\n isMoved = true;\n\n var diff = s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n\n diff = diff * s.params.touchRatio;\n if (s.rtl) diff = -diff;\n\n s.swipeDirection = diff > 0 ? 'prev' : 'next';\n currentTranslate = diff + startTranslate;\n\n var disableParentSwiper = true;\n if (diff > 0 && currentTranslate > s.minTranslate()) {\n disableParentSwiper = false;\n if (s.params.resistance) currentTranslate = s.minTranslate() - 1 + Math.pow(-s.minTranslate() + startTranslate + diff, s.params.resistanceRatio);\n } else if (diff < 0 && currentTranslate < s.maxTranslate()) {\n disableParentSwiper = false;\n if (s.params.resistance) currentTranslate = s.maxTranslate() + 1 - Math.pow(s.maxTranslate() - startTranslate - diff, s.params.resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!s.params.allowSwipeToNext && s.swipeDirection === 'next' && currentTranslate < startTranslate) {\n currentTranslate = startTranslate;\n }\n if (!s.params.allowSwipeToPrev && s.swipeDirection === 'prev' && currentTranslate > startTranslate) {\n currentTranslate = startTranslate;\n }\n\n // Threshold\n if (s.params.threshold > 0) {\n if (Math.abs(diff) > s.params.threshold || allowThresholdMove) {\n if (!allowThresholdMove) {\n allowThresholdMove = true;\n s.touches.startX = s.touches.currentX;\n s.touches.startY = s.touches.currentY;\n currentTranslate = startTranslate;\n s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n return;\n }\n } else {\n currentTranslate = startTranslate;\n return;\n }\n }\n\n if (!s.params.followFinger) return;\n\n // Update active index in free mode\n if (s.params.freeMode || s.params.watchSlidesProgress) {\n s.updateActiveIndex();\n }\n if (s.params.freeMode) {\n //Velocity\n if (velocities.length === 0) {\n velocities.push({\n position: s.touches[s.isHorizontal() ? 'startX' : 'startY'],\n time: touchStartTime\n });\n }\n velocities.push({\n position: s.touches[s.isHorizontal() ? 'currentX' : 'currentY'],\n time: new window.Date().getTime()\n });\n }\n // Update progress\n s.updateProgress(currentTranslate);\n // Update translate\n s.setWrapperTranslate(currentTranslate);\n };\n s.onTouchEnd = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n if (allowTouchCallbacks) {\n s.emit('onTouchEnd', s, e);\n }\n allowTouchCallbacks = false;\n if (!isTouched) return;\n //Return Grab Cursor\n if (s.params.grabCursor && isMoved && isTouched && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n s.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Date.now();\n var timeDiff = touchEndTime - touchStartTime;\n\n // Tap, doubleTap, Click\n if (s.allowClick) {\n s.updateClickedSlide(e);\n s.emit('onTap', s, e);\n if (timeDiff < 300 && touchEndTime - lastClickTime > 300) {\n if (clickTimeout) clearTimeout(clickTimeout);\n clickTimeout = setTimeout(function () {\n if (!s) return;\n if (s.params.paginationHide && s.paginationContainer.length > 0 && !$(e.target).hasClass(s.params.bulletClass)) {\n s.paginationContainer.toggleClass(s.params.paginationHiddenClass);\n }\n s.emit('onClick', s, e);\n }, 300);\n }\n if (timeDiff < 300 && touchEndTime - lastClickTime < 300) {\n if (clickTimeout) clearTimeout(clickTimeout);\n s.emit('onDoubleTap', s, e);\n }\n }\n\n lastClickTime = Date.now();\n setTimeout(function () {\n if (s) s.allowClick = true;\n }, 0);\n\n if (!isTouched || !isMoved || !s.swipeDirection || s.touches.diff === 0 || currentTranslate === startTranslate) {\n isTouched = isMoved = false;\n return;\n }\n isTouched = isMoved = false;\n\n var currentPos;\n if (s.params.followFinger) {\n currentPos = s.rtl ? s.translate : -s.translate;\n } else {\n currentPos = -currentTranslate;\n }\n if (s.params.freeMode) {\n if (currentPos < -s.minTranslate()) {\n s.slideTo(s.activeIndex);\n return;\n } else if (currentPos > -s.maxTranslate()) {\n if (s.slides.length < s.snapGrid.length) {\n s.slideTo(s.snapGrid.length - 1);\n } else {\n s.slideTo(s.slides.length - 1);\n }\n return;\n }\n\n if (s.params.freeModeMomentum) {\n if (velocities.length > 1) {\n var lastMoveEvent = velocities.pop(),\n velocityEvent = velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n s.velocity = distance / time;\n s.velocity = s.velocity / 2;\n if (Math.abs(s.velocity) < s.params.freeModeMinimumVelocity) {\n s.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || new window.Date().getTime() - lastMoveEvent.time > 300) {\n s.velocity = 0;\n }\n } else {\n s.velocity = 0;\n }\n s.velocity = s.velocity * s.params.freeModeMomentumVelocityRatio;\n\n velocities.length = 0;\n var momentumDuration = 1000 * s.params.freeModeMomentumRatio;\n var momentumDistance = s.velocity * momentumDuration;\n\n var newPosition = s.translate + momentumDistance;\n if (s.rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(s.velocity) * 20 * s.params.freeModeMomentumBounceRatio;\n if (newPosition < s.maxTranslate()) {\n if (s.params.freeModeMomentumBounce) {\n if (newPosition + s.maxTranslate() < -bounceAmount) {\n newPosition = s.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = s.maxTranslate();\n doBounce = true;\n allowMomentumBounce = true;\n } else {\n newPosition = s.maxTranslate();\n }\n } else if (newPosition > s.minTranslate()) {\n if (s.params.freeModeMomentumBounce) {\n if (newPosition - s.minTranslate() > bounceAmount) {\n newPosition = s.minTranslate() + bounceAmount;\n }\n afterBouncePosition = s.minTranslate();\n doBounce = true;\n allowMomentumBounce = true;\n } else {\n newPosition = s.minTranslate();\n }\n } else if (s.params.freeModeSticky) {\n var j = 0,\n nextSlide;\n for (j = 0; j < s.snapGrid.length; j += 1) {\n if (s.snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(s.snapGrid[nextSlide] - newPosition) < Math.abs(s.snapGrid[nextSlide - 1] - newPosition) || s.swipeDirection === 'next') {\n newPosition = s.snapGrid[nextSlide];\n } else {\n newPosition = s.snapGrid[nextSlide - 1];\n }\n if (!s.rtl) newPosition = -newPosition;\n }\n //Fix duration\n if (s.velocity !== 0) {\n if (s.rtl) {\n momentumDuration = Math.abs((-newPosition - s.translate) / s.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - s.translate) / s.velocity);\n }\n } else if (s.params.freeModeSticky) {\n s.slideReset();\n return;\n }\n\n if (s.params.freeModeMomentumBounce && doBounce) {\n s.updateProgress(afterBouncePosition);\n s.setWrapperTransition(momentumDuration);\n s.setWrapperTranslate(newPosition);\n s.onTransitionStart();\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s || !allowMomentumBounce) return;\n s.emit('onMomentumBounce', s);\n\n s.setWrapperTransition(s.params.speed);\n s.setWrapperTranslate(afterBouncePosition);\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd();\n });\n });\n } else if (s.velocity) {\n s.updateProgress(newPosition);\n s.setWrapperTransition(momentumDuration);\n s.setWrapperTranslate(newPosition);\n s.onTransitionStart();\n if (!s.animating) {\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd();\n });\n }\n } else {\n s.updateProgress(newPosition);\n }\n\n s.updateActiveIndex();\n }\n if (!s.params.freeModeMomentum || timeDiff >= s.params.longSwipesMs) {\n s.updateProgress();\n s.updateActiveIndex();\n }\n return;\n }\n\n // Find current slide\n var i,\n stopIndex = 0,\n groupSize = s.slidesSizesGrid[0];\n for (i = 0; i < s.slidesGrid.length; i += s.params.slidesPerGroup) {\n if (typeof s.slidesGrid[i + s.params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= s.slidesGrid[i] && currentPos < s.slidesGrid[i + s.params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = s.slidesGrid[i + s.params.slidesPerGroup] - s.slidesGrid[i];\n }\n } else {\n if (currentPos >= s.slidesGrid[i]) {\n stopIndex = i;\n groupSize = s.slidesGrid[s.slidesGrid.length - 1] - s.slidesGrid[s.slidesGrid.length - 2];\n }\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - s.slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > s.params.longSwipesMs) {\n // Long touches\n if (!s.params.longSwipes) {\n s.slideTo(s.activeIndex);\n return;\n }\n if (s.swipeDirection === 'next') {\n if (ratio >= s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);else s.slideTo(stopIndex);\n }\n if (s.swipeDirection === 'prev') {\n if (ratio > 1 - s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);else s.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!s.params.shortSwipes) {\n s.slideTo(s.activeIndex);\n return;\n }\n if (s.swipeDirection === 'next') {\n s.slideTo(stopIndex + s.params.slidesPerGroup);\n }\n if (s.swipeDirection === 'prev') {\n s.slideTo(stopIndex);\n }\n }\n };\n /*=========================\r\n Transitions\r\n ===========================*/\n s._slideTo = function (slideIndex, speed) {\n return s.slideTo(slideIndex, speed, true, true);\n };\n s.slideTo = function (slideIndex, speed, runCallbacks, internal) {\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (typeof slideIndex === 'undefined') slideIndex = 0;\n if (slideIndex < 0) slideIndex = 0;\n s.snapIndex = Math.floor(slideIndex / s.params.slidesPerGroup);\n if (s.snapIndex >= s.snapGrid.length) s.snapIndex = s.snapGrid.length - 1;\n\n var translate = -s.snapGrid[s.snapIndex];\n // Stop autoplay\n if (s.params.autoplay && s.autoplaying) {\n if (internal || !s.params.autoplayDisableOnInteraction) {\n s.pauseAutoplay(speed);\n } else {\n s.stopAutoplay();\n }\n }\n // Update progress\n s.updateProgress(translate);\n\n // Normalize slideIndex\n if (s.params.normalizeSlideIndex) {\n for (var i = 0; i < s.slidesGrid.length; i++) {\n if (-Math.floor(translate * 100) >= Math.floor(s.slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n\n // Directions locks\n if (!s.params.allowSwipeToNext && translate < s.translate && translate < s.minTranslate()) {\n return false;\n }\n if (!s.params.allowSwipeToPrev && translate > s.translate && translate > s.maxTranslate()) {\n if ((s.activeIndex || 0) !== slideIndex) return false;\n }\n\n // Update Index\n if (typeof speed === 'undefined') speed = s.params.speed;\n s.previousIndex = s.activeIndex || 0;\n s.activeIndex = slideIndex;\n s.updateRealIndex();\n if (s.rtl && -translate === s.translate || !s.rtl && translate === s.translate) {\n // Update Height\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n s.updateClasses();\n if (s.params.effect !== 'slide') {\n s.setWrapperTranslate(translate);\n }\n return false;\n }\n s.updateClasses();\n s.onTransitionStart(runCallbacks);\n\n if (speed === 0 || s.browser.lteIE9) {\n s.setWrapperTranslate(translate);\n s.setWrapperTransition(0);\n s.onTransitionEnd(runCallbacks);\n } else {\n s.setWrapperTranslate(translate);\n s.setWrapperTransition(speed);\n if (!s.animating) {\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd(runCallbacks);\n });\n }\n }\n\n return true;\n };\n\n s.onTransitionStart = function (runCallbacks) {\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n if (s.lazy) s.lazy.onTransitionStart();\n if (runCallbacks) {\n s.emit('onTransitionStart', s);\n if (s.activeIndex !== s.previousIndex) {\n s.emit('onSlideChangeStart', s);\n if (s.activeIndex > s.previousIndex) {\n s.emit('onSlideNextStart', s);\n } else {\n s.emit('onSlidePrevStart', s);\n }\n }\n }\n };\n s.onTransitionEnd = function (runCallbacks) {\n s.animating = false;\n s.setWrapperTransition(0);\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (s.lazy) s.lazy.onTransitionEnd();\n if (runCallbacks) {\n s.emit('onTransitionEnd', s);\n if (s.activeIndex !== s.previousIndex) {\n s.emit('onSlideChangeEnd', s);\n if (s.activeIndex > s.previousIndex) {\n s.emit('onSlideNextEnd', s);\n } else {\n s.emit('onSlidePrevEnd', s);\n }\n }\n }\n if (s.params.history && s.history) {\n s.history.setHistory(s.params.history, s.activeIndex);\n }\n if (s.params.hashnav && s.hashnav) {\n s.hashnav.setHash();\n }\n };\n s.slideNext = function (runCallbacks, speed, internal) {\n if (s.params.loop) {\n if (s.animating) return false;\n s.fixLoop();\n var clientLeft = s.container[0].clientLeft;\n return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n } else return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n };\n s._slideNext = function (speed) {\n return s.slideNext(true, speed, true);\n };\n s.slidePrev = function (runCallbacks, speed, internal) {\n if (s.params.loop) {\n if (s.animating) return false;\n s.fixLoop();\n var clientLeft = s.container[0].clientLeft;\n return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n } else return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n };\n s._slidePrev = function (speed) {\n return s.slidePrev(true, speed, true);\n };\n s.slideReset = function (runCallbacks, speed, internal) {\n return s.slideTo(s.activeIndex, speed, runCallbacks);\n };\n\n s.disableTouchControl = function () {\n s.params.onlyExternal = true;\n return true;\n };\n s.enableTouchControl = function () {\n s.params.onlyExternal = false;\n return true;\n };\n\n /*=========================\r\n Translate/transition helpers\r\n ===========================*/\n s.setWrapperTransition = function (duration, byController) {\n s.wrapper.transition(duration);\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n s.effects[s.params.effect].setTransition(duration);\n }\n if (s.params.parallax && s.parallax) {\n s.parallax.setTransition(duration);\n }\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.setTransition(duration);\n }\n if (s.params.control && s.controller) {\n s.controller.setTransition(duration, byController);\n }\n s.emit('onSetTransition', s, duration);\n };\n s.setWrapperTranslate = function (translate, updateActiveIndex, byController) {\n var x = 0,\n y = 0,\n z = 0;\n if (s.isHorizontal()) {\n x = s.rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (s.params.roundLengths) {\n x = round(x);\n y = round(y);\n }\n\n if (!s.params.virtualTranslate) {\n if (s.support.transforms3d) s.wrapper.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');else s.wrapper.transform('translate(' + x + 'px, ' + y + 'px)');\n }\n\n s.translate = s.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var progress;\n var translatesDiff = s.maxTranslate() - s.minTranslate();\n if (translatesDiff === 0) {\n progress = 0;\n } else {\n progress = (translate - s.minTranslate()) / translatesDiff;\n }\n if (progress !== s.progress) {\n s.updateProgress(translate);\n }\n\n if (updateActiveIndex) s.updateActiveIndex();\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n s.effects[s.params.effect].setTranslate(s.translate);\n }\n if (s.params.parallax && s.parallax) {\n s.parallax.setTranslate(s.translate);\n }\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.setTranslate(s.translate);\n }\n if (s.params.control && s.controller) {\n s.controller.setTranslate(s.translate, byController);\n }\n s.emit('onSetTranslate', s, s.translate);\n };\n\n s.getTranslate = function (el, axis) {\n var matrix, curTransform, curStyle, transformMatrix;\n\n // automatic axis detection\n if (typeof axis === 'undefined') {\n axis = 'x';\n }\n\n if (s.params.virtualTranslate) {\n return s.rtl ? -s.translate : s.translate;\n }\n\n curStyle = window.getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n //Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n //Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n //Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n //Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n //Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n //Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n if (s.rtl && curTransform) curTransform = -curTransform;\n return curTransform || 0;\n };\n s.getWrapperTranslate = function (axis) {\n if (typeof axis === 'undefined') {\n axis = s.isHorizontal() ? 'x' : 'y';\n }\n return s.getTranslate(s.wrapper[0], axis);\n };\n\n /*=========================\r\n Observer\r\n ===========================*/\n s.observers = [];\n function initObserver(target, options) {\n options = options || {};\n // create an observer instance\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n mutations.forEach(function (mutation) {\n s.onResize(true);\n s.emit('onObserverUpdate', s, mutation);\n });\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n\n s.observers.push(observer);\n }\n s.initObservers = function () {\n if (s.params.observeParents) {\n var containerParents = s.container.parents();\n for (var i = 0; i < containerParents.length; i++) {\n initObserver(containerParents[i]);\n }\n }\n\n // Observe container\n initObserver(s.container[0], { childList: false });\n\n // Observe wrapper\n initObserver(s.wrapper[0], { attributes: false });\n };\n s.disconnectObservers = function () {\n for (var i = 0; i < s.observers.length; i++) {\n s.observers[i].disconnect();\n }\n s.observers = [];\n };\n /*=========================\r\n Loop\r\n ===========================*/\n // Create looped slides\n s.createLoop = function () {\n // Remove duplicated slides\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n\n var slides = s.wrapper.children('.' + s.params.slideClass);\n\n if (s.params.slidesPerView === 'auto' && !s.params.loopedSlides) s.params.loopedSlides = slides.length;\n\n s.loopedSlides = parseInt(s.params.loopedSlides || s.params.slidesPerView, 10);\n s.loopedSlides = s.loopedSlides + s.params.loopAdditionalSlides;\n if (s.loopedSlides > slides.length) {\n s.loopedSlides = slides.length;\n }\n\n var prependSlides = [],\n appendSlides = [],\n i;\n slides.each(function (index, el) {\n var slide = $(this);\n if (index < s.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (i = 0; i < appendSlides.length; i++) {\n s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n }\n for (i = prependSlides.length - 1; i >= 0; i--) {\n s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n }\n };\n s.destroyLoop = function () {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n s.slides.removeAttr('data-swiper-slide-index');\n };\n s.reLoop = function (updatePosition) {\n var oldIndex = s.activeIndex - s.loopedSlides;\n s.destroyLoop();\n s.createLoop();\n s.updateSlidesSize();\n if (updatePosition) {\n s.slideTo(oldIndex + s.loopedSlides, 0, false);\n }\n };\n s.fixLoop = function () {\n var newIndex;\n //Fix For Negative Oversliding\n if (s.activeIndex < s.loopedSlides) {\n newIndex = s.slides.length - s.loopedSlides * 3 + s.activeIndex;\n newIndex = newIndex + s.loopedSlides;\n s.slideTo(newIndex, 0, false, true);\n }\n //Fix For Positive Oversliding\n else if (s.params.slidesPerView === 'auto' && s.activeIndex >= s.loopedSlides * 2 || s.activeIndex > s.slides.length - s.params.slidesPerView * 2) {\n newIndex = -s.slides.length + s.activeIndex + s.loopedSlides;\n newIndex = newIndex + s.loopedSlides;\n s.slideTo(newIndex, 0, false, true);\n }\n };\n /*=========================\r\n Append/Prepend/Remove Slides\r\n ===========================*/\n s.appendSlide = function (slides) {\n if (s.params.loop) {\n s.destroyLoop();\n }\n if (typeof slides === 'object' && slides.length) {\n for (var i = 0; i < slides.length; i++) {\n if (slides[i]) s.wrapper.append(slides[i]);\n }\n } else {\n s.wrapper.append(slides);\n }\n if (s.params.loop) {\n s.createLoop();\n }\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n };\n s.prependSlide = function (slides) {\n if (s.params.loop) {\n s.destroyLoop();\n }\n var newActiveIndex = s.activeIndex + 1;\n if (typeof slides === 'object' && slides.length) {\n for (var i = 0; i < slides.length; i++) {\n if (slides[i]) s.wrapper.prepend(slides[i]);\n }\n newActiveIndex = s.activeIndex + slides.length;\n } else {\n s.wrapper.prepend(slides);\n }\n if (s.params.loop) {\n s.createLoop();\n }\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n s.slideTo(newActiveIndex, 0, false);\n };\n s.removeSlide = function (slidesIndexes) {\n if (s.params.loop) {\n s.destroyLoop();\n s.slides = s.wrapper.children('.' + s.params.slideClass);\n }\n var newActiveIndex = s.activeIndex,\n indexToRemove;\n if (typeof slidesIndexes === 'object' && slidesIndexes.length) {\n for (var i = 0; i < slidesIndexes.length; i++) {\n indexToRemove = slidesIndexes[i];\n if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex--;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex--;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (s.params.loop) {\n s.createLoop();\n }\n\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n if (s.params.loop) {\n s.slideTo(newActiveIndex + s.loopedSlides, 0, false);\n } else {\n s.slideTo(newActiveIndex, 0, false);\n }\n };\n s.removeAllSlides = function () {\n var slidesIndexes = [];\n for (var i = 0; i < s.slides.length; i++) {\n slidesIndexes.push(i);\n }\n s.removeSlide(slidesIndexes);\n };\n\n /*=========================\r\n Effects\r\n ===========================*/\n s.effects = {\n fade: {\n setTranslate: function () {\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var offset = slide[0].swiperSlideOffset;\n var tx = -offset;\n if (!s.params.virtualTranslate) tx = tx - s.translate;\n var ty = 0;\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = s.params.fade.crossFade ? Math.max(1 - Math.abs(slide[0].progress), 0) : 1 + Math.min(Math.max(slide[0].progress, -1), 0);\n slide.css({\n opacity: slideOpacity\n }).transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)');\n }\n },\n setTransition: function (duration) {\n s.slides.transition(duration);\n if (s.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n s.slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!s) return;\n eventTriggered = true;\n s.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n for (var i = 0; i < triggerEvents.length; i++) {\n s.wrapper.trigger(triggerEvents[i]);\n }\n });\n }\n }\n },\n flip: {\n setTranslate: function () {\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var progress = slide[0].progress;\n if (s.params.flip.limitRotation) {\n progress = Math.max(Math.min(slide[0].progress, 1), -1);\n }\n var offset = slide[0].swiperSlideOffset;\n var rotate = -180 * progress,\n rotateY = rotate,\n rotateX = 0,\n tx = -offset,\n ty = 0;\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (s.rtl) {\n rotateY = -rotateY;\n }\n\n slide[0].style.zIndex = -Math.abs(Math.round(progress)) + s.slides.length;\n\n if (s.params.flip.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('
');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('
');\n slide.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n slide.transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)');\n }\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (s.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n s.slides.eq(s.activeIndex).transitionEnd(function () {\n if (eventTriggered) return;\n if (!s) return;\n if (!$(this).hasClass(s.params.slideActiveClass)) return;\n eventTriggered = true;\n s.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n for (var i = 0; i < triggerEvents.length; i++) {\n s.wrapper.trigger(triggerEvents[i]);\n }\n });\n }\n }\n },\n cube: {\n setTranslate: function () {\n var wrapperRotate = 0,\n cubeShadow;\n if (s.params.cube.shadow) {\n if (s.isHorizontal()) {\n cubeShadow = s.wrapper.find('.swiper-cube-shadow');\n if (cubeShadow.length === 0) {\n cubeShadow = $('
');\n s.wrapper.append(cubeShadow);\n }\n cubeShadow.css({ height: s.width + 'px' });\n } else {\n cubeShadow = s.container.find('.swiper-cube-shadow');\n if (cubeShadow.length === 0) {\n cubeShadow = $('
');\n s.container.append(cubeShadow);\n }\n }\n }\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var slideAngle = i * 90;\n var round = Math.floor(slideAngle / 360);\n if (s.rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min(slide[0].progress, 1), -1);\n var tx = 0,\n ty = 0,\n tz = 0;\n if (i % 4 === 0) {\n tx = -round * 4 * s.size;\n tz = 0;\n } else if ((i - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * s.size;\n } else if ((i - 2) % 4 === 0) {\n tx = s.size + round * 4 * s.size;\n tz = s.size;\n } else if ((i - 3) % 4 === 0) {\n tx = -s.size;\n tz = 3 * s.size + s.size * 4 * round;\n }\n if (s.rtl) {\n tx = -tx;\n }\n\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var transform = 'rotateX(' + (s.isHorizontal() ? 0 : -slideAngle) + 'deg) rotateY(' + (s.isHorizontal() ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)';\n if (progress <= 1 && progress > -1) {\n wrapperRotate = i * 90 + progress * 90;\n if (s.rtl) wrapperRotate = -i * 90 - progress * 90;\n }\n slide.transform(transform);\n if (s.params.cube.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('
');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('
');\n slide.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n s.wrapper.css({\n '-webkit-transform-origin': '50% 50% -' + s.size / 2 + 'px',\n '-moz-transform-origin': '50% 50% -' + s.size / 2 + 'px',\n '-ms-transform-origin': '50% 50% -' + s.size / 2 + 'px',\n 'transform-origin': '50% 50% -' + s.size / 2 + 'px'\n });\n\n if (s.params.cube.shadow) {\n if (s.isHorizontal()) {\n cubeShadow.transform('translate3d(0px, ' + (s.width / 2 + s.params.cube.shadowOffset) + 'px, ' + -s.width / 2 + 'px) rotateX(90deg) rotateZ(0deg) scale(' + s.params.cube.shadowScale + ')');\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = s.params.cube.shadowScale,\n scale2 = s.params.cube.shadowScale / multiplier,\n offset = s.params.cube.shadowOffset;\n cubeShadow.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (s.height / 2 + offset) + 'px, ' + -s.height / 2 / scale2 + 'px) rotateX(-90deg)');\n }\n }\n var zFactor = s.isSafari || s.isUiWebView ? -s.size / 2 : 0;\n s.wrapper.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (s.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (s.isHorizontal() ? -wrapperRotate : 0) + 'deg)');\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (s.params.cube.shadow && !s.isHorizontal()) {\n s.container.find('.swiper-cube-shadow').transition(duration);\n }\n }\n },\n coverflow: {\n setTranslate: function () {\n var transform = s.translate;\n var center = s.isHorizontal() ? -transform + s.width / 2 : -transform + s.height / 2;\n var rotate = s.isHorizontal() ? s.params.coverflow.rotate : -s.params.coverflow.rotate;\n var translate = s.params.coverflow.depth;\n //Each slide offset from center\n for (var i = 0, length = s.slides.length; i < length; i++) {\n var slide = s.slides.eq(i);\n var slideSize = s.slidesSizesGrid[i];\n var slideOffset = slide[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * s.params.coverflow.modifier;\n\n var rotateY = s.isHorizontal() ? rotate * offsetMultiplier : 0;\n var rotateX = s.isHorizontal() ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var translateY = s.isHorizontal() ? 0 : s.params.coverflow.stretch * offsetMultiplier;\n var translateX = s.isHorizontal() ? s.params.coverflow.stretch * offsetMultiplier : 0;\n\n //Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)';\n\n slide.transform(slideTransform);\n slide[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (s.params.coverflow.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('
');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('
');\n slide.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfter.length) shadowAfter[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n\n //Set correct perspective for IE10\n if (s.browser.ie) {\n var ws = s.wrapper[0].style;\n ws.perspectiveOrigin = center + 'px 50%';\n }\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n }\n };\n\n /*=========================\r\n Images Lazy Loading\r\n ===========================*/\n s.lazy = {\n initialImageLoaded: false,\n loadImageInSlide: function (index, loadInDuplicate) {\n if (typeof index === 'undefined') return;\n if (typeof loadInDuplicate === 'undefined') loadInDuplicate = true;\n if (s.slides.length === 0) return;\n\n var slide = s.slides.eq(index);\n var img = slide.find('.' + s.params.lazyLoadingClass + ':not(.' + s.params.lazyStatusLoadedClass + '):not(.' + s.params.lazyStatusLoadingClass + ')');\n if (slide.hasClass(s.params.lazyLoadingClass) && !slide.hasClass(s.params.lazyStatusLoadedClass) && !slide.hasClass(s.params.lazyStatusLoadingClass)) {\n img = img.add(slide[0]);\n }\n if (img.length === 0) return;\n\n img.each(function () {\n var _img = $(this);\n _img.addClass(s.params.lazyStatusLoadingClass);\n var background = _img.attr('data-background');\n var src = _img.attr('data-src'),\n srcset = _img.attr('data-srcset'),\n sizes = _img.attr('data-sizes');\n s.loadImage(_img[0], src || background, srcset, sizes, false, function () {\n if (typeof s === 'undefined' || s === null || !s) return;\n if (background) {\n _img.css('background-image', 'url(\"' + background + '\")');\n _img.removeAttr('data-background');\n } else {\n if (srcset) {\n _img.attr('srcset', srcset);\n _img.removeAttr('data-srcset');\n }\n if (sizes) {\n _img.attr('sizes', sizes);\n _img.removeAttr('data-sizes');\n }\n if (src) {\n _img.attr('src', src);\n _img.removeAttr('data-src');\n }\n }\n\n _img.addClass(s.params.lazyStatusLoadedClass).removeClass(s.params.lazyStatusLoadingClass);\n slide.find('.' + s.params.lazyPreloaderClass + ', .' + s.params.preloaderClass).remove();\n if (s.params.loop && loadInDuplicate) {\n var slideOriginalIndex = slide.attr('data-swiper-slide-index');\n if (slide.hasClass(s.params.slideDuplicateClass)) {\n var originalSlide = s.wrapper.children('[data-swiper-slide-index=\"' + slideOriginalIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')');\n s.lazy.loadImageInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = s.wrapper.children('.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + slideOriginalIndex + '\"]');\n s.lazy.loadImageInSlide(duplicatedSlide.index(), false);\n }\n }\n s.emit('onLazyImageReady', s, slide[0], _img[0]);\n });\n\n s.emit('onLazyImageLoad', s, slide[0], _img[0]);\n });\n },\n load: function () {\n var i;\n var slidesPerView = s.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n if (!s.lazy.initialImageLoaded) s.lazy.initialImageLoaded = true;\n if (s.params.watchSlidesVisibility) {\n s.wrapper.children('.' + s.params.slideVisibleClass).each(function () {\n s.lazy.loadImageInSlide($(this).index());\n });\n } else {\n if (slidesPerView > 1) {\n for (i = s.activeIndex; i < s.activeIndex + slidesPerView; i++) {\n if (s.slides[i]) s.lazy.loadImageInSlide(i);\n }\n } else {\n s.lazy.loadImageInSlide(s.activeIndex);\n }\n }\n if (s.params.lazyLoadingInPrevNext) {\n if (slidesPerView > 1 || s.params.lazyLoadingInPrevNextAmount && s.params.lazyLoadingInPrevNextAmount > 1) {\n var amount = s.params.lazyLoadingInPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(s.activeIndex + spv + Math.max(amount, spv), s.slides.length);\n var minIndex = Math.max(s.activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (i = s.activeIndex + slidesPerView; i < maxIndex; i++) {\n if (s.slides[i]) s.lazy.loadImageInSlide(i);\n }\n // Prev Slides\n for (i = minIndex; i < s.activeIndex; i++) {\n if (s.slides[i]) s.lazy.loadImageInSlide(i);\n }\n } else {\n var nextSlide = s.wrapper.children('.' + s.params.slideNextClass);\n if (nextSlide.length > 0) s.lazy.loadImageInSlide(nextSlide.index());\n\n var prevSlide = s.wrapper.children('.' + s.params.slidePrevClass);\n if (prevSlide.length > 0) s.lazy.loadImageInSlide(prevSlide.index());\n }\n }\n },\n onTransitionStart: function () {\n if (s.params.lazyLoading) {\n if (s.params.lazyLoadingOnTransitionStart || !s.params.lazyLoadingOnTransitionStart && !s.lazy.initialImageLoaded) {\n s.lazy.load();\n }\n }\n },\n onTransitionEnd: function () {\n if (s.params.lazyLoading && !s.params.lazyLoadingOnTransitionStart) {\n s.lazy.load();\n }\n }\n };\n\n /*=========================\r\n Scrollbar\r\n ===========================*/\n s.scrollbar = {\n isTouched: false,\n setDragPosition: function (e) {\n var sb = s.scrollbar;\n var x = 0,\n y = 0;\n var translate;\n var pointerPosition = s.isHorizontal() ? e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX || e.clientX : e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY || e.clientY;\n var position = pointerPosition - sb.track.offset()[s.isHorizontal() ? 'left' : 'top'] - sb.dragSize / 2;\n var positionMin = -s.minTranslate() * sb.moveDivider;\n var positionMax = -s.maxTranslate() * sb.moveDivider;\n if (position < positionMin) {\n position = positionMin;\n } else if (position > positionMax) {\n position = positionMax;\n }\n position = -position / sb.moveDivider;\n s.updateProgress(position);\n s.setWrapperTranslate(position, true);\n },\n dragStart: function (e) {\n var sb = s.scrollbar;\n sb.isTouched = true;\n e.preventDefault();\n e.stopPropagation();\n\n sb.setDragPosition(e);\n clearTimeout(sb.dragTimeout);\n\n sb.track.transition(0);\n if (s.params.scrollbarHide) {\n sb.track.css('opacity', 1);\n }\n s.wrapper.transition(100);\n sb.drag.transition(100);\n s.emit('onScrollbarDragStart', s);\n },\n dragMove: function (e) {\n var sb = s.scrollbar;\n if (!sb.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n sb.setDragPosition(e);\n s.wrapper.transition(0);\n sb.track.transition(0);\n sb.drag.transition(0);\n s.emit('onScrollbarDragMove', s);\n },\n dragEnd: function (e) {\n var sb = s.scrollbar;\n if (!sb.isTouched) return;\n sb.isTouched = false;\n if (s.params.scrollbarHide) {\n clearTimeout(sb.dragTimeout);\n sb.dragTimeout = setTimeout(function () {\n sb.track.css('opacity', 0);\n sb.track.transition(400);\n }, 1000);\n }\n s.emit('onScrollbarDragEnd', s);\n if (s.params.scrollbarSnapOnRelease) {\n s.slideReset();\n }\n },\n draggableEvents: function () {\n if (s.params.simulateTouch === false && !s.support.touch) return s.touchEventsDesktop;else return s.touchEvents;\n }(),\n enableDraggable: function () {\n var sb = s.scrollbar;\n var target = s.support.touch ? sb.track : document;\n $(sb.track).on(sb.draggableEvents.start, sb.dragStart);\n $(target).on(sb.draggableEvents.move, sb.dragMove);\n $(target).on(sb.draggableEvents.end, sb.dragEnd);\n },\n disableDraggable: function () {\n var sb = s.scrollbar;\n var target = s.support.touch ? sb.track : document;\n $(sb.track).off(sb.draggableEvents.start, sb.dragStart);\n $(target).off(sb.draggableEvents.move, sb.dragMove);\n $(target).off(sb.draggableEvents.end, sb.dragEnd);\n },\n set: function () {\n if (!s.params.scrollbar) return;\n var sb = s.scrollbar;\n sb.track = $(s.params.scrollbar);\n if (s.params.uniqueNavElements && typeof s.params.scrollbar === 'string' && sb.track.length > 1 && s.container.find(s.params.scrollbar).length === 1) {\n sb.track = s.container.find(s.params.scrollbar);\n }\n sb.drag = sb.track.find('.swiper-scrollbar-drag');\n if (sb.drag.length === 0) {\n sb.drag = $('
');\n sb.track.append(sb.drag);\n }\n sb.drag[0].style.width = '';\n sb.drag[0].style.height = '';\n sb.trackSize = s.isHorizontal() ? sb.track[0].offsetWidth : sb.track[0].offsetHeight;\n\n sb.divider = s.size / s.virtualSize;\n sb.moveDivider = sb.divider * (sb.trackSize / s.size);\n sb.dragSize = sb.trackSize * sb.divider;\n\n if (s.isHorizontal()) {\n sb.drag[0].style.width = sb.dragSize + 'px';\n } else {\n sb.drag[0].style.height = sb.dragSize + 'px';\n }\n\n if (sb.divider >= 1) {\n sb.track[0].style.display = 'none';\n } else {\n sb.track[0].style.display = '';\n }\n if (s.params.scrollbarHide) {\n sb.track[0].style.opacity = 0;\n }\n },\n setTranslate: function () {\n if (!s.params.scrollbar) return;\n var diff;\n var sb = s.scrollbar;\n var translate = s.translate || 0;\n var newPos;\n\n var newSize = sb.dragSize;\n newPos = (sb.trackSize - sb.dragSize) * s.progress;\n if (s.rtl && s.isHorizontal()) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = sb.dragSize - newPos;\n newPos = 0;\n } else if (-newPos + sb.dragSize > sb.trackSize) {\n newSize = sb.trackSize + newPos;\n }\n } else {\n if (newPos < 0) {\n newSize = sb.dragSize + newPos;\n newPos = 0;\n } else if (newPos + sb.dragSize > sb.trackSize) {\n newSize = sb.trackSize - newPos;\n }\n }\n if (s.isHorizontal()) {\n if (s.support.transforms3d) {\n sb.drag.transform('translate3d(' + newPos + 'px, 0, 0)');\n } else {\n sb.drag.transform('translateX(' + newPos + 'px)');\n }\n sb.drag[0].style.width = newSize + 'px';\n } else {\n if (s.support.transforms3d) {\n sb.drag.transform('translate3d(0px, ' + newPos + 'px, 0)');\n } else {\n sb.drag.transform('translateY(' + newPos + 'px)');\n }\n sb.drag[0].style.height = newSize + 'px';\n }\n if (s.params.scrollbarHide) {\n clearTimeout(sb.timeout);\n sb.track[0].style.opacity = 1;\n sb.timeout = setTimeout(function () {\n sb.track[0].style.opacity = 0;\n sb.track.transition(400);\n }, 1000);\n }\n },\n setTransition: function (duration) {\n if (!s.params.scrollbar) return;\n s.scrollbar.drag.transition(duration);\n }\n };\n\n /*=========================\r\n Controller\r\n ===========================*/\n s.controller = {\n LinearSpline: function (x, y) {\n var binarySearch = function () {\n var maxIndex, minIndex, guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) if (array[guess = maxIndex + minIndex >> 1] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n var i1, i3;\n var l = this.x.length;\n\n this.interpolate = function (x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n },\n //xxx: for now i will just save one spline function to to\n getInterpolateFunction: function (c) {\n if (!s.controller.spline) s.controller.spline = s.params.loop ? new s.controller.LinearSpline(s.slidesGrid, c.slidesGrid) : new s.controller.LinearSpline(s.snapGrid, c.snapGrid);\n },\n setTranslate: function (translate, byController) {\n var controlled = s.params.control;\n var multiplier, controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n translate = c.rtl && c.params.direction === 'horizontal' ? -s.translate : s.translate;\n if (s.params.controlBy === 'slide') {\n s.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -s.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || s.params.controlBy === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (s.maxTranslate() - s.minTranslate());\n controlledTranslate = (translate - s.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (s.params.controlInverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setWrapperTranslate(controlledTranslate, false, s);\n c.updateActiveIndex();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i++) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n\n setControlledTranslate(controlled);\n }\n },\n setTransition: function (duration, byController) {\n var controlled = s.params.control;\n var i;\n function setControlledTransition(c) {\n c.setWrapperTransition(duration, s);\n if (duration !== 0) {\n c.onTransitionStart();\n c.wrapper.transitionEnd(function () {\n if (!controlled) return;\n if (c.params.loop && s.params.controlBy === 'slide') {\n c.fixLoop();\n }\n c.onTransitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i++) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n };\n\n /*=========================\r\n Hash Navigation\r\n ===========================*/\n s.hashnav = {\n onHashCange: function (e, a) {\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = s.slides.eq(s.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n s.slideTo(s.wrapper.children('.' + s.params.slideClass + '[data-hash=\"' + newHash + '\"]').index());\n }\n },\n attachEvents: function (detach) {\n var action = detach ? 'off' : 'on';\n $(window)[action]('hashchange', s.hashnav.onHashCange);\n },\n setHash: function () {\n if (!s.hashnav.initialized || !s.params.hashnav) return;\n if (s.params.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, '#' + s.slides.eq(s.activeIndex).attr('data-hash') || '');\n } else {\n var slide = s.slides.eq(s.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n }\n },\n init: function () {\n if (!s.params.hashnav || s.params.history) return;\n s.hashnav.initialized = true;\n var hash = document.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = s.slides.length; i < length; i++) {\n var slide = s.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(s.params.slideDuplicateClass)) {\n var index = slide.index();\n s.slideTo(index, speed, s.params.runCallbacksOnInit, true);\n }\n }\n }\n if (s.params.hashnavWatchState) s.hashnav.attachEvents();\n },\n destroy: function () {\n if (s.params.hashnavWatchState) s.hashnav.attachEvents(true);\n }\n };\n\n /*=========================\r\n History Api with fallback to Hashnav\r\n ===========================*/\n s.history = {\n init: function () {\n if (!s.params.history) return;\n if (!window.history || !window.history.pushState) {\n s.params.history = false;\n s.params.hashnav = true;\n return;\n }\n s.history.initialized = true;\n this.paths = this.getPathValues();\n if (!this.paths.key && !this.paths.value) return;\n this.scrollToSlide(0, this.paths.value, s.params.runCallbacksOnInit);\n if (!s.params.replaceState) {\n window.addEventListener('popstate', this.setHistoryPopState);\n }\n },\n setHistoryPopState: function () {\n s.history.paths = s.history.getPathValues();\n s.history.scrollToSlide(s.params.speed, s.history.paths.value, false);\n },\n getPathValues: function () {\n var pathArray = window.location.pathname.slice(1).split('/');\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return { key: key, value: value };\n },\n setHistory: function (key, index) {\n if (!s.history.initialized || !s.params.history) return;\n var slide = s.slides.eq(index);\n var value = this.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = key + '/' + value;\n }\n if (s.params.replaceState) {\n window.history.replaceState(null, null, value);\n } else {\n window.history.pushState(null, null, value);\n }\n },\n slugify: function (text) {\n return text.toString().toLowerCase().replace(/\\s+/g, '-').replace(/[^\\w\\-]+/g, '').replace(/\\-\\-+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function (speed, value, runCallbacks) {\n if (value) {\n for (var i = 0, length = s.slides.length; i < length; i++) {\n var slide = s.slides.eq(i);\n var slideHistory = this.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(s.params.slideDuplicateClass)) {\n var index = slide.index();\n s.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n s.slideTo(0, speed, runCallbacks);\n }\n }\n };\n\n /*=========================\r\n Keyboard Control\r\n ===========================*/\n function handleKeyboard(e) {\n if (e.originalEvent) e = e.originalEvent; //jquery fix\n var kc = e.keyCode || e.charCode;\n // Directions locks\n if (!s.params.allowSwipeToNext && (s.isHorizontal() && kc === 39 || !s.isHorizontal() && kc === 40)) {\n return false;\n }\n if (!s.params.allowSwipeToPrev && (s.isHorizontal() && kc === 37 || !s.isHorizontal() && kc === 38)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return;\n }\n if (kc === 37 || kc === 39 || kc === 38 || kc === 40) {\n var inView = false;\n //Check that swiper should be inside of visible area of window\n if (s.container.parents('.' + s.params.slideClass).length > 0 && s.container.parents('.' + s.params.slideActiveClass).length === 0) {\n return;\n }\n var windowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = s.container.offset();\n if (s.rtl) swiperOffset.left = swiperOffset.left - s.container[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + s.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + s.height], [swiperOffset.left + s.width, swiperOffset.top + s.height]];\n for (var i = 0; i < swiperCoord.length; i++) {\n var point = swiperCoord[i];\n if (point[0] >= windowScroll.left && point[0] <= windowScroll.left + windowWidth && point[1] >= windowScroll.top && point[1] <= windowScroll.top + windowHeight) {\n inView = true;\n }\n }\n if (!inView) return;\n }\n if (s.isHorizontal()) {\n if (kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (kc === 39 && !s.rtl || kc === 37 && s.rtl) s.slideNext();\n if (kc === 37 && !s.rtl || kc === 39 && s.rtl) s.slidePrev();\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (kc === 40) s.slideNext();\n if (kc === 38) s.slidePrev();\n }\n s.emit('onKeyPress', s, kc);\n }\n s.disableKeyboardControl = function () {\n s.params.keyboardControl = false;\n $(document).off('keydown', handleKeyboard);\n };\n s.enableKeyboardControl = function () {\n s.params.keyboardControl = true;\n $(document).on('keydown', handleKeyboard);\n };\n\n /*=========================\r\n Mousewheel Control\r\n ===========================*/\n s.mousewheel = {\n event: false,\n lastScrollTime: new window.Date().getTime()\n };\n function isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n }\n /**\r\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\r\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\r\n * your questions.\r\n *\r\n * If you need to react to the mouse wheel in a predictable way, this code is\r\n * like your bestest friend. * hugs *\r\n *\r\n * As of today, there are 4 DOM event types you can listen to:\r\n *\r\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\r\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\r\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\r\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\r\n *\r\n * So what to do? The is the best:\r\n *\r\n * normalizeWheel.getEventType();\r\n *\r\n * In your event callback, use this code to get sane interpretation of the\r\n * deltas. This code will return an object with properties:\r\n *\r\n * spinX -- normalized spin speed (use for zoom) - x plane\r\n * spinY -- \" - y plane\r\n * pixelX -- normalized distance (to pixels) - x plane\r\n * pixelY -- \" - y plane\r\n *\r\n * Wheel values are provided by the browser assuming you are using the wheel to\r\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\r\n * significantly on different platforms and browsers, forgetting that you can\r\n * scroll at different speeds. Some devices (like trackpads) emit more events\r\n * at smaller increments with fine granularity, and some emit massive jumps with\r\n * linear speed or acceleration.\r\n *\r\n * This code does its best to normalize the deltas for you:\r\n *\r\n * - spin is trying to normalize how far the wheel was spun (or trackpad\r\n * dragged). This is super useful for zoom support where you want to\r\n * throw away the chunky scroll steps on the PC and make those equal to\r\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\r\n * resolve a single slow step on a wheel to 1.\r\n *\r\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\r\n * get the crazy differences between browsers, but at least it'll be in\r\n * pixels!\r\n *\r\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\r\n * should translate to positive value zooming IN, negative zooming OUT.\r\n * This matches the newer 'wheel' event.\r\n *\r\n * Why are there spinX, spinY (or pixels)?\r\n *\r\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\r\n * with a mouse. It results in side-scrolling in the browser by default.\r\n *\r\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\r\n *\r\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\r\n * probably is by browsers in conjunction with fancy 3D controllers .. but\r\n * you know.\r\n *\r\n * Implementation info:\r\n *\r\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\r\n * average mouse:\r\n *\r\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\r\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\r\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\r\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\r\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\r\n *\r\n * On the trackpad:\r\n *\r\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\r\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\r\n *\r\n * On other/older browsers.. it's more complicated as there can be multiple and\r\n * also missing delta values.\r\n *\r\n * The 'wheel' event is more standard:\r\n *\r\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\r\n *\r\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\r\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\r\n * backward compatibility with older events. Those other values help us\r\n * better normalize spin speed. Example of what the browsers provide:\r\n *\r\n * | event.wheelDelta | event.detail\r\n * ------------------+------------------+--------------\r\n * Safari v5/OS X | -120 | 0\r\n * Safari v5/Win7 | -120 | 0\r\n * Chrome v17/OS X | -120 | 0\r\n * Chrome v17/Win7 | -120 | 0\r\n * IE9/Win7 | -120 | undefined\r\n * Firefox v4/OS X | undefined | 1\r\n * Firefox v4/Win7 | undefined | 3\r\n *\r\n */\n function normalizeWheel( /*object*/event) /*object*/{\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n\n var sX = 0,\n sY = 0,\n // spinX, spinY\n pX = 0,\n pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) {\n sY = event.detail;\n }\n if ('wheelDelta' in event) {\n sY = -event.wheelDelta / 120;\n }\n if ('wheelDeltaY' in event) {\n sY = -event.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in event) {\n sX = -event.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pY = event.deltaY;\n }\n if ('deltaX' in event) {\n pX = event.deltaX;\n }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n if (s.params.mousewheelControl) {\n /**\r\n * The best combination if you prefer spinX + spinY normalization. It favors\r\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\r\n * 'wheel' event, making spin speed determination impossible.\r\n */\n s.mousewheel.event = navigator.userAgent.indexOf('firefox') > -1 ? 'DOMMouseScroll' : isEventSupported() ? 'wheel' : 'mousewheel';\n }\n function handleMousewheel(e) {\n if (e.originalEvent) e = e.originalEvent; //jquery fix\n var delta = 0;\n var rtlFactor = s.rtl ? -1 : 1;\n\n var data = normalizeWheel(e);\n\n if (s.params.mousewheelForceToAxis) {\n if (s.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;else return;\n } else {\n if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;else return;\n }\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return;\n\n if (s.params.mousewheelInvert) delta = -delta;\n\n if (!s.params.freeMode) {\n if (new window.Date().getTime() - s.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!s.isEnd || s.params.loop) && !s.animating) {\n s.slideNext();\n s.emit('onScroll', s, e);\n } else if (s.params.mousewheelReleaseOnEdges) return true;\n } else {\n if ((!s.isBeginning || s.params.loop) && !s.animating) {\n s.slidePrev();\n s.emit('onScroll', s, e);\n } else if (s.params.mousewheelReleaseOnEdges) return true;\n }\n }\n s.mousewheel.lastScrollTime = new window.Date().getTime();\n } else {\n //Freemode or scrollContainer:\n var position = s.getWrapperTranslate() + delta * s.params.mousewheelSensitivity;\n var wasBeginning = s.isBeginning,\n wasEnd = s.isEnd;\n\n if (position >= s.minTranslate()) position = s.minTranslate();\n if (position <= s.maxTranslate()) position = s.maxTranslate();\n\n s.setWrapperTransition(0);\n s.setWrapperTranslate(position);\n s.updateProgress();\n s.updateActiveIndex();\n\n if (!wasBeginning && s.isBeginning || !wasEnd && s.isEnd) {\n s.updateClasses();\n }\n\n if (s.params.freeModeSticky) {\n clearTimeout(s.mousewheel.timeout);\n s.mousewheel.timeout = setTimeout(function () {\n s.slideReset();\n }, 300);\n } else {\n if (s.params.lazyLoading && s.lazy) {\n s.lazy.load();\n }\n }\n // Emit event\n s.emit('onScroll', s, e);\n\n // Stop autoplay\n if (s.params.autoplay && s.params.autoplayDisableOnInteraction) s.stopAutoplay();\n\n // Return page scroll on edge positions\n if (position === 0 || position === s.maxTranslate()) return;\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n s.disableMousewheelControl = function () {\n if (!s.mousewheel.event) return false;\n var target = s.container;\n if (s.params.mousewheelEventsTarged !== 'container') {\n target = $(s.params.mousewheelEventsTarged);\n }\n target.off(s.mousewheel.event, handleMousewheel);\n s.params.mousewheelControl = false;\n return true;\n };\n\n s.enableMousewheelControl = function () {\n if (!s.mousewheel.event) return false;\n var target = s.container;\n if (s.params.mousewheelEventsTarged !== 'container') {\n target = $(s.params.mousewheelEventsTarged);\n }\n target.on(s.mousewheel.event, handleMousewheel);\n s.params.mousewheelControl = true;\n return true;\n };\n\n /*=========================\r\n Parallax\r\n ===========================*/\n function setParallaxTransform(el, progress) {\n el = $(el);\n var p, pX, pY;\n var rtlFactor = s.rtl ? -1 : 1;\n\n p = el.attr('data-swiper-parallax') || '0';\n pX = el.attr('data-swiper-parallax-x');\n pY = el.attr('data-swiper-parallax-y');\n if (pX || pY) {\n pX = pX || '0';\n pY = pY || '0';\n } else {\n if (s.isHorizontal()) {\n pX = p;\n pY = '0';\n } else {\n pY = p;\n pX = '0';\n }\n }\n\n if (pX.indexOf('%') >= 0) {\n pX = parseInt(pX, 10) * progress * rtlFactor + '%';\n } else {\n pX = pX * progress * rtlFactor + 'px';\n }\n if (pY.indexOf('%') >= 0) {\n pY = parseInt(pY, 10) * progress + '%';\n } else {\n pY = pY * progress + 'px';\n }\n\n el.transform('translate3d(' + pX + ', ' + pY + ',0px)');\n }\n s.parallax = {\n setTranslate: function () {\n s.container.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function () {\n setParallaxTransform(this, s.progress);\n });\n s.slides.each(function () {\n var slide = $(this);\n slide.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function () {\n var progress = Math.min(Math.max(slide[0].progress, -1), 1);\n setParallaxTransform(this, progress);\n });\n });\n },\n setTransition: function (duration) {\n if (typeof duration === 'undefined') duration = s.params.speed;\n s.container.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function () {\n var el = $(this);\n var parallaxDuration = parseInt(el.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n el.transition(parallaxDuration);\n });\n }\n };\n\n /*=========================\r\n Zoom\r\n ===========================*/\n s.zoom = {\n // \"Global\" Props\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n slide: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n image: undefined,\n imageWrap: undefined,\n zoomMax: s.params.zoomMax\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n },\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function (e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX,\n y1 = e.targetTouches[0].pageY,\n x2 = e.targetTouches[1].pageX,\n y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function (e) {\n var z = s.zoom;\n if (!s.support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n z.gesture.scaleStart = z.getDistanceBetweenTouches(e);\n }\n if (!z.gesture.slide || !z.gesture.slide.length) {\n z.gesture.slide = $(this);\n if (z.gesture.slide.length === 0) z.gesture.slide = s.slides.eq(s.activeIndex);\n z.gesture.image = z.gesture.slide.find('img, svg, canvas');\n z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);\n z.gesture.zoomMax = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax;\n if (z.gesture.imageWrap.length === 0) {\n z.gesture.image = undefined;\n return;\n }\n }\n z.gesture.image.transition(0);\n z.isScaling = true;\n },\n onGestureChange: function (e) {\n var z = s.zoom;\n if (!s.support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n z.gesture.scaleMove = z.getDistanceBetweenTouches(e);\n }\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n if (s.support.gestures) {\n z.scale = e.scale * z.currentScale;\n } else {\n z.scale = z.gesture.scaleMove / z.gesture.scaleStart * z.currentScale;\n }\n if (z.scale > z.gesture.zoomMax) {\n z.scale = z.gesture.zoomMax - 1 + Math.pow(z.scale - z.gesture.zoomMax + 1, 0.5);\n }\n if (z.scale < s.params.zoomMin) {\n z.scale = s.params.zoomMin + 1 - Math.pow(s.params.zoomMin - z.scale + 1, 0.5);\n }\n z.gesture.image.transform('translate3d(0,0,0) scale(' + z.scale + ')');\n },\n onGestureEnd: function (e) {\n var z = s.zoom;\n if (!s.support.gestures) {\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2) {\n return;\n }\n }\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n z.scale = Math.max(Math.min(z.scale, z.gesture.zoomMax), s.params.zoomMin);\n z.gesture.image.transition(s.params.speed).transform('translate3d(0,0,0) scale(' + z.scale + ')');\n z.currentScale = z.scale;\n z.isScaling = false;\n if (z.scale === 1) z.gesture.slide = undefined;\n },\n onTouchStart: function (s, e) {\n var z = s.zoom;\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n if (z.image.isTouched) return;\n if (s.device.os === 'android') e.preventDefault();\n z.image.isTouched = true;\n z.image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n z.image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function (e) {\n var z = s.zoom;\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n s.allowClick = false;\n if (!z.image.isTouched || !z.gesture.slide) return;\n\n if (!z.image.isMoved) {\n z.image.width = z.gesture.image[0].offsetWidth;\n z.image.height = z.gesture.image[0].offsetHeight;\n z.image.startX = s.getTranslate(z.gesture.imageWrap[0], 'x') || 0;\n z.image.startY = s.getTranslate(z.gesture.imageWrap[0], 'y') || 0;\n z.gesture.slideWidth = z.gesture.slide[0].offsetWidth;\n z.gesture.slideHeight = z.gesture.slide[0].offsetHeight;\n z.gesture.imageWrap.transition(0);\n if (s.rtl) z.image.startX = -z.image.startX;\n if (s.rtl) z.image.startY = -z.image.startY;\n }\n // Define if we need image drag\n var scaledWidth = z.image.width * z.scale;\n var scaledHeight = z.image.height * z.scale;\n\n if (scaledWidth < z.gesture.slideWidth && scaledHeight < z.gesture.slideHeight) return;\n\n z.image.minX = Math.min(z.gesture.slideWidth / 2 - scaledWidth / 2, 0);\n z.image.maxX = -z.image.minX;\n z.image.minY = Math.min(z.gesture.slideHeight / 2 - scaledHeight / 2, 0);\n z.image.maxY = -z.image.minY;\n\n z.image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n z.image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!z.image.isMoved && !z.isScaling) {\n if (s.isHorizontal() && Math.floor(z.image.minX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x < z.image.touchesStart.x || Math.floor(z.image.maxX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x > z.image.touchesStart.x) {\n z.image.isTouched = false;\n return;\n } else if (!s.isHorizontal() && Math.floor(z.image.minY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y < z.image.touchesStart.y || Math.floor(z.image.maxY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y > z.image.touchesStart.y) {\n z.image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n z.image.isMoved = true;\n z.image.currentX = z.image.touchesCurrent.x - z.image.touchesStart.x + z.image.startX;\n z.image.currentY = z.image.touchesCurrent.y - z.image.touchesStart.y + z.image.startY;\n\n if (z.image.currentX < z.image.minX) {\n z.image.currentX = z.image.minX + 1 - Math.pow(z.image.minX - z.image.currentX + 1, 0.8);\n }\n if (z.image.currentX > z.image.maxX) {\n z.image.currentX = z.image.maxX - 1 + Math.pow(z.image.currentX - z.image.maxX + 1, 0.8);\n }\n\n if (z.image.currentY < z.image.minY) {\n z.image.currentY = z.image.minY + 1 - Math.pow(z.image.minY - z.image.currentY + 1, 0.8);\n }\n if (z.image.currentY > z.image.maxY) {\n z.image.currentY = z.image.maxY - 1 + Math.pow(z.image.currentY - z.image.maxY + 1, 0.8);\n }\n\n //Velocity\n if (!z.velocity.prevPositionX) z.velocity.prevPositionX = z.image.touchesCurrent.x;\n if (!z.velocity.prevPositionY) z.velocity.prevPositionY = z.image.touchesCurrent.y;\n if (!z.velocity.prevTime) z.velocity.prevTime = Date.now();\n z.velocity.x = (z.image.touchesCurrent.x - z.velocity.prevPositionX) / (Date.now() - z.velocity.prevTime) / 2;\n z.velocity.y = (z.image.touchesCurrent.y - z.velocity.prevPositionY) / (Date.now() - z.velocity.prevTime) / 2;\n if (Math.abs(z.image.touchesCurrent.x - z.velocity.prevPositionX) < 2) z.velocity.x = 0;\n if (Math.abs(z.image.touchesCurrent.y - z.velocity.prevPositionY) < 2) z.velocity.y = 0;\n z.velocity.prevPositionX = z.image.touchesCurrent.x;\n z.velocity.prevPositionY = z.image.touchesCurrent.y;\n z.velocity.prevTime = Date.now();\n\n z.gesture.imageWrap.transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');\n },\n onTouchEnd: function (s, e) {\n var z = s.zoom;\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n if (!z.image.isTouched || !z.image.isMoved) {\n z.image.isTouched = false;\n z.image.isMoved = false;\n return;\n }\n z.image.isTouched = false;\n z.image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = z.velocity.x * momentumDurationX;\n var newPositionX = z.image.currentX + momentumDistanceX;\n var momentumDistanceY = z.velocity.y * momentumDurationY;\n var newPositionY = z.image.currentY + momentumDistanceY;\n\n //Fix duration\n if (z.velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - z.image.currentX) / z.velocity.x);\n if (z.velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - z.image.currentY) / z.velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n z.image.currentX = newPositionX;\n z.image.currentY = newPositionY;\n\n // Define if we need image drag\n var scaledWidth = z.image.width * z.scale;\n var scaledHeight = z.image.height * z.scale;\n z.image.minX = Math.min(z.gesture.slideWidth / 2 - scaledWidth / 2, 0);\n z.image.maxX = -z.image.minX;\n z.image.minY = Math.min(z.gesture.slideHeight / 2 - scaledHeight / 2, 0);\n z.image.maxY = -z.image.minY;\n z.image.currentX = Math.max(Math.min(z.image.currentX, z.image.maxX), z.image.minX);\n z.image.currentY = Math.max(Math.min(z.image.currentY, z.image.maxY), z.image.minY);\n\n z.gesture.imageWrap.transition(momentumDuration).transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');\n },\n onTransitionEnd: function (s) {\n var z = s.zoom;\n if (z.gesture.slide && s.previousIndex !== s.activeIndex) {\n z.gesture.image.transform('translate3d(0,0,0) scale(1)');\n z.gesture.imageWrap.transform('translate3d(0,0,0)');\n z.gesture.slide = z.gesture.image = z.gesture.imageWrap = undefined;\n z.scale = z.currentScale = 1;\n }\n },\n // Toggle Zoom\n toggleZoom: function (s, e) {\n var z = s.zoom;\n if (!z.gesture.slide) {\n z.gesture.slide = s.clickedSlide ? $(s.clickedSlide) : s.slides.eq(s.activeIndex);\n z.gesture.image = z.gesture.slide.find('img, svg, canvas');\n z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);\n }\n if (!z.gesture.image || z.gesture.image.length === 0) return;\n\n var touchX, touchY, offsetX, offsetY, diffX, diffY, translateX, translateY, imageWidth, imageHeight, scaledWidth, scaledHeight, translateMinX, translateMinY, translateMaxX, translateMaxY, slideWidth, slideHeight;\n\n if (typeof z.image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = z.image.touchesStart.x;\n touchY = z.image.touchesStart.y;\n }\n\n if (z.scale && z.scale !== 1) {\n // Zoom Out\n z.scale = z.currentScale = 1;\n z.gesture.imageWrap.transition(300).transform('translate3d(0,0,0)');\n z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(1)');\n z.gesture.slide = undefined;\n } else {\n // Zoom In\n z.scale = z.currentScale = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax;\n if (e) {\n slideWidth = z.gesture.slide[0].offsetWidth;\n slideHeight = z.gesture.slide[0].offsetHeight;\n offsetX = z.gesture.slide.offset().left;\n offsetY = z.gesture.slide.offset().top;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n\n imageWidth = z.gesture.image[0].offsetWidth;\n imageHeight = z.gesture.image[0].offsetHeight;\n scaledWidth = imageWidth * z.scale;\n scaledHeight = imageHeight * z.scale;\n\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * z.scale;\n translateY = diffY * z.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n z.gesture.imageWrap.transition(300).transform('translate3d(' + translateX + 'px, ' + translateY + 'px,0)');\n z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(' + z.scale + ')');\n }\n },\n // Attach/Detach Events\n attachEvents: function (detach) {\n var action = detach ? 'off' : 'on';\n\n if (s.params.zoom) {\n var target = s.slides;\n var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? { passive: true, capture: false } : false;\n // Scale image\n if (s.support.gestures) {\n s.slides[action]('gesturestart', s.zoom.onGestureStart, passiveListener);\n s.slides[action]('gesturechange', s.zoom.onGestureChange, passiveListener);\n s.slides[action]('gestureend', s.zoom.onGestureEnd, passiveListener);\n } else if (s.touchEvents.start === 'touchstart') {\n s.slides[action](s.touchEvents.start, s.zoom.onGestureStart, passiveListener);\n s.slides[action](s.touchEvents.move, s.zoom.onGestureChange, passiveListener);\n s.slides[action](s.touchEvents.end, s.zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n s[action]('touchStart', s.zoom.onTouchStart);\n s.slides.each(function (index, slide) {\n if ($(slide).find('.' + s.params.zoomContainerClass).length > 0) {\n $(slide)[action](s.touchEvents.move, s.zoom.onTouchMove);\n }\n });\n s[action]('touchEnd', s.zoom.onTouchEnd);\n\n // Scale Out\n s[action]('transitionEnd', s.zoom.onTransitionEnd);\n if (s.params.zoomToggle) {\n s.on('doubleTap', s.zoom.toggleZoom);\n }\n }\n },\n init: function () {\n s.zoom.attachEvents();\n },\n destroy: function () {\n s.zoom.attachEvents(true);\n }\n };\n\n /*=========================\r\n Plugins API. Collect all and init all plugins\r\n ===========================*/\n s._plugins = [];\n for (var plugin in s.plugins) {\n var p = s.plugins[plugin](s, s.params[plugin]);\n if (p) s._plugins.push(p);\n }\n // Method to call all plugins event/method\n s.callPlugins = function (eventName) {\n for (var i = 0; i < s._plugins.length; i++) {\n if (eventName in s._plugins[i]) {\n s._plugins[i][eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n }\n };\n\n /*=========================\r\n Events/Callbacks/Plugins Emitter\r\n ===========================*/\n function normalizeEventName(eventName) {\n if (eventName.indexOf('on') !== 0) {\n if (eventName[0] !== eventName[0].toUpperCase()) {\n eventName = 'on' + eventName[0].toUpperCase() + eventName.substring(1);\n } else {\n eventName = 'on' + eventName;\n }\n }\n return eventName;\n }\n s.emitterEventListeners = {};\n s.emit = function (eventName) {\n // Trigger callbacks\n if (s.params[eventName]) {\n s.params[eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n var i;\n // Trigger events\n if (s.emitterEventListeners[eventName]) {\n for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n s.emitterEventListeners[eventName][i](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n }\n // Trigger plugins\n if (s.callPlugins) s.callPlugins(eventName, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n };\n s.on = function (eventName, handler) {\n eventName = normalizeEventName(eventName);\n if (!s.emitterEventListeners[eventName]) s.emitterEventListeners[eventName] = [];\n s.emitterEventListeners[eventName].push(handler);\n return s;\n };\n s.off = function (eventName, handler) {\n var i;\n eventName = normalizeEventName(eventName);\n if (typeof handler === 'undefined') {\n // Remove all handlers for such event\n s.emitterEventListeners[eventName] = [];\n return s;\n }\n if (!s.emitterEventListeners[eventName] || s.emitterEventListeners[eventName].length === 0) return;\n for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n if (s.emitterEventListeners[eventName][i] === handler) s.emitterEventListeners[eventName].splice(i, 1);\n }\n return s;\n };\n s.once = function (eventName, handler) {\n eventName = normalizeEventName(eventName);\n var _handler = function () {\n handler(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);\n s.off(eventName, _handler);\n };\n s.on(eventName, _handler);\n return s;\n };\n\n // Accessibility tools\n s.a11y = {\n makeFocusable: function ($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addRole: function ($el, role) {\n $el.attr('role', role);\n return $el;\n },\n\n addLabel: function ($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n\n disable: function ($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n\n enable: function ($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n\n onEnterKey: function (event) {\n if (event.keyCode !== 13) return;\n if ($(event.target).is(s.params.nextButton)) {\n s.onClickNext(event);\n if (s.isEnd) {\n s.a11y.notify(s.params.lastSlideMessage);\n } else {\n s.a11y.notify(s.params.nextSlideMessage);\n }\n } else if ($(event.target).is(s.params.prevButton)) {\n s.onClickPrev(event);\n if (s.isBeginning) {\n s.a11y.notify(s.params.firstSlideMessage);\n } else {\n s.a11y.notify(s.params.prevSlideMessage);\n }\n }\n if ($(event.target).is('.' + s.params.bulletClass)) {\n $(event.target)[0].click();\n }\n },\n\n liveRegion: $(''),\n\n notify: function (message) {\n var notification = s.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n init: function () {\n // Setup accessibility\n if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n s.a11y.makeFocusable(s.nextButton);\n s.a11y.addRole(s.nextButton, 'button');\n s.a11y.addLabel(s.nextButton, s.params.nextSlideMessage);\n }\n if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n s.a11y.makeFocusable(s.prevButton);\n s.a11y.addRole(s.prevButton, 'button');\n s.a11y.addLabel(s.prevButton, s.params.prevSlideMessage);\n }\n\n $(s.container).append(s.a11y.liveRegion);\n },\n initPagination: function () {\n if (s.params.pagination && s.params.paginationClickable && s.bullets && s.bullets.length) {\n s.bullets.each(function () {\n var bullet = $(this);\n s.a11y.makeFocusable(bullet);\n s.a11y.addRole(bullet, 'button');\n s.a11y.addLabel(bullet, s.params.paginationBulletMessage.replace(/{{index}}/, bullet.index() + 1));\n });\n }\n },\n destroy: function () {\n if (s.a11y.liveRegion && s.a11y.liveRegion.length > 0) s.a11y.liveRegion.remove();\n }\n };\n\n /*=========================\r\n Init/Destroy\r\n ===========================*/\n s.init = function () {\n if (s.params.loop) s.createLoop();\n s.updateContainerSize();\n s.updateSlidesSize();\n s.updatePagination();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n if (s.params.scrollbarDraggable) {\n s.scrollbar.enableDraggable();\n }\n }\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n if (!s.params.loop) s.updateProgress();\n s.effects[s.params.effect].setTranslate();\n }\n if (s.params.loop) {\n s.slideTo(s.params.initialSlide + s.loopedSlides, 0, s.params.runCallbacksOnInit);\n } else {\n s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit);\n if (s.params.initialSlide === 0) {\n if (s.parallax && s.params.parallax) s.parallax.setTranslate();\n if (s.lazy && s.params.lazyLoading) {\n s.lazy.load();\n s.lazy.initialImageLoaded = true;\n }\n }\n }\n s.attachEvents();\n if (s.params.observer && s.support.observer) {\n s.initObservers();\n }\n if (s.params.preloadImages && !s.params.lazyLoading) {\n s.preloadImages();\n }\n if (s.params.zoom && s.zoom) {\n s.zoom.init();\n }\n if (s.params.autoplay) {\n s.startAutoplay();\n }\n if (s.params.keyboardControl) {\n if (s.enableKeyboardControl) s.enableKeyboardControl();\n }\n if (s.params.mousewheelControl) {\n if (s.enableMousewheelControl) s.enableMousewheelControl();\n }\n // Deprecated hashnavReplaceState changed to replaceState for use in hashnav and history\n if (s.params.hashnavReplaceState) {\n s.params.replaceState = s.params.hashnavReplaceState;\n }\n if (s.params.history) {\n if (s.history) s.history.init();\n }\n if (s.params.hashnav) {\n if (s.hashnav) s.hashnav.init();\n }\n if (s.params.a11y && s.a11y) s.a11y.init();\n s.emit('onInit', s);\n };\n\n // Cleanup dynamic styles\n s.cleanupStyles = function () {\n // Container\n s.container.removeClass(s.classNames.join(' ')).removeAttr('style');\n\n // Wrapper\n s.wrapper.removeAttr('style');\n\n // Slides\n if (s.slides && s.slides.length) {\n s.slides.removeClass([s.params.slideVisibleClass, s.params.slideActiveClass, s.params.slideNextClass, s.params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-column').removeAttr('data-swiper-row');\n }\n\n // Pagination/Bullets\n if (s.paginationContainer && s.paginationContainer.length) {\n s.paginationContainer.removeClass(s.params.paginationHiddenClass);\n }\n if (s.bullets && s.bullets.length) {\n s.bullets.removeClass(s.params.bulletActiveClass);\n }\n\n // Buttons\n if (s.params.prevButton) $(s.params.prevButton).removeClass(s.params.buttonDisabledClass);\n if (s.params.nextButton) $(s.params.nextButton).removeClass(s.params.buttonDisabledClass);\n\n // Scrollbar\n if (s.params.scrollbar && s.scrollbar) {\n if (s.scrollbar.track && s.scrollbar.track.length) s.scrollbar.track.removeAttr('style');\n if (s.scrollbar.drag && s.scrollbar.drag.length) s.scrollbar.drag.removeAttr('style');\n }\n };\n\n // Destroy\n s.destroy = function (deleteInstance, cleanupStyles) {\n // Detach evebts\n s.detachEvents();\n // Stop autoplay\n s.stopAutoplay();\n // Disable draggable\n if (s.params.scrollbar && s.scrollbar) {\n if (s.params.scrollbarDraggable) {\n s.scrollbar.disableDraggable();\n }\n }\n // Destroy loop\n if (s.params.loop) {\n s.destroyLoop();\n }\n // Cleanup styles\n if (cleanupStyles) {\n s.cleanupStyles();\n }\n // Disconnect observer\n s.disconnectObservers();\n\n // Destroy zoom\n if (s.params.zoom && s.zoom) {\n s.zoom.destroy();\n }\n // Disable keyboard/mousewheel\n if (s.params.keyboardControl) {\n if (s.disableKeyboardControl) s.disableKeyboardControl();\n }\n if (s.params.mousewheelControl) {\n if (s.disableMousewheelControl) s.disableMousewheelControl();\n }\n // Disable a11y\n if (s.params.a11y && s.a11y) s.a11y.destroy();\n // Delete history popstate\n if (s.params.history && !s.params.replaceState) {\n window.removeEventListener('popstate', s.history.setHistoryPopState);\n }\n if (s.params.hashnav && s.hashnav) {\n s.hashnav.destroy();\n }\n // Destroy callback\n s.emit('onDestroy');\n // Delete instance\n if (deleteInstance !== false) s = null;\n };\n\n s.init();\n\n // Return swiper instance\n return s;\n };\n\n /*==================================================\r\n Prototype\r\n ====================================================*/\n Swiper.prototype = {\n isSafari: function () {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n isArray: function (arr) {\n return Object.prototype.toString.apply(arr) === '[object Array]';\n },\n /*==================================================\r\n Browser\r\n ====================================================*/\n browser: {\n ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,\n ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1,\n lteIE9: function () {\n // create temporary DIV\n var div = document.createElement('div');\n // add content to tmp DIV which is wrapped into the IE HTML conditional statement\n div.innerHTML = '';\n // return true / false value based on what will browser render\n return div.getElementsByTagName('i').length === 1;\n }()\n },\n /*==================================================\r\n Devices\r\n ====================================================*/\n device: function () {\n var ua = window.navigator.userAgent;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n return {\n ios: ipad || iphone || ipod,\n android: android\n };\n }(),\n /*==================================================\r\n Feature Detection\r\n ====================================================*/\n support: {\n touch: window.Modernizr && Modernizr.touch === true || function () {\n return !!('ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch);\n }(),\n\n transforms3d: window.Modernizr && Modernizr.csstransforms3d === true || function () {\n var div = document.createElement('div').style;\n return 'webkitPerspective' in div || 'MozPerspective' in div || 'OPerspective' in div || 'MsPerspective' in div || 'perspective' in div;\n }(),\n\n flexbox: function () {\n var div = document.createElement('div').style;\n var styles = 'alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient'.split(' ');\n for (var i = 0; i < styles.length; i++) {\n if (styles[i] in div) return true;\n }\n }(),\n\n observer: function () {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n\n passiveListener: function () {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function () {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {}\n return supportsPassive;\n }(),\n\n gestures: function () {\n return 'ongesturestart' in window;\n }()\n },\n /*==================================================\r\n Plugins\r\n ====================================================*/\n plugins: {}\n };\n\n /*===========================\r\n Dom7 Library\r\n ===========================*/\n var Dom7 = function () {\n var Dom7 = function (arr) {\n var _this = this,\n i = 0;\n // Create array-like object\n for (i = 0; i < arr.length; i++) {\n _this[i] = arr[i];\n }\n _this.length = arr.length;\n // Return collection with methods\n return this;\n };\n var $ = function (selector, context) {\n var arr = [],\n i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els,\n tempParent,\n html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector);\n }\n for (i = 0; i < els.length; i++) {\n if (els[i]) arr.push(els[i]);\n }\n }\n }\n // Node/element\n else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n }\n //Array of elements or instance of Dom\n else if (selector.length > 0 && selector[0].nodeType) {\n for (i = 0; i < selector.length; i++) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n };\n Dom7.prototype = {\n // Classes and attriutes\n addClass: function (className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.add(classes[i]);\n }\n }\n return this;\n },\n removeClass: function (className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.remove(classes[i]);\n }\n }\n return this;\n },\n hasClass: function (className) {\n if (!this[0]) return false;else return this[0].classList.contains(className);\n },\n toggleClass: function (className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n },\n attr: function (attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);else return undefined;\n } else {\n // Set attrs\n for (var i = 0; i < this.length; i++) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n }\n },\n removeAttr: function (attr) {\n for (var i = 0; i < this.length; i++) {\n this[i].removeAttribute(attr);\n }\n return this;\n },\n data: function (key, value) {\n if (typeof value === 'undefined') {\n // Get value\n if (this[0]) {\n var dataKey = this[0].getAttribute('data-' + key);\n if (dataKey) return dataKey;else if (this[0].dom7ElementDataStorage && key in this[0].dom7ElementDataStorage) return this[0].dom7ElementDataStorage[key];else return undefined;\n } else return undefined;\n } else {\n // Set value\n for (var i = 0; i < this.length; i++) {\n var el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n }\n },\n // Transforms\n transform: function (transform) {\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n }\n return this;\n },\n transition: function (duration) {\n if (typeof duration !== 'string') {\n duration = duration + 'ms';\n }\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n }\n return this;\n },\n //Events\n on: function (eventName, targetSelector, listener, capture) {\n function handleLiveEvent(e) {\n var target = e.target;\n if ($(target).is(targetSelector)) listener.call(target, e);else {\n var parents = $(target).parents();\n for (var k = 0; k < parents.length; k++) {\n if ($(parents[k]).is(targetSelector)) listener.call(parents[k], e);\n }\n }\n }\n var events = eventName.split(' ');\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof targetSelector === 'function' || targetSelector === false) {\n // Usual events\n if (typeof targetSelector === 'function') {\n listener = arguments[1];\n capture = arguments[2] || false;\n }\n for (j = 0; j < events.length; j++) {\n this[i].addEventListener(events[j], listener, capture);\n }\n } else {\n //Live events\n for (j = 0; j < events.length; j++) {\n if (!this[i].dom7LiveListeners) this[i].dom7LiveListeners = [];\n this[i].dom7LiveListeners.push({ listener: listener, liveListener: handleLiveEvent });\n this[i].addEventListener(events[j], handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n },\n off: function (eventName, targetSelector, listener, capture) {\n var events = eventName.split(' ');\n for (var i = 0; i < events.length; i++) {\n for (var j = 0; j < this.length; j++) {\n if (typeof targetSelector === 'function' || targetSelector === false) {\n // Usual events\n if (typeof targetSelector === 'function') {\n listener = arguments[1];\n capture = arguments[2] || false;\n }\n this[j].removeEventListener(events[i], listener, capture);\n } else {\n // Live event\n if (this[j].dom7LiveListeners) {\n for (var k = 0; k < this[j].dom7LiveListeners.length; k++) {\n if (this[j].dom7LiveListeners[k].listener === listener) {\n this[j].removeEventListener(events[i], this[j].dom7LiveListeners[k].liveListener, capture);\n }\n }\n }\n }\n }\n }\n return this;\n },\n once: function (eventName, targetSelector, listener, capture) {\n var dom = this;\n if (typeof targetSelector === 'function') {\n targetSelector = false;\n listener = arguments[1];\n capture = arguments[2];\n }\n function proxy(e) {\n listener(e);\n dom.off(eventName, targetSelector, proxy, capture);\n }\n dom.on(eventName, targetSelector, proxy, capture);\n },\n trigger: function (eventName, eventData) {\n for (var i = 0; i < this.length; i++) {\n var evt;\n try {\n evt = new window.CustomEvent(eventName, { detail: eventData, bubbles: true, cancelable: true });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(eventName, true, true);\n evt.detail = eventData;\n }\n this[i].dispatchEvent(evt);\n }\n return this;\n },\n transitionEnd: function (callback) {\n var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n i,\n j,\n dom = this;\n function fireCallBack(e) {\n /*jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i++) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i++) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n },\n // Sizing/Styles\n width: function () {\n if (this[0] === window) {\n return window.innerWidth;\n } else {\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n } else {\n return null;\n }\n }\n },\n outerWidth: function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins) return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));else return this[0].offsetWidth;\n } else return null;\n },\n height: function () {\n if (this[0] === window) {\n return window.innerHeight;\n } else {\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n } else {\n return null;\n }\n }\n },\n outerHeight: function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins) return this[0].offsetHeight + parseFloat(this.css('margin-top')) + parseFloat(this.css('margin-bottom'));else return this[0].offsetHeight;\n } else return null;\n },\n offset: function () {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = window.pageYOffset || el.scrollTop;\n var scrollLeft = window.pageXOffset || el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n } else {\n return null;\n }\n },\n css: function (props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i++) {\n for (var prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i++) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n },\n\n //Dom manipulation\n each: function (callback) {\n for (var i = 0; i < this.length; i++) {\n callback.call(this[i], i, this[i]);\n }\n return this;\n },\n html: function (html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n } else {\n for (var i = 0; i < this.length; i++) {\n this[i].innerHTML = html;\n }\n return this;\n }\n },\n text: function (text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n } else return null;\n } else {\n for (var i = 0; i < this.length; i++) {\n this[i].textContent = text;\n }\n return this;\n }\n },\n is: function (selector) {\n if (!this[0]) return false;\n var compareWith, i;\n if (typeof selector === 'string') {\n var el = this[0];\n if (el === document) return selector === document;\n if (el === window) return selector === window;\n\n if (el.matches) return el.matches(selector);else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);else if (el.mozMatchesSelector) return el.mozMatchesSelector(selector);else if (el.msMatchesSelector) return el.msMatchesSelector(selector);else {\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i++) {\n if (compareWith[i] === this[0]) return true;\n }\n return false;\n }\n } else if (selector === document) return this[0] === document;else if (selector === window) return this[0] === window;else {\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i++) {\n if (compareWith[i] === this[0]) return true;\n }\n return false;\n }\n return false;\n }\n },\n index: function () {\n if (this[0]) {\n var child = this[0];\n var i = 0;\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i++;\n }\n return i;\n } else return undefined;\n },\n eq: function (index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);else return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n },\n append: function (newChild) {\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j++) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n return this;\n },\n prepend: function (newChild) {\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j--) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n // this[i].insertAdjacentHTML('afterbegin', newChild);\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j++) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n },\n insertBefore: function (selector) {\n var before = $(selector);\n for (var i = 0; i < this.length; i++) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j++) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n },\n insertAfter: function (selector) {\n var after = $(selector);\n for (var i = 0; i < this.length; i++) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j++) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n },\n next: function (selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) return new Dom7([this[0].nextElementSibling]);else return new Dom7([]);\n } else {\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);else return new Dom7([]);\n }\n } else return new Dom7([]);\n },\n nextAll: function (selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n var next = el.nextElementSibling;\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n },\n prev: function (selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].previousElementSibling && $(this[0].previousElementSibling).is(selector)) return new Dom7([this[0].previousElementSibling]);else return new Dom7([]);\n } else {\n if (this[0].previousElementSibling) return new Dom7([this[0].previousElementSibling]);else return new Dom7([]);\n }\n } else return new Dom7([]);\n },\n prevAll: function (selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling;\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n },\n parent: function (selector) {\n var parents = [];\n for (var i = 0; i < this.length; i++) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n return $($.unique(parents));\n },\n parents: function (selector) {\n var parents = [];\n for (var i = 0; i < this.length; i++) {\n var parent = this[i].parentNode;\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $($.unique(parents));\n },\n find: function (selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i++) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j++) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n },\n children: function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var childNodes = this[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j++) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else {\n if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) children.push(childNodes[j]);\n }\n }\n }\n return new Dom7($.unique(children));\n },\n remove: function () {\n for (var i = 0; i < this.length; i++) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n },\n add: function () {\n var dom = this;\n var i, j;\n for (i = 0; i < arguments.length; i++) {\n var toAdd = $(arguments[i]);\n for (j = 0; j < toAdd.length; j++) {\n dom[dom.length] = toAdd[j];\n dom.length++;\n }\n }\n return dom;\n }\n };\n $.fn = Dom7.prototype;\n $.unique = function (arr) {\n var unique = [];\n for (var i = 0; i < arr.length; i++) {\n if (unique.indexOf(arr[i]) === -1) unique.push(arr[i]);\n }\n return unique;\n };\n\n return $;\n }();\n\n /*===========================\r\n Get Dom libraries\r\n ===========================*/\n var swiperDomPlugins = ['jQuery', 'Zepto', 'Dom7'];\n for (var i = 0; i < swiperDomPlugins.length; i++) {\n if (window[swiperDomPlugins[i]]) {\n addLibraryPlugin(window[swiperDomPlugins[i]]);\n }\n }\n // Required DOM Plugins\n var domLib;\n if (typeof Dom7 === 'undefined') {\n domLib = window.Dom7 || window.Zepto || window.jQuery;\n } else {\n domLib = Dom7;\n }\n\n /*===========================\r\n Add .swiper plugin from Dom libraries\r\n ===========================*/\n function addLibraryPlugin(lib) {\n lib.fn.swiper = function (params) {\n var firstInstance;\n lib(this).each(function () {\n var s = new Swiper(this, params);\n if (!firstInstance) firstInstance = s;\n });\n return firstInstance;\n };\n }\n\n if (domLib) {\n if (!('transitionEnd' in domLib.fn)) {\n domLib.fn.transitionEnd = function (callback) {\n var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n i,\n j,\n dom = this;\n function fireCallBack(e) {\n /*jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i++) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i++) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n };\n }\n if (!('transform' in domLib.fn)) {\n domLib.fn.transform = function (transform) {\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n }\n return this;\n };\n }\n if (!('transition' in domLib.fn)) {\n domLib.fn.transition = function (duration) {\n if (typeof duration !== 'string') {\n duration = duration + 'ms';\n }\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n }\n return this;\n };\n }\n if (!('outerWidth' in domLib.fn)) {\n domLib.fn.outerWidth = function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins) return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));else return this[0].offsetWidth;\n } else return null;\n };\n }\n }\n\n window.Swiper = Swiper;\n})();\n\n/*===========================\r\nSwiper AMD Export\r\n===========================*/\nif (typeof module !== 'undefined') {\n module.exports = window.Swiper;\n} else if (typeof define === 'function' && define.amd) {\n define([], function () {\n 'use strict';\n\n return window.Swiper;\n });\n}\n\n//# sourceMappingURL=maps/swiper.js.map","/**\r\n * Timeago is a jQuery plugin that makes it easy to support automatically\r\n * updating fuzzy timestamps (e.g. \"4 minutes ago\" or \"about 1 day ago\").\r\n *\r\n * @name timeago\r\n * @version 1.6.1\r\n * @requires jQuery v1.2.3+\r\n * @author Ryan McGeary\r\n * @license MIT License - http://www.opensource.org/licenses/mit-license.php\r\n *\r\n * For usage and examples, visit:\r\n * http://timeago.yarp.com/\r\n *\r\n * Copyright (c) 2008-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)\r\n */\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function ($) {\n $.timeago = function (timestamp) {\n if (timestamp instanceof Date) {\n return inWords(timestamp);\n } else if (typeof timestamp === \"string\") {\n return inWords($.timeago.parse(timestamp));\n } else if (typeof timestamp === \"number\") {\n return inWords(new Date(timestamp));\n } else {\n return inWords($.timeago.datetime(timestamp));\n }\n };\n var $t = $.timeago;\n\n $.extend($.timeago, {\n settings: {\n refreshMillis: 60000,\n allowPast: true,\n allowFuture: false,\n localeTitle: false,\n cutoff: 0,\n strings: {\n prefixAgo: null,\n prefixFromNow: null,\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n inPast: 'any moment now',\n seconds: \"less than a minute\",\n minute: \"about a minute\",\n minutes: \"%d minutes\",\n hour: \"about an hour\",\n hours: \"about %d hours\",\n day: \"a day\",\n days: \"%d days\",\n month: \"about a month\",\n months: \"%d months\",\n year: \"about a year\",\n years: \"%d years\",\n wordSeparator: \" \",\n numbers: []\n }\n },\n\n inWords: function (distanceMillis) {\n if (!this.settings.allowPast && !this.settings.allowFuture) {\n throw 'timeago allowPast and allowFuture settings can not both be set to false.';\n }\n\n var $l = this.settings.strings;\n var prefix = $l.prefixAgo;\n var suffix = $l.suffixAgo;\n if (this.settings.allowFuture) {\n if (distanceMillis < 0) {\n prefix = $l.prefixFromNow;\n suffix = $l.suffixFromNow;\n }\n }\n\n if (!this.settings.allowPast && distanceMillis >= 0) {\n return this.settings.strings.inPast;\n }\n\n var seconds = Math.abs(distanceMillis) / 1000;\n var minutes = seconds / 60;\n var hours = minutes / 60;\n var days = hours / 24;\n var years = days / 365;\n\n function substitute(stringOrFunction, number) {\n var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;\n var value = $l.numbers && $l.numbers[number] || number;\n return string.replace(/%d/i, value);\n }\n\n var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || seconds < 90 && substitute($l.minute, 1) || minutes < 45 && substitute($l.minutes, Math.round(minutes)) || minutes < 90 && substitute($l.hour, 1) || hours < 24 && substitute($l.hours, Math.round(hours)) || hours < 42 && substitute($l.day, 1) || days < 30 && substitute($l.days, Math.round(days)) || days < 45 && substitute($l.month, 1) || days < 365 && substitute($l.months, Math.round(days / 30)) || years < 1.5 && substitute($l.year, 1) || substitute($l.years, Math.round(years));\n\n var separator = $l.wordSeparator || \"\";\n if ($l.wordSeparator === undefined) {\n separator = \" \";\n }\n return $.trim([prefix, words, suffix].join(separator));\n },\n\n parse: function (iso8601) {\n var s = $.trim(iso8601);\n s = s.replace(/\\.\\d+/, \"\"); // remove milliseconds\n s = s.replace(/-/, \"/\").replace(/-/, \"/\");\n s = s.replace(/T/, \" \").replace(/Z/, \" UTC\");\n s = s.replace(/([\\+\\-]\\d\\d)\\:?(\\d\\d)/, \" $1$2\"); // -04:00 -> -0400\n s = s.replace(/([\\+\\-]\\d\\d)$/, \" $100\"); // +09 -> +0900\n return new Date(s);\n },\n datetime: function (elem) {\n var iso8601 = $t.isTime(elem) ? $(elem).attr(\"datetime\") : $(elem).attr(\"title\");\n return $t.parse(iso8601);\n },\n isTime: function (elem) {\n // jQuery's `is()` doesn't play well with HTML5 in IE\n return $(elem).get(0).tagName.toLowerCase() === \"time\"; // $(elem).is(\"time\");\n }\n });\n\n // functions that can be called via $(el).timeago('action')\n // init is default when no action is given\n // functions are called with context of a single element\n var functions = {\n init: function () {\n var refresh_el = $.proxy(refresh, this);\n refresh_el();\n var $s = $t.settings;\n if ($s.refreshMillis > 0) {\n this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);\n }\n },\n update: function (time) {\n var parsedTime = $t.parse(time);\n $(this).data('timeago', { datetime: parsedTime });\n if ($t.settings.localeTitle) $(this).attr(\"title\", parsedTime.toLocaleString());\n refresh.apply(this);\n },\n updateFromDOM: function () {\n $(this).data('timeago', { datetime: $t.parse($t.isTime(this) ? $(this).attr(\"datetime\") : $(this).attr(\"title\")) });\n refresh.apply(this);\n },\n dispose: function () {\n if (this._timeagoInterval) {\n window.clearInterval(this._timeagoInterval);\n this._timeagoInterval = null;\n }\n }\n };\n\n $.fn.timeago = function (action, options) {\n var fn = action ? functions[action] : functions.init;\n if (!fn) {\n throw new Error(\"Unknown function name '\" + action + \"' for timeago\");\n }\n // each over objects here and call the requested function\n this.each(function () {\n fn.call(this, options);\n });\n return this;\n };\n\n function refresh() {\n //check if it's still visible\n if (!$.contains(document.documentElement, this)) {\n //stop if it has been removed\n $(this).timeago(\"dispose\");\n return this;\n }\n\n var data = prepareData(this);\n var $s = $t.settings;\n\n if (!isNaN(data.datetime)) {\n if ($s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {\n $(this).text(inWords(data.datetime));\n }\n }\n return this;\n }\n\n function prepareData(element) {\n element = $(element);\n if (!element.data(\"timeago\")) {\n element.data(\"timeago\", { datetime: $t.datetime(element) });\n var text = $.trim(element.text());\n if ($t.settings.localeTitle) {\n element.attr(\"title\", element.data('timeago').datetime.toLocaleString());\n } else if (text.length > 0 && !($t.isTime(element) && element.attr(\"title\"))) {\n element.attr(\"title\", text);\n }\n }\n return element.data(\"timeago\");\n }\n\n function inWords(date) {\n return $t.inWords(distance(date));\n }\n\n function distance(date) {\n return new Date().getTime() - date.getTime();\n }\n\n // fix for IE6 suckage\n document.createElement(\"abbr\");\n document.createElement(\"time\");\n});","(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n})(function (jQuery) {\n // German\n jQuery.timeago.settings.strings = {\n prefixAgo: translationList[\"5712\"],\n prefixFromNow: translationList[\"5713\"],\n suffixAgo: \"\",\n suffixFromNow: \"\",\n seconds: translationList[\"5714\"],\n minute: translationList[\"5715\"],\n minutes: \"%d \" + translationList[\"5716\"],\n hour: translationList[\"5717\"],\n hours: \"%d \" + translationList[\"5718\"],\n day: translationList[\"5719\"],\n days: \"%d \" + translationList[\"5720\"],\n month: translationList[\"5721\"],\n months: \"%d \" + translationList[\"5722\"],\n year: translationList[\"5723\"],\n years: \"%d \" + translationList[\"5724\"]\n };\n});","/*! jQuery UI - v1.12.1 - 2020-11-06\r\n* http://jqueryui.com\r\n* Includes: widget.js, position.js, form-reset-mixin.js, keycode.js, labels.js, unique-id.js, widgets/autocomplete.js, widgets/datepicker.js, widgets/menu.js, widgets/selectmenu.js, widgets/tabs.js, widgets/tooltip.js\r\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\"jquery\"], factory);\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory(jQuery);\n\t}\n})(function ($) {\n\n\t$.ui = $.ui || {};\n\n\tvar version = $.ui.version = \"1.12.1\";\n\n\t/*!\r\n * jQuery UI Widget 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\n\n\t//>>label: Widget\n\t//>>group: Core\n\t//>>description: Provides a factory for creating stateful widgets with a common API.\n\t//>>docs: http://api.jqueryui.com/jQuery.widget/\n\t//>>demos: http://jqueryui.com/widget/\n\n\n\tvar widgetUuid = 0;\n\tvar widgetSlice = Array.prototype.slice;\n\n\t$.cleanData = function (orig) {\n\t\treturn function (elems) {\n\t\t\tvar events, elem, i;\n\t\t\tfor (i = 0; (elem = elems[i]) != null; i++) {\n\t\t\t\ttry {\n\n\t\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\t\tevents = $._data(elem, \"events\");\n\t\t\t\t\tif (events && events.remove) {\n\t\t\t\t\t\t$(elem).triggerHandler(\"remove\");\n\t\t\t\t\t}\n\n\t\t\t\t\t// Http://bugs.jquery.com/ticket/8235\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\torig(elems);\n\t\t};\n\t}($.cleanData);\n\n\t$.widget = function (name, base, prototype) {\n\t\tvar existingConstructor, constructor, basePrototype;\n\n\t\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tvar proxiedPrototype = {};\n\n\t\tvar namespace = name.split(\".\")[0];\n\t\tname = name.split(\".\")[1];\n\t\tvar fullName = namespace + \"-\" + name;\n\n\t\tif (!prototype) {\n\t\t\tprototype = base;\n\t\t\tbase = $.Widget;\n\t\t}\n\n\t\tif ($.isArray(prototype)) {\n\t\t\tprototype = $.extend.apply(null, [{}].concat(prototype));\n\t\t}\n\n\t\t// Create selector for plugin\n\t\t$.expr[\":\"][fullName.toLowerCase()] = function (elem) {\n\t\t\treturn !!$.data(elem, fullName);\n\t\t};\n\n\t\t$[namespace] = $[namespace] || {};\n\t\texistingConstructor = $[namespace][name];\n\t\tconstructor = $[namespace][name] = function (options, element) {\n\n\t\t\t// Allow instantiation without \"new\" keyword\n\t\t\tif (!this._createWidget) {\n\t\t\t\treturn new constructor(options, element);\n\t\t\t}\n\n\t\t\t// Allow instantiation without initializing for simple inheritance\n\t\t\t// must use \"new\" keyword (the code above always passes args)\n\t\t\tif (arguments.length) {\n\t\t\t\tthis._createWidget(options, element);\n\t\t\t}\n\t\t};\n\n\t\t// Extend with the existing constructor to carry over any static properties\n\t\t$.extend(constructor, existingConstructor, {\n\t\t\tversion: prototype.version,\n\n\t\t\t// Copy the object used to create the prototype in case we need to\n\t\t\t// redefine the widget later\n\t\t\t_proto: $.extend({}, prototype),\n\n\t\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t\t// redefined after a widget inherits from it\n\t\t\t_childConstructors: []\n\t\t});\n\n\t\tbasePrototype = new base();\n\n\t\t// We need to make the options hash a property directly on the new instance\n\t\t// otherwise we'll modify the options hash on the prototype that we're\n\t\t// inheriting from\n\t\tbasePrototype.options = $.widget.extend({}, basePrototype.options);\n\t\t$.each(prototype, function (prop, value) {\n\t\t\tif (!$.isFunction(value)) {\n\t\t\t\tproxiedPrototype[prop] = value;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproxiedPrototype[prop] = function () {\n\t\t\t\tfunction _super() {\n\t\t\t\t\treturn base.prototype[prop].apply(this, arguments);\n\t\t\t\t}\n\n\t\t\t\tfunction _superApply(args) {\n\t\t\t\t\treturn base.prototype[prop].apply(this, args);\n\t\t\t\t}\n\n\t\t\t\treturn function () {\n\t\t\t\t\tvar __super = this._super;\n\t\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\t\tvar returnValue;\n\n\t\t\t\t\tthis._super = _super;\n\t\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\t\treturnValue = value.apply(this, arguments);\n\n\t\t\t\t\tthis._super = __super;\n\t\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\t\treturn returnValue;\n\t\t\t\t};\n\t\t\t}();\n\t\t});\n\t\tconstructor.prototype = $.widget.extend(basePrototype, {\n\n\t\t\t// TODO: remove support for widgetEventPrefix\n\t\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t\t// don't prefix for widgets that aren't DOM-based\n\t\t\twidgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix || name : name\n\t\t}, proxiedPrototype, {\n\t\t\tconstructor: constructor,\n\t\t\tnamespace: namespace,\n\t\t\twidgetName: name,\n\t\t\twidgetFullName: fullName\n\t\t});\n\n\t\t// If this widget is being redefined then we need to find all widgets that\n\t\t// are inheriting from it and redefine all of them so that they inherit from\n\t\t// the new version of this widget. We're essentially trying to replace one\n\t\t// level in the prototype chain.\n\t\tif (existingConstructor) {\n\t\t\t$.each(existingConstructor._childConstructors, function (i, child) {\n\t\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t\t$.widget(childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto);\n\t\t\t});\n\n\t\t\t// Remove the list of existing child constructors from the old constructor\n\t\t\t// so the old child constructors can be garbage collected\n\t\t\tdelete existingConstructor._childConstructors;\n\t\t} else {\n\t\t\tbase._childConstructors.push(constructor);\n\t\t}\n\n\t\t$.widget.bridge(name, constructor);\n\n\t\treturn constructor;\n\t};\n\n\t$.widget.extend = function (target) {\n\t\tvar input = widgetSlice.call(arguments, 1);\n\t\tvar inputIndex = 0;\n\t\tvar inputLength = input.length;\n\t\tvar key;\n\t\tvar value;\n\n\t\tfor (; inputIndex < inputLength; inputIndex++) {\n\t\t\tfor (key in input[inputIndex]) {\n\t\t\t\tvalue = input[inputIndex][key];\n\t\t\t\tif (input[inputIndex].hasOwnProperty(key) && value !== undefined) {\n\n\t\t\t\t\t// Clone objects\n\t\t\t\t\tif ($.isPlainObject(value)) {\n\t\t\t\t\t\ttarget[key] = $.isPlainObject(target[key]) ? $.widget.extend({}, target[key], value) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend({}, value);\n\n\t\t\t\t\t\t// Copy everything else by reference\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn target;\n\t};\n\n\t$.widget.bridge = function (name, object) {\n\t\tvar fullName = object.prototype.widgetFullName || name;\n\t\t$.fn[name] = function (options) {\n\t\t\tvar isMethodCall = typeof options === \"string\";\n\t\t\tvar args = widgetSlice.call(arguments, 1);\n\t\t\tvar returnValue = this;\n\n\t\t\tif (isMethodCall) {\n\n\t\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t\t// return undefined instead of the jQuery instance\n\t\t\t\tif (!this.length && options === \"instance\") {\n\t\t\t\t\treturnValue = undefined;\n\t\t\t\t} else {\n\t\t\t\t\tthis.each(function () {\n\t\t\t\t\t\tvar methodValue;\n\t\t\t\t\t\tvar instance = $.data(this, fullName);\n\n\t\t\t\t\t\tif (options === \"instance\") {\n\t\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!instance) {\n\t\t\t\t\t\t\treturn $.error(\"cannot call methods on \" + name + \" prior to initialization; \" + \"attempted to call method '\" + options + \"'\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!$.isFunction(instance[options]) || options.charAt(0) === \"_\") {\n\t\t\t\t\t\t\treturn $.error(\"no such method '\" + options + \"' for \" + name + \" widget instance\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmethodValue = instance[options].apply(instance, args);\n\n\t\t\t\t\t\tif (methodValue !== instance && methodValue !== undefined) {\n\t\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ? returnValue.pushStack(methodValue.get()) : methodValue;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Allow multiple hashes to be passed on init\n\t\t\t\tif (args.length) {\n\t\t\t\t\toptions = $.widget.extend.apply(null, [options].concat(args));\n\t\t\t\t}\n\n\t\t\t\tthis.each(function () {\n\t\t\t\t\tvar instance = $.data(this, fullName);\n\t\t\t\t\tif (instance) {\n\t\t\t\t\t\tinstance.option(options || {});\n\t\t\t\t\t\tif (instance._init) {\n\t\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$.data(this, fullName, new object(options, this));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t};\n\t};\n\n\t$.Widget = function () /* options, element */{};\n\t$.Widget._childConstructors = [];\n\n\t$.Widget.prototype = {\n\t\twidgetName: \"widget\",\n\t\twidgetEventPrefix: \"\",\n\t\tdefaultElement: \"
\",\n\n\t\toptions: {\n\t\t\tclasses: {},\n\t\t\tdisabled: false,\n\n\t\t\t// Callbacks\n\t\t\tcreate: null\n\t\t},\n\n\t\t_createWidget: function (options, element) {\n\t\t\telement = $(element || this.defaultElement || this)[0];\n\t\t\tthis.element = $(element);\n\t\t\tthis.uuid = widgetUuid++;\n\t\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\t\tthis.bindings = $();\n\t\t\tthis.hoverable = $();\n\t\t\tthis.focusable = $();\n\t\t\tthis.classesElementLookup = {};\n\n\t\t\tif (element !== this) {\n\t\t\t\t$.data(element, this.widgetFullName, this);\n\t\t\t\tthis._on(true, this.element, {\n\t\t\t\t\tremove: function (event) {\n\t\t\t\t\t\tif (event.target === element) {\n\t\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.document = $(element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element);\n\t\t\t\tthis.window = $(this.document[0].defaultView || this.document[0].parentWindow);\n\t\t\t}\n\n\t\t\tthis.options = $.widget.extend({}, this.options, this._getCreateOptions(), options);\n\n\t\t\tthis._create();\n\n\t\t\tif (this.options.disabled) {\n\t\t\t\tthis._setOptionDisabled(this.options.disabled);\n\t\t\t}\n\n\t\t\tthis._trigger(\"create\", null, this._getCreateEventData());\n\t\t\tthis._init();\n\t\t},\n\n\t\t_getCreateOptions: function () {\n\t\t\treturn {};\n\t\t},\n\n\t\t_getCreateEventData: $.noop,\n\n\t\t_create: $.noop,\n\n\t\t_init: $.noop,\n\n\t\tdestroy: function () {\n\t\t\tvar that = this;\n\n\t\t\tthis._destroy();\n\t\t\t$.each(this.classesElementLookup, function (key, value) {\n\t\t\t\tthat._removeClass(value, key);\n\t\t\t});\n\n\t\t\t// We can probably remove the unbind calls in 2.0\n\t\t\t// all event bindings should go through this._on()\n\t\t\tthis.element.off(this.eventNamespace).removeData(this.widgetFullName);\n\t\t\tthis.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\");\n\n\t\t\t// Clean up events and states\n\t\t\tthis.bindings.off(this.eventNamespace);\n\t\t},\n\n\t\t_destroy: $.noop,\n\n\t\twidget: function () {\n\t\t\treturn this.element;\n\t\t},\n\n\t\toption: function (key, value) {\n\t\t\tvar options = key;\n\t\t\tvar parts;\n\t\t\tvar curOption;\n\t\t\tvar i;\n\n\t\t\tif (arguments.length === 0) {\n\n\t\t\t\t// Don't return a reference to the internal hash\n\t\t\t\treturn $.widget.extend({}, this.options);\n\t\t\t}\n\n\t\t\tif (typeof key === \"string\") {\n\n\t\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\t\toptions = {};\n\t\t\t\tparts = key.split(\".\");\n\t\t\t\tkey = parts.shift();\n\t\t\t\tif (parts.length) {\n\t\t\t\t\tcurOption = options[key] = $.widget.extend({}, this.options[key]);\n\t\t\t\t\tfor (i = 0; i < parts.length - 1; i++) {\n\t\t\t\t\t\tcurOption[parts[i]] = curOption[parts[i]] || {};\n\t\t\t\t\t\tcurOption = curOption[parts[i]];\n\t\t\t\t\t}\n\t\t\t\t\tkey = parts.pop();\n\t\t\t\t\tif (arguments.length === 1) {\n\t\t\t\t\t\treturn curOption[key] === undefined ? null : curOption[key];\n\t\t\t\t\t}\n\t\t\t\t\tcurOption[key] = value;\n\t\t\t\t} else {\n\t\t\t\t\tif (arguments.length === 1) {\n\t\t\t\t\t\treturn this.options[key] === undefined ? null : this.options[key];\n\t\t\t\t\t}\n\t\t\t\t\toptions[key] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._setOptions(options);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t_setOptions: function (options) {\n\t\t\tvar key;\n\n\t\t\tfor (key in options) {\n\t\t\t\tthis._setOption(key, options[key]);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t_setOption: function (key, value) {\n\t\t\tif (key === \"classes\") {\n\t\t\t\tthis._setOptionClasses(value);\n\t\t\t}\n\n\t\t\tthis.options[key] = value;\n\n\t\t\tif (key === \"disabled\") {\n\t\t\t\tthis._setOptionDisabled(value);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t_setOptionClasses: function (value) {\n\t\t\tvar classKey, elements, currentElements;\n\n\t\t\tfor (classKey in value) {\n\t\t\t\tcurrentElements = this.classesElementLookup[classKey];\n\t\t\t\tif (value[classKey] === this.options.classes[classKey] || !currentElements || !currentElements.length) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t\t// below.\n\t\t\t\telements = $(currentElements.get());\n\t\t\t\tthis._removeClass(currentElements, classKey);\n\n\t\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\t\telements.addClass(this._classes({\n\t\t\t\t\telement: elements,\n\t\t\t\t\tkeys: classKey,\n\t\t\t\t\tclasses: value,\n\t\t\t\t\tadd: true\n\t\t\t\t}));\n\t\t\t}\n\t\t},\n\n\t\t_setOptionDisabled: function (value) {\n\t\t\tthis._toggleClass(this.widget(), this.widgetFullName + \"-disabled\", null, !!value);\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif (value) {\n\t\t\t\tthis._removeClass(this.hoverable, null, \"ui-state-hover\");\n\t\t\t\tthis._removeClass(this.focusable, null, \"ui-state-focus\");\n\t\t\t}\n\t\t},\n\n\t\tenable: function () {\n\t\t\treturn this._setOptions({ disabled: false });\n\t\t},\n\n\t\tdisable: function () {\n\t\t\treturn this._setOptions({ disabled: true });\n\t\t},\n\n\t\t_classes: function (options) {\n\t\t\tvar full = [];\n\t\t\tvar that = this;\n\n\t\t\toptions = $.extend({\n\t\t\t\telement: this.element,\n\t\t\t\tclasses: this.options.classes || {}\n\t\t\t}, options);\n\n\t\t\tfunction processClassString(classes, checkOption) {\n\t\t\t\tvar current, i;\n\t\t\t\tfor (i = 0; i < classes.length; i++) {\n\t\t\t\t\tcurrent = that.classesElementLookup[classes[i]] || $();\n\t\t\t\t\tif (options.add) {\n\t\t\t\t\t\tcurrent = $($.unique(current.get().concat(options.element.get())));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrent = $(current.not(options.element).get());\n\t\t\t\t\t}\n\t\t\t\t\tthat.classesElementLookup[classes[i]] = current;\n\t\t\t\t\tfull.push(classes[i]);\n\t\t\t\t\tif (checkOption && options.classes[classes[i]]) {\n\t\t\t\t\t\tfull.push(options.classes[classes[i]]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._on(options.element, {\n\t\t\t\t\"remove\": \"_untrackClassesElement\"\n\t\t\t});\n\n\t\t\tif (options.keys) {\n\t\t\t\tprocessClassString(options.keys.match(/\\S+/g) || [], true);\n\t\t\t}\n\t\t\tif (options.extra) {\n\t\t\t\tprocessClassString(options.extra.match(/\\S+/g) || []);\n\t\t\t}\n\n\t\t\treturn full.join(\" \");\n\t\t},\n\n\t\t_untrackClassesElement: function (event) {\n\t\t\tvar that = this;\n\t\t\t$.each(that.classesElementLookup, function (key, value) {\n\t\t\t\tif ($.inArray(event.target, value) !== -1) {\n\t\t\t\t\tthat.classesElementLookup[key] = $(value.not(event.target).get());\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_removeClass: function (element, keys, extra) {\n\t\t\treturn this._toggleClass(element, keys, extra, false);\n\t\t},\n\n\t\t_addClass: function (element, keys, extra) {\n\t\t\treturn this._toggleClass(element, keys, extra, true);\n\t\t},\n\n\t\t_toggleClass: function (element, keys, extra, add) {\n\t\t\tadd = typeof add === \"boolean\" ? add : extra;\n\t\t\tvar shift = typeof element === \"string\" || element === null,\n\t\t\t options = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\t\toptions.element.toggleClass(this._classes(options), add);\n\t\t\treturn this;\n\t\t},\n\n\t\t_on: function (suppressDisabledCheck, element, handlers) {\n\t\t\tvar delegateElement;\n\t\t\tvar instance = this;\n\n\t\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\t\tif (typeof suppressDisabledCheck !== \"boolean\") {\n\t\t\t\thandlers = element;\n\t\t\t\telement = suppressDisabledCheck;\n\t\t\t\tsuppressDisabledCheck = false;\n\t\t\t}\n\n\t\t\t// No element argument, shuffle and use this.element\n\t\t\tif (!handlers) {\n\t\t\t\thandlers = element;\n\t\t\t\telement = this.element;\n\t\t\t\tdelegateElement = this.widget();\n\t\t\t} else {\n\t\t\t\telement = delegateElement = $(element);\n\t\t\t\tthis.bindings = this.bindings.add(element);\n\t\t\t}\n\n\t\t\t$.each(handlers, function (event, handler) {\n\t\t\t\tfunction handlerProxy() {\n\n\t\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\t\tif (!suppressDisabledCheck && (instance.options.disabled === true || $(this).hasClass(\"ui-state-disabled\"))) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn (typeof handler === \"string\" ? instance[handler] : handler).apply(instance, arguments);\n\t\t\t\t}\n\n\t\t\t\t// Copy the guid so direct unbinding works\n\t\t\t\tif (typeof handler !== \"string\") {\n\t\t\t\t\thandlerProxy.guid = handler.guid = handler.guid || handlerProxy.guid || $.guid++;\n\t\t\t\t}\n\n\t\t\t\tvar match = event.match(/^([\\w:-]*)\\s*(.*)$/);\n\t\t\t\tvar eventName = match[1] + instance.eventNamespace;\n\t\t\t\tvar selector = match[2];\n\n\t\t\t\tif (selector) {\n\t\t\t\t\tdelegateElement.on(eventName, selector, handlerProxy);\n\t\t\t\t} else {\n\t\t\t\t\telement.on(eventName, handlerProxy);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_off: function (element, eventName) {\n\t\t\teventName = (eventName || \"\").split(\" \").join(this.eventNamespace + \" \") + this.eventNamespace;\n\t\t\telement.off(eventName).off(eventName);\n\n\t\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\t\tthis.bindings = $(this.bindings.not(element).get());\n\t\t\tthis.focusable = $(this.focusable.not(element).get());\n\t\t\tthis.hoverable = $(this.hoverable.not(element).get());\n\t\t},\n\n\t\t_delay: function (handler, delay) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\treturn (typeof handler === \"string\" ? instance[handler] : handler).apply(instance, arguments);\n\t\t\t}\n\t\t\tvar instance = this;\n\t\t\treturn setTimeout(handlerProxy, delay || 0);\n\t\t},\n\n\t\t_hoverable: function (element) {\n\t\t\tthis.hoverable = this.hoverable.add(element);\n\t\t\tthis._on(element, {\n\t\t\t\tmouseenter: function (event) {\n\t\t\t\t\tthis._addClass($(event.currentTarget), null, \"ui-state-hover\");\n\t\t\t\t},\n\t\t\t\tmouseleave: function (event) {\n\t\t\t\t\tthis._removeClass($(event.currentTarget), null, \"ui-state-hover\");\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_focusable: function (element) {\n\t\t\tthis.focusable = this.focusable.add(element);\n\t\t\tthis._on(element, {\n\t\t\t\tfocusin: function (event) {\n\t\t\t\t\tthis._addClass($(event.currentTarget), null, \"ui-state-focus\");\n\t\t\t\t},\n\t\t\t\tfocusout: function (event) {\n\t\t\t\t\tthis._removeClass($(event.currentTarget), null, \"ui-state-focus\");\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_trigger: function (type, event, data) {\n\t\t\tvar prop, orig;\n\t\t\tvar callback = this.options[type];\n\n\t\t\tdata = data || {};\n\t\t\tevent = $.Event(event);\n\t\t\tevent.type = (type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type).toLowerCase();\n\n\t\t\t// The original event may come from any element\n\t\t\t// so we need to reset the target on the new event\n\t\t\tevent.target = this.element[0];\n\n\t\t\t// Copy original event properties over to the new event\n\t\t\torig = event.originalEvent;\n\t\t\tif (orig) {\n\t\t\t\tfor (prop in orig) {\n\t\t\t\t\tif (!(prop in event)) {\n\t\t\t\t\t\tevent[prop] = orig[prop];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.element.trigger(event, data);\n\t\t\treturn !($.isFunction(callback) && callback.apply(this.element[0], [event].concat(data)) === false || event.isDefaultPrevented());\n\t\t}\n\t};\n\n\t$.each({ show: \"fadeIn\", hide: \"fadeOut\" }, function (method, defaultEffect) {\n\t\t$.Widget.prototype[\"_\" + method] = function (element, options, callback) {\n\t\t\tif (typeof options === \"string\") {\n\t\t\t\toptions = { effect: options };\n\t\t\t}\n\n\t\t\tvar hasOptions;\n\t\t\tvar effectName = !options ? method : options === true || typeof options === \"number\" ? defaultEffect : options.effect || defaultEffect;\n\n\t\t\toptions = options || {};\n\t\t\tif (typeof options === \"number\") {\n\t\t\t\toptions = { duration: options };\n\t\t\t}\n\n\t\t\thasOptions = !$.isEmptyObject(options);\n\t\t\toptions.complete = callback;\n\n\t\t\tif (options.delay) {\n\t\t\t\telement.delay(options.delay);\n\t\t\t}\n\n\t\t\tif (hasOptions && $.effects && $.effects.effect[effectName]) {\n\t\t\t\telement[method](options);\n\t\t\t} else if (effectName !== method && element[effectName]) {\n\t\t\t\telement[effectName](options.duration, options.easing, callback);\n\t\t\t} else {\n\t\t\t\telement.queue(function (next) {\n\t\t\t\t\t$(this)[method]();\n\t\t\t\t\tif (callback) {\n\t\t\t\t\t\tcallback.call(element[0]);\n\t\t\t\t\t}\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t});\n\n\tvar widget = $.widget;\n\n\t/*!\r\n * jQuery UI Position 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n *\r\n * http://api.jqueryui.com/position/\r\n */\n\n\t//>>label: Position\n\t//>>group: Core\n\t//>>description: Positions elements relative to other elements.\n\t//>>docs: http://api.jqueryui.com/position/\n\t//>>demos: http://jqueryui.com/position/\n\n\n\t(function () {\n\t\tvar cachedScrollbarWidth,\n\t\t max = Math.max,\n\t\t abs = Math.abs,\n\t\t rhorizontal = /left|center|right/,\n\t\t rvertical = /top|center|bottom/,\n\t\t roffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n\t\t rposition = /^\\w+/,\n\t\t rpercent = /%$/,\n\t\t _position = $.fn.position;\n\n\t\tfunction getOffsets(offsets, width, height) {\n\t\t\treturn [parseFloat(offsets[0]) * (rpercent.test(offsets[0]) ? width / 100 : 1), parseFloat(offsets[1]) * (rpercent.test(offsets[1]) ? height / 100 : 1)];\n\t\t}\n\n\t\tfunction parseCss(element, property) {\n\t\t\treturn parseInt($.css(element, property), 10) || 0;\n\t\t}\n\n\t\tfunction getDimensions(elem) {\n\t\t\tvar raw = elem[0];\n\t\t\tif (raw.nodeType === 9) {\n\t\t\t\treturn {\n\t\t\t\t\twidth: elem.width(),\n\t\t\t\t\theight: elem.height(),\n\t\t\t\t\toffset: { top: 0, left: 0 }\n\t\t\t\t};\n\t\t\t}\n\t\t\tif ($.isWindow(raw)) {\n\t\t\t\treturn {\n\t\t\t\t\twidth: elem.width(),\n\t\t\t\t\theight: elem.height(),\n\t\t\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (raw.preventDefault) {\n\t\t\t\treturn {\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\toffset: { top: raw.pageY, left: raw.pageX }\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\twidth: elem.outerWidth(),\n\t\t\t\theight: elem.outerHeight(),\n\t\t\t\toffset: elem.offset()\n\t\t\t};\n\t\t}\n\n\t\t$.position = {\n\t\t\tscrollbarWidth: function () {\n\t\t\t\tif (cachedScrollbarWidth !== undefined) {\n\t\t\t\t\treturn cachedScrollbarWidth;\n\t\t\t\t}\n\t\t\t\tvar w1,\n\t\t\t\t w2,\n\t\t\t\t div = $(\"
\" + \"
\"),\n\t\t\t\t innerDiv = div.children()[0];\n\n\t\t\t\t$(\"body\").append(div);\n\t\t\t\tw1 = innerDiv.offsetWidth;\n\t\t\t\tdiv.css(\"overflow\", \"scroll\");\n\n\t\t\t\tw2 = innerDiv.offsetWidth;\n\n\t\t\t\tif (w1 === w2) {\n\t\t\t\t\tw2 = div[0].clientWidth;\n\t\t\t\t}\n\n\t\t\t\tdiv.remove();\n\n\t\t\t\treturn cachedScrollbarWidth = w1 - w2;\n\t\t\t},\n\t\t\tgetScrollInfo: function (within) {\n\t\t\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" : within.element.css(\"overflow-x\"),\n\t\t\t\t overflowY = within.isWindow || within.isDocument ? \"\" : within.element.css(\"overflow-y\"),\n\t\t\t\t hasOverflowX = overflowX === \"scroll\" || overflowX === \"auto\" && within.width < within.element[0].scrollWidth,\n\t\t\t\t hasOverflowY = overflowY === \"scroll\" || overflowY === \"auto\" && within.height < within.element[0].scrollHeight;\n\t\t\t\treturn {\n\t\t\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\n\t\t\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetWithinInfo: function (element) {\n\t\t\t\tvar withinElement = $(element || window),\n\t\t\t\t isWindow = $.isWindow(withinElement[0]),\n\t\t\t\t isDocument = !!withinElement[0] && withinElement[0].nodeType === 9,\n\t\t\t\t hasOffset = !isWindow && !isDocument;\n\t\t\t\treturn {\n\t\t\t\t\telement: withinElement,\n\t\t\t\t\tisWindow: isWindow,\n\t\t\t\t\tisDocument: isDocument,\n\t\t\t\t\toffset: hasOffset ? $(element).offset() : { left: 0, top: 0 },\n\t\t\t\t\tscrollLeft: withinElement.scrollLeft(),\n\t\t\t\t\tscrollTop: withinElement.scrollTop(),\n\t\t\t\t\twidth: withinElement.outerWidth(),\n\t\t\t\t\theight: withinElement.outerHeight()\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\t$.fn.position = function (options) {\n\t\t\tif (!options || !options.of) {\n\t\t\t\treturn _position.apply(this, arguments);\n\t\t\t}\n\n\t\t\t// Make a copy, we don't want to modify arguments\n\t\t\toptions = $.extend({}, options);\n\n\t\t\tvar atOffset,\n\t\t\t targetWidth,\n\t\t\t targetHeight,\n\t\t\t targetOffset,\n\t\t\t basePosition,\n\t\t\t dimensions,\n\t\t\t target = $(options.of),\n\t\t\t within = $.position.getWithinInfo(options.within),\n\t\t\t scrollInfo = $.position.getScrollInfo(within),\n\t\t\t collision = (options.collision || \"flip\").split(\" \"),\n\t\t\t offsets = {};\n\n\t\t\tdimensions = getDimensions(target);\n\t\t\tif (target[0].preventDefault) {\n\n\t\t\t\t// Force left top to allow flipping\n\t\t\t\toptions.at = \"left top\";\n\t\t\t}\n\t\t\ttargetWidth = dimensions.width;\n\t\t\ttargetHeight = dimensions.height;\n\t\t\ttargetOffset = dimensions.offset;\n\n\t\t\t// Clone to reuse original targetOffset later\n\t\t\tbasePosition = $.extend({}, targetOffset);\n\n\t\t\t// Force my and at to have valid horizontal and vertical positions\n\t\t\t// if a value is missing or invalid, it will be converted to center\n\t\t\t$.each([\"my\", \"at\"], function () {\n\t\t\t\tvar pos = (options[this] || \"\").split(\" \"),\n\t\t\t\t horizontalOffset,\n\t\t\t\t verticalOffset;\n\n\t\t\t\tif (pos.length === 1) {\n\t\t\t\t\tpos = rhorizontal.test(pos[0]) ? pos.concat([\"center\"]) : rvertical.test(pos[0]) ? [\"center\"].concat(pos) : [\"center\", \"center\"];\n\t\t\t\t}\n\t\t\t\tpos[0] = rhorizontal.test(pos[0]) ? pos[0] : \"center\";\n\t\t\t\tpos[1] = rvertical.test(pos[1]) ? pos[1] : \"center\";\n\n\t\t\t\t// Calculate offsets\n\t\t\t\thorizontalOffset = roffset.exec(pos[0]);\n\t\t\t\tverticalOffset = roffset.exec(pos[1]);\n\t\t\t\toffsets[this] = [horizontalOffset ? horizontalOffset[0] : 0, verticalOffset ? verticalOffset[0] : 0];\n\n\t\t\t\t// Reduce to just the positions without the offsets\n\t\t\t\toptions[this] = [rposition.exec(pos[0])[0], rposition.exec(pos[1])[0]];\n\t\t\t});\n\n\t\t\t// Normalize collision option\n\t\t\tif (collision.length === 1) {\n\t\t\t\tcollision[1] = collision[0];\n\t\t\t}\n\n\t\t\tif (options.at[0] === \"right\") {\n\t\t\t\tbasePosition.left += targetWidth;\n\t\t\t} else if (options.at[0] === \"center\") {\n\t\t\t\tbasePosition.left += targetWidth / 2;\n\t\t\t}\n\n\t\t\tif (options.at[1] === \"bottom\") {\n\t\t\t\tbasePosition.top += targetHeight;\n\t\t\t} else if (options.at[1] === \"center\") {\n\t\t\t\tbasePosition.top += targetHeight / 2;\n\t\t\t}\n\n\t\t\tatOffset = getOffsets(offsets.at, targetWidth, targetHeight);\n\t\t\tbasePosition.left += atOffset[0];\n\t\t\tbasePosition.top += atOffset[1];\n\n\t\t\treturn this.each(function () {\n\t\t\t\tvar collisionPosition,\n\t\t\t\t using,\n\t\t\t\t elem = $(this),\n\t\t\t\t elemWidth = elem.outerWidth(),\n\t\t\t\t elemHeight = elem.outerHeight(),\n\t\t\t\t marginLeft = parseCss(this, \"marginLeft\"),\n\t\t\t\t marginTop = parseCss(this, \"marginTop\"),\n\t\t\t\t collisionWidth = elemWidth + marginLeft + parseCss(this, \"marginRight\") + scrollInfo.width,\n\t\t\t\t collisionHeight = elemHeight + marginTop + parseCss(this, \"marginBottom\") + scrollInfo.height,\n\t\t\t\t position = $.extend({}, basePosition),\n\t\t\t\t myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());\n\n\t\t\t\tif (options.my[0] === \"right\") {\n\t\t\t\t\tposition.left -= elemWidth;\n\t\t\t\t} else if (options.my[0] === \"center\") {\n\t\t\t\t\tposition.left -= elemWidth / 2;\n\t\t\t\t}\n\n\t\t\t\tif (options.my[1] === \"bottom\") {\n\t\t\t\t\tposition.top -= elemHeight;\n\t\t\t\t} else if (options.my[1] === \"center\") {\n\t\t\t\t\tposition.top -= elemHeight / 2;\n\t\t\t\t}\n\n\t\t\t\tposition.left += myOffset[0];\n\t\t\t\tposition.top += myOffset[1];\n\n\t\t\t\tcollisionPosition = {\n\t\t\t\t\tmarginLeft: marginLeft,\n\t\t\t\t\tmarginTop: marginTop\n\t\t\t\t};\n\n\t\t\t\t$.each([\"left\", \"top\"], function (i, dir) {\n\t\t\t\t\tif ($.ui.position[collision[i]]) {\n\t\t\t\t\t\t$.ui.position[collision[i]][dir](position, {\n\t\t\t\t\t\t\ttargetWidth: targetWidth,\n\t\t\t\t\t\t\ttargetHeight: targetHeight,\n\t\t\t\t\t\t\telemWidth: elemWidth,\n\t\t\t\t\t\t\telemHeight: elemHeight,\n\t\t\t\t\t\t\tcollisionPosition: collisionPosition,\n\t\t\t\t\t\t\tcollisionWidth: collisionWidth,\n\t\t\t\t\t\t\tcollisionHeight: collisionHeight,\n\t\t\t\t\t\t\toffset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]],\n\t\t\t\t\t\t\tmy: options.my,\n\t\t\t\t\t\t\tat: options.at,\n\t\t\t\t\t\t\twithin: within,\n\t\t\t\t\t\t\telem: elem\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (options.using) {\n\n\t\t\t\t\t// Adds feedback as second argument to using callback, if present\n\t\t\t\t\tusing = function (props) {\n\t\t\t\t\t\tvar left = targetOffset.left - position.left,\n\t\t\t\t\t\t right = left + targetWidth - elemWidth,\n\t\t\t\t\t\t top = targetOffset.top - position.top,\n\t\t\t\t\t\t bottom = top + targetHeight - elemHeight,\n\t\t\t\t\t\t feedback = {\n\t\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\t\telement: target,\n\t\t\t\t\t\t\t\tleft: targetOffset.left,\n\t\t\t\t\t\t\t\ttop: targetOffset.top,\n\t\t\t\t\t\t\t\twidth: targetWidth,\n\t\t\t\t\t\t\t\theight: targetHeight\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\t\telement: elem,\n\t\t\t\t\t\t\t\tleft: position.left,\n\t\t\t\t\t\t\t\ttop: position.top,\n\t\t\t\t\t\t\t\twidth: elemWidth,\n\t\t\t\t\t\t\t\theight: elemHeight\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\n\t\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (targetWidth < elemWidth && abs(left + right) < targetWidth) {\n\t\t\t\t\t\t\tfeedback.horizontal = \"center\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (targetHeight < elemHeight && abs(top + bottom) < targetHeight) {\n\t\t\t\t\t\t\tfeedback.vertical = \"middle\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {\n\t\t\t\t\t\t\tfeedback.important = \"horizontal\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfeedback.important = \"vertical\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions.using.call(this, props, feedback);\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\telem.offset($.extend(position, { using: using }));\n\t\t\t});\n\t\t};\n\n\t\t$.ui.position = {\n\t\t\tfit: {\n\t\t\t\tleft: function (position, data) {\n\t\t\t\t\tvar within = data.within,\n\t\t\t\t\t withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\t\t outerWidth = within.width,\n\t\t\t\t\t collisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\t\t overLeft = withinOffset - collisionPosLeft,\n\t\t\t\t\t overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\n\t\t\t\t\t newOverRight;\n\n\t\t\t\t\t// Element is wider than within\n\t\t\t\t\tif (data.collisionWidth > outerWidth) {\n\n\t\t\t\t\t\t// Element is initially over the left side of within\n\t\t\t\t\t\tif (overLeft > 0 && overRight <= 0) {\n\t\t\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;\n\t\t\t\t\t\t\tposition.left += overLeft - newOverRight;\n\n\t\t\t\t\t\t\t// Element is initially over right side of within\n\t\t\t\t\t\t} else if (overRight > 0 && overLeft <= 0) {\n\t\t\t\t\t\t\tposition.left = withinOffset;\n\n\t\t\t\t\t\t\t// Element is initially over both left and right sides of within\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (overLeft > overRight) {\n\t\t\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Too far left -> align with left edge\n\t\t\t\t\t} else if (overLeft > 0) {\n\t\t\t\t\t\tposition.left += overLeft;\n\n\t\t\t\t\t\t// Too far right -> align with right edge\n\t\t\t\t\t} else if (overRight > 0) {\n\t\t\t\t\t\tposition.left -= overRight;\n\n\t\t\t\t\t\t// Adjust based on position and margin\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.left = max(position.left - collisionPosLeft, position.left);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttop: function (position, data) {\n\t\t\t\t\tvar within = data.within,\n\t\t\t\t\t withinOffset = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\t\t outerHeight = data.within.height,\n\t\t\t\t\t collisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\t\t overTop = withinOffset - collisionPosTop,\n\t\t\t\t\t overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\n\t\t\t\t\t newOverBottom;\n\n\t\t\t\t\t// Element is taller than within\n\t\t\t\t\tif (data.collisionHeight > outerHeight) {\n\n\t\t\t\t\t\t// Element is initially over the top of within\n\t\t\t\t\t\tif (overTop > 0 && overBottom <= 0) {\n\t\t\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;\n\t\t\t\t\t\t\tposition.top += overTop - newOverBottom;\n\n\t\t\t\t\t\t\t// Element is initially over bottom of within\n\t\t\t\t\t\t} else if (overBottom > 0 && overTop <= 0) {\n\t\t\t\t\t\t\tposition.top = withinOffset;\n\n\t\t\t\t\t\t\t// Element is initially over both top and bottom of within\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (overTop > overBottom) {\n\t\t\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Too far up -> align with top\n\t\t\t\t\t} else if (overTop > 0) {\n\t\t\t\t\t\tposition.top += overTop;\n\n\t\t\t\t\t\t// Too far down -> align with bottom edge\n\t\t\t\t\t} else if (overBottom > 0) {\n\t\t\t\t\t\tposition.top -= overBottom;\n\n\t\t\t\t\t\t// Adjust based on position and margin\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.top = max(position.top - collisionPosTop, position.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tflip: {\n\t\t\t\tleft: function (position, data) {\n\t\t\t\t\tvar within = data.within,\n\t\t\t\t\t withinOffset = within.offset.left + within.scrollLeft,\n\t\t\t\t\t outerWidth = within.width,\n\t\t\t\t\t offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\t\t collisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\t\t overLeft = collisionPosLeft - offsetLeft,\n\t\t\t\t\t overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\n\t\t\t\t\t myOffset = data.my[0] === \"left\" ? -data.elemWidth : data.my[0] === \"right\" ? data.elemWidth : 0,\n\t\t\t\t\t atOffset = data.at[0] === \"left\" ? data.targetWidth : data.at[0] === \"right\" ? -data.targetWidth : 0,\n\t\t\t\t\t offset = -2 * data.offset[0],\n\t\t\t\t\t newOverRight,\n\t\t\t\t\t newOverLeft;\n\n\t\t\t\t\tif (overLeft < 0) {\n\t\t\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;\n\t\t\t\t\t\tif (newOverRight < 0 || newOverRight < abs(overLeft)) {\n\t\t\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (overRight > 0) {\n\t\t\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;\n\t\t\t\t\t\tif (newOverLeft > 0 || abs(newOverLeft) < overRight) {\n\t\t\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttop: function (position, data) {\n\t\t\t\t\tvar within = data.within,\n\t\t\t\t\t withinOffset = within.offset.top + within.scrollTop,\n\t\t\t\t\t outerHeight = within.height,\n\t\t\t\t\t offsetTop = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\t\t collisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\t\t overTop = collisionPosTop - offsetTop,\n\t\t\t\t\t overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\n\t\t\t\t\t top = data.my[1] === \"top\",\n\t\t\t\t\t myOffset = top ? -data.elemHeight : data.my[1] === \"bottom\" ? data.elemHeight : 0,\n\t\t\t\t\t atOffset = data.at[1] === \"top\" ? data.targetHeight : data.at[1] === \"bottom\" ? -data.targetHeight : 0,\n\t\t\t\t\t offset = -2 * data.offset[1],\n\t\t\t\t\t newOverTop,\n\t\t\t\t\t newOverBottom;\n\t\t\t\t\tif (overTop < 0) {\n\t\t\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;\n\t\t\t\t\t\tif (newOverBottom < 0 || newOverBottom < abs(overTop)) {\n\t\t\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (overBottom > 0) {\n\t\t\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;\n\t\t\t\t\t\tif (newOverTop > 0 || abs(newOverTop) < overBottom) {\n\t\t\t\t\t\t\tposition.top += myOffset + atOffset + offset;\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\tflipfit: {\n\t\t\t\tleft: function () {\n\t\t\t\t\t$.ui.position.flip.left.apply(this, arguments);\n\t\t\t\t\t$.ui.position.fit.left.apply(this, arguments);\n\t\t\t\t},\n\t\t\t\ttop: function () {\n\t\t\t\t\t$.ui.position.flip.top.apply(this, arguments);\n\t\t\t\t\t$.ui.position.fit.top.apply(this, arguments);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tvar position = $.ui.position;\n\n\t// Support: IE8 Only\n\t// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n\t// with a string, so we need to find the proper form.\n\tvar form = $.fn.form = function () {\n\t\treturn typeof this[0].form === \"string\" ? this.closest(\"form\") : $(this[0].form);\n\t};\n\n\t/*!\r\n * jQuery UI Form Reset Mixin 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\n\n\t//>>label: Form Reset Mixin\n\t//>>group: Core\n\t//>>description: Refresh input widgets when their form is reset\n\t//>>docs: http://api.jqueryui.com/form-reset-mixin/\n\n\n\tvar formResetMixin = $.ui.formResetMixin = {\n\t\t_formResetHandler: function () {\n\t\t\tvar form = $(this);\n\n\t\t\t// Wait for the form reset to actually happen before refreshing\n\t\t\tsetTimeout(function () {\n\t\t\t\tvar instances = form.data(\"ui-form-reset-instances\");\n\t\t\t\t$.each(instances, function () {\n\t\t\t\t\tthis.refresh();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t_bindFormResetHandler: function () {\n\t\t\tthis.form = this.element.form();\n\t\t\tif (!this.form.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar instances = this.form.data(\"ui-form-reset-instances\") || [];\n\t\t\tif (!instances.length) {\n\n\t\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\t\tthis.form.on(\"reset.ui-form-reset\", this._formResetHandler);\n\t\t\t}\n\t\t\tinstances.push(this);\n\t\t\tthis.form.data(\"ui-form-reset-instances\", instances);\n\t\t},\n\n\t\t_unbindFormResetHandler: function () {\n\t\t\tif (!this.form.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar instances = this.form.data(\"ui-form-reset-instances\");\n\t\t\tinstances.splice($.inArray(this, instances), 1);\n\t\t\tif (instances.length) {\n\t\t\t\tthis.form.data(\"ui-form-reset-instances\", instances);\n\t\t\t} else {\n\t\t\t\tthis.form.removeData(\"ui-form-reset-instances\").off(\"reset.ui-form-reset\");\n\t\t\t}\n\t\t}\n\t};\n\n\t/*!\r\n * jQuery UI Keycode 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\n\n\t//>>label: Keycode\n\t//>>group: Core\n\t//>>description: Provide keycodes as keynames\n\t//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n\n\tvar keycode = $.ui.keyCode = {\n\t\tBACKSPACE: 8,\n\t\tCOMMA: 188,\n\t\tDELETE: 46,\n\t\tDOWN: 40,\n\t\tEND: 35,\n\t\tENTER: 13,\n\t\tESCAPE: 27,\n\t\tHOME: 36,\n\t\tLEFT: 37,\n\t\tPAGE_DOWN: 34,\n\t\tPAGE_UP: 33,\n\t\tPERIOD: 190,\n\t\tRIGHT: 39,\n\t\tSPACE: 32,\n\t\tTAB: 9,\n\t\tUP: 38\n\t};\n\n\t// Internal use only\n\tvar escapeSelector = $.ui.escapeSelector = function () {\n\t\tvar selectorEscape = /([!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~])/g;\n\t\treturn function (selector) {\n\t\t\treturn selector.replace(selectorEscape, \"\\\\$1\");\n\t\t};\n\t}();\n\n\t/*!\r\n * jQuery UI Labels 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\n\n\t//>>label: labels\n\t//>>group: Core\n\t//>>description: Find all the labels associated with a given input\n\t//>>docs: http://api.jqueryui.com/labels/\n\n\n\tvar labels = $.fn.labels = function () {\n\t\tvar ancestor, selector, id, labels, ancestors;\n\n\t\t// Check control.labels first\n\t\tif (this[0].labels && this[0].labels.length) {\n\t\t\treturn this.pushStack(this[0].labels);\n\t\t}\n\n\t\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t\t// Above browsers do not support control.labels. Everything below is to support them\n\t\t// as well as document fragments. control.labels does not work on document fragments\n\t\tlabels = this.eq(0).parents(\"label\");\n\n\t\t// Look for the label based on the id\n\t\tid = this.attr(\"id\");\n\t\tif (id) {\n\n\t\t\t// We don't search against the document in case the element\n\t\t\t// is disconnected from the DOM\n\t\t\tancestor = this.eq(0).parents().last();\n\n\t\t\t// Get a full set of top level ancestors\n\t\t\tancestors = ancestor.add(ancestor.length ? ancestor.siblings() : this.siblings());\n\n\t\t\t// Create a selector for the label based on the id\n\t\t\tselector = \"label[for='\" + $.ui.escapeSelector(id) + \"']\";\n\n\t\t\tlabels = labels.add(ancestors.find(selector).addBack(selector));\n\t\t}\n\n\t\t// Return whatever we have found for labels\n\t\treturn this.pushStack(labels);\n\t};\n\n\t/*!\r\n * jQuery UI Unique ID 1.12.1\r\n * http://jqueryui.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\n\n\t//>>label: uniqueId\n\t//>>group: Core\n\t//>>description: Functions to generate and remove uniqueId's\n\t//>>docs: http://api.jqueryui.com/uniqueId/\n\n\n\tvar uniqueId = $.fn.extend({\n\t\tuniqueId: function () {\n\t\t\tvar uuid = 0;\n\n\t\t\treturn function () {\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\tif (!this.id) {\n\t\t\t\t\t\tthis.id = \"ui-id-\" + ++uuid;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}(),\n\n\t\tremoveUniqueId: function () {\n\t\t\treturn this.each(function () {\n\t\t\t\tif (/^ui-id-\\d+$/.test(this.id)) {\n\t\t\t\t\t$(this).removeAttr(\"id\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tvar safeActiveElement = $.ui.safeActiveElement = function (document) {\n\t\tvar activeElement;\n\n\t\t// Support: IE 9 only\n\t\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an