PageSourceSearch

https://www.jbcornerstone.com/account/login

html jbcornerstone.com collected 2026-10-06 19:07:58 UTC 168,168 bytes, 3,901 lines download raw bytes

1<!doctype html>
2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
7<head>
8
9  <!-- Basic page needs ================================================== -->
10  <meta charset="utf-8">
11  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12
13  
14  <link rel="icon" href="https://cdn.store-assets.com/s/382053/f/11094175.png" />
15  
16
17  <!-- Title and description ================================================== -->
18  <title>
19  Login &ndash; 房角石书坊  Cornerstone Book Centre
20  </title>
21
22  
23
24  <!-- Social meta ================================================== -->
25  
26
27  <meta property="og:type" content="website">
28  <meta property="og:title" content="Login">
29  <meta property="og:url" content="https://www.jbcornerstone.com/account/login">
30  
31    <meta property="og:image" content="https://cdn.store-assets.com/s/382053/f/11094175.png">
32    <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/382053/f/11094175.png">
33  
34
35
36<meta property="og:description" content="与各教会配搭,提供合适的讲员和培训;出版和售卖各类属灵书籍,如婚姻/家庭教育,儿童属灵书籍,心灵励志,研经神学,信仰生活,宣教等。">
37<meta property="og:site_name" content="房角石书坊  Cornerstone Book Centre">
38
39
40
41  <meta name="twitter:card" content="summary">
42
43
44
45  <meta name="twitter:site" content="@">
46
47
48
49
50
51  <!-- Helpers ================================================== -->
52  <link rel="canonical" href="https://www.jbcornerstone.com/account/login">
53  <meta name="viewport" content="width=device-width,initial-scale=1">
54  <meta name="theme-color" content="#FAF6E9">
55  
56  
56<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
56
57  
58  <!-- Header hook for plugins ================================================== -->
59  
60<!-- ScriptTags -->
61<script>window.__st={p: "customers",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
61<script src='/assets/events.js'></script>
61<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src='https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js#xfbml=1&version=v6.0&autoLogAppEvents=1';fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
61<script>(function(){function asyncLoad(){var urls=['/assets/facebook-pixel.js?v=1.2.1600156082','/assets/traffic.js?v=1','https://apps.easystore.co/marketplace/shopee-malaysia/script.js?shop=ptckul.easy.co','https://apps.easystore.co/snow-fall/script.js?shop=ptckul.easy.co'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
61
62<!-- /ScriptTags -->
63
64  
65  
66  
66<script src="https://store-themes.easystore.co/382053/themes/308896/assets/global.js?t=1790699554" defer="defer"></script>
66
67
68  
69  
70    
70<script src="/assets/shop_common.js" type="text/javascript" ></script>
70
71    
71<script src="/assets/customer_area.js" type="text/javascript" ></script>
71
72  
73  
73<script>
74  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
75  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
76  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
77  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
78
79  ga('create', '', 'auto','myTracker');
80  ga('myTracker.send', 'pageview');
81
82  </script>
82
83  
84  
84<script src="/assets/storefront.js?id=1d419de2011a5572c98b" type="text/javascript" ></script>
84
85  
86
87  <!-- CSS ================================================== -->
88  <style>
89      @font-face {
90        font-family: 'Abhaya Libre';
91        font-style: normal;
92        font-weight: regular;
93        src: local('Abhaya Libre regular'), local('Abhaya Libre-regular'), url(https://fonts.gstatic.com/s/abhayalibre/v6/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf) format('truetype');
94      }
95
96      @font-face {
97        font-family: 'Abhaya Libre';
98        font-style: normal;
99        font-weight: regular;
100        src: local('Abhaya Libre regular'), local('Abhaya Libre-regular'), url(https://fonts.gstatic.com/s/abhayalibre/v6/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf) format('truetype');
101      }
102
103      :root {
104        --font-body-family: 'Abhaya Libre', serif;
105        --font-body-style: normal;
106        --font-body-weight: 400;
107
108        --font-heading-family: 'Abhaya Libre', serif;
109        --font-heading-style: normal;
110        --font-heading-weight: 300;
111
112        --color-heading-text: 0,0,0;
113        --color-base-text: 0,0,0;
114        --color-base-background-1: 255,255,255;
115        --color-base-background-2: 255,255,255;
116        
117        --color-base-solid-button-labels: 8,0,0;
118        --color-base-outline-button-labels: 255,255,255;
119        
120        --color-base-accent-1: 250,246,233;
121        --color-base-accent-2: 250,246,233;
122        --payment-terms-background-color: 255,255,255;
123
124        --gradient-base-background-1: 255,255,255;
125        --gradient-base-background-2: 255,255,255;
126        --gradient-base-accent-1: 250,246,233;
127        --gradient-base-accent-2: 250,246,233;
128
129        --page-width: 120rem;
130      }
131
132      *,
133      *::before,
134      *::after {
135        box-sizing: inherit;
136      }
137
138      html {
139        box-sizing: border-box;
140        font-size: 62.5%;
141        height: 100%;
142      }
143
144      body {
145        display: grid;
146        grid-template-rows: auto auto 1fr auto;
147        grid-template-columns: 100%;
148        min-height: 100%;
149        margin: 0;
150        font-size: 1.5rem;
151        letter-spacing: 0.06rem;
152        line-height: 1.8;
153        font-family: var(--font-body-family);
154        font-style: var(--font-body-style);
155        font-weight: var(--font-body-weight);
156        
157      }
158
159      @media screen and (min-width: 750px) {
160        body {
161          font-size: 1.6rem;
162        }
163      }
164   </style>
165  
166  <link href="https://store-themes.easystore.co/382053/themes/308896/assets/base.css?t=1790699554" rel="stylesheet" type="text/css" media="screen" />
167
168  
169  
170<!-- Snippet:global/head: Shopee Malaysia -->
171<link type="text/css" rel="stylesheet" href="https://apps.easystore.co/assets/css/marketplace/main.css?v1.7">
172<!-- /Snippet -->
173
174<!-- Snippet:global/head: Product Star Rating 商品評價 -->
175<script src="https://apps.easystore.co/assets/js/star-rating/main.js"></script>
175
176          <link rel="stylesheet" href="https://apps.easystore.co/assets/css/star-rating/main.css">
177<!-- /Snippet -->
178
179
180  
180<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
180
181</head>
182
183<body id="login" class="template-customers" >
184	
185  
186<!-- Snippet:global/body_start: Console Extension -->
187<div id='es_console' style='display: none;'>382053</div>
188<!-- /Snippet -->
189
190	
191 	<style>
192  header {
193    --logo-width: 80px;
194  }
195  .header-wrapper,
196  .header-wrapper .list-menu--disclosure,
197  .header-wrapper .search-modal{
198    background-color: #FFFFFF;
199  }
200  .header-wrapper .search-modal .field__input{
201    background-color: rgb(var(--color-background));
202  }
203  .header-wrapper summary .icon-caret,
204  .header-wrapper .header__menu-item a,
205  .header-wrapper .list-menu__item,
206  .header-wrapper .link--text{
207    color: #000000;
208  }
209  
210  .search-modal__form{
211    position: relative;
212  }
213  
214  .dropdown {
215    display: none;
216    position: absolute;
217    top: 100%;
218    left: 0;
219    width: 100%;
220    padding: 5px 0;
221    background-color: #fff;
222    color:#000;
223    z-index: 1000;
224    border-bottom-left-radius: 15px;
225    border-bottom-right-radius: 15px;
226    border: 1px solid rgba(var(--color-foreground), 1);
227    border-top: none;
228    overflow-x: hidden;
229    overflow-y: auto;
230    max-height: 350px;
231  }
232  
233  .dropdown-item {
234    padding: 0.4rem 2rem;
235    cursor: pointer;
236    line-height: 1.4;
237    overflow: hidden;
238    text-overflow: ellipsis;
239    white-space: nowrap;
240  }
241  
242  .dropdown-item:hover{
243    background-color: #f3f3f3;
244  }
245  
246  .search__input.is-focus{
247    border-radius: 15px;
248    border-bottom-left-radius: 0;
249    border-bottom-right-radius: 0;
250    border: 1px solid rgba(var(--color-foreground), 1);
251    border-bottom: none;
252    box-shadow: none;
253  }
254  
255  .clear-all {
256    text-align: right;
257    padding: 0 2rem 0.2rem;
258    line-height: 1;
259    font-size: 70%;
260    margin-bottom: -2px;
261  }
262  
263  .clear-all:hover{
264    background-color: #fff;
265  }
266  
267  .search-input-focus .easystore-section-header-hidden{
268    transform: none;
269  }
270  .referral-notification {
271    position: absolute;
272    top: 100%;
273    right: 0;
274    background: white;
275    border: 1px solid #e0e0e0;
276    border-radius: 8px;
277    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
278    width: 280px;
279    z-index: 1000;
280    padding: 16px;
281    margin-top: 8px;
282    font-size: 14px;
283    line-height: 1.4;
284  }
285  
286  .referral-notification::before {
287    content: '';
288    position: absolute;
289    top: -8px;
290    right: 20px;
291    width: 0;
292    height: 0;
293    border-left: 8px solid transparent;
294    border-right: 8px solid transparent;
295    border-bottom: 8px solid white;
296  }
297  
298  .referral-notification::after {
299    content: '';
300    position: absolute;
301    top: -9px;
302    right: 20px;
303    width: 0;
304    height: 0;
305    border-left: 8px solid transparent;
306    border-right: 8px solid transparent;
307    border-bottom: 8px solid #e0e0e0;
308  }
309  
310  .referral-notification h4 {
311    margin: 0 0 8px 0;
312    color: #2196F3;
313    font-size: 16px;
314    font-weight: 600;
315  }
316  
317  .referral-notification p {
318    margin: 0 0 12px 0;
319    color: #666;
320  }
321  
322  .referral-notification .referral-code {
323    background: #f5f5f5;
324    padding: 8px;
325    border-radius: 4px;
326    font-family: monospace;
327    font-size: 13px;
328    text-align: center;
329    margin: 8px 0;
330    border: 1px solid #ddd;
331  }
332  
333  .referral-notification .close-btn {
334    position: absolute;
335    top: 8px;
336    right: 8px;
337    background: none;
338    border: none;
339    font-size: 18px;
340    color: #999;
341    cursor: pointer;
342    padding: 0;
343    width: 20px;
344    height: 20px;
345    line-height: 1;
346  }
347  
348  .referral-notification .close-btn:hover {
349    color: #333;
350  }
351  
352  .referral-notification .action-btn {
353    background: #2196F3;
354    color: white;
355    border: none;
356    padding: 8px 16px;
357    border-radius: 4px;
358    cursor: pointer;
359    font-size: 12px;
360    margin-right: 8px;
361    margin-top: 8px;
362  }
363  
364  .referral-notification .action-btn:hover {
365    background: #1976D2;
366  }
367  
368  .referral-notification .dismiss-btn {
369    background: transparent;
370    color: #666;
371    border: 1px solid #ddd;
372    padding: 8px 16px;
373    border-radius: 4px;
374    cursor: pointer;
375    font-size: 12px;
376    margin-top: 8px;
377  }
378  
379  .referral-notification .dismiss-btn:hover {
380    background: #f5f5f5;
381  }
382  .referral-modal__dialog {
383    transform: translate(-50%, 0);
384    transition: transform var(--duration-default) ease, visibility 0s;
385    z-index: 10000;
386    position: fixed;
387    top: 20vh;
388    left: 50%;
389    width: 100%;
390    max-width: 350px;
391    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
392    border-radius: 12px;
393    background-color: #fff;
394    color: #000;
395    padding: 20px;
396    text-align: center;
397  }
398
399  .modal-overlay.referral-modal-overlay {
400    position: fixed;
401    top: 0;
402    left: 0;
403    width: 100%;
404    height: 100%;
405    background-color: rgba(0, 0, 0, 0.7);
406    z-index: 2001;
407    display: block;
408    opacity: 1;
409    transition: opacity var(--duration-default) ease, visibility 0s;
410  }
411</style>
412
413<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/section-header.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
414<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/component-list-menu.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
415<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/component-menu-drawer.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
416<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/component-cart-notification.css?v1.1?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
417
418<script src="https://store-themes.easystore.co/382053/themes/308896/assets/cart-notification.js?t=1790699554" defer="defer"></script>
vendor: 1 bytes, line 418
418
419<script src="https://store-themes.easystore.co/382053/themes/308896/assets/details-modal.js?t=1790699554" defer="defer"></script>
419
420
421<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
422  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
423    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
424  </symbol>
425
426  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
427    <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
428  </symbol>
429</svg>
430
431
432<div id="easystore-section-header">
433  <sticky-header class="header-wrapper header-wrapper--border-bottom">
434    <header class="header header--top-center page-width header--has-menu" itemscope itemtype="http://schema.org/Organization">
435      <header-drawer data-breakpoint="tablet">
436        <details class="menu-drawer-container menu-opening">
437          <summary class="header__icon header__icon--menu header__icon--summary link link--text focus-inset" aria-label="Menu" role="button" aria-expanded="true" aria-controls="menu-drawer">
438            <span>
439              
440
441
442    <svg class="icon icon-hamburger " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M32.5,65h535a25,25,0,0,0,0-50H32.5a25,25,0,0,0,0,50Z" fill="currentColor"/><path d="M567.5,275H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/><path d="M567.5,535H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/></svg>
443
444  
445
446              
447
448
449    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
450
451  
452
453            </span>
454          </summary>
455          <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1">
456            <div class="menu-drawer__inner-container">
457              <div class="menu-drawer__navigation-container">
458                <nav class="menu-drawer__navigation">
459                  <ul class="menu-drawer__menu list-menu" role="list">
460                    
461                    
462                      
463                        <li>
464                          <a href="/"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
465                            Main Page 主页
466                          </a>
467                        </li>
468                      
469                    
470                    
471                      
472                        <li>
473                          <a href="/pages/about-us-关于我们"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
474                            About Us 关于我们
475                          </a>
476                        </li>
477                      
478                    
479                    
480                      
481                        <li>
482                          <a href="/collections/new-arrival"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
483                            New Arrival 新品
484                          </a>
485                        </li>
486                      
487                    
488                    
489                      
490                        
491                        <li>
492                          <details>
493                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
494                                  <a href="/collections/all"  class="link--text list-menu__item menu-drawer__menu-item">
495                                    Collections 书目
496                                  </a>
497                                  
498
499
500    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
501
502  
503
504                                  
505
506
507    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
508      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
509    </svg>
510
511  
512
513                                </summary>
514                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
515                                  <div class="menu-drawer__inner-submenu">
516                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
517                                      
518
519
520    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
521
522  
523
524                                      Collections 书目
525                                    </button>
526                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
527                                      
528                                        
529                                        
530                                          <li>
531                                            <a href="/collections/协传出品"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
532                                              Partners Training Book 协传出版
533                                            </a>
534                                          </li>
535                                        
536                                      
537                                        
538                                        
539                                          
540                                          <li>
541                                            <details>
542                                                  <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
543                                                    <a href="/collections/chinese-books-中文书籍"  class="link--text list-menu__item menu-drawer__menu-item">
544                                                      Chinese Books 中文书籍
545                                                    </a>
546                                                    
547
548
549    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
550
551  
552
553                                                    
554
555
556    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
557      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
558    </svg>
559
560  
561
562                                                  </summary>
563                                                  <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
564                                                    <div class="menu-drawer__inner-submenu">
565                                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
566                                                        
567
568
569    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
570
571  
572
573                                                        Chinese Books 中文书籍
574                                                      </button>
575                                                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
576                                                        
577                                                          
578                                                          
579                                                            <li>
580                                                              <a href="/collections/生命造就"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
581                                                                Spiritual Life 生命造就
582                                                              </a>
583                                                            </li>
584                                                          
585                                                        
586                                                          
587                                                          
588                                                            
589                                                            <li>
590                                                              <details>
591                                                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
592                                                                  <a href="/collections/崇拜礼仪"  class="link--text list-menu__item menu-drawer__menu-item">
593                                                                    Bible Study 圣经研究
594                                                                  </a>
595                                                                  
596
597
598    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
599
600  
601
602                                                                  
603
604
605    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
606      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
607    </svg>
608
609  
610
611                                                                </summary>
612                                                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
613                                                                  <div class="menu-drawer__inner-submenu">
614                                                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
615                                                                      
616
617
618    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
619
620  
621
622                                                                      Bible Study 圣经研究
623                                                                    </button>
624                                                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
625                                                                      
626                                                                        <li>
627                                                                          <a href="/collections/学术研究"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
628                                                                            麦种圣经注释
629                                                                          </a>
630                                                                        </li>
631                                                                      
632                                                                    </ul>
633                                                                  </div>
634                                                                </div>
635                                                              </details>
636                                                            </li>
637                                                          
638                                                        
639                                                          
640                                                          
641                                                            <li>
642                                                              <a href="/collections/灵命成长"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
643                                                                Devotions and Prayers 灵修与祷告
644                                                              </a>
645                                                            </li>
646                                                          
647                                                        
648                                                          
649                                                          
650                                                            <li>
651                                                              <a href="/collections/神学与教义"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
652                                                                Theology and Doctrine 神学与教义
653                                                              </a>
654                                                            </li>
655                                                          
656                                                        
657                                                          
658                                                          
659                                                            <li>
660                                                              <a href="/collections/见证与传记"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
661                                                                Testimony and Missionary 见证与宣教
662                                                              </a>
663                                                            </li>
664                                                          
665                                                        
666                                                          
667                                                          
668                                                            <li>
669                                                              <a href="/collections/教牧学"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
670                                                                Pastoral Studies 教牧学
671                                                              </a>
672                                                            </li>
673                                                          
674                                                        
675                                                        
675  
676                                                          
677                                                            <li>
678                                                              <a href="/collections/管理与领导"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
679                                                                Management and Leadership 管理与领导
680                                                              </a>
681                                                            </li>
682                                                          
683                                                        
684                                                          
685                                                          
686                                                            <li>
687                                                              <a href="/collections/辅导系列"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
688                                                                Psychological Counseling 心理辅导
689                                                              </a>
690                                                            </li>
691                                                          
692                                                        
693                                                          
694                                                          
695                                                            <li>
696                                                              <a href="/collections/基督教教育"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
697                                                                Parenting 亲子教育
698                                                              </a>
699                                                            </li>
700                                                          
701                                                        
702                                                          
703                                                          
704                                                            <li>
705                                                              <a href="/collections/恋爱-婚姻与家庭"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
706                                                                Love, Marriage &amp; Family 恋爱、婚姻与家庭
707                                                              </a>
708                                                            </li>
709                                                          
710                                                        
711                                                          
712                                                          
713                                                            <li>
714                                                              <a href="/collections/历史与文化"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
715                                                                History and Culture 历史与文化
716                                                              </a>
717                                                            </li>
718                                                          
719                                                        
720                                                        
721                                                      </ul>
722                                                    </div>
723                                                  </div>
724                                            </details>
725                                          </li>
726                                        
727                                      
728                                        
729                                        
730                                          
731                                          <li>
732                                            <details>
733                                                  <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
734                                                    <a href="/collections/礼品系列"  class="link--text list-menu__item menu-drawer__menu-item">
735                                                      Gifts &amp; Souvenirs 饰品
736                                                    </a>
737                                                    
738
739
740    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
741
742  
743
744                                                    
745
746
747    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
748      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
749    </svg>
750
751  
752
753                                                  </summary>
754                                                  <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
755                                                    <div class="menu-drawer__inner-submenu">
756                                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
757                                                        
758
759
760    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
761
762  
763
764                                                        Gifts &amp; Souvenirs 饰品
765                                                      </button>
766                                                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
767                                                        
768                                                          
769                                                          
770                                                            <li>
771                                                              <a href="/collections/fashion-accessories"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
772                                                                Fashion &amp; Accessories
773                                                              </a>
774                                                            </li>
775                                                          
776                                                        
777                                                          
778                                                          
779                                                            <li>
780                                                              <a href="/collections/福音单张"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
781                                                                Gospel Leaflet 福音单张
782                                                              </a>
783                                                            </li>
784                                                          
785                                                        
786                                                          
787                                                          
788                                                            <li>
789                                                              <a href="/collections/牌匾-plaque"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
790                                                                 Plaque and Cross 牌匾和十字架
791                                                              </a>
792                                                            </li>
793                                                          
794                                                        
795                                                          
796                                                          
797                                                            <li>
798                                                              <a href="/collections/吊饰-pendant"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
799                                                                Pendant 吊饰
800                                                              </a>
801                                                            </li>
802                                                          
803                                                        
804                                                          
805                                                          
806                                                            <li>
807                                                              <a href="/collections/桌摆-table-ornament"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
808                                                                Table Ornament桌摆
809                                                              </a>
810                                                            </li>
811                                                          
812                                                        
813                                                          
814                                                          
815                                                            <li>
816                                                              <a href="/collections/纸制品-paper-product"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
817                                                                Paper Product 纸制品 
818                                                              </a>
819                                                            </li>
820                                                          
821                                                        
822                                                          
823                                                          
824                                                            <li>
825                                                              <a href="/collections/magnet-gifts-磁铁礼品"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
826                                                                Magnet and Electronic  磁铁和电子品
827                                                              </a>
828                                                            </li>
829                                                          
830                                                        
831                                                          
832                                                          
833                                                            <li>
834                                                              <a href="/collections/wall-frame-框"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
835                                                                Wall Frame 框
836                                                              </a>
837                                                            </li>
838                                                          
839                                                        
840                                                        
841                                                      </ul>
842                                                    </div>
843                                                  </div>
844                                            </details>
845                                          </li>
846                                        
847                                      
848                                        
849                                        
850                                          
851                                          <li>
852                                            <details>
853                                                  <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
854                                                    <a href="/collections/圣经系列"  class="link--text list-menu__item menu-drawer__menu-item">
855                                                      Bible 圣经
856                                                    </a>
857                                                    
858
859
860    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
861
862  
863
864                                                    
865
866
867    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
868      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
869    </svg>
870
871  
872
873                                                  </summary>
874                                                  <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
875                                                    <div class="menu-drawer__inner-submenu">
876                                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
877                                                        
878
879
880    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
881
882  
883
884                                                        Bible 圣经
885                                                      </button>
886                                                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
887                                                        
888                                                          
889                                                          
890                                                            
891                                                            <li>
892                                                              <details>
893                                                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
894                                                                  <a href="/collections/chinese-bible-中文圣经"  class="link--text list-menu__item menu-drawer__menu-item">
895                                                                    Chinese Bible 中文圣经
896                                                                  </a>
897                                                                  
898
899
900    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill=
900"currentColor"/></svg>
901
902  
903
904                                                                  
905
906
907    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
908      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
909    </svg>
910
911  
912
913                                                                </summary>
914                                                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
915                                                                  <div class="menu-drawer__inner-submenu">
916                                                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
917                                                                      
918
919
920    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
921
922  
923
924                                                                      Chinese Bible 中文圣经
925                                                                    </button>
926                                                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
927                                                                      
928                                                                        <li>
929                                                                          <a href="/collections/和合本-cuv"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
930                                                                            和合本
931                                                                          </a>
932                                                                        </li>
933                                                                      
934                                                                        <li>
935                                                                          <a href="/collections/新译本"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
936                                                                            新译本
937                                                                          </a>
938                                                                        </li>
939                                                                      
940                                                                        <li>
941                                                                          <a href="/collections/新普及译本"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
942                                                                            新普及译本
943                                                                          </a>
944                                                                        </li>
945                                                                      
946                                                                        <li>
947                                                                          <a href="/collections/其他"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
948                                                                            其他
949                                                                          </a>
950                                                                        </li>
951                                                                      
952                                                                    </ul>
953                                                                  </div>
954                                                                </div>
955                                                              </details>
956                                                            </li>
957                                                          
958                                                        
959                                                          
960                                                          
961                                                            <li>
962                                                              <a href="/collections/双语-bilingual"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
963                                                                Biligual Bibles 双语圣经
964                                                              </a>
965                                                            </li>
966                                                          
967                                                        
968                                                          
969                                                          
970                                                            <li>
971                                                              <a href="/collections/children-bible-儿童圣经"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
972                                                                Children Bible 儿童圣经
973                                                              </a>
974                                                            </li>
975                                                          
976                                                        
977                                                          
978                                                          
979                                                            <li>
980                                                              <a href="/collections/english-bible-英语圣经"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
981                                                                English Bible 英语圣经
982                                                              </a>
983                                                            </li>
984                                                          
985                                                        
986                                                        
987                                                      </ul>
988                                                    </div>
989                                                  </div>
990                                            </details>
991                                          </li>
992                                        
993                                      
994                                        
995                                        
996                                          
997                                          <li>
998                                            <details>
999                                                  <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
1000                                                    <a href="/collections/儿童读物"  class="link--text list-menu__item menu-drawer__menu-item">
1001                                                      Children &amp; Teens Book | 儿童&amp;少年书籍 
1002                                                    </a>
1003                                                    
1004
1005
1006    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1007
1008  
1009
1010                                                    
1011
1012
1013    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
1014      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1015    </svg>
1016
1017  
1018
1019                                                  </summary>
1020                                                  <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
1021                                                    <div class="menu-drawer__inner-submenu">
1022                                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1023                                                        
1024
1025
1026    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1027
1028  
1029
1030                                                        Children &amp; Teens Book | 儿童&amp;少年书籍 
1031                                                      </button>
1032                                                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
1033                                                        
1034                                                          
1035                                                          
1036                                                            
1037                                                            <li>
1038                                                              <details>
1039                                                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
1040                                                                  <a href="/collections/children-book"  class="link--text list-menu__item menu-drawer__menu-item">
1041                                                                    Children Book 儿童书籍
1042                                                                  </a>
1043                                                                  
1044
1045
1046    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1047
1048  
1049
1050                                                                  
1051
1052
1053    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
1054      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1055    </svg>
1056
1057  
1058
1059                                                                </summary>
1060                                                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
1061                                                                  <div class="menu-drawer__inner-submenu">
1062                                                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1063                                                                      
1064
1065
1066    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1067
1068  
1069
1070                                                                      Children Book 儿童书籍
1071                                                                    </button>
1072                                                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
1073                                                                      
1074                                                                        <li>
1075                                                                          <a href="/collections/圣经-圣经故事-bible-bible-stories"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
1076                                                                             English Bible Stories 英语圣经故事 
1077                                                                          </a>
1078                                                                        </li>
1079                                                                      
1080                                                                        <li>
1081                                                                          <a href="/collections/绘本-picture-book"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
1082                                                                             Picture Book 绘本
1083                                                                          </a>
1084                                                                        </li>
1085                                                                      
1086                                                                        <li>
1087                                                                          <a href="/collections/圣经bible-圣经故事-bible-stories"  class="link--text list-menu__item menu-drawer__menu-item focus-inset">
1088                                                                            Chinese Bible Stories 中文圣经故事
1089                                                                          </a>
1090                                                                        </li>
1091                                                                      
1092                                                                    </ul>
1093                                                                  </div>
1094                                                                </div>
1095                                                              </details>
1096                                                            </li>
1097                                                          
1098                                                        
1099                                                          
1100                                                          
1101                                                            <li>
1102                                                              <a href="/collections/青少年书籍-teen-s-book"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1103                                                                 Teen&#39;s Book 青少年书籍
1104                                                              </a>
1105                                                            </li>
1106                                                          
1107                                                        
1108                                                        
1109                                                      </ul>
1110                                                    </div>
1111                                                  </div>
1112                                            </details>
1113                                          </li>
1114                                        
1115                                      
1116                                        
1117                                        
1118                                          
1119                                          <li>
1120                                            <details>
1121                                                  <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" a
1121ria-expanded="false" aria-controls="link-Bags">
1122                                                    <a href="/collections/方法论"  class="link--text list-menu__item menu-drawer__menu-item">
1123                                                      Training 训练材料
1124                                                    </a>
1125                                                    
1126
1127
1128    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1129
1130  
1131
1132                                                    
1133
1134
1135    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
1136      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1137    </svg>
1138
1139  
1140
1141                                                  </summary>
1142                                                  <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
1143                                                    <div class="menu-drawer__inner-submenu">
1144                                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1145                                                        
1146
1147
1148    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
1149
1150  
1151
1152                                                        Training 训练材料
1153                                                      </button>
1154                                                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
1155                                                        
1156                                                          
1157                                                          
1158                                                            <li>
1159                                                              <a href="/collections/主日学sunday-school-门徒训练discipleship-training"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1160                                                                Sunday School 主日学 / 门徒训练 Discipleship Training
1161                                                              </a>
1162                                                            </li>
1163                                                          
1164                                                        
1165                                                        
1166                                                      </ul>
1167                                                    </div>
1168                                                  </div>
1169                                            </details>
1170                                          </li>
1171                                        
1172                                      
1173                                        
1174                                        
1175                                          <li>
1176                                            <a href="/collections/桌游与游戏"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1177                                              Board Games and Games 桌游与游戏
1178                                            </a>
1179                                          </li>
1180                                        
1181                                      
1182                                        
1183                                        
1184                                          <li>
1185                                            <a href="/collections/new-arrival"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1186                                              New Arrival 新品
1187                                            </a>
1188                                          </li>
1189                                        
1190                                      
1191                                        
1192                                        
1193                                          <li>
1194                                            <a href="/collections/add-on"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1195                                              Add on
1196                                            </a>
1197                                          </li>
1198                                        
1199                                      
1200                                      
1201                                    </ul>
1202                                  </div>
1203                                </div>
1204                          </details>
1205                        </li>
1206                      
1207                    
1208                    
1209                      
1210                        <li>
1211                          <a href="/blogs/儿童主日学教案"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1212                            Lesson Plan 主日学教案
1213                          </a>
1214                        </li>
1215                      
1216                    
1217                    
1218                      
1219                        <li>
1220                          <a href="https://www.jbcornerstone.com/account/register"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1221                            Create an account 注册账号
1222                          </a>
1223                        </li>
1224                      
1225                    
1226                  </ul>
1227                </nav>
1228
1229                <div class="menu-drawer__utility-links">
1230
1231                  
1232
1233
1234
1235                  
1236                  
1237                  
1238                    <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5">
1239                       
1240
1241
1242    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
1243
1244  
1245 
1246                      
1247                      Login 登入
1248                    </a>
1249                  
1250                    <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5">
1251                      
1252                       
1253
1254
1255    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10">
1256      <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path>
1257    </svg>
1258
1259  
1260 
1261                      Create account 创建账号
1262                    </a>
1263                  
1264                  
1265                  
1266                </div>
1267              </div>
1268            </div>
1269          </div>
1270        </details>
1271      </header-drawer>
1272  
1273      
1274        <a href="/" class="header__heading-link link link--text focus-inset" itemprop="url">
1275          <img src="https://cdn.store-assets.com/s/382053/f/11094175.png" class="header__heading-logo" alt="房角石书坊  Cornerstone Book Centre" loading="lazy" itemprop="logo">
1276        </a>
1277      
1278
1279      
1280      <div class="header__search-input" tabindex="-1">
1281        <form action="/search" method="get" role="search" class="search search-modal__form">
1282          <div class="field">
1283            <input class="search__input field__input" 
1284              id="Search-In-Modal"
1285              type="search"
1286              name="q"
1287              value=""
1288              placeholder="Search"
1289              autocomplete="off"
1290            >
1291            <label class="field__label" for="Search-In-Modal">Search</label>
1292            <div class="dropdown" id="searchDropdown"></div>
1293            <input type="hidden" name="search_history" class="hidden_search_history">
1294            <input type="hidden" name="options[prefix]" value="last">
1295            <input type='hidden' name='search_extras' value='product-description,brands,collections,tags,vendors'>
1296            <button class="search__button field__button" aria-label="Search">
1297              <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation">
1298                <use href="#icon-search">
1299              </svg>
1300            </button> 
1301          </div>
1302        </form>
1303      </div>
1304      
1305
1306      <nav class="header__inline-menu">
1307        <ul class="list-menu list-menu--inline" role="list">
1308          
1309            
1310              
1311                <li>
1312                  <a href="/"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
1313                    Main Page 主页
1314                  </a>
1315                </li>
1316              
1317            
1318            
1319              
1320                <li>
1321                  <a href="/pages/about-us-关于我们"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
1322                    About Us 关于我们
1323                  </a>
1324                </li>
1325              
1326            
1327            
1328              
1329                <li>
1330                  <a href="/collections/new-arrival"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
1331                    New Arrival 新品
1332                  </a>
1333                </li>
1334              
1335            
1336            
1337              
1338                
1339                <li>
1340                  <details-disclosure>
1341                    <details>
1342                      <summary class="header__menu-item list-menu__item link focus-inset">
1343                        <a href="/collections/all"  >Collections 书目</a>
1344                        
1345
1346
1347    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
1348      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1349    </svg>
1350
1351  
1352
1353                      </summary>
1354                      <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1">
1355                        
1356                        
1357                        
1358                          
1359                            
1360                            <li>
1361                              <a href="/collections/协传出品"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1362                                Partners Training Book 协传出版
1363                              </a>
1364                            </li>
1365                          
1366                        
1367                        
1368                          
1369                            
1370                            <li>
1371                              <details-disclosure>
1372                                <details>
1373                                  <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1374                                    <a href="/collections/chinese-books-中文书籍" >Chinese Books 中文书籍</a>
1375                                    
1376
1377
1378    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1379      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1380    </svg>
1381
1382  
1383
1384                                  </summary>
1385                                  <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1386                                    
1387                                      
1388                                      
1389                                        <li>
1390                                          <a href="/collections/生命造就"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Spiritual Life 生命造就</a>
1391                                        </li>
1392                                      
1393                                    
1394                                      
1395                                      
1396                                        
1397                                        <li>
1398                                          <details-disclosure>
1399                                            <details>
1400                                              <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1401                                                <a href="/collections/崇拜礼仪" >
1402                                                  Bible Study 圣经研究
1403                                                </a>
1404                                                
1405
1406
1407    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1408      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1409    </svg>
1410
1411  
1412
1413                                              </summary>
1414                                              <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1415                                              
1416                                                <li>
1417                                                  <a href="/collections/学术研究"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">麦种圣经注释</a>
1418                                                </li>
1419                                              
1420                                              </ul>
1421                                            </details>
1422                                          </details-disclosure>
1423                                        </li>
1424                                      
1425                                    
1426                                      
1427                                      
1428                                        <li>
1429                                          <a href="/collections/灵命成长"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Devotions and Prayers 灵修与祷告</a>
1430                                        </li>
1431                                      
1432                                    
1433                                      
1434                                      
1435                                        <li>
1436                                          <a href="/collections/神学与教义"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Theology and Doctrine 神学与教义</a>
1437                                        </li>
1438                                      
1439                                    
1440                                      
1441                                      
1442                                        <li>
1443                                          <a href="/collections/见证与传记"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Testimony and Missionary 见证与宣教</a>
1444                                        </li>
1445                                      
1446                                    
1447         
1447                             
1448                                      
1449                                        <li>
1450                                          <a href="/collections/教牧学"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Pastoral Studies 教牧学</a>
1451                                        </li>
1452                                      
1453                                    
1454                                      
1455                                      
1456                                        <li>
1457                                          <a href="/collections/管理与领导"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Management and Leadership 管理与领导</a>
1458                                        </li>
1459                                      
1460                                    
1461                                      
1462                                      
1463                                        <li>
1464                                          <a href="/collections/辅导系列"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Psychological Counseling 心理辅导</a>
1465                                        </li>
1466                                      
1467                                    
1468                                      
1469                                      
1470                                        <li>
1471                                          <a href="/collections/基督教教育"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Parenting 亲子教育</a>
1472                                        </li>
1473                                      
1474                                    
1475                                      
1476                                      
1477                                        <li>
1478                                          <a href="/collections/恋爱-婚姻与家庭"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Love, Marriage &amp; Family 恋爱、婚姻与家庭</a>
1479                                        </li>
1480                                      
1481                                    
1482                                      
1483                                      
1484                                        <li>
1485                                          <a href="/collections/历史与文化"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">History and Culture 历史与文化</a>
1486                                        </li>
1487                                      
1488                                    
1489                                  </ul>
1490                                </details>
1491                              </details-disclosure>
1492                            </li>
1493                            
1494                          
1495                        
1496                        
1497                          
1498                            
1499                            <li>
1500                              <details-disclosure>
1501                                <details>
1502                                  <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1503                                    <a href="/collections/礼品系列" >Gifts &amp; Souvenirs 饰品</a>
1504                                    
1505
1506
1507    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1508      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1509    </svg>
1510
1511  
1512
1513                                  </summary>
1514                                  <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1515                                    
1516                                      
1517                                      
1518                                        <li>
1519                                          <a href="/collections/fashion-accessories"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Fashion &amp; Accessories</a>
1520                                        </li>
1521                                      
1522                                    
1523                                      
1524                                      
1525                                        <li>
1526                                          <a href="/collections/福音单张"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Gospel Leaflet 福音单张</a>
1527                                        </li>
1528                                      
1529                                    
1530                                      
1531                                      
1532                                        <li>
1533                                          <a href="/collections/牌匾-plaque"  class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Plaque and Cross 牌匾和十字架</a>
1534                                        </li>
1535                                      
1536                                    
1537                                      
1538                                      
1539                                        <li>
1540                                          <a href="/collections/吊饰-pendant"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Pendant 吊饰</a>
1541                                        </li>
1542                                      
1543                                    
1544                                      
1545                                      
1546                                        <li>
1547                                          <a href="/collections/桌摆-table-ornament"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Table Ornament桌摆</a>
1548                                        </li>
1549                                      
1550                                    
1551                                      
1552                                      
1553                                        <li>
1554                                          <a href="/collections/纸制品-paper-product"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Paper Product 纸制品 </a>
1555                                        </li>
1556                                      
1557                                    
1558                                      
1559                                      
1560                                        <li>
1561                                          <a href="/collections/magnet-gifts-磁铁礼品"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Magnet and Electronic  磁铁和电子品</a>
1562                                        </li>
1563                                      
1564                                    
1565                                      
1566                                      
1567                                        <li>
1568                                          <a href="/collections/wall-frame-框"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Wall Frame 框</a>
1569                                        </li>
1570                                      
1571                                    
1572                                  </ul>
1573                                </details>
1574                              </details-disclosure>
1575                            </li>
1576                            
1577                          
1578                        
1579                        
1580                          
1581                            
1582                            <li>
1583                              <details-disclosure>
1584                                <details>
1585                                  <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1586                                    <a href="/collections/圣经系列" >Bible 圣经</a>
1587                                    
1588
1589
1590    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1591      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1592    </svg>
1593
1594  
1595
1596                                  </summary>
1597                                  <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1598                                    
1599                                      
1600                                      
1601                                        
1602                                        <li>
1603                                          <details-disclosure>
1604                                            <details>
1605                                              <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1606                                                <a href="/collections/chinese-bible-中文圣经" >
1607                                                  Chinese Bible 中文圣经
1608                                                </a>
1609                                                
1610
1611
1612    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1613      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1614    </svg>
1615
1616  
1617
1618                                              </summary>
1619                                              <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1620                                              
1621                                                <li>
1622                                                  <a href="/collections/和合本-cuv"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">和合本</a>
1623                                                </li>
1624                                              
1625                                                <li>
1626                                                  <a href="/collections/新译本"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">新译本</a>
1627                                                </li>
1628                                              
1629                                                <li>
1630                                                  <a href="/collections/新普及译本"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">新普及译本</a>
1631                                                </li>
1632                                              
1633                                                <li>
1634                                                  <a href="/collections/其他"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">其他</a>
1635                                                </li>
1636                                              
1637                                              </ul>
1638                                            </details>
1639                                          </details-disclosure>
1640                                        </li>
1641                                      
1642                                    
1643                                      
1644                                      
1645                                        <li>
1646                                          <a href="/collections/双语-bilingual"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Biligual Bibles 双语圣经</a>
1647                                        </li>
1648                                      
1649                                    
1650                                      
1651                                      
1652                                        <li>
1653                                          <a href="/collections/children-bible-儿童圣经"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Children Bible 儿童圣经</a>
1654                                        </li>
1655                                      
1656                                    
1657                                      
1658                                      
1659                                        <li>
1660                                          <a href="/collections/english-bible-英语圣经"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">English Bible 英语圣经</a>
1661                                        </li>
1662                                      
1663                                    
1664                                  </ul>
1665                                </details>
1666                              </details-disclosure>
1667                            </li>
1668                            
1669                          
1670                        
1671                        
1672                          
1673                            
1674                            <li>
1675                              <details-disclosure>
1676                                <details>
1677                                  <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1678                                    <a href="/collections/儿童读物" >Children &amp; Teens Book | 儿童&amp;少年书籍 </a>
1679                                    
1680
1681
1682    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1683      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1684    </svg>
1685
1686  
1687
1688                                  </summary>
1689                                  <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1690                                    
1691                                      
1692                                      
1693                                        
1694                                        <li>
1695                                          <details-disclosure>
1696                                            <details>
1697                                              <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1698                                                <a href="/collections/children-book" >
1699                                                  Children Book 儿童书籍
1700                                                </a>
1701                                                
1702
1703
1704    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1705      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1706    </svg>
1707
1708  
1709
1710                                              </summary>
1711                                              <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1712                                              
1713                                                <li>
1714                                                  <a href="/collections/圣经-圣经故事-bible-bible-stories"  class="header__menu-item list-menu__item link link--text focus-inset caption-large"> English Bible Stories 英语圣经故事 </a>
1715                                                </li>
1716                                              
1717                                                <li>
1718                                                  <a href="/collections/绘本-picture-book"  class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Picture Book 绘本</a>
1719                                                </li>
1720                                              
1721                                                <li>
1722                                             
1722     <a href="/collections/圣经bible-圣经故事-bible-stories"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Chinese Bible Stories 中文圣经故事</a>
1723                                                </li>
1724                                              
1725                                              </ul>
1726                                            </details>
1727                                          </details-disclosure>
1728                                        </li>
1729                                      
1730                                    
1731                                      
1732                                      
1733                                        <li>
1734                                          <a href="/collections/青少年书籍-teen-s-book"  class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Teen&#39;s Book 青少年书籍</a>
1735                                        </li>
1736                                      
1737                                    
1738                                  </ul>
1739                                </details>
1740                              </details-disclosure>
1741                            </li>
1742                            
1743                          
1744                        
1745                        
1746                          
1747                            
1748                            <li>
1749                              <details-disclosure>
1750                                <details>
1751                                  <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large">
1752                                    <a href="/collections/方法论" >Training 训练材料</a>
1753                                    
1754
1755
1756    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6">
1757      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
1758    </svg>
1759
1760  
1761
1762                                  </summary>
1763                                  <ul class="header__submenu list-menu list-menu--disclosure motion-reduce">
1764                                    
1765                                      
1766                                      
1767                                        <li>
1768                                          <a href="/collections/主日学sunday-school-门徒训练discipleship-training"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">Sunday School 主日学 / 门徒训练 Discipleship Training</a>
1769                                        </li>
1770                                      
1771                                    
1772                                  </ul>
1773                                </details>
1774                              </details-disclosure>
1775                            </li>
1776                            
1777                          
1778                        
1779                        
1780                          
1781                            
1782                            <li>
1783                              <a href="/collections/桌游与游戏"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1784                                Board Games and Games 桌游与游戏
1785                              </a>
1786                            </li>
1787                          
1788                        
1789                        
1790                          
1791                            
1792                            <li>
1793                              <a href="/collections/new-arrival"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1794                                New Arrival 新品
1795                              </a>
1796                            </li>
1797                          
1798                        
1799                        
1800                          
1801                            
1802                            <li>
1803                              <a href="/collections/add-on"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1804                                Add on
1805                              </a>
1806                            </li>
1807                          
1808                        
1809                      </ul>
1810                    </details>
1811                  </details-disclosure>
1812                </li>
1813              
1814            
1815            
1816              
1817                <li>
1818                  <a href="/blogs/儿童主日学教案"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
1819                    Lesson Plan 主日学教案
1820                  </a>
1821                </li>
1822              
1823            
1824            
1825              
1826                <li>
1827                  <a href="https://www.jbcornerstone.com/account/register"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
1828                    Create an account 注册账号
1829                  </a>
1830                </li>
1831              
1832            
1833            
1834            
1835              
1836                
1837                  
1838                
1839                  
1840                
1841              
1842            
1843        </ul>
1844      </nav>
1845      <div class="header__icons">
1846
1847        
1848          
1849            <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide" style="position: relative;">
1850              <a href="/account/login" class="header__icon link link--text focus-inset p-2">
1851                
1852
1853
1854    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
1855
1856  
1857
1858                <span id="my-account" class="header__link-label">Login</span>
1859              </a>
1860
1861              <!-- Referral Notification Popup for Desktop -->
1862              <div id="referralNotification" class="referral-notification" style="display: none;">
1863                <button class="close-btn" onclick="dismissReferralNotification()">&times;</button>
1864                <div style="text-align: center; margin-bottom: 16px;">
1865                  <div style="width: 100px; height: 100px; margin: 0 auto;">
1866                    <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg">
1867                  </div>
1868                </div>
1869                <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;">
1870                  Your friend gifted you   credit! Sign up now to redeem.
1871                </p>
1872                <div style="text-align: center;">
1873                  <button class="btn" onclick="goToSignupPage()" style="width: 100%;">
1874                    Sign Up
1875                  </button>
1876                </div>
1877              </div>
1878            </div>
1879          
1880        
1881
1882        <a href="/cart" class="header__icon link link--text focus-inset" id="cart-icon-bubble">
1883          <span class="header__icon--cart">
1884            
1885
1886
1887    <svg class="icon icon-cart-empty " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496.56 600"><path d="M453.52,128.63a25,25,0,0,0-24.91-22.8H364.72a117.48,117.48,0,0,0-232.89,0H67.94A25,25,0,0,0,43,128.63L8.8,515.21a72.11,72.11,0,0,0,19.05,55.6,79,79,0,0,0,58.22,25.3H410.49a79,79,0,0,0,58.22-25.3,72.11,72.11,0,0,0,19.05-55.6ZM248.28,53.89a67.58,67.58,0,0,1,65.65,51.94H182.63A67.57,67.57,0,0,1,248.28,53.89ZM431.83,537.05a28.85,28.85,0,0,1-21.34,9.06H86.07a28.85,28.85,0,0,1-21.34-9.06,22.69,22.69,0,0,1-6.13-17.43L90.82,155.83h40v51.23a25,25,0,0,0,50,0V155.83h135v51.23a25,25,0,0,0,50,0V155.83h40L438,519.62A22.68,22.68,0,0,1,431.83,537.05Z" fill="currentColor"/></svg>
1888
1889  
1890
1891            <div class="cart-count-bubble hidden">
1892              <span aria-hidden="true" class="js-content-cart-count">0</span>
1893            </div>
1894          </span>
1895          <span class="header__link-label medium-hide small-hide">
1896            Cart
1897          </span>
1898        </a>
1899
1900        
1901          
1902          <!-- Referral Notification Modal for Mobile -->
1903          <details-modal class="referral-modal" id="referralMobileModal">
1904            <details>
1905              <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;">
1906              </summary>
1907              <div class="modal-overlay referral-modal-overlay"></div>
1908              <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification">
1909                <div class="referral-modal__content">
1910                  <button type="button" class="modal__close-button" aria-label="Close" onclick="closeMobileReferralModal()" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer;">
1911                    &times;
1912                  </button>
1913                  
1914                  <div style="margin-bottom: 24px;">
1915                    <div style="width: 120px; height: 120px; margin: 0 auto 20px;">
1916                      <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;">
1917                    </div>
1918                  </div>
1919                  
1920                  <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;">
1921                    Your friend gifted you   credit! Sign up now to redeem.
1922                  </p>
1923                  
1924                  <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%;">
1925                    Sign Up
1926                  </button>
1927                </div>
1928              </div>
1929            </details>
1930          </details-modal>
1931          
1932        
1933        
1934      </div>
1935    </header>
1936  </sticky-header>
1937  
1938<cart-notification>
1939  <div class="cart-notification-wrapper page-width color-background-1">
1940    <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="Added to cart" role="dialog" tabindex="-1">
1941      <div class="cart-notification__header">
1942        <h2 class="cart-notification__heading caption-large">
1943
1944
1945    <svg class="icon icon-checkmark color-foreground-text " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none">
1946      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path>
1947    </svg>
1948
1949  
1950 Added to cart</h2>
1951        <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close">
1952          
1953
1954
1955    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
1956
1957  
1958
1959        </button>
1960      </div>
1961      <div id="cart-notification-product" class="cart-notification-product"></div>
1962      <div class="cart-notification__links">
1963        <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width">View cart (<span class="js-content-cart-count">0</span>)</a>
1964        <form action="/cart" method="post" id="cart-notification-form">
1965          <input type="hidden" name="_token" value="iZYDPEPsChYdXFNOwmNvI4KknzMulgtwmnwaJAvL">
1966          <input type="hidden" name="current_currency" value="">
1967          <button class="button button--primary button--full-width" name="checkout" value="true">Checkout</button>
1968        </form>
1969        <a href="/collections/all" class="link button-label">Continue shopping</a>
1970      </div>
1971    </div>
1972  </div>
1973</cart-notification>
1974<style>
1975  .cart-notification {
1976     display: none;
1977  }
1978</style>
1979<script>
1980document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{
1981  if(event.submitter) event.submitter.classList.add('loading');
1982})
1983
1984</script>
1984
1985
1986</div>
1987
1988
1989<script>
1990
1991  class StickyHeader extends HTMLElement {
1992    constructor() {
1993      super();
1994    }
1995
1996    connectedCallback() {
1997      this.header = document.getElementById('easystore-section-header');
1998      this.headerBounds = {};
1999      this.currentScrollTop = 0;
2000      this.preventReveal = false;
2001
2002      this.onScrollHandler = this.onScroll.bind(this);
2003      this.hideHeaderOnScrollUp = () => this.preventReveal = true;
2004
2005      this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
2006      window.addEventListener('scroll', this.onScrollHandler, false);
2007
2008      this.createObserver();
2009    }
2010
2011    disconnectedCallback() {
2012      this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
2013      window.removeEventListener('scroll', this.onScrollHandler);
2014    }
2015
2016    createObserver() {
2017      let observer = new IntersectionObserver((entries, observer) => {
2018        this.headerBounds = entries[0].intersectionRect;
2019        observer.disconnect();
2020      });
2021
2022      observer.observe(this.header);
2023    }
2024
2025    onScroll() {
2026      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
2027
2028      if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
2029        requestAnimationFrame(this.hide.bind(this));
2030      } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
2031        if (!this.preventReveal) {
2032          requestAnimationFrame(this.reveal.bind(this));
2033        } else {
2034          window.clearTimeout(this.isScrolling);
2035
2036          this.isScrolling = setTimeout(() => {
2037            this.preventReveal = false;
2038          }, 66);
2039
2040          requestAnimationFrame(this.hide.bind(this));
2041        }
2042      } else if (scrollTop <= this.headerBounds.top) {
2043        requestAnimationFrame(this.reset.bind(this));
2044      }
2045
2046
2047      this.currentScrollTop = scrollTop;
2048    }
2049
2050    hide() {
2051      this.header.classList.add('easystore-section-header-hidden', 'easystore-section-header-sticky');
2052      this.closeMenuDisclosure();
2053      // this.closeSearchModal();
2054    }
2055
2056    reveal() {
2057      this.header.classList.add('easystore-section-header-sticky', 'animate');
2058      this.header.classList.remove('easystore-section-header-hidden');
2059    }
2060
2061    reset() {
2062      this.header.classList.remove('easystore-section-header-hidden', 'easystore-section-header-sticky', 'animate');
2063    }
2064
2065    closeMenuDisclosure() {
2066      this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure');
2067      this.disclosures.forEach(disclosure => disclosure.close());
2068    }
2069
2070    // closeSearchModal() {
2071    //   this.searchModal = this.searchModal || this.header.querySelector('details-modal');
2072    //   this.searchModal.close(false);
2073    // }
2074  }
2075
2076  customElements.define('sticky-header', StickyHeader);
2077
2078  
2079  class DetailsDisclosure extends HTMLElement{
2080    constructor() {
2081      super();
2082      this.mainDetailsToggle = this.querySelector('details');
2083      // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this));
2084      this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this));
2085      this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this));
2086    }
2087
2088    onFocusOut() {
2089      setTimeout(() => {
2090        if (!this.contains(document.activeElement)) this.close();
2091      })
2092    }
2093
2094    open() {
2095      this.mainDetailsToggle.setAttribute('open',1)
2096    }
2097
2098    close() {
2099      this.mainDetailsToggle.removeAttribute('open')
2100    }
2101  }
2102
2103  customElements.define('details-disclosure', DetailsDisclosure);
2104
2105  function clearAll() {
2106    localStorage.removeItem('searchHistory'); 
2107    
2108    var customer = "";
2109    if(customer) {
2110      // Your logic to clear all data or call an endpoint
2111      fetch('/account/search_histories', {
2112          method: 'DELETE',
2113          headers: {
2114            "Content-Type": "application/json",
2115            "X-Requested-With": "XMLHttpRequest"
2116          },
2117          body: JSON.stringify({
2118            _token: "iZYDPEPsChYdXFNOwmNvI4KknzMulgtwmnwaJAvL"
2119          }),
2120      })
2121      .then(response => response.json())
2122    }
2123  }
2124  // End - delete search history from local storage
2125  
2126  // search history dropdown  
2127  var searchInputs = document.querySelectorAll('.search__input');
2128  
2129  if(searchInputs.length > 0) {
2130    
2131    searchInputs.forEach((searchInput)=> {
2132    
2133      searchInput.addEventListener('focus', function() {
2134        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
2135        searchDropdown.innerHTML = ''; // Clear existing items
2136  
2137        // retrieve data from local storage
2138        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
2139  
2140        // Convert JSON to string
2141        var search_history_json = JSON.stringify(searchHistoryData);
2142  
2143        // Set the value of the hidden input
2144        searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json;
2145  
2146        // create dropdown items
2147        var clearAllItem = document.createElement('div');
2148        clearAllItem.className = 'dropdown-item clear-all';
2149        clearAllItem.textContent = 'Clear';
2150        clearAllItem.addEventListener('click', function() {
2151          clearAll();
2152          searchDropdown.style.display = 'none';
2153          searchInput.classList.remove('is-focus');
2154        });
2155        searchDropdown.appendChild(clearAllItem);
2156  
2157        // create dropdown items
2158        searchHistoryData.forEach(function(item) {
2159          var dropdownItem = document.createElement('div');
2160          dropdownItem.className = 'dropdown-item';
2161          dropdownItem.textContent = item.term;
2162          dropdownItem.addEventListener('click', function() {
2163            searchInput.value = item.term;
2164            searchInput.closest('form').submit();
2165            searchDropdown.style.display = 'none';
2166          });
2167          searchDropdown.appendChild(dropdownItem);
2168        });
2169  
2170        if(searchHistoryData.length > 0){
2171          // display the dropdown
2172          searchInput.classList.add('is-focus');
2173          document.body.classList.add('search-input-focus');
2174          searchDropdown.style.display = 'block';
2175        }
2176      });
2177  
2178      searchInput.addEventListener("focusout", (event) => {
2179        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
2180        searchInput.classList.remove('is-focus');
2181        searchDropdown.classList.add('transparent');
2182        setTimeout(()=>{
2183          searchDropdown.style.display = 'none';
2184          searchDropdown.classList.remove('transparent');
2185          document.body.classList.remove('search-input-focus');
2186        }, 400);
2187      });
2188    })
2189  }
2190  // End - search history dropdown
2191
2192  // referral notification popup
2193  const referralMessageTemplate = 'Your friend gifted you __CURRENCY_CODE__ __CREDIT_AMOUNT__ credit! Sign up now to redeem.';
2194  const shopCurrency = 'RM';
2195
2196  function getCookie(name) {
2197    const value = `; ${document.cookie}`;
2198    const parts = value.split(`; ${name}=`);
2199    if (parts.length === 2) return parts.pop().split(';').shift();
2200    return null;
2201  }
2202
2203  function removeCookie(name) {
2204    document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
2205  }
2206
2207  function showReferralNotification() {
2208    const referralCode = getCookie('customer_referral_code');
2209    
2210    
2211    const customerReferralCode = null;
2212    
2213    
2214    const activeReferralCode = referralCode || customerReferralCode;
2215    const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {};
2216    
2217    if (referralData.timestamp && referralData.expirationDays) {
2218      const expirationTime = referralData.timestamp + (referralData.expirationDays * 24 * 60 * 60 * 1000);
2219      if (Date.now() > expirationTime) {
2220        localStorage.removeItem('referral_notification_data');
2221        return;
2222      }
2223    }
2224    
2225    if (referralData.dismissed) return;
2226    
2227    if (activeReferralCode) {
2228      if (referralData.creditAmount) {
2229        displayReferralNotification(referralData.creditAmount);
2230      } else {
2231        fetchReferralCampaignData(activeReferralCode);
2232      }
2233    }
2234  }
2235    
2236  function fetchReferralCampaignData(referralCode) {
2237    fetch(`/customer/referral_program/campaigns/${referralCode}`)
2238      .then(response => {
2239        if (!response.ok) {
2240          throw new Error('Network response was not ok');
2241        }
2242        return response.json();
2243      })
2244      .then(data => {
2245        let refereeCreditAmount = null;
2246        if (data.data.campaign && data.data.campaign.referral_rules) {
2247          const refereeRule = data.data.campaign.referral_rules.find(rule => 
2248            rule.target_type === 'referee' && 
2249            rule.event_name === 'customer/create' && 
2250            rule.entitlement && 
2251            rule.entitlement.type === 'credit'
2252          );
2253          
2254          if (refereeRule) {
2255            refereeCreditAmount = refereeRule.entitlement.amount;
2256          }
2257        }
2258        
2259        const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {};
2260        referralData.creditAmount = refereeCreditAmount;
2261        referralData.dismissed = referralData.dismissed || false;
2262        referralData.timestamp = Date.now();
2263        referralData.expirationDays = 3;
2264        localStorage.setItem('referral_notification_data', JSON.stringify(referralData));
2265        
2266        displayReferralNotification(refereeCreditAmount);
2267      })
2268      .catch(error => {
2269        removeCookie('customer_referral_code');
2270      });
2271  }
2272    
2273  function displayReferralNotification(creditAmount = null) {
2274    const isMobile = innerWidth <= 749;
2275    
2276    if (isMobile) {
2277      const mobileModal = document.querySelector('#referralMobileModal details');
2278      const mobileMessageElement = document.getElementById('referralSignupMessageMobile');
2279      
2280      if (mobileModal && mobileMessageElement) {
2281        if (creditAmount) {
2282          const finalMessage = referralMessageTemplate
2283            .replace('__CREDIT_AMOUNT__', creditAmount)
2284            .replace('__CURRENCY_CODE__', shopCurrency);
2285          
2286          mobileMessageElement.textContent = finalMessage;
2287        }
2288        
2289        mobileModal.setAttribute('open', '');
2290      }
2291    } else {
2292      const notification = document.getElementById('referralNotification');
2293      
2294      if (notification) {
2295        if (creditAmount) {
2296          const messageElement = document.getElementById('referralSignupMessage');
2297          if (messageElement) {
2298            const finalMessage = referralMessageTemplate
2299              .replace('__CREDIT_AMOUNT__', creditAmount)
2300              .replace('__CURRENCY_CODE__', shopCurrency);
2301            
2302            messageElement.textContent = finalMessage;
2303          }
2304        }
2305        
2306        notification.style.display = 'block';
2307      }
2308    }
2309  }
2310
2311  showReferralNotification();
2312
2313  addEventListener('beforeunload', function() {
2314    const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {};
2315    
2316    if (referralData.creditAmount !== undefined) {
2317      referralData.creditAmount = null;
2318      localStorage.setItem('referral_notification_data', JSON.stringify(referralData));
2319    }
2320  });
2321
2322  function closeReferralNotification() {
2323    const notification = document.getElementById('referralNotification');
2324    if (notification) {
2325      notification.style.display = 'none';
2326    }
2327  }
2328
2329  function dismissReferralNotification() {
2330    const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {};
2331    
2332    referralData.dismissed = true;
2333    referralData.timestamp = referralData.timestamp || Date.now();
2334    referralData.expirationDays = referralData.expirationDays || 3;
2335    
2336    localStorage.setItem('referral_notification_data', JSON.stringify(referralData));
2337    
2338    closeReferralNotification();
2339  }
2340
2341  function goToSignupPage() {
2342    location.href = '/account/register';
2343    dismissReferralNotification();
2344  }
2345
2346  function closeMobileReferralModal() {
2347    const mobileModal = document.querySelector('#referralMobileModal details');
2348    if (mobileModal) {
2349      mobileModal.removeAttribute('open');
2350    }
2351    
2352    const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {};
2353    referralData.dismissed = true;
2354    referralData.timestamp = referralData.timestamp || Date.now();
2355    referralData.expirationDays = referralData.expirationDays || 3;
2356    localStorage.setItem('referral_notification_data', JSON.stringify(referralData));
2357  }
2358
2359  function goToSignupPageFromMobile() {
2360    location.href = '/account/register';
2361    closeMobileReferralModal();
2362  }
2363  // End - referral notification popup
2364</script>
2364
2365
2366
2367
2368  <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
vendor: 83 bytes, lines 2368-2371
2368
2369    
2370    
2371<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=
23716LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF
vendor: 12 bytes, line 2371
2371"></script>
2372<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/customer.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
2373<style>
2374  main.main-content .field > label{
2375    display: none;
2376  }
2377  .h3{
2378    font-size: 18px;
2379  }
2380  .button--full-width{
2381    width: 100%;
2382  }
2383  .tab-wrapper{
2384    display: inline-flex;
2385    justify-content: center;
2386    align-items: center;
2387    margin: 10px auto 20px;
2388    background-color: #eaeaea;
2389    border-radius: 200px;
2390    padding: 5px;
2391    gap: 10px;
2392  }
2393  .tab-wrapper .tab-label {
2394    display: inline-block;
2395    min-width: 130px;
2396    padding: 8px 15px;
2397    border-radius: 100px;
2398    cursor: pointer;
2399    font-size: 17px;
2400    line-height: 1.1;
2401    user-select: none;
2402    margin: 0;
2403    color: #000;
2404  }
2405  #register-tos a {
2406    display: inline;
2407  }
2408  @media screen and (max-width: 400px){
2409    .tab-wrapper .tab-label {
2410      min-width: 110px;
2411    }
2412  }
2413  .tab-wrapper input[type='radio']:checked + .tab-label {
2414    background-color: #fff;
2415    box-shadow: 2px 2px 25px -10px #333;
2416  }
2417
2418  @media screen and (min-width: 500px){
2419    .large--five-twelfths{
2420      min-width: 420px;
2421    }
2422  }
2423</style>
2424
2425
2426
2427
2428<div class="customer login section-width-control small-width large--five-twelfths text-center wrapper">
2429  <div class="card">
2430    <h1 id="login" tabindex="-1" class="mb-0">
2431      Welcome
2432    </h1>
2433    <p class="h3 mt-0">
2434      
2435        Sign up or log in to continue
2436      
2437    </p>
2438    <div>
2439      
2440
2441      
2442
2443      
2444
2445      
2446
2447      
2448
2449      
2450
2451      
2452
2453      
2454
2455      
2456      <div class="tab-wrapper">
2457        <div>
2458          <input type="radio" name="type" id="tab-register" class="hide hidden" checked>
2459          <label for="tab-register" class="tab-label">
2460            Sign up
2461          </label>
2462        </div>
2463        <div>
2464          <input type="radio" name="type" id="tab-login" class="hide hidden">
2465          <label for="tab-login" class="tab-label">
2466            Login
2467          </label>
2468        </div>
2469      </div>
2470      
2471
2472      <form id="form-login" action="/account/auth" method="post" class="mt-2">
2473        <input type="hidden" name="_token" value="iZYDPEPsChYdXFNOwmNvI4KknzMulgtwmnwaJAvL">
2474        <input type="hidden" name="location_id" value="">
2475        <input type="hidden" name="staff_id" value="">
2476        <input type="hidden" id="recaptchaResponse" name="g-recaptcha-response">
2477
2478        
2479        <div id="error-content"></div>
2480
2481        <div class="field">
2482          <input
2483            type="text"
2484            name="customer[email_or_phone]"
2485            id="CustomerDetail"
2486            autocorrect="off"
2487            autocapitalize="off"
2488            placeholder="Email"
2489            required
2490          >
2491          <label for="CustomerDetail">
2492            Email
2493          </label>
2494        </div>
2495
2496        <button
2497          type="submit"
2498          form="form-login"
2499          class="btn button--full-width g-recaptcha">
2500          Continue
2501        </button>
2502
2503        <div class="button-snippet">
2504                          
2505        </div>
2506
2507        
2508
2509        <div id="register-tos">
2510          By signing up, I agree to the 房角石书坊  Cornerstone Book Centre's <a target="_blank" href="/legal/terms-of-service">Terms of Service</a>, <a target="_blank" href="/legal/privacy-policy">Privacy Policy</a> and <a target="_blank" href="/legal/refund-policy">Shipping and Refund Policy</a>.
2511        </div>
2512
2513      </form>
2514    </div>
2515  </div>
2516
2517</div>
2518
2519
2520
2521<script>
2522  const register_tab = document.querySelector('#tab-register');
2523  const login_tab = document.querySelector('#tab-login');
2524  const register_tos = document.querySelector('#register-tos');
2525  const isRegistrationEnabled = "1";
2526
2527  if (register_tab) {
2528    register_tab.addEventListener('click', function() {
2529      if (register_tos) {
2530        register_tos.style.display = 'block';
2531      }
2532    });
2533  }
2534  if (login_tab) {
2535    login_tab.addEventListener('click', function() {
2536      if (register_tos) {
2537        register_tos.style.display = 'none';
2538      }
2539    });
2540  }
2541
2542  const methodSwitchBtn = document.getElementById('phone-login-btn');
2543  if (methodSwitchBtn) {
2544    methodSwitchBtn.onclick = function () {
2545      var type = (register_tab && register_tab.checked) ? 'register' : 'login';
2546      window.location.href = '/account/login?method=phone&type=' + type;
2547    };
2548  }
2549
2550  let lastPathSegment = window.location.pathname.split('/').filter(segment => segment.length > 0).pop();
2551  
2552  // Redirect to login if trying to access register when self registration is disabled
2553  if (!isRegistrationEnabled) {
2554    if (lastPathSegment === 'register') {
2555      window.location.href = '/account/login';
2556    } else if (lastPathSegment === 'login' || lastPathSegment === 'auth') {
2557      if (register_tos) {
2558        register_tos.style.display = 'none';
2559      }
2560    } 
2561  } else {
2562    // Only proceed with tab logic if not redirecting
2563    if(lastPathSegment === 'login') {
2564      if (login_tab) {
2565        login_tab.checked = true;
2566      }
2567      if (register_tos) {
2568        register_tos.style.display = 'none';
2569      }
2570    } else {
2571      if (register_tos) {
2572        register_tos.style.display = 'block';
2573      }
2574    }
2575  }
2576
2577  const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
2578  const phonePattern = /^(?:\+?\d{1,3}[\s-]?)?(?:\d{1,14}[\s-]?){1,5}$/;
2579
2580  let form = document.querySelector('#form-login'),
2581      input = document.querySelector('#CustomerDetail'),
2582      error_content = document.querySelector('#error-content');
2583
2584
2585  // One attempt at a time: the reCAPTCHA wait below is async, so without
2586  // this a double-click starts two continuations and posts the form twice.
2587  var submitting = false;
2588
2589  form.addEventListener('submit', async function (event) {
2590    // preventDefault FIRST: a re-entrant submit must still be cancelled, or the
2591    // browser performs a native post with no captcha token.
2592    event.preventDefault();
2593    if (submitting) return;
2594
2595    let input_value = input.value
2596    error_content.innerHTML = '';
2597    if (!input_value.match(emailPattern) && !input_value.match(phonePattern)) {
2598      error_content.innerHTML = `<div class="errors note">Invalid Email or Phone</div>`;
2599      return false;
2600    }
2601
2602    submitting = true;
2603    document.querySelector('#form-login .btn').classList.add('btn--loading','loading');
2604
2605    // reCAPTCHA is unreachable from some regions (google.com is blocked in
2606    // mainland China). Fail open the same way checkout and forgot-password do:
2607    // submit without a token rather than leave the button spinning forever.
2608    try {
2609      if (window.grecaptcha && typeof window.grecaptcha.enterprise === 'object') {
2610        // The loader defines a stub {ready} synchronously and fetches the real
2611        // implementation asynchronously, so execute() may not exist yet.
2612        // ready() queues until it does; the timeout stops a bundle that never
2613        // arrives from hanging the button.
2614        await new Promise(function (resolve) {
2615          setTimeout(resolve, 3000);
2616          try { grecaptcha.enterprise.ready(resolve); } catch (e) { resolve(); }
2617        });
2618
2619        const token = await grecaptcha.enterprise.execute('6LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF', { action: 'LOGIN' });
2620        document.getElementById('recaptchaResponse').value = token;
2621      }
2622    } catch (e) { /* fail open */ }
2623
2624    document.getElementById('form-login').submit();
2625  });
2626
2627
2628</script>
2628
2629
2630    
2631  </main>
2632 	<style>
2633  .footer{
2634    background-color: #FFFFFF;
2635    color: #000000;
2636    --color-foreground: 0,0,0;
2637  }
2638  .footer .link--text,
2639  .footer .list-menu__item--link,
2640  .footer .footer-block__details-content .list-menu__item--link{
2641    color: #000000;
2642  }
2643  .footer-block__heading{
2644    color: #050200;
2645  }
2646</style>
2647
2648<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/section-footer.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'">
2649
2650<footer class="footer color-background-1">
2651  <div class="footer__content-top page-width">
2652    <div class="grid grid--1-col grid--4-col-tablet ">
2653      
2654      
2655      
2656        <div class="grid__item">
2657          
2658              <h2 class="footer-block__heading">Follow us</h2>
2659              <ul class="footer__list-social list-unstyled list-social footer-block__details-content" role="list">
2660                
2661                
2662                  <li class="list-social__item">
2663                    <a href="https://www.facebook.com/cornerstonebookcenter" class="link link--text list-social__link">
2664                      
2665
2666
2667    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook "
2668    viewBox="0 0 18 18">
2669      <path fill="currentColor"
2670        d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
2671      </path>
2672    </svg>
2673
2674  
2675
2676                    </a>
2677                  </li>
2678                
2679                
2680                  <li class="list-social__item">
2681                    <a href="https://www.instagram.com/cornerstonebook.jb/" class="link link--text list-social__link">
2682                      
2683
2684
2685    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram "
2686    viewBox="0 0 18 18">
2687      <path fill="currentColor"
2688        d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z">
2689      </path>
2690      <path fill="currentColor"
2691        d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z">
2692      </path>
2693    </svg>
2694
2695  
2696
2697                    </a>
2698                  </li>
2699                
2700                
2701                
2702                  <li class="list-social__item">
2703                    <a href="https://wa.me/601151201129" class="link link--text list-social__link">
2704                      
2705
2706
2707    <svg class="icon icon-whatsapp " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M703.5,195.64A371,371,0,0,0,572,56C523.89,26,471.51,8.4,415.21,2.51A370.48,370.48,0,0,0,316.5,5.42,364,364,0,0,0,215.23,37.47a369,369,0,0,0-132.68,108Q17.36,230.17,7,336.63A370.11,370.11,0,0,0,53.42,554.94a7.23,7.23,0,0,1,.61,4.9Q36.48,624.6,18.7,689.27C13.24,709.19,7.75,729.1,2.14,749.5c1.23-.26,1.93-.36,2.61-.55q95.75-25.11,191.54-50.2a8.43,8.43,0,0,1,5.19.61c12.79,5.8,25.28,12.34,38.29,17.59A370.28,370.28,0,0,0,666.09,604q69.06-86.36,80-196.47A370.36,370.36,0,0,0,743,311.86,361,361,0,0,0,703.5,195.
270764ZM684.64,388c-3.6,65.27-25.48,123.75-66.06,174.9-44.89,56.63-102.85,93.24-173.19,109.84a297.41,297.41,0,0,1-91.27,7A305.68,305.68,0,0,1,215.31,635a17.54,17.54,0,0,0-15.2-2.14c-35.5,9.58-71.1,18.74-106.66,28-.49.13-1,.21-2.14.45,1.72-6.37,3.29-12.22,4.89-18Q109,596.7,121.66,550.07a7.12,7.12,0,0,0-1-5.07c-12.37-19.32-23.31-39.25-31.6-60.64A309,309,0,0,1,70.4,410.63c-6.11-49.35-.93-97.44,16.1-144.15,57.86-160.1,234.55-243,394.65-185.11a308.31,308.31,0,0,1,120.2,79.18c34.9,37.19,59.32,80.31,72.81,129.53A304.75,304.75,0,0,1,684.64,388Z"/><path d="M556,454.42c-13.84-6.52-27.43-13.55-41.24-20.12-11.47-5.46-23-10.89-34.73-15.69-9.1-3.73-13.09-1.72-19.12,6.06-9.39,12.09-19.09,23.95-28.89,35.71-4.7,5.63-9.47,6.79-16.1,3.8-12.32-5.56-24.82-10.9-36.58-17.51-39.6-22.29-69.59-54.3-92.67-93.11-4.87-8.2-4.3-12.16,2.14-19.13,9.07-9.9,18.4-19.63,24.09-32.12a17.42,17.42,0,0,0,.47-14.67c-9.55-23-19-46-28.75-68.92a75.82,75.82,0,0,0-7-12.7c-2.56-3.82-6.6-5.49-11.28-5.36H255.78v-.56c-5.48.29-11,.11-16.39,1-8.66,1.37-15,6.75-20.95,12.94-25.46,26.48-34.58,57.89-28.66,93.83a145.64,145.64,0,0,0,20.75,53.75C220.48,377.5,231.32,393,242.65,408a435.09,435.09,0,0,0,70.53,73.19c31.48,26,67,44.54,105.56,57.58,16.1,5.44,32.08,11.08,49.36,11.42,11.52.22,23,.08,34.16-3.22a110.77,110.77,0,0,0,42.1-23.61c5.48-4.81,10.48-10.18,13.19-17a110.56,110.56,0,0,0,7.57-37.2C565.27,461.93,562.42,457.42,556,454.42Z"/></svg>
2708
2709  
2710
2711                    </a>
2712                  </li>
2713                
2714                
2715                
2716                
2717                
2718              </ul>
2719            
2720        </div>
2721      
2722      
2723      
2724        <div class="grid__item">
2725          
2726              <h2 class="footer-block__heading">We accept</h2>
2727              <div class="footer-block__details-content footer__payment">
2728                <ul class="list list-payment" role="list">
2729                  
2730                  
2731                  
2732                  
2733                  
2734                  
2735									
2736                    
2737                      <li class="list-payment__item">
2738                        <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_ipay88.svg" alt="payment_ipay88" loading="lazy" width="85px">
2739                      </li>
2740                    
2741                      <li class="list-payment__item">
2742                        <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_bank-transfer.svg" alt="payment_bank-transfer" loading="lazy" width="85px">
2743                      </li>
2744                    
2745                      <li class="list-payment__item">
2746                        <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_tngpay.svg" alt="payment_tngpay" loading="lazy" width="85px">
2747                      </li>
2748                    
2749                 
2750              </div>
2751              
2752        </div>
2753      
2754      
2755      
2756        <div class="grid__item">
2757          
2758              <h2 class="footer-block__heading">
2759                Quick links
2760              </h2>
2761              <ul class="footer-block__details-content list-unstyled">
2762                
2763                <li>
2764                  <a href="/pages/membership-房角石网店会员福利"  class="link link--text list-menu__item list-menu__item--link">
2765                    Membership 房角石网店会员福利
2766                  </a>
2767                </li>
2768                
2769                <li>
2770                  <a href="https://www.jbcornerstone.com/pages/contact-us-%E8%81%94%E7%B3%BB%E6%88%91%E4%BB%AC"  target="_blank"  class="link link--text list-menu__item list-menu__item--link">
2771                    Contact Us
2772                  </a>
2773                </li>
2774                
2775                <li>
2776                  <a href="/pages/shipping-and-return-policy"  class="link link--text list-menu__item list-menu__item--link">
2777                    Shipping and Refund Policy
2778                  </a>
2779                </li>
2780                
2781                <li>
2782                  <a href="https://www.jbcornerstone.com/pages/about-us-%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC"  class="link link--text list-menu__item list-menu__item--link">
2783                    About Us
2784                  </a>
2785                </li>
2786                
2787                <li>
2788                  <a href="/pages/奉献支持"  class="link link--text list-menu__item list-menu__item--link">
2789                    奉献支持
2790                  </a>
2791                </li>
2792                
2793                <li>
2794                  <a href="/blogs/儿童主日学教案"  class="link link--text list-menu__item list-menu__item--link">
2795                    儿童主日学教案
2796                  </a>
2797                </li>
2798                
2799                
2800              </ul>
2801            
2802        </div>
2803      
2804    </div>
2805  </div>
2806  <div class="footer__content-bottom">
2807    <div class="footer__content-bottom-wrapper page-width">
2808      <div class="footer__column footer__column--info">
2809
2810        
2811
2812
2813        
2814        <div class="footer__copyright caption">
2815          <div class="copyright__content">Copyright © 2026 Partners Training & Communication Sdn.Bhd. (500714-x)</div>
2816        </div>
2817
2818        <div class="footer__copyright caption">
2819          
2820            <div>
2821            
2822            
2823              
2824                <a href="/legal/terms-of-service">Terms of Service</a>
2825              
2826              
2827            
2828              
2829                | <a href="/legal/privacy-policy">Privacy Policy</a>
2830              
2831              
2832            
2833              
2834                | <a href="/legal/refund-policy">Shipping and Refund Policy</a>
2835              
2836              
2837            
2838            </div>
2839         
2840        </div>
2841        
2842      </div>
2843    </div>
2844  </div>
2845</footer>
2846
2847
2848
2849
2850  
2851
2852  
2852<script>
2853  EasyStore.Currencies.init([{"name":"Malaysian Ringgit","code":"MYR","rate":"1.0","format_prefix":"RM","format_suffix":null,"format_decimals":2,"thousand_separator":",","is_primary":true}], 1)
2854</script>
2854
2855
2856
2857
2858  
2858<script>
2859    let page_template = 'customers';
2860
2861    if(document.querySelector('.currency-picker')) {
2862      EasyStore.Currencies.change(document.querySelector('.currency-picker').value)
2863      EasyStore.Currencies.convertAll() 
2864    }
2865
2866    document.querySelectorAll('.currency-picker').forEach((el)=>{
2867      el.addEventListener('change',(event)=>{
2868        EasyStore.Currencies.change(event.target.value)
2869
2870        
2871          if (page_template == 'cart') {
2872            const params = new URLSearchParams(window.location.search);
2873            params.set('delete_cache', 1);
2874            window.location.search = params;
2875          } else {
2876            window.location.reload();
2877          }
2878
2879          return
2880        
2881
2882        document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{
2883          el.value = event.target.value
2884        })
2885
2886        if(page_template == 'cart') location.reload();
2887      })
2888    })
2889  </script>
2889
2890
2891
2892
2893
2894  
2894<script>
2895
2896    window.variantStrings = {
2897      addToCart: `Add to Cart`,
2898      soldOut: `Sold Out`,
2899      unavailable: `Unavailable`,
2900    }
2901
2902    window.accessibilityStrings = {
2903      shareSuccess: `Link copied to clipboard`,
2904    }
2905  </script>
2905
2906  
2907<!-- Snippet:global/body_end: Product Label -->
2908<link href='https://apps.easystore.co/assets/css/product-label/main.css?v2.3' rel='stylesheet' type='text/css' media='screen' />
2908<script src='https://apps.easystore.co/product-labels/productlabelv2.js?shop=ptckul.easy.co' type='text/javascript'></script>
2908
2909<!-- /Snippet -->
2910
2911<!-- Snippet:global/body_end: Product Description Tabs -->
2912<style>
2913    .product-description-tabs{
2914        color: #000000;
2915    }
2916    .prod-desc-tab-container {
2917        padding: 15px;
2918        margin-right: auto;
2919        margin-left: auto;
2920        background-color: #ffffff;
2921    }
2922    /* Style the list */
2923    .prod-desc-tab {
2924        list-style-type: none;
2925        margin: 0;
2926        padding: 0;
2927        border-bottom: solid 1px #ddd;
2928        /*overflow: hidden;
2929        border: 1px solid #e6e6e6;
2930        background-color: #fefefe;
2931        border-bottom: 1px solid #ddd;*/
2932    }
2933
2934    /* Float the list items side by side */
2935    li.tablinks {
2936        display: inline-block;
2937        border-top: 3px solid transparent;
2938        border-left: 1px solid transparent;
2939        border-right: 1px solid transparent;
2940        margin-bottom: -1px;
2941        margin-right: 3px;
2942        border-radius: 4px 4px 0 0;
2943        background-color: rgba(212,212,212,0.3);
2944    }
2945
2946    /* Style the links inside the list items */
2947    li.tablinks a {
2948        color: #000000;
2949        cursor: pointer;
2950        margin-right: 2px;
2951        line-height: 1.42857143;
2952        display: block;
2953        padding: 10px 15px;
2954    }
2955
2956    /* Change background color of links on hover */
2957    li.tablinks:hover {
2958        background-color: #ffffff;
2959        border-bottom-color: transparent;
2960        border-top: 3px solid #ddd;
2961        border-left: 1px solid #ddd;
2962        border-right: 1px solid #ddd;
2963    } /*rgba(212,212,212,0.3)*/
2964
2965    /* Create an active/current tablink class */
2966    li.tablinks a:focus, li.tablinks.active{
2967        border-top: 3px solid #ddd;
2968        border-left: 1px solid #ddd;
2969        border-right: 1px solid #ddd;
2970        background-color: #ffffff;
2971    }
2972
2973    /* Style the tab content */
2974    .prod-desc-tab-content {
2975        display: none;
2976        padding: 15px 15px;
2977        /*border: 1px solid #ccc;*/
2978        border-top: none;
2979        clear: both;
2980        -webkit-animation: fadeEffect 1s;
2981        animation: fadeEffect 1s; /* Fading effect takes 1 second */
2982    }
2983    .prod-desc-tab-content ul{
2984        list-style-type: disc;
2985    }
2986
2987    /* if user select is_show_title is true, the title will be displayed; if not, hide the title*/
2988    .prod-desc-tab-content > h2{
2989                display:none;
2990            }
2991
2992    @-webkit-keyframes fadeEffect {
2993        from {opacity: 0;}
2994        to {opacity: 1;}
2995    }
2996
2997    @keyframes  fadeEffect {
2998        from {opacity: 0;}
2999        to {opacity: 1;}
3000    }
3001
3002    .tab_drawer_heading { display: none; }
3003
3004    @media  screen and (max-width: 480px) {
3005        .prod-desc-tab {
3006            display: none;
3007        }
3008        .tab_drawer_heading {
3009            background-color: transparent;
3010            color: #000000;
3011            border-bottom: 1px solid #ddd;
3012            margin: 0;
3013            padding: 6px 12px;
3014            display: block;
3015            cursor: pointer;
3016            -webkit-touch-callout: none;
3017            -webkit-user-select: none;
3018            -khtml-user-select: none;
3019            -moz-user-select: none;
3020            -ms-user-select: none;
3021            user-select: none;
3022            position: relative;
3023        }
3024        .tab_drawer_heading:after {
3025            content: '';
3026            top: 50%;
3027            right: 40px;
3028            position: absolute;
3029            border: solid black;
3030            border-width: 0 3px 3px 0;
3031            display: inline-block;
3032            width: 10px;
3033            height: 10px;
3034            margin-top: -5px;
3035            transform: rotate(45deg);
3036            -webkit-transform: rotate(45deg);
3037            -webkit-transition: all 200ms linear;
3038               -moz-transition: all 200ms linear;
3039                -ms-transition: all 200ms linear;
3040                 -o-transition: all 200ms linear;
3041                    transition: all 200ms linear;
3042        }
3043        .d_active {
3044            background-color: rgba(212,212,212,0.3);
3045        }
3046        .d_active.tab_drawer_heading:after{
3047            margin-top: -3px;
3048            transform: rotate(-135deg);
3049            -webkit-transform: rotate(-135deg);
3050        }
3051    }
3052</style>
3053
3054<script type="text/javascript">
3055    // If the page has no jquery
3056    // if(typeof jQuery == 'undefined'){
3057    //  console.log(456);
3058    //  var script = document.createElement('script');
3059    //  script.type = "text/javascript";
3060    //  script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js";
3061    //  console.log(script);
3062    //  document.getElementsByTagName('head')[0].appendChild(script);
3063    // }
3064
3065    /* if in tab mode */
3066    $("body").on("click", ".tablinks", function(){
3067        var id = $(this).data("prod-desc-id");
3068
3069        // Get all elements with class="prod-desc-tab-content" and hide them
3070        $(".prod-desc-tab-content").hide();
3071
3072        // Get all elements with class="tablinks" and remove the class "active"
3073        $(".tablinks").removeClass("active");
3074
3075        // Show the current tab, and add an "active" class to the link that opened the tab
3076        $("#"+id+"_desc_tab_content").show();
3077        $(this).addClass("active");
3078
3079        // make mobile view(drawer mode) also in same tab
3080        $(".tab_drawer_heading").removeClass("d_active");
3081        $(".tab_drawer_heading[data-prod-desc-id='"+id+"']").addClass("d_active");
3082
3083    });
3084    
3085    /* if in drawer mode */
3086    $("body").on("click", ".tab_drawer_heading", function() {
3087        var id = $(this).data("prod-desc-id")
3088        var active = $(this).hasClass("d_active")
3089
3090        $(".prod-desc-tab-content").hide();
3091        $(".tab_drawer_heading").removeClass("d_active");
3092
3093        if(!active){
3094            $("#"+id+"_desc_tab_content").show();
3095            $(this).addClass("d_active");
3096            window.scroll({
3097                top: $(this).offset().top - 120,
3098                left: 0,
3099                behavior: 'smooth'
3100            });
3101        }
3102
3103        $(".tablinks").removeClass("active");
3104        $(".tablinks[data-prod-desc-id='"+id+"']").addClass("active");
3105    });
3106
3107    $(function(){
3108        var x = $(".product-description").find("h1, h2, h3, h4, h5, h6");
3109        var title = null;
3110        var body = null;
3111
3112        if(x.length > 1){
3113            $(".product-description").after("<link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='product-description-tabs fr-view rte'><ul class='prod-desc-tab' style='margin: auto;'></ul><div class='prod-desc-tab-container'></div></div>");
3114            $(x).each(function(k, v){
3115                title = $(v).text();
3116
3117                if(k == 0){
3118                    body = $(x[0]).nextUntil(x[1]).clone();
3119                    $(".prod-desc-tab").append('<li class="tablinks active" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3120                    $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading d_active" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:block"><h2>'+title+'</h2></div>');
3121                    $("#"+k+"_desc_tab_content h2").after(body);
3122                }
3123                else if(k == x.length){
3124                    body = $(x[k]).nextAll().clone();
3125                    $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3126                    $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>');
3127                    $("#"+k+"_desc_tab_content h2").after(body);
3128                }
3129                else{
3130                    body = $(x[k]).nextUntil(x[k+1]).clone();
3131                    $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3132                    $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>');
3133                    $("#"+k+"_desc_tab_content h2").after(body);
3134                }
3135            });
3136            $(".product-description").hide();
3137        }
3138
3139    });
3140</script>
3140
3141<!-- /Snippet -->
3142<script>
3143
3144  /*
3145
3146    ------
3147    Events
3148    ------
3149
3150    pages/viewed
3151
3152    customers/signup
3153
3154    customers/login
3155
3156    products/searched
3157
3158    collections/viewed
3159
3160    products/viewed
3161
3162    products/shared
3163
3164    wishlists/item_added
3165
3166    carts/items_added
3167
3168    carts/viewed
3169
3170    carts/item_removed
3171
3172    checkouts/initiated
3173
3174    checkouts/shipping_info_added
3175
3176    checkouts/payment_info_added
3177
3178    checkouts/completed
3179
3180    orders/placed
3181
3182    orders/purchased
3183
3184    payments/captured
3185
3186    payments/failed
3187
3188  */
3189
3190  window.__latest_cart = window.__latest_cart || null;
3191
3192  const _selector = document.querySelector.bind(document),
3193        _selectorAll = document.querySelectorAll.bind(document)
3194
3195  document.addEventListener('DOMContentLoaded', (event) => {
3196
3197    const default_currency = getCookie("currency")
3198    const customer_id = window.__st.cid
3199    const template    = window.__st.p
3200
3201    onPageView()
3202
3203    //-----------------------//
3204    //        Configs        //
3205    //-----------------------//
3206
3207    window.dataLayer = window.dataLayer || []
3208
3209    Array.prototype.last = Array.prototype.last || function() {
3210      return this[this.length - 1] || null
3211    }
3212
3213    Array.prototype.first = Array.prototype.first || function() {
3214      return this[0] || null
3215    }
3216
3217    //----------------------//
3218    //       Triggers       //
3219    //----------------------//
3220
3221    const XHR = window.XMLHttpRequest
3222
3223    function xhr() {
3224
3225      const xhr = new XHR()
3226
3227      xhr.addEventListener("readystatechange", function() {
3228
3229        if(xhr.readyState != 4) return
3230
3231        try {
3232
3233          const response_url = xhr.responseURL
3234
3235          if (response_url.includes("cart/add")) {
3236
3237            window.__latest_cart = JSON.parse(xhr.response)
3238
3239            onCartItemsAdded() // ok
3240
3241          }
3242
3243          if (response_url.includes("cart/remove_item_quantity")) {
3244
3245            window.__latest_cart = JSON.parse(xhr.response)
3246
3247            onCartItemRemoved() // ok
3248
3249          }
3250
3251          if (response_url.includes("new_cart?retrieve=true")) {
3252
3253            result = JSON.parse(xhr.response)
3254
3255            if (result.cart) {
3256              window.__latest_cart = result.cart
3257            }
3258
3259          }
3260
3261        } catch(e) {
3262
3263          console.error(e)
3264
3265        }
3266
3267      }, false);
3268
3269      return xhr
3270
3271    }
3272
3273    window.XMLHttpRequest = xhr
3274
3275    switch(template) {
3276
3277      case 'cart': onCartView() // ok
3278      break
3279      case 'product': onProductView() // ok
3280      break
3281      case 'collection': onCollectionView() // ok
3282      break
3283      case 'blog': onBlogView()
3284      break
3285      case 'article': onArticleView()
3286      break
3287      case 'payment_completed': onOrderPlace()
3288      break
3289      case 'payment_fail': onPaymentFail()
3290      break
3291
3292    }
3293
3294    // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]')))
3295    if (_selector('form[action="/checkout/detail"]'))                            _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))})  // ok
3296    if (_selector('form[action="/checkout/shipping"]'))                          _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))})  // ok
3297    if (_selector('form[action="/account/register"]'))                           _selector('form[action="/account/register"]').addEventListener("submit", onSignUp)  // ok
3298    if (_selector('form[action="/account/login"]'))                              _selector('form[action="/account/login"]').addEventListener("submit", onLogin)  // ok
3299    if (_selector('form[action="/search"]'))                                     _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok
3300    if (_selector('#line-login-btn'))                                            _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok
3301    if (_selector('#PlaceOrder'))                                                _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))});  // ok
3302    if (_selector('#add_wishlist'))                                              _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok
3303    if (_selectorAll('a[href="/account/logout"]'))                               _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok
3304    if (_selector('.CartDrawerTrigger.cart-page-link'))                          _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok
3305    if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link'))    _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok
3306    if (_selectorAll('a[class^="share-"]'))                                      _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok
3307    if (_selectorAll('[name$="checkout"]'))                                      _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3308
3309    // For append elements
3310    const bodyMutationObserver = new MutationObserver(() => {
3311      if (_selector('#form__spc #PlaceOrder'))             _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok
3312      if (_selectorAll('[name$="checkout"]'))              _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3313    });
3314    bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true});
3315
3316    //------------------------------//
3317    //        Event handlers        //
3318    //------------------------------//
3319
3320    function onPageView() {
3321
3322      EasyStore.Event.dispatch('pages/viewed', {
3323        page: {
3324          type: template,
3325          title: document.title,
3326          description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null,
3327          url: location.href,
3328        }
3329      })
3330
3331    }
3332
3333    function onSignUp() {
3334
3335      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3336      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3337
3338      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3339
3340      let data = {}
3341
3342      if (email_regex.test(email_or_phone)) {
3343        data.method = 'email'
3344        data.email = email_or_phone
3345      }
3346
3347      if (phone_regex.test(email_or_phone)) {
3348        data.method = "phone"
3349        data.phone = email_or_phone
3350      }
3351
3352      if (!data.method) return
3353
3354      EasyStore.Event.dispatch('customers/signup', data)
3355
3356    }
3357
3358    function onLogin() {
3359
3360      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3361      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3362
3363      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3364
3365      let data = {}
3366
3367      if (email_regex.test(email_or_phone)) {
3368        data.method = 'email'
3369        data.email = email_or_phone
3370      }
3371
3372      if (phone_regex.test(email_or_phone)) {
3373        data.method = "phone"
3374        data.phone = email_or_phone
3375      }
3376
3377      if (!data.method) return
3378
3379      EasyStore.Event.dispatch('customers/login', data)
3380
3381    }
3382
3383    function onLineLogin() {
3384
3385      EasyStore.Event.dispatch('customers/login', { method: 'line' })
3386
3387    }
3388
3389    function onLogout() {
3390
3391      EasyStore.Event.dispatch('customers/logout', { customer_id })
3392
3393    }
3394
3395    function onBlogView() {
3396
3397      const blog = ""
3398
3399      EasyStore.Event.dispatch('blogs/viewed', { blog })
3400
3401    }
3402
3403    function onArticleView() {
3404
3405      const article = ""
3406
3407      EasyStore.Event.dispatch('articles/viewed', { article })
3408
3409    }
3410
3411    function onProductSearch() {
3412
3413      const query = _selector('input[name=q]').value
3414
3415      if (!query) return
3416
3417      EasyStore.Event.dispatch('products/searched', { query })
3418
3419    }
3420
3421    function onCollectionView() {
3422
3423      const collection = ""
3424
3425      EasyStore.Event.dispatch('collections/viewed', { collection })
3426
3427    }
3428
3429    function onProductView() {
3430
3431      const product = ""
3432
3433      EasyStore.Event.dispatch("products/viewed", { product })
3434
3435    }
3436
3437    function onProductShare(el) {
3438
3439      const product = ""
3440
3441      const channel = el.getAttribute("class").split("-").last()
3442
3443      EasyStore.Event.dispatch('products/shared', { product, channel })
3444
3445    }
3446
3447    function onWishlistItemAdded() {
3448
3449      let product  = ""
3450      const quantity = _selector("#Quantity").value
3451
3452      EasyStore.Event.dispatch('wishlists/item_added', { product })
3453
3454    }
3455
3456    async function onCartItemsAdded() {
3457
3458      const cart = await getCart()
3459
3460      if(cart && cart.items != undefined && cart.items.length > 0) {
3461
3462        EasyStore.Event.dispatch('carts/item_added', { cart })
3463
3464      }
3465
3466    }
3467
3468    async function onCartView() {
3469
3470      const cart = await getCart()
3471
3472      EasyStore.Event.dispatch('carts/viewed', { cart })
3473
3474    }
3475
3476    async function onCartItemRemoved() {
3477
3478      const cart = await getCart()
3479
3480      cart.items = []
3481
3482      if(cart) {
3483
3484        EasyStore.Event.dispatch('carts/item_removed', { cart })
3485
3486      }
3487
3488    }
3489
3490    async function onCheckoutInitiate() {
3491
3492      const cart = await getCart()
3493
3494      EasyStore.Event.dispatch('checkouts/initiated', { cart })
3495
3496    }
3497
3498    async function onShippingInfoAdded(form) {
3499      let checkout = getCheckout()
3500
3501      let form_data = {}
3502      new FormData(form).forEach((value, key) => form_data[key] = value)
3503
3504      let shipping_tier = null
3505
3506      if (form_data.type && form_data.type.startsWith("r_pickup")) {
3507        shipping_tier = `Pickup - ${form_data.pick_location}`
3508      }
3509
3510      if (form_data.s_id) {
3511        shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name")
3512      }
3513
3514      if (!shipping_tier) return
3515
3516      EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier })
3517
3518    }
3519
3520    async function onPaymentInfoAdded(form) {
3521
3522      let checkout = getCheckout()
3523
3524      let payment_type = new FormData(form).get('payment_method')
3525
3526      EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type })
3527
3528    }
3529
3530    async function onOrderPlace() {
3531
3532      let cart_token  = getCookie("cart_js")
3533      let previous_cart_token = getCookie("previous_cart_ga4_js")
3534
3535      if (previous_cart_token && previous_cart_token == cart_token) {
3536        // Prevent duplicate purchase tracking
3537        return
3538      }
3539
3540      let order = getOrder()
3541
3542      EasyStore.Event.dispatch('orders/placed', { order })
3543
3544      if(order.is_manual_payment) {
3545
3546        EasyStore.Event.dispatch('orders/purchased', { order })
3547
3548      }
3549
3550      const last_transaction = order.transactions.last()
3551
3552      if (last_transaction.status) {
3553
3554        EasyStore.Event.dispatch('orders/purchased', { order })
3555        EasyStore.Event.dispatch('payments/captured', { order })
3556
3557      }
3558
3559    }
3560
3561    async function onPaymentFail() {
3562
3563      const order = getOrder()
3564
3565      EasyStore.Event.dispatch('payments/failed', { order })
3566
3567    }
3568
3569    async function onCheckoutComplete(form) {
3570
3571      onPaymentInfoAdded(form)
3572
3573      const checkout = getCheckout()
3574
3575      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3576
3577    }
3578
3579    async function onSinglePageCheckout() {
3580
3581      // let checkout = $("[data-app-checkout]").data("app-checkout")
3582
3583      let checkout = getCheckout()
3584
3585      // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text()
3586      const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML
3587
3588      const shipping_method = _selector("#delivery_method").value
3589
3590      let shipping_tier = null
3591      let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content')
3592      if (shipping_method == "shipping") {
3593        shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML
3594      }
3595
3596      if (shipping_method == "pickup") {
3597        shipping_tier = app_spc_customer_info_label[0].innerHTML
3598      }
3599
3600      if (shipping_tier) {
3601
3602        EasyStore.Event.dispatch('checkouts/shipping_info_added', {
3603          checkout,
3604          shipping_tier,
3605        })
3606
3607      }
3608
3609      if (payment_type) {
3610
3611        EasyStore.Event.dispatch('checkouts/payment_info_added', {
3612          checkout,
3613          payment_type,
3614        })
3615
3616      }
3617
3618      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3619
3620    }
3621
3622  })
3623
3624
3625  //-----------------------//
3626  //       Functions       //
3627  //-----------------------//
3628
3629  function getCookie(name) {
3630
3631    name += "="
3632
3633    decodedCookie = decodeURIComponent(document.cookie)
3634
3635    ca = decodedCookie.split(";")
3636
3637    for(i = 0; i < ca.length; i++) {
3638      c = ca[i]
3639      while (c.charAt(0) == " ") {
3640        c = c.substring(1)
3641      }
3642      if (c.indexOf(name) == 0) {
3643        return c.substring(name.length, c.length)
3644      }
3645    }
3646
3647    return ""
3648
3649  }
3650
3651  const parsePrice = price => {
3652    if(typeof price === 'string') {
3653      return parseFloat(price.split(',').join(''))
3654    }
3655
3656    return price
3657  }
3658
3659  const requestCart = async (method, data) => {
3660
3661  let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}})
3662    result = await response.json()
3663
3664    return result.cart
3665
3666  }
3667  const getCart = async (latest = false) => {
3668
3669    let cart = window.__latest_cart
3670
3671    const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length)
3672
3673    if(latest || cart_invalid) {
3674      cart = await requestCart()
3675    }
3676
3677    cart.items = cart.items || []
3678
3679    return mapCart(cart)
3680
3681  }
3682
3683  const getCheckout = async () => {
3684    mapCheckout(window.__latest_cart || await requestCart())
3685  }
3686
3687  const getOrder = async () => {
3688    mapOrder(window.__latest_cart || await requestCart())
3689  }
3690
3691  //-----------------------//
3692  //        Mappers        //
3693  //-----------------------//
3694
3695  const fallbackAttribute = (object, attribute) => {
3696
3697    if(!Array.isArray(attribute)) {
3698      attribute = [attribute]
3699    }
3700
3701    let final_value = null
3702
3703    do {
3704
3705      final_value = object[attribute.shift()]
3706
3707    } while(!final_value && attribute.length)
3708
3709    return final_value
3710
3711  }
3712
3713  const map = (object, mapper) => {
3714
3715    const newObject = {}
3716
3717    for(const key in mapper) {
3718
3719      // Handle different keys between new and old format
3720      newObject[key] = fallbackAttribute(object, mapper[key])
3721
3722      // Cast price to float
3723      if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) {
3724        newObject[key] = parsePrice(newObject[key])
3725      }
3726
3727      if(newObject[key] === undefined) {
3728        delete newObject[key]
3729      }
3730
3731    }
3732
3733    return newObject
3734
3735  }
3736
3737  const mapCart = cart => {
3738
3739    const oldCart = cart
3740
3741    const mapper = {
3742      id: 'id',
3743      currency: 'currency',
3744      item_count: 'item_count',
3745      items: 'items',
3746      total_price: 'total_price',
3747      latest_items: 'latest_items'
3748    }
3749
3750    cart = map(cart, mapper)
3751
3752    const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || []))
3753
3754    cart.discount_applications = discounts.map(discount => ({
3755      title: discount.voucher_code || null,
3756      value: parsePrice(discount.amount),
3757    }))
3758
3759    cart.original_total_price = cart.items.length
3760    ? cart.items
3761      .map(item => item.original_price)
3762      .reduce((sum, price) => sum + price)
3763    : 0
3764
3765    cart.total_discount = cart.discount_applications.length
3766    ? cart.discount_applications
3767      .map(discount => parsePrice(discount.value))
3768      .reduce((sum, value) => sum + value)
3769    : 0
3770
3771    cart.items = cart.items.map(item => mapLineItem(item))
3772
3773    return cart
3774
3775  }
3776
3777  const mapCheckout = checkout => {
3778
3779    const mapper = {
3780      note: 'note',
3781      attributes: 'note_attributes',
3782      billing_address: 'billing_address',
3783      currency: 'currency',
3784      customer_id: 'customer_id',
3785      discounts_amount: 'total_discount',
3786      id: 'id',
3787      line_items: 'order_item',
3788      order_number: 'order_number',
3789      shipping_address: 'shipping_address',
3790      shipping_price: 'shipping_tax',
3791      shipping_method: 'shipping_method_name',
3792      tax_price: 'total_tax',
3793    }
3794
3795    checkout = map(checkout, mapper)
3796
3797    checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required)
3798
3799    checkout.line_items = checkout.line_items.map(item => mapLineItem(item))
3800
3801    return checkout
3802
3803  }
3804
3805  const mapOrder = order => {
3806
3807    const mapper = {
3808      attributes: 'note_attributes',
3809      billing_address: 'billing_address',
3810      cancelled: 'is_cancelled',
3811      cancelled_at: 'cancelled_at',
3812      created_at: 'created_at',
3813      customer_id: 'customer_id',
3814      // discount_applications: 'discount_applications',
3815      email: 'email',
3816      financial_status: 'financial_status',
3817      fulfillment_status: 'fulfillment_status',
3818      line_items: 'order_item',
3819      note: 'note',
3820      order_number: 'order_number',
3821      phone: 'phone',
3822      shipping_address: 'shipping_address',
3823      shipping_methods: 'shipping_methods',
3824      shipping_price: 'total_shipping',
3825      subtotal_price: 'subtotal_price',
3826      // tax_lines: 'tax_lines',
3827      tax_price: 'total_tax',
3828      total_discounts: 'total_discount',
3829      total_net_amount: 'total_amount_include_transaction',
3830      total_price: 'total_price',
3831      transactions: 'transaction_records',
3832      is_manual_payment: 'is_manual_payment',
3833    }
3834
3835    order.email = order.billing_address.email
3836    order.phone = order.billing_address.phone
3837    order.shipping_method = order.shipping_method_name
3838
3839    order = map(order, mapper)
3840
3841    order.line_items = order.line_items.map(item => mapLineItem(item))
3842    order.transactions = order.transactions.map(transaction => mapTransaction(transaction))
3843
3844    return order
3845
3846  }
3847
3848  const mapLineItem = line_item => {
3849
3850    const old_line_item = line_item
3851
3852    const mapper = {
3853      final_price: 'price',
3854      image: 'img_url',
3855      message: 'message',
3856      original_line_price: 'original_line_price',
3857      original_price: 'original_price',
3858      properties: 'properties',
3859      quantity: 'quantity',
3860      requires_shipping: 'shipping_required',
3861      sku: 'sku',
3862      taxable: 'taxable',
3863      title: 'product_name',
3864      product_name: 'product_name',
3865      url: 'url',
3866      product_id: 'product_id',
3867      variant_id: 'variant_id',
3868      id: ['id', 'i_id'],
3869    }
3870
3871    line_item = map(line_item, mapper)
3872
3873    line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null
3874    line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null
3875    line_item.image      = line_item.image || (old_line_item.image && old_line_item.image.url) || null
3876
3877    return line_item
3878
3879  }
3880
3881  const mapTransaction = transaction => {
3882
3883    const mapper = {
3884      amount: 'amount',
3885      created_at: 'created_at',
3886      gateway: 'gateway_type',
3887      id: 'id',
3888      status: 'status',
3889    }
3890
3891    transaction = map(transaction, mapper)
3892
3893    return transaction
3894
3895  }
3896
3897
3898</script>
3898
3899
3900</body>
3901</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.