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.