;(function (window, document) { 'use strict'; var addEvent = (function () { if (document.addEventListener) { return function addStandardEventListener(el, eventName, fn) { return el.addEventListener(eventName, fn, false); }; } else { return function addIEEventListener(el, eventName, fn) { return el.attachEvent('on' + eventName, fn); }; } })(); var defaultWidths = [96, 130, 165, 200, 235, 270, 304, 340, 375, 410, 445, 485, 520, 555, 590, 625, 660, 695, 736]; var getKeys = typeof Object.keys === 'function' ? Object.keys : function (object) { var keys = [], key; for (key in object) { keys.push(key); } return keys; }; var applyEach = function (collection, callbackEach) { var i = 0, length = collection.length, new_collection = []; for (; i < length; i++) { new_collection[i] = callbackEach(collection[i], i); } return new_collection; }; var returnFn = function (value) { return value; }; var noop = function () {}; var trueFn = function () { return true; }; var debounce = function (fn, wait) { var timeout; return function () { var context = this, args = arguments; var later = function () { timeout = null; fn.apply(context, args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; }; /* Construct a new Imager instance, passing an optional configuration object. Example usage: { // Available widths for your images availableWidths: [Number], // Selector to be used to locate your div placeholders selector: '', // Class name to give your resizable images className: '', // If set to true, Imager will update the src attribute of the relevant images onResize: Boolean, // Toggle the lazy load functionality on or off lazyload: Boolean, // Used alongside the lazyload feature (helps performance by setting a higher delay) scrollDelay: Number } @param {object} configuration settings @return {object} instance of Imager */ var Imager = function (elements, opts) { var self = this; var doc = document; opts = opts || {}; if (elements !== undefined) { // selector string (not elements) if (typeof elements === 'string') { opts.selector = elements; elements = undefined; } // 'opts' object (not elements) else if (typeof elements.length === 'undefined') { opts = elements; elements = undefined; } } this.viewportHeight = doc.documentElement.clientHeight; this.selector = !elements ? (opts.selector || '.delayed-image-load') : null; this.className = opts.className || 'image-replace'; this.gif = doc.createElement('img'); this.gif.src = 'data:image/gif;base64,R0lGODlhEAAJAIAAAP///wAAACH5BAEAAAAALAAAAAAQAAkAAAIKhI+py+0Po5yUFQA7'; this.gif.className = this.className; this.gif.alt = ''; this.lazyloadOffset = opts.lazyloadOffset || 0; this.scrollDelay = opts.scrollDelay || 250; this.onResize = opts.hasOwnProperty('onResize') ? opts.onResize : true; this.lazyload = opts.hasOwnProperty('lazyload') ? opts.lazyload : false; this.scrolled = false; this.availablePixelRatios = opts.availablePixelRatios || [1, 2]; this.availableWidths = opts.availableWidths || defaultWidths; this.onImagesReplaced = opts.onImagesReplaced || noop; this.widthsMap = {}; this.refreshPixelRatio(); this.widthInterpolator = opts.widthInterpolator || returnFn; // Needed as IE8 adds a default `width`/`height` attributeā€¦ this.gif.removeAttribute('height'); this.gif.removeAttribute('width'); if (typeof this.availableWidths !== 'function') { if (typeof this.availableWidths.length === 'number') { this.widthsMap = Imager.createWidthsMap(this.availableWidths, this.widthInterpolator, this.devicePixelRatio); } else { this.widthsMap = this.availableWidths; this.availableWidths = getKeys(this.availableWidths); } this.availableWidths = this.availableWidths.sort(function (a, b) { return a - b; }); } this.divs = []; this.add(elements || this.selector); this.ready(opts.onReady); setTimeout(function () { self.init(); }, 0); }; Imager.prototype.add = function (elementsOrSelector) { elementsOrSelector = elementsOrSelector || this.selector; var elements = typeof elementsOrSelector === 'string' ? document.querySelectorAll(elementsOrSelector) : // Selector elementsOrSelector; // Elements (NodeList or array of Nodes) if (elements && elements.length) { var additional = applyEach(elements, returnFn); this.changeDivsToEmptyImages(additional); this.divs = this.divs.concat(additional); } }; Imager.prototype.scrollCheck = function () { var self = this; var offscreenImageCount = 0; var elements = []; if (this.scrolled) { // collects a subset of not-yet-responsive images and not offscreen anymore applyEach(this.divs, function (element) { if (self.isPlaceholder(element)) { ++offscreenImageCount; if (self.isThisElementOnScreen(element)) { elements.push(element); } } }); if (offscreenImageCount === 0) { window.clearInterval(self.interval); } this.changeDivsToEmptyImages(elements); this.scrolled = false; } }; Imager.prototype.init = function () { var self = this; this.initialized = true; var filterFn = trueFn; if (this.lazyload) { this.registerScrollEvent(); this.scrolled = true; self.scrollCheck(); filterFn = function (element) { return self.isPlaceholder(element) === false; }; } else { this.checkImagesNeedReplacing(this.divs); } if (this.onResize) { this.registerResizeEvent(filterFn); } this.onReady(); }; /** * Executes a function when Imager is ready to work * It acts as a convenient/shortcut for `new Imager({ onReady: fn })` * * @since 0.3.1 * @param {Function} fn */ Imager.prototype.ready = function (fn) { this.onReady = fn || noop; }; Imager.prototype.createGif = function (element) { // if the element is already a responsive image then we don't replace it again if (element.className.match(new RegExp('(^| )' + this.className + '( |$)'))) { return element; } var elementClassName = element.getAttribute('data-class'); var elementWidth = element.getAttribute('data-width'); var gif = this.gif.cloneNode(false); if (elementWidth) { gif.width = elementWidth; gif.setAttribute('data-width', elementWidth); } gif.className = (elementClassName ? elementClassName + ' ' : '') + this.className; gif.setAttribute('data-src', element.getAttribute('data-src')); gif.setAttribute('alt', element.getAttribute('data-alt') || this.gif.alt); element.parentNode.replaceChild(gif, element); return gif; }; Imager.prototype.changeDivsToEmptyImages = function (elements) { var self = this; applyEach(elements, function (element, i) { elements[i] = self.createGif(element); }); if (this.initialized) { this.checkImagesNeedReplacing(elements); } }; /** * Indicates if an element is an Imager placeholder * * @since 1.3.1 * @param {HTMLImageElement} element * @returns {boolean} */ Imager.prototype.isPlaceholder = function (element) { return element.src === this.gif.src; }; /** * Returns true if an element is located within a screen offset. * * @param {HTMLElement} element * @returns {boolean} */ Imager.prototype.isThisElementOnScreen = function (element) { // document.body.scrollTop was working in Chrome but didn't work on Firefox, so had to resort to window.pageYOffset // but can't fallback to document.body.scrollTop as that doesn't work in IE with a doctype (?) so have to use document.documentElement.scrollTop var elementOffsetTop = 0; var offset = Imager.getPageOffset() + this.lazyloadOffset; if (element.offsetParent) { do { elementOffsetTop += element.offsetTop; } while (element = element.offsetParent); } return elementOffsetTop < (this.viewportHeight + offset); }; Imager.prototype.checkImagesNeedReplacing = function (images, filterFn) { var self = this; filterFn = filterFn || trueFn; if (!this.isResizing) { this.isResizing = true; this.refreshPixelRatio(); applyEach(images, function (image) { if (filterFn(image)) { self.replaceImagesBasedOnScreenDimensions(image); } }); this.isResizing = false; this.onImagesReplaced(images); } }; /** * Upgrades an image from an empty placeholder to a fully sourced image element * * @param {HTMLImageElement} image */ Imager.prototype.replaceImagesBasedOnScreenDimensions = function (image) { var computedWidth, naturalWidth; naturalWidth = Imager.getNaturalWidth(image); computedWidth = typeof this.availableWidths === 'function' ? this.availableWidths(image) : this.determineAppropriateResolution(image); image.width = computedWidth; if (!this.isPlaceholder(image) && computedWidth <= naturalWidth) { return; } image.src = this.changeImageSrcToUseNewImageDimensions(image.getAttribute('data-src'), computedWidth); image.removeAttribute('width'); image.removeAttribute('height'); }; Imager.prototype.determineAppropriateResolution = function (image) { return Imager.getClosestValue(image.getAttribute('data-width') || image.parentNode.clientWidth, this.availableWidths); }; /** * Updates the device pixel ratio value used by Imager * * It is performed before each replacement loop, in case a user zoomed in/out * and thus updated the `window.devicePixelRatio` value. * * @api * @since 1.0.1 */ Imager.prototype.refreshPixelRatio = function refreshPixelRatio() { this.devicePixelRatio = Imager.getClosestValue(Imager.getPixelRatio(), this.availablePixelRatios); }; Imager.prototype.changeImageSrcToUseNewImageDimensions = function (src, selectedWidth) { return src .replace(/{width}/g, Imager.transforms.width(selectedWidth, this.widthsMap)) .replace(/{pixel_ratio}/g, Imager.transforms.pixelRatio(this.devicePixelRatio)); }; Imager.getPixelRatio = function getPixelRatio(context) { return (context || window)['devicePixelRatio'] || 1; }; Imager.createWidthsMap = function createWidthsMap (widths, interpolator, pixelRatio) { var map = {}, i = widths.length; while (i--) { map[widths[i]] = interpolator(widths[i], pixelRatio); } return map; }; Imager.transforms = { pixelRatio: function (value) { return value === 1 ? '' : '-' + value + 'x'; }, width: function (width, map) { return map[width] || width; } }; /** * Returns the closest upper value. * * ```js * var candidates = [1, 1.5, 2]; * * Imager.getClosestValue(0.8, candidates); // -> 1 * Imager.getClosestValue(1, candidates); // -> 1 * Imager.getClosestValue(1.3, candidates); // -> 1.5 * Imager.getClosestValue(3, candidates); // -> 2 * ``` * * @api * @since 1.0.1 * @param {Number} baseValue * @param {Array.} candidates * @returns {Number} */ Imager.getClosestValue = function getClosestValue(baseValue, candidates) { var i = candidates.length, selectedWidth = candidates[i - 1]; baseValue = parseFloat(baseValue); while (i--) { if (baseValue <= candidates[i]) { selectedWidth = candidates[i]; } } return selectedWidth; }; Imager.prototype.registerResizeEvent = function (filterFn) { var self = this; addEvent(window, 'resize', debounce(function () { self.checkImagesNeedReplacing(self.divs, filterFn); }, 100)); }; Imager.prototype.registerScrollEvent = function () { var self = this; this.scrolled = false; this.interval = window.setInterval(function () { self.scrollCheck(); }, self.scrollDelay); addEvent(window, 'scroll', function () { self.scrolled = true; }); addEvent(window, 'resize', function () { self.viewportHeight = document.documentElement.clientHeight; self.scrolled = true; }); }; Imager.getPageOffsetGenerator = function getPageVerticalOffset(testCase) { if (testCase) { return function () { return window.pageYOffset; }; } else { return function () { return document.documentElement.scrollTop; }; } }; /** * Returns the naturalWidth of an image element. * * @since 1.3.1 * @param {HTMLImageElement} image * @return {Number} Image width in pixels */ Imager.getNaturalWidth = (function () { if ('naturalWidth' in (new Image())) { return function (image) { return image.naturalWidth; }; } // non-HTML5 browsers workaround return function (image) { var imageCopy = document.createElement('img'); imageCopy.src = image.src; return imageCopy.width; }; })(); // This form is used because it seems impossible to stub `window.pageYOffset` Imager.getPageOffset = Imager.getPageOffsetGenerator(Object.prototype.hasOwnProperty.call(window, 'pageYOffset')); // Exporting for testing and convenience purpose Imager.applyEach = applyEach; Imager.addEvent = addEvent; Imager.debounce = debounce; /* global module, exports: true, define */ if (typeof module === 'object' && typeof module.exports === 'object') { // CommonJS, just export module.exports = exports = Imager; } else if (typeof define === 'function' && define.amd) { // AMD support define(function () { return Imager; }); } else if (typeof window === 'object') { // If no AMD and we are in the browser, attach to window window.Imager = Imager; } /* global -module, -exports, -define */ }(window, document)); ; /*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0\x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?I.apply(this,arguments):(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s}); ; (function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}} function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})}; function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;k=C?b():document.fonts.load(I(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),K=new Promise(function(a,c){q=setTimeout(c,C)});Promise.race([K,J]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function t(){var b; if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==u&&g==u&&h==u||f==v&&g==v&&h==v||f==w&&g==w&&h==w)),b=!b;b&&(null!==d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function G(){if((new Date).getTime()-F>=C)null!==d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0=== a||void 0===a)f=e.a.offsetWidth,g=n.a.offsetWidth,h=p.a.offsetWidth,t();q=setTimeout(G,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,u=-1,v=-1,w=-1,d=document.createElement("div");d.dir="ltr";x(e,I(c,"sans-serif"));x(n,I(c,"serif"));x(p,I(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);u=e.a.offsetWidth;v=n.a.offsetWidth;w=p.a.offsetWidth;G();z(e,function(a){f=a;t()});x(e,I(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;t()});x(n, I(c,'"'+c.family+'",serif'));z(p,function(a){h=a;t()});x(p,I(c,'"'+c.family+'",monospace'))})})};"undefined"!==typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}());; // Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem // throw QuotaExceededError. We're going to detect this and just silently drop any calls to setItem // to avoid the entire page breaking. if (typeof localStorage === 'object') { try { localStorage.setItem('localStorage', 1); localStorage.removeItem('localStorage'); } catch (e) { Storage.prototype._setItem = Storage.prototype.setItem; Storage.prototype.setItem = function() {}; if ( window.console && window.console.warn ) { console.warn('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.'); } } } (function sunFontsObserver() { var html = document.documentElement; if (sessionStorage.getItem('fontsLoaded')) { html.classList.add('fonts-loaded'); } Promise.all([ new FontFaceObserver('Roboto').load(), new FontFaceObserver('Roboto', {weight: 500}).load(), new FontFaceObserver('Roboto', {weight: 700}).load(), new FontFaceObserver('Roboto Slab').load() ]).then(function () { sessionStorage.setItem('fontsLoaded', true); html.classList.add('fonts-loaded'); }).catch(function () { delete(sessionStorage.fontsLoaded); }); })(); ; (function ($) { "use strict"; $(function () { $('#sailthru-modal').hide(); $( ".show_shortcode" ).on( "click", function( e ) { e.preventDefault(); var posTop = $(this).offset().top; var modal = $( "#sailthru-modal"); modal.css("top", '100px'); modal.css("left", Math.max(0, (($(window).width() - $(modal).outerWidth()) / 2) + $(window).scrollLeft()) + "px"); $('.sailthru_shortcode_hidden .sailthru-signup-widget-close').show(); modal.fadeIn(); }); $('#sailthru-modal .sailthru-signup-widget-close').click(function(){ $('#sailthru-modal ').fadeOut(); }) ; // when a user clicks subscribe $(".sailthru-add-subscriber-form").submit(async function(e){ e.preventDefault(); var recaptcha = $("#sailthruToken"); var siteKey = $("#siteKey").val(); if (!recaptcha.val() && siteKey) { var token = await grecaptcha.execute(siteKey, {action: 'homepage'}); recaptcha.val(token); } var user_input = $(this).serialize(); var form = $(this); $.ajax({ url: sailthru_vars.ajaxurl, type: 'post', data: user_input, dataType: "json", xhrFields: { withCredentials: true }, success: function (data, status) { if (data.success == false) { $('#' + form.attr('id') + " .sailthru-add-subscriber-errors").html(data.message); } else { $('#sailthru-modal .sailthru-signup-widget-close').fadeIn(); $(form).html(''); $(form).parent().find(".success").show(); $(form).parent().find(".hide_toggle").hide(); } } }); }); }); }(jQuery)); ;