1<!DOCTYPE html> 2�<html lang="en"><head><meta content="http://theloopwestend.com/reservations" property="og:url"/><meta content="website" property="og:type"/><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 ..." property="og:description"/><meta content="The Loop West End - 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-GRDYRYTEWW'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-10-06 13:19:27.392933Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://theloopwestend.com/reservations" rel="canonical"/><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="" name="description"/><meta content="" name="author"/><meta content="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 - Reservations" 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>The Loop West End - Reservations</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/fancybox/source/jquery.fancybox.css" media="screen" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/theloopwestend--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.css" rel="stylesheet" type="text/css"/><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 .webkit-mobile-body > div:first-child { 15 -webkit-overflow-scrolling: touch; 16 } 17 18 .drink-menu.reservations-ot-page { 19 background-color: #fff; 20 color: #000; 21 } 22 23 /* content/position/z-index below are required - without content:"" a :before pseudo- 24 element never generates at all per the CSS spec (nothing renders, no error either). 25 position:fixed + z-index:-1 keeps it a background layer behind all page content, 26 instead of a filter/background-image directly on .reservations-ot-page itself, which 27 would dim/gray out the actual text content along with the image. */ 28 .drink-menu.reservations-ot-page > div:first-child { 29 background-color: transparent; 30 } 31 32 .drink-menu.reservations-ot-page > div:first-child:before { 33 content: ""; 34 position: fixed; 35 top: 0; 36 left: 0; 37 right: 0; 38 bottom: 0; 39 z-index: -1; 40 display: block; 41 background-image: url('https://static.spotapps.co/website_images/ab_websites/112064_website_v3/reservations_ot_bg.jpg'); 42 background-repeat: no-repeat; 43 background-size: cover; 44 -webkit-filter: grayscale(0.6) opacity(0.1); 45 -moz-filter: grayscale(0.6) opacity(0.1); 46 -o-filter: grayscale(0.6) opacity(0.1); 47 -ms-filter: grayscale(0.6) opacity(0.1); 48 filter: grayscale(0.6) opacity(0.1); 49 } 50 51 .reservations-ot-page .reservations-ot-wrapper { 52 background-color: transparent; 53 background-image: url(https://static.spotapps.co/web/theloopwestend--com/none); 54 } 55 .reservations-ot-page .reservations-ot-wrapper h1 { 56 color: #000; 57 } 58 .reservations-ot-page .reservations-ot-wrapper p { 59 color: #000; 60 } 61 .reservations-ot-page .reservations-ot-gallery-wrapper { 62 background-color: transparent; 63 background-image: url(https://static.spotapps.co/web/theloopwestend--com/); 64 } 65 .reservations-ot-page .reservations-ot-gallery-wrapper h2 { 66 color: #000; 67 } 68 .reservations-ot-page .reservations-ot-gallery-wrapper { 69 color: #000; 70 } 71 </style>
71<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
71<script> 72function ga_check(){ 73 return true; 74} 75</script>
75<script> 76function universal_ga(action, type, category, ev_action, label){ 77 if(typeof ga === 'function') 78 { 79 if(!(action && label)) 80 ga(action, type, category) 81 else 82 ga(action, type, category, ev_action, label) 83 } 84 85 if(typeof gtag === 'function') 86 { 87 if(!(action && label)) 88 { 89 hash = category 90 ev_label = hash["eventLabel"] 91 var splits = ev_label.match(/.{1,100}/g) ?? []; 92 delete(hash["eventLabel"]) 93 94 if(splits.length <= 1) 95 hash["eventLabel"] = ev_label 96 else 97 { 98 for (let i = 0; i < splits.length; i++) { 99 var key = "eventLabel_"+i 100 hash[key] = splits[i] 101 } 102 } 103 console.log(hash) 104 gtag("event", hash["eventCategory"], hash); 105 } 106 else 107 { 108 var hash = { 109 eventCategory: category, 110 eventAction: ev_action 111 } 112 113 var splits = label.match(/.{1,100}/g) ?? []; 114 if(splits.length <= 1) 115 hash["eventLabel"] = label 116 else 117 { 118 for (let i = 0; i < splits.length; i++) { 119 var key = "eventLabel_"+i 120 hash[key] = splits[i] 121 } 122 } 123 gtag("event", hash["eventCategory"], hash); 124 } 125 } 126} 127</script>
127<script> function getPromotionUrlParams(){ 128 var params_str = sessionStorage.getItem('shUrlParams'); 129 if (params_str != null){ 130 return JSON.parse(params_str); 131 }else{ 132 return {}; 133 } 134 } 135 136 function getPromotionSourceDetails(){ 137 var params_str = localStorage.getItem('promotionSourceDetails'); 138 if (params_str != null){ 139 return JSON.parse(params_str); 140 }else{ 141 return {}; 142 } 143 } 144 145 function getLastEmailVisitInDays(){ 146 var promotionSourceDetails = getPromotionSourceDetails(); 147 if (!promotionSourceDetails['last_visit_email'] ){ 148 return null; 149 } 150 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 151 } 152 153 function getLastSocialVisitInDays(){ 154 var promotionSourceDetails = getPromotionSourceDetails(); 155 if (!promotionSourceDetails['last_visit_social'] ){ 156 return null; 157 } 158 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 159 } 160 161 var shUrlParams = getPromotionUrlParams(); 162 var promotionSourceDetails = getPromotionSourceDetails(); 163 164 new URL(document.location).searchParams.forEach(function(value, paramName){ 165 166 shUrlParams[paramName] = value; 167 168 if (paramName == 'source' && value =='social' ){ 169 promotionSourceDetails['last_visit_social'] = new Date(); 170 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 171 } 172 173 if (paramName == 'source' && value =='email' ){ 174 promotionSourceDetails['last_visit_email'] = new Date(); 175 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 176 } 177 178 }); 179 180 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 181</script>
181<style>.cta-nudge-btn[data-nudge-position="mobile-header"], 182.cta-nudge-btn[data-nudge-position="mobile-footer"] { 183 display: inline-block; 184 font-family: inherit; 185 font-weight: inherit; 186 text-transform: uppercase; 187 text-decoration: none; 188 text-align: center; 189 border-width: 2px; 190 border-style: solid; 191 border-radius: 0; 192} 193 194nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"], 195.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"], 196nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:hover, 197nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:focus, 198.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:hover, 199.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:focus { 200 background-color: #000000; 201 color: #FFFFFF; 202 border-color: #FFFFFF; 203} 204 205nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"] span, 206.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"] span, 207nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:hover span, 208nav.navbar .socialnav .mobile-header-nudge-item .cta-nudge-btn[data-nudge-position="mobile-header"]:focus span, 209.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:hover span, 210.navbar-fixed-bottom .mobile-footer-nudge-item .cta-nudge-btn[data-nudge-position="mobile-footer"]:focus span { 211 color: #FFFFFF; 212} 213 214nav.navbar .socialnav .cta-nudge-btn[data-nudge-position="mobile-header"] { 215 width: auto; 216 padding: 6px 15px; 217 margin: -2px 5px 0 0; 218 font-size: 1.1em; 219} 220 221.navbar-fixed-bottom .mobile-footer-nudge-item { 222 width: 100%; 223 margin: 6px 15px; 224 padding: 0; 225} 226 227.navbar-fixed-bottom .cta-nudge-btn[data-nudge-position="mobile-footer"] { 228 width: 100%; 229 padding: 8px 15px; 230 margin: 0 auto; 231 font-size: 1.3em; 232}</style><style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 233a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 234a.get-directions-footer-link:hover{transform:scale(1.08);} 235@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 236a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu party party-background reservations-page reservations-ot-page "><div><header style="background-color:#000000;"><style> 237 238 .nav-v7 .navbar-logo .container { 239 height: 80px; 240 } 241 .nav-v7 .navbar-logo .header-logo img { 242 max-height: 80px; 243 } 244 245 246.navbar.nav-v6 .navbar-logo .container { 247 height: 100px; 248 padding-top: 10px; 249 padding-bottom: 10px; 250} 251.navbar.nav-v6.nav-scroll .navbar-logo .container { 252 height: 70px; 253 padding-top: 0px; 254 padding-bottom: 0px; 255} 256.navbar.nav-v6 .header-logo img { 257 max-width: 100%; 258} 259.navbar.nav-v6.nav-scroll .header-logo img { 260 max-width: 80%; 261} 262.nav-v7 .navbar-logo .header-logo img { 263 max-height: 100px; 264} 265.nav-v7.nav-scroll .navbar-logo .header-logo img { 266 max-height: 70px; 267} 268 269@media (max-width: 767px) { 270 /* DO NOT change mobile nav height on page scroll */ 271 .navbar.nav-v6 .navbar-header, 272 .navbar.nav-v6.nav-scroll .navbar-header { 273 padding-top: 10px; 274 padding-bottom: 10px; 275 } 276 .navbar.nav-v6 .socialnav, 277 .navbar.nav-v6.nav-scroll .socialnav { 278 margin-top: 10px; 279 } 280 .navbar.nav-v6 .container, 281 .navbar.nav-v6.nav-scroll .container { 282 padding-top: 0; 283 padding-bottom: 0; 284 } 285 .navbar.nav-v6 .header-logo, 286 .navbar.nav-v6.nav-scroll .header-logo { 287 height: 70px; 288 } 289 .navbar.nav-v6 .header-logo img { 290 max-height: 100%; 291 } 292 .navbar.nav-v6.nav-scroll .header-logo img { 293 max-width: 100%; 294 } 295 /* HOME page CHANGE mobile nav height on page scroll */ 296 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 297 body.home-page .navbar.nav-v6 .navbar-header { 298 padding-top: 10px; 299 padding-bottom: 10px; 300 } 301 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 302 padding-top: 0px; 303 padding-bottom: 0px; 304 } 305 body.home-page .navbar.nav-v6 .socialnav { 306 margin-top: 10px; 307 } 308 body.home-page .navbar.nav-v6.nav-scroll .socialnav { 309 margin-top: 0px; 310 } 311 body.home-page .navbar.nav-v6 .container{ 312 padding-top: 0; 313 padding-bottom: 0; 314 } 315 body.home-page .navbar.nav-v6.nav-scroll .container { 316 padding-top: 0; 317 padding-bottom: 0; 318 } 319 body.home-page .navbar.nav-v6 .header-logo { 320 height: 70px; 321 } 322 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 323 height: 50px; 324 } 325 body.home-page .navbar.nav-v6 .header-logo img { 326 max-height: 100%; 327 max-width: 100%; 328 } 329 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 330 max-width: 80%; 331 } 332} 333 334 335.navbar-regular .navbar-collapse.collapse.in { 336 background-color: transparent; 337 width: 100%; 338} 339.navbar.nav-v6 .navbar-tabs { 340 background-color: #fff; 341 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 342 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 343 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 344} 345.navbar.nav-v6.nav-scroll .navbar-tabs { 346 background-color: #fff; 347 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 348 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 349 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 350} 351.drink-menu .navbar.nav-v6 .navbar-tabs { 352 background-color: #fff; 353 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 354 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 355 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 356} 357.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 358 background-color: #fff; 359 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 360 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 361 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 362} 363li.drop-down-link .sub-menu { 364 background-color: #fff; 365 color: #000; 366 } 367.nav-scroll li.drop-down-link .sub-menu { 368 background-color: #fff; 369 color: #000; 370} 371.drink-menu li.drop-down-link .sub-menu { 372 background-color: #fff; 373 color: #000; 374} 375.drink-menu .nav-scroll li.drop-down-link .sub-menu { 376 background-color: #fff; 377 color: #000; 378} 379li.drop-down-link .sub-menu a, 380li.drop-down-link div.drop-down { 381 color: #000; 382} 383.nav-scroll li.drop-down-link .sub-menu a, 384.nav-scroll li.drop-down-link div.drop-down { 385 color: #000; 386} 387.drink-menu li.drop-down-link .sub-menu a, 388.drink-menu li.drop-down-link div.drop-down { 389 color: #000; 390} 391.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 392.drink-menu .nav-scroll li.drop-down-link div.drop-down { 393 color: #000; 394} 395 396.navbar.nav-v6 .navbar-logo { 397 background-color: #fff; 398} 399.navbar.nav-v6.nav-scroll .navbar-logo { 400 background-color: #fff; 401} 402.drink-menu .navbar.nav-v6 .navbar-logo { 403 background-color: #fff; 404} 405.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo { 406 background-color: #fff; 407} 408 409.navbar-regular.nav-v6 .navbar-nav>li>a, 410.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 411.navbar-regular.nav-v6 .navbar-nav>.active>a, 412.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 413.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 414 border: none; 415 border-right: 1px solid #000; 416 background-color: transparent; 417 color: #4C2432; 418} 419.navbar-regular.nav-v6 .navbar-nav>li>a { 420 color: #000; 421} 422.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 423 color: #000; 424 border-right: 1px solid #000; 425} 426.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 427.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 428.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 429.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 430 color: #4C2432; 431} 432 433li.drop-down-link .sub-menu a:hover, 434li.drop-down-link .sub-menu a:focus, 435li.drop-down-link .sub-menu li.active a { 436 color: #4C2432; 437} 438.drink-menu li.drop-down-link .sub-menu a:hover, 439.drink-menu li.drop-down-link .sub-menu a:focus, 440.drink-menu li.drop-down-link .sub-menu li.active a { 441 color: #4C2432; 442} 443 444.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a, 445.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 446.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 447.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 448.navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover{ 449 color: #4C2432; 450} 451.navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 452 color: #000; 453} 454.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 455 color: #000; 456} 457.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a { 458 color: #000; 459} 460.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>li>a:hover, 461.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a, 462.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:focus, 463.drink-menu .navbar-regular.nav-v7 .navbar-contact .navbar-nav>.active>a:hover {
464 color: #4C2432; 465} 466 467.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 468 background-color: #000; 469} 470.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 471 background-color: #000; 472} 473.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 474 background-color: #4C2432; 475} 476.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 477 background-color: #4C2432; 478} 479.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 480.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 481.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 482.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 483.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 484 border: none; 485 border-right: 1px solid #000; 486 color: #4C2432; 487} 488.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 489 color: #000; 490} 491.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 492 color: #000; 493 border-right: 1px solid #000; 494} 495.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 496.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 497.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 498.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 499 color: #4C2432; 500} 501 502.nav-scroll li.drop-down-link .sub-menu a:hover, 503.nav-scroll li.drop-down-link .sub-menu a:focus, 504.nav-scroll li.drop-down-link .sub-menu li.active a { 505 color: #4C2432; 506} 507.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 508.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus, 509.drink-menu .nav-scroll li.drop-down-link .sub-menu li.active a { 510 color: #4C2432; 511} 512 513.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a, 514.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 515.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 516.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 517.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover { 518 color: #4C2432; 519} 520.navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 521 color: #000; 522} 523.drink-menu .navbar.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a { 524 color: #000; 525} 526.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>li>a:hover, 527.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a, 528.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:focus, 529.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-contact .navbar-nav>.active>a:hover{ 530 color: #4C2432; 531} 532 533.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 534 background-color: #000; 535} 536.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 537 background-color: #000; 538} 539.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 540 background-color: #4C2432; 541} 542.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 543 background-color: #4C2432; 544} 545.navbar.nav-v6 .header-logo-text{ 546 color: #000; 547} 548.navbar.nav-v6.nav-scroll .header-logo-text{ 549 color: #000; 550} 551.navbar.nav-v6 .social-icon{ 552 color: #000; 553} 554.navbar.nav-v6.nav-scroll .social-icon{ 555 color: #000; 556} 557.navbar.nav-v6 .social-square .contact-icon:hover { 558 color: #000; 559 background-color: #4C2432; 560} 561.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 562 color: #000; 563 background-color: #4C2432; 564} 565 566.drink-menu .navbar.nav-v6 .header-logo-text{ 567 color: #000; 568} 569.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 570 color: #000; 571} 572.drink-menu .navbar.nav-v6 .social-icon{ 573 color: #000; 574} 575.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 576 color: #000; 577} 578.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 579 color: #000; 580 background-color: #4C2432; 581} 582.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 583 color: #000; 584 background-color: #4C2432; 585} 586.navbar.nav-v6 .navbar-logo .container { 587 border-bottom: 1px solid #000; 588} 589.navbar.nav-v6.nav-scroll .navbar-logo .container { 590 border-bottom: 1px solid #000; 591} 592.drink-menu .navbar.nav-v6 .navbar-logo .container { 593 border-bottom: 1px solid #000; 594} 595.drink-menu .navbar.nav-v6.nav-scroll .navbar-logo .container { 596 border-bottom: 1px solid #000; 597} 598@media (max-width: 767px) { 599 .navbar.nav-v6 { 600 background-color: #fff; 601 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 602 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 603 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 604 } 605 .navbar.nav-v6.nav-scroll { 606 background-color: #fff; 607 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 608 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 609 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 610 } 611 .drink-menu .navbar.nav-v6 { 612 background-color: #fff; 613 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 614 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 615 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 616 } 617 .drink-menu .navbar.nav-v6.nav-scroll { 618 background-color: #fff; 619 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 620 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 621 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 622 } 623 .navbar.nav-v6 .container, 624 .navbar.nav-v6.nav-scroll .container, 625 .drink-menu .navbar.nav-v6 .container, 626 .drink-menu .navbar.nav-v6.nav-scroll .container { 627 border-bottom: none; 628 } 629 .navbar.nav-v6 .navbar-header { 630 border-bottom: 2px solid #000; 631 } 632 .navbar.nav-v6.nav-scroll .navbar-header { 633 border-bottom: 2px solid #000; 634 } 635 .drink-menu .navbar.nav-v6 .navbar-header { 636 border-bottom: 2px solid #000; 637 } 638 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 639 border-bottom: 2px solid #000; 640 } 641 li.drop-down-link .sub-menu, 642 .drink-menu li.drop-down-link .sub-menu { 643 background-color: transparent; 644 } 645 .nav-scroll li.drop-down-link .sub-menu, 646 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 647 background-color: transparent; 648 } 649 /* Mobile home background */ 650 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 651 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 652 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 653 background-color: #ffffff; 654 } 655 /* Mobile home background scroll */ 656 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 657 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 658 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 659 background-color: #ffffff; 660 } 661 /* Mobile pages background */ 662 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 663 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 664 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 665 background-color: #ffffff; 666 } 667 /* Mobile pages background scroll */ 668 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 669 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 670 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 671 background-color: #ffffff; 672 } 673 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 674 .navbar-regular.nav-v6 .navbar-nav>.active>a, 675 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 676 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 677 background-color: #4C2432; 678 color: #000; 679 } 680 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 681 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 682 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 683 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 684 background-color: #4C2432; 685 color: #000; 686 } 687 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 688 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 689 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 690 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 691 background-color: #4C2432; 692 color: #000; 693 } 694 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 695 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 696 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 697 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 698 background-color: #4C2432; 699 color: #000; 700 } 701 702 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 703 color: #000; 704 } 705 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 706 color: #000; 707 } 708 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 709 color: #000; 710 } 711 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 712 color: #000; 713 } 714} 715</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>
715(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"> 716 717 Menu 718 719 </a></li><li class=" "><a class="" href="/drink-menu" id="nav_tab_2_link" target="_self"> 720 721 Drinks 722 723 </a></li><li class=" "><a class="" href="/specials" id="nav_tab_3_link" target="_self"> 724 725 Specials 726 727 </a></li><li class=" "><a class="" href="/events" id="nav_tab_4_link" target="_self"> 728 729 Events 730 731 </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"> 732 733 Parties 734 735 </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"> 736 Menu 737 </a></li><li class=" "><a class="" href="/drink-menu" id="mobile_nav_tab_2_link" target="_self"> 738 Drinks 739 </a></li><li class=" "><a class="" href="/specials" id="mobile_nav_tab_3_link" target="_self"> 740 Specials 741 </a></li><li class=" "><a class="" href="/events" id="mobile_nav_tab_4_link" target="_self"> 742 Events 743 </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"> 744 Parties 745 </a></li></ul></div></div></div></nav></header><main id="content" role="main"><article><div class="pagecontent"><div class="tabs-container"><div class="scrolling"><div class="container"><div class="row reservations-ot-wrapper section-wrapper"><div class="col-md-12 col-xs-12 col-sm-12 reservations-ot-text-holder"><h1 class="section-header reservations-ot-page-title">Reservations at The Loop West End in Saint Louis Park</h1><p>Reserve a table with us for American food and drinks in Blackstone, with an upbeat dining room and plenty of TVs for catching the game. Our <a class="text-link" href="/food-menu">Menu page</a> is the best place to browse salads and sandwiches, pizzas, and weekend brunch options.
745</p><p>Use this page to reserve for lunch, dinner, or weekend brunch plans. Weâre open Monday through Friday from 11:00 AM to 2:00 AM, Saturday from 10:00 AM to 2:00 AM, and Sunday from 10:00 AM to midnight. If you have a seating preference, include it with your reservation.</p></div><div class="col-md-12 col-xs-12 col-sm-12 reservations-ot-text-holder"><div class="open-table-holder open-table-desktop open-table-wide">
745<script src="//www.opentable.com/widget/reservation/loader?rid=213007&domain=com&type=standard&theme=wide&lang=en&overlay=false&iframe=true&color=1&dark=false&ot_source=Restaurant%20website" type="text/javascript"> 746 </script>
746</div><div class="open-table-holder open-table-mobile open-table-tall">
746<script src="//www.opentable.com/widget/reservation/loader?rid=213007&domain=com&type=standard&theme=tall&lang=en&overlay=false&iframe=true&color=1&dark=false&ot_source=Restaurant%20website" type="text/javascript"></script>
746</div></div></div><div class="row reservations-ot-gallery-wrapper section-wrapper"><div class="col-md-12 col-xs-12 col-sm-12"><div class="reservations-ot-gallery-wrapper-text-holder"><h2 class="section-header reservations-ot-page-subtitle">Welcome to The Loop West End!</h2><p> 747Join us at <a class="text-link" href="https://maps.app.goo.gl/5UDcNN7SzFMiNvGK8" target="_blank"><span class="visuallyhidden">View </span>5331 West 16th Street, St Louis Park, MN 55416<span class="visuallyhidden"> on Google maps - opens in a new tab</span></a>. Free parking is available in the garage, lot, and on the street. 748</p></div><div class="reservations-ot-images-holder" id="reservations_ot_gallery"><button class="visuallyhidden skip-content gallery-toggle gt-off">Skip Photo Gallery</button><div class="grid-section"><div class="gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/dc/8b2237fe33457a9a8d557f29f8c40b/full"><div class="img"><img alt="The Loop West End gallery photo 1" src="//static.spotapps.co/spots/dc/8b2237fe33457a9a8d557f29f8c40b/full"/></div></a></div><div class="gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/e1/6530489828490aa1c0c66e3abaca6b/full"><div class="img"><img alt="The Loop West End gallery photo 2" src="//static.spotapps.co/spots/e1/6530489828490aa1c0c66e3abaca6b/full"/></div></a></div><div class="gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/26/d96de992ed43c0961682e295764024/full"><div class="img"><img alt="The Loop West End gallery photo 3" src="//static.spotapps.co/spots/26/d96de992ed43c0961682e295764024/full"/></div></a></div><div class="gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/b8/55f690e0e34a23beeb4fed7804a6b5/full"><div class="img"><img alt="The Loop West End gallery photo 4" src="//static.spotapps.co/spots/b8/55f690e0e34a23beeb4fed7804a6b5/full"/></div></a></div></div></div></div></div></div></div></div></div><style> 749 750 751.reviews-v2-wrapper .carousel-controls .carousel-control-btn { 752 color: #232323; 753} 754 755.reviews-v2-wrapper .owl-carousel .owl-nav button { 756 color: rgba(35, 35, 35, 0.7); 757} 758.reviews-v2-wrapper .owl-carousel .owl-nav button:hover, 759.reviews-v2-wrapper .owl-carousel .owl-nav button:focus { 760 color: rgba(35, 35, 35, 1); 761} 762 763 764.reviews-v2-wrapper h4 .fa.fa-star { 765 color: #D63044; 766} 767.reviews-v2-wrapper .review-quote { 768 color: #232323; 769} 770</style><div class="carousel-wrapper reviews-v2-wrapper section-wrapper" id="reservations_ot_reviews"><h2 class="section-header">Take a look at the reviews for a quick preview of the experience.</h2><div class="container"><div aria-label="reviews carousel" class="row" role="region"><div class="carousel-controls" id="ReviewesCarouselControls"><button aria-label="The Reviews carousel is currently playing, pause the Reviews carousel" class="carousel-control-btn stop-carousel" type="button"><i aria-hidden="true" class="fa fa-pause"></i><i aria-hidden="true" class="fa fa-play"></i><span class="visuallyhidden"> Start stop reviews carousel</span></button></div><ul class="owl-dots"><li class="owl-dot"></li><li class="owl-dot"></li><li class="owl-dot"></li></ul><div class="col-md-12 col-xs-12"><div class="owl-carousel owl-theme"><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 771 Jagnoor S: 772 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>Amazing food. Excellent staff and manager. Food portions are reasonable and not too big. Everything they co
772ok is made to perfection. Try their brunch.</p></blockquote></div></div></section><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 773 Alex G: 774 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>DJ and dancing on Friday and Saturday nights. Food and service was great, We had a huge nacho platter, delicious, then had fun dancing. Our server was great and helpful.</p></blockquote></div></div></section><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 775 Kurt E: 776 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>We take people there for apps and drinks after work. Everything we've had has been very good and service is great and friendly!</p></blockquote></div></div></section></div></div></div></div></div><div class="maps-wrapper section-wrapper" id="openstreetmap"><div style="position: relative;"><div aria-label="OpenStreet map" id="map-container" role="region"></div></div></div></article><article><style> 777 778.contact-v3 .hours-title, .contact-v3 .social-title, .contact-v3 .contact-us-title { 779 color: #fff; 780} 781.contact a:hover, .contact a:active, .contact-us a:hover, .contact-us a:active { 782 color: #fff; 783} 784.contact-v3 .social-circle .contact-icon { 785 color: rgba(255, 255, 255, 0.8); 786} 787 .contact-v3 .social-square .contact-icon { 788 color: #fff; 789 } 790 .contact-v3 .social-square .contact-icon:hover { 791 color: #4C2432; 792 background-color: #fff; 793 } 794 795</style><footer class="contact-holder"><div class="contact-v3 contact-v3-center section-wrapper" id="contact_v3"><div class="container"><div class="row"><div class="col-md-4 col-sm-4 col-xs-12"><section><div class="contact-location"><div class="hours-title"><h2>Location</h2></div><div class="address" data-gbp-injected="business-name">The Loop West End</div><div class="address">5331 West 16th Street</div><div class="city-state">St Louis Park, MN</div><div class="zip">55416</div><div class="address" data-gbp-injected="get-directions"><a aria-label="Get directions to The Loop West End, opens in a new tab" class="get-directions-footer-link" href="https://www.google.com/maps/dir/?api=1&destination=The%20Loop%20West%20End&destination_place_id=ChIJaZGkSaI0s1IR4KXuICXDEBw" rel="noopener" style="text-decoration: underline; display: inline-block; padding: 5px 0;" target="_blank"><i aria-hidden="true" class="fa fa-map-marker"></i> Get Directions</a></div></div></section></div><div class="col-md-4 col-sm-4 col-xs-12"><section><div class="hours"><div class="hours-title"><h2>Hours</h2></div><div class="days"> 796 Monday, Tuesday, Wednesday, Thursday, Friday </div><div class="from-to"> 797 11:00 AM - 2:00 AM </div><div class="days"> 798 Saturday </div><div class="from-to"> 799 10:00 AM - 2:00 AM </div><div class="days"> 800 Sunday </div><div class="from-to"> 801 10:00 AM - 12:00 AM </div></div></section></div><div class="col-md-4 col-sm-4 col-xs-12"><div class="find-us"><section><div class="social"><div class="social-title"><h2>Find us on...</h2></div><ul class="social-links social-icons-holder social-square"><li><a class="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><a class="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><a class="contact-icon" href="https://www.tiktok.com/@theloopwestend" target="_blank"><svg aria-hidden="true" height="37" viewbox="-4 5 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.66
8017-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></section><section><div class="contact-us"><div class="contact-us-title"><h2>Contact us</h2></div><p><a href="tel:+19526812684" id="contact_us_v3_section_phone_link"><span class="visuallyhidden">Call us at </span>(952)-681-2684</a></p><p><a href="mailto:[email protected]"><span class="visuallyhidden">Write us at </span>[email protected]</a></p></div></section></div></div></div></div></div></footer></article></main></div><style type="text/css"> 802 .navbar-fixed-bottom.nav-v1 { 803 bottom: -100px; 804 } 805 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 806 background-color: #4C2432; 807 } 808 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 809 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 810 fill: #000; 811 } 812 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 813 color: #fff; 814 } 815 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 816 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 817 color: #fff; 818 text-decoration: none; 819 } 820</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>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/jquery/jquery.min.js"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/bootstrap/js/bootstrap.min.js"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/owlcarousel/owl.carousel.min.js"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/fancybox/source/jquery.fancybox.js" type="text/javascript"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/fancybox/source/jquery.fancybox.pack.js" type="text/javascript"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7" type="text/javascript"></script>
820<script src="https://static.spotapps.co/web/theloopwestend--com/lib/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6" type="text/javascript"></script>
820<script src="https://static.spotapps.co/iframeResizer.js" type="text/javascript"></script>
820<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.js"></script>
820<script src="//static.spotapps.co/web-lib/leaflet/leaflet-providers.js"></script>
820<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.js"></script>
820<script> 821 822 $("#bottom_link_4").on("click", function(){ 823 if (ga_check()) 824 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 825 }); 826 $("#bottom_link_3").on("click", function(){ 827 if (ga_check()) 828 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 829 }); 830 $("#bottom_link_5").on("click", function(){ 831 if (ga_check()) 832 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 833 });$(document).ready(function() { 834 var fancyboxSliderReservationsOt = $('#reservations_ot_gallery .fancybox'); 835 836 fancyboxSliderReservationsOt.attr('rel', 'gallery').fancybox({ 837 beforeShow : function() { 838 var alt = this.element.find('img').attr('alt'); 839 this.inner.find('img').attr('alt', alt); 840 }, 841 padding : 15, 842 margin: 20, 843 arrows : true, 844 closeBtn: true, 845 autoPlay : false, 846 playSpeed : 3000, 847 loop : true, 848 openEffect : 'fade', 849 closeEffect : 'fade', 850 nextEffect : 'elastic', 851 prevEffect : 'elastic', 852 helpers : { 853 overlay : { 854 css : { 855 'background' : 'rgba(0, 0, 0, 0.5)' 856 }, 857 locked: false 858 } 859 } 860 }); 861 862 var reservationsOtGalleryToggleBtn = $('#reservations_ot_gallery .gallery-toggle'); 863 var reservationsOtGalleryImages = $('#reservations_ot_gallery .gallery-item a'); 864 var reservationsOtGalleryToggleTextOff = 'The Photo Gallery of ' + reservationsOtGalleryImages.length + ' images can be accessed, hide the Photo Gallery from the Screen Reader'; 865 var reservationsOtGalleryToggleTextOn = 'The Photo Gallery of ' + reservationsOtGalleryImages.length + ' images is hidden from the Screen Reader, access the Photo Gallery'; 866 reservationsOtGalleryToggleBtn.attr('aria-label', reservationsOtGalleryToggleTextOff); 867 868 reservationsOtGalleryToggleBtn.on('click',function(){ 869 $(this).toggleClass('gt-off'); 870 871 const parentElement = $(this).closest('article'); 872 const nextElement = $(parentElement).next(); 873 874 if ($(this).hasClass('gt-off')) { 875 $(this).attr('aria-label', reservationsOtGalleryToggleTextOff); 876 reservationsOtGalleryImages.each(function() { 877 $(this).attr('aria-hidden', 'false').attr('tabindex', '0'); 878 }); 879 } else { 880 $(this).attr('aria-label', reservationsOtGalleryToggleTextOn); 881 reservationsOtGalleryImages.each(function() { 882 $(this).attr('aria-hidden', 'true').attr('tabindex', '-1'); 883 }); 884 885 if (nextElement.length !== 0) { 886 const scrollTo = $(nextElement).offset().top - 100; 887 $('html, body').animate({ scrollTop: scrollTo }, 1000); 888 } 889 } 890 }); 891}); 892 $('.header-logo-a, .header-logo.header-logo-mobile, .nav-v2-home-btn').click(function(event) { 893 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 894 event.preventDefault(); 895 var windowScrollTop = $(window).scrollTop(); 896 if(windowScrollTop > 150) { 897 $('html, body').animate({scrollTop: 0}, 750); 898 } 899 } 900 }); 901 902$(".banner-section a.banner-pin").click(function(e) { 903 // target element id 904 var id = $(this).attr('href'); 905 906 // target element 907 var section = $(id); 908 if (section.length === 0) { 909 return; 910 } 911 912 // prevent standard hash navigation (avoid blinking in IE) 913 e.preventDefault(); 914 915 // top position relative to the document 916 var pos = section.offset().top - 100 + 10; 917 918 // animated top scrolling 919 $('body, html').animate({scrollTop: pos}, 750); 920}); 921 922$(document).ready(function() { 923 var navHeight = $('nav.navbar').height(); 924 $('html').css("scroll-padding-top", navHeight); 925}); 926 927$(document).on('scroll', function (e) { 928 if($(document).scrollTop() > 0) { 929 $('.navbar.nav-v7').addClass('nav-scroll'); 930 }else { 931 $('.navbar.nav-v7').removeClass('nav-scroll'); 932 } 933}); 934 935$(function() { 936 setDropDownMenuWidth(); 937 938 function setDropDownMenuWidth() { 939 var tabs_list = $('.navbar-tabs .navbar-nav'); 940 941 $(tabs_list).find('li.drop-down-link').each(function() { 942 var sub_menu_width = $(this).outerWidth(true); 943 if (sub_menu_width < 100) { 944 sub_menu_width = 100; 945 } 946 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 947 }); 948 } 949 950 $( window ).resize(function() { 951 setDropDownMenuWidth(); 952 }); 953 954 $('.nav a:not(.drop-down)').on('click', function () { 955 $('.navbar-collapse').collapse('hide'); 956 }); 957 958}); 959 960 961 962$( '.drop-down-link .drop-down' ).click(function(event) { 963 event.preventDefault(); 964 event.stopPropagation(); 965 966 // Close previously opened dropdown menus 967 $('.drop-down-link.active .sub-menu').slideUp(); 968 $('.drop-down-link.active').find('.drop-down').attr('aria-expanded', false); 969 $('.drop-down-link.active').removeClass('active'); 970 971 var drop_down = $(this).closest('.drop-down-link'); 972 var drop_down_a = $(this); 973
974 if($(drop_down_a).attr("aria-expanded") == "true") { 975 $(drop_down_a).attr("aria-expanded",false) 976 } else { 977 $(drop_down_a).attr("aria-expanded",true) 978 } 979 980 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 981 982 if ( $(sub_menu).is( ':hidden' ) ) { 983 $(sub_menu).slideDown(); 984 $(drop_down).addClass('active'); 985 } else { 986 $(sub_menu).slideUp(); 987 $(drop_down).removeClass('active'); 988 } 989}); 990 991$(".nav-v7 .navbar-contact .nav-address a").click(function(e) { 992 993 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 994 // target element id 995 var id = $(this).attr('href').substr(1); 996 997 // target element 998 var section = $(id); 999 if (section.length === 0) { 1000 return; 1001 } 1002 1003 // prevent standard hash navigation (avoid blinking in IE) 1004 e.preventDefault(); 1005 1006 // top position relative to the document 1007 var pos = section.offset().top - 100 + 10; 1008 1009 // animated top scrolling 1010 $('body, html').animate({scrollTop: pos}, 750); 1011 1012 } 1013}); 1014 1015const mobileDrop = document.querySelector('.mobile-full-height #navbar-collapse-1 .navbar-nav'); 1016const mobileDropButton = document.querySelector('.mobile-full-height .navbar-toggle'); 1017const mobileHeader = document.querySelector('.mobile-full-height .navbar-header'); 1018 1019mobileDropButton?.addEventListener('click', () => { 1020 mobileHeaderBottomPos = mobileHeader.getBoundingClientRect().bottom; 1021 mobileDrop.style.paddingTop = mobileHeaderBottomPos + 'px'; 1022}); 1023 1024(function () { 1025 const isSafari = (() => { 1026 const ua = navigator.userAgent; 1027 return ua.includes('Safari') && // Safari must be present 1028 !ua.includes('Chrome') && // Exclude Chrome (has 'Safari' in UA) 1029 !ua.includes('Edg'); // Exclude Edge 1030 })(); 1031 1032 if (!isSafari) return; 1033 const menu = document.getElementById('navbar-collapse-1'); 1034 1035 // When coming back from a _blank tab or bfcache restore, force a repaint. 1036 function nudgeRepaint() { 1037 if (!menu || !menu.classList.contains('in')) return; 1038 // toggle display to flush rendering, then poke will-change for one frame 1039 const prev = menu.style.display; 1040 menu.style.display = 'none'; 1041 // force reflow 1042 void menu.offsetHeight; 1043 menu.style.display = prev || ''; 1044 menu.style.willChange = 'opacity'; 1045 requestAnimationFrame(() => { menu.style.willChange = 'auto'; }); 1046 } 1047 1048 document.addEventListener('visibilitychange', () => { 1049 if (document.visibilityState === 'visible') nudgeRepaint(); 1050 }); 1051 1052 // iOS/macOS Safari often restores pages from bfcache 1053 window.addEventListener('pageshow', (e) => { 1054 if (e.persisted) nudgeRepaint(); 1055 else nudgeRepaint(); 1056 }, { passive: true }); 1057 1058 // Keep menu open when clicking links that open in a new tab 1059 menu?.addEventListener('click', (e) => { 1060 const a = e.target.closest('a'); 1061 if (!a) return; 1062 if (a.target === '_blank') { 1063 // avoid any delegated "close on link click" handlers firing first 1064 e.stopPropagation(); 1065 // allow navigation; after we return, repaint nudge will run 1066 } 1067 }, true); 1068})(); 1069 1070document.querySelectorAll('.navbar .navbar-nav > li.cta-nav-tab').forEach((li) => { 1071 li.addEventListener('click', (e) => { 1072 if (e.defaultPrevented) return; 1073 1074 if (e.target.closest('a')) return; 1075 1076 const link = li.querySelector('a[href]'); 1077 if (!link) return; 1078 1079 if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1 || link.target === '_blank') { 1080 window.open(link.href, link.target || '_blank'); 1081 return; 1082 } 1083 1084 link.click(); 1085 }); 1086 1087 li.addEventListener('keydown', (e) => { 1088 if ((e.key === 'Enter' || e.key === ' ') && !e.target.closest('a')) { 1089 const link = li.querySelector('a[href]'); 1090 if (!link) return; 1091 e.preventDefault(); 1092 link.click(); 1093 } 1094 }); 1095}); 1096 $(document).ready(function() { 1097 1098 var owlReviews = $('#reservations_ot_reviews .owl-carousel'); 1099 owlReviews.owlCarousel({ 1100 onInitialized: function (property) { 1101 //check if show dots is true in config 1102 if(true){ 1103 $('#reservations_ot_reviews .owl-dot').each(function( index ) { 1104 var i = index + 1; 1105 $(this).html('<button aria-label="Review '+i+'"><span class="visuallyhidden">Review '+i+'</span></button>'); 1106 }); 1107 } 1108 //check if show arrows is true in config 1109 if(true && !true){ 1110 reviewsOtHandleArrowTabbing(owlReviews); 1111 } 1112 //prevent voiceover from reading hidden content 1113 $('#reservations_ot_reviews').find('.owl-item').attr('aria-hidden','true'); 1114 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1115 }, 1116 margin: 0, 1117 nav: true, 1118 dots: true, 1119 dotsContainer: '#reservations_ot_reviews .owl-dots', 1120 autoplay: true, 1121 autoplayTimeout: 6000, 1122 autoplayHoverPause: false, 1123 loop: true, 1124 navText: [ '<button aria-label="previous review">‹</button>', '<button aria-label="next review">›</button>' ], 1125 responsive: { 1126 0: { 1127 items: 1 1128 }, 1129 600: { 1130 items: 1 1131 }, 1132 1000: { 1133 items: 1 1134 } 1135 } 1136 }); 1137 1138 function discontinuousReviewsOt(func){ 1139 var timer; 1140 return function(event){ 1141 if(timer) clearTimeout(timer); 1142 timer = setTimeout(func,200,event); 1143 }; 1144 } 1145 1146 $('#reservations_ot_reviews .owl-dot button').attr('aria-current', 'false'); 1147 $('#reservations_ot_reviews .owl-dot:first button').attr('aria-current', 'true'); 1148 1149 function reviewsOtCarouselStop() { 1150 owlReviews.trigger('stop.owl.autoplay'); 1151 owlReviews.data('owl.carousel').settings.autoplay = false;
1152 $('#reservations_ot_reviews .carousel-control-btn').removeClass('stop-carousel'); 1153 $('#reservations_ot_reviews .carousel-control-btn').addClass('play-carousel'); 1154 $('#reservations_ot_reviews .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently paused, play the Reviews carousel'); 1155 } 1156 1157 function reviewsOtCarouselPlay() { 1158 owlReviews.trigger('play.owl.autoplay',[1000]); 1159 owlReviews.data('owl.carousel').settings.autoplay = true; 1160 $('#reservations_ot_reviews .carousel-control-btn').removeClass('play-carousel'); 1161 $('#reservations_ot_reviews .carousel-control-btn').addClass('stop-carousel'); 1162 $('#reservations_ot_reviews .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently playing, pause the Reviews carousel'); 1163 } 1164 1165 $('#reservations_ot_reviews .carousel-control-btn').on('click',function(){ 1166 if ($(this).hasClass('stop-carousel')) { 1167 reviewsOtCarouselStop(); 1168 } else if ($(this).hasClass('play-carousel')) { 1169 reviewsOtCarouselPlay(); 1170 } 1171 }); 1172 1173 $('#reservations_ot_reviews .owl-dot').click(function () { 1174 owlReviews.trigger('to.owl.carousel', [$(this).index(), 300]); 1175 reviewsOtCarouselStop(); 1176 }); 1177 1178 $('#reservations_ot_reviews .owl-nav').click(function () { 1179 reviewsOtCarouselStop(); 1180 }); 1181 1182 $(window).on("resize", discontinuousReviewsOt(function() { 1183 if ($('#reservations_ot_reviews .carousel-control-btn').hasClass('play-carousel')) { 1184 setTimeout(() => reviewsOtCarouselStop(), 500); 1185 } 1186 })); 1187 1188 $(window).on('focus', function() { 1189 if ($('#reservations_ot_reviews .carousel-control-btn').hasClass('stop-carousel')) { 1190 owlReviews.trigger('next.owl.carousel'); 1191 } 1192 }); 1193 1194 //prevent voiceover from reading hidden content 1195 owlReviews.on('changed.owl.carousel',function(property){ 1196 $('#reservations_ot_reviews').find('.owl-item').attr('aria-hidden','true'); 1197 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1198 $(property.target).find(".owl-dot").find('button').attr('aria-current', 'false'); 1199 $(property.target).find(".owl-dot").filter('.active').find('button').attr('aria-current', 'true'); 1200 }); 1201 1202 //check if show arrows is true in config 1203 if(true && !true){ 1204 reviewsOtHandleArrowTabbing(owlReviews); 1205 } 1206 1207 function reviewsOtHandleArrowTabbing(widget){ 1208 widget.on('changed.owl.carousel',function(property){ 1209 //handle tabbing when previous slider button is hidden 1210 if($(property.target).find(".owl-prev").hasClass('disabled')){ 1211 $(property.target).find(".owl-prev").children().attr('tabindex', -1); 1212 $(property.target).find(".owl-prev").attr('aria-hidden','true'); 1213 } 1214 else { 1215 $(property.target).find(".owl-prev").children().attr('tabindex', 0); 1216 $(property.target).find(".owl-prev").attr('aria-hidden','false'); 1217 } 1218 //handle tabbing when next slider button is hidden 1219 if($(property.target).find(".owl-next").hasClass('disabled')){ 1220 $(property.target).find(".owl-next").children().attr('tabindex', -1); 1221 $(property.target).find(".owl-next").attr('aria-hidden','true'); 1222 } 1223 else { 1224 $(property.target).find(".owl-next").children().attr('tabindex', 0); 1225 $(property.target).find(".owl-next").attr('aria-hidden','false'); 1226 } 1227 }); 1228 } 1229 1230 $('#reservations_ot_reviews .owl-nav').insertBefore($('#reservations_ot_reviews .owl-stage-outer')); 1231 $('#reservations_ot_reviews .owl-dots').insertBefore($('#reservations_ot_reviews .owl-nav')); 1232 1233 });iFrameResize({ 1234 enablePublicMethods: true, 1235 enableInPageLinks: true 1236}); 1237 1238var marker_icon = ""; 1239var additionalPins = ''; 1240if (additionalPins) { 1241 var locationsArray = JSON.parse(''); 1242} 1243 1244var google_map_url = 'https://www.google.com/maps/place/' + ",5331 West 16th Street,St Louis Park,MN,55416".split(' ').join('+'); 1245function open_google_map() { 1246 window.open(google_map_url, '_blank') 1247} 1248 1249function discontinuous(func){ 1250 var timer; 1251 return function(event){ 1252 if(timer) clearTimeout(timer); 1253 timer = setTimeout(func,200,event); 1254 }; 1255} 1256 1257function init_open_street_map() { 1258 if (additionalPins) { 1259 var map = L.map('map-container', { 1260 minZoom: 3, 1261 zoomControl: false, 1262 zoomSnap: 1, 1263 gestureHandling: true 1264 }); 1265 1266 var allMarkers = []; 1267 1268 var marker = L.marker([44.9677932, -93.3472604], {title: '5331 West 16th Street, St Louis Park', alt: 'View 5331 West 16th Street, St Louis Park on Google maps - opens in a new tab'}).addTo(map); 1269 allMarkers.push(marker); 1270 1271 marker.on('click keypress', open_google_map); 1272 1273 locationsArray.forEach(function(element, index) { 1274 var additionalMarker = L.marker([element.lat_coords, element.lng_coords], {title: element.pin_title, alt: 'View ' + element.pin_title + ' on Google maps - opens in a new tab'}).addTo(map); 1275 1276 additionalMarker.on('click keypress', function() { 1277 window.open(element.pin_link, '_blank'); 1278 }); 1279 1280 allMarkers.push(additionalMarker); 1281 1282 }); 1283 1284 function fitBoundsToMarkers(osmap, markers) { 1285 osmap.invalidateSize(); 1286 var group = new L.featureGroup(markers); 1287 osmap.fitBounds(group.getBounds(), {padding: [50, 50]}); 1288 } 1289 1290 fitBoundsToMarkers(map, allMarkers); 1291 1292 document.querySelector('.reset-zoom-btn').addEventListener('click', function () { 1293 fitBoundsToMarkers(map, allMarkers); 1294 }); 1295 1296 window.addEventListener("resize", discontinuous(function(e) { 1297 fitBoundsToMarkers(map, allMarkers); 1298 })); 1299 } else { 1300 var map = L.map('map-container', { 1301 center: [ 44.9677932, -93.3472604], 1302 zoom: 16, 1303 dragging: false, 1304 minZoom: 3, 1305 zoomControl: false, 1306 }); 1307 1308 var marker = L.marker([44.9677932, -93.3472604], {title: '5331 West 16th Street, St Louis Park', alt: 'View 5331 West 16th Street, St Louis Park on Google maps - opens in a new tab'}).addTo(map); 1309 1310 marker.on('click keypress', open_google_map); 1311 1312 map.scrollWheelZoom.disable(); 1313 } 1314 1315 if (marker_icon.length>0){ 1316 var myIcon = L.icon({ 1317 iconUrl: marker_icon, 1318 iconSize: [35,35] 1319 }); 1320 1321 if(allMarkers) {
1322 allMarkers.forEach(marker => { 1323 marker.setIcon(myIcon); 1324 marker.update(); 1325 }); 1326 } else { 1327 marker.setIcon(myIcon); 1328 marker.update(); 1329 } 1330 } 1331 1332 L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map); 1333 L.control.zoom({ 1334 position:'bottomleft' 1335 }).addTo(map); 1336 1337 $('.maps-wrapper #map-container').removeAttr('tabindex'); 1338 $('.leaflet-touch .leaflet-bar a').attr('tabindex', '-1'); 1339 $('.leaflet-container .leaflet-marker-pane img').attr('role', 'link'); 1340} 1341 1342$(document).ready(function() { 1343 init_open_street_map(); 1344}); 1345$("#contact_us_v3_section_phone_link").on("click", function(){ 1346 if (ga_check()) 1347 universal_ga('send', 'event', 'Button', 'Click', 'Phone'); 1348}); 1349 setTimeout(function(){ 1350 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 1351 }, 4000);</script>
1351<script> 1352(function() { 1353 var name = "The Loop West End"; 1354 var pid = "ChIJaZGkSaI0s1IR4KXuICXDEBw"; 1355 function build_url() { 1356 var q = encodeURIComponent(name).replace(/'/g, "%27"); 1357 return "https://www.google.com/maps/search/?api=1" 1358 + "&query=" + q 1359 + "&query_place_id=" + encodeURIComponent(pid); 1360 } 1361 window.google_map_url = build_url(); 1362 window.open_google_map = function() { 1363 window.open(build_url(), "_blank"); 1364 }; 1365})(); 1366</script>
1366<script> 1367 1368 var spot_id = 112064; 1369 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"}'); 1370 1371 if (false){ 1372 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 1373 } 1374 1375 if (navigator.userAgent.match(/iPhone/i) 1376 || navigator.userAgent.match(/iPad/i) 1377 || navigator.userAgent.match(/iPod/i)){ 1378 $(document).ready(function(){ 1379 document.body.className += " " + "webkit-mobile-body"; 1380 }); 1381 } 1382 1383 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 1384 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')){ 1385 $("a[href^='/']").each(function(){ 1386 if (this.href.indexOf('domain=') == -1){ 1387 var sh_internal_url = new URL(this.href); 1388 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 1389 this.href = sh_internal_url.toString(); 1390 } 1391 }) 1392 } 1393 1394 1395 function cta_link_matches_href(href, url){ 1396 var domain = 'theloopwestend.com'; 1397 if(typeof url === 'undefined'){ 1398 return false; 1399 } 1400 var partsOfURL = url.split(domain); 1401 if (partsOfURL.length != 2){ 1402 return href == url; 1403 }else{ 1404 var urlPath = partsOfURL[1]; 1405 if (urlPath.substring(0,1) == "/"){ 1406 urlPath = urlPath.substring(1,urlPath.length); 1407 } 1408 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 1409 } 1410 } 1411 1412 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}]; 1413 1414 function find_cta_link(href) { 1415 for (var i=0; i< all_cta_links.length; i++){ 1416 var cta_link = all_cta_links[i]; 1417 if ( cta_link_matches_href(href, cta_link.url)){ 1418 return cta_link; 1419 } 1420 } 1421 } 1422 1423 function find_cta_links(href) { 1424 var cta_links = [] 1425 for (var i=0; i< all_cta_links.length; i++){ 1426 var cta_link = all_cta_links[i]; 1427 if ( cta_link_matches_href(href, cta_link.url)){ 1428 cta_links.push(cta_link); 1429 } 1430 } 1431 return cta_links; 1432 } 1433 1434 1435 function get_current_page_cta_link_types(){ 1436 var types = []; 1437 var cta_links = find_cta_links(document.location.href); 1438 for (var i=0; i<cta_links.length; i++){ 1439 types.push(cta_links[i].cta_link_type); 1440 } 1441 return types; 1442 } 1443 1444 1445 function is_food_menu_page(){ 1446 var cta_link_types = get_current_page_cta_link_types(); 1447 for (var i=0; i<cta_link_types.length; i++){ 1448 if ('food_menu' == cta_link_types[i]) 1449 return true; 1450 } 1451 return false;
1452 } 1453 1454 1455 function get_form_cat_from_cta(){ 1456 var cta_link = find_cta_link(document.location.href); 1457 if (cta_link == null) { 1458 return null; 1459 } 1460 if (cta_link.cta_link_type == 'private_parties'){ 1461 return 'private_party'; 1462 }else if (cta_link.cta_link_type == 'reservations'){ 1463 return 'reservation'; 1464 }else if (cta_link.cta_link_type == 'catering'){ 1465 return 'catering'; 1466 }else if (cta_link.cta_link_type == 'job_listing'){ 1467 return 'job_listings'; 1468 }else if (cta_link.cta_link_type == 'gift_cards'){ 1469 return 'gift_cards'; 1470 } 1471 return null; 1472 } 1473 1474 function element_has_events_defined(elem){ 1475 if ($._data(elem, "events") === undefined){ 1476 return false; 1477 } 1478 return true; 1479 } 1480 1481 function create_ga_events_for_cta_clicks(){ 1482 if (typeof $ === 'function'){ 1483 1484 var cta_link_of_the_page = find_cta_link(location.href); 1485 1486 1487 $("a").each(function(index, elem){ 1488 var href = $(elem).attr('href'); 1489 1490 if (href === undefined ){ 1491 return; 1492 } 1493 1494 if (href.substring(0,4) == 'tel:'){ 1495 if (!element_has_events_defined(elem)){ // not footer links 1496 $(elem).on("click", function(){ 1497 universal_ga('send', 'event', { 1498 eventCategory: 'Button', 1499 eventAction: 'Click', 1500 eventLabel: 'Phone', 1501 transport: 'beacon' 1502 }); 1503 }); 1504 1505 if (cta_link_of_the_page){ 1506 $(elem).on("click", function(){ 1507 universal_ga('send', 'event', { 1508 eventCategory: 'Button', 1509 eventAction: 'Click', 1510 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 1511 transport: 'beacon' 1512 }); 1513 }); 1514 } 1515 } else { 1516 if (cta_link_of_the_page){ 1517 $(elem).on("click", function(){ 1518 universal_ga('send', 'event', { 1519 eventCategory: 'Button', 1520 eventAction: 'Click', 1521 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1522 transport: 'beacon' 1523 }); 1524 }); 1525 } 1526 } 1527 1528 1529 }else{ 1530 var cta_link = find_cta_link(href); 1531 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1532 // console.log("bottom link detected"); 1533 }else{ 1534 if (cta_link != null){ 1535 $(elem).on("click", function(){ 1536 universal_ga('send', 'event', { 1537 eventCategory: 'Website Link', 1538 eventAction: 'Click', 1539 eventLabel: cta_link.cta_link_type, 1540 transport: 'beacon' 1541 }); 1542 }); 1543 } 1544 } 1545 } 1546 1547 1548 }); 1549 } 1550 } 1551 1552 if (typeof angular === "undefined") { 1553 create_ga_events_for_cta_clicks(); 1554 } else { 1555 angular.element(document).ready(function () { 1556 create_ga_events_for_cta_clicks(); 1557 }); 1558 } 1559 1560 1561 function triggerShowFooterEvents(){ 1562 if (window.screen.availWidth < 768){ 1563 universal_ga('send', 'event', { 1564 eventCategory: 'Mobile Footer', 1565 eventAction: 'View', 1566 eventLabel: '', 1567 transport: 'beacon' 1568 }); 1569 } 1570 } 1571 1572 1573 1574 1575 //////////// 1576 function smartFooterV2() 1577 { 1578 var list= document.getElementsByClassName("bottom-list-item"); 1579 if (!list) return; 1580 1581 if (document.getElementById("bottom-navbar") == null){ 1582 return; 1583 } 1584 1585 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1586 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1587 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1588 1589 bottomNav.innerHTML = ''; 1590 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1591 linksWithPosition.sort(function(a,b) { 1592 return a.position - b.position; 1593 }); 1594 1595 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1596 1597 linksWithPosition.forEach((e, i) => { 1598 var target = e.target || getUrlTarget(e.url); 1599 bottomNav.insertAdjacentHTML('beforeend', 1600 `<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>`); 1601 }) 1602 1603 var intervalCount = 0 1604 var interval = setInterval(() => { 1605 if(intervalCount == 50){ 1606 clearInterval(interval); 1607 } 1608 removeOverflowingFooterLinks(); 1609 intervalCount ++; 1610 }, 200); 1611 1612 $('.smart-footer-link').on("click", function(){ 1613 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1614 shUrlParams['source'] = 'footer'; 1615 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1616 } 1617 1618 var visibleLinks = $('.smart-footer-link').map(function (e) { 1619 return $(this).data('type'); 1620 }).toArray().join(','); 1621 1622 universal_ga('send', 'event', { 1623 eventCategory: 'Button', 1624 eventAction: 'Click_footer_2', 1625 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1626 transport: 'beacon' 1627 }); 1628 }); 1629 } 1630 1631 function removeOverflowingFooterLinks(){ 1632 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1633 var width_sum = 0; 1634 1635 bottomNavLinks.forEach(e => { 1636 width_sum += e.getBoundingClientRect().width; 1637 if ((width_sum) > window.innerWidth) { 1638 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1639 e.remove(); 1640 } 1641 }); 1642 } 1643 1644 function getUrlTarget(url){ 1645 if(url.startsWith('tel')){ 1646 return '_self'; 1647 } 1648 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1649 return '_self'; 1650 } 1651 return '_blank'; 1652 } 1653 1654 function npb() 1655 { 1656 var list= document.getElementsByClassName("bottom-list-item"); 1657 if (!list) return; 1658 1659 if (document.getElementById("bottom-navbar") == null){ 1660 return; 1661 } 1662 1663 var url = "" 1664 for (var i=0; i < all_cta_links.length; i++) 1665 { 1666 if (all_cta_links[i].cta_link_type == "order"){ 1667 url = all_cta_links[i].url; 1668 } 1669 } 1670 1671 if ( url == ""){ 1672 return; 1673 } 1674 1675 for (i=0; i < list.length; i++) 1676 { 1677 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1678 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1679 1680 }; 1681 1682 var item = list[list.length-1] 1683 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1684 var width_sum = 0; 1685 for (i=0; i < list.length; i++) { 1686 width_sum += list[i].getBoundingClientRect().width; 1687 } 1688 1689 var item = list[list.length-1] 1690 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1691 1692 item.firstChild.text = "Order"; 1693 item.firstChild.href = url; 1694 item.firstChild.id = "bottom_link_" + list.length; 1695 1696 $(item.firstChild).on("click", function(){ 1697 1698 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1699 shUrlParams['source'] = 'footer'; 1700 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1701 } 1702 1703 universal_ga('send', 'event', { 1704 eventCategory: 'Button', 1705 eventAction: 'Click', 1706 eventLabel: 'Plan B-2 Order', 1707 transport: 'beacon' 1708 }); 1709 }); 1710 1711 1712 } 1713 1714function activateSmartFooter(){ 1715 var smart_footer_active = true; 1716 var smart_footer_version = 2; 1717 var man_bottom_active = true; 1718 if(window.location.hash == '#smartFooterV2=enabled'){ 1719 smartFooterV2(); 1720 return; 1721 } 1722 if (smart_footer_active && !man_bottom_active){ 1723 if(smart_footer_version == 2 ){ 1724 smartFooterV2(); 1725 }else { 1726 npb(); 1727 } 1728 } 1729 } 1730 1731 activateSmartFooter(); 1732 1733 var corona_config_str = ''; 1734 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 1735 1736 1737 //corona instuctions 1738 function show_corona_instructions(text, phone, btnText){ 1739 //format to US number 1740 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1741 1742 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1743 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1744 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1745 }else { 1746 var linkLocation = 'tel:+1'+phone+''; 1747 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1748 } 1749 var appendPhone = 'tel:+1'+phone+''; 1750 //inject html content 1751 if ($('.food-menu-nav').length) { 1752 //new template 1753 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1754 var textColor = rgb2hex($('.section-header').css('color')); 1755 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1756 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1757 fontSize = fontSize + Math.round(fontSize * 0.25); 1758
1759 // 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>'; 1760 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>'; 1761 1762 }else { 1763 //old template 1764 var pageEl = $('.tabnav'); 1765 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1766 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1767 1768 var linkTextColor = getContrast50(linkColor); 1769 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1770 fontSize = fontSize + Math.round(fontSize * 0.25); 1771 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1772 1773 // 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>'; 1774 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>'; 1775 1776 } 1777 //html content 1778 pageEl.prepend(html); 1779 } 1780 1781 function rgb2hex(rgb) { 1782 if(typeof rgb !== "undefined"){ 1783 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1784 if (!rgbColor) { 1785 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1786 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1787 } 1788 function hex(x) { 1789 return ("0" + parseInt(x).toString(16)).slice(-2); 1790 } 1791 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1792 } 1793 return rgb; 1794 } 1795 1796 function getContrast50(hexcolor){ 1797 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1798 } 1799 1800 function show_corona_sidebar_instructions(text, phone){ 1801 //format to US number 1802 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1803 var divWidth = 230; 1804 var top = 50; 1805 var linkSize = '1.6em'; 1806 var pSize = $('p').css('font-size'); 1807 var appendPhone = 'tel:+1'+phone+''; 1808 1809 if ($(window).width() < 1600) 1810 var top = 30; 1811 if ($(window).width() < 1200){ 1812 var divWidth = 180; 1813 var linkSize = '1.4em'; 1814 var pSize ='1.1em'; 1815 } 1816 1817 if($('.food-menu-nav').length){ //new template 1818 var textColor = $('.food-menu-nav-item.active').css('color'); 1819 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1820 1821 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1822 var parent = $('.food-menu-page'); 1823 } 1824 else { //old template 1825 var textColor = $('.menu-item-name-traditional').css('color'); 1826 var linkColor = $('.style-traditional .tabnav .nav>
1826li.active>a').css('color'); 1827 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1828 var linkTextColor = getContrast50(linkColor); 1829 } 1830 1831 // $(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>'); 1832 $(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>'); 1833 1834 //check if resolution is bigger than tablet resolution 1835/* if ($(window).width() > 991) { 1836 //detect scroll 1837 window.onscroll = function (e) { 1838 if ($(window).scrollTop() == 0) { 1839 $('#corona-instructions-sidebar').hide(); 1840 }else { 1841 $('#corona-instructions-sidebar').show(); 1842 } 1843 } 1844 } */ 1845 } 1846 1847 function check_corona_config(config){ 1848 console.log(config) 1849 if (config) { 1850 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1851 if (!config.promote_deliveries && config.promote_pick_up) { 1852 var btnText = 'Call For Pick Up'; 1853 } 1854 if (config.promote_deliveries && !config.promote_pick_up) { 1855 var btnText = 'Call For Delivery'; 1856 } 1857 if (config.promote_deliveries && config.promote_pick_up) { 1858 var btnText = 'Call For Pick Up Or Delivery'; 1859 } 1860 1861 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1862 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1863 var btnText = 'ORDER NOW'; 1864 if($('.food-menu-nav').length){ //new template 1865 var textColor = rgb2hex($('.section-header').css('color')); 1866 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1867 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1868 fontSize = fontSize + Math.round(fontSize * 0.25); 1869 } 1870 else { //old template 1871 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1872 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1873 1874 var linkTextColor = getContrast50(linkColor); 1875 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1876 fontSize = fontSize + Math.round(fontSize * 0.25); 1877 } 1878 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); 1879 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1880 } else { 1881 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1882 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1883 } 1884 1885 } 1886 } 1887 } 1888 } 1889 1890 1891 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1892 $( document ).ready(function() { 1893 setTimeout(function(){ 1894 check_corona_config(corona_config); 1895 }, 300); 1896 }); 1897 } 1898 1899 1900 1901 function isPhone(phone){ 1902 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1903 return regex.test(phone); 1904 } 1905 1906 function sendEmail_MT (input_id) { 1907 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1908 1909 const $step = { 1910 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1911 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1912 } 1913 1914 const $field = { 1915 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1916 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1917 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1918 }; 1919 1920 const $error = { 1921 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1922 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1923 }; 1924 1925 if ($field.email.val().trim() === "") { 1926 $error.email 1927 .html("This field is required") 1928 .show(); 1929 } 1930 else if (!isEmail($field.email.val().trim())) { 1931 $error.email 1932 .html("Please use the format â[email protected]â") 1933 .show(); 1934 } else { 1935 $error.email 1936 .html("") 1937 .hide(); 1938 } 1939 1940 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1941 $error.phone 1942 .html("This field is required") 1943 .show(); 1944 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1945 $error.phone 1946 .html("The phone number must contain 10 digits") 1947 .show(); 1948 } else { 1949 $error.phone 1950 .html("") 1951 .hide(); 1952 } 1953 1954 const errorField = $step.form.find('.sh-form-error:visible'); 1955 1956 if (errorField.length > 0) { 1957 const input = errorField.first().next(); 1958 1959 document.activeElement.blur(); 1960 1961 setTimeout(() => { 1962 input.focus(); 1963 }, 160) 1964 1965 return; 1966 } 1967 1968 $loader 1969 .show() 1970 .prev() 1971 .hide(); 1972 1973 $.ajax({ 1974 method: "POST", 1975 url: "https://www.spothopperapp.com/api/spots/112064/contacts/add_with_texting_permission", 1976 crossDomain: true, 1977 dataType: 'json', 1978 data: { 1979 email: $field.email.val().trim(), 1980 phone: $field.phone.val().trim(), 1981 texting_permission: $field.consent.is(':checked'), 1982 }, 1983 success: function (data) { 1984 afterRequestSubmission(data); 1985 }, 1986 error: function () { 1987 afterRequestSubmission("Something went wrong. Please try again later."); 1988 } 1989 }); 1990 1991 function afterRequestSubmission (data) { 1992 $step.form.hide(); 1993 1994 $step.message 1995 .html(data) 1996 .show() 1997 .trigger('focus'); 1998 } 1999 } 2000</script>
2000<script>function addPromotionParamsToTMTLinks() 2001{ 2002 if (sessionStorage.getItem('shUrlParams')) { 2003 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 2004 if (!Object.keys(shParams).length) 2005 return; 2006 if(!shParams.source) 2007 return; 2008 $('a').each(function () { 2009 if (this.href.includes('tmt.spotapps.co')) { 2010 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 2011 return; 2012 2013 this.href = this.href + '&source=' + shParams.source; 2014 if(shParams.destination) 2015 this.href = this.href + '&destination=' + shParams.destination; 2016 if(shParams.promotion) 2017 this.href = this.href + '&promotion=' + shParams.promotion; 2018 if(shParams.fb_post_id) 2019 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 2020 if(shParams.email_post_id) 2021 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 2022 } 2023 }) 2024 } 2025} 2026setTimeout(function() { 2027 addPromotionParamsToTMTLinks(); 2028 addFooterToSourceParam(); 2029},600) 2030 2031function addFooterToSourceParam() 2032{ 2033 $('.bottom-link').each(function (){ 2034 if(shouldAddSourceParam(this.href)) 2035 this.href = this.href + '&source=footer'; 2036 }) 2037 $('#sh-multiple-links-content-holder a').each(function (){ 2038 if(shouldAddSourceParam(this.href)) 2039 this.href = this.href + '&source=footer'; 2040 }) 2041} 2042function shouldAddSourceParam(link){ 2043 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 2044 return true; 2045 } 2046 return false; 2047} 2048</script>
2048<script> 2049;(async () => { 2050if (typeof window.focusTrap === 'undefined') { 2051 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 2052 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 2053} 2054 2055document.querySelectorAll('.modal').forEach((element) => { 2056 const trap = window.focusTrap?.createFocusTrap(element, { 2057 allowOutsideClick: true, 2058 }); 2059 2060 $(element).on('shown.bs.modal', () => { 2061 trap?.activate(); 2062 }); 2063 2064 $(element).on('hidden.bs.modal', () => { 2065 trap?.deactivate(); 2066 }); 2067}); 2068 2069async function getScript (source) { 2070 return new Promise((resolve, reject) => { 2071 const script = document.createElement('script'); 2072 script.src = source; 2073 script.async = true; 2074 2075 script.onload = resolve; 2076 script.onerror = reject; 2077 2078 document.head.appendChild(script); 2079 }); 2080} 2081})(); 2082</script>
2082<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
2082<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
2082<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
2082<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
2082<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
2082<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
2082<script>var changes_log_array = {};</script>
2082<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
2082<script>document.addEventListener("DOMContentLoaded", () => { 2083 setNudgeBtnStyling(); 2084 }) 2085 2086function setNudgeBtnStyling(){ 2087 const headerNudgeBtn = document.querySelector(".cta-nudge-btn[data-nudge-position=mobile-header]"); 2088 const footerNudgeBtn = document.querySelector(".cta-nudge-btn[data-nudge-position=mobile-footer]"); 2089 2090 const useWebsiteButtonStyle = true; 2091 2092 if (!headerNudgeBtn && !footerNudgeBtn) return; 2093 2094 if(useWebsiteButtonStyle) applyCustomTempBtnStyles(headerNudgeBtn, footerNudgeBtn); 2095} 2096 2097function getCustomTempBtnStyles() { 2098 let tempBtn = document.querySelector("a.custom-temp-btn"); 2099 2100 // If not present, create a temporary one 2101 let created = false; 2102 if (!tempBtn) { 2103 tempBtn = document.createElement("a"); 2104 tempBtn.className = "custom-temp-btn"; 2105 tempBtn.style.visibility = "hidden"; 2106 tempBtn.style.position = "absolute"; 2107 tempBtn.style.pointerEvents = "none"; 2108 document.body.appendChild(tempBtn); 2109 created = true; 2110 } 2111 2112 const styles = window.getComputedStyle(tempBtn); 2113 2114 // Border radius logic - only determine it once on first visit 2115 let borderRadius; 2116 const storedBorderRadius = sessionStorage.getItem("nudgeBtnBorderRadius"); 2117 2118 if (storedBorderRadius !== null) { 2119 borderRadius = storedBorderRadius; // already determined, use it 2120 } else if (document.body.classList.contains("home-page") && !created) { 2121 borderRadius = styles.borderRadius; // homepage with real button, store it 2122 sessionStorage.setItem("nudgeBtnBorderRadius", borderRadius); 2123 } else { 2124 borderRadius = "0px"; // first visit is not homepage, lock to 0 forever 2125 sessionStorage.setItem("nudgeBtnBorderRadius", borderRadius); 2126 } 2127 2128 const stylePatch = { 2129 fontFamily: styles.fontFamily, 2130 fontWeight: styles.fontWeight, 2131 borderRadius: borderRadius, 2132 textTransform: styles.textTransform 2133 }; 2134 2135 // Cleanup if we created it 2136 if (created) { 2137 document.body.removeChild(tempBtn); 2138 } 2139 2140 return stylePatch; 2141} 2142 2143function applyCustomTempBtnStyles(headerNudgeBtn, footerNudgeBtn) { 2144 const stylePatch = getCustomTempBtnStyles(); 2145 if (!stylePatch) return; 2146 2147 [headerNudgeBtn, footerNudgeBtn].filter(Boolean).forEach((btn) => { 2148 Object.assign(btn.style, stylePatch); 2149 }); 2150}</script>
2150</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.