1<!DOCTYPE HTML> 2<html lang="en"> 3<head> 4<!-- ================================================================================================================= --> 5<!-- 6o Well, hello there! :-) 7o The Content Management System for this website is RocketFusion.com 8o RocketFusion and the RocketFusion logo are copyright Montague WebWorks, Inc. 9o Please direct code comments/feedback to https://MontagueWebWorks.com/contact 10o All content updated by the client: First Congregational Church of Buckland - The Mary Lyon Church 11--> 12<!-- ================================================================================================================= --> 13<!-- Title and App Tags --> 14<!-- 20260911135327 --> 15<title>Photos - First Congregational Church of Buckland - The Mary Lyon Church</title> 16<meta property="og:title" content="Photos"> 17<meta property="twitter:title" content="Photos - First Congregational Church of Buckland - The Mary Lyon Church"> 18<meta itemprop="name" content="Photos - First Congregational Church of Buckland - The Mary Lyon Church"> 19<!-- safari --> 20<meta name="apple-mobile-web-app-title" content="Photos - First Congregational Church of Buckland - The Mary Lyon Church"> 21<meta name="apple-mobile-web-app-capable" content="yes"> 22<meta name="apple-touch-fullscreen" content="yes"> 23<!-- chrome --> 24<meta name="mobile-web-app-capable" content="yes"> 25<!-- ie 10 --> 26<meta name="application-name" content="Photos - First Congregational Church of Buckland - The Mary Lyon Church"> 27<meta name="msapplication-tooltip" content="Photos - First Congregational Church of Buckland - The Mary Lyon Church"> 28<meta name="msapplication-starturl" content="/"> 29<!-- ================================================================================================================= --> 30<!-- Standard on all pages --> 31<meta charset="UTF-8" /> 32<meta http-equiv="content-type" content="text/html;charset=UTF-8"> 33<meta http-equiv="cache-control" content="public, max-age=86400"> 34<meta http-equiv="imagetoolbar" content="no"> 35<meta name="format-detection" content="telephone=yes"/><!-- was yes but Edge breaks it --> 36<!-- new google fonts --> 37<link rel="preconnect" href="https://fonts.googleapis.com"> 38<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 39<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans|Raleway"> 40<meta name="theme-color" content="white" /> 41<meta name="Language" content="en" /> 42<meta name="apple-mobile-web-app-status-bar-style" content="black" /> 43<meta name="verify-v1" content=" " /> 44<meta name="source" content="exists" /> 45<meta name="geo.placename" content="Buckland" /> 46<meta name="google-site-verification" content=" " /> 47<meta name="p:domain_verify" content=" " /> 48<meta name="geo.position" content="" /> 49<meta name="msapplication-TileColor" content="white" /> 50<meta name="last-modified" content="2026-09-27" /> 51<meta name="geo.region" content="US-MA" /> 52<meta name="msvalidate.01" content=" " /> 53<!-- no Facebook Pixel ID --> 54<meta name="author" content="The First Congregational Church of Buckland 'The Mary Lyon Church'" /> 55<meta name="owner" content="The First Congregational Church of Buckland 'The Mary Lyon Church'" /> 56<meta name="copyright" content="Copyright 2026 The First Congregational Church of Buckland 'The Mary Lyon Church'" /> 57<meta name="expires" content="Sep 28, 2026"> 58<meta name="generator" content="RocketFusion CMS" /> 59<meta name="Robots" content="noodp,noydir" /> 60<meta name="slurp" content="noydir" /> 61<meta name="googlebot" content="noodp" /> 62<meta name="msnbot" content="noodp" /> 63<meta name="MSSmartTagsPreventParsing" content="TRUE" /><!-- stops MS browsers from adding parsed keyword advertising on websites --> 64<meta name="viewport" content="width=device-width, initial-scale=1"><!-- , maximum-scale=1 --> 65<meta property="og:site_name" content="First Congregational Church of Buckland - The Mary Lyon Church"> 66<meta property="og:type" content="website" /> 67<!-- ================================================================================================================= --> 68<!-- FAVICONS start --> 69<!-- favicon info --> 70<link rel="shortcut icon" href="/favicon.ico" /> 71<link rel="icon" href="/favicon.ico" type="image/x-icon" /> 72<link rel="apple-touch-icon" href="/favicon.ico"> 73<meta name="msapplication-TileImage" content="/favicon.ico"> 74<link rel="manifest" href="/icons/manifest.json"> 75<meta name="apple-mobile-web-app-status-bar-style" content="black"> 76<meta name="msapplication-TileColor" content="white"> 77<meta name="theme-color" content="white"> 78<!-- MS Application Tasks (off for now) --> 79<!-- FAVICONS end --> 80<!-- this is a photo gallery page --> 81<meta property="og:url" content="/gallery/"> 82<link rel="canonical" href="/gallery/"> 83<meta itemprop="image" content="/library/logo.png"> 84<meta property="og:image" content="/library/logo.png"> 85<meta property="twitter:image" content="/library/logo.png"> 86<link rel="image_src" href="/library/logo.png"> 87<meta property="og:image:alt" content="Photos"> 88<meta name="description" content="Mary Lyon Church"> 89<meta itemprop="description" content="Mary Lyon Church"> 90<meta property="og:description" content="Mary Lyon Church"> 91<meta property="twitter:description" content="Mary Lyon Church"> 92<!-- ================================================================================================================= -->
93<script src="https://kit.fontawesome.com/d3bffd01a6.js" crossorigin="anonymous"></script>
93 94<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> 95<link rel="stylesheet" href="/RFassets/css/datatables-bs4.min.css"> 96<link rel="stylesheet" href="/RFAssets/css/RFtables.css?ver=20260911135327"> 97<link rel="stylesheet" href="/RFAssets/css/joey.css?ver=20260911135327"> 98<link rel="stylesheet" href="/site_style.css?ver=20260911135327"> 99<link rel="stylesheet" href="/header_style.css?ver=20260911135327"> 100<link rel="stylesheet" href="/RFAssets/css/_admin.css?ver=20260911135327"> 101<!-- custom stylesheet --> 102<link rel="stylesheet" href="/tmpl_TMPL04.css?ver=20260911135327">
103<script src="/RFAssets/js/boxover.js" type="text/javascript"></script>
vendor: 1 bytes, line 103
103
104<script type="text/javascript"> 105function toggleLayer(whichLayer,what) { 106if (document.getElementById) 107{ 108var style2 = document.getElementById(whichLayer).style; 109style2.display = what; 110} 111else if (document.all) 112{ 113var style2 = document.all[whichLayer].style; 114style2.display = what; 115} 116else if (document.layers) 117{ 118var style2 = document.layers[whichLayer].style; 119style2.display = what; 120} 121} 122function toggleCheckbox(source) { 123checkboxes = document.getElementsByName('file_delete'); 124for(var i=0, n=checkboxes.length;i<n;i++) { 125checkboxes[i].checked = source.checked; 126} 127} 128</script>
128 129<!-- No text_Google_Analytics_account defined --> 130<!-- No text_Google_Tag_Manager_ID defined --> 131<!-- end of metatags --> 132</head> 133<body class="notMobile" 134id="default"> 135<!-- THESE ARE HERE (ADMIN) BECAUSE THEY NEED TO BE AT THE TOP OF THE BODY, NOT IN THE META TAGS --> 136<!-- No text_Google_Tag_Manager_ID defined --> 137<!-- ************************** start of head_header ***********************--> 138<style> 139nav .navbar-brand img { 140height: 100px; /*!important*/ 141transition: all .25s ease-in-out; 142-webkit-transition: all .25s ease-in-out; 143} 144nav.shrink .navbar-brand img { 145height: 60px; /*!important*/ 146transition: all .25s ease-in-out; 147-webkit-transition: all .25s ease-in-out; 148} 149</style> 150<header class="header_default sticky "> 151<div class=" inside-header-container"> 152<div class=" inside-header-row"> 153<div class=" inside-header-col"> 154<div class="NavInfoBar"> 155<!-- woot navbar --> 156<div class="nav-info-bar pl-0 pr-0 pt-2 pb-2 mt-0 mb-0 noprint"> 157<div class="brand-not-info-bar-1"> 158<div class="brand-not-info-bar-2"> 159<div class="container pl-0 pr-0"> 160<div class="row m-0 pl-0 pr-0 align-items-center"> 161<div class="col-sm-6 iconset-list text-left pl-0"> 162<span class="iconset text1"> 163<a id="infobar_1" href="/d/0/Worship-Schedule?cid=3" class="IBTextColorClass"> 164<i class="fa fa-clock" aria-hidden="true" aria-label="clock icon"></i> 165<span class="IBTextColorClass">10:30 AM Sunday Worship</span> 166</a> 167</span> 168<span class="iconset text4"> 169<i class="fa fa-phone" aria-hidden="true" aria-label="phone icon"></i> 170<span class="">413-625-9440</span> 171</span> 172</div> 173<div class="col-sm-6 pr-0 text-right"> 174<span class="iconset text8"> 175<a id="infobar_8" href="/contact" class=""> 176<i class="fa fa-envelope" aria-hidden="true" aria-label="envelope icon"></i> 177<span class="">Contact Us</span> 178</a> 179</span> 180<span class="social fa-size" style=""> 181<span class="text-info iconset"><a href="https://www.facebook.com/profile.php?id=61590635027718&mibextid=wwXIfr&rdid=mvhCbSNzAoUBy6Sm&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1K3GQfc6Dh%2F%3Fmibextid%3DwwXIfr" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span> 182</span> 183</div> 184</div> 185</div> 186</div> 187</div> 188</div> 189</div> 190<!-- start pagenav tag --> 191<nav id="navmainpageNavID2" class="navbar pagenav-dropdown navbar-expand-md 192pl-0 pr-0 pt-0 pb-0 mt-0 mb-0 ml-0 mr-0"> 193<div class="container pl-0 pr-0"> 194<a class="navbar-brand-img navbar-brand pt-0 pb-0 pl-2 pr-2 d-flex align-items-center" href="/"> 195<span class="brand-image"><img src="/header/mary-lyon-church-logo.png" alt="First Congregational Church of Buckland - The Mary Lyon Church" class="img-responsive mb-0 navbar-image mr-2" id="headerLogo"></span> 196</a> 197<button class="navbar-toggler navbar-light" data-toggle="collapse" aria-label="Open Menu" data-target="#navbar-1"> 198<span class="navbar-toggler-icon navbar-light"></span> 199</button> 200<div id="navbar-1" class="navbar-collapse collapse"> 201<!-- REALESTATE ERROR 161 Invalid object name 'custom_MLSPIN.dbo.mls_listing_all'.: --> 202<ul class='nav navbar-nav ml-auto'><li class='nav-item'> 203<!-- IMAGES!! --> 204</li><li class='dropdown nav-item'> 205<a id="menu_i" 206class="nav-link dropdown-toggle" 207href="/gallery"> 208<span>Photos</span> 209</a> 210<div class='subnav_p[id] dropdown-menu dropdown-menu-left'><ul><li class='dropdown-item'> 211<!-- RECORD COUNT LT 20, COLNUM = 1 --> 212<!-- start loop --> 213<a id="menu_i6" href="/gallery/6/0/Easter-Blessings">Easter Blessings</a> 214</li><li class='dropdown-item'> 215<a id="menu_i3" href="/gallery/3/0/General-Images">General Images</a> 216</li><li class='dropdown-item'> 217<a id="menu_i4" href="/gallery/4/0/Historic-Stained-Glass-Windows-c1909">Historic Stained Glass Windows c.1909</a> 218</li><li class='dropdown-item'> 219<a id="menu_i5" href="/gallery/5/0/Our-Church-Building-Over-the-Years">Our Church Building Over the Years</a> 220</li><li class='dropdown-item'> 221<a id="menu_i7" href="/gallery/7/0/Quilts">Quilts</a> 222<!-- end loop --> 223</li></ul></div> 224</li><li class='dropdown nav-item'> 225<a id="menu_p14" 226class="nav-link dropdown-toggle" 227href="/p/14/About-the-Mary-Lyon-Church"><span>About</span></a><!-- yo1 --> 228<!-- yo2 --> 229<!-- hello from pagenav! --> 230<!-- sub-nav start --> 231<!-- qsImagesCat.recordCount = 5 --> 232<div class='subnav_p14 dropdown-menu dropdown-menu-left'><ul><li class='dropdown-item'> 233<!-- hoohah 167 --> 234<!-- PAGES! --> 235<!-- hoohah 202 --> 236<!-- thecount = 1 --> 237<a id="menu_p26" 238href="/p/26/Mary-Lyon-Messenger-1950s-weekly-newsletter"> 239<span>Mary Lyon Messenger</span> 240</a> 241<!-- thecount = 2 --> 242</li><li class='dropdown-item'> 243<a id="menu_p27"
244href="/p/27/1949-1950s-Summertime-Buckland-Center-News"> 245<span>Our Buckland</span> 246</a> 247<!-- thecount = 3 --> 248</li><li class='dropdown-item'> 249<a id="menu_p15" 250href="/p/15/Meet-our-Pastor"> 251<span>Pastor's Page</span> 252</a> 253<!-- thecount = 4 --> 254</li><li class='dropdown-item'> 255<a id="menu_p24" 256href="/p/24/Historic-Stain-Glass-Windows"> 257<span>Stain Glass Windows</span> 258</a> 259<!-- thecount = 5 --> 260</li><li class='dropdown-item'> 261<a id="menu_p20" 262href="/p/20/Messages-of-Hope"> 263<span>Messages of Hope</span> 264</a> 265<!-- thecount = 6 --> 266</li><li class='dropdown-item'> 267<a id="menu_p16" 268href="/p/16/Typical-Weekly-Worship"> 269<span>Typical Weekly Worship</span> 270</a> 271<!-- thecount = 7 --> 272</li><li class='dropdown-item'> 273<a id="menu_p18" 274href="/p/18/History-of-the-Mary-Lyon-Church"> 275<span>History of our Church</span> 276</a> 277<!-- thecount = 8 --> 278</li><li class='dropdown-item'> 279<a id="menu_p17" 280href="/p/17/Community-Links"> 281<span>Community Links</span> 282</a> 283<!-- thecount = 9 --> 284</li><li class='dropdown-item'> 285<a id="menu_p23" 286href="/p/23/Orders-of-Worship"> 287<span>Orders of Worship</span> 288</a> 289<!-- thecount = 10 --> 290</li><li class='dropdown-item'> 291<a id="menu_p21" 292href="/p/21/Lots-of-church-news-and-news-from-our-wider-community"> 293<span>Monthly Newletters</span> 294</a> 295</li></ul></div> 296<!-- yo3 --> 297<!-- yo4 --> 298</li><li class='dropdown nav-item'> 299<a id="menu_p19" 300class="nav-link dropdown-toggle" 301href="/p/19/Buckland-Public-Hall"><span>Buckland Public Hall</span></a><!-- yo1 --> 302<!-- yo2 --> 303<!-- hello from pagenav! --> 304<!-- sub-nav start --> 305<!-- qsImagesCat.recordCount = 5 --> 306<div class='subnav_p19 dropdown-menu dropdown-menu-left'><ul><li class='dropdown-item'> 307<!-- hoohah 167 --> 308<!-- PAGES! --> 309<!-- hoohah 202 --> 310<!-- thecount = 1 --> 311<a id="menu_p28" 312href="/p/28/2026-Capital-Campaign-Buckland-Public-Hall"> 313<span>2026 Capital Campaign Buckland Public Hall</span> 314</a> 315</li></ul></div> 316<!-- yo3 --> 317<!-- yo4 --> 318</li><li class='dropdown nav-item'> 319<a id="menu_d" 320class="nav-link dropdown-toggle" 321href="/calendar"><span>Calendar</span></a> 322<div class='subnav_p[id] dropdown-menu dropdown-menu-left'><ul><li class='dropdown-item'> 323<a id="menu_d4" href="/d/0/Special-Events?cid=4"><span>Special Events</span></a> 324</li><li class='dropdown-item'> 325<a id="menu_d3" href="/d/0/Worship-Schedule?cid=3"><span>Worship Schedule</span></a> 326</li></ul></div> 327</li></ul> 328</div><!-- /.nav-collapse --> 329</div> 330</nav> 331<!-- end pagenav tag --> 332</div> 333</div> 334</div> 335</header> 336<!-- ************************** end of header head ***********************--> 337<main> 338<!-- START PAGE DIV --> 339<div class="page i i0 " style=""> 340<div class="container maincontent"> 341<div class="row"> 342<div class="col-sm-12"> 343<!-- CONTENT IMAGES --> 344<h1 class="images mainimages page"> 345<span>Photos</span> 346</h1> 347<div class="static imagespage"> 348<!-- from var application.static.imagespage --> 349<p> </p> 350</div> 351<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.10.0/baguetteBox.min.css" /> 352<link rel="stylesheet" href="/RFAssets/css/_cards-gallery.css"> 353<style> 354.card-caption { opacity: 0; } 355</style> 356<section class="gallery-block cards-gallery"> 357<div class="row" id="my-gallery-container"> 358<div class="item" data-order="0"> 359<div class="card-container"> 360<div class="card border-0 transform-on-hover"> 361<a class="card-text" href="/gallery/6/0/Easter-Blessings"> 362<img src="/images/58_small.jpg" alt="Easter Blessings" class="card-img-top" > 363</a> 364<div class="card-body card-caption"> 365<h6 class="card-title">Easter Blessings</h6> 366</div> 367</div> 368</div> 369</div> 370<div class="item" data-order="0"> 371<div class="card-container"> 372<div class="card border-0 transform-on-hover"> 373<a class="card-text" href="/gallery/3/0/General-Images"> 374<img src="/images/2094_small.jpg" alt="General Images" class="card-img-top" > 375</a> 376<div class="card-body card-caption"> 377<h6 class="card-title">General Images</h6> 378</div> 379</div> 380</div> 381</div> 382<div class="item" data-order="0"> 383<div class="card-container"> 384<div class="card border-0 transform-on-hover"> 385<a class="card-text" href="/gallery/4/0/Historic-Stained-Glass-Windows-c1909"> 386<img src="/images/71_small.jpg" alt="Historic Stained Glass Windows c.1909" class="card-img-top" > 387</a> 388<div class="card-body card-caption"> 389<h6 class="card-title">Historic Stained Glass Windows c.1909</h6> 390</div> 391</div> 392</div> 393</div> 394<div class="item" data-order="0"> 395<div class="card-container"> 396<div class="card border-0 transform-on-hover"> 397<a class="card-text" href="/gallery/5/0/Our-Church-Building-Over-the-Years"> 398<img src="/images/28_small.jpg" alt="Our Church Building Over the Years" class="card-img-top" > 399</a> 400<div class="card-body card-caption"> 401<h6 class="card-title">Our Church Building Over the Years</h6> 402</div> 403</div> 404</div> 405</div> 406<div class="item" data-order="0"> 407<div class="card-container"> 408<div class="card border-0 transform-on-hover"> 409<a class="card-text" href="/gallery/7/0/Quilts"> 410<img src="/images/73_small.jpg" alt="Quilts" class="card-img-top" > 411</a> 412<div class="card-body card-caption"> 413<h6 class="card-title">Quilts</h6> 414</div> 415</div> 416</div> 417</div> 418</div> 419</section> 420</div> 421</div> 422</div> 423</div> 424<!-- END PAGE DIV --> 425<div class="lowercontent"> 426<!-- START PAGE SECTIONS --> 427<!-- inside page sections --> 428<!-- this is NOT a p (62) --> 429<!-- canview = 1 (83) --> 430<!-- END PAGE SECTIONS --> 431</div> 432</main> 433<footer> 434<div class="footer_default noprint"> 435<div id="footer" class="container"> 436<div class="footerO row pt-2"> 437<!-- starting from 1 --> 438<!-- this is c: 1 --> 439<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow1"> 440<!-- listfind(attributes.staticPageCol,'col1') --> 441<!-- yes --> 442<div class="static footer-defaultcol1"> 443<!-- from var application.static.footer_defaultcol1 --> 444</div> 445<!-- attributes.footerSocialCol eq 'col1' --> 446<!-- attributes.footerNavCol eq 'col1' --> 447<!-- yes --> 448<!-- hello from pagenav! --> 449<!-- SHOW PARENT = 0 --> 450<!-- qsImagesCat.recordCount = 5 --> 451<ul><li> 452<!-- hoohah 167 --> 453<a id="menu_i" title="Photos" 454rel="images" 455class="active" 456href="/gallery"><span>Photos</span></a> 457<!-- PAGES! --> 458<!-- hoohah 202 --> 459<!-- thecount = 1 --> 460</li><li> 461<a id="menu_p14" 462href="/p/14/About-the-Mary-Lyon-Church"> 463<span>About</span> 464</a> 465<!-- thecount = 2 --> 466</li><li> 467<a id="menu_p19" 468href="/p/19/Buckland-Public-Hall"> 469<span>Buckland Public Hall</span> 470</a> 471</li><li><a id="menu_d" 472title="Calendar" 473href="/calendar"><span>Calendar</span></a> 474</li></ul> 475<!-- attributes.footerShowSearchCol eq 'col1' --> 476<!-- attributes.loginCol eq 'col1' --> 477</div> 478<!-- this is c: 2 --> 479<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow2"> 480<!-- listfind(attributes.staticPageCol,'col2') --> 481<!-- yes --> 482<div class="static footer-defaultcol2"> 483<!-- from var application.static.footer_defaultcol2 --> 484<p style="text-align:center"><img alt="handicapped icon" class="img-fluid library-image" src="/l
484ibrary/handicapped.gif" /></p> 485<p style="text-align: center;">Our church is completely accessible with a lift serving every floor of the building.</p> 486</div> 487<!-- attributes.footerSocialCol eq 'col2' --> 488<!-- attributes.footerNavCol eq 'col2' --> 489<!-- attributes.footerShowSearchCol eq 'col2' --> 490<!-- attributes.loginCol eq 'col2' --> 491</div> 492<!-- this is c: 3 --> 493<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow3"> 494<!-- listfind(attributes.staticPageCol,'col3') --> 495<!-- yes --> 496<div class="static footer-defaultcol3"> 497<!-- from var application.static.footer_defaultcol3 --> 498<p>Our church building, and the <strong><a href="/p/19/Buckland-Public-Hall">Buckland Public Hall</a></strong> next door are locations of weekly 12-Step groups Wednesdays at 7:30 PM and Sundays at 1:00 PM.</p> 499<p>For more info on these groups visit <strong><a href="https://westernmassaa.net/?tsml-day=any&tsml-region=buckland" target="_blank">Western Mass Intergroup</a></strong></p> 500</div> 501<!-- attributes.footerSocialCol eq 'col3' --> 502<!-- attributes.footerNavCol eq 'col3' --> 503<!-- attributes.footerShowSearchCol eq 'col3' --> 504<!-- attributes.loginCol eq 'col3' --> 505</div> 506<!-- this is c: 4 --> 507<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow4"> 508<!-- listfind(attributes.staticPageCol,'col4') --> 509<!-- yes --> 510<div class="static footer-defaultcol4"> 511<!-- from var application.static.footer_defaultcol4 --> 512<p><strong>Mary Lyon Church</strong></p> 513<p>17 Upper St., P.O.Box 87<br /> 514Buckland MA 01338<br /> 515413-625-9440<br /> 516<a href="https://www.google.com/maps/place/17+Upper+St,+Buckland,+MA+01338/@42.5894706,-72.796199,17z/data=!3m1!4b1!4m5!3m4!1s0x89e0d6d0f4dc7b61:0x146f64bdad8f2021!8m2!3d42.5894706!4d-72.7940103" target="_blank">Directions/Google Maps</a></p> 517</div> 518<!-- attributes.footerSocialCol eq 'col4' --> 519<!-- yes --> 520<span class="social fa-size" style=""> 521<span class="text-info iconset"><a href="https://www.facebook.com/profile.php?id=61590635027718&mibextid=wwXIfr&rdid=mvhCbSNzAoUBy6Sm&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1K3GQfc6Dh%2F%3Fmibextid%3DwwXIfr" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span> 522</span> 523<!-- attributes.footerNavCol eq 'col4' --> 524<!-- attributes.footerShowSearchCol eq 'col4' --> 525<!-- attributes.loginCol eq 'col4' --> 526</div> 527</div> 528</div> 529</div> 530<div id="lowerFooter" class="text-center"> 531<div id="footer"> 532<span class="footerO"> 533<span class="footerL"> 534© 2026 The First Congregational Church of Buckland 'The Mary Lyon Church' 535| 536Software by <a href=http://MontagueWebWorks.com target=_blank>Montague WebWorks</a> 537</span> 538<span class="footerM"> 539| 540</span> 541<span class="footerR"> 542<a href="https://RocketFusion.com" target="_blank">Powered by RocketFusion 123</a> 543</span> 544</span> 545</div> 546<span class="login-link"> 547<a class="login noprint p-3" href="" style="cursor:pointer;" rel="nofollow" aria-label="log in" data-toggle="modal" data-target="#Login" data-remote="/inc/divLogin.cfm?edit=Login">Admin Login</a> 548<div class="modal fade" id="Login" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-body"></div></div></div></div> 549</span> 550</div> 551</footer> 552<!-- BS4 Init --> 553<div class="modal fade" id="reserve" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-body"></div></div></div><div id="load-res" class="loading-reserve d-none"></div></div>
554<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
vendor: 1 bytes, line 554
554
555<script type="text/javascript" src="https://scaleflex.cloudimg.io/v7/plugins/filerobot-image-editor/latest/filerobot-image-editor.min.js?func=proxy"></script>
vendor: 1 bytes, line 555
555
556<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
vendor: 1 bytes, line 556
556
557<script> 558// Assuming we have a div with id="editor_container" 559const filerobotImageEditor = new window.FilerobotImageEditor( 560document.querySelector("#rf-image-editor-edit") 561); 562const image_file_upload = document.getElementById("rf-image-upload"); 563// const btn_image_upload_edit = document.getElementById("btn-image-upload-edit"); 564var source_image = ''; // the HTMLImageElement 565var save_image_name = ''; // name to save image with 566var global_fr_folder = ''; // where to upload 567var global_fr_table = ''; // db table to update 568var global_fr_prefix = ''; // image file prefix, ie; blocks_ 569var global_fr_pid = 0; // image ID, ie; blocks_2323 570var dropzone_website_dir = 'MaryLyonChurch.org\\httpdocs'; 571const file_robot_defaults = { 572save_image_quality : 1, // 0.1 - 1 (default 0.92) - applies to jpeg, jpg and webp images only 573}; 574function renderFileRobotEditor(source,fr_folder=global_fr_folder,fr_table=global_fr_table,fr_prefix=global_fr_prefix,fr_pid=global_fr_pid) { 575console.group("renderFileRobotEditor() called"); 576console.log('source:', source); 577console.log('fr_folder:', fr_folder); 578console.log('fr_table:', fr_table); 579console.log('fr_prefix:', fr_prefix); 580console.log('fr_pid:', fr_pid); 581console.groupEnd(); 582source_image = source; 583filerobotImageEditor.render({ 584source: source_image, 585useBackendTranslations: false, 586defaultSavedImageName: save_image_name, 587defaultSavedImageQuality: file_robot_defaults.save_image_quality, 588tabsIds: [ 589window.FilerobotImageEditor.TABS.ADJUST, 590window.FilerobotImageEditor.TABS.FINETUNE, 591window.FilerobotImageEditor.TABS.FILTERS, 592window.FilerobotImageEditor.TABS.ANNOTATE, 593window.FilerobotImageEditor.TABS.WATERMARK], // or ['Adjust', 'Annotate', 'Watermark'] 594defaultTabId: window.FilerobotImageEditor.TABS.ADJUST, 595Crop: { 596minWidth: 14, 597minHeight: 14, 598maxWidth: null, 599maxHeight: null, 600ratio: 'custom', 601ratioTitleKey: 'custom', 602noPresets: false, 603autoResize: false, 604presetsItems: [], 605presetsFolders: [], 606lockCropAreaAt: null, // 'top-left' 607}, 608// disable save modal 609onBeforeSave: () => { 610return false; 611}, 612onSave: async (imageInfo, designState) => { 613// console.log('onSave() imageInfo', imageInfo); 614// console.log('onSave() designState', designState); 615// create formData object to populate and send with fetch request 616const formData = new FormData(); 617formData.append('image64', imageInfo.imageBase64); 618formData.append('image_extension', imageInfo.extension); 619formData.append('image_height', imageInfo.height); 620formData.append('image_name', imageInfo.name); 621formData.append('image_name_with_extension', imageInfo.fullName); 622formData.append('image_quality', imageInfo.quality); 623formData.append('image_width', imageInfo.width); 624formData.append('dropzone_website_dir', dropzone_website_dir); // e.g. MikMuller.com\httpdocs 625formData.append('rf_dropzone_dir', fr_folder); 626console.log('onSave() formData [2]', formData); 627// add dropzone options for compatibility with current upload script 628const drop_zone_options = { 629tbl: fr_table, 630imgbase: `${fr_prefix}${fr_pid}`, 631imgname: imageInfo.fullName, 632id: fr_pid 633} 634formData.append("dropzone_options", JSON.stringify(drop_zone_options)); 635console.log('onSave() drop_zone_options', drop_zone_options); 636try { 637// _dropzone-file-upload-ajax.cfm 638// _upload-base64.cfm (for testing) 639console.log('renderFileRobotEditor.onSave() imageInfo', imageInfo); 640const upload_request = await fetch('/inc/_dropzone-file-upload-ajax.cfm', { 641method: 'POST', 642body: formData 643}); 644const upload_result = await upload_request.json(); 645// console.log('DEBUG: [onSave] upload_result', upload_result); 646// close modal 647$('#rfImageModalEdit').modal('hide'); 648// page reload 649window.location.reload(); 650} catch (error) { 651console.log('onSave() error', error); 652const upload_result = { 653code: 1, 654message: error.message, 655success: false 656} 657} 658}, 659onClose: (closingReason) => { 660console.log("Closing reason", closingReason); 661filerobotImageEditor.terminate(); 662// reset the input field 663document.getElementById('rf-image-upload').value = ''; 664}, 665}); 666} 667/** 668* Function to handle image selection from the file input field 669* async as we use a promise to await image load 670*/ 671async function onImageSelected(event, file_obj, fr_folder, fr_table, fr_prefix, fr_pid) { 672let file; 673if (file_obj) { 674console.log('onImageSelected file_obj', file_obj, fr_folder, fr_table, fr_prefix, fr_pid); 675file = file_obj; 676} else { 677file = event.target.files[0]; 678} 679save_image_name = file.name; 680console.log('onImageSelected file', file); 681// const reader = new FileReader(); 682const image = new Image(); 683const img_max_width = 1600; 684image.src = URL.createObjectURL(file); 685// Promise to await image load 686await new Promise((resolve) => { 687image.onload = () => { 688const img_width = image.width; 689const img_height = image.height; 690// console.log('onImageSelected img load', img_width, img_height); 691if (img_width > img_max_width) { 692const img_scale = img_max_width / img_width;
693image.width = img_width * img_scale; 694image.height = img_height * img_scale; 695} 696// resolve the promise 697resolve(); 698}; 699}); 700// open the modal 701$('#rfImageModalEdit').modal('show'); 702// Render file robot 703renderFileRobotEditor(image, fr_folder, fr_table, fr_prefix, fr_pid); 704} 705/** Function to handle image editing */ 706function editExistingImage(image_url, image_name, fr_folder=global_fr_folder, fr_table=global_fr_table, fr_prefix=global_fr_prefix, fr_pid=global_fr_pid) { 707console.log('[DEBUG] editExistingImage() called.'); 708console.log('image_url:', image_url); 709console.log('image_name:', image_name); 710console.log('fr_folder:', fr_folder); 711console.log('fr_table:', fr_table); 712console.log('fr_prefix:', fr_prefix); 713console.log('fr_pid:', fr_pid); 714save_image_name = image_name; 715renderFileRobotEditor(image_url, fr_folder, fr_table, fr_prefix, fr_pid); 716} 717/** Function to open the hidden input file field */ 718function openFileInput(fr_folder='', fr_table='', fr_prefix='', fr_pid=0) { 719console.log('[DEBUG] openFileInput() called.', fr_folder, fr_table, fr_prefix, fr_pid); 720global_fr_folder = fr_folder; // where to upload 721global_fr_table = fr_table; // db table to update 722global_fr_prefix = fr_prefix; // image file prefix, ie; blocks_ 723global_fr_pid = fr_pid; 724image_file_upload.click(); 725} 726/** Function to open RF File Manager in a modal 727* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 728* Need the image full url to make a copy of for ai images 729*/ 730function openRFFileManager(current_image_url, fr_folder=global_fr_folder, fr_table=global_fr_table, fr_prefix=global_fr_prefix, fr_pid=global_fr_pid) { 731// $($(this).data( "target" ) + ' .modal-body').load( data_remote ); 732console.group("bs4_init openRFFileManager() called"); 733console.log("current_image_url:", current_image_url); 734console.log("fr_folder:", fr_folder); 735console.log("fr_table:", fr_table); 736console.log("fr_prefix:", fr_prefix); 737console.log("fr_pid:", fr_pid); 738console.groupEnd(); 739const rfFileManagerModalIframe = document.getElementById('rfFileManagerModalIframe'); 740rfFileManagerModalIframe.src = `/ckeditor/plugins/rffilemanager/browse.cfm?CKEditor=editor1&CKEditorFuncNum=1&langCode=en&direct=true&rf_website_dir=${fr_folder}&pid=` + fr_pid + `&image_url=` + encodeURIComponent(current_image_url) + `&page_parent_directory=${fr_folder}&image_prefix=${fr_prefix}&image_table=${fr_table}`; ; 741$('#rfFileManagerModal').modal('show'); 742} 743/** Function to close the RF File Manager modal 744* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 745* Need to upload the image and then close the modal 746*/ 747function closeRFFileManagerModal(image_path, img_name='', fr_folder='', fr_table='', fr_prefix='', fr_pid=0) { 748console.group("bs4_init closeRFFileManagerModal() called"); 749console.log("image_path:",image_path); 750console.log("img_name:",img_name); 751console.log("fr_folder:",fr_folder); 752console.log("fr_table:",fr_table); 753console.log("fr_prefix:",fr_prefix); 754console.log("fr_pid:",fr_pid); 755console.groupEnd(); 756$('#rfFileManagerModal').modal('hide'); 757$('#rfImageModalEdit').modal('show'); 758save_image_name = img_name; 759// renderFileRobotEditor(image_path); 760renderFileRobotEditor(image_path, fr_folder, fr_table, fr_prefix, fr_pid); 761} 762/** Function to close the RF File Manager modal without opening File Robot 763* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 764*/ 765function closeRFFileManagerModalOnly(reload=false) { 766$('#rfFileManagerModal').modal('hide');
767if (reload) { 768setTimeout(() => { 769window.location.reload(); 770}, 500); 771} 772} 773// Handle closing of modal without saving (must cleanup file robot editor) 774$('#rfImageModalEdit').on('hidden.bs.modal', function (event) { 775// console.log('modal closed'); 776filerobotImageEditor.terminate(); 777image_file_upload.value = ''; 778}); 779/** Rocketfusion - enable drag/drop zone on an image with the .rf-image-dropzone class */ 780// Create dropzone object for all images with the .rf-image-dropzone class 781const rf_image_drop_zone = document.querySelectorAll('.rf-image-dropzone'); 782// Attach event listeners to all instances of rf_image_drop_zone 783rf_image_drop_zone.forEach(function (i) { 784// Handle drag over event 785i.addEventListener('dragover', function(e) { 786event.target.classList.add('image-dragover'); 787dragOverHandler(e); 788}); 789// Handle drag leave event 790i.addEventListener('dragleave', function(e) { 791// console.log('Image dropzone dragleave'); 792event.target.classList.remove('image-dragover'); 793}); 794// Handle drop event 795i.addEventListener('drop', function(e) { 796event.target.classList.remove('image-dragover'); 797dropHandler(e); 798}); 799}); 800/** 801* Handles the drop event of files in the drop zone. 802* Prevents the default behavior of opening the file and logs the names of the dropped files. 803* 804* @param {Event} ev - The drop event. 805* @returns {undefined} 806*/ 807function dropHandler(ev) { 808// console.log('File(s) dropped'); 809// Prevent default behavior (Prevent file from being opened) 810ev.preventDefault(); 811if (ev.dataTransfer.items) { 812// Use DataTransferItemList interface to access the file(s) 813[...ev.dataTransfer.items].forEach((item, i) => { 814// If dropped items aren't files, reject them 815if (item.kind === 'file') { 816const file = item.getAsFile(); 817console.log(`file[${i}].name = ${file.name}`); 818onImageSelected(i, file); 819} 820}); 821} else { 822// Use DataTransfer interface to access the file(s) 823[...ev.dataTransfer.files].forEach((file, i) => { 824console.log(`file[${i}].name = ${file.name}`); 825onImageSelected(i, file); 826}); 827} 828} 829/** 830* Handles the drag over event of files in the drop zone. 831* Prevents the default behavior of opening the file. 832* 833* @param {Event} ev - The drag over event. 834* @returns {undefined} 835*/ 836function dragOverHandler(ev) { 837// Prevent default behavior (Prevent file from being opened) 838ev.preventDefault(); 839} 840</script>
840 841<style> 842.modal-fullscreen { 843width: 100vw; 844max-width: none; 845height: 100%; 846margin: 0; 847} 848.modal-content { 849height: 100%; 850border: 0; 851@include border-radius(0); 852} 853.modal-body { 854overflow-y: auto; 855} 856.image-dragover { 857opacity: 0.5; 858} 859</style>
860<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
vendor: 1 bytes, line 860
860
861<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
vendor: 1 bytes, line 861
861
862<script>$(window).scroll(function() { if ($(document).scrollTop() > 50) { $('nav').addClass('shrink'); } else { $('nav').removeClass('shrink'); } }); </script>
vendor: 1 bytes, line 862
862
863<script type="text/javascript" src="/RFAssets/js/joey.js?ver=20260911135327" charset="UTF-8"></script>
vendor: 1 bytes, line 863
863
864<script type="text/javascript"> 865$( 'body' ).on( 'click', '[data-toggle="modal"]', function(){ 866let data_remote = $(this).data( "remote" ); 867if ( data_remote && data_remote.length >= 2 ) { 868$($(this).data( "target" ) + ' .modal-content').load( data_remote ); 869} 870}); 871</script>
vendor: 1 bytes, line 871
871
872<script type="text/javascript" src="/RFAssets/js/mp.mansory.js"></script>
vendor: 1 bytes, line 872
872
873<script> 874jQuery(document).ready(function ( $ ) { 875$("#my-gallery-container").mpmansory( 876{ 877childrenClass: 'item', 878columnClasses: 'padding', 879breakpoints:{ lg: 4, md: 6, sm: 12, xs: 12 }, 880distributeBy: { order: false, height: false, attr: 'data-order', attrOrder: 'asc' }, 881onload: function (items) { } 882} 883); 884}); 885</script>
vendor: 1 bytes, line 885
885
886<script src="/RFAssets/js/baguetteBox.min.js"></script>
vendor: 1 bytes, line 886
886
887<script> 888baguetteBox.run('.do-baguettebox', { animation: 'slideIn', imageLocation: 'data-href' }); 889</script>
vendor: 1 bytes, line 889
889
890<script> 891$(document).ready(function() { 892//$('nav').animate({opacity:'1'}, 50);<!-- set to 0.25 to make see thru --> 893//$(img).animate({opacity:'1'}); 894$initNavHgt = $('nav').outerHeight(); 895$initHeadLogoHgt = $('#headerLogo').outerHeight(); 896}); 897</script>
897 898<!-- no userway account --> 899</body> 900</html>
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.