PageSourceSearch

https://athollibrary.org/contact

html athollibrary.org collected 2026-09-26 00:25:38 UTC 43,942 bytes, 989 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: Athol Public Library
11-->
12<!-- ================================================================================================================= -->
13<!-- Title and App Tags -->
14<!-- 20260911135345 -->
15<title>Contact - Athol Public Library</title>
16<meta property="og:title" content="Contact">
17<meta property="twitter:title" content="Contact - Athol Public Library">
18<meta itemprop="name" content="Contact - Athol Public Library">
19<!-- safari -->
20<meta name="apple-mobile-web-app-title" content="Contact - Athol Public Library">
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="Contact - Athol Public Library">
27<meta name="msapplication-tooltip" content="Contact - Athol Public Library">
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=
39Fruktur">
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="Athol" />
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-25" />
51<meta name="geo.region" content="US-MA" />
52<meta name="msvalidate.01" content=" " />
53<!-- no Facebook Pixel ID -->
54<meta name="author" content="Athol Public Library" />
55<meta name="owner" content="Athol Public Library" />
56<meta name="copyright" content="Copyright 2026 Athol Public Library" />
57<meta name="expires" content="Sep 25, 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="Athol Public Library">
66<meta property="og:type" content="website" />
vendor: 77 bytes, lines 66-67
66
67<script src="https://www.google.com/recaptcha/api.js" async defer></script>
68<!-- ================================================================================================================= -->
69<!-- FAVICONS start -->
70<!-- favicon info -->
71<link rel="shortcut icon" href="/favicon.ico" />
72<link rel="icon" href="/favicon.ico" type="image/x-icon" />
73<link rel="apple-touch-icon" href="/favicon.ico">
74<meta name="msapplication-TileImage" content="/favicon.ico">
75<link rel="apple-touch-icon" sizes="16x16" href="/icons/favicon-16x16.png">
76<link rel="icon" sizes="16x16" href="/icons/favicon-16x16.png">
77<meta name="msapplication-square16x16logo" content="/icons/favicon-16x16.png"/>
78<link rel="apple-touch-icon" sizes="24x24" href="/icons/favicon-24x24.png">
79<link rel="icon" sizes="24x24" href="/icons/favicon-24x24.png">
80<meta name="msapplication-square24x24logo" content="/icons/favicon-24x24.png"/>
81<link rel="apple-touch-icon" sizes="32x32" href="/icons/favicon-32x32.png">
82<link rel="icon" sizes="32x32" href="/icons/favicon-32x32.png">
83<meta name="msapplication-square32x32logo" content="/icons/favicon-32x32.png"/>
84<link rel="apple-touch-icon" sizes="48x48" href="/icons/favicon-48x48.png">
85<link rel="icon" sizes="48x48" href="/icons/favicon-48x48.png">
86<meta name="msapplication-square48x48logo" content="/icons/favicon-48x48.png"/>
87<link rel="apple-touch-icon" sizes="57x57" href="/icons/favicon-57x57.png">
88<link rel="icon" sizes="57x57" href="/icons/favicon-57x57.png">
89<meta name="msapplication-square57x57logo" content="/icons/favicon-57x57.png"/>
90<link rel="apple-touch-icon" sizes="60x60" href="/icons/favicon-60x60.png">
91<link rel="icon" sizes="60x60" href="/icons/favicon-60x60.png">
92<meta name="msapplication-square60x60logo" content="/icons/favicon-60x60.png"/>
93<link rel="apple-touch-icon" sizes="64x64" href="/icons/favicon-64x64.png">
94<link rel="icon" sizes="64x64" href="/icons/favicon-64x64.png">
95<meta name="msapplication-square64x64logo" content="/icons/favicon-64x64.png"/>
96<link rel="apple-touch-icon" sizes="70x70" href="/icons/favicon-70x70.png">
97<link rel="icon" sizes="70x70" href="/icons/favicon-70x70.png">
98<meta name="msapplication-square70x70logo" content="/icons/favicon-70x70.png"/>
99<link rel="apple-touch-icon" sizes="72x72" href="/icons/favicon-72x72.png">
100<link rel="icon" sizes="72x72" href="/icons/favicon-72x72.png">
101<meta name="msapplication-square72x72logo" content="/icons/favicon-72x72.png"/>
102<link rel="apple-touch-icon" sizes="76x76" href="/icons/favicon-76x76.png">
103<link rel="icon" sizes="76x76" href="/icons/favicon-76x76.png">
104<meta name="msapplication-square76x76logo" content="/icons/favicon-76x76.png"/>
105<link rel="apple-touch-icon" sizes="96x96" href="/icons/favicon-96x96.png">
106<link rel="icon" sizes="96x96" href="/icons/favicon-96x96.png">
107<meta name="msapplication-square96x96logo" content="/icons/favicon-96x96.png"/>
108<link rel="apple-touch-icon" sizes="114x114" href="/icons/favicon-114x114.png">
109<link rel="icon" sizes="114x114" href="/icons/favicon-114x114.png">
110<meta name="msapplication-square114x114logo" content="/icons/favicon-114x114.png"/>
111<link rel="apple-touch-icon" sizes="120x120" href="/icons/favicon-120x120.png">
112<link rel="icon" sizes="120x120" href="/icons/favicon-120x120.png">
113<meta name="msapplication-square120x120logo" content="/icons/favicon-120x120.png"/>
114<link rel="apple-touch-icon" sizes="128x128" href="/icons/favicon-128x128.png">
115<link rel="icon" sizes="128x128" href="/icons/favicon-128x128.png">
116<meta name="msapplication-square128x128logo" content="/icons/favicon-128x128.png"/>
117<link rel="apple-touch-icon" sizes="144x144" href="/icons/favicon-144x144.png">
118<link rel="icon" sizes="144x144" href="/icons/favicon-144x144.png">
119<meta name="msapplication-square144x144logo" content="/icons/favicon-144x144.png"/>
120<link rel="apple-touch-icon" sizes="150x150" href="/icons/favicon-150x150.png">
121<link rel="icon" sizes="150x150" href="/icons/favicon-150x150.png">
122<meta name="msapplication-square150x150logo" content="/icons/favicon-150x150.png"/>
123<link rel="apple-touch-icon" sizes="152x152" href="/icons/favicon-152x152.png">
124<link rel="icon" sizes="152x152" href="/icons/favicon-152x152.png">
125<meta name="msapplication-square152x152logo" content="/icons/favicon-152x152.png"/>
126<link rel="apple-touch-icon" sizes="196x196" href="/icons/favicon-196x196.png">
127<link rel="icon" sizes="196x196" href="/icons/favicon-196x196.png">
128<meta name="msapplication-square196x196logo" content="/icons/favicon-196x196.png"/>
129<link rel="apple-touch-icon" sizes="310x310" href="/icons/favicon-310x310.png">
130<link rel="icon" sizes="310x310" href="/icons/favicon-310x310.png">
131<meta name="msapplication-square310x310logo" content="/icons/favicon-310x310.png"/>
132<link rel="manifest" href="/icons/manifest.json">
133<meta name="apple-mobile-web-app-status-bar-style" content="black">
134<meta name="msapplication-TileColor" content="white">
135<meta name="theme-color" content="white">
136<!-- MS Application Tasks (off for now) -->
137<!-- FAVICONS end -->
138<!-- this is the contact page -->
139<meta property="og:url" content="/contact">
140<link rel="canonical" href="/contact">
141<meta itemprop="image" content="/library/Exterior-2000_large.jpg">
142<meta property="og:image" content="/library/Exterior-2000_large.jpg">
143<meta property="twitter:image" content="/library/Exterior-2000_large.jpg">
144<link rel="image_src" href="/library/Exterior-2000_large.jpg">
145<meta property="og:image:alt" content="Contact">
146<meta name="description" content="We have over 50,000 books, magazines, periodicals, books on tape, videos, c
146ompact discs, and other items, which are loaned to people who have a card.">
147<meta itemprop="description" content="We have over 50,000 books, magazines, periodicals, books on tape, videos, compact discs, and other items, which are loaned to people who have a card.">
148<meta property="og:description" content="We have over 50,000 books, magazines, periodicals, books on tape, videos, compact discs, and other items, which are loaned to people who have a card.">
149<meta property="twitter:description" content="We have over 50,000 books, magazines, periodicals, books on tape, videos, compact discs, and other items, which are loaned to people who have a card.">
150<!-- ================================================================================================================= -->
151<script src="https://kit.fontawesome.com/d3bffd01a6.js" crossorigin="anonymous"></script>
151
152<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
153<link rel="stylesheet" href="/RFassets/css/datatables-bs4.min.css">
154<link rel="stylesheet" href="/RFAssets/css/RFtables.css?ver=20260911135345">
155<link rel="stylesheet" href="/RFAssets/css/joey.css?ver=20260911135345">
156<link rel="stylesheet" href="/site_style.css?ver=20260911135345">
157<link rel="stylesheet" href="/header_style.css?ver=20260911135345">
158<link rel="stylesheet" href="/RFAssets/css/_admin.css?ver=20260911135345">
159<!-- custom stylesheet -->
160<link rel="stylesheet" href="/tmpl_Essence.css?ver=20260911135345">
161<script src="/RFAssets/js/boxover.js" type="text/javascript"></script>
vendor: 1 bytes, line 161
161
162<script type="text/javascript">
163function toggleLayer(whichLayer,what) {
164if (document.getElementById)
165{
166var style2 = document.getElementById(whichLayer).style;
167style2.display = what;
168}
169else if (document.all)
170{
171var style2 = document.all[whichLayer].style;
172style2.display = what;
173}
174else if (document.layers)
175{
176var style2 = document.layers[whichLayer].style;
177style2.display = what;
178}
179}
180function toggleCheckbox(source) {
181checkboxes = document.getElementsByName('file_delete');
182for(var i=0, n=checkboxes.length;i<n;i++) {
183checkboxes[i].checked = source.checked;
184}
185}
186</script>
vendor: 1 bytes, line 186
186
187<script>
188/**
189* Function that tracks a click on an outbound link in Analytics.
190* This function takes a valid URL string as an argument, and uses that URL string
191* as the event label. Setting the transport method to 'beacon' lets the hit be sent
192* using 'navigator.sendBeacon' in browser that support it.
193*/
194var trackOutboundLink = function(url) {
195ga('send', 'event', 'outbound', 'click', url, {
196'transport': 'beacon',
197'hitCallback': function(){document.location = url;}
198});
199}
200</script>
200
201<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 201-202
201
202<script async src="https://www.googletagmanager.com/gtag/js?id=
202G-JMNTWSXRG4
vendor: 12 bytes, line 202
202"></script>
203<script>
vendor: 127 bytes, lines 204-207
204window.dataLayer = window.dataLayer || [];
205function gtag(){dataLayer.push(arguments);}
206gtag('js', new Date());
207gtag('config', '
207G-JMNTWSXRG4
vendor: 4 bytes, line 207
207');
208</script>
208
209<!-- No text_Google_Tag_Manager_ID defined -->
210<!-- end of metatags -->
211</head>
212<body class="notMobile"
213id="default">
214<!-- THESE ARE HERE (ADMIN) BECAUSE THEY NEED TO BE AT THE TOP OF THE BODY, NOT IN THE META TAGS -->
215<!-- No text_Google_Tag_Manager_ID defined -->
216<!-- ************************** start of head_header ***********************-->
217<style>
218@media (min-width:993px) {
219body { margin-top:100px!important; }
220}
221@media (min-width:769px) and (max-width:992px) {
222body { margin-top:97px!important; }
223}
224@media (min-width:577px) and (max-width:768px) {
225body { margin-top:92px!important; }
226}
227@media (min-width:516px) and (max-width:576px) {
228body { margin-top:100px!important; }
229}
230@media (min-width:471px and max-width:515px) {
231body { margin-top:115px!important; }
232}
233@media (max-width:470px) {
234body { margin-top:165px!important; }
235}
236</style>
237<header class="header_default fixed-top ">
238<div class=" inside-header-container">
239<div class=" inside-header-row">
240<div class=" inside-header-col">
241<div class="NavInfoBar">
242<!-- woot navbar -->
243<div class="nav-info-bar pl-0 pr-0 pt-2 pb-2 mt-0 mb-0 noprint">
244<div class="brand-not-info-bar-1">
245<div class="brand-not-info-bar-2">
246<div class="container pl-0 pr-0">
247<div class="row m-0 pl-0 pr-0 align-items-center">
248<div class="col-sm-6 iconset-list text-left pl-0">
249<span class="iconset text1">
250<a id="infobar_1" href="/p/92/Directions-to-Athol-Public-Library" class="IBTextColorClass">
251<i class="fa fa-map-marker-alt" aria-hidden="true" aria-label="map-marker-alt icon"></i>
252<span class="IBTextColorClass">568 Main Street, Athol, MA, 01331</span>
253</a>
254</span>
255<span class="iconset text2">
256<i class="fa fa-phone" aria-hidden="true" aria-label="phone icon"></i>
257<span class=""> (978) 249-9515</span>
258</span>
259</div>
260<div class="col-sm-6 pr-0 text-right">
261<span class="iconset text5">
262<a id="infobar_5" href="/p/100/Hours" class="">
263<i class="fa fa-clock" aria-hidden="true" aria-label="clock icon"></i>
264<span class="">Hours</span>
265</a>
266</span>
267<span class="iconset text6">
268<a id="infobar_6" href="/p/92/Directions" class="">
269<i class="fa fa-map-marker-alt" aria-hidden="true" aria-label="map-marker-alt icon"></i>
270<span class="">Directions</span>
271</a>
272</span>
273</div>
274</div>
275</div>
276</div>
277</div>
278</div>
279</div>
280<!-- start pagenav tag -->
281<nav id="navmainpageNavID2" class="navbar pagenav-dropdown navbar-expand-md
282pl-0 pr-0 pt-1 pb-1 mt-0 mb-0 ml-0 mr-0">
283<div class="container pl-0 pr-0">
284<a class="navbar-brand-img navbar-brand pt-0 pb-0 pl-2 pr-2 d-flex align-items-center" href="/">
285<span class="brand-text">Athol Public Library</span>
286</a>
287<button class="navbar-toggler navbar-dark" data-toggle="collapse" aria-label="Open Menu" data-target="#navbar-1">
288<span class="navbar-toggler-icon navbar-dark"></span>
289</button>
290<div id="navbar-1" class="navbar-collapse collapse">
291<!-- REALESTATE ERROR 161 Invalid object name 'custom_MLSPIN.dbo.mls_listing_all'.: -->
292<ul class='nav navbar-nav ml-auto'><li class='nav-item'>
293<a id="menu_h" class="nav-link" href="/"><span>Home</span></a>
294<!-- IMAGES!! -->
295<!-- no images drop-down -->
296</li><li class='nav-item'>
297<a id="menu_p8"
298class="nav-link"
299href="/p/8/Athol-Public-Library-Services"><span>Services</span></a><!-- yo1 -->
300<!-- yo4 -->
301</li><li class='dropdown nav-item'>
302<a id="menu_p3"
303class="nav-link dropdown-toggle"
304href="/p/3/Youth-Services"><span>Youth Services</span></a><!-- yo1 -->
305<!-- yo2 -->
306<!-- hello from pagenav! -->
307<!-- sub-nav start -->
308<!-- qsImagesCat.recordCount = 17 -->
309<div class='subnav_p3 dropdown-menu dropdown-menu-left'><ul><li class='dropdown-item'>
310<!-- hoohah 167 -->
311<!-- PAGES! -->
312<!-- hoohah 202 -->
313<!-- thecount = 1 -->
314<a id="menu_p34" 
315href="/Children">
316<span>Children’s Library</span>
317</a>
318<!-- thecount = 2 -->
319</li><li class='dropdown-item'>
320<a id="menu_p39" 
321href="/teens">
322<span>Teen Library</span>
323</a>
324</li></ul></div>
325<!-- yo3 -->
326<!-- yo4 -->
327</li><li class='nav-item'>
328<a id="menu_p6"
329class="nav-link"
330href="/about-us"><span>About Us</span></a><!-- yo1 -->
331<!-- yo4 -->
332</li><li class='nav-item'>
333<a id="menu_p5"
334class="nav-link"
335target="_blank"
336href="https://athol.librarycalendar.com/events/month"><span>Calendar</span></a><!-- yo1 -->
337<!-- yo4 -->
338</li><li class='nav-item'>
339<a id="menu_n"
340class="nav-link"
341href="/news"><span>News</span></a>
342</li><li class='nav-item'>
343<a id="menu_c"
344class="nav-link"
345href="/contact"><span>Contact</span></a>
346</li></ul>
347</div><!-- /.nav-collapse -->
348</div>
349</nav>
350<!-- end pagenav tag -->
351</div>
352</div>
353</div>
354</header>
355<!-- ************************** end of header head ***********************-->
356<main>
357<!-- START PAGE DIV -->
358<div class="page c c0 " style="">
359<div class="container maincontent">
360<div class="row">
361<div class="col-sm-12">
362<h1 class="contact page"><span>Contact</span></h1>
363<h3>
363<strong class="textownername">Athol Public Library</strong></h3>
364<span class="social fa-size" style="float:right;font-size:2em">
365<span class="text-info iconset"><a href="https://www.facebook.com/AtholPublicLibrary/" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span>
366<span class="text-info iconset"><a href="https://www.instagram.com/atholpubliclibrary/" target="_blank" alt="instagram"><i aria-label="instagram icon" class="fab fa-instagram"></i><span class="sr-only">instagram</span></a></span>
367<span class="text-info iconset"><a href="https://www.pinterest.com/athollibrary/" target="_blank" alt="pinterest"><i aria-label="pinterest icon" class="fab fa-pinterest"></i><span class="sr-only">pinterest</span></a></span>
368<span class="text-info iconset"><a href="https://www.youtube.com/channel/UCwlbKkLR2Bhnsp_LOxdFwQQ/videos" target="_blank" alt="youtube"><i aria-label="youtube icon" class="fab fa-youtube"></i><span class="sr-only">youtube</span></a></span>
369</span>
370<p>
371<p>568 Main St. Athol, MA 01331<br />
372Phone: (978) 249-9515<br />
373Fax: (978) 249-7636<br />
374Email: <a href="mailto:[email protected]">[email protected]</a><br />
375Director: <a href="mailto:[email protected]">[email protected]</a><br />
376Assistant Director: <a href="mailto:[email protected]">[email protected]</a><br />
377Children&#39;s Librarian: <a href="mailto:[email protected]">[email protected]</a><br />
378<a href="http://athollibrary.org/">www.athollibrary.org</a></p>
379</p>
380<span class="contactIntro">
381<p>Use this form to subscribe to library&nbsp;updates, or share a comment or question.&nbsp;&nbsp;</p>
382</span>
383<form action="/action.cfm?p=c.add" method="post" role="form">
384<input type="hidden" name="cc" value="">
385<input type="hidden" name="cc_email" value="">
386<input type="hidden" name="include" value="contact">
387<input type="hidden" name="run" value="1">
388<input type="hidden" name="referer" value="">
389<input type="hidden" name="site" value="http://athollibrary.org">
390<input type="Hidden" name="fu" value="%+N0%%50">
391<input type="Hidden" name="fullform" value="1">
392<div class="form-group">
393<label for="email">Your Email: (required)</label>
394<input type="text" name="email" id="email" class="email form-control" placeholder="Your email address" required="yes">
395</div>
396<div class="form-group">
397<label for="Name">Your Name:</label>
398<input type="Text" name="Name" id="Name" class="Name form-control" maxlength="250">
399</div>
400<div class="form-group">
401<label for="City">Your City:</label>
402<input type="Text" name="City" id="City" class="City form-control" maxlength="250">
403</div>
404<div class="form-group">
405<label for="Phone">Your Phone:</label>
406<input type="Text" name="Phone" id="Phone" class="Phone form-control" data-mask="000-000-0000">
407</div>
408<div class="form-group">
409<label for="Comments">Your Questions / Comments:<br/>(1000 char max)</label>
410<script type="text/javascript">
411/***********************************************
412* Textarea Maxlength script- Dynamic Drive (www.dynamicdrive.com)
413* This notice must stay intact for legal use.
414* Visit http://www.dynamicdrive.com/ for full source code
415***********************************************/
416function ismaxlength(obj){
417var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
418if (obj.getAttribute && obj.value.length>mlength)
419obj.value=obj.value.substring(0,mlength)
420}
421</script>
421
422<textarea name="Comments" id="Comments" class="Comments form-control" rows="5" maxlength="1000" onkeyup="return ismaxlength(this)"></textarea>
423</div>
424<div class="form-groop">
425<label for="field_0"><h5>Your Friday Color*</h5></label>
426<input class="form-control" type="text" name="field_0" maxlength="25" value="">
427</div>
428<div class="form-group row">
429<div class="col-sm-4">
430<label for="typeid">Please inform me of:</label>
431</div>
432<div class="col-sm-8">
433<div class="contactListItem" title="list">
434<input type="Checkbox" name="typeid" value="1" >
435All News and Programs
436</div>
437<div class="contactListItem" title="list">
438<input type="Checkbox" name="typeid" value="4" >
439Adult News and Programs
440</div>
441<div class="contactListItem" title="list">
442<input type="Checkbox" name="typeid" value="8" >
443Children’s News and Programs
444</div>
445<div class="contactListItem" title="list">
446<input type="Checkbox" name="typeid" value="7" >
447Teen News and Programs
448</div>
449<div title="list">
450</div>
451<div class="contactListItem" title="list">
452<input type="Checkbox" name="typeid" value="1012" >
453New Materials (Wowbrary)
454</div>
455<div title="list">
456</div>
457</div>
458</div>
459<div class="form-group row">
460<div class="col-sm-12">
461<div class="g-recaptcha" data-sitekey="6Lfo-HAUAAAAABch_SFTJZYTJnx2X40d-Uc217Ib"></div>
462</div>
463</div>
464<div class="form-group row">
465<div class="col-sm-12">
466<span class="privacyPolicy button btn btn-default pull-right"
467title="cssbody=[ttbdy] cssheader=[tthdr] offsety=[-100] offsetx=[5] header=[Privacy Notice:] body=[By filling in this form and checking any of the boxes above, you are opting-in to receive emails from this website. All emails you receive from this website will have instructions at the bottom on how to unsubscribe. When filling in the form, please do not include any sensitive personal information, such as financial or social security numbers. That type of information will never be requested from this website.]"
468>Privacy Notice</span>
469<p><button type="Submit" name="submit" id="submitbutton" class="btn btn-primary pull-left mt-4 mb-3" onclick="document.getElementById('submitbutton').style.opacity='0.5';" title="Click only ONCE!">Send Now</button></p>
470</div>
471</div>
472<div class="form-group row">
473<div class="col-sm-12"><p style="font-size:10px;"><input type="Checkbox" name="neversend" style="float:left;margin-right:10px;" value="1"><em>On occasion we send out newsletters, announcements or alerts to those who fill out this form. If you would like to never receive this kind of email from us, check the box to the left to opt-out.</em></p></div>
474</div>
475</form>
476</div>
477</div>
478</div>
479</div>
480<!-- END PAGE DIV -->
481<div class="lowercontent">
482<!-- START PAGE SECTIONS -->
483<!-- inside page sections -->
484<!-- this is NOT a p (62) -->
485<!-- canview = 1 (83) -->
486<!-- END PAGE SECTIONS -->
487</div>
488</main>
489<div class="social noprint" style="text-align:center!important; margin:25px auto;width:auto!important;">
490<a href="https://www.instagram.com/atholpubliclibrary/" target="_blank"><img class="social" src="/RFAssets/ui/icon-Instagram.png" alt="Instagram"></a>
491<a href="https://www.facebook.com/AtholPublicLibrary/" target="_blank"><img class="social" src="/RFAssets/ui/icon-Facebook.png" alt="Facebook"></a>
492<a href="https://www.youtube.com/channel/UCwlbKkLR2Bhnsp_LOxdFwQQ/videos" target="_blank"><img class="social" src="/RFAssets/ui/icon-YouTube.png" alt="YouTube"></a>
493<a href="https://www.pinterest.com/athollibrary/" target="_blank"><img class="social" src="/RFAssets/ui/icon-Pinterest.png" alt="Pinterest"></a>
494</div>
495<footer>
496<div class="footer_default noprint">
497<div id="footer" class="container-fluid">
498<div class="footerO row pt-2">
499<!-- starting from 1 -->
500<!-- this is c: 1 -->
501<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow1">
502<!-- listfind(attributes.staticPageCol,'col1') -->
503<!-- yes -->
504<div class="static footer-defaultcol1">
505<!-- from var application.static.footer_defaultcol1 -->
506<h3><strong>Quick Links</strong></h3>
507<ul>
508<li><a href="/index.cfm" target="_blank">Home</a></li>
509<li><a href="https://www.cwmars.org/" target="_blank">CW MARS</a></li>
510<li><a href="https://commonwealthcatalog.org/login?cid=MASSVC&amp;lid=MASSVC">Commonwealth Catalog</a></li>
511<li><a href="/files/Meeting_Room_Policy_and_Application.pdf" target="_blank">Request a Meeting Room</a></li>
512<li><a href="https://athol.librarycalendar.com/index.php/reserve-room/room?room_type=85&amp;op=Apply&amp;form_build_id=form-uOR4F8sxTchEKyN7fsXkA5HsJG_d7L2Jx55BAssPcqo&amp;form_id=lc_reserve_by_time" target="_blank">Reserve a Study Room</a></li>
513</ul>
514</div>
515<!-- attributes.footerSocialCol eq 'col1' -->
516<!-- attributes.footerNavCol eq 'col1' -->
517<!-- attributes.footerShowSearchCol eq 'col1' -->
518<!-- attributes.loginCol eq 'col1' -->
519</div>
520<!-- this is c: 2 -->
521<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow2">
522<!-- listfind(attributes.staticPageCol,'col2') -->
523<!-- yes -->
524<div class="static footer-defaultcol2">
525<!-- from var application.static.footer_defaultcol2 -->
526<h3><strong>Resources</strong></h3>
527<ul>
528<li><a href="/index.cfm?p=p.16" target="_blank">Local History</a></li>
529<li><a href="/p/82/Athol-Public-Library-Art-Exhibition" target="_blank">Art Exhibit</a></li>
530<li><a href="/p/15/Museum-Passes" target="_blank">Museum Passes</a></li>
531<li><a href="https://www.ancestrylibrary.com/" target="_blank">Ancestry Library Edition</a> - In Library Use Only</li>
532<li><a href="https://www.galepages.com/mlin_c_atholpl" target="_blank">Newspaper Archives and Research Databases</a></li>
533</ul>
534</div>
535<!-- attributes.footerSocialCol eq 'col2' -->
536<!-- attributes.footerNavCol eq 'col2' -->
537<!-- attributes.footerShowSearchCol eq 'col2' -->
538<!-- attributes.loginCol eq 'col2' -->
539</div>
540<!-- this is c: 3 -->
541<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow3">
542<!-- listfind(attributes.staticPageCol,'col3') -->
543<!-- yes -->
544<div class="static footer-defaultcol3">
545<!-- from var application.static.footer_defaultcol3 -->
546<h3><strong>Digital Media</strong></h3>
547<ul>
548<li><a href="https://www.bpl.org/ecard/" target="_blank">BPL eCard</a></li>
549<li><a href="https://cwmars.overdrive.com/" target="_blank">CW MARS Overdrive</a></li>
550<li><a href="/p/1118/Kanopy">Kanopy</a></li>
551<li><a href="https://www.overdrive.com/apps/libby/" target="_blank">Libby </a></li>
552<li><a href="https://www.digitallearn.org/" target="_blank">Digital Learn</a></li>
553</ul>
554</div>
555<!-- attributes.footerSocialCol eq 'col3' -->
556<!-- attributes.footerNavCol eq 'col3' -->
557<!-- attributes.footerShowSearchCol eq 'col3' -->
558<!-- attributes.loginCol eq 'col3' -->
559</div>
560<!-- this is c: 4 -->
561<div class="col-sm-12 col-md-6 col-lg-3 text-center" id="footerRow4">
562<!-- listfind(attributes.staticPageCol,'col4') -->
563<!-- yes -->
564<div class="static footer-defaultcol4">
565<!-- from var application.static.footer_defaultcol4 -->
566<p>568 Main St. Athol, MA 01331<br />
567Phone: (978) 249-9515<br />
568Fax: (978) 249-7636<br />
569Email: <a href="mailto:[email protected]">[email protected]</a><br />
570<a href="http://athollibrary.org/">www.athollibrary.org</a></p>
571</div>
572<!-- attributes.footerSocialCol eq 'col4' -->
573<!-- yes -->
574<span class="social fa-size" style="">
575<span class="text-info iconset"><a href="https://www.facebook.com/AtholPublicLibrary/" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span>
576<span class="text-info iconset"><a href="https://www.instagram.com/atholpubliclibrary/" target="_blank" alt="instagram"><i aria-label="instagram icon" class="fab fa-instagram"></i><span class="sr-only">instagram</span></a></span>
577<span class="text-info iconset"><a href="https://www.pinterest.com/athollibrary/" target="_blank" alt="pinterest"><i aria-label="pinterest icon" class="fab fa-pinterest"></i><span class="sr-only">pinterest</span></a></span>
578<span class="text-info iconset"><a href="https://www.youtube.com/channel/UCwlbKkLR2Bhnsp_LOxdFwQQ/videos" target="_blank" alt="youtube"><i aria-label="youtube icon" class="fab fa-youtube"></i><span class="sr-only">youtube</span></a></span>
579</span>
580<!-- attributes.footerNavCol eq 'col4' -->
581<!-- attributes.footerShowSearchCol eq 'col4' -->
582<!-- attributes.loginCol eq 'col4' -->
583</div>
584</div>
585</div>
586</div>
587<div id="lowerFooter" class="text-center">
588<div id="footer">
589<span class="footerO">
590<span class="footerL">
591&copy; 2026 Athol Public Library
592|
593All rights reserved. APL Header Photo Credit: Dennis Washburn
594</span>
595<span class="footerM">
596|
597</span>
598<span class="footerR">
599<a href="https://RocketFusion.com" target="_blank">Powered by RocketFusion 123</a>
600</span>
601</span>
602</div>
603<span class="login-link">
604<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>
605<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>
606</span>
607</div>
608</footer>
609<!-- BS4 Init -->
610<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>
611<script>let croppedWidth = 1200; let croppedHeight = 200;</script>
vendor: 1 bytes, line 611
611
612<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
vendor: 1 bytes, line 612
612
613<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 613
613
614<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 614
614
615<script>
616// Assuming we have a div with id="editor_container"
617const filerobotImageEditor = new window.FilerobotImageEditor(
618document.querySelector("#rf-image-editor-edit")
619);
620const image_file_upload = document.getElementById("rf-image-upload");
621// const btn_image_upload_edit = document.getElementById("btn-image-upload-edit");
622var source_image = ''; // the HTMLImageElement
623var save_image_name = ''; // name to save image with
624var global_fr_folder = ''; // where to upload
625var global_fr_table = ''; // db table to update
626var global_fr_prefix = ''; // image file prefix, ie; blocks_
627var global_fr_pid = 0; // image ID, ie; blocks_2323
628var dropzone_website_dir = 'AtholLibrary.org\\httpdocs';
629const file_robot_defaults = {
630save_image_quality : 1, // 0.1 - 1 (default 0.92) - applies to jpeg, jpg and webp images only
631};
632function renderFileRobotEditor(source,fr_folder=global_fr_folder,fr_table=global_fr_table,fr_prefix=global_fr_prefix,fr_pid=global_fr_pid) {
633console.group("renderFileRobotEditor() called");
634console.log('source:', source);
635console.log('fr_folder:', fr_folder);
636console.log('fr_table:', fr_table);
637console.log('fr_prefix:', fr_prefix);
638console.log('fr_pid:', fr_pid);
639console.groupEnd();
640source_image = source;
641filerobotImageEditor.render({
642source: source_image,
643useBackendTranslations: false,
644defaultSavedImageName: save_image_name,
645defaultSavedImageQuality: file_robot_defaults.save_image_quality,
646tabsIds: [
647window.FilerobotImageEditor.TABS.ADJUST,
648window.FilerobotImageEditor.TABS.FINETUNE,
649window.FilerobotImageEditor.TABS.FILTERS,
650window.FilerobotImageEditor.TABS.ANNOTATE,
651window.FilerobotImageEditor.TABS.WATERMARK], // or ['Adjust', 'Annotate', 'Watermark']
652defaultTabId: window.FilerobotImageEditor.TABS.ADJUST,
653Crop: {
654minWidth: 14,
655minHeight: 14,
656maxWidth: null,
657maxHeight: null,
658ratio: 'custom',
659ratioTitleKey: 'custom',
660noPresets: false,
661autoResize: false,
662presetsItems: [],
663presetsFolders: [],
664lockCropAreaAt: null, // 'top-left'
665},
666// disable save modal
667onBeforeSave: () => {
668return false;
669},
670onSave: async (imageInfo, designState) => {
671// console.log('onSave() imageInfo', imageInfo);
672// console.log('onSave() designState', designState);
673// create formData object to populate and send with fetch request
674const formData = new FormData();
675formData.append('image64', imageInfo.imageBase64);
676formData.append('image_extension', imageInfo.extension);
677formData.append('image_height', imageInfo.height);
678formData.append('image_name', imageInfo.name);
679formData.append('image_name_with_extension', imageInfo.fullName);
680formData.append('image_quality', imageInfo.quality);
681formData.append('image_width', imageInfo.width);
682formData.append('dropzone_website_dir', dropzone_website_dir); // e.g. MikMuller.com\httpdocs
683formData.append('rf_dropzone_dir', fr_folder);
684console.log('onSave() formData [2]', formData);
685// add dropzone options for compatibility with current upload script
686const drop_zone_options = {
687tbl: fr_table,
688imgbase: `${fr_prefix}${fr_pid}`,
689imgname: imageInfo.fullName,
690id: fr_pid
691}
692formData.append("dropzone_options", JSON.stringify(drop_zone_options));
693console.log('onSave() drop_zone_options', drop_zone_options);
694try {
695// _dropzone-file-upload-ajax.cfm
696// _upload-base64.cfm (for testing)
697console.log('renderFileRobotEditor.onSave() imageInfo', imageInfo);
698const upload_request = await fetch('/inc/_dropzone-file-upload-ajax.cfm', {
699method: 'POST',
700body: formData
701});
702const upload_result = await upload_request.json();
703// console.log('DEBUG: [onSave] upload_result', upload_result);
704// close modal
705$('#rfImageModalEdit').modal('hide');
706// page reload
707window.location.reload();
708} catch (error) {
709console.log('onSave() error', error);
710const upload_result = {
711code: 1,
712message: error.message,
713success: false
714}
715}
716},
717onClose: (closingReason) => {
718console.log("Closing reason", closingReason);
719filerobotImageEditor.terminate();
720// reset the input field
721document.getElementById('rf-image-upload').value = '';
722},
723});
724}
725/**
726* Function to handle image selection from the file input field
727* async as we use a promise to await image load
728*/
729async function onImageSelected(event, file_obj, fr_folder, fr_table, fr_prefix, fr_pid) {
730let file;
731if (file_obj) {
732console.log('onImageSelected file_obj', file_obj, fr_folder, fr_table, fr_prefix, fr_pid);
733file = file_obj;
734} else {
735file = event.target.files[0];
736}
737save_image_name = file.name;
738console.log('onImageSelected file', file);
739// const reader = new FileReader();
740const image = new Image();
741const img_max_width = 1600;
742image.src = URL.createObjectURL(file);
743// Promise to await image load
744await new Promise((resolve) => {
745image.onload = () => {
746const img_width = image.width;
747const img_height = image.height;
748// console.log('onImageSelected img load', img_width, img_height);
749if (img_width > img_max_width) {
750const img_scale = img_max_width / img_width;
751image.width = img_width * img_scale;
752image.height = img_height * img_scale;
753}
754// resolve the promise
755resolve();
756};
757});
758// open the modal
759$('#rfImageModalEdit').modal('show');
760// Render file robot
761renderFileRobotEditor(image, fr_folder, fr_table, fr_prefix, fr_pid);
762}
763/** Function to handle image editing */
764function 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) {
765console.log('[DEBUG] editExistingImage() called.');
766console.log('image_url:', image_url);
767console.log('image_name:', image_name);
768console.log('fr_folder:', fr_folder);
769console.log('fr_table:', fr_table);
770console.log('fr_prefix:', fr_prefix);
771console.log('fr_pid:', fr_pid);
772save_image_name = image_name;
773renderFileRobotEditor(image_url, fr_folder, fr_table, fr_prefix, fr_pid);
774}
775/** Function to open the hidden input file field */
776function openFileInput(fr_folder='', fr_table='', fr_prefix='', fr_pid=0) {
777console.log('[DEBUG] openFileInput() called.', fr_folder, fr_table, fr_prefix, fr_pid);
778global_fr_folder = fr_folder; // where to upload
779global_fr_table = fr_table; // db table to update
780global_fr_prefix = fr_prefix; // image file prefix, ie; blocks_
781global_fr_pid = fr_pid;
782image_file_upload.click();
783}
784/** Function to open RF File Manager in a modal
785* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
786* Need the image full url to make a copy of for ai images
787*/
788function openRFFileManager(current_image_url, fr_folder=global_fr_folder, fr_table=global_fr_table, fr_prefix=global_fr_prefix, fr_pid=global_fr_pid) {
789// $($(this).data( "target" ) + ' .modal-body').load( data_remote );
790console.group("bs4_init openRFFileManager() called");
791console.log("current_image_url:", current_image_url);
792console.log("fr_folder:", fr_folder);
793console.log("fr_table:", fr_table);
794console.log("fr_prefix:", fr_prefix);
795console.log("fr_pid:", fr_pid);
796console.groupEnd();
797const rfFileManagerModalIframe = document.getElementById('rfFileManagerModalIframe');
798rfFileManagerModalIframe.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}`; ;
799$('#rfFileManagerModal').modal('show');
800}
801/** Function to close the RF File Manager modal
802* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
803* Need to upload the image and then close the modal
804*/
805function closeRFFileManagerModal(image_path, img_name='', fr_folder='', fr_table='', fr_prefix='', fr_pid=0) {
806console.group("bs4_init closeRFFileManagerModal() called");
807console.log("image_path:",image_path);
808console.log("img_name:",img_name);
809console.log("fr_folder:",fr_folder);
810console.log("fr_table:",fr_table);
811console.log("fr_prefix:",fr_prefix);
812console.log("fr_pid:",fr_pid);
813console.groupEnd();
814$('#rfFileManagerModal').modal('hide');
815$('#rfImageModalEdit').modal('show');
816save_image_name = img_name;
817// renderFileRobotEditor(image_path);
818renderFileRobotEditor(image_path, fr_folder, fr_table, fr_prefix, fr_pid);
819}
820/** Function to close the RF File Manager modal without opening File Robot
821* Will be used by ckeditor/plugins/rffilemanager/browse.cfm
822*/
823function closeRFFileManagerModalOnly(reload=false) {
824$('#rfFileManagerModal').modal('hide');
825if (reload) {
826setTimeout(() => {
827window.location.reload();
828}, 500);
829}
830}
831// Handle closing of modal without saving (must cleanup file robot editor)
832$('#rfImageModalEdit').on('hidden.bs.modal', function (event) {
833// console.log('modal closed');
834filerobotImageEditor.terminate();
835image_file_upload.value = '';
836});
837/** Rocketfusion - enable drag/drop zone on an image with the .rf-image-dropzone class */
838// Create dropzone object for all images with the .rf-image-dropzone class
839const rf_image_drop_zone = document.querySelectorAll('.rf-image-dropzone');
840// Attach event listeners to all instances of rf_image_drop_zone
841rf_image_drop_zone.forEach(function (i) {
842// Handle drag over event
843i.addEventListener('dragover', function(e) {
844event.target.classList.add('image-dragover');
845dragOverHandler(e);
846});
847// Handle drag leave event
848i.addEventListener('dragleave', function(e) {
849// console.log('Image dropzone dragleave');
850event.target.classList.remove('image-dragover');
851});
852// Handle drop event
853i.addEventListener('drop', function(e) {
854event.target.classList.remove('image-dragover');
855dropHandler(e);
856});
857});
858/**
859* Handles the drop event of files in the drop zone.
860* Prevents the default behavior of opening the file and logs the names of the dropped files.
861*
862* @param {Event} ev - The drop event.
863* @returns {undefined}
864*/
865function dropHandler(ev) {
866// console.log('File(s) dropped');
867// Prevent default behavior (Prevent file from being opened)
868ev.preventDefault();
869if (ev.dataTransfer.items) {
870// Use DataTransferItemList interface to access the file(s)
871[...ev.dataTransfer.items].forEach((item, i) => {
872// If dropped items aren't files, reject them
873if (item.kind === 'file') {
874const file = item.getAsFile();
875console.log(`file[${i}].name = ${file.name}`);
876onImageSelected(i, file);
877}
878});
879} else {
880// Use DataTransfer interface to access the file(s)
881[...ev.dataTransfer.files].forEach((file, i) => {
882console.log(`file[${i}].name = ${file.name}`);
883onImageSelected(i, file);
884});
885}
886}
887/**
888* Handles the drag over event of files in the drop zone.
889* Prevents the default behavior of opening the file.
890*
891* @param {Event} ev - The drag over event.
892* @returns {undefined}
893*/
894function dragOverHandler(ev) {
895// Prevent default behavior (Prevent file from being opened)
896ev.preventDefault();
897}
898</script>
898
899<style>
900.modal-fullscreen {
901width: 100vw;
902max-width: none;
903height: 100%;
904margin: 0;
905}
906.modal-content {
907height: 100%;
908border: 0;
909@include border-radius(0);
910}
911.modal-body {
912overflow-y: auto;
913}
914.image-dragover {
915opacity: 0.5;
916}
917</style>
918<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 918
918
919<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
919
920<!-- contact and forms -->
921<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
vendor: 1 bytes, line 921
921
922<script src="//cdnjs.cloudflare.com/ajax/libs/parsley.js/2.8.1/parsley.js"></script>
vendor: 1 bytes, line 922
922
923<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
vendor: 1 bytes, line 923
923
924<script>
925function limitText(limitField, limitNum) {
926if (limitField.value.length > limitNum) {
927limitField.value = limitField.value.substring(0, limitNum);
928}
929}
930$(document).ready(function(){
931// this code is in bs4_init
932// Real time formatting, added by Andrew Kelly, 2/14/19
933// (US phone formatter) - on document load, attach handler to the phone-us class and mask the input
934$('.phone-us').mask('000-000-0000');
935// Max length of a number input
936$('.numbers-only').keyup(function() {
937var maxLen = $(this).data('max-length');
938var input = $('.numbers-only').val()
939var inputLen = input.length;
940console.log('[DEBUG] inputLen:' + inputLen);
941console.log('[DEBUG] maxLen:' + maxLen);
942if ( inputLen >= 9 ) {
943console.log('[DEBUG] Trim to 9 chars');
944$('.numbers-only').val( input.substring(0, 9) );
945}
946});
947});
948// Validation performed on form SUBMIT
949$("#fRocketfusion").parsley({
950errorClass: 'is-invalid text-danger',
951//successClass: 'is-valid', // Comment this option if you don't want the field to become green when valid. Recommended in Google material design to prevent too many hints for user experience. Only report when a field is wrong.
952errorsWrapper: '<span class="form-text text-danger"></span>',
953errorTemplate: '<span></span>',
954trigger: 'change'
955});
956</script>
vendor: 1 bytes, line 956
956
957<script type="text/javascript" src="/RFAssets/js/joey.js?ver=20260911135345" charset="UTF-8"></script>
vendor: 1 bytes, line 957
957
958<script type="text/javascript">
959$( 'body' ).on( 'click', '[data-toggle="modal"]', function(){
960let data_remote = $(this).data( "remote" );
961if ( data_remote && data_remote.length >= 2 ) {
962$($(this).data( "target" ) + ' .modal-content').load( data_remote );
963}
964});
965</script>
vendor: 1 bytes, line 965
965
966<script>
967$(document).ready(function() {
968//$('nav').animate({opacity:'1'}, 50);<!-- set to 0.25 to make see thru -->
969//$(img).animate({opacity:'1'});
970$initNavHgt = $('nav').outerHeight();
971$initHeadLogoHgt = $('#headerLogo').outerHeight();
972});
973</script>
vendor: 1 bytes, line 973
973
974<script>
975(function(d)
976{
977var s = d.createElement("script");
978s.setAttribute("data-account", "efy2WEGV1m");
979s.setAttribute("src", "https://cdn.userway.org/widget.js");
980(d.body || d.head).appendChild(s);
981}
982)
983(document)
984</script>
984
985<noscript>
986<p>Please ensure Javascript is enabled for purposes of <a href="https://userway.org" target="_blank">website accessibility</a></p>
987</noscript>
988</body>
989</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.