{"version":3,"sources":["jquery.ez-plus.js","jquery.fancybox.min.js","jquery.lazyload.min.js","jquery.mmenu.min.js","jquery.responsiveTabs.min.js","owl.carousel.min.js"],"names":["Object","create","obj","F","prototype","$","window","document","undefined","EZP","init","options","elem","$galleries","self","this","$elem","imageSrc","data","attr","extend","fn","ezPlus","responsiveConfig","enabled","tint","lensColour","lensOpacity","zoomType","showLens","parent","removeAttr","zoomImage","refresh","gallery","gallerySelector","on","galleryItem","e","galleryActiveClass","removeClass","addClass","tagName","preventDefault","zoomImagePre","swaptheimage","length","setTimeout","fetch","imgsrc","newImg","Image","onload","largeWidth","width","largeHeight","height","startZoom","currentImage","onZoomedImageLoaded","setImageSource","image","src","borderWidth","lensHeight","lensWidth","nzWidth","nzHeight","isWindowActive","isLensActive","isTintActive","overWindow","imageCrossfade","zoomWrap","wrap","css","zoomLock","scrollingLock","changeBgSize","currentZoomLevel","zoomLevel","nzOffset","offset","widthRatio","heightRatio","zoomWindowStyle","String","zoomWindowBgColour","zoomWindowWidth","zoomWindowHeight","borderSize","borderColour","lensStyle","tintStyle","tintColour","lensRound","lensSize","lensShape","zoomContainer","left","top","zIndex","zoomContainerAppendTo","append","containLensZoom","zoomLens","appendTo","click","trigger","tintContainer","zoomTint","zoomTintcss","after","zoomTintImage","targetZoomContainer","isNaN","zoomWindowPosition","mouseMoveZoomHandler","lastX","clientX","lastY","clientY","setPosition","currentLoc","zoomWindow","zoomWindowContainer","touchEnabled","bind","touch","originalEvent","touches","changedTouches","showHideWindow","showHideLens","showHideTint","setElements","onImageClick","elementToTrack","add","mouseenter","mouseleave","scrollLock","onDestroy","minZoomLevel","scrollZoomIncrement","scrollZoom","clearTimeout","theEvent","deltaY","detail","stopImmediatePropagation","stopPropagation","changeZoomLevel","fullheight","fullwidth","mantainZoomAspectRatio","maxZoomLevel","parseFloat","type","zoomEnabled","isWindowSet","responsive","mouseLeft","parseInt","pageX","mouseTop","pageY","zoomLensHeight","zoomLensWidth","Etoppos","Eboppos","lensBorderSize","Eloppos","Eroppos","lensLeftPos","Math","floor","lensTopPos","windowLeftPos","tintpos","max","windowTopPos","newvalueheight","newvaluewidth","setWindowPosition","setTintPosition","showHideZoomContainer","change","show","hide","onShow","zoomWindowFadeIn","stop","fadeIn","zoomWindowFadeOut","fadeOut","loop","clearInterval","lensFadeIn","lensFadeOut","zoomTintFadeIn","tintOpacity","animate","zoomTintFadeOut","setLensPosition","externalContainer","externalContainerWidth","externalContainerHeight","externalContainerOffset","windowOffsetTop","windowOffsetLeft","noop","zoomWindowOffsetY","zoomWindowOffsetX","easing","xp","yp","setInterval","easingAmount","round","abs","tintposy","smallimage","largeimage","loadingIcon","spinner","onImageSwap","swapAction","elemWidth","elemHeight","newImg2","onImageSwapComplete","doneCallback","oldImg","clone","remove","oldImgTint","newImgTint","constrainType","autoWDimension","constrainSize","constwidth","constWDim","autoHDimension","constheight","constHDim","getCurrentImage","getGalleryList","gallerylist","each","imgSrc","unshift","href","title","find","push","value","newvalue","toFixed","maxheightnewvalue","maxwidthtnewvalue","scrcontinue","changeZoom","closeAll","changeState","respond","configByScreenWidth","screenWidth","config","grep","item","range","split","elevate","cursor","debug","lensBorderColour","lenszoom","onComplete","preloading","zoomActivation","zoomWindowAlwaysShow","jQuery","fancybox","console","log","div","defaults","margin","gutter","keyboard","arrows","infobar","toolbar","buttons","idleTime","smallBtn","protect","modal","preload","ajax","settings","iframe","tpl","scrolling","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","zoom","close","arrowLeft","arrowRight","parentEl","autoFocus","backFocus","trapFocus","fullScreen","autoStart","vertical","momentum","hash","media","slideShow","speed","thumbs","hideOnClose","axis","wheel","onInit","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","current","event","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","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","transitionEnd","t","el","createElement","transitions","transition","OTransition","MozTransition","WebkitTransition","style","forceRedraw","$el","offsetHeight","FancyBox","content","opts","index","isMobile","isArray","id","group","currIndex","prevIndex","prevPos","currPos","firstRun","createGroup","$lastFocus","activeElement","blur","slides","$scrollDiv","$container","buttonStr","firstItem","firstItemOpts","scrollbarWidth","scrollTop","scrollLeft","getInstance","test","navigator","userAgent","MSStream","body","scrollHeight","innerHeight","offsetWidth","clientWidth","translate","replace","$refs","container","forEach","activate","jumpTo","str","arr","match","n","items","makeArray","i","$item","srcParts","isPlainObject","$orig","charAt","$thumb","caption","apply","shift","filter","inArray","addEvents","removeEvents","previous","next","isScaledDown","update","stage","instance","isClosing","target","hasClass","is","has","focus","keycode","keyCode","which","idleSecondsCounter","isIdle","showControls","idleInterval","isDragging","hideControls","off","duration","pos","slide","canvasWidth","currentPos","transitionProps","groupLen","isAnimating","createSlide","updateControls","getTranslate","$slide","isMoved","forcedDuration","isNumeric","loadSlide","complete","children","isLoaded","revealContent","isComplete","updateSlide","scaleToActual","x","y","imgPos","posX","posY","scaleX","scaleY","$what","$content","canvasHeight","newImgWidth","newImgHeight","hasError","updateCursor","SlideShow","isActive","scaleToFit","end","getFitPos","minRatio","imgWidth","imgHeight","min","key","setTranslate","nextWidth","nextHeight","isZoomable","fitPos","isFunction","rez","canPan","ajaxLoad","isLoading","setImage","setIframe","setContent","setError","showLoading","url","success","textStatus","error","jqXHR","one","abort","found","temp","pxRatio","windowWidth","srcset","devicePixelRatio","innerWidth","map","ret","trim","substring","postfix","sort","a","b","j","thumb","$ghost","setBigImage","$img","$image","timouts","naturalWidth","naturalHeight","hideLoading","readyState","$iframe","Date","getTime","isReady","scrollWidth","$body","$wrap","frameWidth","frameHeight","contents","ignore","contentWindow","documentElement","ceil","outerWidth","outerHeight","prepend","empty","hasOwnProperty","$placeholder","insertAfter","nodeType","html","pause","$smallBtn","$spinner","first","button","effect","effectClassName","opacity","start","getThumbPos","slidePos","thumbPos","ownerDocument","element","elementRect","getBoundingClientRect","parentRects","parentElement","every","parentRect","visiblePixelX","right","visiblePixelY","bottom","isElementVisible","siblings","play","prev","isVisible","d","done","cleanUp","name","args","Array","slice","call","arguments","force","$caption","isHiddenControls","prop","toggleClass","toggleControls","version","command","open","all","destroy","createTouch","use3d","getComputedStyle","getPropertyValue","documentMode","matrix","eq","indexOf","transRez","exec","props","position","transform","to","leaveAnimationName","propertyName","selector","_run","$target","currentTarget","isDefaultPrevented","format","params","param","youtube","matcher","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","api","metacafe","dailymotion","additionalInfos","vine","instagram","gmap_place","gmap_search","urlParams","paramObj","providerName","providerOpts","m","p","decodeURIComponent","contentProvider","provider","cancelAFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","pointers","result","distance","point2","point1","what","sqrt","pow","isClickable","get","onclick","atts","attributes","nodeName","substr","isScrollable","overflowY","overflowX","horizontal","clientHeight","Guestures","$bg","bg","$stage","proxy","ontouchstart","isTouchDevice","startPoints","canTap","startTime","distanceX","distanceY","isPanning","isSwiping","isZooming","sliderStartPos","sliderLastPos","contentStartPos","contentLastPos","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","ontouchmove","newPoints","tapped","onSwipe","onPan","onZoom","angle","swiping","requestId","atan2","PI","inTransition","newOffsetX","newOffsetY","newPos","limitMovement","newWidth","newHeight","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","currentOffsetX","currentOffsetY","limitPosition","currentWidth","currentHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","ontouchend","dMs","panning","zooming","endPoints","onTap","velocityX","velocityY","speedX","endPanning","endZooming","endSwiping","reset","where","tapX","tapY","process","prefix","action","startEvent","timer","$button","toggle","set","clear","onInit.fb","beforeShow.fb","afterShow.fb","afterKeydown.fb","keypress","beforeClose.fb onDeactivate.fb","hidden","val","fnMap","FullScreen","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","exitFullscreen","isFullscreen","Boolean","fullscreenElement","fullscreenEnabled","beforeClose.fb","fullscreenchange","FancyThumbs","$grid","$list","Thumbs","second","list","addBack","$parent","thumbWidth","thumbHeight","margin-top","margin-left","share","string","entityMap","f","location","encodeURIComponent","&","<",">","\"","'","/","`","=","s","text","escapeSelector","sel","ch","asCodePoint","charCodeAt","toString","shouldCreateHistory","currentHash","timerID","parseUrl","pop","join","triggerFromUrl","getGalleryID","origHash","history","pathname","search","replaceState","prevTime","delta","isVertical","currTime","wheelDelta","wheelDeltaX","deltaX","c","lazyload","g","skip_invisible","abovethetop","leftofbegin","belowthefold","rightoffold","failure_limit","h","threshold","data_attribute","appear","load","placeholder","failurelimit","effectspeed","effect_speed","loaded","appVersion","persisted","ready","inviewport","expr","below-the-fold","above-the-top","right-of-screen","left-of-screen","in-viewport","above-the-fold","right-of-fold","left-of-fold","o","r","$menu","_api","conf","vars","cbck","___deprecated","_initMenu","_initAnchors","$pnls","_initAddons","initPanels","___debug","addons","uniqueId","extensions","initMenu","navbar","titleLink","onClick","setSelected","slidingSubmenus","configuration","classNames","divider","inset","panel","selected","spacer","openingInterval","panelNodetype","not","nopanel","_initPanels","listview","openPanel","parents","subopened","opened","l","highest","support","csstransitions","nextAll","__transitionend","closePanel","closeAllPanels","togglePanel","mm","__getUniqueId","panels","prependTo","wrapper","menu","__findAddBack","__refactorClass","nolistview","child","insertBefore","fullsubopen","closest","hasnavbar","btn","last","parentsUntil","clickAnchor","__valueOrFn","setup","_getOriginalMenuId","umm","__api","__filterListItems","unbind","transitionend","webkitTransitionEnd","glbl","$wndw","$docu","$html","_c","_d","_e","msMaxTouchPoints","Modernizr","toUpperCase","csstransforms","csstransforms3d","merge","zposition","pageSelector","pageNodetype","$allMenus","offcanvas","setPage","$page","_initBlocker","menuInjectMethod","menuWrapperSelector","blockUI","moveBackground","noPageSelector","wrapPageIfNeeded","_openSetup","_openFinish","closeAllOthers","resize","blocking","background","opening","wrapAll","page","slideout","keydown","$blck","blocker","touchstart","touchmove","mousedown","offCanvas","fix","orientationchange","-webkit-overflow-scrolling","$element","tabs","state","rotateInterval","$queue","active","disabled","collapsible","startCollapsed","rotate","setHash","animation","animationQueue","fluidHeight","scrollToAccordion","scrollToAccordionOnLoad","scrollToAccordionOffset","accordionTabElement","deactivate","activateState","classes","stateDefault","stateActive","stateDisabled","stateExcluded","ul","tab","anchor","accordionTitle","_loadElements","_loadClasses","_loadEvents","_setState","_equaliseHeights","_getTabRefBySelector","_getTab","_ignoreHashChange","_openTab","startRotation","_getStartTab","accordionTab","accordionAnchor","_getCurrentTab","pushState","origin","_isCollapisble","_closeTab","oldState","newState","stopRotation","_doTransition","getState","_isInView","queue","dequeue","_getCurrentTabRef","_getNextTabRef","_getPreviousTabRef","Event","enable","disable","Error","option","responsiveTabs","Defaults","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","pointer","direction","_states","tags","initializing","animating","dragging","Plugins","toLowerCase","Workers","run","initialize","center","rewind","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","mergeFit","autoWidth","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","State","relative","margin-right","normalize","outerHTML","padding-left","padding-right","minimum","maximum","coordinates","op","enter","preloadAutoWidthImages","invalidate","registerEventHandlers","leave","viewport","Number","RegExp","property","optionsLogic","prepare","onThrottledResize","resizeTimer","onResize","onTransitionEnd","onDragStart","onDragEnd","difference","onDragMove","transform3d","suppress","release","mergers","clones","srcElement","originalTarget","warn","before","splice","unwrap","removeData","addEventListener","attachEvent","removeEventListener","detachEvent","count","camelCase","relatedTarget","onTrigger","register","concat","special","owl","_default","namespace","owlCarousel","Constructor","Zepto","_core","_interval","_visible","initialized.owl.carousel","autoRefresh","watch","autoRefreshInterval","getOwnPropertyNames","AutoRefresh","_loaded","initialized.owl.carousel change.owl.carousel resized.owl.carousel","lazyLoad","background-image","handlers","Lazy","initialized.owl.carousel refreshed.owl.carousel","autoHeight","changed.owl.carousel","loaded.owl.lazy","autoHeightClass","toArray","AutoHeight","_videos","_playing","resize.owl.carousel","video","isInFullScreen","refreshed.owl.carousel","prepared.owl.carousel","videoHeight","videoWidth","thumbnail","k","jsonp","dataType","thumbnail_large","framegrab_url","mozFullScreenElement","webkitFullscreenElement","Video","core","swapping","change.owl.carousel","drag.owl.carousel dragged.owl.carousel translated.owl.carousel","translate.owl.carousel","animateOut","animateIn","swap","Animate","_timeout","_paused","_setAutoPlayInterval","play.owl.autoplay","stop.owl.autoplay","mouseover.owl.autoplay","autoplayHoverPause","mouseleave.owl.autoplay","touchstart.owl.core","touchend.owl.core","autoplayTimeout","autoplaySpeed","_getNextTimeout","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","added.owl.carousel","remove.owl.carousel","draw","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","$relative","$previous","$next","$absolute","overides","size","getPosition","Navigation","_hashes","URLhashListener","Hash","WebkitAnimation","MozAnimation","OAnimation"],"mappings":"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","file":"../../js/plugins.min.js","sourcesContent":["/* jshint -W071, -W074 */\n/* global jQuery:false */\n\n/* Disabled options are:\n * W071: This function has too many statements\n * W074: This function's cyclomatic complexity is too high\n */\n\n/*\n *\tjQuery ezPlus 1.1.6\n *\tDemo's and documentation:\n *\thttp://igorlino.github.io/elevatezoom-plus/\n *\n *\tlicensed under MIT license.\n *\thttp://en.wikipedia.org/wiki/MIT_License\n *\n */\n\nif (typeof Object.create !== 'function') {\n Object.create = function (obj) {\n function F() {\n }\n\n F.prototype = obj;\n return new F();\n };\n}\n\n(function ($, window, document, undefined) {\n var EZP = {\n init: function (options, elem) {\n var self = this;\n var $galleries;\n\n self.elem = elem;\n self.$elem = $(elem);\n\n self.imageSrc = self.$elem.data('zoom-image') ? self.$elem.data('zoom-image') : self.$elem.attr('src');\n\n self.options = $.extend({}, $.fn.ezPlus.options, self.responsiveConfig(options || {}));\n\n if (!self.options.enabled) {\n return;\n }\n\n //TINT OVERRIDE SETTINGS\n if (self.options.tint) {\n self.options.lensColour = 'none'; //colour of the lens background\n self.options.lensOpacity = '1'; //opacity of the lens\n }\n //INNER OVERRIDE SETTINGS\n if (self.options.zoomType === 'inner') {\n self.options.showLens = false;\n }\n\n //Remove alt on hover\n\n self.$elem.parent().removeAttr('title').removeAttr('alt');\n\n self.zoomImage = self.imageSrc;\n\n self.refresh(1);\n\n //Create the image swap from the gallery\n $galleries = $(self.options.gallery ? ('#' + self.options.gallery) : self.options.gallerySelector);\n $galleries.on('click.zoom', self.options.galleryItem, function (e) {\n\n //Set a class on the currently active gallery image\n if (self.options.galleryActiveClass) {\n $(self.options.galleryItem, $galleries).removeClass(self.options.galleryActiveClass);\n $(this).addClass(self.options.galleryActiveClass);\n }\n //stop any link on the a tag from working\n if (this.tagName === 'A') {\n e.preventDefault();\n }\n\n //call the swap image function\n if ($(this).data('zoom-image')) {\n self.zoomImagePre = $(this).data('zoom-image');\n }\n else {\n self.zoomImagePre = $(this).data('image');\n }\n self.swaptheimage($(this).data('image'), self.zoomImagePre);\n if (this.tagName === 'A') {\n return false;\n }\n });\n },\n refresh: function (length) {\n var self = this;\n\n setTimeout(function () {\n self.fetch(self.imageSrc);\n\n }, length || self.options.refresh);\n },\n fetch: function (imgsrc) {\n //get the image\n var self = this;\n var newImg = new Image();\n newImg.onload = function () {\n //set the large image dimensions - used to calculte ratio's\n self.largeWidth = newImg.width;\n self.largeHeight = newImg.height;\n //once image is loaded start the calls\n self.startZoom();\n self.currentImage = self.imageSrc;\n //let caller know image has been loaded\n self.options.onZoomedImageLoaded(self.$elem);\n };\n self.setImageSource(newImg, imgsrc); // this must be done AFTER setting onload\n\n return;\n },\n setImageSource: function (image, src) {\n //sets an image's source.\n image.src = src;\n },\n startZoom: function () {\n var self = this;\n //get dimensions of the non zoomed image\n self.nzWidth = self.$elem.width();\n self.nzHeight = self.$elem.height();\n\n //activated elements\n self.isWindowActive = false;\n self.isLensActive = false;\n self.isTintActive = false;\n self.overWindow = false;\n\n //CrossFade Wrapper\n if (self.options.imageCrossfade) {\n self.zoomWrap = self.$elem.wrap('
');\n self.$elem.css('position', 'absolute');\n }\n\n self.zoomLock = 1;\n self.scrollingLock = false;\n self.changeBgSize = false;\n self.currentZoomLevel = self.options.zoomLevel;\n\n //get offset of the non zoomed image\n self.nzOffset = self.$elem.offset();\n //calculate the width ratio of the large/small image\n self.widthRatio = (self.largeWidth / self.currentZoomLevel) / self.nzWidth;\n self.heightRatio = (self.largeHeight / self.currentZoomLevel) / self.nzHeight;\n\n function getWindowZoomStyle() {\n return 'overflow: hidden;' +\n 'background-position: 0px 0px;text-align:center;' +\n 'background-color: ' + String(self.options.zoomWindowBgColour) + ';' +\n 'width: ' + String(self.options.zoomWindowWidth) + 'px;' +\n 'height: ' + String(self.options.zoomWindowHeight) + 'px;' +\n 'float: left;' +\n 'background-size: ' + self.largeWidth / self.currentZoomLevel + 'px ' + self.largeHeight / self.currentZoomLevel + 'px;' +\n 'display: none;z-index:100;' +\n 'border: ' + String(self.options.borderSize) + 'px solid ' + self.options.borderColour + ';' +\n 'background-repeat: no-repeat;' +\n 'position: absolute;';\n }\n\n //if window zoom\n if (self.options.zoomType === 'window') {\n self.zoomWindowStyle = getWindowZoomStyle();\n }\n\n function getInnerZoomStyle() {\n //has a border been put on the image? Lets cater for this\n var borderWidth = self.$elem.css('border-left-width');\n\n return 'overflow: hidden;' +\n 'margin-left: ' + String(borderWidth) + ';' +\n 'margin-top: ' + String(borderWidth) + ';' +\n 'background-position: 0px 0px;' +\n 'width: ' + String(self.nzWidth) + 'px;' +\n 'height: ' + String(self.nzHeight) + 'px;' +\n 'float: left;' +\n 'display: none;' +\n 'cursor:' + (self.options.cursor) + ';' +\n 'px solid ' + self.options.borderColour + ';' +\n 'background-repeat: no-repeat;' +\n 'position: absolute;';\n }\n\n //if inner zoom\n if (self.options.zoomType === 'inner') {\n self.zoomWindowStyle = getInnerZoomStyle();\n }\n\n function getWindowLensStyle() {\n var lensHeight, lensWidth;\n // adjust images less than the window height\n\n if (self.nzHeight < self.options.zoomWindowHeight / self.heightRatio) {\n lensHeight = self.nzHeight;\n }\n else {\n lensHeight = String(self.options.zoomWindowHeight / self.heightRatio);\n }\n if (self.largeWidth < self.options.zoomWindowWidth) {\n lensWidth = self.nzWidth;\n }\n else {\n lensWidth = String(self.options.zoomWindowWidth / self.widthRatio);\n }\n\n return 'background-position: 0px 0px;width: ' + String((self.options.zoomWindowWidth) / self.widthRatio) + 'px;' +\n 'height: ' + String((self.options.zoomWindowHeight) / self.heightRatio) +\n 'px;float: right;display: none;' +\n 'overflow: hidden;' +\n 'z-index: 999;' +\n 'opacity:' + (self.options.lensOpacity) + ';filter: alpha(opacity = ' + (self.options.lensOpacity * 100) + '); zoom:1;' +\n 'width:' + lensWidth + 'px;' +\n 'height:' + lensHeight + 'px;' +\n 'background-color:' + (self.options.lensColour) + ';' +\n 'cursor:' + (self.options.cursor) + ';' +\n 'border: ' + (self.options.lensBorderSize) + 'px' +\n ' solid ' + (self.options.lensBorderColour) + ';background-repeat: no-repeat;position: absolute;';\n }\n\n //lens style for window zoom\n if (self.options.zoomType === 'window') {\n self.lensStyle = getWindowLensStyle();\n }\n\n //tint style\n self.tintStyle = 'display: block;' +\n 'position: absolute;' +\n 'background-color: ' + self.options.tintColour + ';' +\n 'filter:alpha(opacity=0);' +\n 'opacity: 0;' +\n 'width: ' + self.nzWidth + 'px;' +\n 'height: ' + self.nzHeight + 'px;';\n\n //lens style for lens zoom with optional round for modern browsers\n self.lensRound = '';\n\n if (self.options.zoomType === 'lens') {\n self.lensStyle = 'background-position: 0px 0px;' +\n 'float: left;display: none;' +\n 'border: ' + String(self.options.borderSize) + 'px solid ' + self.options.borderColour + ';' +\n 'width:' + String(self.options.lensSize) + 'px;' +\n 'height:' + String(self.options.lensSize) + 'px;' +\n 'background-repeat: no-repeat;position: absolute;';\n }\n\n //does not round in all browsers\n if (self.options.lensShape === 'round') {\n self.lensRound = 'border-top-left-radius: ' + String(self.options.lensSize / 2 + self.options.borderSize) + 'px;' +\n 'border-top-right-radius: ' + String(self.options.lensSize / 2 + self.options.borderSize) + 'px;' +\n 'border-bottom-left-radius: ' + String(self.options.lensSize / 2 + self.options.borderSize) + 'px;' +\n 'border-bottom-right-radius: ' + String(self.options.lensSize / 2 + self.options.borderSize) + 'px;';\n }\n\n //create the div's + \"\"\n //self.zoomContainer = $('
').addClass('zoomContainer').css({\"position\":\"relative\", \"height\":self.nzHeight, \"width\":self.nzWidth});\n\n self.zoomContainer =\n $('
');\n $(self.options.zoomContainerAppendTo).append(self.zoomContainer);\n\n //this will add overflow hidden and contrain the lens on lens mode\n if (self.options.containLensZoom && self.options.zoomType === 'lens') {\n self.zoomContainer.css('overflow', 'hidden');\n }\n if (self.options.zoomType !== 'inner') {\n self.zoomLens = $('
 
')\n .appendTo(self.zoomContainer)\n .click(function () {\n self.$elem.trigger('click');\n });\n\n if (self.options.tint) {\n self.tintContainer = $('
').addClass('tintContainer');\n self.zoomTint = $('
');\n\n self.zoomLens.wrap(self.tintContainer);\n\n self.zoomTintcss = self.zoomLens.after(self.zoomTint);\n\n //if tint enabled - set an image to show over the tint\n\n self.zoomTintImage = $('')\n .appendTo(self.zoomLens)\n .click(function () {\n\n self.$elem.trigger('click');\n });\n }\n }\n\n var targetZoomContainer = isNaN(self.options.zoomWindowPosition) ? 'body' : self.zoomContainer;\n //create zoom window\n self.zoomWindow = $('
 
')\n .appendTo(targetZoomContainer).click(function () {\n self.$elem.trigger('click');\n });\n self.zoomWindowContainer = $('
').addClass('zoomWindowContainer').css('width', self.options.zoomWindowWidth);\n self.zoomWindow.wrap(self.zoomWindowContainer);\n\n // self.captionStyle = \"text-align: left;background-color: black;'+\n // 'color: white;font-weight: bold;padding: 10px;font-family: sans-serif;font-size: 11px\";\n // self.zoomCaption = $('
INSERT ALT TAG
').appendTo(self.zoomWindow.parent());\n\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-image', 'url(\"' + self.imageSrc + '\")');\n }\n if (self.options.zoomType === 'window') {\n self.zoomWindow.css('background-image', 'url(\"' + self.imageSrc + '\")');\n }\n if (self.options.zoomType === 'inner') {\n self.zoomWindow.css('background-image', 'url(\"' + self.imageSrc + '\")');\n }\n\n /*-------------------END THE ZOOM WINDOW AND LENS----------------------------------*/\n if (self.options.touchEnabled) {\n //touch events\n self.$elem.bind('touchmove', function (e) {\n e.preventDefault();\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\n self.setPosition(touch);\n });\n self.zoomContainer.bind('touchmove', function (e) {\n if (self.options.zoomType === 'inner') {\n self.showHideWindow('show');\n\n }\n e.preventDefault();\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\n self.setPosition(touch);\n\n });\n self.zoomContainer.bind('touchend', function (e) {\n self.showHideWindow('hide');\n if (self.options.showLens) {\n self.showHideLens('hide');\n }\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.showHideTint('hide');\n }\n });\n\n self.$elem.bind('touchend', function (e) {\n self.showHideWindow('hide');\n if (self.options.showLens) {\n self.showHideLens('hide');\n }\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.showHideTint('hide');\n }\n });\n if (self.options.showLens) {\n self.zoomLens.bind('touchmove', function (e) {\n\n e.preventDefault();\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\n self.setPosition(touch);\n });\n\n self.zoomLens.bind('touchend', function (e) {\n self.showHideWindow('hide');\n if (self.options.showLens) {\n self.showHideLens('hide');\n }\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.showHideTint('hide');\n }\n });\n }\n }\n //Needed to work in IE\n self.$elem.bind('mousemove', function (e) {\n if (self.overWindow === false) {\n self.setElements('show');\n }\n //make sure on orientation change the setposition is not fired\n if (self.lastX !== e.clientX || self.lastY !== e.clientY) {\n self.setPosition(e);\n self.currentLoc = e;\n }\n self.lastX = e.clientX;\n self.lastY = e.clientY;\n\n });\n\n self.zoomContainer.bind('click', self.options.onImageClick);\n\n self.zoomContainer.bind('mousemove', function (e) {\n if (self.overWindow === false) {\n self.setElements('show');\n }\n mouseMoveZoomHandler(e);\n });\n\n function mouseMoveZoomHandler(e) {\n //self.overWindow = true;\n //make sure on orientation change the setposition is not fired\n if (self.lastX !== e.clientX || self.lastY !== e.clientY) {\n self.setPosition(e);\n self.currentLoc = e;\n }\n self.lastX = e.clientX;\n self.lastY = e.clientY;\n }\n\n var elementToTrack = null;\n if (self.options.zoomType !== 'inner') {\n elementToTrack = self.zoomLens;\n }\n if (self.options.tint && self.options.zoomType !== 'inner') {\n elementToTrack = self.zoomTint;\n }\n if (self.options.zoomType === 'inner') {\n elementToTrack = self.zoomWindow;\n }\n\n //register the mouse tracking\n if (elementToTrack) {\n elementToTrack.bind('mousemove', mouseMoveZoomHandler);\n }\n\n // lensFadeOut: 500, zoomTintFadeIn\n self.zoomContainer.add(self.$elem).mouseenter(function () {\n if (self.overWindow === false) {\n self.setElements('show');\n }\n }).mouseleave(function () {\n if (!self.scrollLock) {\n self.setElements('hide');\n self.options.onDestroy(self.$elem);\n }\n });\n //end ove image\n\n if (self.options.zoomType !== 'inner') {\n self.zoomWindow.mouseenter(function () {\n self.overWindow = true;\n self.setElements('hide');\n }).mouseleave(function () {\n self.overWindow = false;\n });\n }\n //end ove image\n\n // var delta = parseInt(e.originalEvent.wheelDelta || -e.originalEvent.detail);\n\n // $(this).empty();\n // return false;\n\n //fix for initial zoom setting\n //if (self.options.zoomLevel !== 1) {\n // \tself.changeZoomLevel(self.currentZoomLevel);\n //}\n //set the min zoomlevel\n if (self.options.minZoomLevel) {\n self.minZoomLevel = self.options.minZoomLevel;\n }\n else {\n self.minZoomLevel = self.options.scrollZoomIncrement * 2;\n }\n\n if (self.options.scrollZoom) {\n self.zoomContainer.add(self.$elem).bind('wheel DOMMouseScroll MozMousePixelScroll', function (e) {\n // in IE there is issue with firing of mouseleave - So check whether still scrolling\n // and on mouseleave check if scrolllock\n self.scrollLock = true;\n clearTimeout($.data(this, 'timer'));\n $.data(this, 'timer', setTimeout(function () {\n self.scrollLock = false;\n //do something\n }, 250));\n\n var theEvent = e.originalEvent.deltaY || e.originalEvent.detail * -1;\n\n //this.scrollTop += ( delta < 0 ? 1 : -1 ) * 30;\n // e.preventDefault();\n\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n\n if (theEvent / 120 > 0) {\n //scrolling up\n if (self.currentZoomLevel >= self.minZoomLevel) {\n self.changeZoomLevel(self.currentZoomLevel - self.options.scrollZoomIncrement);\n }\n }\n else {\n //scrolling down\n\n //Check if it has to maintain original zoom window aspect ratio or not\n if ((!self.fullheight && !self.fullwidth) || !self.options.mantainZoomAspectRatio) {\n if (self.options.maxZoomLevel) {\n if (self.currentZoomLevel <= self.options.maxZoomLevel) {\n self.changeZoomLevel(parseFloat(self.currentZoomLevel) + self.options.scrollZoomIncrement);\n }\n }\n else {\n //andy\n self.changeZoomLevel(parseFloat(self.currentZoomLevel) + self.options.scrollZoomIncrement);\n }\n }\n }\n return false;\n });\n }\n },\n setElements: function (type) {\n var self = this;\n if (!self.options.zoomEnabled) {\n return false;\n }\n if (type === 'show') {\n if (self.isWindowSet) {\n if (self.options.zoomType === 'inner') {\n self.showHideWindow('show');\n }\n if (self.options.zoomType === 'window') {\n self.showHideWindow('show');\n }\n if (self.options.showLens) {\n self.showHideLens('show');\n }\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.showHideTint('show');\n }\n }\n }\n\n if (type === 'hide') {\n if (self.options.zoomType === 'window') {\n self.showHideWindow('hide');\n }\n if (!self.options.tint) {\n self.showHideWindow('hide');\n }\n if (self.options.showLens) {\n self.showHideLens('hide');\n }\n if (self.options.tint) {\n self.showHideTint('hide');\n }\n }\n },\n setPosition: function (e) {\n\n var self = this;\n\n if (!self.options.zoomEnabled) {\n return false;\n }\n\n //recaclc offset each time in case the image moves\n //this can be caused by other on page elements\n self.nzHeight = self.$elem.height();\n self.nzWidth = self.$elem.width();\n self.nzOffset = self.$elem.offset();\n\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.zoomTint.css({\n top: 0,\n left: 0\n });\n }\n //set responsive\n //will checking if the image needs changing before running this code work faster?\n if (self.options.responsive && !self.options.scrollZoom) {\n if (self.options.showLens) {\n var lensHeight, lensWidth;\n if (self.nzHeight < self.options.zoomWindowWidth / self.widthRatio) {\n lensHeight = self.nzHeight;\n }\n else {\n lensHeight = String((self.options.zoomWindowHeight / self.heightRatio));\n }\n if (self.largeWidth < self.options.zoomWindowWidth) {\n lensWidth = self.nzWidth;\n }\n else {\n lensWidth = (self.options.zoomWindowWidth / self.widthRatio);\n }\n self.widthRatio = self.largeWidth / self.nzWidth;\n self.heightRatio = self.largeHeight / self.nzHeight;\n if (self.options.zoomType !== 'lens') {\n //possibly dont need to keep recalcalculating\n //if the lens is heigher than the image, then set lens size to image size\n if (self.nzHeight < self.options.zoomWindowWidth / self.widthRatio) {\n lensHeight = self.nzHeight;\n\n }\n else {\n lensHeight = String((self.options.zoomWindowHeight / self.heightRatio));\n }\n\n if (self.nzWidth < self.options.zoomWindowHeight / self.heightRatio) {\n lensWidth = self.nzWidth;\n }\n else {\n lensWidth = String((self.options.zoomWindowWidth / self.widthRatio));\n }\n\n self.zoomLens.css({\n 'width': lensWidth,\n 'height': lensHeight\n });\n\n if (self.options.tint) {\n self.zoomTintImage.css({\n 'width': self.nzWidth,\n 'height': self.nzHeight\n });\n }\n\n }\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css({\n width: String(self.options.lensSize) + 'px',\n height: String(self.options.lensSize) + 'px'\n });\n }\n //end responsive image change\n }\n }\n\n //container fix\n self.zoomContainer.css({\n top: self.nzOffset.top,\n left: self.nzOffset.left\n });\n self.mouseLeft = parseInt(e.pageX - self.nzOffset.left);\n self.mouseTop = parseInt(e.pageY - self.nzOffset.top);\n //calculate the Location of the Lens\n\n //calculate the bound regions - but only if zoom window\n if (self.options.zoomType === 'window') {\n var zoomLensHeight = self.zoomLens.height() / 2;\n var zoomLensWidth = self.zoomLens.width() / 2;\n self.Etoppos = (self.mouseTop < 0 + zoomLensHeight);\n self.Eboppos = (self.mouseTop > self.nzHeight - zoomLensHeight - (self.options.lensBorderSize * 2));\n self.Eloppos = (self.mouseLeft < 0 + zoomLensWidth);\n self.Eroppos = (self.mouseLeft > (self.nzWidth - zoomLensWidth - (self.options.lensBorderSize * 2)));\n }\n //calculate the bound regions - but only for inner zoom\n if (self.options.zoomType === 'inner') {\n self.Etoppos = (self.mouseTop < ((self.nzHeight / 2) / self.heightRatio));\n self.Eboppos = (self.mouseTop > (self.nzHeight - ((self.nzHeight / 2) / self.heightRatio)));\n self.Eloppos = (self.mouseLeft < 0 + (((self.nzWidth / 2) / self.widthRatio)));\n self.Eroppos = (self.mouseLeft > (self.nzWidth - (self.nzWidth / 2) / self.widthRatio - (self.options.lensBorderSize * 2)));\n }\n\n // if the mouse position of the slider is one of the outerbounds, then hide window and lens\n if (self.mouseLeft < 0 || self.mouseTop < 0 || self.mouseLeft > self.nzWidth || self.mouseTop > self.nzHeight) {\n self.setElements('hide');\n return;\n }\n //else continue with operations\n else {\n //lens options\n if (self.options.showLens) {\n //\t\tself.showHideLens('show');\n //set background position of lens\n self.lensLeftPos = String(Math.floor(self.mouseLeft - self.zoomLens.width() / 2));\n self.lensTopPos = String(Math.floor(self.mouseTop - self.zoomLens.height() / 2));\n }\n //adjust the background position if the mouse is in one of the outer regions\n\n //Top region\n if (self.Etoppos) {\n self.lensTopPos = 0;\n }\n //Left Region\n if (self.Eloppos) {\n self.windowLeftPos = 0;\n self.lensLeftPos = 0;\n self.tintpos = 0;\n }\n //Set bottom and right region for window mode\n if (self.options.zoomType === 'window') {\n if (self.Eboppos) {\n self.lensTopPos = Math.max((self.nzHeight) - self.zoomLens.height() - (self.options.lensBorderSize * 2), 0);\n }\n if (self.Eroppos) {\n self.lensLeftPos = (self.nzWidth - (self.zoomLens.width()) - (self.options.lensBorderSize * 2));\n }\n }\n //Set bottom and right region for inner mode\n if (self.options.zoomType === 'inner') {\n if (self.Eboppos) {\n self.lensTopPos = Math.max(((self.nzHeight) - (self.options.lensBorderSize * 2)), 0);\n }\n if (self.Eroppos) {\n self.lensLeftPos = (self.nzWidth - (self.nzWidth) - (self.options.lensBorderSize * 2));\n }\n }\n //if lens zoom\n if (self.options.zoomType === 'lens') {\n\n self.windowLeftPos = String(((e.pageX - self.nzOffset.left) * self.widthRatio - self.zoomLens.width() / 2) * (-1));\n self.windowTopPos = String(((e.pageY - self.nzOffset.top) * self.heightRatio - self.zoomLens.height() / 2) * (-1));\n self.zoomLens.css('background-position', self.windowLeftPos + 'px ' + self.windowTopPos + 'px');\n\n if (self.changeBgSize) {\n if (self.nzHeight > self.nzWidth) {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n else {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n self.changeBgSize = false;\n }\n\n self.setWindowPosition(e);\n }\n //if tint zoom\n if (self.options.tint && self.options.zoomType !== 'inner') {\n self.setTintPosition(e);\n }\n //set the css background position\n if (self.options.zoomType === 'window') {\n self.setWindowPosition(e);\n }\n if (self.options.zoomType === 'inner') {\n self.setWindowPosition(e);\n }\n if (self.options.showLens) {\n if (self.fullwidth && self.options.zoomType !== 'lens') {\n self.lensLeftPos = 0;\n }\n self.zoomLens.css({\n left: self.lensLeftPos + 'px',\n top: self.lensTopPos + 'px'\n });\n }\n\n } //end else\n },\n showHideZoomContainer: function (change) {\n var self = this;\n if (change === 'show') {\n if (self.zoomContainer) {\n self.zoomContainer.show();\n }\n }\n if (change === 'hide') {\n if (self.zoomContainer) {\n self.zoomContainer.hide();\n }\n }\n },\n showHideWindow: function (change) {\n var self = this;\n if (change === 'show') {\n if (!self.isWindowActive && self.zoomWindow) {\n self.options.onShow(self);\n if (self.options.zoomWindowFadeIn) {\n self.zoomWindow.stop(true, true, false).fadeIn(self.options.zoomWindowFadeIn);\n }\n else {\n self.zoomWindow.show();\n }\n self.isWindowActive = true;\n }\n }\n if (change === 'hide') {\n if (self.isWindowActive) {\n if (self.options.zoomWindowFadeOut) {\n self.zoomWindow.stop(true, true).fadeOut(self.options.zoomWindowFadeOut, function () {\n if (self.loop) {\n //stop moving the zoom window when zoom window is faded out\n clearInterval(self.loop);\n self.loop = false;\n }\n });\n }\n else {\n self.zoomWindow.hide();\n }\n self.isWindowActive = false;\n }\n }\n },\n showHideLens: function (change) {\n var self = this;\n if (change === 'show') {\n if (!self.isLensActive) {\n if (self.options.lensFadeIn && self.zoomLens) {\n self.zoomLens.stop(true, true, false).fadeIn(self.options.lensFadeIn);\n }\n else {\n self.zoomLens.show();\n }\n self.isLensActive = true;\n }\n }\n if (change === 'hide') {\n if (self.isLensActive) {\n if (self.options.lensFadeOut) {\n self.zoomLens.stop(true, true).fadeOut(self.options.lensFadeOut);\n }\n else {\n self.zoomLens.hide();\n }\n self.isLensActive = false;\n }\n }\n },\n showHideTint: function (change) {\n var self = this;\n if (change === 'show') {\n if (!self.isTintActive && self.zoomTint) {\n\n if (self.options.zoomTintFadeIn) {\n self.zoomTint.css('opacity', self.options.tintOpacity).animate().stop(true, true).fadeIn('slow');\n }\n else {\n self.zoomTint.css('opacity', self.options.tintOpacity).animate();\n self.zoomTint.show();\n }\n self.isTintActive = true;\n }\n }\n if (change === 'hide') {\n if (self.isTintActive) {\n\n if (self.options.zoomTintFadeOut) {\n self.zoomTint.stop(true, true).fadeOut(self.options.zoomTintFadeOut);\n }\n else {\n self.zoomTint.hide();\n }\n self.isTintActive = false;\n }\n }\n },\n\n setLensPosition: function (e) {\n },\n\n setWindowPosition: function (e) {\n //return obj.slice( 0, count );\n var self = this;\n\n if (!isNaN(self.options.zoomWindowPosition)) {\n\n switch (self.options.zoomWindowPosition) {\n case 1: //done\n self.windowOffsetTop = (self.options.zoomWindowOffsetY);//DONE - 1\n self.windowOffsetLeft = (+self.nzWidth); //DONE 1, 2, 3, 4, 16\n break;\n case 2:\n if (self.options.zoomWindowHeight > self.nzHeight) { //positive margin\n\n self.windowOffsetTop = ((self.options.zoomWindowHeight / 2) - (self.nzHeight / 2)) * (-1);\n self.windowOffsetLeft = (self.nzWidth); //DONE 1, 2, 3, 4, 16\n }\n else { //negative margin\n $.noop();\n }\n break;\n case 3: //done\n self.windowOffsetTop = (self.nzHeight - self.zoomWindow.height() - (self.options.borderSize * 2)); //DONE 3,9\n self.windowOffsetLeft = (self.nzWidth); //DONE 1, 2, 3, 4, 16\n break;\n case 4: //done\n self.windowOffsetTop = (self.nzHeight); //DONE - 4,5,6,7,8\n self.windowOffsetLeft = (self.nzWidth); //DONE 1, 2, 3, 4, 16\n break;\n case 5: //done\n self.windowOffsetTop = (self.nzHeight); //DONE - 4,5,6,7,8\n self.windowOffsetLeft = (self.nzWidth - self.zoomWindow.width() - (self.options.borderSize * 2)); //DONE - 5,15\n break;\n case 6:\n if (self.options.zoomWindowHeight > self.nzHeight) { //positive margin\n self.windowOffsetTop = (self.nzHeight); //DONE - 4,5,6,7,8\n\n self.windowOffsetLeft = ((self.options.zoomWindowWidth / 2) - (self.nzWidth / 2) + (self.options.borderSize * 2)) * (-1);\n }\n else { //negative margin\n $.noop();\n }\n\n break;\n case 7: //done\n self.windowOffsetTop = (self.nzHeight); //DONE - 4,5,6,7,8\n self.windowOffsetLeft = 0; //DONE 7, 13\n break;\n case 8: //done\n self.windowOffsetTop = (self.nzHeight); //DONE - 4,5,6,7,8\n self.windowOffsetLeft = (self.zoomWindow.width() + (self.options.borderSize * 2)) * (-1); //DONE 8,9,10,11,12\n break;\n case 9: //done\n self.windowOffsetTop = (self.nzHeight - self.zoomWindow.height() - (self.options.borderSize * 2)); //DONE 3,9\n self.windowOffsetLeft = (self.zoomWindow.width() + (self.options.borderSize * 2)) * (-1); //DONE 8,9,10,11,12\n break;\n case 10:\n if (self.options.zoomWindowHeight > self.nzHeight) { //positive margin\n\n self.windowOffsetTop = ((self.options.zoomWindowHeight / 2) - (self.nzHeight / 2)) * (-1);\n self.windowOffsetLeft = (self.zoomWindow.width() + (self.options.borderSize * 2)) * (-1); //DONE 8,9,10,11,12\n }\n else { //negative margin\n $.noop();\n }\n break;\n case 11:\n self.windowOffsetTop = (self.options.zoomWindowOffsetY);\n self.windowOffsetLeft = (self.zoomWindow.width() + (self.options.borderSize * 2)) * (-1); //DONE 8,9,10,11,12\n break;\n case 12: //done\n self.windowOffsetTop = (self.zoomWindow.height() + (self.options.borderSize * 2)) * (-1); //DONE 12,13,14,15,16\n self.windowOffsetLeft = (self.zoomWindow.width() + (self.options.borderSize * 2)) * (-1); //DONE 8,9,10,11,12\n break;\n case 13: //done\n self.windowOffsetTop = (self.zoomWindow.height() + (self.options.borderSize * 2)) * (-1); //DONE 12,13,14,15,16\n self.windowOffsetLeft = (0); //DONE 7, 13\n break;\n case 14:\n if (self.options.zoomWindowHeight > self.nzHeight) { //positive margin\n self.windowOffsetTop = (self.zoomWindow.height() + (self.options.borderSize * 2)) * (-1); //DONE 12,13,14,15,16\n\n self.windowOffsetLeft = ((self.options.zoomWindowWidth / 2) - (self.nzWidth / 2) + (self.options.borderSize * 2)) * (-1);\n }\n else { //negative margin\n $.noop();\n }\n break;\n case 15://done\n self.windowOffsetTop = (self.zoomWindow.height() + (self.options.borderSize * 2)) * (-1); //DONE 12,13,14,15,16\n self.windowOffsetLeft = (self.nzWidth - self.zoomWindow.width() - (self.options.borderSize * 2)); //DONE - 5,15\n break;\n case 16: //done\n self.windowOffsetTop = (self.zoomWindow.height() + (self.options.borderSize * 2)) * (-1); //DONE 12,13,14,15,16\n self.windowOffsetLeft = (self.nzWidth); //DONE 1, 2, 3, 4, 16\n break;\n default: //done\n self.windowOffsetTop = (self.options.zoomWindowOffsetY);//DONE - 1\n self.windowOffsetLeft = (self.nzWidth); //DONE 1, 2, 3, 4, 16\n }\n } //end isNAN\n else {\n //WE CAN POSITION IN A CLASS - ASSUME THAT ANY STRING PASSED IS\n self.externalContainer = $('#' + self.options.zoomWindowPosition);\n self.externalContainerWidth = self.externalContainer.width();\n self.externalContainerHeight = self.externalContainer.height();\n self.externalContainerOffset = self.externalContainer.offset();\n\n self.windowOffsetTop = self.externalContainerOffset.top;//DONE - 1\n self.windowOffsetLeft = self.externalContainerOffset.left; //DONE 1, 2, 3, 4, 16\n\n }\n self.isWindowSet = true;\n self.windowOffsetTop = self.windowOffsetTop + self.options.zoomWindowOffsetY;\n self.windowOffsetLeft = self.windowOffsetLeft + self.options.zoomWindowOffsetX;\n\n self.zoomWindow.css({\n top: self.windowOffsetTop,\n left: self.windowOffsetLeft\n });\n\n if (self.options.zoomType === 'inner') {\n self.zoomWindow.css({\n top: 0,\n left: 0\n });\n\n }\n\n self.windowLeftPos = String(((e.pageX - self.nzOffset.left) * self.widthRatio - self.zoomWindow.width() / 2) * (-1));\n self.windowTopPos = String(((e.pageY - self.nzOffset.top) * self.heightRatio - self.zoomWindow.height() / 2) * (-1));\n if (self.Etoppos) {\n self.windowTopPos = 0;\n }\n if (self.Eloppos) {\n self.windowLeftPos = 0;\n }\n if (self.Eboppos) {\n self.windowTopPos = (self.largeHeight / self.currentZoomLevel - self.zoomWindow.height()) * (-1);\n }\n if (self.Eroppos) {\n self.windowLeftPos = ((self.largeWidth / self.currentZoomLevel - self.zoomWindow.width()) * (-1));\n }\n\n //stops micro movements\n if (self.fullheight) {\n self.windowTopPos = 0;\n }\n if (self.fullwidth) {\n self.windowLeftPos = 0;\n }\n\n //set the css background position\n if (self.options.zoomType === 'window' || self.options.zoomType === 'inner') {\n\n if (self.zoomLock === 1) {\n //overrides for images not zoomable\n if (self.widthRatio <= 1) {\n self.windowLeftPos = 0;\n }\n if (self.heightRatio <= 1) {\n self.windowTopPos = 0;\n }\n }\n // adjust images less than the window height\n\n if (self.options.zoomType === 'window') {\n if (self.largeHeight < self.options.zoomWindowHeight) {\n self.windowTopPos = 0;\n }\n if (self.largeWidth < self.options.zoomWindowWidth) {\n self.windowLeftPos = 0;\n }\n }\n //set the zoomwindow background position\n if (self.options.easing) {\n\n // if(self.changeZoom){\n // clearInterval(self.loop);\n // self.changeZoom = false;\n // self.loop = false;\n\n // }\n //set the pos to 0 if not set\n if (!self.xp) {\n self.xp = 0;\n }\n if (!self.yp) {\n self.yp = 0;\n }\n //if loop not already started, then run it\n if (!self.loop) {\n self.loop = setInterval(function () {\n //using zeno's paradox\n\n self.xp += (self.windowLeftPos - self.xp) / self.options.easingAmount;\n self.yp += (self.windowTopPos - self.yp) / self.options.easingAmount;\n if (self.scrollingLock) {\n\n clearInterval(self.loop);\n self.xp = self.windowLeftPos;\n self.yp = self.windowTopPos;\n\n self.xp = ((e.pageX - self.nzOffset.left) * self.widthRatio - self.zoomWindow.width() / 2) * (-1);\n self.yp = (((e.pageY - self.nzOffset.top) * self.heightRatio - self.zoomWindow.height() / 2) * (-1));\n\n if (self.changeBgSize) {\n if (self.nzHeight > self.nzWidth) {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n else {\n if (self.options.zoomType !== 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n\n /*\n if(!self.bgxp){self.bgxp = self.largeWidth/self.newvalue;}\n if(!self.bgyp){self.bgyp = self.largeHeight/self.newvalue ;}\n if (!self.bgloop){\n self.bgloop = setInterval(function(){\n\n self.bgxp += (self.largeWidth/self.newvalue - self.bgxp) / self.options.easingAmount;\n self.bgyp += (self.largeHeight/self.newvalue - self.bgyp) / self.options.easingAmount;\n\n self.zoomWindow.css('background-size', self.bgxp + 'px ' + self.bgyp + 'px' );\n\n\n }, 16);\n\n }\n */\n self.changeBgSize = false;\n }\n\n self.zoomWindow.css('background-position', self.windowLeftPos + 'px ' + self.windowTopPos + 'px');\n self.scrollingLock = false;\n self.loop = false;\n\n }\n else if (Math.round(Math.abs(self.xp - self.windowLeftPos) + Math.abs(self.yp - self.windowTopPos)) < 1) {\n //stops micro movements\n clearInterval(self.loop);\n self.zoomWindow.css('background-position', self.windowLeftPos + 'px ' + self.windowTopPos + 'px');\n self.loop = false;\n }\n else {\n if (self.changeBgSize) {\n if (self.nzHeight > self.nzWidth) {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n else {\n if (self.options.zoomType !== 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n self.changeBgSize = false;\n }\n\n self.zoomWindow.css('background-position', self.xp + 'px ' + self.yp + 'px');\n }\n }, 16);\n }\n }\n else {\n if (self.changeBgSize) {\n if (self.nzHeight > self.nzWidth) {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n else {\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n if ((self.largeHeight / self.newvaluewidth) < self.options.zoomWindowHeight) {\n\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvaluewidth + 'px ' +\n self.largeHeight / self.newvaluewidth + 'px');\n }\n else {\n\n self.zoomWindow.css('background-size',\n self.largeWidth / self.newvalueheight + 'px ' +\n self.largeHeight / self.newvalueheight + 'px');\n }\n\n }\n self.changeBgSize = false;\n }\n\n self.zoomWindow.css('background-position',\n self.windowLeftPos + 'px ' +\n self.windowTopPos + 'px');\n }\n }\n },\n\n setTintPosition: function (e) {\n var self = this;\n var zoomLensWidth = self.zoomLens.width();\n var zoomLensHeight = self.zoomLens.height();\n self.nzOffset = self.$elem.offset();\n self.tintpos = String(((e.pageX - self.nzOffset.left) - (zoomLensWidth / 2)) * (-1));\n self.tintposy = String(((e.pageY - self.nzOffset.top) - zoomLensHeight / 2) * (-1));\n if (self.Etoppos) {\n self.tintposy = 0;\n }\n if (self.Eloppos) {\n self.tintpos = 0;\n }\n if (self.Eboppos) {\n self.tintposy = (self.nzHeight - zoomLensHeight - (self.options.lensBorderSize * 2)) * (-1);\n }\n if (self.Eroppos) {\n self.tintpos = ((self.nzWidth - zoomLensWidth - (self.options.lensBorderSize * 2)) * (-1));\n }\n if (self.options.tint) {\n //stops micro movements\n if (self.fullheight) {\n self.tintposy = 0;\n\n }\n if (self.fullwidth) {\n self.tintpos = 0;\n\n }\n self.zoomTintImage.css({\n 'left': self.tintpos + 'px',\n 'top': self.tintposy + 'px'\n });\n }\n },\n\n swaptheimage: function (smallimage, largeimage) {\n var self = this;\n var newImg = new Image();\n\n if (self.options.loadingIcon) {\n self.spinner = $('
');\n self.$elem.after(self.spinner);\n }\n\n self.options.onImageSwap(self.$elem);\n\n newImg.onload = function () {\n self.largeWidth = newImg.width;\n self.largeHeight = newImg.height;\n self.zoomImage = largeimage;\n self.zoomWindow.css('background-size', self.largeWidth + 'px ' + self.largeHeight + 'px');\n\n self.swapAction(smallimage, largeimage);\n return;\n };\n self.setImageSource(newImg, largeimage); // this must be done AFTER setting onload\n },\n\n swapAction: function (smallimage, largeimage) {\n var self = this;\n var elemWidth = self.$elem.width();\n var elemHeight = self.$elem.height();\n var newImg2 = new Image();\n newImg2.onload = function () {\n //re-calculate values\n self.nzHeight = newImg2.height;\n self.nzWidth = newImg2.width;\n self.options.onImageSwapComplete(self.$elem);\n\n self.doneCallback();\n return;\n };\n self.setImageSource(newImg2, smallimage);\n\n //reset the zoomlevel to that initially set in options\n self.currentZoomLevel = self.options.zoomLevel;\n self.options.maxZoomLevel = false;\n\n //swaps the main image\n //self.$elem.attr('src',smallimage);\n //swaps the zoom image\n if (self.options.zoomType === 'lens') {\n self.zoomLens.css('background-image', 'url(\"' + largeimage + '\")');\n }\n if (self.options.zoomType === 'window') {\n self.zoomWindow.css('background-image', 'url(\"' + largeimage + '\")');\n }\n if (self.options.zoomType === 'inner') {\n self.zoomWindow.css('background-image', 'url(\"' + largeimage + '\")');\n }\n\n self.currentImage = largeimage;\n\n if (self.options.imageCrossfade) {\n var oldImg = self.$elem;\n var newImg = oldImg.clone();\n self.$elem.attr('src', smallimage);\n self.$elem.after(newImg);\n newImg.stop(true).fadeOut(self.options.imageCrossfade, function () {\n $(this).remove();\n });\n\n // if(self.options.zoomType === 'inner'){\n //remove any attributes on the cloned image so we can resize later\n self.$elem.width('auto').removeAttr('width');\n self.$elem.height('auto').removeAttr('height');\n // }\n\n oldImg.fadeIn(self.options.imageCrossfade);\n\n if (self.options.tint && self.options.zoomType !== 'inner') {\n\n var oldImgTint = self.zoomTintImage;\n var newImgTint = oldImgTint.clone();\n self.zoomTintImage.attr('src', largeimage);\n self.zoomTintImage.after(newImgTint);\n newImgTint.stop(true).fadeOut(self.options.imageCrossfade, function () {\n $(this).remove();\n });\n\n oldImgTint.fadeIn(self.options.imageCrossfade);\n\n //self.zoomTintImage.attr('width',elem.data('image'));\n\n //resize the tint window\n self.zoomTint.css({\n height: elemHeight,\n width: elemWidth\n });\n }\n\n self.zoomContainer.css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n\n if (self.options.zoomType === 'inner') {\n if (!self.options.constrainType) {\n self.zoomWrap.parent().css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n\n self.zoomWindow.css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n }\n }\n\n if (self.options.imageCrossfade) {\n self.zoomWrap.css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n }\n }\n else {\n self.$elem.attr('src', smallimage);\n if (self.options.tint) {\n self.zoomTintImage.attr('src', largeimage);\n //self.zoomTintImage.attr('width',elem.data('image'));\n self.zoomTintImage.attr('height', elemHeight);\n //self.zoomTintImage.attr('src') = elem.data('image');\n self.zoomTintImage.css('height', elemHeight);\n self.zoomTint.css('height', elemHeight);\n\n }\n self.zoomContainer.css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n\n if (self.options.imageCrossfade) {\n self.zoomWrap.css({\n 'height': elemHeight,\n 'width': elemWidth\n });\n }\n }\n if (self.options.constrainType) {\n\n //This will contrain the image proportions\n if (self.options.constrainType === 'height') {\n\n var autoWDimension = {\n 'height': self.options.constrainSize,\n 'width': 'auto'\n };\n self.zoomContainer.css(autoWDimension);\n\n if (self.options.imageCrossfade) {\n self.zoomWrap.css(autoWDimension);\n self.constwidth = self.zoomWrap.width();\n }\n else {\n self.$elem.css(autoWDimension);\n self.constwidth = elemWidth;\n }\n\n var constWDim = {\n 'height': self.options.constrainSize,\n 'width': self.constwidth\n };\n if (self.options.zoomType === 'inner') {\n\n self.zoomWrap.parent().css(constWDim);\n self.zoomWindow.css(constWDim);\n }\n if (self.options.tint) {\n self.tintContainer.css(constWDim);\n self.zoomTint.css(constWDim);\n self.zoomTintImage.css(constWDim);\n }\n\n }\n if (self.options.constrainType === 'width') {\n var autoHDimension = {\n 'height': 'auto',\n 'width': self.options.constrainSize\n };\n self.zoomContainer.css(autoHDimension);\n\n if (self.options.imageCrossfade) {\n self.zoomWrap.css(autoHDimension);\n self.constheight = self.zoomWrap.height();\n }\n else {\n self.$elem.css(autoHDimension);\n self.constheight = elemHeight;\n }\n\n var constHDim = {\n 'height': self.constheight,\n 'width': self.options.constrainSize\n };\n if (self.options.zoomType === 'inner') {\n self.zoomWrap.parent().css(constHDim);\n self.zoomWindow.css(constHDim);\n }\n if (self.options.tint) {\n self.tintContainer.css(constHDim);\n self.zoomTint.css(constHDim);\n self.zoomTintImage.css(constHDim);\n }\n }\n }\n },\n\n doneCallback: function () {\n var self = this;\n if (self.options.loadingIcon) {\n self.spinner.hide();\n }\n\n self.nzOffset = self.$elem.offset();\n self.nzWidth = self.$elem.width();\n self.nzHeight = self.$elem.height();\n\n // reset the zoomlevel back to default\n self.currentZoomLevel = self.options.zoomLevel;\n\n //ratio of the large to small image\n self.widthRatio = self.largeWidth / self.nzWidth;\n self.heightRatio = self.largeHeight / self.nzHeight;\n\n //NEED TO ADD THE LENS SIZE FOR ROUND\n // adjust images less than the window height\n if (self.options.zoomType === 'window') {\n var lensHeight, lensWidth;\n\n if (self.nzHeight < self.options.zoomWindowHeight / self.heightRatio) {\n lensHeight = self.nzHeight;\n\n }\n else {\n lensHeight = String((self.options.zoomWindowHeight / self.heightRatio));\n }\n\n if (self.nzWidth < self.options.zoomWindowWidth) {\n lensWidth = self.nzWidth;\n }\n else {\n lensWidth = (self.options.zoomWindowWidth / self.widthRatio);\n }\n\n if (self.zoomLens) {\n self.zoomLens.css({\n 'width': lensWidth,\n 'height': lensHeight\n });\n }\n }\n },\n\n getCurrentImage: function () {\n var self = this;\n return self.zoomImage;\n },\n\n getGalleryList: function () {\n var self = this;\n //loop through the gallery options and set them in list for fancybox\n self.gallerylist = [];\n if (self.options.gallery) {\n $('#' + self.options.gallery + ' a').each(function () {\n\n var imgSrc = '';\n if ($(this).data('zoom-image')) {\n imgSrc = $(this).data('zoom-image');\n }\n else if ($(this).data('image')) {\n imgSrc = $(this).data('image');\n }\n //put the current image at the start\n if (imgSrc === self.zoomImage) {\n self.gallerylist.unshift({\n href: '' + imgSrc + '',\n title: $(this).find('img').attr('title')\n });\n }\n else {\n self.gallerylist.push({\n href: '' + imgSrc + '',\n title: $(this).find('img').attr('title')\n });\n }\n });\n }\n //if no gallery - return current image\n else {\n self.gallerylist.push({\n href: '' + self.zoomImage + '',\n title: $(this).find('img').attr('title')\n });\n }\n return self.gallerylist;\n },\n\n changeZoomLevel: function (value) {\n var self = this;\n\n //flag a zoom, so can adjust the easing during setPosition\n self.scrollingLock = true;\n\n //round to two decimal places\n self.newvalue = parseFloat(value).toFixed(2);\n var newvalue = self.newvalue;\n\n //maxwidth & Maxheight of the image\n var maxheightnewvalue = self.largeHeight / ((self.options.zoomWindowHeight / self.nzHeight) * self.nzHeight);\n var maxwidthtnewvalue = self.largeWidth / ((self.options.zoomWindowWidth / self.nzWidth) * self.nzWidth);\n\n //calculate new heightratio\n if (self.options.zoomType !== 'inner') {\n if (maxheightnewvalue <= newvalue) {\n self.heightRatio = (self.largeHeight / maxheightnewvalue) / self.nzHeight;\n self.newvalueheight = maxheightnewvalue;\n self.fullheight = true;\n }\n else {\n self.heightRatio = (self.largeHeight / newvalue) / self.nzHeight;\n self.newvalueheight = newvalue;\n self.fullheight = false;\n }\n\n // calculate new width ratio\n\n if (maxwidthtnewvalue <= newvalue) {\n self.widthRatio = (self.largeWidth / maxwidthtnewvalue) / self.nzWidth;\n self.newvaluewidth = maxwidthtnewvalue;\n self.fullwidth = true;\n }\n else {\n self.widthRatio = (self.largeWidth / newvalue) / self.nzWidth;\n self.newvaluewidth = newvalue;\n self.fullwidth = false;\n }\n if (self.options.zoomType === 'lens') {\n if (maxheightnewvalue <= newvalue) {\n self.fullwidth = true;\n self.newvaluewidth = maxheightnewvalue;\n } else {\n self.widthRatio = (self.largeWidth / newvalue) / self.nzWidth;\n self.newvaluewidth = newvalue;\n\n self.fullwidth = false;\n }\n }\n }\n\n if (self.options.zoomType === 'inner') {\n maxheightnewvalue = parseFloat(self.largeHeight / self.nzHeight).toFixed(2);\n maxwidthtnewvalue = parseFloat(self.largeWidth / self.nzWidth).toFixed(2);\n if (newvalue > maxheightnewvalue) {\n newvalue = maxheightnewvalue;\n }\n if (newvalue > maxwidthtnewvalue) {\n newvalue = maxwidthtnewvalue;\n }\n\n if (maxheightnewvalue <= newvalue) {\n self.heightRatio = (self.largeHeight / newvalue) / self.nzHeight;\n if (newvalue > maxheightnewvalue) {\n self.newvalueheight = maxheightnewvalue;\n } else {\n self.newvalueheight = newvalue;\n }\n self.fullheight = true;\n }\n else {\n self.heightRatio = (self.largeHeight / newvalue) / self.nzHeight;\n\n if (newvalue > maxheightnewvalue) {\n\n self.newvalueheight = maxheightnewvalue;\n } else {\n self.newvalueheight = newvalue;\n }\n self.fullheight = false;\n }\n\n if (maxwidthtnewvalue <= newvalue) {\n\n self.widthRatio = (self.largeWidth / newvalue) / self.nzWidth;\n if (newvalue > maxwidthtnewvalue) {\n\n self.newvaluewidth = maxwidthtnewvalue;\n } else {\n self.newvaluewidth = newvalue;\n }\n\n self.fullwidth = true;\n }\n else {\n self.widthRatio = (self.largeWidth / newvalue) / self.nzWidth;\n self.newvaluewidth = newvalue;\n self.fullwidth = false;\n }\n } //end inner\n var scrcontinue = false;\n\n if (self.options.zoomType === 'inner') {\n if (self.nzWidth >= self.nzHeight) {\n if (self.newvaluewidth <= maxwidthtnewvalue) {\n scrcontinue = true;\n }\n else {\n scrcontinue = false;\n self.fullheight = true;\n self.fullwidth = true;\n }\n }\n if (self.nzHeight > self.nzWidth) {\n if (self.newvaluewidth <= maxwidthtnewvalue) {\n scrcontinue = true;\n }\n else {\n scrcontinue = false;\n self.fullheight = true;\n self.fullwidth = true;\n }\n }\n }\n\n if (self.options.zoomType !== 'inner') {\n scrcontinue = true;\n }\n\n if (scrcontinue) {\n self.zoomLock = 0;\n self.changeZoom = true;\n\n //if lens height is less than image height\n if (((self.options.zoomWindowHeight) / self.heightRatio) <= self.nzHeight) {\n self.currentZoomLevel = self.newvalueheight;\n if (self.options.zoomType !== 'lens' && self.options.zoomType !== 'inner') {\n self.changeBgSize = true;\n self.zoomLens.css('height', String(self.options.zoomWindowHeight / self.heightRatio) + 'px');\n }\n if (self.options.zoomType === 'lens' || self.options.zoomType === 'inner') {\n self.changeBgSize = true;\n }\n }\n\n if ((self.options.zoomWindowWidth / self.widthRatio) <= self.nzWidth) {\n if (self.options.zoomType !== 'inner') {\n if (self.newvaluewidth > self.newvalueheight) {\n self.currentZoomLevel = self.newvaluewidth;\n }\n }\n\n if (self.options.zoomType !== 'lens' && self.options.zoomType !== 'inner') {\n self.changeBgSize = true;\n\n self.zoomLens.css('width', String(self.options.zoomWindowWidth / self.widthRatio) + 'px');\n }\n if (self.options.zoomType === 'lens' || self.options.zoomType === 'inner') {\n self.changeBgSize = true;\n }\n\n }\n if (self.options.zoomType === 'inner') {\n self.changeBgSize = true;\n\n if (self.nzWidth > self.nzHeight) {\n self.currentZoomLevel = self.newvaluewidth;\n }\n if (self.nzHeight > self.nzWidth) {\n self.currentZoomLevel = self.newvaluewidth;\n }\n }\n } //under\n\n //sets the boundry change, called in setWindowPos\n self.setPosition(self.currentLoc);\n //\n },\n\n closeAll: function () {\n var self = this;\n if (self.zoomWindow) {\n self.zoomWindow.hide();\n }\n if (self.zoomLens) {\n self.zoomLens.hide();\n }\n if (self.zoomTint) {\n self.zoomTint.hide();\n }\n },\n\n changeState: function (value) {\n var self = this;\n if (value === 'enable') {\n self.options.zoomEnabled = true;\n }\n if (value === 'disable') {\n self.options.zoomEnabled = false;\n }\n },\n\n responsiveConfig: function (options) {\n if (options.respond && options.respond.length > 0) {\n return $.extend({}, options, this.configByScreenWidth(options));\n }\n return options;\n },\n\n configByScreenWidth: function (options) {\n var screenWidth = $(window).width();\n\n var config = $.grep(options.respond, function (item) {\n var range = item.range.split('-');\n return (screenWidth >= range[0]) && (screenWidth <= range[1]);\n });\n\n if (config.length > 0) {\n return config[0];\n } else {\n return options;\n }\n }\n };\n\n $.fn.ezPlus = function (options) {\n return this.each(function () {\n var elevate = Object.create(EZP);\n\n elevate.init(options, this);\n\n $.data(this, 'ezPlus', elevate);\n\n });\n };\n\n $.fn.ezPlus.options = {\n borderColour: '#888',\n borderSize: 4,\n constrainSize: false, //in pixels the dimensions you want to constrain on\n constrainType: false, //width or height\n containLensZoom: false,\n cursor: 'inherit', // user should set to what they want the cursor as, if they have set a click function\n debug: false,\n easing: false,\n easingAmount: 12,\n enabled: true,\n\n gallery: false,\n galleryActiveClass: 'zoomGalleryActive',\n gallerySelector: false,\n galleryItem: 'a',\n\n imageCrossfade: false,\n\n lensBorderColour: '#000',\n lensBorderSize: 1,\n lensColour: 'white', //colour of the lens background\n lensFadeIn: false,\n lensFadeOut: false,\n lensOpacity: 0.4, //opacity of the lens\n lensShape: 'square', //can be 'round'\n lensSize: 200,\n lenszoom: false,\n\n loadingIcon: false, //http://www.example.com/spinner.gif\n\n // This change will allow to decide if you want to decrease\n // zoom of one of the dimensions once the other reached it's top value,\n // or keep the aspect ratio, default behaviour still being as always,\n // allow to continue zooming out, so it keeps retrocompatibility.\n mantainZoomAspectRatio: false,\n maxZoomLevel: false,\n minZoomLevel: false,\n\n onComplete: $.noop,\n onDestroy: $.noop,\n onImageClick: $.noop,\n onImageSwap: $.noop,\n onImageSwapComplete: $.noop,\n onShow: $.noop,\n onZoomedImageLoaded: $.noop,\n\n preloading: 1, //by default, load all the images, if 0, then only load images after activated (PLACEHOLDER FOR NEXT VERSION)\n respond: [],\n responsive: true,\n scrollZoom: false, //allow zoom on mousewheel, true to activate\n scrollZoomIncrement: 0.1, //steps of the scrollzoom\n showLens: true,\n tint: false, //enable the tinting\n tintColour: '#333', //default tint color, can be anything, red, #ccc, rgb(0,0,0)\n tintOpacity: 0.4, //opacity of the tint\n touchEnabled: true,\n\n zoomActivation: 'hover', // Can also be click (PLACEHOLDER FOR NEXT VERSION)\n zoomContainerAppendTo: 'body', //zoom container parent selector\n zoomLevel: 1, //default zoom level of image\n zoomTintFadeIn: false,\n zoomTintFadeOut: false,\n zoomType: 'window', //window is default, also 'lens' available -\n zoomWindowAlwaysShow: false,\n zoomWindowBgColour: '#fff',\n zoomWindowFadeIn: false,\n zoomWindowFadeOut: false,\n zoomWindowHeight: 400,\n zoomWindowOffsetX: 0,\n zoomWindowOffsetY: 0,\n zoomWindowPosition: 1,\n zoomWindowWidth: 400,\n zoomEnabled: true, //false disables zoomwindow from showing\n zIndex: 999\n };\n\n})(jQuery, window, document);\n","// ==================================================\r\n// fancyBox v3.2.8\r\n//\r\n// Licensed GPLv3 for open source use\r\n// or fancyBox Commercial License for commercial use\r\n//\r\n// http://fancyapps.com/fancybox/\r\n// Copyright 2017 fancyApps\r\n//\r\n// ==================================================\r\n;(function (window, document, $, undefined) {\r\n 'use strict';\r\n\r\n // If there's no jQuery, fancyBox can't work\r\n // =========================================\r\n\r\n if ( !$ ) {\r\n return;\r\n }\r\n\r\n // Check if fancyBox is already initialized\r\n // ========================================\r\n\r\n if ( $.fn.fancybox ) {\r\n\r\n if ( 'console' in window ) {\r\n console.log( 'fancyBox already initialized' );\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Private default settings\r\n // ========================\r\n\r\n var defaults = {\r\n\r\n // Enable infinite gallery navigation\r\n loop : false,\r\n\r\n // Space around image, ignored if zoomed-in or viewport width is smaller than 800px\r\n margin : [44, 0],\r\n\r\n // Horizontal space between slides\r\n gutter : 50,\r\n\r\n // Enable keyboard navigation\r\n keyboard : true,\r\n\r\n // Should display navigation arrows at the screen edges\r\n arrows : true,\r\n\r\n // Should display infobar (counter and arrows at the top)\r\n infobar : true,\r\n\r\n // Should display toolbar (buttons at the top)\r\n toolbar : true,\r\n\r\n // What buttons should appear in the top right corner.\r\n // Buttons will be created using templates from `btnTpl` option\r\n // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\r\n buttons : [\r\n 'slideShow',\r\n 'fullScreen',\r\n 'thumbs',\r\n 'share',\r\n //'download',\r\n //'zoom',\r\n 'close'\r\n ],\r\n\r\n // Detect \"idle\" time in seconds\r\n idleTime : 3,\r\n\r\n // Should display buttons at top right corner of the content\r\n // If 'auto' - they will be created for content having type 'html', 'inline' or 'ajax'\r\n // Use template from `btnTpl.smallBtn` for customization\r\n smallBtn : 'auto',\r\n\r\n // Disable right-click and use simple image protection for images\r\n protect : false,\r\n\r\n // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\r\n modal : false,\r\n\r\n image : {\r\n\r\n // Wait for images to load before displaying\r\n // Requires predefined image dimensions\r\n // If 'auto' - will zoom in thumbnail if 'width' and 'height' attributes are found\r\n preload : \"auto\"\r\n\r\n },\r\n\r\n ajax : {\r\n\r\n // Object containing settings for ajax request\r\n settings : {\r\n\r\n // This helps to indicate that request comes from the modal\r\n // Feel free to change naming\r\n data : {\r\n fancybox : true\r\n }\r\n }\r\n\r\n },\r\n\r\n iframe : {\r\n\r\n // Iframe template\r\n tpl : '',\r\n\r\n // Preload iframe before displaying it\r\n // This allows to calculate iframe content width and height\r\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\r\n preload : true,\r\n\r\n // Custom CSS styling for iframe wrapping element\r\n // You can use this to set custom iframe dimensions\r\n css : {},\r\n\r\n // Iframe tag attributes\r\n attr : {\r\n scrolling : 'auto'\r\n }\r\n\r\n },\r\n\r\n // Default content type if cannot be detected automatically\r\n defaultType : 'image',\r\n\r\n // Open/close animation type\r\n // Possible values:\r\n // false - disable\r\n // \"zoom\" - zoom images from/to thumbnail\r\n // \"fade\"\r\n // \"zoom-in-out\"\r\n //\r\n animationEffect : \"zoom\",\r\n\r\n // Duration in ms for open/close animation\r\n animationDuration : 500,\r\n\r\n // Should image change opacity while zooming\r\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\r\n zoomOpacity : \"auto\",\r\n\r\n // Transition effect between slides\r\n //\r\n // Possible values:\r\n // false - disable\r\n // \"fade'\r\n // \"slide'\r\n // \"circular'\r\n // \"tube'\r\n // \"zoom-in-out'\r\n // \"rotate'\r\n //\r\n transitionEffect : \"fade\",\r\n\r\n // Duration in ms for transition animation\r\n transitionDuration : 366,\r\n\r\n // Custom CSS class for slide element\r\n slideClass : '',\r\n\r\n // Custom CSS class for layout\r\n baseClass : '',\r\n\r\n // Base template for layout\r\n baseTpl\t:\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n ' / ' +\r\n '
' +\r\n '
{{buttons}}
' +\r\n '
{{arrows}}
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
',\r\n\r\n // Loading indicator template\r\n spinnerTpl : '
',\r\n\r\n // Error message template\r\n errorTpl : '

{{ERROR}}

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

Hi!

' );\r\n\r\n obj = {\r\n type : 'html',\r\n src : item + ''\r\n };\r\n\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend( true, {}, self.opts, opts );\r\n\r\n // Do not merge buttons array\r\n if ( $.isArray( opts.buttons ) ) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || '';\r\n\r\n if ( !type && src ) {\r\n if ( src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i) ) {\r\n type = 'image';\r\n\r\n } else if ( src.match(/\\.(pdf)((\\?|#).*)?$/i) ) {\r\n type = 'pdf';\r\n\r\n } else if ( src.charAt(0) === '#' ) {\r\n type = 'inline';\r\n }\r\n }\r\n\r\n if ( type ) {\r\n obj.type = type;\r\n\r\n } else {\r\n self.trigger( 'objectNeedsType', obj );\r\n }\r\n\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n // Check if $orig and $thumb objects exist\r\n if ( obj.opts.$orig && !obj.opts.$orig.length ) {\r\n delete obj.opts.$orig;\r\n }\r\n\r\n if ( !obj.opts.$thumb && obj.opts.$orig ) {\r\n obj.opts.$thumb = obj.opts.$orig.find( 'img:first' );\r\n }\r\n\r\n if ( obj.opts.$thumb && !obj.opts.$thumb.length ) {\r\n delete obj.opts.$thumb;\r\n }\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item ..\r\n if ( $.type( obj.opts.caption ) === 'function' ) {\r\n obj.opts.caption = obj.opts.caption.apply( item, [ self, obj ] );\r\n }\r\n\r\n if ( $.type( self.opts.caption ) === 'function' ) {\r\n obj.opts.caption = self.opts.caption.apply( item, [ self, obj ] );\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if ( !( obj.opts.caption instanceof $ ) ) {\r\n obj.opts.caption = obj.opts.caption === undefined ? '' : obj.opts.caption + '';\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if ( type === 'ajax' ) {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if ( srcParts.length > 1 ) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n if ( obj.opts.smallBtn == 'auto' ) {\r\n\r\n if ( $.inArray( type, ['html', 'inline', 'ajax'] ) > -1 ) {\r\n obj.opts.toolbar = false;\r\n obj.opts.smallBtn = true;\r\n\r\n } else {\r\n obj.opts.smallBtn = false;\r\n }\r\n\r\n }\r\n\r\n // If the type is \"pdf\", then simply load file into iframe\r\n if ( type === 'pdf' ) {\r\n obj.type = 'iframe';\r\n\r\n obj.opts.iframe.preload = false;\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if ( obj.opts.modal ) {\r\n\r\n obj.opts = $.extend(true, obj.opts, {\r\n // Remove buttons\r\n infobar : 0,\r\n toolbar : 0,\r\n\r\n smallBtn : 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard : 0,\r\n\r\n // Disable some modules\r\n slideShow : 0,\r\n fullScreen : 0,\r\n thumbs : 0,\r\n touch : 0,\r\n\r\n // Disable click event handlers\r\n clickContent : false,\r\n clickSlide : false,\r\n clickOutside : false,\r\n dblclickContent : false,\r\n dblclickSlide : false,\r\n dblclickOutside : false\r\n });\r\n\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push( obj );\r\n\r\n });\r\n\r\n },\r\n\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detect idle\r\n // ======================================\r\n\r\n addEvents : function() {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n self.$refs.container.on('click.fb-close', '[data-fancybox-close]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close( e );\r\n\r\n }).on( 'click.fb-prev touchend.fb-prev', '[data-fancybox-prev]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n }).on( 'click.fb-next touchend.fb-next', '[data-fancybox-next]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n }).on( 'click.fb', '[data-fancybox-zoom]', function(e) {\r\n // Click handler for zoom button\r\n self[ self.isScaledDown() ? 'scaleToActual' : 'scaleToFit' ]();\r\n });\r\n\r\n\r\n // Handle page scrolling and browser resizing\r\n $W.on('orientationchange.fb resize.fb', function(e) {\r\n\r\n if ( e && e.originalEvent && e.originalEvent.type === \"resize\" ) {\r\n\r\n requestAFrame(function() {\r\n self.update();\r\n });\r\n\r\n } else {\r\n\r\n self.$refs.stage.hide();\r\n\r\n setTimeout(function() {\r\n self.$refs.stage.show();\r\n\r\n self.update();\r\n }, 600);\r\n\r\n }\r\n\r\n });\r\n\r\n // Trap keyboard focus inside of the modal, so the user does not accidentally tab outside of the modal\r\n // (a.k.a. \"escaping the modal\")\r\n $D.on('focusin.fb', function(e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null;\r\n\r\n if ( instance.isClosing || !instance.current || !instance.current.opts.trapFocus || $( e.target ).hasClass( 'fancybox-container' ) || $( e.target ).is( document ) ) {\r\n return;\r\n }\r\n\r\n if ( instance && $( e.target ).css( 'position' ) !== 'fixed' && !instance.$refs.container.has( e.target ).length ) {\r\n e.stopPropagation();\r\n\r\n instance.focus();\r\n\r\n // Sometimes page gets scrolled, set it back\r\n $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft );\r\n }\r\n });\r\n\r\n\r\n // Enable keyboard navigation\r\n $D.on('keydown.fb', function (e) {\r\n var current = self.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n if ( !current || !current.opts.keyboard ) {\r\n return;\r\n }\r\n\r\n if ( $(e.target).is('input') || $(e.target).is('textarea') ) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if ( keycode === 8 || keycode === 27 ) {\r\n e.preventDefault();\r\n\r\n self.close( e );\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if ( keycode === 37 || keycode === 38 ) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if ( keycode === 39 || keycode === 40 ) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger('afterKeydown', e, keycode);\r\n });\r\n\r\n\r\n // Hide controls after some inactivity period\r\n if ( self.group[ self.currIndex ].opts.idleTime ) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on('mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle', function(e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if ( self.isIdle ) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n });\r\n\r\n self.idleInterval = window.setInterval(function() {\r\n self.idleSecondsCounter++;\r\n\r\n if ( self.idleSecondsCounter >= self.group[ self.currIndex ].opts.idleTime && !self.isDragging ) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n\r\n }, 1000);\r\n }\r\n\r\n },\r\n\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents : function() {\r\n var self = this;\r\n\r\n $W.off( 'orientationchange.fb resize.fb' );\r\n $D.off( 'focusin.fb keydown.fb .fb-idle' );\r\n\r\n this.$refs.container.off( '.fb-close .fb-prev .fb-next' );\r\n\r\n if ( self.idleInterval ) {\r\n window.clearInterval( self.idleInterval );\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous : function( duration ) {\r\n return this.jumpTo( this.currPos - 1, duration );\r\n },\r\n\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next : function( duration ) {\r\n return this.jumpTo( this.currPos + 1, duration );\r\n },\r\n\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo : function ( pos, duration, slide ) {\r\n var self = this,\r\n firstRun,\r\n loop,\r\n current,\r\n previous,\r\n canvasWidth,\r\n currentPos,\r\n transitionProps;\r\n\r\n var groupLen = self.group.length;\r\n\r\n if ( self.isDragging || self.isClosing || ( self.isAnimating && self.firstRun ) ) {\r\n return;\r\n }\r\n\r\n pos = parseInt( pos, 10 );\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if ( !loop && ( pos < 0 || pos >= groupLen ) ) {\r\n return false;\r\n }\r\n\r\n firstRun = self.firstRun = ( self.firstRun === null );\r\n\r\n if ( groupLen < 2 && !firstRun && !!self.isDragging ) {\r\n return;\r\n }\r\n\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n // Create slides\r\n current = self.createSlide( pos );\r\n\r\n if ( groupLen > 1 ) {\r\n if ( loop || current.index > 0 ) {\r\n self.createSlide( pos - 1 );\r\n }\r\n\r\n if ( loop || current.index < groupLen - 1 ) {\r\n self.createSlide( pos + 1 );\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger( 'beforeShow', firstRun );\r\n\r\n self.updateControls();\r\n\r\n currentPos = $.fancybox.getTranslate( current.$slide );\r\n\r\n current.isMoved = ( currentPos.left !== 0 || currentPos.top !== 0 ) && !current.$slide.hasClass( 'fancybox-animated' );\r\n current.forcedDuration = undefined;\r\n\r\n if ( $.isNumeric( duration ) ) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[ firstRun ? 'animationDuration' : 'transitionDuration' ];\r\n }\r\n\r\n duration = parseInt( duration, 10 );\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if ( firstRun ) {\r\n\r\n if ( current.opts.animationEffect && duration ) {\r\n self.$refs.container.css( 'transition-duration', duration + 'ms' );\r\n }\r\n\r\n self.$refs.container.removeClass( 'fancybox-is-hidden' );\r\n\r\n forceRedraw( self.$refs.container );\r\n\r\n self.$refs.container.addClass( 'fancybox-is-open' );\r\n\r\n // Make first slide visible (to display loading icon, if needed)\r\n current.$slide.addClass( 'fancybox-slide--current' );\r\n\r\n self.loadSlide( current );\r\n\r\n self.preload();\r\n\r\n return;\r\n }\r\n\r\n // Clean up\r\n $.each(self.slides, function( index, slide ) {\r\n $.fancybox.stop( slide.$slide );\r\n });\r\n\r\n // Make current that slide is visible even if content is still loading\r\n current.$slide.removeClass( 'fancybox-slide--next fancybox-slide--previous' ).addClass( 'fancybox-slide--current' );\r\n\r\n // If slides have been dragged, animate them to correct position\r\n if ( current.isMoved ) {\r\n canvasWidth = Math.round( current.$slide.width() );\r\n\r\n $.each(self.slides, function( index, slide ) {\r\n var pos = slide.pos - current.pos;\r\n\r\n $.fancybox.animate( slide.$slide, {\r\n top : 0,\r\n left : ( pos * canvasWidth ) + ( pos * slide.opts.gutter )\r\n }, duration, function() {\r\n\r\n slide.$slide.removeAttr('style').removeClass( 'fancybox-slide--next fancybox-slide--previous' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n current.isMoved = false;\r\n\r\n self.complete();\r\n }\r\n });\r\n });\r\n\r\n } else {\r\n self.$refs.stage.children().removeAttr( 'style' );\r\n }\r\n\r\n // Start transition that reveals current content\r\n // or wait when it will be loaded\r\n\r\n if ( current.isLoaded ) {\r\n self.revealContent( current );\r\n\r\n } else {\r\n self.loadSlide( current );\r\n }\r\n\r\n self.preload();\r\n\r\n if ( previous.pos === current.pos ) {\r\n return;\r\n }\r\n\r\n // Handle previous slide\r\n // =====================\r\n\r\n transitionProps = 'fancybox-slide--' + ( previous.pos > current.pos ? 'next' : 'previous' );\r\n\r\n previous.$slide.removeClass( 'fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous' );\r\n\r\n previous.isComplete = false;\r\n\r\n if ( !duration || ( !current.isMoved && !current.opts.transitionEffect ) ) {\r\n return;\r\n }\r\n\r\n if ( current.isMoved ) {\r\n previous.$slide.addClass( transitionProps );\r\n\r\n } else {\r\n\r\n transitionProps = 'fancybox-animated ' + transitionProps + ' fancybox-fx-' + current.opts.transitionEffect;\r\n\r\n $.fancybox.animate( previous.$slide, transitionProps, duration, function() {\r\n previous.$slide.removeClass( transitionProps ).removeAttr( 'style' );\r\n });\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide : function( pos ) {\r\n\r\n var self = this;\r\n var $slide;\r\n var index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if ( !self.slides[ pos ] && self.group[ index ] ) {\r\n $slide = $('
').appendTo( self.$refs.stage );\r\n\r\n self.slides[ pos ] = $.extend( true, {}, self.group[ index ], {\r\n pos : pos,\r\n $slide : $slide,\r\n isLoaded : false,\r\n });\r\n\r\n self.updateSlide( self.slides[ pos ] );\r\n }\r\n\r\n return self.slides[ pos ];\r\n },\r\n\r\n\r\n // Scale image to the actual size of the image\r\n // ===========================================\r\n\r\n scaleToActual : function( x, y, duration ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var imgPos, posX, posY, scaleX, scaleY;\r\n\r\n var canvasWidth = parseInt( current.$slide.width(), 10 );\r\n var canvasHeight = parseInt( current.$slide.height(), 10 );\r\n\r\n var newImgWidth = current.width;\r\n var newImgHeight = current.height;\r\n\r\n if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating ) {\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $what );\r\n\r\n self.isAnimating = true;\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate( $what );\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = ( canvasWidth * 0.5 - newImgWidth * 0.5 );\r\n posY = ( canvasHeight * 0.5 - newImgHeight * 0.5 );\r\n\r\n // Make sure image does not move away from edges\r\n if ( newImgWidth > canvasWidth ) {\r\n posX = imgPos.left * scaleX - ( ( x * scaleX ) - x );\r\n\r\n if ( posX > 0 ) {\r\n posX = 0;\r\n }\r\n\r\n if ( posX < canvasWidth - newImgWidth ) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if ( newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - ( ( y * scaleY ) - y );\r\n\r\n if ( posY > 0 ) {\r\n posY = 0;\r\n }\r\n\r\n if ( posY < canvasHeight - newImgHeight ) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor( newImgWidth, newImgHeight );\r\n\r\n $.fancybox.animate( $what, {\r\n top : posY,\r\n left : posX,\r\n scaleX : scaleX,\r\n scaleY : scaleY\r\n }, duration || 330, function() {\r\n self.isAnimating = false;\r\n });\r\n\r\n // Stop slideshow\r\n if ( self.SlideShow && self.SlideShow.isActive ) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit : function( duration ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n var end;\r\n\r\n if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating ) {\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $what );\r\n\r\n self.isAnimating = true;\r\n\r\n end = self.getFitPos( current );\r\n\r\n self.updateCursor( end.width, end.height );\r\n\r\n $.fancybox.animate( $what, {\r\n top : end.top,\r\n left : end.left,\r\n scaleX : end.width / $what.width(),\r\n scaleY : end.height / $what.height()\r\n }, duration || 330, function() {\r\n self.isAnimating = false;\r\n });\r\n\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos : function( slide ) {\r\n var self = this;\r\n var $what = slide.$content;\r\n\r\n var imgWidth = slide.width;\r\n var imgHeight = slide.height;\r\n\r\n var margin = slide.opts.margin;\r\n\r\n var canvasWidth, canvasHeight, minRatio, width, height;\r\n\r\n if ( !$what || !$what.length || ( !imgWidth && !imgHeight) ) {\r\n return false;\r\n }\r\n\r\n // Convert \"margin to CSS style: [ top, right, bottom, left ]\r\n if ( $.type( margin ) === \"number\" ) {\r\n margin = [ margin, margin ];\r\n }\r\n\r\n if ( margin.length == 2 ) {\r\n margin = [ margin[0], margin[1], margin[0], margin[1] ];\r\n }\r\n\r\n // We can not use $slide width here, because it can have different diemensions while in transiton\r\n canvasWidth = parseInt( self.$refs.stage.width(), 10 ) - ( margin[ 1 ] + margin[ 3 ] );\r\n canvasHeight = parseInt( self.$refs.stage.height(), 10 ) - ( margin[ 0 ] + margin[ 2 ] );\r\n\r\n minRatio = Math.min(1, canvasWidth / imgWidth, canvasHeight / imgHeight );\r\n\r\n width = Math.floor( minRatio * imgWidth );\r\n height = Math.floor( minRatio * imgHeight );\r\n\r\n // Use floor rounding to make sure it really fits\r\n return {\r\n top : Math.floor( ( canvasHeight - height ) * 0.5 ) + margin[ 0 ],\r\n left : Math.floor( ( canvasWidth - width ) * 0.5 ) + margin[ 3 ],\r\n width : width,\r\n height : height\r\n };\r\n\r\n },\r\n\r\n\r\n // Update position and content of all slides\r\n // =========================================\r\n\r\n update : function() {\r\n\r\n var self = this;\r\n\r\n $.each( self.slides, function( key, slide ) {\r\n self.updateSlide( slide );\r\n });\r\n\r\n },\r\n\r\n\r\n // Update slide position and scale content to fit\r\n // ==============================================\r\n\r\n updateSlide : function( slide ) {\r\n\r\n var self = this;\r\n var $what = slide.$content;\r\n\r\n if ( $what && ( slide.width || slide.height ) ) {\r\n self.isAnimating = false;\r\n\r\n $.fancybox.stop( $what );\r\n\r\n $.fancybox.setTranslate( $what, self.getFitPos( slide ) );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n slide.$slide.trigger( 'refresh' );\r\n\r\n self.trigger( 'onUpdate', slide );\r\n\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor : function( nextWidth, nextHeight ) {\r\n\r\n var self = this;\r\n var isScaledDown;\r\n\r\n var $container = self.$refs.container.removeClass( 'fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut' );\r\n\r\n if ( !self.current || self.isClosing ) {\r\n return;\r\n }\r\n\r\n if ( self.isZoomable() ) {\r\n\r\n $container.addClass( 'fancybox-is-zoomable' );\r\n\r\n if ( nextWidth !== undefined && nextHeight !== undefined ) {\r\n isScaledDown = nextWidth < self.current.width && nextHeight < self.current.height;\r\n\r\n } else {\r\n isScaledDown = self.isScaledDown();\r\n }\r\n\r\n if ( isScaledDown ) {\r\n\r\n // If image is scaled down, then, obviously, it can be zoomed to full size\r\n $container.addClass( 'fancybox-can-zoomIn' );\r\n\r\n } else {\r\n\r\n if ( self.current.opts.touch ) {\r\n\r\n // If image size ir largen than available available and touch module is not disable,\r\n // then user can do panning\r\n $container.addClass( 'fancybox-can-drag' );\r\n\r\n } else {\r\n $container.addClass( 'fancybox-can-zoomOut' );\r\n }\r\n\r\n }\r\n\r\n } else if ( self.current.opts.touch ) {\r\n $container.addClass( 'fancybox-can-drag' );\r\n }\r\n\r\n },\r\n\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var fitPos;\r\n\r\n if ( !current || self.isClosing ) {\r\n return;\r\n }\r\n\r\n // Assume that slide is zoomable if\r\n // - image is loaded successfuly\r\n // - click action is \"zoom\"\r\n // - actual size of the image is smaller than available area\r\n if ( current.type === 'image' && current.isLoaded && !current.hasError &&\r\n ( current.opts.clickContent === 'zoom' || ( $.isFunction( current.opts.clickContent ) && current.opts.clickContent( current ) === \"zoom\" ) )\r\n ) {\r\n\r\n fitPos = self.getFitPos( current );\r\n\r\n if ( current.width > fitPos.width || current.height > fitPos.height ) {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n return false;\r\n\r\n },\r\n\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var rez = false;\r\n\r\n if ( $what ) {\r\n rez = $.fancybox.getTranslate( $what );\r\n rez = rez.width < current.width || rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n\r\n },\r\n\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var rez = false;\r\n\r\n if ( $what ) {\r\n rez = self.getFitPos( current );\r\n rez = Math.abs( $what.width() - rez.width ) > 1 || Math.abs( $what.height() - rez.height ) > 1;\r\n\r\n }\r\n\r\n return rez;\r\n\r\n },\r\n\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide : function( slide ) {\r\n\r\n var self = this, type, $slide;\r\n var ajaxLoad;\r\n\r\n if ( slide.isLoading ) {\r\n return;\r\n }\r\n\r\n if ( slide.isLoaded ) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n self.trigger( 'beforeLoad', slide );\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off( 'refresh' )\r\n .trigger( 'onReset' )\r\n .addClass( 'fancybox-slide--' + ( type || 'unknown' ) )\r\n .addClass( slide.opts.slideClass );\r\n\r\n // Create content depending on the type\r\n\r\n switch ( type ) {\r\n\r\n case 'image':\r\n\r\n self.setImage( slide );\r\n\r\n break;\r\n\r\n case 'iframe':\r\n\r\n self.setIframe( slide );\r\n\r\n break;\r\n\r\n case 'html':\r\n\r\n self.setContent( slide, slide.src || slide.content );\r\n\r\n break;\r\n\r\n case 'inline':\r\n\r\n if ( $( slide.src ).length ) {\r\n self.setContent( slide, $( slide.src ) );\r\n\r\n } else {\r\n self.setError( slide );\r\n }\r\n\r\n break;\r\n\r\n case 'ajax':\r\n\r\n self.showLoading( slide );\r\n\r\n ajaxLoad = $.ajax( $.extend( {}, slide.opts.ajax.settings, {\r\n url : slide.src,\r\n success : function ( data, textStatus ) {\r\n\r\n if ( textStatus === 'success' ) {\r\n self.setContent( slide, data );\r\n }\r\n\r\n },\r\n error : function ( jqXHR, textStatus ) {\r\n\r\n if ( jqXHR && textStatus !== 'abort' ) {\r\n self.setError( slide );\r\n }\r\n\r\n }\r\n }));\r\n\r\n $slide.one( 'onReset', function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n\r\n self.setError( slide );\r\n\r\n break;\r\n\r\n }\r\n\r\n return true;\r\n\r\n },\r\n\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage : function( slide ) {\r\n\r\n var self = this;\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset;\r\n\r\n var found, temp, pxRatio, windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if ( srcset ) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(',').map(function ( el ) {\r\n \t\tvar ret = {};\r\n\r\n \t\tel.trim().split(/\\s+/).forEach(function ( el, i ) {\r\n var value = parseInt( el.substring(0, el.length - 1), 10 );\r\n\r\n \t\t\tif ( i === 0 ) {\r\n \t\t\t\treturn ( ret.url = el );\r\n \t\t\t}\r\n\r\n if ( value ) {\r\n ret.value = value;\r\n ret.postfix = el[ el.length - 1 ];\r\n }\r\n\r\n \t\t});\r\n\r\n \t\treturn ret;\r\n \t});\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for ( var j = 0; j < temp.length; j++ ) {\r\n var el = temp[ j ];\r\n\r\n if ( ( el.postfix === 'w' && el.value >= windowWidth ) || ( el.postfix === 'x' && el.value >= pxRatio ) ) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if ( !found && temp.length ) {\r\n found = temp[ temp.length - 1 ];\r\n }\r\n\r\n if ( found ) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if ( slide.width && slide.height && found.postfix == 'w' ) {\r\n slide.height = ( slide.width / slide.height ) * found.value;\r\n slide.width = found.value;\r\n }\r\n }\r\n }\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass( 'fancybox-is-hidden' )\r\n .appendTo( slide.$slide );\r\n\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if ( slide.opts.preload !== false && slide.opts.width && slide.opts.height && ( slide.opts.thumb || slide.opts.$thumb ) ) {\r\n\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n slide.$ghost = $('')\r\n .one('error', function() {\r\n\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n\r\n self.setBigImage( slide );\r\n\r\n })\r\n .one('load', function() {\r\n\r\n self.afterLoad( slide );\r\n\r\n self.setBigImage( slide );\r\n\r\n })\r\n .addClass( 'fancybox-image' )\r\n .appendTo( slide.$content )\r\n .attr( 'src', slide.opts.thumb || slide.opts.$thumb.attr( 'src' ) );\r\n\r\n } else {\r\n\r\n self.setBigImage( slide );\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage : function ( slide ) {\r\n var self = this;\r\n var $img = $('');\r\n\r\n slide.$image = $img\r\n .one('error', function() {\r\n\r\n self.setError( slide );\r\n\r\n })\r\n .one('load', function() {\r\n\r\n // Clear timeout that checks if loading icon needs to be displayed\r\n clearTimeout( slide.timouts );\r\n\r\n slide.timouts = null;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n slide.width = this.naturalWidth;\r\n slide.height = this.naturalHeight;\r\n\r\n if ( slide.opts.image.srcset ) {\r\n $img.attr( 'sizes', '100vw' ).attr( 'srcset', slide.opts.image.srcset );\r\n }\r\n\r\n self.hideLoading( slide );\r\n\r\n if ( slide.$ghost ) {\r\n\r\n slide.timouts = setTimeout(function() {\r\n slide.timouts = null;\r\n\r\n slide.$ghost.hide();\r\n\r\n }, Math.min( 300, Math.max( 1000, slide.height / 1600 ) ) );\r\n\r\n } else {\r\n self.afterLoad( slide );\r\n }\r\n\r\n })\r\n .addClass( 'fancybox-image' )\r\n .attr('src', slide.src)\r\n .appendTo( slide.$content );\r\n\r\n if ( ( $img[0].complete || $img[0].readyState == \"complete\" ) && $img[0].naturalWidth && $img[0].naturalHeight ) {\r\n $img.trigger( 'load' );\r\n\r\n } else if( $img[0].error ) {\r\n $img.trigger( 'error' );\r\n\r\n } else {\r\n\r\n slide.timouts = setTimeout(function() {\r\n if ( !$img[0].complete && !slide.hasError ) {\r\n self.showLoading( slide );\r\n }\r\n\r\n }, 100);\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe : function( slide ) {\r\n var self\t= this,\r\n opts = slide.opts.iframe,\r\n $slide\t= slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css( opts.css )\r\n .appendTo( $slide );\r\n\r\n $iframe = $( opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()) )\r\n .attr( opts.attr )\r\n .appendTo( slide.$content );\r\n\r\n if ( opts.preload ) {\r\n\r\n self.showLoading( slide );\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on('load.fb error.fb', function(e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger( 'refresh' );\r\n\r\n self.afterLoad( slide );\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on('refresh.fb', function() {\r\n var $wrap = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n scrollWidth,\r\n $contents,\r\n $body;\r\n\r\n if ( $iframe[0].isReady !== 1 ) {\r\n return;\r\n }\r\n\r\n // Check if content is accessible,\r\n // it will fail if frame is not with the same origin\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find('body');\r\n\r\n } catch (ignore) {}\r\n\r\n // Calculate dimensions for the wrapper\r\n if ( $body && $body.length ) {\r\n\r\n if ( frameWidth === undefined ) {\r\n scrollWidth = $iframe[0].contentWindow.document.documentElement.scrollWidth;\r\n\r\n frameWidth = Math.ceil( $body.outerWidth(true) + ( $wrap.width() - scrollWidth ) );\r\n frameWidth += $wrap.outerWidth() - $wrap.innerWidth();\r\n }\r\n\r\n if ( frameHeight === undefined ) {\r\n frameHeight = Math.ceil( $body.outerHeight(true) );\r\n frameHeight += $wrap.outerHeight() - $wrap.innerHeight();\r\n }\r\n\r\n // Resize wrapper to fit iframe content\r\n if ( frameWidth ) {\r\n $wrap.width( frameWidth );\r\n }\r\n\r\n if ( frameHeight ) {\r\n $wrap.height( frameHeight );\r\n }\r\n }\r\n\r\n $wrap.removeClass( 'fancybox-is-hidden' );\r\n\r\n });\r\n\r\n } else {\r\n\r\n this.afterLoad( slide );\r\n\r\n }\r\n\r\n $iframe.attr( 'src', slide.src );\r\n\r\n if ( slide.opts.smallBtn === true ) {\r\n slide.$content.prepend( self.translate( slide, slide.opts.btnTpl.smallBtn ) );\r\n }\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one( 'onReset', function () {\r\n\r\n // This helps IE not to throw errors when closing\r\n try {\r\n\r\n $( this ).find( 'iframe' ).hide().attr( 'src', '//about:blank' );\r\n\r\n } catch ( ignore ) {}\r\n\r\n $( this ).empty();\r\n\r\n slide.isLoaded = false;\r\n\r\n });\r\n\r\n },\r\n\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent : function ( slide, content ) {\r\n\r\n var self = this;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n self.hideLoading( slide );\r\n\r\n slide.$slide.empty();\r\n\r\n if ( isQuery( content ) && content.parent().length ) {\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n // If user is navigating gallery fast, then the content might be already inside fancyBox\r\n // =====================================================================================\r\n\r\n // Make sure content is not already moved to fancyBox\r\n content.parent( '.fancybox-slide--inline' ).trigger( 'onReset' );\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $( '
' ).hide().insertAfter( content );\r\n\r\n // Make sure content is visible\r\n content.css('display', 'inline-block');\r\n\r\n } else if ( !slide.hasError ) {\r\n\r\n // If content is just a plain text, try to convert it to html\r\n if ( $.type( content ) === 'string' ) {\r\n content = $('
').append( $.trim( content ) ).contents();\r\n\r\n // If we have text node, then add wrapping element to make vertical alignment work\r\n if ( content[0].nodeType === 3 ) {\r\n content = $('
').html( content );\r\n }\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if ( slide.opts.filter ) {\r\n content = $('
').html( content ).find( slide.opts.filter );\r\n }\r\n\r\n }\r\n\r\n slide.$slide.one('onReset', function () {\r\n\r\n // Pause all html5 video/audio\r\n $(this).find(\"video,audio\").each(function () { this.pause(); });\r\n\r\n // Put content back\r\n if ( slide.$placeholder ) {\r\n slide.$placeholder.after( content.hide() ).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if ( slide.$smallBtn ) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if ( !slide.hasError ) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n }\r\n\r\n });\r\n\r\n slide.$content = $( content ).appendTo( slide.$slide );\r\n\r\n this.afterLoad( slide );\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError : function ( slide ) {\r\n\r\n slide.hasError = true;\r\n\r\n slide.$slide.removeClass( 'fancybox-slide--' + slide.type );\r\n\r\n this.setContent( slide, this.translate( slide, slide.opts.errorTpl ) );\r\n\r\n },\r\n\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading : function( slide ) {\r\n\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if ( slide && !slide.$spinner ) {\r\n slide.$spinner = $( self.opts.spinnerTpl ).appendTo( slide.$slide );\r\n }\r\n\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading : function( slide ) {\r\n\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if ( slide && slide.$spinner ) {\r\n slide.$spinner.remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n\r\n },\r\n\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad : function( slide ) {\r\n\r\n var self = this;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger( 'afterLoad', slide );\r\n\r\n self.hideLoading( slide );\r\n\r\n if ( slide.opts.smallBtn && !slide.$smallBtn ) {\r\n slide.$smallBtn = $( self.translate( slide, slide.opts.btnTpl.smallBtn ) ).appendTo( slide.$content.filter('div,form').first() );\r\n }\r\n\r\n if ( slide.opts.protect && slide.$content && !slide.hasError ) {\r\n\r\n // Disable right click\r\n slide.$content.on( 'contextmenu.fb', function( e ) {\r\n if ( e.button == 2 ) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if ( slide.type === 'image' ) {\r\n $( '
' ).appendTo( slide.$content );\r\n }\r\n\r\n }\r\n\r\n self.revealContent( slide );\r\n\r\n },\r\n\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent : function( slide ) {\r\n\r\n var self = this;\r\n var $slide = slide.$slide;\r\n\r\n var effect, effectClassName, duration, opacity, end, start = false;\r\n\r\n effect = slide.opts[ self.firstRun ? 'animationEffect' : 'transitionEffect' ];\r\n duration = slide.opts[ self.firstRun ? 'animationDuration' : 'transitionDuration' ];\r\n\r\n duration = parseInt( slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10 );\r\n\r\n if ( slide.isMoved || slide.pos !== self.currPos || !duration ) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if ( effect === 'zoom' && !( slide.pos === self.currPos && duration && slide.type === 'image' && !slide.hasError && ( start = self.getThumbPos( slide ) ) ) ) {\r\n effect = 'fade';\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n\r\n if ( effect === 'zoom' ) {\r\n end = self.getFitPos( slide );\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n delete end.width;\r\n delete end.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if ( opacity == 'auto' ) {\r\n opacity = Math.abs( slide.width / slide.height - start.width / start.height ) > 0.1;\r\n }\r\n\r\n if ( opacity ) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate( slide.$content.removeClass( 'fancybox-is-hidden' ), start );\r\n\r\n forceRedraw( slide.$content );\r\n\r\n // Start animation\r\n $.fancybox.animate( slide.$content, end, duration, function() {\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide( slide );\r\n\r\n\r\n // Simply show content\r\n // ===================\r\n\r\n if ( !effect ) {\r\n forceRedraw( $slide );\r\n\r\n slide.$content.removeClass( 'fancybox-is-hidden' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $slide );\r\n\r\n effectClassName = 'fancybox-animated fancybox-slide--' + ( slide.pos >= self.prevPos ? 'next' : 'previous' ) + ' fancybox-fx-' + effect;\r\n\r\n $slide.removeAttr( 'style' ).removeClass( 'fancybox-slide--current fancybox-slide--next fancybox-slide--previous' ).addClass( effectClassName );\r\n\r\n slide.$content.removeClass( 'fancybox-is-hidden' );\r\n\r\n //Force reflow for CSS3 transitions\r\n forceRedraw( $slide );\r\n\r\n $.fancybox.animate( $slide, 'fancybox-slide--current', duration, function(e) {\r\n $slide.removeClass( effectClassName ).removeAttr( 'style' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.complete();\r\n }\r\n\r\n }, true);\r\n\r\n },\r\n\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos : function( slide ) {\r\n\r\n var self = this;\r\n var rez = false;\r\n\r\n // Check if element is inside the viewport by at least 1 pixel\r\n var isElementVisible = function( $el ) {\r\n var element = $el[0];\r\n\r\n var elementRect = element.getBoundingClientRect();\r\n var parentRects = [];\r\n\r\n var visibleInAllParents;\r\n\r\n while ( element.parentElement !== null ) {\r\n if ( $(element.parentElement).css('overflow') === 'hidden' || $(element.parentElement).css('overflow') === 'auto' ) {\r\n parentRects.push(element.parentElement.getBoundingClientRect());\r\n }\r\n\r\n element = element.parentElement;\r\n }\r\n\r\n visibleInAllParents = parentRects.every(function(parentRect){\r\n var visiblePixelX = Math.min(elementRect.right, parentRect.right) - Math.max(elementRect.left, parentRect.left);\r\n var visiblePixelY = Math.min(elementRect.bottom, parentRect.bottom) - Math.max(elementRect.top, parentRect.top);\r\n\r\n return visiblePixelX > 0 && visiblePixelY > 0;\r\n });\r\n\r\n return visibleInAllParents &&\r\n elementRect.bottom > 0 && elementRect.right > 0 &&\r\n elementRect.left < $(window).width() && elementRect.top < $(window).height();\r\n };\r\n\r\n var $thumb = slide.opts.$thumb;\r\n var thumbPos = $thumb ? $thumb.offset() : 0;\r\n var slidePos;\r\n\r\n if ( thumbPos && $thumb[0].ownerDocument === document && isElementVisible( $thumb ) ) {\r\n slidePos = self.$refs.stage.offset();\r\n\r\n rez = {\r\n top : thumbPos.top - slidePos.top + parseFloat( $thumb.css( \"border-top-width\" ) || 0 ),\r\n left : thumbPos.left - slidePos.left + parseFloat( $thumb.css( \"border-left-width\" ) || 0 ),\r\n width : $thumb.width(),\r\n height : $thumb.height(),\r\n scaleX : 1,\r\n scaleY : 1\r\n };\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var slides = {};\r\n\r\n if ( current.isMoved || !current.isLoaded || current.isComplete ) {\r\n return;\r\n }\r\n\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger( 'onReset' );\r\n\r\n // Trigger any CSS3 transiton inside the slide\r\n forceRedraw( current.$slide );\r\n\r\n current.$slide.addClass( 'fancybox-slide--complete' );\r\n\r\n // Remove unnecessary slides\r\n $.each( self.slides, function( key, slide ) {\r\n if ( slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1 ) {\r\n slides[ slide.pos ] = slide;\r\n\r\n } else if ( slide ) {\r\n\r\n $.fancybox.stop( slide.$slide );\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger( 'afterShow' );\r\n\r\n // Play first html5 video/audio\r\n var media = current.$slide.find(\"video,audio\").first();\r\n\r\n if ( media.length ) {\r\n media[0].play();\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if ( $( document.activeElement ).is( '[disabled]' ) || ( current.opts.autoFocus && !( current.type == 'image' || current.type === 'iframe' ) ) ) {\r\n self.focus();\r\n }\r\n\r\n },\r\n\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload : function() {\r\n var self = this;\r\n var next, prev;\r\n\r\n if ( self.group.length < 2 ) {\r\n return;\r\n }\r\n\r\n next = self.slides[ self.currPos + 1 ];\r\n prev = self.slides[ self.currPos - 1 ];\r\n\r\n if ( next && next.type === 'image' ) {\r\n self.loadSlide( next );\r\n }\r\n\r\n if ( prev && prev.type === 'image' ) {\r\n self.loadSlide( prev );\r\n }\r\n\r\n },\r\n\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus : function() {\r\n var current = this.current;\r\n var $el;\r\n\r\n if ( this.isClosing ) {\r\n return;\r\n }\r\n\r\n if ( current && current.isComplete ) {\r\n\r\n // Look for first input with autofocus attribute\r\n $el = current.$slide.find('input[autofocus]:enabled:visible:first');\r\n\r\n if ( !$el.length ) {\r\n $el = current.$slide.find('button,:input,[tabindex],a').filter(':enabled:visible:first');\r\n }\r\n }\r\n\r\n $el = $el && $el.length ? $el : this.$refs.container;\r\n\r\n $el.focus();\r\n },\r\n\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate : function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $( '.fancybox-container' ).each(function () {\r\n var instance = $(this).data( 'FancyBox' );\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger( 'onDeactivate' );\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if ( self.current || self.isIdle ) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger( 'onActivate' );\r\n\r\n self.addEvents();\r\n },\r\n\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close : function( e, d ) {\r\n\r\n var self = this;\r\n var current = self.current;\r\n\r\n var effect, duration;\r\n var $what, opacity, start, end;\r\n\r\n var done = function() {\r\n self.cleanUp( e );\r\n };\r\n\r\n if ( self.isClosing ) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if ( self.trigger( 'beforeClose', e ) === false ) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function() {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n if ( current.timouts ) {\r\n clearTimeout( current.timouts );\r\n }\r\n\r\n $what = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric( d ) ? d : ( effect ? current.opts.animationDuration : 0 );\r\n\r\n // Remove other slides\r\n current.$slide.off( transitionEnd ).removeClass( 'fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated' );\r\n\r\n current.$slide.siblings().trigger( 'onReset' ).remove();\r\n\r\n // Trigger animations\r\n if ( duration ) {\r\n self.$refs.container.removeClass( 'fancybox-is-open' ).addClass( 'fancybox-is-closing' );\r\n }\r\n\r\n // Clean up\r\n self.hideLoading( current );\r\n\r\n self.hideControls();\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if ( effect === 'zoom' && !( e !== true && $what && duration && current.type === 'image' && !current.hasError && ( end = self.getThumbPos( current ) ) ) ) {\r\n effect = 'fade';\r\n }\r\n\r\n if ( effect === 'zoom' ) {\r\n $.fancybox.stop( $what );\r\n\r\n start = $.fancybox.getTranslate( $what );\r\n\r\n start.width = start.width * start.scaleX;\r\n start.height = start.height * start.scaleY;\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if ( opacity == 'auto' ) {\r\n opacity = Math.abs( current.width / current.height - end.width / end.height ) > 0.1;\r\n }\r\n\r\n if ( opacity ) {\r\n end.opacity = 0;\r\n }\r\n\r\n start.scaleX = start.width / end.width;\r\n start.scaleY = start.height / end.height;\r\n\r\n start.width = end.width;\r\n start.height = end.height;\r\n\r\n $.fancybox.setTranslate( current.$content, start );\r\n\r\n forceRedraw( current.$content );\r\n\r\n $.fancybox.animate( current.$content, end, duration, done );\r\n\r\n return true;\r\n }\r\n\r\n if ( effect && duration ) {\r\n\r\n // If skip animation\r\n if ( e === true ) {\r\n setTimeout( done, duration );\r\n\r\n } else {\r\n $.fancybox.animate( current.$slide.removeClass( 'fancybox-slide--current' ), 'fancybox-animated fancybox-slide--previous fancybox-fx-' + effect, duration, done );\r\n }\r\n\r\n } else {\r\n done();\r\n }\r\n\r\n return true;\r\n },\r\n\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp : function( e ) {\r\n var self = this,\r\n $body = $( 'body' ),\r\n instance,\r\n offset;\r\n\r\n self.current.$slide.trigger( 'onReset' );\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger( 'afterClose', e );\r\n\r\n // Place back focus\r\n if ( self.$lastFocus && !!self.current.opts.backFocus ) {\r\n self.$lastFocus.focus();\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if ( instance ) {\r\n instance.activate();\r\n\r\n } else {\r\n\r\n $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft );\r\n\r\n $body.removeClass( 'fancybox-active compensate-for-scrollbar' );\r\n\r\n if ( $body.hasClass( 'fancybox-iosfix' ) ) {\r\n offset = parseInt(document.body.style.top, 10);\r\n\r\n $body.removeClass( 'fancybox-iosfix' ).css( 'top', '' ).scrollTop( offset * -1 );\r\n }\r\n\r\n $( '#fancybox-style-noscroll' ).remove();\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger : function( name, slide ) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if ( obj ) {\r\n args.unshift( obj );\r\n\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift( self );\r\n\r\n if ( $.isFunction( obj.opts[ name ] ) ) {\r\n rez = obj.opts[ name ].apply( obj, args );\r\n }\r\n\r\n if ( rez === false ) {\r\n return rez;\r\n }\r\n\r\n if ( name === 'afterClose' || !self.$refs ) {\r\n $D.trigger( name + '.fb', args );\r\n\r\n } else {\r\n self.$refs.container.trigger( name + '.fb', args );\r\n }\r\n\r\n },\r\n\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls : function ( force ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current,\r\n index = current.index,\r\n caption = current.opts.caption,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger( 'refresh' );\r\n\r\n self.$caption = caption && caption.length ? $caption.html( caption ) : null;\r\n\r\n if ( !self.isHiddenControls && !self.isIdle ) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find('[data-fancybox-count]').html( self.group.length );\r\n $container.find('[data-fancybox-index]').html( index + 1 );\r\n\r\n $container.find('[data-fancybox-prev]').prop( 'disabled', ( !current.opts.loop && index <= 0 ) );\r\n $container.find('[data-fancybox-next]').prop( 'disabled', ( !current.opts.loop && index >= self.group.length - 1 ) );\r\n\r\n if ( current.type === 'image' ) {\r\n\r\n // Update download button source\r\n $container.find('[data-fancybox-download]').attr( 'href', current.opts.image.src || current.src ).show();\r\n\r\n } else {\r\n $container.find('[data-fancybox-download],[data-fancybox-zoom]').hide();\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls : function () {\r\n\r\n this.isHiddenControls = true;\r\n\r\n this.$refs.container.removeClass( 'fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav' );\r\n\r\n },\r\n\r\n showControls : function() {\r\n var self = this;\r\n var opts = self.current ? self.current.opts : self.opts;\r\n var $container = self.$refs.container;\r\n\r\n self.isHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass( 'fancybox-show-toolbar', !!( opts.toolbar && opts.buttons ) )\r\n .toggleClass( 'fancybox-show-infobar', !!( opts.infobar && self.group.length > 1 ) )\r\n .toggleClass( 'fancybox-show-nav', !!( opts.arrows && self.group.length > 1 ) )\r\n .toggleClass( 'fancybox-is-modal', !!opts.modal );\r\n\r\n if ( self.$caption ) {\r\n $container.addClass( 'fancybox-show-caption ');\r\n\r\n } else {\r\n $container.removeClass( 'fancybox-show-caption' );\r\n }\r\n\r\n },\r\n\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls : function() {\r\n if ( this.isHiddenControls ) {\r\n this.showControls();\r\n\r\n } else {\r\n this.hideControls();\r\n }\r\n\r\n },\r\n\r\n\r\n });\r\n\r\n\r\n $.fancybox = {\r\n\r\n version : \"3.2.8\",\r\n defaults : defaults,\r\n\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance : function ( command ) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data( 'FancyBox' );\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if ( instance instanceof FancyBox ) {\r\n\r\n if ( $.type( command ) === 'string' ) {\r\n instance[ command ].apply( instance, args );\r\n\r\n } else if ( $.type( command ) === 'function' ) {\r\n command.apply( instance, args );\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n\r\n },\r\n\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open : function ( items, opts, index ) {\r\n return new FancyBox( items, opts, index );\r\n },\r\n\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close : function ( all ) {\r\n var instance = this.getInstance();\r\n\r\n if ( instance ) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n\r\n if ( all === true ) {\r\n this.close();\r\n }\r\n }\r\n\r\n },\r\n\r\n // Close instances and unbind all events\r\n // ==============================\r\n\r\n destroy : function() {\r\n\r\n this.close( true );\r\n\r\n $D.off( 'click.fb-start' );\r\n\r\n },\r\n\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile : document.createTouch !== undefined && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d : (function() {\r\n var div = document.createElement('div');\r\n\r\n return window.getComputedStyle && window.getComputedStyle( div ).getPropertyValue('transform') && !(document.documentMode && document.documentMode < 11);\r\n }()),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate : function( $el ) {\r\n var matrix;\r\n\r\n if ( !$el || !$el.length ) {\r\n return false;\r\n }\r\n\r\n matrix = $el.eq( 0 ).css('transform');\r\n\r\n if ( matrix && matrix.indexOf( 'matrix' ) !== -1 ) {\r\n matrix = matrix.split('(')[1];\r\n matrix = matrix.split(')')[0];\r\n matrix = matrix.split(',');\r\n } else {\r\n matrix = [];\r\n }\r\n\r\n if ( matrix.length ) {\r\n\r\n // If IE\r\n if ( matrix.length > 10 ) {\r\n matrix = [ matrix[13], matrix[12], matrix[0], matrix[5] ];\r\n\r\n } else {\r\n matrix = [ matrix[5], matrix[4], matrix[0], matrix[3]];\r\n }\r\n\r\n matrix = matrix.map(parseFloat);\r\n\r\n } else {\r\n matrix = [ 0, 0, 1, 1 ];\r\n\r\n var transRegex = /\\.*translate\\((.*)px,(.*)px\\)/i;\r\n var transRez = transRegex.exec( $el.eq( 0 ).attr('style') );\r\n\r\n if ( transRez ) {\r\n matrix[ 0 ] = parseFloat( transRez[2] );\r\n matrix[ 1 ] = parseFloat( transRez[1] );\r\n }\r\n }\r\n\r\n return {\r\n top : matrix[ 0 ],\r\n left : matrix[ 1 ],\r\n scaleX : matrix[ 2 ],\r\n scaleY : matrix[ 3 ],\r\n opacity : parseFloat( $el.css('opacity') ),\r\n width : $el.width(),\r\n height : $el.height()\r\n };\r\n\r\n },\r\n\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate : function( $el, props ) {\r\n var str = '';\r\n var css = {};\r\n\r\n if ( !$el || !props ) {\r\n return;\r\n }\r\n\r\n if ( props.left !== undefined || props.top !== undefined ) {\r\n str = ( props.left === undefined ? $el.position().left : props.left ) + 'px, ' + ( props.top === undefined ? $el.position().top : props.top ) + 'px';\r\n\r\n if ( this.use3d ) {\r\n str = 'translate3d(' + str + ', 0px)';\r\n\r\n } else {\r\n str = 'translate(' + str + ')';\r\n }\r\n }\r\n\r\n if ( props.scaleX !== undefined && props.scaleY !== undefined ) {\r\n str = (str.length ? str + ' ' : '') + 'scale(' + props.scaleX + ', ' + props.scaleY + ')';\r\n }\r\n\r\n if ( str.length ) {\r\n css.transform = str;\r\n }\r\n\r\n if ( props.opacity !== undefined ) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if ( props.width !== undefined ) {\r\n css.width = props.width;\r\n }\r\n\r\n if ( props.height !== undefined ) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css( css );\r\n },\r\n\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate : function ( $el, to, duration, callback, leaveAnimationName ) {\r\n if ( $.isFunction( duration ) ) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n if ( !$.isPlainObject( to ) ) {\r\n $el.removeAttr('style');\r\n }\r\n\r\n $el.on( transitionEnd, function(e) {\r\n\r\n // Skip events from child elements and z-index change\r\n if ( e && e.originalEvent && ( !$el.is( e.originalEvent.target ) || e.originalEvent.propertyName == 'z-index' ) ) {\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $el );\r\n\r\n if ( $.isPlainObject( to ) ) {\r\n\r\n if ( to.scaleX !== undefined && to.scaleY !== undefined ) {\r\n $el.css( 'transition-duration', '' );\r\n\r\n to.width = Math.round( $el.width() * to.scaleX );\r\n to.height = Math.round( $el.height() * to.scaleY );\r\n\r\n to.scaleX = 1;\r\n to.scaleY = 1;\r\n\r\n $.fancybox.setTranslate( $el, to );\r\n }\r\n\r\n } else if ( leaveAnimationName !== true ) {\r\n $el.removeClass( to );\r\n }\r\n\r\n if ( $.isFunction( callback ) ) {\r\n callback( e );\r\n }\r\n\r\n });\r\n\r\n if ( $.isNumeric( duration ) ) {\r\n $el.css( 'transition-duration', duration + 'ms' );\r\n }\r\n\r\n if ( $.isPlainObject( to ) ) {\r\n $.fancybox.setTranslate( $el, to );\r\n\r\n } else {\r\n $el.addClass( to );\r\n }\r\n\r\n if ( to.scaleX && $el.hasClass( 'fancybox-image-wrap' ) ) {\r\n $el.parent().addClass( 'fancybox-is-scaling' );\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\"timer\", setTimeout(function() {\r\n $el.trigger( 'transitionend' );\r\n }, duration + 16));\r\n\r\n },\r\n\r\n stop : function( $el ) {\r\n clearTimeout( $el.data(\"timer\") );\r\n\r\n $el.off( 'transitionend' ).css( 'transition-duration', '' );\r\n\r\n if ( $el.hasClass( 'fancybox-image-wrap' ) ) {\r\n $el.parent().removeClass( 'fancybox-is-scaling' );\r\n }\r\n }\r\n\r\n };\r\n\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run( e ) {\r\n var $target\t= $( e.currentTarget ),\r\n opts\t= e.data ? e.data.options : {},\r\n value\t= $target.attr( 'data-fancybox' ) || '',\r\n index\t= 0,\r\n items = [];\r\n\r\n // Avoid opening multiple times\r\n if ( e.isDefaultPrevented() ) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Get all related items and find index for clicked one\r\n if ( value ) {\r\n items = opts.selector ? $( opts.selector ) : ( e.data ? e.data.items : [] );\r\n items = items.length ? items.filter( '[data-fancybox=\"' + value + '\"]' ) : $( '[data-fancybox=\"' + value + '\"]' );\r\n\r\n index = items.index( $target );\r\n\r\n // Sometimes current item can not be found\r\n // (for example, when slider clones items)\r\n if ( index < 0 ) {\r\n index = 0;\r\n }\r\n\r\n } else {\r\n items = [ $target ];\r\n }\r\n\r\n $.fancybox.open( items, opts, index );\r\n }\r\n\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if ( selector ) {\r\n\r\n $( 'body' ).off( 'click.fb-start', selector ).on( 'click.fb-start', selector, {\r\n options : options\r\n }, _run );\r\n\r\n } else {\r\n\r\n this.off( 'click.fb-start' ).on( 'click.fb-start', {\r\n items : this,\r\n options : options\r\n }, _run);\r\n\r\n }\r\n\r\n return this;\r\n };\r\n\r\n\r\n // Self initializing plugin\r\n // ========================\r\n\r\n $D.on( 'click.fb-start', '[data-fancybox]', _run );\r\n\r\n}( window, document, window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n;(function ($) {\r\n\r\n\t'use strict';\r\n\r\n\t// Formats matching url to final form\r\n\r\n\tvar format = function (url, rez, params) {\r\n\t\tif ( !url ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tparams = params || '';\r\n\r\n\t\tif ( $.type(params) === \"object\" ) {\r\n\t\t\tparams = $.param(params, true);\r\n\t\t}\r\n\r\n\t\t$.each(rez, function (key, value) {\r\n\t\t\turl = url.replace('$' + key, value || '');\r\n\t\t});\r\n\r\n\t\tif (params.length) {\r\n\t\t\turl += (url.indexOf('?') > 0 ? '&' : '?') + params;\r\n\t\t}\r\n\r\n\t\treturn url;\r\n\t};\r\n\r\n\t// Object containing properties for each media type\r\n\r\n\tvar defaults = {\r\n\t\tyoutube : {\r\n\t\t\tmatcher : /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n\t\t\tparams : {\r\n\t\t\t\tautoplay : 1,\r\n\t\t\t\tautohide : 1,\r\n\t\t\t\tfs : 1,\r\n\t\t\t\trel : 0,\r\n\t\t\t\thd : 1,\r\n\t\t\t\twmode : 'transparent',\r\n\t\t\t\tenablejsapi : 1,\r\n\t\t\t\thtml5 : 1\r\n\t\t\t},\r\n\t\t\tparamPlace : 8,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.youtube.com/embed/$4',\r\n\t\t\tthumb : '//img.youtube.com/vi/$4/hqdefault.jpg'\r\n\t\t},\r\n\r\n\t\tvimeo : {\r\n\t\t\tmatcher : /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n\t\t\tparams : {\r\n\t\t\t\tautoplay : 1,\r\n\t\t\t\thd : 1,\r\n\t\t\t\tshow_title : 1,\r\n\t\t\t\tshow_byline : 1,\r\n\t\t\t\tshow_portrait : 0,\r\n\t\t\t\tfullscreen : 1,\r\n\t\t\t\tapi : 1\r\n\t\t\t},\r\n\t\t\tparamPlace : 3,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//player.vimeo.com/video/$2'\r\n\t\t},\r\n\r\n\t\tmetacafe : {\r\n\t\t\tmatcher : /metacafe.com\\/watch\\/(\\d+)\\/(.*)?/,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.metacafe.com/embed/$1/?ap=1'\r\n\t\t},\r\n\r\n\t\tdailymotion : {\r\n\t\t\tmatcher : /dailymotion.com\\/video\\/(.*)\\/?(.*)/,\r\n\t\t\tparams : {\r\n\t\t\t\tadditionalInfos : 0,\r\n\t\t\t\tautoStart : 1\r\n\t\t\t},\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.dailymotion.com/embed/video/$1'\r\n\t\t},\r\n\r\n\t\tvine : {\r\n\t\t\tmatcher : /vine.co\\/v\\/([a-zA-Z0-9\\?\\=\\-]+)/,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//vine.co/v/$1/embed/simple'\r\n\t\t},\r\n\r\n\t\tinstagram : {\r\n\t\t\tmatcher : /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n\t\t\ttype : 'image',\r\n\t\t\turl : '//$1/p/$2/media/?size=l'\r\n\t\t},\r\n\r\n\t\t// Examples:\r\n\t\t// http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n\t\t// https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n\t\t// https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n\t\tgmap_place : {\r\n\t\t\tmatcher : /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : function (rez) {\r\n\t\t\t\treturn '//maps.google.' + rez[2] + '/?ll=' + ( rez[9] ? rez[9] + '&z=' + Math.floor( rez[10] ) + ( rez[12] ? rez[12].replace(/^\\//, \"&\") : '' ) : rez[12] ) + '&output=' + ( rez[12] && rez[12].indexOf('layer=c') > 0 ? 'svembed' : 'embed' );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Examples:\r\n\t\t// https://www.google.com/maps/search/Empire+State+Building/\r\n\t\t// https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n\t\t// https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n\t\tgmap_search : {\r\n\t\t\tmatcher : /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : function (rez) {\r\n\t\t\t\treturn '//maps.google.' + rez[2] + '/maps?q=' + rez[5].replace('query=', 'q=').replace('api=1', '') + '&output=embed';\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t$(document).on('objectNeedsType.fb', function (e, instance, item) {\r\n\r\n\t\tvar url\t = item.src || '',\r\n\t\t\ttype = false,\r\n\t\t\tmedia,\r\n\t\t\tthumb,\r\n\t\t\trez,\r\n\t\t\tparams,\r\n\t\t\turlParams,\r\n\t\t\tparamObj,\r\n\t\t\tprovider;\r\n\r\n\t\tmedia = $.extend( true, {}, defaults, item.opts.media );\r\n\r\n\t\t// Look for any matching media type\r\n\t\t$.each(media, function ( providerName, providerOpts ) {\r\n\t\t\trez = url.match( providerOpts.matcher );\r\n\r\n\t\t\tif ( !rez ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttype = providerOpts.type;\r\n\t\t\tparamObj = {};\r\n\r\n\t\t\tif ( providerOpts.paramPlace && rez[ providerOpts.paramPlace ] ) {\r\n\t\t\t\turlParams = rez[ providerOpts.paramPlace ];\r\n\r\n\t\t\t\tif ( urlParams[ 0 ] == '?' ) {\r\n\t\t\t\t\turlParams = urlParams.substring(1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\turlParams = urlParams.split('&');\r\n\r\n\t\t\t\tfor ( var m = 0; m < urlParams.length; ++m ) {\r\n\t\t\t\t\tvar p = urlParams[ m ].split('=', 2);\r\n\r\n\t\t\t\t\tif ( p.length == 2 ) {\r\n\t\t\t\t\t\tparamObj[ p[0] ] = decodeURIComponent( p[1].replace(/\\+/g, \" \") );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tparams = $.extend( true, {}, providerOpts.params, item.opts[ providerName ], paramObj );\r\n\r\n\t\t\turl = $.type( providerOpts.url ) === \"function\" ? providerOpts.url.call( this, rez, params, item ) : format( providerOpts.url, rez, params );\r\n\t\t\tthumb = $.type( providerOpts.thumb ) === \"function\" ? providerOpts.thumb.call( this, rez, params, item ) : format( providerOpts.thumb, rez );\r\n\r\n\t\t\tif ( providerName === 'vimeo' ) {\r\n\t\t\t\turl = url.replace('&%23', '#');\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t// If it is found, then change content type and update the url\r\n\r\n\t\tif ( type ) {\r\n\t\t\titem.src = url;\r\n\t\t\titem.type = type;\r\n\r\n\t\t\tif ( !item.opts.thumb && !( item.opts.$thumb && item.opts.$thumb.length ) ) {\r\n\t\t\t\titem.opts.thumb = thumb;\r\n\t\t\t}\r\n\r\n\t\t\tif ( type === 'iframe' ) {\r\n\t\t\t\t$.extend(true, item.opts, {\r\n\t\t\t\t\tiframe : {\r\n\t\t\t\t\t\tpreload : false,\r\n\t\t\t\t\t\tattr : {\r\n\t\t\t\t\t\t\tscrolling : \"no\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\titem.contentProvider = provider;\r\n\r\n\t\t\t\titem.opts.slideClass += ' fancybox-slide--' + ( provider == 'gmap_place' || provider == 'gmap_search' ? 'map' : 'video' );\r\n\t\t\t}\r\n\r\n\t\t} else if ( url ) {\r\n\t\t\titem.type = item.opts.defaultType;\r\n\t\t}\r\n\r\n\t});\r\n\r\n}( window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n;(function (window, document, $) {\r\n\t'use strict';\r\n\r\n\tvar requestAFrame = (function () {\r\n return window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n };\r\n })();\r\n\r\n\r\n var cancelAFrame = (function () {\r\n return window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n };\r\n })();\r\n\r\n\r\n\tvar pointers = function( e ) {\r\n\t\tvar result = [];\r\n\r\n\t\te = e.originalEvent || e || window.e;\r\n\t\te = e.touches && e.touches.length ? e.touches : ( e.changedTouches && e.changedTouches.length ? e.changedTouches : [ e ] );\r\n\r\n\t\tfor ( var key in e ) {\r\n\r\n\t\t\tif ( e[ key ].pageX ) {\r\n\t\t\t\tresult.push( { x : e[ key ].pageX, y : e[ key ].pageY } );\r\n\r\n\t\t\t} else if ( e[ key ].clientX ) {\r\n\t\t\t\tresult.push( { x : e[ key ].clientX, y : e[ key ].clientY } );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\tvar distance = function( point2, point1, what ) {\r\n\t\tif ( !point1 || !point2 ) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tif ( what === 'x' ) {\r\n\t\t\treturn point2.x - point1.x;\r\n\r\n\t\t} else if ( what === 'y' ) {\r\n\t\t\treturn point2.y - point1.y;\r\n\t\t}\r\n\r\n\t\treturn Math.sqrt( Math.pow( point2.x - point1.x, 2 ) + Math.pow( point2.y - point1.y, 2 ) );\r\n\t};\r\n\r\n\tvar isClickable = function( $el ) {\r\n\t\tif ( $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea') || $.isFunction( $el.get(0).onclick ) || $el.data('selectable') ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check for attributes like data-fancybox-next or data-fancybox-close\r\n\t\tfor ( var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++ ) {\r\n if ( atts[i].nodeName.substr(0, 14) === 'data-fancybox-' ) {\r\n return true;\r\n }\r\n }\r\n\r\n\t \treturn false;\r\n\t};\r\n\r\n\tvar hasScrollbars = function( el ) {\r\n\t\tvar overflowY = window.getComputedStyle( el )['overflow-y'];\r\n\t\tvar overflowX = window.getComputedStyle( el )['overflow-x'];\r\n\r\n\t\tvar vertical = (overflowY === 'scroll' || overflowY === 'auto') && el.scrollHeight > el.clientHeight;\r\n\t\tvar horizontal = (overflowX === 'scroll' || overflowX === 'auto') && el.scrollWidth > el.clientWidth;\r\n\r\n\t\treturn vertical || horizontal;\r\n\t};\r\n\r\n\tvar isScrollable = function ( $el ) {\r\n\t\tvar rez = false;\r\n\r\n\t\twhile ( true ) {\r\n\t\t\trez\t= hasScrollbars( $el.get(0) );\r\n\r\n\t\t\tif ( rez ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t$el = $el.parent();\r\n\r\n\t\t\tif ( !$el.length || $el.hasClass( 'fancybox-stage' ) || $el.is( 'body' ) ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rez;\r\n\t};\r\n\r\n\r\n\tvar Guestures = function ( instance ) {\r\n\t\tvar self = this;\r\n\r\n\t\tself.instance = instance;\r\n\r\n\t\tself.$bg = instance.$refs.bg;\r\n\t\tself.$stage = instance.$refs.stage;\r\n\t\tself.$container = instance.$refs.container;\r\n\r\n\t\tself.destroy();\r\n\r\n\t\tself.$container.on( 'touchstart.fb.touch mousedown.fb.touch', $.proxy(self, 'ontouchstart') );\r\n\t};\r\n\r\n\tGuestures.prototype.destroy = function() {\r\n\t\tthis.$container.off( '.fb.touch' );\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchstart = function( e ) {\r\n\t\tvar self = this;\r\n\r\n\t\tvar $target = $( e.target );\r\n\t\tvar instance = self.instance;\r\n\t\tvar current = instance.current;\r\n\t\tvar $content = current.$content;\r\n\r\n\t\tvar isTouchDevice = ( e.type == 'touchstart' );\r\n\r\n\t\t// Do not respond to both events\r\n\t\tif ( isTouchDevice ) {\r\n\t self.$container.off( 'mousedown.fb.touch' );\r\n\t }\r\n\r\n\t\t// Ignore clicks while zooming or closing\r\n\t\tif ( !current || self.instance.isAnimating || self.instance.isClosing ) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore right click\r\n\t\tif ( e.originalEvent && e.originalEvent.button == 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore taping on links, buttons, input elements\r\n\t\tif ( !$target.length || isClickable( $target ) || isClickable( $target.parent() ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore clicks on the scrollbar\r\n\t\tif ( e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.startPoints = pointers( e );\r\n\r\n\t\tif ( !self.startPoints ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.$target = $target;\r\n\t\tself.$content = $content;\r\n\t\tself.canTap = true;\r\n\t\tself.opts = current.opts.touch;\r\n\r\n\t\t$(document).off( '.fb.touch' );\r\n\r\n\t\t$(document).on( isTouchDevice ? 'touchend.fb.touch touchcancel.fb.touch' : 'mouseup.fb.touch mouseleave.fb.touch', $.proxy(self, \"ontouchend\"));\r\n\t\t$(document).on( isTouchDevice ? 'touchmove.fb.touch' : 'mousemove.fb.touch', $.proxy(self, \"ontouchmove\"));\r\n\r\n\t\tif ( !(self.opts || instance.canPan() ) || !( $target.is( self.$stage ) || self.$stage.find( $target ).length ) ) {\r\n\r\n\t\t\t// Prevent ghosting\r\n\t\t\tif ( $target.is('img') ) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\te.stopPropagation();\r\n\r\n\t\tif ( !( $.fancybox.isMobile && ( isScrollable( self.$target ) || isScrollable( self.$target.parent() ) ) ) ) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\tself.canvasWidth = Math.round( current.$slide[0].clientWidth );\r\n\t\tself.canvasHeight = Math.round( current.$slide[0].clientHeight );\r\n\r\n\t\tself.startTime = new Date().getTime();\r\n\t\tself.distanceX = self.distanceY = self.distance = 0;\r\n\r\n\t\tself.isPanning = false;\r\n\t\tself.isSwiping = false;\r\n\t\tself.isZooming = false;\r\n\r\n\t\tself.sliderStartPos = self.sliderLastPos || { top: 0, left: 0 };\r\n\t\tself.contentStartPos = $.fancybox.getTranslate( self.$content );\r\n\t\tself.contentLastPos = null;\r\n\r\n\t\tif ( self.startPoints.length === 1 && !self.isZooming ) {\r\n\t\t\tself.canTap = true;\r\n\r\n\t\t\tif ( current.type === 'image' && ( self.contentStartPos.width > self.canvasWidth + 1 || self.contentStartPos.height > self.canvasHeight + 1 ) ) {\r\n\r\n\t\t\t\t$.fancybox.stop( self.$content );\r\n\r\n\t\t\t\tself.$content.css( 'transition-duration', '' );\r\n\r\n\t\t\t\tself.isPanning = true;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.isSwiping = true;\r\n\t\t\t}\r\n\r\n\t\t\tself.$container.addClass( 'fancybox-controls--isGrabbing' );\r\n\t\t}\r\n\r\n\t\tif ( self.startPoints.length === 2 && !instance.isAnimating && !current.hasError && current.type === 'image' && ( current.isLoaded || current.$ghost ) ) {\r\n\t\t\tself.isZooming = true;\r\n\r\n\t\t\tself.isSwiping = false;\r\n\t\t\tself.isPanning = false;\r\n\r\n\t\t\t$.fancybox.stop( self.$content );\r\n\r\n\t\t\tself.$content.css( 'transition-duration', '' );\r\n\r\n\t\t\tself.centerPointStartX = ( ( self.startPoints[0].x + self.startPoints[1].x ) * 0.5 ) - $(window).scrollLeft();\r\n\t\t\tself.centerPointStartY = ( ( self.startPoints[0].y + self.startPoints[1].y ) * 0.5 ) - $(window).scrollTop();\r\n\r\n\t\t\tself.percentageOfImageAtPinchPointX = ( self.centerPointStartX - self.contentStartPos.left ) / self.contentStartPos.width;\r\n\t\t\tself.percentageOfImageAtPinchPointY = ( self.centerPointStartY - self.contentStartPos.top ) / self.contentStartPos.height;\r\n\r\n\t\t\tself.startDistanceBetweenFingers = distance( self.startPoints[0], self.startPoints[1] );\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchmove = function( e ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tself.newPoints = pointers( e );\r\n\r\n\t\tif ( $.fancybox.isMobile && ( isScrollable( self.$target ) || isScrollable( self.$target.parent() ) ) ) {\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tself.canTap = false;\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( !( self.opts || self.instance.canPan() ) || !self.newPoints || !self.newPoints.length ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.distanceX = distance( self.newPoints[0], self.startPoints[0], 'x' );\r\n\t\tself.distanceY = distance( self.newPoints[0], self.startPoints[0], 'y' );\r\n\r\n\t\tself.distance = distance( self.newPoints[0], self.startPoints[0] );\r\n\r\n\t\t// Skip false ontouchmove events (Chrome)\r\n\t\tif ( self.distance > 0 && !self.tapped ) {\r\n\r\n\t\t\tif ( !( self.$target.is( self.$stage ) || self.$stage.find( self.$target ).length ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif ( self.isSwiping ) {\r\n\t\t\t\tself.onSwipe();\r\n\r\n\t\t\t} else if ( self.isPanning ) {\r\n\t\t\t\tself.onPan();\r\n\r\n\t\t\t} else if ( self.isZooming ) {\r\n\t\t\t\tself.onZoom();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onSwipe = function() {\r\n\r\n\t\tvar self = this,\r\n\t\t\tswiping = self.isSwiping,\r\n\t\t\tleft = self.sliderStartPos.left || 0,\r\n\t\t\tangle;\r\n\r\n\t\tif ( swiping === true ) {\r\n\r\n\t\t\t// We need at least 10px distance to correctly calculate an angle\r\n\t\t\tif ( Math.abs( self.distance ) > 10 ) {\r\n\r\n\t\t\t\tself.canTap = false;\r\n\r\n\t\t\t\tif ( self.instance.group.length < 2 && self.opts.vertical ) {\r\n\t\t\t\t\tself.isSwiping = 'y';\r\n\r\n\t\t\t\t} else if ( self.instance.isDragging || self.opts.vertical === false || ( self.opts.vertical === 'auto' && $( window ).width() > 800 ) ) {\r\n\t\t\t\t\tself.isSwiping = 'x';\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tangle = Math.abs( Math.atan2( self.distanceY, self.distanceX ) * 180 / Math.PI );\r\n\r\n\t\t\t\t\tself.isSwiping = ( angle > 45 && angle < 135 ) ? 'y' : 'x';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.instance.isDragging = self.isSwiping;\r\n\r\n\t\t\t\t// Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n\t\t\t\tself.startPoints = self.newPoints;\r\n\r\n\t\t\t\t$.each(self.instance.slides, function( index, slide ) {\r\n\t\t\t\t\t$.fancybox.stop( slide.$slide );\r\n\r\n\t\t\t\t\tslide.$slide.css( 'transition-duration', '' );\r\n\r\n\t\t\t\t\tslide.inTransition = false;\r\n\r\n\t\t\t\t\tif ( slide.pos === self.instance.current.pos ) {\r\n\t\t\t\t\t\tself.sliderStartPos.left = $.fancybox.getTranslate( slide.$slide ).left;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Stop slideshow\r\n\t\t\t\tif ( self.instance.SlideShow && self.instance.SlideShow.isActive ) {\r\n\t\t\t\t\tself.instance.SlideShow.stop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\r\n\t\t}\r\n\r\n\t\tif ( swiping == 'x' ) {\r\n\r\n\t\t\t// Sticky edges\r\n\t\t\tif ( self.distanceX > 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === 0 && !self.instance.current.opts.loop ) ) ) {\r\n\t\t\t\tleft = left + Math.pow( self.distanceX, 0.8 );\r\n\r\n\t\t\t} else if ( self.distanceX < 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop ) ) ) {\r\n\t\t\t\tleft = left - Math.pow( -self.distanceX, 0.8 );\r\n\r\n\t\t\t} else {\r\n\t\t\t\tleft = left + self.distanceX;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tself.sliderLastPos = {\r\n\t\t\ttop : swiping == 'x' ? 0 : self.sliderStartPos.top + self.distanceY,\r\n\t\t\tleft : left\r\n\t\t};\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.requestId = requestAFrame(function() {\r\n\r\n\t\t\tif ( self.sliderLastPos ) {\r\n\t\t\t\t$.each(self.instance.slides, function( index, slide ) {\r\n\t\t\t\t\tvar pos = slide.pos - self.instance.currPos;\r\n\r\n\t\t\t\t\t$.fancybox.setTranslate( slide.$slide, {\r\n\t\t\t\t\t\ttop : self.sliderLastPos.top,\r\n\t\t\t\t\t\tleft : self.sliderLastPos.left + ( pos * self.canvasWidth ) + ( pos * slide.opts.gutter )\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.$container.addClass( 'fancybox-is-sliding' );\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onPan = function() {\r\n\r\n\t\tvar self = this,\r\n\t\t\tnewOffsetX,\r\n\t\t\tnewOffsetY,\r\n\t\t\tnewPos;\r\n\r\n\t\tself.canTap = false;\r\n\r\n\t\tif ( self.contentStartPos.width > self.canvasWidth ) {\r\n\t\t\tnewOffsetX = self.contentStartPos.left + self.distanceX;\r\n\r\n\t\t} else {\r\n\t\t\tnewOffsetX = self.contentStartPos.left;\r\n\t\t}\r\n\r\n\t\tnewOffsetY = self.contentStartPos.top + self.distanceY;\r\n\r\n\t\tnewPos = self.limitMovement( newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height );\r\n\r\n\t\tnewPos.scaleX = self.contentStartPos.scaleX;\r\n\t\tnewPos.scaleY = self.contentStartPos.scaleY;\r\n\r\n\t\tself.contentLastPos = newPos;\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.requestId = requestAFrame(function() {\r\n\t\t\t$.fancybox.setTranslate( self.$content, self.contentLastPos );\r\n\t\t});\r\n\t};\r\n\r\n\t// Make panning sticky to the edges\r\n\tGuestures.prototype.limitMovement = function( newOffsetX, newOffsetY, newWidth, newHeight ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar minTranslateX, minTranslateY, maxTranslateX, maxTranslateY;\r\n\r\n\t\tvar canvasWidth = self.canvasWidth;\r\n\t\tvar canvasHeight = self.canvasHeight;\r\n\r\n\t\tvar currentOffsetX = self.contentStartPos.left;\r\n\t\tvar currentOffsetY = self.contentStartPos.top;\r\n\r\n\t\tvar distanceX = self.distanceX;\r\n\t\tvar distanceY = self.distanceY;\r\n\r\n\t\t// Slow down proportionally to traveled distance\r\n\r\n\t\tminTranslateX = Math.max(0, canvasWidth * 0.5 - newWidth * 0.5 );\r\n\t\tminTranslateY = Math.max(0, canvasHeight * 0.5 - newHeight * 0.5 );\r\n\r\n\t\tmaxTranslateX = Math.min( canvasWidth - newWidth, canvasWidth * 0.5 - newWidth * 0.5 );\r\n\t\tmaxTranslateY = Math.min( canvasHeight - newHeight, canvasHeight * 0.5 - newHeight * 0.5 );\r\n\r\n\t\tif ( newWidth > canvasWidth ) {\r\n\r\n\t\t\t// ->\r\n\t\t\tif ( distanceX > 0 && newOffsetX > minTranslateX ) {\r\n\t\t\t\tnewOffsetX = minTranslateX - 1 + Math.pow( -minTranslateX + currentOffsetX + distanceX, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t\t// <-\r\n\t\t\tif ( distanceX < 0 && newOffsetX < maxTranslateX ) {\r\n\t\t\t\tnewOffsetX = maxTranslateX + 1 - Math.pow( maxTranslateX - currentOffsetX - distanceX, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif ( newHeight > canvasHeight ) {\r\n\r\n\t\t\t// \\/\r\n\t\t\tif ( distanceY > 0 && newOffsetY > minTranslateY ) {\r\n\t\t\t\tnewOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t\t// /\\\r\n\t\t\tif ( distanceY < 0 && newOffsetY < maxTranslateY ) {\r\n\t\t\t\tnewOffsetY = maxTranslateY + 1 - Math.pow ( maxTranslateY - currentOffsetY - distanceY, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX\r\n\t\t};\r\n\r\n\t};\r\n\r\n\r\n\tGuestures.prototype.limitPosition = function( newOffsetX, newOffsetY, newWidth, newHeight ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar canvasWidth = self.canvasWidth;\r\n\t\tvar canvasHeight = self.canvasHeight;\r\n\r\n\t\tif ( newWidth > canvasWidth ) {\r\n\t\t\tnewOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n\t\t\tnewOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Center horizontally\r\n\t\t\tnewOffsetX = Math.max( 0, canvasWidth / 2 - newWidth / 2 );\r\n\r\n\t\t}\r\n\r\n\t\tif ( newHeight > canvasHeight ) {\r\n\t\t\tnewOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n\t\t\tnewOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Center vertically\r\n\t\t\tnewOffsetY = Math.max( 0, canvasHeight / 2 - newHeight / 2 );\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX\r\n\t\t};\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onZoom = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\t// Calculate current distance between points to get pinch ratio and new width and height\r\n\r\n\t\tvar currentWidth = self.contentStartPos.width;\r\n\t\tvar currentHeight = self.contentStartPos.height;\r\n\r\n\t\tvar currentOffsetX = self.contentStartPos.left;\r\n\t\tvar currentOffsetY = self.contentStartPos.top;\r\n\r\n\t\tvar endDistanceBetweenFingers = distance( self.newPoints[0], self.newPoints[1] );\r\n\r\n\t\tvar pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n\t\tvar newWidth = Math.floor( currentWidth * pinchRatio );\r\n\t\tvar newHeight = Math.floor( currentHeight * pinchRatio );\r\n\r\n\t\t// This is the translation due to pinch-zooming\r\n\t\tvar translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n\t\tvar translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n\t\t//Point between the two touches\r\n\r\n\t\tvar centerPointEndX = ((self.newPoints[0].x + self.newPoints[1].x) / 2) - $(window).scrollLeft();\r\n\t\tvar centerPointEndY = ((self.newPoints[0].y + self.newPoints[1].y) / 2) - $(window).scrollTop();\r\n\r\n\t\t// And this is the translation due to translation of the centerpoint\r\n\t\t// between the two fingers\r\n\r\n\t\tvar translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n\t\tvar translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n\t\t// The new offset is the old/current one plus the total translation\r\n\r\n\t\tvar newOffsetX = currentOffsetX + ( translateFromZoomingX + translateFromTranslatingX );\r\n\t\tvar newOffsetY = currentOffsetY + ( translateFromZoomingY + translateFromTranslatingY );\r\n\r\n\t\tvar newPos = {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX,\r\n\t\t\tscaleX : self.contentStartPos.scaleX * pinchRatio,\r\n\t\t\tscaleY : self.contentStartPos.scaleY * pinchRatio\r\n\t\t};\r\n\r\n\t\tself.canTap = false;\r\n\r\n\t\tself.newWidth = newWidth;\r\n\t\tself.newHeight = newHeight;\r\n\r\n\t\tself.contentLastPos = newPos;\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.requestId = requestAFrame(function() {\r\n\t\t\t$.fancybox.setTranslate( self.$content, self.contentLastPos );\r\n\t\t});\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchend = function( e ) {\r\n\r\n\t\tvar self = this;\r\n\t\tvar dMs = Math.max( (new Date().getTime() ) - self.startTime, 1);\r\n\r\n\t\tvar swiping = self.isSwiping;\r\n\t\tvar panning = self.isPanning;\r\n\t\tvar zooming = self.isZooming;\r\n\r\n\t\tself.endPoints = pointers( e );\r\n\r\n\t\tself.$container.removeClass( 'fancybox-controls--isGrabbing' );\r\n\r\n\t\t$(document).off( '.fb.touch' );\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.isSwiping = false;\r\n\t\tself.isPanning = false;\r\n\t\tself.isZooming = false;\r\n\r\n\t\tself.instance.isDragging = false;\r\n\r\n\t\tif ( self.canTap ) {\r\n\t\t\treturn self.onTap( e );\r\n\t\t}\r\n\r\n\t\tself.speed = 366;\r\n\r\n\t\t// Speed in px/ms\r\n\t\tself.velocityX = self.distanceX / dMs * 0.5;\r\n\t\tself.velocityY = self.distanceY / dMs * 0.5;\r\n\r\n\t\tself.speedX = Math.max( self.speed * 0.5, Math.min( self.speed * 1.5, ( 1 / Math.abs( self.velocityX ) ) * self.speed ) );\r\n\r\n\t\tif ( panning ) {\r\n\t\t\tself.endPanning();\r\n\r\n\t\t} else if ( zooming ) {\r\n\t\t\tself.endZooming();\r\n\r\n\t\t} else {\r\n\t\t\tself.endSwiping( swiping );\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t};\r\n\r\n\tGuestures.prototype.endSwiping = function( swiping ) {\r\n\r\n\t\tvar self = this;\r\n\t\tvar ret = false;\r\n\r\n\t\tself.sliderLastPos = null;\r\n\r\n\t\t// Close if swiped vertically / navigate if horizontally\r\n\t\tif ( swiping == 'y' && Math.abs( self.distanceY ) > 50 ) {\r\n\r\n\t\t\t// Continue vertical movement\r\n\t\t\t$.fancybox.animate( self.instance.current.$slide, {\r\n\t\t\t\ttop : self.sliderStartPos.top + self.distanceY + ( self.velocityY * 150 ),\r\n\t\t\t\topacity : 0\r\n\t\t\t}, 150 );\r\n\r\n\t\t\tret = self.instance.close( true, 300 );\r\n\r\n\t\t} else if ( swiping == 'x' && self.distanceX > 50 && self.instance.group.length > 1 ) {\r\n\t\t\tret = self.instance.previous( self.speedX );\r\n\r\n\t\t} else if ( swiping == 'x' && self.distanceX < -50 && self.instance.group.length > 1 ) {\r\n\t\t\tret = self.instance.next( self.speedX );\r\n\t\t}\r\n\r\n\t\tif ( ret === false && ( swiping == 'x' || swiping == 'y' ) ) {\r\n\t\t\tself.instance.jumpTo( self.instance.current.index, 150 );\r\n\t\t}\r\n\r\n\t\tself.$container.removeClass( 'fancybox-is-sliding' );\r\n\r\n\t};\r\n\r\n\t// Limit panning from edges\r\n\t// ========================\r\n\r\n\tGuestures.prototype.endPanning = function() {\r\n\r\n\t\tvar self = this;\r\n\t\tvar newOffsetX, newOffsetY, newPos;\r\n\r\n\t\tif ( !self.contentLastPos ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( self.opts.momentum === false ) {\r\n\t\t\tnewOffsetX = self.contentLastPos.left;\r\n\t\t\tnewOffsetY = self.contentLastPos.top;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Continue movement\r\n\t\t\tnewOffsetX = self.contentLastPos.left + ( self.velocityX * self.speed );\r\n\t\t\tnewOffsetY = self.contentLastPos.top + ( self.velocityY * self.speed );\r\n\t\t}\r\n\r\n\t\tnewPos = self.limitPosition( newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height );\r\n\r\n\t\t newPos.width = self.contentStartPos.width;\r\n\t\t newPos.height = self.contentStartPos.height;\r\n\r\n\t\t$.fancybox.animate( self.$content, newPos, 330 );\r\n\t};\r\n\r\n\r\n\tGuestures.prototype.endZooming = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar current = self.instance.current;\r\n\r\n\t\tvar newOffsetX, newOffsetY, newPos, reset;\r\n\r\n\t\tvar newWidth = self.newWidth;\r\n\t\tvar newHeight = self.newHeight;\r\n\r\n\t\tif ( !self.contentLastPos ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tnewOffsetX = self.contentLastPos.left;\r\n\t\tnewOffsetY = self.contentLastPos.top;\r\n\r\n\t\treset = {\r\n\t\t \ttop : newOffsetY,\r\n\t\t \tleft : newOffsetX,\r\n\t\t \twidth : newWidth,\r\n\t\t \theight : newHeight,\r\n\t\t\tscaleX : 1,\r\n\t\t\tscaleY : 1\r\n\t };\r\n\r\n\t // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n\t $.fancybox.setTranslate( self.$content, reset );\r\n\r\n\t\tif ( newWidth < self.canvasWidth && newHeight < self.canvasHeight ) {\r\n\t\t\tself.instance.scaleToFit( 150 );\r\n\r\n\t\t} else if ( newWidth > current.width || newHeight > current.height ) {\r\n\t\t\tself.instance.scaleToActual( self.centerPointStartX, self.centerPointStartY, 150 );\r\n\r\n\t\t} else {\r\n\r\n\t\t\tnewPos = self.limitPosition( newOffsetX, newOffsetY, newWidth, newHeight );\r\n\r\n\t\t\t// Switch from scale() to width/height or animation will not work correctly\r\n\t\t\t$.fancybox.setTranslate( self.content, $.fancybox.getTranslate( self.$content ) );\r\n\r\n\t\t\t$.fancybox.animate( self.$content, newPos, 150 );\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onTap = function(e) {\r\n\t\tvar self = this;\r\n\t\tvar $target = $( e.target );\r\n\r\n\t\tvar instance = self.instance;\r\n\t\tvar current = instance.current;\r\n\r\n\t\tvar endPoints = ( e && pointers( e ) ) || self.startPoints;\r\n\r\n\t\tvar tapX = endPoints[0] ? endPoints[0].x - self.$stage.offset().left : 0;\r\n\t\tvar tapY = endPoints[0] ? endPoints[0].y - self.$stage.offset().top : 0;\r\n\r\n\t\tvar where;\r\n\r\n\t\tvar process = function ( prefix ) {\r\n\r\n\t\t\tvar action = current.opts[ prefix ];\r\n\r\n\t\t\tif ( $.isFunction( action ) ) {\r\n\t\t\t\taction = action.apply( instance, [ current, e ] );\r\n\t\t\t}\r\n\r\n\t\t\tif ( !action) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tswitch ( action ) {\r\n\r\n\t\t\t\tcase \"close\" :\r\n\r\n\t\t\t\t\tinstance.close( self.startEvent );\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"toggleControls\" :\r\n\r\n\t\t\t\t\tinstance.toggleControls( true );\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"next\" :\r\n\r\n\t\t\t\t\tinstance.next();\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"nextOrClose\" :\r\n\r\n\t\t\t\t\tif ( instance.group.length > 1 ) {\r\n\t\t\t\t\t\tinstance.next();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tinstance.close( self.startEvent );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"zoom\" :\r\n\r\n\t\t\t\t\tif ( current.type == 'image' && ( current.isLoaded || current.$ghost ) ) {\r\n\r\n\t\t\t\t\t\tif ( instance.canPan() ) {\r\n\t\t\t\t\t\t\tinstance.scaleToFit();\r\n\r\n\t\t\t\t\t\t} else if ( instance.isScaledDown() ) {\r\n\t\t\t\t\t\t\tinstance.scaleToActual( tapX, tapY );\r\n\r\n\t\t\t\t\t\t} else if ( instance.group.length < 2 ) {\r\n\t\t\t\t\t\t\tinstance.close( self.startEvent );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\t// Ignore right click\r\n\t\tif ( e.originalEvent && e.originalEvent.button == 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Skip if clicked on the scrollbar\r\n\t\tif ( tapX > $target[0].clientWidth + $target.offset().left ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check where is clicked\r\n\t\tif ( $target.is( '.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container' ) ) {\r\n\t\t\twhere = 'Outside';\r\n\r\n\t\t} else if ( $target.is( '.fancybox-slide' ) ) {\r\n\t\t\twhere = 'Slide';\r\n\r\n\t\t} else if ( instance.current.$content && instance.current.$content.has( e.target ).length ) {\r\n\t\t \twhere = 'Content';\r\n\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if this is a double tap\r\n\t\tif ( self.tapped ) {\r\n\r\n\t\t\t// Stop previously created single tap\r\n\t\t\tclearTimeout( self.tapped );\r\n\t\t\tself.tapped = null;\r\n\r\n\t\t\t// Skip if distance between taps is too big\r\n\t\t\tif ( Math.abs( tapX - self.tapX ) > 50 || Math.abs( tapY - self.tapY ) > 50 ) {\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\t// OK, now we assume that this is a double-tap\r\n\t\t\tprocess( 'dblclick' + where );\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Single tap will be processed if user has not clicked second time within 300ms\r\n\t\t\t// or there is no need to wait for double-tap\r\n\t\t\tself.tapX = tapX;\r\n\t\t\tself.tapY = tapY;\r\n\r\n\t\t\tif ( current.opts[ 'dblclick' + where ] && current.opts[ 'dblclick' + where ] !== current.opts[ 'click' + where ] ) {\r\n\r\n\t\t\t\tself.tapped = setTimeout(function() {\r\n\t\t\t\t\tself.tapped = null;\r\n\r\n\t\t\t\t\tprocess( 'click' + where );\r\n\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tprocess( 'click' + where );\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t$(document).on('onActivate.fb', function (e, instance) {\r\n\t\tif ( instance && !instance.Guestures ) {\r\n\t\t\tinstance.Guestures = new Guestures( instance );\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on('beforeClose.fb', function (e, instance) {\r\n\t\tif ( instance && instance.Guestures ) {\r\n\t\t\tinstance.Guestures.destroy();\r\n\t\t}\r\n\t});\r\n\r\n\r\n}( window, document, window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\t$.extend(true, $.fancybox.defaults, {\r\n\t\tbtnTpl : {\r\n\t\t\tslideShow :\r\n\t\t\t\t''\r\n\t\t},\r\n\t\tslideShow : {\r\n\t\t\tautoStart : false,\r\n speed : 3000\r\n\t\t}\r\n\t});\r\n\r\n\tvar SlideShow = function( instance ) {\r\n\t\tthis.instance = instance;\r\n\t\tthis.init();\r\n\t};\r\n\r\n\t$.extend( SlideShow.prototype, {\r\n\t\ttimer : null,\r\n\t\tisActive : false,\r\n\t\t$button : null,\r\n\r\n\t\tinit : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.$button = self.instance.$refs.toolbar.find('[data-fancybox-play]').on('click', function() {\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\r\n\t\t\tif ( self.instance.group.length < 2 || !self.instance.group[ self.instance.currIndex ].opts.slideShow ) {\r\n\t\t\t\tself.$button.hide();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tset : function( force ) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\t// Check if reached last element\r\n\t\t\tif ( self.instance && self.instance.current && (force === true || self.instance.current.opts.loop || self.instance.currIndex < self.instance.group.length - 1 )) {\r\n\t\t\t\tself.timer = setTimeout(function() {\r\n\t\t\t\t\tif ( self.isActive ) {\r\n\t\t\t\t\t\tself.instance.jumpTo( (self.instance.currIndex + 1) % self.instance.group.length );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}, self.instance.current.opts.slideShow.speed);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.stop();\r\n\t\t\t\tself.instance.idleSecondsCounter = 0;\r\n\t\t\t\tself.instance.showControls();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tclear : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tclearTimeout( self.timer );\r\n\r\n\t\t\tself.timer = null;\r\n\t\t},\r\n\r\n\t\tstart : function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar current = self.instance.current;\r\n\r\n\t\t\tif ( current ) {\r\n\t\t\t\tself.isActive = true;\r\n\r\n\t\t\t\tself.$button\r\n\t\t\t\t\t.attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_STOP )\r\n\t\t\t\t\t.removeClass( 'fancybox-button--play' )\r\n\t\t\t\t\t.addClass( 'fancybox-button--pause' );\r\n\r\n\t\t\t\t\tself.set( true );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tstop : function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar current = self.instance.current;\r\n\r\n\t\t\tself.clear();\r\n\r\n\t\t\tself.$button\r\n\t\t\t\t.attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_START )\r\n\t\t\t\t.removeClass( 'fancybox-button--pause' )\r\n\t\t\t\t.addClass( 'fancybox-button--play' );\r\n\r\n\t\t\tself.isActive = false;\r\n\t\t},\r\n\r\n\t\ttoggle : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tif ( self.isActive ) {\r\n\t\t\t\tself.stop();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.start();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$(document).on({\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tif ( instance && !instance.SlideShow ) {\r\n\t\t\t\tinstance.SlideShow = new SlideShow( instance );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeShow.fb' : function(e, instance, current, firstRun) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( firstRun ) {\r\n\r\n\t\t\t\tif ( SlideShow && current.opts.slideShow.autoStart ) {\r\n\t\t\t\t\tSlideShow.start();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if ( SlideShow && SlideShow.isActive ) {\r\n\t\t\t\tSlideShow.clear();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterShow.fb' : function(e, instance, current) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( SlideShow && SlideShow.isActive ) {\r\n\t\t\t\tSlideShow.set();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\t// \"P\" or Spacebar\r\n\t\t\tif ( SlideShow && current.opts.slideShow && ( keycode === 80 || keycode === 32 ) && !$(document.activeElement).is( 'button,a,input' ) ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tSlideShow.toggle();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb onDeactivate.fb' : function(e, instance) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( SlideShow ) {\r\n\t\t\t\tSlideShow.stop();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Page Visibility API to pause slideshow when window is not active\r\n\t$(document).on(\"visibilitychange\", function() {\r\n\t\tvar instance = $.fancybox.getInstance();\r\n\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\tif ( SlideShow && SlideShow.isActive ) {\r\n\t\t\tif ( document.hidden ) {\r\n\t\t\t\tSlideShow.clear();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tSlideShow.set();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n}( document, window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\t// Collection of methods supported by user browser\r\n\tvar fn = (function () {\r\n\r\n\t\tvar fnMap = [\r\n\t\t\t[\r\n\t\t\t\t'requestFullscreen',\r\n\t\t\t\t'exitFullscreen',\r\n\t\t\t\t'fullscreenElement',\r\n\t\t\t\t'fullscreenEnabled',\r\n\t\t\t\t'fullscreenchange',\r\n\t\t\t\t'fullscreenerror'\r\n\t\t\t],\r\n\t\t\t// new WebKit\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullscreen',\r\n\t\t\t\t'webkitExitFullscreen',\r\n\t\t\t\t'webkitFullscreenElement',\r\n\t\t\t\t'webkitFullscreenEnabled',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t// old WebKit (Safari 5.1)\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullScreen',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitCurrentFullScreenElement',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'mozRequestFullScreen',\r\n\t\t\t\t'mozCancelFullScreen',\r\n\t\t\t\t'mozFullScreenElement',\r\n\t\t\t\t'mozFullScreenEnabled',\r\n\t\t\t\t'mozfullscreenchange',\r\n\t\t\t\t'mozfullscreenerror'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'msRequestFullscreen',\r\n\t\t\t\t'msExitFullscreen',\r\n\t\t\t\t'msFullscreenElement',\r\n\t\t\t\t'msFullscreenEnabled',\r\n\t\t\t\t'MSFullscreenChange',\r\n\t\t\t\t'MSFullscreenError'\r\n\t\t\t]\r\n\t\t];\r\n\r\n\t\tvar val;\r\n\t\tvar ret = {};\r\n\t\tvar i, j;\r\n\r\n\t\tfor ( i = 0; i < fnMap.length; i++ ) {\r\n\t\t\tval = fnMap[ i ];\r\n\r\n\t\t\tif ( val && val[ 1 ] in document ) {\r\n\t\t\t\tfor ( j = 0; j < val.length; j++ ) {\r\n\t\t\t\t\tret[ fnMap[ 0 ][ j ] ] = val[ j ];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t})();\r\n\r\n\t// If browser does not have Full Screen API, then simply unset default button template and stop\r\n\tif ( !fn ) {\r\n\r\n\t\tif ( $ && $.fancybox ) {\r\n\t\t\t$.fancybox.defaults.btnTpl.fullScreen = false;\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar FullScreen = {\r\n\r\n\t\trequest : function ( elem ) {\r\n\r\n\t\t\telem = elem || document.documentElement;\r\n\r\n\t\t\telem[ fn.requestFullscreen ]( elem.ALLOW_KEYBOARD_INPUT );\r\n\r\n\t\t},\r\n\t\texit : function () {\r\n\r\n\t\t\tdocument[ fn.exitFullscreen ]();\r\n\r\n\t\t},\r\n\t\ttoggle : function ( elem ) {\r\n\r\n\t\t\telem = elem || document.documentElement;\r\n\r\n\t\t\tif ( this.isFullscreen() ) {\r\n\t\t\t\tthis.exit();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.request( elem );\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tisFullscreen : function() {\r\n\r\n\t\t\treturn Boolean( document[ fn.fullscreenElement ] );\r\n\r\n\t\t},\r\n\t\tenabled : function() {\r\n\r\n\t\t\treturn Boolean( document[ fn.fullscreenEnabled ] );\r\n\r\n\t\t}\r\n\t};\r\n\r\n\t$.extend(true, $.fancybox.defaults, {\r\n\t\tbtnTpl : {\r\n\t\t\tfullScreen :\r\n\t\t\t\t''\r\n\t\t},\r\n\t\tfullScreen : {\r\n\t\t\tautoStart : false\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on({\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tvar $container;\r\n\r\n\t\t\tif ( instance && instance.group[ instance.currIndex ].opts.fullScreen ) {\r\n\t\t\t\t$container = instance.$refs.container;\r\n\r\n\t\t\t\t$container.on('click.fb-fullscreen', '[data-fancybox-fullscreen]', function(e) {\r\n\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tFullScreen.toggle( $container[ 0 ] );\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif ( instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true ) {\r\n\t\t\t\t\tFullScreen.request( $container[ 0 ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Expose API\r\n\t\t\t\tinstance.FullScreen = FullScreen;\r\n\r\n\t\t\t} else if ( instance ) {\r\n\t\t\t\tinstance.$refs.toolbar.find('[data-fancybox-fullscreen]').hide();\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\r\n\t\t\t// \"P\" or Spacebar\r\n\t\t\tif ( instance && instance.FullScreen && keycode === 70 ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tinstance.FullScreen.toggle( instance.$refs.container[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb' : function( instance ) {\r\n\t\t\tif ( instance && instance.FullScreen ) {\r\n\t\t\t\tFullScreen.exit();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on(fn.fullscreenchange, function() {\r\n\t\tvar isFullscreen = FullScreen.isFullscreen(),\r\n\t\t\tinstance = $.fancybox.getInstance();\r\n\r\n\t\tif ( instance ) {\r\n\r\n\t\t\t// If image is zooming, then force to stop and reposition properly\r\n\t\t\tif ( instance.current && instance.current.type === 'image' && instance.isAnimating ) {\r\n\t\t\t\tinstance.current.$content.css( 'transition', 'none' );\r\n\r\n\t\t\t\tinstance.isAnimating = false;\r\n\r\n\t\t\t\tinstance.update( true, true, 0 );\r\n\t\t\t}\r\n\r\n\t\t\tinstance.trigger( 'onFullscreenChange', isFullscreen );\r\n\r\n\t\t\tinstance.$refs.container.toggleClass( 'fancybox-is-fullscreen', isFullscreen );\r\n\t\t}\r\n\r\n\t});\r\n\r\n}( document, window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\t// Make sure there are default values\r\n\t$.fancybox.defaults = $.extend(true, {\r\n\t\tbtnTpl : {\r\n\t\t\tthumbs :\r\n\t\t\t''\r\n\t\t},\r\n\t\tthumbs : {\r\n\t\t\tautoStart : false, // Display thumbnails on opening\r\n\t\t\thideOnClose : true, // Hide thumbnail grid when closing animation starts\r\n\t\t\tparentEl : '.fancybox-container', // Container is injected into this element\r\n\t\t\taxis : 'y' // Vertical (y) or horizontal (x) scrolling\r\n\t\t}\r\n\t}, $.fancybox.defaults);\r\n\r\n\tvar FancyThumbs = function( instance ) {\r\n\t\tthis.init( instance );\r\n\t};\r\n\r\n\t$.extend( FancyThumbs.prototype, {\r\n\r\n\t\t$button\t\t: null,\r\n\t\t$grid\t\t: null,\r\n\t\t$list\t\t: null,\r\n\t\tisVisible\t: false,\r\n\t\tisActive\t: false,\r\n\r\n\t\tinit : function( instance ) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.instance = instance;\r\n\r\n\t\t\tinstance.Thumbs = self;\r\n\r\n\t\t\t// Enable thumbs if at least two group items have thumbnails\r\n\t\t\tvar first = instance.group[0],\r\n\t\t\t\tsecond = instance.group[1];\r\n\r\n\t\t\tself.opts = instance.group[ instance.currIndex ].opts.thumbs;\r\n\r\n\t\t\tself.$button = instance.$refs.toolbar.find( '[data-fancybox-thumbs]' );\r\n\r\n\t\t\tif ( self.opts && first && second && (\r\n\t\t \t\t( first.type == 'image' || first.opts.thumb || first.opts.$thumb ) &&\r\n\t\t \t\t( second.type == 'image' || second.opts.thumb || second.opts.$thumb )\r\n\t\t\t)) {\r\n\r\n\t\t\t\tself.$button.show().on('click', function() {\r\n\t\t\t\t\tself.toggle();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.isActive = true;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.$button.hide();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcreate : function() {\r\n\t\t\tvar self = this,\r\n\t\t\t\tinstance = self.instance,\r\n\t\t\t\tparentEl = self.opts.parentEl,\r\n\t\t\t\tlist,\r\n\t\t\t\tsrc;\r\n\r\n\t\t\tself.$grid = $('
').appendTo( instance.$refs.container.find( parentEl ).addBack().filter( parentEl ) );\r\n\r\n\t\t\t// Build list HTML\r\n\t\t\tlist = '
    ';\r\n\r\n\t\t\t$.each(instance.group, function( i, item ) {\r\n\t\t\t\tsrc = item.opts.thumb || ( item.opts.$thumb ? item.opts.$thumb.attr( 'src' ) : null );\r\n\r\n\t\t\t\tif ( !src && item.type === 'image' ) {\r\n\t\t\t\t\tsrc = item.src;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( src && src.length ) {\r\n\t\t\t\t\tlist += '
  • ';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tlist += '
';\r\n\r\n\t\t\tself.$list = $( list ).appendTo( self.$grid ).on('click', 'li', function() {\r\n\t\t\t\tinstance.jumpTo( $(this).data('index') );\r\n\t\t\t});\r\n\r\n\t\t\tself.$list.find( 'img' ).hide().one('load', function() {\r\n\t\t\t\tvar $parent\t\t= $(this).parent().removeClass( 'fancybox-thumbs-loading' ),\r\n\t\t\t\t\tthumbWidth\t= $parent.outerWidth(),\r\n\t\t\t\t\tthumbHeight\t= $parent.outerHeight(),\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\theight,\r\n\t\t\t\t\twidthRatio,\r\n\t\t\t\t\theightRatio;\r\n\r\n\t\t\t\twidth = this.naturalWidth\t|| this.width;\r\n\t\t\t\theight = this.naturalHeight\t|| this.height;\r\n\r\n\t\t\t\t// Calculate thumbnail dimensions; center vertically and horizontally\r\n\t\t\t\twidthRatio = width / thumbWidth;\r\n\t\t\t\theightRatio = height / thumbHeight;\r\n\r\n\t\t\t\tif (widthRatio >= 1 && heightRatio >= 1) {\r\n\t\t\t\t\tif (widthRatio > heightRatio) {\r\n\t\t\t\t\t\twidth = width / heightRatio;\r\n\t\t\t\t\t\theight = thumbHeight;\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twidth = thumbWidth;\r\n\t\t\t\t\t\theight = height / widthRatio;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(this).css({\r\n\t\t\t\t\twidth : Math.floor(width),\r\n\t\t\t\t\theight : Math.floor(height),\r\n\t\t\t\t\t'margin-top' : height > thumbHeight ? ( Math.floor(thumbHeight * 0.3 - height * 0.3 ) ) : Math.floor(thumbHeight * 0.5 - height * 0.5 ),\r\n\t\t\t\t\t'margin-left' : Math.floor(thumbWidth * 0.5 - width * 0.5 )\r\n\t\t\t\t}).show();\r\n\r\n\t\t\t})\r\n\t\t\t.each(function() {\r\n\t\t\t\tthis.src = $( this ).data( 'src' );\r\n\t\t\t});\r\n\r\n\t\t\tif ( self.opts.axis === 'x' ) {\r\n\t\t\t\tself.$list.width( parseInt( self.$grid.css(\"padding-right\") ) + ( instance.group.length * self.$list.children().eq(0).outerWidth(true) ) + 'px' );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tfocus : function( duration ) {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$list = self.$list,\r\n\t\t\t\tthumb,\r\n\t\t\t\tthumbPos;\r\n\r\n\t\t\tif ( self.instance.current ) {\r\n\t\t\t\tthumb = $list.children()\r\n\t\t\t\t\t.removeClass( 'fancybox-thumbs-active' )\r\n\t\t\t\t\t.filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n\t\t\t\t\t.addClass('fancybox-thumbs-active');\r\n\r\n\t\t\t\tthumbPos = thumb.position();\r\n\r\n\t\t\t\t// Check if need to scroll to make current thumb visible\r\n\t\t\t\tif ( self.opts.axis === 'y' && ( thumbPos.top < 0 || thumbPos.top > ( $list.height() - thumb.outerHeight() ) ) ) {\r\n\t\t\t\t\t$list.stop().animate({ 'scrollTop' : $list.scrollTop() + thumbPos.top }, duration);\r\n\r\n\t\t\t\t} else if ( self.opts.axis === 'x' && (\r\n\t\t\t\t\t\tthumbPos.left < $list.parent().scrollLeft() ||\r\n\t\t\t\t\t\tthumbPos.left > ( $list.parent().scrollLeft() + ( $list.parent().width() - thumb.outerWidth() ) )\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\t$list.parent().stop().animate({ 'scrollLeft' : thumbPos.left }, duration);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tupdate : function() {\r\n\t\t\tthis.instance.$refs.container.toggleClass( 'fancybox-show-thumbs', this.isVisible );\r\n\r\n\t\t\tif ( this.isVisible ) {\r\n\t\t\t\tif ( !this.$grid ) {\r\n\t\t\t\t\tthis.create();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.instance.trigger( 'onThumbsShow' );\r\n\r\n\t\t\t\tthis.focus( 0 );\r\n\r\n\t\t\t} else if ( this.$grid ) {\r\n\t\t\t\tthis.instance.trigger( 'onThumbsHide' );\r\n\t\t\t}\r\n\r\n\t\t\t// Update content position\r\n\t\t\tthis.instance.update();\r\n\t\t},\r\n\r\n\t\thide : function() {\r\n\t\t\tthis.isVisible = false;\r\n\t\t\tthis.update();\r\n\t\t},\r\n\r\n\t\tshow : function() {\r\n\t\t\tthis.isVisible = true;\r\n\t\t\tthis.update();\r\n\t\t},\r\n\r\n\t\ttoggle : function() {\r\n\t\t\tthis.isVisible = !this.isVisible;\r\n\t\t\tthis.update();\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on({\r\n\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tvar Thumbs;\r\n\r\n\t\t\tif ( instance && !instance.Thumbs ) {\r\n\t\t\t\tThumbs = new FancyThumbs( instance );\r\n\r\n\t\t\t\tif ( Thumbs.isActive && Thumbs.opts.autoStart === true ) {\r\n\t\t\t\t\tThumbs.show();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeShow.fb' : function(e, instance, item, firstRun) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\tif ( Thumbs && Thumbs.isVisible ) {\r\n\t\t\t\tThumbs.focus( firstRun ? 0 : 250 );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\t// \"G\"\r\n\t\t\tif ( Thumbs && Thumbs.isActive && keycode === 71 ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tThumbs.toggle();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb' : function( e, instance ) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\tif ( Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false ) {\r\n\t\t\t\tThumbs.$grid.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n}(document, window.jQuery));\r\n\r\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\t$.extend(true, $.fancybox.defaults, {\r\n\t\tbtnTpl : {\r\n\t\t\tshare :\r\n\t\t\t\t''\r\n\t\t},\r\n\t\tshare : {\r\n\t\t\ttpl :\r\n\t\t\t\t'
' +\r\n\t\t\t\t\t'

{{SHARE}}

' +\r\n\t\t\t\t\t'

' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'Facebook' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'Pinterest' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\t'Twitter' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t'

' +\r\n\t\t\t\t\t'

' +\r\n\t\t\t\t'
'\r\n\t\t}\r\n\t});\r\n\r\n\tfunction escapeHtml(string) {\r\n\t\tvar entityMap = {\r\n\t\t '&': '&',\r\n\t\t '<': '<',\r\n\t\t '>': '>',\r\n\t\t '\"': '"',\r\n\t\t \"'\": ''',\r\n\t\t '/': '/',\r\n\t\t '`': '`',\r\n\t\t '=': '='\r\n\t\t};\r\n\r\n\t\treturn String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n\t\t\treturn entityMap[s];\r\n\t\t});\r\n\t}\r\n\r\n\t$(document).on('click', '[data-fancybox-share]', function() {\r\n\t\tvar f = $.fancybox.getInstance(),\r\n\t\t\turl,\r\n\t\t\ttpl;\r\n\r\n\t\tif ( f ) {\r\n\t\t\turl = f.current.opts.hash === false ? f.current.src : window.location;\r\n\t\t\ttpl = f.current.opts.share.tpl\r\n\t\t\t\t\t.replace( /\\{\\{src\\}\\}/g, encodeURIComponent( url ) )\r\n\t\t\t\t\t.replace( /\\{\\{src_raw\\}\\}/g, escapeHtml( url ) )\r\n\t\t\t\t\t.replace( /\\{\\{descr\\}\\}/g, f.$caption ? encodeURIComponent( f.$caption.text() ) : '' );\r\n\r\n\t\t\t$.fancybox.open({\r\n\t\t\t\tsrc : f.translate( f, tpl ),\r\n\t\t\t\ttype : 'html',\r\n\t\t\t\topts : {\r\n\t\t\t\t\tanimationEffect : \"fade\",\r\n\t\t\t\t\tanimationDuration : 250\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t});\r\n\r\n}( document, window.jQuery || jQuery ));\r\n\r\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n;(function (document, window, $) {\r\n\t'use strict';\r\n\r\n\t// Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n\tif ( !$.escapeSelector ) {\r\n\t\t$.escapeSelector = function( sel ) {\r\n\t\t\tvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n\t\t\tvar fcssescape = function( ch, asCodePoint ) {\r\n\t\t\t\tif ( asCodePoint ) {\r\n\t\t\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\t\t\tif ( ch === \"\\0\" ) {\r\n\t\t\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\t\t\treturn \"\\\\\" + ch;\r\n\t\t\t};\r\n\r\n\t\t\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\r\n\t\t};\r\n\t}\r\n\r\n\t// Create new history entry only once\r\n\tvar shouldCreateHistory = true;\r\n\r\n\t// Variable containing last hash value set by fancyBox\r\n\t// It will be used to determine if fancyBox needs to close after hash change is detected\r\n var currentHash = null;\r\n\r\n\t// Throttling the history change\r\n\tvar timerID = null;\r\n\r\n\t// Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr( 1 );\r\n var rez = hash.split( '-' );\r\n var index = rez.length > 1 && /^\\+?\\d+$/.test( rez[ rez.length - 1 ] ) ? parseInt( rez.pop( -1 ), 10 ) || 1 : 1;\r\n var gallery = rez.join( '-' );\r\n\r\n\t\t// Index is starting from 1\r\n\t\tif ( index < 1 ) {\r\n\t\t\tindex = 1;\r\n\t\t}\r\n\r\n return {\r\n hash : hash,\r\n index : index,\r\n gallery : gallery\r\n };\r\n }\r\n\r\n\t// Trigger click evnt on links to open new fancyBox instance\r\n\tfunction triggerFromUrl( url ) {\r\n\t\tvar $el;\r\n\r\n if ( url.gallery !== '' ) {\r\n\r\n\t\t\t// If we can find element matching 'data-fancybox' atribute, then trigger click event for that ..\r\n\t\t\t$el = $( \"[data-fancybox='\" + $.escapeSelector( url.gallery ) + \"']\" ).eq( url.index - 1 );\r\n\r\n if ( !$el.length ) {\r\n\t\t\t\t// .. if not, try finding element by ID\r\n\t\t\t\t$el = $( \"#\" + $.escapeSelector( url.gallery ) + \"\" );\r\n\t\t\t}\r\n\r\n\t\t\tif ( $el.length ) {\r\n\t\t\t\tshouldCreateHistory = false;\r\n\r\n\t\t\t\t$el.trigger( 'click' );\r\n\t\t\t}\r\n\r\n }\r\n\t}\r\n\r\n\t// Get gallery name from current instance\r\n\tfunction getGalleryID( instance ) {\r\n\t\tvar opts;\r\n\r\n\t\tif ( !instance ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\topts = instance.current ? instance.current.opts : instance.opts;\r\n\r\n\t\treturn opts.hash || ( opts.$orig ? opts.$orig.data( 'fancybox' ) : '' );\r\n\t}\r\n\r\n\t// Start when DOM becomes ready\r\n $(function() {\r\n\r\n\t\t// Check if user has disabled this module\r\n\t\tif ( $.fancybox.defaults.hash === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Update hash when opening/closing fancyBox\r\n\t $(document).on({\r\n\t\t\t'onInit.fb' : function( e, instance ) {\r\n\t\t\t\tvar url, gallery;\r\n\r\n\t\t\t\tif ( instance.group[ instance.currIndex ].opts.hash === false ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\turl = parseUrl();\r\n\t\t\t\tgallery = getGalleryID( instance );\r\n\r\n\t\t\t\t// Make sure gallery start index matches index from hash\r\n\t\t\t\tif ( gallery && url.gallery && gallery == url.gallery ) {\r\n\t\t\t\t\tinstance.currIndex = url.index - 1;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'beforeShow.fb' : function( e, instance, current ) {\r\n\t\t\t\tvar gallery;\r\n\r\n\t\t\t\tif ( !current || current.opts.hash === false ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t gallery = getGalleryID( instance );\r\n\r\n\t // Update window hash\r\n\t if ( gallery && gallery !== '' ) {\r\n\r\n\t\t\t\t\tif ( window.location.hash.indexOf( gallery ) < 0 ) {\r\n\t\t instance.opts.origHash = window.location.hash;\r\n\t\t }\r\n\r\n\t\t\t\t\tcurrentHash = gallery + ( instance.group.length > 1 ? '-' + ( current.index + 1 ) : '' );\r\n\r\n\t\t\t\t\tif ( 'replaceState' in window.history ) {\r\n\t\t\t\t\t\tif ( timerID ) {\r\n\t\t\t\t\t\t\tclearTimeout( timerID );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttimerID = setTimeout(function() {\r\n\t\t\t\t\t\t\twindow.history[ shouldCreateHistory ? 'pushState' : 'replaceState' ]( {} , document.title, window.location.pathname + window.location.search + '#' + currentHash );\r\n\r\n\t\t\t\t\t\t\ttimerID = null;\r\n\r\n\t\t\t\t\t\t\tshouldCreateHistory = false;\r\n\r\n\t\t\t\t\t\t}, 300);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twindow.location.hash = currentHash;\r\n\t\t\t\t\t}\r\n\r\n\t }\r\n\r\n\t },\r\n\r\n\t\t\t'beforeClose.fb' : function( e, instance, current ) {\r\n\t\t\t\tvar gallery, origHash;\r\n\r\n\t\t\t\tif ( timerID ) {\r\n\t\t\t\t\tclearTimeout( timerID );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( current.opts.hash === false ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgallery = getGalleryID( instance );\r\n\t\t\t\torigHash = instance && instance.opts.origHash ? instance.opts.origHash : '';\r\n\r\n\t // Remove hash from location bar\r\n\t if ( gallery && gallery !== '' ) {\r\n\r\n\t if ( 'replaceState' in history ) {\r\n\t\t\t\t\t\twindow.history.replaceState( {} , document.title, window.location.pathname + window.location.search + origHash );\r\n\r\n\t } else {\r\n\t\t\t\t\t\twindow.location.hash = origHash;\r\n\r\n\t\t\t\t\t\t// Keep original scroll position\r\n\t\t\t\t\t\t$( window ).scrollTop( instance.scrollTop ).scrollLeft( instance.scrollLeft );\r\n\t }\r\n\t }\r\n\r\n\t\t\t\tcurrentHash = null;\r\n\t }\r\n\t });\r\n\r\n\t\t// Check if need to close after url has changed\r\n\t\t$(window).on('hashchange.fb', function() {\r\n\t\t\tvar url = parseUrl();\r\n\r\n\t\t\tif ( $.fancybox.getInstance() ) {\r\n\t\t\t\tif ( currentHash && currentHash !== url.gallery + '-' + url.index && !( url.index === 1 && currentHash == url.gallery ) ) {\r\n\t\t\t\t\tcurrentHash = null;\r\n\r\n\t\t\t\t\t$.fancybox.close();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if ( url.gallery !== '' ) {\r\n\t\t\t\ttriggerFromUrl( url );\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n\t\tsetTimeout(function() {\r\n\t\t\ttriggerFromUrl( parseUrl() );\r\n\t\t}, 50);\r\n });\r\n\r\n}( document, window, window.jQuery || jQuery ));\r\n\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\tvar prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n 'onInit.fb' : function( e, instance, current ) {\r\n\t\t\tinstance.$refs.stage.on('mousewheel DOMMouseScroll wheel MozMousePixelScroll', function(e) {\r\n\t\t\t\tvar current = instance.current,\r\n\t\t\t\t\tcurrTime,\r\n\t\t\t\t\tvalue,\r\n\t\t\t\t\tdelta,\r\n\t\t\t\t\tisHorizontal,\r\n\t\t\t\t\tisVertical;\r\n\r\n\t\t\t\tif ( current.opts.wheel === false || ( current.opts.wheel === 'auto' && current.type !== 'image' ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( current.$slide.hasClass( 'fancybox-animated' ) ) {\r\n\t\t\t\t return;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( instance.group.length < 1 ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\te = e.originalEvent || e;\r\n\r\n\t\t\t\tif ( currTime - prevTime < 250 ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevTime = currTime;\r\n\r\n\t\t\t\tvalue = e.wheelDelta || -e.deltaY || -e.detail;\r\n\t\t\t\tdelta = Math.max(-1, Math.min(1, value));\r\n\r\n\t\t\t\tisHorizontal = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\r\n\t\t\t\tisVertical = !isHorizontal || ( (Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta)) || (Math.abs(e.deltaX) < Math.abs(e.deltaY)) );\r\n\r\n\t\t\t\tif ( delta < 0 ) {\r\n\t\t\t\t\tinstance[ isVertical ? 'previous' : 'next' ]();\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tinstance[ isVertical ? 'next' : 'previous' ]();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n });\r\n\r\n}( document, window.jQuery || jQuery ));","/*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */\r\n!function(a,b,c,d){var e=a(b);a.fn.lazyload=function(f){function g(){var b=0;i.each(function(){var c=a(this);if(!j.skip_invisible||c.is(\":visible\"))if(a.abovethetop(this,j)||a.leftofbegin(this,j));else if(a.belowthefold(this,j)||a.rightoffold(this,j)){if(++b>j.failure_limit)return!1}else c.trigger(\"appear\"),b=0})}var h,i=this,j={threshold:0,failure_limit:0,event:\"scroll\",effect:\"show\",container:b,data_attribute:\"original\",skip_invisible:!1,appear:null,load:null,placeholder:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC\"};return f&&(d!==f.failurelimit&&(f.failure_limit=f.failurelimit,delete f.failurelimit),d!==f.effectspeed&&(f.effect_speed=f.effectspeed,delete f.effectspeed),a.extend(j,f)),h=j.container===d||j.container===b?e:a(j.container),0===j.event.indexOf(\"scroll\")&&h.bind(j.event,function(){return g()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,(c.attr(\"src\")===d||c.attr(\"src\")===!1)&&c.is(\"img\")&&c.attr(\"src\",j.placeholder),c.one(\"appear\",function(){if(!this.loaded){if(j.appear){var d=i.length;j.appear.call(b,d,j)}a(\"\").bind(\"load\",function(){var d=c.attr(\"data-\"+j.data_attribute);c.hide(),c.is(\"img\")?c.attr(\"src\",d):c.css(\"background-image\",\"url('\"+d+\"')\"),c[j.effect](j.effect_speed),b.loaded=!0;var e=a.grep(i,function(a){return!a.loaded});if(i=a(e),j.load){var f=i.length;j.load.call(b,f,j)}}).attr(\"src\",c.attr(\"data-\"+j.data_attribute))}}),0!==j.event.indexOf(\"scroll\")&&c.bind(j.event,function(){b.loaded||c.trigger(\"appear\")})}),e.bind(\"resize\",function(){g()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&e.bind(\"pageshow\",function(b){b.originalEvent&&b.originalEvent.persisted&&i.each(function(){a(this).trigger(\"appear\")})}),a(c).ready(function(){g()}),this},a.belowthefold=function(c,f){var g;return g=f.container===d||f.container===b?(b.innerHeight?b.innerHeight:e.height())+e.scrollTop():a(f.container).offset().top+a(f.container).height(),g<=a(c).offset().top-f.threshold},a.rightoffold=function(c,f){var g;return g=f.container===d||f.container===b?e.width()+e.scrollLeft():a(f.container).offset().left+a(f.container).width(),g<=a(c).offset().left-f.threshold},a.abovethetop=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollTop():a(f.container).offset().top,g>=a(c).offset().top+f.threshold+a(c).height()},a.leftofbegin=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollLeft():a(f.container).offset().left,g>=a(c).offset().left+f.threshold+a(c).width()},a.inviewport=function(b,c){return!(a.rightoffold(b,c)||a.leftofbegin(b,c)||a.belowthefold(b,c)||a.abovethetop(b,c))},a.extend(a.expr[\":\"],{\"below-the-fold\":function(b){return a.belowthefold(b,{threshold:0})},\"above-the-top\":function(b){return!a.belowthefold(b,{threshold:0})},\"right-of-screen\":function(b){return a.rightoffold(b,{threshold:0})},\"left-of-screen\":function(b){return!a.rightoffold(b,{threshold:0})},\"in-viewport\":function(b){return a.inviewport(b,{threshold:0})},\"above-the-fold\":function(b){return!a.belowthefold(b,{threshold:0})},\"right-of-fold\":function(b){return a.rightoffold(b,{threshold:0})},\"left-of-fold\":function(b){return!a.rightoffold(b,{threshold:0})}})}(jQuery,window,document);","/*\r\n * jQuery mmenu v5.7.6\r\n * @requires jQuery 1.7.0 or later\r\n *\r\n * mmenu.frebsite.nl\r\n *\t\r\n * Copyright (c) Fred Heusschen\r\n * www.frebsite.nl\r\n *\r\n * License: CC-BY-NC-4.0\r\n * http://creativecommons.org/licenses/by-nc/4.0/\r\n */\r\n!function(e){function t(){e[n].glbl||(r={$wndw:e(window),$docu:e(document),$html:e(\"html\"),$body:e(\"body\")},i={},a={},o={},e.each([i,a,o],function(e,t){t.add=function(e){e=e.split(\" \");for(var n=0,s=e.length;n