{"version":3,"sources":["enquire.min.js","headroom.min.js","jquery.fancybox.js","jquery.sticky-kit.min.js","jquery.waypoints.mins.js","slick.js","scripts.js"],"names":["a","exports","_typeof","module","define","amd","window","global","self","this","enquire","b","c","d","e","g","h","i","require","f","j","Error","code","k","call","length","1","query","isUnconditional","handlers","mql","matchMedia","listener","currentTarget","assess","addListener","each","prototype","constuctor","addHandler","push","matches","on","removeHandler","equals","destroy","splice","clear","removeListener","3","4","2","queries","browserIsIncapable","isFunction","isArray","constructor","register","match","unregister","options","deferSetup","setup","initialised","off","unmatch","Object","toString","apply","5","t","n","Headroom","s","o","passive","addEventListener","removeEventListener","r","document","nodeType","body","documentElement","scrollHeight","Math","max","offsetHeight","clientHeight","height","innerHeight","scrollY","pageYOffset","parentNode","scrollTop","l","round","lastScrollY","direction","distance","abs","isOutOfBounds","top","offset","bottom","toleranceExceeded","tolerance","requestAnimationFrame","u","capture","cancelAnimationFrame","down","up","assign","classes","elem","frozen","init","cutsTheMustard","addClass","setTimeout","scrollTracker","scroller","update","bind","keys","forEach","removeClass","unpin","hasClass","onUnpin","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","shouldPin","classList","add","split","remove","every","contains","pinned","unpinned","initial","$","undefined","console","info","fn","fancybox","div","buttonStr","focusStr","$pressed","defaults","closeExisting","loop","gutter","keyboard","preventCaptionOverlap","arrows","infobar","smallBtn","toolbar","buttons","idleTime","protect","modal","image","preload","ajax","settings","data","iframe","tpl","css","attr","scrolling","video","format","autoStart","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","zoom","close","arrowLeft","arrowRight","parentEl","hideScrollbar","autoFocus","backFocus","trapFocus","fullScreen","touch","vertical","momentum","hash","media","slideShow","speed","thumbs","hideOnClose","axis","wheel","onInit","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","current","type","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","mobile","lang","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","DOWNLOAD","SHARE","ZOOM","de","$W","$D","called","requestAFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","cancelAFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","id","clearTimeout","transitionEnd","el","createElement","transitions","transition","OTransition","MozTransition","WebkitTransition","style","forceRedraw","$el","mergeOpts","opts1","opts2","rez","extend","key","value","FancyBox","content","opts","index","isPlainObject","isMobile","currIndex","parseInt","prevIndex","prevPos","currPos","firstRun","group","slides","addContent","$container","firstItemOpts","getInstance","append","innerWidth","clientWidth","translate","replace","appendTo","$refs","container","item","find","trigger","activate","jumpTo","obj","str","arr","items","makeArray","$item","found","src","srcParts","$orig","contentType","charAt","inArray","$thumb","$trigger","thumb","caption","shift","filter","updateControls","Thumbs","isActive","create","focus","addEvents","removeEvents","stopPropagation","preventDefault","previous","next","isScaledDown","originalEvent","requestId","stage","hide","show","keycode","keyCode","which","ctrlKey","altKey","shiftKey","target","is","idleSecondsCounter","isIdle","showControls","idleInterval","setInterval","isDragging","hideControls","clearInterval","duration","pos","isMoved","slidePos","stagePos","prop","diff","groupLen","isClosing","isAnimating","createSlide","forcedDuration","isNumeric","$slide","loadSlide","getTranslate","slide","stop","isComplete","left","width","className","join","leftPos","setTranslate","animate","transform","opacity","complete","isLoaded","revealContent","updateSlide","scaleToActual","x","y","imgPos","posX","posY","scaleX","scaleY","$content","canvasWidth","canvasHeight","newImgWidth","newImgHeight","hasError","updateCursor","SlideShow","scaleToFit","end","getFitPos","maxWidth","maxHeight","minRatio","aspectRatio","parseFloat","min","floor","ratio","adjustCaption","adjustLayout","navigation","toggleClass","get","centerSlide","siblings","parent","children","nextWidth","nextHeight","canPan","isZoomable","Guestures","fitPos","ajaxLoad","isLoading","setImage","setIframe","setContent","videoFormat","setError","showLoading","url","success","textStatus","error","jqXHR","one","abort","ghost","$img","$image","checkSrcset","onerror","$ghost","onload","setBigImage","temp","pxRatio","windowWidth","srcset","devicePixelRatio","map","ret","trim","substring","postfix","sort","img","sizes","resolveImageSlideSize","naturalWidth","naturalHeight","hideLoading","readyState","imgWidth","imgHeight","$iframe","Date","getTime","isReady","$body","frameWidth","frameHeight","contents","ignore","max-width","ceil","outerWidth","outerHeight","unbind","empty","isRevealed","hasOwnProperty","parents","$placeholder","insertAfter","html","after","$smallBtn","wrap","first","wrapInner","$spinner","fadeIn","button","$clone","preventOverlap","$caption","captionH","clone","eq","marginBottom","inlinePadding","actualPadding","disableLayoutFix","effect","effectClassName","start","getThumbPos","thumbPos","btw","brw","bbw","blw","elemCenter","ownerDocument","getBoundingClientRect","offsetWidth","elementFromPoint","Document","exitFullscreen","webkitExitFullscreen","scrollLeft","prev","focusableItems","focusedItemIndex","focusableStr","activeElement","instance","isVisible","done","cleanUp","domRect","$focus","scrollX","name","args","Array","slice","arguments","unshift","hasHiddenControls","andCaption","toggleControls","version","command","open","all","test","navigator","userAgent","use3d","getComputedStyle","getPropertyValue","documentMode","props","position","to","leaveAnimationName","from","propertyName","callCallback","selector","_run","$target","isDefaultPrevented","jQuery","params","param","indexOf","youtube","matcher","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","instagram","gmap_place","gmap_search","urlParams","paramObj","provider","providerName","providerOpts","m","p","decodeURIComponent","p1","origSrc","contentSource","VideoAPILoader","class","loading","loaded","load","vendor","script","_this","onYouTubeIframeAPIReady","appendChild","YT","Player","events","onStateChange","Vimeo","afterShow.fb","getPointerXY","result","touches","changedTouches","pageX","pageY","clientX","clientY","point2","point1","what","sqrt","pow","isClickable","onclick","atts","attributes","nodeName","substr","isScrollable","overflowY","overflowX","horizontal","scrollWidth","$bg","bg","$stage","proxy","tapped","ontouchstart","isTouchDevice","realPoints","startPoints","startEvent","canTap","isPanning","isSwiping","isZooming","isScrolling","startTime","distanceX","distanceY","contentLastPos","contentStartPos","sliderStartPos","onscroll","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","ontouchmove","newPoints","onSwipe","onPan","onZoom","ontouchend","angle","swiping","sliderLastPos","atan2","PI","transition-duration","limitMovement","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","newOffsetX","newOffsetY","currentOffsetX","currentOffsetY","currentWidth","currentHeight","limitPosition","newWidth","newHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","newPos","panning","zooming","endPoints","dMs","onTap","velocityX","velocityY","endPanning","endZooming","endSwiping","len","canAdvance","reset","process","prefix","action","tapX","tapY","where","addBack","progress","timer","$button","toggle","$progress","inner","set","force","removeAttr","onInit.fb","beforeShow.fb","afterKeydown.fb","keypress","beforeClose.fb onDeactivate.fb","hidden","fnMap","val","FullScreen","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","Boolean","fullscreenElement","enabled","fullscreenEnabled","fullscreenchange","beforeClose.fb","CLASS","CLASS_ACTIVE","FancyThumbs","$grid","$list","list","innerHTML","that","share","currentHash","location","entityMap","encodeURIComponent","&","<",">","\"","'","/","`","=","String","text","shareInstance","shareCurrent","click","href","parseUrl","pop","gallery","triggerFromUrl","escapeSelector","getGalleryID","sel","ch","asCodePoint","charCodeAt","origHash","hashTimer","history","title","pathname","search","hasCreatedHistory","back","replaceState","fb","reverse","tmp","prevTime","currTime","deltaY","deltaX","wheelDelta","detail","stick_in_parent","A","w","J","B","K","q","E","sticky_class","inner_scrolling","recalc_every","offset_top","spacer","bottoming","C","F","G","v","H","D","I","z","closest","detach","display","vertical-align","float","removeData","element","handler","Adapter","adapter","triggerPoint","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","queueTrigger","disable","enable","refresh","invokeAll","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","viewportWidth","adapters","continuous","bottom-in-view","right-in-view","Waypoint","didScroll","didResize","oldScroll","waypoints","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","checkEmpty","isEmptyObject","handleResize","handleScroll","isTouch","newScroll","forward","backward","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","findByElement","clearTriggerQueues","triggerQueues","right","last","$element","waypoint","Zepto","factory","instanceUid","Slick","dataSettings","_","accessibility","adaptiveHeight","appendArrows","appendDots","asNavFor","prevArrow","nextArrow","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","slider","dots","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","focusOnChange","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","rtl","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","verticalSwiping","waitForAnimate","zIndex","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","htmlExpr","registerBreakpoints","activateADA","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","insertBefore","prependTo","reinit","animateHeight","targetHeight","animateSlide","targetLeft","animProps","animStart","step","now","applyTransition","disableTransition","getNavTarget","not","slick","slideHandler","slideTo","buildArrows","aria-disabled","buildDots","dot","getDotCount","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","newSlides","numOfSlides","originalSlides","slidesPerSection","createDocumentFragment","row","checkResponsive","forceUpdate","breakpoint","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","unslick","event","dontAnimate","indexOffset","message","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","resize","cleanUpRows","stopImmediatePropagation","fadeSlide","slideIndex","fadeSlideOut","filterSlides","slickFilter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","targetSlide","coef","verticalOffset","offsetLeft","getOption","slickGetOption","option","indexes","getSlick","getSlideCount","swipedSlide","centerOffset","goTo","slickGoTo","creation","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","numDotGroups","tabControlIndexes","slideControlIndex","role","ariaButtonControl","aria-describedby","mappedSlideIndex","aria-controls","aria-label","aria-selected","initArrowEvents","initDotEvents","initSlideEvents","initUI","tagName","loadRange","rangeStart","rangeEnd","loadImages","imagesScope","imageSource","imageSrcSet","imageSizes","imageToLoad","prevSlide","nextSlide","progressiveLazyLoad","slickNext","pause","slickPause","play","slickPlay","postSlide","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","padding","setFade","setHeight","setOption","slickSetOption","opt","bodyStyle","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","allSlides","remainder","evenCoef","infiniteCount","targetElement","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","curLeft","positionOffset","verticalSwipeLength","unfilterSlides","slickUnfilter","fromBreakpoint","$wrapper","$nav","slideToggle","$elem","querySelector"],"mappings":"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","file":"script.min.js","sourcesContent":["/*!\n * enquire.js v2.1.6 - Awesome Media Queries in JavaScript\n * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/enquire.js\n * License: MIT */\n\n!function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.enquire=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;gs.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener(\"scroll\",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener(\"scroll\",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass(\"initial\"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass(\"pinned\")&&this.hasClass(\"unpinned\")||(this.addClass(\"unpinned\"),this.removeClass(\"pinned\"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass(\"unpinned\")&&(this.addClass(\"pinned\"),this.removeClass(\"unpinned\"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass(\"frozen\")},unfreeze:function(){this.frozen=!1,this.removeClass(\"frozen\")},top:function(){this.hasClass(\"top\")||(this.addClass(\"top\"),this.removeClass(\"notTop\"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass(\"notTop\")||(this.addClass(\"notTop\"),this.removeClass(\"top\"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass(\"bottom\")||(this.addClass(\"bottom\"),this.removeClass(\"notBottom\"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass(\"notBottom\")||(this.addClass(\"notBottom\"),this.removeClass(\"bottom\"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return\"down\"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return\"up\"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(\" \"))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(\" \"))},hasClass:function(t){return this.classes[t].split(\" \").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:\"headroom--frozen\",pinned:\"headroom--pinned\",unpinned:\"headroom--unpinned\",top:\"headroom--top\",notTop:\"headroom--not-top\",bottom:\"headroom--bottom\",notBottom:\"headroom--not-bottom\",initial:\"headroom\"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&\"classList\"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});","// ==================================================\n// fancyBox v3.5.7\n//\n// Licensed GPLv3 for open source use\n// or fancyBox Commercial License for commercial use\n//\n// http://fancyapps.com/fancybox/\n// Copyright 2019 fancyApps\n//\n// ==================================================\n(function (window, document, $, undefined) {\n \"use strict\";\n\n window.console = window.console || {\n info: function (stuff) {}\n };\n\n // If there's no jQuery, fancyBox can't work\n // =========================================\n\n if (!$) {\n return;\n }\n\n // Check if fancyBox is already initialized\n // ========================================\n\n if ($.fn.fancybox) {\n console.info(\"fancyBox already initialized\");\n\n return;\n }\n\n // Private default settings\n // ========================\n\n var defaults = {\n // Close existing modals\n // Set this to false if you do not need to stack multiple instances\n closeExisting: false,\n\n // Enable infinite gallery navigation\n loop: false,\n\n // Horizontal space between slides\n gutter: 50,\n\n // Enable keyboard navigation\n keyboard: true,\n\n // Should allow caption to overlap the content\n preventCaptionOverlap: true,\n\n // Should display navigation arrows at the screen edges\n arrows: true,\n\n // Should display counter at the top left corner\n infobar: true,\n\n // Should display close button (using `btnTpl.smallBtn` template) over the content\n // Can be true, false, \"auto\"\n // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\n smallBtn: \"auto\",\n\n // Should display toolbar (buttons at the top)\n // Can be true, false, \"auto\"\n // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\n toolbar: \"auto\",\n\n // What buttons should appear in the top right corner.\n // Buttons will be created using templates from `btnTpl` option\n // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\n buttons: [\n \"zoom\",\n //\"share\",\n \"slideShow\",\n //\"fullScreen\",\n //\"download\",\n \"thumbs\",\n \"close\"\n ],\n\n // Detect \"idle\" time in seconds\n idleTime: 3,\n\n // Disable right-click and use simple image protection for images\n protect: false,\n\n // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\n modal: false,\n\n image: {\n // Wait for images to load before displaying\n // true - wait for image to load and then display;\n // false - display thumbnail and load the full-sized image over top,\n // requires predefined image dimensions (`data-width` and `data-height` attributes)\n preload: false\n },\n\n ajax: {\n // Object containing settings for ajax request\n settings: {\n // This helps to indicate that request comes from the modal\n // Feel free to change naming\n data: {\n fancybox: true\n }\n }\n },\n\n iframe: {\n // Iframe template\n tpl: '',\n\n // Preload iframe before displaying it\n // This allows to calculate iframe content width and height\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\n preload: true,\n\n // Custom CSS styling for iframe wrapping element\n // You can use this to set custom iframe dimensions\n css: {},\n\n // Iframe tag attributes\n attr: {\n scrolling: \"auto\"\n }\n },\n\n // For HTML5 video only\n video: {\n tpl: '\",\n format: \"\", // custom video format\n autoStart: true\n },\n\n // Default content type if cannot be detected automatically\n defaultType: \"image\",\n\n // Open/close animation type\n // Possible values:\n // false - disable\n // \"zoom\" - zoom images from/to thumbnail\n // \"fade\"\n // \"zoom-in-out\"\n //\n animationEffect: \"zoom\",\n\n // Duration in ms for open/close animation\n animationDuration: 366,\n\n // Should image change opacity while zooming\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\n zoomOpacity: \"auto\",\n\n // Transition effect between slides\n //\n // Possible values:\n // false - disable\n // \"fade'\n // \"slide'\n // \"circular'\n // \"tube'\n // \"zoom-in-out'\n // \"rotate'\n //\n transitionEffect: \"fade\",\n\n // Duration in ms for transition animation\n transitionDuration: 366,\n\n // Custom CSS class for slide element\n slideClass: \"\",\n\n // Custom CSS class for layout\n baseClass: \"\",\n\n // Base template for layout\n baseTpl: '
' +\n '
' +\n '
' +\n '
 / 
' +\n '
{{buttons}}
' +\n '
{{arrows}}
' +\n '
' +\n '
' +\n \"
\" +\n \"
\",\n\n // Loading indicator template\n spinnerTpl: '
',\n\n // Error message template\n errorTpl: '

{{ERROR}}

',\n\n btnTpl: {\n download: '' +\n '' +\n \"\",\n\n zoom: '\",\n\n close: '\",\n\n // Arrows\n arrowLeft: '\",\n\n arrowRight: '\",\n\n // This small close button will be appended to your html/inline/ajax content by default,\n // if \"smallBtn\" option is not set to false\n smallBtn: '\"\n },\n\n // Container is injected into this element\n parentEl: \"body\",\n\n // Hide browser vertical scrollbars; use at your own risk\n hideScrollbar: true,\n\n // Focus handling\n // ==============\n\n // Try to focus on the first focusable element after opening\n autoFocus: true,\n\n // Put focus back to active element after closing\n backFocus: true,\n\n // Do not let user to focus on element outside modal content\n trapFocus: true,\n\n // Module specific options\n // =======================\n\n fullScreen: {\n autoStart: false\n },\n\n // Set `touch: false` to disable panning/swiping\n touch: {\n vertical: true, // Allow to drag content vertically\n momentum: true // Continue movement after releasing mouse/touch when panning\n },\n\n // Hash value when initializing manually,\n // set `false` to disable hash change\n hash: null,\n\n // Customize or add new media types\n // Example:\n /*\n media : {\n youtube : {\n params : {\n autoplay : 0\n }\n }\n }\n */\n media: {},\n\n slideShow: {\n autoStart: false,\n speed: 3000\n },\n\n thumbs: {\n autoStart: false, // Display thumbnails on opening\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\n parentEl: \".fancybox-container\", // Container is injected into this element\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n },\n\n // Use mousewheel to navigate gallery\n // If 'auto' - enabled for images only\n wheel: \"auto\",\n\n // Callbacks\n //==========\n\n // See Documentation/API/Events for more information\n // Example:\n /*\n afterShow: function( instance, current ) {\n console.info( 'Clicked element:' );\n console.info( current.opts.$orig );\n }\n */\n\n onInit: $.noop, // When instance has been initialized\n\n beforeLoad: $.noop, // Before the content of a slide is being loaded\n afterLoad: $.noop, // When the content of a slide is done loading\n\n beforeShow: $.noop, // Before open animation starts\n afterShow: $.noop, // When content is done loading and animating\n\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\n afterClose: $.noop, // After instance has been closed\n\n onActivate: $.noop, // When instance is brought to front\n onDeactivate: $.noop, // When other instance has been activated\n\n // Interaction\n // ===========\n\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\n // each option can be string or method that returns value.\n //\n // Possible values:\n // \"close\" - close instance\n // \"next\" - move to next gallery item\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\n // \"toggleControls\" - show/hide controls\n // \"zoom\" - zoom image (if loaded)\n // false - do nothing\n\n // Clicked on the content\n clickContent: function (current, event) {\n return current.type === \"image\" ? \"zoom\" : false;\n },\n\n // Clicked on the slide\n clickSlide: \"close\",\n\n // Clicked on the background (backdrop) element;\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\n clickOutside: \"close\",\n\n // Same as previous two, but for double click\n dblclickContent: false,\n dblclickSlide: false,\n dblclickOutside: false,\n\n // Custom options when mobile device is detected\n // =============================================\n\n mobile: {\n preventCaptionOverlap: false,\n idleTime: false,\n clickContent: function (current, event) {\n return current.type === \"image\" ? \"toggleControls\" : false;\n },\n clickSlide: function (current, event) {\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\n },\n dblclickContent: function (current, event) {\n return current.type === \"image\" ? \"zoom\" : false;\n },\n dblclickSlide: function (current, event) {\n return current.type === \"image\" ? \"zoom\" : false;\n }\n },\n\n // Internationalization\n // ====================\n\n lang: \"en\",\n i18n: {\n en: {\n CLOSE: \"Close\",\n NEXT: \"Next\",\n PREV: \"Previous\",\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\n PLAY_START: \"Start slideshow\",\n PLAY_STOP: \"Pause slideshow\",\n FULL_SCREEN: \"Full screen\",\n THUMBS: \"Thumbnails\",\n DOWNLOAD: \"Download\",\n SHARE: \"Share\",\n ZOOM: \"Zoom\"\n },\n de: {\n CLOSE: \"Schließen\",\n NEXT: \"Weiter\",\n PREV: \"Zurück\",\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\n PLAY_START: \"Diaschau starten\",\n PLAY_STOP: \"Diaschau beenden\",\n FULL_SCREEN: \"Vollbild\",\n THUMBS: \"Vorschaubilder\",\n DOWNLOAD: \"Herunterladen\",\n SHARE: \"Teilen\",\n ZOOM: \"Vergrößern\"\n }\n }\n };\n\n // Few useful variables and methods\n // ================================\n\n var $W = $(window);\n var $D = $(document);\n\n var called = 0;\n\n // Check if an object is a jQuery object and not a native JavaScript object\n // ========================================================================\n var isQuery = function (obj) {\n return obj && obj.hasOwnProperty && obj instanceof $;\n };\n\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\n // ===============================================================================\n var requestAFrame = (function () {\n return (\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n // if all else fails, use setTimeout\n function (callback) {\n return window.setTimeout(callback, 1000 / 60);\n }\n );\n })();\n\n var cancelAFrame = (function () {\n return (\n window.cancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.oCancelAnimationFrame ||\n function (id) {\n window.clearTimeout(id);\n }\n );\n })();\n\n // Detect the supported transition-end event property name\n // =======================================================\n var transitionEnd = (function () {\n var el = document.createElement(\"fakeelement\"),\n t;\n\n var transitions = {\n transition: \"transitionend\",\n OTransition: \"oTransitionEnd\",\n MozTransition: \"transitionend\",\n WebkitTransition: \"webkitTransitionEnd\"\n };\n\n for (t in transitions) {\n if (el.style[t] !== undefined) {\n return transitions[t];\n }\n }\n\n return \"transitionend\";\n })();\n\n // Force redraw on an element.\n // This helps in cases where the browser doesn't redraw an updated element properly\n // ================================================================================\n var forceRedraw = function ($el) {\n return $el && $el.length && $el[0].offsetHeight;\n };\n\n // Exclude array (`buttons`) options from deep merging\n // ===================================================\n var mergeOpts = function (opts1, opts2) {\n var rez = $.extend(true, {}, opts1, opts2);\n\n $.each(opts2, function (key, value) {\n if ($.isArray(value)) {\n rez[key] = value;\n }\n });\n\n return rez;\n };\n\n // How much of an element is visible in viewport\n // =============================================\n\n var inViewport = function (elem) {\n var elemCenter, rez;\n\n if (!elem || elem.ownerDocument !== document) {\n return false;\n }\n\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\n\n elemCenter = {\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\n };\n\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\n\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\n\n return rez;\n };\n\n // Class definition\n // ================\n\n var FancyBox = function (content, opts, index) {\n var self = this;\n\n self.opts = mergeOpts({\n index: index\n }, $.fancybox.defaults);\n\n if ($.isPlainObject(opts)) {\n self.opts = mergeOpts(self.opts, opts);\n }\n\n if ($.fancybox.isMobile) {\n self.opts = mergeOpts(self.opts, self.opts.mobile);\n }\n\n self.id = self.opts.id || ++called;\n\n self.currIndex = parseInt(self.opts.index, 10) || 0;\n self.prevIndex = null;\n\n self.prevPos = null;\n self.currPos = 0;\n\n self.firstRun = true;\n\n // All group items\n self.group = [];\n\n // Existing slides (for current, next and previous gallery items)\n self.slides = {};\n\n // Create group elements\n self.addContent(content);\n\n if (!self.group.length) {\n return;\n }\n\n self.init();\n };\n\n $.extend(FancyBox.prototype, {\n // Create DOM structure\n // ====================\n\n init: function () {\n var self = this,\n firstItem = self.group[self.currIndex],\n firstItemOpts = firstItem.opts,\n $container,\n buttonStr;\n\n if (firstItemOpts.closeExisting) {\n $.fancybox.close(true);\n }\n\n // Hide scrollbars\n // ===============\n\n $(\"body\").addClass(\"fancybox-active\");\n\n if (\n !$.fancybox.getInstance() &&\n firstItemOpts.hideScrollbar !== false &&\n !$.fancybox.isMobile &&\n document.body.scrollHeight > window.innerHeight\n ) {\n $(\"head\").append(\n '\"\n );\n\n $(\"body\").addClass(\"compensate-for-scrollbar\");\n }\n\n // Build html markup and set references\n // ====================================\n\n // Build html code for buttons and insert into main template\n buttonStr = \"\";\n\n $.each(firstItemOpts.buttons, function (index, value) {\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\n });\n\n // Create markup from base template, it will be initially hidden to\n // avoid unnecessary work like painting while initializing is not complete\n $container = $(\n self.translate(\n self,\n firstItemOpts.baseTpl\n .replace(\"{{buttons}}\", buttonStr)\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\n )\n )\n .attr(\"id\", \"fancybox-container-\" + self.id)\n .addClass(firstItemOpts.baseClass)\n .data(\"FancyBox\", self)\n .appendTo(firstItemOpts.parentEl);\n\n // Create object holding references to jQuery wrapped nodes\n self.$refs = {\n container: $container\n };\n\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\n self.$refs[item] = $container.find(\".fancybox-\" + item);\n });\n\n self.trigger(\"onInit\");\n\n // Enable events, deactive previous instances\n self.activate();\n\n // Build slides, load and reveal content\n self.jumpTo(self.currIndex);\n },\n\n // Simple i18n support - replaces object keys found in template\n // with corresponding values\n // ============================================================\n\n translate: function (obj, str) {\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\n\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\n return arr[n] === undefined ? match : arr[n];\n });\n },\n\n // Populate current group with fresh content\n // Check if each object has valid type and content\n // ===============================================\n\n addContent: function (content) {\n var self = this,\n items = $.makeArray(content),\n thumbs;\n\n $.each(items, function (i, item) {\n var obj = {},\n opts = {},\n $item,\n type,\n found,\n src,\n srcParts;\n\n // Step 1 - Make sure we have an object\n // ====================================\n\n if ($.isPlainObject(item)) {\n // We probably have manual usage here, something like\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\n\n obj = item;\n opts = item.opts || item;\n } else if ($.type(item) === \"object\" && $(item).length) {\n // Here we probably have jQuery collection returned by some selector\n $item = $(item);\n\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\n opts = $item.data() || {};\n opts = $.extend(true, {}, opts, opts.options);\n\n // Here we store clicked element\n opts.$orig = $item;\n\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\n\n // Assume that simple syntax is used, for example:\n // `$.fancybox.open( $(\"#test\"), {} );`\n if (!obj.type && !obj.src) {\n obj.type = \"inline\";\n obj.src = item;\n }\n } else {\n // Assume we have a simple html code, for example:\n // $.fancybox.open( '

Hi!

' );\n obj = {\n type: \"html\",\n src: item + \"\"\n };\n }\n\n // Each gallery object has full collection of options\n obj.opts = $.extend(true, {}, self.opts, opts);\n\n // Do not merge buttons array\n if ($.isArray(opts.buttons)) {\n obj.opts.buttons = opts.buttons;\n }\n\n if ($.fancybox.isMobile && obj.opts.mobile) {\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\n }\n\n // Step 2 - Make sure we have content type, if not - try to guess\n // ==============================================================\n\n type = obj.type || obj.opts.type;\n src = obj.src || \"\";\n\n if (!type && src) {\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\n type = \"video\";\n\n if (!obj.opts.video.format) {\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\n }\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\n type = \"image\";\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\n type = \"iframe\";\n obj = $.extend(true, obj, {\n contentType: \"pdf\",\n opts: {\n iframe: {\n preload: false\n }\n }\n });\n } else if (src.charAt(0) === \"#\") {\n type = \"inline\";\n }\n }\n\n if (type) {\n obj.type = type;\n } else {\n self.trigger(\"objectNeedsType\", obj);\n }\n\n if (!obj.contentType) {\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\n }\n\n // Step 3 - Some adjustments\n // =========================\n\n obj.index = self.group.length;\n\n if (obj.opts.smallBtn == \"auto\") {\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\n }\n\n if (obj.opts.toolbar === \"auto\") {\n obj.opts.toolbar = !obj.opts.smallBtn;\n }\n\n // Find thumbnail image, check if exists and if is in the viewport\n obj.$thumb = obj.opts.$thumb || null;\n\n if (obj.opts.$trigger && obj.index === self.opts.index) {\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\n\n if (obj.$thumb.length) {\n obj.opts.$orig = obj.opts.$trigger;\n }\n }\n\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\n }\n\n if (obj.$thumb && !obj.$thumb.length) {\n obj.$thumb = null;\n }\n\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\n\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\n if ($.type(obj.opts.caption) === \"function\") {\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\n }\n\n if ($.type(self.opts.caption) === \"function\") {\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\n }\n\n // Make sure we have caption as a string or jQuery object\n if (!(obj.opts.caption instanceof $)) {\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\n }\n\n // Check if url contains \"filter\" used to filter the content\n // Example: \"ajax.html #something\"\n if (obj.type === \"ajax\") {\n srcParts = src.split(/\\s+/, 2);\n\n if (srcParts.length > 1) {\n obj.src = srcParts.shift();\n\n obj.opts.filter = srcParts.shift();\n }\n }\n\n // Hide all buttons and disable interactivity for modal items\n if (obj.opts.modal) {\n obj.opts = $.extend(true, obj.opts, {\n trapFocus: true,\n // Remove buttons\n infobar: 0,\n toolbar: 0,\n\n smallBtn: 0,\n\n // Disable keyboard navigation\n keyboard: 0,\n\n // Disable some modules\n slideShow: 0,\n fullScreen: 0,\n thumbs: 0,\n touch: 0,\n\n // Disable click event handlers\n clickContent: false,\n clickSlide: false,\n clickOutside: false,\n dblclickContent: false,\n dblclickSlide: false,\n dblclickOutside: false\n });\n }\n\n // Step 4 - Add processed object to group\n // ======================================\n\n self.group.push(obj);\n });\n\n // Update controls if gallery is already opened\n if (Object.keys(self.slides).length) {\n self.updateControls();\n\n // Update thumbnails, if needed\n thumbs = self.Thumbs;\n\n if (thumbs && thumbs.isActive) {\n thumbs.create();\n\n thumbs.focus();\n }\n }\n },\n\n // Attach an event handler functions for:\n // - navigation buttons\n // - browser scrolling, resizing;\n // - focusing\n // - keyboard\n // - detecting inactivity\n // ======================================\n\n addEvents: function () {\n var self = this;\n\n self.removeEvents();\n\n // Make navigation elements clickable\n // ==================================\n\n self.$refs.container\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.close(e);\n })\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.previous();\n })\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.next();\n })\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\n // Click handler for zoom button\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\n });\n\n // Handle page scrolling and browser resizing\n // ==========================================\n\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\n if (self.requestId) {\n cancelAFrame(self.requestId);\n }\n\n self.requestId = requestAFrame(function () {\n self.update(e);\n });\n } else {\n if (self.current && self.current.type === \"iframe\") {\n self.$refs.stage.hide();\n }\n\n setTimeout(\n function () {\n self.$refs.stage.show();\n\n self.update(e);\n },\n $.fancybox.isMobile ? 600 : 250\n );\n }\n });\n\n $D.on(\"keydown.fb\", function (e) {\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\n current = instance.current,\n keycode = e.keyCode || e.which;\n\n // Trap keyboard focus inside of the modal\n // =======================================\n\n if (keycode == 9) {\n if (current.opts.trapFocus) {\n self.focus(e);\n }\n\n return;\n }\n\n // Enable keyboard navigation\n // ==========================\n\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\n return;\n }\n\n // Backspace and Esc keys\n if (keycode === 8 || keycode === 27) {\n e.preventDefault();\n\n self.close(e);\n\n return;\n }\n\n // Left arrow and Up arrow\n if (keycode === 37 || keycode === 38) {\n e.preventDefault();\n\n self.previous();\n\n return;\n }\n\n // Righ arrow and Down arrow\n if (keycode === 39 || keycode === 40) {\n e.preventDefault();\n\n self.next();\n\n return;\n }\n\n self.trigger(\"afterKeydown\", e, keycode);\n });\n\n // Hide controls after some inactivity period\n if (self.group[self.currIndex].opts.idleTime) {\n self.idleSecondsCounter = 0;\n\n $D.on(\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\n function (e) {\n self.idleSecondsCounter = 0;\n\n if (self.isIdle) {\n self.showControls();\n }\n\n self.isIdle = false;\n }\n );\n\n self.idleInterval = window.setInterval(function () {\n self.idleSecondsCounter++;\n\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\n self.isIdle = true;\n self.idleSecondsCounter = 0;\n\n self.hideControls();\n }\n }, 1000);\n }\n },\n\n // Remove events added by the core\n // ===============================\n\n removeEvents: function () {\n var self = this;\n\n $W.off(\"orientationchange.fb resize.fb\");\n $D.off(\"keydown.fb .fb-idle\");\n\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\n\n if (self.idleInterval) {\n window.clearInterval(self.idleInterval);\n\n self.idleInterval = null;\n }\n },\n\n // Change to previous gallery item\n // ===============================\n\n previous: function (duration) {\n return this.jumpTo(this.currPos - 1, duration);\n },\n\n // Change to next gallery item\n // ===========================\n\n next: function (duration) {\n return this.jumpTo(this.currPos + 1, duration);\n },\n\n // Switch to selected gallery item\n // ===============================\n\n jumpTo: function (pos, duration) {\n var self = this,\n groupLen = self.group.length,\n firstRun,\n isMoved,\n loop,\n current,\n previous,\n slidePos,\n stagePos,\n prop,\n diff;\n\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\n return;\n }\n\n // Should loop?\n pos = parseInt(pos, 10);\n loop = self.current ? self.current.opts.loop : self.opts.loop;\n\n if (!loop && (pos < 0 || pos >= groupLen)) {\n return false;\n }\n\n // Check if opening for the first time; this helps to speed things up\n firstRun = self.firstRun = !Object.keys(self.slides).length;\n\n // Create slides\n previous = self.current;\n\n self.prevIndex = self.currIndex;\n self.prevPos = self.currPos;\n\n current = self.createSlide(pos);\n\n if (groupLen > 1) {\n if (loop || current.index < groupLen - 1) {\n self.createSlide(pos + 1);\n }\n\n if (loop || current.index > 0) {\n self.createSlide(pos - 1);\n }\n }\n\n self.current = current;\n self.currIndex = current.index;\n self.currPos = current.pos;\n\n self.trigger(\"beforeShow\", firstRun);\n\n self.updateControls();\n\n // Validate duration length\n current.forcedDuration = undefined;\n\n if ($.isNumeric(duration)) {\n current.forcedDuration = duration;\n } else {\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\n }\n\n duration = parseInt(duration, 10);\n\n // Check if user has swiped the slides or if still animating\n isMoved = self.isMoved(current);\n\n // Make sure current slide is visible\n current.$slide.addClass(\"fancybox-slide--current\");\n\n // Fresh start - reveal container, current slide and start loading content\n if (firstRun) {\n if (current.opts.animationEffect && duration) {\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\n }\n\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\n\n // Attempt to load content into slide\n // This will later call `afterLoad` -> `revealContent`\n self.loadSlide(current);\n\n self.preload(\"image\");\n\n return;\n }\n\n // Get actual slide/stage positions (before cleaning up)\n slidePos = $.fancybox.getTranslate(previous.$slide);\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\n\n // Clean up all slides\n $.each(self.slides, function (index, slide) {\n $.fancybox.stop(slide.$slide, true);\n });\n\n if (previous.pos !== current.pos) {\n previous.isComplete = false;\n }\n\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\n\n // If slides are out of place, then animate them to correct position\n if (isMoved) {\n // Calculate horizontal swipe distance\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\n\n $.each(self.slides, function (index, slide) {\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n });\n\n // Make sure that each slide is in equal distance\n // This is mostly needed for freshly added slides, because they are not yet positioned\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\n\n $.fancybox.setTranslate(slide.$slide, {\n top: 0,\n left: leftPos - stagePos.left + diff\n });\n\n if (slide.pos !== current.pos) {\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\n }\n\n // Redraw to make sure that transition will start\n forceRedraw(slide.$slide);\n\n // Animate the slide\n $.fancybox.animate(\n slide.$slide, {\n top: 0,\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\n },\n duration,\n function () {\n slide.$slide\n .css({\n transform: \"\",\n opacity: \"\"\n })\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n\n if (slide.pos === self.currPos) {\n self.complete();\n }\n }\n );\n });\n } else if (duration && current.opts.transitionEffect) {\n // Set transition effect for previously active slide\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\n\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\n\n $.fancybox.animate(\n previous.$slide,\n prop,\n duration,\n function () {\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n },\n false\n );\n }\n\n if (current.isLoaded) {\n self.revealContent(current);\n } else {\n self.loadSlide(current);\n }\n\n self.preload(\"image\");\n },\n\n // Create new \"slide\" element\n // These are gallery items that are actually added to DOM\n // =======================================================\n\n createSlide: function (pos) {\n var self = this,\n $slide,\n index;\n\n index = pos % self.group.length;\n index = index < 0 ? self.group.length + index : index;\n\n if (!self.slides[pos] && self.group[index]) {\n $slide = $('
').appendTo(self.$refs.stage);\n\n self.slides[pos] = $.extend(true, {}, self.group[index], {\n pos: pos,\n $slide: $slide,\n isLoaded: false\n });\n\n self.updateSlide(self.slides[pos]);\n }\n\n return self.slides[pos];\n },\n\n // Scale image to the actual size of the image;\n // x and y values should be relative to the slide\n // ==============================================\n\n scaleToActual: function (x, y, duration) {\n var self = this,\n current = self.current,\n $content = current.$content,\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\n newImgWidth = current.width,\n newImgHeight = current.height,\n imgPos,\n posX,\n posY,\n scaleX,\n scaleY;\n\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n return;\n }\n\n self.isAnimating = true;\n\n $.fancybox.stop($content);\n\n x = x === undefined ? canvasWidth * 0.5 : x;\n y = y === undefined ? canvasHeight * 0.5 : y;\n\n imgPos = $.fancybox.getTranslate($content);\n\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\n\n scaleX = newImgWidth / imgPos.width;\n scaleY = newImgHeight / imgPos.height;\n\n // Get center position for original image\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\n\n // Make sure image does not move away from edges\n if (newImgWidth > canvasWidth) {\n posX = imgPos.left * scaleX - (x * scaleX - x);\n\n if (posX > 0) {\n posX = 0;\n }\n\n if (posX < canvasWidth - newImgWidth) {\n posX = canvasWidth - newImgWidth;\n }\n }\n\n if (newImgHeight > canvasHeight) {\n posY = imgPos.top * scaleY - (y * scaleY - y);\n\n if (posY > 0) {\n posY = 0;\n }\n\n if (posY < canvasHeight - newImgHeight) {\n posY = canvasHeight - newImgHeight;\n }\n }\n\n self.updateCursor(newImgWidth, newImgHeight);\n\n $.fancybox.animate(\n $content, {\n top: posY,\n left: posX,\n scaleX: scaleX,\n scaleY: scaleY\n },\n duration || 366,\n function () {\n self.isAnimating = false;\n }\n );\n\n // Stop slideshow\n if (self.SlideShow && self.SlideShow.isActive) {\n self.SlideShow.stop();\n }\n },\n\n // Scale image to fit inside parent element\n // ========================================\n\n scaleToFit: function (duration) {\n var self = this,\n current = self.current,\n $content = current.$content,\n end;\n\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n return;\n }\n\n self.isAnimating = true;\n\n $.fancybox.stop($content);\n\n end = self.getFitPos(current);\n\n self.updateCursor(end.width, end.height);\n\n $.fancybox.animate(\n $content, {\n top: end.top,\n left: end.left,\n scaleX: end.width / $content.width(),\n scaleY: end.height / $content.height()\n },\n duration || 366,\n function () {\n self.isAnimating = false;\n }\n );\n },\n\n // Calculate image size to fit inside viewport\n // ===========================================\n\n getFitPos: function (slide) {\n var self = this,\n $content = slide.$content,\n $slide = slide.$slide,\n width = slide.width || slide.opts.width,\n height = slide.height || slide.opts.height,\n maxWidth,\n maxHeight,\n minRatio,\n aspectRatio,\n rez = {};\n\n if (!slide.isLoaded || !$content || !$content.length) {\n return false;\n }\n\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\n\n maxWidth -=\n parseFloat($slide.css(\"paddingLeft\")) +\n parseFloat($slide.css(\"paddingRight\")) +\n parseFloat($content.css(\"marginLeft\")) +\n parseFloat($content.css(\"marginRight\"));\n\n maxHeight -=\n parseFloat($slide.css(\"paddingTop\")) +\n parseFloat($slide.css(\"paddingBottom\")) +\n parseFloat($content.css(\"marginTop\")) +\n parseFloat($content.css(\"marginBottom\"));\n\n if (!width || !height) {\n width = maxWidth;\n height = maxHeight;\n }\n\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\n\n width = minRatio * width;\n height = minRatio * height;\n\n // Adjust width/height to precisely fit into container\n if (width > maxWidth - 0.5) {\n width = maxWidth;\n }\n\n if (height > maxHeight - 0.5) {\n height = maxHeight;\n }\n\n if (slide.type === \"image\") {\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\n } else if (slide.contentType === \"video\") {\n // Force aspect ratio for the video\n // \"I say the whole world must learn of our peaceful ways… by force!\"\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\n\n if (height > width / aspectRatio) {\n height = width / aspectRatio;\n } else if (width > height * aspectRatio) {\n width = height * aspectRatio;\n }\n }\n\n rez.width = width;\n rez.height = height;\n\n return rez;\n },\n\n // Update content size and position for all slides\n // ==============================================\n\n update: function (e) {\n var self = this;\n\n $.each(self.slides, function (key, slide) {\n self.updateSlide(slide, e);\n });\n },\n\n // Update slide content position and size\n // ======================================\n\n updateSlide: function (slide, e) {\n var self = this,\n $content = slide && slide.$content,\n width = slide.width || slide.opts.width,\n height = slide.height || slide.opts.height,\n $slide = slide.$slide;\n\n // First, prevent caption overlap, if needed\n self.adjustCaption(slide);\n\n // Then resize content to fit inside the slide\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\n $.fancybox.stop($content);\n\n $.fancybox.setTranslate($content, self.getFitPos(slide));\n\n if (slide.pos === self.currPos) {\n self.isAnimating = false;\n\n self.updateCursor();\n }\n }\n\n // Then some adjustments\n self.adjustLayout(slide);\n\n if ($slide.length) {\n $slide.trigger(\"refresh\");\n\n if (slide.pos === self.currPos) {\n self.$refs.toolbar\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\n }\n }\n\n self.trigger(\"onUpdate\", slide, e);\n },\n\n // Horizontally center slide\n // =========================\n\n centerSlide: function (duration) {\n var self = this,\n current = self.current,\n $slide = current.$slide;\n\n if (self.isClosing || !current) {\n return;\n }\n\n $slide.siblings().css({\n transform: \"\",\n opacity: \"\"\n });\n\n $slide\n .parent()\n .children()\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\n\n $.fancybox.animate(\n $slide, {\n top: 0,\n left: 0,\n opacity: 1\n },\n duration === undefined ? 0 : duration,\n function () {\n // Clean up\n $slide.css({\n transform: \"\",\n opacity: \"\"\n });\n\n if (!current.isComplete) {\n self.complete();\n }\n },\n false\n );\n },\n\n // Check if current slide is moved (swiped)\n // ========================================\n\n isMoved: function (slide) {\n var current = slide || this.current,\n slidePos,\n stagePos;\n\n if (!current) {\n return false;\n }\n\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\n slidePos = $.fancybox.getTranslate(current.$slide);\n\n return (\n !current.$slide.hasClass(\"fancybox-animated\") &&\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\n );\n },\n\n // Update cursor style depending if content can be zoomed\n // ======================================================\n\n updateCursor: function (nextWidth, nextHeight) {\n var self = this,\n current = self.current,\n $container = self.$refs.container,\n canPan,\n isZoomable;\n\n if (!current || self.isClosing || !self.Guestures) {\n return;\n }\n\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\n\n canPan = self.canPan(nextWidth, nextHeight);\n\n isZoomable = canPan ? true : self.isZoomable();\n\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\n\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\n\n if (canPan) {\n $container.addClass(\"fancybox-can-pan\");\n } else if (\n isZoomable &&\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\n ) {\n $container.addClass(\"fancybox-can-zoomIn\");\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\n $container.addClass(\"fancybox-can-swipe\");\n }\n },\n\n // Check if current slide is zoomable\n // ==================================\n\n isZoomable: function () {\n var self = this,\n current = self.current,\n fitPos;\n\n // Assume that slide is zoomable if:\n // - image is still loading\n // - actual size of the image is smaller than available area\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\n if (!current.isLoaded) {\n return true;\n }\n\n fitPos = self.getFitPos(current);\n\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\n return true;\n }\n }\n\n return false;\n },\n\n // Check if current image dimensions are smaller than actual\n // =========================================================\n\n isScaledDown: function (nextWidth, nextHeight) {\n var self = this,\n rez = false,\n current = self.current,\n $content = current.$content;\n\n if (nextWidth !== undefined && nextHeight !== undefined) {\n rez = nextWidth < current.width && nextHeight < current.height;\n } else if ($content) {\n rez = $.fancybox.getTranslate($content);\n rez = rez.width < current.width && rez.height < current.height;\n }\n\n return rez;\n },\n\n // Check if image dimensions exceed parent element\n // ===============================================\n\n canPan: function (nextWidth, nextHeight) {\n var self = this,\n current = self.current,\n pos = null,\n rez = false;\n\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\n rez = self.getFitPos(current);\n\n if (nextWidth !== undefined && nextHeight !== undefined) {\n pos = {\n width: nextWidth,\n height: nextHeight\n };\n } else if (current.isComplete) {\n pos = $.fancybox.getTranslate(current.$content);\n }\n\n if (pos && rez) {\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\n }\n }\n\n return rez;\n },\n\n // Load content into the slide\n // ===========================\n\n loadSlide: function (slide) {\n var self = this,\n type,\n $slide,\n ajaxLoad;\n\n if (slide.isLoading || slide.isLoaded) {\n return;\n }\n\n slide.isLoading = true;\n\n if (self.trigger(\"beforeLoad\", slide) === false) {\n slide.isLoading = false;\n\n return false;\n }\n\n type = slide.type;\n $slide = slide.$slide;\n\n $slide\n .off(\"refresh\")\n .trigger(\"onReset\")\n .addClass(slide.opts.slideClass);\n\n // Create content depending on the type\n switch (type) {\n case \"image\":\n self.setImage(slide);\n\n break;\n\n case \"iframe\":\n self.setIframe(slide);\n\n break;\n\n case \"html\":\n self.setContent(slide, slide.src || slide.content);\n\n break;\n\n case \"video\":\n self.setContent(\n slide,\n slide.opts.video.tpl\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\n .replace(\"{{poster}}\", slide.thumb || \"\")\n );\n\n break;\n\n case \"inline\":\n if ($(slide.src).length) {\n self.setContent(slide, $(slide.src));\n } else {\n self.setError(slide);\n }\n\n break;\n\n case \"ajax\":\n self.showLoading(slide);\n\n ajaxLoad = $.ajax(\n $.extend({}, slide.opts.ajax.settings, {\n url: slide.src,\n success: function (data, textStatus) {\n if (textStatus === \"success\") {\n self.setContent(slide, data);\n }\n },\n error: function (jqXHR, textStatus) {\n if (jqXHR && textStatus !== \"abort\") {\n self.setError(slide);\n }\n }\n })\n );\n\n $slide.one(\"onReset\", function () {\n ajaxLoad.abort();\n });\n\n break;\n\n default:\n self.setError(slide);\n\n break;\n }\n\n return true;\n },\n\n // Use thumbnail image, if possible\n // ================================\n\n setImage: function (slide) {\n var self = this,\n ghost;\n\n // Check if need to show loading icon\n setTimeout(function () {\n var $img = slide.$image;\n\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\n self.showLoading(slide);\n }\n }, 50);\n\n //Check if image has srcset\n self.checkSrcset(slide);\n\n // This will be wrapper containing both ghost and actual image\n slide.$content = $('
')\n .addClass(\"fancybox-is-hidden\")\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\n\n // If we have a thumbnail, we can display it while actual image is loading\n // Users will not stare at black screen and actual image will appear gradually\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\n slide.width = slide.opts.width;\n slide.height = slide.opts.height;\n\n ghost = document.createElement(\"img\");\n\n ghost.onerror = function () {\n $(this).remove();\n\n slide.$ghost = null;\n };\n\n ghost.onload = function () {\n self.afterLoad(slide);\n };\n\n slide.$ghost = $(ghost)\n .addClass(\"fancybox-image\")\n .appendTo(slide.$content)\n .attr(\"src\", slide.thumb);\n }\n\n // Start loading actual image\n self.setBigImage(slide);\n },\n\n // Check if image has srcset and get the source\n // ============================================\n checkSrcset: function (slide) {\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\n found,\n temp,\n pxRatio,\n windowWidth;\n\n // If we have \"srcset\", then we need to find first matching \"src\" value.\n // This is necessary, because when you set an src attribute, the browser will preload the image\n // before any javascript or even CSS is applied.\n if (srcset) {\n pxRatio = window.devicePixelRatio || 1;\n windowWidth = window.innerWidth * pxRatio;\n\n temp = srcset.split(\",\").map(function (el) {\n var ret = {};\n\n el.trim()\n .split(/\\s+/)\n .forEach(function (el, i) {\n var value = parseInt(el.substring(0, el.length - 1), 10);\n\n if (i === 0) {\n return (ret.url = el);\n }\n\n if (value) {\n ret.value = value;\n ret.postfix = el[el.length - 1];\n }\n });\n\n return ret;\n });\n\n // Sort by value\n temp.sort(function (a, b) {\n return a.value - b.value;\n });\n\n // Ok, now we have an array of all srcset values\n for (var j = 0; j < temp.length; j++) {\n var el = temp[j];\n\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\n found = el;\n break;\n }\n }\n\n // If not found, take the last one\n if (!found && temp.length) {\n found = temp[temp.length - 1];\n }\n\n if (found) {\n slide.src = found.url;\n\n // If we have default width/height values, we can calculate height for matching source\n if (slide.width && slide.height && found.postfix == \"w\") {\n slide.height = (slide.width / slide.height) * found.value;\n slide.width = found.value;\n }\n\n slide.opts.srcset = srcset;\n }\n }\n },\n\n // Create full-size image\n // ======================\n\n setBigImage: function (slide) {\n var self = this,\n img = document.createElement(\"img\"),\n $img = $(img);\n\n slide.$image = $img\n .one(\"error\", function () {\n self.setError(slide);\n })\n .one(\"load\", function () {\n var sizes;\n\n if (!slide.$ghost) {\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\n\n self.afterLoad(slide);\n }\n\n if (self.isClosing) {\n return;\n }\n\n if (slide.opts.srcset) {\n sizes = slide.opts.sizes;\n\n if (!sizes || sizes === \"auto\") {\n sizes =\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\n \"vw\";\n }\n\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\n }\n\n // Hide temporary image after some delay\n if (slide.$ghost) {\n setTimeout(function () {\n if (slide.$ghost && !self.isClosing) {\n slide.$ghost.hide();\n }\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\n }\n\n self.hideLoading(slide);\n })\n .addClass(\"fancybox-image\")\n .attr(\"src\", slide.src)\n .appendTo(slide.$content);\n\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\n $img.trigger(\"load\");\n } else if (img.error) {\n $img.trigger(\"error\");\n }\n },\n\n // Computes the slide size from image size and maxWidth/maxHeight\n // ==============================================================\n\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\n var maxWidth = parseInt(slide.opts.width, 10),\n maxHeight = parseInt(slide.opts.height, 10);\n\n // Sets the default values from the image\n slide.width = imgWidth;\n slide.height = imgHeight;\n\n if (maxWidth > 0) {\n slide.width = maxWidth;\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\n }\n\n if (maxHeight > 0) {\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\n slide.height = maxHeight;\n }\n },\n\n // Create iframe wrapper, iframe and bindings\n // ==========================================\n\n setIframe: function (slide) {\n var self = this,\n opts = slide.opts.iframe,\n $slide = slide.$slide,\n $iframe;\n\n slide.$content = $('
')\n .css(opts.css)\n .appendTo($slide);\n\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\n .attr(opts.attr)\n .appendTo(slide.$content);\n\n if (opts.preload) {\n self.showLoading(slide);\n\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\n // (due to browser security policy)\n\n $iframe.on(\"load.fb error.fb\", function (e) {\n this.isReady = 1;\n\n slide.$slide.trigger(\"refresh\");\n\n self.afterLoad(slide);\n });\n\n // Recalculate iframe content size\n // ===============================\n\n $slide.on(\"refresh.fb\", function () {\n var $content = slide.$content,\n frameWidth = opts.css.width,\n frameHeight = opts.css.height,\n $contents,\n $body;\n\n if ($iframe[0].isReady !== 1) {\n return;\n }\n\n try {\n $contents = $iframe.contents();\n $body = $contents.find(\"body\");\n } catch (ignore) {}\n\n // Calculate content dimensions, if it is accessible\n if ($body && $body.length && $body.children().length) {\n // Avoid scrolling to top (if multiple instances)\n $slide.css(\"overflow\", \"visible\");\n\n $content.css({\n width: \"100%\",\n \"max-width\": \"100%\",\n height: \"9999px\"\n });\n\n if (frameWidth === undefined) {\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\n }\n\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\n\n if (frameHeight === undefined) {\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\n }\n\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\n\n $slide.css(\"overflow\", \"auto\");\n }\n\n $content.removeClass(\"fancybox-is-hidden\");\n });\n } else {\n self.afterLoad(slide);\n }\n\n $iframe.attr(\"src\", slide.src);\n\n // Remove iframe if closing or changing gallery item\n $slide.one(\"onReset\", function () {\n // This helps IE not to throw errors when closing\n try {\n $(this)\n .find(\"iframe\")\n .hide()\n .unbind()\n .attr(\"src\", \"//about:blank\");\n } catch (ignore) {}\n\n $(this)\n .off(\"refresh.fb\")\n .empty();\n\n slide.isLoaded = false;\n slide.isRevealed = false;\n });\n },\n\n // Wrap and append content to the slide\n // ======================================\n\n setContent: function (slide, content) {\n var self = this;\n\n if (self.isClosing) {\n return;\n }\n\n self.hideLoading(slide);\n\n if (slide.$content) {\n $.fancybox.stop(slide.$content);\n }\n\n slide.$slide.empty();\n\n // If content is a jQuery object, then it will be moved to the slide.\n // The placeholder is created so we will know where to put it back.\n if (isQuery(content) && content.parent().length) {\n // Make sure content is not already moved to fancyBox\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\n }\n\n // Create temporary element marking original place of the content\n slide.$placeholder = $(\"
\")\n .hide()\n .insertAfter(content);\n\n // Make sure content is visible\n content.css(\"display\", \"inline-block\");\n } else if (!slide.hasError) {\n // If content is just a plain text, try to convert it to html\n if ($.type(content) === \"string\") {\n content = $(\"
\")\n .append($.trim(content))\n .contents();\n }\n\n // If \"filter\" option is provided, then filter content\n if (slide.opts.filter) {\n content = $(\"
\")\n .html(content)\n .find(slide.opts.filter);\n }\n }\n\n slide.$slide.one(\"onReset\", function () {\n // Pause all html5 video/audio\n $(this)\n .find(\"video,audio\")\n .trigger(\"pause\");\n\n // Put content back\n if (slide.$placeholder) {\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\n\n slide.$placeholder = null;\n }\n\n // Remove custom close button\n if (slide.$smallBtn) {\n slide.$smallBtn.remove();\n\n slide.$smallBtn = null;\n }\n\n // Remove content and mark slide as not loaded\n if (!slide.hasError) {\n $(this).empty();\n\n slide.isLoaded = false;\n slide.isRevealed = false;\n }\n });\n\n $(content).appendTo(slide.$slide);\n\n if ($(content).is(\"video,audio\")) {\n $(content).addClass(\"fancybox-video\");\n\n $(content).wrap(\"
\");\n\n slide.contentType = \"video\";\n\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\n }\n\n slide.$content = slide.$slide\n .children()\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\n .first();\n\n slide.$content.siblings().hide();\n\n // Re-check if there is a valid content\n // (in some cases, ajax response can contain various elements or plain text)\n if (!slide.$content.length) {\n slide.$content = slide.$slide\n .wrapInner(\"
\")\n .children()\n .first();\n }\n\n slide.$content.addClass(\"fancybox-content\");\n\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n self.afterLoad(slide);\n },\n\n // Display error message\n // =====================\n\n setError: function (slide) {\n slide.hasError = true;\n\n slide.$slide\n .trigger(\"onReset\")\n .removeClass(\"fancybox-slide--\" + slide.contentType)\n .addClass(\"fancybox-slide--error\");\n\n slide.contentType = \"html\";\n\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\n\n if (slide.pos === this.currPos) {\n this.isAnimating = false;\n }\n },\n\n // Show loading icon inside the slide\n // ==================================\n\n showLoading: function (slide) {\n var self = this;\n\n slide = slide || self.current;\n\n if (slide && !slide.$spinner) {\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\n .appendTo(slide.$slide)\n .hide()\n .fadeIn(\"fast\");\n }\n },\n\n // Remove loading icon from the slide\n // ==================================\n\n hideLoading: function (slide) {\n var self = this;\n\n slide = slide || self.current;\n\n if (slide && slide.$spinner) {\n slide.$spinner.stop().remove();\n\n delete slide.$spinner;\n }\n },\n\n // Adjustments after slide content has been loaded\n // ===============================================\n\n afterLoad: function (slide) {\n var self = this;\n\n if (self.isClosing) {\n return;\n }\n\n slide.isLoading = false;\n slide.isLoaded = true;\n\n self.trigger(\"afterLoad\", slide);\n\n self.hideLoading(slide);\n\n // Add small close button\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\n }\n\n // Disable right click\n if (slide.opts.protect && slide.$content && !slide.hasError) {\n slide.$content.on(\"contextmenu.fb\", function (e) {\n if (e.button == 2) {\n e.preventDefault();\n }\n\n return true;\n });\n\n // Add fake element on top of the image\n // This makes a bit harder for user to select image\n if (slide.type === \"image\") {\n $('
').appendTo(slide.$content);\n }\n }\n\n self.adjustCaption(slide);\n\n self.adjustLayout(slide);\n\n if (slide.pos === self.currPos) {\n self.updateCursor();\n }\n\n self.revealContent(slide);\n },\n\n // Prevent caption overlap,\n // fix css inconsistency across browsers\n // =====================================\n\n adjustCaption: function (slide) {\n var self = this,\n current = slide || self.current,\n caption = current.opts.caption,\n preventOverlap = current.opts.preventCaptionOverlap,\n $caption = self.$refs.caption,\n $clone,\n captionH = false;\n\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\n\n if (preventOverlap && caption && caption.length) {\n if (current.pos !== self.currPos) {\n $clone = $caption.clone().appendTo($caption.parent());\n\n $clone\n .children()\n .eq(0)\n .empty()\n .html(caption);\n\n captionH = $clone.outerHeight(true);\n\n $clone.empty().remove();\n } else if (self.$caption) {\n captionH = self.$caption.outerHeight(true);\n }\n\n current.$slide.css(\"padding-bottom\", captionH || \"\");\n }\n },\n\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\n // ====================================================================================\n\n adjustLayout: function (slide) {\n var self = this,\n current = slide || self.current,\n scrollHeight,\n marginBottom,\n inlinePadding,\n actualPadding;\n\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\n current.$content.css(\"margin-bottom\", \"\");\n\n // If we would always set margin-bottom for the content,\n // then it would potentially break vertical align\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\n actualPadding = current.$slide.css(\"padding-bottom\");\n\n if (parseFloat(actualPadding) > 0) {\n scrollHeight = current.$slide[0].scrollHeight;\n\n current.$slide.css(\"padding-bottom\", 0);\n\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\n marginBottom = actualPadding;\n }\n\n current.$slide.css(\"padding-bottom\", inlinePadding);\n }\n }\n\n current.$content.css(\"margin-bottom\", marginBottom);\n }\n },\n\n // Make content visible\n // This method is called right after content has been loaded or\n // user navigates gallery and transition should start\n // ============================================================\n\n revealContent: function (slide) {\n var self = this,\n $slide = slide.$slide,\n end = false,\n start = false,\n isMoved = self.isMoved(slide),\n isRevealed = slide.isRevealed,\n effect,\n effectClassName,\n duration,\n opacity;\n\n slide.isRevealed = true;\n\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\n\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\n\n if (isMoved || slide.pos !== self.currPos || !duration) {\n effect = false;\n }\n\n // Check if can zoom\n if (effect === \"zoom\") {\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\n end = self.getFitPos(slide);\n } else {\n effect = \"fade\";\n }\n }\n\n // Zoom animation\n // ==============\n if (effect === \"zoom\") {\n self.isAnimating = true;\n\n end.scaleX = end.width / start.width;\n end.scaleY = end.height / start.height;\n\n // Check if we need to animate opacity\n opacity = slide.opts.zoomOpacity;\n\n if (opacity == \"auto\") {\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\n }\n\n if (opacity) {\n start.opacity = 0.1;\n end.opacity = 1;\n }\n\n // Draw image at start position\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\n\n forceRedraw(slide.$content);\n\n // Start animation\n $.fancybox.animate(slide.$content, end, duration, function () {\n self.isAnimating = false;\n\n self.complete();\n });\n\n return;\n }\n\n self.updateSlide(slide);\n\n // Simply show content if no effect\n // ================================\n if (!effect) {\n slide.$content.removeClass(\"fancybox-is-hidden\");\n\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\n slide.$content.hide().fadeIn(\"fast\");\n }\n\n if (slide.pos === self.currPos) {\n self.complete();\n }\n\n return;\n }\n\n // Prepare for CSS transiton\n // =========================\n $.fancybox.stop($slide);\n\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\n\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\n\n slide.$content.removeClass(\"fancybox-is-hidden\");\n\n // Force reflow\n forceRedraw($slide);\n\n if (slide.type !== \"image\") {\n slide.$content.hide().show(0);\n }\n\n $.fancybox.animate(\n $slide,\n \"fancybox-slide--current\",\n duration,\n function () {\n $slide.removeClass(effectClassName).css({\n transform: \"\",\n opacity: \"\"\n });\n\n if (slide.pos === self.currPos) {\n self.complete();\n }\n },\n true\n );\n },\n\n // Check if we can and have to zoom from thumbnail\n //================================================\n\n getThumbPos: function (slide) {\n var rez = false,\n $thumb = slide.$thumb,\n thumbPos,\n btw,\n brw,\n bbw,\n blw;\n\n if (!$thumb || !inViewport($thumb[0])) {\n return false;\n }\n\n thumbPos = $.fancybox.getTranslate($thumb);\n\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\n\n rez = {\n top: thumbPos.top + btw,\n left: thumbPos.left + blw,\n width: thumbPos.width - brw - blw,\n height: thumbPos.height - btw - bbw,\n scaleX: 1,\n scaleY: 1\n };\n\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\n },\n\n // Final adjustments after current gallery item is moved to position\n // and it`s content is loaded\n // ==================================================================\n\n complete: function () {\n var self = this,\n current = self.current,\n slides = {},\n $el;\n\n if (self.isMoved() || !current.isLoaded) {\n return;\n }\n\n if (!current.isComplete) {\n current.isComplete = true;\n\n current.$slide.siblings().trigger(\"onReset\");\n\n self.preload(\"inline\");\n\n // Trigger any CSS transiton inside the slide\n forceRedraw(current.$slide);\n\n current.$slide.addClass(\"fancybox-slide--complete\");\n\n // Remove unnecessary slides\n $.each(self.slides, function (key, slide) {\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\n slides[slide.pos] = slide;\n } else if (slide) {\n $.fancybox.stop(slide.$slide);\n\n slide.$slide.off().remove();\n }\n });\n\n self.slides = slides;\n }\n\n self.isAnimating = false;\n\n self.updateCursor();\n\n self.trigger(\"afterShow\");\n\n // Autoplay first html5 video/audio\n if (!!current.opts.video.autoStart) {\n current.$slide\n .find(\"video,audio\")\n .filter(\":visible:first\")\n .trigger(\"play\")\n .one(\"ended\", function () {\n if (Document.exitFullscreen) {\n Document.exitFullscreen();\n } else if (this.webkitExitFullscreen) {\n this.webkitExitFullscreen();\n }\n\n self.next();\n });\n }\n\n // Try to focus on the first focusable element\n if (current.opts.autoFocus && current.contentType === \"html\") {\n // Look for the first input with autofocus attribute\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\n\n if ($el.length) {\n $el.trigger(\"focus\");\n } else {\n self.focus(null, true);\n }\n }\n\n // Avoid jumping\n current.$slide.scrollTop(0).scrollLeft(0);\n },\n\n // Preload next and previous slides\n // ================================\n\n preload: function (type) {\n var self = this,\n prev,\n next;\n\n if (self.group.length < 2) {\n return;\n }\n\n next = self.slides[self.currPos + 1];\n prev = self.slides[self.currPos - 1];\n\n if (prev && prev.type === type) {\n self.loadSlide(prev);\n }\n\n if (next && next.type === type) {\n self.loadSlide(next);\n }\n },\n\n // Try to find and focus on the first focusable element\n // ====================================================\n\n focus: function (e, firstRun) {\n var self = this,\n focusableStr = [\n \"a[href]\",\n \"area[href]\",\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n \"select:not([disabled]):not([aria-hidden])\",\n \"textarea:not([disabled]):not([aria-hidden])\",\n \"button:not([disabled]):not([aria-hidden])\",\n \"iframe\",\n \"object\",\n \"embed\",\n \"video\",\n \"audio\",\n \"[contenteditable]\",\n '[tabindex]:not([tabindex^=\"-\"])'\n ].join(\",\"),\n focusableItems,\n focusedItemIndex;\n\n if (self.isClosing) {\n return;\n }\n\n if (e || !self.current || !self.current.isComplete) {\n // Focus on any element inside fancybox\n focusableItems = self.$refs.container.find(\"*:visible\");\n } else {\n // Focus inside current slide\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\n }\n\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\n });\n\n if (focusableItems.length) {\n focusedItemIndex = focusableItems.index(document.activeElement);\n\n if (e && e.shiftKey) {\n // Back tab\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\n e.preventDefault();\n\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\n }\n } else {\n // Outside or Forward tab\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\n if (e) {\n e.preventDefault();\n }\n\n focusableItems.eq(0).trigger(\"focus\");\n }\n }\n } else {\n self.$refs.container.trigger(\"focus\");\n }\n },\n\n // Activates current instance - brings container to the front and enables keyboard,\n // notifies other instances about deactivating\n // =================================================================================\n\n activate: function () {\n var self = this;\n\n // Deactivate all instances\n $(\".fancybox-container\").each(function () {\n var instance = $(this).data(\"FancyBox\");\n\n // Skip self and closing instances\n if (instance && instance.id !== self.id && !instance.isClosing) {\n instance.trigger(\"onDeactivate\");\n\n instance.removeEvents();\n\n instance.isVisible = false;\n }\n });\n\n self.isVisible = true;\n\n if (self.current || self.isIdle) {\n self.update();\n\n self.updateControls();\n }\n\n self.trigger(\"onActivate\");\n\n self.addEvents();\n },\n\n // Start closing procedure\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\n // =================================================================================\n\n close: function (e, d) {\n var self = this,\n current = self.current,\n effect,\n duration,\n $content,\n domRect,\n opacity,\n start,\n end;\n\n var done = function () {\n self.cleanUp(e);\n };\n\n if (self.isClosing) {\n return false;\n }\n\n self.isClosing = true;\n\n // If beforeClose callback prevents closing, make sure content is centered\n if (self.trigger(\"beforeClose\", e) === false) {\n self.isClosing = false;\n\n requestAFrame(function () {\n self.update();\n });\n\n return false;\n }\n\n // Remove all events\n // If there are multiple instances, they will be set again by \"activate\" method\n self.removeEvents();\n\n $content = current.$content;\n effect = current.opts.animationEffect;\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\n\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\n\n if (e !== true) {\n $.fancybox.stop(current.$slide);\n } else {\n effect = false;\n }\n\n // Remove other slides\n current.$slide\n .siblings()\n .trigger(\"onReset\")\n .remove();\n\n // Trigger animations\n if (duration) {\n self.$refs.container\n .removeClass(\"fancybox-is-open\")\n .addClass(\"fancybox-is-closing\")\n .css(\"transition-duration\", duration + \"ms\");\n }\n\n // Clean up\n self.hideLoading(current);\n\n self.hideControls(true);\n\n self.updateCursor();\n\n // Check if possible to zoom-out\n if (\n effect === \"zoom\" &&\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\n ) {\n effect = \"fade\";\n }\n\n if (effect === \"zoom\") {\n $.fancybox.stop($content);\n\n domRect = $.fancybox.getTranslate($content);\n\n start = {\n top: domRect.top,\n left: domRect.left,\n scaleX: domRect.width / end.width,\n scaleY: domRect.height / end.height,\n width: end.width,\n height: end.height\n };\n\n // Check if we need to animate opacity\n opacity = current.opts.zoomOpacity;\n\n if (opacity == \"auto\") {\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\n }\n\n if (opacity) {\n end.opacity = 0;\n }\n\n $.fancybox.setTranslate($content, start);\n\n forceRedraw($content);\n\n $.fancybox.animate($content, end, duration, done);\n\n return true;\n }\n\n if (effect && duration) {\n $.fancybox.animate(\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\n \"fancybox-animated fancybox-fx-\" + effect,\n duration,\n done\n );\n } else {\n // If skip animation\n if (e === true) {\n setTimeout(done, duration);\n } else {\n done();\n }\n }\n\n return true;\n },\n\n // Final adjustments after removing the instance\n // =============================================\n\n cleanUp: function (e) {\n var self = this,\n instance,\n $focus = self.current.opts.$orig,\n x,\n y;\n\n self.current.$slide.trigger(\"onReset\");\n\n self.$refs.container.empty().remove();\n\n self.trigger(\"afterClose\", e);\n\n // Place back focus\n if (!!self.current.opts.backFocus) {\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\n $focus = self.$trigger;\n }\n\n if ($focus && $focus.length) {\n x = window.scrollX;\n y = window.scrollY;\n\n $focus.trigger(\"focus\");\n\n $(\"html, body\")\n .scrollTop(y)\n .scrollLeft(x);\n }\n }\n\n self.current = null;\n\n // Check if there are other instances\n instance = $.fancybox.getInstance();\n\n if (instance) {\n instance.activate();\n } else {\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\n\n $(\"#fancybox-style-noscroll\").remove();\n }\n },\n\n // Call callback and trigger an event\n // ==================================\n\n trigger: function (name, slide) {\n var args = Array.prototype.slice.call(arguments, 1),\n self = this,\n obj = slide && slide.opts ? slide : self.current,\n rez;\n\n if (obj) {\n args.unshift(obj);\n } else {\n obj = self;\n }\n\n args.unshift(self);\n\n if ($.isFunction(obj.opts[name])) {\n rez = obj.opts[name].apply(obj, args);\n }\n\n if (rez === false) {\n return rez;\n }\n\n if (name === \"afterClose\" || !self.$refs) {\n $D.trigger(name + \".fb\", args);\n } else {\n self.$refs.container.trigger(name + \".fb\", args);\n }\n },\n\n // Update infobar values, navigation button states and reveal caption\n // ==================================================================\n\n updateControls: function () {\n var self = this,\n current = self.current,\n index = current.index,\n $container = self.$refs.container,\n $caption = self.$refs.caption,\n caption = current.opts.caption;\n\n // Recalculate content dimensions\n current.$slide.trigger(\"refresh\");\n\n // Set caption\n if (caption && caption.length) {\n self.$caption = $caption;\n\n $caption\n .children()\n .eq(0)\n .html(caption);\n } else {\n self.$caption = null;\n }\n\n if (!self.hasHiddenControls && !self.isIdle) {\n self.showControls();\n }\n\n // Update info and navigation elements\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\n $container.find(\"[data-fancybox-index]\").html(index + 1);\n\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\n\n if (current.type === \"image\") {\n // Re-enable buttons; update download button source\n $container\n .find(\"[data-fancybox-zoom]\")\n .show()\n .end()\n .find(\"[data-fancybox-download]\")\n .attr(\"href\", current.opts.image.src || current.src)\n .show();\n } else if (current.opts.toolbar) {\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\n }\n\n // Make sure focus is not on disabled button/element\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\n self.$refs.container.trigger(\"focus\");\n }\n },\n\n // Hide toolbar and caption\n // ========================\n\n hideControls: function (andCaption) {\n var self = this,\n arr = [\"infobar\", \"toolbar\", \"nav\"];\n\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\n arr.push(\"caption\");\n }\n\n this.$refs.container.removeClass(\n arr\n .map(function (i) {\n return \"fancybox-show-\" + i;\n })\n .join(\" \")\n );\n\n this.hasHiddenControls = true;\n },\n\n showControls: function () {\n var self = this,\n opts = self.current ? self.current.opts : self.opts,\n $container = self.$refs.container;\n\n self.hasHiddenControls = false;\n self.idleSecondsCounter = 0;\n\n $container\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\n },\n\n // Toggle toolbar and caption\n // ==========================\n\n toggleControls: function () {\n if (this.hasHiddenControls) {\n this.showControls();\n } else {\n this.hideControls();\n }\n }\n });\n\n $.fancybox = {\n version: \"3.5.7\",\n defaults: defaults,\n\n // Get current instance and execute a command.\n //\n // Examples of usage:\n //\n // $instance = $.fancybox.getInstance();\n // $.fancybox.getInstance().jumpTo( 1 );\n // $.fancybox.getInstance( 'jumpTo', 1 );\n // $.fancybox.getInstance( function() {\n // console.info( this.currIndex );\n // });\n // ======================================================\n\n getInstance: function (command) {\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\n args = Array.prototype.slice.call(arguments, 1);\n\n if (instance instanceof FancyBox) {\n if ($.type(command) === \"string\") {\n instance[command].apply(instance, args);\n } else if ($.type(command) === \"function\") {\n command.apply(instance, args);\n }\n\n return instance;\n }\n\n return false;\n },\n\n // Create new instance\n // ===================\n\n open: function (items, opts, index) {\n return new FancyBox(items, opts, index);\n },\n\n // Close current or all instances\n // ==============================\n\n close: function (all) {\n var instance = this.getInstance();\n\n if (instance) {\n instance.close();\n\n // Try to find and close next instance\n if (all === true) {\n this.close(all);\n }\n }\n },\n\n // Close all instances and unbind all events\n // =========================================\n\n destroy: function () {\n this.close(true);\n\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\n },\n\n // Try to detect mobile devices\n // ============================\n\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n\n // Detect if 'translate3d' support is available\n // ============================================\n\n use3d: (function () {\n var div = document.createElement(\"div\");\n\n return (\n window.getComputedStyle &&\n window.getComputedStyle(div) &&\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\n !(document.documentMode && document.documentMode < 11)\n );\n })(),\n\n // Helper function to get current visual state of an element\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\n // =====================================================================\n\n getTranslate: function ($el) {\n var domRect;\n\n if (!$el || !$el.length) {\n return false;\n }\n\n domRect = $el[0].getBoundingClientRect();\n\n return {\n top: domRect.top || 0,\n left: domRect.left || 0,\n width: domRect.width,\n height: domRect.height,\n opacity: parseFloat($el.css(\"opacity\"))\n };\n },\n\n // Shortcut for setting \"translate3d\" properties for element\n // Can set be used to set opacity, too\n // ========================================================\n\n setTranslate: function ($el, props) {\n var str = \"\",\n css = {};\n\n if (!$el || !props) {\n return;\n }\n\n if (props.left !== undefined || props.top !== undefined) {\n str =\n (props.left === undefined ? $el.position().left : props.left) +\n \"px, \" +\n (props.top === undefined ? $el.position().top : props.top) +\n \"px\";\n\n if (this.use3d) {\n str = \"translate3d(\" + str + \", 0px)\";\n } else {\n str = \"translate(\" + str + \")\";\n }\n }\n\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\n } else if (props.scaleX !== undefined) {\n str += \" scaleX(\" + props.scaleX + \")\";\n }\n\n if (str.length) {\n css.transform = str;\n }\n\n if (props.opacity !== undefined) {\n css.opacity = props.opacity;\n }\n\n if (props.width !== undefined) {\n css.width = props.width;\n }\n\n if (props.height !== undefined) {\n css.height = props.height;\n }\n\n return $el.css(css);\n },\n\n // Simple CSS transition handler\n // =============================\n\n animate: function ($el, to, duration, callback, leaveAnimationName) {\n var self = this,\n from;\n\n if ($.isFunction(duration)) {\n callback = duration;\n duration = null;\n }\n\n self.stop($el);\n\n from = self.getTranslate($el);\n\n $el.on(transitionEnd, function (e) {\n // Skip events from child elements and z-index change\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\n return;\n }\n\n self.stop($el);\n\n if ($.isNumeric(duration)) {\n $el.css(\"transition-duration\", \"\");\n }\n\n if ($.isPlainObject(to)) {\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\n self.setTranslate($el, {\n top: to.top,\n left: to.left,\n width: from.width * to.scaleX,\n height: from.height * to.scaleY,\n scaleX: 1,\n scaleY: 1\n });\n }\n } else if (leaveAnimationName !== true) {\n $el.removeClass(to);\n }\n\n if ($.isFunction(callback)) {\n callback(e);\n }\n });\n\n if ($.isNumeric(duration)) {\n $el.css(\"transition-duration\", duration + \"ms\");\n }\n\n // Start animation by changing CSS properties or class name\n if ($.isPlainObject(to)) {\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\n delete to.width;\n delete to.height;\n\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\n $el.parent().addClass(\"fancybox-is-scaling\");\n }\n }\n\n $.fancybox.setTranslate($el, to);\n } else {\n $el.addClass(to);\n }\n\n // Make sure that `transitionend` callback gets fired\n $el.data(\n \"timer\",\n setTimeout(function () {\n $el.trigger(transitionEnd);\n }, duration + 33)\n );\n },\n\n stop: function ($el, callCallback) {\n if ($el && $el.length) {\n clearTimeout($el.data(\"timer\"));\n\n if (callCallback) {\n $el.trigger(transitionEnd);\n }\n\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\n\n $el.parent().removeClass(\"fancybox-is-scaling\");\n }\n }\n };\n\n // Default click handler for \"fancyboxed\" links\n // ============================================\n\n function _run(e, opts) {\n var items = [],\n index = 0,\n $target,\n value,\n instance;\n\n // Avoid opening multiple times\n if (e && e.isDefaultPrevented()) {\n return;\n }\n\n e.preventDefault();\n\n opts = opts || {};\n\n if (e && e.data) {\n opts = mergeOpts(e.data.options, opts);\n }\n\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\n instance = $.fancybox.getInstance();\n\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\n return;\n }\n\n if (opts.selector) {\n items = $(opts.selector);\n } else {\n // Get all related items and find index for clicked one\n value = $target.attr(\"data-fancybox\") || \"\";\n\n if (value) {\n items = e.data ? e.data.items : [];\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\n } else {\n items = [$target];\n }\n }\n\n index = $(items).index($target);\n\n // Sometimes current item can not be found\n if (index < 0) {\n index = 0;\n }\n\n instance = $.fancybox.open(items, opts, index);\n\n // Save last active element\n instance.$trigger = $target;\n }\n\n // Create a jQuery plugin\n // ======================\n\n $.fn.fancybox = function (options) {\n var selector;\n\n options = options || {};\n selector = options.selector || false;\n\n if (selector) {\n // Use body element instead of document so it executes first\n $(\"body\")\n .off(\"click.fb-start\", selector)\n .on(\"click.fb-start\", selector, {\n options: options\n }, _run);\n } else {\n this.off(\"click.fb-start\").on(\n \"click.fb-start\", {\n items: this,\n options: options\n },\n _run\n );\n }\n\n return this;\n };\n\n // Self initializing plugin for all elements having `data-fancybox` attribute\n // ==========================================================================\n\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\n\n // Enable \"trigger elements\"\n // =========================\n\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\n .eq($(this).attr(\"data-fancybox-index\") || 0)\n .trigger(\"click.fb-start\", {\n $trigger: $(this)\n });\n });\n\n // Track focus event for better accessibility styling\n // ==================================================\n (function () {\n var buttonStr = \".fancybox-button\",\n focusStr = \"fancybox-focus\",\n $pressed = null;\n\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\n switch (e.type) {\n case \"mousedown\":\n $pressed = $(this);\n break;\n case \"mouseup\":\n $pressed = null;\n break;\n case \"focusin\":\n $(buttonStr).removeClass(focusStr);\n\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\n $(this).addClass(focusStr);\n }\n break;\n case \"focusout\":\n $(buttonStr).removeClass(focusStr);\n break;\n }\n });\n })();\n})(window, document, jQuery);\n// ==========================================================================\n//\n// Media\n// Adds additional media type support\n//\n// ==========================================================================\n(function ($) {\n \"use strict\";\n\n // Object containing properties for each media type\n var defaults = {\n youtube: {\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\n params: {\n autoplay: 1,\n autohide: 1,\n fs: 1,\n rel: 0,\n hd: 1,\n wmode: \"transparent\",\n enablejsapi: 1,\n html5: 1\n },\n paramPlace: 8,\n type: \"iframe\",\n url: \"https://www.youtube-nocookie.com/embed/$4\",\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\n },\n\n vimeo: {\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\n params: {\n autoplay: 1,\n hd: 1,\n show_title: 1,\n show_byline: 1,\n show_portrait: 0,\n fullscreen: 1\n },\n paramPlace: 3,\n type: \"iframe\",\n url: \"//player.vimeo.com/video/$2\"\n },\n\n instagram: {\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\n type: \"image\",\n url: \"//$1/p/$2/media/?size=l\"\n },\n\n // Examples:\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\n gmap_place: {\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\n type: \"iframe\",\n url: function (rez) {\n return (\n \"//maps.google.\" +\n rez[2] +\n \"/?ll=\" +\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\n \"&output=\" +\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\n );\n }\n },\n\n // Examples:\n // https://www.google.com/maps/search/Empire+State+Building/\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\n gmap_search: {\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\n type: \"iframe\",\n url: function (rez) {\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\n }\n }\n };\n\n // Formats matching url to final form\n var format = function (url, rez, params) {\n if (!url) {\n return;\n }\n\n params = params || \"\";\n\n if ($.type(params) === \"object\") {\n params = $.param(params, true);\n }\n\n $.each(rez, function (key, value) {\n url = url.replace(\"$\" + key, value || \"\");\n });\n\n if (params.length) {\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\n }\n\n return url;\n };\n\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\n var url = item.src || \"\",\n type = false,\n media,\n thumb,\n rez,\n params,\n urlParams,\n paramObj,\n provider;\n\n media = $.extend(true, {}, defaults, item.opts.media);\n\n // Look for any matching media type\n $.each(media, function (providerName, providerOpts) {\n rez = url.match(providerOpts.matcher);\n\n if (!rez) {\n return;\n }\n\n type = providerOpts.type;\n provider = providerName;\n paramObj = {};\n\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\n urlParams = rez[providerOpts.paramPlace];\n\n if (urlParams[0] == \"?\") {\n urlParams = urlParams.substring(1);\n }\n\n urlParams = urlParams.split(\"&\");\n\n for (var m = 0; m < urlParams.length; ++m) {\n var p = urlParams[m].split(\"=\", 2);\n\n if (p.length == 2) {\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\n }\n }\n }\n\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\n\n url =\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\n\n thumb =\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\n\n if (providerName === \"youtube\") {\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\n });\n } else if (providerName === \"vimeo\") {\n url = url.replace(\"&%23\", \"#\");\n }\n\n return false;\n });\n\n // If it is found, then change content type and update the url\n\n if (type) {\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\n item.opts.thumb = thumb;\n }\n\n if (type === \"iframe\") {\n item.opts = $.extend(true, item.opts, {\n iframe: {\n preload: false,\n attr: {\n scrolling: \"no\"\n }\n }\n });\n }\n\n $.extend(item, {\n type: type,\n src: url,\n origSrc: item.src,\n contentSource: provider,\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\n });\n } else if (url) {\n item.type = item.opts.defaultType;\n }\n });\n\n // Load YouTube/Video API on request to detect when video finished playing\n var VideoAPILoader = {\n youtube: {\n src: \"https://www.youtube.com/iframe_api\",\n class: \"YT\",\n loading: false,\n loaded: false\n },\n\n vimeo: {\n src: \"https://player.vimeo.com/api/player.js\",\n class: \"Vimeo\",\n loading: false,\n loaded: false\n },\n\n load: function (vendor) {\n var _this = this,\n script;\n\n if (this[vendor].loaded) {\n setTimeout(function () {\n _this.done(vendor);\n });\n return;\n }\n\n if (this[vendor].loading) {\n return;\n }\n\n this[vendor].loading = true;\n\n script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = this[vendor].src;\n\n if (vendor === \"youtube\") {\n window.onYouTubeIframeAPIReady = function () {\n _this[vendor].loaded = true;\n _this.done(vendor);\n };\n } else {\n script.onload = function () {\n _this[vendor].loaded = true;\n _this.done(vendor);\n };\n }\n\n document.body.appendChild(script);\n },\n done: function (vendor) {\n var instance, $el, player;\n\n if (vendor === \"youtube\") {\n delete window.onYouTubeIframeAPIReady;\n }\n\n instance = $.fancybox.getInstance();\n\n if (instance) {\n $el = instance.current.$content.find(\"iframe\");\n\n if (vendor === \"youtube\" && YT !== undefined && YT) {\n player = new YT.Player($el.attr(\"id\"), {\n events: {\n onStateChange: function (e) {\n if (e.data == 0) {\n instance.next();\n }\n }\n }\n });\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\n player = new Vimeo.Player($el);\n\n player.on(\"ended\", function () {\n instance.next();\n });\n }\n }\n }\n };\n\n $(document).on({\n \"afterShow.fb\": function (e, instance, current) {\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\n VideoAPILoader.load(current.contentSource);\n }\n }\n });\n})(jQuery);\n// ==========================================================================\n//\n// Guestures\n// Adds touch guestures, handles click and tap events\n//\n// ==========================================================================\n(function (window, document, $) {\n \"use strict\";\n\n var requestAFrame = (function () {\n return (\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n // if all else fails, use setTimeout\n function (callback) {\n return window.setTimeout(callback, 1000 / 60);\n }\n );\n })();\n\n var cancelAFrame = (function () {\n return (\n window.cancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.oCancelAnimationFrame ||\n function (id) {\n window.clearTimeout(id);\n }\n );\n })();\n\n var getPointerXY = function (e) {\n var result = [];\n\n e = e.originalEvent || e || window.e;\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\n\n for (var key in e) {\n if (e[key].pageX) {\n result.push({\n x: e[key].pageX,\n y: e[key].pageY\n });\n } else if (e[key].clientX) {\n result.push({\n x: e[key].clientX,\n y: e[key].clientY\n });\n }\n }\n\n return result;\n };\n\n var distance = function (point2, point1, what) {\n if (!point1 || !point2) {\n return 0;\n }\n\n if (what === \"x\") {\n return point2.x - point1.x;\n } else if (what === \"y\") {\n return point2.y - point1.y;\n }\n\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n };\n\n var isClickable = function ($el) {\n if (\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\n $.isFunction($el.get(0).onclick) ||\n $el.data(\"selectable\")\n ) {\n return true;\n }\n\n // Check for attributes like data-fancybox-next or data-fancybox-close\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\n return true;\n }\n }\n\n return false;\n };\n\n var hasScrollbars = function (el) {\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\n\n return vertical || horizontal;\n };\n\n var isScrollable = function ($el) {\n var rez = false;\n\n while (true) {\n rez = hasScrollbars($el.get(0));\n\n if (rez) {\n break;\n }\n\n $el = $el.parent();\n\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\n break;\n }\n }\n\n return rez;\n };\n\n var Guestures = function (instance) {\n var self = this;\n\n self.instance = instance;\n\n self.$bg = instance.$refs.bg;\n self.$stage = instance.$refs.stage;\n self.$container = instance.$refs.container;\n\n self.destroy();\n\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\n };\n\n Guestures.prototype.destroy = function () {\n var self = this;\n\n self.$container.off(\".fb.touch\");\n\n $(document).off(\".fb.touch\");\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n self.requestId = null;\n }\n\n if (self.tapped) {\n clearTimeout(self.tapped);\n self.tapped = null;\n }\n };\n\n Guestures.prototype.ontouchstart = function (e) {\n var self = this,\n $target = $(e.target),\n instance = self.instance,\n current = instance.current,\n $slide = current.$slide,\n $content = current.$content,\n isTouchDevice = e.type == \"touchstart\";\n\n // Do not respond to both (touch and mouse) events\n if (isTouchDevice) {\n self.$container.off(\"mousedown.fb.touch\");\n }\n\n // Ignore right click\n if (e.originalEvent && e.originalEvent.button == 2) {\n return;\n }\n\n // Ignore taping on links, buttons, input elements\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\n return;\n }\n // Ignore clicks on the scrollbar\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\n return;\n }\n\n // Ignore clicks while zooming or closing\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\n e.stopPropagation();\n e.preventDefault();\n\n return;\n }\n\n self.realPoints = self.startPoints = getPointerXY(e);\n\n if (!self.startPoints.length) {\n return;\n }\n\n // Allow other scripts to catch touch event if \"touch\" is set to false\n if (current.touch) {\n e.stopPropagation();\n }\n\n self.startEvent = e;\n\n self.canTap = true;\n self.$target = $target;\n self.$content = $content;\n self.opts = current.opts.touch;\n\n self.isPanning = false;\n self.isSwiping = false;\n self.isZooming = false;\n self.isScrolling = false;\n self.canPan = instance.canPan();\n\n self.startTime = new Date().getTime();\n self.distanceX = self.distanceY = self.distance = 0;\n\n self.canvasWidth = Math.round($slide[0].clientWidth);\n self.canvasHeight = Math.round($slide[0].clientHeight);\n\n self.contentLastPos = null;\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\n top: 0,\n left: 0\n };\n self.sliderStartPos = $.fancybox.getTranslate($slide);\n\n // Since position will be absolute, but we need to make it relative to the stage\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n self.sliderStartPos.top -= self.stagePos.top;\n self.sliderStartPos.left -= self.stagePos.left;\n\n self.contentStartPos.top -= self.stagePos.top;\n self.contentStartPos.left -= self.stagePos.left;\n\n $(document)\n .off(\".fb.touch\")\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\n\n if ($.fancybox.isMobile) {\n document.addEventListener(\"scroll\", self.onscroll, true);\n }\n\n // Skip if clicked outside the sliding area\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\n if ($target.is(\".fancybox-image\")) {\n e.preventDefault();\n }\n\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\n return;\n }\n }\n\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\n\n // Check if element is scrollable and try to prevent default behavior (scrolling)\n if (!($.fancybox.isMobile && self.isScrollable)) {\n e.preventDefault();\n }\n\n // One finger or mouse click - swipe or pan an image\n if (self.startPoints.length === 1 || current.hasError) {\n if (self.canPan) {\n $.fancybox.stop(self.$content);\n\n self.isPanning = true;\n } else {\n self.isSwiping = true;\n }\n\n self.$container.addClass(\"fancybox-is-grabbing\");\n }\n\n // Two fingers - zoom image\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\n self.canTap = false;\n self.isSwiping = false;\n self.isPanning = false;\n\n self.isZooming = true;\n\n $.fancybox.stop(self.$content);\n\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\n\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\n\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\n }\n };\n\n Guestures.prototype.onscroll = function (e) {\n var self = this;\n\n self.isScrolling = true;\n\n document.removeEventListener(\"scroll\", self.onscroll, true);\n };\n\n Guestures.prototype.ontouchmove = function (e) {\n var self = this;\n\n // Make sure user has not released over iframe or disabled element\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\n self.ontouchend(e);\n return;\n }\n\n if (self.isScrolling) {\n self.canTap = false;\n return;\n }\n\n self.newPoints = getPointerXY(e);\n\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\n return;\n }\n\n if (!(self.isSwiping && self.isSwiping === true)) {\n e.preventDefault();\n }\n\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\n\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\n\n // Skip false ontouchmove events (Chrome)\n if (self.distance > 0) {\n if (self.isSwiping) {\n self.onSwipe(e);\n } else if (self.isPanning) {\n self.onPan();\n } else if (self.isZooming) {\n self.onZoom();\n }\n }\n };\n\n Guestures.prototype.onSwipe = function (e) {\n var self = this,\n instance = self.instance,\n swiping = self.isSwiping,\n left = self.sliderStartPos.left || 0,\n angle;\n\n // If direction is not yet determined\n if (swiping === true) {\n // We need at least 10px distance to correctly calculate an angle\n if (Math.abs(self.distance) > 10) {\n self.canTap = false;\n\n if (instance.group.length < 2 && self.opts.vertical) {\n self.isSwiping = \"y\";\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\n self.isSwiping = \"x\";\n } else {\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\n\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\n }\n\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\n self.isScrolling = true;\n\n return;\n }\n\n instance.isDragging = self.isSwiping;\n\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\n self.startPoints = self.newPoints;\n\n $.each(instance.slides, function (index, slide) {\n var slidePos, stagePos;\n\n $.fancybox.stop(slide.$slide);\n\n slidePos = $.fancybox.getTranslate(slide.$slide);\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n slide.$slide\n .css({\n transform: \"\",\n opacity: \"\",\n \"transition-duration\": \"\"\n })\n .removeClass(\"fancybox-animated\")\n .removeClass(function (index, className) {\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n });\n\n if (slide.pos === instance.current.pos) {\n self.sliderStartPos.top = slidePos.top - stagePos.top;\n self.sliderStartPos.left = slidePos.left - stagePos.left;\n }\n\n $.fancybox.setTranslate(slide.$slide, {\n top: slidePos.top - stagePos.top,\n left: slidePos.left - stagePos.left\n });\n });\n\n // Stop slideshow\n if (instance.SlideShow && instance.SlideShow.isActive) {\n instance.SlideShow.stop();\n }\n }\n\n return;\n }\n\n // Sticky edges\n if (swiping == \"x\") {\n if (\n self.distanceX > 0 &&\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\n ) {\n left = left + Math.pow(self.distanceX, 0.8);\n } else if (\n self.distanceX < 0 &&\n (self.instance.group.length < 2 ||\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\n ) {\n left = left - Math.pow(-self.distanceX, 0.8);\n } else {\n left = left + self.distanceX;\n }\n }\n\n self.sliderLastPos = {\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\n left: left\n };\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.requestId = requestAFrame(function () {\n if (self.sliderLastPos) {\n $.each(self.instance.slides, function (index, slide) {\n var pos = slide.pos - self.instance.currPos;\n\n $.fancybox.setTranslate(slide.$slide, {\n top: self.sliderLastPos.top,\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\n });\n });\n\n self.$container.addClass(\"fancybox-is-sliding\");\n }\n });\n };\n\n Guestures.prototype.onPan = function () {\n var self = this;\n\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\n self.startPoints = self.newPoints;\n return;\n }\n\n self.canTap = false;\n\n self.contentLastPos = self.limitMovement();\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n }\n\n self.requestId = requestAFrame(function () {\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\n });\n };\n\n // Make panning sticky to the edges\n Guestures.prototype.limitMovement = function () {\n var self = this;\n\n var canvasWidth = self.canvasWidth;\n var canvasHeight = self.canvasHeight;\n\n var distanceX = self.distanceX;\n var distanceY = self.distanceY;\n\n var contentStartPos = self.contentStartPos;\n\n var currentOffsetX = contentStartPos.left;\n var currentOffsetY = contentStartPos.top;\n\n var currentWidth = contentStartPos.width;\n var currentHeight = contentStartPos.height;\n\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\n\n if (currentWidth > canvasWidth) {\n newOffsetX = currentOffsetX + distanceX;\n } else {\n newOffsetX = currentOffsetX;\n }\n\n newOffsetY = currentOffsetY + distanceY;\n\n // Slow down proportionally to traveled distance\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\n\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\n\n // ->\n if (distanceX > 0 && newOffsetX > minTranslateX) {\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\n }\n\n // <-\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\n }\n\n // \\/\n if (distanceY > 0 && newOffsetY > minTranslateY) {\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\n }\n\n // /\\\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\n }\n\n return {\n top: newOffsetY,\n left: newOffsetX\n };\n };\n\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\n var self = this;\n\n var canvasWidth = self.canvasWidth;\n var canvasHeight = self.canvasHeight;\n\n if (newWidth > canvasWidth) {\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\n } else {\n // Center horizontally\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\n }\n\n if (newHeight > canvasHeight) {\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\n } else {\n // Center vertically\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\n }\n\n return {\n top: newOffsetY,\n left: newOffsetX\n };\n };\n\n Guestures.prototype.onZoom = function () {\n var self = this;\n\n // Calculate current distance between points to get pinch ratio and new width and height\n var contentStartPos = self.contentStartPos;\n\n var currentWidth = contentStartPos.width;\n var currentHeight = contentStartPos.height;\n\n var currentOffsetX = contentStartPos.left;\n var currentOffsetY = contentStartPos.top;\n\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\n\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\n\n var newWidth = Math.floor(currentWidth * pinchRatio);\n var newHeight = Math.floor(currentHeight * pinchRatio);\n\n // This is the translation due to pinch-zooming\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\n\n // Point between the two touches\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\n\n // And this is the translation due to translation of the centerpoint\n // between the two fingers\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\n\n // The new offset is the old/current one plus the total translation\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\n\n var newPos = {\n top: newOffsetY,\n left: newOffsetX,\n scaleX: pinchRatio,\n scaleY: pinchRatio\n };\n\n self.canTap = false;\n\n self.newWidth = newWidth;\n self.newHeight = newHeight;\n\n self.contentLastPos = newPos;\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n }\n\n self.requestId = requestAFrame(function () {\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\n });\n };\n\n Guestures.prototype.ontouchend = function (e) {\n var self = this;\n\n var swiping = self.isSwiping;\n var panning = self.isPanning;\n var zooming = self.isZooming;\n var scrolling = self.isScrolling;\n\n self.endPoints = getPointerXY(e);\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\n\n self.$container.removeClass(\"fancybox-is-grabbing\");\n\n $(document).off(\".fb.touch\");\n\n document.removeEventListener(\"scroll\", self.onscroll, true);\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.isSwiping = false;\n self.isPanning = false;\n self.isZooming = false;\n self.isScrolling = false;\n\n self.instance.isDragging = false;\n\n if (self.canTap) {\n return self.onTap(e);\n }\n\n self.speed = 100;\n\n // Speed in px/ms\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\n\n if (panning) {\n self.endPanning();\n } else if (zooming) {\n self.endZooming();\n } else {\n self.endSwiping(swiping, scrolling);\n }\n\n return;\n };\n\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\n var self = this,\n ret = false,\n len = self.instance.group.length,\n distanceX = Math.abs(self.distanceX),\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\n speedX = 300;\n\n self.sliderLastPos = null;\n\n // Close if swiped vertically / navigate if horizontally\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\n // Continue vertical movement\n $.fancybox.animate(\n self.instance.current.$slide, {\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\n opacity: 0\n },\n 200\n );\n ret = self.instance.close(true, 250);\n } else if (canAdvance && self.distanceX > 0) {\n ret = self.instance.previous(speedX);\n } else if (canAdvance && self.distanceX < 0) {\n ret = self.instance.next(speedX);\n }\n\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\n self.instance.centerSlide(200);\n }\n\n self.$container.removeClass(\"fancybox-is-sliding\");\n };\n\n // Limit panning from edges\n // ========================\n Guestures.prototype.endPanning = function () {\n var self = this,\n newOffsetX,\n newOffsetY,\n newPos;\n\n if (!self.contentLastPos) {\n return;\n }\n\n if (self.opts.momentum === false || self.dMs > 350) {\n newOffsetX = self.contentLastPos.left;\n newOffsetY = self.contentLastPos.top;\n } else {\n // Continue movement\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\n }\n\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\n\n newPos.width = self.contentStartPos.width;\n newPos.height = self.contentStartPos.height;\n\n $.fancybox.animate(self.$content, newPos, 366);\n };\n\n Guestures.prototype.endZooming = function () {\n var self = this;\n\n var current = self.instance.current;\n\n var newOffsetX, newOffsetY, newPos, reset;\n\n var newWidth = self.newWidth;\n var newHeight = self.newHeight;\n\n if (!self.contentLastPos) {\n return;\n }\n\n newOffsetX = self.contentLastPos.left;\n newOffsetY = self.contentLastPos.top;\n\n reset = {\n top: newOffsetY,\n left: newOffsetX,\n width: newWidth,\n height: newHeight,\n scaleX: 1,\n scaleY: 1\n };\n\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\n $.fancybox.setTranslate(self.$content, reset);\n\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\n self.instance.scaleToFit(150);\n } else if (newWidth > current.width || newHeight > current.height) {\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\n } else {\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\n\n $.fancybox.animate(self.$content, newPos, 150);\n }\n };\n\n Guestures.prototype.onTap = function (e) {\n var self = this;\n var $target = $(e.target);\n\n var instance = self.instance;\n var current = instance.current;\n\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\n\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\n\n var where;\n\n var process = function (prefix) {\n var action = current.opts[prefix];\n\n if ($.isFunction(action)) {\n action = action.apply(instance, [current, e]);\n }\n\n if (!action) {\n return;\n }\n\n switch (action) {\n case \"close\":\n instance.close(self.startEvent);\n\n break;\n\n case \"toggleControls\":\n instance.toggleControls();\n\n break;\n\n case \"next\":\n instance.next();\n\n break;\n\n case \"nextOrClose\":\n if (instance.group.length > 1) {\n instance.next();\n } else {\n instance.close(self.startEvent);\n }\n\n break;\n\n case \"zoom\":\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\n if (instance.canPan()) {\n instance.scaleToFit();\n } else if (instance.isScaledDown()) {\n instance.scaleToActual(tapX, tapY);\n } else if (instance.group.length < 2) {\n instance.close(self.startEvent);\n }\n }\n\n break;\n }\n };\n\n // Ignore right click\n if (e.originalEvent && e.originalEvent.button == 2) {\n return;\n }\n\n // Skip if clicked on the scrollbar\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\n return;\n }\n\n // Check where is clicked\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\n where = \"Outside\";\n } else if ($target.is(\".fancybox-slide\")) {\n where = \"Slide\";\n } else if (\n instance.current.$content &&\n instance.current.$content\n .find($target)\n .addBack()\n .filter($target).length\n ) {\n where = \"Content\";\n } else {\n return;\n }\n\n // Check if this is a double tap\n if (self.tapped) {\n // Stop previously created single tap\n clearTimeout(self.tapped);\n self.tapped = null;\n\n // Skip if distance between taps is too big\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\n return this;\n }\n\n // OK, now we assume that this is a double-tap\n process(\"dblclick\" + where);\n } else {\n // Single tap will be processed if user has not clicked second time within 300ms\n // or there is no need to wait for double-tap\n self.tapX = tapX;\n self.tapY = tapY;\n\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\n self.tapped = setTimeout(function () {\n self.tapped = null;\n\n if (!instance.isAnimating) {\n process(\"click\" + where);\n }\n }, 500);\n } else {\n process(\"click\" + where);\n }\n }\n\n return this;\n };\n\n $(document)\n .on(\"onActivate.fb\", function (e, instance) {\n if (instance && !instance.Guestures) {\n instance.Guestures = new Guestures(instance);\n }\n })\n .on(\"beforeClose.fb\", function (e, instance) {\n if (instance && instance.Guestures) {\n instance.Guestures.destroy();\n }\n });\n})(window, document, jQuery);\n// ==========================================================================\n//\n// SlideShow\n// Enables slideshow functionality\n//\n// Example of usage:\n// $.fancybox.getInstance().SlideShow.start()\n//\n// ==========================================================================\n(function (document, $) {\n \"use strict\";\n\n $.extend(true, $.fancybox.defaults, {\n btnTpl: {\n slideShow: '\"\n },\n slideShow: {\n autoStart: false,\n speed: 3000,\n progress: true\n }\n });\n\n var SlideShow = function (instance) {\n this.instance = instance;\n this.init();\n };\n\n $.extend(SlideShow.prototype, {\n timer: null,\n isActive: false,\n $button: null,\n\n init: function () {\n var self = this,\n instance = self.instance,\n opts = instance.group[instance.currIndex].opts.slideShow;\n\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\n self.toggle();\n });\n\n if (instance.group.length < 2 || !opts) {\n self.$button.hide();\n } else if (opts.progress) {\n self.$progress = $('
').appendTo(instance.$refs.inner);\n }\n },\n\n set: function (force) {\n var self = this,\n instance = self.instance,\n current = instance.current;\n\n // Check if reached last element\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\n if (self.isActive && current.contentType !== \"video\") {\n if (self.$progress) {\n $.fancybox.animate(self.$progress.show(), {\n scaleX: 1\n }, current.opts.slideShow.speed);\n }\n\n self.timer = setTimeout(function () {\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\n instance.jumpTo(0);\n } else {\n instance.next();\n }\n }, current.opts.slideShow.speed);\n }\n } else {\n self.stop();\n instance.idleSecondsCounter = 0;\n instance.showControls();\n }\n },\n\n clear: function () {\n var self = this;\n\n clearTimeout(self.timer);\n\n self.timer = null;\n\n if (self.$progress) {\n self.$progress.removeAttr(\"style\").hide();\n }\n },\n\n start: function () {\n var self = this,\n current = self.instance.current;\n\n if (current) {\n self.$button\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\n .removeClass(\"fancybox-button--play\")\n .addClass(\"fancybox-button--pause\");\n\n self.isActive = true;\n\n if (current.isComplete) {\n self.set(true);\n }\n\n self.instance.trigger(\"onSlideShowChange\", true);\n }\n },\n\n stop: function () {\n var self = this,\n current = self.instance.current;\n\n self.clear();\n\n self.$button\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\n .removeClass(\"fancybox-button--pause\")\n .addClass(\"fancybox-button--play\");\n\n self.isActive = false;\n\n self.instance.trigger(\"onSlideShowChange\", false);\n\n if (self.$progress) {\n self.$progress.removeAttr(\"style\").hide();\n }\n },\n\n toggle: function () {\n var self = this;\n\n if (self.isActive) {\n self.stop();\n } else {\n self.start();\n }\n }\n });\n\n $(document).on({\n \"onInit.fb\": function (e, instance) {\n if (instance && !instance.SlideShow) {\n instance.SlideShow = new SlideShow(instance);\n }\n },\n\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\n var SlideShow = instance && instance.SlideShow;\n\n if (firstRun) {\n if (SlideShow && current.opts.slideShow.autoStart) {\n SlideShow.start();\n }\n } else if (SlideShow && SlideShow.isActive) {\n SlideShow.clear();\n }\n },\n\n \"afterShow.fb\": function (e, instance, current) {\n var SlideShow = instance && instance.SlideShow;\n\n if (SlideShow && SlideShow.isActive) {\n SlideShow.set();\n }\n },\n\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n var SlideShow = instance && instance.SlideShow;\n\n // \"P\" or Spacebar\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\n keypress.preventDefault();\n\n SlideShow.toggle();\n }\n },\n\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\n var SlideShow = instance && instance.SlideShow;\n\n if (SlideShow) {\n SlideShow.stop();\n }\n }\n });\n\n // Page Visibility API to pause slideshow when window is not active\n $(document).on(\"visibilitychange\", function () {\n var instance = $.fancybox.getInstance(),\n SlideShow = instance && instance.SlideShow;\n\n if (SlideShow && SlideShow.isActive) {\n if (document.hidden) {\n SlideShow.clear();\n } else {\n SlideShow.set();\n }\n }\n });\n})(document, jQuery);\n// ==========================================================================\n//\n// FullScreen\n// Adds fullscreen functionality\n//\n// ==========================================================================\n(function (document, $) {\n \"use strict\";\n\n // Collection of methods supported by user browser\n var fn = (function () {\n var fnMap = [\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\n // new WebKit\n [\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n // old WebKit (Safari 5.1)\n [\n \"webkitRequestFullScreen\",\n \"webkitCancelFullScreen\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCancelFullScreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\"\n ],\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\n ];\n\n var ret = {};\n\n for (var i = 0; i < fnMap.length; i++) {\n var val = fnMap[i];\n\n if (val && val[1] in document) {\n for (var j = 0; j < val.length; j++) {\n ret[fnMap[0][j]] = val[j];\n }\n\n return ret;\n }\n }\n\n return false;\n })();\n\n if (fn) {\n var FullScreen = {\n request: function (elem) {\n elem = elem || document.documentElement;\n\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\n },\n exit: function () {\n document[fn.exitFullscreen]();\n },\n toggle: function (elem) {\n elem = elem || document.documentElement;\n\n if (this.isFullscreen()) {\n this.exit();\n } else {\n this.request(elem);\n }\n },\n isFullscreen: function () {\n return Boolean(document[fn.fullscreenElement]);\n },\n enabled: function () {\n return Boolean(document[fn.fullscreenEnabled]);\n }\n };\n\n $.extend(true, $.fancybox.defaults, {\n btnTpl: {\n fullScreen: '\"\n },\n fullScreen: {\n autoStart: false\n }\n });\n\n $(document).on(fn.fullscreenchange, function () {\n var isFullscreen = FullScreen.isFullscreen(),\n instance = $.fancybox.getInstance();\n\n if (instance) {\n // If image is zooming, then force to stop and reposition properly\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\n instance.isAnimating = false;\n\n instance.update(true, true, 0);\n\n if (!instance.isComplete) {\n instance.complete();\n }\n }\n\n instance.trigger(\"onFullscreenChange\", isFullscreen);\n\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\n\n instance.$refs.toolbar\n .find(\"[data-fancybox-fullscreen]\")\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\n }\n });\n }\n\n $(document).on({\n \"onInit.fb\": function (e, instance) {\n var $container;\n\n if (!fn) {\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\n\n return;\n }\n\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\n $container = instance.$refs.container;\n\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n FullScreen.toggle();\n });\n\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\n FullScreen.request();\n }\n\n // Expose API\n instance.FullScreen = FullScreen;\n } else if (instance) {\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\n }\n },\n\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n // \"F\"\n if (instance && instance.FullScreen && keycode === 70) {\n keypress.preventDefault();\n\n instance.FullScreen.toggle();\n }\n },\n\n \"beforeClose.fb\": function (e, instance) {\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\n FullScreen.exit();\n }\n }\n });\n})(document, jQuery);\n// ==========================================================================\n//\n// Thumbs\n// Displays thumbnails in a grid\n//\n// ==========================================================================\n(function (document, $) {\n \"use strict\";\n\n var CLASS = \"fancybox-thumbs\",\n CLASS_ACTIVE = CLASS + \"-active\";\n\n // Make sure there are default values\n $.fancybox.defaults = $.extend(\n true, {\n btnTpl: {\n thumbs: '\"\n },\n thumbs: {\n autoStart: false, // Display thumbnails on opening\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\n parentEl: \".fancybox-container\", // Container is injected into this element\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n }\n },\n $.fancybox.defaults\n );\n\n var FancyThumbs = function (instance) {\n this.init(instance);\n };\n\n $.extend(FancyThumbs.prototype, {\n $button: null,\n $grid: null,\n $list: null,\n isVisible: false,\n isActive: false,\n\n init: function (instance) {\n var self = this,\n group = instance.group,\n enabled = 0;\n\n self.instance = instance;\n self.opts = group[instance.currIndex].opts.thumbs;\n\n instance.Thumbs = self;\n\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\n\n // Enable thumbs if at least two group items have thumbnails\n for (var i = 0, len = group.length; i < len; i++) {\n if (group[i].thumb) {\n enabled++;\n }\n\n if (enabled > 1) {\n break;\n }\n }\n\n if (enabled > 1 && !!self.opts) {\n self.$button.removeAttr(\"style\").on(\"click\", function () {\n self.toggle();\n });\n\n self.isActive = true;\n } else {\n self.$button.hide();\n }\n },\n\n create: function () {\n var self = this,\n instance = self.instance,\n parentEl = self.opts.parentEl,\n list = [],\n src;\n\n if (!self.$grid) {\n // Create main element\n self.$grid = $('
').appendTo(\n instance.$refs.container\n .find(parentEl)\n .addBack()\n .filter(parentEl)\n );\n\n // Add \"click\" event that performs gallery navigation\n self.$grid.on(\"click\", \"a\", function () {\n instance.jumpTo($(this).attr(\"data-index\"));\n });\n }\n\n // Build the list\n if (!self.$list) {\n self.$list = $('
').appendTo(self.$grid);\n }\n\n $.each(instance.group, function (i, item) {\n src = item.thumb;\n\n if (!src && item.type === \"image\") {\n src = item.src;\n }\n\n list.push(\n '\"\n );\n });\n\n self.$list[0].innerHTML = list.join(\"\");\n\n if (self.opts.axis === \"x\") {\n // Set fixed width for list element to enable horizontal scrolling\n self.$list.width(\n parseInt(self.$grid.css(\"padding-right\"), 10) +\n instance.group.length *\n self.$list\n .children()\n .eq(0)\n .outerWidth(true)\n );\n }\n },\n\n focus: function (duration) {\n var self = this,\n $list = self.$list,\n $grid = self.$grid,\n thumb,\n thumbPos;\n\n if (!self.instance.current) {\n return;\n }\n\n thumb = $list\n .children()\n .removeClass(CLASS_ACTIVE)\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\n .addClass(CLASS_ACTIVE);\n\n thumbPos = thumb.position();\n\n // Check if need to scroll to make current thumb visible\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\n $list.stop().animate({\n scrollTop: $list.scrollTop() + thumbPos.top\n },\n duration\n );\n } else if (\n self.opts.axis === \"x\" &&\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\n ) {\n $list\n .parent()\n .stop()\n .animate({\n scrollLeft: thumbPos.left\n },\n duration\n );\n }\n },\n\n update: function () {\n var that = this;\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\n\n if (that.isVisible) {\n if (!that.$grid) {\n that.create();\n }\n\n that.instance.trigger(\"onThumbsShow\");\n\n that.focus(0);\n } else if (that.$grid) {\n that.instance.trigger(\"onThumbsHide\");\n }\n\n // Update content position\n that.instance.update();\n },\n\n hide: function () {\n this.isVisible = false;\n this.update();\n },\n\n show: function () {\n this.isVisible = true;\n this.update();\n },\n\n toggle: function () {\n this.isVisible = !this.isVisible;\n this.update();\n }\n });\n\n $(document).on({\n \"onInit.fb\": function (e, instance) {\n var Thumbs;\n\n if (instance && !instance.Thumbs) {\n Thumbs = new FancyThumbs(instance);\n\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\n Thumbs.show();\n }\n }\n },\n\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\n var Thumbs = instance && instance.Thumbs;\n\n if (Thumbs && Thumbs.isVisible) {\n Thumbs.focus(firstRun ? 0 : 250);\n }\n },\n\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n var Thumbs = instance && instance.Thumbs;\n\n // \"G\"\n if (Thumbs && Thumbs.isActive && keycode === 71) {\n keypress.preventDefault();\n\n Thumbs.toggle();\n }\n },\n\n \"beforeClose.fb\": function (e, instance) {\n var Thumbs = instance && instance.Thumbs;\n\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\n Thumbs.$grid.hide();\n }\n }\n });\n})(document, jQuery);\n//// ==========================================================================\n//\n// Share\n// Displays simple form for sharing current url\n//\n// ==========================================================================\n(function (document, $) {\n \"use strict\";\n\n $.extend(true, $.fancybox.defaults, {\n btnTpl: {\n share: '\"\n },\n share: {\n url: function (instance, item) {\n return (\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\n );\n },\n tpl: '
' +\n \"

{{SHARE}}

\" +\n \"

\" +\n '' +\n '' +\n \"Facebook\" +\n \"\" +\n '' +\n '' +\n \"Twitter\" +\n \"\" +\n '' +\n '' +\n \"Pinterest\" +\n \"\" +\n \"

\" +\n '

' +\n \"
\"\n }\n });\n\n function escapeHtml(string) {\n var entityMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"/\": \"/\",\n \"`\": \"`\",\n \"=\": \"=\"\n };\n\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\n return entityMap[s];\n });\n }\n\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\n var instance = $.fancybox.getInstance(),\n current = instance.current || null,\n url,\n tpl;\n\n if (!current) {\n return;\n }\n\n if ($.type(current.opts.share.url) === \"function\") {\n url = current.opts.share.url.apply(current, [instance, current]);\n }\n\n tpl = current.opts.share.tpl\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\n\n $.fancybox.open({\n src: instance.translate(instance, tpl),\n type: \"html\",\n opts: {\n touch: false,\n animationEffect: false,\n afterLoad: function (shareInstance, shareCurrent) {\n // Close self if parent instance is closing\n instance.$refs.container.one(\"beforeClose.fb\", function () {\n shareInstance.close(null, 0);\n });\n\n // Opening links in a popup window\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\n window.open(this.href, \"Share\", \"width=550, height=450\");\n return false;\n });\n },\n mobile: {\n autoFocus: false\n }\n }\n });\n });\n})(document, jQuery);\n// ==========================================================================\n//\n// Hash\n// Enables linking to each modal\n//\n// ==========================================================================\n(function (window, document, $) {\n \"use strict\";\n\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\n if (!$.escapeSelector) {\n $.escapeSelector = function (sel) {\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n var fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n };\n\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n }\n\n // Get info about gallery name and current index from url\n function parseUrl() {\n var hash = window.location.hash.substr(1),\n rez = hash.split(\"-\"),\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\n gallery = rez.join(\"-\");\n\n return {\n hash: hash,\n /* Index is starting from 1 */\n index: index < 1 ? 1 : index,\n gallery: gallery\n };\n }\n\n // Trigger click evnt on links to open new fancyBox instance\n function triggerFromUrl(url) {\n if (url.gallery !== \"\") {\n // If we can find element matching 'data-fancybox' atribute,\n // then triggering click event should start fancyBox\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\n .eq(url.index - 1)\n .focus()\n .trigger(\"click.fb-start\");\n }\n }\n\n // Get gallery name from current instance\n function getGalleryID(instance) {\n var opts, ret;\n\n if (!instance) {\n return false;\n }\n\n opts = instance.current ? instance.current.opts : instance.opts;\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\n\n return ret === \"\" ? false : ret;\n }\n\n // Start when DOM becomes ready\n $(function () {\n // Check if user has disabled this module\n if ($.fancybox.defaults.hash === false) {\n return;\n }\n\n // Update hash when opening/closing fancyBox\n $(document).on({\n \"onInit.fb\": function (e, instance) {\n var url, gallery;\n\n if (instance.group[instance.currIndex].opts.hash === false) {\n return;\n }\n\n url = parseUrl();\n gallery = getGalleryID(instance);\n\n // Make sure gallery start index matches index from hash\n if (gallery && url.gallery && gallery == url.gallery) {\n instance.currIndex = url.index - 1;\n }\n },\n\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\n var gallery;\n\n if (!current || current.opts.hash === false) {\n return;\n }\n\n // Check if need to update window hash\n gallery = getGalleryID(instance);\n\n if (!gallery) {\n return;\n }\n\n // Variable containing last hash value set by fancyBox\n // It will be used to determine if fancyBox needs to close after hash change is detected\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\n\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\n if (window.location.hash === \"#\" + instance.currentHash) {\n return;\n }\n\n if (firstRun && !instance.origHash) {\n instance.origHash = window.location.hash;\n }\n\n if (instance.hashTimer) {\n clearTimeout(instance.hashTimer);\n }\n\n // Update hash\n instance.hashTimer = setTimeout(function () {\n if (\"replaceState\" in window.history) {\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\n document.title,\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\n );\n\n if (firstRun) {\n instance.hasCreatedHistory = true;\n }\n } else {\n window.location.hash = instance.currentHash;\n }\n\n instance.hashTimer = null;\n }, 300);\n },\n\n \"beforeClose.fb\": function (e, instance, current) {\n if (!current || current.opts.hash === false) {\n return;\n }\n\n clearTimeout(instance.hashTimer);\n\n // Goto previous history entry\n if (instance.currentHash && instance.hasCreatedHistory) {\n window.history.back();\n } else if (instance.currentHash) {\n if (\"replaceState\" in window.history) {\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\n } else {\n window.location.hash = instance.origHash;\n }\n }\n\n instance.currentHash = null;\n }\n });\n\n // Check if need to start/close after url has changed\n $(window).on(\"hashchange.fb\", function () {\n var url = parseUrl(),\n fb = null;\n\n // Find last fancyBox instance that has \"hash\"\n $.each(\n $(\".fancybox-container\")\n .get()\n .reverse(),\n function (index, value) {\n var tmp = $(value).data(\"FancyBox\");\n\n if (tmp && tmp.currentHash) {\n fb = tmp;\n return false;\n }\n }\n );\n\n if (fb) {\n // Now, compare hash values\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\n fb.currentHash = null;\n\n fb.close();\n }\n } else if (url.gallery !== \"\") {\n triggerFromUrl(url);\n }\n });\n\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\n setTimeout(function () {\n if (!$.fancybox.getInstance()) {\n triggerFromUrl(parseUrl());\n }\n }, 50);\n });\n})(window, document, jQuery);\n// ==========================================================================\n//\n// Wheel\n// Basic mouse weheel support for gallery navigation\n//\n// ==========================================================================\n(function (document, $) {\n \"use strict\";\n\n var prevTime = new Date().getTime();\n\n $(document).on({\n \"onInit.fb\": function (e, instance, current) {\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\n var current = instance.current,\n currTime = new Date().getTime();\n\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (current.$slide.hasClass(\"fancybox-animated\")) {\n return;\n }\n\n e = e.originalEvent || e;\n\n if (currTime - prevTime < 250) {\n return;\n }\n\n prevTime = currTime;\n\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\n });\n }\n });\n})(document, jQuery);","/*\n Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net\n*/\n(function(){var b,f;b=window.jQuery;f=b(window);b.fn.stick_in_parent=function(d){var A,w,J,n,B,K,p,q,k,E,t;null==d&&(d={});t=d.sticky_class;B=d.inner_scrolling;E=d.recalc_every;k=d.parent;q=d.offset_top;p=d.spacer;w=d.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t=\"is_stuck\");A=b(document);null==w&&(w=!0);J=function(a,d,n,C,F,u,r,G){var v,H,m,D,I,c,g,x,y,z,h,l;if(!a.data(\"sticky_kit\")){a.data(\"sticky_kit\",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));\nif(!g.length)throw\"failed to find stick parent\";v=m=!1;(h=null!=p?p&&a.closest(p):b(\"
\"))&&h.css(\"position\",a.css(\"position\"));x=function(){var c,f,e;if(!G&&(I=A.height(),c=parseInt(g.css(\"border-top-width\"),10),f=parseInt(g.css(\"padding-top\"),10),d=parseInt(g.css(\"padding-bottom\"),10),n=g.offset().top+c+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:\"\",top:\"\",width:\"\",bottom:\"\"}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css(\"margin-top\"),10)||0)-q,\nu=a.outerHeight(!0),r=a.css(\"float\"),h&&h.css({width:a.outerWidth(!0),height:u,display:a.css(\"display\"),\"vertical-align\":a.css(\"vertical-align\"),\"float\":r}),e))return l()};x();if(u!==C)return D=void 0,c=q,z=E,l=function(){var b,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+c>C+n,v&&!k&&(v=!1,a.css({position:\"fixed\",bottom:\"\",top:c}).trigger(\"sticky_kit:unbottom\"))),eb&&!v&&(c-=l,c=Math.max(b-u,c),c=Math.min(q,c),m&&a.css({top:c+\"px\"})))):e>F&&(m=!0,b={position:\"fixed\",top:c},b.width=\"border-box\"===a.css(\"box-sizing\")?a.outerWidth()+\"px\":a.width()+\"px\",a.css(b).addClass(t),null==p&&(a.after(h),\"left\"!==r&&\"right\"!==r||h.append(a)),a.trigger(\"sticky_kit:stick\")),m&&w&&(null==k&&(k=e+u+c>C+n),!v&&k)))return v=!0,\"static\"===g.css(\"position\")&&g.css({position:\"relative\"}),\na.css({position:\"absolute\",bottom:d,top:\"auto\"}).trigger(\"sticky_kit:bottom\")},y=function(){x();return l()},H=function(){G=!0;f.off(\"touchmove\",l);f.off(\"scroll\",l);f.off(\"resize\",y);b(document.body).off(\"sticky_kit:recalc\",y);a.off(\"sticky_kit:detach\",H);a.removeData(\"sticky_kit\");a.css({position:\"\",bottom:\"\",top:\"\",width:\"\"});g.position(\"position\",\"\");if(m)return null==p&&(\"left\"!==r&&\"right\"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on(\"touchmove\",l),f.on(\"scroll\",l),f.on(\"resize\",\ny),b(document.body).on(\"sticky_kit:recalc\",y),a.on(\"sticky_kit:detach\",H),setTimeout(l,0)}};n=0;for(K=this.length;nn;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll(\"destroy\")},t.disableAll=function(){t.invokeAll(\"disable\")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:\"default\",horizontal:!1,offset:0},t.offsetAliases={\"bottom-in-view\":function(){return this.context.innerHeight()-this.adapter.outerHeight()},\"right-in-view\":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){\"use strict\";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key=\"waypoint-context-\"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?\"horizontal\":\"vertical\";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(\".waypoints\"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on(\"resize.waypoints\",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on(\"scroll.waypoints\",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\",offsetProp:\"left\"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\",offsetProp:\"top\"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),\"function\"==typeof f?f=f.apply(d):\"string\"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf(\"%\")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){\"use strict\";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+\"-\"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n=\"up\"===i||\"left\"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){\"use strict\";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each([\"innerHeight\",\"innerWidth\",\"off\",\"offset\",\"on\",\"outerHeight\",\"outerWidth\",\"scrollLeft\",\"scrollTop\"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each([\"extend\",\"inArray\",\"isEmptyObject\"],function(i,o){t[o]=e[o]}),i.adapters.push({name:\"jquery\",Adapter:t}),i.Adapter=t}(),function(){\"use strict\";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});\"string\"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();\n","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.8.0\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n/* global window, document, define, jQuery, setInterval, clearInterval */\n;(function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n\n}(function($) {\n 'use strict';\n var Slick = window.Slick || {};\n\n Slick = (function() {\n\n var instanceUid = 0;\n\n function Slick(element, settings) {\n\n var _ = this, dataSettings;\n\n _.defaults = {\n accessibility: true,\n adaptiveHeight: false,\n appendArrows: $(element),\n appendDots: $(element),\n arrows: true,\n asNavFor: null,\n prevArrow: '',\n nextArrow: '',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('