').text(json.errors).addClass('errors'),\n )\n\n if (!json.errors) {\n $form.find('input[type=\"email\"]').val('')\n $form.find('input[type=\"email\"]').replaceWith(`
${json.message}`)\n $form.find('button[type=\"submit\"]').remove()\n $form.find('span').addClass('form-control rounded-0 pl-4 py-3 h-100')\n }\n\n if (json.errors) {\n $form.find('input[type=\"email\"], button[type=\"submit\"]').addClass('error-border')\n }\n }\n\n $form.on('ajax:success', (event, data, status, xhr) => {\n handleResponse(event, status, xhr)\n })\n\n $form.on('ajax:error', (event, xhr, status) => {\n handleResponse(event, status, xhr)\n })\n })\n })\n}\n","\nexport default function eventsPageInit() {\n if ($('.offset-content-wrapper:visible').length) {\n setInterval(() => {\n const sideContentRect = $('.offset-content-wrapper:visible')[0].getBoundingClientRect()\n const descriptionRect = $('.section-event-description')[0].getBoundingClientRect()\n\n if (descriptionRect.bottom > sideContentRect.bottom) {\n $('.section-event-description').addClass('tall')\n } else {\n $('.section-event-description').removeClass('tall')\n }\n }, 200)\n }\n}\n","export default function() {\n $('.initiative').each((i, el) => {\n $(el).on('mouseenter', () => {\n $(`.initiative-image-${i + 1}`).addClass('active')\n })\n\n $(el).on('mouseleave', () => {\n $(`.initiative-image-${i + 1}`).removeClass('active')\n })\n })\n}\n","\nimport 'google.analytics'\n\nexport default function() {\n if (typeof ga != 'undefined') {\n try {\n const gaTracker = ga.getAll()[0]\n\n $('.section-faq').on('show.bs.collapse', (evt) => {\n if (evt.target.hasAttribute('data-event-label')) {\n gaTracker.send('event', {\n eventCategory: 'FAQ',\n eventAction: 'expand',\n eventLabel: evt.target.getAttribute('data-event-label'),\n })\n }\n })\n\n $('.section-faq').on('hide.bs.collapse', (evt) => {\n if (evt.target.hasAttribute('data-event-label')) {\n gaTracker.send('event', {\n eventCategory: 'FAQ',\n eventAction: 'collapse',\n eventLabel: evt.target.getAttribute('data-event-label'),\n })\n }\n })\n\n } catch (err) {\n console.error(err)\n }\n }\n}\n","export default function() {\n let index = 1\n const lineTimers = $('.line-timer-container:eq(1)').children()\n\n const increment = (currentIndex: number) => {\n if ( currentIndex === lineTimers.length - 1) {\n index = 0\n } else {\n index++\n }\n }\n\n $('.initiative-carousel').on('slid.bs.carousel', (_evt) => {\n if (index === 0) {\n lineTimers.each((_, el) => {\n $(el).removeClass('timer-animation')\n // necessary to \"restart\" the animation\n // https://css-tricks.com/restart-css-animation/\n $(el).offset()\n })\n }\n\n lineTimers.eq(index).addClass('timer-animation')\n increment(index)\n })\n}\n","import { eraseCookie } from '../lib/cookies'\n\nexport default function previewInit() {\n $('#exit-preview').click(() => {\n eraseCookie('WMORG_PREVIEW')\n window.location = window.location.toString()\n .replace(window.location.search, '') as any\n })\n}\n","import * as $ from 'jquery'\n\nfunction isEmpty( el: JQuery
){\n return !$.trim(el.html())\n}\n\nconst getScrollAmount = (beforeContext: JQuery) => {\n if (isEmpty(beforeContext)) {\n return 0\n } else {\n let amount = beforeContext.height() || 0\n amount -= 80\n\n return amount\n }\n}\n\nexport default function scriptureQuote() {\n const scrollContainer = document.querySelector('.scripture-quote__scripture')\n const beforeContext = $('.before-key-verse-context')\n const keyVerseHeight = $('.key-verse').height()\n const heightOffset = 125\n \n if (keyVerseHeight) {\n const verseWindow = keyVerseHeight + heightOffset\n const style = document.createElement('style')\n style.type = 'text/css'\n\n style.innerHTML = `\n .scripture-quote .collapse:not(.show) { display: block; height: ${verseWindow}px}\n .scripture-quote .collapse:not(.show) .scripture-quote__scripture { height: ${verseWindow}px}\n .scripture-quote .collapsing { height: ${verseWindow}px }\n `\n document.getElementsByTagName('head')[0].appendChild(style) \n\n if (!scrollContainer) { return }\n\n scrollContainer.scrollTo({\n top: getScrollAmount(beforeContext),\n left: 0,\n behavior: 'smooth',\n })\n\n $('#scripture-quote').on('hide.bs.collapse', function () {\n $('.gradient-overlay').css('opacity', 1)\n })\n\n $('#scripture-quote').on('hidden.bs.collapse', function () {\n scrollContainer.scrollTo({\n top: getScrollAmount(beforeContext),\n left: 0,\n behavior: 'smooth',\n })\n })\n\n $('#scripture-quote').on('show.bs.collapse', function () {\n $('.gradient-overlay').css('opacity', 0)\n })\n }\n}\n","import * as $ from 'jquery'\n\nexport default function(\n /** The section that the menu points to */\n $element: JQuery,\n /**\n * The height of the menu overlay,\n * i.e. if the menu takes up 48 pixels of real estate this should be 48.0\n */\n buffer: number,\n /**\n * The scroll container, which defaults to the window\n */\n container: JQuery | JQuery | JQuery = $(window),\n): boolean {\n if (!$element || !$element.offset()) {\n return false\n }\n\n /** This represents how far down the page (or scroll container) that we have scrolled, in pixels */\n const scrollTop = container.scrollTop()\n /** This is how far down the page our section is, in pixels */\n const offset = $element.offset()\n /** The height of the section, in pixels */\n const height = $element.height()\n if (scrollTop == undefined || offset == undefined || height == undefined) {\n return false\n }\n\n // If we have not yet scrolled where the top of the section (the offset) touches the bottom of the menu overlay,\n // we are not yet in view.\n if (scrollTop < offset.top - buffer) {\n return false\n }\n\n // If we have scrolled to where the bottom of the menu is past the bottom of the section\n // (offset.top + height), then we are not in view.\n if (scrollTop >= offset.top + height - buffer) {\n return false\n }\n\n return true\n}\n","import * as $ from 'jquery'\nimport domInView from '../lib/util/dom-in-view'\n\ninterface IMenuProps {\n container?: JQuery | JQuery | JQuery\n menu: JQuery\n linkSelector: string\n scrollTimeout?: number\n}\n\nclass ScrollMenu {\n public menu: JQuery\n\n private container: JQuery | JQuery | JQuery\n private links: JQuery\n private linkSectionMap: { [id: string]: JQuery }\n private linkSelector: string\n private scrollEventID: string\n private scrollTimeout: number\n private timeoutRef?: ReturnType\n\n constructor(props: IMenuProps) {\n this.container = props.container || $(window)\n this.menu = props.menu\n this.linkSelector = props.linkSelector\n this.links = $(this.linkSelector, this.menu)\n this.scrollTimeout = props.scrollTimeout || 250\n this.scrollEventID = 'scroll.Menu_' + Math.floor(Math.random() * 100000)\n\n this.linkSectionMap = this.links.toArray().reduce((map: any, link: HTMLElement) => {\n const href = link.getAttribute('href')\n if (href) {\n map[href] = $(href)\n }\n\n return map\n }, {})\n\n this.handleMenuEvent = this.handleMenuEvent.bind(this)\n this.selectLink = this.selectLink.bind(this)\n }\n\n public bind() {\n this.menu.on('click', this.linkSelector, (evt) => {\n this.selectLink($(evt.currentTarget))\n })\n\n this.container.on(this.scrollEventID, () => {\n if (this.timeoutRef) { return }\n\n this.timeoutRef = setTimeout(this.handleMenuEvent, this.scrollTimeout)\n })\n }\n\n public unbind() {\n this.menu.off('click', this.linkSelector)\n this.container.off(this.scrollEventID as any)\n }\n\n private clearActive() {\n this.links.parent('li').removeClass('active')\n }\n\n private getCurrent(): HTMLElement | undefined {\n return this.links.toArray().find((el) => {\n const href = el.getAttribute('href')\n const menuHeight = this.menu.height()\n if (!href || typeof menuHeight == 'undefined') { return }\n\n return domInView(\n this.linkSectionMap[href], menuHeight, this.container,\n )\n })\n }\n\n private handleMenuEvent() {\n const currentLink = this.getCurrent()\n\n if (domInView(this.menu, 0) && currentLink) {\n this.selectLink($(currentLink))\n } else {\n this.links.parent('li').removeClass('active')\n }\n\n this.timeoutRef = undefined\n }\n\n private selectLink(link: JQuery) {\n if (link.parent('li').hasClass('active')) { return }\n\n this.clearActive()\n link.parent('li').addClass('active')\n }\n}\n\nexport default function() {\n $(() => {\n const menus: ScrollMenu[] = []\n\n $('.section-menu__nav, .section-menu__dropdown').each((_, menu) => {\n const scrollMenu = new ScrollMenu({\n menu: $(menu),\n linkSelector: 'a.nav-link',\n })\n\n scrollMenu.bind()\n\n menus.push(scrollMenu)\n })\n })\n}\n","/**\n * EasyQRCodeJS\n * \n * Cross-browser QRCode generator for pure javascript. Support Canvas, SVG and Table drawing methods. Support Dot style, Logo, Background image, Colorful, Title etc. settings. Support Angular, Vue.js, React, Next.js, Svelte framework. Support binary(hex) data mode.(Running with DOM on client side)\n * \n * Version 4.4.13\n * \n * @author [ inthinkcolor@gmail.com ]\n * \n * @see https://github.com/ushelp/EasyQRCodeJS \n * @see http://www.easyproject.cn/easyqrcodejs/tryit.html\n * @see https://github.com/ushelp/EasyQRCodeJS-NodeJS\n * \n * Copyright 2017 Ray, EasyProject\n * Released under the MIT license\n * \n * [Support AMD, CMD, CommonJS/Node.js]\n * \n */\n!function(){\"use strict\";function a(a,b){var c,d=Object.keys(b);for(c=0;c1?(b=c,b.width=arguments[0],b.height=arguments[1]):b=a||c,!(this instanceof f))return new f(b);this.width=b.width||c.width,this.height=b.height||c.height,this.enableMirroring=void 0!==b.enableMirroring?b.enableMirroring:c.enableMirroring,this.canvas=this,this.__document=b.document||document,b.ctx?this.__ctx=b.ctx:(this.__canvas=this.__document.createElement(\"canvas\"),this.__ctx=this.__canvas.getContext(\"2d\")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.__root.setAttribute(\"version\",1.1),this.__root.setAttribute(\"xmlns\",\"http://www.w3.org/2000/svg\"),this.__root.setAttributeNS(\"http://www.w3.org/2000/xmlns/\",\"xmlns:xlink\",\"http://www.w3.org/1999/xlink\"),this.__root.setAttribute(\"width\",this.width),this.__root.setAttribute(\"height\",this.height),this.__ids={},this.__defs=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this.__root.appendChild(this.__defs),this.__currentElement=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"),this.__root.appendChild(this.__currentElement)},f.prototype.__createElement=function(a,b,c){void 0===b&&(b={});var d,e,f=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",a),g=Object.keys(b);for(c&&(f.setAttribute(\"fill\",\"none\"),f.setAttribute(\"stroke\",\"none\")),d=0;d0){\"path\"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:b,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());var c=this.__createElement(\"g\");b.appendChild(c),this.__currentElement=c}var d=this.__currentElement.getAttribute(\"transform\");d?d+=\" \":d=\"\",d+=a,this.__currentElement.setAttribute(\"transform\",d)},f.prototype.scale=function(b,c){void 0===c&&(c=b),this.__addTransform(a(\"scale({x},{y})\",{x:b,y:c}))},f.prototype.rotate=function(b){var c=180*b/Math.PI;this.__addTransform(a(\"rotate({angle},{cx},{cy})\",{angle:c,cx:0,cy:0}))},f.prototype.translate=function(b,c){this.__addTransform(a(\"translate({x},{y})\",{x:b,y:c}))},f.prototype.transform=function(b,c,d,e,f,g){this.__addTransform(a(\"matrix({a},{b},{c},{d},{e},{f})\",{a:b,b:c,c:d,d:e,e:f,f:g}))},f.prototype.beginPath=function(){var a,b;this.__currentDefaultPath=\"\",this.__currentPosition={},a=this.__createElement(\"path\",{},!0),b=this.__closestGroupOrSvg(),b.appendChild(a),this.__currentElement=a},f.prototype.__applyCurrentDefaultPath=function(){var a=this.__currentElement;\"path\"===a.nodeName?a.setAttribute(\"d\",this.__currentDefaultPath):console.error(\"Attempted to apply path command to node\",a.nodeName)},f.prototype.__addPathCommand=function(a){this.__currentDefaultPath+=\" \",this.__currentDefaultPath+=a},f.prototype.moveTo=function(b,c){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:b,y:c},this.__addPathCommand(a(\"M {x} {y}\",{x:b,y:c}))},f.prototype.closePath=function(){this.__currentDefaultPath&&this.__addPathCommand(\"Z\")},f.prototype.lineTo=function(b,c){this.__currentPosition={x:b,y:c},this.__currentDefaultPath.indexOf(\"M\")>-1?this.__addPathCommand(a(\"L {x} {y}\",{x:b,y:c})):this.__addPathCommand(a(\"M {x} {y}\",{x:b,y:c}))},f.prototype.bezierCurveTo=function(b,c,d,e,f,g){this.__currentPosition={x:f,y:g},this.__addPathCommand(a(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\",{cp1x:b,cp1y:c,cp2x:d,cp2y:e,x:f,y:g}))},f.prototype.quadraticCurveTo=function(b,c,d,e){this.__currentPosition={x:d,y:e},this.__addPathCommand(a(\"Q {cpx} {cpy} {x} {y}\",{cpx:b,cpy:c,x:d,y:e}))};var j=function(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]);return[a[0]/b,a[1]/b]};f.prototype.arcTo=function(a,b,c,d,e){var f=this.__currentPosition&&this.__currentPosition.x,g=this.__currentPosition&&this.__currentPosition.y;if(void 0!==f&&void 0!==g){if(e<0)throw new Error(\"IndexSizeError: The radius provided (\"+e+\") is negative.\");if(f===a&&g===b||a===c&&b===d||0===e)return void this.lineTo(a,b);var h=j([f-a,g-b]),i=j([c-a,d-b]);if(h[0]*i[1]==h[1]*i[0])return void this.lineTo(a,b);var k=h[0]*i[0]+h[1]*i[1],l=Math.acos(Math.abs(k)),m=j([h[0]+i[0],h[1]+i[1]]),n=e/Math.sin(l/2),o=a+n*m[0],p=b+n*m[1],q=[-h[1],h[0]],r=[i[1],-i[0]],s=function(a){var b=a[0];return a[1]>=0?Math.acos(b):-Math.acos(b)},t=s(q),u=s(r);this.lineTo(o+q[0]*e,p+q[1]*e),this.arc(o,p,e,t,u)}},f.prototype.stroke=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"fill stroke markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"stroke\")},f.prototype.fill=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"stroke fill markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"fill\")},f.prototype.rect=function(a,b,c,d){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(a,b),this.lineTo(a+c,b),this.lineTo(a+c,b+d),this.lineTo(a,b+d),this.lineTo(a,b),this.closePath()},f.prototype.fillRect=function(a,b,c,d){var e,f;e=this.__createElement(\"rect\",{x:a,y:b,width:c,height:d,\"shape-rendering\":\"crispEdges\"},!0),f=this.__closestGroupOrSvg(),f.appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement(\"fill\")},f.prototype.strokeRect=function(a,b,c,d){var e,f;e=this.__createElement(\"rect\",{x:a,y:b,width:c,height:d},!0),f=this.__closestGroupOrSvg(),f.appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement(\"stroke\")},f.prototype.__clearCanvas=function(){for(var a=this.__closestGroupOrSvg(),b=a.getAttribute(\"transform\"),c=this.__root.childNodes[1],d=c.childNodes,e=d.length-1;e>=0;e--)d[e]&&c.removeChild(d[e]);this.__currentElement=c,this.__groupStack=[],b&&this.__addTransform(b)},f.prototype.clearRect=function(a,b,c,d){if(0===a&&0===b&&c===this.width&&d===this.height)return void this.__clearCanvas();var e,f=this.__closestGroupOrSvg();e=this.__createElement(\"rect\",{x:a,y:b,width:c,height:d,fill:\"#FFFFFF\"},!0),f.appendChild(e)},f.prototype.createLinearGradient=function(a,c,d,e){var f=this.__createElement(\"linearGradient\",{id:b(this.__ids),x1:a+\"px\",x2:d+\"px\",y1:c+\"px\",y2:e+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(f),new g(f,this)},f.prototype.createRadialGradient=function(a,c,d,e,f,h){var i=this.__createElement(\"radialGradient\",{id:b(this.__ids),cx:e+\"px\",cy:f+\"px\",r:h+\"px\",fx:a+\"px\",fy:c+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(i),new g(i,this)},f.prototype.__parseFont=function(){var a=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\'\\\"\\sa-z0-9]+?)\\s*$/i,b=a.exec(this.font),c={style:b[1]||\"normal\",size:b[4]||\"10px\",family:b[6]||\"sans-serif\",weight:b[3]||\"normal\",decoration:b[2]||\"normal\",href:null};return\"underline\"===this.__fontUnderline&&(c.decoration=\"underline\"),this.__fontHref&&(c.href=this.__fontHref),c},f.prototype.__wrapTextLink=function(a,b){if(a.href){var c=this.__createElement(\"a\");return c.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",a.href),c.appendChild(b),c}return b},f.prototype.__applyText=function(a,b,e,f){var g=this.__parseFont(),h=this.__closestGroupOrSvg(),i=this.__createElement(\"text\",{\"font-family\":g.family,\"font-size\":g.size,\"font-style\":g.style,\"font-weight\":g.weight,\"text-decoration\":g.decoration,x:b,y:e,\"text-anchor\":c(this.textAlign),\"dominant-baseline\":d(this.textBaseline)},!0);i.appendChild(this.__document.createTextNode(a)),this.__currentElement=i,this.__applyStyleToCurrentElement(f),h.appendChild(this.__wrapTextLink(g,i))},f.prototype.fillText=function(a,b,c){this.__applyText(a,b,c,\"fill\")},f.prototype.strokeText=function(a,b,c){this.__applyText(a,b,c,\"stroke\")},f.prototype.measureText=function(a){return this.__ctx.font=this.font,this.__ctx.measureText(a)},f.prototype.arc=function(b,c,d,e,f,g){if(e!==f){e%=2*Math.PI,f%=2*Math.PI,e===f&&(f=(f+2*Math.PI-.001*(g?-1:1))%(2*Math.PI));var h=b+d*Math.cos(f),i=c+d*Math.sin(f),j=b+d*Math.cos(e),k=c+d*Math.sin(e),l=g?0:1,m=0,n=f-e;n<0&&(n+=2*Math.PI),m=g?n>Math.PI?0:1:n>Math.PI?1:0,this.lineTo(j,k),this.__addPathCommand(a(\"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",{rx:d,ry:d,xAxisRotation:0,largeArcFlag:m,sweepFlag:l,endX:h,endY:i})),this.__currentPosition={x:h,y:i}}},f.prototype.clip=function(){var c=this.__closestGroupOrSvg(),d=this.__createElement(\"clipPath\"),e=b(this.__ids),f=this.__createElement(\"g\");this.__applyCurrentDefaultPath(),c.removeChild(this.__currentElement),d.setAttribute(\"id\",e),d.appendChild(this.__currentElement),this.__defs.appendChild(d),c.setAttribute(\"clip-path\",a(\"url(#{id})\",{id:e})),c.appendChild(f),this.__currentElement=f},f.prototype.drawImage=function(){var a,b,c,d,e,g,h,i,j,k,l,m,n,o,p=Array.prototype.slice.call(arguments),q=p[0],r=0,s=0;if(3===p.length)a=p[1],b=p[2],e=q.width,g=q.height,c=e,d=g;else if(5===p.length)a=p[1],b=p[2],c=p[3],d=p[4],e=q.width,g=q.height;else{if(9!==p.length)throw new Error(\"Invalid number of arguments passed to drawImage: \"+arguments.length);r=p[1],s=p[2],e=p[3],g=p[4],a=p[5],b=p[6],c=p[7],d=p[8]}h=this.__closestGroupOrSvg(),this.__currentElement;var t=\"translate(\"+a+\", \"+b+\")\";if(q instanceof f){if(i=q.getSvg().cloneNode(!0),i.childNodes&&i.childNodes.length>1){for(j=i.childNodes[0];j.childNodes.length;)o=j.childNodes[0].getAttribute(\"id\"),this.__ids[o]=o,this.__defs.appendChild(j.childNodes[0]);if(k=i.childNodes[1]){var u,v=k.getAttribute(\"transform\");u=v?v+\" \"+t:t,k.setAttribute(\"transform\",u),h.appendChild(k)}}}else\"CANVAS\"!==q.nodeName&&\"IMG\"!==q.nodeName||(l=this.__createElement(\"image\"),l.setAttribute(\"width\",c),l.setAttribute(\"height\",d),l.setAttribute(\"preserveAspectRatio\",\"none\"),l.setAttribute(\"opacity\",this.globalAlpha),(r||s||e!==q.width||g!==q.height)&&(m=this.__document.createElement(\"canvas\"),m.width=c,m.height=d,n=m.getContext(\"2d\"),n.drawImage(q,r,s,e,g,0,0,c,d),q=m),l.setAttribute(\"transform\",t),l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===q.nodeName?q.toDataURL():q.originalSrc),h.appendChild(l))},f.prototype.createPattern=function(a,c){var d,e=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"pattern\"),g=b(this.__ids);return e.setAttribute(\"id\",g),e.setAttribute(\"width\",a.width),e.setAttribute(\"height\",a.height),\"CANVAS\"===a.nodeName||\"IMG\"===a.nodeName?(d=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\"),d.setAttribute(\"width\",a.width),d.setAttribute(\"height\",a.height),d.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===a.nodeName?a.toDataURL():a.getAttribute(\"src\")),e.appendChild(d),this.__defs.appendChild(e)):a instanceof f&&(e.appendChild(a.__root.childNodes[1]),this.__defs.appendChild(e)),new h(e,this)},f.prototype.setLineDash=function(a){a&&a.length>0?this.lineDash=a.join(\",\"):this.lineDash=null},f.prototype.drawFocusRing=function(){},f.prototype.createImageData=function(){},f.prototype.getImageData=function(){},f.prototype.putImageData=function(){},f.prototype.globalCompositeOperation=function(){},f.prototype.setTransform=function(){},\"object\"==typeof window&&(window.C2S=f),\"object\"==typeof module&&\"object\"==typeof module.exports&&(module.exports=f)}(),function(){\"use strict\";function a(a,b,c){this.mode=q.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var d=0,e=this.data.length;d65536?(f[0]=240|(1835008&g)>>>18,f[1]=128|(258048&g)>>>12,f[2]=128|(4032&g)>>>6,f[3]=128|63&g):g>2048?(f[0]=224|(61440&g)>>>12,f[1]=128|(4032&g)>>>6,f[2]=128|63&g):g>128?(f[0]=192|(1984&g)>>>6,f[1]=128|63&g):f[0]=g,this.parsedData.push(f)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),c||this.parsedData.length==this.data.length||(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function c(a,b){if(a.length==i)throw new Error(a.length+\"/\"+b);for(var c=0;cw.length)throw new Error(\"Too long data. the CorrectLevel.\"+[\"M\",\"L\",\"H\",\"Q\"][c]+\" limit length is \"+i);return 0!=b.version&&(d<=b.version?(d=b.version,b.runVersion=d):(console.warn(\"QR Code version \"+b.version+\" too small, run version use \"+d),b.runVersion=d)),d}function h(a){var b=encodeURI(a).toString().replace(/\\%[0-9a-fA-F]{2}/g,\"a\");return b.length+(b.length!=a.length?3:0)}var i,j,k=\"object\"==typeof global&&global&&global.Object===Object&&global,l=\"object\"==typeof self&&self&&self.Object===Object&&self,m=k||l||Function(\"return this\")(),n=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&\"object\"==typeof module&&module&&!module.nodeType&&module,p=m.QRCode;a.prototype={getLength:function(a){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;b=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b,c){for(var d=-1;d<=7;d++)if(!(a+d<=-1||this.moduleCount<=a+d))for(var e=-1;e<=7;e++)b+e<=-1||this.moduleCount<=b+e||(0<=d&&d<=6&&(0==e||6==e)||0<=e&&e<=6&&(0==d||6==d)||2<=d&&d<=4&&2<=e&&e<=4?(this.modules[a+d][b+e][0]=!0,this.modules[a+d][b+e][2]=c,this.modules[a+d][b+e][1]=-0==d||-0==e||6==d||6==e?\"O\":\"I\"):this.modules[a+d][b+e][0]=!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;c<8;c++){this.makeImpl(!0,c);var d=t.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c);this.make();for(var e=0;e>c&1);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3][0]=d}for(var c=0;c<18;c++){var d=!a&&1==(b>>c&1);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)][0]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=t.getBCHTypeInfo(c),e=0;e<15;e++){var f=!a&&1==(d>>e&1);e<6?this.modules[e][8][0]=f:e<8?this.modules[e+1][8][0]=f:this.modules[this.moduleCount-15+e][8][0]=f}for(var e=0;e<15;e++){var f=!a&&1==(d>>e&1);e<8?this.modules[8][this.moduleCount-e-1][0]=f:e<9?this.modules[8][15-e-1+1][0]=f:this.modules[8][15-e-1][0]=f}this.modules[this.moduleCount-8][8][0]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,f=0,g=this.moduleCount-1;g>0;g-=2)for(6==g&&g--;;){for(var h=0;h<2;h++)if(null==this.modules[d][g-h][0]){var i=!1;f>>e&1));var j=t.getMask(b,d,g-h);j&&(i=!i),this.modules[d][g-h][0]=i,e--,-1==e&&(f++,e=7)}if((d+=c)<0||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,f){for(var g=d.getRSBlocks(a,c),h=new e,i=0;i8*k)throw new Error(\"code length overflow. (\"+h.getLengthInBits()+\">\"+8*k+\")\");for(h.getLengthInBits()+4<=8*k&&h.put(0,4);h.getLengthInBits()%8!=0;)h.putBit(!1);for(;;){if(h.getLengthInBits()>=8*k)break;if(h.put(b.PAD0,8),h.getLengthInBits()>=8*k)break;h.put(b.PAD1,8)}return b.createBytes(h,g)},b.createBytes=function(a,b){for(var d=0,e=0,f=0,g=new Array(b.length),h=new Array(b.length),i=0;i=0?o.get(p):0}}for(var q=0,l=0;l=0;)b^=t.G15<=0;)b^=t.G18<>>=1;return b},getPatternPosition:function(a){return t.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case s.PATTERN000:return(b+c)%2==0;case s.PATTERN001:return b%2==0;case s.PATTERN010:return c%3==0;case s.PATTERN011:return(b+c)%3==0;case s.PATTERN100:return(Math.floor(b/2)+Math.floor(c/3))%2==0;case s.PATTERN101:return b*c%2+b*c%3==0;case s.PATTERN110:return(b*c%2+b*c%3)%2==0;case s.PATTERN111:return(b*c%3+(b+c)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new c([1],0),d=0;d5&&(c+=3+f-5)}for(var d=0;d=256;)a-=255;return u.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},v=0;v<8;v++)u.EXP_TABLE[v]=1<>>7-a%8&1)},put:function(a,b){for(var c=0;c>>b-c-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var w=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],x=function(){return\"undefined\"!=typeof CanvasRenderingContext2D}()?function(){function a(){if(\"svg\"==this._htOption.drawer){var a=this._oContext.getSerializedSvg(!0);this.dataURL=a,this._el.innerHTML=a}else try{var b=this._elCanvas.toDataURL(\"image/png\");this.dataURL=b}catch(a){console.error(a)}this._htOption.onRenderingEnd&&(this.dataURL||console.error(\"Can not get base64 data, please check: 1. Published the page and image to the server 2. The image request support CORS 3. Configured `crossOrigin:'anonymous'` option\"),this._htOption.onRenderingEnd(this._htOption,this.dataURL))}function b(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement(\"img\"),e=function(){c._bSupportDataURI=!1,c._fFail&&c._fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,void(d.src=\"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\")}!0===c._bSupportDataURI&&c._fSuccess?c._fSuccess.call(c):!1===c._bSupportDataURI&&c._fFail&&c._fFail.call(c)}if(m._android&&m._android<=2.1){var c=1/window.devicePixelRatio,d=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,b,e,f,g,h,i,j,k){if(\"nodeName\"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*c;else void 0===j&&(arguments[1]*=c,arguments[2]*=c,arguments[3]*=c,arguments[4]*=c);d.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=f(),this._el=a,this._htOption=b,\"svg\"==this._htOption.drawer?(this._oContext={},this._elCanvas={}):(this._elCanvas=document.createElement(\"canvas\"),this._el.appendChild(this._elCanvas),this._oContext=this._elCanvas.getContext(\"2d\")),this._bSupportDataURI=null,this.dataURL=null};return e.prototype.draw=function(a){function b(){d.quietZone>0&&d.quietZoneColor&&(h.lineWidth=0,h.fillStyle=d.quietZoneColor,h.fillRect(0,0,i._elCanvas.width,d.quietZone),h.fillRect(0,d.quietZone,d.quietZone,i._elCanvas.height-2*d.quietZone),h.fillRect(i._elCanvas.width-d.quietZone,d.quietZone,d.quietZone,i._elCanvas.height-2*d.quietZone),h.fillRect(0,i._elCanvas.height-d.quietZone,i._elCanvas.width,d.quietZone))}function c(a){function c(a){var c=Math.round(d.width/3.5),e=Math.round(d.height/3.5);c!==e&&(c=e),d.logoMaxWidth?c=Math.round(d.logoMaxWidth):d.logoWidth&&(c=Math.round(d.logoWidth)),d.logoMaxHeight?e=Math.round(d.logoMaxHeight):d.logoHeight&&(e=Math.round(d.logoHeight));var f,g;void 0===a.naturalWidth?(f=a.width,g=a.height):(f=a.naturalWidth,g=a.naturalHeight),(d.logoMaxWidth||d.logoMaxHeight)&&(d.logoMaxWidth&&f<=c&&(c=f),d.logoMaxHeight&&g<=e&&(e=g),f<=c&&g<=e&&(c=f,e=g));var i=(d.width+2*d.quietZone-c)/2,j=(d.height+d.titleHeight+2*d.quietZone-e)/2,k=Math.min(c/f,e/g),l=f*k,m=g*k;(d.logoMaxWidth||d.logoMaxHeight)&&(c=l,e=m,i=(d.width+2*d.quietZone-c)/2,j=(d.height+d.titleHeight+2*d.quietZone-e)/2),d.logoBackgroundTransparent||(h.fillStyle=d.logoBackgroundColor,h.fillRect(i,j,c,e));var n=h.imageSmoothingQuality,o=h.imageSmoothingEnabled;h.imageSmoothingEnabled=!0,h.imageSmoothingQuality=\"high\",h.drawImage(a,i+(c-l)/2,j+(e-m)/2,l,m),h.imageSmoothingEnabled=o,h.imageSmoothingQuality=n,b(),s._bIsPainted=!0,s.makeImage()}d.onRenderingStart&&d.onRenderingStart(d);for(var i=0;i ';g.push(m)}if(b.quietZone&&(h=\"display:inline-block; width:\"+(b.width+2*b.quietZone)+\"px; height:\"+(b.width+2*b.quietZone)+\"px;background:\"+b.quietZoneColor+\"; text-align:center;\"),g.push(' {\n href = href || getCanonical()\n\n const url = `https://www.facebook.com/sharer/sharer.php?u=${href}`\n window.open(url, 'popup', 'width=600,height=600')\n}\n\nimport QRCode from 'easyqrcodejs'\nfunction initQrCode($anchor: JQuery) {\n const href = $anchor.attr('href') || getCanonical()\n if (!href) { return }\n\n const url = new URL(href)\n url.searchParams.set('utm_source', 'share_qr_code')\n\n let $qrCodeContainer = $anchor.find('.qrcode__container')\n if (!$qrCodeContainer.length) {\n $anchor.append('')\n $qrCodeContainer = $anchor.find('.qrcode__container')\n }\n\n const _qr = new QRCode($qrCodeContainer[0], {\n text: url.toString(),\n width: 150,\n height: 150,\n colorDark: '#000000',\n colorLight: '#ffffff',\n correctLevel: QRCode.CorrectLevel.H,\n drawer: 'svg',\n })\n\n $anchor.click((event) => {\n if (event) { event.preventDefault() }\n downloadSVG(document.title, $qrCodeContainer[0].innerHTML)\n })\n}\n\nfunction getCanonical(): string | undefined {\n const canonical = document.querySelector('link[rel=\\'canonical\\']')\n if (canonical) {\n return canonical.getAttribute('href') || undefined\n }\n}\n\nfunction downloadSVG(filename: string, text: string) {\n const element = document.createElement('a')\n element.setAttribute('href', 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(text))\n element.setAttribute('download', filename)\n\n element.style.display = 'none'\n document.body.appendChild(element)\n\n element.click()\n\n document.body.removeChild(element)\n}\n","export function signInInit() {\n const elems = document.querySelectorAll('a[href=\\'/sign_in\\']')\n const qparams = {\n origin: window.location.pathname,\n }\n\n Array.prototype.forEach.call(elems, (el) => {\n el.href += `?${$.param(qparams)}`\n })\n}\n","import * as $ from 'jquery'\n\nexport default function() {\n $(() => {\n [\n '#message-transcript-toggle-button',\n '#message-sermon-guide-toggle-button',\n ].forEach((selector) => {\n const $link = $(selector)\n const target = $link.data('target') || $link.attr('href')\n\n $link.on('click', () => {\n $(target).removeClass('text-fade')\n $link.remove().off('click')\n })\n })\n\n })\n}\n","\nexport function viewportInit() {\n $(window).on('load', () => {\n onResize()\n })\n $(window).on('resize', onResize)\n}\n\nfunction onResize() {\n $('.formatted-content p .btn ~ .btn').each((i, elem) => {\n checkWrap(elem)\n })\n}\n\nfunction checkWrap(elem: HTMLElement) {\n const prevButton = $(elem).prev()\n // This will work to catch our current use case - if there's a case that ends\n // up breaking this we can revisit the logic.\n // Add the .wrapped class if the item's offset is greater than it's neighbor's\n // offset + height, which indicates it's on a new line.\n if (prevButton.length > 0 &&\n elem.offsetTop >= (prevButton[0].offsetTop + prevButton[0].offsetHeight)) {\n $(elem).addClass('wrapped')\n } else {\n $(elem).removeClass('wrapped')\n }\n}\n","export function parallax() {\n const scrollEl = document.documentElement\n const root = document.documentElement\n\n let scrollPos: number\n\n function animation() {\n if (scrollPos !== scrollEl.scrollTop) {\n scrollPos = scrollEl.scrollTop\n root.style.setProperty('--scrollPos', scrollPos + 'px')\n }\n\n window.requestAnimationFrame(animation)\n }\n\n window.requestAnimationFrame(animation)\n}\n","export default function flipCardsInit() {\n const cards = document.querySelectorAll('.card.published .card-image-container')\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n setTimeout(() => {\n entry.target.classList.add('flip')\n observer.unobserve(entry.target)\n }, 1000)\n }\n })\n })\n\n cards.forEach(card => observer.observe(card))\n // add transition delay to each card\n cards.forEach((card, index) => {\n // get card flipper div\n const flipper = card.querySelector('.card-flipper')\n // set transition delay\n\n if (flipper instanceof HTMLElement) {\n flipper.style.transitionDelay = `${index * 0.2}s`\n }\n })\n}\n","export default function modalOpenerInit() {\n // opens modal when the URL includes the modal id\n\n const modalId = window.location.hash\n\n if (modalId) {\n const modal = document.querySelector(modalId)\n\n if (modal instanceof HTMLElement && modal.classList.contains('modal')) {\n // scroll to stories-card-deck\n const story = document.querySelector('a.story-card[data-target=\"' + modalId + '\"]')\n if (story instanceof HTMLElement) {\n setTimeout(() => {\n story.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }, 250)\n }\n\n $(modal).modal('toggle')\n }\n }\n}\n\nexport function modalVideoCloserInit() {\n const videoModals = document.querySelectorAll('.modal-video, .modal-reel')\n\n if (videoModals.length > 0) {\n videoModals.forEach((modal) => {\n const video = modal.querySelector('video')\n $(modal).on('hidden.bs.modal', () => {\n if (video instanceof HTMLVideoElement) {\n video.pause()\n }\n })\n })\n }\n}\n","export default function reelPlayerInit() {\n // do this for every reel\n const reels = document.querySelectorAll('.section-video-content__video.reel')\n\n reels.forEach((reel) => {\n const controls = reel.querySelector('.controls')\n const video = reel.querySelector('video')\n \n if (controls && video) {\n controls.setAttribute('data-state', 'visible')\n\n const playpause = controls.querySelector('.playpause')\n\n if (playpause) {\n playpause.addEventListener('click', () => {\n if (video.paused || video.ended) {\n video.play()\n } else {\n video.pause()\n }\n })\n\n video.addEventListener('play', () => {\n changeButtonState(playpause, 'playpause', video)\n\n if (isMobile()) {\n video.requestFullscreen()\n }\n })\n \n video.addEventListener('pause', () => {\n changeButtonState(playpause, 'playpause', video)\n })\n\n video.addEventListener('click', () => {\n if (video.paused || video.ended) {\n video.play()\n } else {\n video.pause()\n }\n\n changeButtonState(playpause, 'playpause', video)\n })\n }\n\n\n }\n })\n\n function changeButtonState(button: Element, type: string, video: HTMLVideoElement) {\n if (type === 'playpause') {\n if (video.paused || video.ended) {\n button.setAttribute('data-state', 'play')\n } else {\n button.setAttribute('data-state', 'pause')\n }\n }\n }\n\n function isMobile() {\n if (typeof window == 'undefined') {\n return false\n }\n return window.matchMedia('(max-width: 575.98px)').matches\n }\n}","var FreshUrl;FreshUrl=function(){function a(b){var c,d,e,f;if(null==b&&(b=[]),window.history.replaceState){for(this.key=0,this._isReady={},e=0,f=b.length;f>e;e++)d=b[e],\"string\"==typeof d&&a.libraries[d]?this.wait(a.libraries[d].ready,d):\"function\"==typeof d?this.wait(d):\"undefined\"!=typeof console&&null!==console&&console.log(\"FreshURL: Don't know how to wait for \"+d);0===b.length&&this.allReady()&&this.allReadyCallback(),a.updateWistiaIframes(),c=function(b){return\"new-wistia-iframe\"===b.data?a.updateWistiaIframes():void 0},\"undefined\"!=typeof window&&null!==window&&window.addEventListener(\"message\",c,!1)}}return a.libraries={googleAnalytics:{present:function(){return window._gaq||window[window.GoogleAnalyticsObject]},ready:function(b){return a.waitsFor(a.libraries.googleAnalytics.present).then(function(){var a;return(a=window._gaq)?a.push(function(){return b()}):(a=window[window.GoogleAnalyticsObject])?a(function(){return b()}):void 0})}},hubspot:{present:function(){return window._hsq||a.scriptFrom(/\\/\\/(js\\.hubspot\\.com|js.hs-analytics\\.net)/)},ready:function(b){return a.waitsFor(function(){return window._hsq}).then(function(){return _hsq.push(function(){return b()})})}},clicky:{present:function(){return window.clicky||window.clicky_site_ids||a.scriptFrom(/\\/\\/static\\.getclicky\\.com/)},ready:function(b){return a.waitsFor(function(){return window.clicky_obj}).then(b)}},pardot:{present:function(){return window.piAId||window.piCId||a.scriptContains(/\\.pardot\\.com\\/pd\\.js/)},ready:function(b){return a.waitsFor(function(){var a,b;return null!=(a=window.pi)&&null!=(b=a.tracker)?b.url:void 0}).then(b)}},simplex:{present:function(){return window.simplex||a.scriptFrom(/\\/simplex\\.js/)},ready:function(b){return a.waitsFor(function(){return window.simplex}).then(b)}},analyticsJs:{present:function(){var a;return null!=(a=window.analytics)?a.ready:void 0},ready:function(b){return a.waitsFor(function(){var a;return null!=(a=window.analytics)?a.ready:void 0}).then(function(){return analytics.ready(b)})}}},a.originalUrl=window.location.href,a.prototype.wait=function(a,b){return null==b&&(b=this.nextKey()),this._isReady[b]=!1,a(function(a){return function(){return a.ready(b)}}(this))},a.prototype.ready=function(a){return this._isReady[a]=!0,this.allReady()?this.allReadyCallback():void 0},a.prototype.allReady=function(){var a,b,c,d;b=[],d=this._isReady;for(a in d)c=d[a],c||b.push(a);return 0===b.length},a.prototype.allReadyCallback=function(){return window.history.replaceState(window.history.state,\"\",a.cleanUrl())},a.cleanUrl=function(){var a;return a=window.location.search.replace(/utm_[^&]+&?/g,\"\").replace(/(wkey|wemail)[^&]+&?/g,\"\").replace(/(_hsenc|_hsmi|hsCtaTracking)[^&]+&?/g,\"\").replace(/[\\?&]q\\=[^&]+/g,\"\").replace(/&$/,\"\").replace(/^\\?$/,\"\"),window.location.pathname+a+window.location.hash},a.poll=function(a,b,c,d){var e,f,g;return null==c&&(c=50),null==d&&(d=5e3),f=null,g=(new Date).getTime(),e=function(){return(new Date).getTime()-g>d?void 0:a()?b():(clearTimeout(f),f=setTimeout(e,c))},f=setTimeout(e,1)},a.waitsFor=function(b){return{then:function(c){return a.poll(b,c)}}},a.prototype.nextKey=function(){return this.key+=1},a.scriptFrom=function(a){var b,c,d,e,f;for(e=document.getElementsByTagName(\"script\"),c=0,d=e.length;d>c;c++)if(b=e[c],null!=(f=b.getAttribute(\"src\"))?f.match(a):void 0)return!0;return!1},a.scriptContains=function(a){var b,c,d,e,f;for(e=document.getElementsByTagName(\"script\"),c=0,d=e.length;d>c;c++)if(b=e[c],null!=(f=b.innerHTML)?f.match(a):void 0)return!0;return!1},a.librariesPresent=function(){var b,c,d,e;d=a.libraries,e=[];for(c in d)b=d[c],b.present()&&e.push(c);return e},a.wistiaIframes=function(){var a,b,c,d,e;for(d=document.getElementsByTagName(\"iframe\"),e=[],b=0,c=d.length;c>b;b++)a=d[b],a.src.match(/\\/\\/.*\\.wistia\\..*\\//)&&e.push(a);return e},a.updateWistiaIframes=function(){var a,b,c,d,e,f,g;for(c={method:\"updateProperties\",args:[{params:{pageUrl:this.originalUrl},options:{pageUrl:this.originalUrl}}]},f=this.wistiaIframes(),g=[],d=0,e=f.length;e>d;d++){b=f[d];try{g.push(b.contentWindow.postMessage(c,\"*\"))}catch(h){a=h}}return g},a}(),\"undefined\"!=typeof _freshenUrlAfter&&null!==_freshenUrlAfter?window.freshUrl=new FreshUrl(_freshenUrlAfter):window.dataLayer?dataLayer.push(function(){return window.freshUrl=new FreshUrl(FreshUrl.librariesPresent())}):window.freshUrl=new FreshUrl(FreshUrl.librariesPresent());","\nexport type GA = ((...args: any[]) => void) & {\n getAll(): GATracker[]\n}\n\nexport interface GATracker {\n get(name: 'name'): string\n}\n\ndeclare global {\n interface Window {\n ga?: GA\n dataLayer?: any[]\n }\n}\n\n/**\n * This function sends a google analytics event, but waits until google analytics is ready and a tracker has been\n * defined.\n *\n * @param event The event to send.\n *\n * Event example:\n * ```\n * name: 'ministry_interest_form',\n * args: {\n * ministry: \"ministry name\",\n * }\n * ```\n */\nexport function gaSend(event: Record) {\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push({\n 'event': event.name,\n ...event.args,\n })\n}\n\nexport function gaCustomEventButtonsInit() {\n // Look for any buttons marked to send plausible events. When clicked, send the event to google analytics too.\n //\n // TODO: if we decide to go with Plausible, delete this. If we decide to stay with GA4, update the class name\n $('[class*=plausible-event-name]').on('click', function() {\n const classes = this.className.split(/\\s+/)\n const event = classes.find((cls) => cls.startsWith('plausible-event-name='))\n if (!event) return\n\n const eventName = event.split('=')[1]\n gaSend({ name: eventName, args: {} })\n })\n}\n\nexport function gaContentGroupInit() {\n if ('WCC' in window && (window.WCC as any).gaContentGroup) {\n window.ga('set', 'contentGroup', (window.WCC as any).gaContentGroup)\n }\n}\n","import * as $ from 'jquery'\nimport 'popper.js'\nimport 'bootstrap'\nimport WCC from 'wcc'\nimport { set } from 'mockdate'\n\nimport { toggleVisibleByCss } from '../javascripts/lib/showHide'\nimport { autoplayInit } from '../javascripts/application/autoplay'\nimport campusInit from '../javascripts/application/campus'\nimport emailCapture from '../javascripts/application/email-capture'\nimport eventsPageInit from '../javascripts/application/events-page'\nimport fullWidthHero from '../javascripts/application/full-width-hero'\nimport ga_collapse from '../javascripts/application/ga_collapse'\nimport initiativesCarousel from '../javascripts/application/initiatives-carousel'\nimport previewInit from '../javascripts/application/preview'\nimport scriptureQuote from '../javascripts/application/scripture-quote'\nimport sectionMenuScroll from '../javascripts/application/section-menu-scroll'\nimport { sharingInit } from '../javascripts/application/sharing'\nimport { signInInit } from '../javascripts/application/sign-in'\nimport toastInit from '../javascripts/application/toast'\nimport transcript from '../javascripts/application/transcript'\nimport { viewportInit } from '../javascripts/application/viewport'\nimport { parallax } from '../javascripts/application/parallax'\nimport flipCardsInit from '../javascripts/application/flip-cards'\nimport modalOpenerInit, { modalVideoCloserInit } from '../javascripts/application/modal'\nimport reelPlayerInit from '../javascripts/application/reel-player'\n\nimport '../../../vendor/github.com/wistia/fresh-url'\nimport { gaContentGroupInit, gaCustomEventButtonsInit } from '../javascripts/application/googleAnalytics'\n\n// This has to happen before `numeric-filters.tsx` gets loaded\nif (WCC.mockDate) {\n set(WCC.mockDate)\n}\n\n$(document).ready(() => {\n // JS needed for functionality\n campusInit()\n emailCapture()\n scriptureQuote()\n ga_collapse()\n initiativesCarousel()\n fullWidthHero()\n sectionMenuScroll()\n transcript()\n previewInit()\n toastInit()\n eventsPageInit()\n signInInit()\n autoplayInit()\n viewportInit()\n sharingInit()\n parallax()\n celebrate25Init()\n gaCustomEventButtonsInit()\n addToCalendarInit()\n gaContentGroupInit()\n\n // https://stackoverflow.com/a/13170350/2192243\n $(document.body).on('click', '[data-href]', function() {\n const href = $(this).data('href')\n if (href && href.length > 0) {\n window.location = href\n }\n })\n\n // Top nav dropdown headers which are themselves a link\n // 1st click - open the dropdown.\n // 2nd click - follow the link.\n $('a[href][data-toggle=\"dropdown\"]').on('click', function() {\n if ($(this).attr('aria-expanded') == 'true') {\n const href = $(this).attr('href')\n if (href && href.length > 0) {\n window.location = href as any\n }\n }\n })\n\n // Need to rerun reftagger once the async load is done.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $(document).on('render_async_load', function(_event: any) {\n if(window.refTagger?.tag) {\n window.refTagger.tag(document.body)\n }\n })\n\n // https://getbootstrap.com/docs/4.3/components/tooltips/\n if ($.prototype.tooltip) {\n $('[data-toggle=\"tooltip\"]').tooltip()\n }\n\n // show/hide tabs by day of week\n toggleVisibleByCss(`[data-weekday=\"${new Date().getDay()}\"]`, '[data-weekday]')\n\n // Do this after we have loaded the page and initialized all the above javascript\n // because some of the above code wants to check the utm_source and other query params\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n import('../../../vendor/github.com/wistia/fresh-url')\n\n function celebrate25Init() {\n $('.widget-stories-card-deck').length && flipCardsInit()\n $('.story-modal').length && modalOpenerInit()\n $('.reel').length && reelPlayerInit()\n $('.modal-video, .modal-reel').length && modalVideoCloserInit()\n }\n\n function addToCalendarInit() {\n // Check if the device is an iPhone\n const isIphone = /iPhone/.test(navigator.userAgent) && !(window as any).MSStream\n\n // If the device is not an iPhone, update the \"Add to Calendar\" link to use the `data-ical-href` attribute value\n if (!isIphone) {\n const addToCalendarLink = document.querySelector('a[data-ical-href]')\n if (addToCalendarLink) {\n const href = addToCalendarLink.getAttribute('data-ical-href')\n if (href) {\n addToCalendarLink.setAttribute('href', href)\n }\n }\n }\n }\n})\n"],"file":"assets/application-66b2a469.js"}