1<!DOCTYPE html> 2�<html lang="en"><head><meta content="null" property="og:site_name"/><meta content="http://theloopwestend.com/events" property="og:url"/><meta content="website" property="og:type"/><meta content="See whatâs happening at The Loop West End. Check out upcoming events and make plans for food, drinks, and good times in St Louis Park." property="og:description"/><meta content="The Loop West End - Events" 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-GRDYRYTEWW'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-10-06 12:07:41.036283Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://theloopwestend.com/events" 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="See whatâs happening at The Loop West End. Check out upcoming events and make plans for food, drinks, and good times in St Louis Park." name="description"/><meta content="" name="author"/><meta content="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/social_share.jpg" property="og:image"/><meta content="The Loop West End image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="734246769988821" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="The Loop West End - Events" name="twitter:title"/><meta content="The Loop West End offers a large variety of menu options, from salads and sandwiches to pizza and entrees such as the Salmon Rice Bowl, the Flank Steak Salad and the Mac-n-Cheese Pizza. We ..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/social_share.jpg" name="twitter:image"/><title>Events in St Louis Park | The Loop West End</title><!-- wbv 1.60.0 --><meta content="1.60.0" name="wbv"/>
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/112064_website_v3/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/favicons/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/favicons/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="The Loop West End" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/favicons/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/theloopwestend--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--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/theloopwestend--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--com/css/bottom_navigation_v1.css?v1785489074" rel="stylesheet"/><link href="css/custom.css?v1785489074&domain=theloopwestend.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/theloopwestend--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/theloopwestend--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 .events-background { 15 background: url(https://static.spotapps.co/website_images/ab_websites/112064_website_v3/events_page.jpg) no-repeat center center fixed; -webkit-background-size: cover; 16 background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(https://static.spotapps.co/website_images/ab_websites/112064_website_v3/events_page.jpg) no-repeat center center fixed; 17 -moz-background-size: cover; 18 -o-background-size: cover; 19 background-size: cover; 20 background-color: #100F0F; 21 } 22 </style>
22<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
22<script> 23function ga_check(){ 24 return true; 25} 26</script>
26<script> 27function universal_ga(action, type, category, ev_action, label){ 28 if(typeof ga === 'function') 29 { 30 if(!(action && label)) 31 ga(action, type, category) 32 else 33 ga(action, type, category, ev_action, label) 34 } 35 36 if(typeof gtag === 'function') 37 { 38 if(!(action && label)) 39 { 40 hash = category 41 ev_label = hash["eventLabel"] 42 var splits = ev_label.match(/.{1,100}/g) ?? []; 43 delete(hash["eventLabel"]) 44 45 if(splits.length <= 1) 46 hash["eventLabel"] = ev_label 47 else 48 { 49 for (let i = 0; i < splits.length; i++) { 50 var key = "eventLabel_"+i 51 hash[key] = splits[i] 52 } 53 } 54 console.log(hash) 55 gtag("event", hash["eventCategory"], hash); 56 } 57 else 58 { 59 var hash = { 60 eventCategory: category, 61 eventAction: ev_action 62 } 63 64 var splits = label.match(/.{1,100}/g) ?? []; 65 if(splits.length <= 1) 66 hash["eventLabel"] = label 67 else 68 { 69 for (let i = 0; i < splits.length; i++) { 70 var key = "eventLabel_"+i 71 hash[key] = splits[i] 72 } 73 } 74 gtag("event", hash["eventCategory"], hash); 75 } 76 } 77} 78</script>
78<script> function getPromotionUrlParams(){ 79 var params_str = sessionStorage.getItem('shUrlParams'); 80 if (params_str != null){ 81 return JSON.parse(params_str); 82 }else{ 83 return {}; 84 } 85 } 86 87 function getPromotionSourceDetails(){ 88 var params_str = localStorage.getItem('promotionSourceDetails'); 89 if (params_str != null){ 90 return JSON.parse(params_str); 91 }else{ 92 return {}; 93 } 94 } 95 96 function getLastEmailVisitInDays(){ 97 var promotionSourceDetails = getPromotionSourceDetails(); 98 if (!promotionSourceDetails['last_visit_email'] ){ 99 return null; 100 } 101 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 102 } 103 104 function getLastSocialVisitInDays(){ 105 var promotionSourceDetails = getPromotionSourceDetails(); 106 if (!promotionSourceDetails['last_visit_social'] ){ 107 return null; 108 } 109 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 110 } 111 112 var shUrlParams = getPromotionUrlParams(); 113 var promotionSourceDetails = getPromotionSourceDetails(); 114 115 new URL(document.location).searchParams.forEach(function(value, paramName){ 116 117 shUrlParams[paramName] = value; 118 119 if (paramName == 'source' && value =='social' ){ 120 promotionSourceDetails['last_visit_social'] = new Date(); 121 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 122 } 123 124 if (paramName == 'source' && value =='email' ){ 125 promotionSourceDetails['last_visit_email'] = new Date(); 126 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 127 } 128 129 }); 130 131 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 132</script>
132<style>.cta-nudge-btn[data-nudge-position="mobile-header"], 133.cta-nudge-btn[data-nudge-position="mobile-footer"] { 134 display: inline-block; 135 font-family: inherit; 136 font-weight: inherit; 137 text-transform: uppercase; 138 text-decoration: none; 139 text-align: center; 140 border-width: 2px; 141 border-style: solid; 142 border-radius: 0; 143} 144 145nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"], 146.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"], 147nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:hover, 148nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:focus, 149.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:hover, 150.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:focus { 151 background-color: #000000; 152 color: #FFFFFF; 153 border-color: #FFFFFF; 154} 155 156nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"] span, 157.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"] span, 158nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:hover span, 159nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:focus span, 160.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:hover span, 161.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:focus span { 162 color: #FFFFFF; 163} 164 165nav.navbar .socialnav .cta-nudge-btn[data-nudge-position="mobile-header"] { 166 width: auto; 167 padding: 6px 15px; 168 margin: -2px 5px 0 0; 169 font-size: 1.1em; 170} 171 172.navbar-fixed-bottom .mobile-footer-nudge-item { 173 width: 100%; 174 margin: 6px 15px; 175 padding: 0; 176} 177 178.navbar-fixed-bottom .cta-nudge-btn[data-nudge-position="mobile-footer"] { 179 width: 100%; 180 padding: 8px 15px; 181 margin: 0 auto; 182 font-size: 1.3em; 183}</style><style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 184a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 185a.get-directions-footer-link:hover{transform:scale(1.08);} 186@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 187a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu events-container events-background"><div><header style="background-color:#000000;"><style> 188 189 .nav-v7 .navbar-logo .container { 190 height: 80px; 191 } 192 .nav-v7 .navbar-logo .header-logo img { 193 max-height: 80px; 194 } 195 196 197.navbar.nav-v6 .navbar-logo .container { 198 height: 100px; 199 padding-top: 10px; 200 padding-bottom: 10px; 201} 202.navbar.nav-v6.nav-scroll .navbar-logo .container { 203 height: 70px; 204 padding-top: 0px; 205 padding-bottom: 0px; 206} 207.navbar.nav-v6 .header-logo img { 208 max-width: 100%; 209} 210.navbar.nav-v6.nav-scroll .header-logo img { 211 max-width: 80%; 212} 213.nav-v7 .navbar-logo .header-logo img { 214 max-height: 100px; 215} 216.nav-v7.nav-scroll .navbar-logo .header-logo img { 217 max-height: 70px; 218} 219 220@media (max-width: 767px) { 221 /* DO NOT change mobile nav height on page scroll */ 222 .navbar.nav-v6 .navbar-header, 223 .navbar.nav-v6.nav-scroll .navbar-header { 224 padding-top: 10px; 225 padding-bottom: 10px; 226 } 227 .navbar.nav-v6 .socialnav, 228 .navbar.nav-v6.nav-scroll .socialnav { 229 margin-top: 10px; 230 } 231 .navbar.nav-v6 .container, 232 .navbar.nav-v6.nav-scroll .container { 233 padding-top: 0; 234 padding-bottom: 0; 235 } 236 .navbar.nav-v6 .header-logo, 237 .navbar.nav-v6.nav-scroll .header-logo { 238 height: 70px; 239 } 240 .navbar.nav-v6 .header-logo img { 241 max-height: 100%; 242 } 243 .navbar.nav-v6.nav-scroll .header-logo img { 244 max-width: 100%; 245 } 246 /* HOME page CHANGE mobile nav height on page scroll */ 247 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 248 body.home-page .navbar.nav-v6 .navbar-header { 249 padding-top: 10px; 250 padding-bottom: 10px; 251 } 252 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 253 padding-top: 0px; 254 padding-bottom: 0px; 255 } 256 body.home-page .navbar.nav-v6 .socialnav { 257 margin-top: 10px; 258 } 259 body.home-page .navbar.nav-v6.nav-scroll .socialnav { 260 margin-top: 0px; 261 } 262 body.home-page .navbar.nav-v6 .container{ 263 padding-top: 0; 264 padding-bottom: 0; 265 } 266 body.home-page .navbar.nav-v6.nav-scroll .container { 267 padding-top: 0; 268 padding-bottom: 0; 269 } 270 body.home-page .navbar.nav-v6 .header-logo { 271 height: 70px; 272 } 273 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 274 height: 50px; 275 } 276 body.home-page .navbar.nav-v6 .header-logo img { 277 max-height: 100%; 278 max-width: 100%; 279 } 280 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 281 max-width: 80%; 282 } 283} 284 285 286.navbar-regular .navbar-collapse.collapse.in { 287 background-color: transparent; 288 width: 100%; 289} 290.navbar.nav-v6 .navbar-tabs { 291 background-color: #fff; 292 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 293 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 294 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 295} 296.navbar.nav-v6.nav-scroll .navbar-tabs { 297 background-color: #fff; 298 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 299 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 300 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 301} 302.drink-menu .navbar.nav-v6 .navbar-tabs { 303 background-color: #fff; 304 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 305 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 306 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 307} 308.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 309 background-color: #fff; 310 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 311 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 312 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 313} 314li.drop-down-link .sub-menu { 315 background-color: #fff; 316 color: #000; 317 } 318.nav-scroll li.drop-down-link .sub-menu { 319 background-color: #fff; 320 color: #000; 321} 322.drink-menu li.drop-down-link .sub-menu { 323 background-color: #fff; 324 color: #000; 325} 326.drink-menu .nav-scroll li.drop-down-link .sub-menu { 327 background-color: #fff; 328 color: #000; 329} 330li.drop-down-link .sub-menu a, 331li.drop-down-link div.drop-down { 332 color: #000; 333} 334.nav-scroll li.drop-down-link .sub-menu a, 335.nav-scroll li.drop-down-link div.drop-down { 336 color: #000; 337} 338.drink-menu li.drop-down-link .sub-menu a, 339.drink-menu li.drop-down-link div.drop-down { 340 color: #000; 341} 342.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 343.drink-menu .nav-scroll li.drop-down-link div.drop-down { 344 color: #000; 345} 346 347.navbar.nav-v6 .navbar-logo { 348 background-color: #fff; 349} 350.navbar.nav-v6.nav-scroll .navbar-logo { 351 background-color: #fff; 352} 353.drink-menu .navbar.nav-v6 .navbar-logo { 354 background-color: #fff; 355} 356.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo { 357 background-color: #fff; 358} 359 360.navbar-regular.nav-v6 .navbar-nav>li>a, 361.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 362.navbar-regular.nav-v6 .navbar-nav>.active>a, 363.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 364.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 365 border: none; 366 border-right: 1px solid #000; 367 background-color: transparent; 368 color: #4C2432; 369} 370.navbar-regular.nav-v6 .navbar-nav>li>a { 371 color: #000; 372} 373.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 374 color: #000; 375 border-right: 1px solid #000; 376} 377.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 378.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 379.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 380.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 381 color: #4C2432; 382} 383 384li.drop-down-link .sub-menu a:hover, 385li.drop-down-link .sub-menu a:focus, 386li.drop-down-link .sub-menu li.active a { 387 color: #4C2432; 388} 389.drink-menu li.drop-down-link .sub-menu a:hover, 390.drink-menu li.drop-down-link .sub-menu a:focus, 391.drink-menu li.drop-down-link .sub-menu li.active a { 392 color: #4C2432; 393} 394 395.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a, 396.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 397.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 398.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 399.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover{ 400 color: #4C2432; 401} 402.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 403 color: #000; 404} 405.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 406 color: #000; 407} 408.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 409 color: #000; 410} 411.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 412.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 413.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 414.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover {
415 color: #4C2432; 416} 417 418.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 419 background-color: #000; 420} 421.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 422 background-color: #000; 423} 424.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 425 background-color: #4C2432; 426} 427.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 428 background-color: #4C2432; 429} 430.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 431.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 432.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 433.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 434.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 435 border: none; 436 border-right: 1px solid #000; 437 color: #4C2432; 438} 439.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 440 color: #000; 441} 442.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 443 color: #000; 444 border-right: 1px solid #000; 445} 446.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 447.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 448.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 449.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 450 color: #4C2432; 451} 452 453.nav-scroll li.drop-down-link .sub-menu a:hover, 454.nav-scroll li.drop-down-link .sub-menu a:focus, 455.nav-scroll li.drop-down-link .sub-menu li.active a { 456 color: #4C2432; 457} 458.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 459.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus, 460.drink-menu .nav-scroll li.drop-down-link .sub-menu li.active a { 461 color: #4C2432; 462} 463 464.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a, 465.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 466.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 467.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 468.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover { 469 color: #4C2432; 470} 471.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 472 color: #000; 473} 474.drink-menu .navbar.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 475 color: #000; 476} 477.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 478.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 479.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 480.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover{ 481 color: #4C2432; 482} 483 484.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 485 background-color: #000; 486} 487.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 488 background-color: #000; 489} 490.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 491 background-color: #4C2432; 492} 493.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 494 background-color: #4C2432; 495} 496.navbar.nav-v6 .header-logo-text{ 497 color: #000; 498} 499.navbar.nav-v6.nav-scroll .header-logo-text{ 500 color: #000; 501} 502.navbar.nav-v6 .social-icon{ 503 color: #000; 504} 505.navbar.nav-v6.nav-scroll .social-icon{ 506 color: #000; 507} 508.navbar.nav-v6 .social-square .contact-icon:hover { 509 color: #000; 510 background-color: #4C2432; 511} 512.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 513 color: #000; 514 background-color: #4C2432; 515} 516 517.drink-menu .navbar.nav-v6 .header-logo-text{ 518 color: #000; 519} 520.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 521 color: #000; 522} 523.drink-menu .navbar.nav-v6 .social-icon{ 524 color: #000; 525} 526.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 527 color: #000; 528} 529.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 530 color: #000; 531 background-color: #4C2432; 532} 533.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 534 color: #000; 535 background-color: #4C2432; 536} 537.navbar.nav-v6 .navbar-logo .container { 538 border-bottom: 1px solid #000; 539} 540.navbar.nav-v6.nav-scroll .navbar-logo .container { 541 border-bottom: 1px solid #000; 542} 543.drink-menu .navbar.nav-v6 .navbar-logo .container { 544 border-bottom: 1px solid #000; 545} 546.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo .container { 547 border-bottom: 1px solid #000; 548} 549@media (max-width: 767px) { 550 .navbar.nav-v6 { 551 background-color: #fff; 552 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 553 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 554 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 555 } 556 .navbar.nav-v6.nav-scroll { 557 background-color: #fff; 558 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 559 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 560 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 561 } 562 .drink-menu .navbar.nav-v6 { 563 background-color: #fff; 564 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 565 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 566 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 567 } 568 .drink-menu .navbar.nav-v6.nav-scroll { 569 background-color: #fff; 570 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 571 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 572 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 573 } 574 .navbar.nav-v6 .container, 575 .navbar.nav-v6.nav-scroll .container, 576 .drink-menu .navbar.nav-v6 .container, 577 .drink-menu .navbar.nav-v6.nav-scroll .container { 578 border-bottom: none; 579 } 580 .navbar.nav-v6 .navbar-header { 581 border-bottom: 2px solid #000; 582 } 583 .navbar.nav-v6.nav-scroll .navbar-header { 584 border-bottom: 2px solid #000; 585 } 586 .drink-menu .navbar.nav-v6 .navbar-header { 587 border-bottom: 2px solid #000; 588 } 589 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 590 border-bottom: 2px solid #000; 591 } 592 li.drop-down-link .sub-menu, 593 .drink-menu li.drop-down-link .sub-menu { 594 background-color: transparent; 595 } 596 .nav-scroll li.drop-down-link .sub-menu, 597 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 598 background-color: transparent; 599 } 600 /* Mobile home background */ 601 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 602 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 603 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 604 background-color: #ffffff; 605 } 606 /* Mobile home background scroll */ 607 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 608 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 609 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 610 background-color: #ffffff; 611 } 612 /* Mobile pages background */ 613 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 614 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 615 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 616 background-color: #ffffff; 617 } 618 /* Mobile pages background scroll */ 619 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 620 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 621 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 622 background-color: #ffffff; 623 } 624 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 625 .navbar-regular.nav-v6 .navbar-nav>.active>a, 626 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 627 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 628 background-color: #4C2432; 629 color: #000; 630 } 631 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 632 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 633 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 634 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 635 background-color: #4C2432; 636 color: #000; 637 } 638 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 639 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 640 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 641 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 642 background-color: #4C2432; 643 color: #000; 644 } 645 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 646 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 647 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 648 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 649 background-color: #4C2432; 650 color: #000; 651 } 652 653 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 654 color: #000; 655 } 656 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 657 color: #000; 658 } 659 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 660 color: #000; 661 } 662 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 663 color: #000; 664 } 665} 666</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v7 navbar-regular navbar-fixed-top " id="navbar" role="navigation"><div id="skip"><a class="visuallyhidden skip-content" href="#content">Skip to main content</a></div><div class="desktop-navigation logo-center"><div class="navbar-top-tabs clearfix"><ul class="custom-btn-list"><li><a class="custom-temp-btn hvr-fade" href="https://order.toasttab.com/online/the-loop-west-end" target="_blank">Order Online<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li><a class="custom-temp-btn hvr-fade" href="https://www.toasttab.com/the-loop-west-end/giftcards" target="_blank">Gift Cards<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li><a class="custom-temp-btn hvr-fade" href="https://www.toasttab.com/the-loop-west-end/rewardsSignup" target="_blank">Join Our Loyalty Program<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li><a class="custom-temp-btn hvr-fade" href="/reservations" target="_self">Reserve</a></li><li><a class="custom-temp-btn hvr-fade" href="https://go.momos.com/cwgiMl" target="_blank">Parties & Catering<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li></ul></div><div class="navbar-logo"><div class="container"><a class="header-logo logo-top" href="/#"><img alt="The Loop West End logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/logo.jpg"/></a><a class="header-logo header-logo-a logo-scroll" href="/"><img alt="The Loop West End logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/logo.jpg"/></a><div class="navbar-contact"><ul class="nav navbar-nav navbar-right"><li class="nav-phone"><a href="tel:+19526812684"><i aria-hidden="true" class="fa fa-phone"></i><span>
666(952)-681-2684</span></a></li><li class="nav-email"><a href="mailto:[email protected]"><i aria-hidden="true" class="fa fa-envelope-o"></i><span>[email protected]</span></a></li></ul></div></div></div><div class="navbar-tabs"><div class="container"><div class="navbar-content"><ul class="nav navbar-nav"><li class=" nav-menu-page"><a class="" href="/food-menu" id="nav_tab_1_link" target="_self"> 667 668 Menu 669 670 </a></li><li class=" "><a class="" href="/drink-menu" id="nav_tab_2_link" target="_self"> 671 672 Drinks 673 674 </a></li><li class=" "><a class="" href="/specials" id="nav_tab_3_link" target="_self"> 675 676 Specials 677 678 </a></li><li class="active "><a aria-current="page" class="" href="/events" id="nav_tab_4_link" target="_self"> 679 680 Events 681 682 </a></li><li class=" nav-parties-link"><a aria-label="Parties, you are leaving the website, opens in a new tab" class="link-parties-sh" href="https://us-restaurant.momos.io/forms/52924e62-11fd-46e7-ba80-6c982b4be377?id=417c27de-1884-4917-abdf-eb69278834de#" id="nav_tab_5_link" target="_blank"> 683 684 Parties 685 686 </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/734246769988821" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page, you are leaving the website, opens in a new tab</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/theloopwestend" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page, you are leaving the website, opens in a new tab</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.tiktok.com/@theloopwestend" target="_blank"><svg aria-hidden="true" height="32" viewbox="-4 1 42 32" width="22" xmlns="http://www.w3.org/2000/svg"><path d="M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z"></path></svg><span>TikTok page, you are leaving the website, opens in a new tab</span></a></li></ul></div></div></div></div><div class="mobile-navigation"><div class="container"><a class="header-logo logo-top" href="/#"><img alt="The Loop West End logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/logo.jpg"/></a><a class="header-logo header-logo-a logo-scroll" href="/"><img alt="The Loop West End logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/112064_website_v3/logo.jpg"/></a><ul class="socialnav"><li class="mobile-header-nudge-item"><a href="https://order.toasttab.com/online/the-loop-west-end" target="_blank" class="cta-nudge-btn" data-nudge-type="order" data-nudge-position="mobile-header"><span>Order</span><span class="visuallyhidden">, opens in a new tab</span></a></li></ul><div class="navbar-header"><button aria-expanded="false" class="navbar-toggle" data-target="#navbar-collapse-1" data-toggle="collapse" type="button"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class="navbar-top-tab"><a href="https://order.toasttab.com/online/the-loop-west-end" target="_blank">Order Online<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li class="navbar-top-tab"><a href="https://www.toasttab.com/the-loop-west-end/giftcards" target="_blank">Gift Cards<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li class="navbar-top-tab"><a href="https://www.toasttab.com/the-loop-west-end/rewardsSignup" target="_blank">Join Our Loyalty Program<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li class="navbar-top-tab"><a href="/reservations" target="_self">Reserve</a></li><li class="navbar-top-tab"><a href="https://go.momos.com/cwgiMl" target="_blank">Parties & Catering<span class="visuallyhidden">, you are leaving the website, opens in a new tab</span></a></li><li class=" nav-menu-page"><a class="" href="/food-menu" id="mobile_nav_tab_1_link" target="_self"> 687 Menu 688 </a></li><li class=" "><a class="" href="/drink-menu" id="mobile_nav_tab_2_link" target="_self"> 689 Drinks 690 </a></li><li class=" "><a class="" href="/specials" id="mobile_nav_tab_3_link" target="_self"> 691 Specials 692 </a></li><li class="active "><a aria-current="page" class="" href="/events" id="mobile_nav_tab_4_link" target="_self"> 693 Events 694 </a></li><li class=" nav-parties-link"><a aria-label="Parties, you are leaving the website, opens in a new tab" class="link-parties-sh" href="https://us-restaurant.momos.io/forms/52924e62-11fd-46e7-ba80-6c982b4be377?id=417c27de-1884-4917-abdf-eb69278834de#" id="mobile_nav_tab_5_link" target="_blank"> 695 Parties 696 </a></li></ul></div></div></div></nav></header><main id="content" role="main"><article><div class="pagecontent"><div class="container"><h1 class="page-title">Events</h1><div class="empty-content-message"><h2>We are updating our events</h2><p><strong>Please stay tuned</strong></p></div></div></div></article></main></div><style type="text/css"> 697 .navbar-fixed-bottom.nav-v1 { 698 bottom: -100px; 699 } 700 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 701 background-color: #4C2432; 702 } 703 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 704 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 705 fill: #000; 706 } 707 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 708 color: #fff; 709 } 710 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 711 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 712 color: #fff; 713 text-decoration: none; 714 } 715</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="mobile-footer-nudge-item"><a href="https://order.toasttab.com/online/the-loop-west-end" target="_blank" class="cta-nudge-btn" data-nudge-type="order" data-nudge-position="mobile-footer"><span>Order</span><span class="visuallyhidden">, opens in a new tab</span></a></li></ul></div></nav>
715<script src="https://static.spotapps.co/web/theloopwestend--com/lib/jquery/jquery.min.js"></script>
715<script src="https://static.spotapps.co/web/theloopwestend--com/lib/bootstrap/js/bootstrap.min.js"></script>
715<script type="text/javascript"> 716 717 718 $("#bottom_link_4").on("click", function(){ 719 if (ga_check()) 720 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 721 }); 722 $("#bottom_link_3").on("click", function(){ 723 if (ga_check()) 724 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 725 }); 726 $("#bottom_link_5").on("click", function(){ 727 if (ga_check()) 728 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 729 }); 730 $('.header-logo-a, .header-logo.header-logo-mobile, .nav-v2-home-btn').click(function(event) { 731 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 732 event.preventDefault(); 733 var windowScrollTop = $(window).scrollTop(); 734 if(windowScrollTop > 150) { 735 $('html, body').animate({scrollTop: 0}, 750); 736 } 737 } 738 }); 739 740$(".banner-section a.banner-pin").click(function(e) { 741 // target element id 742 var id = $(this).attr('href'); 743 744 // target element 745 var section = $(id); 746 if (section.length === 0) { 747 return; 748 } 749 750 // prevent standard hash navigation (avoid blinking in IE) 751 e.preventDefault(); 752 753 // top position relative to the document 754 var pos = section.offset().top - 100 + 10; 755 756 // animated top scrolling 757 $('body, html').animate({scrollTop: pos}, 750); 758}); 759 760$(document).ready(function() { 761 var navHeight = $('nav.navbar').height(); 762 $('html').css("scroll-padding-top", navHeight); 763}); 764 765$(document).on('scroll', function (e) { 766 if($(document).scrollTop() > 0) { 767 $('.navbar.nav-v7').addClass('nav-scroll'); 768 }else { 769 $('.navbar.nav-v7').removeClass('nav-scroll'); 770 } 771}); 772 773$(function() { 774 setDropDownMenuWidth(); 775 776 function setDropDownMenuWidth() { 777 var tabs_list = $('.navbar-tabs .navbar-nav'); 778 779 $(tabs_list).find('li.drop-down-link').each(function() { 780 var sub_menu_width = $(this).outerWidth(true); 781 if (sub_menu_width < 100) { 782 sub_menu_width = 100; 783 } 784 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 785 }); 786 } 787 788 $( window ).resize(function() { 789 setDropDownMenuWidth(); 790 }); 791 792 $('.nav a:not(.drop-down)').on('click', function () { 793 $('.navbar-collapse').collapse('hide'); 794 }); 795 796}); 797 798 799 800$( '.drop-down-link .drop-down' ).click(function(event) { 801 event.preventDefault(); 802 event.stopPropagation(); 803 804 // Close previously opened dropdown menus 805 $('.drop-down-link.active .sub-menu').slideUp(); 806 $('.drop-down-link.active').find('.drop-down').attr('aria-expanded', false); 807 $('.drop-down-link.active').removeClass('active'); 808 809 var drop_down = $(this).closest('.drop-down-link'); 810 var drop_down_a = $(this); 811 812 if($(drop_down_a).attr("aria-expanded") == "true") { 813 $(drop_down_a).attr("aria-expanded",false) 814 } else { 815 $(drop_down_a).attr("aria-expanded",true) 816 } 817 818 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 819 820 if ( $(sub_menu).is( ':hidden' ) ) { 821 $(sub_menu).slideDown(); 822 $(drop_down).addClass('active'); 823 } else { 824 $(sub_menu).slideUp(); 825 $(drop_down).removeClass('active'); 826 } 827}); 828 829$(".nav-v7 .navbar-contact .nav-address a").click(function(e) { 830 831 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 832 // target element id 833 var id = $(this).attr('href').substr(1); 834 835 // target element 836 var section = $(id); 837 if (section.length === 0) { 838 return; 839 } 840 841 // prevent standard hash navigation (avoid blinking in IE) 842 e.preventDefault(); 843 844 // top position relative to the document 845 var pos = section.offset().top - 100 + 10; 846 847 // animated top scrolling 848 $('body, html').animate({scrollTop: pos}, 750); 849 850 } 851}); 852 853const mobileDrop = document.querySelector('.mobile-full-height #navbar-collapse-1 .navbar-nav'); 854const mobileDropButton = document.querySelector('.mobile-full-height .navbar-toggle'); 855const mobileHeader = document.querySelector('.mobile-full-height .navbar-header'); 856 857mobileDropButton?.addEventListener('click', () => { 858 mobileHeaderBottomPos = mobileHeader.getBoundingClientRect().bottom; 859 mobileDrop.style.paddingTop = mobileHeaderBottomPos + 'px'; 860}); 861 862(function () { 863 const isSafari = (() => { 864 const ua = navigator.userAgent; 865 return ua.includes('Safari') && // Safari must be present
866 !ua.includes('Chrome') && // Exclude Chrome (has 'Safari' in UA) 867 !ua.includes('Edg'); // Exclude Edge 868 })(); 869 870 if (!isSafari) return; 871 const menu = document.getElementById('navbar-collapse-1'); 872 873 // When coming back from a _blank tab or bfcache restore, force a repaint. 874 function nudgeRepaint() { 875 if (!menu || !menu.classList.contains('in')) return; 876 // toggle display to flush rendering, then poke will-change for one frame 877 const prev = menu.style.display; 878 menu.style.display = 'none'; 879 // force reflow 880 void menu.offsetHeight; 881 menu.style.display = prev || ''; 882 menu.style.willChange = 'opacity'; 883 requestAnimationFrame(() => { menu.style.willChange = 'auto'; }); 884 } 885 886 document.addEventListener('visibilitychange', () => { 887 if (document.visibilityState === 'visible') nudgeRepaint(); 888 }); 889 890 // iOS/macOS Safari often restores pages from bfcache 891 window.addEventListener('pageshow', (e) => { 892 if (e.persisted) nudgeRepaint(); 893 else nudgeRepaint(); 894 }, { passive: true }); 895 896 // Keep menu open when clicking links that open in a new tab 897 menu?.addEventListener('click', (e) => { 898 const a = e.target.closest('a'); 899 if (!a) return; 900 if (a.target === '_blank') { 901 // avoid any delegated "close on link click" handlers firing first 902 e.stopPropagation(); 903 // allow navigation; after we return, repaint nudge will run 904 } 905 }, true); 906})(); 907 908document.querySelectorAll('.navbar .navbar-nav > li.cta-nav-tab').forEach((li) => { 909 li.addEventListener('click', (e) => { 910 if (e.defaultPrevented) return; 911 912 if (e.target.closest('a')) return; 913 914 const link = li.querySelector('a[href]'); 915 if (!link) return; 916 917 if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1 || link.target === '_blank') { 918 window.open(link.href, link.target || '_blank'); 919 return; 920 } 921 922 link.click(); 923 }); 924 925 li.addEventListener('keydown', (e) => { 926 if ((e.key === 'Enter' || e.key === ' ') && !e.target.closest('a')) { 927 const link = li.querySelector('a[href]'); 928 if (!link) return; 929 e.preventDefault(); 930 link.click(); 931 } 932 }); 933}); 934 setTimeout(function(){ 935 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 936 }, 4000); 937</script>
937<script> 938(function() { 939 var name = "The Loop West End"; 940 var pid = "ChIJaZGkSaI0s1IR4KXuICXDEBw"; 941 function build_url() { 942 var q = encodeURIComponent(name).replace(/'/g, "%27"); 943 return "https://www.google.com/maps/search/?api=1" 944 + "&query=" + q 945 + "&query_place_id=" + encodeURIComponent(pid); 946 } 947 window.google_map_url = build_url(); 948 window.open_google_map = function() { 949 window.open(build_url(), "_blank"); 950 }; 951})(); 952</script>
952<script> 953 954 var spot_id = 112064; 955 var sh_generic_form_params=JSON.parse('{"generic_contact_form_active":false,"texting_permissions_active":true,"title":"Contact us","instructions":"Please fill out the form and we will be in touch.","reasons":[],"custom_hours":"","hours":"","active_tmt_cta_links":{"cta_private_party":null,"cta_catering":null,"cta_reservations":null,"cta_jobs":null},"spot_name":"The Loop West End","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 956 957 if (false){ 958 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 959 } 960 961 if (navigator.userAgent.match(/iPhone/i) 962 || navigator.userAgent.match(/iPad/i) 963 || navigator.userAgent.match(/iPod/i)){ 964 $(document).ready(function(){ 965 document.body.className += " " + "webkit-mobile-body"; 966 }); 967 } 968 969 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 970 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')){ 971 $("a[href^='/']").each(function(){ 972 if (this.href.indexOf('domain=') == -1){ 973 var sh_internal_url = new URL(this.href); 974 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 975 this.href = sh_internal_url.toString(); 976 } 977 }) 978 } 979 980 981 function cta_link_matches_href(href, url){ 982 var domain = 'theloopwestend.com'; 983 if(typeof url === 'undefined'){ 984 return false; 985 } 986 var partsOfURL = url.split(domain); 987 if (partsOfURL.length != 2){ 988 return href == url; 989 }else{ 990 var urlPath = partsOfURL[1]; 991 if (urlPath.substring(0,1) == "/"){ 992 urlPath = urlPath.substring(1,urlPath.length); 993 } 994 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 995 } 996 } 997 998 var all_cta_links = [{"id":746506,"spot_id":112064,"url":"https://www.theloopwestend.com/drink-menu","cta_link_type":"drink_menu","created_at":"2023-05-02T11:59:58.630+00:00","updated_at":"2026-07-30T10:10:09.193+00:00","made_of_food":false,"link_name":""},{"id":746505,"spot_id":112064,"url":"https://www.theloopwestend.com/events","cta_link_type":"events","created_at":"2023-05-02T11:59:58.611+00:00","updated_at":"2026-07-30T10:10:09.140+00:00","made_of_food":false,"link_name":"","position":null},{"id":746504,"spot_id":112064,"url":"https://www.theloopwestend.com/specials","cta_link_type":"specials","created_at":"2023-05-02T11:59:58.540+00:00","updated_at":"2026-07-30T10:10:08.988+00:00","made_of_food":false,"link_name":"","position":null},{"id":746507,"spot_id":112064,"url":"https://www.theloopwestend.com/food-menu","cta_link_type":"food_menu","created_at":"2023-05-02T11:59:58.649+00:00","updated_at":"2026-07-30T10:10:09.248+00:00","made_of_food":false,"link_name":"","position":null},{"id":916189,"spot_id":112064,"url":"https://www.toasttab.com/the-loop-west-end/giftcards","cta_link_type":"gift_cards","created_at":"2024-04-02T09:11:26.385+00:00","updated_at":"2026-07-30T10:10:09.385+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Gift Cards","position":5},{"id":726443,"spot_id":112064,"url":"https://order.toasttab.com/online/the-loop-west-end","cta_link_type":"order","created_at":"2023-01-10T13:30:44.525+00:00","updated_at":"2026-07-30T10:10:09.439+00:00","made_of_food":false,"link_name":"toasttab","target":null,"website_footer_label":"Order","position":0},{"id":1115136,"spot_id":112064,"url":"https://us-restaurant.momos.io/forms/52924e62-11fd-46e7-ba80-6c982b4be377?id=417c27de-1884-4917-abdf-eb69278834de","cta_link_type":"private_parties","created_at":"2024-10-22T13:44:31.529+00:00","updated_at":"2026-07-30T10:10:09.085+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Parties","position":3},{"id":2051416,"spot_id":112064,"url":"https://www.opentable.com/restref/client/?restref=213007\u0026lang=en-US\u0026ot_source=Restaurant%20website\u0026corrid=ddfe51ba-cadb-42e5-9528-ac6a168c07e6","cta_link_type":"reservations","created_at":"2026-07-30T10:03:59.293+00:00","updated_at":"2026-07-30T10:10:09.300+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Reserve","position":1}]; 999 1000 function find_cta_link(href) { 1001 for (var i=0; i< all_cta_links.length; i++){ 1002 var cta_link = all_cta_links[i]; 1003 if ( cta_link_matches_href(href, cta_link.url)){ 1004 return cta_link; 1005 } 1006 } 1007 } 1008 1009 function find_cta_links(href) { 1010 var cta_links = [] 1011 for (var i=0; i< all_cta_links.length; i++){ 1012 var cta_link = all_cta_links[i]; 1013 if ( cta_link_matches_href(href, cta_link.url)){ 1014 cta_links.push(cta_link); 1015 } 1016 } 1017 return cta_links; 1018 } 1019 1020 1021 function get_current_page_cta_link_types(){ 1022 var types = []; 1023 var cta_links = find_cta_links(document.location.href); 1024 for (var i=0; i<cta_links.length; i++){ 1025 types.push(cta_links[i].cta_link_type); 1026 } 1027 return types; 1028 } 1029 1030 1031 function is_food_menu_page(){ 1032 var cta_link_types = get_current_page_cta_link_types(); 1033 for (var i=0; i<cta_link_types.length; i++){ 1034 if ('food_menu' == cta_link_types[i]) 1035 return true; 1036 } 1037 return false;
1038 } 1039 1040 1041 function get_form_cat_from_cta(){ 1042 var cta_link = find_cta_link(document.location.href); 1043 if (cta_link == null) { 1044 return null; 1045 } 1046 if (cta_link.cta_link_type == 'private_parties'){ 1047 return 'private_party'; 1048 }else if (cta_link.cta_link_type == 'reservations'){ 1049 return 'reservation'; 1050 }else if (cta_link.cta_link_type == 'catering'){ 1051 return 'catering'; 1052 }else if (cta_link.cta_link_type == 'job_listing'){ 1053 return 'job_listings'; 1054 }else if (cta_link.cta_link_type == 'gift_cards'){ 1055 return 'gift_cards'; 1056 } 1057 return null; 1058 } 1059 1060 function element_has_events_defined(elem){ 1061 if ($._data(elem, "events") === undefined){ 1062 return false; 1063 } 1064 return true; 1065 } 1066 1067 function create_ga_events_for_cta_clicks(){ 1068 if (typeof $ === 'function'){ 1069 1070 var cta_link_of_the_page = find_cta_link(location.href); 1071 1072 1073 $("a").each(function(index, elem){ 1074 var href = $(elem).attr('href'); 1075 1076 if (href === undefined ){ 1077 return; 1078 } 1079 1080 if (href.substring(0,4) == 'tel:'){ 1081 if (!element_has_events_defined(elem)){ // not footer links 1082 $(elem).on("click", function(){ 1083 universal_ga('send', 'event', { 1084 eventCategory: 'Button', 1085 eventAction: 'Click', 1086 eventLabel: 'Phone', 1087 transport: 'beacon' 1088 }); 1089 }); 1090 1091 if (cta_link_of_the_page){ 1092 $(elem).on("click", function(){ 1093 universal_ga('send', 'event', { 1094 eventCategory: 'Button', 1095 eventAction: 'Click', 1096 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 1097 transport: 'beacon' 1098 }); 1099 }); 1100 } 1101 } else { 1102 if (cta_link_of_the_page){ 1103 $(elem).on("click", function(){ 1104 universal_ga('send', 'event', { 1105 eventCategory: 'Button', 1106 eventAction: 'Click', 1107 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1108 transport: 'beacon' 1109 }); 1110 }); 1111 } 1112 } 1113 1114 1115 }else{ 1116 var cta_link = find_cta_link(href); 1117 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1118 // console.log("bottom link detected"); 1119 }else{ 1120 if (cta_link != null){ 1121 $(elem).on("click", function(){ 1122 universal_ga('send', 'event', { 1123 eventCategory: 'Website Link', 1124 eventAction: 'Click', 1125 eventLabel: cta_link.cta_link_type, 1126 transport: 'beacon' 1127 }); 1128 }); 1129 } 1130 } 1131 } 1132 1133 1134 }); 1135 } 1136 } 1137 1138 if (typeof angular === "undefined") { 1139 create_ga_events_for_cta_clicks(); 1140 } else { 1141 angular.element(document).ready(function () { 1142 create_ga_events_for_cta_clicks(); 1143 }); 1144 } 1145 1146 1147 function triggerShowFooterEvents(){ 1148 if (window.screen.availWidth < 768){ 1149 universal_ga('send', 'event', { 1150 eventCategory: 'Mobile Footer', 1151 eventAction: 'View', 1152 eventLabel: '', 1153 transport: 'beacon' 1154 }); 1155 } 1156 } 1157 1158 1159 1160 1161 //////////// 1162 function smartFooterV2() 1163 { 1164 var list= document.getElementsByClassName("bottom-list-item"); 1165 if (!list) return; 1166 1167 if (document.getElementById("bottom-navbar") == null){ 1168 return; 1169 } 1170 1171 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1172 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1173 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1174 1175 bottomNav.innerHTML = ''; 1176 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1177 linksWithPosition.sort(function(a,b) { 1178 return a.position - b.position; 1179 }); 1180 1181 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1182 1183 linksWithPosition.forEach((e, i) => { 1184 var target = e.target || getUrlTarget(e.url); 1185 bottomNav.insertAdjacentHTML('beforeend', 1186 `<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>`); 1187 }) 1188 1189 var intervalCount = 0 1190 var interval = setInterval(() => { 1191 if(intervalCount == 50){ 1192 clearInterval(interval); 1193 } 1194 removeOverflowingFooterLinks(); 1195 intervalCount ++; 1196 }, 200); 1197 1198 $('.smart-footer-link').on("click", function(){ 1199 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1200 shUrlParams['source'] = 'footer'; 1201 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1202 } 1203 1204 var visibleLinks = $('.smart-footer-link').map(function (e) { 1205 return $(this).data('type'); 1206 }).toArray().join(','); 1207 1208 universal_ga('send', 'event', { 1209 eventCategory: 'Button', 1210 eventAction: 'Click_footer_2', 1211 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1212 transport: 'beacon' 1213 }); 1214 }); 1215 } 1216 1217 function removeOverflowingFooterLinks(){ 1218 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1219 var width_sum = 0; 1220 1221 bottomNavLinks.forEach(e => { 1222 width_sum += e.getBoundingClientRect().width; 1223 if ((width_sum) > window.innerWidth) { 1224 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1225 e.remove(); 1226 } 1227 }); 1228 } 1229 1230 function getUrlTarget(url){ 1231 if(url.startsWith('tel')){ 1232 return '_self'; 1233 } 1234 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1235 return '_self'; 1236 } 1237 return '_blank'; 1238 } 1239 1240 function npb() 1241 { 1242 var list= document.getElementsByClassName("bottom-list-item"); 1243 if (!list) return; 1244 1245 if (document.getElementById("bottom-navbar") == null){ 1246 return; 1247 } 1248 1249 var url = "" 1250 for (var i=0; i < all_cta_links.length; i++) 1251 { 1252 if (all_cta_links[i].cta_link_type == "order"){ 1253 url = all_cta_links[i].url; 1254 } 1255 } 1256 1257 if ( url == ""){ 1258 return; 1259 } 1260 1261 for (i=0; i < list.length; i++) 1262 { 1263 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1264 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1265 1266 }; 1267 1268 var item = list[list.length-1] 1269 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1270 var width_sum = 0; 1271 for (i=0; i < list.length; i++) { 1272 width_sum += list[i].getBoundingClientRect().width; 1273 } 1274 1275 var item = list[list.length-1] 1276 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1277 1278 item.firstChild.text = "Order"; 1279 item.firstChild.href = url; 1280 item.firstChild.id = "bottom_link_" + list.length; 1281 1282 $(item.firstChild).on("click", function(){ 1283 1284 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1285 shUrlParams['source'] = 'footer'; 1286 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1287 } 1288 1289 universal_ga('send', 'event', { 1290 eventCategory: 'Button', 1291 eventAction: 'Click', 1292 eventLabel: 'Plan B-2 Order', 1293 transport: 'beacon' 1294 }); 1295 }); 1296 1297 1298 } 1299 1300function activateSmartFooter(){ 1301 var smart_footer_active = true; 1302 var smart_footer_version = 2; 1303 var man_bottom_active = true; 1304 if(window.location.hash == '#smartFooterV2=enabled'){ 1305 smartFooterV2(); 1306 return; 1307 } 1308 if (smart_footer_active && !man_bottom_active){ 1309 if(smart_footer_version == 2 ){ 1310 smartFooterV2(); 1311 }else { 1312 npb(); 1313 } 1314 } 1315 } 1316 1317 activateSmartFooter(); 1318 1319 var corona_config_str = ''; 1320 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 1321 1322 1323 //corona instuctions 1324 function show_corona_instructions(text, phone, btnText){ 1325 //format to US number 1326 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1327 1328 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1329 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1330 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1331 }else { 1332 var linkLocation = 'tel:+1'+phone+''; 1333 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1334 } 1335 var appendPhone = 'tel:+1'+phone+''; 1336 //inject html content 1337 if ($('.food-menu-nav').length) { 1338 //new template 1339 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1340 var textColor = rgb2hex($('.section-header').css('color')); 1341 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1342 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1343 fontSize = fontSize + Math.round(fontSize * 0.25); 1344
1345 // 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>'; 1346 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>'; 1347 1348 }else { 1349 //old template 1350 var pageEl = $('.tabnav'); 1351 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1352 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1353 1354 var linkTextColor = getContrast50(linkColor); 1355 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1356 fontSize = fontSize + Math.round(fontSize * 0.25); 1357 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1358 1359 // 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>'; 1360 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>'; 1361 1362 } 1363 //html content 1364 pageEl.prepend(html); 1365 } 1366 1367 function rgb2hex(rgb) { 1368 if(typeof rgb !== "undefined"){ 1369 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1370 if (!rgbColor) { 1371 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1372 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1373 } 1374 function hex(x) { 1375 return ("0" + parseInt(x).toString(16)).slice(-2); 1376 } 1377 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1378 } 1379 return rgb; 1380 } 1381 1382 function getContrast50(hexcolor){ 1383 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1384 } 1385 1386 function show_corona_sidebar_instructions(text, phone){ 1387 //format to US number 1388 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1389 var divWidth = 230; 1390 var top = 50; 1391 var linkSize = '1.6em'; 1392 var pSize = $('p').css('font-size'); 1393 var appendPhone = 'tel:+1'+phone+''; 1394 1395 if ($(window).width() < 1600) 1396 var top = 30; 1397 if ($(window).width() < 1200){ 1398 var divWidth = 180; 1399 var linkSize = '1.4em'; 1400 var pSize ='1.1em'; 1401 } 1402 1403 if($('.food-menu-nav').length){ //new template 1404 var textColor = $('.food-menu-nav-item.active').css('color'); 1405 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1406 1407 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1408 var parent = $('.food-menu-page'); 1409 } 1410 else { //old template 1411 var textColor = $('.menu-item-name-traditional').css('color'); 1412 var linkColor = $('.style-traditional .tabnav .nav>
1412li.active>a').css('color'); 1413 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1414 var linkTextColor = getContrast50(linkColor); 1415 } 1416 1417 // $(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>'); 1418 $(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>'); 1419 1420 //check if resolution is bigger than tablet resolution 1421/* if ($(window).width() > 991) { 1422 //detect scroll 1423 window.onscroll = function (e) { 1424 if ($(window).scrollTop() == 0) { 1425 $('#corona-instructions-sidebar').hide(); 1426 }else { 1427 $('#corona-instructions-sidebar').show(); 1428 } 1429 } 1430 } */ 1431 } 1432 1433 function check_corona_config(config){ 1434 console.log(config) 1435 if (config) { 1436 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1437 if (!config.promote_deliveries && config.promote_pick_up) { 1438 var btnText = 'Call For Pick Up'; 1439 } 1440 if (config.promote_deliveries && !config.promote_pick_up) { 1441 var btnText = 'Call For Delivery'; 1442 } 1443 if (config.promote_deliveries && config.promote_pick_up) { 1444 var btnText = 'Call For Pick Up Or Delivery'; 1445 } 1446 1447 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1448 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1449 var btnText = 'ORDER NOW'; 1450 if($('.food-menu-nav').length){ //new template 1451 var textColor = rgb2hex($('.section-header').css('color')); 1452 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1453 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1454 fontSize = fontSize + Math.round(fontSize * 0.25); 1455 } 1456 else { //old template 1457 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1458 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1459 1460 var linkTextColor = getContrast50(linkColor); 1461 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1462 fontSize = fontSize + Math.round(fontSize * 0.25); 1463 } 1464 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); 1465 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1466 } else { 1467 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1468 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1469 } 1470 1471 } 1472 } 1473 } 1474 } 1475 1476 1477 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1478 $( document ).ready(function() { 1479 setTimeout(function(){ 1480 check_corona_config(corona_config); 1481 }, 300); 1482 }); 1483 } 1484 1485 1486 1487 function isPhone(phone){ 1488 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1489 return regex.test(phone); 1490 } 1491 1492 function sendEmail_MT (input_id) { 1493 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1494 1495 const $step = { 1496 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1497 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1498 } 1499 1500 const $field = { 1501 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1502 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1503 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1504 }; 1505 1506 const $error = { 1507 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1508 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1509 }; 1510 1511 if ($field.email.val().trim() === "") { 1512 $error.email 1513 .html("This field is required") 1514 .show(); 1515 } 1516 else if (!isEmail($field.email.val().trim())) { 1517 $error.email 1518 .html("Please use the format â[email protected]â") 1519 .show(); 1520 } else { 1521 $error.email 1522 .html("") 1523 .hide(); 1524 } 1525 1526 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1527 $error.phone 1528 .html("This field is required") 1529 .show(); 1530 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1531 $error.phone 1532 .html("The phone number must contain 10 digits") 1533 .show(); 1534 } else { 1535 $error.phone 1536 .html("") 1537 .hide(); 1538 } 1539 1540 const errorField = $step.form.find('.sh-form-error:visible'); 1541 1542 if (errorField.length > 0) { 1543 const input = errorField.first().next(); 1544 1545 document.activeElement.blur(); 1546 1547 setTimeout(() => { 1548 input.focus(); 1549 }, 160) 1550 1551 return; 1552 } 1553 1554 $loader 1555 .show() 1556 .prev() 1557 .hide(); 1558 1559 $.ajax({ 1560 method: "POST", 1561 url: "https://www.spothopperapp.com/api/spots/112064/contacts/add_with_texting_permission", 1562 crossDomain: true, 1563 dataType: 'json', 1564 data: { 1565 email: $field.email.val().trim(), 1566 phone: $field.phone.val().trim(), 1567 texting_permission: $field.consent.is(':checked'), 1568 }, 1569 success: function (data) { 1570 afterRequestSubmission(data); 1571 }, 1572 error: function () { 1573 afterRequestSubmission("Something went wrong. Please try again later."); 1574 } 1575 }); 1576 1577 function afterRequestSubmission (data) { 1578 $step.form.hide(); 1579 1580 $step.message 1581 .html(data) 1582 .show() 1583 .trigger('focus'); 1584 } 1585 } 1586</script>
1586<script>function addPromotionParamsToTMTLinks() 1587{ 1588 if (sessionStorage.getItem('shUrlParams')) { 1589 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1590 if (!Object.keys(shParams).length) 1591 return; 1592 if(!shParams.source) 1593 return; 1594 $('a').each(function () { 1595 if (this.href.includes('tmt.spotapps.co')) { 1596 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1597 return; 1598 1599 this.href = this.href + '&source=' + shParams.source; 1600 if(shParams.destination) 1601 this.href = this.href + '&destination=' + shParams.destination; 1602 if(shParams.promotion) 1603 this.href = this.href + '&promotion=' + shParams.promotion; 1604 if(shParams.fb_post_id) 1605 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1606 if(shParams.email_post_id) 1607 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1608 } 1609 }) 1610 } 1611} 1612setTimeout(function() { 1613 addPromotionParamsToTMTLinks(); 1614 addFooterToSourceParam(); 1615},600) 1616 1617function addFooterToSourceParam() 1618{ 1619 $('.bottom-link').each(function (){ 1620 if(shouldAddSourceParam(this.href)) 1621 this.href = this.href + '&source=footer'; 1622 }) 1623 $('#sh-multiple-links-content-holder a').each(function (){ 1624 if(shouldAddSourceParam(this.href)) 1625 this.href = this.href + '&source=footer'; 1626 }) 1627} 1628function shouldAddSourceParam(link){ 1629 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1630 return true; 1631 } 1632 return false; 1633} 1634</script>
1634<script> 1635;(async () => { 1636if (typeof window.focusTrap === 'undefined') { 1637 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1638 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1639} 1640 1641document.querySelectorAll('.modal').forEach((element) => { 1642 const trap = window.focusTrap?.createFocusTrap(element, { 1643 allowOutsideClick: true, 1644 }); 1645 1646 $(element).on('shown.bs.modal', () => { 1647 trap?.activate(); 1648 }); 1649 1650 $(element).on('hidden.bs.modal', () => { 1651 trap?.deactivate(); 1652 }); 1653}); 1654 1655async function getScript (source) { 1656 return new Promise((resolve, reject) => { 1657 const script = document.createElement('script'); 1658 script.src = source; 1659 script.async = true; 1660 1661 script.onload = resolve; 1662 script.onerror = reject; 1663 1664 document.head.appendChild(script); 1665 }); 1666} 1667})(); 1668</script>
1668<script>document.addEventListener("DOMContentLoaded", () => { 1669 setNudgeBtnStyling(); 1670 }) 1671 1672function setNudgeBtnStyling(){ 1673 const headerNudgeBtn = document.querySelector(".cta-nudge-btn[data-nudge-position=mobile-header]"); 1674 const footerNudgeBtn = document.querySelector(".cta-nudge-btn[data-nudge-position=mobile-footer]"); 1675 1676 const useWebsiteButtonStyle = true; 1677 1678 if (!headerNudgeBtn && !footerNudgeBtn) return; 1679 1680 if(useWebsiteButtonStyle) applyCustomTempBtnStyles(headerNudgeBtn, footerNudgeBtn); 1681} 1682 1683function getCustomTempBtnStyles() { 1684 let tempBtn = document.querySelector("a.custom-temp-btn"); 1685 1686 // If not present, create a temporary one 1687 let created = false; 1688 if (!tempBtn) { 1689 tempBtn = document.createElement("a"); 1690 tempBtn.className = "custom-temp-btn"; 1691 tempBtn.style.visibility = "hidden"; 1692 tempBtn.style.position = "absolute"; 1693 tempBtn.style.pointerEvents = "none"; 1694 document.body.appendChild(tempBtn); 1695 created = true; 1696 } 1697 1698 const styles = window.getComputedStyle(tempBtn); 1699 1700 // Border radius logic - only determine it once on first visit 1701 let borderRadius; 1702 const storedBorderRadius = sessionStorage.getItem("nudgeBtnBorderRadius"); 1703 1704 if (storedBorderRadius !== null) { 1705 borderRadius = storedBorderRadius; // already determined, use it 1706 } else if (document.body.classList.contains("home-page") && !created) { 1707 borderRadius = styles.borderRadius; // homepage with real button, store it 1708 sessionStorage.setItem("nudgeBtnBorderRadius", borderRadius); 1709 } else { 1710 borderRadius = "0px"; // first visit is not homepage, lock to 0 forever 1711 sessionStorage.setItem("nudgeBtnBorderRadius", borderRadius); 1712 } 1713 1714 const stylePatch = { 1715 fontFamily: styles.fontFamily, 1716 fontWeight: styles.fontWeight, 1717 borderRadius: borderRadius, 1718 textTransform: styles.textTransform 1719 }; 1720 1721 // Cleanup if we created it 1722 if (created) { 1723 document.body.removeChild(tempBtn); 1724 } 1725 1726 return stylePatch; 1727} 1728 1729function applyCustomTempBtnStyles(headerNudgeBtn, footerNudgeBtn) { 1730 const stylePatch = getCustomTempBtnStyles(); 1731 if (!stylePatch) return; 1732 1733 [headerNudgeBtn, footerNudgeBtn].filter(Boolean).forEach((btn) => { 1734 Object.assign(btn.style, stylePatch); 1735 }); 1736}</script>
1736</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.