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: Shea Theater Arts Center 11--> 12<!-- ================================================================================================================= --> 13<!-- Title and App Tags --> 14<!-- 20260911135311 --> 15<title>Contact - Shea Theater Arts Center</title> 16<meta property="og:title" content="Contact"> 17<meta property="twitter:title" content="Contact - Shea Theater Arts Center"> 18<meta itemprop="name" content="Contact - Shea Theater Arts Center"> 19<!-- safari --> 20<meta name="apple-mobile-web-app-title" content="Contact - Shea Theater Arts Center"> 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 - Shea Theater Arts Center"> 27<meta name="msapplication-tooltip" content="Contact - Shea Theater Arts Center"> 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=Glass+Antiqua|Oxygen|Roboto+Condensed"> 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="Turners Falls" /> 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-24" /> 51<meta name="geo.region" content="US-MA" /> 52<meta name="msvalidate.01" content="" /> 53<!-- no Facebook Pixel ID --> 54<meta name="author" content="Shea Theater Arts Center" /> 55<meta name="owner" content="Shea Theater Arts Center" /> 56<meta name="copyright" content="Copyright 2026 Shea Theater Arts Center" /> 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="Shea Theater Arts Center"> 66<meta property="twitter:site" content="@SheaTheater" /> 67<meta property="og:type" content="website" />
vendor: 77 bytes, lines 67-68
67 68<script src="https://www.google.com/recaptcha/api.js" async defer></script>
69<!-- ================================================================================================================= --> 70<!-- FAVICONS start --> 71<link rel="shortcut icon" href="/icons/favicon.ico" /> 72<link rel="icon" href="/icons/favicon.ico" type="image/x-icon" /> 73<link rel="apple-touch-icon" href="/icons/favicon.ico"> 74<meta name="msapplication-TileImage" content="/icons/favicon.ico"> 75<link rel="manifest" href="/icons/manifest.json"> 76<meta name="apple-mobile-web-app-status-bar-style" content="black"> 77<meta name="msapplication-TileColor" content="white"> 78<meta name="theme-color" content="white"> 79<!-- MS Application Tasks (off for now) --> 80<!-- FAVICONS end --> 81<!-- this is the contact page --> 82<meta property="og:url" content="/contact"> 83<link rel="canonical" href="/contact"> 84<meta itemprop="image" content="/library/SheaTheater-front_small.jpg"> 85<meta property="og:image" content="/library/SheaTheater-front_small.jpg"> 86<meta property="twitter:image" content="/library/SheaTheater-front_small.jpg"> 87<link rel="image_src" href="/library/SheaTheater-front_small.jpg"> 88<meta property="og:image:alt" content="Contact"> 89<meta name="description" content="The Shea is a venue to encourage the growing local arts scene. The Shea Theater Arts Center will provide a dynamic center for performing arts."> 90<meta itemprop="description" content="The Shea is a venue to encourage the growing local arts scene. The Shea Theater Arts Center will provide a dynamic center for performing arts."> 91<meta property="og:description" content="The Shea is a venue to encourage the growing local arts scene. The Shea Theater Arts Center will provide a dynamic center for performing arts."> 92<meta property="twitter:description" content="The Shea is a venue to encourage the growing local arts scene. The Shea Theater Arts Center will provide a dynamic center for performing arts."> 93<!-- ================================================================================================================= -->
94<script src="https://kit.fontawesome.com/d3bffd01a6.js" crossorigin="anonymous"></script>
94 95<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> 96<link rel="stylesheet" href="/RFassets/css/datatables-bs4.min.css"> 97<link rel="stylesheet" href="/RFAssets/css/RFtables.css?ver=20260911135311"> 98<link rel="stylesheet" href="/RFAssets/css/joey.css?ver=20260911135311"> 99<link rel="stylesheet" href="/site_style.css?ver=20260911135311"> 100<link rel="stylesheet" href="/header_style.css?ver=20260911135311"> 101<link rel="stylesheet" href="/RFAssets/css/_admin.css?ver=20260911135311"> 102<!-- custom stylesheet --> 103<link rel="stylesheet" href="/tmpl_Carousel-Nav-1-3.css?ver=20260911135311">
104<script src="/RFAssets/js/boxover.js" type="text/javascript"></script>
vendor: 1 bytes, line 104
104
105<script type="text/javascript"> 106function toggleLayer(whichLayer,what) { 107if (document.getElementById) 108{ 109var style2 = document.getElementById(whichLayer).style; 110style2.display = what; 111} 112else if (document.all) 113{ 114var style2 = document.all[whichLayer].style; 115style2.display = what; 116} 117else if (document.layers) 118{ 119var style2 = document.layers[whichLayer].style; 120style2.display = what; 121} 122} 123function toggleCheckbox(source) { 124checkboxes = document.getElementsByName('file_delete'); 125for(var i=0, n=checkboxes.length;i<n;i++) { 126checkboxes[i].checked = source.checked; 127} 128} 129</script>
vendor: 1 bytes, line 129
129
130<script> 131/** 132* Function that tracks a click on an outbound link in Analytics. 133* This function takes a valid URL string as an argument, and uses that URL string 134* as the event label. Setting the transport method to 'beacon' lets the hit be sent 135* using 'navigator.sendBeacon' in browser that support it. 136*/ 137var trackOutboundLink = function(url) { 138ga('send', 'event', 'outbound', 'click', url, { 139'transport': 'beacon', 140'hitCallback': function(){document.location = url;} 141}); 142} 143</script>
143 144<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 144-145
144 145<script async src="https://www.googletagmanager.com/gtag/js?id=
145UA-91585429-1
vendor: 12 bytes, line 145
145"></script>
146<script>
vendor: 127 bytes, lines 147-150
147window.dataLayer = window.dataLayer || []; 148function gtag(){dataLayer.push(arguments);} 149gtag('js', new Date()); 150gtag('config', '
150UA-91585429-1
vendor: 4 bytes, line 150
150');
151</script>
151 152<!-- No text_Google_Tag_Manager_ID defined --> 153<!-- end of metatags --> 154</head> 155<body class="notMobile" 156> 157<!-- THESE ARE HERE (ADMIN) BECAUSE THEY NEED TO BE AT THE TOP OF THE BODY, NOT IN THE META TAGS --> 158<!-- No text_Google_Tag_Manager_ID defined --> 159<!-- ************************** start of head_header ***********************--> 160<style> 161@media (min-width:993px) { 162body { margin-top:110px!important; } 163} 164@media (min-width:769px) and (max-width:992px) { 165body { margin-top:106.7px!important; } 166} 167@media (min-width:577px) and (max-width:768px) { 168body { margin-top:101.2px!important; } 169} 170@media (min-width:516px) and (max-width:576px) { 171body { margin-top:110px!important; } 172} 173@media (min-width:471px and max-width:515px) { 174body { margin-top:126.5px!important; } 175} 176@media (max-width:470px) { 177body { margin-top:181.5px!important; } 178} 179</style> 180<style> 181nav .navbar-brand img { 182height: 70px; /*!important*/ 183transition: all .25s ease-in-out; 184-webkit-transition: all .25s ease-in-out; 185} 186nav.shrink .navbar-brand img { 187height: 50px; /*!important*/ 188transition: all .25s ease-in-out; 189-webkit-transition: all .25s ease-in-out; 190} 191</style> 192<header class="header_default fixed-top "> 193<div class=" inside-header-container"> 194<div class=" inside-header-row"> 195<div class=" inside-header-col"> 196<div class="NavInfoBar"> 197<!-- woot navbar --> 198<div class="nav-info-bar pl-0 pr-0 pt-1 pb-1 mt-0 mb-0 noprint"> 199<div class="brand-not-info-bar-1"> 200<div class="brand-not-info-bar-2"> 201<div class="container pl-0 pr-0"> 202<div class="row m-0 pl-0 pr-0 align-items-center"> 203<div class="col-sm-12 pr-0 text-right"> 204<span class="iconset text5"> 205<a id="infobar_5" target="_blank" href="https://goo.gl/maps/Gv1YDXat7HQtr6EX8" class=""> 206<i class="fa fa-map-marker-alt" aria-hidden="true" aria-label="map-marker-alt icon"></i> 207<span class="">71 Avenue A, Turners Falls, MA</span> 208</a> 209</span> 210<span class="iconset text6"> 211<i class="fa fa-phone" aria-hidden="true" aria-label="phone icon"></i> 212<span class="">413-648-SHEA</span> 213</span> 214<span class="social fa-size" style=""> 215<span class="text-info iconset"><a href="https://www.facebook.com/sheatheater/" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span> 216<span class="text-info iconset"><a href="https://www.instagram.com/sheatheater/" target="_blank" alt="instagram"><i aria-label="instagram icon" class="fab fa-instagram"></i><span class="sr-only">instagram</span></a></span> 217<span class="text-info iconset"><a href="https://twitter.com/SheaTheater" target="_blank" alt="twitter"><i aria-label="twitter icon" class="fab fa-twitter"></i><span class="sr-only">twitter</span></a></span> 218</span> 219</div> 220</div> 221</div> 222</div> 223</div> 224</div> 225</div> 226<!-- start pagenav tag --> 227<nav id="navmainpageNavID2" class="navbar pagenav-dropdown navbar-expand-md 228pl-0 pr-0 pt-1 pb-1 mt-0 mb-0 ml-0 mr-0"> 229<div class="container pl-0 pr-0"> 230<a class="navbar-brand-img navbar-brand pt-0 pb-0 pl-2 pr-2 d-flex align-items-center" href="/"> 231<span class="brand-image"><img src="/header/SheaTheater-tiny-Logo.png" alt="Shea Theater Arts Center" class="img-responsive mb-0 navbar-image mr-2" id="headerLogo"></span> 232</a> 233<button class="navbar-toggler navbar-dark" data-toggle="collapse" aria-label="Open Menu" data-target="#navbar-1"> 234<span class="navbar-toggler-icon navbar-dark"></span> 235</button> 236<div id="navbar-1" class="navbar-collapse collapse"> 237<!-- REALESTATE ERROR 161 Invalid object name 'custom_MLSPIN.dbo.mls_listing_all'.: --> 238<ul class='nav navbar-nav ml-auto'><li class='nav-item'> 239<!-- IMAGES!! --> 240<!-- no images drop-down --> 241<a id="menu_p8" 242class="nav-link" 243href="/p/8/Shea-Theater-Arts-Center"><span>About</span></a><!-- yo1 --> 244<!-- yo4 --> 245</li><li class='nav-item'> 246<a id="menu_p7" 247class="nav-link" 248href="/p/7/The-History-of-the-Shea-Theater-Turners-Falls-MA"><span>History</span></a><!-- yo1 --> 249<!-- yo4 --> 250</li><li class='nav-item'> 251<a id="menu_p10" 252class="nav-link" 253href="/p/10/Help-the-Shea-keep-dreaming-on-Avenue-A"><span>Donate</span></a><!-- yo1 --> 254<!-- yo4 --> 255</li><li class='dropdown nav-item'> 256<a id="menu_d" 257class="nav-link" 258href="/calendar"><span>Shows & Tickets</span></a> 259</li><li class='nav-item'> 260<a id="menu_c" 261class="nav-link" 262href="/contact"><span>Contact</span></a> 263</li></ul> 264</div><!-- /.nav-collapse --> 265</div> 266</nav> 267<!-- end pagenav tag --> 268</div> 269</div> 270</div> 271</header> 272<!-- ************************** end of header head ***********************--> 273<main> 274<!-- START PAGE DIV --> 275<div class="page c c0 " style=""> 276<div class="container maincontent"> 277<div class="row"> 278<div class="col-sm-12"> 279<h1 class="contact page"><span>Contact</span></h1> 280<h3>
280<strong class="textownername">Shea Theater Arts Center</strong></h3> 281<span class="social fa-size" style="float:right;font-size:2em"> 282<span class="text-info iconset"><a href="https://www.facebook.com/sheatheater/" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span> 283<span class="text-info iconset"><a href="https://www.instagram.com/sheatheater/" target="_blank" alt="instagram"><i aria-label="instagram icon" class="fab fa-instagram"></i><span class="sr-only">instagram</span></a></span> 284<span class="text-info iconset"><a href="https://twitter.com/SheaTheater" target="_blank" alt="twitter"><i aria-label="twitter icon" class="fab fa-twitter"></i><span class="sr-only">twitter</span></a></span> 285</span> 286<p> 287<p>All information on upcoming events and tickets is available on our website.</p> 288<p>For box office questions or inquiries, please call the Shea at:</p> 289<h3>413-648-7432 (SHEA)</h3> 290<p><strong>Please note that we are primarily a<span style="color:#c0392b;"> virtual box office</span>. All tickets can be purchased through our website or in person at the door starting one hour before show time on the evening on of the show pending availability.</strong></p> 291<p><strong>Tours and office hours are set up <em>by appointment</em>. Please reach out to [email protected] to schedule a tour.</strong></p> 292<p><strong><em><span style="color:#c0392b;">For rental inquiries and booking information, please fill out our </span><a href="/x/1/Booking-Inquiries"><span style="color:#3498db;">Booking Inquiries</span></a><span style="color:#c0392b;"> form. </span></em></strong></p> 293<p><strong>For All Mailings:</strong> Shea Theater Arts Center, P.O Box 773, Turners Falls, MA 01376</p> 294<p><strong>Street Address:</strong> <a href="https://goo.gl/maps/oQeWV6HTEMiTmF6Y6" target="_blank">Shea Theater Arts Center, <span class="LrzXr">71 Avenue A, </span>Turners Falls, MA 01376</a></p> 295</p> 296<span class="contactIntro"> 297<p>To get in touch with us via email or to join our mailing list, please fill out the form below. To request booking info, please fill out the <a href="/x/1/Booking-Inquiries">Booking Request form</a>.</p> 298</span> 299<form action="/action.cfm?p=c.add" method="post" role="form"> 300<input type="hidden" name="cc" value=""> 301<input type="hidden" name="cc_email" value=""> 302<input type="hidden" name="include" value="contact"> 303<input type="hidden" name="run" value="1"> 304<input type="hidden" name="referer" value=""> 305<input type="hidden" name="site" value="http://sheatheater.org"> 306<input type="Hidden" name="fu" value="%)=,&^=L"> 307<input type="Hidden" name="fullform" value="1"> 308<div class="form-group"> 309<label for="email">Your Email: (required)</label> 310<input type="text" name="email" id="email" class="email form-control" placeholder="Your email address" required="yes"> 311</div> 312<div class="form-group"> 313<label for="Name">Your Name:</label> 314<input type="Text" name="Name" id="Name" class="Name form-control" maxlength="250"> 315</div> 316<div class="form-group"> 317<label for="City">Your City:</label> 318<input type="Text" name="City" id="City" class="City form-control" maxlength="250"> 319</div> 320<div class="form-group"> 321<label for="State">Your State:</label> 322<input type="Text" name="State" id="State" class="State form-control" maxlength="2"> 323</div> 324<div class="form-group"> 325<label for="custom1">Where did you hear about us?</label> 326<input type="Text" name="custom1" id="custom1" class="custom1 form-control" maxlength="250"> 327</div> 328<div class="form-group"> 329<label for="Comments">Your Questions / Comments:<br/>(1000 char max)</label>
330<script type="text/javascript"> 331/*********************************************** 332* Textarea Maxlength script- Dynamic Drive (www.dynamicdrive.com) 333* This notice must stay intact for legal use. 334* Visit http://www.dynamicdrive.com/ for full source code 335***********************************************/ 336function ismaxlength(obj){ 337var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "" 338if (obj.getAttribute && obj.value.length>mlength) 339obj.value=obj.value.substring(0,mlength) 340} 341</script>
341 342<textarea name="Comments" id="Comments" class="Comments form-control" rows="5" maxlength="1000" onkeyup="return ismaxlength(this)"></textarea> 343</div> 344<div class="form-groop"> 345<label for="field_0"><h5>Your Friday Color*</h5></label> 346<input class="form-control" type="text" name="field_0" maxlength="25" value=""> 347</div> 348<div class="form-group row"> 349<div class="col-sm-4"> 350<label for="typeid">Please inform me of:</label> 351</div> 352<div class="col-sm-8"> 353<div class="contactListItem" title="list"> 354<input type="Checkbox" name="typeid" value="4" CHECKED="checked" > 355General information 356</div> 357<div class="contactListItem" title="list"> 358<input type="Checkbox" name="typeid" value="5" > 359Upcoming shows 360</div> 361</div> 362</div> 363<div class="form-group row"> 364<div class="col-sm-12"> 365<div class="g-recaptcha" data-sitekey="6Lfo-HAUAAAAABch_SFTJZYTJnx2X40d-Uc217Ib"></div> 366</div> 367</div> 368<div class="form-group row"> 369<div class="col-sm-12"> 370<span class="privacyPolicy button btn btn-default pull-right" 371title="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.]" 372>Privacy Notice</span> 373<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> 374</div> 375</div> 376<div class="form-group row"> 377<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> 378</div> 379</form> 380</div> 381</div> 382</div> 383</div> 384<!-- END PAGE DIV --> 385<div class="lowercontent"> 386<!-- START PAGE SECTIONS --> 387<!-- inside page sections --> 388<!-- this is NOT a p (62) --> 389<!-- canview = 1 (83) --> 390<!-- END PAGE SECTIONS --> 391</div> 392</main> 393<div class="thanks"><div class="container"><div class="row"> 394<div class="static sponsors"> 395<!-- from var application.static.sponsors --> 396<h3 style="text-align: center;">Special Thanks to Our Sponsors and Underwriters</h3> 397<p style="text-align: center;"><a href="http://thebetterfish.com" target="_blank">Australis Aquaculture</a> • <a href="http://artbev.coop" target="_blank">Artisan Beverage Cooperative</a> • <a href="http://www.thebenjamincompany.net/" target="_blank">Benjamin Company</a> • <a href="http://www.berkshire-brewing.com/" target="_blank">Berkshire Brewing Company</a> • <a href="http://bigdaddysrv.com/">Big Daddy's RV Sales and Service</a> • <a href="http://cohnandcompany.com/" target="_blank">Cohn and Company Real Estate Agency</a> • <a href="https://myccu.org/" target="_blank">Community Credit</a> • <a href="https://www.common-capital.org/" target="_blank">Common Capital</a> • <a href="http://communityfoundation.org">Community Foundation of Western Massachusetts</a> • <a href="http://ctriverinternists.com" target="_blank">Connecticut River Internists</a> • <a href="https://deansbeans.com/" target="_blank">Dean's Beans</a> • <a href="https://www.bankesb.com/" target="_blank">Easthampton Savings Bank</a> • <a href="gdfsuezna.com/firstlight-power-resources" target="_blank">FirstLight GDF Suezna</a> •<a href="https://www.northwesternmutual.com/financial/advisor/m-gagne/">Gagne Wealth Management Group</a> • <a href="http://thegilltavern.com" target="_blank">Gill Tavern</a> • <a href="https://www.gilmoreandfarrell.com/">Gilmore and Farrell Insurance Agency</a> • <a href="http://goffmedia.com" target="_blank">Goff Media</a> • <a href="http://greatfallsharvest.com" target="_blank">Great Falls Harvest</a> • <a href="http://greenriverfestival.com" target="_blank">Green River Festival</a> • <a href="http://www.gcc.mass.edu" target="_blank">Greenfield Community College</a> • <a href="https://www.greenfieldcoopbank.com" target="_blank">Greenfield Cooperative Bank</a> • <a href="https://www.greenfieldsavings.com/" target="_blank">Greenfield Savings Bank</a> • <a href="https://loottheshop.com" target="_blank">Loot</a> • <a href="https://massculturalcouncil.org/">Massachusetts Cultural Council</a> • <a href="https://montaguebookmill.com/" target="_blank">Montague Bookmill</a> • <a href="https://MontagueWebWorks.com" target="_blank">Montague WebWorks</a> • <a href="https://northeast-solar.com" target="_blank">Northeast Solar</a> • <a href="https://thepeoplespint.com" target="_blank">People's Pint</a> • <a href="https://rainmkr.com/" target="_blank">Rainmaker Consulting</a> • <a href="http://rendezvoustfma.com/" target="_blank">The Rendezvous</a> • <a href="http://solarstoreofgreenfield.com" target="_blank">Solar Store of Greenfield</a> • <a href="http://stobierski.com" target="_blank">Stobierski and Connor</a> • <a href="http://toldvideo.com" target="_blank">Told Video</a> • <a href="http://www.ridemaxbus.com/tntg" target="_blank">True North Transit</a> • <a href="http://www.turnitup.com/" target="_blank">Turn It Up</a></p> 398<p style="text-align: center;"> </p> 399<p style="text-align: center;"><strong>Thanks to the Mass Cultural Council for their vital support this year. </strong><strong>We'd also like to thank the Community Foundation of Western Massachusetts for their support in the form of a Flexible Funding grant. We couldn't do this work without you!</strong></p> 400<p style="text-align: center;"> </p> 401<p style="text-align: center;"><strong>
401<img alt="" class="img-responsive" height="88" src="/library/mcc-logo-rgb-notag.jpg" width="242" /> <img alt="" class="img-responsive" src="/library/CF.jpg" /></strong></p> 402</div> 403</div></div></div> 404<footer> 405<div class="footer_default noprint"> 406<div id="footer" class="container"> 407<div class="footerO row pt-2"> 408<!-- starting from 1 --> 409<!-- this is c: 1 --> 410<div class="col-sm-12 col-md-6 text-center" id="footerRow1"> 411<!-- listfind(attributes.staticPageCol,'col1') --> 412<!-- attributes.footerSocialCol eq 'col1' --> 413<!-- attributes.footerNavCol eq 'col1' --> 414<!-- yes --> 415<!-- hello from pagenav! --> 416<!-- SHOW PARENT = 0 --> 417<!-- qsImagesCat.recordCount = 1 --> 418<ul><li> 419<!-- hoohah 167 --> 420<!-- PAGES! --> 421<!-- hoohah 202 --> 422<!-- thecount = 1 --> 423<a id="menu_p8" 424href="/p/8/Shea-Theater-Arts-Center"> 425<span>About</span> 426</a> 427<!-- thecount = 2 --> 428</li><li> 429<a id="menu_p7" 430href="/p/7/The-History-of-the-Shea-Theater-Turners-Falls-MA"> 431<span>History</span> 432</a> 433<!-- thecount = 3 --> 434</li><li> 435<a id="menu_p10" 436href="/p/10/Help-the-Shea-keep-dreaming-on-Avenue-A"> 437<span>Donate</span> 438</a> 439</li><li><a id="menu_d" 440title="Shows & Tickets" 441href="/calendar"><span>Shows & Tickets</span></a> 442</li><li><a id="menu_c" 443title="Contact" 444class="active" 445href="/contact"><span>Contact</span></a> 446</li></ul> 447<!-- attributes.footerShowSearchCol eq 'col1' --> 448<!-- attributes.loginCol eq 'col1' --> 449</div> 450<!-- this is c: 2 --> 451<div class="col-sm-12 col-md-6 text-center" id="footerRow2"> 452<!-- listfind(attributes.staticPageCol,'col2') --> 453<!-- yes --> 454<div class="static footer-defaultcol2"> 455<!-- from var application.static.footer_defaultcol2 --> 456<p style="text-align: center;"><strong>SHEA THEATER ARTS CENTER</strong><br /> 457<a href="https://goo.gl/maps/oQeWV6HTEMiTmF6Y6" target="_blank"><span class="LrzXr">71 Avenue A, </span>Turners Falls, MA 01376</a></p> 458<p style="text-align: center;"><strong>Mailing Address:</strong> P.O Box 773, Turners Falls, MA 01376</p> 459<p style="text-align: center;"><a href="/x/1/Booking-Inquiries">Booking and Rental Inquiries</a></p> 460</div> 461<!-- attributes.footerSocialCol eq 'col2' --> 462<!-- yes --> 463<span class="social fa-size" style=""> 464<span class="text-info iconset"><a href="https://www.facebook.com/sheatheater/" target="_blank" alt="facebook"><i aria-label="facebook icon" class="fab fa-facebook"></i><span class="sr-only">facebook</span></a></span> 465<span class="text-info iconset"><a href="https://www.instagram.com/sheatheater/" target="_blank" alt="instagram"><i aria-label="instagram icon" class="fab fa-instagram"></i><span class="sr-only">instagram</span></a></span> 466<span class="text-info iconset"><a href="https://twitter.com/SheaTheater" target="_blank" alt="twitter"><i aria-label="twitter icon" class="fab fa-twitter"></i><span class="sr-only">twitter</span></a></span> 467</span> 468<!-- attributes.footerNavCol eq 'col2' --> 469<!-- attributes.footerShowSearchCol eq 'col2' --> 470<!-- attributes.loginCol eq 'col2' --> 471</div> 472</div> 473</div> 474</div> 475<div id="lowerFooter" class="text-center"> 476<div id="footer"> 477<span class="footerO"> 478<span class="footerL"> 479© 2026 Shea Theater Arts Center 480| 48171 Avenue A, Turners Falls, MA 01376. 413-648-SHEA | <a href=http://MontagueWebWorks.com target=_blank>MWW</a> 482</span> 483<span class="footerM"> 484| 485</span> 486<span class="footerR"> 487<a href="https://RocketFusion.com" target="_blank">Powered by RocketFusion 123</a> 488</span> 489</span> 490</div> 491<span class="login-link"> 492<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> 493<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> 494</span> 495</div> 496</footer> 497<!-- BS4 Init --> 498<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>
499<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
vendor: 1 bytes, line 499
499
500<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 500
500
501<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 501
501
502<script> 503// Assuming we have a div with id="editor_container" 504const filerobotImageEditor = new window.FilerobotImageEditor( 505document.querySelector("#rf-image-editor-edit") 506); 507const image_file_upload = document.getElementById("rf-image-upload"); 508// const btn_image_upload_edit = document.getElementById("btn-image-upload-edit"); 509var source_image = ''; // the HTMLImageElement 510var save_image_name = ''; // name to save image with 511var global_fr_folder = ''; // where to upload 512var global_fr_table = ''; // db table to update 513var global_fr_prefix = ''; // image file prefix, ie; blocks_ 514var global_fr_pid = 0; // image ID, ie; blocks_2323 515var dropzone_website_dir = 'SheaTheater.org\\httpdocs'; 516const file_robot_defaults = { 517save_image_quality : 1, // 0.1 - 1 (default 0.92) - applies to jpeg, jpg and webp images only 518}; 519function renderFileRobotEditor(source,fr_folder=global_fr_folder,fr_table=global_fr_table,fr_prefix=global_fr_prefix,fr_pid=global_fr_pid) { 520console.group("renderFileRobotEditor() called"); 521console.log('source:', source); 522console.log('fr_folder:', fr_folder); 523console.log('fr_table:', fr_table); 524console.log('fr_prefix:', fr_prefix); 525console.log('fr_pid:', fr_pid); 526console.groupEnd(); 527source_image = source; 528filerobotImageEditor.render({ 529source: source_image, 530useBackendTranslations: false, 531defaultSavedImageName: save_image_name, 532defaultSavedImageQuality: file_robot_defaults.save_image_quality, 533tabsIds: [ 534window.FilerobotImageEditor.TABS.ADJUST, 535window.FilerobotImageEditor.TABS.FINETUNE, 536window.FilerobotImageEditor.TABS.FILTERS, 537window.FilerobotImageEditor.TABS.ANNOTATE, 538window.FilerobotImageEditor.TABS.WATERMARK], // or ['Adjust', 'Annotate', 'Watermark'] 539defaultTabId: window.FilerobotImageEditor.TABS.ADJUST, 540Crop: { 541minWidth: 14, 542minHeight: 14, 543maxWidth: null, 544maxHeight: null, 545ratio: 'custom', 546ratioTitleKey: 'custom', 547noPresets: false, 548autoResize: false, 549presetsItems: [], 550presetsFolders: [], 551lockCropAreaAt: null, // 'top-left' 552}, 553// disable save modal 554onBeforeSave: () => { 555return false; 556}, 557onSave: async (imageInfo, designState) => { 558// console.log('onSave() imageInfo', imageInfo); 559// console.log('onSave() designState', designState); 560// create formData object to populate and send with fetch request 561const formData = new FormData(); 562formData.append('image64', imageInfo.imageBase64); 563formData.append('image_extension', imageInfo.extension); 564formData.append('image_height', imageInfo.height); 565formData.append('image_name', imageInfo.name); 566formData.append('image_name_with_extension', imageInfo.fullName); 567formData.append('image_quality', imageInfo.quality); 568formData.append('image_width', imageInfo.width); 569formData.append('dropzone_website_dir', dropzone_website_dir); // e.g. MikMuller.com\httpdocs 570formData.append('rf_dropzone_dir', fr_folder); 571console.log('onSave() formData [2]', formData); 572// add dropzone options for compatibility with current upload script 573const drop_zone_options = { 574tbl: fr_table, 575imgbase: `${fr_prefix}${fr_pid}`, 576imgname: imageInfo.fullName, 577id: fr_pid 578} 579formData.append("dropzone_options", JSON.stringify(drop_zone_options)); 580console.log('onSave() drop_zone_options', drop_zone_options); 581try { 582// _dropzone-file-upload-ajax.cfm 583// _upload-base64.cfm (for testing) 584console.log('renderFileRobotEditor.onSave() imageInfo', imageInfo); 585const upload_request = await fetch('/inc/_dropzone-file-upload-ajax.cfm', { 586method: 'POST', 587body: formData 588}); 589const upload_result = await upload_request.json(); 590// console.log('DEBUG: [onSave] upload_result', upload_result); 591// close modal 592$('#rfImageModalEdit').modal('hide'); 593// page reload 594window.location.reload(); 595} catch (error) { 596console.log('onSave() error', error); 597const upload_result = { 598code: 1, 599message: error.message, 600success: false 601} 602} 603}, 604onClose: (closingReason) => { 605console.log("Closing reason", closingReason); 606filerobotImageEditor.terminate(); 607// reset the input field 608document.getElementById('rf-image-upload').value = ''; 609}, 610}); 611} 612/** 613* Function to handle image selection from the file input field 614* async as we use a promise to await image load 615*/ 616async function onImageSelected(event, file_obj, fr_folder, fr_table, fr_prefix, fr_pid) { 617let file; 618if (file_obj) { 619console.log('onImageSelected file_obj', file_obj, fr_folder, fr_table, fr_prefix, fr_pid); 620file = file_obj; 621} else { 622file = event.target.files[0]; 623} 624save_image_name = file.name; 625console.log('onImageSelected file', file); 626// const reader = new FileReader(); 627const image = new Image(); 628const img_max_width = 1600; 629image.src = URL.createObjectURL(file); 630// Promise to await image load 631await new Promise((resolve) => { 632image.onload = () => { 633const img_width = image.width; 634const img_height = image.height; 635// console.log('onImageSelected img load', img_width, img_height); 636if (img_width > img_max_width) { 637const img_scale = img_max_width / img_width;
638image.width = img_width * img_scale; 639image.height = img_height * img_scale; 640} 641// resolve the promise 642resolve(); 643}; 644}); 645// open the modal 646$('#rfImageModalEdit').modal('show'); 647// Render file robot 648renderFileRobotEditor(image, fr_folder, fr_table, fr_prefix, fr_pid); 649} 650/** Function to handle image editing */ 651function 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) { 652console.log('[DEBUG] editExistingImage() called.'); 653console.log('image_url:', image_url); 654console.log('image_name:', image_name); 655console.log('fr_folder:', fr_folder); 656console.log('fr_table:', fr_table); 657console.log('fr_prefix:', fr_prefix); 658console.log('fr_pid:', fr_pid); 659save_image_name = image_name; 660renderFileRobotEditor(image_url, fr_folder, fr_table, fr_prefix, fr_pid); 661} 662/** Function to open the hidden input file field */ 663function openFileInput(fr_folder='', fr_table='', fr_prefix='', fr_pid=0) { 664console.log('[DEBUG] openFileInput() called.', fr_folder, fr_table, fr_prefix, fr_pid); 665global_fr_folder = fr_folder; // where to upload 666global_fr_table = fr_table; // db table to update 667global_fr_prefix = fr_prefix; // image file prefix, ie; blocks_ 668global_fr_pid = fr_pid; 669image_file_upload.click(); 670} 671/** Function to open RF File Manager in a modal 672* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 673* Need the image full url to make a copy of for ai images 674*/ 675function openRFFileManager(current_image_url, fr_folder=global_fr_folder, fr_table=global_fr_table, fr_prefix=global_fr_prefix, fr_pid=global_fr_pid) { 676// $($(this).data( "target" ) + ' .modal-body').load( data_remote ); 677console.group("bs4_init openRFFileManager() called"); 678console.log("current_image_url:", current_image_url); 679console.log("fr_folder:", fr_folder); 680console.log("fr_table:", fr_table); 681console.log("fr_prefix:", fr_prefix); 682console.log("fr_pid:", fr_pid); 683console.groupEnd(); 684const rfFileManagerModalIframe = document.getElementById('rfFileManagerModalIframe'); 685rfFileManagerModalIframe.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}`; ; 686$('#rfFileManagerModal').modal('show'); 687} 688/** Function to close the RF File Manager modal 689* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 690* Need to upload the image and then close the modal 691*/ 692function closeRFFileManagerModal(image_path, img_name='', fr_folder='', fr_table='', fr_prefix='', fr_pid=0) { 693console.group("bs4_init closeRFFileManagerModal() called"); 694console.log("image_path:",image_path); 695console.log("img_name:",img_name); 696console.log("fr_folder:",fr_folder); 697console.log("fr_table:",fr_table); 698console.log("fr_prefix:",fr_prefix); 699console.log("fr_pid:",fr_pid); 700console.groupEnd(); 701$('#rfFileManagerModal').modal('hide'); 702$('#rfImageModalEdit').modal('show'); 703save_image_name = img_name; 704// renderFileRobotEditor(image_path); 705renderFileRobotEditor(image_path, fr_folder, fr_table, fr_prefix, fr_pid); 706} 707/** Function to close the RF File Manager modal without opening File Robot 708* Will be used by ckeditor/plugins/rffilemanager/browse.cfm 709*/ 710function closeRFFileManagerModalOnly(reload=false) { 711$('#rfFileManagerModal').modal('hide');
712if (reload) { 713setTimeout(() => { 714window.location.reload(); 715}, 500); 716} 717} 718// Handle closing of modal without saving (must cleanup file robot editor) 719$('#rfImageModalEdit').on('hidden.bs.modal', function (event) { 720// console.log('modal closed'); 721filerobotImageEditor.terminate(); 722image_file_upload.value = ''; 723}); 724/** Rocketfusion - enable drag/drop zone on an image with the .rf-image-dropzone class */ 725// Create dropzone object for all images with the .rf-image-dropzone class 726const rf_image_drop_zone = document.querySelectorAll('.rf-image-dropzone'); 727// Attach event listeners to all instances of rf_image_drop_zone 728rf_image_drop_zone.forEach(function (i) { 729// Handle drag over event 730i.addEventListener('dragover', function(e) { 731event.target.classList.add('image-dragover'); 732dragOverHandler(e); 733}); 734// Handle drag leave event 735i.addEventListener('dragleave', function(e) { 736// console.log('Image dropzone dragleave'); 737event.target.classList.remove('image-dragover'); 738}); 739// Handle drop event 740i.addEventListener('drop', function(e) { 741event.target.classList.remove('image-dragover'); 742dropHandler(e); 743}); 744}); 745/** 746* Handles the drop event of files in the drop zone. 747* Prevents the default behavior of opening the file and logs the names of the dropped files. 748* 749* @param {Event} ev - The drop event. 750* @returns {undefined} 751*/ 752function dropHandler(ev) { 753// console.log('File(s) dropped'); 754// Prevent default behavior (Prevent file from being opened) 755ev.preventDefault(); 756if (ev.dataTransfer.items) { 757// Use DataTransferItemList interface to access the file(s) 758[...ev.dataTransfer.items].forEach((item, i) => { 759// If dropped items aren't files, reject them 760if (item.kind === 'file') { 761const file = item.getAsFile(); 762console.log(`file[${i}].name = ${file.name}`); 763onImageSelected(i, file); 764} 765}); 766} else { 767// Use DataTransfer interface to access the file(s) 768[...ev.dataTransfer.files].forEach((file, i) => { 769console.log(`file[${i}].name = ${file.name}`); 770onImageSelected(i, file); 771}); 772} 773} 774/** 775* Handles the drag over event of files in the drop zone. 776* Prevents the default behavior of opening the file. 777* 778* @param {Event} ev - The drag over event. 779* @returns {undefined} 780*/ 781function dragOverHandler(ev) { 782// Prevent default behavior (Prevent file from being opened) 783ev.preventDefault(); 784} 785</script>
785 786<style> 787.modal-fullscreen { 788width: 100vw; 789max-width: none; 790height: 100%; 791margin: 0; 792} 793.modal-content { 794height: 100%; 795border: 0; 796@include border-radius(0); 797} 798.modal-body { 799overflow-y: auto; 800} 801.image-dragover { 802opacity: 0.5; 803} 804</style>
805<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 805
805
806<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 806
806
807<script>$(window).scroll(function() { if ($(document).scrollTop() > 50) { $('nav').addClass('shrink'); } else { $('nav').removeClass('shrink'); } }); </script>
807 808<!-- contact and forms -->
809<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
vendor: 1 bytes, line 809
809
810<script src="//cdnjs.cloudflare.com/ajax/libs/parsley.js/2.8.1/parsley.js"></script>
vendor: 1 bytes, line 810
810
811<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
vendor: 1 bytes, line 811
811
812<script> 813function limitText(limitField, limitNum) { 814if (limitField.value.length > limitNum) { 815limitField.value = limitField.value.substring(0, limitNum); 816} 817} 818$(document).ready(function(){ 819// this code is in bs4_init 820// Real time formatting, added by Andrew Kelly, 2/14/19 821// (US phone formatter) - on document load, attach handler to the phone-us class and mask the input 822$('.phone-us').mask('000-000-0000'); 823// Max length of a number input 824$('.numbers-only').keyup(function() { 825var maxLen = $(this).data('max-length'); 826var input = $('.numbers-only').val() 827var inputLen = input.length; 828console.log('[DEBUG] inputLen:' + inputLen); 829console.log('[DEBUG] maxLen:' + maxLen); 830if ( inputLen >= 9 ) { 831console.log('[DEBUG] Trim to 9 chars'); 832$('.numbers-only').val( input.substring(0, 9) ); 833} 834}); 835}); 836// Validation performed on form SUBMIT 837$("#fRocketfusion").parsley({ 838errorClass: 'is-invalid text-danger', 839//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. 840errorsWrapper: '<span class="form-text text-danger"></span>', 841errorTemplate: '<span></span>', 842trigger: 'change' 843}); 844</script>
vendor: 1 bytes, line 844
844
845<script type="text/javascript" src="/RFAssets/js/joey.js?ver=20260911135311" charset="UTF-8"></script>
vendor: 1 bytes, line 845
845
846<script type="text/javascript"> 847$( 'body' ).on( 'click', '[data-toggle="modal"]', function(){ 848let data_remote = $(this).data( "remote" ); 849if ( data_remote && data_remote.length >= 2 ) { 850$($(this).data( "target" ) + ' .modal-content').load( data_remote ); 851} 852}); 853</script>
vendor: 1 bytes, line 853
853
854<script> 855$(document).ready(function() { 856//$('nav').animate({opacity:'1'}, 50);<!-- set to 0.25 to make see thru --> 857//$(img).animate({opacity:'1'}); 858$initNavHgt = $('nav').outerHeight(); 859$initHeadLogoHgt = $('#headerLogo').outerHeight(); 860}); 861</script>
861 862<!-- no userway account --> 863</body> 864</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.