{"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 = $('