1(function () { 2'use strict'; 3 4const compassState = window.bbccCompassState || (window.bbccCompassState = { 5 mediaQuery: null, 6 mediaHandler: null, 7 retryTimer: null, 8 shellScrollTarget: null, 9 shellScrollHandler: null, 10 shellScrollSettleTimer: null 11}); 12 13const bindCompassCompactNavigation = () => { 14 const mainNav = document.getElementById('mainNav'); 15 const scrollTarget = document.body; 16 17 if (!mainNav || !scrollTarget) { 18 return; 19 } 20 21 if (compassState.shellScrollHandler) { 22 window.removeEventListener('scroll', compassState.shellScrollHandler); 23 if (compassState.shellScrollTarget) { 24 compassState.shellScrollTarget.removeEventListener('scroll', compassState.shellScrollHandler); 25 } 26 } 27 28 if (compassState.shellScrollSettleTimer) { 29 clearTimeout(compassState.shellScrollSettleTimer); 30 } 31 32 const updateCompactState = () => { 33 const scrollTop = Math.max( 34 scrollTarget.scrollTop || 0, 35 document.documentElement.scrollTop || 0, 36 window.scrollY || 0 37 ); 38 mainNav.classList.toggle('bbcc-nav-compact', scrollTop > 60); 39 }; 40 41 compassState.shellScrollHandler = () => { 42 updateCompactState(); 43 clearTimeout(compassState.shellScrollSettleTimer); 44 compassState.shellScrollSettleTimer = setTimeout(updateCompactState, 120); 45 }; 46 47 compassState.shellScrollTarget = scrollTarget; 48 compassState.shellScrollTarget.addEventListener('scroll', compassState.shellScrollHandler, { passive: true }); 49 window.addEventListener('scroll', compassState.shellScrollHandler, { passive: true }); 50 updateCompactState(); 51}; 52 53const migrateCompassNavigationIcons = () => { 54 const iconMap = [ 55 ['#mainNav .fa.fa-angle-down', 'fa-angle-down', 'ti-chevron-down'], 56 ['#mainNav .fa.fa-sign-in', 'fa-sign-in', 'ti-login-2'], 57 ['#mainNav .fa.fa-sign-out', 'fa-sign-out', 'ti-logout-2'] 58 ]; 59 60 iconMap.forEach(([selector, fontAwesomeClass, tablerClass]) => { 61 document.querySelectorAll(selector).forEach((icon) => { 62 icon.classList.remove('fa', fontAwesomeClass); 63 icon.classList.add('ti', tablerClass); 64 }); 65 }); 66 67 const logoutLink = document.querySelector('#mainNav .nav-profile-logout'); 68 if (logoutLink) { 69 logoutLink.setAttribute('aria-label', 'Log out'); 70 logoutLink.setAttribute('title', 'Log out'); 71 } 72 73 const navbarToggle = document.querySelector('#mainNav .navbar-toggle'); 74 if (navbarToggle) { 75 navbarToggle.setAttribute('aria-controls', 'compass-nav'); 76 if (!navbarToggle.getAttribute('aria-label')) { 77 navbarToggle.setAttribute('aria-label', 'Toggle navigation'); 78 } 79 } 80}; 81
82const initCompass = (state = 'load') => { 83 84 var $mainNav = $("#mainNav"); 85 migrateCompassNavigationIcons(); 86 bindCompassCompactNavigation(); 87 var $compassNav = $('#compass-nav'); 88 89 function removeInvalidCollapseAria() { 90 // Bootstrap 3 mirrors aria-expanded onto the collapsible container. 91 // Modern ARIA permits it on the controlling button, not this div. 92 $compassNav.removeAttr('aria-expanded'); 93 } 94 95 $compassNav 96 .off('show.bs.collapse.compass hide.bs.collapse.compass shown.bs.collapse.compass hidden.bs.collapse.compass') 97 .on('show.bs.collapse.compass', function () { 98 $mainNav.addClass("navOpen"); 99 }) 100 .on('hide.bs.collapse.compass', function () { 101 $mainNav.removeClass("navOpen"); 102 }) 103 .on('shown.bs.collapse.compass hidden.bs.collapse.compass', function () { 104 removeInvalidCollapseAria(); 105 }); 106 removeInvalidCollapseAria(); 107 108 // Highlight the top nav as scrolling occurs 109 $('body').scrollspy({ 110 target: '.navbar-fixed-top', 111 offset: 51 112 }); 113 114 // Closes the Responsive Menu on Menu Item Click 115 $('#compass-nav li a:not(.dropdown-toggle)').off('click.compassNav').on('click.compassNav', function() { 116 //$('.navbar-toggle:visible').click(); 117 $mainNav.removeClass("navOpen"); 118 }); 119 120 // Offset for Main Navigation 121 $('#mainNav').affix({ 122 offset: { 123 top: 100 124 } 125 }) 126 127 var backTop = document.getElementsByClassName('js-compass-top')[0], 128 // browser window scroll (in pixels) after which the "back to top" link is shown 129 offset = 300, 130 //browser window scroll (in pixels) after which the "back to top" link opacity is reduced 131 offsetOpacity = 1200, 132 scrollDuration = 700, 133 scrolling = false; 134 if ( backTop && !backTop.getAttribute('data-compass-back-top-bound') ) { 135 backTop.setAttribute('data-compass-back-top-bound', 'true'); 136 // Update back-to-top visibility on scrolling. 137 window.addEventListener("scroll", function() { 138 if ( !scrolling ) { 139 scrolling = true; 140 (!window.requestAnimationFrame) ? setTimeout(checkBackToTop, 250) : window.requestAnimationFrame(checkBackToTop); 141 } 142 }); 143 // Smooth scroll to top. 144 backTop.addEventListener('click', function(event) { 145 event.preventDefault(); 146 (!window.requestAnimationFrame) ? window.scrollTo(0, 0) : scrollTop(scrollDuration); 147 }); 148 } 149 150 function checkBackToTop() { 151 var windowTop = window.scrollY || document.documentElement.scrollTop; 152 ( windowTop > offset ) ? addClass(backTop, 'compass-top--show') : removeClass(backTop, 'compass-top--show', 'compass-top--fade-out'); 153 ( windowTop > offsetOpacity ) && addClass(backTop, 'compass-top--fade-out'); 154 scrolling = false; 155 } 156 157 function scrollTop(duration) { 158 var start = window.scrollY || document.documentElement.scrollTop, 159 currentTime = null; 160 161 var animateScroll = function(timestamp){ 162 if (!currentTime) currentTime = timestamp; 163 var progress = timestamp - currentTime; 164 var val = Math.max(Math.easeInOutQuad(progress, start, -start, duration), 0); 165 window.scrollTo(0, val); 166 if(progress < duration) { 167 window.requestAnimationFrame(animateScroll); 168 } 169 }; 170 171 window.requestAnimationFrame(animateScroll); 172 } 173 174 Math.easeInOutQuad = function (t, b, c, d) { 175 t /= d/2; 176 if (t < 1) return c/2*t*t + b; 177 t--; 178 return -c/2 * (t*(t-2) - 1) + b; 179 }; 180 181 //class manipulations - needed if classList is not supported 182 function hasClass(el, className) { 183 if (el.classList) return el.classList.contains(className); 184 else return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)')); 185 } 186 function addClass(el, className) { 187 var classList = className.split(' '); 188 if (el.classList) el.classList.add(classList[0]); 189 else if (!hasClass(el, classList[0])) el.className += " " + classList[0]; 190 if (classList.length > 1) addClass(el, classList.slice(1).join(' '));
191 } 192 function removeClass(el, className) { 193 var classList = className.split(' '); 194 if (el.classList) el.classList.remove(classList[0]); 195 else if(hasClass(el, classList[0])) { 196 var reg = new RegExp('(\\s|^)' + classList[0] + '(\\s|$)'); 197 el.className=el.className.replace(reg, ' '); 198 } 199 if (classList.length > 1) removeClass(el, classList.slice(1).join(' ')); 200 } 201 202 /**************************************/ 203 /*** Multi-Level Drop Down Addition ***/ 204 /**************************************/ 205 206 // grab user's desktop-to-mobile width preference 207 let compassMaxMobileWidth = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--mobile-menu'), 10) + 1; 208 209 // Check if responsive menu need 210 function screenIsCompassMobile(max_width) { 211 "use strict"; 212 var rez = false; 213 if (max_width > 0) { 214 var w = window.innerWidth; 215 if (w === undefined) { 216 w = jQuery(window).width()+(jQuery(window).height() < jQuery(document).height() || jQuery(window).scrollTop() > 0 ? 16 : 0); 217 } 218 rez = max_width > w; 219 } 220 return rez; 221 } 222 223 let superfish = () => { 224 if (screenIsCompassMobile(compassMaxMobileWidth)) { 225 } else { 226 $('ul.sf-menu').superfish({ 227 delay: 0, 228 animation: { 229 opacity: 'show' 230 }, 231 animationOut: { 232 opacity: 'hide' 233 }, 234 speed: 'fast', 235 speedOut: 'fast',
236 autoArrows: false, 237 dropShadows: true, 238 onBeforeShow: function(ul) { 239 if ($(this).parents("ul").length > 1){ 240 var w = $(window).width(); 241 var par_offset = $(this).parents("ul").offset().left; 242 var par_width = $(this).parents("ul").outerWidth(); 243 var ul_width = $(this).outerWidth(); 244 if (par_offset+par_width+ul_width > w-20 && par_offset-ul_width > 0) { 245 $(this).addClass('submenu_left'); 246 } else { 247 $(this).removeClass('submenu_left'); 248 } 249 } 250 }, 251 onBeforeHide: function(ul) {} 252 }); 253 }; 254 } 255 256 function bindMobileSubmenus() { 257 $('.dropdown-submenu a.dropdown-submenu-toggle') 258 .off('click.compassSubmenu') 259 .on('click.compassSubmenu', function(e) { 260 $(this).toggleClass('open'); 261 $(this).next('ul').slideToggle(); 262 e.stopPropagation(); 263 e.preventDefault(); 264 }); 265 } 266 267 // The accessible split label/toggle markup places the Bootstrap toggle 268 // inside .nav-split instead of directly inside the dropdown <li>. Bootstrap 269 // 3 consequently adds .open to the wrapper and leaves the actual menu 270 // hidden. Own the top-level state here so hover, keyboard and touch all 271 // update the element Bootstrap's CSS expects. 272 function bindSplitNavigation() { 273 var $nav = $('#compass-nav'); 274 var $items = $nav.find('.navbar-nav > li.dropdown'); 275 276 function setOpen($item, open) { 277 var $toggle = $item.children('.nav-split').find('> .nav-split__toggle'); 278 $item.toggleClass('open', open); 279 $item.children('.nav-split').toggleClass('open', open); 280 $toggle.attr('aria-expanded', open ? 'true' : 'false'); 281 282 var $menu = $item.children('.dropdown-menu'); 283 if (open) { 284 $menu.stop(true, true).show(); 285 } else { 286 $item.removeClass('sfHover'); 287 $menu.stop(true, true).removeAttr('style'); 288 } 289 } 290 291 function closeSiblings($item) { 292 $item.siblings('li.dropdown').each(function () { 293 setOpen($(this), false); 294 }); 295 } 296 297 $items.off('.bbccSplitNav'); 298 $items.children('.nav-split').find('> .nav-split__toggle').off('.bbccSplitNav'); 299 $(document).off('click.bbccSplitNav'); 300 301 $items 302 .on('mouseenter.bbccSplitNav', function () { 303 if (!screenIsCompassMobile(compassMaxMobileWidth)) { 304 closeSiblings($(this)); 305 setOpen($(this), true); 306 } 307 }) 308 .on('mouseleave.bbccSplitNav', function () { 309 if (!screenIsCompassMobile(compassMaxMobileWidth)) { 310 setOpen($(this), false); 311 } 312 }) 313 .on('focusout.bbccSplitNav', function () { 314 var $item = $(this); 315 window.setTimeout(function () { 316 if (!$item.find(':focus').length) setOpen($item, false); 317 }, 0); 318 }) 319 .on('keydown.bbccSplitNav', function (event) { 320 var $item = $(this); 321 var $targetToggle = $(event.target).closest('.nav-split__toggle'); 322 323 if ($targetToggle.length && (event.key === 'Enter' || event.key === ' ')) { 324 event.preventDefault(); 325 event.stopPropagation(); 326 $targetToggle.trigger('click'); 327 return; 328 } 329 330 if (event.key !== 'Escape') return; 331 332 event.preventDefault(); 333 event.stopPropagation(); 334 $item.children('.nav-split').find('> .nav-split__toggle').focus(); 335 setOpen($item, false); 336 }); 337 338 $items.children('.nav-split').find('> .nav-split__toggle') 339 .on('click.bbccSplitNav', function (event) { 340 event.preventDefault(); 341 event.stopImmediatePropagation(); 342 var $item = $(this).closest('li.dropdown'); 343 var open = !$item.hasClass('open'); 344 closeSiblings($item); 345 setOpen($item, open); 346 }); 347 348 $(document).on('click.bbccSplitNav', function (event) { 349 if (!$(event.target).closest('#compass-nav .navbar-nav > li.dropdown').length) { 350 $items.each(function () { setOpen($(this), false); }); 351 } 352 }); 353 } 354 355 // Make Secondary Dropdown on Click 356 if (screenIsCompassMobile(compassMaxMobileWidth)) { 357 // initiate bootstrap default dropdowns 358 $('#compass-nav .dropdown-toggle').dropdown(); 359 bindMobileSubmenus(); 360 } 361 362 // Clear secondary dropdowns on.Hidden 363 $('#compass-nav').off('hidden.bs.dropdown.compass').on('hidden.bs.dropdown.compass', function () { 364 $('.navbar-nav .dropdown-submenu a.dropdown-submenu-toggle').removeClass('open'); 365 $('.navbar-nav .dropdown-submenu ul.dropdown-menu').removeAttr('style'); 366 }); 367 368 // Create a condition that targets viewports at least 768px wide 369 const mediaQuery = window.matchMedia('(min-width: '+compassMaxMobileWidth+'px)') 370 371 function handleTabletChange(e) { 372 // Check if the media query is true 373 $('ul.sf-menu').superfish('destroy'); 374 $('.dropdown-submenu a.dropdown-submenu-toggle').off('click.compassSubmenu'); 375 376 if (e.matches) { 377 // Then log the following message to the console 378 $("#mainNav button.navbar-toggle").attr("aria-expanded","fal
378se").addClass("collapsed"); 379 $('#compass-nav').collapse('hide'); 380 $('.dropdown-submenu a.dropdown-submenu-toggle').removeClass('open'); 381 superfish(); 382 } else { 383 // initiate bootstrap default dropdowns 384 $('#compass-nav .dropdown-toggle').dropdown(); 385 386 bindMobileSubmenus(); 387 } 388 } 389 390 // Add slideDown animation to Bootstrap dropdown when expanding. 391 $('#compass-nav .dropdown').off('show.bs.dropdown.compass').on('show.bs.dropdown.compass', function() { 392 if (screenIsCompassMobile(compassMaxMobileWidth)) { 393 $(this).find('.dropdown-menu').first().stop(true, true).slideDown(); 394 } 395 }); 396 // Add slideUp animation to Bootstrap dropdown when collapsing. 397 $('#compass-nav .dropdown').off('hide.bs.dropdown.compass').on('hide.bs.dropdown.compass', function() { 398 if (screenIsCompassMobile(compassMaxMobileWidth)) { 399 $(this).find('.dropdown-menu').first().stop(true, true).slideUp(); 400 } 401 }); 402 403 // Keep exactly one responsive breakpoint listener across Rock partial-page loads. 404 if (compassState.mediaQuery && compassState.mediaHandler) { 405 compassState.mediaQuery.removeEventListener('change', compassState.mediaHandler); 406 } 407 compassState.mediaQuery = mediaQuery; 408 compassState.mediaHandler = handleTabletChange; 409 compassState.mediaQuery.addEventListener('change', compassState.mediaHandler); 410 handleTabletChange(compassState.mediaQuery); 411 bindSplitNavigation(); 412} 413 414const runCompass = (state = 'reload') => { 415 if (!window.jQuery) { 416 if (compassState.retryTimer === null) { 417 compassState.retryTimer = window.setTimeout(function () { 418 compassState.retryTimer = null; 419 runCompass(state); 420 }, 100); 421 } 422 return; 423 } 424 425 initCompass(state); 426}; 427 428// Initialize the full page, then safely refresh bindings after Rock partial-page loads. 429runCompass('load'); 430Sys.Application.add_load(function () { 431 runCompass('reload'); 432}); 433 434})(); 435 436/* BBCC2026 remaining-page cleanup adapter â 2026-08-03 */ 437(function () { 438 "use strict"; 439 440 var state = window.BBCC2026RemainingPageAdapter || (window.BBCC2026RemainingPageAdapter = { 441 bound: false 442 }); 443 444 function removeStrayMarkdownFence() { 445 var content = document.querySelector("#bid_8853 .content-split__text"); 446 if (!content) return; 447 448 Array.prototype.slice.call(content.childNodes).forEach(function (node) { 449 if (node.nodeType === 3 && node.nodeValue.trim() === "```") { 450 content.removeChild(node); 451 } 452 }); 453 } 454 455 function upgradeAuditionWorkflowLink() { 456 var link = document.querySelector('#bid_8780 a[href^="http://my.bbcc.church/ExternalWorkflowEntry/"]'); 457 if (link) link.href = link.href.replace(/^http:\/\//i, "https://"); 458 } 459 460 function enhanceRemainingPages() { 461 removeStrayMarkdownFence(); 462 upgradeAuditionWorkflowLink(); 463 } 464 465 enhanceRemainingPages(); 466 467 if (!state.bound) { 468 state.bound = true; 469 470 if (document.readyState === "loading") { 471 document.addEventListener("DOMContentLoaded", enhanceRemainingPages); 472 } 473 474 if (window.Sys && Sys.Application) { 475 Sys.Application.add_load(enhanceRemainingPages); 476 } 477 } 478})(); 479/* BBCC2026 leadership card/dialog accessibility adapter â 2026-08-02 */ 480(function () { 481 "use strict"; 482 483 var state = window.bbccLeadershipA11y || (window.bbccLeadershipA11y = { 484 bound: false, 485 opener: null 486 }); 487 488 function enhanceLeadership() { 489 var modal = document.getElementById("staffModal"); 490 if (!modal) return; 491 492 var name = document.getElementById("staffModalName"); 493 var close = modal.querySelector(".staff-modal__close"); 494 495 modal.setAttribute("role", "dialog"); 496 modal.setAttribute("aria-modal", "true"); 497 modal.setAttribute("tabindex", "-1"); 498 499 if (name) { 500 name.id = "staffModalName"; 501 modal.setAttribute("aria-labelledby", name.id); 502 } 503 504 if (close) close.setAttribute("aria-label", "Close leadership profile"); 505 506 Array.prototype.forEach.call(document.querySelectorAll(".staff-card"), function (card) { 507 card.setAttribute("role", "button"); 508 card.setAttribute("tabindex", "0"); 509 card.setAttribute("aria-haspopup", "dialog"); 510 var cardName = card.getAttribute("data-name") || "leadership profile"; 511 card.setAttribute("aria-label", "Read more about " + cardName); 512 });
513 } 514 515 function bindOnce() { 516 if (state.bound) return; 517 state.bound = true; 518 519 document.addEventListener("keydown", function (event) { 520 if (event.key === "Escape" && state.opener) { 521 window.setTimeout(function () { 522 if (state.opener && document.contains(state.opener)) state.opener.focus(); 523 }, 0); 524 } 525 526 var card = event.target && event.target.closest ? event.target.closest(".staff-card") : null; 527 if (card && (event.key === "Enter" || event.key === " ")) { 528 event.preventDefault(); 529 state.opener = card; 530 card.click(); 531 window.setTimeout(function () { 532 var close = document.querySelector("#staffModal.is-open .staff-modal__close"); 533 if (close) close.focus(); 534 }, 0); 535 } 536 }); 537 538 document.addEventListener("click", function (event) { 539 var card = event.target && event.target.closest ? event.target.closest(".staff-card") : null; 540 if (card) { 541 state.opener = card; 542 window.setTimeout(function () { 543 var close = document.querySelector("#staffModal.is-open .staff-modal__close"); 544 if (close) close.focus(); 545 }, 0); 546 return; 547 } 548 549 var closesModal = event.target && event.target.closest && 550 event.target.closest("#staffModal .staff-modal__close, #staffModal .staff-modal__overlay"); 551 if (closesModal && state.opener) { 552 window.setTimeout(function () { 553 if (state.opener && document.contains(state.opener)) state.opener.focus(); 554 }, 0); 555 } 556 }); 557 } 558 559 function init() { 560 enhanceLeadership(); 561 bindOnce(); 562 } 563 564 if (document.readyState === "loading") { 565 document.addEventListener("DOMContentLoaded", init); 566 } else { 567 init(); 568 } 569 570 if (window.Sys && Sys.Application) { 571 Sys.Application.add_load(enhanceLeadership); 572 } 573})(); 574 575/* BBCC2026 activation-readiness semantic adapter â 2026-08-03 */ 576(function () { 577 "use strict"; 578 579 var state = window.BBCC2026ActivationReadiness || (window.BBCC2026ActivationReadiness = { 580 bound: false 581 }); 582 583 function ensureMainLandmark() { 584 if (document.querySelector("main, [role='main']")) return; 585 var mainZone = document.querySelector("#zone-main"); 586 if (mainZone) mainZone.setAttribute("role", "main"); 587 } 588 589 ensureMainLandmark(); 590 591 if (!state.bound) { 592 state.bound = true; 593 594 if (document.readyState === "loading") { 595 document.addEventListener("DOMContentLoaded", ensureMainLandmark); 596 } 597 598 if (window.Sys && Sys.Application) { 599 Sys.Application.add_load(ensureMainLandmark); 600 } 601 } 602})(); 603 604 605/* BBCC2026 poster-first responsive home video â 2026-08-03 */ 606(function () { 607 "use strict"; 608 609 var state = window.BBCC2026ResponsiveHeroVideo || (window.BBCC2026ResponsiveHeroVideo = { 610 queued: false 611 }); 612 613 function startHeroVideo() { 614 var hero = document.querySelector("#bid_6217 .page-hero .bbcc-hero-media"); 615 if (!hero || hero.querySelector(".bbcc-hero-video")) return; 616 617 var desktopViewport = window.matchMedia && window.matchMedia("(min-width: 1200px)").matches; 618 var reducedMotion = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches; 619 var saveData = navigator.connection && navigator.connection.saveData; 620 /* Keep the responsive poster on phones and tablets. The decorative 1.8 MB 621 video is reserved for wide screens after initial page load. */ 622 if (!desktopViewport || reducedMotion || saveData) return; 623 624 var video = document.createElement("video"); 625 video.className = "bbcc-hero-video"; 626 video.muted = true; 627 video.defaultMuted = true; 628 video.loop = true; 629 video.playsInline = true; 630 video.autoplay = true; 631 video.preload = "metadata"; 632 video.poster = "/Content/images/frontofchurch-q65.webp"; 633 video.setAttribute("muted", ""); 634 video.setAttribute("playsinline", ""); 635 video.setAttribute("webkit-playsinline", ""); 636 video.setAttribute("aria-hidden", "true"); 637 video.setAttribute("tabindex", "-1"); 638 639 var source = document.createElement("source"); 640 source.src = "/Content/images/bbcchero2.mp4"; 641 source.type = "video/mp4"; 642 video.appendChild(source); 643 644 function revealWhenPlaying() { 645 var playAttempt = video.play(); 646 if (playAttempt && typeof playAttempt.then === "function") { 647 playAttempt.then(function () { 648 video.classList.add("is-ready"); 649 }).catch(function () { 650 /* The preloaded poster remains visible if autoplay is blocked. */ 651 }); 652 } 653 } 654 655 video.addEventListener("canplay", revealWhenPlaying, { once: true });
656 hero.appendChild(video); 657 video.load(); 658 } 659 660 function queueHeroVideo() { 661 if (document.querySelector("#bid_6217 .bbcc-hero-video")) return; 662 if (state.queued) return; 663 state.queued = true; 664 665 function runAfterInitialLoad() { 666 function launchVideo() { 667 state.queued = false; 668 startHeroVideo(); 669 } 670 671 if (window.requestIdleCallback) { 672 window.requestIdleCallback(launchVideo, { timeout: 2500 }); 673 } else { 674 window.setTimeout(launchVideo, 650); 675 } 676 } 677 678 if (document.readyState === "complete") { 679 runAfterInitialLoad(); 680 } else { 681 window.addEventListener("load", runAfterInitialLoad, { once: true }); 682 } 683 } 684 685 if (document.readyState === "loading") { 686 document.addEventListener("DOMContentLoaded", queueHeroVideo, { once: true }); 687 } else { 688 queueHeroVideo(); 689 } 690 691 if (window.Sys && Sys.Application) { 692 Sys.Application.add_load(queueHeroVideo); 693 } 694})(); 695/* BBCC2026 shared-shell quick wins â 2026-08-03 */ 696(function () { 697 "use strict"; 698 699 var state = window.BBCC2026SharedShellQuickWins || (window.BBCC2026SharedShellQuickWins = { 700 bound: false 701 }); 702 703 function enhanceSharedShell() { 704 var eventWrapper = document.querySelector("#bid_8892 .event-list-wrapper"); 705 var eventGrid = eventWrapper && eventWrapper.querySelector(".event-grid"); 706 707 if (eventWrapper && eventGrid && !eventWrapper.querySelector(".bbcc-event-collection-heading")) { 708 var eventHeading = document.createElement("h2"); 709 eventHeading.className = "bbcc-event-collection-heading"; 710 eventHeading.textContent = "Upcoming Events"; 711 eventWrapper.insertBefore(eventHeading, eventGrid); 712 } 713 714 var giveHeading = document.querySelector("#bid_8266 h1"); 715 if (giveHeading && giveHeading.textContent.trim() === "When You Give,Good Things Happen") { 716 giveHeading.setAttribute("aria-label", "When You Give, Good Things Happen"); 717 } 718 } 719 720 enhanceSharedShell(); 721 722 if (!state.bound) { 723 state.bound = true; 724 725 if (document.readyState === "loading") { 726 document.addEventListener("DOMContentLoaded", enhanceSharedShell); 727 } 728 729 if (window.Sys && Sys.Application) { 730 Sys.Application.add_load(enhanceSharedShell); 731 } 732 } 733})(); 734 735 736/* BBCC2026 homepage first-visit journey â 2026-08-03 */ 737(function () { 738 "use strict"; 739 740 function isHomePage() { 741 var path = (window.location.pathname || "/").replace(/\/+$/, "") || "/"; 742 return path === "/" || path.toLowerCase() === "/home"; 743 } 744 745 function placeAfter(referenceNode, node) { 746 if (referenceNode && node && referenceNode.nextSibling !== node) { 747 referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling); 748 } 749 } 750 751 function applyHomepageJourney() { 752 if (!isHomePage()) { 753 return; 754 } 755 756 var welcome = document.getElementById("bid_8633"); 757 var location = document.getElementById("bid_8658"); 758 var duplicateGathering = document.getElementById("bid_8659"); 759 var kids = document.getElementById("bid_8632"); 760 var eventsTitle = document.getElementById("bid_8941"); 761 var events = document.getElementById("bid_8945"); 762 var eventsMore = document.getElementById("bid_8946"); 763 var message = document.getElementById("bid_8454"); 764 var prayer = document.getElementById("bid_8656"); 765 766 if (!welcome || !location || !welcome.parentNode) { 767 return; 768 } 769 770 var zone = welcome.parentNode; 771 var intro = zone.querySelector(".bbcc-home-intro"); 772 if (!intro) { 773 intro = document.createElement("div"); 774 intro.className = "bbcc-home-intro"; 775 intro.setAttribute("data-bbcc-home-group", "first-visit"); 776 zone.insertBefore(intro, welcome); 777 } 778 intro.appendChild(welcome); 779 intro.appendChild(location); 780 781 if (duplicateGathering) { 782 duplicateGathering.hidden = true; 783 duplicateGathering.setAttribute("aria-hidden", "true"); 784 } 785 786 var eventsGroup = zone.querySelector(".bbcc-home-events"); 787 if (!eventsGroup) { 788 eventsGroup = document.createElement("section"); 789 eventsGroup.className = "bbcc-home-events"; 790 eventsGroup.setAttribute("aria-label", "Upcoming events"); 791 } 792 if (eventsTitle) eventsGroup.appendChild(eventsTitle); 793 if (events) eventsGroup.appendChild(events); 794 if (eventsMore) eventsGroup.appendChild(eventsMore); 795 796 var cursor = intro; 797 [kids, message, eventsGroup, prayer].forEach(function (node) { 798 if (node) { 799 placeAfter(cursor, node); 800 cursor = node; 801 } 802 });
803 804 document.documentElement.classList.add("bbcc-home-journey-ready"); 805 } 806 807 if (document.readyState === "loading") { 808 document.addEventListener("DOMContentLoaded", applyHomepageJourney); 809 } else { 810 applyHomepageJourney(); 811 } 812 813 if (window.Sys && Sys.Application && typeof Sys.Application.add_load === "function") { 814 Sys.Application.add_load(applyHomepageJourney); 815 } 816})(); 817 818 819 820/* BBCC2026 homepage first-visit repeat-load normalization â 2026-08-03 */ 821(function () { 822 "use strict"; 823 824 function normalizeHomepageJourney() { 825 var path = (window.location.pathname || "/").replace(/\/+$/, "") || "/"; 826 if (path !== "/" && path.toLowerCase() !== "/home") { 827 return; 828 } 829 830 var welcome = document.getElementById("bid_8633"); 831 var location = document.getElementById("bid_8658"); 832 var kids = document.getElementById("bid_8632"); 833 var message = document.getElementById("bid_8454"); 834 var eventsTitle = document.getElementById("bid_8941"); 835 var events = document.getElementById("bid_8945"); 836 var eventsMore = document.getElementById("bid_8946"); 837 var prayer = document.getElementById("bid_8656"); 838 var duplicateGathering = document.getElementById("bid_8659"); 839 var zone = welcome && welcome.closest(".zone-content"); 840 841 if (!zone || !location) { 842 return; 843 } 844 845 var introGroups = Array.prototype.slice.call(zone.querySelectorAll(".bbcc-home-intro")); 846 var intro = introGroups[0]; 847 if (!intro) { 848 intro = document.createElement("div"); 849 intro.className = "bbcc-home-intro"; 850 intro.setAttribute("data-bbcc-home-group", "first-visit"); 851 zone.insertBefore(intro, welcome); 852 } 853 intro.appendChild(welcome); 854 intro.appendChild(location); 855 introGroups.slice(1).forEach(function (group) { 856 if (group !== intro && !group.children.length) group.remove(); 857 }); 858 859 var eventGroups = Array.prototype.slice.call(zone.querySelectorAll(".bbcc-home-events")); 860 var eventsGroup = eventGroups[0]; 861 if (!eventsGroup) { 862 eventsGroup = document.createElement("section"); 863 eventsGroup.className = "bbcc-home-events"; 864 eventsGroup.setAttribute("aria-label", "Upcoming events"); 865 } 866 if (eventsTitle) eventsGroup.appendChild(eventsTitle); 867 if (events) eventsGroup.appendChild(events); 868 if (eventsMore) eventsGroup.appendChild(eventsMore); 869 eventGroups.slice(1).forEach(function (group) { 870 if (group !== eventsGroup && !group.children.length) group.remove(); 871 }); 872 873 if (duplicateGathering) { 874 duplicateGathering.hidden = true; 875 duplicateGathering.setAttribute("aria-hidden", "true"); 876 } 877 878 var cursor = intro; 879 [kids, message, eventsGroup, prayer].forEach(function (node) { 880 if (!node) return; 881 if (cursor.nextSibling !== node) { 882 cursor.parentNode.insertBefore(node, cursor.nextSibling); 883 } 884 cursor = node; 885 }); 886 } 887 888 if (document.readyState === "loading") { 889 document.addEventListener("DOMContentLoaded", normalizeHomepageJourney); 890 } else { 891 normalizeHomepageJourney(); 892 } 893 894 if (window.Sys && Sys.Application && typeof Sys.Application.add_load === "function") { 895 Sys.Application.add_load(normalizeHomepageJourney); 896 } 897})(); 898 899 900/* The responsive Welcome summary now lives in Rock block 8633. */ 901 902 903 904/* BBCC2026 Step 7 accessibility adapter â 2026-08-03 */ 905(function () { 906 "use strict"; 907 908 function enhanceDuplicateCardLinks() { 909 Array.prototype.forEach.call(document.querySelectorAll(".group-card"), function (card) { 910 var overlay = card.querySelector(".group-card-link"); 911 if (!overlay) return; 912 913 /* The visible View Details link already exposes the same destination. */ 914 overlay.setAttribute("aria-hidden", "true"); 915 overlay.setAttribute("tabindex", "-1"); 916 }); 917 } 918 919 if (document.readyState === "loading") { 920 document.addEventListener("DOMContentLoaded", enhanceDuplicateCardLinks); 921 } else { 922 enhanceDuplicateCardLinks(); 923 } 924 925 if (window.Sys && Sys.Application) { 926 Sys.Application.add_load(enhanceDuplicateCardLinks); 927 } 928})(); 929 930 931/* Pastor Sam editorial theme adapter â preview package, 2026-08-03 */ 932(function () { 933 "use strict"; 934 935 var host = window.location.hostname.toLowerCase(); 936 var blogHosts = ["samuelsutter.com", "www.samuelsutter.com", "suttersaga.com", "www.suttersaga.com", "sam.bbcconline.com"]; 937 938 if (blogHosts.indexOf(host) === -1 || document.body.classList.contains("sam-blog")) { 939 return; 940 } 941 942 var isPost = window.location.pathname.toLowerCase().indexOf("/post/") === 0; 943 document.body.classList.add("sam-blog", isPost ? "sam-blog-post" : "sam-blog-home"); 944 945 function replaceHeading(heading, level) { 946 if (!heading || heading.tagName.toLowerCase() === level) { 947 return heading; 948 } 949 950 var replacement = document.createElement(level);
951 Array.prototype.slice.call(heading.attributes).forEach(function (attribute) { 952 replacement.setAttribute(attribute.name, attribute.value); 953 }); 954 replacement.innerHTML = heading.innerHTML; 955 heading.parentNode.replaceChild(replacement, heading); 956 return replacement; 957 } 958 959 var brandLink = Array.prototype.find.call(document.querySelectorAll("nav a[href='/']"), function (link) { 960 return !!link.querySelector("img"); 961 }); 962 963 if (brandLink) { 964 brandLink.classList.add("sam-blog-brand"); 965 brandLink.setAttribute("aria-label", "Samuel Sutter â Pastor and writer"); 966 brandLink.innerHTML = "<span class=\"sam-blog-brand-name\">Samuel Sutter</span><span class=\"sam-blog-brand-role\">Pastor · Writer</span>"; 967 } 968 969 Array.prototype.forEach.call(document.querySelectorAll("a[href]"), function (link) { 970 var href = link.getAttribute("href") || ""; 971 href = href.replace(/^https:\/\/(www\.)?bbcconline\.com/i, "https://bbcc.church"); 972 href = href.replace(/^https:\/\/BBCCOnline\.com/i, "https://bbcc.church"); 973 link.setAttribute("href", href); 974 }); 975 976 var featuredLinks = Array.prototype.filter.call(document.querySelectorAll("#bid_4180 a"), function (link) { 977 return !!link.querySelector(".hero-header"); 978 }); 979 980 featuredLinks.forEach(function (link, index) { 981 link.classList.add("sam-featured-card"); 982 if (index === 0) { 983 link.classList.add("sam-featured-card-lead"); 984 } 985 var heading = link.querySelector("h1"); 986 if (!isPost && heading) { 987 replaceHeading(heading, "h2"); 988 } 989 }); 990 991 if (!isPost && featuredLinks.length) { 992 var featuredBlock = document.querySelector("#bid_4180"); 993 if (featuredBlock && !document.querySelector(".sam-blog-intro")) { 994 var intro = document.createElement("section"); 995 intro.className = "sam-blog-intro"; 996 intro.setAttribute("aria-labelledby", "sam-blog-title"); 997 intro.innerHTML = "<p class=\"sam-blog-kicker\">Notes from a local pastor</p><h1 id=\"sam-blog-title\">Faith for ordinary life.</h1><p class=\"sam-blog-deck\">Reflections on following Jesus, loving people, raising a family, and noticing grace in the middle of a normal week.</p>"; 998 featuredBlock.parentNode.insertBefore(intro, featuredBlock); 999 } 1000 } 1001 1002 var moreHeading = document.querySelector("#bid_4182 .page-header h1"); 1003 if (moreHeading) { 1004 moreHeading.textContent = isPost ? "More from Pastor Sam" : "Latest writing"; 1005 replaceHeading(moreHeading, "h2"); 1006 } 1007 1008 Array.prototype.forEach.call(document.querySelectorAll("#bid_4182 .blog-card"), function (card) { 1009 var titleLink = card.querySelector(".card-title a"); 1010 var readMoreLink = card.querySelector(".card-link"); 1011 if (titleLink && readMoreLink) { 1012 readMoreLink.setAttribute("href", titleLink.getAttribute("href")); 1013 readMoreLink.textContent = "Read article"; 1014 } 1015 }); 1016}()); 1017 1018 1019/* Pastor Sam detail-layout adapter â 2026-08-03 */ 1020(function(){"use strict";if(!document.body.classList.contains("sam-blog-post"))return;var blocks=document.querySelectorAll("[id^=bid_]");var primary=Array.prototype.find.call(blocks,function(b){return !!b.querySelector(".hero-header");});var more=Array.prototype.find.call(blocks,function(b){return !!b.querySelector(".blog-card");});if(primary)primary.classList.add("sam-blog-primary-block");if(!more)return;more.classList.add("sam-blog-more-block");var heading=more.querySelector(".page-header h1");if(heading){var replacement=document.createElement("h2");replacement.textContent="More from Pastor Sam";heading.parentNode.replaceChild(replacement,heading);}Array.prototype.forEach.call(more.querySelectorAll(".blog-card"),function(card,index){if(index<3&&card.parentElement)card.parentElement.classList.add("sam-related-card-visible");var title=card.querySelector(".card-title a");var link=card.querySelector(".card-link");if(title&&link){link.href=title.href;link.textContent="Read article";}});}()); 1021 1022
1023/* Pastor Sam blog final quality adapter â 2026-08-03 */ 1024(function(){ 1025"use strict"; 1026var hosts=["samuelsutter.com","www.samuelsutter.com","suttersaga.com","www.suttersaga.com","sam.bbcconline.com"]; 1027if(hosts.indexOf(window.location.hostname.toLowerCase())===-1)return; 1028function run(){ 1029if(!document.documentElement.getAttribute("lang"))document.documentElement.setAttribute("lang","en"); 1030var labels={"facebook.com":"Samuel Sutter on Facebook","x.com":"Samuel Sutter on X","instagram.com":"Samuel Sutter on Instagram","youtube.com":"Boynton Beach Community Church on YouTube"}; 1031Array.prototype.forEach.call(document.querySelectorAll("footer a[href]"),function(a){var h=a.getAttribute("href")||"";Object.keys(labels).some(function(d){if(h.indexOf(d)!==-1){a.setAttribute("aria-label",labels[d]);return true;}return false;});}); 1032var top=document.querySelector(".compass-top");if(top)top.setAttribute("aria-label","Back to top"); 1033var icons={"fa-facebook":"ti-brand-facebook","fa-twitter":"ti-brand-x","fa-instagram":"ti-brand-instagram","fa-youtube":"ti-brand-youtube","fa-map-marker":"ti-map-pin","fa-phone":"ti-phone","fa-envelope-o":"ti-mail","fa-calendar":"ti-calendar","fa-chevron-left":"ti-chevron-left","fa-chevron-right":"ti-chevron-right"}; 1034Array.prototype.forEach.call(document.querySelectorAll("i.fa"),function(i){Object.keys(icons).some(function(c){if(i.classList.contains(c)){i.className="ti "+icons[c];i.setAttribute("aria-hidden","true");return true;}return false;});}); 1035Array.prototype.forEach.call(document.querySelectorAll(".seth-style-content img:not([alt])"),function(i){i.setAttribute("alt","");}); 1036if(window.location.pathname.toLowerCase()!=="/about")return; 1037document.body.classList.add("sam-blog-about"); 1038var block=Array.prototype.find.call(document.querySelectorAll("[id^=bid_]"),function(b){return Array.prototype.some.call(b.querySelectorAll("h1,h2"),function(h){return h.textContent.trim().toLowerCase()==="about me";});}); 1039if(!block)return;block.classList.add("sam-blog-primary-block"); 1040var view=block.querySelector(".block-content > div:first-child"),quick=view&&view.querySelector("h1"),about=view&&Array.prototype.find.call(view.querySelectorAll("h2"),function(h){return h.textContent.trim().toLowerCase()==="about me";}); 1041if(view&&quick&&about&&!view.querySelector(".sam-about-layout")){ 1042var layout=document.createElement("div"),article=document.createElement("article"),aside=document.createElement("aside"),q2=document.createElement("h2"),title=document.createElement("h1"),container=about.parentNode,node,next; 1043layout.className="sam-about-layout";article.className="sam-about-content";aside.className="sam-about-links";aside.setAttribute("aria-label","Quick links");q2.innerHTML=quick.innerHTML;quick.parentNode.replaceChild(q2,quick);quick=q2;title.innerHTML=about.innerHTML;about.parentNode.replaceChild(title,about); 1044if(quick.parentNode===container){node=quick;while(node&&node!==title){next=node.nextSibling;aside.appendChild(node);node=next;}}else{aside.appendChild(quick);node=container.firstChild;while(node&&node!==title){next=node.nextSibling;aside.appendChild(node);node=next;}} 1045node=title;while(node){next=node.nextSibling;article.appendChild(node);node=next;}layout.appendChild(article);layout.appendChild(aside);view.appendChild(layout);if(container!==view&&!container.hasChildNodes())container.parentNode.removeChild(container);} 1046Array.prototype.forEach.call(block.querySelectorAll("a[href]"),function(a){var h=a.getAttribute("href")||"";if(h==="#"&&/boynton beach community church/i.test(a.textContent))a.setAttribute("href","https://bbcc.church/");if(h.toLowerCase().indexOf("https:/bbcconline.com/contact")===0)a.setAttribute("href","https://bbcc.church/contact");if(a.target==="_blank")a.setAttribute("rel","noopener noreferrer");}); 1047} 1048if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",run);else run(); 1049}()); 1050 1051(function(){if(window.location.pathname.toLowerCase()!=="/about")return;var c=document.querySelector(".connect-section"),a=document.querySelector(".sam-about-content");if(c&&a&&!a.contains(c))a.appendChild(c);}()); 1052 1053(function(){function move(){if(window.location.pathname.toLowerCase()!=="/about")return;var c=document.querySelector(".connect-section"),a=document.querySelector(".sam-about-content");
1053if(c&&a&&!a.contains(c))a.appendChild(c);}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",move);else move();}()); 1054 1055 1056/* Pastor Sam blog best-practice wrap-up â 2026-08-03 */ 1057(function(){ 1058"use strict"; 1059var hosts=["samuelsutter.com","www.samuelsutter.com","suttersaga.com","www.suttersaga.com","sam.bbcconline.com"];if(hosts.indexOf(window.location.hostname.toLowerCase())===-1)return; 1060function run(){ 1061var path=window.location.pathname.toLowerCase(),isPost=path.indexOf("/post/")===0,isAbout=path==="/about"; 1062var replacements={"TRAINING WITNESSES":"Training Witnesses","FEEDING NEIGHBORS - HOW OUR CHURCH HELPS...":"Feeding Neighbors â How Our Church Helpsâ¦","BACK-TO-SCHOOL PRAYERS: LET'S SURROUND OUR KIDS!":"Back-to-School Prayers: Let's Surround Our Kids!"}; 1063Array.prototype.forEach.call(document.querySelectorAll(".sam-featured-card h2,.sam-blog-post h1"),function(h){var t=h.textContent.trim();if(replacements[t])h.textContent=replacements[t];}); 1064Array.prototype.forEach.call(document.querySelectorAll(".blog-card"),function(card){var title=card.querySelector(".card-title a"),more=card.querySelector(".card-link");if(title&&more)more.setAttribute("aria-label","Read article: "+title.textContent.trim());}); 1065Array.prototype.forEach.call(document.querySelectorAll(".sam-about-links a[href]"),function(a){if(/twitter/i.test(a.textContent)||/twitter\.com/i.test(a.href)){a.textContent="X";a.setAttribute("href","https://x.com/suttersaga");}}); 1066Array.prototype.forEach.call(document.querySelectorAll("footer p"),function(p){if(!p.querySelector("a")&&p.textContent.indexOf("561.733.9400")!==-1)p.innerHTML="<i class=\"ti ti-phone\" aria-hidden=\"true\"></i> <a href=\"tel:+15617339400\">561.733.9400</a>";if(!p.querySelector("a")&&p.textContent.indexOf("[email protected]")!==-1)p.innerHTML="<i class=\"ti ti-mail\" aria-hidden=\"true\"></i> <a href=\"mailto:[email protected]\">[email protected]</a>";}); 1067function metaName(n,c){var m=document.querySelector("meta[name='"+n+"']");if(!m){m=document.createElement("meta");m.setAttribute("name",n);document.head.appendChild(m);}m.setAttribute("content",c);} 1068function metaProperty(n,c){var m=document.querySelector("meta[property='"+n+"']");if(!m){m=document.createElement("meta");m.setAttribute("property",n);document.head.appendChild(m);}m.setAttribute("content",c);} 1069function concise(s){s=s.trim().replace(/\s+/g," ");if(s.length<=158)return s;return s.slice(0,155).replace(/\s+\S*$/,"â¦");} 1070var canonical=document.querySelector("link[rel=canonical]");if(!canonical){canonical=document.createElement("link");canonical.setAttribute("rel","canonical");document.head.appendChild(canonical);}var canonicalUrl="https://samuelsutter.com"+window.location.pathname;canonical.setAttribute("href",canonicalUrl); 1071var title,description;if(isPost){var h=document.querySelector(".sam-blog-primary-block h1,h1"),p=document.querySelector(".sam-blog-primary-block .seth-style-content p,.seth-style-content p");title=(h?h.textContent.trim():"Article")+" | Samuel Sutter";description=p?concise(p.textContent):"Reflections on faith, family, ministry, and everyday life from Samuel Sutter.";}else if(isAbout){title="About Samuel Sutter | Pastor and Writer";description="Meet Samuel Sutter, a pastor and writer reflecting on faith, family, ministry, and the grace of God in ordinary life.";}else{title="Samuel Sutter | Pastor, Writer, and Everyday Faith";description="Reflections from pastor and writer Samuel Sutter on following Jesus, loving people, raising a family, and noticing grace in ordinary life.";} 1072document.title=title;metaName("description",description);metaProperty("og:title",title);metaProperty("og:description",description);metaProperty("og:url",canonicalUrl); 1073} 1074if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",run);else run(); 1075}()); 1076 1077 1078/* BBCC giving post-upgrade cleanup â 2026-08-03 */ 1079(function () { 1080 "use strict"; 1081 1082 var hostname = window.location.hostname.toLowerCase(); 1083 var isMainSite = hostname === "bbcc.church" || hostname === "www.bbcc.church"; 1084 var normalizedPath = window.location.pathname.replace(/\/+$/, "").toLowerCase() || "/"; 1085 var connectGivingUrl = "https://my.bbcc.church/givenow"; 1086 1087 if (!isMainSite) { 1088 return; 1089 } 1090 1091 if (normalizedPath === "/givenow") {
1092 window.location.replace(connectGivingUrl + window.location.search + window.location.hash); 1093 return; 1094 } 1095 1096 Array.prototype.forEach.call(document.querySelectorAll("a[href]"), function (link) { 1097 var url; 1098 1099 try { 1100 url = new URL(link.getAttribute("href"), window.location.href); 1101 } catch (error) { 1102 return; 1103 } 1104 1105 var linkHost = url.hostname.toLowerCase(); 1106 var linkPath = url.pathname.replace(/\/+$/, "").toLowerCase() || "/"; 1107 if ((linkHost === "bbcc.church" || linkHost === "www.bbcc.church") && linkPath === "/givenow") { 1108 link.href = connectGivingUrl + url.search + url.hash; 1109 } 1110 }); 1111 1112 var path = normalizedPath; 1113 1114 if (path === "/give") { 1115 document.body.classList.add("bbcc-give-current"); 1116 1117 var platformSection = document.querySelector(".mywell-section"); 1118 if (platformSection) { 1119 var tag = platformSection.querySelector(".tag"); 1120 var heading = platformSection.querySelector("h2"); 1121 var paragraphs = platformSection.querySelectorAll(".mywell-text > p"); 1122 var highlight = platformSection.querySelector(".highlight-box p"); 1123 var story = platformSection.querySelector(".mywell-inner > div:last-child"); 1124 1125 if (tag) { 1126 tag.textContent = "Secure Online Giving"; 1127 } 1128 if (heading) { 1129 heading.innerHTML = "Give Online with <span>My Well Ministry</span>"; 1130 } 1131 if (paragraphs[0]) { 1132 paragraphs[0].innerHTML = "BBCC uses <strong>My Well Ministry</strong>, a nonprofit giving platform built for churches, to make one-time and recurring gifts simple and secure."; 1133 } 1134 if (paragraphs[1]) { 1135 paragraphs[1].textContent = "Your generosity helps BBCC share the Good News of Jesus, care for our neighbors, strengthen families, and support ministry locally and around the world."; 1136 } 1137 if (highlight) { 1138 highlight.innerHTML = "<strong>Already giving?</strong> You can manage recurring gifts and payment methods securely through My Well."; 1139 } 1140 if (story) { 1141 story.classList.add("bbcc-mywell-story"); 1142 } 1143 } 1144 1145 Array.prototype.forEach.call(document.querySelectorAll(".faq-item"), function (item) { 1146 var question = item.querySelector(".faq-q"); 1147 var answer = item.querySelector(".faq-a-inner"); 1148 if (question && /switching from pushpay/i.test(question.textContent)) { 1149 var chevron = question.querySelector(".chev"); 1150 question.childNodes[0].nodeValue = "Why does BBCC use My Well Ministry?"; 1151 if (chevron) { 1152 question.appendChild(chevron); 1153 } 1154 if (answer) { 1155 answer.innerHTML = "My Well Ministry is a nonprofit that provides secure donation technology for churches without adding a profit margin to gifts. Lower processing costs allow more of every gift to support ministry. Learn more at <a href=\"https://www.mywell.org\" target=\"_blank\" rel=\"noopener noreferrer\">mywell.org</a>."; 1156 } 1157 } 1158 }); 1159 } 1160 1161 if (document.querySelector(".my-well-payment-entry")) { 1162 document.body.classList.add("bbcc-give-entry"); 1163 document.title = "Give Online | Boynton Beach Community Church"; 1164 } 1165}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.