1<!doctype html> 2<!--[if IE 9]> <html class="ie9 no-js supports-no-cookies" lang="en"> <![endif]--> 3<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js supports-no-cookies" lang="en"> <!--<![endif]--> 4 5<head> 6 <!-- Basic and Helper page needs --> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width,initial-scale=1"> 10 <meta name="theme-color" content="#0c0e0e"> 11 <link rel="canonical" href="https://breakwaterbooks.com/blogs/blog"> 12 <link href="https://fonts.cdnfonts.com/css/helvetica-neue-9" rel="stylesheet"> 13 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><!-- Title and description --> 14 15 <title> 16 Blog 17 18 19 20 – Breakwater Books Limited 21 22 </title><!-- Helpers --> 23 <!-- /snippets/social-meta-tags.liquid --> 24 25 26 <meta property="og:type" content="website"> 27 <meta property="og:title" content="Blog"> 28 29 30<meta property="og:url" content="https://breakwaterbooks.com/blogs/blog"> 31<meta property="og:site_name" content="Breakwater Books Limited"> 32 33 34 35 36 <meta name="twitter:card" content="summary"> 37 38 39 40 41 <!-- CSS --> 42 <link href="//breakwaterbooks.com/cdn/shop/t/4/assets/timber.scss.css?v=152149532088059697351697212004" rel="stylesheet" type="text/css" media="all" /> 43<!-- Put all third-party CSS files in the vendor.css file and minify the files --> 44<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/vendors.css?v=118496256075335861311623433535" rel="stylesheet" type="text/css" media="all" /> 45 46<!-- Link your style.css and responsive.css files below --> 47<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/style.css?v=25544004696498131011718203193" rel="stylesheet" type="text/css" media="all" /> 48<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/responsive.css?v=4073" rel="stylesheet" type="text/css" media="all" /> 49 50<!-- Theme Default CSS --> 51<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/theme-default.css?v=164840338890082469691623433557" rel="stylesheet" type="text/css" media="all" /> 52<!-- Make your theme CSS calls here --> 53<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/theme-custom.css?v=109956544349450341481623433530" rel="stylesheet" type="text/css" media="all" /> 54 55 56<!-- Make your theme RTL CSS calls here --> 57<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/theme-responsive.css?v=136316976583103671431623433531" rel="stylesheet" type="text/css" media="all" /> 58 59<!-- Make all your dynamic CSS and Color calls here --> 60<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/skin-and-color.css?v=143756214082626334741763472279" rel="stylesheet" type="text/css" media="all" /> 61<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/custom.css?v=128650678655046271831687370373" rel="stylesheet" type="text/css" media="all" /> 62 63 <!-- Header hook for plugins --> 64
65<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
65<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/53276672149/digital_wallets/dialog"> 66<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/blog.atom" /> 67<link rel="next" href="/blogs/blog?page=2">
68<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
vendor: 1 bytes, line 68
68
69<script id="shopify-features" type="application/json">{"accessToken":"6322d17f5d442f89b3624e6674e0559e","betas":["rich-media-storefront-analytics"],"domain":"breakwaterbooks.com","predictiveSearch":true,"shopId":53276672149,"locale":"en"}</script>
vendor: 1 bytes, line 69
69
70<script>var Shopify = Shopify || {}; 71Shopify.shop = "breakwater-books-inc.myshopify.com"; 72Shopify.locale = "en"; 73Shopify.currency = {"active":"CAD","rate":"1.0"}; 74Shopify.country = "US"; 75Shopify.theme = {"name":"Current Build Oct 2022","id":123758280853,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 76Shopify.theme.handle = "null"; 77Shopify.theme.style = {"id":null,"handle":null}; 78Shopify.cdnHost = "breakwaterbooks.com/cdn"; 79Shopify.routes = Shopify.routes || {}; 80Shopify.routes.root = "/"; 81Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 82Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 83Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 84Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 84
84
85<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 85
85
86<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 86
86
87<script> 88 window.Shopify = window.Shopify || {}; 89 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 90 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 91 window.Shopify.SignInWithShop.eligible = true; 92</script>
vendor: 1 bytes, line 92
92
93<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 93
93
94<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 94
94
95<script type="module"> 96 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 97 98 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 99 100</script>
vendor: 1 bytes, line 100
100
101<script> 102 window.Shopify = window.Shopify || {}; 103 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 104 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 105</script>
vendor: 1 bytes, line 105
105
106<script id="__st">var __st={"a":53276672149,"offset":-9000,"reqid":"9df79693-d31a-4845-8c14-c1def97e8461-1791073124","pageurl":"breakwaterbooks.com\/blogs\/blog","s":"blogs-75659608213","u":"11f3c28a0108","p":"blog","rtyp":"blog","rid":75659608213};</script>
vendor: 1 bytes, line 106
106
107<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 107
107
108<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 108
108
109<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//breakwaterbooks.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 109
109
110<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//breakwaterbooks.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
110<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 110
110
111<script> 112 window.Shopify = window.Shopify || {}; 113 window.Shopify.MCP = window.Shopify.MCP || {}; 114 window.Shopify.MCP.enabled = true; 115 window.Shopify.MCP.shop = "breakwater-books-inc.myshopify.com"; 116 window.Shopify.MCP.mcpEndpoint = "https:\/\/breakwaterbooks.com\/api\/mcp"; 117 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 118</script>
vendor: 1 bytes, line 118
118
119<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/breakwaterbooks.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 120</script>
vendor: 1 bytes, line 120
120
121<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://breakwaterbooks.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 122</script>
vendor: 1 bytes, line 122
122
123<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 124 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 125</script>
vendor: 1 bytes, line 125
125
126<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 127</script>
127 128
129<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
129 130 <!-- /snippets/oldIE-js.liquid --> 131 132 133<!--[if lt IE 9]>
134<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 134
134
135<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/respond.min.js?v=52248677837542619231623433526" type="text/javascript"></script>
135 136<link href="//breakwaterbooks.com/cdn/shop/t/4/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 137<link href="//breakwaterbooks.com/search?q=532c1882d6e6af0f96845ac551cd4c39" id="respond-redirect" rel="respond-redirect" />
138<script src="//breakwaterbooks.com/search?q=532c1882d6e6af0f96845ac551cd4c39" type="text/javascript"></script>
138 139<![endif]--> 140 141 142 <!-- JS --><!-- Put all third-party JS files in the vendor.css file and minify the files -->
143<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/vendor.js?v=55579888179554868861623433557"></script>
143 144 145<!-- Ajax Cart js -->
146<script src="//breakwaterbooks.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js"></script>
vendor: 1 bytes, line 146
146
147<script src="//breakwaterbooks.com/cdn/shopifycloud/storefront/assets/themes_support/api.jquery-7ab1a3a4.js"></script>
vendor: 1 bytes, line 147
147
148<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/cart.api.js?v=122564284860372206251623433488"></script>
148 149 150<!-- Your main.js file upload this file -->
151<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/theme.js?v=136211941601013979651645560082"></script>
151 152 153 <!-- "snippets/alireviews_core.liquid" was not rendered, the associated app was uninstalled --> 154<!-- GSSTART Coming Soon code start. Do not change -->
155<script type="text/javascript"> gsProductByVariant = {}; gsProductCSID = ""; gsDefaultV = ""; </script>
155<script type="text/javascript" src="https://gravity-software.com/js/shopify/pac_shop30029.js?v=gs3e61f5cbc91d4693f9290b8b367dce3axx"></script>
155 156<!-- Coming Soon code end. Do not change GSEND --><!-- BEGIN app block: shopify://apps/precom-coming-soon-preorders/blocks/app-embed/7c015b04-7c8f-46b9-8c69-733f0ba3bb1b --> <!-- GSSTART Coming Soon code start... Do not change -->
157<script type="text/javascript"> gsProductByVariant = {}; gsProductCSID = ""; gsDefaultV = ""; </script>
157<script type="text/javascript" src="https://gravity-software.com/js/shopify/pac_shopbystore53276672149.js?v=ac701823e61f5cbc91d4693f9290b8b367dce3a"></script>
157 158<!-- Coming Soon code end. Do not change GSEND --> 159 160 161 162<!-- END app block --><meta property="og:image" content="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/W5xSjBfA.jpg?v=1660740818" /> 163<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/W5xSjBfA.jpg?v=1660740818" /> 164<meta property="og:image:width" content="564" /> 165<meta property="og:image:height" content="398" /> 166<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
167<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 53276672149,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 167
167
168<script> 169 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 170</script>
vendor: 1 bytes, line 170
170
171<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
171).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 53276672149,storefrontBaseUrl: "https://breakwaterbooks.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://breakwaterbooks.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"80511198","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Breakwater Books Limited","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"breakwater-books-inc.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/breakwaterbooks.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://breakwaterbooks.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"123758280853","themePublished":"true","eventMetadataId":"5a3f2d19-4507-4e76-b498-1fef637b7b76","pageType":"blog","resourceId":"75659608213","shopId":"53276672149","storefrontBaseUrl":"https:\/\/breakwaterbooks.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
171<script> 172 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 173 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 174 window.ShopifyAnalytics.meta.currency = 'CAD'; 175 var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":75659608213,"requestId":"9df79693-d31a-4845-8c14-c1def97e8461-1791073124"}}; 176 for (var attr in meta) { 177 window.ShopifyAnalytics.meta[attr] = meta[attr]; 178 } 179</script>
vendor: 1 bytes, line 179
179
180<script class="analytics"> 181 (function () { 182 var customDocumentWrite = function(content) { 183 var jquery = null; 184 185 if (window.jQuery) { 186 jquery = window.jQuery; 187 } else if (window.Checkout && window.Checkout.$) { 188 jquery = window.Checkout.$; 189 } 190 191 if (jquery) { 192 jquery('body').append(content); 193 } 194 }; 195 196 var hasLoggedConversion = function(token) { 197 if (token) { 198 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 199 } 200 return false; 201 } 202 203 var setCookieIfConversion = function(token) { 204 if (token) { 205 var twoMonthsFromNow = new Date(Date.now()); 206 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 207 208 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 209 } 210 } 211 212 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 213 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 214 if (trekkie.integrations) { 215 return; 216 } 217 trekkie.methods = [ 218 'identify', 219 'page', 220 'ready', 221 'track', 222 'trackForm', 223 'trackLink' 224 ]; 225 trekkie.factory = function(method) { 226 return function() { 227 var args = Array.prototype.slice.call(arguments); 228 args.unshift(method); 229 trekkie.push(args); 230 if (method == 'track' || method == 'page') { 231 var pageUrl; 232 try { 233 pageUrl = window.location.href; 234 } catch (e) {} 235 var pageReferrer; 236 try { 237 pageReferrer = document.referrer; 238 } catch (e) {} 239 try { 240 if (window.__TREKKIE_SHIM_QUEUE == null) { 241 window.__TREKKIE_SHIM_QUEUE = []; 242 } 243 window.__TREKKIE_SHIM_QUEUE.push({ 244 from: 'trekkie-stub', 245 method: method, 246 args: args.slice(1), 247 pageContext: { 248 url: pageUrl, 249 referrer: pageReferrer 250 } 251 }); 252 } catch (e) { 253 // no-op 254 } 255 } 256 return trekkie; 257 }; 258 }; 259 for (var i = 0; i < trekkie.methods.length; i++) { 260 var key = trekkie.methods[i]; 261 trekkie[key] = trekkie.factory(key); 262 } 263 trekkie.load = function(config) { 264 trekkie.config = config || {}; 265 trekkie.config.initialDocumentCookie = document.cookie; 266 var first = document.getElementsByTagName('script')[0]; 267var script = document.createElement('script'); 268script.type = 'text/javascript'; 269script.onerror = function(e) { 270 var scriptFallback = document.createElement('script'); 271 scriptFallback.type = 'text/javascript'; 272 scriptFallback.onerror = function(error) { 273 var Monorail = { 274 produce: function produce(monorailDomain, schemaId, payload) { 275 var currentMs = new Date().getTime(); 276 var event = { 277 schema_id: schemaId, 278 payload: payload, 279 metadata: { 280 event_created_at_ms: currentMs, 281 event_sent_at_ms: currentMs 282 } 283 }; 284 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 285 }, 286 sendRequest: function sendRequest(endpointUrl, payload) { 287 // Try the sendBeacon API 288 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 289 var blobData = new window.Blob([payload], { 290 type: 'text/plain' 291 }); 292 293 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 294 return true; 295 } // sendBeacon was not successful 296 297 } // XHR beacon 298 299 var xhr = new XMLHttpRequest(); 300 301 try { 302 xhr.open('POST', endpointUrl); 303 xhr.setRequestHeader('Content-Type', 'text/plain'); 304 xhr.send(payload); 305 } catch (e) { 306 console.log(e); 307 } 308 309 return false; 310 }, 311 isIos12: function isIos12() { 312 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 313 } 314 }; 315 Monorail.produce('monorail-edge.shopifysvc.com', 316 'trekkie_storefront_load_errors/1.1', 317 {shop_id: 53276672149, 318 theme_id: 123758280853, 319 app_name: "storefront", 320 context_url: window.location.href, 321 source_url: "//breakwaterbooks.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 322 323 }; 324 scriptFallback.async = true; 325 scriptFallback.src = '//breakwaterbooks.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 326 first.parentNode.insertBefore(scriptFallback, first); 327}; 328script.async = true; 329script.src = '//breakwaterbooks.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 330first.parentNode.insertBefore(script, first); 331 332 }; 333 trekkie.load( 334 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":53276672149,"isMerchantRequest":null,"themeId":12375828
3340853,"themeCityHash":"11684203977459976642","contentLanguage":"en","currency":"CAD","eventMetadataId":"5a3f2d19-4507-4e76-b498-1fef637b7b76"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 335 ); 336 337 var loaded = false; 338 trekkie.ready(function() { 339 if (loaded) return; 340 loaded = true; 341 342 window.ShopifyAnalytics.lib = window.trekkie; 343 344 var originalDocumentWrite = document.write; 345 document.write = customDocumentWrite; 346 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 347 document.write = originalDocumentWrite; 348 349 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 350 var token = match? match[1]: undefined; 351 if (!hasLoggedConversion(token)) { 352 setCookieIfConversion(token); 353 354 } 355 }); 356 357 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":75659608213,"requestId":"9df79693-d31a-4845-8c14-c1def97e8461-1791073124","shopifyEmitted":true}); 358 359 var eventsListenerScript = document.createElement('script'); 360 eventsListenerScript.async = true; 361 eventsListenerScript.src = "//breakwaterbooks.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 362 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 363})();</script>
363 364
364<script> 365 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 366 window.ga = function ga() { 367 (window.ga.q = window.ga.q || []).push(arguments); 368 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 369 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 370 } 371 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 372 }; 373 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 374 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 375 } 376 } 377</script>
vendor: 1 bytes, line 377
377
378<script 379 defer 380 src="https://breakwaterbooks.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 381 data-application="storefront-renderer" 382 data-shop-id="53276672149" 383 data-render-region="gcp-us-central1" 384 data-page-type="blog" 385 data-theme-instance-id="123758280853" 386 data-theme-name="" 387 data-theme-version="" 388 data-monorail-region="shop_domain" 389 data-resource-timing-sampling-rate="10" 390 data-shs="true" 391 data-shs-beacon="true" 392 data-shs-export-with-fetch="true" 393 data-shs-logs-sample-rate="1" 394 data-shs-beacon-endpoint="https://breakwaterbooks.com/api/collect" 395></script>
395 396<meta name="shopify-y" content="276992a8-31b9-4bd2-a869-37458d0baf30" data-expiration="1822630724000"><meta name="shopify-s" content="09de39ba-35b8-4f6d-b60c-cf46cbaedc82" data-expiration="1791074924000"><meta name="new-cookie-storage-activated" content="t"> 397</head> 398 399<body id="blog" class="template-blog " ><div class="wrapper"><div id="shopify-section-header" class="shopify-section"> 400 401<!--==================== header area ====================--> 402<div class="header-area header-sticky header-common-class"> 403 <div class="container"> 404 <div class="row logo-header"> 405 <div class="col-lg-6"> 406 <!--======= header wrapper =======--> 407 <div class="header-wrapper d-none d-lg-flex"><div class="logo"> 408 409 <a href="/" class="theme-logo innerpage-desktop-logo"> 410 <img src="//breakwaterbooks.com/cdn/shop/files/BBL-Logo-v1d-white-notext_275x.png?v=1624563880" alt="Breakwater Innerpage Logo"> 411 </a> 412 413</div><!-- menu wrapper --> 414 415 <!-- header icon --> 416 417 </div> 418 </div> 419 <div class="col-lg-6" style="display:flex"> 420 <div class="customlogotext" > 421 <span class="logo-extend-text">NEWFOUNDLAND'S PREMIER PUBLISHER SINCE 1973</span> 422 </div> 423</div> 424 </div></div> 425 <div class="navigation-menu-area d-none d-lg-block"> 426 <div class="container"> 427 <div class="row"> 428 <div class="col-lg-2"> 429 <ul></ul> 430 </div> 431 <div class="col-lg-8" style="text-align:center"> 432 <div class="navigation-menu-wrapper"> 433 <nav> 434 <ul> 435 436 437 438 439 <li><a href="/">HOME</a></li> 440 441 442 443 444 445 <li class="menu-item-has-children"><a href="/collections/all-products">BOOKS</a> 446 447 <ul class="common-class jekono_nam"> 448 449 450 451 452 453 <li class="sub-drop-add-class menu-item-has-children"> 454 <a href="/collections/fiction">FICTION</a> 455 <ul class="sub-menu"> 456 457 <li><a href="/collections/fiction">All</a></li> 458 459 <li><a href="/collections/fiction-historical-fiction">Historical Fiction</a></li> 460 461 <li><a href="/collections/fiction-mystery-suspense">Mystery & Suspense</a></li> 462 463 <li><a href="/collections/short-stories-anthologies">Short Stories & Anthologies</a></li> 464 465 </ul> 466 </li> 467 468 469 470 471 472 473 474 475 <li class="sub-drop-add-class menu-item-has-children"> 476 <a href="/collections/non-fiction">NON FICTION</a> 477 <ul class="sub-menu"> 478 479 <li><a href="/collections/non-fiction">All</a></li> 480 481 <li><a href="/collections/history">History</a></li> 482 483 <li><a href="/collections/nature-travel">Nature & Travel</a></li> 484 485 <li><a href="/collections/biography-memoir">Biography & Memoir</a></li> 486 487 <li><a href="/collections/politics-social-sciences">Politics & Social Sciences</a></li> 488 489 <li><a href="/collections/true-crime">True Crime</a></li> 490 491 </ul> 492 </li> 493 494 495 496 497 498 499 500 501 <li class="sub-drop-add-class menu-item-has-children"> 502 <a href="/collections/cookbooks">COOKBOOKS</a> 503 <ul class="sub-menu"> 504 505 <li><a href="/collections/cookbooks/Food">Food</a></li> 506 507 <li><a href="/collections/drink">Drink</a></li> 508 509 </ul> 510 </li> 511 512 513 514 515 516 517 518 519 <li class="sub-drop-add-class menu-item-has-children"> 520 <a href="/collections/childrens-and-young-adult">CHILDREN'S & YOUNG ADULT</a> 521 <ul class="sub-menu"> 522 523 <li><a href="/collections/childrens-fiction">Fiction</a></li> 524 525 <li><a href="/collections/childrens-non-fiction">Non-Fiction</a></li> 526 527 </ul> 528 </li> 529 530 531 532 533 534 535 536 537 <li class="sub-drop-add-class"><a href="/collections/poetry">POETRY</a></li> 538 539 540 541 542 543 544 <li class="sub-drop-add-class"><a href="/collections/drama">DRAMA</a></li> 545 546 547 548 549 550 551 <li class="sub-drop-add-class"><a href="/collections/art-photography">ART & PHOTOGRAPHY</a></li> 552 553 554 555 556 557 558 <li class="sub-drop-add-class menu-item-has-children"> 559 <a href="/collections/curated-collection">CURATED COLLECTIONS</a> 560 <ul class="sub-menu"> 561 562 <li><a href="/collections/humour">HUMOUR</a></li> 563 564 <li><a href="/collections/bipoc-lit">BIPOC LIT</a></li> 565 566 <li><a href="/collections/queer-lit">QUEER LIT</a></li> 567 568 </ul> 569 </li> 570 571 572 573 574 575 576 577 578 <li class="sub-drop-add-class"><a href="/collections/ebooks-audiobooks">EBOOKS & AUDIOBOOKS</a></li> 579 580 581 582 583 584 585 <li class="sub-drop-add-class"><a href="/collections/education">EDUCATION</a></li> 586 587 588 589 590 591 592 <li class="sub-drop-add-class"><a href="/collections/current-season">NEW RELEASES</a></li> 593 594 595 596 597 598 599 <li class="sub-drop-add-class"><a href="/collections/coming-soon">COMING SOON</a></li> 600 601 602 603 604 605 606 <li class="sub-drop-add-class"><a href="/collections/bargain-books">BARGAIN BOOKS</a></li> 607 608 609 610 </ul> 611 612 </li> 613 614 615 616 617 618 <li><a href="/blogs/blog">BLOG</a></li> 619 620 621 622 623 <li><a href="/pages/about">ABOUT</a></li> 624 625 626 627 628 <li><a href="/pages/contacts">CONTACT</a></li> 629 630 631 632 633 <li><a href="/pages/resources">FREE RESOURCES</a></li> 634 635 636 637 </ul> 638</nav> 639 640
641<script> 642 $('.mega-menu-add-class').parent('ul').addClass('mega-menu four-column'); 643 $('.mega-menu-add-class').parents('.menu-item-has-children').addClass('mega_static'); 644 $('.sub-drop-add-class').parents('.common-class').addClass('sub-menu'); 645</script>
645 646 647 648 649 650 651 652 </div> 653 </div> 654 <div class="col-lg-2" > 655 <div class="header-icon-wrapper"> 656 <ul class="icon-list"><li> 657 <a href="javascript:void(0)" id="search-overlay-trigger"> 658 <i class="ion-ios-search-strong"></i> 659 </a> 660 </li><li> 661 <div class="header-cart-icon"> 662 663 664 665 666<a href="javascript:void(0)" id="minicart-trigger"> 667 <!-- <i class="ion-bag"></i> --> 668 <i class="fa fa-shopping-cart" aria-hidden="true"></i> 669 <span class="counter bigcounter">0</span> 670</a> 671 672<!-- mini cart --> 673<div class="mini-cart" id="mini-cart"> 674 675 <div class="cart-empty-title" style="display:block;"> 676 <h3>Your cart is currently empty.</h3> 677 </div> 678 679 <div class="cart-items-wrapper ps-scroll single-product-cart single-cart-item-loop" style="display:none;"> 680 681 682 683 </div> 684 685 <div class="cart-calculation single-product-cart" style="display:none;"> 686 <table class="table"> 687 <tbody> 688 689 <tr> 690 <td class="text-left">Sub Total :</td> 691 <td class="text-right shopping-cart__total">$0.00</td> 692 </tr> 693 694 <tr> 695 <td class="text-left">Total :</td> 696 <td class="text-right shopping-cart__total">$0.00 </td> 697 </tr> 698 699 </tbody> 700 </table> 701 </div> 702 703 704 <div class="cart-buttons single-product-cart" style="display:none;"> 705 <a href="/cart">View Cart</a> 706 <a href="/checkout">Checkout</a> 707 </div> 708 709 710</div> 711 712 </div> 713 </li> 714 715 716 717 </ul> 718 </div> 719 </div> 720 721 </div> 722 </div> 723 </div> 724 725 <!--======= End of header wrapper =======--> 726 727 728 <!--======= mobile navigation area =======--> 729 <div class="header-mobile-navigation d-block d-lg-none"> 730 <div class="row align-items-center"> 731 <div class="col-6 col-md-6"> 732 <div class="header-logo"> 733 734<a href="/" class="theme-logo innerpage-logo"> 735 <img src="//breakwaterbooks.com/cdn/shop/files/BBL-Logo-v1d-white-notext_275x.png?v=1624563880" alt="Breakwater Innerpage Logo"> 736</a></div> 737 </div> 738 <div class="col-6 col-md-6"> 739 <div class="mobile-navigation text-right"> 740 <div class="header-icon-wrapper"> 741 <ul class="icon-list justify-content-end"> 742 743 <li> 744 <div class="header-cart-icon"> 745 <a href="/cart"> 746 <!-- <i class="ion-bag"></i> --> 747 <i class="fa fa-shopping-cart" aria-hidden="true"></i> 748 <span class="counter bigcounter">0</span> 749 </a> 750 </div> 751 </li> 752 753 <li> 754 <a href="javascript:void(0)" class="mobile-menu-icon" id="mobile-menu-trigger"><i class="fa fa-bars"></i></a> 755 </li> 756 757 </ul> 758 </div> 759 </div> 760 </div> 761 </div> 762 </div> 763 <!--======= End of mobile navigation area =======--> 764 765 </div> 766 </div> 767 768 </div> 769</div> 770<!--==================== End of header area ====================--> 771 772 773 774 775 776 777 778 779<!--=============== search overlay ==============--> 780<div class="search-overlay" id="search-overlay"> 781 <a href="javascript:void(0)" class="close-search-overlay" id="close-search-overlay"> 782 <i class="ion-ios-close-empty"></i> 783 </a> 784 <!--======= search form =======--> 785 786 <div class="search-form"> 787 <form action="/search" method="get" role="search"> 788 <input type="search" id="search" name="q" value="" placeholder="Search our store"> 789 <button type="submit"><i class="ion-android-search"></i></button> 790 </form> 791 </div> 792 793 <!--======= End of search form =======--> 794</div> 795<!--========== End of search overlay ============--> 796 797 798<!--======= offcanvas mobile menu =======--> 799<div class="offcanvas-mobile-menu header-common-class" id="offcanvas-mobile-menu"> 800 <a href="javascript:void(0)" class="offcanvas-menu-close" id="offcanvas-menu-close-trigger"> 801 <i class="ion-android-close"></i> 802 </a> 803 804 <div class="offcanvas-wrapper"> 805 806 <div class="offcanvas-inner-content"><div class="offcanvas-mobile-search-area"> 807 <form action="/search" method="get" role="search"> 808 <input type="search" 809 name="q" 810 value="" 811 placeholder="Search our store"> 812 <button type="submit"><i class="fa fa-search"></i></button> 813 </form> 814 </div><nav class="offcanvas-navigation"> 815 <ul> 816 817 818 819 820 <li><a href="/">HOME</a></li> 821 822 823 824 825 826 <li class="menu-item-has-children"><a href="/collections/all-products">BOOKS</a> 827 <ul class="sub-menu"> 828 829 830 831 832 833 <li class="menu-item-has-children"><a href="/collections/fiction">FICTION</a> 834 <ul class="sub-menu"> 835 836 <li><a href="/collections/fiction">All</a></li> 837 838 <li><a href="/collections/fiction-historical-fiction">Historical Fiction</a></li> 839 840 <li><a href="/collections/fiction-mystery-suspense">Mystery & Suspense</a></li> 841 842 <li><a href="/collections/short-stories-anthologies">Short Stories & Anthologies</a></li> 843 844 </ul> 845 </li> 846 847 848 849 850 851 852 <li class="menu-item-has-children"><a href="/collections/non-fiction">NON FICTION</a> 853 <ul class="sub-menu"> 854 855 <li><a href="/collections/non-fiction">All</a></li> 856 857 <li><a href="/collections/history">History</a></li> 858 859 <li><a href="/collections/nature-travel">Nature & Travel</a></li> 860 861 <li><a href="/collections/biography-memoir">Biography & Memoir</a></li> 862 863 <li><a href="/collections/politics-social-sciences">Politics & Social Sciences</a></li> 864 865 <li><a href="/collections/true-crime">True Crime</a></li> 866 867 </ul> 868 </li> 869 870 871 872 873 874 875 <li class="menu-item-has-children"><a href="/collections/cookbooks">COOKBOOKS</a> 876 <ul class="sub-menu"> 877 878 <li><a href="/collections/cookbooks/Food">Food</a></li> 879 880 <li><a href="/collections/drink">Drink</a></li> 881 882 </ul> 883 </li> 884 885 886 887 888 889 890 <li class="menu-item-has-children"><a href="/collections/childrens-and-young-adult">CHILDREN'S & YOUNG ADULT</a> 891 <ul class="sub-menu"> 892 893 <li><a href="/collections/childrens-fiction">Fiction</a></li> 894 895 <li><a href="/collections/childrens-non-fiction">Non-Fiction</a></li> 896 897 </ul> 898 </li> 899 900 901 902 903 904 <li><a href="/collections/poetry">POETRY</a></li> 905 906 907 908 909 <li><a href="/collections/drama">DRAMA</a></li> 910 911 912 913 914 <li><a href="/collections/art-photography">ART & PHOTOGRAPHY</a></li> 915 916 917 918 919 920 <li class="menu-item-has-children"><a href="/collections/curated-collection">CURATED COLLECTIONS</a> 921 <ul class="sub-menu"> 922 923 <li><a href="/collections/humour">HUMOUR</a></li> 924 925 <li><a href="/collections/bipoc-lit">BIPOC LIT</a></li> 926 927 <li><a href="/collections/queer-lit">QUEER LIT</a></li> 928 929 </ul> 930 </li> 931 932 933 934 935 936 <li><a href="/collections/ebooks-audiobooks">EBOOKS & AUDIOBOOKS</a></li> 937 938 939 940 941 <li><a href="/collections/education">EDUCATION</a></li> 942 943 944 945 946 <li><a href="/collections/current-season">NEW RELEASES</a></li> 947 948 949 950 951 <li><a href="/collections/coming-soon">COMING SOON</a></li> 952 953 954 955 956 <li><a href="/collections/bargain-books">BARGAIN BOOKS</a></li> 957 958 959 960 </ul> 961 </li> 962 963 964 965 966 967 <li><a href="/blogs/blog">BLOG</a></li> 968 969 970 971 972 <li><a href="/pages/about">ABOUT</a></li> 973 974 975 976 977 <li><a href="/pages/contacts">CONTACT</a></li> 978 979 980 981 982 <li><a href="/pages/resources">FREE RESOURCES</a></li> 983 984 985 986 </ul> 987</nav> 988 989 990 991 992 <div class="offcanvas-settings"> 993 <nav class="offcanvas-navigation"> 994 <ul> 995</ul> 996 </nav> 997 </div> 998 999 1000 </div> 1001 </div> 1002 1003</div> 1004 1005<!--======= End of offcanvas mobile menu =======--> 1006<style> 1007 1008 .header-common-class .navigation-menu-wrapper nav > ul > li > a, 1009 .header-common-class .navigation-menu-wrapper nav > ul > li > a, 1010 .header-common-class .navigation-menu-wrapper .menu-item-has-children ul li a, 1011 .header-common-class .header-icon-wrapper > ul > li a, 1012 .header-common-class .mini-cart .single-cart-item .content .product-title a, 1013 .header-common-class .settings-dropdown-wrapper.common-class .switcher-currency-trigger, 1014 .header-common-class .common-class .switcher-dropdown li a, 1015 .header-common-class .offcanvas-navigation ul li a, 1016 .header-common-class .offcanvas-navigation .current-currency.title{ 1017 color: #ffffff; 1018 } 1019 1020 .header-common-class .navigation-menu-wrapper nav > ul > li.active > a, 1021 .header-common-class .navigation-menu-wrapper nav > ul > li:hover > a, 1022 .header-common-class .navigation-menu-wrapper .menu-item-has-children ul > li:hover > a, 1023 .header-common-class .header-cart-icon .counter, 1024 .header-common-class .settings-menu-wrapper .single-settings-block ul li a:hover, 1025 .header-common-class .settings-menu-wrapper .single-settings-block ul li a.active, 1026 .header-common-class .mini-cart .single-cart-item .content .product-title a:hover, 1027 .header-common-class .mini-cart .single-cart-item .remove-icon:hover i, 1028 .header-common-class .settings-menu-wrapper .single-settings-block ul li.active a,
1029 .header-common-class .header-icon-wrapper > ul > li > a:hover, 1030 .header-common-class .header-icon-wrapper > ul > li .header-cart-icon > a:hover, 1031 .settings-dropdown-wrapper.common-class .currency-trigger.dropdown-toggle:hover, 1032 .header-common-class .settings-dropdown-wrapper.common-class .switcher-currency-trigger:hover .currency-trigger.dropdown-toggle, 1033 .header-common-class .common-class .switcher-dropdown li:hover > a, 1034 .header-common-class .common-class .switcher-dropdown li.active a, 1035 .header-common-class .offcanvas-navigation ul li:hover > a, 1036 .header-common-class .offcanvas-navigation .switcher-dropdown .currency__item.active a, 1037 .header-common-class .offcanvas-navigation ul li.menu-item-has-children.active .current-currency.title 1038 { 1039 color: #ffffff; 1040 } 1041 .header-common-class .setting-button:hover span{ 1042 background-color: #ffffff; 1043 } 1044 1045</style><style> 1046 .theme-logo img{ 1047 max-width: 275px; 1048 } 1049</style> 1050 1051 1052 1053 1054 1055 1056 1057</div> 1058<!--==================== breadcrumb area ====================--> 1059<div class="breadcrumb-area section-space--half"> 1060 <div class="container wide"> 1061 <div class="row"> 1062 <div class="col-lg-12"> 1063 <!--======= breadcrumb wrpapper =======--> 1064 <div class="breadcrumb-bg"> 1065 <!--======= breadcrumb content =======--> 1066 <div class="breadcrumb-content"> 1067 1068 1069 1070 <h2 class="breadcrumb-content__title">Blog</h2> 1071 1072 1073 1074<nav class="" role="navigation" aria-label="breadcrumbs"> 1075 <ul class="breadcrumb-list breadcrumb-content__page-map"> 1076 1077 <li> 1078 <a href="/" title="Back to the home page">Home</a> 1079 </li> 1080 <li> 1081 1082 1083 1084 1085 <span>Blog</span> 1086 1087 1088 1089 </li> 1090 </ul> 1091</nav> 1092 1093 1094 1095 1096 1097 </div> 1098 <!--======= End of breadcrumb content =======--> 1099 </div> 1100 <!--======= End of breadcrumb wrpapper =======--> 1101 </div> 1102 </div> 1103 </div> 1104</div> 1105<!--==================== End of breadcrumb area ====================--> 1106 <div id="shopify-section-breadcrumb" class="shopify-section"><style></style> 1107 1108 1109 1110</div> 1111<main> 1112 <div id="shopify-section-blog-template" class="shopify-section"><!--==================== page content area ====================--> 1113<div class="page-content-area"> 1114 <div class="container"> 1115 <div class="row "> 1116 <div class="col-lg-12"> 1117 <!--======= page wrapper =======--> 1118 <div class="page-wrapper"> 1119 <div class="page-content-wrapper"> 1120 <div class="row"><div class="col-lg-12"><!--======= blog page content =======--> 1121 <div class="blog-page-content"> 1122 <div class="row"> 1123 1124 1125 <div class="col-md-12 col-12"> 1126 <!--======= single blog post =======--> 1127<div class="single-blog-post"> 1128 <div class="row"> 1129 1130 <div class="single-blog-post__image col-md-2"> 1131 <a href="/blogs/blog/fall-is-on-the-horizon-august-at-breakwater-books"><img src="//breakwaterbooks.com/cdn/shop/articles/a06cd6ba-628f-8a7b-b3c7-3db29156d269_740x470_crop_center.jpg?v=1788181012" alt="Fall is on the Horizon! August at Breakwater Books" /></a> 1132 </div> 1133 1134 1135 <div class="single-blog-post__content col-md-10"> 1136 <h3 class="title"><a href="/blogs/blog/fall-is-on-the-horizon-august-at-breakwater-books">Fall is on the Horizon! August at Breakwater Books</a></h3> 1137 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-08-31T12:56:49Z">Aug 31, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1138 <p class="post-meta"> <span class="date"><time datetime="2026-08-31T12:56:49Z">Aug 31, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1139 1140 <p class="short-desc"> 1141 1142  SAVE THE DATE FOR A BUSY FALL! After a busy summer of award announcements,... 1143 1144 </p> 1145 <a class="blog-post-link" href="/blogs/blog/fall-is-on-the-horizon-august-at-breakwater-books">Read more</a> 1146 </div> 1147 </div> 1148</div> 1149<!--======= End of single blog post =======--> 1150 </div> 1151 1152 <div class="col-md-12 col-12"> 1153 <!--======= single blog post =======--> 1154<div class="single-blog-post"> 1155 <div class="row"> 1156 1157 <div class="single-blog-post__image col-md-2"> 1158 <a href="/blogs/blog/celebrating-milestones-july-at-breakwater-books"><img src="//breakwaterbooks.com/cdn/shop/articles/IMG_6143_740x470_crop_center.jpg?v=1785766367" alt="Celebrating Milestones! July at Breakwater Books" /></a> 1159 </div> 1160 1161 1162 <div class="single-blog-post__content col-md-10"> 1163 <h3 class="title"><a href="/blogs/blog/celebrating-milestones-july-at-breakwater-books">Celebrating Milestones! July at Breakwater Books</a></h3> 1164 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-08-03T14:12:43Z">Aug 03, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1165 <p class="post-meta"> <span class="date"><time datetime="2026-08-03T14:12:43Z">Aug 03, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1166 1167 <p class="short-desc"> 1168 1169 Celebrating Milestones! We've made it to July, which marks one year in Breakwater's new downtown... 1170 1171 </p> 1172 <a class="blog-post-link" href="/blogs/blog/celebrating-milestones-july-at-breakwater-books">Read more</a> 1173 </div> 1174 </div> 1175</div> 1176<!--======= End of single blog post =======--> 1177 </div> 1178 1179 <div class="col-md-12 col-12"> 1180 <!--======= single blog post =======--> 1181<div class="single-blog-post"> 1182 <div class="row"> 1183 1184 <div class="single-blog-post__image col-md-2"> 1185 <a href="/blogs/blog/summer-flowers-june-at-breakwater-books"><img src="//breakwaterbooks.com/cdn/shop/articles/719109498_1412703764221407_4847721033259235870_n_39155a17-e3c3-4436-86b6-6e01beda875d_740x470_crop_center.jpg?v=1783344945" alt="Summer Flowers! June at Breakwater Books" /></a> 1186 </div> 1187 1188 1189 <div class="single-blog-post__content col-md-10"> 1190 <h3 class="title"><a href="/blogs/blog/summer-flowers-june-at-breakwater-books">Summer Flowers! June at Breakwater Books</a></h3> 1191 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-07-06T13:35:42Z">Jul 06, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1192 <p class="post-meta"> <span class="date"><time datetime="2026-07-06T13:35:42Z">Jul 06, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1193 1194 <p class="short-desc"> 1195
1196 SUMMER FLOWERS As spring barrels into summer, the hard work and dedication of our Breakwater... 1197 1198 </p> 1199 <a class="blog-post-link" href="/blogs/blog/summer-flowers-june-at-breakwater-books">Read more</a> 1200 </div> 1201 </div> 1202</div> 1203<!--======= End of single blog post =======--> 1204 </div> 1205 1206 <div class="col-md-12 col-12"> 1207 <!--======= single blog post =======--> 1208<div class="single-blog-post"> 1209 <div class="row"> 1210 1211 <div class="single-blog-post__image col-md-2"> 1212 <a href="/blogs/blog/launching-forward"><img src="//breakwaterbooks.com/cdn/shop/articles/20260501_191247_740x470_crop_center.jpg?v=1782393017" alt="Launching Forward!" /></a> 1213 </div> 1214 1215 1216 <div class="single-blog-post__content col-md-10"> 1217 <h3 class="title"><a href="/blogs/blog/launching-forward">Launching Forward!</a></h3> 1218 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-06-01T13:10:00Z">Jun 01, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1219 <p class="post-meta"> <span class="date"><time datetime="2026-06-01T13:10:00Z">Jun 01, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1220 1221 <p class="short-desc"> 1222 1223 LAUNCHING FORWARD! Now that our Spring season is underway, we can't wait to tell you... 1224 1225 </p> 1226 <a class="blog-post-link" href="/blogs/blog/launching-forward">Read more</a> 1227 </div> 1228 </div> 1229</div> 1230<!--======= End of single blog post =======--> 1231 </div> 1232 1233 <div class="col-md-12 col-12"> 1234 <!--======= single blog post =======--> 1235<div class="single-blog-post"> 1236 <div class="row"> 1237 1238 <div class="single-blog-post__image col-md-2"> 1239 <a href="/blogs/blog/as-the-seasons-change"><img src="//breakwaterbooks.com/cdn/shop/articles/Screenshot_2026-05-12_093351_740x470_crop_center.png?v=1778587488" alt="As The Seasons Change..." /></a> 1240 </div> 1241 1242 1243 <div class="single-blog-post__content col-md-10"> 1244 <h3 class="title"><a href="/blogs/blog/as-the-seasons-change">As The Seasons Change...</a></h3> 1245 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-05-01T12:04:00Z">May 01, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1246 <p class="post-meta"> <span class="date"><time datetime="2026-05-01T12:04:00Z">May 01, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1247 1248 <p class="short-desc"> 1249 1250 AS THE SEASONS CHANGE... ...we're looking ahead to our Spring line up of books, starting... 1251 1252 </p> 1253 <a class="blog-post-link" href="/blogs/blog/as-the-seasons-change">Read more</a> 1254 </div> 1255 </div> 1256</div> 1257<!--======= End of single blog post =======--> 1258 </div> 1259 1260 <div class="col-md-12 col-12"> 1261 <!--======= single blog post =======--> 1262<div class="single-blog-post"> 1263 <div class="row"> 1264 1265 <div class="single-blog-post__image col-md-2"> 1266 <a href="/blogs/blog/position-accounting-and-finance-administration"><img src="//breakwaterbooks.com/cdn/shop/articles/IMG_0674_740x470_crop_center.jpg?v=1775135373" alt="POSITION: Accounting and Finance Administration" /></a> 1267 </div> 1268 1269 1270 <div class="single-blog-post__content col-md-10"> 1271 <h3 class="title"><a href="/blogs/blog/position-accounting-and-finance-administration">POSITION: Accounting and Finance Administration</a></h3> 1272 <!-- <p class="post-meta"> <span class="date"><time datetime="2026-04-02T13:09:28Z">Apr 02, 2026</time></span> <span class="separator">|</span> by Rebecca Rose</p> --> 1273 <p class="post-meta"> <span class="date"><time datetime="2026-04-02T13:09:28Z">Apr 02, 2026</time></span> <span class="separator">|</span> by Breakwater Books</p> 1274 1275 <p class="short-desc"> 1276 1277 POSITION: ACCOUNTING AND FINANCE ADMINISTRATIONPart Time Date Posted: April 1, 2026Deadline: April 22, 2026  ... 1278 1279 </p> 1280 <a class="blog-post-link" href="/blogs/blog/position-accounting-and-finance-administration">Read more</a> 1281 </div> 1282 </div> 1283</div> 1284<!--======= End of single blog post =======--> 1285 </div> 1286 1287 1288 </div> 1289 </div><div class="pagination-area"> 1290 1291<div class="theme-default-pagination pagination-area__right"> 1292 <nav> 1293 <ul class="pagination-section"> 1294 1295 <li class="disabled prev"> 1296 <a href="#">
1297 <span>Prev</span> 1298 </a> 1299 </li> 1300 1301 1302 1303 1304 <li class="active"><a href="">1</a></li> 1305 1306 1307 1308 1309 <li> 1310 <a href="/blogs/blog?page=2" title="">2</a> 1311 </li> 1312 1313 1314 1315 <li> 1316 <a href="/blogs/blog?page=3" title="">3</a> 1317 </li> 1318 1319 1320 1321 1322 <li><a href="#">…</a></li> 1323 1324 1325 1326 1327 <li> 1328 <a href="/blogs/blog?page=11" title="">11</a> 1329 </li> 1330 1331 1332 1333 <li class="next"><a href="/blogs/blog?page=2" title="Next »"><span aria-hidden="true">Next</span></a></li> 1334 1335 </ul> 1336 </nav> 1337</div> 1338 1339
1340<script> 1341 $(".theme-default-pagination .disabled a").removeAttr("href"); 1342 $(".theme-default-pagination li.active a").removeAttr("href"); 1343</script>
1343 1344 1345 1346 1347 1348 </div><!--======= End of pagination area =======--><!--======= End of blog page content =======--> 1349 </div> 1350 </div> 1351 </div> 1352 </div> 1353 <!--======= End of page wrapper =======--> 1354 </div> 1355 </div> 1356 </div> 1357</div> 1358<!--==================== End of page content area ====================--> 1359 1360 1361 1362 1363 1364 1365 1366</div> 1367 </main> 1368 1369 <div id="shopify-section-footer" class="shopify-section"><!--==================== footer area ====================--> 1370<div class="footer-area footer-area--light-bg footer_wraper_common_class" id="section-footer"> 1371 1372 1373 <div class="footer-navigation section-space--inner footer_common"> 1374 <div class="container"> 1375 <div class="row"> 1376 <div class="col-lg-12"> 1377 <!--======= footer navigation wrapper =======--> 1378 <div class="footer-navigation-wrapper"> 1379 <div class="row"> 1380 1381 1382 1383 1384 <div class="col-lg-3 col-md-9 common_widget"> 1385 <!--======= footer short desc =======--> 1386 <div class="footer-short-desc"> 1387 1388 1389 1390 1391 <p class="message"> 1392 <h5 class="footer-title bb_title">BREAKWATER BOOKS 1393</h5><p><span class="footer-sub-title">Retail Store Address:</span><br> 1394263 Duckworth Street,<br> 1395St. John's, NL A1C 1G9</p> 1396<p><span class="footer-sub-title">Office Hours:</span><br> 1397Monday - Friday<br> 13988:30 a.m. to 4:30 p.m.</p> 1399 1400<p><span class="footer-sub-title">Store Hours:</span><br> 1401Monday: 10:00 a.m. to 5:00 p.m.<br> 1402Tuesday: 10:00 a.m. to 5:00 p.m.<br>Wednesday: 10:00 a.m. to 5:00 p.m.<br>Thursday: 10:00 a.m. to 5:00 p.m. <br>Friday: 10:00 a.m. to 5:00 p.m.<br>Saturday: 10:00 a.m. to 6:00 p.m.<br>Sunday: 12:00 p.m. to 5:00 p.m.</p> 1403 1404 1405<p><span class="footer-sub-title">Mailing Address: </span><br> 1406P.O. Box 2188<br> 1407St. John's NL A1C 6E6</p> 1408<p><span class="footer-sub-title">Tel: </span>(709) 722-6680<br> 1409 1410<span class="footer-sub-title">Email: </span>[email protected]</p> 1411 </p> 1412 1413 1414 1415 1416 1417 </div> 1418 <!--======= End of footer short desc =======--> 1419 </div> 1420 1421 1422 1423 1424 <div class="col-lg-5"> 1425 <div class="newsletter-form" id="newsletter_area_footer"> 1426 <div class="footer-short-desc"> 1427 <h5 class="footer-title bb_title"> 1428 NEWSLETTER 1429 </h5> 1430 1431 <p> 1432 Stay up to date with new collections, the latest books and exclusive offers. 1433 </p> 1434 1435 <!-- <form action="" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> --> 1436 <form action="https://breakwaterbooks.us2.list-manage.com/subscribe/post?u=1b0f859fd362c2e7832377751&id=7ed68cfec6" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> 1437 <div id="mc_embed_signup_scrollggggggggggggg"> 1438 <div id="mc-form" class="mc-form subscribe-form" > 1439 <input type="email" value="" name="EMAIL" class="email email-box" placeholder="email address" required> 1440 <button id="mc-embedded-subscribe" type="submit">SUBSCRIBE</button> 1441 </div> 1442 </div> 1443 </form> 1444 1445 </div> 1446 </div> 1447 </div> 1448 1449 1450 1451 1452 1453 <div class="col-lg-3 col-md-9 common_widget"> 1454 <!--======= footer short desc =======--> 1455 <div class="footer-short-desc"> 1456 1457 1458 1459 1460 <p class="message"> 1461 <h5 class="footer-title">ACKNOWLEDGEMENTS</h5><br> 1462<p> 1463 We acknowledge the generous support of the Government of Canada, the Canada Council for the Arts, and the Government 1464 of Newfoundland and Labrador.</p> 1465 1466<div class="support-logos-container" style="display: none;"> 1467 <div><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/1Untitled-1.png?v=1614969579"></div> 1468 <div><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/Untitled-1.png?v=1614969579"></div> 1469 <div class="canada_council"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/Unti11tled-1.png?v=1614969579"></div> 1470 <div><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/Untit1led-1.png?v=1614969579"></div> 1471</div> 1472<ul class="list-unstyled support_brands"> 1473 <li><a href="https://www.canada.ca/home.html" target="_blank"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/canad
1473a.png?v=1615544465"></a></li> 1474 <li><a href="https://www.gov.nl.ca/" target="_blank"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/newfoundland.png?v=1615544465"></a></li> 1475 <li class="canada_council"><a href="https://canadacouncil.ca/" target="_blank"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/canada_council.png?v=1615544465"></a></li> 1476 <li><a href="https://www.booknetcanada.ca/" target="_blank"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/gold.png?v=1615544465"></a></li> 1477 1478<li><a href="https://publishers.ca/certifiedcanadian/" target="_blank"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/CCP_resized.png?v=1763487257" width="50%"></a></li> 1479 1480 1481 1482</ul> 1483 </p> 1484 1485 1486 1487 1488 1489 </div> 1490 <!--======= End of footer short desc =======--> 1491 </div> 1492 1493 1494 1495 1496 <div class="col-lg-12 col-sm-4 common_widget"> 1497 <!--======= single footer widget =======--> 1498 <div class="single-footer-widget"> 1499 1500 1501 1502 <div class="single-footer-widget__content"> 1503 <ul class="footer-navigation"> 1504 1505 1506 1507 1508 <li><a href="/pages/terms-of-use">TERMS OF USE</a></li> 1509 1510 <li><a href="/pages/privacy-policy">PRIVACY POLICY</a></li> 1511 1512 <li><a href="/pages/submissions">SUBMISSIONS</a></li> 1513 1514 <li><a href="/pages/rights">RIGHTS</a></li> 1515 1516 <li><a href="/pages/permissions">PERMISSIONS</a></li> 1517 1518 <li><a href="/pages/catalogues">CATALOGUES</a></li> 1519 1520 <li><a href="/pages/find-a-bookstore">FIND A BOOKSTORE</a></li> 1521 1522 </ul> 1523 1524 </div> 1525 </div> 1526 <!--======= End of single footer widget =======--> 1527 </div> 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 </div> 1538 </div> 1539 <!--======= End of footer navigation wrapper =======--> 1540 </div> 1541 </div> 1542 </div> 1543 </div> 1544 1545 1546 1547 1548 <div class="footer-copyright footer_common"> 1549 <div class="container wide"> 1550 <div class="row"> 1551 1552 <div class="col-lg-12"> 1553 <div class="footer-copyright-wrapper"> 1554 <div class="container"> 1555 <div class="row align-items-center no-gutters"> 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 <div class="col-xl-12 col-lg-5 col-md-5 common_widget"> 1569 <div class="copyright-text"> 1570 <p>Copyright @ Breakwater Books Limited 2021 </p><p>All Rights Reserved</p> 1571 </div> 1572 </div> 1573 1574 1575 1576 1577 <div class="col-xl-12 col-lg-5 col-md-5 common_widget"> 1578 <div class="copyright-social-wrapper"> 1579 <ul class="copyright-social"> 1580 1581 <li><a href="https://twitter.com/BreakwaterBooks" target="_blank"><i class="fa fa-twitter"></i></a></li> 1582 1583 1584 1585 <li><a href="https://www.instagram.com/breakwaterbooks/?hl=en" target="_blank"><i class="fa fa-instagram"></i></a></li> 1586 1587 1588 1589 <li><a href="https://www.facebook.com/BreakwaterBooksLtd" target="_blank"><i class="fa fa-facebook"></i></a></li> 1590 1591 1592 1593 <li><a href="https://ca.linkedin.com/company/breakwater-books-ltd-" target="_blank"><i class="fa fa-linkedin"></i></a></li> 1594 1595 1596 1597 <li><a href="https://www.youtube.com/channel/UCFrCJgi5K8Ah7rTQO6klm6w" target="_blank"><i class="fa fa-youtube"></i></a></li> 1598 1599 1600 1601 </ul> 1602 </div> 1603 </div> 1604 1605 1606 1607 1608 <div class="col-xl-12 col-lg-5 col-md-5 common_widget payment-wrap"> 1609 <div class="container"> 1610 <ul> 1611 <li> 1612 <a href="JavaScript:void(0)"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/visa.png?v=1631710090" alt="visa" /></a> 1613 </li> 1614 <li> 1615 <a href="JavaScript:void(0)"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/mastercard.png?v=1631710104" alt="master" /></a> 1616 </li> 1617 <li> 1618 <a href="JavaScript:void(0)"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/american_express_1.png?v=1631713916" alt="american_express" /></a> 1619 </li> 1620 <li> 1621 <a href="JavaScript:void(0)"><img src="https://cdn.shopify.com/s/files/1/0532/7667/2149/files/discover.png?v=1631713544" alt="discover" /></a> 1622 </li> 1623 </ul> 1624 </div> 1625 </div> 1626 1627 1628 </div> 1629 </div> 1630 </div> 1631 </div> 1632 </div> 1633 </div> 1634 </div> 1635 1636 1637</div> 1638<!--==================== End of footer area ====================--><style data-shopify> 1639 1640 .footer_wraper_common_class .footer_common .common_widget .footer-social-section .social-link li a{ 1641 background: #ebebeb; 1642 color: #aaaaaa; 1643 } 1644 .footer_wraper_common_class .footer_common .common_widget .footer-social-section .social-link li a:hover{ 1645 background: #292929; 1646 color: #ffffff; 1647 } 1648 1649 .footer_wraper_common_class .footer_common .common_widget .footer-social-section .social-link li a{ 1650 background: #ebebeb; 1651 color: #aaaaaa; 1652 } 1653 .footer_wraper_common_class .footer_common .common_widget .footer-social-section .social-link li a:hover{ 1654 background: #292929; 1655 color: #ffffff; 1656 }</style><style data-shopify>#section-footer{} 1657 @media (min-width: 768px) and (max-width: 991px) { 1658 #section-footer{} 1659 } 1660 @media (max-width: 767px) { 1661 #section-footer{} 1662 }</style> 1663 1664 1665 1666 1667 1668</div> 1669 1670 1671 <!-- scroll to top --> 1672 <div id="scroll-top"> 1673 <i class="ion-chevron-right"></i><i class="ion-chevron-right"></i> 1674 </div> 1675 <!-- end of scroll to top --> 1676 1677 1678 <!-- Necessary JS --> 1679
1679<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/fastclick.min.js?v=29723458539410922371623433494"></script>
vendor: 1 bytes, line 1679
1679
1680<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/timber.js?v=164392412814597704701640959736"></script>
1680 1681 1682
1683<script> 1684 1685</script>
1685 1686<!-- modalAddToCart Error --> 1687<div class="modal fade ajax-popup error-ajax-popup" id="modalAddToCartError" tabindex="-1" role="dialog" aria-hidden="true"> 1688 <div class="modal-dialog white-modal modal-md"> 1689 <div class="modal-content "> 1690 <div class="modal-body"> 1691 <div class="modal-content-text"> 1692 <p class="error_message"></p> 1693 </div> 1694 <div class="modal-close"> 1695 <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times-circle"></i></button> 1696 </div> 1697 </div> 1698 </div> 1699 </div> 1700</div> 1701 1702 1703 1704 1705 1706
1707<script> 1708 $(function() { 1709 // Current Ajax request. 1710 var currentAjaxRequest = null; 1711 // Grabbing all search forms on the page, and adding a .search-results list to each. 1712 var searchForms = $('form[action="/search"]').css('position','relative').each(function() { 1713 // Grabbing text input. 1714 var input = $(this).find('input[name="q"]'); 1715 // Adding a list for showing search results. 1716 var offSet = input.position().top + input.innerHeight(); 1717 $('<ul class="search-results home-two"></ul>').css( { 'position': 'absolute', 'left': '0px', 'top': offSet } ).appendTo($(this)).hide(); 1718 // Listening to keyup and change on the text field within these search forms. 1719 input.attr('autocomplete', 'off').bind('keyup change', function() { 1720 // What's the search term? 1721 var term = $(this).val(); 1722 // What's the search form? 1723 var form = $(this).closest('form'); 1724 // What's the search URL? 1725 var searchURL = '/search?type=product&q=' + term; 1726 // What's the search results list? 1727 var resultsList = form.find('.search-results'); 1728 // If that's a new term and it contains at least 3 characters. 1729 if (term.length > 2 && term != $(this).attr('data-old-term')) { 1730 // Saving old query. 1731 $(this).attr('data-old-term', term); 1732 // Killing any Ajax request that's currently being processed. 1733 if (currentAjaxRequest != null) currentAjaxRequest.abort(); 1734 // Pulling results. 1735 currentAjaxRequest = $.getJSON(searchURL + '&view=json', function(data) { 1736 // Reset results. 1737 resultsList.empty(); 1738 // If we have no results. 1739 if(data.results_count == 0) { 1740 // resultsList.html('<li><span class="title">No results.</span></li>'); 1741 // resultsList.fadeIn(100); 1742 resultsList.hide(); 1743 } else { 1744 // If we have results. 1745 $.each(data.results, function(index, item) { 1746 var link = $('<a></a>').attr('href', item.url); 1747 link.append('<span class="thumbnail"><img src="' + item.thumbnail + '" /></span>'); 1748 link.append('<span class="title">' + item.title + '</span>'); 1749 link.wrap('<li></li>'); 1750 resultsList.append(link.parent()); 1751 }); 1752 // The Ajax request will return at the most 10 results. 1753 // If there are more than 10, let's link to the search results page. 1754 if(data.results_count > 10) { 1755 resultsList.append('<li><span class="title"><a href="' + searchURL + '">See all results (' + data.results_count + ')</a></span></li>'); 1756 } 1757 resultsList.fadeIn(100); 1758 } 1759 }); 1760 } 1761 }); 1762 }); 1763 // Clicking outside makes the results disappear. 1764 $('body').bind('click', function(){ 1765 $('.search-results').hide(); 1766 }); 1767 }); 1768</script>
1768 1769 1770<!-- Some styles to get you started. --> 1771<style> 1772 .search-results { 1773 z-index: 8889; 1774 list-style-type: none; 1775 width: 190px; 1776 margin: 0; 1777 padding: 0; 1778 background: #ffffff; 1779 border: 1px solid #cccccc; 1780 border-radius: 0px; 1781 -webkit-box-shadow: 0px 4px 7px 0px rgba(0,0,0,0.1); 1782 box-shadow: 0px 4px 7px 0px rgba(0,0,0,0.1); 1783 overflow: hidden; 1784 } 1785 .search-results li { 1786 display: block; 1787 width: 100%; 1788 height: 38px; 1789 margin: 0; 1790 padding: 0; 1791 border-top: 1px solid #cccccc; 1792 line-height: 38px; 1793 overflow: hidden; 1794 } 1795 .search-results li:first-child { 1796 border-top: none; 1797 } 1798 .search-results .title { 1799 float: left; 1800 width: 140px; 1801 padding-left: 8px; 1802 white-space: nowrap; 1803 overflow: hidden; 1804 /* The text-overflow property is supported in all major browsers. */ 1805 text-overflow: ellipsis; 1806 -o-text-overflow: ellipsis; 1807 text-align: left; 1808 font-size:12px; 1809 line-height:38px; 1810 color:#515151; 1811 } 1812 .search-results .title:hover{ 1813 color:#CE9634; 1814 } 1815 .search-results .thumbnail { 1816 float: left; 1817 display: block; 1818 width: 32px; 1819 height: 32px; 1820 margin: 3px 0 3px 3px; 1821 padding: 0; 1822 text-align: center; 1823 overflow: hidden; 1824 border-radius:0px; 1825 } 1826</style> 1827 1828<div class="modal fade productModal" id="quickViewModal" tabindex="-1" role="dialog" aria-hidden="true"> 1829 <div class="modal-dialog" role="document"> 1830 <div class="modal-content"> 1831 <div class="modal-body"> 1832 <div class="row"> 1833 <div class="col-lg-6 col-md-6 col-12"> 1834 <div class="qwick-view-left"> 1835 <div class="quick-view-learg-img"> 1836 <div class="quick-view-tab-content tab-content"> 1837 <div class="product-main-image__item"> 1838 <div class="img_box_1"></div> 1839 </div> 1840 </div> 1841 </div> 1842 </div> 1843 </div> 1844 <div class="col-lg-6 col-md-6 col-12"> 1845 <div class="qwick-view-right"> 1846 <div class="qwick-view-content"> 1847 <h1 class="product_title">FROM_JS</h1> 1848 <div class="product-price product-info__price price-part"> 1849 <span class="main">jsprice</span> 1850 <span class="price-box__new">jsprice</span> 1851 </div> 1852 <div class="product-rating spr-badge-caption-none"> 1853 <div class="quick-view-rating rating">FROM_JS</div> 1854 </div> 1855 1856 <div class="short-description product-des">FROM_JS</div> 1857 1858 <form id="add-item-qv" action="/cart/add" method="post"> 1859 <div class="quick-view-select variants select-option-part"></div> 1860 <div class="quickview-plus-minus"> 1861 <div class="cart-plus-minus"> 1862 <input type="text" value="01" name="quantity" class="cart-plus-minus-box"> 1863 </div> 1864 <div class="quickview-btn-cart"> 1865 <button type="submit" class="addtocartqv theme-default-button">Add to cart</button> 1866 </div> 1867 </div> 1868
1868<script> 1869 jQuery('.addtocartqv').click(function(e) { 1870 e.preventDefault(); 1871 Shopify.addItemFromFormStart('add-item-qv', jQuery(this).attr('id')); 1872 }); 1873 </script>
1873 1874 </form> 1875 </div> 1876 </div> 1877 </div> 1878 </div> 1879 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 1880 <span class="close-icon" aria-hidden="true"><i class="fa fa-close"></i></span> 1881 </button> 1882 </div> 1883 </div> 1884 </div> 1885</div> 1886 1887 1888 1889 1890 1891<div class="quickViewModal_info" style="display: none;"> 1892 <div class="button">Add to cart</div> 1893 <div class="button_added">Added</div> 1894 <div class="button_error">Limit Products</div> 1895 <div class="button_wait">Wait..</div> 1896</div> 1897 1898 1899 1900
1901<script> 1902 var mainImage = ''; 1903 jQuery(function ($) { 1904 1905 quiqview = function(product_handle) { 1906 Shopify.getProduct(product_handle); 1907 } 1908 Shopify.onProduct = function(product) { 1909 $('.viewfullinfo').attr('href', product.url); 1910 1911 // product description without shortcode 1912 text_truncate = function(str, length, ending) { 1913 if (length == null) { 1914 length = 500; 1915 } 1916 if (ending == null) { 1917 ending = '...'; 1918 } 1919 if (str.length > length) { 1920 return str.substring(0, length - ending.length) + ending; 1921 } else { 1922 return str; 1923 } 1924 }; 1925 1926 var _parent = '#quickViewModal'; 1927 $(_parent+' .product_title').text(product.title); 1928 1929 1930 1931 // product rating 1932 $(_parent+' .rating').empty(); 1933 $(_parent+' .rating').append("<span class=\"shopify-product-reviews-badge\" data-id=\""+product.id+"\"></span>"); 1934 1935 1936 //check variants 1937 var variant = ''; 1938 1939 for (i = 0; i < product.variants.length; i++) { 1940 if(product.variants[i].inventory_quantity > 0) { 1941 variant = product.variants[i]; 1942 break; 1943 } 1944 } 1945 1946 if(variant == '') { 1947 for (i = 0; i < product.variants.length; i++) { 1948 if(product.variants[i].inventory_policy == "continue") { 1949 variant = product.variants[i]; 1950 break; 1951 } 1952 } 1953 if(variant == '') { 1954 variant = product.variants[0]; 1955 } 1956 } 1957 1958 mainImage = product.featured_image; 1959 var shopifyimgurl = variant.featured_image ? variant.featured_image.src : product.featured_image; 1960 var imgurl = "<img class=\"full-width\" alt=\"\" src = \""+shopifyimgurl+"\" >"; 1961 jQuery(_parent+' .product-main-image__item .img_box_1').empty(); 1962 jQuery(_parent+' .product-main-image__item .img_box_1').append(imgurl); 1963 jQuery(_parent+' .product-main-image__item .img_box_2').empty(); 1964 jQuery(_parent+' .product-main-image__item .img_box_2').append(imgurl); 1965 1966 // product description with shortcode 1967 var desc = product.description; 1968 if (desc.indexOf("[short_description]") >= 0) { 1969 desc = desc.split("[short_description]"); 1970 desc = desc[1].split("[/short_description]"); 1971 $(_parent+' .product-des').show(); 1972 $(_parent+' .product-des').html(desc[0]); 1973 } 1974 else { 1975 $(_parent+' .product-des').html(text_truncate(product.description,250)); 1976 } 1977 1978 //set variants property 1979 var inv_qua = variant.inventory_quantity; 1980 //price 1981 if(variant.price < variant.compare_at_price) { 1982 $('.price-part .main').addClass('amount'); 1983 $('.price-part .price-box__new').show(); 1984 changePriceValue('.price-part .main', variant.compare_at_price); 1985 changePriceValue('.price-part .price-box__new', variant.price); 1986 } 1987 else { 1988 $('.price-part .price-box__new').hide(); 1989 $('.price-part .main').removeClass('amount'); 1990 changePriceValue('.price-part .main', variant.price); 1991 } 1992 1993 // Variants select 1994 if(product.variants.length > 1) { 1995 var variants_margin = product.options.length == 2 ? 'variants_margin' : ''; 1996 1997 var select = '<select id="product-select-qv" name="id">'; 1998 var selected = 'selected'; 1999 for (i = 0; i < product.variants.length; i++) { 2000 var _var = product.variants[i]; 2001 if(_var.available) { 2002 select += '<option value="' + _var.id + '"' + selected +'>' + _var.title + ' - ' + Shopify.formatMoney(_var.price, "${{amount}}") + '</option>' 2003 selected = ''; 2004 } 2005 } 2006 select += '</select>'; 2007 2008 var variant_select = '<div class="variants_selects ' + variants_margin + '">'; 2009 variant_select += select; 2010 variant_select += '</div><div class="divider divider--sm"></div>'; 2011 select = variant_select; 2012 } 2013 else { 2014 var select = '<input type="hidden" name="id" value="' + product.variants[0].id + '" />'; 2015 } 2016 $('.variants').empty(); 2017 $('.variants').html(select); 2018 2019 //parametres 2020 setParametresText(_parent+' .product-sku', variant.sku); 2021 if(jQuery(_parent + ' .product-sku').length) { 2022 var $ava = jQuery(_parent + " .product-info__availabilitu"); 2023 if(variant.sku != "") { 2024 if($ava.hasClass('pull-left')){ $ava.removeClass('pull-left') } 2025 } else { 2026 if(!$ava.hasClass('pull-left')){ $ava.addClass('pull-left') } 2027 } 2028 } 2029 2030 //quantity 2031 var out_of_stock = false;
2032 if(variant.inventory_management) { 2033 if(inv_qua > 0) { 2034 $(_parent+' .product-availability').text(inv_qua + " In Stock"); 2035 } 2036 else { 2037 out_of_stock = true; 2038 $(_parent+' .product-availability').text("In Stock"); 2039 } 2040 } 2041 else { 2042 $(_parent+' .product-availability').text("Many in stock"); 2043 } 2044 2045 // button 2046 if(!out_of_stock || variant.inventory_policy == "continue") { 2047 $('.product-available').show(); 2048 $('.product-disable').hide(); 2049 $('.addtocartqv').attr('id', product.id ); 2050 } 2051 else { 2052 $('.product-available').hide(); 2053 $('.product-disable').show(); 2054 } 2055 2056 if (product.available && product.variants.length > 1) { 2057 new Shopify.OptionSelectors("product-select-qv", { product: product, onVariantSelected: selectCallbackQv, enableHistoryState: true }); 2058 2059 if($('#quickViewModal .variants_selects .selector-wrapper').length > 0) { 2060 $.each( jQuery('#quickViewModal .variants_selects .selector-wrapper'), function(index) { 2061 $(this).find('label').text(product.options[index].name); 2062 }); 2063 } 2064 } 2065 else { 2066 jQuery('.currency .active').trigger('click'); 2067 } 2068 selectGrid(_parent); 2069 2070 if($(".spr-badge").length > 0) { 2071 $.getScript(window.location.protocol + "//productreviews.shopifycdn.com/assets/v4/spr.js"); 2072 } 2073 2074 if($(".selector-wrapper label").length) { 2075 $(".selector-wrapper label").each(function( index ) { 2076 $(this).text(jQuery(this).text() + ":"); 2077 }); 2078 } 2079 2080 $(_parent).modal('show'); 2081 2082 if( !( 'ontouchstart' in window ) && 2083 !navigator.msMaxTouchPoints && 2084 !navigator.userAgent.toLowerCase().match( /windows phone os 7/i ) ) return false; 2085 2086 $j('body').css("top", -$j('body').scrollTop()); 2087 $j('body').addClass("no-scroll"); 2088 $j('.close').click(function(){ 2089 var top = parseInt($j('body').css("top").replace("px", ""))*-1; 2090 $j('body').removeAttr("style"); 2091 $j('body').removeClass("no-scroll"); 2092 $j('body').scrollTop(top); 2093 }); 2094 } 2095 2096 function setParametresText(obj, value) { 2097 if(value != '') { 2098 $(obj).parent().show(); 2099 $(obj).text(value); 2100 } 2101 else { 2102 $(obj).parent().hide(); 2103 } 2104 } 2105 2106 function changePriceValue (cell, value) { 2107 $(cell).html(Shopify.formatMoney(value, "${{amount}}")); 2108 }; 2109 2110 }); 2111 2112 2113 2114 var selectCallbackQv = function(variant, selector) { 2115 2116 var _parent = '#quickViewModal'; 2117 var _parentprice = _parent + ' .price-part'; 2118 if (!variant) { 2119 jQuery(_parent + " .price-box").hide(); 2120 jQuery(_parent + " .qwt").hide(); 2121 jQuery(_parent + " .control-console").hide(); 2122 jQuery(_parent + ' .addtocartqv').attr('disabled','disabled'); 2123 jQuery(_parent + ' .addtocartqv').text('Unavailable'); 2124 return false;
2125 } 2126 2127 jQuery(_parent + " .price-box").show(); 2128 jQuery(_parent + " .qwt").show(); 2129 jQuery(_parent + " .control-console").show(); 2130 2131 if(variant.price < variant.compare_at_price){ 2132 jQuery(_parentprice + ' .main').addClass('price-box__old'); 2133 jQuery(_parentprice + ' .price-box__new').show(); 2134 changePriceValue(_parentprice + ' .main', variant.compare_at_price); 2135 changePriceValue(_parentprice + ' .price-box__new', variant.price); 2136 } else { 2137 jQuery(_parentprice + ' .price-box__new').hide(); 2138 jQuery(_parentprice + ' .main').removeClass('price-box__old'); 2139 changePriceValue(_parentprice + ' .main', variant.price); 2140 } 2141 2142 newVariantTextDataQv(_parent + ' .product-sku', variant.sku); 2143 2144 if(jQuery(_parent + ' .product-sku').length) { 2145 var $ava = jQuery(_parent + " .product-info__availabilitu"); 2146 if(variant.sku != "") { 2147 if($ava.hasClass('pull-left')){ $ava.removeClass('pull-left') } 2148 } else { 2149 if(!$ava.hasClass('pull-left')){ $ava.addClass('pull-left') } 2150 } 2151 } 2152 2153 if (variant.available) { 2154 if (variant.inventory_management == null) { 2155 jQuery(_parent + " .product-availability").text("Many in stock"); 2156 } else { 2157 jQuery(_parent + " .product-availability").text(" Many in stock"); 2158 } 2159 } else { 2160 jQuery(_parent + " .product-availability").text("Sold Out"); 2161 } 2162 2163 var shopifyimgurl = variant.featured_image ? variant.featured_image.src : mainImage; 2164 var imgurl = "<img class=\"full-width\" alt=\"\" src = \""+shopifyimgurl+"\" >"; 2165 if(jQuery(_parent+' .product-main-image__item .img_box_1').children().length > 0) { 2166 var detach = jQuery(_parent+' .product-main-image__item .img_box_1 img').detach(); 2167 jQuery(_parent+' .product-main-image__item .img_box_2').empty(); 2168 jQuery(_parent+' .product-main-image__item .img_box_2').append(detach); 2169 } 2170 jQuery(_parent+' .product-main-image__item .img_box_1').empty(); 2171 jQuery(_parent+' .product-main-image__item .img_box_1').append(imgurl); 2172 2173 if (variant && variant.available) { 2174 jQuery(_parent + ' .addtocartqv').removeAttr('disabled'); 2175 jQuery(_parent + ' .addtocartqv').html('Add to Cart'); 2176 jQuery(_parent + " .control-console").show(); 2177 } else { 2178 jQuery(_parent + ' .addtocartqv').attr('disabled','disabled'); 2179 jQuery(_parent + ' .addtocartqv').text('Unavailable'); 2180 jQuery(_parent + " .control-console").hide(); 2181 } 2182 2183 jQuery('.currency .active').trigger('click'); 2184 }; 2185 2186 function changePriceValue (cell, value) { 2187 jQuery(cell).html(Shopify.formatMoney(value, "${{amount}}")); 2188 }; 2189 2190 function newVariantTextDataQv (obj, value) { 2191 if(value != '') { 2192 jQuery(obj).parent().show(); 2193 jQuery(obj).text(value); 2194 } 2195 else { 2196 jQuery(obj).parent().hide(); 2197 } 2198 }; 2199 2200 2201 function selectGrid(_parent) { 2202 setTimeout(timeout, 5); 2203 function timeout() {
2204 if(jQuery(_parent + " .selector-wrapper").length > 2){ 2205 jQuery(_parent + " .single-option-selector").addClass("select--wd"); 2206 } else if(jQuery(_parent + " .selector-wrapper").length == 1){ 2207 jQuery(_parent + " .single-option-selector").before("<label></label>"); 2208 jQuery(_parent + " .single-option-selector").addClass("select--wd"); 2209 } 2210 } 2211 }; 2212</script>
2212 2213 2214<!-- END QUICKVIEW PRODUCT --> 2215
2216<script> 2217 $(".cart-plus-minus").prepend('<div class="dec qtybutton">-</div>'); 2218 $(".cart-plus-minus").append('<div class="inc qtybutton">+</div>'); 2219 $(".qtybutton").on("click", function() { 2220 var $button = $(this); 2221 var oldValue = $button.parent().find("input").val(); 2222 if ($button.text() == "+") { 2223 var newVal = parseFloat(oldValue) + 1; 2224 } else { 2225 // Don't allow decrementing below zero 2226 if (oldValue > 0) { 2227 var newVal = parseFloat(oldValue) - 1; 2228 } else { 2229 newVal = 1; 2230 } 2231 } 2232 $button.parent().find("input").val(newVal); 2233 }); 2234</script>
vendor: 1 bytes, line 2234
2234
2235<script> 2236 $('.ajax-spin-cart').on('click', function() { 2237 $(this).addClass('loading add-item'); 2238 setTimeout(function () { 2239 $('.ajax-spin-cart').removeClass('loading'); 2240 },1000); 2241 setTimeout(function () { 2242 $('.ajax-spin-cart').removeClass("add-item"); 2243 },2000); 2244 2245 }); 2246</script>
2246 2247
2248<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/wishlist.js?v=105081889935872174341623433536"></script>
vendor: 1 bytes, line 2248
2248
2249<script> 2250 /* Ajax Wishlist */ 2251 $(".action-wishlist").on('click', function(){ 2252 $(this).addClass("loading-wishlist adding-wishlist"); 2253 setTimeout(function () { 2254 $(".action-wishlist").removeClass("loading-wishlist"); 2255 },1000); 2256 setTimeout(function () { 2257 $(".adding-wishlist").removeClass("adding-wishlist"); 2258 },2000); 2259 2260 }); 2261 2262 (function() { 2263 Wishlist.init(); 2264 }()); 2265</script>
2265<!-- Recently Viewed Products -->
2265<script src="//cdn.shopify.com/s/javascripts/currencies.js"></script>
vendor: 1 bytes, line 2265
2265
2266<script src="//breakwaterbooks.com/cdn/shop/t/4/assets/jquery.currencies.min.js?v=35452912321688254271623433512"></script>
2266 2267
2268<script> 2269 2270 // Pick your format here: 2271 // money_format or money_with_currency_format 2272 Currency.format = 'money_format'; 2273 2274 var shopCurrency = 'CAD'; 2275 2276 /* Sometimes merchants change their shop currency, let's tell our JavaScript file */ 2277 Currency.moneyFormats[shopCurrency].money_with_currency_format = "${{amount}}"; 2278 Currency.moneyFormats[shopCurrency].money_format = "${{amount}}"; 2279 2280 var cookieCurrency; 2281 try {cookieCurrency = Currency.cookie.read();} catch (err) {} // ignore errors reading cookies 2282 2283 // Fix for customer account pages. 2284 jQuery('span.money span.money').each(function() { 2285 jQuery(this).parents('span.money').removeClass('money'); 2286 }); 2287 2288 // Saving the current price. 2289 jQuery('span.money').each(function() { 2290 jQuery(this).attr('data-currency-CAD', jQuery(this).html()); 2291 }); 2292 2293 // Select all your currencies buttons. 2294 var buttons = jQuery('.currency li'); 2295 2296 // If there's no cookie or it's the shop currency. 2297 if (cookieCurrency == null || cookieCurrency === shopCurrency) { 2298 buttons.removeClass('active'); 2299 jQuery('.currency li[data-currency=' + shopCurrency + ']').addClass('active'); 2300 Currency.currentCurrency = shopCurrency; 2301 jQuery(".current-currency").text(shopCurrency); 2302 } 2303 else { 2304 Currency.convertAll(shopCurrency, cookieCurrency); 2305 buttons.removeClass('active'); 2306 jQuery('.currency li[data-currency=' + cookieCurrency + ']').addClass('active'); 2307 jQuery(".current-currency").text(cookieCurrency); 2308 } 2309 2310 // When customer clicks on a currency button. 2311 buttons.click(function() { 2312 buttons.removeClass('active'); 2313 var cur = jQuery(this).attr('data-currency'); 2314 jQuery( ".currency li[data-currency='" + cur + "']" ).addClass('active'); 2315 2316 var newCurrency = jQuery(this).attr('data-currency'); 2317 if(newCurrency == Currency.currentCurrency) 2318 { 2319 Currency.convertAll(shopCurrency, newCurrency); 2320 } 2321 else 2322 { 2323 Currency.convertAll(Currency.currentCurrency, newCurrency); 2324 } 2325 2326 jQuery(".current-currency").text(cur); 2327 }); 2328 2329 // For product options. 2330 var main_selectCallback = window.selectCallback; 2331 var selectCallback = function(variant, selector) { 2332 main_selectCallback(variant, selector); 2333 Currency.convertAll(shopCurrency, jQuery(".currency .active").attr('data-currency')); 2334 }; 2335</script>
2335<script> 2336 $('[data-countdown]').each(function() { 2337 var $this = $(this), finalDate = $(this).data('countdown'); 2338 $this.countdown(finalDate, function(event) { 2339 $this.html(event.strftime('<div class="countdown-area"><div class="single-countdown"><div class="count-number">%D</div><div class="count-title">days</div></div><div class="single-countdown"><div class="count-number">%H</div><div class="count-title">Hour</div></div><div class="single-countdown"><div class="count-number">%M</div><div class="count-title">Mint</div></div><div class="single-countdown"><div class="count-number">%S</div><div class="count-title">Sec</div></div></div>')); 2340 }); 2341 }); 2342</script>
2342 2343 2344 <div class="loading-modal compare_modal">Translation missing: en.general.search.loading</div> 2345<div class="ajax-success-compare-modal compare_modal" id="moda-compare" tabindex="-1" role="dialog" style="display:none"> 2346 <div class="overlay"> </div> 2347 <div class="modal-dialog modal-lg"> 2348 <div class="modal-content content" id="compare-modal"> 2349 <div class="modal-header"> 2350 <div class="modal-close"> 2351 <span class="compare-modal-close">x</span> 2352 </div> 2353 </div> 2354 <div class="modal-body"> 2355 <div class="table-wrapper"> 2356 <table class="table table-hover table-responsive"> 2357 <thead> 2358 <tr class="th-compare"> 2359 <th></th> 2360 </tr> 2361 </thead> 2362 <tbody id="table-compare"> 2363 </tbody> 2364 </table> 2365 </div> 2366 </div> 2367 </div> 2368 </div> 2369</div> 2370 2371 </div> 2372
2373<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2373 2374</body> 2375</html> 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408
2409<script> 2410 // hidePriceCollction =''; 2411 // hidePrice = ''; 2412 // console.log(hidePriceCollction + '|' + hidePrice) 2413 2414</script>
2414 2415<style> 2416 2417 2418 .csp-prod-wrapper-detailpage .btn,.csp-prod-wrapper .goinDetailPage 2419 { 2420 2421 display: inline-block !important; 2422 width: 100%; 2423 2424 } 2425 .text-danger { 2426 color: #ef6c0dd1; 2427 background: #fff3de; 2428 width: 100%; 2429 display: inline-block; 2430 font-size: 12px; 2431 font-style: italic; 2432 padding: 3px 5px; 2433 text-transform: capitalize; 2434 margin: 0px 0; 2435 text-align: left; 2436 font-weight: 600; 2437} 2438.csp-prod-wrapper-detailpage:nth-child(2) { 2439 display: none; 2440} 2441 2442 2443.csp-prod-wrapper .product-card { 2444 display: none; 2445} 2446 .csp-prod-wrapper-detailpage .c-form__button,.csp-prod-wrapper-detailpage .c-form__input 2447 { 2448 outline:none; 2449 2450 } 2451 .csp-prod-wrapper-detailpage .csp-prod-button{ 2452 display:none; 2453 } 2454 .csp-prod-wrapper-detailpage .submitReq , .csp-prod-wrapper-detailpage .submitReqHomePage 2455 { 2456 font-size: 14px; 2457 padding: 0 12px; 2458 margin: 0; 2459 border-radius:0 !important; 2460 font-family: "Source Sans Pro",sans-serif; 2461 border: initial !important; 2462 border-image: initial !important; 2463 background-image: initial !important; 2464 box-shadow: initial !important; 2465 color: #fff; 2466 cursor: pointer; 2467 text-shadow: initial !important; 2468 /* background-color: #464646;*/ 2469 text-transform: uppercase; 2470 } 2471 /* form[action="/cart/add"]{ 2472 display:none; 2473 }*/ 2474 2475.csp-prod-wrapper-detailpage .csp-prod-form form { 2476 padding: 15px 20px 20px!important; 2477 width: 100%!important; 2478 border: 1px solid #cccbcbee!important; 2479 margin: 10px 0!important; 2480} 2481 2482.csp-prod-wrapper-detailpage .c-form 2483 { 2484 position: relative; 2485/* width: 70%; */ 2486 margin: 0; 2487 } 2488 .csp-prod-wrapper-detailpage .c-form 2489 { 2490 text-align:center; 2491 } 2492 2493 .csp-prod-wrapper-detailpage .c-form__input 2494 { 2495 width:70%; 2496 background: #f1f1f1 !important; 2497 margin: 0 !important; 2498 padding: 8px !important; 2499 flex: 1; 2500 /* border: initial;*/ 2501 border: 1px solid #dedede; 2502 color: #000; 2503 } 2504 .csp-prod-wrapper-detailpage .c-form_label 2505 { 2506 position: relative; 2507 margin: 20px 0 0; 2508 display: flex; 2509 width: 100%; 2510 } 2511 2512 2513 .btn[disabled], [disabled].btn-secondary, input[disabled][type="submit"], [disabled].header-cart-btn, .shopify-payment-button [disabled].shopify-payment-button__button--unbranded, .btn.disabled, .disabled.btn-secondary, input.disabled[type="submit"], .disabled.header-cart-btn, .shopify-payment-button .disabled.shopify-payment-button__button--unbranded 2514 { 2515 cursor: default; 2516 color: #ffffff !important; 2517 background-color: #696969 !important; 2518 } 2519 .csp-prod-wrapper-detailpage .coming-soon-label 2520 { 2521 text-align: center; 2522 margin: 0 0 21px 0; 2523 /* font-weight: 600; */ 2524 font-size: 17px; 2525 /* background: #eee; */ 2526 padding: 0; 2527} 2528 2529 .csp-prod-wrapper-detailpage .csp-prod-wrapper { 2530 text-align: left !important; 2531 margin-bottom: 25px; 2532} 2533 .csp-prod-wrapper-detailpage .csp-prod-url,.csp-prod-wrapper-detailpage .csp-prod-id,.csp-prod-wrapper-detailpage .csp-prod-title,.csp-prod-wrapper-detailpage .csp-prod-handle,.csp-prod-wrapper .csp-prod-url,.csp-prod-wrapper .csp-prod-id,.csp-prod-wrapper .csp-prod-title,.csp-prod-wrapper .csp-prod-handle 2534 { 2535 display:none; 2536 } 2537 2538 2539 .nb-spinner { 2540 width: 20px; 2541 height: 20px; 2542 margin: 0 auto; 2543 background: transparent; 2544 border-top: 2px solid #f3f3f3; 2545 border-right: 2px solid transparent; 2546 border-radius: 68%; 2547 -webkit-animation: 1s spin linear infinite; 2548 animation: 1s spin linear infinite; 2549} 2550 2551@-webkit-keyframes spin { 2552 from { 2553 -webkit-transform: rotate(0deg); 2554 transform: rotate(0deg); 2555 } 2556 to { 2557 -webkit-transform: rotate(360deg); 2558 transform: rotate(360deg); 2559 } 2560} 2561 2562@keyframes spin { 2563 from { 2564 -webkit-transform: rotate(0deg); 2565 transform: rotate(0deg); 2566 } 2567 to { 2568 -webkit-transform: rotate(360deg); 2569 transform: rotate(360deg); 2570 } 2571} 2572.submitReq.c-form__button, .submitReqHomePage.c-form__button 2573 { 2574 width: auto; 2575 word-break: break-word; 2576 2577 } 2578 .csp-prod-wrapper-detailpage .submitReq span ,.csp-prod-wrapper-detailpage .submitReqHomePage span 2579 { 2580 color:#fff; 2581 } 2582 2583 .csp_gdpr_section 2584 { 2585 text-align:left; 2586 margin-top: 10px; 2587 padding: 10px; 2588 } 2589 2590 .csp_gdpr_msg 2591 { 2592 margin-left: 15PX; 2593 } 2594 2595 /* notifyme from responsive */ 2596@media only screen and (max-width: 1024px){ 2597.csp-prod-wrapper-detailpage .c-form_label { 2598 display: block !important; 2599} 2600 .csp-prod-wrapper-detailpage .c-form__input 2601 { 2602 width:100% !important ; 2603 2604 } 2605 .submitReq.c-form__button, .submitReqHomePage.c-form__button 2606 { 2607 max-width:100% !important; 2608 width:100% !important ; 2609 padding: 8px !important; 2610 } 2611} 2612 2613 2614</style> 2615 2616 2617 2618 2619 2620 2621
2622<script> 2623 2624 2625 2626 2627var loadScript = function (url, callback) { 2628 var script = document.createElement('script'); 2629 script.type = 'text/javascript'; 2630 if (script.readyState) { 2631 script.onreadystatechange = function () { 2632 if (script.readyState == 'loaded' || script.readyState == 'complete') { 2633 script.onreadystatechange = null; 2634 callback(); 2635 } 2636 }; 2637 } else { 2638 script.onload = function () { 2639 callback(); 2640 }; 2641 } 2642 script.src = url; 2643 document.getElementsByTagName('head') [0].appendChild(script); 2644}; 2645 2646if ((typeof jQuery === 'undefined') || (parseFloat(jQuery.fn.jquery) < 1.7)) { 2647 loadScript('//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', function () { 2648 jQuery191 = jQuery.noConflict(true); 2649 myAppJavaScript(jQuery191); 2650 }); 2651} else { 2652 myAppJavaScript(jQuery); 2653} 2654 2655 2656function myAppJavaScript($) { 2657 2658 2659 pay_status="" 2660 plan_name="" 2661 mail_chimp_enable="0" 2662 gdpr_msg= "I agree to my email being stored and used to receive the newsletter." 2663 2664 shop= Shopify.shop; 2665 2666 2667 csp_premium = 0; 2668 if(pay_status=="active" && plan_name =="Coming Soon Premium" ) 2669 { 2670 csp_premium=1; 2671 2672 } 2673 2674 2675 2676 var Create_form_fields=(productdata)=> 2677 { 2678 2679 2680 var options=productdata.product.options; 2681 2682 2683 for(let i = 0; i < options.length; i++){ 2684 2685 var varianName=options[i].name; 2686 var varianValuesArray=options[i].values; 2687 2688 // select_id=`csp_sel_${varianName}`; 2689 select_id=varianName; 2690 2691 if(varianName=="Title") 2692 { 2693 continue; 2694 2695 } 2696 2697 2698 2699 SelectDiv=`<div class="form-group"> 2700<select class="form-control formfield csp_var_data" id=${select_id} name="csp_var['var']['${varianName}']"><option selected="true" value="select_default_opt" disabled="disabled" > 2701Select ${varianName}</option></select></div>`; //created dynamic select option 2702 2703 $('.csp_variants').prepend(SelectDiv); 2704 var options_html= varianValuesArray.forEach(Create_selectmenu); 2705 2706 2707 2708 2709 2710 2711 2712function Create_selectmenu(item) { 2713 var options=`<option value=${item}>${item}</option>`; //created dynamic options for select menu 2714 $(`#${select_id}`).append(options); 2715 2716} 2717 2718 2719 } 2720 2721 } 2722 2723 2724 2725 2726 2727 prod_handle_arr = ""; 2728 // prod_handle_arr = prod_handle_arr.replaceAll(" ",""); 2729 2730 prod_handle_arr = prod_handle_arr.replace(/\s/g,""); 2731 2732 prod_array = prod_handle_arr.split(',') 2733 2734 // is_all_products = "0"; 2735 is_all_products = 0; 2736 hidePrice = "" 2737 hidePriceCollction = "" 2738 2739 enable="1"; 2740 detail_page_show_class = "detail_page_show_class"; 2741 btn_name = "Coming Soon"; 2742 2743 var prod_array_url=[]; 2744 $.each(prod_array,function(key,val){ 2745 csp_url ='/products/'+val.trim() ; 2746 prod_array_url.push(csp_url); 2747 2748 }); 2749 2750 2751 setTimeout(()=>{ 2752 2753 if(is_all_products != "1"){ 2754 2755 2756 $(".csp-prod-wrapper a.goinDetailPageclass").each(function(){ 2757 2758 var currel = $(this); 2759 console.log(currel); 2760 2761// return false; 2762// var currhndle = currel.find(".csp-prod-handle").html(); 2763 var currurlget = $(this).attr('data-csp-prod-url'); 2764 var currurlremove = currurlget.split('?'); 2765// console.log(currurlget); 2766// return false; 2767 2768 var currurl2 = currurlremove[0]; 2769 var currurlarr = currurl2.split('/'); 2770 var currurl = currurlarr[currurlarr.length-1]; 2771 console.log("HELLO"+currel); 2772 $.each(prod_array,function(key,val){ 2773 // if(prod_array_url.indexOf(currurl) != -1){ 2774 2775 if($.inArray(currurl,prod_array) !== -1){ 2776// console.log('add 3'); 2777 // currel.find(".csp-prod-button").show(); 2778 2779 currel.html('<button type="button" class="btn button--primary goinDetailPage csp-prod-button ">
2779'+btn_name+'</button>'); 2780// currel.parent().find(hidePrice).remove(); 2781 currel.parent().parent().find(hidePriceCollction).remove(); 2782// console.log('call'+ hidePriceCollction); 2783 2784 2785 console.log(currel); 2786 2787 2788 if(shop=="caremoliglutenfree.myshopify.com") { currel.parent().next().hide(); } //hiding quick view and add to cart for store 2789 if(shop == 'springer-nature-author-services.myshopify.com' || shop == 'feelpure.myshopify.com'){ 2790 2791 currel.parent().parent().find('.sb_addtocart').remove(); 2792 2793 2794 } 2795 if(shop == 'ap-shave-co.myshopify.com' ){ 2796 console.log('hello ') 2797 currel.parent().prev().append('<div class="product-card__availability">Coming Soon</div>') ; 2798 $('.csp-prod-wrapper').hide() 2799 2800 2801 } 2802 2803 }else{ 2804 // currel.find(".csp-prod-button").remove(); 2805// console.log('call2'+hidePriceCollction); 2806 currel.parent().parent().find(hidePriceCollction).show() 2807 2808 } 2809 }); 2810 /* if(currhndle == val){ //console.log('add'); 2811 currel.find(".csp-prod-button").show(); 2812 currel.parent().find(hidePrice).remove() 2813 }else{ 2814 //currel.find(".csp-prod-button").remove(); 2815 currel.parent().find(hidePrice).show() 2816 } 2817 2818 }); 2819 if(prod_handle_arr.indexOf(currhndle) != -1){ 2820 currel.find(".csp-prod-button").show(); 2821 currel.parent().find(hidePrice).remove() 2822 }else{ 2823 currel.find(".csp-prod-button").remove(); 2824 currel.parent().find(hidePrice).show() 2825 }*/ 2826 2827 }); 2828 }else{ 2829 $(".csp-prod-button").show(); 2830 $(hidePriceCollction).hide(); 2831 2832 } 2833 },500); 2834 2835 //if ($("body").hasClass("template-product")) { 2836 2837 if (window.location.pathname.indexOf('/products/') !== -1) { 2838 2839 2840 2841 2842 curr_url_detailpge = ""; 2843 curr_title_detailpge = ""; 2844 curr_hundle_detailpge = ""; 2845 curr_hundle_pid = ""; 2846 console.log(curr_hundle_detailpge); 2847 addtocspbutton = '<div class="csp-prod-wrapper-detailpage">'+ 2848 '<div class="csp-prod-url">'+curr_url_detailpge+'</div>'+ 2849 '<div class="csp-prod-id">'+curr_hundle_pid+'</div>'+ 2850 '<div class="csp-prod-title">'+curr_title_detailpge+'</div>'+ 2851 '<div class="csp-prod-handle">'+curr_hundle_detailpge+'</div>'+ 2852 '<div class="csp-prod-button">'+ '</div>'+'<div class="csp-prod-form"><form class="c-form" action=""><input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"><input type="hidden" name="action" value="validate_captcha"><label class=" coming-soon-label" for="checkbox">Register your interest</label><div class="c-form_label"><input class="c-form__input" placeholder="Enter Your E-mail" id="cspemail" type="email" pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{1,63}$" required=""><button class="call-for-price-btn submitReq btn--primary btn c-form__button" type="button"><div class="nb-spinner"></div><span>Notify me</span></button></div></form></div>'+ '</div>'; 2853 2854 2855 // csp_premium=1; // for testing only. 2856 if(csp_premium==1){ 2857 2858 addtocspbutton = '<div class="csp-prod-wrapper-detailpage">'+ 2859 '<div class="csp-prod-url">'+curr_url_detailpge+'</div>'+ 2860 '<div class="csp-prod-id">'+curr_hundle_pid+'</div>'+ 2861 '<div class="csp-prod-title">'+curr_title_detailpge+'</div>'+ 2862 '<div class="csp-prod-handle">'+curr_hundle_detailpge+'</div>'+ 2863 '<div class="csp-prod-button">'+ '</div>'+'<div class="csp-prod-form"><form class="c-form" action=""><input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"><input type="hidden" name="action" value="validate_captcha"><label class=" coming-soon-label" for="checkbox">Register your interest</label><div class="c-form_label"><input class="c-form__input" placeholder="Enter Your E-mail" id="cspemail" type="email" pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{1,63}$" required=""><button class="call-for-price-btn submitReq btn c-form__button" type="button"><div class="nb-spinner"></div><span>Notify me</span></button></div><div class="csp_gdpr_section"><input type="checkbox" class="csp_gdpr_cb"><span class="csp_gdpr_msg">I agree to my email being stored and used to receive the newsletter.</span></div></form></div>'+ '</div>'; 2864 2865 2866 2867 } 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 if(Shopify.shop=="springer-nature-author-services.myshopify.com") 2886 { 2887 2888 addtocspbutton = '<div class="csp-prod-wrapper-detailpage">'+ 2889 '<div class="csp-prod-url">'+curr_url_detailpge+'</div>'+ 2890 '<div class="csp-prod-id">'+curr_hundle_pid+'</div>'+ 2891 '<div class="csp-prod-title">'+curr_title_detailpge+'</div>'+ 2892 '<div class="csp-prod-handle">'+curr_hundle_detailpge+'</div>'+ 2893 '<div class="csp-prod-button">'+ '</div>'+'<div class="csp-prod-form"><form class="c-form" action=""><input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"><input type="hidden" name="action" value="validate_captcha"><label class=" coming-soon-label" for="checkbox">Register your interest</label><div class="c-form_label"><input class="c-form__input" placeholder="Enter Your E-mail" id="cspemail" type="email" pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{1,63}$" required=""><button class="call-for-price-btn submitReq btn c-form__button" type="button"><div class="nb-spinner"></div><span>Notify me</span></button></div><div class="csp_gdpr_section"><input type="checkbox" class="csp_gdpr_cb"><span class="csp_gdpr_msg">I agree to <a target="_blank" href="https://shop.springernature.com/pages/terms-of-service">terms and conditions</a></span></div></form></div>'+ '</div>'; 2894 2895 2896 $(document).on("change",".csp_gdpr_cb",function(){ 2897 2898 2899 if(this.checked) { 2900 2901 $("#cspemail").prop('disabled', false); 2902 $("#cspemail").prop('enabled', true); 2903 2904 } 2905 else 2906 { 2907 2908 $("#cspemail").prop('enabled', false); 2909 $("#cspemail").prop('disabled', true); 2910 } 2911 2912 });
2913 2914 2915 } 2916 2917 2918 if(is_all_products != "1"){ 2919 if($.inArray(curr_hundle_detailpge,prod_array) !== -1){ 2920 // if(prod_handle_arr.indexOf(curr_hundle_detailpge) != -1){ 2921 $( "form" ).each(function( index ) { 2922 getForm = $(this).attr("action"); 2923 if(getForm == "/cart/add"){ 2924 2925 console.log("testing"); 2926 $(hidePrice).remove() 2927 // $(this).after(addtocspbutton); 2928 $(".csp-prod-button").show(); 2929 //$(this).remove() 2930 if(shop == 'springer-nature-author-services.myshopify.com' || shop=='jatie-beauty.myshopify.com' || shop=='saltsand.myshopify.com'){ 2931 $(this).after(addtocspbutton); 2932 $('.sb_addtocart ,.sb_qty').remove(); 2933 }else if(shop=='julie-did-it-studios.myshopify.com'){ 2934 $(this).children().children('.desc_blk_bot.clearfix').after(addtocspbutton); 2935 $('.sb_addtocart ,.sb_qty').remove(); 2936 }else if(shop=='meadows-clothing.myshopify.com'){ 2937 console.log("meadows"); 2938 $(this).after(addtocspbutton); 2939 $('.sb_addtocart ,.sb_qty,.shopify-payment-button').remove(); 2940 2941 }/*else if(shop=="twisted-bee.myshopify.com"){ 2942 console.log("twisted"); 2943 $(this).after(addtocspbutton); 2944 // $('.sb_addtocart ,.sb_qty,.shopify-payment-button').remove(); 2945 $('form[action="/cart/add"]').show(); 2946 $('.csp-prod-wrapper-detailpage').css({'display','none'}) 2947 }*/ 2948 else if(shop=="beautygypsyrecommends.myshopify.com"){ 2949 $(this).after(addtocspbutton); 2950 $('form[action="/cart/add"]').show(); 2951 $('.product-buttons').hide(); 2952 console.log("twisted"); 2953 } 2954 else if(shop=="angel-alchemy-jewelry.myshopify.com"){ 2955 console.log("angel-alchemy-jewelry"); 2956 $(this).find('.product-main-detail').after(addtocspbutton); 2957 // $('.sb_addtocart ,.sb_qty,.shopify-payment-button').remove(); 2958 $('form[action="/cart/add"]').show(); 2959 $('.sb_form').css({'display':'none'}) 2960 } 2961 else{ 2962 $('form[action="/cart/add"]').hide(); 2963 $(this).after(addtocspbutton); 2964 } 2965 2966 if(shop=='cedar-hill-homestead-llc.myshopify.com'){ 2967 $('form[action="/cart/add"]').show(); 2968 2969 $('.pf-26_').hide(); 2970 $('.pf-34_').hide(); 2971 $('.pf-36_').hide(); 2972 $('.pf-204_').hide(); 2973// $(this).after(addtocspbutton); 2974// $(".csp-prod-button").show(); 2975 if($('.pf-15_')){ 2976 $('.pf-36_').after(addtocspbutton); 2977 return false; 2978 } 2979 } 2980 if(shop=='jatie-beauty.myshopify.com'){ 2981 console.log('ba-product-addtocart') 2982 setTimeout(function(){ $('.ba-product-form button.ba-product-addtocart').css('display','none'); }, 2000); 2983 } 2984 } 2985 }); 2986 if(detail_page_show_class != ''){ 2987 $(hidePrice).remove() 2988 $('.'+detail_page_show_class).after(addtocspbutton); 2989 $(".csp-prod-button").show(); 2990 $(this).remove() 2991 } 2992 }else{ 2993 console.log("testing2"); 2994 $('form[action="/cart/add"]').show(); 2995 $(hidePrice).show() 2996 } 2997 }else{ 2998 $( "form" ).each(function( index ) { 2999 getForm = $(this).attr("action"); 3000 if(getForm == "/cart/add"){ 3001 $(hidePrice).remove() 3002 $(this).after(addtocspbutton); 3003 $(".csp-prod-button").show(); 3004 $(this).remove() 3005 } 3006 }); 3007 if(detail_page_show_class != ''){ 3008 $(hidePrice).remove() 3009 $('.'+detail_page_show_class).after(addtocspbutton); 3010 $(".csp-prod-button").show(); 3011 $(this).remove() 3012 } 3013 } 3014 } 3015 3016// shop=Shopify.shop; 3017// var product= $('.csp-prod-url').html();
3018// producturl=product; 3019// console.log(producturl) 3020// $(".redirectDetailPage").attr('href',producturl); 3021 3022$(document).on('click', '.goinDetailPage', function (e) { 3023// shop=Shopify.shop; 3024// var product= $(this).parent().parent().find('.csp-prod-url').html(); 3025// producturl=product; 3026// console.log(producturl) 3027// $(".redirectDetailPage").attr('href',producturl); 3028 shop=Shopify.shop; 3029 var product= $(this).parent().parent().parent().find('.csp-prod-url').text(); 3030 //producturl=product; 3031 producturl=product .replace(/ /g,'') ; 3032 //console.log(producturl) 3033 3034 $(".redirectDetailPage").attr('href',producturl); 3035 3036}); 3037 3038 3039 $(document).on('click', '.call-for-price-btn', function (e) { 3040 $('.csp-parent-wrapper').css("opacity","0"); 3041 $('.csp_loader').css("display","block"); 3042 $('.text-danger').hide(); 3043 3044 3045 var country_enable = ""; 3046 // alert(country_enable); 3047// var country_field = (country_enable=="0") ? alert("if") $('.csp_country_field').show() : $('.csp_country_field').hide(); 3048 var country_field = (country_enable=="1") ? $('.csp_country_field').show() : $('.csp_country_field').hide() ; 3049 3050 3051 // $('.sb_csp')[0].reset(); 3052 // document.getElementsByClassName("sb_csp").reset(); 3053 $('.formfield').val(''); 3054 $('.csp_variants').empty(); //remove appended field for fresh start 3055 var url = window.location.href; 3056 3057 3058// $('#cspmodal').css("display","block"); 3059 3060 //shop=window.location.hostname; 3061 shop=Shopify.shop; 3062 3063 var product= $('.csp-prod-url').html(); 3064 title= $('.csp-prod-title').html(); 3065 3066 $('#csp_product_name').html(title); 3067 3068 productid= $('.csp-prod-id').html(); 3069 3070// console.log(productid) 3071 3072 producthandle=$('.csp-prod-handle').html(); 3073 3074 3075 producturl=shop+product; 3076 3077// console.log(producthandle); 3078 3079 AjaxURL = 'https://'+shop+'/products/'+producthandle+'.json'; 3080 3081 // alert(AjaxURL); 3082 3083 var request = $.ajax({ 3084 url:AjaxURL, 3085 type: "GET", 3086 3087 dataType: "json", 3088 beforeSend: function() { 3089 3090 $('.csp_loader').css("opacity","1"); 3091 }, 3092 }); 3093 3094 request.done(function(productdata) { 3095 3096 3097 3098 Create_form_fields(productdata); 3099 3100 // alert("after"); 3101 $('.csp_loader').css("display","none"); 3102 $('.csp-parent-wrapper').css("opacity","1"); 3103 3104 }); 3105 3106 3107 3108 3109 3110 3111 }); 3112 3113 3114 3115 3116 3117 $('.nb-spinner').hide(); 3118 // $('.submitReq').on('click', function () { 3119// $(document).ajaxStart(function(){ 3120// $('.submitReq.c-form__button').hide(); 3121// $('.nb-sppinner').show(); 3122// console.log("load") 3123// }); 3124// $(document).ajaxComplete(function(){ 3125// $('.submitReq.c-form__button').show(); 3126// $('.nb-sppinner').hide(); 3127// console.log("open") 3128// }); 3129 $(document).on('click', '.submitReq', function(){ 3130 $('.submitReq').attr("disabled","true"); 3131// console.log('dfdfdfdfdfdfd') 3132 $('.text-danger').remove(); 3133 var email_regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 3134// var name1 = $('#cspname').val(); 3135 var email = $('#cspemail').val(); 3136 var phone = $('#cspphone').val(); 3137 var message = $('#cspmessage').val(); 3138 var country = $('#csp_country').val(); 3139 var ownermail="[email protected]"; 3140 var checkqty = $('#Quantity').val(); 3141 var gcaptcha=$('.g-recaptcha-response').val(); 3142 var qty = ''; 3143 3144 if(typeof checkqty !== "undefined"){ 3145 qty = checkqty; 3146 } 3147 3148 var country_enable = ""; 3149 3150 3151// $('.submitReq').attr("disabled","true"); 3152 3153 3154 setTimeout(function() { $('.submitReq').removeAttr("disabled"); }, 1000); 3155 3156 3157 customer_subscribe=0; //terms and condition checkbox value 3158 if($(".csp_gdpr_cb").prop('checked') == true){ 3159 customer_subscribe=1; 3160} 3161 3162 3163 3164 3165 3166 3167 3168 3169 count_name = true; 3170// if (name1.length==0) { 3171// $('#cspname').after('<span class=\'err_name text-danger\'>Please enter name</span>'); 3172// count_name = false; 3173// } 3174 3175 if(Shopify.shop=="springer-nature-author-services.myshopify.com"){ //different validation for springer-nature-author-services.myshopify.com 3176 3177 3178 3179 3180 3181 if($(".csp_gdpr_cb").prop('checked') == false){ 3182 3183 $("#cspemail").prop('disabled', true); 3184 $('.csp-prod-form .c-form_label').after("<span class='err_email text-danger'>Please confirm the terms & conditions!</span>"); 3185 count_name = false; 3186 } 3187 else 3188 { 3189 if (email.length == 0) { 3190 $('.csp-prod-form .c-form_label').after("<span class='err_email text-danger'>Please enter your email address.</span>"); 3191 3192 count_name = false; 3193 3194 } 3195 else 3196 { 3197 if(!email_regex.test(email)){ 3198 $('.csp-prod-form .c-form_label').after("<span class='err_email text-danger'>Enter a valid email address.</span>"); 3199// $('.err_email.text-danger').hide(); 3200 3201 3202 count_name = false; 3203 } 3204 3205 } 3206 3207 3208 } 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 } 3221 3222 else { 3223 if (email.length == 0) { 3224 $('.csp-prod-form .c-form_label').after("<span class='err_email text-danger'>Please enter your email address.</span>"); 3225 3226 count_name = false; 3227 3228 } 3229 else 3230 { 3231 if(!email_regex.test(email)){ 3232 $('.csp-prod-form .c-form_label').after("<span class='err_email text-danger'>Enter a valid email address.</span>"); 3233// $('.err_email.text-danger').hide(); 3234 3235 3236 count_name = false; 3237 } 3238 3239 } 3240 3241 } 3242 $('.err_email.text-danger').delay(4000).fadeOut(); 3243 setTimeout(function() { $('.err_email.text-danger').remove(); }, 4000); 3244 3245 if(count_name){ 3246 3247 3248 3249 /* $('.nb-spinner').show(); 3250 $('.submitReq.c-form__button span').hide(); */ 3251 // return false; 3252 // console.log('ret false') 3253 3254 $.ajax({
3255 url: 'https://setubridgeapps.com/coming-soon-product/app/src/public/submitreq', 3256 method: 'GET', 3257 data: { /*form_data */ 3258 3259 email: email, 3260 productid:productid, 3261 pid: producturl, 3262 shop: shop, 3263 senderemail: ownermail, 3264 title:title, 3265 qty:qty, 3266 gcaptcha: gcaptcha, 3267 customer_subscribe : customer_subscribe 3268 3269 }, 3270 cache: false, 3271 beforeSend: function() { 3272 /* $('.csp_loader').css("display","block"); 3273 $('.csp_loader').css("opacity","1"); 3274 $('.csp-parent-wrapper').css("opacity","0"); 3275 3276 // return false; 3277 */ }, 3278 success: function (data) 3279 { 3280 3281 // console.log("Stopping Here"); 3282 3283 3284 $('.nb-spinner').hide(); 3285 $('.submitReq.c-form__button span').show(); 3286// $('.submitReq.c-form__button span').css({"opacity":"1"}); 3287 3288 var shop=Shopify.shop; 3289 3290 var redirectpage=""; 3291// console.log($('.c-form_label')); 3292 $('#cspmodal input,#cspmodal textarea').val(' '); 3293 $('.c-form_label').after('<div class="alert alert-success success-msg" style="background-color: #dff7df;padding: 10px;"><strong>Success!</strong> request has been sent!</div>'); 3294 $('.success-msg').delay(3000).fadeOut('slow'); 3295 setTimeout(function() { $('.success-msg').remove(); }, 3000); 3296 3297 $('.csp-parent-wrapper').css("opacity","1"); 3298 3299 3300 setTimeout(function() { $('.c-form')[0].reset(); }, 3000); 3301 $('#cspphone').val(''); 3302 $('#cspmessage').val(''); 3303 $('#cspphone').val(''); 3304 // return false; 3305 setTimeout(function(){ 3306 $('#cspmodal .alert-success').remove(); 3307 $('#cspmodal').hide(); 3308 3309 3310 var shop=Shopify.shop; 3311 var is_redirect=""; 3312 var redirect_page=""; 3313 if(is_redirect=="1"){ 3314 3315 redirect_page=redirect_page.trim(); 3316 3317 3318 if(redirect_page.length==0) 3319 { 3320 3321 3322 return false; 3323 } 3324 3325 window.open(redirect_page,"_self"); 3326 } 3327 },2000); 3328 } 3329 }); 3330 }else{ 3331 return false; 3332 } 3333 }); 3334 3335 } 3336</script>
3336 3337 3338
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.