{"version":3,"file":"/assets/js/app.js","mappings":"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","sources":["webpack://On2netWebsiteFramework/./src/js/components/mainNavigation.js","webpack://On2netWebsiteFramework/./src/js/components/requestQuoteForm.js","webpack://On2netWebsiteFramework/./src/js/contact.js","webpack://On2netWebsiteFramework/./src/js/app.js","webpack://On2netWebsiteFramework/./src/js/components/LazyYouTubeVideos.js","webpack://On2netWebsiteFramework/./src/js/components/cookiePopup.js","webpack://On2netWebsiteFramework/./src/js/components/fixedHeader.js","webpack://On2netWebsiteFramework/./src/js/components/jquery.magnific-popup.js","webpack://On2netWebsiteFramework/./src/js/components/modernizr-webp.js","webpack://On2netWebsiteFramework/./src/js/components/propertyMap.js"],"sourcesContent":["// | ------------------------------------------------------------------------\r\n// | Main Navigation\r\n// | ------------------------------------------------------------------------ \r\n\r\n\r\nimport { Modal, Popover} from \"bootstrap\";\r\n\r\n\r\nwindow.addEventListener('load', (event) => {\r\n\r\n // Set variables\r\n var body = document.querySelector(\"body\");\r\n var nav = document.querySelector(\".main-nav\");\r\n var button = document.querySelector('#mobile-nav-btn');\r\n var windowWidth = document.body.clientWidth;\r\n\r\n\r\n // Toggle menu function\r\n var toggleDrawer = function(){\r\n body.classList.toggle('mobile-nav-open');\r\n button.classList.toggle('toggled');\r\n document.documentElement.classList.toggle('no-scroll');\r\n \r\n // Close all Modals (if there are any) when toggling the menu\r\n if(document.querySelectorAll('.modal.show').length > 0){\r\n var modals = document.querySelectorAll('.modal.show');\r\n modals.forEach(function(e){\r\n var modal = Modal.getInstance(e) \r\n modal.hide();\r\n }); \r\n } \r\n\r\n // Close all Popovers (if there are any) when toggling the menu\r\n if(document.querySelectorAll('[data-bs-toggle=\"popover\"]').length > 0){\r\n var popovers = document.querySelectorAll('[data-bs-toggle=\"popover\"]');\r\n popovers.forEach(function(e){\r\n var popover = Popover.getInstance(e)\r\n popover.hide();\r\n }); \r\n }\r\n \r\n \r\n }\r\n\r\n if(button){\r\n\r\n // Open/close drawer using menu button\r\n button.addEventListener(\"click\",function(event){\r\n event.stopPropagation();\r\n toggleDrawer();\r\n }, false); \r\n\r\n // Prevent menu closing when clicked\r\n nav.addEventListener(\"click\",function(event){\r\n event.stopPropagation();\r\n }, false); \r\n\r\n // Close drawer when clicking off menu\r\n body.addEventListener(\"click\",function(){\r\n if (body.classList.contains('mobile-nav-open')) {\r\n toggleDrawer();\r\n }\r\n }, false); \r\n\r\n // Close drawer if window is resized\r\n window.addEventListener(\"resize\",function(){\r\n if(document.body.clientWidth !== windowWidth){\r\n if (body.classList.contains('mobile-nav-open')) {\r\n toggleDrawer();\r\n }\r\n }\r\n windowWidth = document.body.clientWidth;\r\n });\r\n\r\n }\r\n});","import jQuery from \"jquery\";\r\nwindow.$ = window.jQuery = jQuery;\r\n\r\nimport validate from \"jquery-validation\";\r\n\r\n// | ------------------------------------------------------------------------\r\n","// | ------------------------------------------------------------------------\r\n// | Contact Page\r\n// | ------------------------------------------------------------------------\r\n\r\nimport validate from \"jquery-validation\";\r\n\r\n// | Map --------------------------------------------------------------------\r\n\r\nimport \"./components/jquery.magnific-popup\";\r\nimport \"./components/propertyMap\";\r\n\r\n// | ------------------------------------------------------------------------\r\n\r\n$(\"#getquoteform\").validate({\r\n submitHandler: function (form) {\r\n form.submit();\r\n },\r\n rules: {\r\n name: \"required\",\r\n email: {\r\n required: true,\r\n email: true,\r\n },\r\n contact: \"required\",\r\n phone: \"required\",\r\n enquiry: \"required\",\r\n },\r\n});\r\n//console.log(\"validaterun\");\r\n","// | ------------------------------------------------------------------------\r\n// | Imports\r\n// | ------------------------------------------------------------------------\r\n\r\nimport jQuery from \"jquery\";\r\nwindow.$ = window.jQuery = jQuery;\r\n\r\n// | Vendors ----------------------------------------------------------------\r\n\r\n// Bootstrap\r\n//import \"@popperjs/core\"; // Popper is required for dropdowns, popovers and tooltips.\r\nimport {\r\n Alert,\r\n //Button,\r\n //Carousel,\r\n //Collapse,\r\n //Dropdown,\r\n Modal,\r\n //OffCanvas,\r\n //Popover,\r\n //ScrollSpy,\r\n Tab,\r\n //Toast,\r\n //Tooltip,\r\n} from \"bootstrap\";\r\n\r\n//import LazyLoad from \"vanilla-lazyload\";\r\n//import { OverlayScrollbars } from \"overlayscrollbars\"; // Used on product filters\r\n\r\nimport validate from \"jquery-validation\";\r\n\r\nimport AOS from \"aos\"; //? https://github.com/michalsnik/aos\r\nimport Splide from \"@splidejs/splide\"; //? https://splidejs.com/\r\nimport GLightbox from \"glightbox/dist/js/glightbox.js\"; //? https://github.com/biati-digital/glightbox\r\n\r\nimport shave from \"shave\";\r\n\r\n// | Template Components ----------------------------------------------------\r\n\r\n// Cookies\r\n//import \"./components/cookieConsent/cookieOptions\";\r\nimport \"./components/cookiePopup\";\r\n\r\n// Navigation\r\nimport \"./components/mainNavigation\";\r\n//import \"./components/dropdownOnHover\";\r\n\r\n// Header\r\nimport \"./components/fixedHeader\";\r\n\r\n// Images\r\n//import \"./components/imageLazyLoad\";\r\nimport \"./components/modernizr-webp\";\r\n\r\n// Videos\r\nimport \"./components/LazyYouTubeVideos\";\r\n\r\n// Forms\r\nimport \"./components/requestQuoteForm\";\r\n//import \"./components/quantityInputs\";\r\n\r\n// Shop Specific\r\n//import \"./components/productFilters\";\r\n//import \"./components/productGallery\";\r\n//import \"./components/productGrid\";\r\n//import \"./components/tableRowLinks\";\r\n\r\n// | Page Specific ----------------------------------------------------------\r\n\r\nimport \"./contact\";\r\n\r\n// | ------------------------------------------------------------------------\r\n// | Code\r\n// | ------------------------------------------------------------------------\r\n\r\nwindow.addEventListener(\"load\", (event) => {\r\n AOS.init();\r\n\r\n // Light box\r\n var lightbox = GLightbox({\r\n touchNavigation: true,\r\n loop: true,\r\n });\r\n\r\n shave(\".ellipsis\", 84, { character: \"...\" });\r\n});\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n function parallaxBlur() {\r\n var parallaxElement = document.querySelector(\".parallax-bg\");\r\n\r\n if (parallaxElement) {\r\n var elementHeight = parallaxElement.offsetHeight;\r\n\r\n var scrollPos = window.pageYOffset;\r\n var transformValue = scrollPos / 40;\r\n var opacityValue = 1 - scrollPos / 1000;\r\n var blurValue = Math.min(scrollPos / 100, 3);\r\n\r\n if (scrollPos < elementHeight) {\r\n Object.assign(parallaxElement.style, {\r\n transform: \"translate3d(0,\" + transformValue + \"%, 0)\",\r\n opacity: \"\" + opacityValue + \"\",\r\n filter: \"brightness(.6) blur(\" + blurValue + \"px)\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n window.addEventListener(\"scroll\", parallaxBlur, false);\r\n\r\n var carouselStandards = document.querySelector(\".carousel-standards\");\r\n\r\n if (carouselStandards) {\r\n var carouselStandard = new Splide(\".carousel-standards\", {\r\n type: \"loop\",\r\n gap: 80,\r\n padding: \"80px\",\r\n perPage: 3,\r\n perMove: 1,\r\n pagination: false,\r\n arrows: false,\r\n breakpoints: {\r\n 576: {\r\n perPage: 1,\r\n arrows: true,\r\n },\r\n 768: {\r\n perPage: 2,\r\n arrows: true,\r\n },\r\n 992: {\r\n perPage: 3,\r\n },\r\n },\r\n }).mount();\r\n }\r\n});\r\n\r\n// | ------------------------------------------------------------------------\r\n// | Debugging\r\n// | ------------------------------------------------------------------------\r\n\r\n// import \"./debugging/cls\";\r\n","// | ------------------------------------------------------------------------\r\n// | Lazy YouTube Videos\r\n// | ------------------------------------------------------------------------ \r\n\r\n\r\nvar youtube = document.querySelectorAll( \".video-container\" );\r\nif(youtube.length>0){\r\nfor (var i = 0; i < youtube.length; i++) {\r\n var playbutton = youtube[i].innerHTML = \"
\";\r\nvar source = \"https://img.youtube.com/vi/\"+ youtube[i].dataset.embed +\"/hqdefault.jpg\";\t\r\nvar image = new Image();\r\nimage.src = source;\r\nimage.addEventListener( \"load\", function() {\r\nyoutube[ i ].appendChild( image );\r\n}( i ) );\r\nyoutube[i].addEventListener( \"click\", function() {\r\n this.innerHTML = \"
\";\r\nvar iframe = document.createElement( \"iframe\" );\r\n iframe.classList.add('embed-responsive-item');\r\niframe.setAttribute( \"frameborder\", \"0\" );\r\niframe.setAttribute( \"allowfullscreen\", \"\" );\r\niframe.setAttribute( \"allow\", \"autoplay\" );\r\niframe.setAttribute( \"src\", \"https://www.youtube.com/embed/\"+ this.dataset.embed +\"?rel=0&showinfo=0&autoplay=1\" );\r\nthis.appendChild( iframe );\r\n} );};}","// Set cookie options\r\nconst targetingCookies = false;\r\nconst personalCookies = false;\r\nconst analyticsCookies = true;\r\n\r\n// Set type\r\nconst tagManager = false; // if false then it defaults to gtag\r\nconst gtagId = \"G-58FZ455VMJ\";\r\n\r\n// Set up data layer and set everything to denied\r\nwindow.dataLayer = window.dataLayer || [];\r\nfunction gtag() {\r\n dataLayer.push(arguments);\r\n}\r\n\r\ngtag(\"consent\", \"default\", {\r\n ad_user_data: \"denied\",\r\n ad_personalization: \"denied\",\r\n ad_storage: \"denied\",\r\n analytics_storage: \"denied\",\r\n personalization_storage: \"denied\",\r\n wait_for_update: 500,\r\n});\r\n\r\nif (tagManager === true) {\r\n dataLayer.push({ \"gtm.start\": new Date().getTime(), event: \"gtm.js\" });\r\n} else {\r\n gtag(\"js\", new Date());\r\n gtag(\"config\", gtagId);\r\n}\r\n\r\n// Create the cookie popup\r\nfunction createCookiePopup() {\r\n var cookieContainerElement = document.querySelector(\".cookie-container\");\r\n\r\n if (cookieContainerElement) {\r\n // If the cookie container is already open then do nothing\r\n } else {\r\n // Remove the cookie button\r\n const cookieLink = document.querySelector(\"#cookieLink\");\r\n if (cookieLink) {\r\n cookieLink.remove();\r\n }\r\n\r\n // Create Cookie Container\r\n let cookieContainer = document.createElement(\"div\");\r\n cookieContainer.classList.add(\"cookie-container\");\r\n\r\n // Create intro text\r\n let cookieIntro = document.createElement(\"p\");\r\n cookieIntro.innerHTML =\r\n \"We use cookies to improve user experience. Choose what cookies you allow us to use below. You can find out more in our Cookie Policy\";\r\n\r\n // Append intro to container\r\n cookieContainer.appendChild(cookieIntro);\r\n\r\n // Create cookie options holder\r\n let cookieOptionsHolder = document.createElement(\"div\");\r\n cookieOptionsHolder.classList.add(\"cookie-options\");\r\n\r\n // Add cookie options\r\n addCookieOptions(cookieOptionsHolder);\r\n\r\n // Append options holder to container\r\n cookieContainer.appendChild(cookieOptionsHolder);\r\n\r\n // Create save button\r\n let saveButton = document.createElement(\"button\");\r\n saveButton.type = \"button\";\r\n saveButton.classList.add(\"btn\", \"btn-save\");\r\n saveButton.id = \"cookieSaveBtn\";\r\n saveButton.innerHTML = \"Save Preferences\";\r\n\r\n // Append save button\r\n cookieContainer.appendChild(saveButton);\r\n\r\n // Create accept all button\r\n let consentButton = document.createElement(\"button\");\r\n\r\n consentButton.type = \"button\";\r\n consentButton.classList.add(\"btn\", \"btn-consent\");\r\n consentButton.id = \"cookieConsentBtn\";\r\n consentButton.innerHTML = \"Accept All\";\r\n\r\n // Append accept all button\r\n cookieContainer.appendChild(consentButton);\r\n\r\n // Append cookie container to the body\r\n document.body.appendChild(cookieContainer);\r\n\r\n // Handle button clicks\r\n var consentBtn = document.querySelector(\"#cookieConsentBtn\");\r\n\r\n // If the 'Accept All' button is clicked then load gtag with everything granted\r\n consentBtn.addEventListener(\"click\", function () {\r\n // Set all cookies to true\r\n if (targetingCookies === true) {\r\n localStorage.setItem(\"targeting\", \"true\");\r\n } else {\r\n localStorage.setItem(\"targeting\", \"false\");\r\n }\r\n\r\n if (personalCookies === true) {\r\n localStorage.setItem(\"personal\", \"true\");\r\n } else {\r\n localStorage.setItem(\"personal\", \"false\");\r\n }\r\n\r\n if (analyticsCookies === true) {\r\n localStorage.setItem(\"analytics\", \"true\");\r\n } else {\r\n localStorage.setItem(\"analytics\", \"false\");\r\n }\r\n\r\n // update consent\r\n updateConsent();\r\n\r\n // Add cookie so we know that something has been accepted\r\n localStorage.setItem(\"consentGranted\", \"true\");\r\n\r\n // Close the cookie popup\r\n closeCookiePopup();\r\n\r\n cookieHeight();\r\n });\r\n\r\n // If the save button is clicked load gtag script depnding on what's checked\r\n var saveBtn = document.querySelector(\"#cookieSaveBtn\");\r\n\r\n saveBtn.addEventListener(\"click\", function () {\r\n let cookieOptions = document.querySelectorAll(\".cookie-option input\");\r\n\r\n // Loop through each option and add cookie\r\n cookieOptions.forEach(function (cookieOption) {\r\n if (cookieOption.checked) {\r\n localStorage.setItem(cookieOption.value, \"true\");\r\n } else {\r\n localStorage.setItem(cookieOption.value, \"false\");\r\n }\r\n });\r\n\r\n // update consent\r\n updateConsent();\r\n\r\n // Add cookie so we know that something has been accepted\r\n localStorage.setItem(\"consentGranted\", \"true\");\r\n\r\n // Close the cookie popup\r\n closeCookiePopup();\r\n\r\n cookieHeight();\r\n });\r\n\r\n cookieHeight();\r\n }\r\n}\r\n\r\n// Add selected options to the cookie popup\r\nfunction addCookieOptions(cookieOptionsHolder) {\r\n // Create options array\r\n let cookieOptions = [\"essential\"];\r\n\r\n // Add items to array if selected as true\r\n if (targetingCookies === true) {\r\n cookieOptions.push(\"targeting\");\r\n }\r\n\r\n if (personalCookies === true) {\r\n cookieOptions.push(\"personal\");\r\n }\r\n\r\n if (analyticsCookies === true) {\r\n cookieOptions.push(\"analytics\");\r\n }\r\n\r\n cookieOptions.forEach(function (cookieOption) {\r\n // Create holder\r\n let optionHolder = document.createElement(\"div\");\r\n optionHolder.classList.add(\"cookie-option\");\r\n\r\n // Create Input\r\n let optionInput = document.createElement(\"input\");\r\n\r\n optionInput.type = \"checkbox\";\r\n optionInput.id = cookieOption;\r\n optionInput.name = cookieOption;\r\n optionInput.value = cookieOption;\r\n\r\n if (localStorage.getItem(cookieOption) === \"false\") {\r\n optionInput.removeAttribute(\"checked\");\r\n } else {\r\n optionInput.checked = \"true\";\r\n }\r\n\r\n if (cookieOption === \"essential\") {\r\n optionInput.disabled = \"true\";\r\n }\r\n\r\n // Create label and description\r\n let optionLabel = document.createElement(\"label\");\r\n let labelText = \"\";\r\n\r\n let optionDesc = document.createElement(\"p\");\r\n let optionDescText = \"\";\r\n\r\n if (cookieOption === \"targeting\") {\r\n labelText = \"Advertising\";\r\n optionDescText =\r\n \"We use these to deliver advertising that is more relevant to you.\";\r\n } else if (cookieOption === \"essential\") {\r\n labelText = \"Essential\";\r\n optionDescText =\r\n \"Required to enable basic website functionality. You may not disable these.\";\r\n } else if (cookieOption === \"personal\") {\r\n labelText = \"Personalisation\";\r\n optionDescText =\r\n \"Allows us to remember choices you make and provide enhanced, more personal features.\";\r\n } else if (cookieOption === \"analytics\") {\r\n labelText = \"Analytics\";\r\n optionDescText =\r\n \"Helps us to understand how the website performs, and how you interact with it.\";\r\n }\r\n\r\n optionDesc.innerHTML = optionDescText;\r\n\r\n optionLabel.htmlFor = cookieOption;\r\n optionLabel.innerHTML = labelText;\r\n optionLabel.classList.add(\"h5\", \"mb-0\");\r\n\r\n optionHolder.appendChild(optionInput);\r\n optionHolder.appendChild(optionLabel);\r\n optionHolder.appendChild(optionDesc);\r\n\r\n cookieOptionsHolder.appendChild(optionHolder);\r\n });\r\n}\r\n\r\n// Close the cookie popup\r\nfunction closeCookiePopup() {\r\n // Remove the cookie popup\r\n var cookieContainer = document.querySelector(\".cookie-container\");\r\n cookieContainer.remove();\r\n\r\n // Create the cookie button\r\n createCookieButton();\r\n}\r\n\r\n// Create the floating cookie icon button\r\nfunction createCookieButton() {\r\n let cookieButton = document.createElement(\"button\");\r\n\r\n cookieButton.type = \"button\";\r\n cookieButton.classList.add(\"btn\", \"btn-cookie\");\r\n cookieButton.id = \"cookieLink\";\r\n cookieButton.setAttribute(\"aria-label\", \"Cookie Preferences\");\r\n cookieButton.innerHTML =\r\n '';\r\n\r\n document.body.appendChild(cookieButton);\r\n\r\n const cookieLink = document.querySelector(\"#cookieLink\");\r\n\r\n cookieLink.addEventListener(\"click\", function () {\r\n createCookiePopup();\r\n });\r\n}\r\n\r\n// Check if consent has been given and updates the data layer\r\nfunction updateConsent() {\r\n if (localStorage.getItem(\"targeting\") === \"true\") {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n\r\n gtag(\"consent\", \"update\", {\r\n ad_user_data: \"granted\",\r\n ad_personalization: \"granted\",\r\n ad_storage: \"granted\",\r\n });\r\n } else {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n gtag(\"consent\", \"update\", {\r\n ad_user_data: \"denied\",\r\n ad_personalization: \"denied\",\r\n ad_storage: \"denied\",\r\n });\r\n }\r\n\r\n if (localStorage.getItem(\"analytics\") === \"true\") {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n\r\n gtag(\"consent\", \"update\", {\r\n analytics_storage: \"granted\",\r\n });\r\n } else {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n gtag(\"consent\", \"update\", {\r\n analytics_storage: \"denied\",\r\n });\r\n }\r\n\r\n if (localStorage.getItem(\"personal\") === \"true\") {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n\r\n gtag(\"consent\", \"update\", {\r\n personalization_storage: \"granted\",\r\n });\r\n } else {\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n gtag(\"consent\", \"update\", {\r\n personalization_storage: \"denied\",\r\n });\r\n }\r\n}\r\n\r\n// Calculates the amount of space needed to accommodate the cookie popup when open\r\nfunction cookieHeight() {\r\n var cookiePopUp = document.querySelector(\".cookie-container\");\r\n\r\n if (cookiePopUp) {\r\n var popUpHeight = cookiePopUp.offsetHeight;\r\n document.documentElement.style.setProperty(\r\n \"--cookie-height\",\r\n popUpHeight + \"px\"\r\n );\r\n } else {\r\n document.documentElement.style.setProperty(\"--cookie-height\", 0 + \"px\");\r\n }\r\n}\r\n\r\n// Run cookieHeight() on load and if the screen size changes\r\nwindow.addEventListener(\"load\", cookieHeight(), false);\r\n//window.addEventListener(\"resize\", cookieHeight(), false);\r\n\r\nwindow.addEventListener(\"resize\", function () {\r\n cookieHeight();\r\n});\r\n\r\n// Once page has loaded check if cookies have been accepted and create the cookie button\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n if (localStorage.getItem(\"consentGranted\") === \"true\") {\r\n // If consent has been provided previously then update consent\r\n updateConsent();\r\n\r\n if (tagManager === true) {\r\n var gtmScript = document.createElement(\"script\");\r\n gtmScript.async = true;\r\n gtmScript.src = \"https://www.googletagmanager.com/gtm.js?id=\" + gtagId;\r\n var firstScript = document.getElementsByTagName(\"script\")[0];\r\n firstScript.parentNode.insertBefore(gtmScript, firstScript);\r\n } else {\r\n var gtagScript = document.createElement(\"script\");\r\n gtagScript.async = true;\r\n gtagScript.src = \"https://www.googletagmanager.com/gtag/js?id=\" + gtagId;\r\n var firstScript = document.getElementsByTagName(\"script\")[0];\r\n firstScript.parentNode.insertBefore(gtagScript, firstScript);\r\n }\r\n\r\n // Create cookie Button so that cookie preferences can be edited\r\n createCookieButton();\r\n } else {\r\n // If consent has not previously been given then create the cookie popup\r\n createCookiePopup();\r\n\r\n /*\r\n if (tagManager === true) {\r\n var gtmScript = document.createElement(\"script\");\r\n gtmScript.async = true;\r\n gtmScript.src = \"https://www.googletagmanager.com/gtm.js?id=\" + gtagId;\r\n var firstScript = document.getElementsByTagName(\"script\")[0];\r\n firstScript.parentNode.insertBefore(gtmScript, firstScript);\r\n } else {\r\n var gtagScript = document.createElement(\"script\");\r\n gtagScript.async = true;\r\n gtagScript.src = \"https://www.googletagmanager.com/gtag/js?id=\" + gtagId;\r\n var firstScript = document.getElementsByTagName(\"script\")[0];\r\n firstScript.parentNode.insertBefore(gtagScript, firstScript);\r\n }\r\n */\r\n }\r\n});\r\n","// | ------------------------------------------------------------------------\r\n// | Fixed Header\r\n// | ------------------------------------------------------------------------ \r\n\r\n\r\nvar header = document.querySelector(\".site-header\");\r\n\r\nif(header){\r\n\r\n var fixHeader = function(){\r\n\r\n // Find out height of header element\r\n var headerHeight = header.offsetHeight;\r\n\r\n // Set --header-height custom property\r\n document.documentElement.style.setProperty(\"--header-height\", headerHeight + \"px\");\r\n\r\n // Add class when scrolling on windows >= 768px\r\n var windowWidth = document.body.clientWidth;\r\n\r\n if(windowWidth > 767){\r\n\r\n // Get scroll position\r\n let scroll = window.scrollY;\r\n\r\n // Toggle class\r\n if (scroll > 50) {\r\n header.classList.add(\"scrolling\");\r\n } else {\r\n header.classList.remove(\"scrolling\");\r\n } \r\n }\r\n\r\n };\r\n\r\n // Run on scroll/load/resize\r\n window.addEventListener(\"scroll\", fixHeader, false);\r\n window.addEventListener(\"load\", fixHeader, false);\r\n window.addEventListener(\"resize\", fixHeader, false);\r\n}","/*! Magnific Popup - v0.9.9 - 2013-12-27\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2013 Dmitry Semenov; */\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 */\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_body,\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\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.isIE7 = appVersion.indexOf(\"MSIE 7.\") !== -1; \n\t\tmfp.isIE8 = appVersion.indexOf(\"MSIE 8.\") !== -1;\n\t\tmfp.isLowIE = mfp.isIE7 || mfp.isIE8;\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\tif(!_body) {\n\t\t\t_body = $(document.body);\n\t\t}\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 || _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._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;\t\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\t\t\n\t\tmfp.currItem = item;\n\n\t\t\n\n\t\t\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\t\t\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\t\t\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\t\t\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\n\t\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\t\t\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 ) ) {\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\t\t\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\t\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( '' );\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.id = \"mfp-sbm\";\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();\t\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\t\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);\t\t\t\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\t\t\n\t\tdisableOn: 0,\t\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\t\t\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\t\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\t\t\n\t\tfixedContentPos: 'auto', \n\t\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}\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\t\t\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\n//Quick benchmark\n/*\nvar start = performance.now(),\n\ti,\n\trounds = 1000;\n\nfor(i = 0; i < rounds; i++) {\n\n}\nconsole.log('Test #1:', performance.now() - start);\n\nstart = performance.now();\nfor(i = 0; i < rounds; i++) {\n\n}\nconsole.log('Test #2:', performance.now() - start);\n*/\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_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_body.addClass(_ajaxCur);\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\n\n\n\n\t\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_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_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\t\t\t\t\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\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\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\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) {\t\t\t\t\t\t\t\t\t\t\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\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;\t\t\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\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\n\t\t\t\t\t\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\t\t\t\t\t\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}\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\t\t\t\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\t\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\t\t\t\t\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\t\t\t\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\t\t\t\tsupportsFastClick = Boolean($.fn.mfpFastClick);\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\t\t\t\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),\t\t\t\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\tvar eName = supportsFastClick ? 'mfpFastClick' : 'click';\n\t\t\t\t\tarrowLeft[eName](function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\t\t\t\n\t\t\t\t\tarrowRight[eName](function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\t\n\n\t\t\t\t\t// Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b)\n\t\t\t\t\tif(mfp.isIE7) {\n\t\t\t\t\t\t_getEl('b', arrowLeft[0], false, true);\n\t\t\t\t\t\t_getEl('a', arrowLeft[0], false, true);\n\t\t\t\t\t\t_getEl('b', arrowRight[0], false, true);\n\t\t\t\t\t\t_getEl('a', arrowRight[0], false, true);\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);\t\t\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\n\t\t\t\tif(mfp.arrowLeft && supportsFastClick) {\n\t\t\t\t\tmfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();\n\t\t\t\t}\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/*\nTouch Support that might be implemented some day\n\naddSwipeGesture: function() {\n\tvar startX,\n\t\tmoved,\n\t\tmultipleTouches;\n\n\t\treturn;\n\n\tvar namespace = '.mfp',\n\t\taddEventNames = function(pref, down, move, up, cancel) {\n\t\t\tmfp._tStart = pref + down + namespace;\n\t\t\tmfp._tMove = pref + move + namespace;\n\t\t\tmfp._tEnd = pref + up + namespace;\n\t\t\tmfp._tCancel = pref + cancel + namespace;\n\t\t};\n\n\tif(window.navigator.msPointerEnabled) {\n\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t} else if('ontouchstart' in window) {\n\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t} else {\n\t\treturn;\n\t}\n\t_window.on(mfp._tStart, function(e) {\n\t\tvar oE = e.originalEvent;\n\t\tmultipleTouches = moved = false;\n\t\tstartX = oE.pageX || oE.changedTouches[0].pageX;\n\t}).on(mfp._tMove, function(e) {\n\t\tif(e.originalEvent.touches.length > 1) {\n\t\t\tmultipleTouches = e.originalEvent.touches.length;\n\t\t} else {\n\t\t\t//e.preventDefault();\n\t\t\tmoved = true;\n\t\t}\n\t}).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) {\n\t\tif(moved && !multipleTouches) {\n\t\t\tvar oE = e.originalEvent,\n\t\t\t\tdiff = startX - (oE.pageX || oE.changedTouches[0].pageX);\n\n\t\t\tif(diff > 20) {\n\t\t\t\tmfp.next();\n\t\t\t} else if(diff < -20) {\n\t\t\t\tmfp.prev();\n\t\t\t}\n\t\t}\n\t});\n},\n*/\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\n/*>>fastclick*/\n/**\n * FastClick event implementation. (removes 300ms delay on touch devices)\n * Based on https://developers.google.com/mobile/articles/fast_buttons\n *\n * You may use it outside the Magnific Popup by calling just:\n *\n * $('.your-el').mfpFastClick(function() {\n * console.log('Clicked!');\n * });\n *\n * To unbind:\n * $('.your-el').destroyMfpFastClick();\n * \n * \n * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound.\n * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick\n * \n */\n\n(function() {\n\tvar ghostClickDelay = 1000,\n\t\tsupportsTouch = 'ontouchstart' in window,\n\t\tunbindTouchMove = function() {\n\t\t\t_window.off('touchmove'+ns+' touchend'+ns);\n\t\t},\n\t\teName = 'mfpFastClick',\n\t\tns = '.'+eName;\n\n\n\t// As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way\n\t$.fn.mfpFastClick = function(callback) {\n\n\t\treturn $(this).each(function() {\n\n\t\t\tvar elem = $(this),\n\t\t\t\tlock;\n\n\t\t\tif( supportsTouch ) {\n\n\t\t\t\tvar timeout,\n\t\t\t\t\tstartX,\n\t\t\t\t\tstartY,\n\t\t\t\t\tpointerMoved,\n\t\t\t\t\tpoint,\n\t\t\t\t\tnumPointers;\n\n\t\t\t\telem.on('touchstart' + ns, function(e) {\n\t\t\t\t\tpointerMoved = false;\n\t\t\t\t\tnumPointers = 1;\n\n\t\t\t\t\tpoint = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0];\n\t\t\t\t\tstartX = point.clientX;\n\t\t\t\t\tstartY = point.clientY;\n\n\t\t\t\t\t_window.on('touchmove'+ns, function(e) {\n\t\t\t\t\t\tpoint = e.originalEvent ? e.originalEvent.touches : e.touches;\n\t\t\t\t\t\tnumPointers = point.length;\n\t\t\t\t\t\tpoint = point[0];\n\t\t\t\t\t\tif (Math.abs(point.clientX - startX) > 10 ||\n\t\t\t\t\t\t\tMath.abs(point.clientY - startY) > 10) {\n\t\t\t\t\t\t\tpointerMoved = true;\n\t\t\t\t\t\t\tunbindTouchMove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).on('touchend'+ns, function(e) {\n\t\t\t\t\t\tunbindTouchMove();\n\t\t\t\t\t\tif(pointerMoved || numPointers > 1) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlock = true;\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\ttimeout = setTimeout(function() {\n\t\t\t\t\t\t\tlock = false;\n\t\t\t\t\t\t}, ghostClickDelay);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\telem.on('click' + ns, function() {\n\t\t\t\tif(!lock) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n\n\t$.fn.destroyMfpFastClick = function() {\n\t\t$(this).off('touchstart' + ns + ' click' + ns);\n\t\tif(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns);\n\t};\n})();\n\n/*>>fastclick*/\n _checkInstance(); })(window.jQuery || window.Zepto);","// | ------------------------------------------------------------------------\r\n// | Modernizr Webp\r\n// | ------------------------------------------------------------------------ \r\n\r\n/*! modernizr 3.6.0 (Custom Build) | MIT *\r\n * https://modernizr.com/download/?-webp-setclasses !*/\r\n !function(e,n,A){function o(e,n){return typeof e===n}function t(){var e,n,A,t,a,i,l;for(var f in r)if(r.hasOwnProperty(f)){if(e=[],n=r[f],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(A=0;A