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>Fuji Japanese - Grand Forks in ND | Contact Us | Japanese</title> 13 <meta name="keywords" content="fuji grand forks, Fuji Japanese Seafood & Steak House | Order Online | Grand Forks, ND | Japanese Hiabchi & Sushi Takeout fuji japanese, fuji japanese grand forks, fuji japanese menu, grand forks japanese takeout, grand forks japanese food, grand forks japanese restaurants, japanese takeout, best japanese food in grand forks, japanese restaurants in grand forks, japanese restaurants near me, japanese food near me, fuji sushi menu, grand forks sushi takeout, grand forks sushi, grand forks sushi restaurants, sushi takeout, best sushi in grand forks, sushi restaurants in grand forks, sushi restaurants near me, sushi near me" /> 14 <meta name="description" content="Contact Fuji Japanese - Grand Forks in Grand Forks, ND with all your inquiries about our takeout of the best Japanese in Grand Forks, ND."> 15 16 <meta property="og:type" content="website"> 17 <meta property="og:title" content="Fuji Japanese - Grand Forks in ND | Contact Us | Japanese"> 18 <meta property="og:description" content="Contact Fuji Japanese - Grand Forks in Grand Forks, ND with all your inquiries about our takeout of the best Japanese in Grand Forks, ND."> 19 <meta property="og:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f562b569-0aef-4331-6561-603cb318f800/public" /> 20 21 <meta name="twitter:card" content="summary_large_image"> 22 <meta name="twitter:title" content="Fuji Japanese - Grand Forks in ND | Contact Us | Japanese"> 23 <meta name="twitter:description" content="Contact Fuji Japanese - Grand Forks in Grand Forks, ND with all your inquiries about our takeout of the best Japanese in Grand Forks, ND."> 24 <meta name="twitter:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f562b569-0aef-4331-6561-603cb318f800/public" /> 25 26 <link rel="shortcut icon" href="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/3fa942f3-cbb8-4e03-80b8-893183ffac00/public" type="image/x-icon" /> 27 28 <link rel="canonical" href="https://www.fujigrandforks.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/d6635ce9-bafd-411b-9f04-5d1dc56b8d00/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/4a85644d-21ba-4bcd-f560-7442bd0d9800/public); } 43 } 44 /*body{ } */ 45 46 47 </style> 48 49 50
50<script type="text/javascript"> 51 var UrlTag = "fujigrandforks"; 52 var template = 'defaultv4'; 53 var formname = 'contact'; 54 var menulink = 'https://www.fujigrandforks.com/order/main'; 55 var checkoutlink = 'https://www.fujigrandforks.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: 'fujigrandforks', 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-1SKZGNJXVK
vendor: 15 bytes, lines 84-86
84"></script> 85 86
86<script> 87 88 gtag('config', "G-1SKZGNJXVK"); 89 </script>
89 90 91 92 93 <meta name="smartbanner:title" content="Fuji Japanese Grand Forks"> 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.fujigrandforks"> 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/fujigrandforks/"> 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.fujigrandforks.com" 157 aria-current="false" 158 > 159 Fuji Japanese - Grand Forks </a> 160 161 <span class="eds-copy-text-s-regular text-center text-md-start address-container" title="715 S Washington St Grand Forks, ND 58201"> 162 715 S Washington St Grand Forks, ND 58201 </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="6abeff9643905" 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="6abeff9643905"]" 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.fujigrandforks.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.fujigrandforks.com/order/main" 201 aria-current="false" 202 > 203 Menu </a> 204 </li> 205 206 207 208 <li class="eds_list-item"> 209 <a class="d-block p-3 " href="https://www.fujigrandforks.com/locationinfo" aria-current="false"> 210 Location & Hours </a> 211 </li> 212 213 <li class="eds_list-item"> 214 <a class="d-block p-3 active" href="https://www.fujigrandforks.com/contact" aria-current="page"> 215 Contact 216 </a> 217 </li> 218</ul> 219 </nav> 220 221 222 <div class="border-bottom border-light p-3"> 223 224 225 <details 226 class="eds_list eds_list--border-none" open data-menu-id="11972" 227 data-event-on:document_ready="this.open = localStorage.getItem('menu-open-11972') !== 'false'" 228 onclick="localStorage.setItem('menu-open-11972', !this.open)" 229 > 230 <summary class="eds-copy-text-l-regular list-unstyled rounded-3 mb-1 " tabindex="0"> 231 <h2 class="eds-display-text-title-m m-0 p-0"> 232 <i class="eds_icon fas fa-chevron-right" style="" aria-hidden="true"></i> Menu <span class="sr-only">22 categories</span> 233 </h2> 234 </summary> 235 <div class="mb-3"></div> 236 237 238 <a 239 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 240 data-event-on:category_pinned="(category) => { 241 const isCurrent = category.id === '147457'; 242 $(this).toggleClass('active', isCurrent); 243 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 244 }" 245 href="https://www.fujigrandforks.com/order/main/kitchen-appetizers" 246 aria-current="false" 247 onclick="if (!event.ctrlKey) { 248 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 249 if (currentMenuIsActive) { 250 app.event.emit('category_selected', { id: '147457' }); 251 } else { 252 app.event.emit('menu_selected', { menu_id: '11972', 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: '147457' }); 253 } 254 }" 255 > 256 Kitchen Appetizers<span class="sr-only"> menu category</span> 257 <span class="ms-auto">13<span class="sr-only"> items available</span></span> 258 </a> 259 <a 260 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 261 data-event-on:category_pinned="(category) => { 262 const isCurrent = category.id === '147458'; 263 $(this).toggleClass('active', isCurrent); 264 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 265 }" 266 href="https://www.fujigrandforks.com/order/main/sushi-bar-appetizers" 267 aria-current="false" 268 onclick="if (!event.ctrlKey) { 269 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 270 if (currentMenuIsActive) { 271 app.event.emit('category_selected', { id: '147458' }); 272 } else { 273 app.event.emit('menu_selected', { menu_id: '11972', 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: '147458' }); 274 } 275 }" 276 > 277 Sushi Bar Appetizers<span class="sr-only"> menu category</span> 278 <span class="ms-auto">8<span class="sr-only"> items available</span></span> 279 </a> 280 <a 281 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 282 data-event-on:category_pinned="(category) => { 283 const isCurrent = category.id === '147459'; 284 $(this).toggleClass('active', isCurrent); 285 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 286 }" 287 href="https://www.fujigrandforks.com/order/main/soup" 288 aria-current="false" 289 onclick="if (!event.ctrlKey) { 290 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 291 if (currentMenuIsActive) { 292 app.event.emit('category_selected', { id: '147459' }); 293 } else { 294 app.event.emit('menu_selected', { menu_id: '11972', 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: '147459' }); 295 } 296 }" 297 > 298 Soup<span class="sr-only"> menu category</span> 299 <span class="ms-auto">5<span class="sr-only"> items available</span></span> 300 </a> 301 <a 302 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 303 data-event-on:category_pinned="(category) => { 304 const isCurrent = category.id === '147460'; 305 $(this).toggleClass('active', isCurrent); 306 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 307 }" 308 href="https://www.fujigrandforks.com/order/main/salad" 309 aria-current="false" 310 onclick="if (!event.ctrlKey) { 311 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 312 if (currentMenuIsActive) { 313 app.event.emit('category_selected', { id: '147460' }); 314 } else { 315 app.event.emit('menu_selected', { menu_id: '11972', 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: '147460' }); 316 } 317 }" 318 > 319 Salad<span class="sr-only"> menu category</span> 320 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 321 </a> 322 <a 323 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 324 data-event-on:category_pinned="(category) => { 325 const isCurrent = category.id === '147461'; 326 $(this).toggleClass('active', isCurrent); 327 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 328 }" 329 href="https://www.fujigrandforks.com/order/main/sushi-or-sashimi-a-la-carte" 330 aria-current="false" 331 onclick="if (!event.ctrlKey) { 332 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 333 if (currentMenuIsActive) { 334 app.event.emit('category_selected', { id: '147461' }); 335 } else { 336 app.event.emit('menu_selected', { menu_id: '11972', 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: '147461' }); 337 } 338 }" 339 > 340 Sushi Or Sashimi A La Carte<span class="sr-only"> menu category</span> 341 <span class="ms-auto">18<span class="sr-only"> items available</span></span> 342 </a> 343 <a 344 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 345 data-event-on:category_pinned="(category) => { 346 const isCurrent = category.id === '147462'; 347 $(this).toggleClass('active', isCurrent); 348 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 349 }" 350 href="https://www.fujigrandforks.com/order/main/roll-hand-roll" 351 aria-current="false" 352 onclick="if (!event.ctrlKey) { 353 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 354 if (currentMenuIsActive) { 355 app.event.emit('category_selected', { id: '147462' }); 356 } else { 357 app.event.emit('menu_selected', { menu_id: '11972', 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: '147462' }); 358 } 359 }" 360 > 361 Roll & Hand Roll<span class="sr-only"> menu category</span> 362 <span class="ms-auto">23<span class="sr-only"> items available</span></span> 363 </a> 364 <a 365 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 366 data-event-on:category_pinned="(category) => { 367 const isCurrent = category.id === '248708'; 368 $(this).toggleClass('active', isCurrent); 369 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 370 }" 371 href="https://www.fujigrandforks.com/order/main/classic-rolls" 372 aria-current="false" 373 onclick="if (!event.ctrlKey) { 374 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 375 if (currentMenuIsActive) { 376 app.event.emit('category_selected', { id: '248708' }); 377 } else { 378 app.event.emit('menu_selected', { menu_id: '11972', 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: '248708' }); 379 } 380 }" 381 > 382 Classic Rolls<span class="sr-only"> menu category</span> 383 <span class="ms-auto">5<span class="sr-only"> items available</span></span> 384 </a> 385 <a 386 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 387 data-event-on:category_pinned="(category) => { 388 const isCurrent = category.id === '248710'; 389 $(this).toggleClass('active', isCurrent); 390 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 391 }" 392 href="https://www.fujigrandforks.com/order/main/fresh-roll" 393 aria-current="false" 394 onclick="if (!event.ctrlKey) { 395 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 396 if (currentMenuIsActive) { 397 app.event.emit('category_selected', { id: '248710' }); 398 } else { 399 app.event.emit('menu_selected', { menu_id: '11972', 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: '248710' }); 400 } 401 }" 402 > 403 Fresh Roll<span class="sr-only"> menu category</span> 404 <span class="ms-auto">8<span class="sr-only"> items available</span></span> 405 </a> 406 <a 407 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 408 data-event-on:category_pinned="(category) => { 409 const isCurrent = category.id === '248711'; 410 $(this).toggleClass('active', isCurrent); 411 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 412 }" 413 href="https://www.fujigrandforks.com/order/main/deep-fried-roll" 414 aria-current="false" 415 onclick="if (!event.ctrlKey) { 416 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 417 if (currentMenuIsActive) { 418 app.event.emit('category_selected', { id: '248711' }); 419 } else { 420 app.event.emit('menu_selected', { menu_id: '11972', 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: '248711' }); 421 } 422 }" 423 > 424 Deep Fried Roll<span class="sr-only"> menu category</span> 425 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 426 </a> 427 <a 428 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 429 data-event-on:category_pinned="(category) => { 430 const isCurrent = category.id === '248712'; 431 $(this).toggleClass('active', isCurrent); 432 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 433 }" 434 href="https://www.fujigrandforks.com/order/main/baked-tempura-roll" 435 aria-current="false" 436 onclick="if (!event.ctrlKey) { 437 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 438 if (currentMenuIsActive) { 439 app.event.emit('category_selected', { id: '248712' }); 440 } else { 441 app.event.emit('menu_selected', { menu_id: '11972', 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: '248712' }); 442 } 443 }" 444 > 445 Baked Tempura Roll<span class="sr-only"> menu category</span> 446 <span class="ms-auto">13<span class="sr-only"> items available</span></span> 447 </a> 448 <a 449 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 450 data-event-on:category_pinned="(category) => { 451 const isCurrent = category.id === '147464'; 452
452 $(this).toggleClass('active', isCurrent); 453 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 454 }" 455 href="https://www.fujigrandforks.com/order/main/sushi-bar-entrees" 456 aria-current="false" 457 onclick="if (!event.ctrlKey) { 458 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 459 if (currentMenuIsActive) { 460 app.event.emit('category_selected', { id: '147464' }); 461 } else { 462 app.event.emit('menu_selected', { menu_id: '11972', 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: '147464' }); 463 } 464 }" 465 > 466 Sushi Bar Entrees<span class="sr-only"> menu category</span> 467 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 468 </a> 469 <a 470 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 471 data-event-on:category_pinned="(category) => { 472 const isCurrent = category.id === '147465'; 473 $(this).toggleClass('active', isCurrent); 474 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 475 }" 476 href="https://www.fujigrandforks.com/order/main/kitchen-entrees" 477 aria-current="false" 478 onclick="if (!event.ctrlKey) { 479 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 480 if (currentMenuIsActive) { 481 app.event.emit('category_selected', { id: '147465' }); 482 } else { 483 app.event.emit('menu_selected', { menu_id: '11972', 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: '147465' }); 484 } 485 }" 486 > 487 Kitchen Entrees<span class="sr-only"> menu category</span> 488 <span class="ms-auto">12<span class="sr-only"> items available</span></span> 489 </a> 490 <a 491 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 492 data-event-on:category_pinned="(category) => { 493 const isCurrent = category.id === '147466'; 494 $(this).toggleClass('active', isCurrent); 495 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 496 }" 497 href="https://www.fujigrandforks.com/order/main/noodle" 498 aria-current="false" 499 onclick="if (!event.ctrlKey) { 500 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 501 if (currentMenuIsActive) { 502 app.event.emit('category_selected', { id: '147466' }); 503 } else { 504 app.event.emit('menu_selected', { menu_id: '11972', 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: '147466' }); 505 } 506 }" 507 > 508 Noodle<span class="sr-only"> menu category</span> 509 <span class="ms-auto">2<span class="sr-only"> items available</span></span> 510 </a> 511 <a 512 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 513 data-event-on:category_pinned="(category) => { 514 const isCurrent = category.id === '147467'; 515 $(this).toggleClass('active', isCurrent); 516 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 517 }" 518 href="https://www.fujigrandforks.com/order/main/fried-rice" 519 aria-current="false" 520 onclick="if (!event.ctrlKey) { 521 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 522 if (currentMenuIsActive) { 523 app.event.emit('category_selected', { id: '147467' }); 524 } else { 525 app.event.emit('menu_selected', { menu_id: '11972', 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: '147467' }); 526 } 527 }" 528 > 529 Fried Rice<span class="sr-only"> menu category</span> 530 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 531 </a> 532 <a 533 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 534 data-event-on:category_pinned="(category) => { 535 const isCurrent = category.id === '147468'; 536 $(this).toggleClass('active', isCurrent); 537 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 538 }" 539 href="https://www.fujigrandforks.com/order/main/hibachi-entrees" 540 aria-current="false" 541 onclick="if (!event.ctrlKey) { 542 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 543 if (currentMenuIsActive) { 544 app.event.emit('category_selected', { id: '147468' }); 545 } else { 546 app.event.emit('menu_selected', { menu_id: '11972', 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: '147468' }); 547 } 548 }" 549 > 550 Hibachi Entrees<span class="sr-only"> menu category</span> 551 <span class="ms-auto">25<span class="sr-only"> items available</span></span> 552 </a> 553 <a 554 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 555 data-event-on:category_pinned="(category) => { 556 const isCurrent = category.id === '147469'; 557 $(this).toggleClass('active', isCurrent); 558 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 559 }" 560 href="https://www.fujigrandforks.com/order/main/hibachi-childrens-menu" 561 aria-current="false" 562 onclick="if (!event.ctrlKey) { 563 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 564 if (currentMenuIsActive) { 565 app.event.emit('category_selected', { id: '147469' }); 566 } else { 567 app.event.emit('menu_selected', { menu_id: '11972', 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: '147469' }); 568 } 569 }" 570 > 571 Hibachi Children's Menu<span class="sr-only"> menu category</span> 572 <span class="ms-auto">4<span class="sr-only"> items available</span></span> 573 </a> 574 <a 575 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 576 data-event-on:category_pinned="(category) => { 577 const isCurrent = category.id === '147470'; 578 $(this).toggleClass('active', isCurrent); 579 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 580 }" 581 href="https://www.fujigrandforks.com/order/main/sushi-bar-lunch-special" 582 aria-current="false" 583 onclick="if (!event.ctrlKey) { 584 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 585 if (currentMenuIsActive) { 586 app.event.emit('category_selected', { id: '147470' }); 587 } else { 588 app.event.emit('menu_selected', { menu_id: '11972', 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: '147470' }); 589 } 590 }" 591 > 592 Sushi Bar Lunch Special<span class="sr-only"> menu category</span> 593 <span class="ms-auto">0<span class="sr-only"> items available</span></span> 594 </a> 595 <a 596 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 597 data-event-on:category_pinned="(category) => { 598 const isCurrent = category.id === '147471'; 599 $(this).toggleClass('active', isCurrent); 600 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 601 }" 602 href="https://www.fujigrandforks.com/order/main/hibachi-from-kitchen-lunch-special" 603 aria-current="false" 604 onclick="if (!event.ctrlKey) { 605 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 606 if (currentMenuIsActive) { 607 app.event.emit('category_selected', { id: '147471' }); 608 } else { 609 app.event.emit('menu_selected', { menu_id: '11972', 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: '147471' }); 610 } 611 }" 612 > 613 Hibachi From Kitchen Lunch Special<span class="sr-only"> menu category</span> 614 <span class="ms-auto">0<span class="sr-only"> items available</span></span> 615 </a> 616 <a 617 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 618 data-event-on:category_pinned="(category) => { 619 const isCurrent = category.id === '147472'; 620 $(this).toggleClass('active', isCurrent); 621 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 622 }" 623 href="https://www.fujigrandforks.com/order/main/lunch-box" 624 aria-current="false" 625 onclick="if (!event.ctrlKey) { 626 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 627 if (currentMenuIsActive) { 628 app.event.emit('category_selected', { id: '147472' }); 629 } else { 630 app.event.emit('menu_selected', { menu_id: '11972', 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: '147472' }); 631 } 632 }" 633 > 634 Lunch Box<span class="sr-only"> menu category</span> 635 <span class="ms-auto">0<span class="sr-only"> items available</span></span> 636 </a> 637 <a 638 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 639 data-event-on:category_pinned="(category) => { 640 const isCurrent = category.id === '248699'; 641 $(this).toggleClass('active', isCurrent); 642 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 643 }" 644 href="https://www.fujigrandforks.com/order/main/side-order" 645 aria-current="false" 646 onclick="if (!event.ctrlKey) { 647 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 648 if (currentMenuIsActive) { 649 app.event.emit('category_selected', { id: '248699' }); 650 } else { 651 app.event.emit('menu_selected', { menu_id: '11972', 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: '248699' }); 652 } 653 }" 654 > 655 Side Order<span class="sr-only"> menu category</span> 656 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 657 </a> 658 <a 659 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 660 data-event-on:category_pinned="(category) => { 661 const isCurrent = category.id === '248700'; 662 $(this).toggleClass('active', isCurrent); 663 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 664 }" 665 href="https://www.fujigrandforks.com/order/main/desserts" 666 aria-current="false" 667 onclick="if (!event.ctrlKey) { 668 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 669 if (currentMenuIsActive) { 670 app.event.emit('category_selected', { id: '248700' }); 671 } else { 672 app.event.emit('menu_selected', { menu_id: '11972', 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: '248700' }); 673 } 674 }" 675 > 676 Desserts<span class="sr-only"> menu category</span> 677 <span class="ms-auto">4<span class="sr-only"> items available</span></span> 678 </a> 679 <a 680 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 681 data-event-on:category_pinned="(category) => { 682 const isCurrent = category.id === '248701'; 683 $(this).toggleClass('active', isCurrent); 684 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 685 }" 686 href="https://www.fujigrandforks.com/order/main/drink" 687 aria-current="false" 688 onclick="if (!event.ctrlKey) { 689 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 690 if (currentMenuIsActive) { 691 app.event.emit('category_selected', { id: '248701' }); 692 } else { 693 app.event.emit('menu_selected', { menu_id: '11972', 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: '248701' }); 694 } 695 }" 696 > 697 Drink<span class="sr-only"> menu category</span> 698 <span class="ms-auto">9<span class="sr-only"> items available</span></span> 699 </a> 700 </details> 701 702 </div> 703 704 705 <div class="restaurant-info border-top border-light p-3 position-absolute bottom-0 left-0 w-100"> 706 <h2 class="eds-display-text-title-xs mb-0 me-2 pe-4"><span class="sr-only">Location: You're currently ordering from </span>Fuji Japanese - Grand Forks</h2> 707 708 <address class="eds-copy-text-s-regular mb-0"> 709 715 S Washington St Grand Forks, ND 58201 </address> 710 </div> 711 712 <div class="eds-copy-text-s-regular p-3 d-lg-none"> 713 <h2 class="eds-display-text-title-m m-0 pb-3">Additional info</h2> 714 <ul class="list-unstyled" aria-label="App store links"> 715 <li><a href="https://play.google.com/store/apps/details?id=com.chinesemenuonline.fujigrandforks"><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> 716 </ul> 717 718 <ul class="list-unstyled d-flex gap-2" aria-label="Social network links"> 719 <li><a href="https://www.yelp.com/biz/fuji-japanese-seafood-and-steak-house-grand-forks" target="new" title="Opens in new tab" class="icon" title="Yelp"><i class="fab fa-yelp"></i><span class="sr-only">Yelp</span></a></li> 720 <li><a href="https://www.tripadvisor.co.id/Restaurant_Review-g49816-d3165629-Reviews-Fuji_Japanese_Seafood_Steak_House-Grand_Forks_North_Dakota.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> 721 </ul> 722 723<div>© 2026 Online Ordering by <a href="http://chinesemenuonline.com">Chinese Menu Online</a></div> 724 <div>Discover more dining options at <a href="https://www.springroll.com" target="_blank" title="Opens in new tab" >Springroll</a></div> 725 726<ul class="list-unstyled mb-0 pt-3" aria-label="Legal and support"> 727 <li><a href="https://www.fujigrandforks.com/reportbug">Technical Support</a></li> 728 <li><a href="https://www.fujigrandforks.com/privacy">Privacy Policy</a></li> 729 <li><a href="https://www.fujigrandforks.com/tos">Terms of Service</a></li> 730 <li><a href="https://www.fujigrandforks.com/accessibility">Accessibility</a></li> 731</ul> 732
733This 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. 734 </div> </div> 735 736
736<script> 737 { 738 const container = document.querySelector('[data-eds-id="6abeff9643905"]'); 739 740 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 741 container.addEventListener(`eds.${eventName}`, (e) => { 742 bootstrap.Offcanvas.getOrCreateInstance(container)[eventName]( 743 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 744 ); 745 }); 746 }); 747 } 748 </script>
748 749 </div> 750 751 </header> 752 </div> 753 754 <aside class="container p-0" style="grid-area: hero" aria-labelledby="hero-section-title"> 755 <section class="hero"> 756 <div class="menu_hero backbgbox position-relative"> 757 <div class="logo"> 758 <a class="logo-image" href="https://www.fujigrandforks.com" aria-current="false" > 759 <img 760 src="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f562b569-0aef-4331-6561-603cb318f800/public" 761 srcset="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f562b569-0aef-4331-6561-603cb318f800/public 1x, https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/f562b569-0aef-4331-6561-603cb318f800/public 2x" alt="Go to Home" 762 onerror="this.closest('.logo').style.setProperty('display', 'none', 'important')" 763 /> 764 </a> 765 </div> 766 </div> 767 768 <div class="p-3"> 769 <div class="pb-1"> 770 <h1 id="hero-section-title" class="eds-display-text-title-s m-0 p-0">Fuji Japanese - Grand Forks</h1> 771 </div> 772 773 <div class="d-sm-flex align-items-baseline"> 774 <div class="mt-2"> 775 776 <span 777 class="eds_label eds_label--variant-success eds-interface-text-m-bold me-1 text-nowrap" 778 > 779 Open </span> 780 781 11:00AM - 9:30PM </div> 782 783 <div class="d-flex gap-2 ms-sm-auto mt-2"> 784 785 <a 786 class="eds_button btn btn-outline-secondary btn-sm col text-nowrap" 787 href="https://www.fujigrandforks.com/locationinfo?lid=9450" 788 > 789 <i class="eds_icon fa fa-info-circle" style="" aria-hidden="true"></i> Store info </a> 790 791 792 793 <a 794 class="eds_button btn btn-outline-secondary btn-sm col d-lg-none text-nowrap" 795 href="tel:(701) 757-3855" 796 > 797 <i class="eds_icon fa fa-phone" style="" aria-hidden="true"></i> Call us </a> 798 799 800 </div> 801 </div> 802 </div> 803 </section> 804 </aside> 805 806 807 808 <!-- Header ends --> 809<main class="main_content" id="main"> 810 <div class="container menu_page contact_page locationinfo"> 811 <div class="row menu_wrapper justify-content-center"> 812 <div class="col-sm-12 col-lg-8"> 813 <h1 class="eds-display-text-title-m">Contact Fuji Japanese - Grand Forks</h1> 814 <div class="row mb15"> 815 <div class="col-sm-12"> 816 If you would like to contact Fuji Japanese - Grand Forks, such as to ask questions about our menu, service, 817 or other non-technical issues, please contact us using the information below. 818 Thanks, and we appreciate your feedback! 819 </div> 820 </div> 821 <div class="row"> 822 <div class="col-md-12"> 823 <div class="location-info-box mb10"> 824 <div class="location-info-box-header"> 825 <h2>Fuji Japanese - Grand Forks</h2> 826 <span> 827 715 S Washington St<br/>Grand Forks, ND 58201 <span>(<a href="?form=map&lid=9450">see on map</a>)</span> 828 </span> 829 <strong>Phone</strong>: (701) 757-3855 </div> 830 </div> 831 </div> 832 </div> 833 <div class="alert alert-warning clearfix mt10"> 834 <div class="alert-icon"> 835 <i class="fas fa-truck"></i> 836 </div> 837 <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> 838 </div> 839 </div> 840 841 </div> 842 </div> 843</main> 844 845<footer class="footer bg-white" style="grid-area: footer"> 846 <div class="container"> 847 <div class="social_wrapper"> 848 <div class="social_links"> 849 <ul class="d-flex align-items-start"> 850 <li> 851 <a class="icon" href="https://www.yelp.com/biz/fuji-japanese-seafood-and-steak-house-grand-forks" target="_blank" title="Yelp (opens in new tab)"> 852 <span class="sr-only">Yelp</span> 853 <i class="eds_icon fab fa-yelp" style="" aria-hidden="true"></i> </a> 854 </li> 855 <li> 856 <a class="icon" href="https://www.tripadvisor.co.id/Restaurant_Review-g49816-d3165629-Reviews-Fuji_Japanese_Seafood_Steak_House-Grand_Forks_North_Dakota.html" target="_blank" title="TripAdvisor (opens in new tab)"> 857 <span class="sr-only">TripAdvisor</span> 858 <img class="eds_icon fab fa-tripadvisor" style="" aria-hidden="true" src="/web/website/assets/svg/icons/social/tripadvisor.svg" alt="Tripadvisor" /> </a> 859 </li> 860 </ul> 861 </div> 862 <div class="d_app"> 863 <ul> 864 <li><a href="https://play.google.com/store/apps/details?id=com.chinesemenuonline.fujigrandforks"><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> 865 </ul> 866 </div> 867 </div> 868 869 <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)"> 870 <ul class="list-unstyled d-flex gap-3 mb-0 eds-interface-text-l-regular"> 871 <li><a class="text-decoration-none" href="https://www.fujigrandforks.com" aria-current="false">Home</a></li> 872 <li><a class="text-decoration-none" href="https://www.fujigrandforks.com/order/main" aria-current="false">Menu</a></li> 873 <li><a class="text-decoration-none" href="https://www.fujigrandforks.com/locationinfo" aria-current="false">Location & Hours</a></li> 874 <li><a class="text-decoration-none" href="https://www.fujigrandforks.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.fujigrandforks.com/reportbug" class="errorLink">Technical Support</a></li> 879 <li class="bullet-separated"><a href="https://www.fujigrandforks.com/privacy">Privacy Policy</a></li> 880 <li class="bullet-separated"><a href="https://www.fujigrandforks.com/tos">Terms of Service</a></li> 881 <li class="bullet-separated"><a href="https://www.fujigrandforks.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>Discover more dining options 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="6abeff9645405" 905 class="eds_dialog modal fade " 906 tabindex="-1" 907 aria-labelledby="eds-dialog-title-6abeff9645405" 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-6abeff9645405" 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.fujigrandforks.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="6abeff96453c9" 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="6abeff96453c9"]'); 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="6abeff9645405"]'); 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="6abeff9645705" 1049 class="eds_dialog modal fade " 1050 tabindex="-1" 1051 aria-labelledby="eds-dialog-title-6abeff9645705" 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-6abeff9645705" 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.fujigrandforks.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="6abeff9645603" 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="6abeff9645603"]'); 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="6abeff964561e" 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_6abeff964561e="(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_6abeff964561e', !$(this).data('password-shown'))" data-event-on:toggle_password_6abeff964561e="(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_6abeff964561e="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6abeff964561e="(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="6abeff964561e"]'); 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.fujigrandforks.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.fujigrandforks.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.fujigrandforks.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.fujigrandforks.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.fujigrandforks.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="6abeff9645705"]'); 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="6abeff9645969" 1280 class="eds_dialog modal fade " 1281 tabindex="-1" 1282 aria-labelledby="eds-dialog-title-6abeff9645969" 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-6abeff9645969" 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.fujigrandforks.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="6abeff964583a" 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="6abeff964583a"]'); 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="6abeff9645855" 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="6abeff9645855"]'); 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="6abeff964586c" 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="6abeff964586c"]'); 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="6abeff9645883" 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_6abeff9645883="(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_6abeff9645883', !$(this).data('password-shown'))" data-event-on:toggle_password_6abeff9645883="(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_6abeff9645883="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6abeff9645883="(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="6abeff9645883"]'); 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="6abeff96458b2" 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="6abeff96458b2"]'); 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-6abeff96458c7" name="receive_promotions" value="1" checked type="checkbox" /> 1639 <label for="eds-checkable-6abeff96458c7" 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.fujigrandforks.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.fujigrandforks.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.fujigrandforks.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.fujigrandforks.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.fujigrandforks.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="6abeff9645969"]'); 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.fujigrandforks.com\/auth\/google\/pending", 1716 registerModalId: "register-modal", 1717 loginModalId: "login-modal" }, 1718 apple: { 1719 pendingUrl: "https:\/\/www.fujigrandforks.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-10-01" 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:30 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:30 AM</label> 1773 </li> 1774 <li class="time-button "> 1775 <input id="timeValue1" type="radio" value="11:45 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:45 AM</label> 1779 </li> 1780 <li class="time-button "> 1781 <input id="timeValue2" type="radio" value="12:00 PM" 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="">12:00 PM</label> 1785 </li> 1786 <li class="time-button "> 1787 <input id="timeValue3" type="radio" value="12:15 PM" 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="">12:15 PM</label> 1791 </li> 1792 <li class="time-button "> 1793 <input id="timeValue4" type="radio" value="12:30 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:30 PM</label> 1797 </li> 1798 <li class="time-button "> 1799 <input id="timeValue5" type="radio" value="12:45 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:45 PM</label> 1803 </li> 1804 <li class="time-button "> 1805 <input id="timeValue6" type="radio" value="1:00 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="">1:00 PM</label> 1809 </li> 1810 <li class="time-button "> 1811 <input id="timeValue7" type="radio" value="1:15 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="">1:15 PM</label> 1815 </li> 1816 <li class="time-button "> 1817 <input id="timeValue8" type="radio" value="1:30 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:30 PM</label> 1821 </li> 1822 <li class="time-button "> 1823 <input id="timeValue9" type="radio" value="1:45 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:45 PM</label> 1827 </li> 1828 <li class="time-button "> 1829 <input id="timeValue10" type="radio" value="2:00 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="">2:00 PM</label> 1833 </li> 1834 <li class="time-button "> 1835 <input id="timeValue11" type="radio" value="2:15 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="">2:15 PM</label> 1839 </li> 1840 <li class="time-button "> 1841 <input id="timeValue12" type="radio" value="2:30 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:30 PM</label> 1845 </li> 1846 <li class="time-button "> 1847 <input id="timeValue13" type="radio" value="2:45 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:45 PM</label> 1851 </li> 1852 <li class="time-button "> 1853 <input id="timeValue14" type="radio" value="3:00 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="">3:00 PM</label> 1857 </li> 1858 <li class="time-button "> 1859 <input id="timeValue15" type="radio" value="3:15 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="">3:15 PM</label> 1863 </li> 1864 <li class="time-button "> 1865 <input id="timeValue16" type="radio" value="3:30 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:30 PM</label> 1869 </li> 1870 <li class="time-button "> 1871 <input id="timeValue17" type="radio" value="3:45 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:45 PM</label> 1875 </li> 1876 <li class="time-button "> 1877 <input id="timeValue18" type="radio" value="4:00 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="">4:00 PM</label> 1881 </li> 1882 <li class="time-button "> 1883 <input id="timeValue19" type="radio" value="4:15 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="">4:15 PM</label> 1887 </li> 1888 <li class="time-button "> 1889 <input id="timeValue20" type="radio" value="4:30 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:30 PM</label> 1893 </li> 1894 <li class="time-button "> 1895 <input id="timeValue21" type="radio" value="4:45 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:45 PM</label> 1899 </li> 1900 <li class="time-button "> 1901 <input id="timeValue22" type="radio" value="5:00 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="">5:00 PM</label> 1905 </li> 1906 <li class="time-button "> 1907 <input id="timeValue23" type="radio" value="5:15 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="">5:15 PM</label> 1911 </li> 1912 <li class="time-button "> 1913 <input id="timeValue24" type="radio" value="5:30 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:30 PM</label> 1917 </li> 1918 <li class="time-button "> 1919 <input id="timeValue25" type="radio" value="5:45 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:45 PM</label> 1923 </li> 1924 <li class="time-button "> 1925 <input id="timeValue26" type="radio" value="6:00 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="">6:00 PM</label> 1929 </li> 1930 <li class="time-button "> 1931 <input id="timeValue27" type="radio" value="6:15 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="">6:15 PM</label> 1935 </li> 1936 <li class="time-button "> 1937 <input id="timeValue28" type="radio" value="6:30 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:30 PM</label> 1941 </li> 1942 <li class="time-button "> 1943 <input id="timeValue29" type="radio" value="6:45 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:45 PM</label> 1947 </li> 1948 <li class="time-button "> 1949 <input id="timeValue30" type="radio" value="7:00 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="">7:00 PM</label> 1953 </li> 1954 <li class="time-button "> 1955 <input id="timeValue31" type="radio" value="7:15 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="">7:15 PM</label> 1959 </li> 1960 <li class="time-button "> 1961 <input id="timeValue32" type="radio" value="7:30 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:30 PM</label> 1965 </li> 1966 <li class="time-button "> 1967 <input id="timeValue33" type="radio" value="7:45 PM" name="param_ready~at~time_s_n_15" 1968 class="btn-check rad-ready_at_time" onchange="saveFormState('param_r
1968eady~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:45 PM</label> 1971 </li> 1972 <li class="time-button "> 1973 <input id="timeValue34" type="radio" value="8:00 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="">8:00 PM</label> 1977 </li> 1978 <li class="time-button "> 1979 <input id="timeValue35" type="radio" value="8:15 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="">8:15 PM</label> 1983 </li> 1984 <li class="time-button "> 1985 <input id="timeValue36" type="radio" value="8:30 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:30 PM</label> 1989 </li> 1990 <li class="time-button "> 1991 <input id="timeValue37" type="radio" value="8:45 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:45 PM</label> 1995 </li> 1996 <li class="time-button "> 1997 <input id="timeValue38" type="radio" value="9:00 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="">9:00 PM</label> 2001 </li> 2002 <li class="time-button "> 2003 <input id="timeValue39" type="radio" value="9:15 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="">9:15 PM</label> 2007 </li> 2008 </ul> 2009 </div> 2010 </div> 2011 </div> 2012 </div> 2013</div> 2014</div> 2015<input type="hidden" name="param_ready~at_s_n_100" class="hid-ready-at" value="" /> 2016<input type="hidden" class="hid-ready-at-date" value="2026-10-01" /> 2017<input type="hidden" class="hid-eot" value="1969-12-31 16:00:00" /> </div> 2018 </div> 2019 <div class="modal-footer"> 2020 <input type="hidden" id="hid-order-time-type" value="0" /> 2021 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button> 2022 <button type="button" class="btn btn-primary" data-save-time-modal>Save</button> 2023 </div> 2024 </div> 2025 </div> 2026</div> 2027 2028<!-- www modal start --> 2029<div class="modal fade mob_full_modal www_modal order-options" id="modal-order-options" tabindex="-1" role="dialog" 2030 aria-hidden="true" data-update-otype-on-modal-close> 2031 <div class="modal-dialog modal-fullscreen-sm-down mt-sm-6" role="document"> 2032 <div class="modal-content"> 2033 <button class="d-md-none close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2034 <div class="modal-header"> 2035 <h2 class="modal-title eds-display-text-title-m">Order details</h2> 2036 </div> 2037 <div class="modal-body"> 2038 <div class="www_moda_content"> 2039 <div class="cs_box order_type" onchange="app.event.emit('order_type_changed', { order_type: event.target.value })"> 2040 <div class="h5">What:</div> 2041 <div class="position-relative"> 2042 <div class="mdropbtn" data-toggle-mdrop role="button"> 2043 <span class="visually-hidden">Order type:</span> 2044 <span data-order-type-label> 2045 Pick up </span> 2046 </div> 2047 <ul data-mdrop-ul> 2048 <li class="selected "> 2049 <input data-order-type-on-change type="radio" name="param_order~type_s_n_10" id="order-type-pickup-1" 2050 class="orderTypeOption css-checkbox " data-name="Pick up" checked value="PICKUP" 2051 data-constant="1" data-base="PICKUP" > 2052 <label for="order-type-pickup-1" class="css-label" data-update-mdrop-on-click> 2053 Pick up </label> 2054 </li> 2055 </ul> 2056</div> 2057 </div> 2058 <form class=""> 2059 <div class="cs_box guest_checkout_address checkout_address deliveryAddressContainer" style="display:none;"> 2060 <label for="street-address-bar" class="h5">Enter your address:</label> 2061 <div class="form-group street-address-container"> 2062 <input name="param_full~address_s_n_255" id="street-address-bar" placeholder="Enter your address" 2063 data-autocomplete-address data-autocomplete-success="autoCompleteSuccess" 2064 onkeyup="scheduleFormStateSave(this.name, this.value)" onchange="validateAddress($('#modal
2064-order-options .deliveryAddressContainer'))" 2065 type="search" class="form-control input-search input-validate-address input-street-address user-address-field" 2066 value="" data-required-field /> 2067 </div> 2068 <input type="hidden" name="param_street~address_s_n_255" data-autocompleted-street-address /> 2069 <input type="hidden" name="param_city_s_n_90" data-autocompleted-city /> 2070 <input type="hidden" name="param_state_s_n_2" data-autocompleted-state /> 2071 <input type="hidden" name="param_zip~code_z_n_10" data-autocompleted-zip /> 2072 </div> 2073 </form> 2074 <!-- <div class="form-submit-wrapper"> 2075 <input type="submit" class="form-submit btn btn-primary" value="Save" data-close-modal data-select-later-date data-saveotype-modal> 2076 </div> --> 2077 </div> 2078 </div> 2079 <div 2080 data-async-on-event="order_type_changed" 2081 data-async-action="https://www.fujigrandforks.com/ajax/?form=minimum_order_value_warning&component=order_type" 2082 data-async-method="get" 2083 > 2084 </div> 2085 <div class="modal-footer"> 2086 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2087 <button type="button" class="btn btn-primary" data-close-modal data-saveotype-modal>Save</button> 2088 </div> 2089 </div> 2090 </div> 2091</div> 2092<!-- www modal end --> 2093 2094<!-- menu item modal --> 2095<div class="modal fade add_menu" id="add_menu_item" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="item_name"> 2096 <div class="modal-dialog modal-dialog-centered modal-fullscreen-md-down" role="document"> 2097 <div class="modal-content menu-item-container-wrapper"> 2098 <div class="modal-body menu-item-container "> 2099 <p id="item_name">Menu item dialog</p> 2100 </div> 2101 </div> 2102 </div> 2103</div> 2104<!-- menu item modal end --> 2105 2106 2107 <div 2108 data-eds-id="6abeff964986f" 2109 class="eds_dialog modal fade " 2110 tabindex="-1" 2111 aria-labelledby="eds-dialog-title-6abeff964986f" 2112 aria-hidden="true" 2113 data-event-on:coupon_modal_shown="(shown) => $(this).data(`coupon_modal_shown`, shown)" data-event-on:show_coupon_restrictions="({ coupon, errors }) => { 2114 if ($(this).data(`coupon_modal_shown`)) return; 2115 2116 $(this).find(`.eds_dialog-title`).html(`<div class="text-truncate">${coupon}</div>`); 2117 $(this).find(`.eds_dialog-body`).html(errors); 2118 this.dispatchEvent(new CustomEvent(`eds.show`)); 2119 }" data-event-on:restore_coupon_modal="this.dispatchEvent(new CustomEvent(`eds.hide`))" > 2120 <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-fullscreen-sm-down modal-md"> 2121 <div class="modal-content "> 2122 2123 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 2124 <h2 id="eds-dialog-title-6abeff964986f" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 2125 Coupon restrictions </h2> 2126 2127 <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> 2128 2129 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular vh-100"> 2130 </div> 2131 2132 2133 </div> 2134 </div> 2135 2136
2136<script> 2137 { 2138 const container = document.querySelector('[data-eds-id="6abeff964986f"]'); 2139 let edsMethodsDisabled = false; 2140 2141 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 2142 container.addEventListener(`eds.${eventName}`, (e) => { 2143 if (edsMethodsDisabled) return; 2144 2145 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 2146 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 2147 ); 2148 }); 2149 }); 2150 2151 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 2152 container.addEventListener(`${eventName}.bs.modal`, (e) => { 2153 if (edsMethodsDisabled) return; 2154 2155 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 2156 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 2157 edsMethodsDisabled = false; 2158 }); 2159 }); 2160 2161 2162 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 2163 container.addEventListener(eventName, () => { 2164 const autofocusInput = container.querySelector('[autofocus]'); 2165 if (autofocusInput) { 2166 container.style.display = 'block'; 2167 autofocusInput.focus(); 2168 } 2169 }); 2170 }); 2171 2172 } 2173 </script>
2173 2174 </div> 2175 2176 2177<!-- location modal mobile start--> 2178<div class="modal fade location-picker" id="locationModal" tabindex="-1" role="dialog" aria-hidden="true"> 2179 <div class="backdrop" data-bs-dismiss="modal"></div> 2180 <div class="modal-dialog modal-sm modal-dialog-centered" role="document"> 2181 <div class="modal-content"> 2182 <div class="modal-header"> 2183 <h2 class="modal-title eds-display-text-title-m">Change Location</h2> 2184 </div> 2185 2186 <div class="modal-body"> 2187 2188<div class="change_location-locations"> 2189 <input 2190 type="radio" 2191 class="css-checkbox" 2192 id="locations-1-location-9450" 2193 name="locations-1" 2194 value="https://www.fujigrandforks.com/order" 2195 checked /> 2196 <label class="css-label" for="locations-1-location-9450"> 2197 <div style="line-height: normal"> 2198 <strong>Fuji Japanese - Grand Forks</strong> 2199 <br /> 2200 715 S Washington St Grand Forks, ND 58201 </div> 2201 </label> 2202 </div> 2203 2204 </div> 2205 2206 <div class="modal-footer"> 2207 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2208 <button type="button" class="btn btn-warning" data-go-to-url-on-click="[name='locations-1']:checked"> 2209 Change location </button> 2210 </div> 2211 </div> 2212 </div> 2213</div> 2214<!-- location modal mobile end --> 2215 2216<div class="modal fade add_new_card_modal" id="modal-add-new-card" tabindex="-1" role="dialog" aria-modal="true"> 2217 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down" role="document"> 2218 <div class="modal-content"> 2219 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2220 <div class="modal-header"> 2221 <h2 class="modal-title eds-display-text-title-m">Add new card</h2> 2222 </div> 2223 <div class="modal-body pb-6"> 2224 <div class="ajax-creditcards"> 2225 <div class="fa fa-spinner fa-spin fa-4x"> 2226 </div> 2227 </div> 2228 </div> 2229 </div> 2230 </div> 2231</div> 2232 2233<div class="modal fade" id="modal-payment-change" tabindex="-1" role="dialog" aria-modal="true"> 2234 <div class="modal-dialog modal-dialog-centered" role="document"> 2235 <div class="modal-content"> 2236 <div class="modal-header"> 2237 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm <span data-confirm-payment-name>Pay with cash</span></h2> 2238 </div> 2239 <div class="modal-body"> 2240 <p>You've just changed your payment type to <strong data-confirm-payment-name>Pay with cash</strong>. Please confirm that to proceed.</p> 2241 <button class="btn btn-primary w-100" data-bs-dismiss="modal" data-confirm-payment-switch>Confirm and proceed</button> 2242 <button class="btn eh-btn-silent w-100 mt-2" data-bs-dismiss="modal" data-cancel-payment-switch>Cancel</button> 2243 </div> 2244 </div> 2245 </div> 2246</div> 2247 2248<div class="modal fade modal_over_modal" id="modal-confirm-no-number-address" tabindex="-1" role="dialog" aria-modal="true" style="z-index: 2000;"> 2249 <div class="modal-dialog modal-dialog-centered" role="document"> 2250 <div class="modal-content"> 2251 <div class="modal-header"> 2252 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm Address</h2> 2253 </div> 2254 <div class="modal-body"> 2255 <p>This address doesn't start with a street number. Please confirm the address is correct.</p> 2256 <button class="btn btn-warning w-100" data-bs-dismiss="modal" data-confirm-no-number-address>Yes, it's correct</button> 2257 <button class="btn btn-secondary w-100 mt-2" data-bs-dismiss="modal" data-cancel-no-number-address>No, let me edit it</button> 2258 </div> 2259 </div> 2260 </div> 2261</div> 2262 2263<div class="modal fade mob_full_modal" id="modal-invalid-address" tabindex="-1" role="dialog" aria-modal="true"> 2264 <div class="modal-dialog modal-dialog-centered" role="document"> 2265 <div class="modal-content"> 2266 <button class="close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2267 <div class="modal-header"> 2268 <h2 class="modal-title eds-display-text-title-m">Sorry we do not deliver to your address!</h2> 2269 </div> 2270 <div class="modal-body"> 2271 <div class="www_moda_content"> 2272 <div class="cs_box pickup_when showcheck_parent"> 2273 <div>You can Pick up your order at this location</div> 2274 <div class="pickup_locbox"> 2275 <div class="rest_loc"> 2276 <p> 2277 Fuji Japanese - Grand Forks<br/> 2278 715 S Washington St<br/>Grand Forks, ND 58201 </p> 2279 </div> 2280</div> </div> 2281 <div class="form-submit-wrapper"> 2282 <input type="submit" class="form-submit" value="Switch to pickup" data-bs-dismiss="modal" data-switch-to-pickup> 2283 </div> 2284 </div> 2285 </div> 2286 </div> 2287 </div> 2288</div> 2289 2290<div class="modal fade mob_full_modal" id="modal-view-delivery-zone" tabindex="-1" role="dialog" aria-modal="true"> 2291 <div class="modal-dialog modal-dialog-centered" role="document"> 2292 <div class="modal-content">
2293 <div class="modal-body modal-body-view-delivery-zone" style="min-height: 75px;"> 2294 <div id="loading-view-delivery-area" class="loading-ajax-spinner"><i class="fa fa-spin fa-spinner fa-3x "></i></div> 2295 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2296 <div id="modal-view-delivery-zone-content" style="display:none;"> 2297 <div class="h4 mt15">View our delivery area</div> 2298 <div class="mb15"></div> 2299 <style> 2300 #iframe-view-delivery-area { 2301 width:100%; 2302 height:100%; 2303 min-height:556px; 2304 } 2305 @media screen and (max-width: 768px) { 2306 #iframe-view-delivery-area { 2307 height: calc(100vh - 90px); 2308 } 2309 } 2310 </style> 2311 <iframe id="iframe-view-delivery-area" name="iframe-deliveryzone" frameborder="0" hspace="0" scrolling="auto" 2312 data-src="https://www.fujigrandforks.com/viewdeliveryzone/altdoc/1/vdz/1" title="Map of delivery areas"></iframe> 2313 </div> 2314 </div> 2315 </div> 2316 </div> 2317</div> 2318 2319<!-- Alert modal --> 2320<div class="modal fade" id="modal-alert" tabindex="-1" aria-labelledby="modal-alert" aria-hidden="true"> 2321 <div class="modal-dialog"> 2322 <div class="modal-content"> 2323 <div class="modal-header"> 2324 <h2 class="modal-title fs-5 eds-display-text-title-m">Error</h2> 2325 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2326 </div> 2327 <div class="modal-body"> 2328 Description 2329 </div> 2330 <div class="modal-footer"> 2331 <button type="button" class="btn btn-primary btn-close-modal" data-bs-dismiss="modal">Close</button> 2332 <button type="button" class="btn btn-primary hidden">Save changes</button> 2333 </div> 2334 </div> 2335 </div> 2336</div> 2337 2338 2339 2340 2341 2342 <div 2343 id="toasts" 2344 class="toast-container position-fixed start-50 translate-middle-x" 2345 style="bottom: calc(var(--eds-fixed-cta-height, 0) * 1px); max-width: calc(100% - 2rem)" 2346 > 2347 </div> 2348 2349
2349<script> 2350 $(() => { 2351 const ctas = document.querySelectorAll('[data-fixed-cta]'); 2352 if (!ctas.length) { 2353 return; 2354 } 2355 2356 function updateFixedCTAHeight() { 2357 document.documentElement.style.setProperty( 2358 '--eds-fixed-cta-height', 2359 Math.max(0, ...Array.from(ctas, (element) => { 2360 const rect = element.getBoundingClientRect(); 2361 return rect.height > 0 && getComputedStyle(element).position === 'fixed' 2362 ? Math.max(0, window.innerHeight - rect.top) 2363 : 0; 2364 })) 2365 ); 2366 } 2367 2368 if ('ResizeObserver' in window) { 2369 ctas.forEach((cta) => new ResizeObserver(updateFixedCTAHeight).observe(cta)); 2370 } else { 2371 updateFixedCTAHeight(); 2372 } 2373 2374 window.addEventListener('resize', app.throttle(updateFixedCTAHeight)); 2375 }); 2376 </script>
2376 2377 2378 <div class="visually-hidden"> 2379 <div id="announcements-polite" aria-live="polite" aria-atomic="true"> 2380 <div id="announcement-polite"></div> 2381 </div> 2382 2383 <div id="announcements-assertive" aria-live="assertive" aria-atomic="true"> 2384 <div id="announcement-assertive"></div> 2385 </div> 2386 </div> 2387 2388
2389<script type="text/javascript" src="/share42/share42.js"></script>
2389 2390 2391<!-- SET: SCRIPTS -->
2392<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2392
2392
2393<script>window.jQuery || document.write('
2393<script src="/web/default3.0/js/vendor/jquery-3.6.0.min.js"><\/script>')</script>
vendor: 1 bytes, line 2393
2393
2394<script src="https://code.jquery.com/jquery-migrate-3.3.2.js" integrity="sha384-KwAndHbPSueZ9+pG1mDjru/Q6KT6cliBs+/SCGpcOO6XvhrkbF0cBzkSs3+Pl2Zz" crossorigin="anonymous"></script>
2394 2395<!--
2395<script src="https://code.jquery.com/jquery-migrate-3.3.2.min.js" integrity="sha256-Ap4KLoCf1rXb52q+i3p0k2vjBsmownyBTE1EqlRiMwA=" crossorigin="anonymous"></script>
2395-->
2396<script> 2397 /* http://writing.colin-gourlay.com/safely-using-ready-before-including-jquery/ */ 2398 (function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document) 2399</script>
vendor: 1 bytes, line 2399
2399
2400<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 2400
2400
2401<script type="text/javascript" src="/min/g=js4.0&1788675044"></script>
2401 2402<!-- END: SCRIPTS --> 2403 2404
2405<script> 2406 function closeAnnouncementModal(){ 2407 $("#announcementBox").hide(); 2408 setAnnouncementSession(""); 2409 } 2410 2411 $('body').on('click', '#closeAnnouncement', function(e) { 2412 e.preventDefault(); 2413 setAnnouncementSession(""); 2414 }); 2415</script>
vendor: 1 bytes, line 2415
2415
2416<script> 2417$(() => { 2418 const stickyHeader = document.querySelector('.headerAndWtype'); 2419 if (!stickyHeader) { 2420 return; 2421 } 2422 2423 function updateHeaderHeight() { 2424 const gap = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16; 2425 const offset = stickyHeader.offsetHeight + gap; 2426 document.documentElement.style.scrollPaddingTop = offset + 'px'; 2427 2428 document.documentElement.style.setProperty('--sticky-header-offset', offset + 'px'); 2429 } 2430 2431 updateHeaderHeight(); 2432 if ('ResizeObserver' in window) { 2433 new ResizeObserver(updateHeaderHeight).observe(stickyHeader); 2434 } else { 2435 window.addEventListener('resize', app.throttle(updateHeaderHeight)); 2436 } 2437}); 2438</script>
2438 2439 2440 <div id="recaptcha" class="g-recaptcha" data-callback="submitAjaxForm" data-size="invisible"></div> 2441 <div id="async-recaptcha" class="g-recaptcha" data-callback="recaptchaAsyncCallback" data-size="invisible"></div> 2442 2443
2443<script> 2444 var ajaxRecaptcha; 2445 var asyncRecaptcha; 2446 var checkoutRecaptcha; 2447 2448 function initRecaptchas() { 2449 const options = { 2450 sitekey: "6LeS6lMUAAAAADOPnBKluMb49PS1NyzPT1kR87Re", 2451 size: 'invisible', 2452 }; 2453 2454 $('[data-recaptcha]').not('[data-ajax-form]').each(function (k, v) { 2455 const submit = $(v).find('[type="submit"]'); 2456 grecaptcha.render(submit[0], { 2457 ...options, 2458 callback(token) { 2459 $(v).submit(); 2460 }, 2461 }); 2462 }); 2463 2464 ajaxRecaptcha = grecaptcha.render('recaptcha', options); 2465 asyncRecaptcha = grecaptcha.render('async-recaptcha', options); 2466 } 2467 </script>
vendor: 119 bytes, lines 2467-2469
2467 2468 <script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=initRecaptchas" async defer></script> 2469
2470</body> 2471</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.