1<!DOCTYPE html> 2 3<html class="no-js css-scroll eds-theme-light" lang="en"> 4 <head> 5 <meta charset="utf-8" /> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 9 <meta name="mobile-web-app-capable" content="yes"> 10 11 12 <title>China Hut - Whitehall in PA | Delivery Info | Chinese</title> 13 <meta name="keywords" content="china hut, china hut white hall, china hut menu, white hall chinese delivery, white hall chinese food, white hall chinese restaurants, chinese delivery, best chinese food in white hall, chinese restaurants in white hall, chinese restaurants near me, chinese food near me, whitehall chinese takeout" /> 14 15 <meta property="og:type" content="website"> 16 <meta property="og:title" content="China Hut - Whitehall in PA | Delivery Info | Chinese"> 17 <meta property="og:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/39669ff8-d276-4e65-823f-83263e28e300/public" /> 18 19 <meta name="twitter:card" content="summary_large_image"> 20 <meta name="twitter:title" content="China Hut - Whitehall in PA | Delivery Info | Chinese"> 21 <meta name="twitter:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/39669ff8-d276-4e65-823f-83263e28e300/public" /> 22 23 <link rel="shortcut icon" href="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/3704e14f-e8fb-4c22-cc3f-4c720acd3100/public" type="image/x-icon" /> 24 25 <link rel="canonical" href="https://www.chinahutwhitehall.com/page/delivery-info"/> 26 27 <link type="text/css" rel="stylesheet" href="/min/g=eds_css&1788377785" /> 28 <link type="text/css" rel="stylesheet" href="/min/g=css4.0&1788377785" /> 29 <link href="https://fonts.googleapis.com/css?family=Nunito:400,700|Open+Sans:400,600,700" rel="stylesheet" /> 30 <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" /> 31
31<script src="https://kit.fontawesome.com/0208faa9a2.js" crossorigin="anonymous"></script>
31 32 33 <style> 34 .home_hero, .menu_hero{ background-image: url(https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f8ffa3a1-d35e-4445-2891-55ae5b4a2400/public); } 35 @media 36 (-webkit-min-device-pixel-ratio: 1.25), 37 (min-resolution: 120dpi){ 38 /* Retina header*/ 39 .home_hero, .menu_hero{ background-image: url(https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/e1eaa32a-b7bc-4fa2-29b1-bce769fb1200/public); } 40 } 41 /*body{ } */ 42 43 44 </style> 45 46 47
47<script type="text/javascript"> 48 var UrlTag = "chinahutwhitehall"; 49 var template = 'defaultv4'; 50 var formname = 'page'; 51 var menulink = 'https://www.chinahutwhitehall.com/order/main'; 52 var checkoutlink = 'https://www.chinahutwhitehall.com/checkout'; 53 </script>
53 54
54<script> 55 /* http://writing.colin-gourlay.com/safely-using-ready-before-including-jquery/ */ 56 (function(w,d,u){w.readyQ=[];w.bindReadyQ=[];function p(x,y){if(x=="ready"){w.bindReadyQ.push(y);}else{w.readyQ.push(x);}};var a={ready:p,bind:p};w.$=w.jQuery=function(f){if(f===d||f===u){return a}else{p(f)}}})(window,document) 57 </script>
57 58 59 60<!-- Google Tag Manager -->
61<script> 62 window.dataLayer = window.dataLayer || []; 63 window.gtag = window.gtag || function gtag() { dataLayer.push(arguments); }; 64 gtag('js', new Date()); 65 66 let data = { 67 account: 'chinahutwhitehall', 68 context: 'direct', 69 templateVersion: 4, 70 rid: 66, 71 } 72 dataLayer.push({ ...data, event: 'app_data_ready' });
vendor: 337 bytes, lines 72-78
72 73 74 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 75 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 76 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 77 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 78 })(window,document,'script','dataLayer','
78GTM-K9P93M
vendor: 4 bytes, line 78
78');
79</script>
vendor: 67 bytes, lines 79-81
79 80 81 <script async src="https://www.googletagmanager.com/gtag/js?id=
81G-VPK617YQTH
vendor: 15 bytes, lines 81-83
81"></script> 82 83
83<script> 84 85 gtag('config', "G-VPK617YQTH"); 86 </script>
86 87 88 89 90 <meta name="smartbanner:title" content="China Hut - Whitehall Ordering"> 91 <meta name="smartbanner:author" content="Online Ordering"> 92 <meta name="smartbanner:price" content="FREE"> 93 <meta name="smartbanner:price-suffix-google" content=" "> 94 <meta name="smartbanner:button" content="VIEW"> 95 <meta name="smartbanner:button-url-google" content="https://play.google.com/store/apps/details?id=com.chinahutwhitehall.ordering"> 96 <meta name="smartbanner:enabled-platforms" content="android"> 97 <meta name="smartbanner:icon-google" content="https://ehc-west-0-bucket.s3.us-west-2.amazonaws.com/web/documents/chinahutwhitehall/"> 98 </head> 99 100 <body 101 data-event-on:customer_registered="window.location.reload()" 102 data-event-on:customer_logged_in="window.location.reload()" 103 data-event-on:customer_logged_out="window.location.reload()" 104 > 105 <a class="skip-to-content-link" href="#main">Skip to content</a> 106 <!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 106-107
106 107 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
107GTM-K9P93M
vendor: 85 bytes, lines 107-108
107" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 108
108<!-- End Google Tag Manager (noscript) --> 109 <!-- wrapper starts --> 110 <div class="wrapper"> 111 <section style="grid-area: header-announcements" aria-label="Announcement"> 112 <div id="upgradeBrowserBanner" class="alert alert-warning mb-0 rounded-0 py-4" style="display:none;"> 113 <div class="alert-icon"><i class="fas fa-warning" aria-hidden="true"></i></div> 114 <div> 115 <strong>We're sorry, but the Web browser you are using is not supported.</strong> <br/> Please upgrade your browser or try a different one to use this Website. Supported browsers include:<br/> 116 <ul class="list-unstyled"> 117 <li class="mt-2"><a href="https://www.google.com/chrome" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-chrome"></i> Chrome</a></li> 118 <li class="mt-2"><a href="https://www.mozilla.com/firefox/upgrade.html" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-firefox"></i> Firefox</a></li> 119 <li class="mt-2"><a href="https://www.microsoft.com/en-us/windows/microsoft-edge" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-edge"></i> Edge</a></li> 120 <li class="mt-2"><a href="http://www.apple.com/safari/" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-safari"></i> Safari</a></li> 121 </ul> 122 </div> 123</div>
124<script> 125 var ua = navigator.userAgent; 126 var match = ua.match(/Firefox\/([0-9]+)\./); 127 var firefoxVersion = match ? parseInt(match[1]) : 1000; 128 var match = ua.match(/Chrome\/([0-9]+)\./); 129 var chromeVersion = match ? parseInt(match[1]) : 1000; 130 var isIE = ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1; 131 var upgradeBrowserBanner = document.getElementById('upgradeBrowserBanner'); 132 var isMatchesSupported = typeof(upgradeBrowserBanner.matches)!="undefined"; 133 var isEntriesSupported = typeof(Object.entries)!="undefined"; 134 //Safari version is verified with isEntriesSupported 135 if (isIE || !isMatchesSupported || !isEntriesSupported || firefoxVersion <= 46 || chromeVersion <= 53) { 136 upgradeBrowserBanner.style.display = 'flex'; 137 } 138</script>
138 139 <!-- get closed sign if applicable. --> 140 141 142 <div class="header-opensign announcement-bg-color announcement-txt-color"> 143 <p style="text-align:center;"><strong><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:14px;"><span style="color:#ff0000;">Please note that we do not deliver to zip code </span><span style="color:#3498db;">18103</span></span></span></strong></p> <a href="javascript:void(0)" class="close" id="closeAnnouncement" role="button" aria-label="Close Announcement" tabindex="0"> 144 <i class="eds_icon fas fa-xs fa-times" style="" aria-hidden="true"></i> </a> 145 </div> 146 </section> 147 148 <!-- Header Starts --> 149 <div class="headerAndWtype" style="grid-area: header"> 150 <header class="header" > 151 <div class="d-flex flex-column align-items-start flex-md-row align-items-md-center"> 152 <div class="logo_name_alt flex-shrink-0 d-flex align-items-center align-self-stretch pe-6 pe-md-0"> 153 <button class="eds_button btn btn-outline eds_menu_button" style="color: inherit" aria-label="Main menu" aria-expanded="false" data-bs-toggle="offcanvas" data-bs-target="#side-menu" aria-controls="side-menu" type="button"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></button> 154 <div class="d-flex flex-column align-items-center mx-auto align-items-md-start mx-md-0"> 155 <a 156 class="eds-display-text-title-xs text-truncate title-container" 157 href="https://www.chinahutwhitehall.com" 158 aria-current="false" 159 > 160 China Hut - Whitehall </a> 161 162 <span class="eds-copy-text-s-regular text-center text-md-start address-container" title="2415 MacArthur Rd Whitehall, PA 18052"> 163 2415 MacArthur Rd Whitehall, PA 18052 </span> 164 </div> 165 </div> 166 167 168 <div class="position-absolute top-0 end-0 p-2"> 169 170 <div id="login-status" > 171 <button class="eds_button btn btn-outline px-2 text-nowrap" aria-label="Log in" style="color: currentColor" data-bs-toggle="modal" data-bs-target="#login-modal" type="button"><i class="eds_icon fa fa-lg fa-user-circle d-block d-lg-none" style="" aria-hidden="true"></i> <div class="d-none d-lg-flex align-items-baseline gap-2"><i class="eds_icon fa fa-user-circle" style="" aria-hidden="true"></i><div class="profile-container text-truncate">Log in</div></div></button> </div> 172 173 </div> 174 </div> 175 176 177 <div data-eds-id="6ab5364fa330c" 178 class="eds_side_menu offcanvas offcanvas-start " 179 tabindex="-1" 180 aria-label="Side navigation" 181 id="side-menu" data-event-on:menu_selected="this.dispatchEvent(new CustomEvent('eds.hide'))" data-event-on:category_selected="this.dispatchEvent(new CustomEvent('eds.hide'))" > 182 183 <div class="eds_side_menu-body offcanvas-body d-flex flex-column pt-0 px-0 css-scroll" style="padding-bottom: 115px; scroll-padding-bottom: 115px;"> 184 <div 185 class="eds_side_menu-close position-absolute top-0 end-0 pt-3 pe-3 " 186 style="z-index: 1" 187 > 188 <button data-bs-dismiss="offcanvas" data-bs-target="[data-eds-id="6ab5364fa330c"]" aria-label="Close" class="eds_button btn btn-outline-secondary eds_button--shape-circle" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 189 190 <nav aria-labelledby="header-navigation-title"> 191 <h2 id="header-navigation-title" class="eds-display-text-title-m m-0 p-3">Pages</h2> 192<ul class="eds_list eds_list--border-none border-bottom"> 193 <li class="eds_list-item"> 194 <a class="d-block p-3 " href="https://www.chinahutwhitehall.com" aria-current="false"> 195 Home </a> 196 </li> 197 198 <li class="eds_list-item"> 199 <a 200 class="d-block p-3 " 201 href="https://www.chinahutwhitehall.com/order/main" 202 aria-current="false" 203 > 204 Menu </a> 205 </li> 206 207 208 <li class="eds_list-item"> 209 <a class="d-block p-3 active" href="https://www.chinahutwhitehall.com/page/delivery-info" aria-current="page"> 210 Delivery Info </a> 211 </li> 212 213 <li class="eds_list-item"> 214 <a class="d-block p-3 " href="https://www.chinahutwhitehall.com/locationinfo" aria-current="false"> 215 Location & Hours </a> 216 </li> 217 218 <li class="eds_list-item"> 219 <a class="d-block p-3 " href="https://www.chinahutwhitehall.com/contact" aria-current="false"> 220 Contact 221 </a> 222 </li> 223</ul> 224 </nav> 225 226 227 <div class="border-bottom border-light p-3"> 228 229 230 <details 231 class="eds_list eds_list--border-none" open data-menu-id="14095" 232 data-event-on:document_ready="this.open = localStorage.getItem('menu-open-14095') !== 'false'" 233 onclick="localStorage.setItem('menu-open-14095', !this.open)" 234 > 235 <summary class="eds-copy-text-l-regular list-unstyled rounded-3 mb-1 " tabindex="0"> 236 <h2 class="eds-display-text-title-m m-0 p-0"> 237 <i class="eds_icon fas fa-chevron-right" style="" aria-hidden="true"></i> Menu <span class="sr-only">21 categories</span> 238 </h2> 239 </summary> 240 <div class="mb-3"></div> 241 242 243 <a 244 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 245 data-event-on:category_pinned="(category) => { 246 const isCurrent = category.id === '180051'; 247 $(this).toggleClass('active', isCurrent); 248 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 249 }" 250 href="https://www.chinahutwhitehall.com/order/main/american-specialties" 251 aria-current="false" 252 onclick="if (!event.ctrlKey) { 253 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 254 if (currentMenuIsActive) { 255 app.event.emit('category_selected', { id: '180051' }); 256 } else { 257 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180051' }); 258 } 259 }" 260 > 261 American Specialties<span class="sr-only"> menu category</span> 262 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 263 </a> 264 <a 265 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 266 data-event-on:category_pinned="(category) => { 267 const isCurrent = category.id === '180035'; 268 $(this).toggleClass('active', isCurrent); 269 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 270 }" 271 href="https://www.chinahutwhitehall.com/order/main/appetizers" 272 aria-current="false" 273 onclick="if (!event.ctrlKey) { 274 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 275 if (currentMenuIsActive) { 276 app.event.emit('category_selected', { id: '180035' }); 277 } else { 278 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180035' }); 279 } 280 }" 281 > 282 Appetizers<span class="sr-only"> menu category</span> 283 <span class="ms-auto">25<span class="sr-only"> items available</span></span> 284 </a> 285 <a 286 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 287 data-event-on:category_pinned="(category) => { 288 const isCurrent = category.id === '180036'; 289 $(this).toggleClass('active', isCurrent); 290 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 291 }" 292 href="https://www.chinahutwhitehall.com/order/main/soup" 293 aria-current="false" 294 onclick="if (!event.ctrlKey) { 295 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 296 if (currentMenuIsActive) { 297 app.event.emit('category_selected', { id: '180036' }); 298 } else { 299 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180036' }); 300 } 301 }" 302 > 303 Soup<span class="sr-only"> menu category</span> 304 <span class="ms-auto">9<span class="sr-only"> items available</span></span> 305 </a> 306 <a 307 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 308 data-event-on:category_pinned="(category) => { 309 const isCurrent = category.id === '180037'; 310 $(this).toggleClass('active', isCurrent); 311 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 312 }" 313 href="https://www.chinahutwhitehall.com/order/main/fried-rice" 314 aria-current="false" 315 onclick="if (!event.ctrlKey) { 316 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 317 if (currentMenuIsActive) { 318 app.event.emit('category_selected', { id: '180037' }); 319 } else { 320 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180037' }); 321 } 322 }" 323 > 324 Fried Rice<span class="sr-only"> menu category</span> 325 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 326 </a> 327 <a 328 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 329 data-event-on:category_pinned="(category) => { 330 const isCurrent = category.id === '180038'; 331 $(this).toggleClass('active', isCurrent); 332 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 333 }" 334 href="https://www.chinahutwhitehall.com/order/main/lo-mein-soft-noodle" 335 aria-current="false" 336 onclick="if (!event.ctrlKey) { 337 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 338 if (currentMenuIsActive) { 339 app.event.emit('category_selected', { id: '180038' }); 340 } else { 341 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180038' }); 342 } 343 }" 344 > 345 Lo Mein (Soft Noodle)<span class="sr-only"> menu category</span> 346 <span class="ms-auto">8<span class="sr-only"> items available</span></span> 347 </a> 348 <a 349 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 350 data-event-on:category_pinned="(category) => { 351 const isCurrent = category.id === '180039'; 352 $(this).toggleClass('active', isCurrent); 353 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 354 }" 355 href="https://www.chinahutwhitehall.com/order/main/mei-fun" 356 aria-current="false" 357 onclick="if (!event.ctrlKey) { 358 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 359 if (currentMenuIsActive) { 360 app.event.emit('category_selected', { id: '180039' }); 361 } else { 362 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180039' }); 363 } 364 }" 365 > 366 Mei Fun<span class="sr-only"> menu category</span> 367 <span class="ms-auto">9<span class="sr-only"> items available</span></span> 368 </a> 369 <a 370 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 371 data-event-on:category_pinned="(category) => { 372 const isCurrent = category.id === '180040'; 373 $(this).toggleClass('active', isCurrent); 374 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 375 }" 376 href="https://www.chinahutwhitehall.com/order/main/chow-ho-fun" 377 aria-current="false" 378 onclick="if (!event.ctrlKey) { 379 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 380 if (currentMenuIsActive) { 381 app.event.emit('category_selected', { id: '180040' }); 382 } else { 383 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180040' }); 384 } 385 }" 386 > 387 Chow Ho Fun<span class="sr-only"> menu category</span> 388 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 389 </a> 390 <a 391 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 392 data-event-on:category_pinned="(category) => { 393 const isCurrent = category.id === '180041'; 394 $(this).toggleClass('active', isCurrent); 395 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 396 }" 397 href="https://www.chinahutwhitehall.com/order/main/chow-mein-vegetable-or-chop-suey" 398 aria-current="false" 399 onclick="if (!event.ctrlKey) { 400 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 401 if (currentMenuIsActive) { 402 app.event.emit('category_selected', { id: '180041' }); 403 } else { 404 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180041' }); 405 } 406 }" 407 > 408 Chow Mein (vegetable) or Chop Suey<span class="sr-only"> menu category</span> 409 <span class="ms-auto">14<span class="sr-only"> items available</span></span> 410 </a> 411 <a 412 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 413 data-event-on:category_pinned="(category) => { 414 const isCurrent = category.id === '180042'; 415 $(this).toggleClass('active', isCurrent); 416 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 417 }" 418 href="https://www.chinahutwhitehall.com/order/main/sweet-sour" 419 aria-current="false" 420 onclick="if (!event.ctrlKey) { 421 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 422 if (currentMenuIsActive) { 423 app.event.emit('category_selected', { id: '180042' }); 424 } else { 425 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180042' }); 426 } 427 }" 428 > 429 Sweet & Sour<span class="sr-only"> menu category</span> 430 <span class="ms-auto">4<span class="sr-only"> items available</span></span> 431 </a> 432 <a 433 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 434 data-event-on:category_pinned="(category) => { 435 const isCurrent = category.id === '180043'; 436 $(this).toggleClass('active', isCurrent); 437 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 438 }" 439 href="https://www.chinahutwhitehall.com/order/main/chicken" 440 aria-current="false" 441 onclick="if (!event.ctrlKey) { 442 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 443
443 if (currentMenuIsActive) { 444 app.event.emit('category_selected', { id: '180043' }); 445 } else { 446 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180043' }); 447 } 448 }" 449 > 450 Chicken<span class="sr-only"> menu category</span> 451 <span class="ms-auto">14<span class="sr-only"> items available</span></span> 452 </a> 453 <a 454 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 455 data-event-on:category_pinned="(category) => { 456 const isCurrent = category.id === '180044'; 457 $(this).toggleClass('active', isCurrent); 458 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 459 }" 460 href="https://www.chinahutwhitehall.com/order/main/pork" 461 aria-current="false" 462 onclick="if (!event.ctrlKey) { 463 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 464 if (currentMenuIsActive) { 465 app.event.emit('category_selected', { id: '180044' }); 466 } else { 467 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180044' }); 468 } 469 }" 470 > 471 Pork<span class="sr-only"> menu category</span> 472 <span class="ms-auto">8<span class="sr-only"> items available</span></span> 473 </a> 474 <a 475 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 476 data-event-on:category_pinned="(category) => { 477 const isCurrent = category.id === '180045'; 478 $(this).toggleClass('active', isCurrent); 479 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 480 }" 481 href="https://www.chinahutwhitehall.com/order/main/beef" 482 aria-current="false" 483 onclick="if (!event.ctrlKey) { 484 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 485 if (currentMenuIsActive) { 486 app.event.emit('category_selected', { id: '180045' }); 487 } else { 488 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180045' }); 489 } 490 }" 491 > 492 Beef<span class="sr-only"> menu category</span> 493 <span class="ms-auto">11<span class="sr-only"> items available</span></span> 494 </a> 495 <a 496 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 497 data-event-on:category_pinned="(category) => { 498 const isCurrent = category.id === '180046'; 499 $(this).toggleClass('active', isCurrent); 500 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 501 }" 502 href="https://www.chinahutwhitehall.com/order/main/seafood" 503 aria-current="false" 504 onclick="if (!event.ctrlKey) { 505 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 506 if (currentMenuIsActive) { 507 app.event.emit('category_selected', { id: '180046' }); 508 } else { 509 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180046' }); 510 } 511 }" 512 > 513 Seafood<span class="sr-only"> menu category</span> 514 <span class="ms-auto">12<span class="sr-only"> items available</span></span> 515 </a> 516 <a 517 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 518 data-event-on:category_pinned="(category) => { 519 const isCurrent = category.id === '180047'; 520 $(this).toggleClass('active', isCurrent); 521 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 522 }" 523 href="https://www.chinahutwhitehall.com/order/main/vegetarian" 524 aria-current="false" 525 onclick="if (!event.ctrlKey) { 526 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 527 if (currentMenuIsActive) { 528 app.event.emit('category_selected', { id: '180047' }); 529 } else { 530 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180047' }); 531 } 532 }" 533 > 534 Vegetarian<span class="sr-only"> menu category</span> 535 <span class="ms-auto">8<span class="sr-only"> items available</span></span> 536 </a> 537 <a 538 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 539 data-event-on:category_pinned="(category) => { 540 const isCurrent = category.id === '180048'; 541 $(this).toggleClass('active', isCurrent); 542 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 543 }" 544 href="https://www.chinahutwhitehall.com/order/main/egg-foo-young" 545 aria-current="false" 546 onclick="if (!event.ctrlKey) { 547 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 548 if (currentMenuIsActive) { 549 app.event.emit('category_selected', { id: '180048' }); 550 } else { 551 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180048' }); 552 } 553 }" 554 > 555 Egg Foo Young<span class="sr-only"> menu category</span> 556 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 557 </a> 558 <a 559 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 560 data-event-on:category_pinned="(category) => { 561 const isCurrent = category.id === '180049'; 562 $(this).toggleClass('active', isCurrent); 563 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 564 }" 565 href="https://www.chinahutwhitehall.com/order/main/moo-shu" 566 aria-current="false" 567 onclick="if (!event.ctrlKey) { 568 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 569 if (currentMenuIsActive) { 570 app.event.emit('category_selected', { id: '180049' }); 571 } else { 572 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180049' }); 573 } 574 }" 575 > 576 Moo Shu<span class="sr-only"> menu category</span> 577 <span class="ms-auto">6<span class="sr-only"> items available</span></span> 578 </a> 579 <a 580 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 581 data-event-on:category_pinned="(category) => { 582 const isCurrent = category.id === '180050'; 583 $(this).toggleClass('active', isCurrent); 584 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 585 }" 586 href="https://www.chinahutwhitehall.com/order/main/special-diet-menu" 587 aria-current="false" 588 onclick="if (!event.ctrlKey) { 589 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 590 if (currentMenuIsActive) { 591 app.event.emit('category_selected', { id: '180050' }); 592 } else { 593 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180050' }); 594 } 595 }" 596 > 597 Special Diet Menu<span class="sr-only"> menu category</span> 598 <span class="ms-auto">6<span class="sr-only"> items available</span></span> 599 </a> 600 <a 601 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 602 data-event-on:category_pinned="(category) => { 603 const isCurrent = category.id === '180052'; 604 $(this).toggleClass('active', isCurrent); 605 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 606 }" 607 href="https://www.chinahutwhitehall.com/order/main/chefs-special" 608 aria-current="false" 609 onclick="if (!event.ctrlKey) { 610 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 611 if (currentMenuIsActive) { 612 app.event.emit('category_selected', { id: '180052' }); 613 } else { 614 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180052' }); 615 } 616 }" 617 > 618 Chef's Special<span class="sr-only"> menu category</span> 619 <span class="ms-auto">25<span class="sr-only"> items available</span></span> 620 </a> 621 <a 622 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 623 data-event-on:category_pinned="(category) => { 624 const isCurrent = category.id === '180053'; 625 $(this).toggleClass('active', isCurrent); 626 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 627 }" 628 href="https://www.chinahutwhitehall.com/order/main/dinner-combination" 629 aria-current="false" 630 onclick="if (!event.ctrlKey) { 631 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 632 if (currentMenuIsActive) { 633 app.event.emit('category_selected', { id: '180053' }); 634 } else { 635 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180053' }); 636 } 637 }" 638 > 639 Dinner Combination<span class="sr-only"> menu category</span> 640 <span class="ms-auto">60<span class="sr-only"> items available</span></span> 641 </a> 642 <a 643 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 644 data-event-on:category_pinned="(category) => { 645 const isCurrent = category.id === '180054'; 646 $(this).toggleClass('active', isCurrent); 647 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 648 }" 649 href="https://www.chinahutwhitehall.com/order/main/lunch-combination" 650 aria-current="false" 651 onclick="if (!event.ctrlKey) { 652 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 653 if (currentMenuIsActive) { 654 app.event.emit('category_selected', { id: '180054' }); 655 } else { 656 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180054' }); 657 } 658 }" 659 > 660 Lunch Combination<span class="sr-only"> menu category</span> 661 <span class="ms-auto">59<span class="sr-only"> items available</span></span> 662 </a> 663 <a 664 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 665 data-event-on:category_pinned="(category) => { 666 const isCurrent = category.id === '180055'; 667 $(this).toggleClass('active', isCurrent); 668 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 669 }" 670 href="https://www.chinahutwhitehall.com/order/main/side-order" 671 aria-current="false" 672 onclick="if (!event.ctrlKey) { 673 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 674 if (currentMenuIsActive) { 675 app.event.emit('category_selected', { id: '180055' }); 676 } else { 677 app.event.emit('menu_selected', { menu_id: '14095', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '180055' }); 678 } 679 }" 680 > 681 Side Order<span class="sr-only"> menu category</span> 682 <span class="ms-auto">15<span class="sr-only"> items available</span></span> 683 </a> 684 </details> 685 686 </div> 687 688 689 <div class="restaurant-info border-top border-light p-3 position-absolute bottom-0 left-0 w-100"> 690 <h2 class="eds-display-text-title-xs mb-0 me-2 pe-4"><span class="sr-only">Location: You're currently ordering from </span>China Hut - Whitehall</h2> 691 692 <address class="eds-copy-text-s-regular mb-0"> 693 2415 MacArthur Rd Whitehall, PA 18052 </address> 694 </div> 695 696 <div class="eds-copy-text-s-regular p-3 d-lg-none"> 697 <h2 class="eds-display-text-title-m m-0 pb-3">Additional info</h2> 698 <ul class="list-unstyled" aria-label="App store links"> 699 <li><a href="https://play.google.com/store/apps/details?id=com.chinahutwhitehall.ordering"><span class="sr-only">Download from the Google Play Store</span><img src="/web/default4.0/images/google-play-badge.svg" alt="" aria-hidden="true"></a></li> 700 </ul> 701 702 <ul class="list-unstyled d-flex gap-2" aria-label="Social network links"> 703 <li><a href="https://www.yelp.com/biz/china-hut-whitehall" target="new" title="Opens in new tab" class="icon" title="Yelp"><i class="fab fa-yelp"></i><span class="sr-only">Yelp</span></a></li> 704 <li><a href="https://www.tripadvisor.com/Restaurant_Review-g53994-d23819073-Reviews-China_Hut-Whitehall_Pennsylvania.html" target="new" title="Opens in new tab" class="icon" title="TripAdvisor"><i class="fak fa-tripadvisor"></i><span class="sr-only">TripAdvisor</span></a></li> 705 </ul> 706 707<div>© 2026 Online Ordering by <a href="http://chinesemenuonline.com">Chinese Menu Online</a></div> 708 <div>Explore the top Chinese food spots in Whitehall with <a href="https://www.springroll.com" target="_blank" title="Opens in new tab" >Springroll</a></div> 709 710<ul class="list-unstyled mb-0 pt-3" aria-label="Legal and support"> 711 <li><a href="https://www.chinahutwhitehall.com/reportbug">Technical Support</a></li> 712 <li><a href="https://www.chinahutwhitehall.com/privacy">Privacy Policy</a></li> 713 <li><a href="https://www.chinahutwhitehall.com/tos">Terms of Service</a></li> 714 <li><a href="https://www.chinahutwhitehall.com/accessibility">Accessibility</a></li> 715</ul> 716
717This site is protected by reCAPTCHA and <a href="https://policies.google.com/privacy">Google's Privacy Policy</a> and <a href="https://policies.google.com/terms">Google's Terms of Service</a> apply. 718 </div> </div> 719 720
720<script> 721 { 722 const container = document.querySelector('[data-eds-id="6ab5364fa330c"]'); 723 724 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 725 container.addEventListener(`eds.${eventName}`, (e) => { 726 bootstrap.Offcanvas.getOrCreateInstance(container)[eventName]( 727 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 728 ); 729 }); 730 }); 731 } 732 </script>
732 733 </div> 734 735 </header> 736 </div> 737 738 <aside class="container p-0" style="grid-area: hero" aria-labelledby="hero-section-title"> 739 <section class="hero"> 740 <div class="menu_hero backbgbox position-relative"> 741 <div class="logo"> 742 <a class="logo-image" href="https://www.chinahutwhitehall.com" aria-current="false" > 743 <img 744 src="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/39669ff8-d276-4e65-823f-83263e28e300/public" 745 srcset="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/39669ff8-d276-4e65-823f-83263e28e300/public 1x, https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/39669ff8-d276-4e65-823f-83263e28e300/public 2x" alt="Go to Home" 746 onerror="this.closest('.logo').style.setProperty('display', 'none', 'important')" 747 /> 748 </a> 749 </div> 750 </div> 751 752 <div class="p-3"> 753 <div class="pb-1"> 754 <h1 id="hero-section-title" class="eds-display-text-title-s m-0 p-0">China Hut - Whitehall</h1> 755 </div> 756 757 <div class="d-sm-flex align-items-baseline"> 758 <div class="mt-2"> 759 760 <span 761 class="eds_label eds_label--variant-error eds-interface-text-m-bold me-1 text-nowrap" 762 > 763 Closed </span> 764 765 Opens at 11:00AM </div> 766 767 <div class="d-flex gap-2 ms-sm-auto mt-2"> 768 769 <a 770 class="eds_button btn btn-outline-secondary btn-sm col text-nowrap" 771 href="https://www.chinahutwhitehall.com/locationinfo?lid=11198" 772 > 773 <i class="eds_icon fa fa-info-circle" style="" aria-hidden="true"></i> Store info </a> 774 775 776 777 <a 778 class="eds_button btn btn-outline-secondary btn-sm col d-lg-none text-nowrap" 779 href="tel:(610) 439-8888" 780 > 781 <i class="eds_icon fa fa-phone" style="" aria-hidden="true"></i> Call us </a> 782 783 784 </div> 785 </div> 786 </div> 787 </section> 788 </aside> 789 790 791 792 <div class="container" style="grid-area: messages"> 793 </div> 794 <!-- Header ends --> 795<main class="main_content" id="main"> 796 <div class="container locationinfo mt10"> 797 <div class="custom-content"> 798 <p>We deliver within a 5 mile radius of our restaurant.</p> 799 800<p>Minimum delivery order: $15</p> 801 802<p>Delivery fee: $2</p> 803 804<p>NO DELIVERY to zip code: 18103</p></div> </div> 805</main> 806 807<footer class="footer bg-white" style="grid-area: footer"> 808 <div class="container"> 809 <div class="social_wrapper"> 810 <div class="social_links"> 811 <ul class="d-flex align-items-start"> 812 <li> 813 <a class="icon" href="https://www.yelp.com/biz/china-hut-whitehall" target="_blank" title="Yelp (opens in new tab)"> 814 <span class="sr-only">Yelp</span> 815 <i class="eds_icon fab fa-yelp" style="" aria-hidden="true"></i> </a> 816 </li> 817 <li> 818 <a class="icon" href="https://www.tripadvisor.com/Restaurant_Review-g53994-d23819073-Reviews-China_Hut-Whitehall_Pennsylvania.html" target="_blank" title="TripAdvisor (opens in new tab)"> 819 <span class="sr-only">TripAdvisor</span> 820 <img class="eds_icon fab fa-tripadvisor" style="" aria-hidden="true" src="/web/website/assets/svg/icons/social/tripadvisor.svg" alt="Tripadvisor" /> </a> 821 </li> 822 </ul> 823 </div> 824 <div class="d_app"> 825 <ul> 826 <li><a href="https://play.google.com/store/apps/details?id=com.chinahutwhitehall.ordering"><span class="sr-only">Download from the Google Play Store</span><img src="/web/default4.0/images/google-play-badge.svg" alt="Get it on Google Play" aria-hidden="true"></a></li> 827 </ul> 828 </div> 829 </div> 830 831 <div class="d-flex flex-wrap justify-content-between gap-2 mt-2" style="--bs-link-color: var(--bs-body-color); --bs-link-hover-color: var(--bs-gray-dark)"> 832 <ul class="list-unstyled d-flex gap-3 mb-0 eds-interface-text-l-regular"> 833 <li><a class="text-decoration-none" href="https://www.chinahutwhitehall.com" aria-current="false">Home</a></li> 834 <li><a class="text-decoration-none" href="https://www.chinahutwhitehall.com/order/main" aria-current="false">Menu</a></li> 835 <li> 836 <a class="text-decoration-none" href="https://www.chinahutwhitehall.com/page/delivery-info" aria-current="page">Delivery Info</a> 837 </li> 838 <li><a class="text-decoration-none" href="https://www.chinahutwhitehall.com/locationinfo" aria-current="false">Location & Hours</a></li> 839 <li><a class="text-decoration-none" href="https://www.chinahutwhitehall.com/contact" aria-current="false">Contact</a></li> 840 </ul> 841 842 <ul class="list-unstyled d-flex mb-0 eds-interface-text-m-regular"> 843 <li class="bullet-separated"><a href="https://www.chinahutwhitehall.com/reportbug" class="errorLink">Technical Support</a></li> 844 <li class="bullet-separated"><a href="https://www.chinahutwhitehall.com/privacy">Privacy Policy</a></li> 845 <li class="bullet-separated"><a href="https://www.chinahutwhitehall.com/tos">Terms of Service</a></li> 846 <li class="bullet-separated"><a href="https://www.chinahutwhitehall.com/accessibility">Accessibility</a></li> 847 </ul> 848 </div> 849 850 <div class="d-flex justify-content-between gap-3 border-top mt-3 pt-3" style="--bs-link-color: var(--bs-body-color); --bs-link-hover-color: var(--bs-gray-dark)"> 851 <p class="eds-copy-text-m-regular"> 852 This site is protected by reCAPTCHA and <a href="https://policies.google.com/privacy">Google's Privacy Policy</a> and <a href="https://policies.google.com/terms">Google's Terms of Service</a> apply. 853 </p> 854 855 <p class="eds-copy-text-m-regular text-end"> 856 © 2026 Online Ordering by <a href="http://chinesemenuonline.com">Chinese Menu Online</a> <br>Explore the top Chinese food spots in Whitehall with <a href="https://www.springroll.com" target="_blank" title="Opens in new tab" >Springroll</a> </p> 857 </div> 858 </div> 859</footer> 860<!-- footer ends --> 861 862 863</div> 864<!-- wrapper ends --> 865 866 867 868 <div 869 data-eds-id="6ab5364fa5870" 870 class="eds_dialog modal fade " 871 tabindex="-1" 872 aria-labelledby="eds-dialog-title-6ab5364fa5870" 873 aria-hidden="true" 874 id="forgot-password-modal" >
875 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 876 <div class="modal-content "> 877 878 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 879 <h2 id="eds-dialog-title-6ab5364fa5870" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 880 Forgot Password </h2> 881 882 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 883 884 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular "> 885 <form 886 id="forgot-password-form" 887 name="forgot-password" 888 data-async-on-submit 889 method="post" 890 action="https://www.chinahutwhitehall.com/auth/forgotpassword" 891 data-async-block="#forgot-password-modal .modal-content" 892 data-async-target="#forgot-password-modal .eds_dialog-body" 893 data-async-recaptcha 894 novalidate 895 > 896 897 898 <label 899 data-eds-id="6ab5364fa5830" 900 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 901 > 902 <div class="eds_formfield-label"> 903 Your email <span aria-hidden="true">*</span> </div> 904 905 <div class="position-relative d-flex flex-column"> 906 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 907 908 <input 909 type="email" 910 class="eds-copy-text-l-regular " 911 placeholder=" " name="email" autocomplete="email" required value="" /> 912 913 914 915 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 916 </div> 917 918 919
919<script> 920 { 921 const container = document.querySelector('[data-eds-id="6ab5364fa5830"]'); 922 const input = container.querySelector('input, textarea, select'); 923 const error = container.querySelector('.eds_formfield-error'); 924 925 926 input.addEventListener('eds.validation.reset', () => { 927 input.removeAttribute('data-validation'); 928 input.setCustomValidity(''); 929 error.innerHTML = ''; 930 }); 931 932 input.addEventListener('eds.validation.hide', () => { 933 input.removeAttribute('data-validation'); 934 }); 935 936 input.addEventListener('eds.validation.success', (e) => { 937 input.setCustomValidity(''); 938 input.setAttribute('data-validation', ''); 939 error.innerHTML = ''; 940 }); 941 942 input.addEventListener('eds.validation.warning', (e) => { 943 input.setCustomValidity(''); 944 input.setAttribute('data-validation', ''); 945 error.innerHTML = e.detail; 946 }); 947 948 input.addEventListener('eds.validation.error', (e) => { 949 input.setCustomValidity(e.detail); 950 input.checkValidity(); input.setAttribute('data-validation', ''); 951 }); 952 953 input.addEventListener('invalid', (e) => { 954 error.innerHTML = input.validationMessage; 955 }); 956 957 } 958 </script>
958 959 </label> 960 961 962 <button class="eds_button btn btn-primary w-100 mb-3" type="submit" form="forgot-password-form">Reset password</button> 963 <div class="text-center"> 964 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#login-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">< Back</button> </div> 965 </form> </div> 966 967 968 </div> 969 </div> 970 971
971<script> 972 { 973 const container = document.querySelector('[data-eds-id="6ab5364fa5870"]'); 974 let edsMethodsDisabled = false; 975 976 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 977 container.addEventListener(`eds.${eventName}`, (e) => { 978 if (edsMethodsDisabled) return; 979 980 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 981 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 982 ); 983 }); 984 }); 985 986 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 987 container.addEventListener(`${eventName}.bs.modal`, (e) => { 988 if (edsMethodsDisabled) return; 989 990 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 991 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 992 edsMethodsDisabled = false; 993 }); 994 }); 995 996 997 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 998 container.addEventListener(eventName, () => { 999 const autofocusInput = container.querySelector('[autofocus]'); 1000 if (autofocusInput) { 1001 container.style.display = 'block'; 1002 autofocusInput.focus(); 1003 } 1004 }); 1005 }); 1006 1007 } 1008 </script>
1008 1009 </div> 1010 1011 1012 <div 1013 data-eds-id="6ab5364fa5b6b" 1014 class="eds_dialog modal fade " 1015 tabindex="-1" 1016 aria-labelledby="eds-dialog-title-6ab5364fa5b6b" 1017 aria-hidden="true" 1018 id="login-modal" > 1019 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 1020 <div class="modal-content "> 1021 1022 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 1023 <h2 id="eds-dialog-title-6ab5364fa5b6b" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 1024 Log in </h2> 1025 1026 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 1027 1028 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular "> 1029 <form 1030 id="login-form" 1031 name="login" 1032 data-async-on-submit 1033 method="post" 1034 action="https://www.chinahutwhitehall.com/auth" 1035 data-async-block="#login-modal .modal-content" 1036 data-async-target="#login-modal .eds_dialog-body" 1037 data-async-then="document.querySelector('#login-modal').dispatchEvent(new CustomEvent('eds.hide'))" 1038 data-async-recaptcha 1039 novalidate 1040 > 1041 1042 1043 <label 1044 data-eds-id="6ab5364fa5a52" 1045 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 1046 > 1047 <div class="eds_formfield-label"> 1048 Your email <span aria-hidden="true">*</span> </div> 1049 1050 <div class="position-relative d-flex flex-column"> 1051 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1052 1053 <input 1054 type="email" 1055 class="eds-copy-text-l-regular " 1056 placeholder=" " name="email" autocomplete="username" required value="" /> 1057 1058 1059 1060 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1061 </div> 1062 1063 1064
1064<script> 1065 { 1066 const container = document.querySelector('[data-eds-id="6ab5364fa5a52"]'); 1067 const input = container.querySelector('input, textarea, select'); 1068 const error = container.querySelector('.eds_formfield-error'); 1069 1070 1071 input.addEventListener('eds.validation.reset', () => { 1072 input.removeAttribute('data-validation'); 1073 input.setCustomValidity(''); 1074 error.innerHTML = ''; 1075 }); 1076 1077 input.addEventListener('eds.validation.hide', () => { 1078 input.removeAttribute('data-validation'); 1079 }); 1080 1081 input.addEventListener('eds.validation.success', (e) => { 1082 input.setCustomValidity(''); 1083 input.setAttribute('data-validation', ''); 1084 error.innerHTML = ''; 1085 }); 1086 1087 input.addEventListener('eds.validation.warning', (e) => { 1088 input.setCustomValidity(''); 1089 input.setAttribute('data-validation', ''); 1090 error.innerHTML = e.detail; 1091 }); 1092 1093 input.addEventListener('eds.validation.error', (e) => { 1094 input.setCustomValidity(e.detail); 1095 input.checkValidity(); input.setAttribute('data-validation', ''); 1096 }); 1097 1098 input.addEventListener('invalid', (e) => { 1099 error.innerHTML = input.validationMessage; 1100 }); 1101 1102 } 1103 </script>
1103 1104 </label> 1105 1106 1107 1108 <label 1109 data-eds-id="6ab5364fa5a6d" 1110 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2" 1111 > 1112 <div class="eds_formfield-label"> 1113 Your password <span aria-hidden="true">*</span> </div> 1114 1115 <div class="position-relative d-flex flex-column"> 1116 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1117 1118 <input 1119 type="password" 1120 class="eds-copy-text-l-regular pe-6" 1121 data-event-on:toggle_password_6ab5364fa5a6d="(shown) => $(this).attr('type', shown ? 'text' : 'password')" placeholder=" " name="password" autocomplete="current-password" required value="" /> 1122 1123 1124 <button class="eds_button btn btn-outline eds_formfield-toggle_password position-absolute end-0 px-2" style="--bs-btn-bg: transparent" title="Show password" aria-label="Show password" onclick="app.event.emit('toggle_password_6ab5364fa5a6d', !$(this).data('password-shown'))" data-event-on:toggle_password_6ab5364fa5a6d="(shown) => $(this).data('password-shown', shown).attr('title', shown ? 'Hide password' : 'Show password').attr('aria-label', shown ? 'Hide password' : 'Show password')" type="button"><i class="eds_icon fas fa-sm fa-eye" style="" aria-hidden="true" data-event-on:toggle_password_6ab5364fa5a6d="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6ab5364fa5a6d="(shown) => this.hidden = !shown" hidden></i></button> 1125 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1126 </div> 1127 1128 1129
1129<script> 1130 { 1131 const container = document.querySelector('[data-eds-id="6ab5364fa5a6d"]'); 1132 const input = container.querySelector('input, textarea, select'); 1133 const error = container.querySelector('.eds_formfield-error'); 1134 1135 1136 input.addEventListener('eds.validation.reset', () => { 1137 input.removeAttribute('data-validation'); 1138 input.setCustomValidity(''); 1139 error.innerHTML = ''; 1140 }); 1141 1142 input.addEventListener('eds.validation.hide', () => { 1143 input.removeAttribute('data-validation'); 1144 }); 1145 1146 input.addEventListener('eds.validation.success', (e) => { 1147 input.setCustomValidity(''); 1148 input.setAttribute('data-validation', ''); 1149 error.innerHTML = ''; 1150 }); 1151 1152 input.addEventListener('eds.validation.warning', (e) => { 1153 input.setCustomValidity(''); 1154 input.setAttribute('data-validation', ''); 1155 error.innerHTML = e.detail; 1156 }); 1157 1158 input.addEventListener('eds.validation.error', (e) => { 1159 input.setCustomValidity(e.detail); 1160 input.checkValidity(); input.setAttribute('data-validation', ''); 1161 }); 1162 1163 input.addEventListener('invalid', (e) => { 1164 error.innerHTML = input.validationMessage; 1165 }); 1166 1167 } 1168 </script>
1168 1169 </label> 1170 1171 1172 <div class="text-end mb-3"> 1173 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#forgot-password-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Forgot your password?</button> </div> 1174 1175 1176 <button class="eds_button btn btn-primary w-100 mb-3" type="submit">Log in</button> 1177 <div class="d-flex align-items-center mb-3"><hr class="flex-grow-1"><span class="mx-3 text-muted eds-interface-text-s-regular">OR</span><hr class="flex-grow-1"></div> <div class="google-signin-container text-center mb-2"> 1178 <a href="https://sso.onlineorderingsecure.com/auth/google/redirect?return_to=https%3A%2F%2Fwww.chinahutwhitehall.com%2Fauth%2Fgoogle&redirect=%2Fpage%2Fdelivery-info" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1179 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" fill="#4285F4"/><path d="M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18Z" fill="#34A853"/><path d="M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.997 8.997 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332Z" fill="#FBBC05"/><path d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 6.29C4.672 4.163 6.656 2.58 9 2.58Z" fill="#EA4335"/></svg> 1180 Continue with Google 1181 </a> 1182 </div> 1183 <div class="apple-signin-container text-center mb-2"> 1184 <a href="https://sso.onlineorderingsecure.com/auth/apple/redirect?return_to=https%3A%2F%2Fwww.chinahutwhitehall.com%2Fauth%2Fapple&redirect=%2Fpage%2Fdelivery-info" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1185 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M15.1 6.2c-.1.1-2.1 1.2-2.1 3.7 0 2.9 2.5 3.9 2.6 3.9 0 0 0 .1-.4 1.3-.6 1.5-1.7 3-2.9 3-1.3 0-1.6-.7-3.1-.7s-2 .8-3.1.8c-1.2 0-2.2-1.3-3-2.8C2 13.3 1.4 10.9 1.4 8.6c0-3.7 2.4-5.6 4.7-5.6 1.2 0 2.3.8 3 .8.7 0 1.9-.9 3.3-.9.5 0 2.4.1 3.7 1.3zM11.7 1.5c.6-.7 1-1.7 1-2.7 0-.1 0-.3 0-.4-1 0-2.1.6-2.8 1.4-.6.6-1.1 1.6-1.1 2.6 0 .2 0 .3 0 .4.1 0 .2 0 .3 0 .9 0 1.9-.6 2.6-1.3z" fill="currentColor"/></svg> 1186 Continue with Apple 1187 </a> 1188 </div> 1189 <small class="d-block mt-2 eds-interface-text-s-regular"> 1190 By continuing, you agree to our <a href="https://www.chinahutwhitehall.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.chinahutwhitehall.com/privacy" target="_blank" rel="noopener" title="Opens in new tab">Privacy Policy</a> and consent to receive automated promotional emails. See our <a href="https://www.chinahutwhitehall.com/privacy#section-7-7" target="_blank" rel="noopener" title="Opens in new tab">Notice of Financial Incentive</a> regarding how we use your data for rewards and offers. 1191 </small> 1192 1193 <div class="text-center mt-3"> 1194 Don't have an account? 1195 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#register-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Sign up</button> </div> 1196 </form> </div> 1197 1198 1199 </div> 1200 </div> 1201 1202
1202<script> 1203 { 1204 const container = document.querySelector('[data-eds-id="6ab5364fa5b6b"]'); 1205 let edsMethodsDisabled = false; 1206 1207 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 1208 container.addEventListener(`eds.${eventName}`, (e) => { 1209 if (edsMethodsDisabled) return; 1210 1211 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 1212 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 1213 ); 1214 }); 1215 }); 1216 1217 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 1218 container.addEventListener(`${eventName}.bs.modal`, (e) => { 1219 if (edsMethodsDisabled) return; 1220 1221 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 1222 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 1223 edsMethodsDisabled = false; 1224 }); 1225 }); 1226 1227 1228 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 1229 container.addEventListener(eventName, () => { 1230 const autofocusInput = container.querySelector('[autofocus]'); 1231 if (autofocusInput) { 1232 container.style.display = 'block'; 1233 autofocusInput.focus(); 1234 } 1235 }); 1236 }); 1237 1238 } 1239 </script>
1239 1240 </div> 1241 1242 1243 <div 1244 data-eds-id="6ab5364fa5de0" 1245 class="eds_dialog modal fade " 1246 tabindex="-1" 1247 aria-labelledby="eds-dialog-title-6ab5364fa5de0" 1248 aria-hidden="true" 1249 id="register-modal" > 1250 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 1251 <div class="modal-content "> 1252 1253 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 1254 <h2 id="eds-dialog-title-6ab5364fa5de0" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 1255 Sign up </h2> 1256 1257 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 1258 1259 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular p-0"> 1260 <form 1261 id="register-form" 1262 name="register" 1263 data-async-on-submit 1264 method="post" 1265 action="https://www.chinahutwhitehall.com/auth/register" 1266 data-async-block="#register-modal .modal-content" 1267 data-async-target="#register-modal .eds_dialog-body" 1268 data-async-then="document.querySelector('#register-modal').dispatchEvent(new CustomEvent('eds.hide'))" 1269 data-async-recaptcha 1270 novalidate 1271 > 1272 1273 <div class="p-3 pt-0"> 1274 1275 <label 1276 data-eds-id="6ab5364fa5c90" 1277 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1278 > 1279 <div class="eds_formfield-label"> 1280 First name <span aria-hidden="true">*</span> </div> 1281 1282 <div class="position-relative d-flex flex-column"> 1283 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1284 1285 <input 1286 type="text" 1287 class="eds-copy-text-l-regular " 1288 placeholder=" " name="firstname" autocomplete="given-name" required value="" /> 1289 1290 1291 1292 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1293 </div> 1294 1295 1296
1296<script> 1297 { 1298 const container = document.querySelector('[data-eds-id="6ab5364fa5c90"]'); 1299 const input = container.querySelector('input, textarea, select'); 1300 const error = container.querySelector('.eds_formfield-error'); 1301 1302 1303 input.addEventListener('eds.validation.reset', () => { 1304 input.removeAttribute('data-validation'); 1305 input.setCustomValidity(''); 1306 error.innerHTML = ''; 1307 }); 1308 1309 input.addEventListener('eds.validation.hide', () => { 1310 input.removeAttribute('data-validation'); 1311 }); 1312 1313 input.addEventListener('eds.validation.success', (e) => { 1314 input.setCustomValidity(''); 1315 input.setAttribute('data-validation', ''); 1316 error.innerHTML = ''; 1317 }); 1318 1319 input.addEventListener('eds.validation.warning', (e) => { 1320 input.setCustomValidity(''); 1321 input.setAttribute('data-validation', ''); 1322 error.innerHTML = e.detail; 1323 }); 1324 1325 input.addEventListener('eds.validation.error', (e) => { 1326 input.setCustomValidity(e.detail); 1327 input.checkValidity(); input.setAttribute('data-validation', ''); 1328 }); 1329 1330 input.addEventListener('invalid', (e) => { 1331 error.innerHTML = input.validationMessage; 1332 }); 1333 1334 } 1335 </script>
1335 1336 </label> 1337 1338 1339 1340 <label 1341 data-eds-id="6ab5364fa5ca9" 1342 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1343 > 1344 <div class="eds_formfield-label"> 1345 Last name <span aria-hidden="true">*</span> </div> 1346 1347 <div class="position-relative d-flex flex-column"> 1348 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1349 1350 <input 1351 type="text" 1352 class="eds-copy-text-l-regular " 1353 placeholder=" " name="lastname" autocomplete="family-name" required value="" /> 1354 1355 1356 1357 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1358 </div> 1359 1360 1361
1361<script> 1362 { 1363 const container = document.querySelector('[data-eds-id="6ab5364fa5ca9"]'); 1364 const input = container.querySelector('input, textarea, select'); 1365 const error = container.querySelector('.eds_formfield-error'); 1366 1367 1368 input.addEventListener('eds.validation.reset', () => { 1369 input.removeAttribute('data-validation'); 1370 input.setCustomValidity(''); 1371 error.innerHTML = ''; 1372 }); 1373 1374 input.addEventListener('eds.validation.hide', () => { 1375 input.removeAttribute('data-validation'); 1376 }); 1377 1378 input.addEventListener('eds.validation.success', (e) => { 1379 input.setCustomValidity(''); 1380 input.setAttribute('data-validation', ''); 1381 error.innerHTML = ''; 1382 }); 1383 1384 input.addEventListener('eds.validation.warning', (e) => { 1385 input.setCustomValidity(''); 1386 input.setAttribute('data-validation', ''); 1387 error.innerHTML = e.detail; 1388 }); 1389 1390 input.addEventListener('eds.validation.error', (e) => { 1391 input.setCustomValidity(e.detail); 1392 input.checkValidity(); input.setAttribute('data-validation', ''); 1393 }); 1394 1395 input.addEventListener('invalid', (e) => { 1396 error.innerHTML = input.validationMessage; 1397 }); 1398 1399 } 1400 </script>
1400 1401 </label> 1402 1403 1404 1405 <label 1406 data-eds-id="6ab5364fa5cbb" 1407 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1408 > 1409 <div class="eds_formfield-label"> 1410 Email <span aria-hidden="true">*</span> </div> 1411 1412 <div class="position-relative d-flex flex-column"> 1413 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1414 1415 <input 1416 type="email" 1417 class="eds-copy-text-l-regular " 1418 placeholder=" " name="email" autocomplete="username" required value="" /> 1419 1420 1421 1422 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1423 </div> 1424 1425 1426
1426<script> 1427 { 1428 const container = document.querySelector('[data-eds-id="6ab5364fa5cbb"]'); 1429 const input = container.querySelector('input, textarea, select'); 1430 const error = container.querySelector('.eds_formfield-error'); 1431 1432 1433 input.addEventListener('eds.validation.reset', () => { 1434 input.removeAttribute('data-validation'); 1435 input.setCustomValidity(''); 1436 error.innerHTML = ''; 1437 }); 1438 1439 input.addEventListener('eds.validation.hide', () => { 1440 input.removeAttribute('data-validation'); 1441 }); 1442 1443 input.addEventListener('eds.validation.success', (e) => { 1444 input.setCustomValidity(''); 1445 input.setAttribute('data-validation', ''); 1446 error.innerHTML = ''; 1447 }); 1448 1449 input.addEventListener('eds.validation.warning', (e) => { 1450 input.setCustomValidity(''); 1451 input.setAttribute('data-validation', ''); 1452 error.innerHTML = e.detail; 1453 }); 1454 1455 input.addEventListener('eds.validation.error', (e) => { 1456 input.setCustomValidity(e.detail); 1457 input.checkValidity(); input.setAttribute('data-validation', ''); 1458 }); 1459 1460 input.addEventListener('invalid', (e) => { 1461 error.innerHTML = input.validationMessage; 1462 }); 1463 1464 } 1465 </script>
1465 1466 </label> 1467 1468 1469 1470 <label 1471 data-eds-id="6ab5364fa5cca" 1472 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1473 > 1474 <div class="eds_formfield-label"> 1475 Password <span aria-hidden="true">*</span> </div> 1476 1477 <div class="position-relative d-flex flex-column"> 1478 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1479 1480 <input 1481 type="password" 1482 class="eds-copy-text-l-regular pe-6" 1483 data-event-on:toggle_password_6ab5364fa5cca="(shown) => $(this).attr('type', shown ? 'text' : 'password')" placeholder=" " name="password" autocomplete="current-password" required value="" /> 1484 1485 1486 <button class="eds_button btn btn-outline eds_formfield-toggle_password position-absolute end-0 px-2" style="--bs-btn-bg: transparent" title="Show password" aria-label="Show password" onclick="app.event.emit('toggle_password_6ab5364fa5cca', !$(this).data('password-shown'))" data-event-on:toggle_password_6ab5364fa5cca="(shown) => $(this).data('password-shown', shown).attr('title', shown ? 'Hide password' : 'Show password').attr('aria-label', shown ? 'Hide password' : 'Show password')" type="button"><i class="eds_icon fas fa-sm fa-eye" style="" aria-hidden="true" data-event-on:toggle_password_6ab5364fa5cca="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6ab5364fa5cca="(shown) => this.hidden = !shown" hidden></i></button> 1487 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1488 </div> 1489 1490 1491
1491<script> 1492 { 1493 const container = document.querySelector('[data-eds-id="6ab5364fa5cca"]'); 1494 const input = container.querySelector('input, textarea, select'); 1495 const error = container.querySelector('.eds_formfield-error'); 1496 1497 1498 input.addEventListener('eds.validation.reset', () => { 1499 input.removeAttribute('data-validation'); 1500 input.setCustomValidity(''); 1501 error.innerHTML = ''; 1502 }); 1503 1504 input.addEventListener('eds.validation.hide', () => { 1505 input.removeAttribute('data-validation'); 1506 }); 1507 1508 input.addEventListener('eds.validation.success', (e) => { 1509 input.setCustomValidity(''); 1510 input.setAttribute('data-validation', ''); 1511 error.innerHTML = ''; 1512 }); 1513 1514 input.addEventListener('eds.validation.warning', (e) => { 1515 input.setCustomValidity(''); 1516 input.setAttribute('data-validation', ''); 1517 error.innerHTML = e.detail; 1518 }); 1519 1520 input.addEventListener('eds.validation.error', (e) => { 1521 input.setCustomValidity(e.detail); 1522 input.checkValidity(); input.setAttribute('data-validation', ''); 1523 }); 1524 1525 input.addEventListener('invalid', (e) => { 1526 error.innerHTML = input.validationMessage; 1527 }); 1528 1529 } 1530 </script>
1530 1531 </label> 1532 1533 1534 1535 <label 1536 data-eds-id="6ab5364fa5d04" 1537 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 1538 > 1539 <div class="eds_formfield-label"> 1540 Phone number <span aria-hidden="true">*</span> </div> 1541 1542 <div class="position-relative d-flex flex-column"> 1543 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1544 1545 <input 1546 type="text" 1547 class="eds-copy-text-l-regular " 1548 placeholder=" " name="primary_phone" autocomplete="tel-national" required value="" /> 1549 1550 1551 1552 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1553 </div> 1554 1555 <div class="eds-interface-text-s-regular mt-2"> 1556 <i class="eds_icon fa fa-info-circle text-muted" style="" aria-hidden="true"></i> We require a phone number in case we need to contact you about your order. </div> 1557 1558
1558<script> 1559 { 1560 const container = document.querySelector('[data-eds-id="6ab5364fa5d04"]'); 1561 const input = container.querySelector('input, textarea, select'); 1562 const error = container.querySelector('.eds_formfield-error'); 1563 1564 1565 input.addEventListener('eds.validation.reset', () => { 1566 input.removeAttribute('data-validation'); 1567 input.setCustomValidity(''); 1568 error.innerHTML = ''; 1569 }); 1570 1571 input.addEventListener('eds.validation.hide', () => { 1572 input.removeAttribute('data-validation'); 1573 }); 1574 1575 input.addEventListener('eds.validation.success', (e) => { 1576 input.setCustomValidity(''); 1577 input.setAttribute('data-validation', ''); 1578 error.innerHTML = ''; 1579 }); 1580 1581 input.addEventListener('eds.validation.warning', (e) => { 1582 input.setCustomValidity(''); 1583 input.setAttribute('data-validation', ''); 1584 error.innerHTML = e.detail; 1585 }); 1586 1587 input.addEventListener('eds.validation.error', (e) => { 1588 input.setCustomValidity(e.detail); 1589 input.checkValidity(); input.setAttribute('data-validation', ''); 1590 }); 1591 1592 input.addEventListener('invalid', (e) => { 1593 error.innerHTML = input.validationMessage; 1594 }); 1595 1596 } 1597 </script>
1597 1598 </label> 1599 1600 1601 1602 <div class="eds_checkable d-inline-block mb-2" > 1603 <input id="eds-checkable-6ab5364fa5d16" name="receive_promotions" value="1" checked type="checkbox" /> 1604 <label for="eds-checkable-6ab5364fa5d16" class="eds_checkable-text eds-interface-text-l-regular "> 1605 Receive Promotional Offers & Updates </label> 1606 </div> 1607 1608 1609 <button class="eds_button btn btn-primary w-100 mt-1 mb-3" type="submit">Sign up</button> 1610 <div class="d-flex align-items-center mb-3"><hr class="flex-grow-1"><span class="mx-3 text-muted eds-interface-text-s-regular">OR</span><hr class="flex-grow-1"></div> <div class="google-signin-container text-center mb-2"> 1611 <a href="https://sso.onlineorderingsecure.com/auth/google/redirect?return_to=https%3A%2F%2Fwww.chinahutwhitehall.com%2Fauth%2Fgoogle&redirect=%2Fpage%2Fdelivery-info" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1612 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" fill="#4285F4"/><path d="M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18Z" fill="#34A853"/><path d="M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.997 8.997 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332Z" fill="#FBBC05"/><path d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 6.29C4.672 4.163 6.656 2.58 9 2.58Z" fill="#EA4335"/></svg> 1613 Continue with Google 1614 </a> 1615 </div> 1616 <div class="apple-signin-container text-center mb-2"> 1617 <a href="https://sso.onlineorderingsecure.com/auth/apple/redirect?return_to=https%3A%2F%2Fwww.chinahutwhitehall.com%2Fauth%2Fapple&redirect=%2Fpage%2Fdelivery-info" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1618 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M15.1 6.2c-.1.1-2.1 1.2-2.1 3.7 0 2.9 2.5 3.9 2.6 3.9 0 0 0 .1-.4 1.3-.6 1.5-1.7 3-2.9 3-1.3 0-1.6-.7-3.1-.7s-2 .8-3.1.8c-1.2 0-2.2-1.3-3-2.8C2 13.3 1.4 10.9 1.4 8.6c0-3.7 2.4-5.6 4.7-5.6 1.2 0 2.3.8 3 .8.7 0 1.9-.9 3.3-.9.5 0 2.4.1 3.7 1.3zM11.7 1.5c.6-.7 1-1.7 1-2.7 0-.1 0-.3 0-.4-1 0-2.1.6-2.8 1.4-.6.6-1.1 1.6-1.1 2.6 0 .2 0 .3 0 .4.1 0 .2 0 .3 0 .9 0 1.9-.6 2.6-1.3z" fill="currentColor"/></svg> 1619 Continue with Apple 1620 </a> 1621 </div> 1622 <small class="d-block mt-2 eds-interface-text-s-regular"> 1623 By continuing, you agree to our <a href="https://www.chinahutwhitehall.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.chinahutwhitehall.com/privacy" target="_blank" rel="noopener" title="Opens in new tab">Privacy Policy</a> and consent to receive automated promotional emails. See our <a href="https://www.chinahutwhitehall.com/privacy#section-7-7" target="_blank" rel="noopener" title="Opens in new tab">Notice of Financial Incentive</a> regarding how we use your data for rewards and offers. 1624 </small> 1625 1626 <div class="text-center mt-3"> 1627 Already have an account? 1628 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#login-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Log in</button> </div> 1629 </div> 1630 </form> </div> 1631 1632 1633 </div> 1634 </div> 1635 1636
1636<script> 1637 { 1638 const container = document.querySelector('[data-eds-id="6ab5364fa5de0"]'); 1639 let edsMethodsDisabled = false; 1640 1641 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 1642 container.addEventListener(`eds.${eventName}`, (e) => { 1643 if (edsMethodsDisabled) return; 1644 1645 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 1646 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 1647 ); 1648 }); 1649 }); 1650 1651 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 1652 container.addEventListener(`${eventName}.bs.modal`, (e) => { 1653 if (edsMethodsDisabled) return; 1654 1655 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 1656 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 1657 edsMethodsDisabled = false; 1658 }); 1659 }); 1660 1661 1662 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 1663 container.addEventListener(eventName, () => { 1664 const autofocusInput = container.querySelector('[autofocus]'); 1665 if (autofocusInput) { 1666 container.style.display = 'block'; 1667 autofocusInput.focus(); 1668 } 1669 }); 1670 }); 1671 1672 } 1673 </script>
1673 1674 </div> 1675 1676 1677
1677<script> 1678 window.__ssoConfig = { 1679 google: { 1680 pendingUrl: "https:\/\/www.chinahutwhitehall.com\/auth\/google\/pending", 1681 registerModalId: "register-modal", 1682 loginModalId: "login-modal" }, 1683 apple: { 1684 pendingUrl: "https:\/\/www.chinahutwhitehall.com\/auth\/apple\/pending", 1685 registerModalId: "register-modal", 1686 loginModalId: "login-modal" } 1687 }; 1688 </script>
1688 1689 1690 1691<div class="modal fade" id="modal-order-time" tabindex="-1" role="dialog" 1692 aria-hidden="true"> 1693 <div class="modal-dialog modal-fullscreen-md-down mt-md-6" role="document"> 1694 <div class="modal-content"> 1695 <button class="d-md-none close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 1696 <div class="modal-header"> 1697 <h2 class="modal-title eds-display-text-title-m">Order time</h2> 1698 </div> 1699 <div class="modal-body"> 1700 <div class="btn-group w-100 btn-group-order-time-type mb-3" style="display: none;"> 1701 1702 <input type="radio" name="param_order~time~type_i_n_1" id="order_time_type_1-" value="1" class="btn-check timeswitch orderTimeTypeOption" 1703 checked /> 1704 <label for="order_time_type_1-" class="d-flex align-items-center justify-content-center btn btn-outline-secondary w-50"> 1705 <span> 1706 Later 1707 <span class="d-block small fw-normal">Later</span> 1708 </span> 1709 </label> 1710 </div> 1711 <div id="laterContent" class=""> 1712 <div class="select-time-container"> 1713 <div class="selecttime showcheck_parent "> 1714 <div class="select-time-header clearfix"> 1715 <h3 class="bold fl fs-5">Pick a day and time</h3> 1716 </div> 1717 <div class="select-time-content clearfix"> 1718 <div class="row select-time-row"> 1719 <div class="datepicker col-md-8" style="min-height: 248px;"> 1720 <div class="datepicker-days" style="display: block;"> 1721 <div data-datetimepicker data-datepicker-min-date="2026-09-24" class="errorable"></div> 1722 </div> 1723 </div> 1724 <div class="timepicker col-md-4"> 1725 <div class="timepicker-picker"> 1726 <ul class="ready-at-time css-scroll"> 1727 <li class="time-button "> 1728 <input id="timeValue0" type="radio" value="11:15 AM" name="param_ready~at~time_s_n_15" 1729 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1730 data-required-field data-ready-attime/> 1731 <label for="timeValue0" class="btn btn-outline-secondary btn-sm" for="">11:15 AM</label> 1732 </li> 1733 <li class="time-button "> 1734 <input id="timeValue1" type="radio" value="11:30 AM" name="param_ready~at~time_s_n_15" 1735 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1736 data-required-field data-ready-attime/> 1737 <label for="timeValue1" class="btn btn-outline-secondary btn-sm" for="">11:30 AM</label> 1738 </li> 1739 <li class="time-button "> 1740 <input id="timeValue2" type="radio" value="11:45 AM" name="param_ready~at~time_s_n_15" 1741 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1742 data-required-field data-ready-attime/> 1743 <label for="timeValue2" class="btn btn-outline-secondary btn-sm" for="">11:45 AM</label> 1744 </li> 1745 <li class="time-button "> 1746 <input id="timeValue3" type="radio" value="12:00 PM" name="param_ready~at~time_s_n_15" 1747 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1748 data-required-field data-ready-attime/> 1749 <label for="timeValue3" class="btn btn-outline-secondary btn-sm" for="">12:00 PM</label> 1750 </li> 1751 <li class="time-button "> 1752 <input id="timeValue4" type="radio" value="12:15 PM" name="param_ready~at~time_s_n_15" 1753 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1754 data-required-field data-ready-attime/> 1755 <label for="timeValue4" class="btn btn-outline-secondary btn-sm" for="">12:15 PM</label> 1756 </li> 1757 <li class="time-button "> 1758 <input id="timeValue5" type="radio" value="12:30 PM" name="param_ready~at~time_s_n_15" 1759 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1760 data-required-field data-ready-attime/> 1761 <label for="timeValue5" class="btn btn-outline-secondary btn-sm" for="">12:30 PM</label> 1762 </li> 1763 <li class="time-button "> 1764 <input id="timeValue6" type="radio" value="12:45 PM" name="param_ready~at~time_s_n_15" 1765 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1766 data-required-field data-ready-attime/> 1767 <label for="timeValue6" class="btn btn-outline-secondary btn-sm" for="">12:45 PM</label> 1768 </li> 1769 <li class="time-button "> 1770 <input id="timeValue7" type="radio" value="1:00 PM" name="param_ready~at~time_s_n_15" 1771 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1772 data-required-field data-ready-attime/> 1773 <label for="timeValue7" class="btn btn-outline-secondary btn-sm" for="">1:00 PM</label> 1774 </li> 1775 <li class="time-button "> 1776 <input id="timeValue8" type="radio" value="1:15 PM" name="param_ready~at~time_s_n_15" 1777 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1778 data-required-field data-ready-attime/> 1779 <label for="timeValue8" class="btn btn-outline-secondary btn-sm" for="">1:15 PM</label> 1780 </li> 1781 <li class="time-button "> 1782 <input id="timeValue9" type="radio" value="1:30 PM" name="param_ready~at~time_s_n_15" 1783 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1784 data-required-field data-ready-attime/> 1785 <label for="timeValue9" class="btn btn-outline-secondary btn-sm" for="">1:30 PM</label> 1786 </li> 1787 <li class="time-button "> 1788 <input id="timeValue10" type="radio" value="1:45 PM" name="param_ready~at~time_s_n_15" 1789 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1790 data-required-field data-ready-attime/> 1791 <label for="timeValue10" class="btn btn-outline-secondary btn-sm" for="">1:45 PM</label> 1792 </li> 1793 <li class="time-button "> 1794 <input id="timeValue11" type="radio" value="2:00 PM" name="param_ready~at~time_s_n_15" 1795 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1796 data-required-field data-ready-attime/> 1797 <label for="timeValue11" class="btn btn-outline-secondary btn-sm" for="">2:00 PM</label> 1798 </li> 1799 <li class="time-button "> 1800 <input id="timeValue12" type="radio" value="2:15 PM" name="param_ready~at~time_s_n_15" 1801 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1802 data-required-field data-ready-attime/> 1803 <label for="timeValue12" class="btn btn-outline-secondary btn-sm" for="">2:15 PM</label> 1804 </li> 1805 <li class="time-button "> 1806 <input id="timeValue13" type="radio" value="2:30 PM" name="param_ready~at~time_s_n_15" 1807 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1808 data-required-field data-ready-attime/> 1809 <label for="timeValue13" class="btn btn-outline-secondary btn-sm" for="">2:30 PM</label> 1810 </li> 1811 <li class="time-button "> 1812 <input id="timeValue14" type="radio" value="2:45 PM" name="param_ready~at~time_s_n_15" 1813 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1814 data-required-field data-ready-attime/> 1815 <label for="timeValue14" class="btn btn-outline-secondary btn-sm" for="">2:45 PM</label> 1816 </li> 1817 <li class="time-button "> 1818 <input id="timeValue15" type="radio" value="3:00 PM" name="param_ready~at~time_s_n_15" 1819 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1820 data-required-field data-ready-attime/> 1821 <label for="timeValue15" class="btn btn-outline-secondary btn-sm" for="">3:00 PM</label> 1822 </li> 1823 <li class="time-button "> 1824 <input id="timeValue16" type="radio" value="3:15 PM" name="param_ready~at~time_s_n_15" 1825 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1826 data-required-field data-ready-attime/> 1827 <label for="timeValue16" class="btn btn-outline-secondary btn-sm" for="">3:15 PM</label> 1828 </li> 1829 <li class="time-button "> 1830 <input id="timeValue17" type="radio" value="3:30 PM" name="param_ready~at~time_s_n_15" 1831 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1832 data-required-field data-ready-attime/> 1833 <label for="timeValue17" class="btn btn-outline-secondary btn-sm" for="">3:30 PM</label> 1834 </li> 1835 <li class="time-button "> 1836 <input id="timeValue18" type="radio" value="3:45 PM" name="param_ready~at~time_s_n_15" 1837 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1838 data-required-field data-ready-attime/> 1839 <label for="timeValue18" class="btn btn-outline-secondary btn-sm" for="">3:45 PM</label> 1840 </li> 1841 <li class="time-button "> 1842 <input id="timeValue19" type="radio" value="4:00 PM" name="param_ready~at~time_s_n_15" 1843 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1844 data-required-field data-ready-attime/> 1845 <label for="timeValue19" class="btn btn-outline-secondary btn-sm" for="">4:00 PM</label> 1846 </li> 1847 <li class="time-button "> 1848 <input id="timeValue20" type="radio" value="4:15 PM" name="param_ready~at~time_s_n_15" 1849 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1850 data-required-field data-ready-attime/> 1851 <label for="timeValue20" class="btn btn-outline-secondary btn-sm" for="">4:15 PM</label> 1852 </li> 1853 <li class="time-button "> 1854 <input id="timeValue21" type="radio" value="4:30 PM" name="param_ready~at~time_s_n_15" 1855 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1856 data-required-field data-ready-attime/> 1857 <label for="timeValue21" class="btn btn-outline-secondary btn-sm" for="">4:30 PM</label> 1858 </li> 1859 <li class="time-button "> 1860 <input id="timeValue22" type="radio" value="4:45 PM" name="param_ready~at~time_s_n_15" 1861 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1862 data-required-field data-ready-attime/> 1863 <label for="timeValue22" class="btn btn-outline-secondary btn-sm" for="">4:45 PM</label> 1864 </li> 1865 <li class="time-button "> 1866 <input id="timeValue23" type="radio" value="5:00 PM" name="param_ready~at~time_s_n_15" 1867 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1868 data-required-field data-ready-attime/> 1869 <label for="timeValue23" class="btn btn-outline-secondary btn-sm" for="">5:00 PM</label> 1870 </li> 1871 <li class="time-button "> 1872 <input id="timeValue24" type="radio" value="5:15 PM" name="param_ready~at~time_s_n_15" 1873 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1874 data-required-field data-ready-attime/> 1875 <label for="timeValue24" class="btn btn-outline-secondary btn-sm" for="">5:15 PM</label> 1876 </li> 1877 <li class="time-button "> 1878 <input id="timeValue25" type="radio" value="5:30 PM" name="param_ready~at~time_s_n_15" 1879 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1880 data-required-field data-ready-attime/> 1881 <label for="timeValue25" class="btn btn-outline-secondary btn-sm" for="">5:30 PM</label> 1882 </li> 1883 <li class="time-button "> 1884 <input id="timeValue26" type="radio" value="5:45 PM" name="param_ready~at~time_s_n_15" 1885 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1886 data-required-field data-ready-attime/> 1887 <label for="timeValue26" class="btn btn-outline-secondary btn-sm" for="">5:45 PM</label> 1888 </li> 1889 <li class="time-button "> 1890 <input id="timeValue27" type="radio" value="6:00 PM" name="param_ready~at~time_s_n_15" 1891 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1892 data-required-field data-ready-attime/> 1893 <label for="timeValue27" class="btn btn-outline-secondary btn-sm" for="">6:00 PM</label> 1894 </li> 1895 <li class="time-button "> 1896 <input id="timeValue28" type="radio" value="6:15 PM" name="param_ready~at~time_s_n_15" 1897 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1898 data-required-field data-ready-attime/> 1899 <label for="timeValue28" class="btn btn-outline-secondary btn-sm" for="">6:15 PM</label> 1900 </li> 1901 <li class="time-button "> 1902 <input id="timeValue29" type="radio" value="6:30 PM" name="param_ready~at~time_s_n_15" 1903 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1904 data-required-field data-ready-attime/> 1905 <label for="timeValue29" class="btn btn-outline-secondary btn-sm" for="">6:30 PM</label> 1906 </li> 1907 <li class="time-button "> 1908 <input id="timeValue30" type="radio" value="6:45 PM" name="param_ready~at~time_s_n_15" 1909 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1910 data-required-field data-ready-attime/> 1911 <label for="timeValue30" class="btn btn-outline-secondary btn-sm" for="">6:45 PM</label> 1912 </li> 1913 <li class="time-button "> 1914 <input id="timeValue31" type="radio" value="7:00 PM" name="param_ready~at~time_s_n_15" 1915 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1916 data-required-field data-ready-attime/> 1917 <label for="timeValue31" class="btn btn-outline-secondary btn-sm" for="">7:00 PM</label> 1918 </li> 1919 <li class="time-button "> 1920 <input id="timeValue32" type="radio" value="7:15 PM" name="param_ready~at~time_s_n_15" 1921 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1922 data-required-field data-ready-attime/> 1923 <label for="timeValue32" class="btn btn-outline-secondary btn-sm" for="">7:15 PM</label> 1924 </li> 1925 <li class="time-button "> 1926 <input id="timeValue33" type="radio" value="7:30 PM" name="param_ready~at~time_s_n_15" 1927 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1928 data-required-field data-ready-attime/> 1929 <label for="timeValue33" class="btn btn-outline-secondary btn-sm" for="">7:30 PM</label> 1930 </li> 1931 <li class="time-button "> 1932 <input id="timeValue34" type="radio" value="7:45 PM" name="param_ready~at~time_s_n_15" 1933 class="btn-check rad-ready_at_time" onchange="saveFormSt
1933ate('param_ready~at~time_s_n_15', this.value, true);" 1934 data-required-field data-ready-attime/> 1935 <label for="timeValue34" class="btn btn-outline-secondary btn-sm" for="">7:45 PM</label> 1936 </li> 1937 <li class="time-button "> 1938 <input id="timeValue35" type="radio" value="8:00 PM" name="param_ready~at~time_s_n_15" 1939 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1940 data-required-field data-ready-attime/> 1941 <label for="timeValue35" class="btn btn-outline-secondary btn-sm" for="">8:00 PM</label> 1942 </li> 1943 <li class="time-button "> 1944 <input id="timeValue36" type="radio" value="8:15 PM" name="param_ready~at~time_s_n_15" 1945 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1946 data-required-field data-ready-attime/> 1947 <label for="timeValue36" class="btn btn-outline-secondary btn-sm" for="">8:15 PM</label> 1948 </li> 1949 <li class="time-button "> 1950 <input id="timeValue37" type="radio" value="8:30 PM" name="param_ready~at~time_s_n_15" 1951 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1952 data-required-field data-ready-attime/> 1953 <label for="timeValue37" class="btn btn-outline-secondary btn-sm" for="">8:30 PM</label> 1954 </li> 1955 <li class="time-button "> 1956 <input id="timeValue38" type="radio" value="8:45 PM" name="param_ready~at~time_s_n_15" 1957 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1958 data-required-field data-ready-attime/> 1959 <label for="timeValue38" class="btn btn-outline-secondary btn-sm" for="">8:45 PM</label> 1960 </li> 1961 <li class="time-button "> 1962 <input id="timeValue39" type="radio" value="9:00 PM" name="param_ready~at~time_s_n_15" 1963 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1964 data-required-field data-ready-attime/> 1965 <label for="timeValue39" class="btn btn-outline-secondary btn-sm" for="">9:00 PM</label> 1966 </li> 1967 <li class="time-button "> 1968 <input id="timeValue40" type="radio" value="9:15 PM" name="param_ready~at~time_s_n_15" 1969 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1970 data-required-field data-ready-attime/> 1971 <label for="timeValue40" class="btn btn-outline-secondary btn-sm" for="">9:15 PM</label> 1972 </li> 1973 <li class="time-button "> 1974 <input id="timeValue41" type="radio" value="9:30 PM" name="param_ready~at~time_s_n_15" 1975 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1976 data-required-field data-ready-attime/> 1977 <label for="timeValue41" class="btn btn-outline-secondary btn-sm" for="">9:30 PM</label> 1978 </li> 1979 <li class="time-button "> 1980 <input id="timeValue42" type="radio" value="9:45 PM" name="param_ready~at~time_s_n_15" 1981 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1982 data-required-field data-ready-attime/> 1983 <label for="timeValue42" class="btn btn-outline-secondary btn-sm" for="">9:45 PM</label> 1984 </li> 1985 </ul> 1986 </div> 1987 </div> 1988 </div> 1989 </div> 1990</div> 1991</div> 1992<input type="hidden" name="param_ready~at_s_n_100" class="hid-ready-at" value="" /> 1993<input type="hidden" class="hid-ready-at-date" value="2026-09-24" /> 1994<input type="hidden" class="hid-eot" value="1969-12-31 16:00:00" /> </div> 1995 </div> 1996 <div class="modal-footer"> 1997 <input type="hidden" id="hid-order-time-type" value="1" /> 1998 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button> 1999 <button type="button" class="btn btn-primary" data-save-time-modal>Save</button> 2000 </div> 2001 </div> 2002 </div> 2003</div> 2004 2005<!-- www modal start --> 2006<div class="modal fade mob_full_modal www_modal order-options" id="modal-order-options" tabindex="-1" role="dialog" 2007 aria-hidden="true" data-update-otype-on-modal-close> 2008 <div class="modal-dialog modal-fullscreen-sm-down mt-sm-6" role="document"> 2009 <div class="modal-content"> 2010 <button class="d-md-none close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2011 <div class="modal-header"> 2012 <h2 class="modal-title eds-display-text-title-m">Order details</h2> 2013 </div> 2014 <div class="modal-body"> 2015 <div class="www_moda_content"> 2016 <div class="cs_box order_type" onchange="app.event.emit('order_type_changed', { order_type: event.target.value })"> 2017 <div class="h5">What:</div> 2018 <div class="position-relative"> 2019 <div class="mdropbtn" data-toggle-mdrop role="button"> 2020 <span class="visually-hidden">Order type:</span> 2021 <span data-order-type-label> 2022 Select </span> 2023 </div> 2024 <ul data-mdrop-ul> 2025 <li class=" "> 2026 <input data-order-type-on-change type="radio" name="param_order~type_s_n_10" id="order-type-pickup-1" 2027 class="orderTypeOption css-checkbox " data-name="Pick up" value="PICKUP" 2028 data-constant="1" data-base="PICKUP" > 2029 <label for="order-type-pickup-1" class="css-label" data-update-mdrop-on-click> 2030 Pick up </label> 2031 </li> 2032 <li class=" "> 2033 <input data-order-type-on-change type="radio" name="param_order~type_s_n_10" id="order-type-
2033delivery-1" 2034 class="orderTypeOption css-checkbox deliveryswitch" data-name="Delivery" value="DELIVERY" 2035 data-constant="2" data-base="DELIVERY" > 2036 <label for="order-type-delivery-1" class="css-label" data-update-mdrop-on-click> 2037 Delivery </label> 2038 </li> 2039 </ul> 2040</div> 2041 </div> 2042 <form class=""> 2043 <div class="cs_box guest_checkout_address checkout_address deliveryAddressContainer" style="display:none;"> 2044 <label for="street-address-bar" class="h5">Enter your address:</label> 2045 <div class="form-group street-address-container"> 2046 <input name="param_full~address_s_n_255" id="street-address-bar" placeholder="Enter your address" 2047 data-autocomplete-address data-autocomplete-success="autoCompleteSuccess" 2048 onkeyup="scheduleFormStateSave(this.name, this.value)" onchange="validateAddress($('#modal-order-options .deliveryAddressContainer'))" 2049 type="search" class="form-control input-search input-validate-address input-street-address user-address-field" 2050 value="" data-required-field /> 2051 </div> 2052 <input type="hidden" name="param_street~address_s_n_255" data-autocompleted-street-address /> 2053 <input type="hidden" name="param_city_s_n_90" data-autocompleted-city /> 2054 <input type="hidden" name="param_state_s_n_2" data-autocompleted-state /> 2055 <input type="hidden" name="param_zip~code_z_n_10" data-autocompleted-zip /> 2056 </div> 2057 </form> 2058 <!-- <div class="form-submit-wrapper"> 2059 <input type="submit" class="form-submit btn btn-primary" value="Save" data-close-modal data-select-later-date data-saveotype-modal> 2060 </div> --> 2061 </div> 2062 </div> 2063 <div 2064 data-async-on-event="order_type_changed" 2065 data-async-action="https://www.chinahutwhitehall.com/ajax/?form=minimum_order_value_warning&component=order_type" 2066 data-async-method="get" 2067 > 2068 </div> 2069 <div class="modal-footer"> 2070 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2071 <button type="button" class="btn btn-primary" data-close-modal data-saveotype-modal>Save</button> 2072 </div> 2073 </div> 2074 </div> 2075</div> 2076<!-- www modal end --> 2077 2078<!-- menu item modal --> 2079<div class="modal fade add_menu" id="add_menu_item" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="item_name"> 2080 <div class="modal-dialog modal-dialog-centered modal-fullscreen-md-down" role="document"> 2081 <div class="modal-content menu-item-container-wrapper"> 2082 <div class="modal-body menu-item-container "> 2083 <p id="item_name">Menu item dialog</p> 2084 </div> 2085 </div> 2086 </div> 2087</div> 2088<!-- menu item modal end --> 2089 2090 2091 <div 2092 data-eds-id="6ab5364fadbd7" 2093 class="eds_dialog modal fade " 2094 tabindex="-1" 2095 aria-labelledby="eds-dialog-title-6ab5364fadbd7" 2096 aria-hidden="true" 2097 data-event-on:coupon_modal_shown="(shown) => $(this).data(`coupon_modal_shown`, shown)" data-event-on:show_coupon_restrictions="({ coupon, errors }) => { 2098 if ($(this).data(`coupon_modal_shown`)) return; 2099 2100 $(this).find(`.eds_dialog-title`).html(`<div class="text-truncate">${coupon}</div>`); 2101 $(this).find(`.eds_dialog-body`).html(errors); 2102 this.dispatchEvent(new CustomEvent(`eds.show`)); 2103 }" data-event-on:restore_coupon_modal="this.dispatchEvent(new CustomEvent(`eds.hide`))" > 2104 <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-fullscreen-sm-down modal-md"> 2105 <div class="modal-content "> 2106 2107 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 2108 <h2 id="eds-dialog-title-6ab5364fadbd7" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 2109 Coupon restrictions </h2> 2110 2111 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 2112
2113 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular vh-100"> 2114 </div> 2115 2116 2117 </div> 2118 </div> 2119 2120
2120<script> 2121 { 2122 const container = document.querySelector('[data-eds-id="6ab5364fadbd7"]'); 2123 let edsMethodsDisabled = false; 2124 2125 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 2126 container.addEventListener(`eds.${eventName}`, (e) => { 2127 if (edsMethodsDisabled) return; 2128 2129 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 2130 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 2131 ); 2132 }); 2133 }); 2134 2135 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 2136 container.addEventListener(`${eventName}.bs.modal`, (e) => { 2137 if (edsMethodsDisabled) return; 2138 2139 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 2140 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 2141 edsMethodsDisabled = false; 2142 }); 2143 }); 2144 2145 2146 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 2147 container.addEventListener(eventName, () => { 2148 const autofocusInput = container.querySelector('[autofocus]'); 2149 if (autofocusInput) { 2150 container.style.display = 'block'; 2151 autofocusInput.focus(); 2152 } 2153 }); 2154 }); 2155 2156 } 2157 </script>
2157 2158 </div> 2159 2160 2161<!-- location modal mobile start--> 2162<div class="modal fade location-picker" id="locationModal" tabindex="-1" role="dialog" aria-hidden="true"> 2163 <div class="backdrop" data-bs-dismiss="modal"></div> 2164 <div class="modal-dialog modal-sm modal-dialog-centered" role="document"> 2165 <div class="modal-content"> 2166 <div class="modal-header"> 2167 <h2 class="modal-title eds-display-text-title-m">Change Location</h2> 2168 </div> 2169 2170 <div class="modal-body"> 2171 2172<div class="change_location-locations"> 2173 <input 2174 type="radio" 2175 class="css-checkbox" 2176 id="locations-1-location-11198" 2177 name="locations-1" 2178 value="https://www.chinahutwhitehall.com/order" 2179 checked /> 2180 <label class="css-label" for="locations-1-location-11198"> 2181 <div style="line-height: normal"> 2182 <strong>China Hut - Whitehall</strong> 2183 <br /> 2184 2415 MacArthur Rd Whitehall, PA 18052 </div> 2185 </label> 2186 </div> 2187 2188 </div> 2189 2190 <div class="modal-footer"> 2191 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2192 <button type="button" class="btn btn-warning" data-go-to-url-on-click="[name='locations-1']:checked"> 2193 Change location </button> 2194 </div> 2195 </div> 2196 </div> 2197</div> 2198<!-- location modal mobile end --> 2199 2200<div class="modal fade add_new_card_modal" id="modal-add-new-card" tabindex="-1" role="dialog" aria-modal="true"> 2201 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down" role="document"> 2202 <div class="modal-content"> 2203 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2204 <div class="modal-header"> 2205 <h2 class="modal-title eds-display-text-title-m">Add new card</h2> 2206 </div> 2207 <div class="modal-body pb-6"> 2208 <div class="ajax-creditcards"> 2209 <div class="fa fa-spinner fa-spin fa-4x"> 2210 </div> 2211 </div> 2212 </div> 2213 </div> 2214 </div> 2215</div> 2216 2217<div class="modal fade" id="modal-payment-change" tabindex="-1" role="dialog" aria-modal="true"> 2218 <div class="modal-dialog modal-dialog-centered" role="document"> 2219 <div class="modal-content"> 2220 <div class="modal-header"> 2221 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm <span data-confirm-payment-name>Pay with cash</span></h2> 2222 </div> 2223 <div class="modal-body"> 2224 <p>You've just changed your payment type to <strong data-confirm-payment-name>Pay with cash</strong>. Please confirm that to proceed.</p> 2225 <button class="btn btn-primary w-100" data-bs-dismiss="modal" data-confirm-payment-switch>Confirm and proceed</button> 2226 <button class="btn eh-btn-silent w-100 mt-2" data-bs-dismiss="modal" data-cancel-payment-switch>Cancel</button> 2227 </div> 2228 </div> 2229 </div> 2230</div> 2231 2232<div class="modal fade modal_over_modal" id="modal-confirm-no-number-address" tabindex="-1" role="dialog" aria-modal="true" style="z-index: 2000;"> 2233 <div class="modal-dialog modal-dialog-centered" role="document"> 2234 <div class="modal-content"> 2235 <div class="modal-header"> 2236 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm Address</h2> 2237 </div> 2238 <div class="modal-body"> 2239 <p>This address doesn't start with a street number. Please confirm the address is correct.</p> 2240 <button class="btn btn-warning w-100" data-bs-dismiss="modal" data-confirm-no-number-address>Yes, it's correct</button> 2241 <button class="btn btn-secondary w-100 mt-2" data-bs-dismiss="modal" data-cancel-no-number-address>No, let me edit it</button> 2242 </div> 2243 </div> 2244 </div> 2245</div> 2246 2247<div class="modal fade mob_full_modal" id="modal-invalid-address" tabindex="-1" role="dialog" aria-modal="true"> 2248 <div class="modal-dialog modal-dialog-centered" role="document"> 2249 <div class="modal-content"> 2250 <button class="close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2251 <div class="modal-header"> 2252 <h2 class="modal-title eds-display-text-title-m">Sorry we do not deliver to your address!</h2> 2253 </div> 2254 <div class="modal-body"> 2255 <div class="www_moda_content"> 2256 <div class="cs_box pickup_when showcheck_parent"> 2257 <div>You can Pick up your order at this location</div> 2258 <div class="pickup_locbox"> 2259 <div class="rest_loc"> 2260 <p> 2261 China Hut - Whitehall<br/> 2262 2415 MacArthur Rd<br/>Whitehall, PA 18052 </p> 2263 </div> 2264</div> </div> 2265 <div class="form-submit-wrapper"> 2266 <input type="submit" class="form-submit" value="Switch to pickup" data-bs-dismiss="modal" data-switch-to-pickup> 2267 </div> 2268 </div> 2269 </div> 2270 </div> 2271 </div> 2272</div> 2273 2274<div class="modal fade mob_full_modal" id="modal-view-delivery-zone" tabindex="-1" role="dialog" aria-modal="true"> 2275 <div class="modal-dialog modal-dialog-centered" role="document"> 2276 <div class="modal-content">
2277 <div class="modal-body modal-body-view-delivery-zone" style="min-height: 75px;"> 2278 <div id="loading-view-delivery-area" class="loading-ajax-spinner"><i class="fa fa-spin fa-spinner fa-3x "></i></div> 2279 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2280 <div id="modal-view-delivery-zone-content" style="display:none;"> 2281 <div class="h4 mt15">View our delivery area</div> 2282 <div class="mb15"></div> 2283 <style> 2284 #iframe-view-delivery-area { 2285 width:100%; 2286 height:100%; 2287 min-height:556px; 2288 } 2289 @media screen and (max-width: 768px) { 2290 #iframe-view-delivery-area { 2291 height: calc(100vh - 90px); 2292 } 2293 } 2294 </style> 2295 <iframe id="iframe-view-delivery-area" name="iframe-deliveryzone" frameborder="0" hspace="0" scrolling="auto" 2296 data-src="https://www.chinahutwhitehall.com/viewdeliveryzone/altdoc/1/vdz/1" title="Map of delivery areas"></iframe> 2297 </div> 2298 </div> 2299 </div> 2300 </div> 2301</div> 2302 2303<!-- Alert modal --> 2304<div class="modal fade" id="modal-alert" tabindex="-1" aria-labelledby="modal-alert" aria-hidden="true"> 2305 <div class="modal-dialog"> 2306 <div class="modal-content"> 2307 <div class="modal-header"> 2308 <h2 class="modal-title fs-5 eds-display-text-title-m">Error</h2> 2309 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2310 </div> 2311 <div class="modal-body"> 2312 Description 2313 </div> 2314 <div class="modal-footer"> 2315 <button type="button" class="btn btn-primary btn-close-modal" data-bs-dismiss="modal">Close</button> 2316 <button type="button" class="btn btn-primary hidden">Save changes</button> 2317 </div> 2318 </div> 2319 </div> 2320</div> 2321 2322 2323 2324 2325 2326 <div 2327 id="toasts" 2328 class="toast-container position-fixed start-50 translate-middle-x" 2329 style="bottom: calc(var(--eds-fixed-cta-height, 0) * 1px); max-width: calc(100% - 2rem)" 2330 > 2331 </div> 2332 2333
2333<script> 2334 $(() => { 2335 const ctas = document.querySelectorAll('[data-fixed-cta]'); 2336 if (!ctas.length) { 2337 return; 2338 } 2339 2340 function updateFixedCTAHeight() { 2341 document.documentElement.style.setProperty( 2342 '--eds-fixed-cta-height', 2343 Math.max(0, ...Array.from(ctas, (element) => { 2344 const rect = element.getBoundingClientRect(); 2345 return rect.height > 0 && getComputedStyle(element).position === 'fixed' 2346 ? Math.max(0, window.innerHeight - rect.top) 2347 : 0; 2348 })) 2349 ); 2350 } 2351 2352 if ('ResizeObserver' in window) { 2353 ctas.forEach((cta) => new ResizeObserver(updateFixedCTAHeight).observe(cta)); 2354 } else { 2355 updateFixedCTAHeight(); 2356 } 2357 2358 window.addEventListener('resize', app.throttle(updateFixedCTAHeight)); 2359 }); 2360 </script>
2360 2361 2362 <div class="visually-hidden"> 2363 <div id="announcements-polite" aria-live="polite" aria-atomic="true"> 2364 <div id="announcement-polite"></div> 2365 </div> 2366 2367 <div id="announcements-assertive" aria-live="assertive" aria-atomic="true"> 2368 <div id="announcement-assertive"></div> 2369 </div> 2370 </div> 2371 2372
2373<script type="text/javascript" src="/share42/share42.js"></script>
2373 2374 2375<!-- SET: SCRIPTS -->
2376<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2376
2376
2377<script>window.jQuery || document.write('
2377<script src="/web/default3.0/js/vendor/jquery-3.6.0.min.js"><\/script>')</script>
vendor: 1 bytes, line 2377
2377
2378<script src="https://code.jquery.com/jquery-migrate-3.3.2.js" integrity="sha384-KwAndHbPSueZ9+pG1mDjru/Q6KT6cliBs+/SCGpcOO6XvhrkbF0cBzkSs3+Pl2Zz" crossorigin="anonymous"></script>
2378 2379<!--
2379<script src="https://code.jquery.com/jquery-migrate-3.3.2.min.js" integrity="sha256-Ap4KLoCf1rXb52q+i3p0k2vjBsmownyBTE1EqlRiMwA=" crossorigin="anonymous"></script>
2379-->
2380<script> 2381 /* http://writing.colin-gourlay.com/safely-using-ready-before-including-jquery/ */ 2382 (function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document) 2383</script>
vendor: 1 bytes, line 2383
2383
2384<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" integrity="sha256-lSjKY0/srUM9BE3dPm+c4fBo1dky2v27Gdjm2uoZaL0=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2384
2384
2385<script type="text/javascript" src="/min/g=js4.0&1788675044"></script>
2385 2386<!-- END: SCRIPTS --> 2387 2388
2389<script> 2390 function closeAnnouncementModal(){ 2391 $("#announcementBox").hide(); 2392 setAnnouncementSession("<p style=\"text-align:center;\"><strong><span style=\"font-family:arial, helvetica, sans-serif;\"><span style=\"font-size:14px;\"><span style=\"color:#ff0000;\">Please note that we do not deliver to zip code <\/span><span style=\"color:#3498db;\">18103<\/span><\/span><\/span><\/strong><\/p>"); 2393 } 2394 2395 $('body').on('click', '#closeAnnouncement', function(e) { 2396 e.preventDefault(); 2397 setAnnouncementSession("<p style=\"text-align:center;\"><strong><span style=\"font-family:arial, helvetica, sans-serif;\"><span style=\"font-size:14px;\"><span style=\"color:#ff0000;\">Please note that we do not deliver to zip code <\/span><span style=\"color:#3498db;\">18103<\/span><\/span><\/span><\/strong><\/p>"); 2398 }); 2399</script>
vendor: 1 bytes, line 2399
2399
2400<script> 2401$(() => { 2402 const stickyHeader = document.querySelector('.headerAndWtype'); 2403 if (!stickyHeader) { 2404 return; 2405 } 2406 2407 function updateHeaderHeight() { 2408 const gap = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16; 2409 const offset = stickyHeader.offsetHeight + gap; 2410 document.documentElement.style.scrollPaddingTop = offset + 'px'; 2411 2412 document.documentElement.style.setProperty('--sticky-header-offset', offset + 'px'); 2413 } 2414 2415 updateHeaderHeight(); 2416 if ('ResizeObserver' in window) { 2417 new ResizeObserver(updateHeaderHeight).observe(stickyHeader); 2418 } else { 2419 window.addEventListener('resize', app.throttle(updateHeaderHeight)); 2420 } 2421}); 2422</script>
2422 2423 2424 <div id="recaptcha" class="g-recaptcha" data-callback="submitAjaxForm" data-size="invisible"></div> 2425 <div id="async-recaptcha" class="g-recaptcha" data-callback="recaptchaAsyncCallback" data-size="invisible"></div> 2426 2427
2427<script> 2428 var ajaxRecaptcha; 2429 var asyncRecaptcha; 2430 var checkoutRecaptcha; 2431 2432 function initRecaptchas() { 2433 const options = { 2434 sitekey: "6LeS6lMUAAAAADOPnBKluMb49PS1NyzPT1kR87Re", 2435 size: 'invisible', 2436 }; 2437 2438 $('[data-recaptcha]').not('[data-ajax-form]').each(function (k, v) { 2439 const submit = $(v).find('[type="submit"]'); 2440 grecaptcha.render(submit[0], { 2441 ...options, 2442 callback(token) { 2443 $(v).submit(); 2444 }, 2445 }); 2446 }); 2447 2448 ajaxRecaptcha = grecaptcha.render('recaptcha', options); 2449 asyncRecaptcha = grecaptcha.render('async-recaptcha', options); 2450 } 2451 </script>
vendor: 119 bytes, lines 2451-2453
2451 2452 <script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=initRecaptchas" async defer></script> 2453
2454</body> 2455</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.