{"version":3,"file":"site.bundle.js","mappings":"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","sources":["webpack:///../node_modules/headroom.js/dist/headroom.js","webpack:///../node_modules/magnific-popup/dist/jquery.magnific-popup.js","webpack:///./js/total-modal.js","webpack:///../node_modules/script-loader/addScript.js","webpack:///../node_modules/magnific-popup/dist/jquery.magnific-popup.js?6a27","webpack:///./js/total-modal.js?8796","webpack:///./js/scripts.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./site.js"],"sourcesContent":["/*!\n * headroom.js v0.12.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[details.direction];\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 normalizeUpDown(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 = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\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","module.exports = \"/*! 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(); }));\"","module.exports = \"(function(factory) {\\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\\n // We use `self` instead of `window` for `WebWorker` support.\\n var root = (typeof self == 'object' && self.self === self && self) ||\\n (typeof global == 'object' && global.global === global && global);\\n\\n // Set up totalModal appropriately for the environment. Start with AMD.\\n if (typeof define === 'function' && define.amd) {\\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\\n // Export global even in AMD case in case this script is loaded with\\n // others that may still expect a global totalModal.\\n root.totalModal = factory(root, $);\\n });\\n\\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\\n } else if (typeof exports !== 'undefined') {\\n var _ = require('underscore'), $;\\n try { $ = require('jquery'); } catch (e) {}\\n factory(root, $);\\n\\n // Finally, as a browser global.\\n } else {\\n root.$totalModal = factory(root, (root.jQuery || root.Zepto || root.ender || root.$));\\n }\\n})(function(window, $) {\\n $.fn.totalModal = function(options) {\\n var modal = $(this),\\n currentContext = this;\\n\\n // Defaults\\n var settings = $.extend({\\n modalTarget:'#total-modal',\\n modalClose:'#close-total-modal',\\n position:'fixed',\\n width:'100%',\\n height:'100%',\\n top:'0px',\\n left:'0px',\\n zIndexIn: '9999',\\n zIndexOut: '-9999',\\n color: '#39BEB9',\\n opacityIn:'1',\\n opacityOut:'0',\\n animatedIn:'animate__zoomIn',\\n animatedOut:'animate__zoomOut',\\n animationDuration:'.6s',\\n overflow:'auto',\\n // Callbacks\\n beforeOpen: function() {},\\n afterOpen: function() {},\\n beforeClose: function() {},\\n afterClose: function() {}\\n\\n }, options);\\n\\n var closeBt = $(settings.modalClose);\\n\\n ['beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'].forEach(function(key) {\\n if (key in settings) {\\n settings[key] = settings[key].bind(this);\\n }\\n }, this);\\n\\n var href = $(modal).attr('href')\\n , id = $('body').find(settings.modalTarget)\\n , idConc = '#' + id.attr('id');\\n\\n // Default classes\\n id.addClass('animated');\\n id.addClass(settings.modalTarget.substring(1) +'-off');\\n\\n // Init styles\\n var initStyles = {\\n 'position':settings.position,\\n 'width':settings.width,\\n 'height':settings.height,\\n 'top':settings.top,\\n 'left':settings.left,\\n 'background-color':settings.color,\\n 'overflow-y':settings.overflow,\\n 'z-index':settings.zIndexOut,\\n 'opacity':settings.opacityOut,\\n 'animation-duration':settings.animationDuration\\n };\\n // Apply styles\\n id.css(initStyles);\\n\\n function openModal() {\\n $('body, html').css({'overflow':'hidden'});\\n\\n if (href == idConc) {\\n if (id.hasClass(settings.modalTarget.substring(1)+'-off')) {\\n id.removeClass(settings.animatedOut);\\n id.removeClass(settings.modalTarget.substring(1)+'-off');\\n id.addClass(settings.modalTarget.substring(1)+'-on');\\n }\\n\\n if (id.hasClass(settings.modalTarget.substring(1)+'-on')) {\\n settings.beforeOpen(id);\\n id.css({'opacity':settings.opacityIn,'z-index':settings.zIndexIn});\\n id.addClass(settings.animatedIn);\\n id.one('animationend', afterOpen);\\n }\\n }\\n }\\n\\n function closeModal() {\\n $('body, html').css({'overflow':'auto'});\\n\\n settings.beforeClose(id); //beforeClose\\n if (id.hasClass(settings.modalTarget.substring(1)+'-on')) {\\n id.removeClass(settings.modalTarget.substring(1)+'-on');\\n id.addClass(settings.modalTarget.substring(1)+'-off');\\n }\\n\\n if (id.hasClass(settings.modalTarget.substring(1)+'-off')) {\\n id.removeClass(settings.animatedIn);\\n id.addClass(settings.animatedOut);\\n id.one('animationend', afterClose);\\n }\\n }\\n\\n modal.click(function(e) {\\n if (e && e.preventDefault) {\\n e.preventDefault();\\n }\\n openModal();\\n });\\n\\n closeBt.click(function(e) {\\n if (e && e.preventDefault) {\\n e.preventDefault();\\n }\\n closeModal();\\n });\\n\\n function afterClose () {\\n id.css({'opacity':settings.opacityOut});\\n id.css({'z-index':settings.zIndexOut});\\n settings.afterClose(id); // afterClose\\n }\\n\\n function afterOpen () {\\n settings.afterOpen(id); // afterOpen\\n }\\n\\n return {\\n open: openModal,\\n close: closeModal\\n };\\n }; // End totalModal.js\\n});\\n\\n\\n\\n/**\\n * WAI compliance stuff - focus trapping \\n */\\n\\n// Add all the elements inside modal which you want to make focusable\\nconst focusableElements =\\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\\\"-1\\\"])';\\nconst modal = document.querySelector('#modal-navigation'); // select the modal by it's id\\n\\nconst firstFocusableElement = modal.querySelectorAll(focusableElements)[0]; // get first element to be focused inside modal\\nconst focusableContent = modal.querySelectorAll(focusableElements);\\nconst lastFocusableElement = focusableContent[focusableContent.length - 1]; // get last element to be focused inside modal\\n\\n\\ndocument.addEventListener('keydown', function(e) {\\n let isTabPressed = e.key === 'Tab' || e.keyCode === 9;\\n \\n if (!isTabPressed) {\\n return;\\n }\\n\\n if (e.shiftKey) { // if shift key pressed for shift + tab combination\\n if (document.activeElement === firstFocusableElement) {\\n lastFocusableElement.focus(); // add focus for the last focusable element\\n e.preventDefault();\\n }\\n } else { // if tab key is pressed\\n if (document.activeElement === lastFocusableElement) { // if focused has reached to last focusable element then focus first focusable element after pressing tab\\n firstFocusableElement.focus(); // add focus for the first focusable element\\n e.preventDefault();\\n }\\n }\\n});\\n\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","require(\"!!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/node_modules/script-loader/addScript.js\")(require(\"!!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/node_modules/raw-loader/index.js!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/node_modules/magnific-popup/dist/jquery.magnific-popup.js\"))","require(\"!!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/node_modules/script-loader/addScript.js\")(require(\"!!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/node_modules/raw-loader/index.js!/home/onetrev/sites/credo/wordpress/wp-content/themes/credo-site/src/js/total-modal.js\"))","/**\n * GutenDevTheme scripts (footer)\n * This file contains any js scripts you want added to the theme's footer. \n */\n\n// START CUSTOM JS ---------------------------------------\n\n// load the script...\nimport Headroom from \"headroom.js\";\n// grab element for Headroom\nvar headroomElement = document.querySelector(\"#c-page-header\");\n\n// get height of element for Headroom\nvar headerHeight = headroomElement.offsetHeight; \n\n// construct an instance of Headroom, passing the element\nvar headroom = new Headroom(headroomElement, {\n \"offset\": headerHeight,\n \"tolerance\": 5,\n \"classes\": {\n \"initial\": \"animate__animated\",\n \"pinned\": \"animate__slideInDown\",\n \"unpinned\": \"animate__slideOutUp\"\n }\n});\nheadroom.init();\n\n\n// END CUSTOM JS ---------------------------------\n\n\n\n// START CUSTOM JQUERY DOC READY ---------------------------------\n\njQuery( document ).ready(function( $ ) {\n\n // modal menu init\n var modal_menu = $(\"#c-modal-nav-button\").totalModal({\n modalTarget: '#modal-navigation',\n modalClose: '#close-total-modal',\n animatedIn: 'animate__slideInDown',\n animatedOut: 'animate__slideOutUp',\n animationDuration: '444ms',\n color: '#106c9b',\n afterOpen : function() {\n document.getElementById('modal-navigation').focus();\n },\n afterClose: function() {\n $( '#modal-navigation' ).addClass( 'is-hidden' )\n $( 'body, html' ).css({ 'overflow': '' });\n }\n });\n\n // modalExtras() - just some stuff to make the modal menu better\n function modalExtras() {\n // get last and current hash + update on hash change\n var currentHash = function() {\n return location.hash.replace(/^#/, '')\n }\n var last_hash\n var hash = currentHash()\n $(window).bind('hashchange', function(event) {\n last_hash = hash;\n hash = currentHash();\n });\n \n // enable back/foward to close/open modal\n $(\"#c-modal-nav-button\").on('click', function(){ window.location.href = ensureHash(\"#menu\"); });\n function ensureHash(newHash) {\n if (window.location.hash) {\n return window.location.href.substring(0, window.location.href.lastIndexOf(window.location.hash)) + newHash;\n }\n return window.location.hash + newHash;\n }\n \n // if back button is pressed, close the modal\n $(window).on('hashchange', function (event) {\n if (last_hash == 'menu' && hash == '') {\n modal_menu.close();\n history.replaceState('', document.title, window.location.pathname);\n } // if forward button, open the modal\n else if (window.location.hash == \"#menu\"){\n modal_menu.open();\n }\n });\n \n // if close button is clicked, clear the #menu hash added above\n $('#close-total-modal').on('click', function (e) {\n history.replaceState('', document.title, window.location.pathname);\n });\n \n // close modal menu if esc key is used\n $(document).keyup(function (e) {\n if( e.keyCode == 27 && hash == 'menu' ) {\n window.history.back();\n }\n });\n }\n modalExtras();\n\n\n // search form modal with slide down effect ------------------------\n $('#search-button').magnificPopup({\n type: 'inline',\n focus: '.search-input',\n removalDelay: 500,\n callbacks: {\n beforeOpen: function() {\n this.st.mainClass = this.st.el.attr('data-effect');\n },\n open: function() { \n $('.c-page-header').css('overflow-y', 'scroll');\n },\n close: function() {\n $('.c-page-header').css('overflow-y', 'hidden');\n }\n },\n });\n\n\n // accordion for modal menu navigation -------------------------\n $( '.c-modal-menu .menu-item-has-children > a' ).on( 'click', function (ev) {\n ev.preventDefault();\n $(this).parent().toggleClass( 'is-active' );\n $(this).next('.sub-menu').toggleClass( 'is-expanded' );\n });\n\n\n\n // $('#usmapbase').on( \"click\", function(e) {\n // console.log('Blarg!');\n // if (window.us_map_config) {\n // console.log(e.target.id);\n // }\n // });\n\n\n\n if ( window.us_map_config ) {\n const usMapConfig = window.us_map_config;\n const $modal = $( '#map-popup' );\n\n Object.entries( usMapConfig ).forEach( ( [ id, state ] ) => {\n if ( state.hover ) {\n const [ num ] = id.match( /(\\d+)$/ );\n\n $( `path#${ id }, text#usvn_${ num }` ).on( 'click', () => {\n $modal.find( '.map-popup-content' ).html( state.hover );\n $.magnificPopup.open({\n items: {\n src: '#map-popup', // can be a HTML string, jQuery object, or CSS selector\n type: 'inline'\n },\n removalDelay: 300,\n mainClass: 'my-mfp-slide-bottom'\n });\n } );\n }\n } );\n }\n\n \n\n\n});\n// END CUSTOM JQUERY DOC READY ------------------------------\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// import the sassy styles ***********************\nimport \"./site.scss\";\n\n\n// quick and dirty way to make HMR work(ish)\nif (module.hot) {\n module.hot.accept();\n}\n\n\n// plugin scripts *****************************\nrequire('script-loader!./js/total-modal.js');\nrequire('script-loader!../node_modules/magnific-popup/dist/jquery.magnific-popup.js');\n\n\n// custom scripts *****************************\n// NOTE: enable script below if you have a DROP DOWN MAIN MENU -> then update classes in script for your site\n// require('./js/touch-navigation');\nrequire('./js/scripts');\n"],"names":["module","exports","isBrowser","window","passiveEventsSupported","supported","options","addEventListener","removeEventListener","err","isSupported","bind","document","documentElement","Object","assign","keys","requestAnimationFrame","isDocument","obj","nodeType","isWindow","windowScroller","win","doc","body","html","scrollHeight","Math","max","offsetHeight","clientHeight","height","innerHeight","scrollY","undefined","pageYOffset","parentNode","scrollTop","elementScroller","element","createScroller","trackScroll","callback","rafId","isPassiveSupported","scrolled","scroller","lastScrollY","details","update","round","direction","distance","abs","isOutOfBounds","top","offset","bottom","toleranceExceeded","tolerance","handleScroll","eventOptions","passive","capture","destroy","cancelAnimationFrame","normalizeUpDown","t","down","up","Headroom","elem","this","classes","initialised","frozen","prototype","constructor","init","cutsTheMustard","addClass","setTimeout","self","scrollTracker","forEach","removeClass","unpin","hasClass","onUnpin","call","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","shouldPin","className","classList","add","apply","split","remove","every","cls","contains","pinned","unpinned","initial","factory","src","log","error","console","execScript","attachEvent","eval","headroomElement","querySelector","headerHeight","jQuery","ready","$","last_hash","currentHash","hash","modal_menu","totalModal","modalTarget","modalClose","animatedIn","animatedOut","animationDuration","color","afterOpen","getElementById","focus","afterClose","css","location","replace","event","on","newHash","href","substring","lastIndexOf","close","history","replaceState","title","pathname","open","e","keyup","keyCode","back","magnificPopup","type","removalDelay","callbacks","beforeOpen","st","mainClass","el","attr","ev","preventDefault","parent","toggleClass","next","us_map_config","usMapConfig","$modal","entries","id","state","hover","num","match","find","items","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","prop","hasOwnProperty","r","Symbol","toStringTag","value"],"sourceRoot":""}