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