PageSourceSearch

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

html emeraldthaicuisine.com collected 2026-10-10 02:10:51 UTC 71,345 bytes, 1,554 lines download raw bytes

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