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 å¿ç«¥ä¸»æ¥å¦ææ¡ – æ¿è§ç³ä¹¦å Cornerstone Book Centre 20 </title> 21 22 23 24 <!-- Social meta ================================================== --> 25 26 27 <meta property="og:type" content="blog"> 28 <meta property="og:title" content="å¿ç«¥ä¸»æ¥å¦ææ¡"> 29 <meta property="og:url" content="https://www.jbcornerstone.com/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡"> 30 31 32<meta property="og:description" content="ä¸åæä¼é æï¼æä¾åéç讲ååå¹è®ï¼åºçåå®ååç±»å±çµä¹¦ç±ï¼å¦å©å§»/å®¶åºæè²ï¼å¿ç«¥å±çµä¹¦ç±ï¼å¿çµå±å¿ï¼ç ç»ç¥å¦ï¼ä¿¡ä»°çæ´»ï¼å®£æçã"> 33<meta property="og:site_name" content="æ¿è§ç³ä¹¦å Cornerstone Book Centre"> 34 35 36 37 <meta name="twitter:card" content="summary"> 38 39 40 41 <meta name="twitter:site" content="@"> 42 43 44 <meta name="twitter:title" content="å¿ç«¥ä¸»æ¥å¦ææ¡"> 45 <meta name="twitter:description" content=""> 46 47 48 49 50 <!-- Helpers ================================================== --> 51 <link rel="canonical" href="https://www.jbcornerstone.com/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡"> 52 <meta name="viewport" content="width=device-width,initial-scale=1"> 53 <meta name="theme-color" content="#FAF6E9"> 54 55
55<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
55 56 57 <!-- Header hook for plugins ================================================== --> 58 59<!-- ScriptTags -->
60<script>window.__st={p: "blog",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
60<script src='/assets/events.js'></script>
60<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>
60<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>
60 61<!-- /ScriptTags --> 62 63 64 65
65<script src="https://store-themes.easystore.co/382053/themes/308896/assets/global.js?t=1790699554" defer="defer"></script>
65 66 67 68 69
69<script> 70 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 71 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 72 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 73 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 74 75 ga('create', '', 'auto','myTracker'); 76 ga('myTracker.send', 'pageview'); 77 78 </script>
78 79 80
80<script src="/assets/storefront.js?id=1d419de2011a5572c98b" type="text/javascript" ></script>
80 81 82 83 <!-- CSS ================================================== --> 84 <style> 85 @font-face { 86 font-family: 'Abhaya Libre'; 87 font-style: normal; 88 font-weight: regular; 89 src: local('Abhaya Libre regular'), local('Abhaya Libre-regular'), url(https://fonts.gstatic.com/s/abhayalibre/v6/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf) format('truetype'); 90 } 91 92 @font-face { 93 font-family: 'Abhaya Libre'; 94 font-style: normal; 95 font-weight: regular; 96 src: local('Abhaya Libre regular'), local('Abhaya Libre-regular'), url(https://fonts.gstatic.com/s/abhayalibre/v6/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf) format('truetype'); 97 } 98 99 :root { 100 --font-body-family: 'Abhaya Libre', serif; 101 --font-body-style: normal; 102 --font-body-weight: 400; 103 104 --font-heading-family: 'Abhaya Libre', serif; 105 --font-heading-style: normal; 106 --font-heading-weight: 300; 107 108 --color-heading-text: 0,0,0; 109 --color-base-text: 0,0,0; 110 --color-base-background-1: 255,255,255; 111 --color-base-background-2: 255,255,255; 112 113 --color-base-solid-button-labels: 8,0,0; 114 --color-base-outline-button-labels: 255,255,255; 115 116 --color-base-accent-1: 250,246,233; 117 --color-base-accent-2: 250,246,233; 118 --payment-terms-background-color: 255,255,255; 119 120 --gradient-base-background-1: 255,255,255; 121 --gradient-base-background-2: 255,255,255; 122 --gradient-base-accent-1: 250,246,233; 123 --gradient-base-accent-2: 250,246,233; 124 125 --page-width: 120rem; 126 } 127 128 *, 129 *::before, 130 *::after { 131 box-sizing: inherit; 132 } 133 134 html { 135 box-sizing: border-box; 136 font-size: 62.5%; 137 height: 100%; 138 } 139 140 body { 141 display: grid; 142 grid-template-rows: auto auto 1fr auto; 143 grid-template-columns: 100%; 144 min-height: 100%; 145 margin: 0; 146 font-size: 1.5rem; 147 letter-spacing: 0.06rem; 148 line-height: 1.8; 149 font-family: var(--font-body-family); 150 font-style: var(--font-body-style); 151 font-weight: var(--font-body-weight); 152 153 } 154 155 @media screen and (min-width: 750px) { 156 body { 157 font-size: 1.6rem; 158 } 159 } 160 </style> 161 162 <link href="https://store-themes.easystore.co/382053/themes/308896/assets/base.css?t=1790699554" rel="stylesheet" type="text/css" media="screen" /> 163 164 165 166<!-- Snippet:global/head: Shopee Malaysia --> 167<link type="text/css" rel="stylesheet" href="https://apps.easystore.co/assets/css/marketplace/main.css?v1.7"> 168<!-- /Snippet --> 169 170<!-- Snippet:global/head: Product Star Rating ååè©å¹ -->
171<script src="https://apps.easystore.co/assets/js/star-rating/main.js"></script>
171 172 <link rel="stylesheet" href="https://apps.easystore.co/assets/css/star-rating/main.css"> 173<!-- /Snippet --> 174 175 176
176<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
176 177</head> 178 179<body id="---------------------" class="template-blog" > 180 181 182<!-- Snippet:global/body_start: Console Extension --> 183<div id='es_console' style='display: none;'>382053</div> 184<!-- /Snippet --> 185 186 187 <style> 188 header { 189 --logo-width: 80px; 190 } 191 .header-wrapper, 192 .header-wrapper .list-menu--disclosure, 193 .header-wrapper .search-modal{ 194 background-color: #FFFFFF; 195 } 196 .header-wrapper .search-modal .field__input{ 197 background-color: rgb(var(--color-background)); 198 } 199 .header-wrapper summary .icon-caret, 200 .header-wrapper .header__menu-item a, 201 .header-wrapper .list-menu__item, 202 .header-wrapper .link--text{ 203 color: #000000; 204 } 205 206 .search-modal__form{ 207 position: relative; 208 } 209 210 .dropdown { 211 display: none; 212 position: absolute; 213 top: 100%; 214 left: 0; 215 width: 100%; 216 padding: 5px 0; 217 background-color: #fff; 218 color:#000; 219 z-index: 1000; 220 border-bottom-left-radius: 15px; 221 border-bottom-right-radius: 15px; 222 border: 1px solid rgba(var(--color-foreground), 1); 223 border-top: none; 224 overflow-x: hidden; 225 overflow-y: auto; 226 max-height: 350px; 227 } 228 229 .dropdown-item { 230 padding: 0.4rem 2rem; 231 cursor: pointer; 232 line-height: 1.4; 233 overflow: hidden; 234 text-overflow: ellipsis; 235 white-space: nowrap; 236 } 237 238 .dropdown-item:hover{ 239 background-color: #f3f3f3; 240 } 241 242 .search__input.is-focus{ 243 border-radius: 15px; 244 border-bottom-left-radius: 0; 245 border-bottom-right-radius: 0; 246 border: 1px solid rgba(var(--color-foreground), 1); 247 border-bottom: none; 248 box-shadow: none; 249 } 250 251 .clear-all { 252 text-align: right; 253 padding: 0 2rem 0.2rem; 254 line-height: 1; 255 font-size: 70%; 256 margin-bottom: -2px; 257 } 258 259 .clear-all:hover{ 260 background-color: #fff; 261 } 262 263 .search-input-focus .easystore-section-header-hidden{ 264 transform: none; 265 } 266 .referral-notification { 267 position: absolute; 268 top: 100%; 269 right: 0; 270 background: white; 271 border: 1px solid #e0e0e0; 272 border-radius: 8px; 273 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 274 width: 280px; 275 z-index: 1000; 276 padding: 16px; 277 margin-top: 8px; 278 font-size: 14px; 279 line-height: 1.4; 280 } 281 282 .referral-notification::before { 283 content: ''; 284 position: absolute; 285 top: -8px; 286 right: 20px; 287 width: 0; 288 height: 0; 289 border-left: 8px solid transparent; 290 border-right: 8px solid transparent; 291 border-bottom: 8px solid white; 292 } 293 294 .referral-notification::after { 295 content: ''; 296 position: absolute; 297 top: -9px; 298 right: 20px; 299 width: 0; 300 height: 0; 301 border-left: 8px solid transparent; 302 border-right: 8px solid transparent; 303 border-bottom: 8px solid #e0e0e0; 304 } 305 306 .referral-notification h4 { 307 margin: 0 0 8px 0; 308 color: #2196F3; 309 font-size: 16px; 310 font-weight: 600; 311 } 312 313 .referral-notification p { 314 margin: 0 0 12px 0; 315 color: #666; 316 } 317 318 .referral-notification .referral-code { 319 background: #f5f5f5; 320 padding: 8px; 321 border-radius: 4px; 322 font-family: monospace; 323 font-size: 13px; 324 text-align: center; 325 margin: 8px 0; 326 border: 1px solid #ddd; 327 } 328 329 .referral-notification .close-btn { 330 position: absolute; 331 top: 8px; 332 right: 8px; 333 background: none; 334 border: none; 335 font-size: 18px; 336 color: #999; 337 cursor: pointer; 338 padding: 0; 339 width: 20px; 340 height: 20px; 341 line-height: 1; 342 } 343 344 .referral-notification .close-btn:hover { 345 color: #333; 346 } 347 348 .referral-notification .action-btn { 349 background: #2196F3; 350 color: white; 351 border: none; 352 padding: 8px 16px; 353 border-radius: 4px; 354 cursor: pointer; 355 font-size: 12px; 356 margin-right: 8px; 357 margin-top: 8px; 358 } 359 360 .referral-notification .action-btn:hover { 361 background: #1976D2; 362 } 363 364 .referral-notification .dismiss-btn { 365 background: transparent; 366 color: #666; 367 border: 1px solid #ddd; 368 padding: 8px 16px; 369 border-radius: 4px; 370 cursor: pointer; 371 font-size: 12px; 372 margin-top: 8px; 373 } 374 375 .referral-notification .dismiss-btn:hover { 376 background: #f5f5f5; 377 } 378 .referral-modal__dialog { 379 transform: translate(-50%, 0); 380 transition: transform var(--duration-default) ease, visibility 0s; 381 z-index: 10000; 382 position: fixed; 383 top: 20vh; 384 left: 50%; 385 width: 100%; 386 max-width: 350px; 387 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 388 border-radius: 12px; 389 background-color: #fff; 390 color: #000; 391 padding: 20px; 392 text-align: center; 393 } 394 395 .modal-overlay.referral-modal-overlay { 396 position: fixed; 397 top: 0; 398 left: 0; 399 width: 100%; 400 height: 100%; 401 background-color: rgba(0, 0, 0, 0.7); 402 z-index: 2001; 403 display: block; 404 opacity: 1; 405 transition: opacity var(--duration-default) ease, visibility 0s; 406 } 407</style> 408 409<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'"> 410<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'"> 411<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'"> 412<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'"> 413
414<script src="https://store-themes.easystore.co/382053/themes/308896/assets/cart-notification.js?t=1790699554" defer="defer"></script>
vendor: 1 bytes, line 414
414
415<script src="https://store-themes.easystore.co/382053/themes/308896/assets/details-modal.js?t=1790699554" defer="defer"></script>
415 416 417<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 418 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 419 <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"/> 420 </symbol> 421 422 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 423 <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"> 424 </symbol> 425</svg> 426 427 428<div id="easystore-section-header"> 429 <sticky-header class="header-wrapper header-wrapper--border-bottom"> 430 <header class="header header--top-center page-width header--has-menu" itemscope itemtype="http://schema.org/Organization"> 431 <header-drawer data-breakpoint="tablet"> 432 <details class="menu-drawer-container menu-opening"> 433 <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"> 434 <span> 435 436 437 438 <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> 439 440 441 442 443 444 445 <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> 446 447 448 449 </span> 450 </summary> 451 <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1"> 452 <div class="menu-drawer__inner-container"> 453 <div class="menu-drawer__navigation-container"> 454 <nav class="menu-drawer__navigation"> 455 <ul class="menu-drawer__menu list-menu" role="list"> 456 457 458 459 <li> 460 <a href="/" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 461 Main Page 主页 462 </a> 463 </li> 464 465 466 467 468 <li> 469 <a href="/pages/about-us-å ³äºæä»¬" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 470 About Us å ³äºæä»¬ 471 </a> 472 </li> 473 474 475 476 477 <li> 478 <a href="/collections/new-arrival" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 479 New Arrival æ°å 480 </a> 481 </li> 482 483 484 485 486 487 <li> 488 <details> 489 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 490 <a href="/collections/all" class="link--text list-menu__item menu-drawer__menu-item"> 491 Collections ä¹¦ç® 492 </a> 493 494 495 496 <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> 497 498 499 500 501 502 503 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 504 <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> 505 </svg> 506 507 508 509 </summary> 510 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 511 <div class="menu-drawer__inner-submenu"> 512 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 513 514 515 516 <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> 517 518 519 520 Collections ä¹¦ç® 521 </button> 522 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 523 524 525 526 <li> 527 <a href="/collections/åä¼ åºå" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 528 Partners Training Book åä¼ åºç 529 </a> 530 </li> 531 532 533 534 535 536 <li> 537 <details> 538 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 539 <a href="/collections/chinese-books-䏿书ç±" class="link--text list-menu__item menu-drawer__menu-item"> 540 Chinese Books ä¸æä¹¦ç± 541 </a> 542 543 544 545 <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> 546 547 548 549 550 551 552 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 553 <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> 554 </svg> 555 556 557 558 </summary> 559 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 560 <div class="menu-drawer__inner-submenu"> 561 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 562 563 564 565 <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> 566 567 568 569 Chinese Books ä¸æä¹¦ç± 570 </button> 571 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 572 573 574 575 <li> 576 <a href="/collections/çå½é å°±" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 577 Spiritual Life çå½é å°± 578 </a> 579 </li> 580 581 582 583 584 585 <li> 586 <details> 587 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 588 <a href="/collections/å´æç¤¼ä»ª" class="link--text list-menu__item menu-drawer__menu-item"> 589 Bible Study å£ç»ç ç©¶ 590 </a> 591 592 593 594 <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> 595 596 597 598 599 600 601 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 602 <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> 603 </svg> 604 605 606 607 </summary> 608 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 609 <div class="menu-drawer__inner-submenu"> 610 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 611 612 613 614 <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> 615 616 617 618 Bible Study å£ç»ç ç©¶ 619 </button> 620 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 621 622 <li> 623 <a href="/collections/妿¯ç ç©¶" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 624 麦ç§å£ç»æ³¨é 625 </a> 626 </li> 627 628 </ul> 629 </div> 630 </div> 631 </details> 632 </li> 633 634 635 636 637 <li> 638 <a href="/collections/çµå½æé¿" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 639 Devotions and Prayers çµä¿®ä¸ç¥·å 640 </a> 641 </li> 642 643 644 645 646 <li> 647 <a href="/collections/ç¥å¦ä¸æä¹" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 648 Theology and Doctrine ç¥å¦ä¸æä¹ 649 </a> 650 </li> 651 652 653 654 655 <li> 656 <a href="/collections/è§è¯ä¸ä¼ è®°" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 657 Testimony and Missionary è§è¯ä¸å®£æ 658 </a> 659 </li> 660 661 662 663 664 <li> 665 <a href="/collections/æç§å¦" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 666 Pastoral Studies æç§å¦ 667 </a> 668 </li> 669 670 671
671 672 673 <li> 674 <a href="/collections/管çä¸é¢å¯¼" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 675 Management and Leadership 管çä¸é¢å¯¼ 676 </a> 677 </li> 678 679 680 681 682 <li> 683 <a href="/collections/è¾ å¯¼ç³»å" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 684 Psychological Counseling å¿çè¾ å¯¼ 685 </a> 686 </li> 687 688 689 690 691 <li> 692 <a href="/collections/åºç£ææè²" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 693 Parenting 亲åæè² 694 </a> 695 </li> 696 697 698 699 700 <li> 701 <a href="/collections/æç±-å©å§»ä¸å®¶åº" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 702 Love, Marriage & Family æç±ãå©å§»ä¸å®¶åº 703 </a> 704 </li> 705 706 707 708 709 <li> 710 <a href="/collections/åå²ä¸æå" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 711 History and Culture åå²ä¸æå 712 </a> 713 </li> 714 715 716 717 </ul> 718 </div> 719 </div> 720 </details> 721 </li> 722 723 724 725 726 727 <li> 728 <details> 729 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 730 <a href="/collections/礼åç³»å" class="link--text list-menu__item menu-drawer__menu-item"> 731 Gifts & Souvenirs 饰å 732 </a> 733 734 735 736 <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> 737 738 739 740 741 742 743 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 744 <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> 745 </svg> 746 747 748 749 </summary> 750 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 751 <div class="menu-drawer__inner-submenu"> 752 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 753 754 755 756 <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> 757 758 759 760 Gifts & Souvenirs 饰å 761 </button> 762 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 763 764 765 766 <li> 767 <a href="/collections/fashion-accessories" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 768 Fashion & Accessories 769 </a> 770 </li> 771 772 773 774 775 <li> 776 <a href="/collections/ç¦é³åå¼ " class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 777 Gospel Leaflet ç¦é³åå¼ 778 </a> 779 </li> 780 781 782 783 784 <li> 785 <a href="/collections/çå¾-plaque" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 786 Plaque and Cross çå¾åååæ¶ 787 </a> 788 </li> 789 790 791 792 793 <li> 794 <a href="/collections/å饰-pendant" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 795 Pendant å饰 796 </a> 797 </li> 798 799 800 801 802 <li> 803 <a href="/collections/æ¡æ-table-ornament" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 804 Table Ornamentæ¡æ 805 </a> 806 </li> 807 808 809 810 811 <li> 812 <a href="/collections/纸å¶å-paper-product" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 813 Paper Product 纸å¶å 814 </a> 815 </li> 816 817 818 819 820 <li> 821 <a href="/collections/magnet-gifts-ç£é礼å" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 822 Magnet and Electronic ç£éåçµåå 823 </a> 824 </li> 825 826 827 828 829 <li> 830 <a href="/collections/wall-frame-æ¡" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 831 Wall Frame æ¡ 832 </a> 833 </li> 834 835 836 837 </ul> 838 </div> 839 </div> 840 </details> 841 </li> 842 843 844 845 846 847 <li> 848 <details> 849 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 850 <a href="/collections/å£ç»ç³»å" class="link--text list-menu__item menu-drawer__menu-item"> 851 Bible å£ç» 852 </a> 853 854 855 856 <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> 857 858 859 860 861 862 863 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 864 <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> 865 </svg> 866 867 868 869 </summary> 870 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 871 <div class="menu-drawer__inner-submenu"> 872 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 873 874 875 876 <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> 877 878 879 880 Bible å£ç» 881 </button> 882 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 883 884 885 886 887 <li> 888 <details> 889 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 890 <a href="/collections/chinese-bible-䏿å£ç»" class="link--text list-menu__item menu-drawer__menu-item"> 891 Chinese Bible 䏿å£ç» 892 </a> 893 894 895 896 <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=
896"currentColor"/></svg> 897 898 899 900 901 902 903 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 904 <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> 905 </svg> 906 907 908 909 </summary> 910 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 911 <div class="menu-drawer__inner-submenu"> 912 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 913 914 915 916 <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> 917 918 919 920 Chinese Bible 䏿å£ç» 921 </button> 922 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 923 924 <li> 925 <a href="/collections/å忬-cuv" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 926 å忬 927 </a> 928 </li> 929 930 <li> 931 <a href="/collections/æ°è¯æ¬" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 932 æ°è¯æ¬ 933 </a> 934 </li> 935 936 <li> 937 <a href="/collections/æ°æ®åè¯æ¬" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 938 æ°æ®åè¯æ¬ 939 </a> 940 </li> 941 942 <li> 943 <a href="/collections/å ¶ä»" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 944 å ¶ä» 945 </a> 946 </li> 947 948 </ul> 949 </div> 950 </div> 951 </details> 952 </li> 953 954 955 956 957 <li> 958 <a href="/collections/åè¯-bilingual" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 959 Biligual Bibles åè¯å£ç» 960 </a> 961 </li> 962 963 964 965 966 <li> 967 <a href="/collections/children-bible-å¿ç«¥å£ç»" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 968 Children Bible å¿ç«¥å£ç» 969 </a> 970 </li> 971 972 973 974 975 <li> 976 <a href="/collections/english-bible-è±è¯å£ç»" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 977 English Bible è±è¯å£ç» 978 </a> 979 </li> 980 981 982 983 </ul> 984 </div> 985 </div> 986 </details> 987 </li> 988 989 990 991 992 993 <li> 994 <details> 995 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 996 <a href="/collections/å¿ç«¥è¯»ç©" class="link--text list-menu__item menu-drawer__menu-item"> 997 Children & Teens Book | å¿ç«¥&å°å¹´ä¹¦ç± 998 </a> 999 1000 1001 1002 <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> 1003 1004 1005 1006 1007 1008 1009 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1010 <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> 1011 </svg> 1012 1013 1014 1015 </summary> 1016 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1017 <div class="menu-drawer__inner-submenu"> 1018 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1019 1020 1021 1022 <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> 1023 1024 1025 1026 Children & Teens Book | å¿ç«¥&å°å¹´ä¹¦ç± 1027 </button> 1028 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1029 1030 1031 1032 1033 <li> 1034 <details> 1035 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1036 <a href="/collections/children-book" class="link--text list-menu__item menu-drawer__menu-item"> 1037 Children Book å¿ç«¥ä¹¦ç± 1038 </a> 1039 1040 1041 1042 <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> 1043 1044 1045 1046 1047 1048 1049 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1050 <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> 1051 </svg> 1052 1053 1054 1055 </summary> 1056 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1057 <div class="menu-drawer__inner-submenu"> 1058 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1059 1060 1061 1062 <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> 1063 1064 1065 1066 Children Book å¿ç«¥ä¹¦ç± 1067 </button> 1068 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1069 1070 <li> 1071 <a href="/collections/å£ç»-å£ç»æ äº-bible-bible-stories" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 1072 English Bible Stories è±è¯å£ç»æ äº 1073 </a> 1074 </li> 1075 1076 <li> 1077 <a href="/collections/ç»æ¬-picture-book" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 1078 Picture Book ç»æ¬ 1079 </a> 1080 </li> 1081 1082 <li> 1083 <a href="/collections/å£ç»bible-å£ç»æ äº-bible-stories" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 1084 Chinese Bible Stories 䏿å£ç»æ äº 1085 </a> 1086 </li> 1087 1088 </ul> 1089 </div> 1090 </div> 1091 </details> 1092 </li> 1093 1094 1095 1096 1097 <li> 1098 <a href="/collections/éå°å¹´ä¹¦ç±-teen-s-book" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1099 Teen's Book éå°å¹´ä¹¦ç± 1100 </a> 1101 </li> 1102 1103 1104 1105 </ul> 1106 </div> 1107 </div> 1108 </details> 1109 </li> 1110 1111 1112 1113 1114 1115 <li> 1116 <details> 1117 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" a
1117ria-expanded="false" aria-controls="link-Bags"> 1118 <a href="/collections/æ¹æ³è®º" class="link--text list-menu__item menu-drawer__menu-item"> 1119 Training è®ç»ææ 1120 </a> 1121 1122 1123 1124 <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> 1125 1126 1127 1128 1129 1130 1131 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1132 <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> 1133 </svg> 1134 1135 1136 1137 </summary> 1138 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1139 <div class="menu-drawer__inner-submenu"> 1140 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1141 1142 1143 1144 <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> 1145 1146 1147 1148 Training è®ç»ææ 1149 </button> 1150 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1151 1152 1153 1154 <li> 1155 <a href="/collections/主æ¥å¦sunday-school-é¨å¾è®ç»discipleship-training" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1156 Sunday School 主æ¥å¦ / é¨å¾è®ç» Discipleship Training 1157 </a> 1158 </li> 1159 1160 1161 1162 </ul> 1163 </div> 1164 </div> 1165 </details> 1166 </li> 1167 1168 1169 1170 1171 <li> 1172 <a href="/collections/æ¡æ¸¸ä¸æ¸¸æ" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1173 Board Games and Games æ¡æ¸¸ä¸æ¸¸æ 1174 </a> 1175 </li> 1176 1177 1178 1179 1180 <li> 1181 <a href="/collections/new-arrival" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1182 New Arrival æ°å 1183 </a> 1184 </li> 1185 1186 1187 1188 1189 <li> 1190 <a href="/collections/add-on" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1191 Add on 1192 </a> 1193 </li> 1194 1195 1196 1197 </ul> 1198 </div> 1199 </div> 1200 </details> 1201 </li> 1202 1203 1204 1205 1206 <li> 1207 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 1208 Lesson Plan 主æ¥å¦ææ¡ 1209 </a> 1210 </li> 1211 1212 1213 1214 1215 <li> 1216 <a href="https://www.jbcornerstone.com/account/register" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 1217 Create an account 注åè´¦å· 1218 </a> 1219 </li> 1220 1221 1222 </ul> 1223 </nav> 1224 1225 <div class="menu-drawer__utility-links"> 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5"> 1237 1238 1239 1240 <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> 1241 1242 1243 1244 1245 Login ç»å ¥ 1246 </a> 1247 1248 <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5"> 1249 1250 1251 1252 1253 <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"> 1254 <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> 1255 </svg> 1256 1257 1258 1259 Create account åå»ºè´¦å· 1260 </a> 1261 1262 1263 1264 </div> 1265 </div> 1266 </div> 1267 </div> 1268 </details> 1269 </header-drawer> 1270 1271 1272 <a href="/" class="header__heading-link link link--text focus-inset" itemprop="url"> 1273 <img src="https://cdn.store-assets.com/s/382053/f/11094175.png" class="header__heading-logo" alt="æ¿è§ç³ä¹¦å Cornerstone Book Centre" loading="lazy" itemprop="logo"> 1274 </a> 1275 1276 1277 1278 <div class="header__search-input" tabindex="-1"> 1279 <form action="/search" method="get" role="search" class="search search-modal__form"> 1280 <div class="field"> 1281 <input class="search__input field__input" 1282 id="Search-In-Modal" 1283 type="search" 1284 name="q" 1285 value="" 1286 placeholder="Search" 1287 autocomplete="off" 1288 > 1289 <label class="field__label" for="Search-In-Modal">Search</label> 1290 <div class="dropdown" id="searchDropdown"></div> 1291 <input type="hidden" name="search_history" class="hidden_search_history"> 1292 <input type="hidden" name="options[prefix]" value="last"> 1293 <input type='hidden' name='search_extras' value='product-description,brands,collections,tags,vendors'> 1294 <button class="search__button field__button" aria-label="Search"> 1295 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 1296 <use href="#icon-search"> 1297 </svg> 1298 </button> 1299 </div> 1300 </form> 1301 </div> 1302 1303 1304 <nav class="header__inline-menu"> 1305 <ul class="list-menu list-menu--inline" role="list"> 1306 1307 1308 1309 <li> 1310 <a href="/" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1311 Main Page 主页 1312 </a> 1313 </li> 1314 1315 1316 1317 1318 <li> 1319 <a href="/pages/about-us-å ³äºæä»¬" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1320 About Us å ³äºæä»¬ 1321 </a> 1322 </li> 1323 1324 1325 1326 1327 <li> 1328 <a href="/collections/new-arrival" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1329 New Arrival æ°å 1330 </a> 1331 </li> 1332 1333 1334 1335 1336 1337 <li> 1338 <details-disclosure> 1339 <details> 1340 <summary class="header__menu-item list-menu__item link focus-inset"> 1341 <a href="/collections/all" >Collections 书ç®</a> 1342 1343 1344 1345 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1346 <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> 1347 </svg> 1348 1349 1350 1351 </summary> 1352 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 1353 1354 1355 1356 1357 1358 <li> 1359 <a href="/collections/åä¼ åºå" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1360 Partners Training Book åä¼ åºç 1361 </a> 1362 </li> 1363 1364 1365 1366 1367 1368 <li> 1369 <details-disclosure> 1370 <details> 1371 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1372 <a href="/collections/chinese-books-䏿书ç±" >Chinese Books 䏿书ç±</a> 1373 1374 1375 1376 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1377 <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> 1378 </svg> 1379 1380 1381 1382 </summary> 1383 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1384 1385 1386 1387 <li> 1388 <a href="/collections/çå½é å°±" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Spiritual Life çå½é å°±</a> 1389 </li> 1390 1391 1392 1393 1394 1395 <li> 1396 <details-disclosure> 1397 <details> 1398 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1399 <a href="/collections/å´æç¤¼ä»ª" > 1400 Bible Study å£ç»ç ç©¶ 1401 </a> 1402 1403 1404 1405 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1406 <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> 1407 </svg> 1408 1409 1410 1411 </summary> 1412 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1413 1414 <li> 1415 <a href="/collections/妿¯ç ç©¶" class="header__menu-item list-menu__item link link--text focus-inset caption-large">麦ç§å£ç»æ³¨é</a> 1416 </li> 1417 1418 </ul> 1419 </details> 1420 </details-disclosure> 1421 </li> 1422 1423 1424 1425 1426 <li> 1427 <a href="/collections/çµå½æé¿" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Devotions and Prayers çµä¿®ä¸ç¥·å</a> 1428 </li> 1429 1430 1431 1432 1433 <li> 1434 <a href="/collections/ç¥å¦ä¸æä¹" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Theology and Doctrine ç¥å¦ä¸æä¹</a> 1435 </li> 1436 1437 1438 1439 1440 <li> 1441 <a href="/collections/è§è¯ä¸ä¼ è®°" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Testimony and Missionary è§è¯ä¸å®£æ</a> 1442 </li> 1443 1444 1445
1445 1446 1447 <li> 1448 <a href="/collections/æç§å¦" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Pastoral Studies æç§å¦</a> 1449 </li> 1450 1451 1452 1453 1454 <li> 1455 <a href="/collections/管çä¸é¢å¯¼" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Management and Leadership 管çä¸é¢å¯¼</a> 1456 </li> 1457 1458 1459 1460 1461 <li> 1462 <a href="/collections/è¾ å¯¼ç³»å" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Psychological Counseling å¿çè¾ å¯¼</a> 1463 </li> 1464 1465 1466 1467 1468 <li> 1469 <a href="/collections/åºç£ææè²" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Parenting 亲åæè²</a> 1470 </li> 1471 1472 1473 1474 1475 <li> 1476 <a href="/collections/æç±-å©å§»ä¸å®¶åº" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Love, Marriage & Family æç±ãå©å§»ä¸å®¶åº</a> 1477 </li> 1478 1479 1480 1481 1482 <li> 1483 <a href="/collections/åå²ä¸æå" class="header__menu-item list-menu__item link link--text focus-inset caption-large">History and Culture åå²ä¸æå</a> 1484 </li> 1485 1486 1487 </ul> 1488 </details> 1489 </details-disclosure> 1490 </li> 1491 1492 1493 1494 1495 1496 1497 <li> 1498 <details-disclosure> 1499 <details> 1500 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1501 <a href="/collections/礼åç³»å" >Gifts & Souvenirs 饰å</a> 1502 1503 1504 1505 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1506 <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> 1507 </svg> 1508 1509 1510 1511 </summary> 1512 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1513 1514 1515 1516 <li> 1517 <a href="/collections/fashion-accessories" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Fashion & Accessories</a> 1518 </li> 1519 1520 1521 1522 1523 <li> 1524 <a href="/collections/ç¦é³åå¼ " class="header__menu-item list-menu__item link link--text focus-inset caption-large">Gospel Leaflet ç¦é³åå¼ </a> 1525 </li> 1526 1527 1528 1529 1530 <li> 1531 <a href="/collections/çå¾-plaque" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Plaque and Cross çå¾åååæ¶</a> 1532 </li> 1533 1534 1535 1536 1537 <li> 1538 <a href="/collections/å饰-pendant" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Pendant å饰</a> 1539 </li> 1540 1541 1542 1543 1544 <li> 1545 <a href="/collections/æ¡æ-table-ornament" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Table Ornamentæ¡æ</a> 1546 </li> 1547 1548 1549 1550 1551 <li> 1552 <a href="/collections/纸å¶å-paper-product" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Paper Product 纸å¶å </a> 1553 </li> 1554 1555 1556 1557 1558 <li> 1559 <a href="/collections/magnet-gifts-ç£é礼å" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Magnet and Electronic ç£éåçµåå</a> 1560 </li> 1561 1562 1563 1564 1565 <li> 1566 <a href="/collections/wall-frame-æ¡" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Wall Frame æ¡</a> 1567 </li> 1568 1569 1570 </ul> 1571 </details> 1572 </details-disclosure> 1573 </li> 1574 1575 1576 1577 1578 1579 1580 <li> 1581 <details-disclosure> 1582 <details> 1583 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1584 <a href="/collections/å£ç»ç³»å" >Bible å£ç»</a> 1585 1586 1587 1588 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1589 <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> 1590 </svg> 1591 1592 1593 1594 </summary> 1595 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1596 1597 1598 1599 1600 <li> 1601 <details-disclosure> 1602 <details> 1603 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1604 <a href="/collections/chinese-bible-䏿å£ç»" > 1605 Chinese Bible 䏿å£ç» 1606 </a> 1607 1608 1609 1610 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1611 <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> 1612 </svg> 1613 1614 1615 1616 </summary> 1617 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1618 1619 <li> 1620 <a href="/collections/å忬-cuv" class="header__menu-item list-menu__item link link--text focus-inset caption-large">å忬</a> 1621 </li> 1622 1623 <li> 1624 <a href="/collections/æ°è¯æ¬" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ°è¯æ¬</a> 1625 </li> 1626 1627 <li> 1628 <a href="/collections/æ°æ®åè¯æ¬" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ°æ®åè¯æ¬</a> 1629 </li> 1630 1631 <li> 1632 <a href="/collections/å ¶ä»" class="header__menu-item list-menu__item link link--text focus-inset caption-large">å ¶ä»</a> 1633 </li> 1634 1635 </ul> 1636 </details> 1637 </details-disclosure> 1638 </li> 1639 1640 1641 1642 1643 <li> 1644 <a href="/collections/åè¯-bilingual" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Biligual Bibles åè¯å£ç»</a> 1645 </li> 1646 1647 1648 1649 1650 <li> 1651 <a href="/collections/children-bible-å¿ç«¥å£ç»" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Children Bible å¿ç«¥å£ç»</a> 1652 </li> 1653 1654 1655 1656 1657 <li> 1658 <a href="/collections/english-bible-è±è¯å£ç»" class="header__menu-item list-menu__item link link--text focus-inset caption-large">English Bible è±è¯å£ç»</a> 1659 </li> 1660 1661 1662 </ul> 1663 </details> 1664 </details-disclosure> 1665 </li> 1666 1667 1668 1669 1670 1671 1672 <li> 1673 <details-disclosure> 1674 <details> 1675 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1676 <a href="/collections/å¿ç«¥è¯»ç©" >Children & Teens Book | å¿ç«¥&å°å¹´ä¹¦ç± </a> 1677 1678 1679 1680 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1681 <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> 1682 </svg> 1683 1684 1685 1686 </summary> 1687 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1688 1689 1690 1691 1692 <li> 1693 <details-disclosure> 1694 <details> 1695 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1696 <a href="/collections/children-book" > 1697 Children Book å¿ç«¥ä¹¦ç± 1698 </a> 1699 1700 1701 1702 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1703 <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> 1704 </svg> 1705 1706 1707 1708 </summary> 1709 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1710 1711 <li> 1712 <a href="/collections/å£ç»-å£ç»æ äº-bible-bible-stories" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> English Bible Stories è±è¯å£ç»æ äº </a> 1713 </li> 1714 1715 <li> 1716 <a href="/collections/ç»æ¬-picture-book" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Picture Book ç»æ¬</a> 1717 </li> 1718 1719 <li> 1720
1720 <a href="/collections/å£ç»bible-å£ç»æ äº-bible-stories" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Chinese Bible Stories 䏿å£ç»æ äº</a> 1721 </li> 1722 1723 </ul> 1724 </details> 1725 </details-disclosure> 1726 </li> 1727 1728 1729 1730 1731 <li> 1732 <a href="/collections/éå°å¹´ä¹¦ç±-teen-s-book" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> Teen's Book éå°å¹´ä¹¦ç±</a> 1733 </li> 1734 1735 1736 </ul> 1737 </details> 1738 </details-disclosure> 1739 </li> 1740 1741 1742 1743 1744 1745 1746 <li> 1747 <details-disclosure> 1748 <details> 1749 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1750 <a href="/collections/æ¹æ³è®º" >Training è®ç»ææ</a> 1751 1752 1753 1754 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1755 <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> 1756 </svg> 1757 1758 1759 1760 </summary> 1761 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1762 1763 1764 1765 <li> 1766 <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> 1767 </li> 1768 1769 1770 </ul> 1771 </details> 1772 </details-disclosure> 1773 </li> 1774 1775 1776 1777 1778 1779 1780 <li> 1781 <a href="/collections/æ¡æ¸¸ä¸æ¸¸æ" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1782 Board Games and Games æ¡æ¸¸ä¸æ¸¸æ 1783 </a> 1784 </li> 1785 1786 1787 1788 1789 1790 <li> 1791 <a href="/collections/new-arrival" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1792 New Arrival æ°å 1793 </a> 1794 </li> 1795 1796 1797 1798 1799 1800 <li> 1801 <a href="/collections/add-on" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1802 Add on 1803 </a> 1804 </li> 1805 1806 1807 </ul> 1808 </details> 1809 </details-disclosure> 1810 </li> 1811 1812 1813 1814 1815 <li> 1816 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1817 Lesson Plan 主æ¥å¦ææ¡ 1818 </a> 1819 </li> 1820 1821 1822 1823 1824 <li> 1825 <a href="https://www.jbcornerstone.com/account/register" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1826 Create an account 注åè´¦å· 1827 </a> 1828 </li> 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 </ul> 1842 </nav> 1843 <div class="header__icons"> 1844 1845 1846 1847 <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide" style="position: relative;"> 1848 <a href="/account/login" class="header__icon link link--text focus-inset p-2"> 1849 1850 1851 1852 <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> 1853 1854 1855
1856 <span id="my-account" class="header__link-label">Login</span> 1857 </a> 1858 1859 <!-- Referral Notification Popup for Desktop --> 1860 <div id="referralNotification" class="referral-notification" style="display: none;"> 1861 <button class="close-btn" onclick="dismissReferralNotification()">×</button> 1862 <div style="text-align: center; margin-bottom: 16px;"> 1863 <div style="width: 100px; height: 100px; margin: 0 auto;"> 1864 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg"> 1865 </div> 1866 </div> 1867 <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;"> 1868 Your friend gifted you credit! Sign up now to redeem. 1869 </p> 1870 <div style="text-align: center;"> 1871 <button class="btn" onclick="goToSignupPage()" style="width: 100%;"> 1872 Sign Up 1873 </button> 1874 </div> 1875 </div> 1876 </div> 1877 1878 1879 1880 <a href="/cart" class="header__icon link link--text focus-inset" id="cart-icon-bubble"> 1881 <span class="header__icon--cart"> 1882 1883 1884 1885 <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> 1886 1887 1888 1889 <div class="cart-count-bubble hidden"> 1890 <span aria-hidden="true" class="js-content-cart-count">0</span> 1891 </div> 1892 </span> 1893 <span class="header__link-label medium-hide small-hide"> 1894 Cart 1895 </span> 1896 </a> 1897 1898 1899 1900 <!-- Referral Notification Modal for Mobile --> 1901 <details-modal class="referral-modal" id="referralMobileModal"> 1902 <details> 1903 <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;"> 1904 </summary> 1905 <div class="modal-overlay referral-modal-overlay"></div> 1906 <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification"> 1907 <div class="referral-modal__content"> 1908 <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;"> 1909 × 1910 </button> 1911 1912 <div style="margin-bottom: 24px;"> 1913 <div style="width: 120px; height: 120px; margin: 0 auto 20px;"> 1914 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;"> 1915 </div> 1916 </div> 1917 1918 <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;"> 1919 Your friend gifted you credit! Sign up now to redeem. 1920 </p> 1921 1922 <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%;"> 1923 Sign Up 1924 </button> 1925 </div> 1926 </div> 1927 </details> 1928 </details-modal> 1929 1930 1931 1932 </div> 1933 </header> 1934 </sticky-header> 1935 1936<cart-notification> 1937 <div class="cart-notification-wrapper page-width color-background-1"> 1938 <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="Added to cart" role="dialog" tabindex="-1"> 1939 <div class="cart-notification__header"> 1940 <h2 class="cart-notification__heading caption-large"> 1941 1942 1943 <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"> 1944 <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> 1945 </svg> 1946 1947 1948 Added to cart</h2> 1949 <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 1950 1951 1952 1953 <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> 1954 1955 1956 1957 </button> 1958 </div> 1959 <div id="cart-notification-product" class="cart-notification-product"></div> 1960 <div class="cart-notification__links"> 1961 <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> 1962 <form action="/cart" method="post" id="cart-notification-form"> 1963 <input type="hidden" name="_token" value="EsG2KEOCGm8b9IHnxX9FSq3e50pmMdIYd9MIBuPz"> 1964 <input type="hidden" name="current_currency" value=""> 1965 <button class="button button--primary button--full-width" name="checkout" value="true">Checkout</button> 1966 </form> 1967 <a href="/collections/all" class="link button-label">Continue shopping</a> 1968 </div> 1969 </div> 1970 </div> 1971</cart-notification> 1972<style> 1973 .cart-notification { 1974 display: none; 1975 } 1976</style>
1977<script> 1978document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{ 1979 if(event.submitter) event.submitter.classList.add('loading'); 1980}) 1981 1982</script>
1982 1983 1984</div> 1985 1986
1987<script> 1988 1989 class StickyHeader extends HTMLElement { 1990 constructor() { 1991 super(); 1992 } 1993 1994 connectedCallback() { 1995 this.header = document.getElementById('easystore-section-header'); 1996 this.headerBounds = {}; 1997 this.currentScrollTop = 0; 1998 this.preventReveal = false; 1999 2000 this.onScrollHandler = this.onScroll.bind(this); 2001 this.hideHeaderOnScrollUp = () => this.preventReveal = true; 2002 2003 this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2004 window.addEventListener('scroll', this.onScrollHandler, false); 2005 2006 this.createObserver(); 2007 } 2008 2009 disconnectedCallback() { 2010 this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2011 window.removeEventListener('scroll', this.onScrollHandler); 2012 } 2013 2014 createObserver() { 2015 let observer = new IntersectionObserver((entries, observer) => { 2016 this.headerBounds = entries[0].intersectionRect; 2017 observer.disconnect(); 2018 }); 2019 2020 observer.observe(this.header); 2021 } 2022 2023 onScroll() { 2024 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 2025 2026 if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2027 requestAnimationFrame(this.hide.bind(this)); 2028 } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2029 if (!this.preventReveal) { 2030 requestAnimationFrame(this.reveal.bind(this)); 2031 } else { 2032 window.clearTimeout(this.isScrolling); 2033 2034 this.isScrolling = setTimeout(() => { 2035 this.preventReveal = false; 2036 }, 66); 2037 2038 requestAnimationFrame(this.hide.bind(this)); 2039 } 2040 } else if (scrollTop <= this.headerBounds.top) { 2041 requestAnimationFrame(this.reset.bind(this)); 2042 } 2043 2044 2045 this.currentScrollTop = scrollTop; 2046 } 2047 2048 hide() { 2049 this.header.classList.add('easystore-section-header-hidden', 'easystore-section-header-sticky'); 2050 this.closeMenuDisclosure(); 2051 // this.closeSearchModal(); 2052 } 2053 2054 reveal() { 2055 this.header.classList.add('easystore-section-header-sticky', 'animate'); 2056 this.header.classList.remove('easystore-section-header-hidden'); 2057 } 2058 2059 reset() { 2060 this.header.classList.remove('easystore-section-header-hidden', 'easystore-section-header-sticky', 'animate'); 2061 } 2062 2063 closeMenuDisclosure() { 2064 this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure'); 2065 this.disclosures.forEach(disclosure => disclosure.close()); 2066 } 2067 2068 // closeSearchModal() { 2069 // this.searchModal = this.searchModal || this.header.querySelector('details-modal'); 2070 // this.searchModal.close(false); 2071 // } 2072 } 2073 2074 customElements.define('sticky-header', StickyHeader); 2075 2076 2077 class DetailsDisclosure extends HTMLElement{ 2078 constructor() { 2079 super(); 2080 this.mainDetailsToggle = this.querySelector('details'); 2081 // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this)); 2082 this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this)); 2083 this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this)); 2084 } 2085 2086 onFocusOut() { 2087 setTimeout(() => { 2088 if (!this.contains(document.activeElement)) this.close(); 2089 }) 2090 } 2091 2092 open() { 2093 this.mainDetailsToggle.setAttribute('open',1) 2094 } 2095 2096 close() { 2097 this.mainDetailsToggle.removeAttribute('open') 2098 } 2099 } 2100 2101 customElements.define('details-disclosure', DetailsDisclosure); 2102 2103 function clearAll() { 2104 localStorage.removeItem('searchHistory'); 2105 2106 var customer = ""; 2107 if(customer) { 2108 // Your logic to clear all data or call an endpoint 2109 fetch('/account/search_histories', { 2110 method: 'DELETE', 2111 headers: { 2112 "Content-Type": "application/json", 2113 "X-Requested-With": "XMLHttpRequest" 2114 }, 2115 body: JSON.stringify({ 2116 _token: "EsG2KEOCGm8b9IHnxX9FSq3e50pmMdIYd9MIBuPz" 2117 }), 2118 }) 2119 .then(response => response.json()) 2120 } 2121 } 2122 // End - delete search history from local storage 2123 2124 // search history dropdown 2125 var searchInputs = document.querySelectorAll('.search__input'); 2126 2127 if(searchInputs.length > 0) { 2128
2129 searchInputs.forEach((searchInput)=> { 2130 2131 searchInput.addEventListener('focus', function() { 2132 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2133 searchDropdown.innerHTML = ''; // Clear existing items 2134 2135 // retrieve data from local storage 2136 var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || []; 2137 2138 // Convert JSON to string 2139 var search_history_json = JSON.stringify(searchHistoryData); 2140 2141 // Set the value of the hidden input 2142 searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json; 2143 2144 // create dropdown items 2145 var clearAllItem = document.createElement('div'); 2146 clearAllItem.className = 'dropdown-item clear-all'; 2147 clearAllItem.textContent = 'Clear'; 2148 clearAllItem.addEventListener('click', function() { 2149 clearAll(); 2150 searchDropdown.style.display = 'none'; 2151 searchInput.classList.remove('is-focus'); 2152 }); 2153 searchDropdown.appendChild(clearAllItem); 2154 2155 // create dropdown items 2156 searchHistoryData.forEach(function(item) { 2157 var dropdownItem = document.createElement('div'); 2158 dropdownItem.className = 'dropdown-item'; 2159 dropdownItem.textContent = item.term; 2160 dropdownItem.addEventListener('click', function() { 2161 searchInput.value = item.term; 2162 searchInput.closest('form').submit(); 2163 searchDropdown.style.display = 'none'; 2164 }); 2165 searchDropdown.appendChild(dropdownItem); 2166 }); 2167 2168 if(searchHistoryData.length > 0){ 2169 // display the dropdown 2170 searchInput.classList.add('is-focus'); 2171 document.body.classList.add('search-input-focus'); 2172 searchDropdown.style.display = 'block'; 2173 } 2174 }); 2175 2176 searchInput.addEventListener("focusout", (event) => { 2177 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2178 searchInput.classList.remove('is-focus'); 2179 searchDropdown.classList.add('transparent'); 2180 setTimeout(()=>{ 2181 searchDropdown.style.display = 'none'; 2182 searchDropdown.classList.remove('transparent'); 2183 document.body.classList.remove('search-input-focus'); 2184 }, 400); 2185 }); 2186 }) 2187 } 2188 // End - search history dropdown 2189 2190 // referral notification popup 2191 const referralMessageTemplate = 'Your friend gifted you __CURRENCY_CODE__ __CREDIT_AMOUNT__ credit! Sign up now to redeem.'; 2192 const shopCurrency = 'RM'; 2193 2194 function getCookie(name) { 2195 const value = `; ${document.cookie}`; 2196 const parts = value.split(`; ${name}=`); 2197 if (parts.length === 2) return parts.pop().split(';').shift(); 2198 return null; 2199 } 2200 2201 function removeCookie(name) { 2202 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; 2203 } 2204 2205 function showReferralNotification() { 2206 const referralCode = getCookie('customer_referral_code'); 2207 2208 2209 const customerReferralCode = null; 2210 2211 2212 const activeReferralCode = referralCode || customerReferralCode; 2213 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2214 2215 if (referralData.timestamp && referralData.expirationDays) { 2216 const expirationTime = referralData.timestamp + (referralData.expirationDays * 24 * 60 * 60 * 1000); 2217 if (Date.now() > expirationTime) { 2218 localStorage.removeItem('referral_notification_data'); 2219 return; 2220 } 2221 } 2222 2223 if (referralData.dismissed) return; 2224 2225 if (activeReferralCode) { 2226 if (referralData.creditAmount) { 2227 displayReferralNotification(referralData.creditAmount); 2228 } else { 2229 fetchReferralCampaignData(activeReferralCode); 2230 } 2231 } 2232 } 2233 2234 function fetchReferralCampaignData(referralCode) { 2235 fetch(`/customer/referral_program/campaigns/${referralCode}`) 2236 .then(response => { 2237 if (!response.ok) { 2238 throw new Error('Network response was not ok'); 2239 } 2240 return response.json(); 2241 }) 2242 .then(data => { 2243 let refereeCreditAmount = null; 2244 if (data.data.campaign && data.data.campaign.referral_rules) { 2245 const refereeRule = data.data.campaign.referral_rules.find(rule => 2246 rule.target_type === 'referee' && 2247 rule.event_name === 'customer/create' && 2248 rule.entitlement && 2249 rule.entitlement.type === 'credit' 2250 ); 2251 2252 if (refereeRule) { 2253 refereeCreditAmount = refereeRule.entitlement.amount; 2254 } 2255 } 2256 2257 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2258 referralData.creditAmount = refereeCreditAmount; 2259 referralData.dismissed = referralData.dismissed || false; 2260 referralData.timestamp = Date.now(); 2261 referralData.expirationDays = 3; 2262 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2263 2264 displayReferralNotification(refereeCreditAmount); 2265 }) 2266 .catch(error => { 2267 removeCookie('customer_referral_code'); 2268 }); 2269 } 2270 2271 function displayReferralNotification(creditAmount = null) { 2272 const isMobile = innerWidth <= 749; 2273 2274 if (isMobile) { 2275 const mobileModal = document.querySelector('#referralMobileModal details'); 2276 const mobileMessageElement = document.getElementById('referralSignupMessageMobile'); 2277 2278 if (mobileModal && mobileMessageElement) { 2279 if (creditAmount) {
2280 const finalMessage = referralMessageTemplate 2281 .replace('__CREDIT_AMOUNT__', creditAmount) 2282 .replace('__CURRENCY_CODE__', shopCurrency); 2283 2284 mobileMessageElement.textContent = finalMessage; 2285 } 2286 2287 mobileModal.setAttribute('open', ''); 2288 } 2289 } else { 2290 const notification = document.getElementById('referralNotification'); 2291 2292 if (notification) { 2293 if (creditAmount) { 2294 const messageElement = document.getElementById('referralSignupMessage'); 2295 if (messageElement) { 2296 const finalMessage = referralMessageTemplate 2297 .replace('__CREDIT_AMOUNT__', creditAmount) 2298 .replace('__CURRENCY_CODE__', shopCurrency); 2299 2300 messageElement.textContent = finalMessage; 2301 } 2302 } 2303 2304 notification.style.display = 'block'; 2305 } 2306 } 2307 } 2308 2309 showReferralNotification(); 2310 2311 addEventListener('beforeunload', function() { 2312 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2313 2314 if (referralData.creditAmount !== undefined) { 2315 referralData.creditAmount = null; 2316 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2317 } 2318 }); 2319 2320 function closeReferralNotification() { 2321 const notification = document.getElementById('referralNotification'); 2322 if (notification) { 2323 notification.style.display = 'none'; 2324 } 2325 } 2326 2327 function dismissReferralNotification() { 2328 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2329 2330 referralData.dismissed = true; 2331 referralData.timestamp = referralData.timestamp || Date.now(); 2332 referralData.expirationDays = referralData.expirationDays || 3; 2333 2334 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2335 2336 closeReferralNotification(); 2337 } 2338 2339 function goToSignupPage() { 2340 location.href = '/account/register'; 2341 dismissReferralNotification(); 2342 } 2343 2344 function closeMobileReferralModal() { 2345 const mobileModal = document.querySelector('#referralMobileModal details'); 2346 if (mobileModal) { 2347 mobileModal.removeAttribute('open'); 2348 } 2349 2350 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2351 referralData.dismissed = true; 2352 referralData.timestamp = referralData.timestamp || Date.now(); 2353 referralData.expirationDays = referralData.expirationDays || 3; 2354 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2355 } 2356 2357 function goToSignupPageFromMobile() { 2358 location.href = '/account/register'; 2359 closeMobileReferralModal(); 2360 } 2361 // End - referral notification popup 2362</script>
2362 2363 2364 2365 2366 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 2367 2368 <link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/blog.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'"> 2369<link rel="preload" href="https://store-themes.easystore.co/382053/themes/308896/assets/component-card.css?t=1790699554" as="style" onload="this.onload=null;this.rel='stylesheet'"> 2370 2371<div class="main-blog page-width"> 2372 <h1 class="title--primary"> 2373 2374 å¿ç«¥ä¸»æ¥å¦ææ¡ 2375 2376 </h1> 2377 <div class="blog-articles"> 2378 2379 <div class="blog-articles__article article"> 2380 <article class="article-card "> 2381 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡/å¿ç«¥ä¸»æ¥å¦ææ¡-西çªé 书-ä½ ä»¬é½å½å¯»æ±è¶åå" class="article-content motion-reduce"> 2382 2383 <div class="article-card__info"> 2384 <header class="article-card__header"> 2385 <h2 class="article-card__title"> 2386 å¿ç«¥ä¸»æ¥å¦ææ¡ | 西çªé 书 | ä½ ä»¬é½å½å¯»æ±è¶åå 2387 </h2> 2388 <span class="circle-divider caption-with-letter-spacing"> 2389 <time datetime="2026-07-27"> Jul 27, 26</time> 2390 </span> 2391 2392 <span class="caption-with-letter-spacing"> 2393 西çªé 书 2394 </span> 2395 2396 </header> 2397 <p class="article-card__excerpt rte-width break">西çªé 书 2:3 ä½ ä»¬é½å½å¯»æ±è¶åå åæ ¼å¦ä¹ ï¼èå¿ ç¬¬ä¸è¯¾ï¼åæ ¼æå¯¼ 36 西çªé 书 23 ææ¡ 1 36 Zephaniah 23 lesson plan 1 第äºè¯¾ï¼å£ç»æ äº https://youtu.be/G_n2T_O7SYQ?si=WkFLwmzrk6rplhE4 https://youtu.be/Hokreb1EXCs?si=V0VOuAK70Dfnrxs2 第ä¸è¯¾ï¼çæ´»åæ ¼æ äº https://youtu.be/shc2ZMrSagg?si=on1Y3dN38jtbpfBC h </p> 2398 </div> 2399 </a> 2400 </article> 2401 </div> 2402 2403 <div class="blog-articles__article article"> 2404 <article class="article-card "> 2405 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡/å¿ç«¥ä¸»æ¥å¦ææ¡-å巴谷书-æè¦å ææçç¥åä¹" class="article-content motion-reduce"> 2406 2407 <div class="article-card__info"> 2408 <header class="article-card__header"> 2409 <h2 class="article-card__title"> 2410 å¿ç«¥ä¸»æ¥å¦ææ¡ | å巴谷书 | æè¦å ææçç¥åä¹ 2411 </h2> 2412 <span class="circle-divider caption-with-letter-spacing"> 2413 <time datetime="2026-07-27"> Jul 27, 26</time> 2414 </span> 2415 2416 <span class="caption-with-letter-spacing"> 2417 å巴谷书 2418 </span> 2419 2420 </header> 2421 <p class="article-card__excerpt rte-width break">åä¹ ãé 主åä¹ãåå·´è°·ãå ç¥ãåæ ¼æå¯¼ãå£ç»æ äºãå ç¥åå·´è°·ãå¿ç«¥å£ç»æ äºãå¿ç«¥ä¸»æ¥å¦ææãå¿ç«¥åæ ¼æ äºãå¿ç«¥å£ç»çãåæ ¼æ äºãè¶ç¨£ãåºç£æãåºç£ææ äºãå¿ç«¥æ äºãç¡åæ äºãjoy/joyful/ justice/compassionate/bible story/bible stories/children bible stories/ children bed time story/children bible class/ bible class/ bible/jesus/God </p> 2422 </div> 2423 </a> 2424 </article> 2425 </div> 2426 2427 <div class="blog-articles__article article"> 2428 <article class="article-card "> 2429 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡/å¿ç«¥ä¸»æ¥å¦ææ¡-é£é¸¿ä¹¦-è¶ååä¸è½»æåæ" class="article-content motion-reduce"> 2430 2431 <div class="article-card__info"> 2432 <header class="article-card__header"> 2433 <h2 class="article-card__title"> 2434 å¿ç«¥ä¸»æ¥å¦ææ¡ | é£é¸¿ä¹¦ | è¶ååä¸è½»æåæ 2435 </h2>
2436 <span class="circle-divider caption-with-letter-spacing"> 2437 <time datetime="2026-07-24"> Jul 24, 26</time> 2438 </span> 2439 2440 <span class="caption-with-letter-spacing"> 2441 é£é¸¿ä¹¦ 2442 </span> 2443 2444 </header> 2445 <p class="article-card__excerpt rte-width break">é£é¸¿ä¹¦/è¶ååä¸è½»æåæ/èå¶/å å¶/å¿ç«¥å£ç»æ äº/å¿ç«¥åæ ¼æ äº/å£ç»/å£ç»æ äº/è¶ç¨£/ä¸å¸/å¿ç«¥ä¸»æ¥å¦ææ/å¿ç«¥å£ç»ç/åæ ¼æ äº/åºç£æ/åºç£ææ äº/å¿ç«¥æ äº/ç¡åæ äº/Nahum/Self-control/Slow to anger/bible stories/children bible stories/ children bed time story/children bible/Jesus/bible story/kids bible/bible/Jesus/God </p> 2446 </div> 2447 </a> 2448 </article> 2449 </div> 2450 2451 <div class="blog-articles__article article"> 2452 <article class="article-card "> 2453 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡/å¿ç«¥ä¸»æ¥å¦ææ¡-弥迦书-è¦ä½ è¡å ¬ä¹-å¥½ææ¯" class="article-content motion-reduce"> 2454 2455 <div class="article-card__info"> 2456 <header class="article-card__header"> 2457 <h2 class="article-card__title"> 2458 å¿ç«¥ä¸»æ¥å¦ææ¡ | 弥迦书 | è¦ä½ è¡å ¬ä¹ãå¥½ææ¯ 2459 </h2> 2460 <span class="circle-divider caption-with-letter-spacing"> 2461 <time datetime="2026-07-24"> Jul 24, 26</time> 2462 </span> 2463 2464 <span class="caption-with-letter-spacing"> 2465 弥迦书 2466 </span> 2467 2468 </header> 2469 <p class="article-card__excerpt rte-width break">è¡å ¬ä¹ã å ¬ä¹&ææ¯ ãåæ ¼æå¯¼ãMicah 弥迦书ãå£ç»æ äºãå ç¥å¼¥è¿¦ ãå¿ç«¥å£ç»æ äºãå¿ç«¥ä¸»æ¥å¦ææãå¿ç«¥åæ ¼æ äºãå¿ç«¥å£ç»çãåæ ¼æ äºãè¶ç¨£ãåºç£æãåºç£ææ äºãå¿ç«¥æ äºãç¡åæ äºãmercy/justice/compassionate/bible story/bible stories/children bible stories/ children bed time story/children bible class/ bible class/ bible/Jesus/God </p> 2470 </div> 2471 </a> 2472 </article> 2473 </div> 2474 2475 <div class="blog-articles__article article"> 2476 <article class="article-card "> 2477 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡/å¿ç«¥å£ç»ä¸»æ¥å¦ææ¡-约æ¿ä¹¦-ä½ æ
2477¯ææ©å ¸-æææ¯çç¥" class="article-content motion-reduce"> 2478 2479 <div class="article-card__info"> 2480 <header class="article-card__header"> 2481 <h2 class="article-card__title"> 2482 å¿ç«¥ä¸»æ¥å¦ææ¡ | 约æ¿ä¹¦ |ä½ æ¯ææ©å ¸ãæææ¯çç¥ 2483 </h2> 2484 <span class="circle-divider caption-with-letter-spacing"> 2485 <time datetime="2026-07-24"> Jul 24, 26</time> 2486 </span> 2487 2488 <span class="caption-with-letter-spacing"> 2489 约æ¿ä¹¦ 2490 </span> 2491 2492 </header> 2493 <p class="article-card__excerpt rte-width break">约æ¿/尼尼微/æ©å ¸çç¥/ææ¯çç¥/Jonah/Nineveh/compassionate/mercy/Jesus/bible story/kids bible/å¿ç«¥å£ç»æ äº/å¿ç«¥åæ ¼æ äº/å£ç»/å£ç»æ äº/å°¼å°¼å¾®ææ¹/è¶ç¨£/ä¸å¸/å¿ç«¥ä¸»æ¥å¦ææ/å¿ç«¥å£ç»ç/åæ ¼æ äº/åºç£æ/åºç£ææ äº/å¿ç«¥æ äº/ç¡åæ äº/bible stories/children bible stories/ children bed time story/children bible class/ bible class </p> 2494 </div> 2495 </a> 2496 </article> 2497 </div> 2498 2499 </div> 2500</div> 2501 2502 2503 2504 2505 2506 </main> 2507 <style> 2508 .footer{ 2509 background-color: #FFFFFF; 2510 color: #000000; 2511 --color-foreground: 0,0,0; 2512 } 2513 .footer .link--text, 2514 .footer .list-menu__item--link, 2515 .footer .footer-block__details-content .list-menu__item--link{ 2516 color: #000000; 2517 } 2518 .footer-block__heading{ 2519 color: #050200; 2520 } 2521</style> 2522 2523<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'"> 2524 2525<footer class="footer color-background-1"> 2526 <div class="footer__content-top page-width"> 2527 <div class="grid grid--1-col grid--4-col-tablet "> 2528 2529 2530 2531 <div class="grid__item"> 2532 2533 <h2 class="footer-block__heading">Follow us</h2> 2534 <ul class="footer__list-social list-unstyled list-social footer-block__details-content" role="list"> 2535 2536 2537 <li class="list-social__item"> 2538 <a href="https://www.facebook.com/cornerstonebookcenter" class="link link--text list-social__link"> 2539 2540 2541 2542 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook " 2543 viewBox="0 0 18 18"> 2544 <path fill="currentColor" 2545 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"> 2546 </path> 2547 </svg> 2548 2549 2550 2551 </a> 2552 </li> 2553 2554 2555 <li class="list-social__item"> 2556 <a href="https://www.instagram.com/cornerstonebook.jb/" class="link link--text list-social__link"> 2557 2558 2559 2560 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram " 2561 viewBox="0 0 18 18"> 2562 <path fill="currentColor" 2563 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"> 2564 </path>
2565 <path fill="currentColor" 2566 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"> 2567 </path> 2568 </svg> 2569 2570 2571 2572 </a> 2573 </li> 2574 2575 2576 2577 <li class="list-social__item"> 2578 <a href="https://wa.me/601151201129" class="link link--text list-social__link"> 2579 2580 2581 2582 <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.
258264ZM684.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> 2583 2584 2585 2586 </a> 2587 </li> 2588 2589 2590 2591 2592 2593 </ul> 2594 2595 </div> 2596 2597 2598 2599 <div class="grid__item"> 2600 2601 <h2 class="footer-block__heading">We accept</h2> 2602 <div class="footer-block__details-content footer__payment"> 2603 <ul class="list list-payment" role="list"> 2604 2605 2606 2607 2608 2609 2610 2611 2612 <li class="list-payment__item"> 2613 <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_ipay88.svg" alt="payment_ipay88" loading="lazy" width="85px"> 2614 </li> 2615 2616 <li class="list-payment__item"> 2617 <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"> 2618 </li> 2619 2620 <li class="list-payment__item"> 2621 <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_tngpay.svg" alt="payment_tngpay" loading="lazy" width="85px"> 2622 </li> 2623 2624 2625 </div> 2626 2627 </div> 2628 2629 2630 2631 <div class="grid__item"> 2632 2633 <h2 class="footer-block__heading"> 2634 Quick links 2635 </h2> 2636 <ul class="footer-block__details-content list-unstyled"> 2637 2638 <li> 2639 <a href="/pages/membership-æ¿è§ç³ç½åºä¼åç¦å©" class="link link--text list-menu__item list-menu__item--link"> 2640 Membership æ¿è§ç³ç½åºä¼åç¦å© 2641 </a> 2642 </li> 2643 2644 <li> 2645 <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"> 2646 Contact Us 2647 </a> 2648 </li> 2649 2650 <li> 2651 <a href="/pages/shipping-and-return-policy" class="link link--text list-menu__item list-menu__item--link"> 2652 Shipping and Refund Policy 2653 </a> 2654 </li> 2655 2656 <li> 2657 <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"> 2658 About Us 2659 </a> 2660 </li> 2661 2662 <li> 2663 <a href="/pages/å¥ç®æ¯æ" class="link link--text list-menu__item list-menu__item--link"> 2664 å¥ç®æ¯æ 2665 </a> 2666 </li> 2667 2668 <li> 2669 <a href="/blogs/å¿ç«¥ä¸»æ¥å¦ææ¡" class="link link--text list-menu__item list-menu__item--link"> 2670 å¿ç«¥ä¸»æ¥å¦ææ¡ 2671 </a> 2672 </li> 2673 2674 2675 </ul> 2676 2677 </div> 2678 2679 </div> 2680 </div>
2681 <div class="footer__content-bottom"> 2682 <div class="footer__content-bottom-wrapper page-width"> 2683 <div class="footer__column footer__column--info"> 2684 2685 2686 2687 2688 2689 2690 2691 <div class="footer__copyright caption"> 2692 <div class="copyright__content">Copyright © 2026 Partners Training & Communication Sdn.Bhd. (500714-x)</div> 2693 </div> 2694 2695 <div class="footer__copyright caption"> 2696 2697 <div> 2698 2699 2700 2701 <a href="/legal/terms-of-service">Terms of Service</a> 2702 2703 2704 2705 2706 | <a href="/legal/privacy-policy">Privacy Policy</a> 2707 2708 2709 2710 2711 | <a href="/legal/refund-policy">Shipping and Refund Policy</a> 2712 2713 2714 2715 </div> 2716 2717 </div> 2718 2719 </div> 2720 </div> 2721 </div> 2722</footer> 2723 2724 2725 2726 2727 2728 2729
2729<script> 2730 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) 2731</script>
2731 2732 2733 2734 2735
2735<script> 2736 let page_template = 'blog'; 2737 2738 if(document.querySelector('.currency-picker')) { 2739 EasyStore.Currencies.change(document.querySelector('.currency-picker').value) 2740 EasyStore.Currencies.convertAll() 2741 } 2742 2743 document.querySelectorAll('.currency-picker').forEach((el)=>{ 2744 el.addEventListener('change',(event)=>{ 2745 EasyStore.Currencies.change(event.target.value) 2746 2747 2748 if (page_template == 'cart') { 2749 const params = new URLSearchParams(window.location.search); 2750 params.set('delete_cache', 1); 2751 window.location.search = params; 2752 } else { 2753 window.location.reload(); 2754 } 2755 2756 return 2757 2758 2759 document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{ 2760 el.value = event.target.value 2761 }) 2762 2763 if(page_template == 'cart') location.reload(); 2764 }) 2765 }) 2766 </script>
2766 2767 2768 2769 2770 2771
2771<script> 2772 2773 window.variantStrings = { 2774 addToCart: `Add to Cart`, 2775 soldOut: `Sold Out`, 2776 unavailable: `Unavailable`, 2777 } 2778 2779 window.accessibilityStrings = { 2780 shareSuccess: `Link copied to clipboard`, 2781 } 2782 </script>
2782 2783 2784<!-- Snippet:global/body_end: Product Label --> 2785<link href='https://apps.easystore.co/assets/css/product-label/main.css?v2.3' rel='stylesheet' type='text/css' media='screen' />
2785<script src='https://apps.easystore.co/product-labels/productlabelv2.js?shop=ptckul.easy.co' type='text/javascript'></script>
2785 2786<!-- /Snippet --> 2787 2788<!-- Snippet:global/body_end: Product Description Tabs --> 2789<style> 2790 .product-description-tabs{ 2791 color: #000000; 2792 } 2793 .prod-desc-tab-container { 2794 padding: 15px; 2795 margin-right: auto; 2796 margin-left: auto; 2797 background-color: #ffffff; 2798 } 2799 /* Style the list */ 2800 .prod-desc-tab { 2801 list-style-type: none; 2802 margin: 0; 2803 padding: 0; 2804 border-bottom: solid 1px #ddd; 2805 /*overflow: hidden; 2806 border: 1px solid #e6e6e6; 2807 background-color: #fefefe; 2808 border-bottom: 1px solid #ddd;*/ 2809 } 2810 2811 /* Float the list items side by side */ 2812 li.tablinks { 2813 display: inline-block; 2814 border-top: 3px solid transparent; 2815 border-left: 1px solid transparent; 2816 border-right: 1px solid transparent; 2817 margin-bottom: -1px; 2818 margin-right: 3px; 2819 border-radius: 4px 4px 0 0; 2820 background-color: rgba(212,212,212,0.3); 2821 } 2822 2823 /* Style the links inside the list items */ 2824 li.tablinks a { 2825 color: #000000; 2826 cursor: pointer; 2827 margin-right: 2px; 2828 line-height: 1.42857143; 2829 display: block; 2830 padding: 10px 15px; 2831 } 2832 2833 /* Change background color of links on hover */ 2834 li.tablinks:hover { 2835 background-color: #ffffff; 2836 border-bottom-color: transparent; 2837 border-top: 3px solid #ddd; 2838 border-left: 1px solid #ddd; 2839 border-right: 1px solid #ddd; 2840 } /*rgba(212,212,212,0.3)*/ 2841 2842 /* Create an active/current tablink class */ 2843 li.tablinks a:focus, li.tablinks.active{ 2844 border-top: 3px solid #ddd; 2845 border-left: 1px solid #ddd; 2846 border-right: 1px solid #ddd; 2847 background-color: #ffffff; 2848 } 2849 2850 /* Style the tab content */ 2851 .prod-desc-tab-content { 2852 display: none; 2853 padding: 15px 15px; 2854 /*border: 1px solid #ccc;*/ 2855 border-top: none; 2856 clear: both; 2857 -webkit-animation: fadeEffect 1s; 2858 animation: fadeEffect 1s; /* Fading effect takes 1 second */ 2859 } 2860 .prod-desc-tab-content ul{ 2861 list-style-type: disc; 2862 } 2863 2864 /* if user select is_show_title is true, the title will be displayed; if not, hide the title*/ 2865 .prod-desc-tab-content > h2{ 2866 display:none; 2867 } 2868 2869 @-webkit-keyframes fadeEffect { 2870 from {opacity: 0;} 2871 to {opacity: 1;} 2872 } 2873 2874 @keyframes fadeEffect { 2875 from {opacity: 0;} 2876 to {opacity: 1;} 2877 } 2878 2879 .tab_drawer_heading { display: none; } 2880 2881 @media screen and (max-width: 480px) { 2882 .prod-desc-tab { 2883 display: none; 2884 } 2885 .tab_drawer_heading { 2886 background-color: transparent; 2887 color: #000000; 2888 border-bottom: 1px solid #ddd; 2889 margin: 0; 2890 padding: 6px 12px; 2891 display: block; 2892 cursor: pointer; 2893 -webkit-touch-callout: none; 2894 -webkit-user-select: none; 2895 -khtml-user-select: none; 2896 -moz-user-select: none; 2897 -ms-user-select: none; 2898 user-select: none; 2899 position: relative; 2900 } 2901 .tab_drawer_heading:after { 2902 content: ''; 2903 top: 50%; 2904 right: 40px; 2905 position: absolute; 2906 border: solid black; 2907 border-width: 0 3px 3px 0; 2908 display: inline-block; 2909 width: 10px; 2910 height: 10px; 2911 margin-top: -5px; 2912 transform: rotate(45deg); 2913 -webkit-transform: rotate(45deg); 2914 -webkit-transition: all 200ms linear; 2915 -moz-transition: all 200ms linear; 2916 -ms-transition: all 200ms linear; 2917 -o-transition: all 200ms linear; 2918 transition: all 200ms linear; 2919 } 2920 .d_active { 2921 background-color: rgba(212,212,212,0.3); 2922 } 2923 .d_active.tab_drawer_heading:after{ 2924 margin-top: -3px; 2925 transform: rotate(-135deg); 2926 -webkit-transform: rotate(-135deg); 2927 } 2928 } 2929</style> 2930
2931<script type="text/javascript"> 2932 // If the page has no jquery 2933 // if(typeof jQuery == 'undefined'){ 2934 // console.log(456); 2935 // var script = document.createElement('script'); 2936 // script.type = "text/javascript"; 2937 // script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"; 2938 // console.log(script); 2939 // document.getElementsByTagName('head')[0].appendChild(script); 2940 // } 2941 2942 /* if in tab mode */ 2943 $("body").on("click", ".tablinks", function(){ 2944 var id = $(this).data("prod-desc-id"); 2945 2946 // Get all elements with class="prod-desc-tab-content" and hide them 2947 $(".prod-desc-tab-content").hide(); 2948 2949 // Get all elements with class="tablinks" and remove the class "active" 2950 $(".tablinks").removeClass("active"); 2951 2952 // Show the current tab, and add an "active" class to the link that opened the tab 2953 $("#"+id+"_desc_tab_content").show(); 2954 $(this).addClass("active"); 2955 2956 // make mobile view(drawer mode) also in same tab 2957 $(".tab_drawer_heading").removeClass("d_active"); 2958 $(".tab_drawer_heading[data-prod-desc-id='"+id+"']").addClass("d_active"); 2959 2960 }); 2961 2962 /* if in drawer mode */ 2963 $("body").on("click", ".tab_drawer_heading", function() { 2964 var id = $(this).data("prod-desc-id") 2965 var active = $(this).hasClass("d_active") 2966 2967 $(".prod-desc-tab-content").hide(); 2968 $(".tab_drawer_heading").removeClass("d_active"); 2969 2970 if(!active){ 2971 $("#"+id+"_desc_tab_content").show(); 2972 $(this).addClass("d_active"); 2973 window.scroll({ 2974 top: $(this).offset().top - 120, 2975 left: 0, 2976 behavior: 'smooth' 2977 }); 2978 } 2979 2980 $(".tablinks").removeClass("active"); 2981 $(".tablinks[data-prod-desc-id='"+id+"']").addClass("active"); 2982 }); 2983 2984 $(function(){ 2985 var x = $(".product-description").find("h1, h2, h3, h4, h5, h6"); 2986 var title = null; 2987 var body = null; 2988 2989 if(x.length > 1){ 2990 $(".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>"); 2991 $(x).each(function(k, v){ 2992 title = $(v).text(); 2993 2994 if(k == 0){ 2995 body = $(x[0]).nextUntil(x[1]).clone(); 2996 $(".prod-desc-tab").append('<li class="tablinks active" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 2997 $(".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>'); 2998 $("#"+k+"_desc_tab_content h2").after(body); 2999 } 3000 else if(k == x.length){ 3001 body = $(x[k]).nextAll().clone(); 3002 $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 3003 $(".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>'); 3004 $("#"+k+"_desc_tab_content h2").after(body); 3005 } 3006 else{ 3007 body = $(x[k]).nextUntil(x[k+1]).clone(); 3008 $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 3009 $(".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>'); 3010 $("#"+k+"_desc_tab_content h2").after(body); 3011 } 3012 }); 3013 $(".product-description").hide(); 3014 } 3015 3016 }); 3017</script>
3017 3018<!-- /Snippet -->
3019<script> 3020 3021 /* 3022 3023 ------ 3024 Events 3025 ------ 3026 3027 pages/viewed 3028 3029 customers/signup 3030 3031 customers/login 3032 3033 products/searched 3034 3035 collections/viewed 3036 3037 products/viewed 3038 3039 products/shared 3040 3041 wishlists/item_added 3042 3043 carts/items_added 3044 3045 carts/viewed 3046 3047 carts/item_removed 3048 3049 checkouts/initiated 3050 3051 checkouts/shipping_info_added 3052 3053 checkouts/payment_info_added 3054 3055 checkouts/completed 3056 3057 orders/placed 3058 3059 orders/purchased 3060 3061 payments/captured 3062 3063 payments/failed 3064 3065 */ 3066 3067 window.__latest_cart = window.__latest_cart || null; 3068 3069 const _selector = document.querySelector.bind(document), 3070 _selectorAll = document.querySelectorAll.bind(document) 3071 3072 document.addEventListener('DOMContentLoaded', (event) => { 3073 3074 const default_currency = getCookie("currency") 3075 const customer_id = window.__st.cid 3076 const template = window.__st.p 3077 3078 onPageView() 3079 3080 //-----------------------// 3081 // Configs // 3082 //-----------------------// 3083 3084 window.dataLayer = window.dataLayer || [] 3085 3086 Array.prototype.last = Array.prototype.last || function() { 3087 return this[this.length - 1] || null 3088 } 3089 3090 Array.prototype.first = Array.prototype.first || function() { 3091 return this[0] || null 3092 } 3093 3094 //----------------------// 3095 // Triggers // 3096 //----------------------// 3097 3098 const XHR = window.XMLHttpRequest 3099 3100 function xhr() { 3101 3102 const xhr = new XHR() 3103 3104 xhr.addEventListener("readystatechange", function() { 3105 3106 if(xhr.readyState != 4) return 3107 3108 try { 3109 3110 const response_url = xhr.responseURL 3111 3112 if (response_url.includes("cart/add")) { 3113 3114 window.__latest_cart = JSON.parse(xhr.response) 3115 3116 onCartItemsAdded() // ok 3117 3118 } 3119 3120 if (response_url.includes("cart/remove_item_quantity")) { 3121 3122 window.__latest_cart = JSON.parse(xhr.response) 3123 3124 onCartItemRemoved() // ok 3125 3126 } 3127 3128 if (response_url.includes("new_cart?retrieve=true")) { 3129 3130 result = JSON.parse(xhr.response) 3131 3132 if (result.cart) { 3133 window.__latest_cart = result.cart 3134 } 3135 3136 } 3137 3138 } catch(e) { 3139 3140 console.error(e) 3141 3142 } 3143 3144 }, false); 3145 3146 return xhr 3147 3148 } 3149 3150 window.XMLHttpRequest = xhr 3151 3152 switch(template) { 3153 3154 case 'cart': onCartView() // ok 3155 break 3156 case 'product': onProductView() // ok 3157 break 3158 case 'collection': onCollectionView() // ok 3159 break 3160 case 'blog': onBlogView() 3161 break 3162 case 'article': onArticleView() 3163 break 3164 case 'payment_completed': onOrderPlace() 3165 break 3166 case 'payment_fail': onPaymentFail() 3167 break 3168 3169 } 3170 3171 // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]'))) 3172 if (_selector('form[action="/checkout/detail"]')) _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))}) // ok 3173 if (_selector('form[action="/checkout/shipping"]')) _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))}) // ok 3174 if (_selector('form[action="/account/register"]')) _selector('form[action="/account/register"]').addEventListener("submit", onSignUp) // ok 3175 if (_selector('form[action="/account/login"]')) _selector('form[action="/account/login"]').addEventListener("submit", onLogin) // ok 3176 if (_selector('form[action="/search"]')) _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok 3177 if (_selector('#line-login-btn')) _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok 3178 if (_selector('#PlaceOrder')) _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))}); // ok 3179 if (_selector('#add_wishlist')) _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok 3180 if (_selectorAll('a[href="/account/logout"]')) _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok 3181 if (_selector('.CartDrawerTrigger.cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok 3182 if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok 3183 if (_selectorAll('a[class^="share-"]')) _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok 3184 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3185 3186 // For append elements 3187 const bodyMutationObserver = new MutationObserver(() => { 3188 if (_selector('#form__spc #PlaceOrder')) _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok 3189 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3190 }); 3191 bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true}); 3192 3193 //------------------------------// 3194 // Event handlers // 3195 //------------------------------// 3196 3197 function onPageView() { 3198 3199 EasyStore.Event.dispatch('pages/viewed', { 3200 page: { 3201 type: template, 3202 title: document.title, 3203 description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null, 3204 url: location.href, 3205 } 3206 }) 3207 3208 } 3209 3210 function onSignUp() { 3211 3212 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3213 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3214 3215 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3216 3217 let data = {} 3218 3219 if (email_regex.test(email_or_phone)) { 3220 data.method = 'email' 3221 data.email = email_or_phone 3222 } 3223 3224 if (phone_regex.test(email_or_phone)) { 3225 data.method = "phone" 3226 data.phone = email_or_phone 3227 } 3228 3229 if (!data.method) return 3230 3231 EasyStore.Event.dispatch('customers/signup', data) 3232 3233 } 3234 3235 function onLogin() { 3236 3237 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3238 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3239 3240 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3241 3242 let data = {} 3243 3244 if (email_regex.test(email_or_phone)) { 3245 data.method = 'email' 3246 data.email = email_or_phone 3247 } 3248 3249 if (phone_regex.test(email_or_phone)) { 3250 data.method = "phone" 3251 data.phone = email_or_phone 3252 } 3253 3254 if (!data.method) return 3255 3256 EasyStore.Event.dispatch('customers/login', data) 3257 3258 } 3259 3260 function onLineLogin() { 3261 3262 EasyStore.Event.dispatch('customers/login', { method: 'line' }) 3263 3264 } 3265 3266 function onLogout() { 3267 3268 EasyStore.Event.dispatch('customers/logout', { customer_id }) 3269 3270 } 3271 3272 function onBlogView() { 3273 3274 const blog = {"id":1092235,"handle":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848","title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848","description":"","articles_count":5,"all_tags":null,"comments_enabled":null,"moderated":null,"next_article":null,"previous_article":null,"tags":null,"updated_at":"2025-06-18T14:17:47.000+08:00","articles":[{"id":574677,"title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848 | \u897f\u756a\u96c5\u4e66 | \u4f60\u4eec\u90fd\u5f53\u5bfb\u6c42\u8036\u548c\u534e","handle":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u897f\u756a\u96c5\u4e66-\u4f60\u4eec\u90fd\u5f53\u5bfb\u6c42\u8036\u548c\u534e","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u897f\u756a\u96c5\u4e66-\u4f60\u4eec\u90fd\u5f53\u5bfb\u6c42\u8036\u548c\u534e","author":"\u897f\u756a\u96c5\u4e66","description":"\u897f\u756a\u96c5\u4e66 2:3 \u4f60\u4eec\u90fd\u5f53\u5bfb\u6c42\u8036\u548c\u534e \u54c1\u683c\u5b66\u4e60\uff1a\u8010\u5fc3 \u7b2c\u4e00\u8bfe\uff1a\u54c1\u683c\u6559\u5bfc 36 \u897f\u756a\u96c5\u4e66 23 \u6559\u6848 1 36 Zephaniah 23 lesson plan 1 \u7b2c\u4e8c\u8bfe\uff1a\u5723\u7ecf\u6545\u4e8b https:\/\/youtu.be\/G_n2T_O7SYQ?si=WkFLwmzrk6rplhE4 https:\/\/youtu.be\/Hokreb1EXCs?si=V0VOuAK70Dfnrxs2 \u7b2c\u4e09\u8bfe\uff1a\u751f\u6d3b\u54c1\u683c\u6545\u4e8b https:\/\/youtu.be\/shc2ZMrSagg?si=on1Y3dN38jtbpfBC h","image_url":"","image":{"src":""},"published_at":"2026-07-27T15:57:14.000+08:00","updated_at":"2026-07-27T16:11:41.000+08:00"},{"id":574664,"title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848 | \u54c8\u5df4\u8c37\u4e66 | \u6211\u8981\u56e0\u6551\u6211\u7684\u795e\u559c\u4e50","handle":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u54c8\u5df4\u8c37\u4e66-\u6211\u8981\u56e0\u6551\u6211\u7684\u795e\u559c\u4e50","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u54c8\u5df4\u8c37\u4e66-\u6211\u8981\u56e0\u6551\u6211\u7684\u795e\u559c\u4e50","author":"\u54c8\u5df4\u8c37\u4e66","description":"\u559c\u4e50 \u3001\u9760\u4e3b\u559c\u4e50\u3001\u54c8\u5df4\u8c37\u3001\u5148\u77e5\u3001\u54c1\u683c\u6559\u5bfc\u3001\u5723\u7ecf\u6545\u4e8b\u3001\u5148\u77e5\u54c8\u5df4\u8c37\u3001\u513f\u7ae5\u5723\u7ecf\u6545\u4e8b\u3001\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6750\u3001\u513f\u7ae5\u54c1\u683c\u6545\u4e8b\u3001\u513f\u7ae5\u5723\u7ecf\u73ed\u3001\u54c1\u683c\u6545\u4e8b\u3001\u8036\u7a23\u3001\u57fa\u7763\u6559\u3001\u57fa\u7763\u6559\u6545\u4e8b\u3001\u513f\u7ae5\u6545\u4e8b\u3001\u7761\u524d\u6545\u4e8b\u3001joy\/joyful\/ justice\/compassionate\/bible story\/bible stories\/children bible stories\/ children bed time story\/children bible class\/ bible class\/ bible\/jesus\/God","image_url":null,"image":{"src":null},"published_at":"2026-07-27T15:52:01.000+08:00","updated_at":"2026-07-27T15:52:01.000+08:00"},{"id":574524,"title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848 | \u90a3\u9e3f\u4e66 | \u8036\u548c\u534e\u4e0
3274d\u8f7b\u6613\u53d1\u6012","handle":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u90a3\u9e3f\u4e66-\u8036\u548c\u534e\u4e0d\u8f7b\u6613\u53d1\u6012","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u90a3\u9e3f\u4e66-\u8036\u548c\u534e\u4e0d\u8f7b\u6613\u53d1\u6012","author":"\u90a3\u9e3f\u4e66","description":"\u90a3\u9e3f\u4e66\/\u8036\u548c\u534e\u4e0d\u8f7b\u6613\u53d1\u6012\/\u8282\u5236\/\u514b\u5236\/\u513f\u7ae5\u5723\u7ecf\u6545\u4e8b\/\u513f\u7ae5\u54c1\u683c\u6545\u4e8b\/\u5723\u7ecf\/\u5723\u7ecf\u6545\u4e8b\/\u8036\u7a23\/\u4e0a\u5e1d\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6750\/\u513f\u7ae5\u5723\u7ecf\u73ed\/\u54c1\u683c\u6545\u4e8b\/\u57fa\u7763\u6559\/\u57fa\u7763\u6559\u6545\u4e8b\/\u513f\u7ae5\u6545\u4e8b\/\u7761\u524d\u6545\u4e8b\/Nahum\/Self-control\/Slow to anger\/bible stories\/children bible stories\/ children bed time story\/children bible\/Jesus\/bible story\/kids bible\/bible\/Jesus\/God","image_url":null,"image":{"src":null},"published_at":"2026-07-24T16:02:30.000+08:00","updated_at":"2026-07-24T16:17:36.000+08:00"},{"id":574519,"title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848 | \u5f25\u8fe6\u4e66 | \u8981\u4f60\u884c\u516c\u4e49\u3001\u597d\u601c\u60af","handle":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u5f25\u8fe6\u4e66-\u8981\u4f60\u884c\u516c\u4e49-\u597d\u601c\u60af","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848-\u5f25\u8fe6\u4e66-\u8981\u4f60\u884c\u516c\u4e49-\u597d\u601c\u60af","author":"\u5f25\u8fe6\u4e66","description":"\u884c\u516c\u4e49\u3001 \u516c\u4e49&\u601c\u60af \u3001\u54c1\u683c\u6559\u5bfc\u3001Micah \u5f25\u8fe6\u4e66\u3001\u5723\u7ecf\u6545\u4e8b\u3001\u5148\u77e5\u5f25\u8fe6 \u3001\u513f\u7ae5\u5723\u7ecf\u6545\u4e8b\u3001\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6750\u3001\u513f\u7ae5\u54c1\u683c\u6545\u4e8b\u3001\u513f\u7ae5\u5723\u7ecf\u73ed\u3001\u54c1\u683c\u6545\u4e8b\u3001\u8036\u7a23\u3001\u57fa\u7763\u6559\u3001\u57fa\u7763\u6559\u6545\u4e8b\u3001\u513f\u7ae5\u6545\u4e8b\u3001\u7761\u524d\u6545\u4e8b\u3001mercy\/justice\/compassionate\/bible story\/bible stories\/children bible stories\/ children bed time story\/children bible class\/ bible class\/ bible\/Jesus\/God","image_url":null,"image":{"src":null},"published_at":"2026-07-24T15:21:33.000+08:00","updated_at":"2026-07-24T17:07:42.000+08:00"},{"id":558897,"title":"\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848 | \u7ea6\u62ff\u4e66 |\u4f60\u662f\u6709\u6069\u5178\u3001\u6709\u601c\u60af\u7684\u795e","handle":"\u513f\u7ae5\u5723\u7ecf\u4e3b\u65e5\u5b66\u6559\u6848-\u7ea6\u62ff\u4e66-\u4f60\u662f\u6709\u6069\u5178-\u6709\u601c\u60af\u7684\u795e","url":"\/blogs\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6848\/\u513f\u7ae5\u5723\u7ecf\u4e3b\u65e5\u5b66\u6559\u6848-\u7ea6\u62ff\u4e66-\u4f60\u662f\u6709\u6069\u5178-\u6709\u601c\u60af\u7684\u795e","author":"\u7ea6\u62ff\u4e66","description":"\u7ea6\u62ff\/\u5c3c\u5c3c\u5fae\/\u6069\u5178\u7684\u795e\/\u601c\u60af\u7684\u795e\/Jonah\/Nineveh\/compassionate\/mercy\/Jesus\/bible story\/kids bible\/\u513f\u7ae5\u5723\u7ecf\u6545\u4e8b\/\u513f\u7ae5\u54c1\u683c\u6545\u4e8b\/\u5723\u7ecf\/\u5723\u7ecf\u6545\u4e8b\/\u5c3c\u5c3c\u5fae\u6094\u6539\/\u8036\u7a23\/\u4e0a\u5e1d\/\u513f\u7ae5\u4e3b\u65e5\u5b66\u6559\u6750\/\u513f\u7ae5\u5723\u7ecf\u73ed\/\u54c1\u683c\u6545\u4e8b\/\u57fa\u7763\u6559\/\u57fa\u7763\u6559\u6545\u4e8b\/\u513f\u7ae5\u6545\u4e8b\/\u7761\u524d\u6545\u4e8b\/bible stories\/children bible stories\/ children bed time story\/children bible class\/ bible class","image_url":null,"image":{"src":null},"published_at":"2026-07-24T09:38:56.000+08:00","updated_at":"2026-07-24T17:06:25.000+08:00"}]} 3275 3276 EasyStore.Event.dispatch('blogs/viewed', { blog }) 3277 3278 } 3279 3280 function onArticleView() { 3281 3282 const article = "" 3283 3284 EasyStore.Event.dispatch('articles/viewed', { article }) 3285 3286 } 3287 3288 function onProductSearch() { 3289 3290 const query = _selector('input[name=q]').value 3291 3292 if (!query) return 3293 3294 EasyStore.Event.dispatch('products/searched', { query }) 3295 3296 } 3297 3298 function onCollectionView() { 3299 3300 const collection = "" 3301 3302 EasyStore.Event.dispatch('collections/viewed', { collection }) 3303 3304 } 3305 3306 function onProductView() { 3307 3308 const product = "" 3309 3310 EasyStore.Event.dispatch("products/viewed", { product }) 3311 3312 } 3313 3314 function onProductShare(el) { 3315 3316 const product = "" 3317 3318 const channel = el.getAttribute("class").split("-").last() 3319 3320 EasyStore.Event.dispatch('products/shared', { product, channel }) 3321 3322 } 3323 3324 function onWishlistItemAdded() { 3325 3326 let product = "" 3327 const quantity = _selector("#Quantity").value 3328 3329 EasyStore.Event.dispatch('wishlists/item_added', { product }) 3330 3331 } 3332 3333 async function onCartItemsAdded() { 3334 3335 const cart = await getCart() 3336 3337 if(cart && cart.items != undefined && cart.items.length > 0) { 3338 3339 EasyStore.Event.dispatch('carts/item_added', { cart }) 3340 3341 } 3342 3343 } 3344 3345 async function onCartView() { 3346 3347 const cart = await getCart() 3348 3349 EasyStore.Event.dispatch('carts/viewed', { cart }) 3350 3351 } 3352 3353 async function onCartItemRemoved() { 3354 3355 const cart = await getCart() 3356 3357 cart.items = [] 3358 3359 if(cart) { 3360 3361 EasyStore.Event.dispatch('carts/item_removed', { cart }) 3362 3363 } 3364 3365 } 3366 3367 async function onCheckoutInitiate() { 3368 3369 const cart = await getCart() 3370 3371 EasyStore.Event.dispatch('checkouts/initiated', { cart }) 3372 3373 } 3374 3375 async function onShippingInfoAdded(form) { 3376 let checkout = getCheckout() 3377 3378 let form_data = {} 3379 new FormData(form).forEach((value, key) => form_data[key] = value) 3380 3381 let shipping_tier = null 3382 3383 if (form_data.type && form_data.type.startsWith("r_pickup")) { 3384 shipping_tier = `Pickup - ${form_data.pick_location}` 3385 } 3386 3387 if (form_data.s_id) {
3388 shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name") 3389 } 3390 3391 if (!shipping_tier) return 3392 3393 EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier }) 3394 3395 } 3396 3397 async function onPaymentInfoAdded(form) { 3398 3399 let checkout = getCheckout() 3400 3401 let payment_type = new FormData(form).get('payment_method') 3402 3403 EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type }) 3404 3405 } 3406 3407 async function onOrderPlace() { 3408 3409 let cart_token = getCookie("cart_js") 3410 let previous_cart_token = getCookie("previous_cart_ga4_js") 3411 3412 if (previous_cart_token && previous_cart_token == cart_token) { 3413 // Prevent duplicate purchase tracking 3414 return 3415 } 3416 3417 let order = getOrder() 3418 3419 EasyStore.Event.dispatch('orders/placed', { order }) 3420 3421 if(order.is_manual_payment) { 3422 3423 EasyStore.Event.dispatch('orders/purchased', { order }) 3424 3425 } 3426 3427 const last_transaction = order.transactions.last() 3428 3429 if (last_transaction.status) { 3430 3431 EasyStore.Event.dispatch('orders/purchased', { order }) 3432 EasyStore.Event.dispatch('payments/captured', { order }) 3433 3434 } 3435 3436 } 3437 3438 async function onPaymentFail() { 3439 3440 const order = getOrder() 3441 3442 EasyStore.Event.dispatch('payments/failed', { order }) 3443 3444 } 3445 3446 async function onCheckoutComplete(form) { 3447 3448 onPaymentInfoAdded(form) 3449 3450 const checkout = getCheckout() 3451 3452 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3453 3454 } 3455 3456 async function onSinglePageCheckout() { 3457 3458 // let checkout = $("[data-app-checkout]").data("app-checkout") 3459 3460 let checkout = getCheckout() 3461 3462 // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text() 3463 const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML 3464 3465 const shipping_method = _selector("#delivery_method").value 3466 3467 let shipping_tier = null 3468 let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content') 3469 if (shipping_method == "shipping") { 3470 shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML 3471 } 3472 3473 if (shipping_method == "pickup") { 3474 shipping_tier = app_spc_customer_info_label[0].innerHTML 3475 } 3476 3477 if (shipping_tier) { 3478 3479 EasyStore.Event.dispatch('checkouts/shipping_info_added', { 3480 checkout, 3481 shipping_tier, 3482 }) 3483 3484 } 3485 3486 if (payment_type) { 3487 3488 EasyStore.Event.dispatch('checkouts/payment_info_added', { 3489 checkout, 3490 payment_type, 3491 }) 3492 3493 } 3494 3495 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3496 3497 } 3498 3499 }) 3500 3501 3502 //-----------------------// 3503 // Functions // 3504 //-----------------------// 3505 3506 function getCookie(name) { 3507 3508 name += "=" 3509 3510 decodedCookie = decodeURIComponent(document.cookie) 3511 3512 ca = decodedCookie.split(";") 3513 3514 for(i = 0; i < ca.length; i++) { 3515 c = ca[i] 3516 while (c.charAt(0) == " ") { 3517 c = c.substring(1) 3518 } 3519 if (c.indexOf(name) == 0) { 3520 return c.substring(name.length, c.length) 3521 } 3522 } 3523 3524 return "" 3525 3526 } 3527 3528 const parsePrice = price => { 3529 if(typeof price === 'string') { 3530 return parseFloat(price.split(',').join('')) 3531 } 3532 3533 return price 3534 } 3535 3536 const requestCart = async (method, data) => { 3537 3538 let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}}) 3539 result = await response.json() 3540 3541 return result.cart 3542 3543 } 3544 const getCart = async (latest = false) => { 3545 3546 let cart = window.__latest_cart 3547 3548 const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length) 3549 3550 if(latest || cart_invalid) { 3551 cart = await requestCart() 3552 } 3553 3554 cart.items = cart.items || [] 3555 3556 return mapCart(cart) 3557 3558 } 3559 3560 const getCheckout = async () => { 3561 mapCheckout(window.__latest_cart || await requestCart()) 3562 } 3563 3564 const getOrder = async () => { 3565 mapOrder(window.__latest_cart || await requestCart()) 3566 } 3567 3568 //-----------------------// 3569 // Mappers // 3570 //-----------------------// 3571 3572 const fallbackAttribute = (object, attribute) => { 3573 3574 if(!Array.isArray(attribute)) { 3575 attribute = [attribute] 3576 } 3577 3578 let final_value = null 3579 3580 do { 3581 3582 final_value = object[attribute.shift()] 3583 3584 } while(!final_value && attribute.length) 3585 3586 return final_value 3587 3588 } 3589 3590 const map = (object, mapper) => { 3591 3592 const newObject = {} 3593 3594 for(const key in mapper) { 3595 3596 // Handle different keys between new and old format
3597 newObject[key] = fallbackAttribute(object, mapper[key]) 3598 3599 // Cast price to float 3600 if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) { 3601 newObject[key] = parsePrice(newObject[key]) 3602 } 3603 3604 if(newObject[key] === undefined) { 3605 delete newObject[key] 3606 } 3607 3608 } 3609 3610 return newObject 3611 3612 } 3613 3614 const mapCart = cart => { 3615 3616 const oldCart = cart 3617 3618 const mapper = { 3619 id: 'id', 3620 currency: 'currency', 3621 item_count: 'item_count', 3622 items: 'items', 3623 total_price: 'total_price', 3624 latest_items: 'latest_items' 3625 } 3626 3627 cart = map(cart, mapper) 3628 3629 const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || [])) 3630 3631 cart.discount_applications = discounts.map(discount => ({ 3632 title: discount.voucher_code || null, 3633 value: parsePrice(discount.amount), 3634 })) 3635 3636 cart.original_total_price = cart.items.length 3637 ? cart.items 3638 .map(item => item.original_price) 3639 .reduce((sum, price) => sum + price) 3640 : 0 3641 3642 cart.total_discount = cart.discount_applications.length 3643 ? cart.discount_applications 3644 .map(discount => parsePrice(discount.value)) 3645 .reduce((sum, value) => sum + value) 3646 : 0 3647 3648 cart.items = cart.items.map(item => mapLineItem(item)) 3649 3650 return cart 3651 3652 } 3653 3654 const mapCheckout = checkout => { 3655 3656 const mapper = { 3657 note: 'note', 3658 attributes: 'note_attributes', 3659 billing_address: 'billing_address', 3660 currency: 'currency', 3661 customer_id: 'customer_id', 3662 discounts_amount: 'total_discount', 3663 id: 'id', 3664 line_items: 'order_item', 3665 order_number: 'order_number', 3666 shipping_address: 'shipping_address', 3667 shipping_price: 'shipping_tax', 3668 shipping_method: 'shipping_method_name', 3669 tax_price: 'total_tax', 3670 } 3671 3672 checkout = map(checkout, mapper) 3673 3674 checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required) 3675 3676 checkout.line_items = checkout.line_items.map(item => mapLineItem(item)) 3677 3678 return checkout 3679 3680 } 3681 3682 const mapOrder = order => { 3683 3684 const mapper = { 3685 attributes: 'note_attributes', 3686 billing_address: 'billing_address', 3687 cancelled: 'is_cancelled', 3688 cancelled_at: 'cancelled_at', 3689 created_at: 'created_at', 3690 customer_id: 'customer_id', 3691 // discount_applications: 'discount_applications', 3692 email: 'email', 3693 financial_status: 'financial_status', 3694 fulfillment_status: 'fulfillment_status', 3695 line_items: 'order_item', 3696 note: 'note', 3697 order_number: 'order_number', 3698 phone: 'phone', 3699 shipping_address: 'shipping_address', 3700 shipping_methods: 'shipping_methods', 3701 shipping_price: 'total_shipping', 3702 subtotal_price: 'subtotal_price', 3703 // tax_lines: 'tax_lines', 3704 tax_price: 'total_tax', 3705 total_discounts: 'total_discount', 3706 total_net_amount: 'total_amount_include_transaction', 3707 total_price: 'total_price', 3708 transactions: 'transaction_records', 3709 is_manual_payment: 'is_manual_payment', 3710 } 3711 3712 order.email = order.billing_address.email 3713 order.phone = order.billing_address.phone 3714 order.shipping_method = order.shipping_method_name 3715 3716 order = map(order, mapper) 3717 3718 order.line_items = order.line_items.map(item => mapLineItem(item)) 3719 order.transactions = order.transactions.map(transaction => mapTransaction(transaction)) 3720 3721 return order 3722 3723 } 3724 3725 const mapLineItem = line_item => { 3726 3727 const old_line_item = line_item 3728 3729 const mapper = { 3730 final_price: 'price', 3731 image: 'img_url', 3732 message: 'message', 3733 original_line_price: 'original_line_price', 3734 original_price: 'original_price', 3735 properties: 'properties', 3736 quantity: 'quantity', 3737 requires_shipping: 'shipping_required', 3738 sku: 'sku', 3739 taxable: 'taxable', 3740 title: 'product_name', 3741 product_name: 'product_name', 3742 url: 'url', 3743 product_id: 'product_id', 3744 variant_id: 'variant_id', 3745 id: ['id', 'i_id'], 3746 } 3747 3748 line_item = map(line_item, mapper) 3749 3750 line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null 3751 line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null 3752 line_item.image = line_item.image || (old_line_item.image && old_line_item.image.url) || null 3753 3754 return line_item 3755 3756 } 3757 3758 const mapTransaction = transaction => { 3759 3760 const mapper = { 3761 amount: 'amount', 3762 created_at: 'created_at', 3763 gateway: 'gateway_type', 3764 id: 'id', 3765 status: 'status', 3766 } 3767 3768 transaction = map(transaction, mapper) 3769 3770 return transaction 3771 3772 } 3773 3774 3775</script>
3775 3776 3777</body> 3778</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.