{"version":3,"file":"scripts.js","sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/jquery-lazy/jquery.lazy.js","webpack:///../node_modules/jquery-popup-overlay/index.js","webpack:///../node_modules/jquery-popup-overlay/jquery.popupoverlay.js","webpack:///../node_modules/jquery-ui/ui/focusable.js","webpack:///../node_modules/jquery-ui/ui/tabbable.js","webpack:///../node_modules/jquery-ui/ui/unique-id.js","webpack:///../node_modules/jquery-ui/ui/version.js","webpack:///../node_modules/slick-carousel/slick/slick.js","webpack:///../node_modules/sticky-sidebar/src/sticky-sidebar.js","webpack:///../node_modules/waypoints/lib/jquery.waypoints.js","webpack:///./scripts.js","webpack:///./src/ThirdParty/jquery.fancybox.min.js","webpack:///./src/ThirdParty/jquery.malihu.PageScroll2id.js","webpack:///./src/master.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./scripts.js\");\n","/*!\r\n * jQuery & Zepto Lazy - v1.7.10\r\n * http://jquery.eisbehr.de/lazy/\r\n *\r\n * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern\r\n *\r\n * Dual licensed under the MIT and GPL-2.0 licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl-2.0.html\r\n *\r\n * $(\"img.lazy\").lazy();\r\n */\r\n\r\n;(function(window, undefined) {\r\n \"use strict\";\r\n\r\n // noinspection JSUnresolvedVariable\r\n /**\r\n * library instance - here and not in construct to be shorter in minimization\r\n * @return void\r\n */\r\n var $ = window.jQuery || window.Zepto,\r\n\r\n /**\r\n * unique plugin instance id counter\r\n * @type {number}\r\n */\r\n lazyInstanceId = 0,\r\n\r\n /**\r\n * helper to register window load for jQuery 3\r\n * @type {boolean}\r\n */ \r\n windowLoaded = false;\r\n\r\n /**\r\n * make lazy available to jquery - and make it a bit more case-insensitive :)\r\n * @access public\r\n * @type {function}\r\n * @param {object} settings\r\n * @return {LazyPlugin}\r\n */\r\n $.fn.Lazy = $.fn.lazy = function(settings) {\r\n return new LazyPlugin(this, settings);\r\n };\r\n\r\n /**\r\n * helper to add plugins to lazy prototype configuration\r\n * @access public\r\n * @type {function}\r\n * @param {string|Array} names\r\n * @param {string|Array|function} [elements]\r\n * @param {function} loader\r\n * @return void\r\n */\r\n $.Lazy = $.lazy = function(names, elements, loader) {\r\n // make second parameter optional\r\n if ($.isFunction(elements)) {\r\n loader = elements;\r\n elements = [];\r\n }\r\n\r\n // exit here if parameter is not a callable function\r\n if (!$.isFunction(loader)) {\r\n return;\r\n }\r\n\r\n // make parameters an array of names to be sure\r\n names = $.isArray(names) ? names : [names];\r\n elements = $.isArray(elements) ? elements : [elements];\r\n\r\n var config = LazyPlugin.prototype.config,\r\n forced = config._f || (config._f = {});\r\n\r\n // add the loader plugin for every name\r\n for (var i = 0, l = names.length; i < l; i++) {\r\n if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {\r\n config[names[i]] = loader;\r\n }\r\n }\r\n\r\n // add forced elements loader\r\n for (var c = 0, a = elements.length; c < a; c++) {\r\n forced[elements[c]] = names[0];\r\n }\r\n };\r\n\r\n /**\r\n * contains all logic and the whole element handling\r\n * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance\r\n * @access private\r\n * @type {function}\r\n * @param {LazyPlugin} instance\r\n * @param {object} config\r\n * @param {object|Array} items\r\n * @param {object} events\r\n * @param {string} namespace\r\n * @return void\r\n */\r\n function _executeLazy(instance, config, items, events, namespace) {\r\n /**\r\n * a helper to trigger the 'onFinishedAll' callback after all other events\r\n * @access private\r\n * @type {number}\r\n */\r\n var _awaitingAfterLoad = 0,\r\n\r\n /**\r\n * visible content width\r\n * @access private\r\n * @type {number}\r\n */\r\n _actualWidth = -1,\r\n\r\n /**\r\n * visible content height\r\n * @access private\r\n * @type {number}\r\n */\r\n _actualHeight = -1,\r\n\r\n /**\r\n * determine possibly detected high pixel density\r\n * @access private\r\n * @type {boolean}\r\n */\r\n _isRetinaDisplay = false, \r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _afterLoad = 'afterLoad',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _load = 'load',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _error = 'error',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _img = 'img',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _src = 'src',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _srcset = 'srcset',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _sizes = 'sizes',\r\n\r\n /**\r\n * dictionary entry for better minimization\r\n * @access private\r\n * @type {string}\r\n */\r\n _backgroundImage = 'background-image';\r\n\r\n /**\r\n * initialize plugin\r\n * bind loading to events or set delay time to load all items at once\r\n * @access private\r\n * @return void\r\n */\r\n function _initialize() {\r\n // detect actual device pixel ratio\r\n // noinspection JSUnresolvedVariable\r\n _isRetinaDisplay = window.devicePixelRatio > 1;\r\n\r\n // prepare all initial items\r\n items = _prepareItems(items);\r\n\r\n // if delay time is set load all items at once after delay time\r\n if (config.delay >= 0) {\r\n setTimeout(function() {\r\n _lazyLoadItems(true);\r\n }, config.delay);\r\n }\r\n\r\n // if no delay is set or combine usage is active bind events\r\n if (config.delay < 0 || config.combined) {\r\n // create unique event function\r\n events.e = _throttle(config.throttle, function(event) {\r\n // reset detected window size on resize event\r\n if (event.type === 'resize') {\r\n _actualWidth = _actualHeight = -1;\r\n }\r\n\r\n // execute 'lazy magic'\r\n _lazyLoadItems(event.all);\r\n });\r\n\r\n // create function to add new items to instance\r\n events.a = function(additionalItems) {\r\n additionalItems = _prepareItems(additionalItems);\r\n items.push.apply(items, additionalItems);\r\n };\r\n\r\n // create function to get all instance items left\r\n events.g = function() {\r\n // filter loaded items before return in case internal filter was not running until now\r\n return (items = $(items).filter(function() {\r\n return !$(this).data(config.loadedName);\r\n }));\r\n };\r\n\r\n // create function to force loading elements\r\n events.f = function(forcedItems) {\r\n for (var i = 0; i < forcedItems.length; i++) {\r\n // only handle item if available in current instance\r\n // use a compare function, because Zepto can't handle object parameter for filter\r\n // var item = items.filter(forcedItems[i]);\r\n /* jshint loopfunc: true */\r\n var item = items.filter(function() {\r\n return this === forcedItems[i];\r\n });\r\n\r\n if (item.length) {\r\n _lazyLoadItems(false, item); \r\n }\r\n }\r\n };\r\n\r\n // load initial items\r\n _lazyLoadItems();\r\n\r\n // bind lazy load functions to scroll and resize event\r\n // noinspection JSUnresolvedVariable\r\n $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);\r\n }\r\n }\r\n\r\n /**\r\n * prepare items before handle them\r\n * @access private\r\n * @param {Array|object|jQuery} items\r\n * @return {Array|object|jQuery}\r\n */\r\n function _prepareItems(items) {\r\n // fetch used configurations before loops\r\n var defaultImage = config.defaultImage,\r\n placeholder = config.placeholder,\r\n imageBase = config.imageBase,\r\n srcsetAttribute = config.srcsetAttribute,\r\n loaderAttribute = config.loaderAttribute,\r\n forcedTags = config._f || {};\r\n\r\n // filter items and only add those who not handled yet and got needed attributes available\r\n items = $(items).filter(function() {\r\n var element = $(this),\r\n tag = _getElementTagName(this);\r\n\r\n return !element.data(config.handledName) && \r\n (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);\r\n })\r\n\r\n // append plugin instance to all elements\r\n .data('plugin_' + config.name, instance);\r\n\r\n for (var i = 0, l = items.length; i < l; i++) {\r\n var element = $(items[i]),\r\n tag = _getElementTagName(items[i]),\r\n elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;\r\n\r\n // generate and update source set if an image base is set\r\n if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {\r\n element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));\r\n }\r\n\r\n // add loader to forced element types\r\n if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {\r\n element.attr(loaderAttribute, forcedTags[tag]);\r\n }\r\n\r\n // set default image on every element without source\r\n if (tag === _img && defaultImage && !element.attr(_src)) {\r\n element.attr(_src, defaultImage);\r\n }\r\n\r\n // set placeholder on every element without background image\r\n else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {\r\n element.css(_backgroundImage, \"url('\" + placeholder + \"')\");\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n * the 'lazy magic' - check all items\r\n * @access private\r\n * @param {boolean} [allItems]\r\n * @param {object} [forced]\r\n * @return void\r\n */\r\n function _lazyLoadItems(allItems, forced) {\r\n // skip if no items where left\r\n if (!items.length) {\r\n // destroy instance if option is enabled\r\n if (config.autoDestroy) {\r\n // noinspection JSUnresolvedFunction\r\n instance.destroy();\r\n }\r\n\r\n return;\r\n }\r\n\r\n var elements = forced || items,\r\n loadTriggered = false,\r\n imageBase = config.imageBase || '',\r\n srcsetAttribute = config.srcsetAttribute,\r\n handledName = config.handledName;\r\n\r\n // loop all available items\r\n for (var i = 0; i < elements.length; i++) {\r\n // item is at least in loadable area\r\n if (allItems || forced || _isInLoadableArea(elements[i])) {\r\n var element = $(elements[i]),\r\n tag = _getElementTagName(elements[i]),\r\n attribute = element.attr(config.attribute),\r\n elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,\r\n customLoader = element.attr(config.loaderAttribute);\r\n\r\n // is not already handled \r\n if (!element.data(handledName) &&\r\n // and is visible or visibility doesn't matter\r\n (!config.visibleOnly || element.is(':visible')) && (\r\n // and image source or source set attribute is available\r\n (attribute || element.attr(srcsetAttribute)) && (\r\n // and is image tag where attribute is not equal source or source set\r\n (tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset))) ||\r\n // or is non image tag where attribute is not equal background\r\n (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage))\r\n ) ||\r\n // or custom loader is available\r\n customLoader))\r\n {\r\n // mark element always as handled as this point to prevent double handling\r\n loadTriggered = true;\r\n element.data(handledName, true);\r\n\r\n // load item\r\n _handleItem(element, tag, elementImageBase, customLoader);\r\n }\r\n }\r\n }\r\n\r\n // when something was loaded remove them from remaining items\r\n if (loadTriggered) {\r\n items = $(items).filter(function() {\r\n return !$(this).data(handledName);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * load the given element the lazy way\r\n * @access private\r\n * @param {object} element\r\n * @param {string} tag\r\n * @param {string} imageBase\r\n * @param {function} [customLoader]\r\n * @return void\r\n */\r\n function _handleItem(element, tag, imageBase, customLoader) {\r\n // increment count of items waiting for after load\r\n ++_awaitingAfterLoad;\r\n\r\n // extended error callback for correct 'onFinishedAll' handling\r\n var errorCallback = function() {\r\n _triggerCallback('onError', element);\r\n _reduceAwaiting();\r\n\r\n // prevent further callback calls\r\n errorCallback = $.noop;\r\n };\r\n\r\n // trigger function before loading image\r\n _triggerCallback('beforeLoad', element);\r\n\r\n // fetch all double used data here for better code minimization\r\n var srcAttribute = config.attribute,\r\n srcsetAttribute = config.srcsetAttribute,\r\n sizesAttribute = config.sizesAttribute,\r\n retinaAttribute = config.retinaAttribute,\r\n removeAttribute = config.removeAttribute,\r\n loadedName = config.loadedName,\r\n elementRetina = element.attr(retinaAttribute);\r\n\r\n // handle custom loader\r\n if (customLoader) {\r\n // on load callback\r\n var loadCallback = function() {\r\n // remove attribute from element\r\n if (removeAttribute) {\r\n element.removeAttr(config.loaderAttribute);\r\n }\r\n\r\n // mark element as loaded\r\n element.data(loadedName, true);\r\n\r\n // call after load event\r\n _triggerCallback(_afterLoad, element);\r\n\r\n // remove item from waiting queue and possibly trigger finished event\r\n // it's needed to be asynchronous to run after filter was in _lazyLoadItems\r\n setTimeout(_reduceAwaiting, 1);\r\n\r\n // prevent further callback calls\r\n loadCallback = $.noop;\r\n };\r\n\r\n // bind error event to trigger callback and reduce waiting amount\r\n element.off(_error).one(_error, errorCallback)\r\n\r\n // bind after load callback to element\r\n .one(_load, loadCallback);\r\n\r\n // trigger custom loader and handle response\r\n if (!_triggerCallback(customLoader, element, function(response) {\r\n if(response) {\r\n element.off(_load);\r\n loadCallback();\r\n }\r\n else {\r\n element.off(_error);\r\n errorCallback();\r\n }\r\n })) {\r\n element.trigger(_error);\r\n }\r\n }\r\n\r\n // handle images\r\n else {\r\n // create image object\r\n var imageObj = $(new Image());\r\n\r\n // bind error event to trigger callback and reduce waiting amount\r\n imageObj.one(_error, errorCallback)\r\n\r\n // bind after load callback to image\r\n .one(_load, function() {\r\n // remove element from view\r\n element.hide();\r\n\r\n // set image back to element\r\n // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'\r\n if (tag === _img) {\r\n element.attr(_sizes, imageObj.attr(_sizes))\r\n .attr(_srcset, imageObj.attr(_srcset))\r\n .attr(_src, imageObj.attr(_src));\r\n }\r\n else {\r\n element.css(_backgroundImage, \"url('\" + imageObj.attr(_src) + \"')\");\r\n }\r\n\r\n // bring it back with some effect!\r\n element[config.effect](config.effectTime);\r\n\r\n // remove attribute from element\r\n if (removeAttribute) {\r\n element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute);\r\n\r\n // only remove 'sizes' attribute, if it was a custom one\r\n if (sizesAttribute !== _sizes) {\r\n element.removeAttr(sizesAttribute);\r\n }\r\n }\r\n\r\n // mark element as loaded\r\n element.data(loadedName, true);\r\n\r\n // call after load event\r\n _triggerCallback(_afterLoad, element);\r\n\r\n // cleanup image object\r\n imageObj.remove();\r\n\r\n // remove item from waiting queue and possibly trigger finished event\r\n _reduceAwaiting();\r\n });\r\n\r\n // set sources\r\n // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'\r\n var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || '';\r\n imageObj.attr(_sizes, element.attr(sizesAttribute))\r\n .attr(_srcset, element.attr(srcsetAttribute))\r\n .attr(_src, imageSrc ? imageBase + imageSrc : null);\r\n\r\n // call after load even on cached image\r\n imageObj.complete && imageObj.trigger(_load); // jshint ignore : line\r\n }\r\n }\r\n\r\n /**\r\n * check if the given element is inside the current viewport or threshold\r\n * @access private\r\n * @param {object} element\r\n * @return {boolean}\r\n */\r\n function _isInLoadableArea(element) {\r\n var elementBound = element.getBoundingClientRect(),\r\n direction = config.scrollDirection,\r\n threshold = config.threshold,\r\n vertical = // check if element is in loadable area from top\r\n ((_getActualHeight() + threshold) > elementBound.top) &&\r\n // check if element is even in loadable are from bottom\r\n (-threshold < elementBound.bottom),\r\n horizontal = // check if element is in loadable area from left\r\n ((_getActualWidth() + threshold) > elementBound.left) &&\r\n // check if element is even in loadable area from right\r\n (-threshold < elementBound.right);\r\n\r\n if (direction === 'vertical') {\r\n return vertical;\r\n }\r\n else if (direction === 'horizontal') {\r\n return horizontal;\r\n }\r\n\r\n return vertical && horizontal;\r\n }\r\n\r\n /**\r\n * receive the current viewed width of the browser\r\n * @access private\r\n * @return {number}\r\n */\r\n function _getActualWidth() {\r\n return _actualWidth >= 0 ? _actualWidth : (_actualWidth = $(window).width());\r\n }\r\n\r\n /**\r\n * receive the current viewed height of the browser\r\n * @access private\r\n * @return {number}\r\n */\r\n function _getActualHeight() {\r\n return _actualHeight >= 0 ? _actualHeight : (_actualHeight = $(window).height());\r\n }\r\n\r\n /**\r\n * get lowercase tag name of an element\r\n * @access private\r\n * @param {object} element\r\n * @returns {string}\r\n */\r\n function _getElementTagName(element) {\r\n return element.tagName.toLowerCase();\r\n }\r\n\r\n /**\r\n * prepend image base to all srcset entries\r\n * @access private\r\n * @param {string} srcset\r\n * @param {string} imageBase\r\n * @returns {string}\r\n */\r\n function _getCorrectedSrcSet(srcset, imageBase) {\r\n if (imageBase) {\r\n // trim, remove unnecessary spaces and split entries\r\n var entries = srcset.split(',');\r\n srcset = '';\r\n\r\n for (var i = 0, l = entries.length; i < l; i++) {\r\n srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : '');\r\n }\r\n }\r\n\r\n return srcset;\r\n }\r\n\r\n /**\r\n * helper function to throttle down event triggering\r\n * @access private\r\n * @param {number} delay\r\n * @param {function} callback\r\n * @return {function}\r\n */\r\n function _throttle(delay, callback) {\r\n var timeout,\r\n lastExecute = 0;\r\n\r\n return function(event, ignoreThrottle) {\r\n var elapsed = +new Date() - lastExecute;\r\n\r\n function run() {\r\n lastExecute = +new Date();\r\n // noinspection JSUnresolvedFunction\r\n callback.call(instance, event);\r\n }\r\n\r\n timeout && clearTimeout(timeout); // jshint ignore : line\r\n\r\n if (elapsed > delay || !config.enableThrottle || ignoreThrottle) {\r\n run();\r\n }\r\n else {\r\n timeout = setTimeout(run, delay - elapsed);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * reduce count of awaiting elements to 'afterLoad' event and fire 'onFinishedAll' if reached zero\r\n * @access private\r\n * @return void\r\n */\r\n function _reduceAwaiting() {\r\n --_awaitingAfterLoad;\r\n\r\n // if no items were left trigger finished event\r\n if (!items.length && !_awaitingAfterLoad) {\r\n _triggerCallback('onFinishedAll');\r\n }\r\n }\r\n\r\n /**\r\n * single implementation to handle callbacks, pass element and set 'this' to current instance\r\n * @access private\r\n * @param {string|function} callback\r\n * @param {object} [element]\r\n * @param {*} [args]\r\n * @return {boolean}\r\n */\r\n function _triggerCallback(callback, element, args) {\r\n if ((callback = config[callback])) {\r\n // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads\r\n // below is shorthand of 'Array.prototype.slice.call(arguments, 1)'\r\n callback.apply(instance, [].slice.call(arguments, 1));\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // if event driven or window is already loaded don't wait for page loading\r\n if (config.bind === 'event' || windowLoaded) {\r\n _initialize();\r\n }\r\n\r\n // otherwise load initial items and start lazy after page load\r\n else {\r\n // noinspection JSUnresolvedVariable\r\n $(window).on(_load + '.' + namespace, _initialize);\r\n } \r\n }\r\n\r\n /**\r\n * lazy plugin class constructor\r\n * @constructor\r\n * @access private\r\n * @param {object} elements\r\n * @param {object} settings\r\n * @return {object|LazyPlugin}\r\n */\r\n function LazyPlugin(elements, settings) {\r\n /**\r\n * this lazy plugin instance\r\n * @access private\r\n * @type {object|LazyPlugin|LazyPlugin.prototype}\r\n */\r\n var _instance = this,\r\n\r\n /**\r\n * this lazy plugin instance configuration\r\n * @access private\r\n * @type {object}\r\n */\r\n _config = $.extend({}, _instance.config, settings),\r\n\r\n /**\r\n * instance generated event executed on container scroll or resize\r\n * packed in an object to be referenceable and short named because properties will not be minified\r\n * @access private\r\n * @type {object}\r\n */\r\n _events = {},\r\n\r\n /**\r\n * unique namespace for instance related events\r\n * @access private\r\n * @type {string}\r\n */\r\n _namespace = _config.name + '-' + (++lazyInstanceId);\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * wrapper to get or set an entry from plugin instance configuration\r\n * much smaller on minify as direct access\r\n * @access public\r\n * @type {function}\r\n * @param {string} entryName\r\n * @param {*} [value]\r\n * @return {LazyPlugin|*}\r\n */\r\n _instance.config = function(entryName, value) {\r\n if (value === undefined) {\r\n return _config[entryName];\r\n }\r\n\r\n _config[entryName] = value;\r\n return _instance;\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * add additional items to current instance\r\n * @access public\r\n * @param {Array|object|string} items\r\n * @return {LazyPlugin}\r\n */\r\n _instance.addItems = function(items) {\r\n _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line\r\n return _instance;\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * get all left items of this instance\r\n * @access public\r\n * @returns {object}\r\n */\r\n _instance.getItems = function() {\r\n return _events.g ? _events.g() : {};\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * force lazy to load all items in loadable area right now\r\n * by default without throttle\r\n * @access public\r\n * @type {function}\r\n * @param {boolean} [useThrottle]\r\n * @return {LazyPlugin}\r\n */\r\n _instance.update = function(useThrottle) {\r\n _events.e && _events.e({}, !useThrottle); // jshint ignore : line\r\n return _instance;\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * force element(s) to load directly, ignoring the viewport\r\n * @access public\r\n * @param {Array|object|string} items\r\n * @return {LazyPlugin}\r\n */\r\n _instance.force = function(items) {\r\n _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line\r\n return _instance;\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * force lazy to load all available items right now\r\n * this call ignores throttling\r\n * @access public\r\n * @type {function}\r\n * @return {LazyPlugin}\r\n */\r\n _instance.loadAll = function() {\r\n _events.e && _events.e({all: true}, true); // jshint ignore : line\r\n return _instance;\r\n };\r\n\r\n // noinspection JSUndefinedPropertyAssignment\r\n /**\r\n * destroy this plugin instance\r\n * @access public\r\n * @type {function}\r\n * @return undefined\r\n */\r\n _instance.destroy = function() {\r\n // unbind instance generated events\r\n // noinspection JSUnresolvedFunction, JSUnresolvedVariable\r\n $(_config.appendScroll).off('.' + _namespace, _events.e);\r\n // noinspection JSUnresolvedVariable\r\n $(window).off('.' + _namespace);\r\n\r\n // clear events\r\n _events = {};\r\n\r\n return undefined;\r\n };\r\n\r\n // start using lazy and return all elements to be chainable or instance for further use\r\n // noinspection JSUnresolvedVariable\r\n _executeLazy(_instance, _config, elements, _events, _namespace);\r\n return _config.chainable ? elements : _instance;\r\n }\r\n\r\n /**\r\n * settings and configuration data\r\n * @access public\r\n * @type {object|*}\r\n */\r\n LazyPlugin.prototype.config = {\r\n // general\r\n name : 'lazy',\r\n chainable : true,\r\n autoDestroy : true,\r\n bind : 'load',\r\n threshold : 500,\r\n visibleOnly : false,\r\n appendScroll : window,\r\n scrollDirection : 'both',\r\n imageBase : null,\r\n defaultImage : 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',\r\n placeholder : null,\r\n delay : -1,\r\n combined : false,\r\n\r\n // attributes\r\n attribute : 'data-src',\r\n srcsetAttribute : 'data-srcset',\r\n sizesAttribute : 'data-sizes',\r\n retinaAttribute : 'data-retina',\r\n loaderAttribute : 'data-loader',\r\n imageBaseAttribute : 'data-imagebase',\r\n removeAttribute : true,\r\n handledName : 'handled',\r\n loadedName : 'loaded',\r\n\r\n // effect\r\n effect : 'show',\r\n effectTime : 0,\r\n\r\n // throttle\r\n enableThrottle : true,\r\n throttle : 250,\r\n\r\n // callbacks\r\n beforeLoad : undefined,\r\n afterLoad : undefined,\r\n onError : undefined,\r\n onFinishedAll : undefined\r\n };\r\n\r\n // register window load event globally to prevent not loading elements\r\n // since jQuery 3.X ready state is fully async and may be executed after 'load' \r\n $(window).on('load', function() {\r\n windowLoaded = true;\r\n });\r\n})(window);","/* eslint-disable */\nif (!jQuery) {\n console.log('jquery.popupoverlay - jQuery not defined.');\n}\nrequire('./jquery.popupoverlay');","/*!\r\n * jQuery Popup Overlay\r\n *\r\n * @requires jQuery v1.7.1+\r\n * @link https://vast-engineering.github.com/jquery-popup-overlay/\r\n */\r\n;(function ($) { /* eslint-disable-line */\r\n\r\n var $window = $(window);\r\n var options = {};\r\n var zindexvalues = [];\r\n var lastclicked = [];\r\n var scrollbarwidth;\r\n var bodymarginright = null;\r\n var opensuffix = '_open';\r\n var closesuffix = '_close';\r\n var visiblePopupsArray = [];\r\n var transitionsupport = null;\r\n var opentimer;\r\n var iOS = /(iPad|iPhone|iPod)/.test(navigator.userAgent);\r\n var focusableElementsString = \"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]\";\r\n\r\n var methods = {\r\n\r\n _init: function (el) {\r\n var $el = $(el);\r\n var options = $el.data('popupoptions');\r\n lastclicked[el.id] = false;\r\n zindexvalues[el.id] = 0;\r\n\r\n if (!$el.data('popup-initialized')) {\r\n $el.attr('data-popup-initialized', 'true');\r\n methods._initonce(el);\r\n }\r\n\r\n if (options.autoopen) {\r\n setTimeout(function() {\r\n methods.show(el, 0);\r\n }, 0);\r\n }\r\n },\r\n\r\n _initonce: function (el) {\r\n var $el = $(el);\r\n var $body = $('body');\r\n var $wrapper;\r\n var options = $el.data('popupoptions');\r\n\r\n bodymarginright = parseInt($body.css('margin-right'), 10);\r\n transitionsupport = document.body.style.webkitTransition !== undefined ||\r\n document.body.style.MozTransition !== undefined ||\r\n document.body.style.msTransition !== undefined ||\r\n document.body.style.OTransition !== undefined ||\r\n document.body.style.transition !== undefined;\r\n\r\n if (options.scrolllock) {\r\n // Calculate the browser's scrollbar width dynamically\r\n var parent;\r\n var child;\r\n if (typeof scrollbarwidth === 'undefined') {\r\n parent = $('
').appendTo('body');\r\n child = parent.children();\r\n scrollbarwidth = child.innerWidth() - child.height(99).innerWidth();\r\n parent.remove();\r\n }\r\n }\r\n\r\n if (!$el.attr('id')) {\r\n $el.attr('id', 'j-popup-' + parseInt((Math.random() * 100000000), 10));\r\n }\r\n\r\n $el.addClass('popup_content');\r\n\r\n if ((options.background) && (!$('#' + el.id + '_background').length)) {\r\n\r\n $body.append('
');\r\n\r\n var $background = $('#' + el.id + '_background');\r\n\r\n $background.css({\r\n opacity: 0,\r\n visibility: 'hidden',\r\n backgroundColor: options.color,\r\n position: 'fixed',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n });\r\n\r\n if (options.setzindex && !options.autozindex) {\r\n $background.css('z-index', '100000');\r\n }\r\n\r\n if (options.transition) {\r\n $background.css('transition', options.transition);\r\n }\r\n }\r\n\r\n $body.append(el);\r\n\r\n $el.wrap('
');\r\n\r\n $wrapper = $('#' + el.id + '_wrapper');\r\n\r\n $wrapper.css({\r\n opacity: 0,\r\n visibility: 'hidden',\r\n position: 'absolute'\r\n });\r\n\r\n // Make div clickable in iOS\r\n if (iOS) {\r\n $background = $('#' + el.id + '_background');\r\n $background.css('cursor', 'pointer');\r\n $(options.pagecontainer).css('cursor', 'pointer');\r\n }\r\n\r\n if (options.type == 'overlay' && !options.absolute && options.background) {\r\n $wrapper.css('overflow','auto');\r\n $wrapper[0].style.WebkitOverflowScrolling = 'touch'; // for smooth scrolling in overflow:auto divs in iOS\r\n }\r\n\r\n $el.css({\r\n opacity: 0,\r\n visibility: 'hidden',\r\n 'pointer-events': 'auto', // reset pointer events back to default for a child element\r\n display: 'inline-block'\r\n });\r\n\r\n if (options.setzindex && !options.autozindex) {\r\n $wrapper.css('z-index', '100001');\r\n }\r\n\r\n if (!options.outline) {\r\n $el.css('outline', 'none');\r\n }\r\n\r\n if (options.transition) {\r\n $el.css('transition', options.transition);\r\n $wrapper.css('transition', options.transition);\r\n }\r\n\r\n // Hide popup content from screen readers initially\r\n $el.attr('aria-hidden', true);\r\n\r\n if (options.type == 'overlay') {\r\n $el.css({\r\n textAlign: 'left',\r\n position: 'relative',\r\n verticalAlign: 'middle'\r\n });\r\n\r\n $wrapper.css({\r\n position: 'fixed',\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n textAlign: 'center'\r\n });\r\n\r\n // CSS vertical align helper\r\n $wrapper.append('
');\r\n\r\n $('.popup_align').css({\r\n display: 'inline-block',\r\n verticalAlign: 'middle',\r\n height: '100%'\r\n });\r\n }\r\n\r\n // Add WAI ARIA role to announce dialog to screen readers\r\n $el.attr('role', 'dialog');\r\n\r\n var openelement = (options.openelement) ? options.openelement : ('.' + el.id + opensuffix);\r\n\r\n $(openelement).each(function (i, item) {\r\n $(item).attr('data-popup-ordinal', i);\r\n\r\n if (!item.id) {\r\n $(item).attr('id', 'open_' + parseInt((Math.random() * 100000000), 10));\r\n }\r\n });\r\n\r\n // Set aria-labelledby (if aria-label or aria-labelledby is not set in html)\r\n if (!($el.attr('aria-labelledby') || $el.attr('aria-label'))) {\r\n $el.attr('aria-labelledby', $(openelement).attr('id'));\r\n }\r\n\r\n // Show and hide tooltips on hover\r\n if(options.action == 'hover'){\r\n options.keepfocus = false;\r\n\r\n // Handler: mouseenter, focusin\r\n $(openelement).on('mouseenter', function () {\r\n methods.show(el, $(this).data('popup-ordinal'));\r\n });\r\n\r\n // Handler: mouseleave, focusout\r\n $(openelement).on('mouseleave', function () {\r\n methods.hide(el);\r\n });\r\n\r\n } else {\r\n\r\n // Handler: Show popup when clicked on `open` element\r\n $(document).on('click.jqp', openelement, function (event) {\r\n event.preventDefault();\r\n\r\n var ord = $(this).data('popup-ordinal');\r\n setTimeout(function() { // setTimeout is to allow `close` method to finish (for issues with multiple tooltips)\r\n methods.show(el, ord);\r\n }, 0);\r\n });\r\n }\r\n\r\n if (options.closebutton) {\r\n methods.addclosebutton(el);\r\n }\r\n\r\n if (options.detach) {\r\n $el.detach();\r\n } else {\r\n $el.hide();\r\n }\r\n },\r\n\r\n /**\r\n * Show method\r\n *\r\n * @param {object} el - popup instance DOM node\r\n * @param {number} ordinal - order number of an `open` element\r\n */\r\n show: function (el, ordinal) {\r\n var $el = $(el);\r\n\r\n if ($el.data('popup-visible')) return;\r\n\r\n // Initialize if not initialized. Required for: $('#popup').popup('show')\r\n if (!$el.data('popup-initialized')) {\r\n methods._init(el);\r\n }\r\n $el.attr('data-popup-initialized', 'true');\r\n\r\n var $body = $('body');\r\n var options = $el.data('popupoptions');\r\n var $wrapper = $('#' + el.id + '_wrapper');\r\n var $background = $('#' + el.id + '_background');\r\n\r\n // `beforeopen` callback event\r\n callback(el, ordinal, options.beforeopen);\r\n\r\n // Remember last clicked place\r\n lastclicked[el.id] = ordinal;\r\n\r\n // Add popup id to visiblePopupsArray\r\n setTimeout(function() {\r\n visiblePopupsArray.push(el.id);\r\n }, 0);\r\n\r\n // Calculating maximum z-index\r\n if (options.autozindex) {\r\n\r\n var elements = document.getElementsByTagName('*');\r\n var len = elements.length;\r\n var maxzindex = 0;\r\n\r\n for(var i=0; i= 0) {\r\n $('#' + el.id + '_background').css({\r\n zIndex: (zindexvalues[el.id] + 1)\r\n });\r\n }\r\n }\r\n\r\n // Add z-index to the wrapper\r\n if (zindexvalues[el.id] >= 0) {\r\n $wrapper.css({\r\n zIndex: (zindexvalues[el.id] + 2)\r\n });\r\n }\r\n }\r\n\r\n if (options.detach) {\r\n $wrapper.prepend(el);\r\n $el.show();\r\n } else {\r\n $el.show();\r\n }\r\n\r\n opentimer = setTimeout(function() {\r\n $wrapper.css({\r\n visibility: 'visible',\r\n opacity: 1\r\n });\r\n\r\n $('html').addClass('popup_visible').addClass('popup_visible_' + el.id);\r\n $wrapper.addClass('popup_wrapper_visible');\r\n }, 20); // 20ms required for opening animation to occur in FF\r\n\r\n // Disable background layer scrolling when popup is opened\r\n if (options.scrolllock) {\r\n $body.css('overflow', 'hidden');\r\n if ($body.height() > $window.height()) {\r\n $body.css('margin-right', bodymarginright + scrollbarwidth);\r\n }\r\n }\r\n\r\n $el.css({\r\n 'visibility': 'visible',\r\n 'opacity': 1\r\n });\r\n\r\n // Show background\r\n if (options.background) {\r\n $background.css({\r\n 'visibility': 'visible',\r\n 'opacity': options.opacity\r\n });\r\n\r\n // Fix IE8 issue with background not appearing\r\n setTimeout(function() {\r\n $background.css({\r\n 'opacity': options.opacity\r\n });\r\n }, 0);\r\n }\r\n\r\n $el.data('popup-visible', true);\r\n\r\n // Position popup\r\n methods.reposition(el, ordinal);\r\n\r\n // Remember which element had focus before opening a popup\r\n $el.data('focusedelementbeforepopup', document.activeElement);\r\n\r\n // Make holder div programatically focusable with tabindex:-1 (tabindex:0 is keyboard focusable)\r\n $el.attr('tabindex', -1);\r\n\r\n // Focus the popup or user specified element.\r\n // Initial timeout of 50ms is set to give some time to popup to show after clicking on\r\n // `open` element, and after animation is complete to prevent background scrolling.\r\n setTimeout(function() {\r\n if (options.focuselement === 'closebutton') { // e.g. focuselement:'closebutton'\r\n $('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();\r\n } else if (options.focuselement) { // e.g. focuselement:'#my-close-button'\r\n $(options.focuselement).focus();\r\n } else if (options.focuselement === true || options.keepfocus) { // e.g. focuselement:true OR keepfocus:true\r\n $el.focus();\r\n }\r\n }, options.focusdelay);\r\n\r\n // Hide main content from screen readers\r\n if (options.keepfocus) {\r\n $(options.pagecontainer).attr('aria-hidden', true);\r\n }\r\n\r\n // Reveal popup content to screen readers\r\n $el.attr('aria-hidden', false);\r\n\r\n callback(el, ordinal, options.onopen);\r\n\r\n if (transitionsupport) {\r\n $wrapper.one('transitionend', function() {\r\n callback(el, ordinal, options.opentransitionend);\r\n });\r\n } else {\r\n callback(el, ordinal, options.opentransitionend);\r\n }\r\n\r\n // Handler: Reposition tooltip when window is resized\r\n if (options.type == 'tooltip') {\r\n $(window).on('resize.' + el.id, function () {\r\n methods.reposition(el, ordinal);\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Hide method\r\n *\r\n * @param object el - popup instance DOM node\r\n * @param boolean outerClick - click on the outer content below popup\r\n */\r\n hide: function (el, outerClick) {\r\n // Get index of popup ID inside of visiblePopupsArray\r\n var popupIdIndex = $.inArray(el.id, visiblePopupsArray);\r\n\r\n // If popup is not opened, ignore the rest of the function\r\n if (popupIdIndex === -1) {\r\n return;\r\n }\r\n\r\n if(opentimer) clearTimeout(opentimer);\r\n\r\n var $body = $('body');\r\n var $el = $(el);\r\n var options = $el.data('popupoptions');\r\n var $wrapper = $('#' + el.id + '_wrapper');\r\n var $background = $('#' + el.id + '_background');\r\n\r\n $el.data('popup-visible', false);\r\n\r\n if (visiblePopupsArray.length === 1) {\r\n $('html').removeClass('popup_visible').removeClass('popup_visible_' + el.id);\r\n } else {\r\n if($('html').hasClass('popup_visible_' + el.id)) {\r\n $('html').removeClass('popup_visible_' + el.id);\r\n }\r\n }\r\n\r\n // Remove popup from the visiblePopupsArray\r\n visiblePopupsArray.splice(popupIdIndex, 1);\r\n\r\n if($wrapper.hasClass('popup_wrapper_visible')) {\r\n $wrapper.removeClass('popup_wrapper_visible');\r\n }\r\n\r\n // Focus back on saved element\r\n if (options.keepfocus && !outerClick) {\r\n setTimeout(function() {\r\n if ($($el.data('focusedelementbeforepopup')).is(':visible')) {\r\n $el.data('focusedelementbeforepopup').focus();\r\n }\r\n }, 0);\r\n }\r\n\r\n // Hide popup\r\n $wrapper.css({\r\n 'visibility': 'hidden',\r\n 'opacity': 0\r\n });\r\n $el.css({\r\n 'visibility': 'hidden',\r\n 'opacity': 0\r\n });\r\n\r\n // Hide background\r\n if (options.background) {\r\n $background.css({\r\n 'visibility': 'hidden',\r\n 'opacity': 0\r\n });\r\n }\r\n\r\n // Reveal main content to screen readers\r\n $(options.pagecontainer).attr('aria-hidden', false);\r\n\r\n // Hide popup content from screen readers\r\n $el.attr('aria-hidden', true);\r\n\r\n // `onclose` callback event\r\n callback(el, lastclicked[el.id], options.onclose);\r\n\r\n if (transitionsupport && $el.css('transition-duration') !== '0s') {\r\n $el.one('transitionend', function() {\r\n\r\n if (!($el.data('popup-visible'))) {\r\n if (options.detach) {\r\n $el.detach();\r\n } else {\r\n $el.hide();\r\n }\r\n }\r\n\r\n // Re-enable scrolling of background layer, if needed\r\n if (options.scrolllock) {\r\n setTimeout(function() {\r\n if ($.grep(visiblePopupsArray, function(eid) { return $(\"#\"+eid).data('popupoptions').scrolllock }).length) {\r\n // Some \"scolllock=true\" popup is currently visible, leave scrolling disabled\r\n return;\r\n }\r\n $body.css({\r\n overflow: 'visible',\r\n 'margin-right': bodymarginright\r\n });\r\n }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto\r\n }\r\n\r\n callback(el, lastclicked[el.id], options.closetransitionend);\r\n });\r\n } else {\r\n if (options.detach) {\r\n $el.detach();\r\n } else {\r\n $el.hide();\r\n }\r\n\r\n // Re-enable scrolling of background layer, if needed\r\n if (options.scrolllock) {\r\n setTimeout(function() {\r\n if ($.grep(visiblePopupsArray, function(eid) { return $(\"#\"+eid).data('popupoptions').scrolllock }).length) {\r\n // Some \"scrolllock=true\" popup is currently visible, leave scrolling disabled\r\n return;\r\n }\r\n $body.css({\r\n overflow: 'visible',\r\n 'margin-right': bodymarginright\r\n });\r\n }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto\r\n }\r\n\r\n callback(el, lastclicked[el.id], options.closetransitionend);\r\n }\r\n\r\n if (options.type == 'tooltip') {\r\n $(window).off('resize.' + el.id);\r\n }\r\n },\r\n\r\n /**\r\n * Toggle method\r\n *\r\n * @param {object} el - popup instance DOM node\r\n * @param {number} ordinal - order number of an `open` element\r\n */\r\n toggle: function (el, ordinal) {\r\n if ($(el).data('popup-visible')) {\r\n methods.hide(el);\r\n } else {\r\n setTimeout(function() {\r\n methods.show(el, ordinal);\r\n }, 0);\r\n }\r\n },\r\n\r\n /**\r\n * Reposition method\r\n *\r\n * @param {object} el - popup instance DOM node\r\n * @param {number} ordinal - order number of an `open` element\r\n */\r\n reposition: function (el, ordinal) {\r\n var $el = $(el);\r\n var options = $el.data('popupoptions');\r\n var $wrapper = $('#' + el.id + '_wrapper');\r\n\r\n ordinal = ordinal || 0;\r\n\r\n // Tooltip type\r\n if (options.type == 'tooltip') {\r\n // TODO: this static assignments should probably be moved to init method\r\n $wrapper.css({\r\n 'position': 'absolute'\r\n });\r\n\r\n var $tooltipanchor;\r\n if (options.tooltipanchor) {\r\n $tooltipanchor = $(options.tooltipanchor);\r\n } else if (options.openelement) {\r\n $tooltipanchor = $(options.openelement).filter('[data-popup-ordinal=\"' + ordinal + '\"]');\r\n } else {\r\n $tooltipanchor = $('.' + el.id + opensuffix + '[data-popup-ordinal=\"' + ordinal + '\"]');\r\n }\r\n\r\n var linkOffset = $tooltipanchor.offset() || { left: 0, top: 0 };\r\n\r\n // Horizontal position for tooltip\r\n if (options.horizontal == 'right') {\r\n $wrapper.css('left', linkOffset.left + $tooltipanchor.outerWidth() + options.offsetleft);\r\n } else if (options.horizontal == 'leftedge') {\r\n $wrapper.css('left', linkOffset.left + options.offsetleft);\r\n } else if (options.horizontal == 'left') {\r\n $wrapper.css('right', $window.width() - linkOffset.left - options.offsetleft);\r\n } else if (options.horizontal == 'rightedge') {\r\n $wrapper.css('right', $window.width() - linkOffset.left - $tooltipanchor.outerWidth() - options.offsetleft);\r\n } else {\r\n $wrapper.css('left', linkOffset.left + ($tooltipanchor.outerWidth() / 2) - ($el.outerWidth() / 2) - parseFloat($el.css('marginLeft')) + options.offsetleft);\r\n }\r\n\r\n // Vertical position for tooltip\r\n if (options.vertical == 'bottom') {\r\n $wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() + options.offsettop);\r\n } else if (options.vertical == 'bottomedge') {\r\n $wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() - $el.outerHeight() + options.offsettop);\r\n } else if (options.vertical == 'top') {\r\n $wrapper.css('bottom', $window.height() - linkOffset.top - options.offsettop);\r\n } else if (options.vertical == 'topedge') {\r\n $wrapper.css('bottom', $window.height() - linkOffset.top - $el.outerHeight() - options.offsettop);\r\n } else {\r\n $wrapper.css('top', linkOffset.top + ($tooltipanchor.outerHeight() / 2) - ($el.outerHeight() / 2) - parseFloat($el.css('marginTop')) + options.offsettop);\r\n }\r\n\r\n // Overlay type\r\n } else if (options.type == 'overlay') {\r\n // TODO all static assignments in this block should probably be moved to init method\r\n\r\n // Horizontal position for overlay\r\n if (options.horizontal) {\r\n $wrapper.css('text-align', options.horizontal);\r\n } else {\r\n $wrapper.css('text-align', 'center');\r\n }\r\n\r\n // Vertical position for overlay\r\n if (options.vertical) {\r\n $el.css('vertical-align', options.vertical);\r\n } else {\r\n $el.css('vertical-align', 'middle');\r\n }\r\n\r\n if (options.absolute) {\r\n $wrapper.css({\r\n position: 'absolute',\r\n top: window.scrollY\r\n });\r\n }\r\n\r\n if (!options.background) {\r\n $wrapper.css({ 'pointer-events': 'none' });\r\n\r\n // If popup doesnt fit the viewport, and if background doesn't exist, add scrollbar to popup div instead of wrapper\r\n if (!options.absolute && !isInViewport(el)) {\r\n $el.css('overflow', 'auto');\r\n $el[0].style.WebkitOverflowScrolling = 'touch'; // for smooth scrolling in overflow:auto divs in iOS\r\n $el.css('max-height', 'calc(100% - ' + $el.css('margin-top') + ' - ' + $el.css('margin-bottom') + ')');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Add-close-button method\r\n *\r\n * @param {object} el - popup instance DOM node\r\n */\r\n addclosebutton: function (el) {\r\n var genericCloseButton;\r\n\r\n if ($(el).data('popupoptions').closebuttonmarkup) {\r\n genericCloseButton = $(options.closebuttonmarkup).addClass(el.id + '_close');\r\n } else {\r\n genericCloseButton = '';\r\n }\r\n\r\n if ($(el).data('popup-initialized')){\r\n $(el).append(genericCloseButton);\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n /**\r\n * Callback event calls\r\n *\r\n * @param {object} el - popup instance DOM node\r\n * @param {number} ordinal - order number of an `open` element\r\n * @param {function} func - callback function\r\n */\r\n var callback = function (el, ordinal, func) {\r\n var options = $(el).data('popupoptions');\r\n var openelement;\r\n var elementclicked;\r\n if (typeof options === 'undefined') return;\r\n openelement = options.openelement ? options.openelement : ('.' + el.id + opensuffix);\r\n elementclicked = $(openelement + '[data-popup-ordinal=\"' + ordinal + '\"]');\r\n if (typeof func == 'function') {\r\n func.call($(el), el, elementclicked);\r\n }\r\n };\r\n\r\n /**\r\n * Check if element is fully in viewport\r\n *\r\n * @param {object} el - popup instance DOM node\r\n */\r\n var isInViewport = function (el) {\r\n var bounding = el.getBoundingClientRect();\r\n return (\r\n bounding.top >= 0 &&\r\n bounding.left >= 0 &&\r\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n };\r\n\r\n // Hide popup if ESC key is pressed\r\n $(document).on('keydown', function (event) {\r\n if(visiblePopupsArray.length) {\r\n var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];\r\n var el = document.getElementById(elementId);\r\n\r\n if ($(el).data('popupoptions').escape && event.keyCode == 27) {\r\n methods.hide(el);\r\n }\r\n }\r\n });\r\n\r\n var mousedownTarget;\r\n\r\n $(document).on('mousedown', function (event) {\r\n mousedownTarget = event.target;\r\n });\r\n\r\n // Hide popup on click\r\n $(document).on('click', function (event) {\r\n if(visiblePopupsArray.length) {\r\n var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];\r\n var el = document.getElementById(elementId);\r\n var closeButton = ($(el).data('popupoptions').closeelement) ? $(el).data('popupoptions').closeelement : ('.' + el.id + closesuffix);\r\n\r\n // If Close button clicked\r\n if ($(event.target).closest(closeButton).length) {\r\n event.preventDefault();\r\n methods.hide(el);\r\n }\r\n\r\n // If clicked outside of popup\r\n if ($(el).data('popupoptions')\r\n && $(el).data('popupoptions').blur\r\n && !$(event.target).closest($(el).data('popupoptions').blurignore).length\r\n && !$(event.target).closest('#' + elementId).length\r\n && !$(mousedownTarget).closest('#' + elementId).length\r\n && event.which !== 2\r\n && $(event.target).is(':visible')) {\r\n\r\n if ($(el).data('popupoptions').background) {\r\n // If clicked on popup cover\r\n methods.hide(el);\r\n\r\n // Older iOS/Safari will trigger a click on the elements below the cover,\r\n // when tapping on the cover, so the default action needs to be prevented.\r\n event.preventDefault();\r\n\r\n } else {\r\n // If clicked on outer content\r\n methods.hide(el, true);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Keep keyboard focus inside of popup\r\n $(document).on('keydown', function(event) {\r\n if(visiblePopupsArray.length && event.which == 9) {\r\n // If tab or shift-tab pressed\r\n var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];\r\n var el = document.getElementById(elementId);\r\n var options = $(el).data('popupoptions');\r\n\r\n // If the last opened popup doesn't have `keepfocus` option, ignore the rest and don't lock the focus inside of popup.\r\n if (!options.keepfocus) {\r\n return;\r\n }\r\n\r\n // Get list of all children elements in given object\r\n var popupItems = $(el).find('*');\r\n\r\n // Get list of focusable items\r\n var focusableItems = popupItems.filter(focusableElementsString).filter(':visible');\r\n\r\n // Get currently focused item\r\n var focusedItem = $(':focus');\r\n\r\n // Get the number of focusable items\r\n var numberOfFocusableItems = focusableItems.length;\r\n\r\n // Get the index of the currently focused item\r\n var focusedItemIndex = focusableItems.index(focusedItem);\r\n\r\n // If popup doesn't contain focusable elements, focus popup itself\r\n if (numberOfFocusableItems === 0) {\r\n $(el).focus();\r\n event.preventDefault();\r\n } else {\r\n if (event.shiftKey) {\r\n // Back tab\r\n // If focused on first item and user preses back-tab, go to the last focusable item\r\n if (focusedItemIndex === 0) {\r\n focusableItems.get(numberOfFocusableItems - 1).focus();\r\n event.preventDefault();\r\n }\r\n\r\n } else {\r\n // Forward tab\r\n // If focused on the last item and user preses tab, go to the first focusable item\r\n if (focusedItemIndex == numberOfFocusableItems - 1) {\r\n focusableItems.get(0).focus();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Plugin API\r\n */\r\n $.fn.popup = function (customoptions) {\r\n return this.each(function () {\r\n\r\n var $el = $(this);\r\n var newDefaults = $.extend(true, {}, $.fn.popup.defaults);\r\n\r\n // Set defaults for tooltips dynamically instead of implicitly, so they can be overriden with custom options.\r\n if (customoptions && customoptions.type === 'tooltip') {\r\n newDefaults.background = false;\r\n }\r\n\r\n if (typeof customoptions === 'object') { // e.g. $('#popup').popup({'color':'blue'})\r\n var opt = $.extend({}, newDefaults, $el.data('popupoptions'), customoptions);\r\n $el.data('popupoptions', opt);\r\n options = $el.data('popupoptions');\r\n\r\n methods._init(this);\r\n\r\n } else if (typeof customoptions === 'string') { // e.g. $('#popup').popup('hide')\r\n if (!($el.data('popupoptions'))) {\r\n $el.data('popupoptions', newDefaults);\r\n options = $el.data('popupoptions');\r\n }\r\n\r\n methods[customoptions].call(this, this);\r\n\r\n } else { // e.g. $('#popup').popup()\r\n if (!($el.data('popupoptions'))) {\r\n $el.data('popupoptions', newDefaults);\r\n options = $el.data('popupoptions');\r\n }\r\n\r\n methods._init(this);\r\n\r\n }\r\n\r\n });\r\n };\r\n\r\n // destroy all popups\r\n $.fn.popup.destroyall = function () {\r\n // TODO: create tests to check if we can use `hide` method (perhaps we'll need to remove transitions)\r\n // or we need another way of removing the data when destroying.\r\n for(var i=0; i < visiblePopupsArray.length; i++) {\r\n $('#' + visiblePopupsArray[i]).popup('hide');\r\n }\r\n $('.popup_wrapper').remove();\r\n $('.popup_background').remove();\r\n // visiblePopupsArray = []; // TODO: check if we need this for SPA and popups with fadeOut animation and scrolllock\r\n $(document).off('click.jqp');\r\n };\r\n\r\n $.fn.popup.defaults = {\r\n type: 'overlay',\r\n absolute: false,\r\n autoopen: false,\r\n background: true,\r\n color: 'black',\r\n opacity: '0.5',\r\n horizontal: 'center',\r\n vertical: 'middle',\r\n offsettop: 0,\r\n offsetleft: 0,\r\n escape: true,\r\n blur: true,\r\n blurignore: null,\r\n setzindex: true,\r\n autozindex: false,\r\n scrolllock: false,\r\n closebutton: false,\r\n closebuttonmarkup: null,\r\n keepfocus: true,\r\n focuselement: null,\r\n focusdelay: 50,\r\n outline: false,\r\n pagecontainer: null,\r\n detach: false,\r\n openelement: null,\r\n closeelement: null,\r\n transition: null,\r\n tooltipanchor: null,\r\n beforeopen: null,\r\n onclose: null,\r\n onopen: null,\r\n opentransitionend: null,\r\n closetransitionend: null\r\n };\r\n\r\n})(jQuery); /* eslint-disable-line */\r\n","/*!\n * jQuery UI Focusable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :focusable Selector\n//>>group: Core\n//>>description: Selects elements which can be focused.\n//>>docs: http://api.jqueryui.com/focusable-selector/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n// Selectors\n$.ui.focusable = function( element, hasTabindex ) {\n\tvar map, mapName, img, focusableIfVisible, fieldset,\n\t\tnodeName = element.nodeName.toLowerCase();\n\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" );\n\t\treturn img.length > 0 && img.is( \":visible\" );\n\t}\n\n\tif ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {\n\t\tfocusableIfVisible = !element.disabled;\n\n\t\tif ( focusableIfVisible ) {\n\n\t\t\t// Form controls within a disabled fieldset are disabled.\n\t\t\t// However, controls within the fieldset's legend do not get disabled.\n\t\t\t// Since controls generally aren't placed inside legends, we skip\n\t\t\t// this portion of the check.\n\t\t\tfieldset = $( element ).closest( \"fieldset\" )[ 0 ];\n\t\t\tif ( fieldset ) {\n\t\t\t\tfocusableIfVisible = !fieldset.disabled;\n\t\t\t}\n\t\t}\n\t} else if ( \"a\" === nodeName ) {\n\t\tfocusableIfVisible = element.href || hasTabindex;\n\t} else {\n\t\tfocusableIfVisible = hasTabindex;\n\t}\n\n\treturn focusableIfVisible && $( element ).is( \":visible\" ) && visible( $( element ) );\n};\n\n// Support: IE 8 only\n// IE 8 doesn't resolve inherit to visible/hidden for computed values\nfunction visible( element ) {\n\tvar visibility = element.css( \"visibility\" );\n\twhile ( visibility === \"inherit\" ) {\n\t\telement = element.parent();\n\t\tvisibility = element.css( \"visibility\" );\n\t}\n\treturn visibility === \"visible\";\n}\n\n$.extend( $.expr.pseudos, {\n\tfocusable: function( element ) {\n\t\treturn $.ui.focusable( element, $.attr( element, \"tabindex\" ) != null );\n\t}\n} );\n\nreturn $.ui.focusable;\n\n} );\n","/*!\n * jQuery UI Tabbable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :tabbable Selector\n//>>group: Core\n//>>description: Selects elements which can be tabbed to.\n//>>docs: http://api.jqueryui.com/tabbable-selector/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\", \"./focusable\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.extend( $.expr.pseudos, {\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\thasTabindex = tabIndex != null;\n\t\treturn ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );\n\t}\n} );\n\n} );\n","/*!\n * jQuery UI Unique ID 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: uniqueId\n//>>group: Core\n//>>description: Functions to generate and remove uniqueId's\n//>>docs: http://api.jqueryui.com/uniqueId/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.fn.extend( {\n\tuniqueId: ( function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each( function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each( function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n} );\n","( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n$.ui = $.ui || {};\n\nreturn $.ui.version = \"1.13.2\";\n\n} );\n","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.8.1\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n/* global window, document, define, jQuery, setInterval, clearInterval */\n;(function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n\n}(function($) {\n 'use strict';\n var Slick = window.Slick || {};\n\n Slick = (function() {\n\n var instanceUid = 0;\n\n function Slick(element, settings) {\n\n var _ = this, dataSettings;\n\n _.defaults = {\n accessibility: true,\n adaptiveHeight: false,\n appendArrows: $(element),\n appendDots: $(element),\n arrows: true,\n asNavFor: null,\n prevArrow: '',\n nextArrow: '',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('
 / 
',\n spinnerTpl: '
',\n errorTpl: '

The requested content cannot be loaded.
Please try again later.

',\n closeTpl: '',\n parentEl: \"body\",\n touch: !0,\n keyboard: !0,\n focus: !0,\n closeClickOutside: !0,\n beforeLoad: n.noop,\n afterLoad: n.noop,\n beforeMove: n.noop,\n afterMove: n.noop,\n onComplete: n.noop,\n onInit: n.noop,\n beforeClose: n.noop,\n afterClose: n.noop,\n onActivate: n.noop,\n onDeactivate: n.noop\n },\n a = n(t),\n r = n(e),\n c = 0,\n l = function l(t) {\n return t && t.hasOwnProperty && t instanceof n;\n },\n u = function () {\n return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || function (e) {\n t.setTimeout(e, 1e3 / 60);\n };\n }(),\n d = function d(o) {\n var s;\n return \"function\" == typeof n && o instanceof n && (o = o[0]), s = o.getBoundingClientRect(), s.bottom > 0 && s.right > 0 && s.left < (t.innerWidth || e.documentElement.clientWidth) && s.top < (t.innerHeight || e.documentElement.clientHeight);\n },\n p = function p(t, o, s) {\n var a = this;\n a.opts = n.extend(!0, {\n index: s\n }, i, o || {}), a.id = a.opts.id || ++c, a.group = [], a.currIndex = parseInt(a.opts.index, 10) || 0, a.prevIndex = null, a.prevPos = null, a.currPos = 0, a.firstRun = null, a.createGroup(t), a.group.length && (a.$lastFocus = n(e.activeElement), a.elems = {}, a.slides = {}, a.init(t));\n };\n n.extend(p.prototype, {\n init: function init() {\n var t,\n e,\n o = this;\n o.scrollTop = a.scrollTop(), o.scrollLeft = a.scrollLeft(), n.fancybox.isTouch || n(\"html\").hasClass(\"fancybox-enabled\") || (t = n(\"body\").width(), n(\"html\").addClass(\"fancybox-enabled\"), t = n(\"body\").width() - t, t > 1 && n('