PageSourceSearch

https://charlemont-ma.us/news

html charlemont-ma.us collected 2026-10-01 12:17:08 UTC 51,300 bytes, 1,461 lines download raw bytes

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: Town of Charlemont
11-->
12<!-- ================================================================================================================= -->
13<!-- Title and App Tags -->
14<!-- 20260930205248 -->
15<title>News - Town of Charlemont</title>
16<meta property="og:title" content="News">
17<meta property="twitter:title" content="News - Town of Charlemont">
18<meta itemprop="name" content="News - Town of Charlemont">
19<!-- safari -->
20<meta name="apple-mobile-web-app-title" content="News - Town of Charlemont">
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="News - Town of Charlemont">
27<meta name="msapplication-tooltip" content="News - Town of Charlemont">
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=Ek+Mukta">
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="Charlemont" />
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-10-01" />
51<meta name="geo.region" content="US-MA" />
52<meta name="msvalidate.01" content=" " />
53<!-- no Facebook Pixel ID -->
54<meta name="author" content="Town of Charlemont" />
55<meta name="owner" content="Town of Charlemont" />
56<meta name="copyright" content="Copyright 2026 Town of Charlemont" />
57<meta name="expires" content="Oct 1, 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="Town of Charlemont">
66<meta property="og:type" content="article" />
67<!-- ================================================================================================================= -->
68<!-- FAVICONS start -->
69<link rel="shortcut icon" href="/favicon.ico" />
70<link rel="icon" href="/favicon.ico" type="image/x-icon" />
71<link rel="apple-touch-icon" href="/favicon.ico">
72<meta name="msapplication-TileImage" content="/favicon.ico">
73<link rel="apple-touch-icon" sizes="16x16" href="/icons/favicon-16x16.png">
74<link rel="icon" sizes="16x16" href="/icons/favicon-16x16.png">
75<meta name="msapplication-square16x16logo" content="/icons/favicon-16x16.png"/>
76<link rel="apple-touch-icon" sizes="24x24" href="/icons/favicon-24x24.png">
77<link rel="icon" sizes="24x24" href="/icons/favicon-24x24.png">
78<meta name="msapplication-square24x24logo" content="/icons/favicon-24x24.png"/>
79<link rel="apple-touch-icon" sizes="32x32" href="/icons/favicon-32x32.png">
80<link rel="icon" sizes="32x32" href="/icons/favicon-32x32.png">
81<meta name="msapplication-square32x32logo" content="/icons/favicon-32x32.png"/>
82<link rel="apple-touch-icon" sizes="48x48" href="/icons/favicon-48x48.png">
83<link rel="icon" sizes="48x48" href="/icons/favicon-48x48.png">
84<meta name="msapplication-square48x48logo" content="/icons/favicon-48x48.png"/>
85<link rel="apple-touch-icon" sizes="57x57" href="/icons/favicon-57x57.png">
86<link rel="icon" sizes="57x57" href="/icons/favicon-57x57.png">
87<meta name="msapplication-square57x57logo" content="/icons/favicon-57x57.png"/>
88<link rel="apple-touch-icon" sizes="60x60" href="/icons/favicon-60x60.png">
89<link rel="icon" sizes="60x60" href="/icons/favicon-60x60.png">
90<meta name="msapplication-square60x60logo" content="/icons/favicon-60x60.png"/>
91<link rel="apple-touch-icon" sizes="64x64" href="/icons/favicon-64x64.png">
92<link rel="icon" sizes="64x64" href="/icons/favicon-64x64.png">
93<meta name="msapplication-square64x64logo" content="/icons/favicon-64x64.png"/>
94<link rel="apple-touch-icon" sizes="70x70" href="/icons/favicon-70x70.png">
95<link rel="icon" sizes="70x70" href="/icons/favicon-70x70.png">
96<meta name="msapplication-square70x70logo" content="/icons/favicon-70x70.png"/>
97<link rel="apple-touch-icon" sizes="72x72" href="/icons/favicon-72x72.png">
98<link rel="icon" sizes="72x72" href="/icons/favicon-72x72.png">
99<meta name="msapplication-square72x72logo" content="/icons/favicon-72x72.png"/>
100<link rel="apple-touch-icon" sizes="76x76" href="/icons/favicon-76x76.png">
101<link rel="icon" sizes="76x76" href="/icons/favicon-76x76.png">
102<meta name="msapplication-square76x76logo" content="/icons/favicon-76x76.png"/>
103<link rel="apple-touch-icon" sizes="120x120" href="/icons/favicon-120x120.png">
104<link rel="icon" sizes="120x120" href="/icons/favicon-120x120.png">
105<meta name="msapplication-square120x120logo" content="/icons/favicon-120x120.png"/>
106<link rel="apple-touch-icon" sizes="96x96" href="/icons/favicon-96x96.png">
107<link rel="icon" sizes="96x96" href="/icons/favicon-96x96.png">
108<meta name="msapplication-square96x96logo" content="/icons/favicon-96x96.png"/>
109<link rel="apple-touch-icon" sizes="114x114" href="/icons/favicon-114x114.png">
110<link rel="icon" sizes="114x114" href="/icons/favicon-114x114.png">
111<meta name="msapplication-square114x114logo" content="/icons/favicon-114x114.png"/>
112<link rel="apple-touch-icon" sizes="128x128" href="/icons/favicon-128x128.png">
113<link rel="icon" sizes="128x128" href="/icons/favicon-128x128.png">
114<meta name="msapplication-square128x128logo" content="/icons/favicon-128x128.png"/>
115<link rel="apple-touch-icon" sizes="144x144" href="/icons/favicon-144x144.png">
116<link rel="icon" sizes="144x144" href="/icons/favicon-144x144.png">
117<meta name="msapplication-square144x144logo" content="/icons/favicon-144x144.png"/>
118<link rel="apple-touch-icon" sizes="150x150" href="/icons/favicon-150x150.png">
119<link rel="icon" sizes="150x150" href="/icons/favicon-150x150.png">
120<meta name="msapplication-square150x150logo" content="/icons/favicon-150x150.png"/>
121<link rel="apple-touch-icon" sizes="152x152" href="/icons/favicon-152x152.png">
122<link rel="icon" sizes="152x152" href="/icons/favicon-152x152.png">
123<meta name="msapplication-square152x152logo" content="/icons/favicon-152x152.png"/>
124<link rel="apple-touch-icon" sizes="196x196" href="/icons/favicon-196x196.png">
125<link rel="icon" sizes="196x196" href="/icons/favicon-196x196.png">
126<meta name="msapplication-square196x196logo" content="/icons/favicon-196x196.png"/>
127<link rel="apple-touch-icon" sizes="310x310" href="/icons/favicon-310x310.png">
128<link rel="icon" sizes="310x310" href="/icons/favicon-310x310.png">
129<meta name="msapplication-square310x310logo" content="/icons/favicon-310x310.png"/>
130<link rel="manifest" href="/icons/manifest.json">
131<meta name="apple-mobile-web-app-status-bar-style" content="black">
132<meta name="msapplication-TileColor" content="white">
133<meta name="theme-color" content="white">
134<!-- MS Application Tasks (off for now) -->
135<!-- FAVICONS end -->
136<meta property="og:url" content="/news">
137<link rel="canonical" href="/news">
138<meta itemprop="image" content="/library/seal-bg.png">
139<meta property="og:image" content="/library/seal-bg.png">
140<meta property="twitter:image" content="/library/seal-bg.png">
141<link rel="image_src" href="/library/seal-bg.png">
142<meta property="og:image:alt" content="News">
143<meta name="description" content="Town of Charlemont">
144<meta itemprop="description" content="Town of Charlemont">
145<meta property="og:description" content="Town of Charlemont">
146<meta property="twitter:description" content="Town of Charlemont">
147<!-- ================================================================================================================= -->
148<script src="https://kit.fontawesome.com/d3bffd01a6.js" crossorigin="anonymous"></script>
148
149<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
150<link rel="stylesheet" href="/RFassets/css/datatables-bs4.min.css">
151<link rel="stylesheet" href="/RFAssets/css/RFtables.css?ver=20260930205248">
152<link rel="stylesheet" href="/RFAssets/css/joey.css?ver=20260930205248">
153<link rel="stylesheet" href="/site_style.css?ver=20260930205248">
154<link rel="stylesheet" href="/header_style.css?ver=20260930205248">
155<link rel="stylesheet" href="/RFAssets/css/_admin.css?ver=20260930205248">
156<!-- custom stylesheet -->
157<link rel="stylesheet" href="/tmpl_TMPL11.css?ver=20260930205248">
158<script src="/RFAssets/js/boxover.js" type="text/javascript"></script>
vendor: 1 bytes, line 158
158
159<script type="text/javascript">
160function toggleLayer(whichLayer,what) {
161if (document.getElementById)
162{
163var style2 = document.getElementById(whichLayer).style;
164style2.display = what;
165}
166else if (document.all)
167{
168var style2 = document.all[whichLayer].style;
169style2.display = what;
170}
171else if (document.layers)
172{
173var style2 = document.layers[whichLayer].style;
174style2.display = what;
175}
176}
177function toggleCheckbox(source) {
178checkboxes = document.getElementsByName('file_delete');
179for(var i=0, n=checkboxes.length;i<n;i++) {
180checkboxes[i].checked = source.checked;
181}
182}
183</script>
vendor: 1 bytes, line 183
183
184<script>
185/**
186* Function that tracks a click on an outbound link in Analytics.
187* This function takes a valid URL string as an argument, and uses that URL string
188* as the event label. Setting the transport method to 'beacon' lets the hit be sent
189* using 'navigator.sendBeacon' in browser that support it.
190*/
191var trackOutboundLink = function(url) {
192ga('send', 'event', 'outbound', 'click', url, {
193'transport': 'beacon',
194'hitCallback': function(){document.location = url;}
195});
196}
197</script>
197
198<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 198-199
198
199<script async src="https://www.googletagmanager.com/gtag/js?id=
199UA-23762870-1
vendor: 12 bytes, line 199
199"></script>
200<script>
vendor: 127 bytes, lines 201-204
201window.dataLayer = window.dataLayer || [];
202function gtag(){dataLayer.push(arguments);}
203gtag('js', new Date());
204gtag('config', '
204UA-23762870-1
vendor: 4 bytes, line 204
204');
205</script>
205
206<!-- No text_Google_Tag_Manager_ID defined -->
207<!-- end of metatags -->
208</head>
209<body class="notMobile"
210id="default">
211<!-- THESE ARE HERE (ADMIN) BECAUSE THEY NEED TO BE AT THE TOP OF THE BODY, NOT IN THE META TAGS -->
212<!-- No text_Google_Tag_Manager_ID defined -->
213<nav style="position:sticky;top:0;z-index:2000;" class="navbar pagenav-dropshade navbar-expand-lg navbar-dark bg-blue stick-top " role="navigation">
214<div class="container">
215<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarNav" aria-expanded="false" aria-controls="navbar">
216<span class="navbar-toggler-icon"></span>
217<span class="sr-only">Menu</span>
218</button>
219<div class="navbar-collapse collapse" id="navbarNav">
220<ul class="navbar-nav ml-auto mr-auto">
221<!-- no navcat_13 -->
222<li class="nav-item dropdown">
223<a href="/" class="nav-link">Home</a>
224</li><!-- yo2 -->
225<!-- no navcat_6 -->
226<li class="nav-item dropdown">
227<a href="/e/6/Departments" class="nav-link dropdown-toggle">Departments</a>
228<div class="dropdown-menu columns-4" id="drop-shade_6">
229<div class="row">
230<div class="col-sm-3">
231<ul class="multi-column-dropdown">
232<li>
233<a id="menu_p57" href="/p/57/Agriculture-Commission" >Agriculture Commission</a>
234</li>
235<li>
236<a id="menu_p20" href="/p/20/Animal-Inspection-and-Control" >Animal Inspection and Control</a>
237</li>
238<li>
239<a id="menu_p50" href="/p/50/Board-of-Assessors" >Board of Assessors</a>
240</li>
241<li>
242<a id="menu_p51" href="/p/51/Board-of-Health" >Board of Health</a>
243</li>
244<li>
245<a id="menu_p83" href="/p/83/Building-Inspector" >Building Inspector</a>
246</li>
247<li>
248<a id="menu_p58" href="/p/58/Capital-Planning-Committee" >Capital Planning Committee</a>
249</li>
250<li>
251<a id="menu_p59" href="/p/59/Charlemont-Sewer-Commission" >Charlemont Sewer Commission</a>
252</li>
253<li>
254<a id="menu_p52" href="/p/52/Conservation-Commission" >Conservation Commission</a>
255</li>
256</ul><!-- a -->
257</div>
258<div class="col-sm-3">
259<ul class="multi-column-dropdown">
260<li>
261<a id="menu_p28" href="/p/28/Council-on-Aging" >Council on Aging</a>
262</li>
263<li>
264<a id="menu_p16" href="/p/16/Emergency-Management" >Emergency Management</a>
265</li>
266<li>
267<a id="menu_p17" href="/p/17/Emergency-Service-Ambulance" >Emergency Service Ambulance</a>
268</li>
269<li>
270<a id="menu_p29" href="/p/29/Fire-Department" >Fire Department</a>
271</li>
272<li>
273<a id="menu_p31" href="/p/31/Highway-Department" >Highway Department</a>
274</li>
275<li>
276<a id="menu_p53" href="/p/53/Historical-Commission" >Historical Commission</a>
277</li>
278<li>
279<a id="menu_p70" href="/p/70/Master-Plan" >Master Plan</a>
280</li>
281<li>
282<a id="menu_p21" href="/p/21/Moderator" >Moderator</a>
283</li>
284</ul><!-- a -->
285</div>
286<div class="col-sm-3">
287<ul class="multi-column-dropdown">
288<li>
289<a id="menu_p54" href="/p/54/Park-and-Recreation-Commission" >Park and Recreation Commission</a>
290</li>
291<li>
292<a id="menu_p55" href="/p/55/Planning-Board" >Planning Board</a>
293</li>
294<li>
295<a id="menu_p33" href="/p/33/Police-Department" >Police Department</a>
296</li>
297<li>
298<a id="menu_p19" href="/p/19/Public-Records-Access" >Public Records Access</a>
299</li>
300<li>
301<a id="menu_p49" href="/p/49/Select-Board" >Select Board</a>
302</li>
303<li>
304<a id="menu_p22" href="/p/22/Tax-Collector" >Tax Collector</a>
305</li>
306<li>
307<a id="menu_p23" href="/p/23/Town-Accountant" >Town Accountant</a>
308</li>
309<li>
310<a id="menu_p84" href="/p/84/Town-Administrator" >Town Administrator</a>
311</li>
312</ul><!-- a -->
313</div>
314<div class="col-sm-3">
315<ul class="multi-column-dropdown">
316<li>
317<a id="menu_p24" href="/p/24/Town-Clerk" >Town Clerk</a>
318</li>
319<li>
320<a id="menu_p32" href="/p/32/Transfer-Station" >Transfer Station</a>
321</li>
322<li>
323<a id="menu_p27" href="/p/27/Tree-Warden" >Tree Warden</a>
324</li>
325<li>
326<a id="menu_p25" href="/p/25/Tyler-Memorial-Library" >Tyler Memorial Library</a>
327</li>
328<li>
329<a id="menu_p48" href="/p/48/Upper-Pioneer-Valley-Veterans-Services-District" >Veterans’ Services District</a>
330</li>
331<li>
332<a id="menu_p56" href="/p/56/Zoning-Board-of-Appeals" >Zoning Board of Appeals</a>
333</li>
334</ul><!-- b -->
335</div>
336</div>
337</div><!-- was ul -->
338</li><!-- yo2 -->
339<!-- no navcat_1013 -->
340<li class="nav-item dropdown">
341<a href="/e/1013/Committees" class="nav-link dropdown-toggle">Committees</a>
342<div class="dropdown-menu columns-4" id="drop-shade_1013">
343<div class="row">
344<div class="col-sm-3">
345<ul class="multi-column-dropdown">
346<li>
347<a id="menu_p61" href="/p/61/Broadband-Committee" >Broadband Committee</a>
348</li>
349<li>
350<a id="menu_p65" href="/p/65/Earth-Removal-Committee" >Earth Removal Committee</a>
351</li>
352</ul><!-- a -->
353</div>
354<div class="col-sm-3">
355<ul class="multi-column-dropdown">
356<li>
357<a id="menu_p66" href="/p/66/East-Charlemont-School-House" >East Charlemont School House</a>
358</li>
359<li>
360<a id="menu_p67" href="/p/67/Finance-Committee" >
360Finance Committee</a>
361</li>
362</ul><!-- a -->
363</div>
364<div class="col-sm-3">
365<ul class="multi-column-dropdown">
366<li>
367<a id="menu_p68" href="/p/68/Flag-Committee" >Flag Committee</a>
368</li>
369<li>
370<a id="menu_p85" href="/p/85/Mohawk-School-Committee" >Mohawk School Committee</a>
371</li>
372</ul><!-- a -->
373</div>
374<div class="col-sm-3">
375<ul class="multi-column-dropdown">
376<li>
377<a id="menu_p86" href="/p/86/Hawlemont-School-Committee" >Hawlemont School Committee</a>
378</li>
379<li>
380<a id="menu_p1085" href="/p/1085/Charlemont-Recall-Bylaw-Committee" >Charlemont Recall Bylaw Committee</a>
381</li>
382</ul><!-- b -->
383</div>
384</div>
385</div><!-- was ul -->
386</li><!-- yo2 -->
387<!-- no navcat_11 -->
388<li class="nav-item dropdown">
389<a href="/files" class="nav-link dropdown-toggle">Files</a>
390<div class="dropdown-menu columns-4" id="drop-shade_11">
391<div class="row">
392<div class="col-sm-3">
393<ul class="multi-column-dropdown">
394<li>
395<a id="menu_f1031" href="/f/0/1031/Abandoned-and-Derelict-Properties-Task-Force"	>Abandoned and Derelict Properties Task Force</a>
396</li>
397<li>
398<a id="menu_f1004" href="/f/0/1004/Agricultural-Commission-Meetings"	>Agricultural Commission Meetings</a>
399</li>
400<li>
401<a id="menu_f2042" href="/f/0/2042/All-Board--Joint-Meetings"	>All Board / Joint Meetings</a>
402</li>
403<li>
404<a id="menu_f1029" href="/f/0/1029/Annual-Town-Meetings"	>Annual Town Meetings</a>
405</li>
406<li>
407<a id="menu_f1005" href="/f/0/1005/Board-of-Assessors-Meetings"	>Board of Assessors Meetings</a>
408</li>
409<li>
410<a id="menu_f1007" href="/f/0/1007/Board-of-Health-Meetings"	>Board of Health Meetings</a>
411</li>
412<li>
413<a id="menu_f2030" href="/f/0/2030/Broadband-Committee-Files"	>Broadband Committee Files</a>
414</li>
415<li>
416<a id="menu_f1008" href="/f/0/1008/Broadband-Committee-Meetings"	>Broadband Committee Meetings</a>
417</li>
418<li>
419<a id="menu_f2054" href="/f/0/2054/Cannabis-Business-Application"	>Cannabis Business Application</a>
420</li>
421<li>
422<a id="menu_f1023" href="/f/0/1023/Capital-Improvement-Commission"	>Capital Improvement Commission</a>
423</li>
424<li>
425<a id="menu_f1009" href="/f/0/1009/Capital-Planning-Meetings"	>Capital Planning Meetings</a>
426</li>
427</ul><!-- a -->
428</div>
429<div class="col-sm-3">
430<ul class="multi-column-dropdown">
431<li>
432<a id="menu_f1010" href="/f/0/1010/Cemetery-Committee-Meetings"	>Cemetery Committee Meetings</a>
433</li>
434<li>
435<a id="menu_f1032" href="/f/0/1032/Charlemont-250"	>Charlemont 250</a>
436</li>
437<li>
438<a id="menu_f1011" href="/f/0/1011/Conservation-Commission-Meetings"	>Conservation Commission Meetings</a>
439</li>
440<li>
441<a id="menu_f1012" href="/f/0/1012/Council-on-Aging-Meetings"	>Council on Aging Meetings</a>
442</li>
443<li>
444<a id="menu_f1013" href="/f/0/1013/Deerfield-River-Commission-Meetings"	>Deerfield River Commission Meetings</a>
445</li>
446<li>
447<a id="menu_f1033" href="/f/0/1033/Earth-Removal-Committee-Minutes"	>Earth Removal Committee Minutes</a>
448</li>
449<li>
450<a id="menu_f1014" href="/f/0/1014/Economic-Development-Roundtable-Minutes"	>Economic Development Roundtable Minutes</a>
451</li>
452<li>
453<a id="menu_f1015" href="/f/0/1015/Finance-Committee-Meetings"	>Finance Committee Meetings</a>
454</li>
455<li>
456<a id="menu_f1024" href="/f/0/1024/Fire-Department"	>Fire Department</a>
457</li>
458<li>
459<a id="menu_f2039" href="/f/0/2039/Flag-Committee-Minutes"	>Flag Committee Minutes</a>
460</li>
461<li>
462<a id="menu_f1030" href="/f/0/1030/Flyers-and-Events"	>Flyers and Events</a>
463</li>
464</ul><!-- a -->
465</div>
466<div class="col-sm-3">
467<ul class="multi-column-dropdown">
468<li>
469<a id="menu_f1034" href="/f/0/1034/Franklin-Regional-Council-of-Governments"	>Franklin Regional Council of Governments</a>
470</li>
471<li>
472<a id="menu_f4" href="/f/0/4/General-Files"	>General Files</a>
473</li>
474<li>
475<a id="menu_f1025" href="/f/0/1025/Highway-Department"	>Highway Department</a>
476</li>
477<li>
478<a id="menu_f1016" href="/f/0/1016/Joint--All-Boards"	>Joint / All Boards</a>
479</li>
480<li>
481<a id="menu_f1017" href="/f/0/1017/Master-Plan-Action-Commission-Meetings"	>Master Plan Action Commission Meetings</a>
482</li>
483<li>
484<a id="menu_f2052" href="/f/0/2052/MVP-20"	>MVP 2.0</a>
485</li>
486<li>
487<a id="menu_f1018" href="/f/0/1018/Park-and-Recreation-Meetings"	>Park and Recreation Meetings</a>
488</li>
489<li>
490<a id="menu_f2047" href="/f/0/2047/Permits"	>Permits</a>
491</li>
492<li>
493<a id="menu_f1019" href="/f/0/1019/Planning-Board-Meetings"	>Planning Board Meetings</a>
494</li>
495<li>
496<a id="menu_f1026" href="/f/0/1026/Police-Department"	>Police Department</a>
497</li>
498<li>
499<a id="menu_f1020" href="/f/0/1020/School-Committee-Meetings"	>
499School Committee Meetings</a>
500</li>
501</ul><!-- a -->
502</div>
503<div class="col-sm-3">
504<ul class="multi-column-dropdown">
505<li>
506<a id="menu_f1006" href="/f/0/1006/Select-Board-Meetings"	>Select Board Meetings</a>
507</li>
508<li>
509<a id="menu_f1022" href="/f/0/1022/Special-Town-Meetings"	>Special Town Meetings</a>
510</li>
511<li>
512<a id="menu_f2053" href="/f/0/2053/Town-Administrator-Reports"	>Town Administrator Reports</a>
513</li>
514<li>
515<a id="menu_f1028" href="/f/0/1028/Town-Clerk"	>Town Clerk</a>
516</li>
517<li>
518<a id="menu_f1035" href="/f/0/1035/Vocational-Education-Advisory-Committee"	>Vocational Education Advisory Committee</a>
519</li>
520<li>
521<a id="menu_f1021" href="/f/0/1021/Zoning-Board-Meetings"	>Zoning Board Meetings</a>
522</li>
523<li>
524<a id="menu_f2048" href="/f/0/2048/Animal-Control-Documents"	>Animal Control Documents</a>
525</li>
526<li>
527<a id="menu_f2049" href="/f/0/2049/Town-Administrator"	>Town Administrator</a>
528</li>
529<li>
530<a id="menu_f2050" href="/f/0/2050/Recall-Bylaw-Committee"	>Recall Bylaw Committee </a>
531</li>
532</ul><!-- b -->
533</div>
534</div>
535</div><!-- was ul -->
536</li><!-- yo2 -->
537<!-- no navcat_12 -->
538<li class="nav-item dropdown">
539<a href="/calendar" class="nav-link dropdown-toggle">Calendar</a>
540<div class="dropdown-menu columns-4" id="drop-shade_12">
541<div class="row">
542<div class="col-sm-3">
543<ul class="multi-column-dropdown">
544<li>
545<a id="menu_p1007" href="/d/0/?cid=1007"	>Board of Assessors</a>
546</li>
547<li>
548<a id="menu_p1008" href="/d/0/?cid=1008"	>Board of Health</a>
549</li>
550<li>
551<a id="menu_p1010" href="/d/0/?cid=1010"	>Broadband Committee</a>
552</li>
553<li>
554<a id="menu_p1017" href="/d/0/?cid=1017"	>Capital Improvement Commission</a>
555</li>
556<li>
557<a id="menu_p1018" href="/d/0/?cid=1018"	>Cemetery Committee</a>
558</li>
559</ul><!-- a -->
560</div>
561<div class="col-sm-3">
562<ul class="multi-column-dropdown">
563<li>
564<a id="menu_p1006" href="/d/0/?cid=1006"	>Community Events</a>
565</li>
566<li>
567<a id="menu_p1012" href="/d/0/?cid=1012"	>Conservation Commission</a>
568</li>
569<li>
570<a id="menu_p1019" href="/d/0/?cid=1019"	>Economic Development</a>
571</li>
572<li>
573<a id="menu_p1013" href="/d/0/?cid=1013"	>Finance Committee</a>
574</li>
575<li>
576<a id="menu_p1014" href="/d/0/?cid=1014"	>Parks and Recreation</a>
577</li>
578</ul><!-- a -->
579</div>
580<div class="col-sm-3">
581<ul class="multi-column-dropdown">
582<li>
583<a id="menu_p1015" href="/d/0/?cid=1015"	>Planning Board</a>
584</li>
585<li>
586<a id="menu_p1011" href="/d/0/?cid=1011"	>School Committees</a>
587</li>
588<li>
589<a id="menu_p1009" href="/d/0/?cid=1009"	>Select Board</a>
590</li>
591<li>
592<a id="menu_p1020" href="/d/0/?cid=1020"	>Senior Center</a>
593</li>
594<li>
595<a id="menu_p5" href="/d/0/?cid=5"	>Town Hall</a>
596</li>
597</ul><!-- a -->
598</div>
599<div class="col-sm-3">
600<ul class="multi-column-dropdown">
601<li>
602<a id="menu_p1021" href="/d/0/?cid=1021"	>Town Nurse</a>
603</li>
604<li>
605<a id="menu_p1016" href="/d/0/?cid=1016"	>Tyler Memorial Library</a>
606</li>
607<li>
608<a id="menu_p1022" href="/d/0/?cid=1022"	>Zoning Board of Appeals</a>
609</li>
610</ul><!-- b -->
611</div>
612</div>
613</div><!-- was ul -->
614</li><!-- yo2 -->
615<!-- no navcat_14 -->
616<li class="nav-item dropdown">
617<a href="/e/14/Community" class="nav-link dropdown-toggle">Community</a>
618<div class="dropdown-menu columns-4" id="drop-shade_14">
619<div class="row">
620<div class="col-sm-3">
621<ul class="multi-column-dropdown">
622<li>
623<a id="menu_p1090" href="/p/1090/Available-Assistance-for-Charlemont-Residents" >Available Assistance for Charlemont Residents</a>
624</li>
625<li>
626<a id="menu_p39" href="/p/39/Charlemont-Lions-Club" >Charlemont Lions Club</a>
627</li>
628</ul><!-- a -->
629</div>
630<div class="col-sm-3">
631<ul class="multi-column-dropdown">
632<li>
633<a id="menu_p1092" href="/p/1092/Electrical-Aggregation" >Electrical Aggregation</a>
634</li>
635<li>
636<a id="menu_p1091" href="/p/1091/FRTA-Bus-Charlemont-Route-Schedule" >FRTA Bus Charlemont Route Schedule</a>
637</li>
638</ul><!-- a -->
639</div>
640<div class="col-sm-3">
641<ul class="multi-column-dropdown">
642<li>
643<a id="menu_p37" href="/p/37/Mohawk-Trail-Concerts" >Mohawk Trail Concerts</a>
644</li>
645</ul><!-- b -->
646</div>
647</div>
648</div><!-- was ul -->
649</li><!-- yo2 -->
650<!-- no navcat_15 -->
651<li class="nav-item dropdown">
652<a href="/e/15/History" class="nav-link dropdown-toggle">History</a>
653<div class="dropdown-menu columns-4" id="drop-shade_15">
654<div class="row">
655<div class="col-sm-3">
656<ul class="multi-column-dropdown">
657<li>
658<a id="menu_p41" href="/p/41/Underground-Railroad" >Underground Railroad</a>
659</li>
660<li>
661<a id="menu_p43" href="/p/43/Way-Back-in-Time" >Way Back in Time</a>
662</li>
663</ul><!-- a -->
664</div>
665<div class="col-sm-3">
666<ul class="multi-column-dropdown">
667<li>
668<a id="menu_p44" href="/p/44/Bissell-Bridge-Restoration" >Bissell Bridge Restoration</a>
669</li>
670<li>
671<a id="menu_p45" href="/p/45/Charlemont-Man-Listed-on-Revolutionary-War-Monument" >Revolutionary War Monument</a>
672</li>
673</ul><!-- a -->
674</div>
675<div class="col-sm-3">
676<ul class="multi-column-dropdown">
677<li>
678<a id="menu_p46" href="/p/46/Moses-Rice-Gravesite-Gets-Some-Much-Needed-Attention" >Moses Rice Gravesite</a>
679</li>
680<li>
681<a id="menu_p47" href="http://www.sec.state.ma.us/mhc/mhcpra/praslideshow07/praslideshow07_charlemont.html" target="_blank" >Taylor's Fort Excavation</a>
682</li>
683</ul><!-- b -->
684</div>
685</div>
686</div><!-- was ul -->
687</li><!-- yo2 -->
688<!-- qsCats -->
689</ul><!-- d -->
690</div>
691</div>
692</nav>
693<header>
694<div class="container-fluid top-container bg-blue-fade text-light">
695<!-- Top-Section-->
696<div class="container">
697<div class="row pt-2">
698<div class="col-12 col-sm-6 col-md-3 seal d">
699<a href="/"><img class="img-fluid" src="/site/seal.png" alt="Charlemont town seal" /></a>
700</div>
701<div class="col-12 col-sm-6 col-md-3">
702<div class="h1">Charlemont</div>
703<div class="h4">Massachusetts</div>
704</div>
705<div class="col-12 col-sm-6 col-md-3 top-contact d-none d-sm-block">
706<ul>
707<li><strong>Charlemont</strong></li>
708<li>
708157 Main Street, 01339</li>
709<li>413-339-4335</li>
710<li><a href="/contact">Contact Us</a></li>
711</ul>
712</div>
713<div class="col-12 col-sm-6 col-md-3">
714<div class="top-search">
715<search class="center inline-block" style="">
716<form method="get" action="/z/0/" class="sitesearch noprint mb-0" role="search" aria-label="search" class="inline-block" id="search" style="">
717<div class="input-group" >
718<label for="term" class="sr-only" aria-label="Search">Search</label>
719<input title="Search Term" type="search" class="form-control" maxlength="30" name="term" id="term" placeholder="Search our website" value="" style="background:white!important;color:black!important;">
720<span class="input-group-btn">
721<button id="go" type="submit" aria-label="submit" class="btn btn-default black">Go!</button>
722</span>
723</div>
724<input type="hidden" name="module" value="">
725</form>
726</search>
727</div>
728</div>
729</div>
730</div>
731</div>
732</header>
733<main>
734<div class="container content-container-2 shadow">
735<div class="row pb-5">
736<!-- Jumbtron -->
737<div class="col-12 p-0"><img class="img-fit" src="/site/header-1.jpg" alt="Town of Charlemont forest view" /></div>
738<!-- Mobile Contact -->
739<div class="col-12 p-3 d-block d-sm-none mobile-contact">
740<div class="static mobile">
741<!-- from var application.static.mobile -->
742</div>
743</div>
744<!-- News -->
745<div class="col-12 col-sm-12 col-md-12 pt-2 mt-2">
746<div class="content">
747<main>
748<!-- START PAGE DIV -->
749<div class="page n n0 " style="">
750<div class="container maincontent">
751<div class="row">
752<div class="col-sm-12">
753<div class="newsPageItem newsPageItem_20258 yesprint" >
754<h3 class="news">
755<a href="/n/20258/October-2026-Newsletter">
756<span>October 2026 Newsletter</span>
757</a></h3>
758<!-- no synopsis -->
759<p class="updated">
760<em>
761Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Sep 29, 2026
762<br />Updated: Tue, Sep 29, 2026
763</em>
764</p>
765</div>
766<div class="newsPageItem newsPageItem_20257 yesprint" >
767<h3 class="news">
768<a href="/n/20257/Electrical-Aggregation-Quarter-2-2026-Report">
769<span>Electrical Aggregation Quarter 2 2026 Report</span>
770</a></h3>
771<!-- no synopsis -->
772<p class="updated">
773<em>
774Posted: to <a href="/?p=n.0&cid=5">General News</a> on Wed, Sep 23, 2026
775<br />Updated: Wed, Sep 23, 2026
776</em>
777</p>
778</div>
779<div class="newsPageItem newsPageItem_20256 yesprint" >
780<h3 class="news">
781<a href="/n/20256/Annual-Property-Inspections-from-the-Assessors-Office">
782<span>
782Annual Property Inspections from the Assessors Office</span>
783</a></h3>
784<!-- no synopsis -->
785<p class="updated">
786<em>
787Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Sep 15, 2026
788<br />Updated: Tue, Sep 15, 2026
789</em>
790</p>
791</div>
792<div class="newsPageItem newsPageItem_20255 yesprint" >
793<h3 class="news">
794<a href="/n/20255/Attorney-General-Approves-By-Laws-Approved-at-May-Town-Meeting">
795<span>Attorney General Approves By Laws Approved at May Town Meeting</span>
796</a></h3>
797<!-- no synopsis -->
798<p class="updated">
799<em>
800Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Sep 8, 2026
801<br />Updated: Wed, Sep 9, 2026
802</em>
803</p>
804</div>
805<div class="newsPageItem newsPageItem_20253 yesprint" >
806<h3 class="news">
807<a href="/n/20253/Invitation-to-Bid-Propane-and-Equipment-Rental">
808<span>Invitation to Bid Propane and Equipment Rental</span>
809</a></h3>
810<!-- no synopsis -->
811<p class="updated">
812<em>
813Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Aug 25, 2026
814<br />Updated: Tue, Aug 25, 2026
815</em>
816</p>
817</div>
818<div class="newsPageItem newsPageItem_20248 yesprint" >
819<a href="/n/20248/Drought-Information"><span class="newslist"><img
820class="news" border="0" src="/news/news_20248_small.jpg?20260923094613"
821alt="" align="right"></span></a>
822<h3 class="news">
823<a href="/n/20248/Drought-Information">
824<span>Drought Information</span>
825</a></h3>
826<p class="synopsysList">updated on September 10,2026</p>
827<p class="updated">
828<em>
829Posted: to <a href="/?p=n.0&cid=5">General News</a> on Mon, Jun 15, 2026
830<br />Updated: Wed, Sep 23, 2026
831</em>
832</p>
833</div>
834<div class="newsPageItem newsPageItem_20243 yesprint" >
835<h3 class="news">
836<a href="/n/20243/Town-Meeting-Budget">
837<span>Town Meeting Budget</span>
838</a></h3>
839<!-- no synopsis -->
840<p class="updated">
841<em>
842Posted: to <a href="/?p=n.0&cid=5">General News</a> on Sat, May 23, 2026
843<br />Updated: Sat, May 23, 2026
844</em>
845</p>
846</div>
847<div class="newsPageItem newsPageItem_20242 yesprint" >
848<h3 class="news">
849<a href="/n/20242/Town-Report-2025">
850<span>Town Report 2025</span>
851</a></h3>
852<!-- no synopsis -->
853<p class="updated">
854<em>
855Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, May 22, 2026
856<br />Updated: Fri, May 22, 2026
857</em>
858</p>
859</div>
860<div class="newsPageItem newsPageItem_20241 yesprint" >
861<h3 class="news">
862<a href="/n/20241/Composting-Presentation-for-Franklin-County-Solid-Waste-Towns">
863<span>Composting Presentation for Franklin County Solid Waste Towns</span>
864</a></h3>
865<!-- no synopsis -->
866<p class="updated">
867<em>
868Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, May 8, 2026
869<br />Updated: Fri, May 8, 2026
870</em>
871</p>
872</div>
873<div class="newsPageItem newsPageItem_20236 yesprint" >
874<h3 class="news">
875<a href="/n/20236/Electrical-Aggregation-Report-For-Quarter-4-of-2025">
876<span>Electrical Aggregation Report For Quarter 4 of 2025</span>
877</a></h3>
878<!-- no synopsis -->
879<p class="updated">
880<em>
881Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, Mar 20, 2026
882<br />Updated: Fri, Mar 20, 2026
883</em>
884</p>
885</div>
886<div class="newsPageItem newsPageItem_20233 yesprint" >
887<a href="/n/20233/Drought-Update"><span class="newslist"><img
888class="news" border="0" src="/news/news_20233_small.jpg?20260513082300"
889alt="draught update poster" align="right"></span></a>
890<h3 class="news">
891<a href="/n/20233/Drought-Update">
892<span>Drought Update</span>
893</a></h3>
894<!-- no synopsis -->
895<p class="updated">
896<em>
897Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, Mar 13, 2026
898<br />Updated: Wed, May 13, 2026
899</em>
900</p>
901</div>
902<div class="newsPageItem newsPageItem_20231 yesprint" >
903<h3 class="news">
904<a href="/n/20231/Electrical-Aggregation-Rate-Increase-Notification">
905<span>Electrical Aggregation Rate Increase Notification</span>
906</a></h3>
907<!-- no synopsis -->
908<p class="updated">
909<em>
910Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, Feb 13, 2026
911<br />Updated: Fri, Feb 13, 2026
912</em>
913</p>
914</div>
915<div class="newsPageItem newsPageItem_20226 yesprint" >
916<h3 class="news">
917<a href="/n/20226/Electrical-Aggregation-Consumer-Notification--NEW-SUPPLIER-and-PRICE">
918<span>Electrical Aggregation Consumer Notification- NEW SUPPLIER and PRICE</span>
919</a></h3>
920<!-- no synopsis -->
921<p class="updated">
922<em>
923Posted: to <a href="/?p=n.0&cid=5">General News</a> on Wed, Nov 19, 2025
924<br />Updated: Tue, Nov 25, 2025
925</em>
926</p>
927</div>
928<div class="newsPageItem newsPageItem_20217 yesprint" >
929<h3 class="news">
930<a href="/n/20217/Annual-Town-Meeting-Minutes">
931<span>Annual Town Meeting Minutes</span>
932</a></h3>
933<!-- no synopsis -->
934<p class="updated">
935<em>
936Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Jul 22, 2025
937<br />Updated: Tue, Jul 22, 2025
938</em>
939</p>
940</div>
941<div class="newsPageItem newsPageItem_20209 yesprint" >
942<h3 class="news">
943<a href="/n/20209/June-3-Election-Results">
944<span>June 3 Election Results</span>
945</a></h3>
946<!-- no synopsis -->
947<p class="updated">
948<em>
949Posted: to <a href="/?p=n.0&cid=5">General News</a> on Wed, Jun 4, 2025
950<br />Updated: Wed, Jun 4, 2025
951</em>
952</p>
953</div>
954<div class="newsPageItem newsPageItem_20207 yesprint" >
955<h3 class="news">
956<a href="/n/20207/Master-Plan-for-Charlemont">
957<span>Master Plan for Charlemont</span>
958</a></h3>
959<!-- no synopsis -->
960<p class="updated">
961<em>
962Posted: to <a href="/?p=n.0&cid=5">General News</a> on Mon, Jun 2, 2025
963<br />Updated: Wed, Jul 2, 2025
964</em>
965</p>
966</div>
967<div class="newsPageItem newsPageItem_20206 yesprint" >
968<h3 class="news">
969<a href="/n/20206/Town-Report-for-year-ending-December-31-2024">
970<span>Town Report for year ending December 31, 2024</span>
971</a></h3>
972<!-- no synopsis -->
973<p class="updated">
974<em>
975Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, May 27, 2025
976<br />Updated: Tue, May 27, 2025
977</em>
978</p>
979</div>
980<div class="newsPageItem newsPageItem_20203 yesprint" >
981<h3 class="news">
982<a href="/n/20203/School-Committee-Recommendation-on-Sustainability-Study-Models">
983<span>School Committee Recommendation on Sustainability Study Models</span>
984</a></h3>
985<!-- no synopsis -->
986<p class="updated">
987<em>
988Posted: to <a href="/?p=n.0&cid=5">General News</a> on Fri, May 16, 2025
989<br />Updated: Fri, May 16, 2025
990</em>
991</p>
992</div>
993<div class="newsPageItem newsPageItem_20190 yesprint" >
994<h3 class="news">
995<a href="/n/20190/How-to-obtain-an-open-burn-permit">
996<span>How to obtain an open burn permit.</span>
997</a></h3>
998<!-- no synopsis -->
999<p class="updated">
1000<em>
1001Posted: to <a href="/?p=n.0&cid=5">General News</a> on Wed, Jan 15, 2025
1002<br />Updated: Wed, Jan 15, 2025
1003</em>
1004</p>
1005</div>
1006<div class="newsPageItem newsPageItem_20157 yesprint" >
1007<h3 class="news">
1008<a href="/n/20157/How-Property-Values-And-Taxes-Are-Determined">
1009<span>How Property Values And Taxes Are Determined</span>
1010</a></h3>
1011<!-- no synopsis -->
1012<p class="updated">
1013<em>
1014Posted: to <a href="/?p=n.0&cid=5">General News</a> on Tue, Dec 26, 2023
1015<br />Updated: Tue, Dec 26, 2023
1016</em>
1017</p>
1018</div>
1019<div class="newsPageItem newsPageItem_20118 yesprint" >
1020<h3 class="news">
1021<a href="/n/20118/Tax-Tips-for-Seniors-and-Retirees">
1022<span>Tax Tips for Seniors and Retirees</span>
1023</a></h3>
1024<p class="synopsysList">See the attached document for some helpful tax information provided by the Board of Assessors</p>
1025<p class="updated">
1026<em>
1027Posted: to <a href="/?p=n.0&cid=5">General News</a> on Wed, Nov 30, 2022
1028<br />Updated: Wed, Nov 30, 2022
1029</em>
1030</p>
1031</div>
1032<div class="newsPageItem newsPageItem_20085 yesprint" >
1033<a href="/n/20085/Elevator-Feasibility-Study-For-Town-Hall"><span class="newslist"><img
1034class="news" border="0" src="/news/news_20085_small.jpg?20260318141600"
1035alt="rendering of town hall" align="right"></span></a>
1036<h3 class="news">
1037<a href="/n/20085/Elevator-Feasibility-Study-For-Town-Hall">
1038<span>Elevator Feasibility Study For Town Hall</span>
1039</a></h3>
1040<!-- no synopsis -->
1041<p class="updated">
1042<em>
1043Posted: to <a href="/?p=n.0&cid=5">General News</a> on Thu, Apr 28, 2022
1044<br />Updated: Thu, Apr 28, 2022
1045</em>
1046</p>
1047</div>
1048</div>
1049</div>
1050</div>
1051</div>
1052<!-- END PAGE DIV -->
1053<div class="lowercontent">
1054<!-- START PAGE SECTIONS -->
1055<!-- inside page sections -->
1056<!-- this is NOT a p (62) -->
1057<!-- canview = 1 (83) -->
1058<!-- END PAGE SECTIONS -->
1059</div>
1060</main>
1061</div>
1062</div>
1063</div>
1064</div>
1065</main>
1066<!-- Footer -->
1067<footer class="footer row">
1068<div class="col-12 pb-5">
1069<div class="static footer-head">
1070<!-- from var application.static.footer_head -->
1071</div>
1072</div>
1073<div class="col-12 col-sm-6 col-md-6 col-lg-3">
1074<div class="static footer-one">
1075<!-- from var application.static.footer_one -->
1076</div>
1077</div>
1078<div class="col-12 col-sm-6 col-md-6 col-lg-3">
1079<div class="static footer-two">
1080<!-- from var application.static.footer_two -->
1081</div>
1082</div>
1083<div class="col-12 col-sm-6 col-md-6 col-lg-3">
1084<div class="static footer-three">
1085<!-- from var application.static.footer_three -->
1086</div>
1087</div>
1088<div class="col-12 col-sm-6 col-md-6 col-lg-3">
1089<div class="static footer-four">
1090<!-- from var application.static.footer_four -->
1091</div>
1092</div>
1093<div class="col-12 pt-3 text-center">
1094<p>
1095<div id="footer">
1096<span class="footerO">
1097<span class="footerL">
1098&copy; 2026 Town of Charlemont
1099|
1100Software by <a href=http://MontagueWebWorks.com target=_blank>Montague WebWorks</a>
1101</span>
1102<span class="footerM">
1103|
1104</span>
1105<span class="footerR">
1106<a href="https://RocketFusion.com" target="_blank">Powered by RocketFusion 123</a>
1107</span>
1108</span>
1109</div>
1110</p>
1111<p>
1112<span class="login-link">
1113<a class="login noprint" 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>
1114<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>
1115</span>
1116</p>
1117</div>
1118</footer>
1119<!-- BS4 Init -->
1120<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>
1121<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
vendor: 1 bytes, line 1121
1121
1122<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 1122
1122
1123<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 1123
1123
1124<script>
1125// Assuming we have a div with id="editor_container"
1126const filerobotImageEditor = new window.FilerobotImageEditor(
1127document.querySelector("#rf-image-editor-edit")
1128);
1129const image_file_upload = document.getElementById("rf-image-upload");
1130// const btn_image_upload_edit = document.getElementById("btn-image-upload-edit");
1131var source_image = ''; // the HTMLImageElement
1132var save_image_name = ''; // name to save image with
1133var global_fr_folder = ''; // where to upload
1134var global_fr_table = ''; // db table to update
1135var global_fr_prefix = ''; // image file prefix, ie; blocks_
1136var global_fr_pid = 0; // image ID, ie; blocks_2323
1137var dropzone_website_dir = 'Charlemont-MA.us\\httpdocs';
1138const file_robot_defaults = {
1139save_image_quality : 1, // 0.1 - 1 (default 0.92) - applies to jpeg, jpg and webp images only
1140};
1141function renderFileRobotEditor(source,fr_folder=global_fr_folder,fr_table=global_fr_table,fr_prefix=global_fr_prefix,fr_pid=global_fr_pid) {
1142console.group("renderFileRobotEditor() called");
1143console.log('source:', source);
1144console.log('fr_folder:', fr_folder);
1145console.log('fr_table:', fr_table);
1146console.log('fr_prefix:', fr_prefix);
1147console.log('fr_pid:', fr_pid);
1148console.groupEnd();
1149source_image = source;
1150filerobotImageEditor.render({
1151source: source_image,
1152useBackendTranslations: false,
1153defaultSavedImageName: save_image_name,
1154defaultSavedImageQuality: file_robot_defaults.save_image_quality,
1155tabsIds: [
1156window.FilerobotImageEditor.TABS.ADJUST,
1157window.FilerobotImageEditor.TABS.FINETUNE,
1158window.FilerobotImageEditor.TABS.FILTERS,
1159window.FilerobotImageEditor.TABS.ANNOTATE,
1160window.FilerobotImageEditor.TABS.WATERMARK], // or ['Adjust', 'Annotate', 'Watermark']
1161defaultTabId: window.FilerobotImageEditor.TABS.ADJUST,
1162Crop: {
1163minWidth: 14,
1164minHeight: 14,
1165maxWidth: null,
1166maxHeight: null,
1167ratio: 'custom',
1168ratioTitleKey: 'custom',
1169noPresets: false,
1170autoResize: false,
1171presetsItems: [],
1172presetsFolders: [],
1173lockCropAreaAt: null, // 'top-left'
1174},
1175// disable save modal
1176onBeforeSave: () => {
1177return false;
1178},
1179onSave: async (imageInfo, designState) => {
1180// console.log('onSave() imageInfo', imageInfo);
1181// console.log('onSave() designState', designState);
1182// create formData object to populate and send with fetch request
1183const formData = new FormData();
1184formData.append('image64', imageInfo.imageBase64);
1185formData.append('image_extension', imageInfo.extension);
1186formData.append('image_height', imageInfo.height);
1187formData.append('image_name', imageInfo.name);
1188formData.append('image_name_with_extension', imageInfo.fullName);
1189formData.append('image_quality', imageInfo.quality);
1190formData.append('image_width', imageInfo.width);
1191formData.append('dropzone_website_dir', dropzone_website_dir); // e.g. MikMuller.com\httpdocs
1192formData.append('rf_dropzone_dir', fr_folder);
1193console.log('onSave() formData [2]', formData);
1194// add dropzone options for compatibility with current upload script
1195const drop_zone_options = {
1196tbl: fr_table,
1197imgbase: `${fr_prefix}${fr_pid}`,
1198imgname: imageInfo.fullName,
1199id: fr_pid
1200}
1201formData.append("dropzone_options", JSON.stringify(drop_zone_options));
1202console.log('onSave() drop_zone_options', drop_zone_options);
1203try {
1204// _dropzone-file-upload-ajax.cfm
1205// _upload-base64.cfm (for testing)
1206console.log('renderFileRobotEditor.onSave() imageInfo', imageInfo);
1207const upload_request = await fetch('/inc/_dropzone-file-upload-ajax.cfm', {
1208method: 'POST',
1209body: formData
1210});
1211const upload_result = await upload_request.json();
1212// console.log('DEBUG: [onSave] upload_result', upload_result);
1213// close modal
1214$('#rfImageModalEdit').modal('hide');
1215// page reload
1216window.location.reload();
1217} catch (error) {
1218console.log('onSave() error', error);
1219const upload_result = {
1220code: 1,
1221message: error.message,
1222success: false
1223}
1224}
1225},
1226onClose: (closingReason) => {
1227console.log("Closing reason", closingReason);
1228filerobotImageEditor.terminate();
1229// reset the input field
1230document.getElementById('rf-image-upload').value = '';
1231},
1232});
1233}
1234/**
1235* Function to handle image selection from the file input field
1236* async as we use a promise to await image load
1237*/
1238async function onImageSelected(event, file_obj, fr_folder, fr_table, fr_prefix, fr_pid) {
1239let file;
1240if (file_obj) {
1241console.log('onImageSelected file_obj', file_obj, fr_folder, fr_table, fr_prefix, fr_pid);
1242file = file_obj;
1243} else {
1244file = event.target.files[0];
1245}
1246save_image_name = file.name;
1247console.log('onImageSelected file', file);
1248// const reader = new FileReader();
1249const image = new Image();
1250const img_max_width = 1600;
1251image.src = URL.createObjectURL(file);
1252// Promise to await image load
1253await new Promise((resolve) => {
1254image.onload = () => {
1255const img_width = image.width;
1256const img_height = image.height;
1257// console.log('onImageSelected img load', img_width, img_height);
1258if (img_width > img_max_width) {
1259const img_scale = img_max_width / img_width;
1260image.width = img_width * img_scale;
1261image.height = img_height * img_scale;
1262}
1263// resolve the promise
1264resolve();
1265};
1266});
1267// open the modal
1268$('#rfImageModalEdit').modal('show');
1269// Render file robot
1270renderFileRobotEditor(image, fr_folder, fr_table, fr_prefix, fr_pid);
1271}
1272/** Function to handle image editing */
1273function 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) {
1274console.log('[DEBUG] editExistingImage() called.');
1275console.log('image_url:', image_url);
1276console.log('image_name:', image_name);
1277console.log('fr_folder:', fr_folder);
1278console.log('fr_table:', fr_table);
1279console.log('fr_prefix:', fr_prefix);
1280console.log('fr_pid:', fr_pid);
1281save_image_name = image_name;
1282renderFileRobotEditor(image_url, fr_folder, fr_table, fr_prefix, fr_pid);
1283}
1284/** Function to open the hidden input file field */
1285function openFileInput(fr_folder='', fr_table='', fr_prefix='', fr_pid=0) {
1286console.log('[DEBUG] openFileInput() called.', fr_folder, fr_table, fr_prefix, fr_pid);
1287global_fr_folder = fr_folder; // where to upload
1288global_fr_table = fr_table; // db table to update
1289global_fr_prefix = fr_prefix; // image file prefix, ie; blocks_
1290global_fr_pid = fr_pid;
1291image_file_upload.click();
1292}
1293/** Function to open RF File Manager in a modal
1294* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
1295* Need the image full url to make a copy of for ai images
1296*/
1297function openRFFileManager(current_image_url, fr_folder=global_fr_folder, fr_table=global_fr_table, fr_prefix=global_fr_prefix, fr_pid=global_fr_pid) {
1298// $($(this).data( "target" ) + ' .modal-body').load( data_remote );
1299console.group("bs4_init openRFFileManager() called");
1300console.log("current_image_url:", current_image_url);
1301console.log("fr_folder:", fr_folder);
1302console.log("fr_table:", fr_table);
1303console.log("fr_prefix:", fr_prefix);
1304console.log("fr_pid:", fr_pid);
1305console.groupEnd();
1306const rfFileManagerModalIframe = document.getElementById('rfFileManagerModalIframe');
1307rfFileManagerModalIframe.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}`; ;
1308$('#rfFileManagerModal').modal('show');
1309}
1310/** Function to close the RF File Manager modal
1311* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
1312* Need to upload the image and then close the modal
1313*/
1314function closeRFFileManagerModal(image_path, img_name='', fr_folder='', fr_table='', fr_prefix='', fr_pid=0) {
1315console.group("bs4_init closeRFFileManagerModal() called");
1316console.log("image_path:",image_path);
1317console.log("img_name:",img_name);
1318console.log("fr_folder:",fr_folder);
1319console.log("fr_table:",fr_table);
1320console.log("fr_prefix:",fr_prefix);
1321console.log("fr_pid:",fr_pid);
1322console.groupEnd();
1323$('#rfFileManagerModal').modal('hide');
1324$('#rfImageModalEdit').modal('show');
1325save_image_name = img_name;
1326// renderFileRobotEditor(image_path);
1327renderFileRobotEditor(image_path, fr_folder, fr_table, fr_prefix, fr_pid);
1328}
1329/** Function to close the RF File Manager modal without opening File Robot
1330* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
1331*/
1332function closeRFFileManagerModalOnly(reload=false) {
1333$('#rfFileManagerModal').modal('hide');
1334if (reload) {
1335setTimeout(() => {
1336window.location.reload();
1337}, 500);
1338}
1339}
1340// Handle closing of modal without saving (must cleanup file robot editor)
1341$('#rfImageModalEdit').on('hidden.bs.modal', function (event) {
1342// console.log('modal closed');
1343filerobotImageEditor.terminate();
1344image_file_upload.value = '';
1345});
1346/** Rocketfusion - enable drag/drop zone on an image with the .rf-image-dropzone class */
1347// Create dropzone object for all images with the .rf-image-dropzone class
1348const rf_image_drop_zone = document.querySelectorAll('.rf-image-dropzone');
1349// Attach event listeners to all instances of rf_image_drop_zone
1350rf_image_drop_zone.forEach(function (i) {
1351// Handle drag over event
1352i.addEventListener('dragover', function(e) {
1353event.target.classList.add('image-dragover');
1354dragOverHandler(e);
1355});
1356// Handle drag leave event
1357i.addEventListener('dragleave', function(e) {
1358// console.log('Image dropzone dragleave');
1359event.target.classList.remove('image-dragover');
1360});
1361// Handle drop event
1362i.addEventListener('drop', function(e) {
1363event.target.classList.remove('image-dragover');
1364dropHandler(e);
1365});
1366});
1367/**
1368* Handles the drop event of files in the drop zone.
1369* Prevents the default behavior of opening the file and logs the names of the dropped files.
1370*
1371* @param {Event} ev - The drop event.
1372* @returns {undefined}
1373*/
1374function dropHandler(ev) {
1375// console.log('File(s) dropped');
1376// Prevent default behavior (Prevent file from being opened)
1377ev.preventDefault();
1378if (ev.dataTransfer.items) {
1379// Use DataTransferItemList interface to access the file(s)
1380[...ev.dataTransfer.items].forEach((item, i) => {
1381// If dropped items aren't files, reject them
1382if (item.kind === 'file') {
1383const file = item.getAsFile();
1384console.log(`file[${i}].name = ${file.name}`);
1385onImageSelected(i, file);
1386}
1387});
1388} else {
1389// Use DataTransfer interface to access the file(s)
1390[...ev.dataTransfer.files].forEach((file, i) => {
1391console.log(`file[${i}].name = ${file.name}`);
1392onImageSelected(i, file);
1393});
1394}
1395}
1396/**
1397* Handles the drag over event of files in the drop zone.
1398* Prevents the default behavior of opening the file.
1399*
1400* @param {Event} ev - The drag over event.
1401* @returns {undefined}
1402*/
1403function dragOverHandler(ev) {
1404// Prevent default behavior (Prevent file from being opened)
1405ev.preventDefault();
1406}
1407</script>
1407
1408<style>
1409.modal-fullscreen {
1410width: 100vw;
1411max-width: none;
1412height: 100%;
1413margin: 0;
1414}
1415.modal-content {
1416height: 100%;
1417border: 0;
1418@include border-radius(0);
1419}
1420.modal-body {
1421overflow-y: auto;
1422}
1423.image-dragover {
1424opacity: 0.5;
1425}
1426</style>
1427<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 1427
1427
1428<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 1428
1428
1429<script type="text/javascript" src="/RFAssets/js/joey.js?ver=20260930205248" charset="UTF-8"></script>
vendor: 1 bytes, line 1429
1429
1430<script type="text/javascript">
1431$( 'body' ).on( 'click', '[data-toggle="modal"]', function(){
1432let data_remote = $(this).data( "remote" );
1433if ( data_remote && data_remote.length >= 2 ) {
1434$($(this).data( "target" ) + ' .modal-content').load( data_remote );
1435}
1436});
1437</script>
vendor: 1 bytes, line 1437
1437
1438<script>
1439$(document).ready(function() {
1440//$('nav').animate({opacity:'1'}, 50);<!-- set to 0.25 to make see thru -->
1441//$(img).animate({opacity:'1'});
1442$initNavHgt = $('nav').outerHeight();
1443$initHeadLogoHgt = $('#headerLogo').outerHeight();
1444});
1445</script>
vendor: 1 bytes, line 1445
1445
1446<script>
1447(function(d)
1448{
1449var s = d.createElement("script");
1450s.setAttribute("data-account", "efy2WEGV1m");
1451s.setAttribute("src", "https://cdn.userway.org/widget.js");
1452(d.body || d.head).appendChild(s);
1453}
1454)
1455(document)
1456</script>
1456
1457<noscript>
1458<p>Please ensure Javascript is enabled for purposes of <a href="https://userway.org" target="_blank">website accessibility</a></p>
1459</noscript>
1460</body>
1461</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.