PageSourceSearch

https://salspizzabville.com/-reservations?source=pop_up&spot_id=50…=reservations&promotion=reservations

html salspizzabville.com collected 2026-09-30 19:48:46 UTC 67,805 bytes, 1,504 lines download raw bytes

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&apos;s Pizza &amp; 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.