1<!DOCTYPE html> 2�<html lang="en"><head><meta content="null" property="og:site_name"/><meta content="http://luckylobsterco.com/catering" property="og:url"/><meta content="website" property="og:type"/><meta content="For 43 years, our founder carried a passion for exceptional New England-style seafood, learning and perfecting the Moran family's recipes right beside them. The Moran family, as emigran..." property="og:description"/><meta content="Lucky Lobster Co - Catering" property="og:title"/><!-- 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-1RMWJE8YMS'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-10-08 13:02:31.681601Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://luckylobsterco.com/catering" 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="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/social_share.jpg" property="og:image"/><meta content="Lucky Lobster Co image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="212236452544226" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Lucky Lobster Co - Catering" name="twitter:title"/><meta content="For 43 years, our founder carried a passion for exceptional New England-style seafood, learning and perfecting the Moran family's recipes right beside them. The Moran family, as emigran..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/social_share.jpg" name="twitter:image"/><title>Lucky Lobster Co - Catering</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/124351_website_v1/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/favicons/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/favicons/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="Lucky Lobster Co" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/favicons/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--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/luckylobsterco--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--com/css/bottom_navigation_v1.css?v1770731024" rel="stylesheet"/><link href="css/custom.css?v1770731024&domain=luckylobsterco.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/luckylobsterco--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]--><link href="https://static.spotapps.co/web/luckylobsterco--com/lib/twitter_x_font_icon/css/twitter_x.css" rel="stylesheet"/><!--[if IE 7]><link rel="stylesheet" href="lib/twitter_x_font_icon/css/twitter_x-ie7.css"><![endif]--><style> 14 15 html { 16 height: auto; 17 min-height: 100%; 18 } 19 .tmt-page.party-background.drink-menu { 20 background-color: #ebebeb; 21 } 22 .tmt-page.party-background.drink-menu { 23 background-image: url('//static.spotapps.co/spots/f3/a994f90df8462bb2fde06348255560/wide_medium'); 24 } 25 .tmt-page.party-background.drink-menu:before { 26 display: block; 27 -webkit-backdrop-filter: blur(5px); 28 backdrop-filter: blur(5px); 29 background-color: rgba(255,255,255,0.8); 30 31 } 32 .tmt-page.party-background.drink-menu>div:first-child:before { 33 display: none; 34 } 35 36 </style>
36<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
36<script> 37function ga_check(){ 38 return true; 39} 40</script>
40<script> 41function universal_ga(action, type, category, ev_action, label){ 42 if(typeof ga === 'function') 43 { 44 if(!(action && label)) 45 ga(action, type, category) 46 else 47 ga(action, type, category, ev_action, label) 48 } 49 50 if(typeof gtag === 'function') 51 { 52 if(!(action && label)) 53 { 54 hash = category 55 ev_label = hash["eventLabel"] 56 var splits = ev_label.match(/.{1,100}/g) ?? []; 57 delete(hash["eventLabel"]) 58 59 if(splits.length <= 1) 60 hash["eventLabel"] = ev_label 61 else 62 { 63 for (let i = 0; i < splits.length; i++) { 64 var key = "eventLabel_"+i 65 hash[key] = splits[i] 66 } 67 } 68 console.log(hash) 69 gtag("event", hash["eventCategory"], hash); 70 } 71 else 72 { 73 var hash = { 74 eventCategory: category, 75 eventAction: ev_action 76 } 77 78 var splits = label.match(/.{1,100}/g) ?? []; 79 if(splits.length <= 1) 80 hash["eventLabel"] = label 81 else 82 { 83 for (let i = 0; i < splits.length; i++) { 84 var key = "eventLabel_"+i 85 hash[key] = splits[i] 86 } 87 } 88 gtag("event", hash["eventCategory"], hash); 89 } 90 } 91} 92</script>
92<script> function getPromotionUrlParams(){ 93 var params_str = sessionStorage.getItem('shUrlParams'); 94 if (params_str != null){ 95 return JSON.parse(params_str); 96 }else{ 97 return {}; 98 } 99 } 100 101 function getPromotionSourceDetails(){ 102 var params_str = localStorage.getItem('promotionSourceDetails'); 103 if (params_str != null){ 104 return JSON.parse(params_str); 105 }else{ 106 return {}; 107 } 108 } 109 110 function getLastEmailVisitInDays(){ 111 var promotionSourceDetails = getPromotionSourceDetails(); 112 if (!promotionSourceDetails['last_visit_email'] ){ 113 return null; 114 } 115 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 116 } 117 118 function getLastSocialVisitInDays(){ 119 var promotionSourceDetails = getPromotionSourceDetails(); 120 if (!promotionSourceDetails['last_visit_social'] ){ 121 return null; 122 } 123 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 124 } 125 126 var shUrlParams = getPromotionUrlParams(); 127 var promotionSourceDetails = getPromotionSourceDetails(); 128 129 new URL(document.location).searchParams.forEach(function(value, paramName){ 130 131 shUrlParams[paramName] = value; 132 133 if (paramName == 'source' && value =='social' ){ 134 promotionSourceDetails['last_visit_social'] = new Date(); 135 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 136 } 137 138 if (paramName == 'source' && value =='email' ){ 139 promotionSourceDetails['last_visit_email'] = new Date(); 140 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 141 } 142 143 }); 144 145 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 146</script>
146<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 147a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 148a.get-directions-footer-link:hover{transform:scale(1.08);} 149@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 150a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu party party-background catering catering-tmt-page tmt-page" id="tmtPage"><div><header style="background-color:#000000;"><style> 151 152.nav-v8 .nav-tab:nth-child(n+7) { 153 -webkit-box-ordinal-group: 3; 154 order: 3; 155} 156 157.navbar.nav-v6.nav-v8 .desktop-navigation .header-logo { 158 top: 0px; 159} 160 161 162.navbar.nav-v6.nav-v8.nav-scroll .desktop-navigation .header-logo { 163 top: 0px; 164} 165 166.navbar.nav-v6 .container { 167 padding-top: 10px; 168 padding-bottom: 10px; 169} 170.navbar.nav-v6.nav-scroll .container { 171 padding-top: 0px; 172 padding-bottom: 0px; 173} 174.navbar.nav-v6 .header-logo img { 175 max-width: 100%; 176} 177 178@media (max-width: 767px) { 179 /* DO NOT change mobile nav height on page scroll */ 180 .navbar.nav-v6 .navbar-header, 181 .navbar.nav-v6.nav-scroll .navbar-header { 182 padding-top: 10px; 183 padding-bottom: 10px; 184 } 185 .navbar.nav-v6.nav-v8 .socialnav, 186 .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 187 margin-top: 10px; 188 } 189 .navbar.nav-v6 .container, 190 .navbar.nav-v6.nav-scroll .container { 191 padding-top: 0; 192 padding-bottom: 0; 193 } 194 .navbar.nav-v6 .header-logo, 195 .navbar.nav-v6.nav-scroll .header-logo { 196 height: 70px; 197 } 198 .navbar.nav-v6 .header-logo img { 199 max-height: 100%; 200 } 201 .navbar.nav-v6.nav-scroll .header-logo img { 202 max-width: 100%; 203 } 204 /* HOME page CHANGE mobile nav height on page scroll */ 205 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 206 body.home-page .navbar.nav-v6 .navbar-header { 207 padding-top: 10px; 208 padding-bottom: 10px; 209 } 210 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 211 padding-top: 0px; 212 padding-bottom: 0px; 213 } 214 body.home-page .navbar.nav-v6.nav-v8 .socialnav { 215 margin-top: 10px; 216 } 217 body.home-page .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 218 margin-top: 0px; 219 } 220 body.home-page .navbar.nav-v6 .container{ 221 padding-top: 0; 222 padding-bottom: 0; 223 } 224 body.home-page .navbar.nav-v6.nav-scroll .container { 225 padding-top: 0; 226 padding-bottom: 0; 227 } 228 body.home-page .navbar.nav-v6 .header-logo { 229 height: 70px; 230 } 231 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 232 height: 50px; 233 } 234 body.home-page .navbar.nav-v6 .header-logo img { 235 max-height: 100%; 236 max-width: 100%; 237 } 238 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 239 max-width: 80%; 240 } 241} 242 243 244.navbar-regular .navbar-collapse.collapse.in { 245 background-color: transparent; 246 width: 100%; 247} 248.navbar.nav-v6 .navbar-tabs { 249 background-color: #fff; 250 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 251 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 252 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 253} 254.navbar.nav-v6.nav-scroll .navbar-tabs { 255 background-color: #fff; 256 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 257 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 258 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 259} 260.drink-menu .navbar.nav-v6 .navbar-tabs { 261 background-color: #fff; 262 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 263 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 264 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 265} 266.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 267 background-color: #fff; 268 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 269 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 270 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 271} 272li.drop-down-link .sub-menu { 273 background-color: #fff; 274 color: #21519B; 275 } 276.nav-scroll li.drop-down-link .sub-menu { 277 background-color: #fff; 278 color: #21519B; 279} 280.drink-menu li.drop-down-link .sub-menu { 281 background-color: #fff; 282 color: #21519B; 283} 284.drink-menu .nav-scroll li.drop-down-link .sub-menu { 285 background-color: #fff; 286 color: #21519B; 287} 288li.drop-down-link .sub-menu a, 289li.drop-down-link div.drop-down { 290 color: #21519B; 291} 292.nav-scroll li.drop-down-link .sub-menu a, 293.nav-scroll li.drop-down-link div.drop-down { 294 color: #21519B; 295} 296.drink-menu li.drop-down-link .sub-menu a, 297.drink-menu li.drop-down-link div.drop-down { 298 color: #21519B; 299} 300.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 301.drink-menu .nav-scroll li.drop-down-link div.drop-down { 302 color: #21519B; 303} 304 305.navbar-regular.nav-v6 .navbar-nav>li>a, 306.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 307.navbar-regular.nav-v6 .navbar-nav>.active>a, 308.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 309.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 310 border: none; 311 background-color: transparent; 312 color: #21519B; 313} 314.navbar-regular.nav-v6 .navbar-nav>li>a { 315 color: #21519B; 316} 317.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 318 color: #21519B; 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: #21519B; 325} 326 327li.drop-down-link .sub-menu a:hover, 328li.drop-down-link .sub-menu a:focus { 329 color: #21519B; 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: #21519B; 334} 335 336.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 337 color: #21519B; 338} 339 340.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 341 background-color: #21519B; 342} 343.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 344 background-color: #21519B; 345} 346.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 347 background-color: #21519B; 348} 349.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 350 background-color: #21519B; 351} 352.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 353.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 354.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 355.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 356.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 357 border: none; 358 color: #21519B; 359} 360.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 361 color: #21519B; 362} 363.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 364 border: none; 365 color: #21519B; 366} 367.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 368.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 369.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 370.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 371 color: #21519B; 372} 373 374.nav-scroll li.drop-down-link .sub-menu a:hover, 375.nav-scroll li.drop-down-link .sub-menu a:focus { 376 color: #21519B; 377} 378.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 379.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 380 color: #21519B; 381} 382 383.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 384 background-color: #21519B; 385} 386.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 387 background-color: #21519B; 388} 389.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 390 background-color: #21519B; 391} 392.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 393 background-color: #21519B; 394} 395.navbar.nav-v6 .header-logo-text{ 396 color: #21519B; 397} 398.navbar.nav-v6.nav-scroll .header-logo-text{ 399 color: #21519B; 400} 401.navbar.nav-v6 .social-icon{ 402 color: #21519B; 403} 404.navbar.nav-v6.nav-scroll .social-icon{ 405 color: #21519B; 406} 407.navbar.nav-v6 .social-square .contact-icon:hover { 408 color: #21519B; 409 background-color: #21519B; 410} 411.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 412 color: #21519B; 413 background-color: #21519B; 414} 415 416.drink-menu .navbar.nav-v6 .header-logo-text{ 417 color: #21519B; 418} 419.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 420 color: #21519B; 421} 422.drink-menu .navbar.nav-v6 .social-icon{ 423 color: #21519B; 424} 425.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 426 color: #21519B; 427} 428.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 429 color: #21519B; 430 background-color: #21519B; 431} 432.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 433 color: #21519B; 434 background-color: #21519B; 435} 436.navbar.nav-v6 .navbar-tabs { 437 border-bottom: 1px solid transparent; 438} 439.navbar.nav-v6.nav-scroll .navbar-tabs { 440 border-bottom: 1px solid transparent; 441} 442.drink-menu .navbar.nav-v6 .navbar-tabs { 443 border-bottom: 1px solid transparent; 444} 445.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 446 border-bottom: 1px solid transparent; 447} 448@media (max-width: 767px) { 449 .navbar.nav-v6 { 450 background-color: #fff; 451 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 452 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 453 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 454 } 455 .navbar.nav-v6.nav-scroll { 456 background-color: #fff; 457 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 458 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 459 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 460 } 461 .drink-menu .navbar.nav-v6 { 462 background-color: #fff; 463 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 464 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 465 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 466 } 467 .drink-menu .navbar.nav-v6.nav-scroll { 468 background-color: #fff; 469 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 470 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 471 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 472 } 473 .navbar.nav-v6 .container, 474 .navbar.nav-v6.nav-scroll .container, 475 .drink-menu .navbar.nav-v6 .container, 476 .drink-menu .navbar.nav-v6.nav-scroll .container { 477 border-bottom: none; 478 } 479 .navbar.nav-v6 .navbar-header { 480 border-bottom: 1px solid transparent; 481 } 482 .navbar.nav-v6.nav-scroll .navbar-header { 483 border-bottom: 1px solid transparent; 484 } 485 .drink-menu .navbar.nav-v6 .navbar-header { 486 border-bottom: 1px solid transparent; 487 } 488 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 489 border-bottom: 1spx solid transparent; 490 } 491 li.drop-down-link .sub-menu, 492 .drink-menu li.drop-down-link .sub-menu { 493 background-color: transparent; 494 } 495 .nav-scroll li.drop-down-link .sub-menu, 496 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 497 background-color: transparent; 498 } 499 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 500 .navbar-regular.nav-v6 .navbar-nav>.active>a, 501 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 502 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 503 background-color: #21519B; 504 color: #21519B; 505 } 506 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 507 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 508 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 509 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 510 background-color: #21519B; 511 color: #21519B; 512 } 513 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 514 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 515 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 516 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 517 background-color: #21519B; 518 color: #21519B; 519 } 520 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 521 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 522 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 523 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 524 background-color: #21519B; 525 color: #21519B; 526 } 527 528 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 529 color: #21519B; 530 } 531 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 532 color: #21519B; 533 } 534 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 535 color: #21519B; 536 } 537 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 538 color: #21519B; 539 } 540} 541</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v7 nav-v8 nav-top navbar-regular navbar-fixed-top" id="navbar" role="navigation"><div id="skip"><a class="visuallyhidden skip-content" href="#content">Skip to main content</a></div><div class="desktop-navigation"><div class="navbar-tabs"><div class="container"><div class="navbar-content"><ul class="nav navbar-nav"><li class="logo-holder"><div class="header-logo logo-top"><img alt="Lucky Lobster Co logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top logo-image" role="link" src="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/logo.png" tabindex="0"/></div><div class="header-logo logo-scroll"><img alt="Lucky Lobster Co logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll logo-image" role="link" src="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/logo.png" tabindex="0"/></div></li><li class="nav-tab nav-menu-page"><a class="" href="/food-menu" id="nav_tab_1_link" target="_self"> 542 543 Menu 544 </a></li><li class="nav-tab"><a class="" href="/drink-menu" id="nav_tab_2_link" target="_self"> 545 546 Drinks 547 </a></li><li class="nav-tab"><a class="" href="/specials" id="nav_tab_3_link" target="_self"> 548 549 Specials 550 </a></li><li class="nav-tab"><a class="" href="/events" id="nav_tab_4_link" target="_self"> 551 552 Events 553 </a></li><li class="nav-tab nav-order-link"><a class="link-order-sh" href="https://order.spoton.com/cph-lucky-lobster-co-25683/dunedin-fl/68f7974081da463f592e9bb0#" id="nav_tab_5_link" target="_self"> 554 555 Order 556 </a></li><li class="nav-tab nav-reservations-link"><a class="link-reservations-sh" href="https://www.opentable.com/r/lucky-lobster-co-dunedin#" id="nav_tab_6_link" target="_self"> 557 558 Reserve 559 </a></li><li class="nav-tab nav-parties-link"><a class="link-parties-sh" href="/party#" id="nav_tab_7_link" target="_self"> 560 561 Parties 562 </a></li><li class="nav-tab active nav-catering-link"><a class="link-catering-sh" href="/catering#" id="nav_tab_8_link" target="_self"> 563 564 Catering 565 </a></li><li class="nav-tab gift-cards-nav"><a class="gift-cards-link" href="https://luckylobsterco.shop.securetree.com/" id="nav_tab_10_link" target="_blank"> 566 567 Gift Cards 568 </a></li><li class="nav-tab helper-tab"><a href="#" id="hidden_tab_r" target="_self"><span class="visuallyhidden">Go to top</span></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/212236452544226" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/luckylobsterco" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?sca_esv=6c7f7ca6e8ee6a34&q=Lucky+Lobster+Co+Dunedin&si=AMgyJEtREmoPL4P1I5IDCfuA8gybfVI2d5Uj7QMwYCZHKDZ-E_uUQOKMPd09ghTrbLPhY62hvw8p5mKXYAMCq-3k6NLarMOePFvxz0vUv3FMUr4pBT3979CHOp5060kzVYyhUd1erk7ggov4mPpOj-vLfI7w8_u0pA%3D%3D&sa=X&sqi=2&ved=2ahUKEwix89-7rNOPAxX1HRAIHRBDJc0QrrQLegQIHRAA&biw=1707&bih=811&dpr=1.13#lrd=0x88c2f162d1f8f48d:0x70847908f8e35d3c,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul></div></div></div></div><div class="mobile-navigation"><div class="container"><a class="header-logo logo-top" href="/#"><img alt="Lucky Lobster Co logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Lucky Lobster Co logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/124351_website_v1/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/212236452544226" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/luckylobsterco" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?sca_esv=6c7f7ca6e8ee6a34&q=Lucky+Lobster+Co+Dunedin&si=AMgyJEtREmoPL4P1I5IDCfuA8gybfVI2d5Uj7QMwYCZHKDZ-E_uUQOKMPd09ghTrbLPhY62hvw8p5mKXYAMCq-3k6NLarMOePFvxz0vUv3FMUr4pBT3979CHOp5060kzVYyhUd1erk7ggov4mPpOj-vLfI7w8_u0pA%3D%3D&sa=X&sqi=2&ved=2ahUKEwix89-7rNOPAxX1HRAIHRBDJc0QrrQLegQIHRAA&biw=1707&bih=811&dpr=1.13#lrd=0x88c2f162d1f8f48d:0x70847908f8e35d3c,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul><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><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" nav-menu-page"><a class="" href="/food-menu" id="mobile_nav_tab_1_link" target="_self"> 569 Menu 570 571 </a></li><li class=" "><a class="" href="/drink-menu" id="mobile_nav_tab_2_link" target="_self"> 572 Drinks 573 574 </a></li><li class=" "><a class="" href="/specials" id="mobile_nav_tab_3_link" target="_self"> 575 Specials 576 577 </a></li><li class=" "><a class="" href="/events" id="mobile_nav_tab_4_link" target="_self"> 578 Events 579 580 </a></li><li class=" nav-order-link"><a class="link-order-sh" href="https://order.spoton.com/cph-lucky-lobster-co-25683/dunedin-fl/68f7974081da463f592e9bb0#" id="mobile_nav_tab_5_link" target="_self"> 581 Order 582 583 </a></li><li class=" nav-reservations-link"><a class="link-reservations-sh" href="https://www.opentable.com/r/lucky-lobster-co-dunedin#" id="mobile_nav_tab_6_link" target="_self"> 584 Reserve 585 586 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/party#" id="mobile_nav_tab_7_link" target="_self"> 587 Parties 588 589 </a></li><li class="active nav-catering-link"><a class="link-catering-sh" href="/catering#" id="mobile_nav_tab_8_link" target="_self"> 590 Catering 591 592 </a></li><li class=" gift-cards-nav"><a class="gift-cards-link" href="https://luckylobsterco.shop.securetree.com/" id="mobile_nav_tab_10_link" target="_blank"> 593 Gift Cards 594 595 </a></li></ul></div></div></div></nav></header><main id="content" role="main"><article><div class="pagecontent"><div class="tabs-container"><div class="scrolling"><h1 style="display: none;">Catering</h1><div class="tmt-iframe-holder"><div class="custom-loader loader-1" id="loader"></div><iframe allowfullscreen="allowfullscreen" class="tmt-iframe hide-iframe" frameborder="0" height="100%" id="pageIframe" onload="iframeTMTpageInit()" scrolling="no" src="//tmt.spotapps.co/catering?spot_id=124351&source=pop_up&destination=catering&promotion=catering" title="Catering" width="100%"></iframe></div></div></div></div></article></main></div><style type="text/css"> 596 .navbar-fixed-bottom.nav-v1 { 597 bottom: -100px; 598 } 599 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 600 background-color: #fff; 601 } 602 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 603 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 604 fill: #000; 605 } 606 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 607 color: #2D5FA2; 608 } 609 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 610 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 611 color: #000; 612 } 613</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://order.spoton.com/cph-lucky-lobste
613r-co-25683/dunedin-fl/68f7974081da463f592e9bb0" id="bottom_link_4" target="_self"> 614 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://www.opentable.com/r/lucky-lobster-co-dunedin" id="bottom_link_3" target="_self"> 615 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/party" id="bottom_link_5" target="_self"> 616 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/catering" id="bottom_link_6" target="_self"> 617 Catering </a></li></ul></div></nav>
617<script src="https://static.spotapps.co/web/luckylobsterco--com/lib/jquery/jquery.min.js"></script>
617<script src="https://static.spotapps.co/web/luckylobsterco--com/lib/bootstrap/js/bootstrap.min.js"></script>
617<script src="https://static.spotapps.co/web/luckylobsterco--com/js/tmt_script.js"></script>
617<script> 618 619 $("#bottom_link_4").on("click", function(){ 620 if (ga_check()) 621 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 622 }); 623 $("#bottom_link_3").on("click", function(){ 624 if (ga_check()) 625 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 626 }); 627 $("#bottom_link_5").on("click", function(){ 628 if (ga_check()) 629 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 630 }); 631 $("#bottom_link_6").on("click", function(){ 632 if (ga_check()) 633 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 634 }); 635 $('.header-logo, .nav-v2-home-btn').click(function(event) { 636 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 637 event.preventDefault(); 638 var windowScrollTop = $(window).scrollTop(); 639 if(windowScrollTop > 150) { 640 $('html, body').animate({scrollTop: 0}, 750); 641 } 642 } 643 }); 644 645$(".banner-section a.banner-pin").click(function(e) { 646 // target element id 647 var id = $(this).attr('href'); 648 649 // target element 650 var section = $(id); 651 if (section.length === 0) { 652 return; 653 } 654 655 // prevent standard hash navigation (avoid blinking in IE) 656 e.preventDefault(); 657 658 // top position relative to the document 659 var pos = section.offset().top - 100 + 10; 660 661 // animated top scrolling 662 $('body, html').animate({scrollTop: pos}, 750); 663}); 664 665$(document).ready(function() { 666 var navHeight = $('nav.navbar').height(); 667 $('html').css("scroll-padding-top", navHeight); 668}); 669 670var called_v8_scroll = false; 671 672$(document).on('scroll', function (e) { 673 if($(document).scrollTop() > 0) { 674 $('.navbar.nav-v7').addClass('nav-scroll'); 675 $('.navbar.nav-v7').removeClass('nav-top'); 676 if (2 !=2 && 2 == 2) { 677 if(!called_v8_scroll) { 678 setTimeout(function(){ 679 setHelperTabWidth(); 680 called_v8_scroll = true; 681 }, 300); 682 } 683 } 684 }else { 685 $('.navbar.nav-v7').removeClass('nav-scroll'); 686 $('.navbar.nav-v7').addClass('nav-top'); 687 if (2 != 2 && 2 == 2) { 688 $('#hidden_tab_r').width(0); 689 $('#hidden_tab_l').width(0); 690 $('.navbar-nav li.nav-tab').first().css('margin-left', '0px'); 691 $('.navbar-nav li.nav-tab').last().css('margin-right', '0px'); 692 called_v8_scroll = false; 693 } 694 } 695}); 696 697$(function() { 698 setDropDownMenuWidth(); 699 700 function setDropDownMenuWidth() { 701 var tabs_list = $('.navbar-tabs .navbar-nav'); 702 703 $(tabs_list).find('li.drop-down-link').each(function() { 704 var sub_menu_width = $(this).outerWidth(true); 705 if (sub_menu_width < 100) { 706 sub_menu_width = 100; 707 } 708 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 709 }); 710 } 711 712 $( window ).resize(function() { 713 setDropDownMenuWidth(); 714 }); 715 $( window ).load(function() { 716 setDropDownMenuWidth(); 717 }); 718 719}); 720 721 722 723$( '.drop-down-link .drop-down' ).click(function(event) { 724 event.preventDefault(); 725 event.stopPropagation(); 726 727 var drop_down = $(this).closest('.drop-down-link'); 728 var drop_down_a = $(this); 729 730 if($(drop_down_a).attr("aria-expanded") == "true") { 731 $(drop_down_a).attr("aria-expanded",false) 732 } else { 733 $(drop_down_a).attr("aria-expanded",true) 734 } 735 736 737 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 738 739 if ( $(sub_menu).is( ':hidden' ) ) { 740 $(sub_menu).slideDown(); 741 $(drop_down).addClass('active'); 742 } else { 743 $(sub_menu).slideUp(); 744 $(drop_down).removeClass('active'); 745 } 746}); 747 748//// Set width for corresponding helper tab or margin for first or last nav tab depending on calculeted width sum of left and right tabs 749function setHelperTabWidth() { 750 var nav_tab_width; 751 var tabs_left_width = 0; 752 var tabs_right_width = 0; 753 754 var full_nav_tab_width; 755 var full_tabs_left_width = 0; 756 var full_tabs_right_width = 0; 757 758 $('li.nav-tab').each(function( index, element ) { 759 760 nav_tab_width = $(element).find('a').width(); 761 full_nav_tab_width = $(element).outerWidth(true); 762 763 if (!($(element).hasClass('helper-tab'))) { 764 if (index<5) { 765 tabs_left_width += nav_tab_width; 766 full_tabs_left_width += full_nav_tab_width; 767 } else { 768 tabs_right_width += nav_tab_width; 769 full_tabs_right_width += full_nav_tab_width; 770 } 771 } else { 772 if(index == 0) { 773 full_tabs_left_width += full_nav_tab_width; 774 } else { 775 full_tabs_right_width += full_nav_tab_width; 776 } 777 } 778 779 }); 780 781 var tabs_width_differance = tabs_left_width - tabs_right_width; 782 var helper_value = Math.abs(tabs_width_differance); 783 var full_tabs_width_differance = full_tabs_left_width - full_tabs_right_width; 784 785 // if sum of left tabs width is smaller than rigth tabs width tabs_width_differance is negative set margin left for first tab 786 if (full_tabs_width_differance != 0) { 787 if (tabs_width_differance < 0) { 788 $('.navbar-nav li.nav-tab').first().css('margin-left', helper_value+'px'); 789 } else { 790 $('.navbar-nav li.nav-tab').last().css('margin-right', helper_value+'px'); 791 } 792 } 793 794} 795 796$(function() { 797 setNavTabsWidth(); 798 799 function setNavTabsWidth() { 800 var container_width = $('.navbar-tabs .container').outerWidth(); 801 var social_icons_width = $('.navbar-tabs .socialnav').outerWidth(true); 802 var reduced_tabs_width = container_width - (2 * social_icons_width) -10; 803 804 $('.navbar-tabs .navbar-content').width(reduced_tabs_width); 805 806 // helper value set in case logo is centered and tabs width sum on the left and on the right are not the same 807 if (2 == 2) { 808 setTimeout(function(){ 809 setHelperTabWidth(); 810 $('.navbar.nav-v8 .desktop-navigation .navbar-nav').css('opacity', '1'); 811 }, 300); 812 813 } 814 } 815 816 $( window ).resize(function() { 817 setNavTabsWidth(); 818 }); 819 820 $('.nav a:not(.drop-down)').on('click', function () { 821 $('.navbar-collapse').collapse('hide'); 822 }); 823 824}); 825 826$('.logo-holder .logo-image').click(function(event) { 827 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 828 var windowScrollToTop = $(window).scrollTop(); 829 if(windowScrollToTop > 150) { 830 $('html, body').animate({scrollTop: 0}, 750); 831 } 832 } else { 833 window.location = "/"; 834 } 835}); 836 setTimeout(function(){ 837 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 838 }, 4000); 839</script>
839<script> 840(function() { 841 var name = "Lucky Lobster Co"; 842 var pid = "ChIJjfT40WLxwogRPF3j-Ah5hHA"; 843 function build_url() { 844 var q = encodeURIComponent(name).replace(/'/g, "%27"); 845 return "https://www.google.com/maps/search/?api=1" 846 + "&query=" + q 847 + "&query_place_id=" + encodeURIComponent(pid); 848 } 849 window.google_map_url = build_url(); 850 window.open_google_map = function() { 851 window.open(build_url(), "_blank"); 852 }; 853})(); 854</script>
854<script> 855 856 var spot_id = 124351; 857 var sh_generic_form_params=JSON.parse('{}'); 858 859 if (false){ 860 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 861 } 862 863 if (navigator.userAgent.match(/iPhone/i) 864 || navigator.userAgent.match(/iPad/i) 865 || navigator.userAgent.match(/iPod/i)){ 866 $(document).ready(function(){ 867 document.body.className += " " + "webkit-mobile-body"; 868 }); 869 } 870 871 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 872 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')){ 873 $("a[href^='/']").each(function(){ 874 if (this.href.indexOf('domain=') == -1){ 875 var sh_internal_url = new URL(this.href); 876 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 877 this.href = sh_internal_url.toString(); 878 } 879 }) 880 } 881 882 883 function cta_link_matches_href(href, url){ 884 var domain = 'luckylobsterco.com'; 885 if(typeof url === 'undefined'){ 886 return false; 887 } 888 var partsOfURL = url.split(domain); 889 if (partsOfURL.length != 2){ 890 return href == url; 891 }else{ 892 var urlPath = partsOfURL[1]; 893 if (urlPath.substring(0,1) == "/"){ 894 urlPath = urlPath.substring(1,urlPath.length); 895 } 896 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 897 } 898 } 899 900 var all_cta_links = [{"id":1624372,"spot_id":124351,"url":"https://luckylobsterco.com/events","cta_link_type":"events","created_at":"2025-10-16T09:56:43+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","position":null},{"id":1624371,"spot_id":124351,"url":"https://luckylobsterco.com/specials","cta_link_type":"specials","created_at":"2025-10-16T09:56:43+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","position":null},{"id":1624374,"spot_id":124351,"url":"https://luckylobsterco.com/food-menu","cta_link_type":"food_menu","created_at":"2025-10-16T09:56:43+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","position":null},{"id":1592782,"spot_id":124351,"url":"https://www.opentable.com/r/lucky-lobster-co-dunedin","cta_link_type":"reservations","created_at":"2025-09-23T13:00:23+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Reserve","position":1},{"id":1542028,"spot_id":124351,"url":"https://luckylobsterco.com/-catering","cta_link_type":"catering","created_at":"2025-08-08T13:06:31+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":3},{"id":1542029,"spot_id":124351,"url":"https://luckylobsterco.com/-party","cta_link_type":"private_parties","created_at":"2025-08-08T13:06:31+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":2},{"id":1624373,"spot_id":124351,"url":"https://luckylobsterco.com/drink-menu","cta_link_type":"drink_menu","created_at":"2025-10-16T09:56:43+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","position":null},{"id":1583538,"spot_id":124351,"url":"https://order.spoton.com/cph-lucky-lobster-co-25683/dunedin-fl/68f7974081da463f592e9bb0","cta_link_type":"order","created_at":"2025-09-16T09:05:17+00:00","updated_at":"2026-02-10T22:10:40+00:00","made_of_food":false,"link_name":"ORDER","target":null,"website_footer_label":"Order","position":0},{"id":1583691,"spot_id":124351,"url":"https://luckylobsterco.shop.securetree.com/","cta_link_type":"gift_cards","created_at":"2025-09-16T11:05:05+00:00","updated_at":"2026-02-10T22:10:27+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Gift Cards","position":5}]; 901 902 function find_cta_link(href) { 903 for (var i=0; i< all_cta_links.length; i++){ 904 var cta_link = all_cta_links[i]; 905 if ( cta_link_matches_href(href, cta_link.url)){ 906 return cta_link; 907 } 908 } 909 } 910 911 function find_cta_links(href) { 912 var cta_links = [] 913 for (var i=0; i< all_cta_links.length; i++){ 914 var cta_link = all_cta_links[i]; 915 if ( cta_link_matches_href(href, cta_link.url)){ 916 cta_links.push(cta_link); 917 } 918 } 919 return cta_links; 920 } 921 922 923 function get_current_page_cta_link_types(){ 924 var types = []; 925 var cta_links = find_cta_links(document.location.href); 926 for (var i=0; i<cta_links.length; i++){ 927 types.push(cta_links[i].cta_link_type); 928 } 929 return types; 930 } 931 932 933 function is_food_menu_page(){ 934 var cta_link_types = get_current_page_cta_link_types(); 935 for (var i=0; i<cta_link_types.length; i++){ 936 if ('food_menu' == cta_link_types[i]) 937 return true; 938 } 939 return false;
940 } 941 942 943 function get_form_cat_from_cta(){ 944 var cta_link = find_cta_link(document.location.href); 945 if (cta_link == null) { 946 return null; 947 } 948 if (cta_link.cta_link_type == 'private_parties'){ 949 return 'private_party'; 950 }else if (cta_link.cta_link_type == 'reservations'){ 951 return 'reservation'; 952 }else if (cta_link.cta_link_type == 'catering'){ 953 return 'catering'; 954 }else if (cta_link.cta_link_type == 'job_listing'){ 955 return 'job_listings'; 956 }else if (cta_link.cta_link_type == 'gift_cards'){ 957 return 'gift_cards'; 958 } 959 return null; 960 } 961 962 function element_has_events_defined(elem){ 963 if ($._data(elem, "events") === undefined){ 964 return false; 965 } 966 return true; 967 } 968 969 function create_ga_events_for_cta_clicks(){ 970 if (typeof $ === 'function'){ 971 972 var cta_link_of_the_page = find_cta_link(location.href); 973 974 975 $("a").each(function(index, elem){ 976 var href = $(elem).attr('href'); 977 978 if (href === undefined ){ 979 return; 980 } 981 982 if (href.substring(0,4) == 'tel:'){ 983 if (!element_has_events_defined(elem)){ // not footer links 984 $(elem).on("click", function(){ 985 universal_ga('send', 'event', { 986 eventCategory: 'Button', 987 eventAction: 'Click', 988 eventLabel: 'Phone', 989 transport: 'beacon' 990 }); 991 }); 992 993 if (cta_link_of_the_page){ 994 $(elem).on("click", function(){ 995 universal_ga('send', 'event', { 996 eventCategory: 'Button', 997 eventAction: 'Click', 998 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 999 transport: 'beacon' 1000 }); 1001 }); 1002 } 1003 } else { 1004 if (cta_link_of_the_page){ 1005 $(elem).on("click", function(){ 1006 universal_ga('send', 'event', { 1007 eventCategory: 'Button', 1008 eventAction: 'Click', 1009 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1010 transport: 'beacon' 1011 }); 1012 }); 1013 } 1014 } 1015 1016 1017 }else{ 1018 var cta_link = find_cta_link(href); 1019 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1020 // console.log("bottom link detected"); 1021 }else{ 1022 if (cta_link != null){ 1023 $(elem).on("click", function(){ 1024 universal_ga('send', 'event', { 1025 eventCategory: 'Website Link', 1026 eventAction: 'Click', 1027 eventLabel: cta_link.cta_link_type, 1028 transport: 'beacon' 1029 }); 1030 }); 1031 } 1032 } 1033 } 1034 1035 1036 }); 1037 } 1038 } 1039 1040 if (typeof angular === "undefined") { 1041 create_ga_events_for_cta_clicks(); 1042 } else { 1043 angular.element(document).ready(function () { 1044 create_ga_events_for_cta_clicks(); 1045 }); 1046 } 1047 1048 1049 function triggerShowFooterEvents(){ 1050 if (window.screen.availWidth < 768){ 1051 universal_ga('send', 'event', { 1052 eventCategory: 'Mobile Footer', 1053 eventAction: 'View', 1054 eventLabel: '', 1055 transport: 'beacon' 1056 }); 1057 } 1058 } 1059 1060 1061 1062 1063 //////////// 1064 function smartFooterV2() 1065 { 1066 var list= document.getElementsByClassName("bottom-list-item"); 1067 if (!list) return; 1068 1069 if (document.getElementById("bottom-navbar") == null){ 1070 return; 1071 } 1072 1073 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1074 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1075 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1076 1077 bottomNav.innerHTML = ''; 1078 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1079 linksWithPosition.sort(function(a,b) { 1080 return a.position - b.position; 1081 }); 1082 1083 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1084 1085 linksWithPosition.forEach((e, i) => { 1086 var target = e.target || getUrlTarget(e.url); 1087 bottomNav.insertAdjacentHTML('beforeend', 1088 `<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>`); 1089 }) 1090 1091 var intervalCount = 0 1092 var interval = setInterval(() => { 1093 if(intervalCount == 50){ 1094 clearInterval(interval); 1095 } 1096 removeOverflowingFooterLinks(); 1097 intervalCount ++; 1098 }, 200); 1099 1100 $('.smart-footer-link').on("click", function(){ 1101 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1102 shUrlParams['source'] = 'footer'; 1103 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1104 } 1105 1106 var visibleLinks = $('.smart-footer-link').map(function (e) { 1107 return $(this).data('type'); 1108 }).toArray().join(','); 1109 1110 universal_ga('send', 'event', { 1111 eventCategory: 'Button', 1112 eventAction: 'Click_footer_2', 1113 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1114 transport: 'beacon' 1115 }); 1116 }); 1117 } 1118 1119 function removeOverflowingFooterLinks(){ 1120 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1121 var width_sum = 0; 1122 1123 bottomNavLinks.forEach(e => { 1124 width_sum += e.getBoundingClientRect().width; 1125 if ((width_sum) > window.innerWidth) { 1126 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1127 e.remove(); 1128 } 1129 }); 1130 } 1131 1132 function getUrlTarget(url){ 1133 if(url.startsWith('tel')){ 1134 return '_self'; 1135 } 1136 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1137 return '_self'; 1138 } 1139 return '_blank'; 1140 } 1141 1142 function npb() 1143 { 1144 var list= document.getElementsByClassName("bottom-list-item"); 1145 if (!list) return; 1146 1147 if (document.getElementById("bottom-navbar") == null){ 1148 return; 1149 } 1150 1151 var url = "" 1152 for (var i=0; i < all_cta_links.length; i++) 1153 { 1154 if (all_cta_links[i].cta_link_type == "order"){ 1155 url = all_cta_links[i].url; 1156 } 1157 } 1158 1159 if ( url == ""){ 1160 return; 1161 } 1162 1163 for (i=0; i < list.length; i++) 1164 { 1165 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1166 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1167 1168 }; 1169 1170 var item = list[list.length-1] 1171 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1172 var width_sum = 0; 1173 for (i=0; i < list.length; i++) { 1174 width_sum += list[i].getBoundingClientRect().width; 1175 } 1176 1177 var item = list[list.length-1] 1178 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1179 1180 item.firstChild.text = "Order"; 1181 item.firstChild.href = url; 1182 item.firstChild.id = "bottom_link_" + list.length; 1183 1184 $(item.firstChild).on("click", function(){ 1185 1186 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1187 shUrlParams['source'] = 'footer'; 1188 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1189 } 1190 1191 universal_ga('send', 'event', { 1192 eventCategory: 'Button', 1193 eventAction: 'Click', 1194 eventLabel: 'Plan B-2 Order', 1195 transport: 'beacon' 1196 }); 1197 }); 1198 1199 1200 } 1201 1202function activateSmartFooter(){ 1203 var smart_footer_active = true; 1204 var smart_footer_version = 2; 1205 var man_bottom_active = false;
1206 if(window.location.hash == '#smartFooterV2=enabled'){ 1207 smartFooterV2(); 1208 return; 1209 } 1210 if (smart_footer_active && !man_bottom_active){ 1211 if(smart_footer_version == 2 ){ 1212 smartFooterV2(); 1213 }else { 1214 npb(); 1215 } 1216 } 1217 } 1218 1219 activateSmartFooter(); 1220 1221 var corona_config_str = ''; 1222 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 1223 1224 1225 //corona instuctions 1226 function show_corona_instructions(text, phone, btnText){ 1227 //format to US number 1228 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1229 1230 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1231 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1232 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1233 }else { 1234 var linkLocation = 'tel:+1'+phone+''; 1235 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1236 } 1237 var appendPhone = 'tel:+1'+phone+''; 1238 //inject html content 1239 if ($('.food-menu-nav').length) { 1240 //new template 1241 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1242 var textColor = rgb2hex($('.section-header').css('color')); 1243 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1244 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1245 fontSize = fontSize + Math.round(fontSize * 0.25); 1246 1247 // 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>'; 1248 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>'; 1249 1250 }else { 1251 //old template 1252 var pageEl = $('.tabnav'); 1253 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1254 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1255 1256 var linkTextColor = getContrast50(linkColor); 1257 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1258 fontSize = fontSize + Math.round(fontSize * 0.25); 1259 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1260 1261 // 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>';
1262 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>'; 1263 1264 } 1265 //html content 1266 pageEl.prepend(html); 1267 } 1268 1269 function rgb2hex(rgb) { 1270 if(typeof rgb !== "undefined"){ 1271 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1272 if (!rgbColor) { 1273 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1274 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1275 } 1276 function hex(x) { 1277 return ("0" + parseInt(x).toString(16)).slice(-2); 1278 } 1279 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1280 } 1281 return rgb; 1282 } 1283 1284 function getContrast50(hexcolor){ 1285 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1286 } 1287 1288 function show_corona_sidebar_instructions(text, phone){ 1289 //format to US number 1290 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1291 var divWidth = 230; 1292 var top = 50; 1293 var linkSize = '1.6em'; 1294 var pSize = $('p').css('font-size'); 1295 var appendPhone = 'tel:+1'+phone+''; 1296 1297 if ($(window).width() < 1600) 1298 var top = 30; 1299 if ($(window).width() < 1200){ 1300 var divWidth = 180; 1301 var linkSize = '1.4em'; 1302 var pSize ='1.1em'; 1303 } 1304 1305 if($('.food-menu-nav').length){ //new template 1306 var textColor = $('.food-menu-nav-item.active').css('color'); 1307 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1308 1309 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1310 var parent = $('.food-menu-page'); 1311 } 1312 else { //old template 1313 var textColor = $('.menu-item-name-traditional').css('color'); 1314 var linkColor = $('.style-traditional .tabnav .nav>li.active>a').css('color'); 1315 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1316 var linkTextColor = getContrast50(linkColor); 1317 } 1318 1319 // $(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>'); 1320 $(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>'); 1321 1322 //check if resolution is bigger than tablet resolution 1323/* if ($(window).width() > 991) { 1324 //detect scroll 1325 window.onscroll = function (e) { 1326 if ($(window).scrollTop() == 0) { 1327 $('#corona-instructions-sidebar').hide(); 1328 }else { 1329 $('#corona-instructions-sidebar').show(); 1330 } 1331 } 1332 } */ 1333 } 1334 1335 function check_corona_config(config){ 1336 console.log(config) 1337 if (config) { 1338 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1339 if (!config.promote_deliveries && config.promote_pick_up) { 1340 var btnText = 'Call For Pick Up'; 1341 } 1342 if (config.promote_deliveries && !config.promote_pick_up) { 1343 var btnText = 'Call For Delivery'; 1344 } 1345 if (config.promote_deliveries && config.promote_pick_up) { 1346 var btnText = 'Call For Pick Up Or Delivery'; 1347 } 1348 1349 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1350 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1351 var btnText = 'ORDER NOW'; 1352 if($('.food-menu-nav').length){ //new template 1353 var textColor = rgb2hex($('.section-header').css('color')); 1354 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1355 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1356 fontSize = fontSize + Math.round(fontSize * 0.25); 1357 } 1358 else { //old template 1359 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1360 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>
1360li.active>a').css('color')); 1361 1362 var linkTextColor = getContrast50(linkColor); 1363 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1364 fontSize = fontSize + Math.round(fontSize * 0.25); 1365 } 1366 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); 1367 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1368 } else { 1369 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1370 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1371 } 1372 1373 } 1374 } 1375 } 1376 } 1377 1378 1379 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1380 $( document ).ready(function() { 1381 setTimeout(function(){ 1382 check_corona_config(corona_config); 1383 }, 300); 1384 }); 1385 } 1386 1387 1388 1389 function isPhone(phone){ 1390 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1391 return regex.test(phone); 1392 } 1393 1394 function sendEmail_MT (input_id) { 1395 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1396 1397 const $step = { 1398 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1399 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1400 } 1401 1402 const $field = { 1403 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1404 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1405 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1406 }; 1407 1408 const $error = { 1409 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1410 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1411 }; 1412 1413 if ($field.email.val().trim() === "") { 1414 $error.email 1415 .html("This field is required") 1416 .show(); 1417 } 1418 else if (!isEmail($field.email.val().trim())) { 1419 $error.email 1420 .html("Please use the format â[email protected]â") 1421 .show(); 1422 } else { 1423 $error.email 1424 .html("") 1425 .hide(); 1426 } 1427 1428 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1429 $error.phone 1430 .html("This field is required") 1431 .show(); 1432 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1433 $error.phone 1434 .html("The phone number must contain 10 digits") 1435 .show(); 1436 } else { 1437 $error.phone 1438 .html("") 1439 .hide(); 1440 } 1441 1442 const errorField = $step.form.find('.sh-form-error:visible'); 1443 1444 if (errorField.length > 0) { 1445 const input = errorField.first().next(); 1446 1447 document.activeElement.blur(); 1448 1449 setTimeout(() => { 1450 input.focus(); 1451 }, 160) 1452 1453 return; 1454 } 1455 1456 $loader 1457 .show() 1458 .prev() 1459 .hide(); 1460 1461 $.ajax({ 1462 method: "POST", 1463 url: "https://www.spothopperapp.com/api/spots/124351/contacts/add_with_texting_permission", 1464 crossDomain: true, 1465 dataType: 'json', 1466 data: { 1467 email: $field.email.val().trim(), 1468 phone: $field.phone.val().trim(), 1469 texting_permission: $field.consent.is(':checked'), 1470 }, 1471 success: function (data) { 1472 afterRequestSubmission(data); 1473 }, 1474 error: function () { 1475 afterRequestSubmission("Something went wrong. Please try again later."); 1476 } 1477 }); 1478 1479 function afterRequestSubmission (data) { 1480 $step.form.hide(); 1481 1482 $step.message 1483 .html(data) 1484 .show() 1485 .trigger('focus'); 1486 } 1487 } 1488</script>
1488<script>function addPromotionParamsToTMTLinks() 1489{ 1490 if (sessionStorage.getItem('shUrlParams')) { 1491 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1492 if (!Object.keys(shParams).length) 1493 return; 1494 if(!shParams.source) 1495 return; 1496 $('a').each(function () { 1497 if (this.href.includes('tmt.spotapps.co')) { 1498 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1499 return; 1500 1501 this.href = this.href + '&source=' + shParams.source; 1502 if(shParams.destination) 1503 this.href = this.href + '&destination=' + shParams.destination; 1504 if(shParams.promotion) 1505 this.href = this.href + '&promotion=' + shParams.promotion; 1506 if(shParams.fb_post_id) 1507 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1508 if(shParams.email_post_id) 1509 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1510 } 1511 }) 1512 } 1513} 1514setTimeout(function() { 1515 addPromotionParamsToTMTLinks(); 1516 addFooterToSourceParam(); 1517},600) 1518 1519function addFooterToSourceParam() 1520{ 1521 $('.bottom-link').each(function (){ 1522 if(shouldAddSourceParam(this.href)) 1523 this.href = this.href + '&source=footer'; 1524 }) 1525 $('#sh-multiple-links-content-holder a').each(function (){ 1526 if(shouldAddSourceParam(this.href)) 1527 this.href = this.href + '&source=footer'; 1528 }) 1529} 1530function shouldAddSourceParam(link){ 1531 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1532 return true; 1533 } 1534 return false; 1535} 1536</script>
1536<script> 1537;(async () => { 1538if (typeof window.focusTrap === 'undefined') { 1539 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1540 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1541} 1542 1543document.querySelectorAll('.modal').forEach((element) => { 1544 const trap = window.focusTrap?.createFocusTrap(element, { 1545 allowOutsideClick: true, 1546 }); 1547 1548 $(element).on('shown.bs.modal', () => { 1549 trap?.activate(); 1550 }); 1551 1552 $(element).on('hidden.bs.modal', () => { 1553 trap?.deactivate(); 1554 }); 1555}); 1556 1557async function getScript (source) { 1558 return new Promise((resolve, reject) => { 1559 const script = document.createElement('script'); 1560 script.src = source; 1561 script.async = true; 1562 1563 script.onload = resolve; 1564 script.onerror = reject; 1565 1566 document.head.appendChild(script); 1567 }); 1568} 1569})(); 1570</script>
1570<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1570<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1570<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1570<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1570<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1570<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1570<script>var changes_log_array = {};</script>
1570<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1570</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.