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-6JMDJKGLES'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-30 19:12:47.224546Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://salspizzabville.com/reservations" 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="Sal's Pizza & Restaurant - Reservations" property="og:title"/><meta content="website" property="og:type"/><meta content="http://salspizzabville.com/-reservations" property="og:url"/><meta content="From the beginning of their relationship, Sal and Meow LoMedico quickly discovered they had the same dreams: To have a family and a full service restaurant they could call their own. After t..." property="og:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/social.jpg" property="og:image"/><meta content="Sal's Pizza & Restaurant image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="190472807642416" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Sal's Pizza & Restaurant - Reservations" name="twitter:title"/><meta content="From the beginning of their relationship, Sal and Meow LoMedico quickly discovered they had the same dreams: To have a family and a full service restaurant they could call their own. After t..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/social.jpg" name="twitter:image"/><title>Sal's Pizza & Restaurant - Reservations</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/504321_website_v1/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/favicons/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/favicons/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="Sal's Pizza & Restaurant" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/favicons/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/salspizzabville--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--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/salspizzabville--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--com/css/bottom_navigation_v1.css?v1783421966" rel="stylesheet"/><link href="css/custom.css?v1783421966&domain=salspizzabville.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/salspizzabville--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/salspizzabville--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/50/fab31cceba47a58f83936514eeb6d5/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 reservations-tmt-page tmt-page" id="tmtPage"><div><header style="background-color:#000000;"><style> 151 152 153.navbar.nav-v6 .container { 154 padding-top: 10px; 155 padding-bottom: 10px; 156} 157.navbar.nav-v6.nav-scroll .container { 158 padding-top: 0px; 159 padding-bottom: 0px; 160} 161.navbar.nav-v6 .header-logo img { 162 max-width: 100%; 163} 164.navbar.nav-v6.nav-scroll .header-logo img { 165 max-width: 80%; 166} 167 168@media (max-width: 767px) { 169 /* DO NOT change mobile nav height on page scroll */ 170 .navbar.nav-v6 .navbar-header, 171 .navbar.nav-v6.nav-scroll .navbar-header { 172 padding-top: 10px; 173 padding-bottom: 10px; 174 } 175 .navbar.nav-v6 .socialnav, 176 .navbar.nav-v6.nav-scroll .socialnav { 177 margin-top: 10px; 178 } 179 .navbar.nav-v6 .container, 180 .navbar.nav-v6.nav-scroll .container { 181 padding-top: 0; 182 padding-bottom: 0; 183 } 184 .navbar.nav-v6 .header-logo, 185 .navbar.nav-v6.nav-scroll .header-logo { 186 height: 70px; 187 } 188 .navbar.nav-v6 .header-logo img { 189 max-height: 100%; 190 } 191 .navbar.nav-v6.nav-scroll .header-logo img { 192 max-width: 100%; 193 } 194 /* HOME page CHANGE mobile nav height on page scroll */ 195 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 196 body.home-page .navbar.nav-v6 .navbar-header { 197 padding-top: 10px; 198 padding-bottom: 10px; 199 } 200 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 201 padding-top: 0px; 202 padding-bottom: 0px; 203 } 204 body.home-page .navbar.nav-v6 .socialnav { 205 margin-top: 10px; 206 } 207 body.home-page .navbar.nav-v6.nav-scroll .socialnav { 208 margin-top: 0px; 209 } 210 body.home-page .navbar.nav-v6 .container{ 211 padding-top: 0; 212 padding-bottom: 0; 213 } 214 body.home-page .navbar.nav-v6.nav-scroll .container { 215 padding-top: 0; 216 padding-bottom: 0; 217 } 218 body.home-page .navbar.nav-v6 .header-logo { 219 height: 70px; 220 } 221 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 222 height: 50px; 223 } 224 body.home-page .navbar.nav-v6 .header-logo img { 225 max-height: 100%; 226 max-width: 100%; 227 } 228 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 229 max-width: 80%; 230 } 231} 232 233 234.navbar-regular .navbar-collapse.collapse.in { 235 background-color: transparent; 236 width: 100%; 237} 238.navbar.nav-v6{ 239 background-color: #0B1315; 240 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 241 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 242 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 243 -moz-transition: all 0.3s ease-in-out; 244 -webkit-transition: all 0.3s ease-in-out; 245 -o-transition: all 0.3s ease-in-out; 246 transition: all 0.3s ease-in-out; 247} 248.navbar.nav-v6.nav-scroll{ 249 background-color: #0B1315; 250 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 251 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 252 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 253} 254.drink-menu .navbar.nav-v6{ 255 background-color: #0B1315; 256 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 257 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 258 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 259 -moz-transition: all 0.3s ease-in-out; 260 -webkit-transition: all 0.3s ease-in-out; 261 -o-transition: all 0.3s ease-in-out; 262 transition: all 0.3s ease-in-out; 263} 264.drink-menu .navbar.nav-v6.nav-scroll{ 265 background-color: #0B1315; 266 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 267 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 268 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 269} 270.navbar-regular.nav-v6 .navbar-nav>li>a, 271.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 272.navbar-regular.nav-v6 .navbar-nav>.active>a, 273.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 274.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 275 border: none; 276 border-right: 1px solid #fff; 277 background-color: transparent; 278 color: #fff; 279 -moz-transition: all 0.3s ease-in-out; 280 -webkit-transition: all 0.3s ease-in-out; 281 -o-transition: all 0.3s ease-in-out; 282 transition: all 0.3s ease-in-out; 283} 284.navbar-regular.nav-v6 .navbar-nav>li>a { 285 color: #fff; 286} 287.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 288 color: #fff; 289 border-right: 1px solid #fff; 290} 291.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 292.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 293.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 294.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 295 color: #fff; 296} 297li.drop-down-link .sub-menu { 298 background-color: #0B1315; 299 color: #fff; 300 } 301.nav-scroll li.drop-down-link .sub-menu { 302 background-color: #0B1315; 303 color: #fff; 304} 305.drink-menu li.drop-down-link .sub-menu { 306 background-color: #0B1315; 307 color: #fff; 308 } 309.drink-menu .nav-scroll li.drop-down-link .sub-menu { 310 background-color: #0B1315; 311 color: #fff; 312} 313li.drop-down-link .sub-menu a, 314li.drop-down-link div.drop-down { 315 color: #fff; 316} 317.nav-scroll li.drop-down-link .sub-menu a, 318.nav-scroll li.drop-down-link li.drop-down-link div.drop-down { 319 color: #fff; 320} 321.drink-menu li.drop-down-link .sub-menu a, 322.drink-menu li.drop-down-link div.drop-down { 323 color: #fff; 324} 325.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 326.drink-menu .nav-scroll li.drop-down-link div.drop-down { 327 color: #fff; 328} 329 330li.drop-down-link .sub-menu a:hover, 331li.drop-down-link .sub-menu a:focus { 332 color: #fff; 333} 334.drink-menu li.drop-down-link .sub-menu a:hover, 335.drink-menu li.drop-down-link .sub-menu a:focus { 336 color: #fff; 337} 338
339.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 340 background-color: #fff; 341 -moz-transition: all 0.3s ease-in-out; 342 -webkit-transition: all 0.3s ease-in-out; 343 -o-transition: all 0.3s ease-in-out; 344 transition: all 0.3s ease-in-out; 345} 346.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 347 background-color: #fff; 348} 349.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 350 background-color: #fff; 351} 352.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar{ 353 background-color: #fff; 354} 355.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 356.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 357.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 358.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 359.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 360 border: none; 361 border-right: 1px solid #fff; 362 color: #fff; 363} 364.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 365 color: #fff; 366} 367.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 368 color: #fff; 369 border-right: 1px solid #fff; 370} 371.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 372.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 373.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 374.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 375 color: #fff; 376} 377 378.nav-scroll li.drop-down-link .sub-menu a:hover, 379.nav-scroll li.drop-down-link .sub-menu a:focus { 380 color: #fff; 381} 382.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 383.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 384 color: #fff; 385} 386 387.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 388 background-color: #fff; 389} 390.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 391 background-color: #fff; 392} 393.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 394 background-color: #fff; 395} 396.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 397 background-color: #fff; 398} 399.navbar.nav-v6 .header-logo-text{ 400 color: #fff; 401 -moz-transition: all 0.3s ease-in-out; 402 -webkit-transition: all 0.3s ease-in-out; 403 -o-transition: all 0.3s ease-in-out; 404 transition: all 0.3s ease-in-out; 405} 406.navbar.nav-v6.nav-scroll .header-logo-text{ 407 color: #fff; 408} 409.navbar.nav-v6 .social-icon{ 410 color: #fff; 411 -moz-transition: all 0.3s ease-in-out; 412 -webkit-transition: all 0.3s ease-in-out; 413 -o-transition: all 0.3s ease-in-out; 414 transition: all 0.3s ease-in-out; 415} 416.navbar.nav-v6.nav-scroll .social-icon{ 417 color: #fff; 418} 419.navbar.nav-v6 .social-square .contact-icon:hover { 420 color: #fff; 421 background-color: #fff; 422} 423.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 424 color: #fff; 425 background-color: #fff; 426} 427 428.drink-menu .navbar.nav-v6 .header-logo-text{ 429 color: #fff; 430} 431.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 432 color: #fff; 433} 434.drink-menu .navbar.nav-v6 .social-icon{ 435 color: #fff; 436} 437.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 438 color: #fff; 439} 440.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 441 color: #fff; 442 background-color: #fff; 443} 444.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 445 color: #fff; 446 background-color: #fff; 447} 448.navbar.nav-v6 .container { 449 border-bottom: 1px solid transparent; 450 -moz-transition: all 0.3s ease-in-out; 451 -webkit-transition: all 0.3s ease-in-out; 452 -o-transition: all 0.3s ease-in-out; 453 transition: all 0.3s ease-in-out; 454} 455.navbar.nav-v6.nav-scroll .container { 456 border-bottom: 1px solid transparent; 457} 458.drink-menu .navbar.nav-v6 .container { 459 border-bottom: 1px solid transparent; 460} 461.drink-menu .navbar.nav-v6.nav-scroll .container { 462 border-bottom: 1px solid transparent; 463} 464@media(min-width: 768px) { 465 .nav-v6 .navbar-collapse { 466 display: flex !important; 467 justify-content: end; 468 } 469 .nav-v6 .navbar-nav, 470 .nav-v6 .socialnav.hidden-xs { 471 float: none !important; 472 } 473} 474@media (max-width: 767px) { 475 .navbar.nav-v6 .container, 476 .navbar.nav-v6.nav-scroll .container, 477 .drink-menu .navbar.nav-v6 .container, 478 .drink-menu .navbar.nav-v6.nav-scroll .container { 479 border-bottom: none; 480 } 481 .navbar.nav-v6 .navbar-header { 482 border-bottom: 2px solid transparent; 483 } 484 .navbar.nav-v6.nav-scroll .navbar-header { 485 border-bottom: 2px solid transparent; 486 } 487 .drink-menu .navbar.nav-v6 .navbar-header { 488 border-bottom: 2px solid transparent; 489 } 490 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 491 border-bottom: 2px solid transparent; 492 } 493 li.drop-down-link .sub-menu, 494 .drink-menu li.drop-down-link .sub-menu { 495 width: 100% !important; 496 background-color: transparent; 497 } 498 .nav-scroll li.drop-down-link .sub-menu, 499 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 500 background-color: transparent; 501 } 502 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 503 .navbar-regular.nav-v6 .navbar-nav>.active>a, 504 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 505 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 506 background-color: #fff; 507 color: #fff; 508 } 509 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 510 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 511 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 512 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 513 background-color: #fff; 514 color: #fff; 515 } 516 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 517 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 518 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 519 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 520 background-color: #fff; 521 color: #fff; 522 } 523 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 524 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 525 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 526 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 527 background-color: #fff; 528 color: #fff; 529 } 530 531 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 532 color: #fff; 533 } 534 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 535 color: #fff; 536 } 537 538 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 539 color: #fff; 540 } 541 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 542 color: #fff; 543 } 544 545} 546</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v6-drop 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="container"><a class="header-logo logo-top" href="/#"><img alt="Sal's Pizza & Restaurant logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Sal's Pizza & Restaurant logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/504321_website_v1/logo.png"/></a><ul class="socialnav visible-xs">
546<li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/190472807642416" 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.google.com/search?q=Sal%27s+Pizza+%26+Restaurant+41+East+Genesee+Street&sca_esv=d1b4d337ee6528a3&hl=en&ei=1m7vaLL3O9mH9u8PyLaB2AY&ved=0ahUKEwiyup-o96WQAxXZg_0HHUhbAGsQ4dUDCBA&uact=5&oq=Sal%27s+Pizza+%26+Restaurant+41+East+Genesee+Street&gs_lp=Egxnd3Mtd2l6LXNlcnAiL1NhbCdzIFBpenphICYgUmVzdGF1cmFudCA0MSBFYXN0IEdlbmVzZWUgU3RyZWV0MgUQIRifBUjwCVApWM8FcAF4AZABAJgBuwGgAeMCqgEDMC4yuAEDyAEA-AEB-AECmAIDoAL7AsICChAAGLADGNYEGEfCAgUQABiABMICBhAAGBYYHpgDAIgGAZAGCJIHAzEuMqAHzgyyBwMwLjK4B_MCwgcFMC4xLjLIBw0&sclient=gws-wiz-serp#lrd=0x89d9e4f7f1f831e5:0x9160e2c6716dcd02,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="nav_tab_1_link" target="_self"> 547 548 Menu 549 550 </a></li><li class=" "><a class="" href="/drink-menu" id="nav_tab_2_link" target="_self"> 551 552 Drinks 553 554 </a></li><li class=" nav-order-link"><a class="link-order-sh" href="https://order.toasttab.com/online/sals-pizza-and-restaurant-41-e-genesee-st#" id="nav_tab_3_link" target="_self"> 555 556 Order 557 558 </a></li><li class="active nav-reservations-link"><a class="link-reservations-sh" href="/reservations#" id="nav_tab_4_link" target="_self"> 559 560 Reserve 561 562 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/party#" id="nav_tab_5_link" target="_self"> 563 564 Parties 565 566 </a></li><li class=" nav-catering-link"><a class="link-catering-sh" href="/catering#" id="nav_tab_6_link" target="_self"> 567 568 Catering 569 570 </a></li><li class=" nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=504321&callback_url=http://salspizzabville.com/-reservations#" id="nav_tab_7_link" target="_self"> 571 572 Jobs 573 574 </a></li><li class=" "><a class="" href="/about" id="nav_tab_8_link" target="_self"> 575 576 About 577 578 </a></li></ul><ul class="socialnav hidden-xs"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/190472807642416" 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.google.com/search?q=Sal%27s+Pizza+%26+Restaurant+41+East+Genesee+Street&sca_esv=d1b4d337ee6528a3&hl=en&ei=1m7vaLL3O9mH9u8PyLaB2AY&ved=0ahUKEwiyup-o96WQAxXZg_0HHUhbAGsQ4dUDCBA&uact=5&oq=Sal%27s+Pizza+%26+Restaurant+41+East+Genesee+Street&gs_lp=Egxnd3Mtd2l6LXNlcnAiL1NhbCdzIFBpenphICYgUmVzdGF1cmFudCA0MSBFYXN0IEdlbmVzZWUgU3RyZWV0MgUQIRifBUjwCVApWM8FcAF4AZABAJgBuwGgAeMCqgEDMC4yuAEDyAEA-AEB-AECmAIDoAL7AsICChAAGLADGNYEGEfCAgUQABiABMICBhAAGBYYHpgDAIgGAZAGCJIHAzEuMqAHzgyyBwMwLjK4B_MCwgcFMC4xLjLIBw0&sclient=gws-wiz-serp#lrd=0x89d9e4f7f1f831e5:0x9160e2c6716dcd02,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul></div></div></nav></header><main id="content" role="main"><article><div class="pagecontent"><div class="tabs-container"><div class="scrolling"><h1 style="display: none;">Reservations</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/reservations?spot_id=504321&source=pop_up&destination=reservations&promotion=reservations" title="Reservations" width="100%"></iframe></div></div></div></div></article></main></div><style type="text/css"> 579 .navbar-fixed-bottom.nav-v1 { 580 bottom: -100px; 581 } 582 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 583 background-color: #fff; 584 } 585 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 586 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 587 fill: #000; 588 } 589 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 590 color: #000; 591 } 592 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 593 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 594 color: #000; 595 } 596</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.toasttab.com/online/sals-pizza-and-restaurant-41-e-genesee-st" id="bottom_link_4" target="_self"> 597 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="/reservations" id="bottom_link_3" target="_self"> 598 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/party" id="bottom_link_5" target="_self"> 599 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/catering" id="bottom_link_6" target="_self"> 600 Catering </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=504321&callback_url=http://salspizzabville.com/-reservations" id="bottom_link_7" target="_self"> 601 Jobs </a></li></ul></div></nav>
601<script src="https://static.spotapps.co/web/salspizzabville--com/lib/jquery/jquery.min.js"></script>
601<script src="https://static.spotapps.co/web/salspizzabville--com/lib/bootstrap/js/bootstrap.min.js"></script>
601<script src="https://static.spotapps.co/web/salspizzabville--com/js/tmt_script.js"></script>
601<script> 602 603 $("#bottom_link_4").on("click", function(){ 604 if (ga_check()) 605 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 606 }); 607 $("#bottom_link_3").on("click", function(){ 608 if (ga_check()) 609 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 610 }); 611 $("#bottom_link_5").on("click", function(){ 612 if (ga_check()) 613 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 614 }); 615 $("#bottom_link_6").on("click", function(){ 616 if (ga_check()) 617 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 618 }); 619 $("#bottom_link_7").on("click", function(){ 620 if (ga_check()) 621 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 622 }); 623 $('.header-logo, .nav-v2-home-btn').click(function(event) { 624 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 625 event.preventDefault(); 626 var windowScrollTop = $(window).scrollTop(); 627 if(windowScrollTop > 150) { 628 $('html, body').animate({scrollTop: 0}, 750); 629 } 630 } 631 }); 632 633$(".banner-section a.banner-pin").click(function(e) { 634 // target element id 635 var id = $(this).attr('href'); 636 637 // target element 638 var section = $(id); 639 if (section.length === 0) { 640 return; 641 } 642 643 // prevent standard hash navigation (avoid blinking in IE) 644 e.preventDefault(); 645 646 // top position relative to the document 647 var pos = section.offset().top - 100 + 10; 648 649 // animated top scrolling 650 $('body, html').animate({scrollTop: pos}, 750); 651}); 652 653$(document).ready(function() { 654 var navHeight = $('nav.navbar').height(); 655 $('html').css("scroll-padding-top", navHeight); 656}); 657$(document).on('scroll', function (e) { 658 if($(document).scrollTop() > 0) { 659 $('.navbar.nav-v6').addClass('nav-scroll'); 660 }else { 661 $('.navbar.nav-v6').removeClass('nav-scroll'); 662 } 663}); 664 665function scrollStop (callback, refresh = 66) { 666 667 // Make sure a valid callback was provided 668 if (!callback || typeof callback !== 'function') return; 669 670 // Setup scrolling variable 671 let isScrolling; 672 673 // Listen for scroll events 674 window.addEventListener('scroll', function (event) { 675 676 // Clear our timeout throughout the scroll 677 window.clearTimeout(isScrolling); 678 679 // Set a timeout to run after scrolling ends 680 isScrolling = setTimeout(callback, refresh); 681 682 }, false); 683 684} 685 686$(function() { 687 setDropDownMenuWidth(); 688 689 // Function to set drop-down menu position (css top property) 690 setDropDownMenuTop(); 691 692 function setDropDownMenuWidth() { 693 var tabs_list = $('.navbar-collapse .navbar-nav'); 694 $(tabs_list).find('li.drop-down-link').each(function() { 695 var sub_menu_width = $(this).outerWidth(true); 696 if (sub_menu_width < 100) { 697 sub_menu_width = 100; 698 } 699 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 700 701 }); 702 }; 703 704 function setDropDownMenuTop() { 705 var sub_menu_top = ($('.navbar.nav-v6 .container').outerHeight() + $('.drop-down-link').outerHeight())/2; 706 $('li.drop-down-link .sub-menu').css('top', sub_menu_top-2 +'px'); 707 }; 708 709 $( window ).resize(function() { 710 setDropDownMenuWidth(); 711 setDropDownMenuTop(); 712 }); 713 714 $(window).on('scroll', function (e) { 715 setDropDownMenuTop(); 716 }); 717 718 scrollStop(function () { 719 setDropDownMenuTop(); 720 if($(document).scrollTop() == 0) { 721 setTimeout(setDropDownMenuTop, 200); 722 } 723 }); 724 725 $('.nav a:not(.drop-down)').on('click', function () { 726 $('.navbar-collapse').collapse('hide'); 727 }); 728 729}); 730 731$( '.drop-down-link .drop-down' ).click(function(event) { 732 event.preventDefault(); 733 event.stopPropagation(); 734 var drop_down = $(this).closest('.drop-down-link'); 735 var drop_down_a = $(this); 736 737 if($(drop_down_a).attr("aria-expanded") == "true") { 738 $(drop_down_a).attr("aria-expanded",false) 739 } else { 740 $(drop_down_a).attr("aria-expanded",true) 741 } 742 743 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 744 if ( $(sub_menu).is( ':hidden' ) ) { 745 $(sub_menu).slideDown(); 746 $(drop_down).addClass('active'); 747 } else { 748 $(sub_menu).slideUp(); 749 $(drop_down).removeClass('active'); 750 } 751}); 752$('#navbar-collapse-1').on('hide.bs.collapse', function (e) { 753 var clickedElement = $(event.target); 754 if (clickedElement.hasClass('drop-down')) { 755 return false;
756 } 757}); 758$('#navbar-collapse-1').on('hidden.bs.collapse', function () { 759 closeOpenedDropDownMenus(); 760 function closeOpenedDropDownMenus() { 761 var tabs_list = $('.navbar-collapse .navbar-nav'); 762 $(tabs_list).find('li.drop-down-link').each(function() { 763 if( $(this).hasClass('active') ) { 764 var sub_menu = $(this).find('.sub-menu'); 765 $(sub_menu).slideUp(); 766 $(this).removeClass('active'); 767 } 768 }); 769 }; 770}); setTimeout(function(){ 771 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 772 }, 4000); 773</script>
773<script> 774(function() { 775 var name = "Sal's Pizza & Restaurant"; 776 var pid = "ChIJ5TH48ffk2YkRAs1tccbiYJE"; 777 function build_url() { 778 var q = encodeURIComponent(name).replace(/'/g, "%27"); 779 return "https://www.google.com/maps/search/?api=1" 780 + "&query=" + q 781 + "&query_place_id=" + encodeURIComponent(pid); 782 } 783 window.google_map_url = build_url(); 784 window.open_google_map = function() { 785 window.open(build_url(), "_blank"); 786 }; 787})(); 788</script>
788<script> 789 790 var spot_id = 504321; 791 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://salspizzabville.com/-party","cta_catering":"https://salspizzabville.com/-catering","cta_reservations":"https://salspizzabville.com/-reservations","cta_jobs":"https://tmt.spotapps.co/job-listings?spot_id=504321"},"spot_name":"Salâs Pizza \u0026 Restaurant","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 792 793 if (false){ 794 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 795 } 796 797 if (navigator.userAgent.match(/iPhone/i) 798 || navigator.userAgent.match(/iPad/i) 799 || navigator.userAgent.match(/iPod/i)){ 800 $(document).ready(function(){ 801 document.body.className += " " + "webkit-mobile-body"; 802 }); 803 } 804 805 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 806 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')){ 807 $("a[href^='/']").each(function(){ 808 if (this.href.indexOf('domain=') == -1){ 809 var sh_internal_url = new URL(this.href); 810 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 811 this.href = sh_internal_url.toString(); 812 } 813 }) 814 } 815 816 817 function cta_link_matches_href(href, url){ 818 var domain = 'salspizzabville.com'; 819 if(typeof url === 'undefined'){ 820 return false; 821 } 822 var partsOfURL = url.split(domain); 823 if (partsOfURL.length != 2){ 824 return href == url; 825 }else{ 826 var urlPath = partsOfURL[1]; 827 if (urlPath.substring(0,1) == "/"){ 828 urlPath = urlPath.substring(1,urlPath.length); 829 } 830 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 831 } 832 } 833 834 var all_cta_links = [{"id":1592996,"spot_id":504321,"url":"https://salspizzabville.com/-reservations","cta_link_type":"reservations","created_at":"2025-09-23T17:22:07.122+00:00","updated_at":"2026-07-07T13:43:25.250+00:00","made_of_food":false,"link_name":"Reservations","target":null,"website_footer_label":"Reserve","position":1},{"id":1592995,"spot_id":504321,"url":"https://tmt.spotapps.co/job-listings?spot_id=504321","cta_link_type":"job_listing","created_at":"2025-09-23T17:22:07.036+00:00","updated_at":"2026-07-07T13:43:25.341+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2},{"id":2016422,"spot_id":504321,"url":"https://salspizzabville.com/food-menu","cta_link_type":"food_menu","created_at":"2026-07-07T13:43:17.727+00:00","updated_at":"2026-07-07T13:43:25.212+00:00","made_of_food":false,"link_name":"","position":null},{"id":1658579,"spot_id":504321,"url":"https://order.toasttab.com/online/sals-pizza-and-restaurant-41-e-genesee-st","cta_link_type":"order","created_at":"2025-11-11T16:06:29.736+00:00","updated_at":"2026-07-07T13:43:25.383+00:00","made_of_food":false,"link_name":"Order","target":null,"website_footer_label":"Order\u003cspan class=\"visuallyhidden\"\u003e, you are leaving the website, opens in a new tab\u003c/span\u003e","position":0},{"id":1592994,"spot_id":504321,"url":"https://salspizzabville.com/-party","cta_link_type":"private_parties","created_at":"2025-09-23T17:22:06.976+00:00","updated_at":"2026-07-07T13:43:25.074+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":2016421,"spot_id":504321,"url":"https://salspizzabville.com/drink-menu","cta_link_type":"drink_menu","created_at":"2026-07-07T13:43:17.704+00:00","updated_at":"2026-07-07T13:43:25.175+00:00","made_of_food":false,"link_name":"","position":null},{"id":1592993,"spot_id":504321,"url":"https://salspizzabville.com/-catering","cta_link_type":"catering","created_at":"2025-09-23T17:22:06.890+00:00","updated_at":"2026-07-07T13:43:25.297+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":4}]; 835 836 function find_cta_link(href) { 837 for (var i=0; i< all_cta_links.length; i++){ 838 var cta_link = all_cta_links[i]; 839 if ( cta_link_matches_href(href, cta_link.url)){ 840 return cta_link; 841 } 842 } 843 } 844 845 function find_cta_links(href) { 846 var cta_links = [] 847 for (var i=0; i< all_cta_links.length; i++){ 848 var cta_link = all_cta_links[i]; 849 if ( cta_link_matches_href(href, cta_link.url)){ 850 cta_links.push(cta_link); 851 } 852 } 853 return cta_links; 854 } 855 856 857 function get_current_page_cta_link_types(){ 858 var types = []; 859 var cta_links = find_cta_links(document.location.href); 860 for (var i=0; i<cta_links.length; i++){ 861 types.push(cta_links[i].cta_link_type); 862 } 863 return types; 864 } 865 866 867 function is_food_menu_page(){ 868 var cta_link_types = get_current_page_cta_link_types(); 869 for (var i=0; i<cta_link_types.length; i++){ 870 if ('food_menu' == cta_link_types[i]) 871 return true; 872 } 873 return false;
874 } 875 876 877 function get_form_cat_from_cta(){ 878 var cta_link = find_cta_link(document.location.href); 879 if (cta_link == null) { 880 return null; 881 } 882 if (cta_link.cta_link_type == 'private_parties'){ 883 return 'private_party'; 884 }else if (cta_link.cta_link_type == 'reservations'){ 885 return 'reservation'; 886 }else if (cta_link.cta_link_type == 'catering'){ 887 return 'catering'; 888 }else if (cta_link.cta_link_type == 'job_listing'){ 889 return 'job_listings'; 890 }else if (cta_link.cta_link_type == 'gift_cards'){ 891 return 'gift_cards'; 892 } 893 return null; 894 } 895 896 function element_has_events_defined(elem){ 897 if ($._data(elem, "events") === undefined){ 898 return false; 899 } 900 return true; 901 } 902 903 function create_ga_events_for_cta_clicks(){ 904 if (typeof $ === 'function'){ 905 906 var cta_link_of_the_page = find_cta_link(location.href); 907 908 909 $("a").each(function(index, elem){ 910 var href = $(elem).attr('href'); 911 912 if (href === undefined ){ 913 return; 914 } 915 916 if (href.substring(0,4) == 'tel:'){ 917 if (!element_has_events_defined(elem)){ // not footer links 918 $(elem).on("click", function(){ 919 universal_ga('send', 'event', { 920 eventCategory: 'Button', 921 eventAction: 'Click', 922 eventLabel: 'Phone', 923 transport: 'beacon' 924 }); 925 }); 926 927 if (cta_link_of_the_page){ 928 $(elem).on("click", function(){ 929 universal_ga('send', 'event', { 930 eventCategory: 'Button', 931 eventAction: 'Click', 932 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 933 transport: 'beacon' 934 }); 935 }); 936 } 937 } else { 938 if (cta_link_of_the_page){ 939 $(elem).on("click", function(){ 940 universal_ga('send', 'event', { 941 eventCategory: 'Button', 942 eventAction: 'Click', 943 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 944 transport: 'beacon' 945 }); 946 }); 947 } 948 } 949 950 951 }else{ 952 var cta_link = find_cta_link(href); 953 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 954 // console.log("bottom link detected"); 955 }else{ 956 if (cta_link != null){ 957 $(elem).on("click", function(){ 958 universal_ga('send', 'event', { 959 eventCategory: 'Website Link', 960 eventAction: 'Click', 961 eventLabel: cta_link.cta_link_type, 962 transport: 'beacon' 963 }); 964 }); 965 } 966 } 967 } 968 969 970 }); 971 } 972 } 973 974 if (typeof angular === "undefined") { 975 create_ga_events_for_cta_clicks(); 976 } else { 977 angular.element(document).ready(function () { 978 create_ga_events_for_cta_clicks(); 979 }); 980 } 981 982 983 function triggerShowFooterEvents(){ 984 if (window.screen.availWidth < 768){ 985 universal_ga('send', 'event', { 986 eventCategory: 'Mobile Footer', 987 eventAction: 'View', 988 eventLabel: '', 989 transport: 'beacon' 990 }); 991 } 992 } 993 994 995 996 997 //////////// 998 function smartFooterV2() 999 { 1000 var list= document.getElementsByClassName("bottom-list-item"); 1001 if (!list) return; 1002 1003 if (document.getElementById("bottom-navbar") == null){ 1004 return; 1005 } 1006 1007 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1008 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1009 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1010 1011 bottomNav.innerHTML = ''; 1012 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1013 linksWithPosition.sort(function(a,b) { 1014 return a.position - b.position; 1015 }); 1016 1017 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1018 1019 linksWithPosition.forEach((e, i) => { 1020 var target = e.target || getUrlTarget(e.url); 1021 bottomNav.insertAdjacentHTML('beforeend', 1022 `<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>`); 1023 }) 1024 1025 var intervalCount = 0 1026 var interval = setInterval(() => { 1027 if(intervalCount == 50){ 1028 clearInterval(interval); 1029 } 1030 removeOverflowingFooterLinks(); 1031 intervalCount ++; 1032 }, 200); 1033 1034 $('.smart-footer-link').on("click", function(){ 1035 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1036 shUrlParams['source'] = 'footer'; 1037 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1038 } 1039 1040 var visibleLinks = $('.smart-footer-link').map(function (e) { 1041 return $(this).data('type'); 1042 }).toArray().join(','); 1043 1044 universal_ga('send', 'event', { 1045 eventCategory: 'Button', 1046 eventAction: 'Click_footer_2', 1047 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1048 transport: 'beacon' 1049 }); 1050 }); 1051 } 1052 1053 function removeOverflowingFooterLinks(){ 1054 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1055 var width_sum = 0; 1056 1057 bottomNavLinks.forEach(e => { 1058 width_sum += e.getBoundingClientRect().width; 1059 if ((width_sum) > window.innerWidth) { 1060 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1061 e.remove(); 1062 } 1063 }); 1064 } 1065 1066 function getUrlTarget(url){ 1067 if(url.startsWith('tel')){ 1068 return '_self'; 1069 } 1070 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1071 return '_self'; 1072 } 1073 return '_blank'; 1074 } 1075 1076 function npb() 1077 { 1078 var list= document.getElementsByClassName("bottom-list-item"); 1079 if (!list) return; 1080 1081 if (document.getElementById("bottom-navbar") == null){ 1082 return; 1083 } 1084 1085 var url = "" 1086 for (var i=0; i < all_cta_links.length; i++) 1087 { 1088 if (all_cta_links[i].cta_link_type == "order"){ 1089 url = all_cta_links[i].url; 1090 } 1091 } 1092 1093 if ( url == ""){ 1094 return; 1095 } 1096 1097 for (i=0; i < list.length; i++) 1098 { 1099 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1100 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1101 1102 }; 1103 1104 var item = list[list.length-1] 1105 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1106 var width_sum = 0; 1107 for (i=0; i < list.length; i++) { 1108 width_sum += list[i].getBoundingClientRect().width; 1109 } 1110 1111 var item = list[list.length-1] 1112 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1113 1114 item.firstChild.text = "Order"; 1115 item.firstChild.href = url; 1116 item.firstChild.id = "bottom_link_" + list.length; 1117 1118 $(item.firstChild).on("click", function(){ 1119 1120 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1121 shUrlParams['source'] = 'footer'; 1122 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1123 } 1124 1125 universal_ga('send', 'event', { 1126 eventCategory: 'Button', 1127 eventAction: 'Click', 1128 eventLabel: 'Plan B-2 Order', 1129 transport: 'beacon' 1130 }); 1131 }); 1132 1133 1134 } 1135 1136function activateSmartFooter(){ 1137 var smart_footer_active = true; 1138 var smart_footer_version = 2; 1139 var man_bottom_active = false;
1140 if(window.location.hash == '#smartFooterV2=enabled'){ 1141 smartFooterV2(); 1142 return; 1143 } 1144 if (smart_footer_active && !man_bottom_active){ 1145 if(smart_footer_version == 2 ){ 1146 smartFooterV2(); 1147 }else { 1148 npb(); 1149 } 1150 } 1151 } 1152 1153 activateSmartFooter(); 1154 1155 var corona_config_str = '{"id":612712,"spot_id":504321,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":null,"food_page_instruction_phone":"3156388505","created_at":"2025-09-23T16:51:51.978+00:00","updated_at":"2025-11-10T18:35:36.496+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":5,"pick_ups_priority_value":5,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":5,"gift_cards_priority_value":3,"jobs_priority_value":5,"food_and_drinks_priority_value":3,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":3,"collecting_emails_priority_value":3,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":3,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":3,"shopping_cart_type":"TMT","shopping_cart_active":false}'; 1156 var corona_config = corona_config_str != '' ? JSON.parse('{"id":612712,"spot_id":504321,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":null,"food_page_instruction_phone":"3156388505","created_at":"2025-09-23T16:51:51.978+00:00","updated_at":"2025-11-10T18:35:36.496+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":5,"pick_ups_priority_value":5,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":5,"gift_cards_priority_value":3,"jobs_priority_value":5,"food_and_drinks_priority_value":3,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":3,"collecting_emails_priority_value":3,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":3,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":3,"shopping_cart_type":"TMT","shopping_cart_active":false}') : null; 1157 1158 1159 //corona instuctions 1160 function show_corona_instructions(text, phone, btnText){ 1161 //format to US number 1162 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1163 1164 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1165 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1166 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1167 }else { 1168 var linkLocation = 'tel:+1'+phone+''; 1169 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1170 } 1171 var appendPhone = 'tel:+1'+phone+''; 1172 //inject html content 1173 if ($('.food-menu-nav').length) { 1174 //new template 1175 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1176 var textColor = rgb2hex($('.section-header').css('color')); 1177 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1178 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1179 fontSize = fontSize + Math.round(fontSize * 0.25); 1180
1181 // 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>'; 1182 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>'; 1183 1184 }else { 1185 //old template 1186 var pageEl = $('.tabnav'); 1187 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1188 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1189 1190 var linkTextColor = getContrast50(linkColor); 1191 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1192 fontSize = fontSize + Math.round(fontSize * 0.25); 1193 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1194 1195 // 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>'; 1196 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>'; 1197 1198 } 1199 //html content 1200 pageEl.prepend(html); 1201 } 1202 1203 function rgb2hex(rgb) { 1204 if(typeof rgb !== "undefined"){ 1205 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1206 if (!rgbColor) { 1207 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1208 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1209 } 1210 function hex(x) { 1211 return ("0" + parseInt(x).toString(16)).slice(-2); 1212 } 1213 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1214 } 1215 return rgb; 1216 } 1217 1218 function getContrast50(hexcolor){ 1219 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1220 } 1221 1222 function show_corona_sidebar_instructions(text, phone){ 1223 //format to US number 1224 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1225 var divWidth = 230; 1226 var top = 50; 1227 var linkSize = '1.6em'; 1228 var pSize = $('p').css('font-size'); 1229 var appendPhone = 'tel:+1'+phone+''; 1230 1231 if ($(window).width() < 1600) 1232 var top = 30; 1233 if ($(window).width() < 1200){ 1234 var divWidth = 180; 1235 var linkSize = '1.4em'; 1236 var pSize ='1.1em'; 1237 } 1238 1239 if($('.food-menu-nav').length){ //new template 1240 var textColor = $('.food-menu-nav-item.active').css('color'); 1241 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1242 1243 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1244 var parent = $('.food-menu-page'); 1245 } 1246 else { //old template 1247 var textColor = $('.menu-item-name-traditional').css('color'); 1248 var linkColor = $('.style-traditional .tabnav .nav>
1248li.active>a').css('color'); 1249 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1250 var linkTextColor = getContrast50(linkColor); 1251 } 1252 1253 // $(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>'); 1254 $(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>'); 1255 1256 //check if resolution is bigger than tablet resolution 1257/* if ($(window).width() > 991) { 1258 //detect scroll 1259 window.onscroll = function (e) { 1260 if ($(window).scrollTop() == 0) { 1261 $('#corona-instructions-sidebar').hide(); 1262 }else { 1263 $('#corona-instructions-sidebar').show(); 1264 } 1265 } 1266 } */ 1267 } 1268 1269 function check_corona_config(config){ 1270 console.log(config) 1271 if (config) { 1272 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1273 if (!config.promote_deliveries && config.promote_pick_up) { 1274 var btnText = 'Call For Pick Up'; 1275 } 1276 if (config.promote_deliveries && !config.promote_pick_up) { 1277 var btnText = 'Call For Delivery'; 1278 } 1279 if (config.promote_deliveries && config.promote_pick_up) { 1280 var btnText = 'Call For Pick Up Or Delivery'; 1281 } 1282 1283 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1284 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1285 var btnText = 'ORDER NOW'; 1286 if($('.food-menu-nav').length){ //new template 1287 var textColor = rgb2hex($('.section-header').css('color')); 1288 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1289 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1290 fontSize = fontSize + Math.round(fontSize * 0.25); 1291 } 1292 else { //old template 1293 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1294 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1295 1296 var linkTextColor = getContrast50(linkColor); 1297 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1298 fontSize = fontSize + Math.round(fontSize * 0.25); 1299 } 1300 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); 1301 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1302 } else { 1303 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1304 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1305 } 1306 1307 } 1308 } 1309 } 1310 } 1311 1312 1313 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1314 $( document ).ready(function() { 1315 setTimeout(function(){ 1316 check_corona_config(corona_config); 1317 }, 300); 1318 }); 1319 } 1320 1321 1322 1323 function isPhone(phone){ 1324 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1325 return regex.test(phone); 1326 } 1327 1328 function sendEmail_MT (input_id) { 1329 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1330 1331 const $step = { 1332 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1333 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1334 } 1335 1336 const $field = { 1337 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1338 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1339 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1340 }; 1341 1342 const $error = { 1343 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1344 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1345 }; 1346 1347 if ($field.email.val().trim() === "") { 1348 $error.email 1349 .html("This field is required") 1350 .show(); 1351 } 1352 else if (!isEmail($field.email.val().trim())) { 1353 $error.email 1354 .html("Please use the format â[email protected]â") 1355 .show(); 1356 } else { 1357 $error.email 1358 .html("") 1359 .hide(); 1360 } 1361 1362 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1363 $error.phone 1364 .html("This field is required") 1365 .show(); 1366 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1367 $error.phone 1368 .html("The phone number must contain 10 digits") 1369 .show(); 1370 } else { 1371 $error.phone 1372 .html("") 1373 .hide(); 1374 } 1375 1376 const errorField = $step.form.find('.sh-form-error:visible'); 1377 1378 if (errorField.length > 0) { 1379 const input = errorField.first().next(); 1380 1381 document.activeElement.blur(); 1382 1383 setTimeout(() => { 1384 input.focus(); 1385 }, 160) 1386 1387 return; 1388 } 1389 1390 $loader 1391 .show() 1392 .prev() 1393 .hide(); 1394 1395 $.ajax({ 1396 method: "POST", 1397 url: "https://www.spothopperapp.com/api/spots/504321/contacts/add_with_texting_permission", 1398 crossDomain: true, 1399 dataType: 'json', 1400 data: { 1401 email: $field.email.val().trim(), 1402 phone: $field.phone.val().trim(), 1403 texting_permission: $field.consent.is(':checked'), 1404 }, 1405 success: function (data) { 1406 afterRequestSubmission(data); 1407 }, 1408 error: function () { 1409 afterRequestSubmission("Something went wrong. Please try again later."); 1410 } 1411 }); 1412 1413 function afterRequestSubmission (data) { 1414 $step.form.hide(); 1415 1416 $step.message 1417 .html(data) 1418 .show() 1419 .trigger('focus'); 1420 } 1421 } 1422</script>
1422<script>function addPromotionParamsToTMTLinks() 1423{ 1424 if (sessionStorage.getItem('shUrlParams')) { 1425 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1426 if (!Object.keys(shParams).length) 1427 return; 1428 if(!shParams.source) 1429 return; 1430 $('a').each(function () { 1431 if (this.href.includes('tmt.spotapps.co')) { 1432 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1433 return; 1434 1435 this.href = this.href + '&source=' + shParams.source; 1436 if(shParams.destination) 1437 this.href = this.href + '&destination=' + shParams.destination; 1438 if(shParams.promotion) 1439 this.href = this.href + '&promotion=' + shParams.promotion; 1440 if(shParams.fb_post_id) 1441 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1442 if(shParams.email_post_id) 1443 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1444 } 1445 }) 1446 } 1447} 1448setTimeout(function() { 1449 addPromotionParamsToTMTLinks(); 1450 addFooterToSourceParam(); 1451},600) 1452 1453function addFooterToSourceParam() 1454{ 1455 $('.bottom-link').each(function (){ 1456 if(shouldAddSourceParam(this.href)) 1457 this.href = this.href + '&source=footer'; 1458 }) 1459 $('#sh-multiple-links-content-holder a').each(function (){ 1460 if(shouldAddSourceParam(this.href)) 1461 this.href = this.href + '&source=footer'; 1462 }) 1463} 1464function shouldAddSourceParam(link){ 1465 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1466 return true; 1467 } 1468 return false; 1469} 1470</script>
1470<script> 1471;(async () => { 1472if (typeof window.focusTrap === 'undefined') { 1473 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1474 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1475} 1476 1477document.querySelectorAll('.modal').forEach((element) => { 1478 const trap = window.focusTrap?.createFocusTrap(element, { 1479 allowOutsideClick: true, 1480 }); 1481 1482 $(element).on('shown.bs.modal', () => { 1483 trap?.activate(); 1484 }); 1485 1486 $(element).on('hidden.bs.modal', () => { 1487 trap?.deactivate(); 1488 }); 1489}); 1490 1491async function getScript (source) { 1492 return new Promise((resolve, reject) => { 1493 const script = document.createElement('script'); 1494 script.src = source; 1495 script.async = true; 1496 1497 script.onload = resolve; 1498 script.onerror = reject; 1499 1500 document.head.appendChild(script); 1501 }); 1502} 1503})(); 1504</script>
1504<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1504<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1504<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1504<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1504<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1504<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1504<script>var changes_log_array = {};</script>
1504<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1504</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.