{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/headroom.js/dist/headroom.js","webpack:///sal/webpack/universalModuleDefinition","webpack:///sal/webpack/bootstrap","webpack:///sal/src/sal.js","webpack:///./js/global.js","webpack:///./node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","webpack:///./node_modules/magnific-popup/dist/jquery.magnific-popup.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","window","lazySizes","document","Date","lazysizes","lazySizesCfg","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","init","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","documentElement","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","addEventListener","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","forEach","Array","hasClass","ele","cls","RegExp","test","addClass","setAttribute","trim","removeClass","reg","replace","addRemoveLoadEvents","dom","fn","add","action","evt","triggerEvent","elem","detail","noBubbles","noCancelable","event","createEvent","instance","initEvent","dispatchEvent","updatePolyfill","el","full","polyfill","picturefill","pf","src","reevaluate","elements","getCSS","style","getComputedStyle","getWidth","parent","width","offsetWidth","_lazysizesWidth","parentNode","rAF","running","waiting","firstFns","secondFns","fns","run","runFns","length","shift","rafBatch","queue","apply","this","arguments","push","hidden","_lsFlush","rAFIt","simple","that","args","throttle","lastTime","gDelay","rICTimeout","now","idleCallback","timeout","isPriority","delay","debounce","func","timestamp","wait","later","last","loader","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","navigator","userAgent","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","e","target","isVisible","body","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","innerWidth","innerHeight","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","location","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","nodeName","clearTimeout","getElementsByTagName","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","_","persisted","loadingElements","querySelectorAll","img","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","_aLSL","autosizesElems","sizeElement","sources","len","dataAttr","getSizeElement","updateElementsSizes","debouncedUpdateElementsSizes","uP","aC","rC","hC","fire","gW","factory","webpackPolyfill","deprecate","paths","children","isBrowser","createScroller","element","obj","nodeType","doc","win","html","scrollHeight","Math","max","offsetHeight","height","scrollY","undefined","pageYOffset","scrollTop","trackScroll","options","callback","rafId","isPassiveSupported","supported","removeEventListener","err","passiveEventsSupported","scrolled","scroller","lastScrollY","details","update","round","direction","distance","abs","isOutOfBounds","offset","toleranceExceeded","tolerance","handleScroll","eventOptions","passive","capture","destroy","cancelAnimationFrame","Headroom","assign","classes","down","up","initialised","frozen","constructor","cutsTheMustard","self","scrollTracker","keys","unpin","onUnpin","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","shouldPin","className","classList","split","remove","every","contains","pinned","unpinned","initial","define","setOptions","settings","clearAnimation","animateClassName","fireEvent","entry","CustomEvent","bubbles","disableAnimations","disabledClassName","clearObserver","intersectionObserver","disconnect","onIntersection","entries","observer","intersectionRatio","threshold","enterEventName","once","unobserve","exitEventName","disable","enable","IntersectionObserver","rootMargin","filter","selector","reset","from","disabled","console","warn","Error","cache","events","modals","formActions","initSal","checkAgreementCookie","$","handleAccordion","$doc","$win","$html","$body","$mainWrap","$header","$mobileNav","$hamburger","on","showMobileNav","showMobileSubnav","openShareWindow","scrollToSection","scrollToNext","handleOnLdCourseSelect","handleCookieAgreement","preventDefault","sal","link","currentTarget","attr","substr","open","initHeadroom","theHeader","querySelector","tolearnce","each","$input","siblings","show","hide","toggleClass","removeAttr","$item","$form","closest","ldid","data","ldurl","val","submit","noLinkItem","log","find","section","first","animate","initCountdown","endDate","getElementById","dataset","enddate","countDown","getTime","x","hour","innerText","floor","minute","second","clearInterval","cookie","magnificPopup","items","type","callbacks","close","proto","set","domain","expires","acceptAgreement","declineAgreement","encodeURI","pair","match","decodeURI","days","setDate","getDate","toUTCString","$agreement","outerHeight","css","hideAgreement","paddingTop","paddingBottom","overflow","bgLoad","regBgUrlEscape","uniqueUrls","addStyleScript","createElement","insertElem","rel","href","insertBefore","url","cb","onerror","tmp","bg","poster","preload","getAttribute","autoplay","play","er","requireJs","backgroundImage","JSON","stringify","require","CLOSE_EVENT","BEFORE_CLOSE_EVENT","AFTER_CLOSE_EVENT","BEFORE_APPEND_EVENT","MARKUP_PARSE_EVENT","OPEN_EVENT","CHANGE_EVENT","NS","EVENT_NS","READY_CLASS","REMOVING_CLASS","PREVENT_CLOSE_CLASS","mfp","MagnificPopup","_isJQ","_prevStatus","_window","_document","_prevContentType","_wrapClasses","_currPopupType","_mfpOn","f","ev","_getEl","appendTo","raw","innerHTML","appendChild","_mfpTrigger","triggerHandler","st","charAt","toLowerCase","slice","isArray","_getCloseBtn","currTemplate","closeBtn","closeMarkup","tClose","_checkInstance","supportsTransitions","v","pop","appVersion","isLowIE","isIE8","all","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isObj","toArray","index","item","parsed","isOpen","updateItemHTML","types","mainEl","eq","extend","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","wrap","_checkIfClose","container","contentContainer","preloader","tLoading","toUpperCase","closeBtnInside","append","template","values","close_replaceWith","alignTop","overflowY","overflowX","position","fixedBgPos","keyCode","updateSize","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","classesToadd","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","content","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","detach","empty","_removeClassFromMFP","off","currItem","autoFocusLast","focus","prevHeight","winHeight","zoomLevel","parseEl","markup","newContent","appendContent","preloaded","prepend","tagName","addGroup","eHandler","mfpEl","_openClick","eName","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","isFunction","stopPropagation","updateStatus","status","text","stopImmediatePropagation","closeOnContent","closeOnBg","cName","_parseMarkup","arr","replaceWith","is","scrollbarSize","scrollDiv","cssText","removeChild","registerModule","jqEl","itemOpts","parseInt","INLINE_NS","_hiddenClass","_inlinePlaceholder","_lastInlineElement","_putInlineElementsBack","after","hiddenClass","tNotFound","initInline","getInline","inlineSt","inline","inlineElement","AJAX_NS","_ajaxCur","_removeAjaxCursor","_destroyAjaxRequest","req","abort","cursor","tError","initAjax","ajax","getAjax","opts","success","textStatus","jqXHR","temp","xhr","finished","error","loadError","_imgInterval","_getTitle","title","image","titleSrc","verticalFit","initImage","imgSt","resizeImage","decr","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","counter","mfpSetInterval","getImage","guard","onLoadComplete","loaded","onLoadError","alt","clone","img_replaceWith","hasMozTransform","getHasMozTransform","MozTransform","enabled","easing","duration","opener","initZoom","zoomSt","zoom","getElToAnimate","newImg","transition","cssObj","zIndex","showMainContent","openTimeout","animatedImg","_allowZoom","_getItemToZoom","_getOffset","isLarge","IFRAME_NS","_emptyPage","_fixIframeBugs","isShowing","srcAction","patterns","youtube","id","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","iframe","indexOf","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","next","prev","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","newIndex","preloadBefore","min","preloadAfter","_preloadItem","RETINA_NS","replaceSrc","ratio","initRetina","devicePixelRatio","retina","isNaN"],"mappings":"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","file":"js/global.1740867cf62302548b19.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/wp-content/themes/_gretchenrubin2022/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = jQuery;","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, function l(window, document, Date) { // Pass in the windoe Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes, lazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\tcfg: lazySizesCfg,\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, 'ls-is-cached');\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/*!\n * headroom.js v0.11.0 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Headroom = factory());\n}(this, function () { 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(\n isBrowser() &&\n function() {}.bind &&\n \"classList\" in document.documentElement &&\n Object.assign &&\n Object.keys &&\n requestAnimationFrame\n );\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function() {\n return Math.max(\n body.scrollHeight,\n html.scrollHeight,\n body.offsetHeight,\n html.offsetHeight,\n body.clientHeight,\n html.clientHeight\n );\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function() {\n return Math.max(\n element.scrollHeight,\n element.offsetHeight,\n element.clientHeight\n );\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n\n /**\n * @param element EventTarget\n */\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight();\n\n // reuse object for less memory churn\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset;\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded =\n details.distance > options.tolerance[details.direction];\n\n callback(details);\n\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported\n ? { passive: true, capture: false }\n : false;\n\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n\n return {\n destroy: function() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeTolerance(t) {\n return t === Object(t) ? t : { down: t, up: t };\n }\n\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n\n this.elem = elem;\n this.tolerance = normalizeTolerance(this.tolerance);\n this.initialised = false;\n this.frozen = false;\n }\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true;\n\n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(\n function(self) {\n self.scrollTracker = trackScroll(\n self.scroller,\n { offset: self.offset, tolerance: self.tolerance },\n self.update.bind(self)\n );\n },\n 100,\n this\n );\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n\n top: function() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n\n notTop: function() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n\n bottom: function() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n\n notBottom: function() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n\n shouldUnpin: function(details) {\n var scrollingDown = details.direction === \"down\";\n\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n\n shouldPin: function(details) {\n var scrollingUp = details.direction === \"up\";\n\n return (scrollingUp && details.toleranceExceeded) || details.top;\n },\n\n addClass: function(className) {\n this.elem.classList.add.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n removeClass: function(className) {\n this.elem.classList.remove.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n hasClass: function(className) {\n return this.classes[className].split(\" \").every(function(cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n\n update: function(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n\n Headroom.cutsTheMustard = isSupported();\n\n return Headroom;\n\n}));\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sal\"] = factory();\n\telse\n\t\troot[\"sal\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * Sal - Scroll Animation Library\n * Performance focused, lightweight scroll animation library\n */\n\nimport './sal.scss';\n\nconst SSR_MESSAGE = 'Sal was not initialised! Probably it is used in SSR.';\n\nconst NOT_SUPPORTED_MESSAGE = ''\n + 'Your browser does not support IntersectionObserver!\\n'\n + 'Get a polyfill from here:\\n'\n + 'https://github.com/w3c/IntersectionObserver/tree/master/polyfill';\n\n/**\n * Default options\n */\nlet options = {\n rootMargin: '0% 50%',\n threshold: 0.5,\n animateClassName: 'sal-animate',\n disabledClassName: 'sal-disabled',\n enterEventName: 'sal:in',\n exitEventName: 'sal:out',\n selector: '[data-sal]',\n once: true,\n disabled: false,\n};\n\n/**\n * Private\n */\nlet elements = [];\nlet intersectionObserver = null;\n\n/**\n * Set options\n * @param {Object} settings\n */\nconst setOptions = (settings) => {\n if (settings && settings !== options) {\n options = {\n ...options,\n ...settings,\n };\n }\n};\n\n/**\n * Clear animation for given element\n * @param {HTMLElement} element\n */\nconst clearAnimation = (element) => {\n element.classList.remove(options.animateClassName);\n};\n\n/**\n * Dispatches the animate event on the intersection observer entry.\n * @param {IntersectionObserverEntry} detail The entry to fire event on.\n */\nconst fireEvent = (name, entry) => {\n const event = new CustomEvent(name, {\n bubbles: true,\n detail: entry,\n });\n\n entry.target.dispatchEvent(event);\n};\n\n/**\n * Launch animation by adding class\n * @param {IntersectionObserverEntry} entry\n */\nconst animate = (entry) => {\n entry.target.classList.add(options.animateClassName);\n fireEvent(options.enterEventName, entry);\n};\n\n/**\n * Reverse animation by removing class\n * @param {IntersectionObserverEntry} entry\n */\nconst reverse = (entry) => {\n clearAnimation(entry.target);\n fireEvent(options.exitEventName, entry);\n};\n\n/**\n * Check if element was animated\n * @param {HTMLElement} element\n */\nconst isAnimated = (element) => (\n element.classList.contains(options.animateClassName)\n);\n\n/**\n * Enable animations by remove class from body\n */\nconst enableAnimations = () => {\n document.body.classList.remove(options.disabledClassName);\n};\n\n/**\n * Disable animations by add class from body\n */\nconst disableAnimations = () => {\n document.body.classList.add(options.disabledClassName);\n};\n\n/**\n * Clears observer\n */\nconst clearObserver = () => {\n intersectionObserver.disconnect();\n intersectionObserver = null;\n};\n\n/**\n * Check if should be disabled\n * @return {Boolean}\n */\nconst isDisabled = () => (\n options.disabled\n || (\n (typeof options.disabled === 'function')\n && options.disabled()\n )\n);\n\n/**\n * IntersectionObserver callback\n * @param {Array} entries\n * @param {IntersectionObserver} observer\n */\nconst onIntersection = (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio >= options.threshold) {\n animate(entry);\n\n if (options.once) {\n observer.unobserve(entry.target);\n }\n } else if (!options.once) {\n reverse(entry);\n }\n });\n};\n\n/**\n * Disable sal\n */\nconst disable = () => {\n disableAnimations();\n clearObserver();\n};\n\n/**\n * Enable sal by launching new IntersectionObserver\n */\nconst enable = () => {\n enableAnimations();\n\n intersectionObserver = new IntersectionObserver(onIntersection, {\n rootMargin: options.rootMargin,\n threshold: options.threshold,\n });\n\n elements = [].filter.call(\n document.querySelectorAll(options.selector),\n (element) => !isAnimated(element, options.animateClassName),\n );\n\n elements.forEach((element) => intersectionObserver.observe(element));\n};\n\n/**\n * Reset instance and provide new settings\n * @param {Object} settings\n */\nconst reset = (settings = {}) => {\n clearObserver();\n\n Array.from(document.querySelectorAll(options.selector))\n .forEach(clearAnimation);\n\n setOptions(settings);\n enable();\n};\n\n/**\n * Init\n * @param {Object} settings\n * @return {Object} public API\n */\nconst init = (settings = options) => {\n setOptions(settings);\n\n // Early return, when window object is not defined\n // e.g. during Server Side Rendering\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(SSR_MESSAGE);\n\n return {\n elements,\n disable,\n enable,\n reset,\n };\n }\n\n if (!window.IntersectionObserver) {\n disableAnimations();\n\n throw Error(NOT_SUPPORTED_MESSAGE);\n }\n\n if (!isDisabled()) {\n enable();\n } else {\n disableAnimations();\n }\n\n return {\n elements,\n disable,\n enable,\n reset,\n };\n};\n\nexport default init;\n","import $ from 'jquery';\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/unveilhooks/ls.unveilhooks';\r\nimport 'magnific-popup';\r\nimport Headroom from 'headroom.js';\r\nimport sal from 'sal.js';\r\n\r\nconst Mangrove = {\r\n init() {\r\n this.cache();\r\n this.events();\r\n this.modals();\r\n this.formActions();\r\n this.initSal();\r\n this.checkAgreementCookie();\r\n $('.gb-accordion').length && this.handleAccordion()\r\n },\r\n cache() {\r\n this.$doc = $(document);\r\n this.$win = $(window);\r\n this.$html = $('html');\r\n this.$body = $('body');\r\n this.$mainWrap = $('main');\r\n this.$header = $('.js-header');\r\n this.$mobileNav = $('.js-mobile-nav');\r\n this.$hamburger = $('.js-hamburger');\r\n },\r\n events() {\r\n this.$doc.on('click', '.js-hamburger', event => this.showMobileNav(event));\r\n this.$doc.on('click', '.js-mobile-nav .menu-item-has-children > a', event => this.showMobileSubnav(event));\r\n this.$doc.on('click', '.js-share', event => this.openShareWindow(event));\r\n this.$doc.on('click', '.js-scroll-to-section', event => this.scrollToSection(event));\r\n this.$doc.on('click', '.js-scroll-to-section a', event => this.scrollToSection(event));\r\n this.$doc.on('click', '.js-scroll-to-next', event => this.scrollToNext(event));\r\n this.$doc.on('click', '.js-select-course', event => this.handleOnLdCourseSelect(event));\r\n this.$doc.on('click', '.js-cookie-agreement', event => this.handleCookieAgreement(event));\r\n this.$doc.on('click', 'a[href=\"#\"]', event => event.preventDefault() );\r\n },\r\n initSal() {\r\n sal();\r\n },\r\n openShareWindow(event) {\r\n let link = $(event.currentTarget).attr('href');\r\n if (link.substr(0, 6) != 'mailto') {\r\n event.preventDefault();\r\n window.open(link, '', 'width=600, height=400');\r\n }\r\n },\r\n initHeadroom() {\r\n let theHeader = document.querySelector('.js-header');\r\n let headroom = new Headroom(theHeader, { offset: 100, tolearnce: 5 });\r\n headroom.init();\r\n },\r\n formActions(event) {\r\n if ($('.frm_other_input').length) {\r\n $('.frm_other_input').each(function() {\r\n const $input = $(this);\r\n const $select = $input.siblings('select');\r\n\r\n $select.on('change', function() {\r\n if ( $(this).children(\"option:selected\").hasClass('frm_other_trigger') ) {\r\n $input.show()\r\n } else {\r\n $input.hide()\r\n }\r\n })\r\n })\r\n\r\n }\r\n },\r\n showMobileNav(event) {\r\n event.preventDefault();\r\n this.$mobileNav.toggleClass('is-active');\r\n this.$hamburger.toggleClass('is-active');\r\n this.$body.toggleClass('dropdown-open');\r\n if (this.$mobileNav.hasClass('is-active')) {\r\n this.$hamburger.attr('aria-pressed', 'true');\r\n this.$mobileNav.attr('aria-expanded','true');\r\n } else {\r\n this.$hamburger.removeAttr('aria-pressed');\r\n this.$mobileNav.attr('aria-expanded','false');\r\n }\r\n },\r\n handleAccordion() {\r\n $('.gb-accordion').on('click', function(e) {\r\n $(e.currentTarget).toggleClass('gb-accordion--open')\r\n })\r\n },\r\n handleOnLdCourseSelect(event) {\r\n const $item = $(event.currentTarget);\r\n const $form = $(event.currentTarget).closest('form');\r\n const ldid = $item.data('ldid');\r\n const ldurl = $item.attr('href');\r\n \r\n event.preventDefault();\r\n\r\n $('#ldurl').val(ldurl);\r\n $('#ldid').val(ldid);\r\n $form.submit()\r\n },\r\n showMobileSubnav(event) {\r\n event.preventDefault();\r\n var noLinkItem = $(event.currentTarget).parent();\r\n noLinkItem.toggleClass('is-active');\r\n if (noLinkItem.hasClass('is-active')) {\r\n console.log($(this).find('.sub-menu'));\r\n $(this).find('.sub-menu').attr('aria-expanded', 'true');\r\n } else {\r\n $(this).find('.sub-menu').removeAttr('aria-expanded', 'false');\r\n }\r\n },\r\n scrollToNext(event) {\r\n const el = $(event.currentTarget);\r\n let section = $('section.gb-section').first();\r\n event.preventDefault();\r\n\r\n if (section) {\r\n $('html, body').animate({\r\n scrollTop: $(section).offset().top-20\r\n }, 1000);\r\n }\r\n },\r\n scrollToSection(event) {\r\n const el = $(event.currentTarget);\r\n let section = el.attr('href');\r\n event.preventDefault();\r\n console.log($(section));\r\n\r\n if (section) {\r\n $('html, body').animate({\r\n scrollTop: $(section).offset().top-20\r\n }, 1000);\r\n }\r\n },\r\n initCountdown() {\r\n const second = 1000,\r\n minute = second * 60,\r\n hour = minute * 60,\r\n day = hour * 24,\r\n endDate = document.getElementById('_cd').dataset.enddate\r\n\r\n let countDown = new Date( endDate ).getTime(),\r\n x = setInterval(function() {\r\n \r\n let now = new Date().getTime(),\r\n distance = countDown - now;\r\n \r\n if ( (distance / day) >= 1 ) {\r\n document.getElementById('cd_days').innerText = Math.floor(distance / (day))\r\n } else {\r\n document.getElementById('cd_days').style = 'display: none'\r\n }\r\n \r\n document.getElementById('cd_hours').innerText = Math.floor((distance % (day)) / (hour));\r\n document.getElementById('cd_minutes').innerText = Math.floor((distance % (hour)) / (minute));\r\n document.getElementById('cd_seconds').innerText = Math.floor((distance % (minute)) / second);\r\n \r\n if (distance < 0) {\r\n clearInterval(x);\r\n\r\n }\r\n\r\n $('.cd-time').addClass('is-visible');\r\n }, second)\r\n },\r\n modals() {\r\n const { initCountdown, cookie } = this\r\n \r\n $('.js-sales-popup.active').length && $('.home').length && !cookie.get('cksale') &&\r\n $.magnificPopup.open({\r\n items: { \r\n src: $('.js-sales-popup'), \r\n type: 'inline' \r\n },\r\n callbacks : {\r\n open: () => {\r\n initCountdown()\r\n }\r\n }\r\n });\r\n $.magnificPopup.instance.close = function () {\r\n\r\n if ( $('.js-sales-popup.active').length ) {\r\n \r\n $.magnificPopup.proto.close.call(self);\r\n \r\n cookie.set('cksale', {\r\n value: 1,\r\n domain: '',\r\n expires: cookie.expires(1)\r\n });\r\n \r\n } else {\r\n $.magnificPopup.proto.close.call(self);\r\n }\r\n }\r\n\r\n },\r\n handleCookieAgreement(event) {\r\n if ( $(event.currentTarget).hasClass('accept') ) {\r\n this.acceptAgreement()\r\n } else {\r\n this.declineAgreement()\r\n }\r\n },\r\n cookie : {\r\n set: function(name, options) {\r\n document.cookie = name + \"=\" + encodeURI(options.value) + \";path=/;domain=\" + options.domain +\";expires=\" + options.expires;\r\n },\r\n get: function(name) {\r\n var pair = document.cookie.match(new RegExp(name + '=([^;]+)'));\r\n return !!pair ? decodeURI(pair[1]) : null;\r\n },\r\n expires: function(days) {\r\n var d = new Date();\r\n d.setDate(d.getDate() + days);\r\n return d.toUTCString();\r\n }\r\n },\r\n checkAgreementCookie() {\r\n const { cookie } = this;\r\n const $agreement = $('.footer__agreement');\r\n\r\n if (!cookie.get('ckconsent')) {\r\n const height = $agreement.outerHeight()\r\n\r\n $agreement.css('height', height)\r\n $agreement.removeClass('is-hidden')\r\n }\r\n },\r\n declineAgreement(event) {\r\n const { hideAgreement } = this;\r\n hideAgreement()\r\n },\r\n hideAgreement() {\r\n $('.footer__agreement').css({\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n height: 0,\r\n overflow: 'hidden'\r\n })\r\n\r\n setTimeout(function() {\r\n $('.footer__agreement').addClass('is-hidden');\r\n }, 500)\r\n },\r\n acceptAgreement(event) {\r\n event.preventDefault();\r\n const { cookie, hideAgreement } = this;\r\n \r\n hideAgreement();\r\n\r\n cookie.set('ckconsent', {\r\n value: 1,\r\n domain: '',\r\n expires: cookie.expires(30)\r\n });\r\n\r\n }\r\n};\r\n\r\nMangrove.init();\r\n","/*\nThis plugin extends lazySizes to lazyLoad:\nbackground images, videos/posters and scripts\n\nBackground-Image:\nFor background images, use data-bg attribute:\n
\n\n Video:\n For video/audio use data-poster and preload=\"none\":\n \n\n For video that plays automatically if in view:\n \n\n\n Scripts:\n For scripts use data-script:\n
\n\n\n Script modules using require:\n For modules using require use data-require:\n
\n*/\n\n(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar bgLoad, regBgUrlEscape;\n\tvar uniqueUrls = {};\n\n\tif(document.addEventListener){\n\t\tregBgUrlEscape = /\\(|\\)|\\s|'/;\n\n\t\tbgLoad = function (url, cb){\n\t\t\tvar img = document.createElement('img');\n\t\t\timg.onload = function(){\n\t\t\t\timg.onload = null;\n\t\t\t\timg.onerror = null;\n\t\t\t\timg = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\timg.onerror = img.onload;\n\n\t\t\timg.src = url;\n\n\t\t\tif(img && img.complete && img.onload){\n\t\t\t\timg.onload();\n\t\t\t}\n\t\t};\n\n\t\taddEventListener('lazybeforeunveil', function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar tmp, load, bg, poster;\n\t\t\tif(!e.defaultPrevented) {\n\n\t\t\t\tvar target = e.target;\n\n\t\t\t\tif(target.preload == 'none'){\n\t\t\t\t\ttarget.preload = target.getAttribute('data-preload') || 'auto';\n\t\t\t\t}\n\n\t\t\t\tif (target.getAttribute('data-autoplay') != null) {\n\t\t\t\t\tif (target.getAttribute('data-expand') && !target.autoplay) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttarget.play();\n\t\t\t\t\t\t} catch (er) {}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\ttarget.setAttribute('data-expand', '-10');\n\t\t\t\t\t\t\tlazySizes.aC(target, lazySizes.cfg.lazyClass);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttmp = target.getAttribute('data-link');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp, true);\n\t\t\t\t}\n\n\t\t\t\t// handle data-script\n\t\t\t\ttmp = target.getAttribute('data-script');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t}\n\n\t\t\t\t// handle data-require\n\t\t\t\ttmp = target.getAttribute('data-require');\n\t\t\t\tif(tmp){\n\t\t\t\t\tif(lazySizes.cfg.requireJs){\n\t\t\t\t\t\tlazySizes.cfg.requireJs([tmp]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// handle data-bg\n\t\t\t\tbg = target.getAttribute('data-bg');\n\t\t\t\tif (bg) {\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(bg, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-poster\n\t\t\t\tposter = target.getAttribute('data-poster');\n\t\t\t\tif(poster){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.poster = poster;\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(poster, load);\n\n\t\t\t\t}\n\t\t\t}\n\t\t}, false);\n\n\t}\n\n\tfunction addStyleScript(src, style){\n\t\tif(uniqueUrls[src]){\n\t\t\treturn;\n\t\t}\n\t\tvar elem = document.createElement(style ? 'link' : 'script');\n\t\tvar insertElem = document.getElementsByTagName('script')[0];\n\n\t\tif(style){\n\t\t\telem.rel = 'stylesheet';\n\t\t\telem.href = src;\n\t\t} else {\n\t\t\telem.src = src;\n\t\t}\n\t\tuniqueUrls[src] = true;\n\t\tuniqueUrls[elem.src || elem.href] = true;\n\t\tinsertElem.parentNode.insertBefore(elem, insertElem);\n\t}\n}));\n","/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (typeof define === 'function' && define.amd) { \n // AMD. Register as an anonymous module. \n define(['jquery'], factory); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n\tBEFORE_CLOSE_EVENT = 'BeforeClose',\n\tAFTER_CLOSE_EVENT = 'AfterClose',\n\tBEFORE_APPEND_EVENT = 'BeforeAppend',\n\tMARKUP_PARSE_EVENT = 'MarkupParse',\n\tOPEN_EVENT = 'Open',\n\tCHANGE_EVENT = 'Change',\n\tNS = 'mfp',\n\tEVENT_NS = '.' + NS,\n\tREADY_CLASS = 'mfp-ready',\n\tREMOVING_CLASS = 'mfp-removing',\n\tPREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n\tMagnificPopup = function(){},\n\t_isJQ = !!(window.jQuery),\n\t_prevStatus,\n\t_window = $(window),\n\t_document,\n\t_prevContentType,\n\t_wrapClasses,\n\t_currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n\t\tmfp.ev.on(NS + name + EVENT_NS, f);\n\t},\n\t_getEl = function(className, appendTo, html, raw) {\n\t\tvar el = document.createElement('div');\n\t\tel.className = 'mfp-'+className;\n\t\tif(html) {\n\t\t\tel.innerHTML = html;\n\t\t}\n\t\tif(!raw) {\n\t\t\tel = $(el);\n\t\t\tif(appendTo) {\n\t\t\t\tel.appendTo(appendTo);\n\t\t\t}\n\t\t} else if(appendTo) {\n\t\t\tappendTo.appendChild(el);\n\t\t}\n\t\treturn el;\n\t},\n\t_mfpTrigger = function(e, data) {\n\t\tmfp.ev.triggerHandler(NS + e, data);\n\n\t\tif(mfp.st.callbacks) {\n\t\t\t// converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n\t\t\te = e.charAt(0).toLowerCase() + e.slice(1);\n\t\t\tif(mfp.st.callbacks[e]) {\n\t\t\t\tmfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n\t\t\t}\n\t\t}\n\t},\n\t_getCloseBtn = function(type) {\n\t\tif(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n\t\t\tmfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n\t\t\t_currPopupType = type;\n\t\t}\n\t\treturn mfp.currTemplate.closeBtn;\n\t},\n\t// Initialize Magnific Popup only when called at least once\n\t_checkInstance = function() {\n\t\tif(!$.magnificPopup.instance) {\n\t\t\t/*jshint -W020 */\n\t\t\tmfp = new MagnificPopup();\n\t\t\tmfp.init();\n\t\t\t$.magnificPopup.instance = mfp;\n\t\t}\n\t},\n\t// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n\tsupportsTransitions = function() {\n\t\tvar s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n\t\t\tv = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n\t\tif( s['transition'] !== undefined ) {\n\t\t\treturn true; \n\t\t}\n\t\t\t\n\t\twhile( v.length ) {\n\t\t\tif( v.pop() + 'Transition' in s ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn false;\n\t};\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n\tconstructor: MagnificPopup,\n\n\t/**\n\t * Initializes Magnific Popup plugin. \n\t * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n\t */\n\tinit: function() {\n\t\tvar appVersion = navigator.appVersion;\n\t\tmfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n\t\tmfp.isAndroid = (/android/gi).test(appVersion);\n\t\tmfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n\t\tmfp.supportsTransition = supportsTransitions();\n\n\t\t// We disable fixed positioned lightbox on devices that don't handle it nicely.\n\t\t// If you know a better way of detecting this - let me know.\n\t\tmfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n\t\t_document = $(document);\n\n\t\tmfp.popupsCache = {};\n\t},\n\n\t/**\n\t * Opens popup\n\t * @param data [description]\n\t */\n\topen: function(data) {\n\n\t\tvar i;\n\n\t\tif(data.isObj === false) { \n\t\t\t// convert jQuery collection to array to avoid conflicts later\n\t\t\tmfp.items = data.items.toArray();\n\n\t\t\tmfp.index = 0;\n\t\t\tvar items = data.items,\n\t\t\t\titem;\n\t\t\tfor(i = 0; i < items.length; i++) {\n\t\t\t\titem = items[i];\n\t\t\t\tif(item.parsed) {\n\t\t\t\t\titem = item.el[0];\n\t\t\t\t}\n\t\t\t\tif(item === data.el[0]) {\n\t\t\t\t\tmfp.index = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.items = $.isArray(data.items) ? data.items : [data.items];\n\t\t\tmfp.index = data.index || 0;\n\t\t}\n\n\t\t// if popup is already opened - we just update the content\n\t\tif(mfp.isOpen) {\n\t\t\tmfp.updateItemHTML();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tmfp.types = []; \n\t\t_wrapClasses = '';\n\t\tif(data.mainEl && data.mainEl.length) {\n\t\t\tmfp.ev = data.mainEl.eq(0);\n\t\t} else {\n\t\t\tmfp.ev = _document;\n\t\t}\n\n\t\tif(data.key) {\n\t\t\tif(!mfp.popupsCache[data.key]) {\n\t\t\t\tmfp.popupsCache[data.key] = {};\n\t\t\t}\n\t\t\tmfp.currTemplate = mfp.popupsCache[data.key];\n\t\t} else {\n\t\t\tmfp.currTemplate = {};\n\t\t}\n\n\n\n\t\tmfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n\t\tmfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n\t\tif(mfp.st.modal) {\n\t\t\tmfp.st.closeOnContentClick = false;\n\t\t\tmfp.st.closeOnBgClick = false;\n\t\t\tmfp.st.showCloseBtn = false;\n\t\t\tmfp.st.enableEscapeKey = false;\n\t\t}\n\t\t\n\n\t\t// Building markup\n\t\t// main containers are created only once\n\t\tif(!mfp.bgOverlay) {\n\n\t\t\t// Dark overlay\n\t\t\tmfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\n\t\t\t\tmfp.close();\n\t\t\t});\n\n\t\t\tmfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n\t\t\t\tif(mfp._checkIfClose(e.target)) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmfp.container = _getEl('container', mfp.wrap);\n\t\t}\n\n\t\tmfp.contentContainer = _getEl('content');\n\t\tif(mfp.st.preloader) {\n\t\t\tmfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n\t\t}\n\n\n\t\t// Initializing modules\n\t\tvar modules = $.magnificPopup.modules;\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar n = modules[i];\n\t\t\tn = n.charAt(0).toUpperCase() + n.slice(1);\n\t\t\tmfp['init'+n].call(mfp);\n\t\t}\n\t\t_mfpTrigger('BeforeOpen');\n\n\n\t\tif(mfp.st.showCloseBtn) {\n\t\t\t// Close button\n\t\t\tif(!mfp.st.closeBtnInside) {\n\t\t\t\tmfp.wrap.append( _getCloseBtn() );\n\t\t\t} else {\n\t\t\t\t_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n\t\t\t\t\tvalues.close_replaceWith = _getCloseBtn(item.type);\n\t\t\t\t});\n\t\t\t\t_wrapClasses += ' mfp-close-btn-in';\n\t\t\t}\n\t\t}\n\n\t\tif(mfp.st.alignTop) {\n\t\t\t_wrapClasses += ' mfp-align-top';\n\t\t}\n\n\t\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css({\n\t\t\t\toverflow: mfp.st.overflowY,\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\toverflowY: mfp.st.overflowY\n\t\t\t});\n\t\t} else {\n\t\t\tmfp.wrap.css({ \n\t\t\t\ttop: _window.scrollTop(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\t\tif( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n\t\t\tmfp.bgOverlay.css({\n\t\t\t\theight: _document.height(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\n\t\t\n\n\t\tif(mfp.st.enableEscapeKey) {\n\t\t\t// Close on ESC key\n\t\t\t_document.on('keyup' + EVENT_NS, function(e) {\n\t\t\t\tif(e.keyCode === 27) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_window.on('resize' + EVENT_NS, function() {\n\t\t\tmfp.updateSize();\n\t\t});\n\n\n\t\tif(!mfp.st.closeOnContentClick) {\n\t\t\t_wrapClasses += ' mfp-auto-cursor';\n\t\t}\n\t\t\n\t\tif(_wrapClasses)\n\t\t\tmfp.wrap.addClass(_wrapClasses);\n\n\n\t\t// this triggers recalculation of layout, so we get it once to not to trigger twice\n\t\tvar windowHeight = mfp.wH = _window.height();\n\n\t\t\n\t\tvar windowStyles = {};\n\n\t\tif( mfp.fixedContentPos ) {\n if(mfp._hasScrollBar(windowHeight)){\n var s = mfp._getScrollbarSize();\n if(s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tif(!mfp.isIE7) {\n\t\t\t\twindowStyles.overflow = 'hidden';\n\t\t\t} else {\n\t\t\t\t// ie7 double-scroll bug\n\t\t\t\t$('body, html').css('overflow', 'hidden');\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t\tvar classesToadd = mfp.st.mainClass;\n\t\tif(mfp.isIE7) {\n\t\t\tclassesToadd += ' mfp-ie7';\n\t\t}\n\t\tif(classesToadd) {\n\t\t\tmfp._addClassToMFP( classesToadd );\n\t\t}\n\n\t\t// add content\n\t\tmfp.updateItemHTML();\n\n\t\t_mfpTrigger('BuildControls');\n\n\t\t// remove scrollbar, add margin e.t.c\n\t\t$('html').css(windowStyles);\n\t\t\n\t\t// add everything to DOM\n\t\tmfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n\t\t// Save last focused element\n\t\tmfp._lastFocusedEl = document.activeElement;\n\t\t\n\t\t// Wait for next cycle to allow CSS transition\n\t\tsetTimeout(function() {\n\t\t\t\n\t\t\tif(mfp.content) {\n\t\t\t\tmfp._addClassToMFP(READY_CLASS);\n\t\t\t\tmfp._setFocus();\n\t\t\t} else {\n\t\t\t\t// if content is not defined (not loaded e.t.c) we add class only for BG\n\t\t\t\tmfp.bgOverlay.addClass(READY_CLASS);\n\t\t\t}\n\t\t\t\n\t\t\t// Trap the focus in popup\n\t\t\t_document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n\t\t}, 16);\n\n\t\tmfp.isOpen = true;\n\t\tmfp.updateSize(windowHeight);\n\t\t_mfpTrigger(OPEN_EVENT);\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Closes the popup\n\t */\n\tclose: function() {\n\t\tif(!mfp.isOpen) return;\n\t\t_mfpTrigger(BEFORE_CLOSE_EVENT);\n\n\t\tmfp.isOpen = false;\n\t\t// for CSS3 animation\n\t\tif(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\n\t\t\tmfp._addClassToMFP(REMOVING_CLASS);\n\t\t\tsetTimeout(function() {\n\t\t\t\tmfp._close();\n\t\t\t}, mfp.st.removalDelay);\n\t\t} else {\n\t\t\tmfp._close();\n\t\t}\n\t},\n\n\t/**\n\t * Helper for close() function\n\t */\n\t_close: function() {\n\t\t_mfpTrigger(CLOSE_EVENT);\n\n\t\tvar classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n\t\tmfp.bgOverlay.detach();\n\t\tmfp.wrap.detach();\n\t\tmfp.container.empty();\n\n\t\tif(mfp.st.mainClass) {\n\t\t\tclassesToRemove += mfp.st.mainClass + ' ';\n\t\t}\n\n\t\tmfp._removeClassFromMFP(classesToRemove);\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tvar windowStyles = {marginRight: ''};\n\t\t\tif(mfp.isIE7) {\n\t\t\t\t$('body, html').css('overflow', '');\n\t\t\t} else {\n\t\t\t\twindowStyles.overflow = '';\n\t\t\t}\n\t\t\t$('html').css(windowStyles);\n\t\t}\n\t\t\n\t\t_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n\t\tmfp.ev.off(EVENT_NS);\n\n\t\t// clean up DOM elements that aren't removed\n\t\tmfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n\t\tmfp.bgOverlay.attr('class', 'mfp-bg');\n\t\tmfp.container.attr('class', 'mfp-container');\n\n\t\t// remove close button from target element\n\t\tif(mfp.st.showCloseBtn &&\n\t\t(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n\t\t\tif(mfp.currTemplate.closeBtn)\n\t\t\t\tmfp.currTemplate.closeBtn.detach();\n\t\t}\n\n\n\t\tif(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n\t\t\t$(mfp._lastFocusedEl).focus(); // put tab focus back\n\t\t}\n\t\tmfp.currItem = null;\t\n\t\tmfp.content = null;\n\t\tmfp.currTemplate = null;\n\t\tmfp.prevHeight = 0;\n\n\t\t_mfpTrigger(AFTER_CLOSE_EVENT);\n\t},\n\t\n\tupdateSize: function(winHeight) {\n\n\t\tif(mfp.isIOS) {\n\t\t\t// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n\t\t\tvar zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n\t\t\tvar height = window.innerHeight * zoomLevel;\n\t\t\tmfp.wrap.css('height', height);\n\t\t\tmfp.wH = height;\n\t\t} else {\n\t\t\tmfp.wH = winHeight || _window.height();\n\t\t}\n\t\t// Fixes #84: popup incorrectly positioned with position:relative on body\n\t\tif(!mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css('height', mfp.wH);\n\t\t}\n\n\t\t_mfpTrigger('Resize');\n\n\t},\n\n\t/**\n\t * Set content of popup based on current index\n\t */\n\tupdateItemHTML: function() {\n\t\tvar item = mfp.items[mfp.index];\n\n\t\t// Detach and perform modifications\n\t\tmfp.contentContainer.detach();\n\n\t\tif(mfp.content)\n\t\t\tmfp.content.detach();\n\n\t\tif(!item.parsed) {\n\t\t\titem = mfp.parseEl( mfp.index );\n\t\t}\n\n\t\tvar type = item.type;\n\n\t\t_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n\t\t// BeforeChange event works like so:\n\t\t// _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n\t\tmfp.currItem = item;\n\n\t\tif(!mfp.currTemplate[type]) {\n\t\t\tvar markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n\t\t\t// allows to modify markup\n\t\t\t_mfpTrigger('FirstMarkupParse', markup);\n\n\t\t\tif(markup) {\n\t\t\t\tmfp.currTemplate[type] = $(markup);\n\t\t\t} else {\n\t\t\t\t// if there is no markup found we just define that template is parsed\n\t\t\t\tmfp.currTemplate[type] = true;\n\t\t\t}\n\t\t}\n\n\t\tif(_prevContentType && _prevContentType !== item.type) {\n\t\t\tmfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n\t\t}\n\n\t\tvar newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n\t\tmfp.appendContent(newContent, type);\n\n\t\titem.preloaded = true;\n\n\t\t_mfpTrigger(CHANGE_EVENT, item);\n\t\t_prevContentType = item.type;\n\n\t\t// Append container back after its content changed\n\t\tmfp.container.prepend(mfp.contentContainer);\n\n\t\t_mfpTrigger('AfterChange');\n\t},\n\n\n\t/**\n\t * Set HTML content of popup\n\t */\n\tappendContent: function(newContent, type) {\n\t\tmfp.content = newContent;\n\n\t\tif(newContent) {\n\t\t\tif(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n\t\t\t\tmfp.currTemplate[type] === true) {\n\t\t\t\t// if there is no markup, we just append close button element inside\n\t\t\t\tif(!mfp.content.find('.mfp-close').length) {\n\t\t\t\t\tmfp.content.append(_getCloseBtn());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmfp.content = newContent;\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.content = '';\n\t\t}\n\n\t\t_mfpTrigger(BEFORE_APPEND_EVENT);\n\t\tmfp.container.addClass('mfp-'+type+'-holder');\n\n\t\tmfp.contentContainer.append(mfp.content);\n\t},\n\n\n\t/**\n\t * Creates Magnific Popup data object based on given data\n\t * @param {int} index Index of item to parse\n\t */\n\tparseEl: function(index) {\n\t\tvar item = mfp.items[index],\n\t\t\ttype;\n\n\t\tif(item.tagName) {\n\t\t\titem = { el: $(item) };\n\t\t} else {\n\t\t\ttype = item.type;\n\t\t\titem = { data: item, src: item.src };\n\t\t}\n\n\t\tif(item.el) {\n\t\t\tvar types = mfp.types;\n\n\t\t\t// check for 'mfp-TYPE' class\n\t\t\tfor(var i = 0; i < types.length; i++) {\n\t\t\t\tif( item.el.hasClass('mfp-'+types[i]) ) {\n\t\t\t\t\ttype = types[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem.src = item.el.attr('data-mfp-src');\n\t\t\tif(!item.src) {\n\t\t\t\titem.src = item.el.attr('href');\n\t\t\t}\n\t\t}\n\n\t\titem.type = type || mfp.st.type || 'inline';\n\t\titem.index = index;\n\t\titem.parsed = true;\n\t\tmfp.items[index] = item;\n\t\t_mfpTrigger('ElementParse', item);\n\n\t\treturn mfp.items[index];\n\t},\n\n\n\t/**\n\t * Initializes single popup or a group of popups\n\t */\n\taddGroup: function(el, options) {\n\t\tvar eHandler = function(e) {\n\t\t\te.mfpEl = this;\n\t\t\tmfp._openClick(e, el, options);\n\t\t};\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tvar eName = 'click.magnificPopup';\n\t\toptions.mainEl = el;\n\n\t\tif(options.items) {\n\t\t\toptions.isObj = true;\n\t\t\tel.off(eName).on(eName, eHandler);\n\t\t} else {\n\t\t\toptions.isObj = false;\n\t\t\tif(options.delegate) {\n\t\t\t\tel.off(eName).on(eName, options.delegate , eHandler);\n\t\t\t} else {\n\t\t\t\toptions.items = el;\n\t\t\t\tel.off(eName).on(eName, eHandler);\n\t\t\t}\n\t\t}\n\t},\n\t_openClick: function(e, el, options) {\n\t\tvar midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n\t\tif(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n\t\tif(disableOn) {\n\t\t\tif($.isFunction(disableOn)) {\n\t\t\t\tif( !disableOn.call(mfp) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else { // else it's number\n\t\t\t\tif( _window.width() < disableOn ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(e.type) {\n\t\t\te.preventDefault();\n\n\t\t\t// This will prevent popup from closing if element is inside and popup is already opened\n\t\t\tif(mfp.isOpen) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\toptions.el = $(e.mfpEl);\n\t\tif(options.delegate) {\n\t\t\toptions.items = el.find(options.delegate);\n\t\t}\n\t\tmfp.open(options);\n\t},\n\n\n\t/**\n\t * Updates text on preloader\n\t */\n\tupdateStatus: function(status, text) {\n\n\t\tif(mfp.preloader) {\n\t\t\tif(_prevStatus !== status) {\n\t\t\t\tmfp.container.removeClass('mfp-s-'+_prevStatus);\n\t\t\t}\n\n\t\t\tif(!text && status === 'loading') {\n\t\t\t\ttext = mfp.st.tLoading;\n\t\t\t}\n\n\t\t\tvar data = {\n\t\t\t\tstatus: status,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t\t// allows to modify status\n\t\t\t_mfpTrigger('UpdateStatus', data);\n\n\t\t\tstatus = data.status;\n\t\t\ttext = data.text;\n\n\t\t\tmfp.preloader.html(text);\n\n\t\t\tmfp.preloader.find('a').on('click', function(e) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t});\n\n\t\t\tmfp.container.addClass('mfp-s-'+status);\n\t\t\t_prevStatus = status;\n\t\t}\n\t},\n\n\n\t/*\n\t\t\"Private\" helpers that aren't private at all\n\t */\n\t// Check to close popup or not\n\t// \"target\" is an element that was clicked\n\t_checkIfClose: function(target) {\n\n\t\tif($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar closeOnContent = mfp.st.closeOnContentClick;\n\t\tvar closeOnBg = mfp.st.closeOnBgClick;\n\n\t\tif(closeOnContent && closeOnBg) {\n\t\t\treturn true;\n\t\t} else {\n\n\t\t\t// We close the popup if click is on close button or on preloader. Or if there is no content.\n\t\t\tif(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if click is outside the content\n\t\t\tif( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\n\t\t\t\tif(closeOnBg) {\n\t\t\t\t\t// last check, if the clicked element is in DOM, (in case it's removed onclick)\n\t\t\t\t\tif( $.contains(document, target) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(closeOnContent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t}\n\t\treturn false;\n\t},\n\t_addClassToMFP: function(cName) {\n\t\tmfp.bgOverlay.addClass(cName);\n\t\tmfp.wrap.addClass(cName);\n\t},\n\t_removeClassFromMFP: function(cName) {\n\t\tthis.bgOverlay.removeClass(cName);\n\t\tmfp.wrap.removeClass(cName);\n\t},\n\t_hasScrollBar: function(winHeight) {\n\t\treturn ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n\t},\n\t_setFocus: function() {\n\t\t(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n\t},\n\t_onFocusIn: function(e) {\n\t\tif( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n\t\t\tmfp._setFocus();\n\t\t\treturn false;\n\t\t}\n\t},\n\t_parseMarkup: function(template, values, item) {\n\t\tvar arr;\n\t\tif(item.data) {\n\t\t\tvalues = $.extend(item.data, values);\n\t\t}\n\t\t_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n\t\t$.each(values, function(key, value) {\n\t\t\tif(value === undefined || value === false) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tarr = key.split('_');\n\t\t\tif(arr.length > 1) {\n\t\t\t\tvar el = template.find(EVENT_NS + '-'+arr[0]);\n\n\t\t\t\tif(el.length > 0) {\n\t\t\t\t\tvar attr = arr[1];\n\t\t\t\t\tif(attr === 'replaceWith') {\n\t\t\t\t\t\tif(el[0] !== value[0]) {\n\t\t\t\t\t\t\tel.replaceWith(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(attr === 'img') {\n\t\t\t\t\t\tif(el.is('img')) {\n\t\t\t\t\t\t\tel.attr('src', value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.replaceWith( $('').attr('src', value).attr('class', el.attr('class')) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.attr(arr[1], value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\ttemplate.find(EVENT_NS + '-'+key).html(value);\n\t\t\t}\n\t\t});\n\t},\n\n\t_getScrollbarSize: function() {\n\t\t// thx David\n\t\tif(mfp.scrollbarSize === undefined) {\n\t\t\tvar scrollDiv = document.createElement(\"div\");\n\t\t\tscrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n\t\t\tdocument.body.appendChild(scrollDiv);\n\t\t\tmfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\t\t\tdocument.body.removeChild(scrollDiv);\n\t\t}\n\t\treturn mfp.scrollbarSize;\n\t}\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n\tinstance: null,\n\tproto: MagnificPopup.prototype,\n\tmodules: [],\n\n\topen: function(options, index) {\n\t\t_checkInstance();\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\n\t\toptions.isObj = true;\n\t\toptions.index = index || 0;\n\t\treturn this.instance.open(options);\n\t},\n\n\tclose: function() {\n\t\treturn $.magnificPopup.instance && $.magnificPopup.instance.close();\n\t},\n\n\tregisterModule: function(name, module) {\n\t\tif(module.options) {\n\t\t\t$.magnificPopup.defaults[name] = module.options;\n\t\t}\n\t\t$.extend(this.proto, module.proto);\n\t\tthis.modules.push(name);\n\t},\n\n\tdefaults: {\n\n\t\t// Info about options is in docs:\n\t\t// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n\t\tdisableOn: 0,\n\n\t\tkey: null,\n\n\t\tmidClick: false,\n\n\t\tmainClass: '',\n\n\t\tpreloader: true,\n\n\t\tfocus: '', // CSS selector of input to focus after popup is opened\n\n\t\tcloseOnContentClick: false,\n\n\t\tcloseOnBgClick: true,\n\n\t\tcloseBtnInside: true,\n\n\t\tshowCloseBtn: true,\n\n\t\tenableEscapeKey: true,\n\n\t\tmodal: false,\n\n\t\talignTop: false,\n\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\n\t\tfixedContentPos: 'auto',\n\n\t\tfixedBgPos: 'auto',\n\n\t\toverflowY: 'auto',\n\n\t\tcloseMarkup: '',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('
');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: 'The content could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t'
',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: 'The image could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t''+\n\t\t\t\t'
',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));"],"sourceRoot":""}