1<!DOCTYPE html> 2�<html lang="en"><head><!-- Google tag (gtag.js) -->
vendor: 71 bytes, line 2
2<script async="async" src="https://www.googletagmanager.com/gtag/js?id=
2G-VG24VK2VKT
vendor: 11 bytes, line 2
2"></script>
2<script> 3 window.dataLayer = window.dataLayer || []; 4 function gtag(){dataLayer.push(arguments);} 5 gtag('set', 'linker', {'domains': ['tmt.spotapps.co','spothopperapp.com']}); 6 gtag('js', new Date()); 7 gtag('config', 'G-7X3ZHWPQKB'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-30 15:23:48.092766Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://mill77brewing.com/amesbury-downtown-mill-77-brewing-store" rel="canonical"/><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="" name="description"/><meta content="" name="author"/><meta content="Mill 77 Brewing - Store" property="og:title"/><meta content="website" property="og:type"/><meta content="http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store" property="og:url"/><meta content="Mill 77 Brewing began as a group of friends with a passion for craft beer and has grown into a company that wants to share that same passion and love with the community. Located in historic ..." property="og:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/120066_website/parties_right.jpg" property="og:image"/><meta content="Mill 77 interior, tables ready for guests." property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="111124868145070" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Mill 77 Brewing - Store" name="twitter:title"/><meta content="Mill 77 Brewing began as a group of friends with a passion for craft beer and has grown into a company that wants to share that same passion and love with the community. Located in historic ..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/120066_website/parties_right.jpg" name="twitter:image"/><title>Mill 77 Brewing - Store</title>
13<script>document.cookie='resolution='+Math.max(screen.width,screen.height)+("devicePixelRatio" in window ? ","+devicePixelRatio : ",1")+'; path=/';</script>
13<link href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/site.webmanifest" rel="manifest"/><link color="#5bbad5" href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/safari-pinned-tab.svg" rel="mask-icon"/><link href="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/favicon.ico" rel="shortcut icon"/><meta content="#da532c" name="msapplication-TileColor"/><meta content="https://static.spotapps.co/website_images/ab_websites/120066_website/favicons/browserconfig.xml" name="msapplication-config"/><meta content="#ffffff" name="theme-color"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/owlcarousel/owl.theme.default.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/css/style.css?version2" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/css/bottom_navigation_v1.css?v1785742213" rel="stylesheet"/><link href="css/custom.css?v1785742213&domain=mill77brewing.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/mill77brewing--com/lib/icons_font/css/social_icons.css" rel="stylesheet"/><!--[if IE 7]><link rel="stylesheet" href="lib/icons_font/css/social_icons-ie7.css"><![endif]--><!--[if lt IE 9]> 14
14<script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
14 15
15<script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
15 16 <![endif]--><style> 17 18 .webkit-mobile-body>div:first-child{ 19 -webkit-overflow-scrolling: touch; 20 } 21 22 .food-menu-page:before { 23 background-image: url('https://static.spotapps.co/website_images/ab_websites/120066_website/food_pbg.jpg'); 24 -webkit-filter: grayscale(1) opacity(0.2); 25 -moz-filter: grayscale(1) opacity(0.2); 26 -o-filter: grayscale(1) opacity(0.2); 27 -ms-filter: grayscale(1) opacity(0.2); 28 filter: grayscale(1) opacity(0.2); 29 } 30 31 @media (max-width: 1023px) { 32 .food-menu-grid .food-item-holder { 33 text-align: right; 34 } 35 .food-menu-grid .food-item-title { 36 display: block; 37 text-align: left; 38 } 39 .food-menu-grid .food-price { 40 float: none; 41 } 42 .food-menu-grid .food-item-description { 43 text-align: left; 44 } 45 } 46 47 </style><link href="https://static.spotapps.co/websites/mt/css/general-food-menu-patch.css" rel="stylesheet"/>
47<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
47<script> 48function ga_check(){ 49 return true; 50} 51</script>
51<script> 52function universal_ga(action, type, category, ev_action, label){ 53 if(typeof ga === 'function') 54 { 55 if(!(action && label)) 56 ga(action, type, category) 57 else 58 ga(action, type, category, ev_action, label) 59 } 60 61 if(typeof gtag === 'function') 62 { 63 if(!(action && label)) 64 { 65 hash = category 66 ev_label = hash["eventLabel"] 67 var splits = ev_label.match(/.{1,100}/g) ?? []; 68 delete(hash["eventLabel"]) 69 70 if(splits.length <= 1) 71 hash["eventLabel"] = ev_label 72 else 73 { 74 for (let i = 0; i < splits.length; i++) { 75 var key = "eventLabel_"+i 76 hash[key] = splits[i] 77 } 78 } 79 console.log(hash) 80 gtag("event", hash["eventCategory"], hash); 81 } 82 else 83 { 84 var hash = { 85 eventCategory: category, 86 eventAction: ev_action 87 } 88 89 var splits = label.match(/.{1,100}/g) ?? []; 90 if(splits.length <= 1) 91 hash["eventLabel"] = label 92 else 93 { 94 for (let i = 0; i < splits.length; i++) { 95 var key = "eventLabel_"+i 96 hash[key] = splits[i] 97 } 98 } 99 gtag("event", hash["eventCategory"], hash); 100 } 101 } 102} 103</script>
103<script> function getPromotionUrlParams(){ 104 var params_str = sessionStorage.getItem('shUrlParams'); 105 if (params_str != null){ 106 return JSON.parse(params_str); 107 }else{ 108 return {}; 109 } 110 } 111 112 function getPromotionSourceDetails(){ 113 var params_str = localStorage.getItem('promotionSourceDetails'); 114 if (params_str != null){ 115 return JSON.parse(params_str); 116 }else{ 117 return {}; 118 } 119 } 120 121 function getLastEmailVisitInDays(){ 122 var promotionSourceDetails = getPromotionSourceDetails(); 123 if (!promotionSourceDetails['last_visit_email'] ){ 124 return null; 125 } 126 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 127 } 128 129 function getLastSocialVisitInDays(){ 130 var promotionSourceDetails = getPromotionSourceDetails(); 131 if (!promotionSourceDetails['last_visit_social'] ){ 132 return null; 133 } 134 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 135 } 136 137 var shUrlParams = getPromotionUrlParams(); 138 var promotionSourceDetails = getPromotionSourceDetails(); 139 140 new URL(document.location).searchParams.forEach(function(value, paramName){ 141 142 shUrlParams[paramName] = value; 143 144 if (paramName == 'source' && value =='social' ){ 145 promotionSourceDetails['last_visit_social'] = new Date(); 146 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 147 } 148 149 if (paramName == 'source' && value =='email' ){ 150 promotionSourceDetails['last_visit_email'] = new Date(); 151 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 152 } 153 154 }); 155 156 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 157</script>
157<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 158a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 159a.get-directions-footer-link:hover{transform:scale(1.08);} 160@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 161a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu "><div class="food-menu-page"><header><style> 162 163 .nav-v7 .navbar-logo .container { 164 height: 70px; 165 } 166 .nav-v7 .navbar-logo .header-logo img { 167 max-height: 70px; 168 } 169 170 171.navbar.nav-v6 .navbar-logo .container { 172 height: 90px; 173 padding-top: 10px; 174 padding-bottom: 10px; 175} 176.navbar.nav-v6.nav-scroll .navbar-logo .container { 177 height: 70px; 178 padding-top: 0px; 179 padding-bottom: 0px; 180} 181.navbar.nav-v6 .header-logo img { 182 max-width: 100%; 183} 184.navbar.nav-v6.nav-scroll .header-logo img { 185 max-width: 80%; 186} 187.nav-v7 .navbar-logo .header-logo img { 188 max-height: 90px; 189} 190.nav-v7.nav-scroll .navbar-logo .header-logo img { 191 max-height: 70px; 192} 193 194@media (max-width: 767px) { 195 .navbar.nav-v6 .navbar-header { 196 padding-top: 10px; 197 padding-bottom: 10px; 198 } 199 .navbar.nav-v6.nav-scroll .navbar-header{ 200 padding-top: 0px; 201 padding-bottom: 0px; 202 } 203 .navbar.nav-v6 .socialnav { 204 margin-top: 10px; 205 } 206 .navbar.nav-v6.nav-scroll .socialnav { 207 margin-top: 0px; 208 } 209 .navbar.nav-v6 .container{ 210 padding-top: 0; 211 padding-bottom: 0; 212 } 213 .navbar.nav-v6.nav-scroll .container { 214 padding-top: 0; 215 padding-bottom: 0; 216 } 217 .navbar.nav-v6 .header-logo { 218 height: 70px; 219 } 220 .navbar.nav-v6.nav-scroll .header-logo { 221 height: 50px; 222 } 223 .navbar.nav-v6 .header-logo img { 224 max-height: 100%; 225 } 226} 227 228 229.navbar-regular .navbar-collapse.collapse.in { 230 background-color: transparent; 231 width: 100%; 232} 233.navbar.nav-v6 .navbar-tabs { 234 background-color: #FFFEF0; 235 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 236 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 237 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 238} 239.navbar.nav-v6.nav-scroll .navbar-tabs { 240 background-color: #FFFEF0; 241 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 242 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 243 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 244} 245.drink-menu .navbar.nav-v6 .navbar-tabs { 246 background-color: #FFFEF0; 247 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 248 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 249 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 250} 251.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 252 background-color: #FFFEF0; 253 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 254 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 255 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 256} 257li.drop-down-link .sub-menu { 258 background-color: #FFFEF0; 259 color: #0A3254; 260 } 261.nav-scroll li.drop-down-link .sub-menu { 262 background-color: #FFFEF0; 263 color: #0A3254; 264} 265.drink-menu li.drop-down-link .sub-menu { 266 background-color: #FFFEF0; 267 color: #0A3254; 268} 269.drink-menu .nav-scroll li.drop-down-link .sub-menu { 270 background-color: #FFFEF0; 271 color: #0A3254; 272} 273li.drop-down-link .sub-menu a, 274li.drop-down-link div.drop-down { 275 color: #0A3254; 276} 277.nav-scroll li.drop-down-link .sub-menu a, 278.nav-scroll li.drop-down-link div.drop-down { 279 color: #0A3254; 280} 281.drink-menu li.drop-down-link .sub-menu a, 282.drink-menu li.drop-down-link div.drop-down { 283 color: #0A3254; 284} 285.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 286.drink-menu .nav-scroll li.drop-down-link div.drop-down { 287 color: #0A3254; 288} 289 290.navbar.nav-v6 .navbar-logo { 291 background-color: #FFFEF0; 292} 293.navbar.nav-v6.nav-scroll .navbar-logo { 294 background-color: #FFFEF0; 295} 296.drink-menu .navbar.nav-v6 .navbar-logo { 297 background-color: #FFFEF0; 298} 299.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo { 300 background-color: #FFFEF0; 301} 302 303.navbar-regular.nav-v6 .navbar-nav>li>a, 304.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 305.navbar-regular.nav-v6 .navbar-nav>.active>a, 306.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 307.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 308 border: none; 309 border-right: 1px solid #0A3254; 310 background-color: transparent;
311 color: #417B5A; 312} 313.navbar-regular.nav-v6 .navbar-nav>li>a { 314 color: #0A3254; 315} 316.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 317 color: #0A3254; 318 border-right: 1px solid #0A3254; 319} 320.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 321.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 322.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 323.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 324 color: #417B5A; 325} 326 327li.drop-down-link .sub-menu a:hover, 328li.drop-down-link .sub-menu a:focus{ 329 color: #417B5A; 330} 331.drink-menu li.drop-down-link .sub-menu a:hover, 332.drink-menu li.drop-down-link .sub-menu a:focus { 333 color: #417B5A; 334} 335 336.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a, 337.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 338.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 339.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 340.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover{ 341 color: #417B5A; 342} 343.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 344 color: #0A3254; 345} 346.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 347 color: #0A3254; 348} 349.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 350 color: #0A3254; 351} 352.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 353.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 354.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 355.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover { 356 color: #417B5A; 357} 358 359.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 360 background-color: #0A3254; 361} 362.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 363 background-color: #0A3254; 364} 365.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 366 background-color: #417B5A; 367} 368.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 369 background-color: #417B5A; 370} 371.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 372.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 373.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 374.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 375.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 376 border: none; 377 border-right: 1px solid #0A3254; 378 color: #417B5A; 379} 380.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 381 color: #0A3254; 382} 383.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 384 color: #0A3254; 385 border-right: 1px solid #0A3254; 386} 387.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 388.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 389.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 390.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 391 color: #417B5A; 392} 393 394.nav-scroll li.drop-down-link .sub-menu a:hover, 395.nav-scroll li.drop-down-link .sub-menu a:focus { 396 color: #417B5A; 397} 398.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 399.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 400 color: #417B5A; 401} 402 403.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a, 404.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 405.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 406.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 407.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover { 408 color: #417B5A; 409} 410.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 411 color: #0A3254; 412} 413.drink-menu .navbar.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 414 color: #0A3254; 415} 416.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 417.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 418.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 419.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover{ 420 color: #417B5A; 421} 422 423.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 424 background-color: #0A3254; 425}
426.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 427 background-color: #0A3254; 428} 429.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 430 background-color: #417B5A; 431} 432.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 433 background-color: #417B5A; 434} 435.navbar.nav-v6 .header-logo-text{ 436 color: #0A3254; 437} 438.navbar.nav-v6.nav-scroll .header-logo-text{ 439 color: #0A3254; 440} 441.navbar.nav-v6 .social-icon{ 442 color: #0A3254; 443} 444.navbar.nav-v6.nav-scroll .social-icon{ 445 color: #0A3254; 446} 447.navbar.nav-v6 .social-square .contact-icon:hover { 448 color: #0A3254; 449 background-color: #417B5A; 450} 451.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 452 color: #0A3254; 453 background-color: #417B5A; 454} 455 456.drink-menu .navbar.nav-v6 .header-logo-text{ 457 color: #0A3254; 458} 459.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 460 color: #0A3254; 461} 462.drink-menu .navbar.nav-v6 .social-icon{ 463 color: #0A3254; 464} 465.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 466 color: #0A3254; 467} 468.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 469 color: #0A3254; 470 background-color: #417B5A; 471} 472.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 473 color: #0A3254; 474 background-color: #417B5A; 475} 476.navbar.nav-v6 .navbar-logo .container { 477 border-bottom: 1px solid #0A3254; 478} 479.navbar.nav-v6.nav-scroll .navbar-logo .container { 480 border-bottom: 1px solid #0A3254; 481} 482.drink-menu .navbar.nav-v6 .navbar-logo .container { 483 border-bottom: 1px solid #0A3254; 484} 485.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo .container { 486 border-bottom: 1px solid #0A3254; 487} 488@media (max-width: 767px) { 489 .navbar.nav-v6 { 490 background-color: #FFFEF0; 491 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 492 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 493 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 494 } 495 .navbar.nav-v6.nav-scroll { 496 background-color: #FFFEF0; 497 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 498 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 499 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 500 } 501 .drink-menu .navbar.nav-v6 { 502 background-color: #FFFEF0; 503 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 504 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 505 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 506 } 507 .drink-menu .navbar.nav-v6.nav-scroll { 508 background-color: #FFFEF0; 509 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 510 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 511 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.4); 512 } 513 .navbar.nav-v6 .container, 514 .navbar.nav-v6.nav-scroll .container, 515 .drink-menu .navbar.nav-v6 .container, 516 .drink-menu .navbar.nav-v6.nav-scroll .container { 517 border-bottom: none; 518 } 519 .navbar.nav-v6 .navbar-header { 520 border-bottom: 2px solid #0A3254; 521 } 522 .navbar.nav-v6.nav-scroll .navbar-header { 523 border-bottom: 2px solid #0A3254; 524 } 525 .drink-menu .navbar.nav-v6 .navbar-header { 526 border-bottom: 2px solid #0A3254; 527 } 528 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 529 border-bottom: 2px solid #0A3254; 530 } 531 li.drop-down-link .sub-menu, 532 .drink-menu li.drop-down-link .sub-menu { 533 background-color: transparent; 534 } 535 .nav-scroll li.drop-down-link .sub-menu, 536 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 537 background-color: transparent; 538 } 539 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 540 .navbar-regular.nav-v6 .navbar-nav>.active>a, 541 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 542 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 543 background-color: #417B5A; 544 color: #0A3254; 545 } 546 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 547 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 548 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 549 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 550 background-color: #417B5A; 551 color: #0A3254; 552 } 553 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 554 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 555 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 556 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{
557 background-color: #417B5A; 558 color: #0A3254; 559 } 560 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 561 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 562 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 563 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 564 background-color: #417B5A; 565 color: #0A3254; 566 } 567 568 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 569 color: #417B5A; 570 } 571 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 572 color: #417B5A; 573 } 574 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 575 color: #417B5A; 576 } 577 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 578 color: #417B5A; 579 } 580} 581</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v7 navbar-regular navbar-fixed-top" id="navbar" role="navigation"><div class="visuallyhidden" id="skip"><a href="#content">Skip to Main Content</a></div><div class="desktop-navigation logo-center"><div class="navbar-logo"><div class="container"><a class="header-logo logo-top" href="/#"><img alt="Mill 77 Brewing logo top" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/120066_website/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Mill 77 Brewing logo scroll" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/120066_website/logo.png"/></a><div class="navbar-contact"><ul class="nav navbar-nav navbar-right"><li class="nav-email"><a href="mailto:[email protected]"><i aria-hidden="true" class="fa fa-envelope-o"></i>[email protected]</a></li><li class="nav-address"><a href="/#map-v3-container"><i aria-hidden="true" class="fa fa-map-marker"></i> 582 77 Elm Street , Amesbury </a></li></ul></div></div></div><div class="navbar-tabs"><div class="container"><div class="navbar-content"><ul class="nav navbar-nav"><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-taplist" id="/Amesbury-Downtown-Mill-77-Brewing-taplist_link" target="_self"> 583 Taplist 584 585 </a></li><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-events" id="/Amesbury-Downtown-Mill-77-Brewing-events_link" target="_self"> 586 Events 587 588 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="https://tmt.spotapps.co/private-parties?spot_id=120066&callback_url=http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store#" id="https://tmt.spotapps.co/private-parties?spot_id=120066&callback_url=http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store#_link" target="_self"> 589 Parties 590 591 </a></li><li class="active nav-menu-page"><a class="" href="/amesbury-downtown-mill-77-brewing-store" id="/Amesbury-Downtown-Mill-77-Brewing-store_link" target="_self"> 592 Store 593 594 </a></li><li class=" gift-cards-nav"><a class="gift-cards-link" href="https://www.toasttab.com/mill-77-brewing-77-elm-street/giftcards" id="gift-cards-link_link" target="_blank"> 595 Gift Cards 596 597 </a></li><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-where-to-park" id="/Amesbury-Downtown-Mill-77-Brewing-where-to-park_link" target="_self"> 598 Where To Park 599 600 </a></li></ul><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/111124868145070" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a><a class="pull-left contact-icon" href="https://www.instagram.com/mill77brewing" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.yelp.ca/biz/mill-77-brewing-amesbury" target="_blank"><i aria-hidden="true" class="social-icon fa fa-yelp"></i><span>Yelp page</span></a></li></ul></div></div></div></div><div class="mobile-navigation"><div class="container"><div class="navbar-header"><button class="navbar-toggle" data-target="#navbar-collapse-1" data-toggle="collapse" type="button"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><a class="header-logo logo-top" href="/#"><img alt="Mill 77 Brewing logo top" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/120066_website/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Mill 77 Brewing logo scroll" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/120066_website/logo.png"/></a><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/111124868145070" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a><a class="pull-left contact-icon" href="https://www.instagram.com/mill77brewing" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.yelp.ca/biz/mill-77-brewing-amesbury" target="_blank"><i aria-hidden="true" class="social-icon fa fa-yelp"></i><span>Yelp page</span></a></li></ul><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-taplist" id="mobile_/Amesbury-Downtown-Mill-77-Brewing-taplist_link" target="_self"> 601 Taplist 602 603 </a></li><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-events" id="mobile_/Amesbury-Downtown-Mill-77-Brewing-events_link" target="_self"> 604 Events 605 606 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="https://tmt.spotapps.co/private-parties?spot_id=120066&callback_url=http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store#" id="mobile_https://tmt.spotapps.co/private-parties?spot_id=120066&callback_url=http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store#_link" target="_self"> 607 Parties 608 609 </a></li><li class="active nav-menu-page"><a class="" href="/amesbury-downtown-mill-77-brewing-store" id="mobile_/Amesbury-Downtown-Mill-77-Brewing-store_link" target="_self"> 610 Store 611 612 </a></li><li class=" gift-cards-nav"><a class="gift-cards-link" href="https://www.toasttab.com/mill-77-brewing-77-elm-street/giftcards" id="mobile_gift-cards-link_link" target="_blank"> 613 Gift Cards 614 615 </a></li><li class=" "><a class="" href="/amesbury-downtown-mill-77-brewing-where-to-park" id="mobile_/Amesbury-Downtown-Mill-77-Brewing-where-to-park_link" target="_self"> 616 Where To Park 617 618 </a></li></ul></div></div></div></nav></header><main id="content" role="main"><article><div class="food-menu-v2-wrapper section-wrapper menu-item-photos" id="food"><h1 class="section-header">Store</h1><div class="food-menu-nav">
618<a class="food-menu-nav-item menu_143353_link custom-temp-btn hvr-fade" href="143353" id="Store"><span>Store</span></a></div><div class="container"><div class="food-menu-holder"><div class="menu_143353 food-menu-grid" style="display:none"><div class="food-menu-grid-sizer"></div><div class="food-menu-grid-item food-menu-grid-item--width2"><section><div class="food-menu-grid-item-content"><h2>Merch</h2><div class="food-menu-content"><div class="food-item-holder" id="menu_item_1885742"><!-- START the SH menu item photo --><div class="food-item-photo-holder"><img alt="Hats photo" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/8e/420b7e7fb841c8a0d0d7175e11ac5c/full" data-srcset="//static.spotapps.co/spots/8e/420b7e7fb841c8a0d0d7175e11ac5c/small 200w, //static.spotapps.co/spots/8e/420b7e7fb841c8a0d0d7175e11ac5c/medium 400w, //static.spotapps.co/spots/8e/420b7e7fb841c8a0d0d7175e11ac5c/full 800w" id="item_image_1885742" src="https://static.spotapps.co/web/placeholder.png"/></div><!-- END the SH menu item photo --><div class="food-item-title"><h3>Hats</h3></div><div class="food-price">$25.00</div><div class="food-item-description">Various hats of all sizes and styles</div></div><div class="food-item-holder" id="menu_item_1885750"><!-- START the SH menu item photo --><div class="food-item-photo-holder"><img alt="Sweatshirts photo" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/a5/f4f4cb8e514c0ea42788196a4defd8/full" data-srcset="//static.spotapps.co/spots/a5/f4f4cb8e514c0ea42788196a4defd8/small 200w, //static.spotapps.co/spots/a5/f4f4cb8e514c0ea42788196a4defd8/medium 400w, //static.spotapps.co/spots/a5/f4f4cb8e514c0ea42788196a4defd8/full 800w" id="item_image_1885750" src="https://static.spotapps.co/web/placeholder.png"/></div><!-- END the SH menu item photo --><div class="food-item-title"><h3>Sweatshirts</h3></div><div class="food-price">$55.00</div><div class="food-item-description">Zip-up hoodies</div></div><div class="food-item-holder" id="menu_item_6783524"><!-- START the SH menu item photo --><div class="food-item-photo-holder"><img alt="T-shirts photo" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/32/935e7744614e3a873700a1282d63e1/full" data-srcset="//static.spotapps.co/spots/32/935e7744614e3a873700a1282d63e1/small 200w, //static.spotapps.co/spots/32/935e7744614e3a873700a1282d63e1/medium 400w, //static.spotapps.co/spots/32/935e7744614e3a873700a1282d63e1/full 800w" id="item_image_6783524" src="https://static.spotapps.co/web/placeholder.png"/></div><!-- END the SH menu item photo --><div class="food-item-title"><h3>T-shirts</h3></div><div class="food-price">$20.00</div><div class="food-item-description">Available in various colors</div></div><div class="food-item-holder" id="menu_item_6783548"><!-- START the SH menu item photo --><div class="food-item-photo-holder"><img alt="Glasses photo" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/3e/67b103431c4fc887a3fa361e1e2f2f/full" data-srcset="//static.spotapps.co/spots/3e/67b103431c4fc887a3fa361e1e2f2f/small 200w, //static.spotapps.co/spots/3e/67b103431c4fc887a3fa361e1e2f2f/medium 400w, //static.spotapps.co/spots/3e/67b103431c4fc887a3fa361e1e2f2f/full 800w" id="item_image_6783548" src="https://static.spotapps.co/web/placeholder.png"/></div><!-- END the SH menu item photo --><div class="food-item-title"><h3>Glasses</h3></div><div class="food-price">$10.00</div><div class="food-item-description">Available in 13oz Tulip and 16oz Pub Glass</div></div></div></div></section></div><!-- end of food menu grod item --></div><!-- end of food menu --></div></div></div></article></main></div><style type="text/css"> 619 .navbar-fixed-bottom.nav-v1 { 620 bottom: -100px; 621 } 622 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 623 background-color: #FFFEF0; 624 } 625 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 626 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 627 fill: #000; 628 } 629 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 630 color: #0A3254; 631 } 632 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 633 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus {
634 color: #417B5A; 635 } 636</style><nav aria-label="mobile footer" class="navbar-fixed-bottom nav-v1" id="bottom-navbar"><div><ul class="nav navbar-nav navbar-right"><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/private-parties?spot_id=120066&callback_url=http://mill77brewing.com/amesbury-downtown-mill-77-brewing-store" id="bottom_link_5" target="_self"> 637 Parties </a></li></ul></div></nav>
637<script src="https://static.spotapps.co/web/mill77brewing--com/lib/jquery/jquery.min.js" type="text/javascript"></script>
637<script src="https://static.spotapps.co/web/mill77brewing--com/lib/bootstrap/js/bootstrap.min.js"></script>
637<script src="https://static.spotapps.co/web/mill77brewing--com/lib/masonry/masonry.pkgd.min.js"></script>
637<!-- Script which will insert Shopping cart component (like MT does) --><!--
637<script id="test_shopping_cart_script" src="https://static.spotapps.co/websites/mt/food-menu-plugins-v6.3.test.js"></script>
637 -->
637<script> 638 639 $("#bottom_link_5").on("click", function(){ 640 if (ga_check()) 641 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 642 }); 643 $('.header-logo, .nav-v2-home-btn').click(function(event) { 644 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 645 event.preventDefault(); 646 var windowScrollTop = $(window).scrollTop(); 647 if(windowScrollTop > 150) { 648 $('html, body').animate({scrollTop: 0}, 750); 649 } 650 } 651 }); 652 653$(".banner-section a.banner-pin").click(function(e) { 654 // target element id 655 var id = $(this).attr('href'); 656 657 // target element 658 var section = $(id); 659 if (section.length === 0) { 660 return; 661 } 662 663 // prevent standard hash navigation (avoid blinking in IE) 664 e.preventDefault(); 665 666 // top position relative to the document 667 var pos = section.offset().top - 100 + 10; 668 669 // animated top scrolling 670 $('body, html').animate({scrollTop: pos}, 750); 671}); 672 673$(document).on('scroll', function (e) { 674 if($(document).scrollTop() > 0) { 675 $('.navbar.nav-v7').addClass('nav-scroll'); 676 }else { 677 $('.navbar.nav-v7').removeClass('nav-scroll'); 678 } 679}); 680 681$(function() { 682 setDropDownMenuWidth(); 683 684 function setDropDownMenuWidth() { 685 var tabs_list = $('.navbar-tabs .navbar-nav'); 686 687 $(tabs_list).find('li.drop-down-link').each(function() { 688 var sub_menu_width = $(this).outerWidth(true); 689 if (sub_menu_width < 100) { 690 sub_menu_width = 100; 691 } 692 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 693 }); 694 } 695 696 $( window ).resize(function() { 697 setDropDownMenuWidth(); 698 }); 699 700}); 701 702 703 704$( '.drop-down-link .drop-down' ).click(function(event) { 705 event.preventDefault(); 706 event.stopPropagation(); 707 708 var drop_down = $(this).closest('.drop-down-link'); 709 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 710 711 if ( $(sub_menu).is( ':hidden' ) ) { 712 $(sub_menu).slideDown(); 713 $(drop_down).addClass('active'); 714 } else { 715 $(sub_menu).slideUp(); 716 $(drop_down).removeClass('active'); 717 } 718}); 719 720$(".nav-v7 .navbar-contact .nav-address a").click(function(e) { 721 722 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 723 // target element id 724 var id = $(this).attr('href').substr(1); 725 726 // target element 727 var section = $(id); 728 if (section.length === 0) { 729 return; 730 } 731 732 // prevent standard hash navigation (avoid blinking in IE) 733 e.preventDefault(); 734 735 // top position relative to the document 736 var pos = section.offset().top - 100 + 10; 737 738 // animated top scrolling 739 $('body, html').animate({scrollTop: pos}, 750); 740 741 } 742}); 743 setTimeout(function(){ 744 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 745 }, 3000); 746 $(document).ready(function() { 747 // init Masonry 748 $('.food-menu-grid').masonry({ 749 columnWidth: '.food-menu-grid-sizer', 750 itemSelector: '.food-menu-grid-item', 751 percentPosition: true, 752 fitWidth: true 753 }); 754 755 // Detect if the page is linked from Menu nav tab or Order nav tab 756 if (window.location.search.includes('order=yes')) { 757 $('nav .nav-menu-page').removeClass('active'); 758 $('nav .nav-order-menu-page').addClass('active'); 759 } else { 760 $('nav .nav-order-menu-page').removeClass('active'); 761 $('nav .nav-menu-page').addClass('active'); 762 } 763 764 }); 765 766 var active_tab; 767 function showTab(className){ 768 if (active_tab) { 769 $("."+active_tab).hide(); 770 $("."+active_tab+ "_link").removeClass("active"); 771 } 772 $("."+className).show(); 773 active_tab = className; 774 $("."+active_tab+ "_link").addClass("active"); 775 } 776 777 showTab("menu_143353"); 778 779 $(".food-menu-v2-wrapper .food-menu-nav a.food-menu-nav-item").click(function(e) { 780 var menu_id = $(this).attr('href'); 781 var food_menu_tab = $(".menu_"+menu_id); 782 if (food_menu_tab.length === 0) { 783 return; 784 } 785 786 // prevent standard hash navigation (avoid blinking in IE) 787 e.preventDefault(); 788 789 showTab("menu_"+menu_id); 790 791 // trigger Masonry layout 792 $('.food-menu-grid').masonry('layout'); 793 }); 794 795 796 $( window ).load(function() { 797 // trigger Masonry layout 798 $('.food-menu-grid').masonry('layout'); 799 }); 800 801</script>
801<script> 802(function() { 803 var name = "Mill 77 Brewing"; 804 var pid = "ChIJeRUGkGDj4okRQ38oNg89hBo"; 805 function build_url() { 806 var q = encodeURIComponent(name).replace(/'/g, "%27"); 807 return "https://www.google.com/maps/search/?api=1" 808 + "&query=" + q 809 + "&query_place_id=" + encodeURIComponent(pid); 810 } 811 window.google_map_url = build_url(); 812 window.open_google_map = function() { 813 window.open(build_url(), "_blank"); 814 }; 815})(); 816</script>
816<script> 817 818 var spot_id = 120066; 819 var sh_generic_form_params=JSON.parse('{"generic_contact_form_active":true,"texting_permissions_active":true,"title":"Contact us","instructions":"Please fill out the form and we will be in touch.","reasons":["To host a special event","To get a special event catered","To reserve a table","To apply for a job","Other Questions"],"custom_hours":"","hours":"","active_tmt_cta_links":{"cta_private_party":"https://tmt.spotapps.co/private-parties?spot_id=120066","cta_catering":null,"cta_reservations":null,"cta_jobs":null},"spot_name":"Mill 77 Brewing","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 820 821 if (false){ 822 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 823 } 824 825 if (navigator.userAgent.match(/iPhone/i) 826 || navigator.userAgent.match(/iPad/i) 827 || navigator.userAgent.match(/iPod/i)){ 828 $(document).ready(function(){ 829 document.body.className += " " + "webkit-mobile-body"; 830 }); 831 } 832 833 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 834 if ( promotion_url_param_domain && ( new URL(document.location).host == 'localhost:4000' || new URL(document.location).host == 'wcache.spotapps.co' || new URL(document.location).host == 'website-editor.spotapps.co' || new URL(document.location).host == 'website-editor-staging.spotapps.co' || new URL(document.location).host == 'wcache-staging.spotapps.co')){ 835 $("a[href^='/']").each(function(){ 836 if (this.href.indexOf('domain=') == -1){ 837 var sh_internal_url = new URL(this.href); 838 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 839 this.href = sh_internal_url.toString(); 840 } 841 }) 842 } 843 844 845 function cta_link_matches_href(href, url){ 846 var domain = 'mill77brewing.com'; 847 if(typeof url === 'undefined'){ 848 return false; 849 } 850 var partsOfURL = url.split(domain); 851 if (partsOfURL.length != 2){ 852 return href == url; 853 }else{ 854 var urlPath = partsOfURL[1]; 855 if (urlPath.substring(0,1) == "/"){ 856 urlPath = urlPath.substring(1,urlPath.length); 857 } 858 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 859 } 860 } 861 862 var all_cta_links = [{"id":774313,"spot_id":120066,"url":"https://www.toasttab.com/mill-77-brewing-77-elm-street/giftcards","cta_link_type":"gift_cards","created_at":"2023-07-27T11:00:05.041+00:00","updated_at":"2026-07-28T11:56:07.494+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Gift Cards","position":5},{"id":744511,"spot_id":120066,"url":"https://tmt.spotapps.co/private-parties?spot_id=120066","cta_link_type":"private_parties","created_at":"2023-04-20T20:22:19.361+00:00","updated_at":"2026-07-28T11:56:07.183+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":760501,"spot_id":120066,"url":"https://mill77brewing.com/-taplist","cta_link_type":"drink_menu","created_at":"2023-06-16T13:42:53.833+00:00","updated_at":"2026-07-28T11:56:07.285+00:00","made_of_food":false,"link_name":""},{"id":760500,"spot_id":120066,"url":"https://mill77brewing.com/-events","cta_link_type":"events","created_at":"2023-06-16T13:42:53.799+00:00","updated_at":"2026-07-28T11:56:07.250+00:00","made_of_food":false,"link_name":""}]; 863 864 function find_cta_link(href) { 865 for (var i=0; i< all_cta_links.length; i++){ 866 var cta_link = all_cta_links[i]; 867 if ( cta_link_matches_href(href, cta_link.url)){ 868 return cta_link; 869 } 870 } 871 } 872 873 function find_cta_links(href) { 874 var cta_links = [] 875 for (var i=0; i< all_cta_links.length; i++){ 876 var cta_link = all_cta_links[i]; 877 if ( cta_link_matches_href(href, cta_link.url)){ 878 cta_links.push(cta_link); 879 } 880 } 881 return cta_links; 882 } 883 884 885 function get_current_page_cta_link_types(){ 886 var types = []; 887 var cta_links = find_cta_links(document.location.href); 888 for (var i=0; i<cta_links.length; i++){ 889 types.push(cta_links[i].cta_link_type); 890 } 891 return types; 892 } 893 894 895 function is_food_menu_page(){ 896 var cta_link_types = get_current_page_cta_link_types(); 897 for (var i=0; i<cta_link_types.length; i++){ 898 if ('food_menu' == cta_link_types[i]) 899 return true; 900 } 901 return false;
902 } 903 904 905 function get_form_cat_from_cta(){ 906 var cta_link = find_cta_link(document.location.href); 907 if (cta_link == null) { 908 return null; 909 } 910 if (cta_link.cta_link_type == 'private_parties'){ 911 return 'private_party'; 912 }else if (cta_link.cta_link_type == 'reservations'){ 913 return 'reservation'; 914 }else if (cta_link.cta_link_type == 'catering'){ 915 return 'catering'; 916 }else if (cta_link.cta_link_type == 'job_listing'){ 917 return 'job_listings'; 918 }else if (cta_link.cta_link_type == 'gift_cards'){ 919 return 'gift_cards'; 920 } 921 return null; 922 } 923 924 function element_has_events_defined(elem){ 925 if ($._data(elem, "events") === undefined){ 926 return false; 927 } 928 return true; 929 } 930 931 function create_ga_events_for_cta_clicks(){ 932 if (typeof $ === 'function'){ 933 934 var cta_link_of_the_page = find_cta_link(location.href); 935 936 937 $("a").each(function(index, elem){ 938 var href = $(elem).attr('href'); 939 940 if (href === undefined ){ 941 return; 942 } 943 944 if (href.substring(0,4) == 'tel:'){ 945 if (!element_has_events_defined(elem)){ // not footer links 946 $(elem).on("click", function(){ 947 universal_ga('send', 'event', { 948 eventCategory: 'Button', 949 eventAction: 'Click', 950 eventLabel: 'Phone', 951 transport: 'beacon' 952 }); 953 }); 954 955 if (cta_link_of_the_page){ 956 $(elem).on("click", function(){ 957 universal_ga('send', 'event', { 958 eventCategory: 'Button', 959 eventAction: 'Click', 960 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 961 transport: 'beacon' 962 }); 963 }); 964 } 965 } else { 966 if (cta_link_of_the_page){ 967 $(elem).on("click", function(){ 968 universal_ga('send', 'event', { 969 eventCategory: 'Button', 970 eventAction: 'Click', 971 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 972 transport: 'beacon' 973 }); 974 }); 975 } 976 } 977 978 979 }else{ 980 var cta_link = find_cta_link(href); 981 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 982 // console.log("bottom link detected"); 983 }else{ 984 if (cta_link != null){ 985 $(elem).on("click", function(){ 986 universal_ga('send', 'event', { 987 eventCategory: 'Website Link', 988 eventAction: 'Click', 989 eventLabel: cta_link.cta_link_type, 990 transport: 'beacon' 991 }); 992 }); 993 } 994 } 995 } 996 997 998 }); 999 } 1000 } 1001 1002 if (typeof angular === "undefined") { 1003 create_ga_events_for_cta_clicks(); 1004 } else { 1005 angular.element(document).ready(function () { 1006 create_ga_events_for_cta_clicks(); 1007 }); 1008 } 1009 1010 1011 function triggerShowFooterEvents(){ 1012 if (window.screen.availWidth < 768){ 1013 universal_ga('send', 'event', { 1014 eventCategory: 'Mobile Footer', 1015 eventAction: 'View', 1016 eventLabel: '', 1017 transport: 'beacon' 1018 }); 1019 } 1020 } 1021 1022 1023 1024 1025 //////////// 1026 function smartFooterV2() 1027 { 1028 var list= document.getElementsByClassName("bottom-list-item"); 1029 if (!list) return; 1030 1031 if (document.getElementById("bottom-navbar") == null){ 1032 return; 1033 } 1034 1035 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1036 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1037 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1038 1039 bottomNav.innerHTML = ''; 1040 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1041 linksWithPosition.sort(function(a,b) { 1042 return a.position - b.position; 1043 }); 1044 1045 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1046 1047 linksWithPosition.forEach((e, i) => { 1048 var target = e.target || getUrlTarget(e.url); 1049 bottomNav.insertAdjacentHTML('beforeend', 1050 `<li class="bottom-list-item" style="white-space: nowrap;width: auto;"><a ${footerLinkStyle} class="bottom-link smart-footer-link" data-type="${e.cta_link_type}" data-position="${i}" target="${target}" href="${e.url}">${e.website_footer_label}</a></li>`); 1051 }) 1052 1053 var intervalCount = 0 1054 var interval = setInterval(() => { 1055 if(intervalCount == 50){ 1056 clearInterval(interval); 1057 } 1058 removeOverflowingFooterLinks(); 1059 intervalCount ++; 1060 }, 200); 1061 1062 $('.smart-footer-link').on("click", function(){ 1063 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1064 shUrlParams['source'] = 'footer'; 1065 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1066 } 1067 1068 var visibleLinks = $('.smart-footer-link').map(function (e) { 1069 return $(this).data('type'); 1070 }).toArray().join(','); 1071 1072 universal_ga('send', 'event', { 1073 eventCategory: 'Button', 1074 eventAction: 'Click_footer_2', 1075 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1076 transport: 'beacon' 1077 }); 1078 }); 1079 } 1080 1081 function removeOverflowingFooterLinks(){ 1082 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1083 var width_sum = 0; 1084 1085 bottomNavLinks.forEach(e => { 1086 width_sum += e.getBoundingClientRect().width; 1087 if ((width_sum) > window.innerWidth) { 1088 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1089 e.remove(); 1090 } 1091 }); 1092 } 1093 1094 function getUrlTarget(url){ 1095 if(url.startsWith('tel')){ 1096 return '_self'; 1097 } 1098 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1099 return '_self'; 1100 } 1101 return '_blank'; 1102 } 1103 1104 function npb() 1105 { 1106 var list= document.getElementsByClassName("bottom-list-item"); 1107 if (!list) return; 1108 1109 if (document.getElementById("bottom-navbar") == null){ 1110 return; 1111 } 1112 1113 var url = "" 1114 for (var i=0; i < all_cta_links.length; i++) 1115 { 1116 if (all_cta_links[i].cta_link_type == "order"){ 1117 url = all_cta_links[i].url; 1118 } 1119 } 1120 1121 if ( url == ""){ 1122 return; 1123 } 1124 1125 for (i=0; i < list.length; i++) 1126 { 1127 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1128 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1129 1130 }; 1131 1132 var item = list[list.length-1] 1133 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1134 var width_sum = 0; 1135 for (i=0; i < list.length; i++) { 1136 width_sum += list[i].getBoundingClientRect().width; 1137 } 1138 1139 var item = list[list.length-1] 1140 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1141 1142 item.firstChild.text = "Order"; 1143 item.firstChild.href = url; 1144 item.firstChild.id = "bottom_link_" + list.length; 1145 1146 $(item.firstChild).on("click", function(){ 1147 1148 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1149 shUrlParams['source'] = 'footer'; 1150 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1151 } 1152 1153 universal_ga('send', 'event', { 1154 eventCategory: 'Button', 1155 eventAction: 'Click', 1156 eventLabel: 'Plan B-2 Order', 1157 transport: 'beacon' 1158 }); 1159 }); 1160 1161 1162 } 1163 1164function activateSmartFooter(){ 1165 var smart_footer_active = true; 1166 var smart_footer_version = 2; 1167 var man_bottom_active = false;
1168 if(window.location.hash == '#smartFooterV2=enabled'){ 1169 smartFooterV2(); 1170 return; 1171 } 1172 if (smart_footer_active && !man_bottom_active){ 1173 if(smart_footer_version == 2 ){ 1174 smartFooterV2(); 1175 }else { 1176 npb(); 1177 } 1178 } 1179 } 1180 1181 activateSmartFooter(); 1182 1183 var corona_config_str = '{"id":26011,"spot_id":120066,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":"","food_page_instruction_phone":"6176694235","created_at":"2023-04-20T15:27:31.368+00:00","updated_at":"2026-09-01T13:59:24.586+00:00","food_page_button_color":null,"food_page_button_text_color":null,"food_page_link_color":null,"food_page_text_color":null,"wine_and_beer_to_go_license":false,"all_alcoholic_to_go_lincense":false,"current_operating_status":"Offering To Go and Dine-in with Full Capacity","contact_tracing_active":false,"contact_tracing_text":"In cooperation with health guidelines for contact tracing, please fill out the form below.","contact_tracing_address_required":false,"collapse_all":false,"deliveries_priority_value":0,"pick_ups_priority_value":0,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":0,"gift_cards_priority_value":4,"jobs_priority_value":0,"food_and_drinks_priority_value":5,"specials_priority_value":0,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":4,"walk_ins_priority_value":5,"collecting_emails_priority_value":4,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":5,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":4,"shopping_cart_type":"TMT","shopping_cart_active":false}'; 1184 var corona_config = corona_config_str != '' ? JSON.parse('{"id":26011,"spot_id":120066,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":"","food_page_instruction_phone":"6176694235","created_at":"2023-04-20T15:27:31.368+00:00","updated_at":"2026-09-01T13:59:24.586+00:00","food_page_button_color":null,"food_page_button_text_color":null,"food_page_link_color":null,"food_page_text_color":null,"wine_and_beer_to_go_license":false,"all_alcoholic_to_go_lincense":false,"current_operating_status":"Offering To Go and Dine-in with Full Capacity","contact_tracing_active":false,"contact_tracing_text":"In cooperation with health guidelines for contact tracing, please fill out the form below.","contact_tracing_address_required":false,"collapse_all":false,"deliveries_priority_value":0,"pick_ups_priority_value":0,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":0,"gift_cards_priority_value":4,"jobs_priority_value":0,"food_and_drinks_priority_value":5,"specials_priority_value":0,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":4,"walk_ins_priority_value":5,"collecting_emails_priority_value":4,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":5,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":4,"shopping_cart_type":"TMT","shopping_cart_active":false}') : null; 1185 1186 1187 //corona instuctions 1188 function show_corona_instructions(text, phone, btnText){ 1189 //format to US number 1190 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1191 1192 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1193 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1194 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1195 }else { 1196 var linkLocation = 'tel:+1'+phone+''; 1197 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1198 } 1199 var appendPhone = 'tel:+1'+phone+''; 1200 //inject html content 1201 if ($('.food-menu-nav').length) { 1202 //new template 1203 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1204 var textColor = rgb2hex($('.section-header').css('color')); 1205 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1206 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1207 fontSize = fontSize + Math.round(fontSize * 0.25); 1208
1209 // var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="color:'+linkColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="font-size:'+fontSize+'px" class="food-menu-nav-item custom-temp-btn hvr-fade active" href="tel:+1'+phone+'">'+btnText+'</a></div>'; 1210 var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="text-decoration: underline;color:'+textColor+';" href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="display: inline-block !important;font-size:'+fontSize+'px" class="food-menu-nav-item custom-temp-btn hvr-fade active" href="'+btnLinkLocation +'">'+btnText+'</a></div>'; 1211 1212 }else { 1213 //old template 1214 var pageEl = $('.tabnav'); 1215 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1216 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1217 1218 var linkTextColor = getContrast50(linkColor); 1219 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1220 fontSize = fontSize + Math.round(fontSize * 0.25); 1221 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1222 1223 // var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';margin-bottom:20px;">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="color:'+linkColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="margin: 20px auto; padding: 10px 50px 10px 30px; cursor: pointer; background-color: '+linkColor+'; background: '+linkColor+'; text-decoration: none; color: '+textColor+'; border: 2px solid '+linkColor+';font-size:'+fontSize+'px;text-transform: '+textTransform+'" href="tel:+1'+phone+'">'+btnText+'</a></div>'; 1224 var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';margin-bottom:20px;">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="text-decoration: underline;color:'+textColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="margin: 20px auto; padding: 10px 30px 10px 30px; cursor: pointer; background-color: '+linkColor+'; background: '+linkColor+'; text-decoration: none; color: '+linkTextColor+'; border: 2px solid '+linkColor+';font-size:'+fontSize+'px;text-transform: '+textTransform+'" href="'+btnLinkLocation+'">'+btnText+'</a></div>'; 1225 1226 } 1227 //html content 1228 pageEl.prepend(html); 1229 } 1230 1231 function rgb2hex(rgb) { 1232 if(typeof rgb !== "undefined"){ 1233 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1234 if (!rgbColor) { 1235 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1236 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1237 } 1238 function hex(x) { 1239 return ("0" + parseInt(x).toString(16)).slice(-2); 1240 } 1241 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1242 } 1243 return rgb; 1244 } 1245 1246 function getContrast50(hexcolor){ 1247 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1248 } 1249 1250 function show_corona_sidebar_instructions(text, phone){ 1251 //format to US number 1252 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1253 var divWidth = 230; 1254 var top = 50; 1255 var linkSize = '1.6em'; 1256 var pSize = $('p').css('font-size'); 1257 var appendPhone = 'tel:+1'+phone+''; 1258 1259 if ($(window).width() < 1600) 1260 var top = 30; 1261 if ($(window).width() < 1200){ 1262 var divWidth = 180; 1263 var linkSize = '1.4em'; 1264 var pSize ='1.1em'; 1265 } 1266 1267 if($('.food-menu-nav').length){ //new template 1268 var textColor = $('.food-menu-nav-item.active').css('color'); 1269 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1270 1271 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1272 var parent = $('.food-menu-page'); 1273 } 1274 else { //old template 1275 var textColor = $('.menu-item-name-traditional').css('color'); 1276 var linkColor = $('.style-traditional .tabnav .nav>
1276li.active>a').css('color'); 1277 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1278 var linkTextColor = getContrast50(linkColor); 1279 } 1280 1281 // $(parent).append('<div id="corona-instructions-sidebar" style="display:none;position:fixed;width:'+divWidth+'px;top:'+top+'vh;right:0;background-color:'+linkColor+';padding:15px;text-align:center;color:'+textColor+';text-transform:uppercase;"><p style="margin:0 0 5px;font-size:'+pSize+';">'+text+'</p><i class="fa fa-phone" aria-hidden="true"></i> <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Food Page Side Element Phone\');" style="font-size:'+linkSize+';color:'+textColor+';" href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></div>'); 1282 $(parent).append('<div id="corona-instructions-sidebar" style="display:none;position:fixed;width:'+divWidth+'px;top:'+top+'vh;right:0;background-color:'+linkColor+';padding:15px;text-align:center;color:'+linkTextColor+';text-transform:uppercase;"><p style="margin:0 0 5px;font-size:'+pSize+';">'+text+'</p><i class="fa fa-phone" aria-hidden="true"></i> <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Food Page Side Element Phone\');this.href=\'' + appendPhone + '\';" style="font-size:'+linkSize+';color:'+linkTextColor+';" href="/call-us/'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></div>'); 1283 1284 //check if resolution is bigger than tablet resolution 1285/* if ($(window).width() > 991) { 1286 //detect scroll 1287 window.onscroll = function (e) { 1288 if ($(window).scrollTop() == 0) { 1289 $('#corona-instructions-sidebar').hide(); 1290 }else { 1291 $('#corona-instructions-sidebar').show(); 1292 } 1293 } 1294 } */ 1295 } 1296 1297 function check_corona_config(config){ 1298 console.log(config) 1299 if (config) { 1300 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1301 if (!config.promote_deliveries && config.promote_pick_up) { 1302 var btnText = 'Call For Pick Up'; 1303 } 1304 if (config.promote_deliveries && !config.promote_pick_up) { 1305 var btnText = 'Call For Delivery'; 1306 } 1307 if (config.promote_deliveries && config.promote_pick_up) { 1308 var btnText = 'Call For Pick Up Or Delivery'; 1309 } 1310 1311 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1312 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1313 var btnText = 'ORDER NOW'; 1314 if($('.food-menu-nav').length){ //new template 1315 var textColor = rgb2hex($('.section-header').css('color')); 1316 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1317 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1318 fontSize = fontSize + Math.round(fontSize * 0.25); 1319 } 1320 else { //old template 1321 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1322 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1323 1324 var linkTextColor = getContrast50(linkColor); 1325 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1326 fontSize = fontSize + Math.round(fontSize * 0.25); 1327 } 1328 show_corona_instructions('For online orders, use our own <a style="text-decoration:underline;color: '+textColor+';" href="https://tmt.spotapps.co/ordering-menu/?spot_id='+config.spot_id+'&images=yes&accordion=true#"> commission free ordering platform! </a> or call:', config.food_page_instruction_phone, btnText); 1329 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1330 } else { 1331 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1332 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1333 } 1334 1335 } 1336 } 1337 } 1338 } 1339 1340 1341 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1342 $( document ).ready(function() { 1343 setTimeout(function(){ 1344 check_corona_config(corona_config); 1345 }, 300); 1346 }); 1347 } 1348 1349 1350 1351 function isPhone(phone){ 1352 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1353 return regex.test(phone); 1354 } 1355 1356 function sendEmail_MT (input_id) { 1357 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1358 1359 const $step = { 1360 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1361 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1362 } 1363 1364 const $field = { 1365 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1366 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1367 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1368 }; 1369 1370 const $error = { 1371 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1372 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1373 }; 1374 1375 if ($field.email.val().trim() === "") { 1376 $error.email 1377 .html("This field is required") 1378 .show(); 1379 } 1380 else if (!isEmail($field.email.val().trim())) { 1381 $error.email 1382 .html("Please use the format â[email protected]â") 1383 .show(); 1384 } else { 1385 $error.email 1386 .html("") 1387 .hide(); 1388 } 1389 1390 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1391 $error.phone 1392 .html("This field is required") 1393 .show(); 1394 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1395 $error.phone 1396 .html("The phone number must contain 10 digits") 1397 .show(); 1398 } else { 1399 $error.phone 1400 .html("") 1401 .hide(); 1402 } 1403 1404 const errorField = $step.form.find('.sh-form-error:visible'); 1405 1406 if (errorField.length > 0) { 1407 const input = errorField.first().next(); 1408 1409 document.activeElement.blur(); 1410 1411 setTimeout(() => { 1412 input.focus(); 1413 }, 160) 1414 1415 return; 1416 } 1417 1418 $loader 1419 .show() 1420 .prev() 1421 .hide(); 1422 1423 $.ajax({ 1424 method: "POST", 1425 url: "https://www.spothopperapp.com/api/spots/120066/contacts/add_with_texting_permission", 1426 crossDomain: true, 1427 dataType: 'json', 1428 data: { 1429 email: $field.email.val().trim(), 1430 phone: $field.phone.val().trim(), 1431 texting_permission: $field.consent.is(':checked'), 1432 }, 1433 success: function (data) { 1434 afterRequestSubmission(data); 1435 }, 1436 error: function () { 1437 afterRequestSubmission("Something went wrong. Please try again later."); 1438 } 1439 }); 1440 1441 function afterRequestSubmission (data) { 1442 $step.form.hide(); 1443 1444 $step.message 1445 .html(data) 1446 .show() 1447 .trigger('focus'); 1448 } 1449 } 1450</script>
1450<script> 1451 var order_config_str = '{"id":19531,"spot_id":120066,"website_id":36619,"domain":"mill77brewing.com","shopping_cart":false,"email_address_for_orders_1":"[email protected]","email_address_for_orders_2":null,"email_address_for_orders_3":null,"delivery_fee":0,"display_tip_options":false,"has_deliveries":true,"has_pick_up":true,"created_at":"2023-04-20T15:34:32+00:00","updated_at":"2023-06-15T15:05:04+00:00","tax_rate":0.0,"contact_phone_for_orders":"(617) 669-4235","pick_up_start_delay":0,"pick_up_end_delay":0,"delivery_start_delay":0,"delivery_end_delay":0,"payment_active":true,"shopping_cart_type":"TMT","collapse_all":false,"minimum_turnaround_time_for_pick_up":30,"minimum_turnaround_time_for_delivery":30,"label_for_texting_permission":"I'd like to get texts about specials, events, and other exclusive offers and announcements not available to the general public","default_tmt_text_permission":true,"texting_permissions_active":true,"use_spothopper_deliveries":false,"admin_enable_spothopper_deliveries":false,"default_pickup_instructions":null,"default_external_delivery_pick_up_time":"30 minutes","doordash_phone_number":null,"pass_processing_fee_to_consumer":false,"strict_card_authorisation":false,"pickup_fee_active":true}'; 1452 var order_config = order_config_str != '' ? JSON.parse(order_config_str) : null; 1453</script>
1453<script async="" src="https://static.spotapps.co/websites/mt/food-menu-plugins-v6.5.js"></script>
1453<script>function addPromotionParamsToTMTLinks() 1454{ 1455 if (sessionStorage.getItem('shUrlParams')) { 1456 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1457 if (!Object.keys(shParams).length) 1458 return; 1459 if(!shParams.source) 1460 return; 1461 $('a').each(function () { 1462 if (this.href.includes('tmt.spotapps.co')) { 1463 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1464 return; 1465 1466 this.href = this.href + '&source=' + shParams.source; 1467 if(shParams.destination) 1468 this.href = this.href + '&destination=' + shParams.destination; 1469 if(shParams.promotion) 1470 this.href = this.href + '&promotion=' + shParams.promotion; 1471 if(shParams.fb_post_id) 1472 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1473 if(shParams.email_post_id) 1474 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1475 } 1476 }) 1477 } 1478} 1479setTimeout(function() { 1480 addPromotionParamsToTMTLinks(); 1481 addFooterToSourceParam(); 1482},600) 1483 1484function addFooterToSourceParam() 1485{ 1486 $('.bottom-link').each(function (){ 1487 if(shouldAddSourceParam(this.href)) 1488 this.href = this.href + '&source=footer'; 1489 }) 1490 $('#sh-multiple-links-content-holder a').each(function (){ 1491 if(shouldAddSourceParam(this.href)) 1492 this.href = this.href + '&source=footer'; 1493 }) 1494} 1495function shouldAddSourceParam(link){ 1496 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1497 return true; 1498 } 1499 return false; 1500} 1501</script>
1501<script> 1502;(async () => { 1503if (typeof window.focusTrap === 'undefined') { 1504 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1505 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1506} 1507 1508document.querySelectorAll('.modal').forEach((element) => { 1509 const trap = window.focusTrap?.createFocusTrap(element, { 1510 allowOutsideClick: true, 1511 }); 1512 1513 $(element).on('shown.bs.modal', () => { 1514 trap?.activate(); 1515 }); 1516 1517 $(element).on('hidden.bs.modal', () => { 1518 trap?.deactivate(); 1519 }); 1520}); 1521 1522async function getScript (source) { 1523 return new Promise((resolve, reject) => { 1524 const script = document.createElement('script'); 1525 script.src = source; 1526 script.async = true; 1527 1528 script.onload = resolve; 1529 script.onerror = reject; 1530 1531 document.head.appendChild(script); 1532 }); 1533} 1534})(); 1535</script>
1535<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1535<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1535<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1535<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1535<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1535<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1535<script>var changes_log_array = {};</script>
1535<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1535</body></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.