CINXE.COM
Booktopia - Books, Online Books, #1 Australian online bookstore, Buy Discount Books, eBooks and DVDs from Australia and the world.
<!DOCTYPE html> <html class="ie lte9 lte8 lte7" xmlns="https://www.w3.org/1999/xhtml" xmlns:fb="https://ogp.me/ns/fb#" xmlns:og="https://opengraphprotocol.org/schema/"> <head> <style></style> <title>Booktopia - Books, Online Books, #1 Australian online bookstore, Buy Discount Books, eBooks and DVDs from Australia and the world.</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta property="og:description" content="Booktopia - buy online books, DVDs and Magazine Subscriptions from Australia's leading online bookstore with over 4 million titles. Booktopia offers thousands of eBooks, daily discounted books and flat rate shipping of $9.99 per online book order."> <meta name="description" content="Booktopia - buy online books, DVDs and Magazine Subscriptions from Australia's leading online bookstore with over 4 million titles. Booktopia offers thousands of eBooks, daily discounted books and flat rate shipping of $9.99 per online book order." /> <meta name="googlebot" content="index, follow" /> <meta name="robots" content="index, follow" /> <meta name="verify-v1" content="F64zs4eUjSjTSL0rPUgr9PhYfo83zSq3P5vPZv/82pw=" /> <meta name="verify-v1" content="KglSvZ6iSpITiVE7VWFSJvDW1Pubrd0s/OJl2JD2VE4=" /> <meta name="google-site-verification" content="WYJj8GuhTmtMPcGLnWPnypIz5pphLymkgK1b1R2x4kw" /> <META name="y_key" content="c9aade7ff6d13867"> <meta property="fb:app_id" content="116180781751442"/> <meta name="ec_enabled" content="true" id="ec_enabled"/> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" crossorigin="anonymous"/> <link rel="preconnect" href="https://www.google.com" crossorigin="anonymous"/> <link rel="preconnect" href="https://static.scarabresearch.com" crossorigin="anonymous"/> <link rel="preload" href="https://www.booktopia.com.au/wro/5148/jQuery.js?v=dev-20241119152116" as="script"/> <link rel="preload" href="https://www.booktopia.com.au/wro/5148/booktopia.desktop.css?v=dev-20241119152116" as="style" /> <link rel="preload" href="https://www.booktopia.com.au/template-resources/icon-fonts/booktopia.ttf?v=dev-20241119152116" as="font" crossorigin/> <link rel="preload" href="https://www.booktopia.com.au/template-resources/webfonts/Inter-roman.var.woff2?v=3.19" as="font" crossorigin/> <link rel="preload" href="https://www.booktopia.com.au/template-resources/webfonts/Inter-italic.var.woff2?v=3.19" as="font" crossorigin/> <link rel="icon" href="https://www.booktopia.com.au/images/assets/favicon.png" type="image/png" /> <link rel="shortcut icon" href="https://www.booktopia.com.au/images/assets/favicon.png" type="image/png" /> <script type="text/javascript"> var baseUrl = "/"; window.BKT_GLOBALS = {sesBrowseProductType: "917504", isMobileSession: false, currentNav: "",serverTimestamp: null, occasion: {enabled: "true",occasionName: "", theme: "color:#fff;background:#009933;", cutoffDate: "05/12/2024", displayWillNotArriveForOccasion: "true"}, version: "dev-20241119152116", fatZebraPaymentGateway: "FatZebra", gaEnhancedEcommerceEnabled: true, includeNotificationHeaderTemplates: false, paypalPayIn4Enabled: "true", enablePromotionText: "true", expressDeliveryEstimationEnabled: "true", expressShippingClassName: "ships-2-days", enableUniversalGA: true, freeShippingPromotionEnabled: 'false' }; </script> <script type="text/javascript">var customPath = "/template-resources";</script> <link rel="stylesheet" href="/wro/5148/booktopia.desktop.css?v=dev-20241119152116" type="text/css" /> <link rel="stylesheet" href="/wro/5148/booktopia.desktop.default.css?v=dev-20241119152116" type="text/css" /> <script> function isBotUserAgent(){ var crawlerAgentRegex = /bot|google|aolbuild|baidu|bing|msn|duckduckgo|teoma|slurp|yandex/i; if (crawlerAgentRegex.test(navigator.userAgent)) return true; return false; } function lazyLoadScript(url, callback){ if(isBotUserAgent()) return; var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.defer = true; script.type = 'text/javascript'; script.src = url; head.appendChild(script); script.onload = callback; } </script> <style> @font-face { font-family: 'booktopia'; src: url('/template-resources/icon-fonts/booktopia.eot?v=dev-20241119152116'); src: url('/template-resources/icon-fonts/booktopia.eot?v=dev-20241119152116#iefix') format('embedded-opentype'), url('/template-resources/icon-fonts/booktopia.ttf?v=dev-20241119152116') format('truetype'), url('/template-resources/icon-fonts/booktopia.woff?v=dev-20241119152116') format('woff'), url('/template-resources/icon-fonts/booktopia.svg?v=dev-20241119152116#booktopia') format('svg'); font-weight: normal; font-style: normal; font-display: block; } @font-face { font-family: 'Inter'; font-weight: 100 900; font-display: swap; font-style: normal; font-named-instance: 'Regular'; src: url("/template-resources/webfonts/Inter-roman.var.woff2?v=3.19") format("woff2"); } @font-face { font-family: 'Inter'; font-weight: 100 900; font-display: swap; font-style: italic; font-named-instance: 'Italic'; src: url("/template-resources/webfonts/Inter-italic.var.woff2?v=3.19") format("woff2"); } </style> <script async src="//booktopia.api.useinsider.com/ins.js?id=10002591"></script> <!-- Global site tag (gtag.js) - Google Ads: 1071893088 --> <script> lazyLoadScript("https://www.googletagmanager.com/gtag/js?id=AW-1071893088", function(){}) </script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-1071893088' ); gtag('config', 'AW-978980296' ); </script> <script> (function(w,d,s,l,i){ if(isBotUserAgent()) return; w[l]=w[l]||[]; w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl + '>m_auth=CYkt4R7ZvVvpqpVwuMhNgw>m_preview=env-2>m_cookies_win=x'; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-N74L7GH'); </script> <meta id="google-signin-client_id" name="google-signin-client_id" content="710731560171-45vinu3acor8dihqkbgoas28pkuhob7c.apps.googleusercontent.com" data-enabled="true"> <meta http-equiv="X-UA-Compatible" content="IE=9" /> <!-- Start VWO Async SmartCode --> <script type='text/javascript' id='vwoCode'> if(!isBotUserAgent()) { var _vwo_clicks = 300; //this will track first 300 click window._vwo_code = window._vwo_code || (function () { var account_id = 336745, version = 1.5, settings_tolerance = 2000, library_tolerance = 2500, use_existing_jquery = false, is_spa = 1, hide_element = 'body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', /* DO NOT EDIT BELOW THIS LINE */ f = false, d = document, vwoCodeEl = d.querySelector('#vwoCode'), code = { use_existing_jquery: function () { return use_existing_jquery }, library_tolerance: function () { return library_tolerance }, hide_element_style: function () { return '{' + hide_element_style + '}' }, finish: function () { if (!f) { f = true; var e = d.getElementById('_vis_opt_path_hides'); if (e) e.parentNode.removeChild(e) } }, finished: function () { return f }, load: function (e) { var t = d.createElement('script'); t.fetchPriority = 'high'; t.src = e; t.type = 'text/javascript'; t.onerror = function () { _vwo_code.finish() }; d.getElementsByTagName('head')[0].appendChild(t) }, getVersion: function () { return version }, getMatchedCookies: function (e) { var t = []; if (document.cookie) { t = document.cookie.match(e) || [] } return t }, getCombinationCookie: function () { var e = code.getMatchedCookies(/(?:^|;)\s?(_vis_opt_exp_\d+_combi=[^;$]*)/gi); e = e.map(function (e) { try { var t = decodeURIComponent(e); if (!/_vis_opt_exp_\d+_combi=(?:\d+,?)+\s*$/.test(t)) { return '' } return t } catch (e) { return '' } }); var i = []; e.forEach(function (e) { var t = e.match(/([\d,]+)/g); t && i.push(t.join('-')) }); return i.join('|') }, init: function () { if (d.URL.indexOf('__vwo_disable__') > -1) return; window.settings_timer = setTimeout(function () { _vwo_code.finish() }, settings_tolerance); var e = d.createElement('style'), t = hide_element ? hide_element + '{' + hide_element_style + '}' : '', i = d.getElementsByTagName('head')[0]; e.setAttribute('id', '_vis_opt_path_hides'); vwoCodeEl && e.setAttribute('nonce', vwoCodeEl.nonce); e.setAttribute('type', 'text/css'); if (e.styleSheet) e.styleSheet.cssText = t; else e.appendChild(d.createTextNode(t)); i.appendChild(e); var n = this.getCombinationCookie(); this.load('https://dev.visualwebsiteoptimizer.com/j.php?a=' + account_id + '&u=' + encodeURIComponent(d.URL) + '&f=' + +is_spa + '&vn=' + version + (n ? '&c=' + n : '')); return settings_timer } }; window._vwo_settings_timer = code.init(); return code; }()); } </script> <!-- End VWO Async SmartCode --> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"Ug4AUFRADAYHV1ZQ",licenseKey:"18e954a8c4",applicationID:"457372"};;/*! For license information please see nr-loader-full-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>d});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function d(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const d="[data-nr-mask]",u=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,u());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},d={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},u={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!u[e])throw new Error("Runtime for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");u[e]={...(0,n.a)(t,d),...c},Object.hasOwnProperty.call(u[e],"harvestCount")||Object.defineProperty(u[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=u[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>d});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function d(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function u(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(u(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>d});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),d=function e(t,r){var n={},s={},u={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(d.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),u=c.length,l=0;l<u;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=d)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function d(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>d,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function d(e){let t=a();return t.initializedAgents?.[e]}function u(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(d+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(u+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],d=e[c];u(d)||(e[c]=r(d,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return u(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){d([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,u,l;try{a=this,o=[...arguments],u="function"==typeof n?n(o,a):n||{}}catch(t){d([t,"",[o,a,s],u],e)}i(r+"start",[o,a,s],u,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],u,c),e}finally{i(r+"end",[o,a,l],u,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){d([t,r,n,i],e)}s=a}}}function d(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function u(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},d={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},u=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>d,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function d(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,d="fn"+s,u="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),d=r(5289),u=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),_=r(5603),O=r(5284);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function P(e,t={},p,x){let{init:w,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(w=H.init,P=H.info,j=H.loader_config),(0,S.xN)(e.agentIdentifier,w||{}),(0,_.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},u.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,S.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];I||(D.proxy.assets&&(N(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");E[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),T(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(A,e,!0,"api")})),p.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},u.RI?(0,d.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-Sx2xJQrHp2m/Ngn/ZcfBCUwNr2Xy/C5urYtWpfm3bWpil4spXOQGTtNwIfF5HvPGioGASn9QTyE4Z+zC7r7wcg==",222:"sha512-hMte3OWgwwYeisSiD7WCIx/6tT16zLaPjag9uF4tIZp7ybOvrJKbeyzhe4fz1tDbkdcdOMm8dvgPPLBatSAGeA==",95:"sha512-MPaT9dkHv16XzwEUVZPyqpN1do/Er1XFAZoIAPYWylmv+iGIThqN+GwQq27pUyAX7sNXVJQVZezH96p53Ks3Pg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={959:0,85:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,d=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);d<a.length;d++)o=a[d],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function d(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(891).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class _ extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),g.RI&&((0,T.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let M=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,U,(function(){return M++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===d||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",Q=["arrayBuffer","blob","json","text","formData"],J=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(J&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,Q.forEach((e=>{r(J[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),d={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),de=["load","error","abort","timeout"],ue=de.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function u(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",d),t.on("xhr-load-added",u),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class _e extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#d=!1;async#c(e){if(!this.#d){this.#d=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];g.RI&&e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785);class ke extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=d(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,_e,Ne,he,N,L,Pe,ke],loaderType:"pro"})})()})();</script> </head> <body id="" class=" "> <script> var currentPageNav = ""; </script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N74L7GH>m_auth=CYkt4R7ZvVvpqpVwuMhNgw>m_preview=env-2>m_cookies_win=x" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <a name="top"></a> <template id="skip-to-content-template"> <a id="skip-to-content" tabindex="0" style="height: 36px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; font-weight: 600; text-decoration: underline; "> Skip to content </a> </template> <div id="header" > <div id="top-bar"> <div class="content"> <div class="lhs-link location-selector-link-wrapper"> <a href="javascript:void(0)" class="location-selector-link"> <span class="icon-location1"></span> <span class="link-text"> Hello! Enter your postcode for delivery time </span> </a> </div> <div class="lhs-link"> <a href="/track-order.ep" data-mh-pe="eventOnClick" data-mh-ec="Header" data-mh-ea="Click"><span data-mh-label>Track My Order</span></a> </div> <div class="lhs-link"> <a href="/helpCentre.ep" data-mh-pe="eventOnClick" data-mh-ec="Header" data-mh-ea="Click"><span data-mh-label>Help Centre</span></a> </div> <div class="lhs-link"> <a href="tel: 1300 187 187" data-mh-pe="eventOnClick" data-mh-ec="Click to Call" data-mh-ea="Link click"><b data-mh-label> 1300 187 187</b></a> </div> <div id="fb-like"> <a data-mh-pe="eventOnClick" data-mh-ec="Header" data-mh-ea="Click" data-mh-el="Like" href="//www.facebook.com/pages/Booktopia/91043653859" target="_blank"><img class="lazyload no-loader" src="" data-src="https://www.booktopia.com.au/images/assets/header/facebook-like.png" alt="Likes" width="90" height="20"></a> </div> <div id="links" data-mh-pe="eventOnClick" data-mh-ec="Header" data-mh-ea="Click"> <a href="javascript:void(0)" class="link-notifications" tabindex="0" title="Notifications"> <span class="icon-bell1"></span> <span id="new-notification-badge"></span> <span data-mh-label class="rhs-link-text">Notifications</span> </a> <div class="if-signed-out"> <a href="/view-wishlist-nocache.ep" title="My Wish Lists"><span class="icon-Heart-new"></span> <span data-mh-label class="rhs-link-text">My Wish Lists</span></a> <a href="/manage-account.ep" class="grey-11" title="Login/Join"><span class="icon-user1"></span> <span data-mh-label class="rhs-link-text">Login / Join</span></a> </div> <div class="if-signed-in"> <a href="/view-wishlist-nocache.ep" title="My Wish Lists"><span class="icon-Heart-new"></span> <span data-mh-label class="rhs-link-text">My Wish Lists</span></a> <a href="/manage-account.ep" title="My Account"><span class="icon-user1"></span> <span data-mh-label class="rhs-link-text">My Account</span></a> <a href="/sign-out-customer-session.ep" onclick="updateLocalEmptyCart();resetPostcode();googleSignOut();return true" title="Sign Out"><span class="icon-log-out"></span> <span data-mh-label class="rhs-link-text">Sign Out</span></a> </div> </div> </div> </div> <div id="top-notifications-container" data-escape-popup data-popup-initiator=".link-notifications"> <div id="top-notification-scroll" > <div id="top-notification-empty">No new notifications.</div> <template id="top-notification-price-template"> <div id="top-notification-price"> <a href="/view-wishlist-nocache.ep?priceDrop=true" class="top-notification top-notification-link row no-gutters align-items-center"> <span class="icon-price-drop col-auto"></span> <p class="col">Items in your wish list have gone down in price.</p> <div class="col-auto"> <span class="notification-button">See All</span> </div> </a> </div> </template> <template id="top-notification-stock-template"> <div id="top-notification-stock"> <a href="/view-wishlist-nocache.ep?backInStock=true" class="top-notification top-notification-link row no-gutters align-items-center"> <span class="icon-back-in-stock col-auto"></span> <p class="col">Items in your wish list are back in stock.</p> <div class="col-auto"> <span class="notification-button">See All</span> </div> </a> </div> </template> </div> </div> <div class="main-content"> <div class="content"> <div id="logo"> <a href="/"><img class="lazyload no-loader" src="" data-src="https://www.booktopia.com.au/images/assets/logos/booktopia-logo-positive.png" width="200" alt="Booktopia" /></a><br> <a href=" /your-local-bookstore/news18.html "><img id="flag" class="lazyload no-loader" src="" data-src="https://www.booktopia.com.au/images/assets/logos/tagline-green.svg" width="198" alt="Australia's local bookstore"/></a> </div> <div class="content-right-section"> <div class="header-right-section float-right"> <div id="search"> <form id="searchform" action="/search.ep" method="get" name="searchForm" onSubmit="return isSearchPopulated('headerSearch')"> <div class="search-box search"> <input id="header-search-box" type="search" maxlength="255" class="search-text expanded" name="keywords" value="Search Title, Author or ISBN" onblur="if (this.value==='') {this.value='Search Title, Author or ISBN'; this.style.color = '#6C737F'; }" onfocus="if (this.value==='Search Title, Author or ISBN') this.value=''; this.style.color = '#1F2A37';"/> <span class="my-skinnable-select skinned-select"> <select name="productType"> <option value="917504" selected="selected" >Books</option> <option value="917505" >eBooks</option> <option value="917510" >Audiobooks</option> <option value="917507" >Audio CDs</option> <option value="917503" >Stationery</option> </select> </span> <span class="icon-arrow-down8"></span> <button id="search-button" type="submit" class="submit float-right row align-items-center" data-skip-mh aria-label="Search"> <span class="icon-global-search font-size-15r mr-2"></span> <span class="search-button-text">Search</span> </button> </div> <template id="recommended-autocomplete-suggestions-template"> <div id="recommended-autocomplete-suggestions" class="autocomplete-suggestions"> <div class="autocomplete-group">Popular Search Terms</div> <div id="search-terms" class="row no-gutters"> </div> <div id="product-carousel"> </div> </div> </template> </form> </div> </div> </div> </div> </div> </div> <div id="top-nav" data-mh-pe="eventOnClick" data-mh-ec="Header - Nav" data-mh-ea="Click"> <div class="content"> <div class="header-version-b-item dcjq-mega-menu"> <ul class="menu" id="hover-menu-top"> <li><a class="sidenav-menu-switch"><div class="navLink"><i class="icon-menu-new"></i><span>ALL</span></div></a></li> <li id="navlink-books-sub"><a href="/?books"><span class="navLink">BOOKS</span></a></li> <li id="navlink-fiction-sub"> <a href="/books/fiction-books/cF-p1.html"> <span class="navLink">FICTION</span> </a> </li> <li id="navlink-non-fiction-sub"> <a href="/books/non-fiction-books/cN-p1.html"> <span class="navLink">NON-FICTION</span> </a> </li> <li id="navlink-australia"><a href="/books/australian-authors-books/l10-p1.html"><span class="navLink">AUSTRALIAN</span></a></li> <li id="mnu-books-children" class="navlink-kids-sub"><a href="/books/kids-childrens-books/cY-p1.html"><span class="navLink">KIDS</span></a></li> <li id="navlink-schools-sub"><a href="/school-books-textbooks/promo152.html"><span class="navLink">SCHOOL</span></a></li> <li> <a href="/books/text-books/higher-education-vocational-textbooks/cXA-p1.html"> <span class="navLink">ACADEMIC & TEXTBOOKS</span> </a> <div class="sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - ACADEMIC" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col sub-menu-content"> <ul class="row"> <li class="col-4" data-skip-mh> <ul> <h4>University</h4> <li><a href="/books/text-books/higher-education-vocational-textbooks/accounting-business-finance-higher-education-textbooks/cXAA-p1.html">Accounting, Business & Finance</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/biology-and-sciences-higher-education-textbooks/cXAB-p1.html">Biology & Science</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/computing-programming-higher-education-textbooks/cXAC-p1.html">Computing & Programming</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/education-higher-education-textbooks/cXAD-p1.html">Education</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/engineering-physics-higher-education-textbooks/cXAE-p1.html">Engineering & Physics</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/english-literature-higher-education-textbooks/cXAF-p1.html">English & Literature</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/environment-planning-higher-education-textbooks/cXAG-p1.html">Environment & Planning</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/health-care-higher-education-textbooks/cXAI-p1.html">Health Care</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/history-higher-education-textbooks/cXAJ-p1.html">History</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/language-higher-education-textbooks/cXAK-p1.html">Language</a></li> </ul> </li> <li class="col-4" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/non-fiction/law/cL-p1.html">Law</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/mathematics-statistics-higher-education-textbooks/cXAM-p1.html">Mathematics & Statistics</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/media-communication-arts-higher-education-textbooks/cXAO-p1.html">Media, Communication & Arts</a></li> <li><a href="/books/non-fiction/medicine/cM-p1.html">Medicine</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/nursing-higher-education-textbooks/cXAP-p1.html">Nursing</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/politics-higher-education-textbooks/cXAQ-p1.html">Politics</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/psychology-higher-education-textbooks/cXAH-p1.html">Psychology</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/social-sciences-higher-education-textbooks/cXAR-p1.html">Social Sciences</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/study-skills-for-higher-education/cXAS-p1.html?mlk">Study Skills</a></li> </ul> </li> <li class="col-4" data-skip-mh> <ul> <h4>Vocational</h4> <li><a href="/vocational-trades/series7927.html">Trades</a></li> <li><a href="/vocational-hospitality-tourism/series7931.html">Hospitality & Tourism</a></li> <li><a href="/vocational-business-financial-management/series7929.html">Business, Financial & Management</a></li> <li><a href="/vocational-nursing-health-care/series7928.html">Nursing & Health Care</a></li> <li><a href="/vocational-it-networking-computer-repair/series7930.html">IT, Networking & Computer Repair</a></li> <li><a href="/vocational-education-early-childhood/series7932.html">Education & Early Childhood</a></li> <li><a href="/vocational-social-work-counselling/series7933.html">Social Working & Counselling</a></li> <li><a href="/vocational-design-art-fashion-photography/series7934.html">Design, Art, Fashion & Photography</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <div class="col-12"> <a class="more" href="/books/text-books/higher-education-vocational-textbooks/cXA-p1.html">Explore All Academic ></a> </div> </div> </div> </li> <li > <a href="/?ebooks" onclick="checkLatestKeywords(this, '917505')"> <span class="navLink">EBOOKS</span> </a> <div class="sub" data-mh-pe="eventOnClick" data-mh-ec="Header - EBOOKS" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul> <h4>Fiction</h4> <li><a href="/ebooks/fiction/romance/cFR-p1-e.html">Romance </a></li> <li><a href="/ebooks/fiction/crime-mystery/cFF-p1-e.html">Crime & Mystery</a></li> <li><a href="/ebooks/fiction/erotic-fiction/cFP-p1-e.html">Erotic Fiction</a></li> <li><a href="/ebooks/fiction/fantasy-fiction/cFM-p1-e.html">Fantasy</a></li> <li><a href="/ebooks/fiction/thrillers-suspense/cFH-p1-e.html">Thrillers</a></li> <li><a href="/ebooks/fiction/science-fiction/cFL-p1-e.html">Science Fiction</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Kids & YA</h4> <li><a href="/ebooks/children-teenagers-young-adults-ya-/children-s-fiction/cYF-p1-e.html">Children's Fiction</a></li> <li><a href="/ebooks/children-teenagers-young-adults-ya-/children-s-fiction/romance-love-stories-for-children-teenagers/cYFM-p1-e.html">Romance & Love Stories</a></li> <li><a href="/ebooks/children-teenagers-young-adults-ya-/picture-books-early-learning/cYB-p1-e.html">Picture Books & Early Learning</a></li> <li><a href="/ebooks/children-teenagers-young-adults-ya-/children-s-non-fiction/cYN-p1-e.html">Children's Non-Fiction</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Non-Fiction</h4> <li><a href="/ebooks/non-fiction/biographies-true-stories/cB-p1-e.html">Biographies</a></li> <li><a href="/ebooks/non-fiction/mind-body-spirit/cVX-p1-e.html">Mind, Body, Spirit</a></li> <li><a href="/ebooks/non-fiction/business-management/cKJ-p1-e.html">Business & Management</a></li> <li><a href="/ebooks/non-fiction/family-health/cVF-p1-e.html">Family & Health</a></li> <li><a href="/ebooks/non-fiction/gardening/cWM-p1-e.html">Gardening</a></li> <li><a href="/ebooks/non-fiction/history/cHB-p1-e.html">History</a></li> <li><a href="/ebooks/non-fiction/politics-government/cJP-p1-e.html">Politics & Government</a></li> <li><a href="/ebooks/non-fiction/psychology/cJM-p1-e.html">Psychology</a></li> <li><a href="/ebooks/non-fiction/science/cP-p1-e.html">Science</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Textbooks</h4> <li><a href="/ebooks/non-fiction/education/l101082-p1-e.html">Education</a></li> <li><a href="/ebooks/non-fiction/medicine/l101082-p1-e.html">Medicine</a></li> <li><a href="/ebooks/non-fiction/accounting-finance/l101082-p1-e.html">Accounting & Finance</a></li> <li><a href="/ebooks/non-fiction/law/l101082-p1-e.html">Law</a></li> <li><a href="/ebooks/non-fiction/psychology/l101082-p1-e.html">Psychology</a></li> <li><a href="/ebooks/non-fiction/mathematics/l101082-p1-e.html">Mathematics</a></li> <li><a href="/ebooks/non-fiction/language-linguistics/l101082-p1-e.html">Language & Linguistics</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <div class="col-12"> <a class="more" href="/?ebooks">Explore All eBooks ></a> </div> </div> </div> </li> <li ><a href="/?audiobooks" onclick="checkLatestKeywords(this, '917510')"><span class="navLink">AUDIOBOOKS</span></a></li> <li ><a href="/books/games-and-puzzles/cGMP-p1.html"><span class="navLink">GAMES & PUZZLES</span></a></li> <li ><a href="/?stationery"><span class="navLink">STATIONERY</span></a></li> <li ><a href="/books/gift-ideas/c53-p1.html"><span class="navLink">GIFTS</span></a></li> <li id="navlink-bargain"><a class="alert" href="/books/bargains/c9-p1.html"><span class="navLink">BARGAINS</span></a></li> <li><a href="//www.booktopia.com.au/blog/"><span class="navLink">BLOG</span></a></li> </ul> </div> <ul class="header-version-default-item"> <li id="nav-books" class="selected" ><a href="/?books" onclick="checkLatestKeywords(this, '917504')"><span class="navLink">BOOKS</span></a></li> <li id="nav-ebooks" ><a href="/?ebooks" onclick="checkLatestKeywords(this, '917505')"><span class="navLink">EBOOKS</span></a></li> <li id="nav-audio-books" ><a href="/?audiobooks" onclick="checkLatestKeywords(this, '917510')"><span class="navLink">AUDIOBOOKS</span></a></li> <li id="nav-games-toys-puzzles" ><a href="/books/games-and-puzzles/cGMP-p1.html"><span class="navLink">GAMES & PUZZLES</span></a></li> <li id="nav-stat" ><a href="/?stationery"><span class="navLink">STATIONERY</span></a></li> <li id="nav-gifts" ><a href="/books/gift-ideas/c53-p1.html"><span class="navLink">GIFT IDEAS</span></a></li> <li id="nav-help"><a href="//www.booktopia.com.au/blog/"><span class="navLink">BLOG</span></a></li> </ul> <a id="shopping-cart-summary" href="/view-cart.ep"> <div class="numItems"> <span id="numItemsQty"></span> <span id="numItemsUnits"></span> </div> <div class="icon-shopping-cart"></div> <div class="checkout-text">CHECKOUT</div> <div class="total"> </div> </a> <form name="state" style="display:none"> <input name="pageIsDirty" type="text" value="false"/> <input name="stateChangedAt" type="text" value="0"/> <input name="shoppingCartQty" type="text" value=""/> </form> <div class="clearfix"></div> </div> </div> <div id="sub-nav" class=" header-version-default-item"> <div class="content"> <ul class="dcjq-mega-menu"><ul id="hover-menu-top" class="menu" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS" data-mh-ea="Click"> <li id="mnu-books-fiction"><a href="/books/fiction-books/cF-p1.html">FICTION</a> <div class="sub" id="fiction-sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - FICTION" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col-auto sub-menu-browse"> <ul><h4>Browse Fiction</h4> <li><a href="/books/fiction/cF-p1.html?list=2"><span class="icon-New-Releases"></span>New Releases</a></li> <li><a href="/books/fiction/cF-p1.html?sorter=bestsellers-dsc"><span class="icon-Bestselling"></span>Bestselling</a></li> <li><a href="/books/bargains/fiction-bargains/c9A-p1.html"><span class="icon-Bargins"></span>Bargains</a></li> <li><a href="/books/fiction/l20-p1.html?cID=F"><span class="icon-Signed-copies"></span>Signed Copies</a></li> </ul> </div> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul> <h4>Popular Subjects</h4> <li><a href="/books/fiction/cF-p1.html?list=10">Australian Fiction</a></li> <li><a href="/books/fiction/classic-fiction/cFC-p1.html">Classic Fiction</a></li> <li><a href="/books/fiction-books/crime-mystery/cFF-p1.html">Crime & Mystery</a></li> <li><a href="/books/fiction/erotic-fiction/cFP-p1.html">Erotic Fiction</a></li> <li><a href="/books/fiction/fantasy-fiction/cFM-p1.html">Fantasy</a></li> <li><a href="/books/fiction/graphic-novels/cFX-p1.html">Graphic Novels & Manga</a></li> <li><a href="/books/fiction/historical-fiction/cFV-p1.html">Historical</a></li> <li><a href="/books/fiction/modern-contemporary-fiction/cFA-p1.html">Modern & Contemporary</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/non-fiction/literature-poetry-plays/poetry/cDC-p1.html">Poetry</a></li> <li><a href="/books/fiction/romance/cFR-p1.html">Romance</a></li> <li><a href="/books/fiction/science-fiction/cFL-p1.html">Science Fiction</a></li> <li><a href="/books/fiction/thrillers-suspense/cFH-p1.html">Thrillers & Mystery</a></li> <li><a href="/books/kids-childrens-books/children-s-fiction/young-adult-ya-fiction/cYFY-p1.html">Young Adult</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Popular Authors</h4> <li><a href="/margaret-atwood/author311.html">Margaret Atwood</a></li> <li><a href="/trent-dalton/author1259.html">Trent Dalton</a></li> <li><a href="/jane-harper/author144.html">Jane Harper</a></li> <li><a href="/stephen-king/author225.html">Stephen King</a></li> <li><a href="/dervla-mctiernan/author1258.html">Dervla McTiernan</a></li> <li><a href="/liane-moriarty/author934.html">Liane Moriarty</a></li> <li><a href="/matthew-reilly/author3.html">Matthew Reilly</a></li> <li><a href="/sally-rooney/author1154.html">Sally Rooney</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Popular Series</h4> <li><a href="/the-after-series/series4691.html">After</a></li> <li><a href="/a-game-of-thrones-a-song-of-ice-and-fire-paperbacks-by-george-r-r-martin/series533.html">A Game of Thrones</a></li> <li><a href="/jack-reacher-by-lee-child/series92.html">Jack Reacher</a></li> <li><a href="/the-jack-west-novels-by-matthew-reilly/series6.html">Jack West</a></li> <li><a href="/the-seven-sisters/series5946.html">The Seven Sisters</a></li> <li><a href="/outlander-paperback-novels/series4849.html">Outlander</a></li> <li><a href="/the-witcher-new-paperback-editions/series9231.html">The Witcher</a></li> <li><a href="/thomas-cromwell-trilogy/series6461.html">Wolf Hall</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <ul class="col-12"> <h4>More:</h4> <li><a href="/award-winning-reads/promo2921.html">Award Winning Reads</a></li> <li><a href="https://www.booktopia.com.au/blog/category/reviews/">Reviews and Staff Picks</a></li> <li><a href="https://www.booktopia.com.au/blog/category/interviews/">Author Interviews</a></li> <li><a href="https://www.booktopia.com.au/blog/podcasts/">Podcasts</a></li> <a class="more" href="/books/fiction-books/cF-p1.html">Explore All Fiction ></a> </ul> </div> </div> </li> <li id="mnu-books-nonfiction"><a href="/books/non-fiction-books/cN-p1.html">NON-FICTION</a> <div class="sub" id="non-fiction-sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - NON-FICTION" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col-auto sub-menu-browse"> <ul><h4>Browse Non-Fiction</h4> <li><a href="/books/non-fiction/cN-p1.html?sorter=bestsellers-dsc"><span class="icon-Bestselling"></span>Bestselling</a></li> <li><a href="/books/bargains/non-fiction-bargains/c9B-p1.html"><span class="icon-Bargins"></span>Bargains</a></li> </ul> </div> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul> <h4>Popular Subjects</h4> <li><a href="/books/non-fiction/animals-nature/cWN-p1.html">Animals & Nature</a></li> <li><a href="/books/non-fiction/arts-entertainment/cA-p1.html">Arts & Entertainment</a></li> <li><a href="/books/non-fiction/biographies-true-stories/cB-p1.html">Biographies & True Stories</a></li> <li><a href="/books/non-fiction/business-management/cKJ-p1.html">Business & Management</a></li> <li><a href="/books/non-fiction/comedy-humour/cWH-p1.html">Comedy & Humour</a></li> <li><a href="/books/non-fiction/computing-i-t-/cU-p1.html">Computing & IT</a></li> <li><a href="/books/non-fiction/cooking-food-drink/cWB-p1.html">Cooking, Food & Drink</a></li> <li><a href="/books/non-fiction/crafts-handiwork/cWF-p1.html">Crafts & Handiwork</a></li> <li><a href="/books/non-fiction/family-health/cVF-p1.html">Family & Health</a></li> <li><a href="/books/non-fiction/lifestyle-fashion/fashion-style-guides/cWJF-p1.html">Fashion & Style Guides</a></li> <li><a href="/books/non-fiction/family-health/fitness-diet/cVFM-p1.html">Fitness & Diet</a></li> <li><a href="/books/non-fiction/gardening/cWM-p1.html">Gardening</a></li> <li><a href="/books/non-fiction/self-help-personal-development/green-lifestyle-self-sufficiency/cVSZ-p1.html">Green Lifestyle & Self-Sufficiency</a></li> <li><a href="/books/non-fiction/history/cHB-p1.html">History</a></li> <li><a href="/books/non-fiction/home-house-maintenance/cWK-p1.html">House & Home</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/non-fiction/language-linguistics/cC-p1.html">Language & Linguistics</a></li> <li><a href="/books/non-fiction/mind-body-spirit/cVX-p1.html">Mind, Body, Spirit</a></li> <li><a href="/books/non-fiction/politics-government/cJP-p1.html">Politics & Government</a></li> <li><a href="/books/non-fiction/psychology/cJM-p1.html">Popular Psychology</a></li> <li><a href="/books/non-fiction/religion-beliefs/cHR-p1.html">Religion & Beliefs</a></li> <li><a href="/books/non-fiction/science/cP-p1.html">Science</a></li> <li><a href="/books/non-fiction/self-help-personal-development/cVS-p1.html">Self Help & Personal Development</a></li> <li><a href="/books/non-fiction/society-culture/cJF-p1.html">Society & Culture</a></li> <li><a href="/books/non-fiction/sports-recreation/cWS-p1.html">Sport & Recreation</a></li> <li><a href="/books/non-fiction/transportation/cWG-p1.html">Transportation</a></li> <li><a href="/books/non-fiction/travel-holidays/cWT-p1.html">Travel & Holidays</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Biographies & True Stories</h4> <li><a href="/books/non-fiction/biographies-true-stories/biographies/arts-entertainment-biographies/cBGF-p1.html">Arts & Entertainment Biographies</a></li> <li><a href="/books/non-fiction/biographies-true-stories/biographies/historical-biographies/cBGH-p1.html">Historical Biographies</a></li> <li><a href="/books/non-fiction/biographies-true-stories/biographies/sport-biographies/cBGS-p1.html">Sport Biographies</a></li> <li><a href="/books/non-fiction/travel-holidays/travel-writing/cWTL-p1.html">Travel Writing</a></li> <li><a href="/books/non-fiction/biographies-true-stories/true-stories/true-crime/cBTC-p1.html">True Crime</a></li> <li><a href="/books/non-fiction/biographies-true-stories/true-stories/true-stories-of-heroism/cBTP-p1.html">True Stories of Heroism</a></li> <h4>Cooking, Food & Drink</h4> <li><a href="/books/non-fiction/cooking-food-drink/how-to-cook-recipe-books/baking-cakes-icing-sugarcraft/cWBVS-p1.html">Baking & Desserts</a></li> <li><a href="/books/non-fiction/cooking-food-drink/cooking-for-with-children/cWBQ-p1.html">Cooking for & with Children</a></li> <li><a href="/books/non-fiction/cooking-food-drink/health-wholefood-cookery/cWBH-p1.html">Health & Wholefood Cookery</a></li> <li><a href="/books/non-fiction/cooking-food-drink/national-regional-cuisine/cWBN-p1.html">National & Regional Cuisine</a></li> <li><a href="/books/non-fiction/cooking-food-drink/tv-celebrity-chef-cookbooks/cWBB-p1.html">TV & Celebrity Chefs</a></li> <li><a href="/books/non-fiction/cooking-food-drink/vegetarian-cookery/cWBJ-p1.html">Vegetarian Cookery</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Self Help & Personal Development</h4> <li><a href="/books/non-fiction/self-help-personal-development/advice-on-careers-achieving-success/cVSC-p1.html">Advice on Careers & Success</a></li> <li><a href="/books/non-fiction/family-health/advice-on-parenting/cVFX-p1.html">Advice on Parenting</a></li> <li><a href="/books/non-fiction/family-health/cVF-p1.html">Family, Health & Relationships</a></li> <li><a href="/books/non-fiction/family-health/fitness-diet/cVFM-p1.html">Fitness & Diet</a></li> <li><a href="/books/non-fiction/mind-body-spirit/cVX-p1.html">Mind, Body, Spirit</a></li> <li><a href="/books/non-fiction/psychology/cJM-p1.html">Popular Psychology</a></li> <h4>Professional</h4> <li><a href="/books/non-fiction/business-management/cKJ-p1.html">Business</a></li> <li><a href="/books/non-fiction/law/cL-p1.html">Law</a></li> <li><a href="/books/non-fiction/medicine/cM-p1.html">Medicine</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <ul class="col-12"> <h4>More:</h4> <li><a href="/award-winning-reads/promo2921.html">Award Winning Reads</a></li> <li><a href="https://www.booktopia.com.au/blog/category/reviews/">Reviews and Staff Picks</a></li> <li><a href="https://www.booktopia.com.au/blog/category/interviews/">Author Interviews</a></li> <li><a href="https://www.booktopia.com.au/blog/podcasts/">Podcasts</a></li> <a class="more" href="/books/non-fiction-books/cN-p1.html">Explore All Non-Fiction ></a> </ul> </div> </div> </li> <li id="mnu-books-children"><a href="/books/kids-childrens-books/cY-p1.html">KIDS & YA</a> <div class="sub" id="kids-sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - CHILDREN" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col-auto sub-menu-browse"> <ul><h4>Browse Kids & YA</h4> <li><a href="/books/kids-childrens-books/cY-p1.html?list=2"><span class="icon-New-Releases"></span>New Releases</a></li> <li><a href="/books/kids-childrens-books/cY-p1.html?sorter=bestsellers-dsc"><span class="icon-Bestselling"></span>Bestselling</a></li> <li><a href="/books/bargains/kids-and-teens-bargains/c9C-p1.html"><span class="icon-Bargins"></span>Bargains</a></li> <li><a href="/books/kids-childrens-books/l20-p1.html?cID=Y"><span class="icon-Signed-copies"></span>Signed Copies</a></li> </ul> </div> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul id="browse-age"> <h4>Browse by Age</h4> <li><a class="age-under-3" href="/books/kids-childrens-books/cY-p1.html?ageFilter=age-between-0-and-3&src=classic"> <svg viewBox="0 0 170 170" xmlns="http://www.w3.org/2000/svg"> <path d="M44,-13.4C52.7,12.7,52.7,42.6,34.5,58.4C16.3,74.2,-20,75.9,-42.6,59.3C-65.3,42.7,-74.2,7.8,-64.8,-19.1C-55.4,-46.1,-27.7,-65.2,-5.1,-63.5C17.6,-61.9,35.2,-39.5,44,-13.4Z" transform="translate(100 100)" /> </svg><span>Under 3</span></a></li> <li><a class="age-preschool" href="/books/kids-childrens-books/cY-p1.html?ageFilter=age-between-3-and-6&src=classic"> <svg viewBox="0 0 170 170" xmlns="http://www.w3.org/2000/svg"> <path d="M69.7,-18.2C79.4,7.3,68.9,43.8,47.9,57C26.9,70.1,-4.6,59.9,-29.3,41.6C-54.1,23.3,-72.1,-3,-66.1,-23.4C-60.1,-43.8,-30,-58.3,0,-58.3C30,-58.3,59.9,-43.8,69.7,-18.2Z" transform="translate(100 100)" /> </svg><span>Pre-School (3-6)</span></a></li> <li><a class="age-school" href="/books/kids-childrens-books/cY-p1.html?ageFilter=age-between-6-and-9&src=classic"> <svg viewBox="0 0 160 160" xmlns="http://www.w3.org/2000/svg"> <path d="M65.2,-15.3C73.6,4.7,62.1,37.1,40.1,52.5C18,67.9,-14.5,66.3,-36.8,50.2C-59.1,34.1,-71.3,3.5,-63.5,-15.7C-55.7,-34.9,-27.8,-42.8,0.3,-42.9C28.4,-43,56.8,-35.3,65.2,-15.3Z" transform="translate(100 80)" /> </svg><span>School Age (6-9)</span></a></li> <li><a class="age-preteen" href="/books/kids-childrens-books/cY-p1.html?ageFilter=age-between-9-and-12&src=classic"> <svg viewBox="0 0 170 170" xmlns="http://www.w3.org/2000/svg"> <path d="M60.4,-16.6C69.6,8.6,62.3,42.1,41.9,56.7C21.5,71.2,-11.9,66.8,-35.2,49.6C-58.6,32.4,-71.8,2.4,-64.2,-20.6C-56.7,-43.6,-28.3,-59.6,-1.3,-59.1C25.6,-58.7,51.3,-41.8,60.4,-16.6Z" transform="translate(100 90)" /> </svg><span>Pre-Teen (9-12)</span></a></li> <li><a class="age-teen" href="/books/kids-childrens-books/cY-p1.html?ageFilter=age-between-12-and-15&src=classic"> <svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg"> <path d="M70,-27.7C76.8,-2.1,58.5,26.6,34.8,42.6C11.1,58.6,-18.1,61.8,-33.1,49.9C-48.1,37.9,-48.9,10.9,-41,-16.3C-33.2,-43.4,-16.6,-70.7,7.5,-73.1C31.7,-75.6,63.3,-53.2,70,-27.7Z" transform="translate(90 100)" /> </svg><span>Teen (12-15)</span></a></li> <li><a class="age-young-adult" href="/books/kids-childrens-books/children-s-fiction/young-adult-ya-fiction/cYFY-p1.html"> <svg viewBox="0 0 190 190" xmlns="http://www.w3.org/2000/svg"> <path d="M67.5,-22C76.6,6.2,65.7,40.8,43.1,56.5C20.4,72.3,-13.9,69.3,-37.9,51.9C-62,34.5,-75.9,2.7,-67.8,-24C-59.8,-50.7,-29.9,-72.3,-0.4,-72.1C29.2,-72,58.3,-50.2,67.5,-22Z" transform="translate(100 100)" /> </svg><span>Young Adult (16+)</span></a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Popular Authors</h4> <li><a href="/aaron-blabey/author971.html">Aaron Blabey</a></li> <li><a href="/anh-do/author952.html">Anh Do</a></li> <li><a href="/j-k-rowling/author107.html">J.K. Rowling</a></li> <li><a href="/emily-rodda/author256.html">Emily Rodda</a></li> <li><a href="/rick-riordan/author33.html">Rick Riordan</a></li> <li><a href="/mem-fox/author415.html">Mem Fox</a></li> <li><a href="/search.ep?author=David%20Walliams">David Walliams</a></li> <li><a href="/cassandra-clare/author183.html">Cassandra Clare</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Popular Series</h4> <li><a href="/harry-potter-at-booktopia/promo842.html">Harry Potter</a></li> <li><a href="/search.ep?author=Bluey">Bluey</a></li> <li><a href="/the-treehouse-series-by-andy-griffiths/series2785.html">The Treehouse Series</a></li> <li><a href="/the-nevermoor-series-paperback-editions/series671.html">Nevermoor</a></li> <li><a href="/dog-man-by-dav-pilkey/series5619.html">Dog Man</a></li> <li><a href="/complete-billie-b-brown-series/series9360.html">Billie B Brown</a></li> <li><a href="/books/fun-for-kids/l100430-p1.html">Fun for Kids</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Education</h4> <li><a href="/school-books-textbooks/promo152.html">Education Central</a></li> <li><a href="/school-books-textbooks/promo152.html#pre-school">Pre School</a></li> <li><a href="/school-books-textbooks/promo152.html#primary">Primary School</a></li> <li><a href="/school-books-textbooks/promo152.html#secondary">Secondary School</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <ul class="col-12"> <h4>More:</h4> <li><a href="/children-s-book-council-of-australia-awards/promo2003.html">CBCA Awards</a></li> <li><a href="https://www.booktopia.com.au/blog/category/reviews/">Reviews and Staff Picks</a></li> <li><a href="https://www.booktopia.com.au/blog/category/interviews/">Author Interviews</a></li> <li><a href="https://www.booktopia.com.au/blog/podcasts/">Podcasts</a></li> <a class="more" href="/books/kids-childrens-books/cY-p1.html">Explore All Kids & YA Books ></a> </ul> </div> </div> </li> <li id="mnu-books-australian"><a href="/books/australian-authors-books/l10-p1.html">AUSTRALIAN</a></li> <li id="mnu-books-schools"><a href="/school-books-textbooks/promo152.html">EDUCATION</a> <div class="sub" id="schools-sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - EDUCATION" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul> <h4>Pre-School / Kindergarten</h4> <li><a href="/books/text-books/pre-school-day-care/cXM-p1.html">Pre-School & Day-Care</a></li> <li><a href="/starting-school/series3460.html?sorter=sortorder-en-dsc">Starting School </a></li> <li><a href="/books/text-books/pre-school-day-care/cXM-p1.html">Early Learning</a></li> <li><a href="/abc-reading-eggs-level-1-starting-out/series3784.html">ABC Reading Eggs</a></li> <li><a href="/books/our-picks-for-babies-toddlers-ages-0-3/l100148-p1.html">Picks for Toddlers</a></li> <li><a href="/books/our-picks-for-pre-school-ages-3-6/l100149-p1.html">Picks for Pre-school</a></li> <li><a href="/picture-books-to-help-put-children-to-sleep/series6867.html">Sleeping Easy</a></li> <li><a href="/managing-manners/series6868.html">Managing Manners</a></li> <li><a href="/books/big-picture-books-editions-for-classroom-use/l103-p1.html">Big Picture Books</a></li> <li><a href="/understanding-emotions/series6869.html">Understanding Emotions</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Primary </h4> <li><a href="/books/text-books/primary-top-sellers/cXG-p1.html">Bestselling Primary Texts</a></li> <li><a href="/excel-guides-for-primary-school/series7903.html">Excel Guides for Primary</a></li> <li><a href="/all-about-sport/series6877.html">All About Sport</a></li> <li><a href="/books/text-books/primary-top-sellers/reading/cXGC-p1.html">Reading</a></li> <li><a href="/books/text-books/primary-top-sellers/maths-reference-for-primary-school/cXGD-p1.html">Maths</a></li> <li><a href="/books/text-books/primary-top-sellers/references-and-resources/cXGR-p1.html">Primary Reference</a></li> <li><a href="/children-s-book-council-of-australia-awards/promo2003.html">CBCA Books</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Secondary</h4> <li><a href="/books/text-books/secondary-top-sellers/cXE-p1.html">Bestselling Secondary Texts</a></li> <li><a href="/books/text-books/secondary-top-sellers/accounting-business-legal/cXEE-p1.html">Accounting Business & Legal</a></li> <li><a href="/books/text-books/secondary-top-sellers/media-arts-religion/cXEH-p1.html">Media, Arts & Religion</a></li> <li><a href="/books/text-books/secondary-top-sellers/reference-study-guides/cXED-p1.html">Reference & Study Guides</a></li> <li><a href="/books/guides-to-the-school-certificates/l100321-p1.html">Guides to the School Certificates</a></li> <li><a href="/books/text-books/secondary-top-sellers/biology-science/cXEF-p1.html">Biology & Science</a></li> <li><a href="/books/text-books/secondary-top-sellers/english-literature-for-secondary-school/cXEA-p1.html">English & Literature</a></li> <li><a href="/books/text-books/secondary-top-sellers/history-textbooks-for-secondary-school/cXEB-p1.html">History</a></li> <li><a href="/books/text-books/secondary-top-sellers/language-reference-for-secondary-school/cXEC-p1.html">Languages</a></li> <li><a href="/books/text-books/secondary-top-sellers/maths-reference-for-secondary-school/cXEG-p1.html">Maths</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/non-fiction-books/literature-poetry-plays/poetry/cDC-p1.html">Poetry</a></li> <li><a href="/books/non-fiction-books/literature-poetry-plays/plays/cDD-p1.html">Plays</a></li> <li><a href="/books/fiction-books/classic-fiction/cFC-p1.html">Classic Fiction</a></li> <h4>Guides and Resources</h4> <li><a href="/books/non-fiction-books/education/schools/naplan/cJNLN-p1.html?suggested=L">NAPLAN</a></li> <li><a href="/books/non-fiction-books/education/schools/anti-bullying-reading-list/cJNLI-p1.html">Anti-Bullying Books</a></li> <li><a href="/empowering-girls/series6866.html">Empowering Girls</a></li> <li><a href="/introducing-aboriginal-torres-strait-islander-culture-to-children/series6878.html">Introducing Indigenous Culture</a></li> <li><a href="/oxford-primary-school-dictionaries-thesauri/series7884.html">Oxford Dictionaries</a></li> </ul> </li> </ul> </div> <div class="col-auto pl-4"> <a href="/school-books-textbooks/promo152.html"><img class="lazyload" src="https://www.booktopia.com.au/images/loading-cover-150.gif" data-src="https://www.booktopia.com.au/images/navigation/education.jpg" alt="Education Central" width="172" height="418"></a> </div> </div> <div class="row no-gutters sub-menu-more"> <div class="col-12"> <a class="more" href="/school-books-textbooks/promo152.html">Explore All Education ></a> </div> </div> </div> </li> <li id="mnu-books-uni"><a href="/ebooks/etextbooks/l101082-p1-e.html">DIGITAL TEXTBOOKS</a></li> <li id="mnu-books-aca"><a href="/books/text-books/higher-education-vocational-textbooks/cXA-p1.html">ACADEMIC</a> <div class="sub" data-mh-pe="eventOnClick" data-mh-ec="Header - BOOKS - ACADEMIC" data-mh-ea="Link Click"> <div class="sub-menu-container row no-gutters"> <div class="col sub-menu-content"> <ul class="row"> <li class="col-3" data-skip-mh> <ul> <h4>University</h4> <li><a href="/books/text-books/higher-education-vocational-textbooks/accounting-business-finance-higher-education-textbooks/cXAA-p1.html">Accounting, Business & Finance</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/biology-and-sciences-higher-education-textbooks/cXAB-p1.html">Biology and Sciences</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/computing-programming-higher-education-textbooks/cXAC-p1.html">Computing & Programming</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/education-higher-education-textbooks/cXAD-p1.html">Education</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/engineering-physics-higher-education-textbooks/cXAE-p1.html">Engineering & Physics</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/english-literature-higher-education-textbooks/cXAF-p1.html">English & Literature</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/environment-planning-higher-education-textbooks/cXAG-p1.html">Environment & Planning</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/health-care-higher-education-textbooks/cXAI-p1.html">Health Care</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/text-books/higher-education-vocational-textbooks/history-higher-education-textbooks/cXAJ-p1.html">History</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/language-higher-education-textbooks/cXAK-p1.html">Language</a></li> <li><a href="/books/non-fiction/law/cL-p1.html">Law</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/mathematics-statistics-higher-education-textbooks/cXAM-p1.html">Mathematics & Statistics</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/media-communication-arts-higher-education-textbooks/cXAO-p1.html">Media, Communication & Arts</a></li> <li><a href="/books/non-fiction/medicine/cM-p1.html">Medicine</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/nursing-higher-education-textbooks/cXAP-p1.html">Nursing</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/politics-higher-education-textbooks/cXAQ-p1.html">Politics</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4> </h4> <li><a href="/books/text-books/higher-education-vocational-textbooks/psychology-higher-education-textbooks/cXAH-p1.html">Psychology</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/social-sciences-higher-education-textbooks/cXAR-p1.html">Social Sciences</a></li> <li><a href="/books/text-books/higher-education-vocational-textbooks/study-skills-for-higher-education/cXAS-p1.html?mlk">Study Skills</a></li> </ul> </li> <li class="col-3" data-skip-mh> <ul> <h4>Vocational</h4> <li><a href="/vocational-trades/series7927.html">Trades</a></li> <li><a href="/vocational-hospitality-tourism/series7931.html">Hospitality & Tourism</a></li> <li><a href="/vocational-business-financial-management/series7929.html">Business, Financial & Management</a></li> <li><a href="/vocational-nursing-health-care/series7928.html">Nursing & Health Care</a></li> <li><a href="/vocational-it-networking-computer-repair/series7930.html">IT, Networking & Computer Repair</a></li> <li><a href="/vocational-education-early-childhood/series7932.html">Education & Early Childhood</a></li> <li><a href="/vocational-social-work-counselling/series7933.html">Social Working & Counselling</a></li> <li><a href="/vocational-design-art-fashion-photography/series7934.html">Design, Art, Fashion & Photography</a></li> </ul> </li> </ul> </div> </div> <div class="row no-gutters sub-menu-more"> <div class="col-12"> <a class="more" href="/books/text-books/higher-education-vocational-textbooks/cXA-p1.html">Explore All Academic ></a> </div> </div> </div> </li> <li id="mnu-books-bargains"><a class="alert" href="/books/bargains/c9-p1.html">BARGAINS</a></li> <li id="mnu-books-gc"><a href="/gift-certificates/cGC-p1.html">GIFT CERTIFICATES</a></li> </ul> </div> </div> </div> <template id="sidenav-menu-templates-template" style="display: none"> <div id="sidenav-menu-templates" class="b-modal side-panel-theme"> <div class="b-modal-content"> <div class="tabs menu-tabs"> <div class="menu-top-bar"> <button data-mh-ea="close" class="b-close-button b-modal-close"><i class="icon-cross"></i></button> <h3>ALL CATEGORIES</h3> </div> <div class="menu-list"> <ul> <li> <a href="/books/bestseller-bargains/l115-p1.html?sorter=bestsellers-dsc" class="bestseller-bargains"> <div class="sidenav-link-left"> <i class="icon-trophy-02"></i> <span>Hot Price Bestsellers</span> </div> </a> </li> <li> <a href="/bps-get-free-shipping/promo4116.html?src=bt-promo" class="books-with-free-shipping"> <div class="sidenav-link-left"> <i class="icon-Express-shipping"></i> <span>Books with Free Shipping</span> </div> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-books" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Paperback"></i> <span>Books</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-academic" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Grade-Range"></i> <span>Academic & Textbooks</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-ebooks" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Ebook"></i> <span>eBooks</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-audiobooks" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Audio-Book"></i> <span>Audiobooks</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-games" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Puzzle-Piece-Number"></i> <span>Games & Puzzles</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-magazines" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-Page-Number"></i> <span>Magazines</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-stationery" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-stationary"></i> <span>Stationery</span> </div> <i class="icon-arrow-right8"></i> </a> </li> <li class="tab"> <a href="javascript:;" data-tab="tab-gift-ideas" onclick="switchTabs(this)"> <div class="sidenav-link-left"> <i class="icon-gift1"></i> <span>Gift Ideas</span> </div> <i class="icon-arrow-right8"> </i> </a> </li> <li> <a href="/promo3293.html"> <div class="sidenav-link-left"> <i class="icon-bargains"></i> <span>Promotions</span> </div> </a> </li> <li> <a href="/helpCentre.ep"> <div class="sidenav-link-left"> <i class="icon-info-new"></i> <span>Help Centre</span> </div> </a> </li> <li> <a href="https://www.booktopia.com.au/blog/"> <div class="sidenav-link-left"> <i class="icon-blog"></i> <span>Blog</span> </div> </a> </li> </ul> <div class="account-section"> <div id="pnl-account-signed-in" class="account clear if-signed-in" data-mh-pe="eventOnClick" data-mh-ec="Navigation" data-mh-ea="Click"> <div class="title clear"> <span>Hi, </span><span id="lbl-customer-full-name" class="title"></span> </div> <ul class="account-links"> <li class="my-account"> <a id="mnu-side-manage-account" href="/manage-account.ep"> <i class="icon-user1"></i> My Account </a> </li> <li class="my-account"> <a id="mnu-side-view-wishlist" href="/view-wishlist-nocache.ep"> <i class="icon-Heart-new"></i> My Wish Lists </a> </li> <li class="my-account"> <a id="mnu-side-ebooks-bookshelf" href="/digital-library.ep"> <i class="icon-titles"></i> My Digital Library </a> </li> </ul> <a id="btn-side-sign-out" href="/sign-out-customer-session.ep" onclick="updateLocalEmptyCart();resetPostcode();googleSignOut();return true" > <i class="icon-log-out"></i> Sign Out </a> </div> <div id="pnl-account-signed-out" class="account clear if-signed-out" data-mh-pe="eventOnClick" data-mh-ec="Navigation" data-mh-ea="Click"> <span class="title"><i class="icon-user1"></i> My Account</span> <div id="account-action" class="row no-gutters"> <div class="col-6 pr-2"> <a id="btn-side-sign-in" href="/sign-in.ep">Sign In</a> </div> <div class="col-6 pl-2"> <a id="btn-side-join" href="/sign-in.ep#signup">Join</a> </div> </div> </div> <div id="useful-nav-links"><a href="//www.booktopia.com.au/blog/">Blog</a> - <a href=" ?deviceType=Desktop">Full Site</a></div> <span class="copyright">© 2024 Booktopia Direct Pty Ltd. </span> </div> </div> <div class="tab-content" id="tab-books"> <ul> <li class="nav-sub-link"><a href="/?books">All Books</a></li> <li class="nav-sub-link"><a href="/books/fiction-books/cF-p1.html">Fiction</a></li> <li class="nav-sub-link"><a href="/books/non-fiction-books/cN-p1.html">Non-Fiction</a></li> <li class="nav-sub-link"><a href="/books/kids-childrens-books/cY-p1.html">Kids & YA</a></li> <li class="nav-sub-link"><a href="/books/australian-authors-books/l10-p1.html">Australian Stories</a></li> <li class="nav-sub-link"><a href="/school-books-textbooks/promo152.html">Education</a></li> <li class="nav-sub-link"><a href="/books/non-fiction/biographies-true-stories/cB-p1.html">Biographies & True Stories</a></li> <li class="nav-sub-link"><a href="/books/non-fiction/cooking-food-drink/cWB-p1.html">Cooking, Food & Drink</a></li> <li class="nav-sub-link"><a href="/books/fiction-books/crime-mystery/cFF-p1.html">Crime & Mystery</a></li> <li class="nav-sub-link"><a href="/books/fiction/romance/cFR-p1.html">Romance</a></li> <li class="nav-sub-link"><a href="/books/fiction/graphic-novels/cFX-p1.html">Graphic Novels & Manga</a></li> <li class="nav-sub-link"><a href="/books/kids-childrens-books/cY-p1.html?sorter=bestsellers-dsc">Bestsellers</a></li> <li class="nav-sub-link"><a href="/books/fiction/l20-p1.html?cID=F">Signed Copies</a></li> <li class="nav-sub-link"><a href="/books/bargains/c9-p1.html">Bargains</a></li> </ul> </div> <div class="tab-content" id="tab-academic"> <ul> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/cXA-p1.html">All Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/accounting-business-finance-higher-education-textbooks/cXAA-p1.html">Accounting, Business & Finance Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/law-higher-education-textbooks/cXAL-p1.html">Law Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/medicine-for-higher-education/cXAV-p1.html">Medicine Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/nursing-higher-education-textbooks/cXAP-p1.html">Nursing Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/psychology-higher-education-textbooks/cXAH-p1.html">Psychology Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/education-higher-education-textbooks/cXAD-p1.html">Education Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/biology-and-sciences-higher-education-textbooks/cXAB-p1.html">Biology & Science Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/computing-programming-higher-education-textbooks/cXAC-p1.html">Computing & Programming Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/engineering-physics-higher-education-textbooks/cXAE-p1.html">Engineering & Physics Textbooks</a></li> <li class="nav-sub-link"><a href="/books/text-books/higher-education-vocational-textbooks/history-higher-education-textbooks/cXAJ-p1.html">History Textbooks</a></li> <li class="nav-sub-link"><a href="/ebooks/etextbooks/l101082-p1-e.html">Digital Textbooks</a></li> </ul> </div> <div class="tab-content" id="tab-ebooks"> <ul> <li class="nav-sub-link"><a href="/?ebooks">All eBooks</a></li> <li class="nav-sub-link"><a href="/ebooks/etextbooks/l101082-p1-e.html">Textbooks</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/cF-p1-e.html">Fiction</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/romance/cFR-p1-e.html">Romance</a></li> <li class="nav-sub-link"><a href="/ebooks/kids-children-s-books/cY-p1-e.html">Kids & YA</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/crime-mystery-fiction/cFF-p1-e.html">Crime & Mystery</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/erotic-fiction/cFP-p1-e.html">Erotic Fiction</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/fantasy-fiction/cFM-p1-e.html">Fantasy</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/thrillers-suspense/cFH-p1-e.html">Thrillers</a></li> <li class="nav-sub-link"><a href="/ebooks/fiction/science-fiction/cFL-p1-e.html">Science Fiction</a></li> <li class="nav-sub-link"><a href="/ebooks/non-fiction/cN-p1-e.html">Non-Fiction</a></li> <li class="nav-sub-link"><a href="/ebooks/non-fiction/biographies-true-stories/cB-p1-e.html">Biographies & True Stories</a></li> <li class="nav-sub-link"><a href="/kobo-ebook-readers/promo3090.html">eReaders</a></li> <li class="nav-sub-link"><a href="/kobo-plus-ebook-subscription">Kobo Plus</a></li> </ul> </div> <div class="tab-content" id="tab-audiobooks"> <ul> <li class="nav-sub-link"><a href="/?audiobooks">All Audiobooks</a></li> <li class="nav-sub-link"><a href="/audiobooks/fiction/cF-p1-a.html">Fiction</a></li> <li class="nav-sub-link"><a href="/audiobooks/fiction/crime-mystery-fiction/cFF-p1-a.html">Crime & Mystery</a></li> <li class="nav-sub-link"><a href="/audiobooks/non-fiction/biographies-true-stories/cB-p1-a.html">Biographies & True Stories</a></li> <li class="nav-sub-link"><a href="/audiobooks/non-fiction/history/cHB-p1-a.html">History</a></li> <li class="nav-sub-link"><a href="/audiobooks/kids-children-s-books/cY-p1-a.html">Children</a></li> <li class="nav-sub-link"><a href="/?audio-cd">Audio CDs</a></li> <li class="nav-sub-link"><a href="/audio-cd/hot-prices/l13-p1-c.html?sorter=price-AUD-asc">Audio CD Bargains</a></li> </ul> </div> <div class="tab-content" id="tab-games"> <ul> <li class="nav-sub-link"><a href="/books/games-and-puzzles/cGMP-p1.html">All Games & Puzzles</a></li> <li class="nav-sub-link"><a href="/books/games-and-puzzles/board-games-table-top-games/cGMPA-p1.html">Board Games</a></li> <li class="nav-sub-link"><a href="/books/games-and-puzzles/card-games/cGMPB-p1.html">Card Games</a></li> <li class="nav-sub-link"><a href="/books/games-and-puzzles/puzzles/cGMPC-p1.html">Puzzles</a></li> <li class="nav-sub-link"><a href="/books/games-and-puzzles/figurines-collectables/cGMPD-p1.html">Figurines & Collectables</a></li> <li class="nav-sub-link"><a href="/books/games-and-puzzles/activities/cGMPE-p1.html">Activities</a></li> </ul> </div> <div class="tab-content" id="tab-magazines"> <ul> <li class="nav-sub-link"><a href="/?magazines">All Magazines</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/magazines-for-her/l59-p1-m.html">Magazines For Her</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/magazines-for-him/l60-p1-m.html">Magazines For Him</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/kids-teens-magazines/c4K-p1-m.html">Kids & Teens</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/international-magazines/c4J-p1-m.html">International Magazines</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/art-design-magazines/c4A-p1-m.html">Art & Design</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/fashion-beauty-magazines/c4U-p1-m.html">Fashion & Beauty</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/hobbies-puzzles-magazines/c4O-p1-m.html">Hobbies & Puzzles</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/craft-magazines/c4R-p1-m.html">Craft</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/science-nature-magazines/c4N-p1-m.html">Science & Nature</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/lifestyle-magazines/c4L-p1-m.html">Lifestyle</a></li> <li class="nav-sub-link"><a href="/magazine-subscriptions/health-fitness-magazines/c4H-p1-m.html">Health & Fitness</a></li> </ul> </div> <div class="tab-content" id="tab-stationery"> <ul> <li class="nav-sub-link"><a href="/?stationery">All Stationery</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/2024-diaries/c1E-p1-s.html">Diaries</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/notebooks/c1A-p1-s.html">Notebooks</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/journals/c1B-p1-s.html">Journals</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/hot-prices/l13-p1-s.html?list=13">Stationery Bargains</a></li> </ul> </div> <div class="tab-content" id="tab-gift-ideas"> <ul> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/c53-p1.html">Gift Guides</a></li> <li class="nav-sub-link"><a href="/gift-certificates/cGC-p1.html">Gift Certificates</a></li> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/games-toys-and-puzzles/c53H-p1.html">Games & Puzzles</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/stationery-gift-ideas/l265-p1-s.html">Stationery</a></li> <li class="nav-sub-link"><a href="/diaries-stationery/book-accessories/c1T-p1-s.html">Book Accessories</a></li> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/everything-lavish-gift-guide/c53C-p1.html">Everything Lavish</a></li> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/fiction-gift-guide/c53D-p1.html">Fiction</a></li> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/non-fiction-gift-guide/c53A-p1.html">Non-Fiction</a></li> <li class="nav-sub-link"><a href="/books/booktopia-gift-guide/just-for-kids/c53E-p1.html">Just For Kids</a></li> </ul> </div> </div> </div> </div> </template><div id="body" > <div id="content"> <style> h1, h2 {font-size: 24px;} #content {padding: 15px;} #get-in-touch-links a {color:#333;text-align:center;font-weight:bold;padding-bottom:30px;} #get-in-touch-links a:hover {color:#009933;text-decoration:none;} #get-in-touch-links a:hover .icon span {background-color:#009933;} #get-in-touch-links .icon {height:60px;} #get-in-touch-links .icon span {display:inline-block;border-radius:50%;background-color:#888;padding:10px;font-size:24px;width:44px;height:44px;} #get-in-touch-links .icon span:before {color:#fff;} #get-in-touch-links .icon img {position:relative;} #what-to-read-icon {bottom:10px;right:10px;} #product-review-icon {bottom:2px;right:3px;} </style> <h1>What is Booktopia?</h1> <p>We're Australia's biggest bookstore providing Australia’s most extensive library, giving book lovers an unrivalled choice, for whatever they are looking for. </p> <p>Our award-winning store offers thousands of titles from a wide range of local Australian and international authors and publishers across a whole host of categories and interests.</p> <p>In addition to books, we also sell ebooks, ereaders, audiobooks and stationery, giving you everything you need for great entertainment, great information, great content and great gifts all year round. That’s a whole lot of great!</p> <p>Our store is online only and we ship orders to every corner of Australia and New Zealand from our magical Customer Fulfilment Centre in Enfield in Sydney. At a giant 27,500 sq metres—that’s about 33 football fields (!) they are able to fit millions of books at any one time—a true book lovers’ paradise!</p> <p>We also have the honour of hosting hundreds of authors each year providing exclusive experiences for our customers. This includes signing thousands of copies of books and creating unique content, including participation in special events and podcast episodes.</p> <p>We are the destination for all of your reading inspiration, needs and wishes. We are your ultimate book haven. We are Booktopia.</p> <h2>Our Promise</h2> <p>We are passionate about championing Australian books, authors and publishing and have been that way ever since we launched back in 2004. It’s in our DNA.</p> <p>Our customers are at the heart of everything we do. From having a huge range of thousands of in-stock items and fast delivery, to having friendly and knowledgeable customer service representatives ready to help, there is nothing more important than delivering brilliant customer service every single day.</p> <p>Our mission is to make it as easy as possible for Australians to discover and buy books and meet Australians wherever and whenever they read their books.</p> <h2>Get In Touch</h2> <p>We love to hear from our customers! Leave us a review, tell us what you’re reading, share our recommendations, give us some book tips or ask us a question—or do all of these things!</p> <div id="get-in-touch-links" class="row no-gutters mt-4"> <a class="col-4 col-md" href="https://www.facebook.com/Booktopia/" target="_blank"><div class="icon"><span class="icon-facebook"></span></div>Facebook</a> <a class="col-4 col-md" href="https://www.instagram.com/booktopiabooks" target="_blank"><div class="icon"><span class="icon-instagram"></span></div>Instagram</a> <a class="col-4 col-md" href="https://www.twitter.com/booktopia" target="_blank"><div class="icon"><span class="icon-twitter"></span></div>Twitter</a> <a class="col-4 col-md" href="https://www.tiktok.com/@booktopiabooks" target="_blank"><div class="icon"><span class="icon-tiktok"></span></div>TikTok</a> <a class="col-4 col-md" href="https://au.linkedin.com/company/booktopia" target="_blank"><div class="icon"><span class="icon-linkedin2"></span></div>LinkedIn</a> <a class="col-4 col-md" href="https://www.booktopia.com.au/blog/" target="_blank"><div class="icon"><span><img id="what-to-read-icon" class="lazyload" height="45" src="#getLazyLoaderUrl()" data-src="https://images.booktopia.com.au/promotions/2022/what-is-booktopia/what-to-read.svg"></span></div>Tell Me What To Read</a> <a class="col-12 col-md" href="https://www.productreview.com.au/listings/booktopia" target="_blank"><div class="icon"><span><img id="product-review-icon" class="lazyload" height="30" src="#getLazyLoaderUrl()" data-src="https://images.booktopia.com.au/promotions/2022/what-is-booktopia/product-review.svg"></span></div>ProductReview</a> </div> <p>You can also listen to our <i>Tell Me What To Read</i> podcast: <a href="https://www.booktopia.com.au/blog/podcasts/" target="_blank">https://www.booktopia.com.au/blog/podcasts/</a> or from wherever you get your podcasts.</p> <p>Happy reading!</p> <div class="productreviewwidget" data-itemid="81766" data-full-width="1" data-num-reviews="10" data-order="best"></div> <script type="text/javascript"> (function () { function async_load() { var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = "//www.productreview.com.au/assets/js/widget/reviews-itemid.js"; var x = document.getElementsByTagName("script")[0]; x.parentNode.insertBefore(s, x); } if (window.attachEvent) { window.attachEvent("onload", async_load); } else { window.addEventListener("load", async_load, false); } })(); </script> </div> </div> <div id="footer"> <div id="top-bar"> <div class="content"> <div class="newsletter-sign-up-holder if-signed-out"> <div id="newsletter-sign-up"> <h3>Join Our Newsletter</h3> <form id="footerNewsletterForm"> <input type="email" id="email" name="email" placeholder="Enter your email address..."> <input type="button" value="SUBSCRIBE" onclick="submitFooterNewsletterForm()" data-target="iframe"> </form> </div> </div> <div class="top-bar-right "> <ul id="social-media-tab" data-mh-pe="eventOnClick" data-mh-ec="Social Click" data-mh-ea="Click" > <li><a target="_blank" data-mh-el="Youtube" href="//www.youtube.com/user/booktopiabooks" class="youtube-icon"><span class="icon-youtube"></span></a></li> <li><a target="_blank" data-mh-el="Blog" href="//www.booktopia.com.au/blog/" class="blog-icon"><span class="icon-booktopia"></span></a></li> <li><a target="_blank" data-mh-el="Facebook" href="//www.facebook.com/pages/Booktopia/91043653859" class="facebook-icon"><span class="icon-facebook"></span></a></li> <li><a target="_blank" data-mh-el="Twitter" href="//twitter.com/booktopia" class="twitter-icon"><span class="icon-twitter"></span></a></li> <li><a target="_blank" data-mh-el="Soundcloud" href="//www.booktopia.com.au/blog/podcasts/?utm_source=booktopian_blog&utm_medium=booktopian&utm_campaign=tell_me_what_to_read" class="podcast-icon"><span class="icon-podcast"></span></a></li> <li><a target="_blank" data-mh-el="Instagram" href="//instagram.com/booktopiabooks" class="instagram-icon"><span class="icon-instagram"></span></a></li> </ul> <div class="app-download-links"> <a class="apple-app-store" href="https://apps.apple.com/au/app/booktopia-by-rakuten-kobo/id1489983350?ls=1" target="_blank"><img class="lazyload no-loader" src="" data-src="https://www.booktopia.com.au/images/ext/apple-app-store.png" height="42" width="139" alt="Download on the App Store"/></a> <a class="google-play" href="https://play.google.com/store/apps/details?id=com.kobobooks.android.booktopia" target="_blank"><img class="lazyload no-loader" src="" data-src="https://images.booktopia.com.au/ext/google-play.png" height="42" width="129" alt="Android app on Google Play" /></a> </div> </div> </div> </div> <div id="links" class="footer-links"> <div class="content container" data-mh-pe="eventOnClick" data-mh-ec="Footer" data-mh-ea="Click"> <div class="row no-gutters info-row justify-content-between align-item-center"> <div class="col-auto"> <div class="row footer-info"> <div class="col-xl-auto col-lg-12 pr-1"> <span class="info-title"> 1300 187 187</span> </div> <div class="col"> <span class="info-content contact-time">Monday to Friday, 9am to 5pm <span>Sydney time</span></span> </div> </div> </div> <div class="col"> <div class="row footer-info"> <div class="col-xl-auto col-lg-12 pr-1"> <span class="info-title">Head Office</span> </div> <div class="col"> <span class="info-content"> 34-48 Cosgrove Road, South Strathfield NSW 2136 <br>ABN 90 679 610 890 </span> </div> </div> </div> <div class="col-auto"> <a id="btn-mobile-site" class="button" href=" ?deviceType=mobile">MOBILE SITE</a> </div> </div> <div class="row no-gutters"> <div class="col-3"> <h4><a href="/helpCentre.ep">Help Centre</a></h4> <ul> <li><a href="/helpCentre.ep?p=ordering&o=place-order#">Placing An Order</a></li> <li><a href="/helpCentre.ep?p=affiliate&o=contact-us#">Contact Booktopia</a></li> <li><a href="/helpCentre.ep?p=policies&o=terms#">Terms Of Business</a></li> <li><a href="/helpCentre.ep?p=policies&o=privacy#">Privacy Policy</a></li> <li><a href="/helpCentre.ep?p=affiliate&o=affiliates#">Become An Affiliate</a></li> <li><a href="/sitemap.ep">Sitemap</a></li> </ul> </div> <div class="col-3"> <h4><a href="/helpCentre.ep?p=shipping&o=standard-shipping#">Shipping</a></h4> <ul> <li><a href="/track-order.ep">Track My Order</a></li> <li><a href="/helpCentre.ep?p=shipping&o=standard-shipping#">Standard Shipping</a></li> <li><a href="/helpCentre.ep?p=shipping&o=express-shipping#">Express Shipping</a></li> <li><a href="/helpCentre.ep?p=shipping&o=shipping-timeframes#">Shipping Timeframes</a></li> <li><a href="/helpCentre.ep?p=shipping&o=delivering-your-order#">Delivering Your Order</a></li> <li><a href="/helpCentre.ep?p=shipping&o=new-zealand-orders#">New Zealand Orders</a></li> </ul> </div> <div class="col-3"> <h4><a href="/your-local-bookstore/news18.html">About Booktopia</a></h4> <ul> <li><a href="/your-local-bookstore/news18.html">Your Local Bookstore</a></li> <li><a href="/why-booktopia/news19.html">Why Buy From Booktopia?</a></li> <li><a href="/why-booktopia/news19.html#awards-recognition">Our Awards</a></li> <li><a href="/helpCentre.ep?p=affiliate&o=charity-book-donations#">Booktopia's Charities</a></li> <li><a href="/booktopia-ebooks-by-rakuten-kobo/promo3131.html">Booktopia eBooks</a></li> <li><a href="/work-with-us">Work With Us</a></li> </ul> </div> <div class="col-3"> <h4><a href="/bestsellers/promo294.html">Bestsellers</a></h4> <ul> <li><a href="/books/bestseller-bargains/l115-p1.html?sorter=bestsellers-dsc">Booktopia's Favourites</a></li> <li><a href="/baby-toddler-bestsellers/promo387.html">Babies & Toddlers' Bestseller List</a></li> <li><a href="/children-s-bestsellers/promo297.html">Children's Bestseller List</a></li> <li><a href="/young-adult-bestsellers/promo298.html">Young Adults' Bestseller List</a></li> <li><a href="/fiction-bestsellers/promo296.html">Fiction Bestseller List</a></li> <li><a href="/non-fiction-bestsellers/promo656.html">Non-Fiction Bestseller List</a></li> </ul> </div> <div class="col-3"> <h4>Popular Brands</h4> <ul> <li><a href="/search.ep?keywords=abc+reading+eggs&productType=917504">ABC Reading Eggs</a></li> <li><a href="/search.ep?keywords=Australian+Women%27s+Weekly&productType=917504">Australian Women's Weekly</a></li> <li><a href="/bluey/series9222.html">Bluey</a></li> <li><a href="/search.ep?keywords=Excel&productType=917504">Excel Education</a></li> <li><a href="/search.ep?keywords=Dr+Seuss&productType=917504">Dr Seuss</a></li> <li><a href="/books/non-fiction/self-help-personal-development/how-to/for-dummies-books/cVSAD-p1.html">For Dummies</a></li> <li><a href="/search.ep?keywords=Harvard+Business+Review&productType=917504">Harvard Business Review</a></li> <li><a href="/harry-potter-at-booktopia/promo842.html">Harry Potter</a></li> <li><a href="/search.ep?keywords=lego&productType=917504">LEGO</a></li> <li><a href="/search.ep?keywords=Little+Golden+Book&productType=917504">Little Golden Books</a></li> <li><a href="/books/non-fiction/travel-holidays/lonely-planet-travel-books/cWTP-p1.html">Lonely Planet Travel Books</a></li> <li><a href="/search.ep?keywords=No+Fear+Shakespeare&productType=917504">No Fear Shakespeare</a></li> <li><a href="/books/fiction/classic-fiction/penguin-black-classics/cFCP-p1.html">Penguin Black Classics</a></li> <li><a href="/search.ep?keywords=Peppa+Pig&productType=917504">Peppa Pig</a></li> <li><a href="/books/non-fiction/self-help-personal-development/how-to/teach-yourself/cVSAT-p1.html">Teach Yourself</a></li> <li><a href="/books/fiction/classic-fiction/vintage-classics/cFCC-p1.html">Vintage Classics</a></li> <li><a href="/search.ep?keywords=where%27s+wally&productType=917504">Where's Wally</a></li> </ul> </div> <div class="col-3"> <h4>Popular Series</h4> <ul> <li><a href="/a-court-of-thorns-and-roses-paperback-by-sarah-j-maas/series9377.html">A Court of Thorns and Roses</a></li> <li><a href="/a-game-of-thrones-a-song-of-ice-and-fire-paperbacks-by-george-r-r-martin/series533.html">A Game of Thrones</a></li> <li><a href="/bridgerton-original-book-series-by-julia-quinn/series499.html">Bridgerton</a></li> <li><a href="/the-diary-of-a-wimpy-kid-series-by-jeff-kinney/series371.html">Diary of a Wimpy Kid</a></li> <li><a href="/frank-herbert-s-dune-paperbacks/series10592.html">Dune</a></li> <li><a href="/jack-reacher-by-lee-child/series92.html">Jack Reacher</a></li> <li><a href="/the-jack-west-novels-by-matthew-reilly/series6.html">Jack West</a></li> <li><a href="/little-people-big-dreams/series5274.html">Little People, Big Dreams</a></li> <li><a href="/the-lord-of-the-rings-paperbacks-by-j-r-r-tolkien/series385.html">Lord of the Rings</a></li> <li><a href="/the-nevermoor-series-paperback-editions/series671.html">Nevermoor</a></li> <li><a href="/outlander-the-original-book-series/series7433.html">Outlander</a></li> <li><a href="/the-bad-guys-by-aaron-blabey/series4747.html">The Bad Guys</a></li> <li><a href="/the-treehouse-series-by-andy-griffiths/series2785.html">The Treehouse Series</a></li> <li><a href="/the-wheel-of-time-new-editions-by-robert-jordan/series350.html">The Wheel of Time</a></li> <li><a href="/the-witcher-new-paperback-editions-by-andrzej-sapkowski/series9231.html">The Witcher</a></li> <li><a href="/the-wings-of-fire-series-by-tui-t-sutherland/series7552.html">Wings of Fire</a></li> <li><a href="/wolf-girl-by-anh-do/series9737.html">Wolf Girl</a></li> </ul> </div> <div class="col-3"> <h4>Popular Authors</h4> <ul> <li><a href="/bren-brown/author1121.html">Brene Brown</a></li> <li><a href="/bruce-pascoe/author1135.html">Bruce Pascoe</a></li> <li><a href="/david-walliams/author887.html">David Walliams</a></li> <li><a href="/di-morrissey/author148.html">Di Morrissey</a></li> <li><a href="/donna-hay/author70.html">Donna Hay</a></li> <li><a href="/fiona-mcintosh/author171.html">Fiona McIntosh</a></li> <li><a href="/helen-garner/author626.html">Helen Garner</a></li> <li><a href="/jane-harper/author144.html">Jane Harper</a></li> <li><a href="/liane-moriarty/author934.html">Liane Moriarty</a></li> <li><a href="/matthew-reilly/author3.html">Matthew Reilly</a></li> <li><a href="/peter-fitzsimons/author22.html">Peter FitzSimons</a></li> <li><a href="/sally-rooney/author1154.html">Sally Rooney</a></li> <li><a href="/sarah-j-maas/author991.html">Sarah J. Maas</a></li> <li><a href="/taylor-jenkins-reid/author1414.html">Taylor Jenkins Reid</a></li> <li><a href="/tim-winton/author46.html">Tim Winton</a></li> <li><a href="/trent-dalton/author1259.html">Trent Dalton</a></li> <li><a href="/yotam-ottolenghi/author1002.html">Yotam Ottolenghi</a></li> </ul> </div> <div class="col-3"> <h4>Popular Subjects</h4> <ul> <li><a href="/books/non-fiction/biographies-true-stories/cB-p1.html">Biographies & True Stories</a></li> <li><a href="/books/non-fiction/business-management/cKJ-p1.html">Business & Management</a></li> <li><a href="/books/non-fiction/cooking-food-drink/cWB-p1.html">Cooking, Food & Drink</a></li> <li><a href="/books/non-fiction/crafts-handiwork/cWF-p1.html">Crafts & Handiwork</a></li> <li><a href="/books/non-fiction/family-health/cVF-p1.html">Family & Health</a></li> <li><a href="/books/non-fiction/family-health/fitness-diet/cVFM-p1.html">Fitness & Diet</a></li> <li><a href="/books/non-fiction/history/cHB-p1.html">History</a></li> <li><a href="/books/non-fiction/self-help-personal-development/cVS-p1.html">Self-Help & Personal Development</a></li> <li><a href="/books/fiction/cF-p1.html?list=10">Australian Fiction</a></li> <li><a href="/books/fiction/crime-mystery/cFF-p1.html">Crime & Mystery</a></li> <li><a href="/books/fiction/classic-fiction/cFC-p1.html">Classic Fiction</a></li> <li><a href="/books/fiction/fantasy-fiction/cFM-p1.html">Fantasy Fiction</a></li> <li><a href="/books/fiction/modern-contemporary-fiction/cFA-p1.html">Modern & Contemporary Fiction</a></li> <li><a href="/books/fiction/graphic-novels/manga/cFXA-p1.html">Manga</a></li> <li><a href="/books/kids-childrens-books/picture-books-early-learning/picture-books-in-general/cYBC-p1.html">Picture Books</a></li> <li><a href="/books/kids-childrens-books/children-s-fiction/young-adult-ya-fiction/cYFY-p1.html">Young Adult Fiction</a></li> </ul> </div> </div> </div> </div> <div id="awards"> <div class="row no-gutters align-items-center"> <div class="col-auto"> <img class="lazyload" src="https://www.booktopia.com.au/images/loading-cover-150.gif" data-src="https://www.booktopia.com.au/images/assets/footer/australian-booksellers-association.png" /> </div> <div class="col"> Voted Australia’s Favourite Bookstore by Australian Book Buyers </div> <div class="col-auto"> <img class="lazyload" src="https://www.booktopia.com.au/images/loading-cover-150.gif" data-src="https://www.booktopia.com.au/images/assets/footer/national-bookshop-day.png" /> </div> <div class="col-12"> <br>© 2024 Booktopia Direct Pty Ltd. </div> </div> </div> <script type="text/javascript"> history.navigationMode = 'compatible'; </script> <div style="display:none;"> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = 1071893088; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_label = "qrp2CNvw4wIQ4JSP_wM"; var google_conversion_value = 0; /* ]]> */ </script> <script> lazyLoadScript("https://www.googleadservices.com/pagead/conversion.js",function(){}) </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="https://www.googleadservices.com/pagead/conversion/1071893088/?label=qrp2CNvw4wIQ4JSP_wM&guid=ON&script=0"/> </div> </noscript> </div> </div> <!-- 02e138218ac34772a8fff47fb09d0523 --> <!-- Version: dev-20241119152116 --> <script> lazyLoadScript("/template-resources/js/polyfills/intersection-observer.js", function(){}) </script> <script type="text/javascript" src="/wro/5148/jQuery.js?v=dev-20241119152116"></script> <script type="text/javascript"> !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).LazyLoad=n()}(this,(function(){"use strict";function t(){return(t=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t}).apply(this,arguments)}var n="undefined"!=typeof window,e=n&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),i=n&&"IntersectionObserver"in window,o=n&&"classList"in document.createElement("p"),a=n&&window.devicePixelRatio>1,r={elements_selector:"img",container:e||n?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,auto_unobserve:!0,cancel_on_exit:!1,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},c=function(n){return t({},r,n)},l=function(t,n){var e,i=new t(n);try{e=new CustomEvent("LazyLoad::Initialized",{detail:{instance:i}})}catch(t){(e=document.createEvent("CustomEvent")).initCustomEvent("LazyLoad::Initialized",!1,!1,{instance:i})}window.dispatchEvent(e)},s=function(t,n){return t.getAttribute("data-"+n)},u=function(t,n,e){var i="data-"+n;null!==e?t.setAttribute(i,e):t.removeAttribute(i)},d=function(t){return s(t,"ll-status")},f=function(t,n){return u(t,"ll-status",n)},_=function(t){return f(t,null)},g=function(t){return null===d(t)},v=function(t){return"delayed"===d(t)},b=["loading","applied","loaded","error"],p=function(t){return b.indexOf(d(t))>-1},m=function(t,n){return u(t,"ll-timeout",n)},h=function(t){return s(t,"ll-timeout")},E=function(t,n,e,i){t&&(void 0===i?void 0===e?t(n):t(n,e):t(n,e,i))},y=function(t,n){o?t.classList.add(n):t.className+=(t.className?" ":"")+n},L=function(t,n){o?t.classList.remove(n):t.className=t.className.replace(new RegExp("(^|\\s+)"+n+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},I=function(t){return t.llTempImage},k=function(t,n,e){if(e){var i=e._observer;i&&n.auto_unobserve&&i.unobserve(t)}},A=function(t){t&&(t.loadingCount+=1)},w=function(t){for(var n,e=[],i=0;n=t.children[i];i+=1)"SOURCE"===n.tagName&&e.push(n);return e},z=function(t,n,e){e&&t.setAttribute(n,e)},C=function(t,n){t.removeAttribute(n)},O=function(t){return!!t.llOriginalAttrs},x=function(t){if(!O(t)){var n={};n.src=t.getAttribute("src"),n.srcset=t.getAttribute("srcset"),n.sizes=t.getAttribute("sizes"),t.llOriginalAttrs=n}},N=function(t){if(O(t)){var n=t.llOriginalAttrs;z(t,"src",n.src),z(t,"srcset",n.srcset),z(t,"sizes",n.sizes)}},M=function(t,n){z(t,"sizes",s(t,n.data_sizes)),z(t,"srcset",s(t,n.data_srcset)),z(t,"src",s(t,n.data_src))},R=function(t){C(t,"src"),C(t,"srcset"),C(t,"sizes")},T=function(t,n){var e=t.parentNode;e&&"PICTURE"===e.tagName&&w(e).forEach(n)},G={IMG:function(t,n){T(t,(function(t){x(t),M(t,n)})),x(t),M(t,n)},IFRAME:function(t,n){z(t,"src",s(t,n.data_src))},VIDEO:function(t,n){w(t).forEach((function(t){z(t,"src",s(t,n.data_src))})),z(t,"poster",s(t,n.data_poster)),z(t,"src",s(t,n.data_src)),t.load()}},S=function(t,n,e){var i=G[t.tagName];i&&(i(t,n),A(e),y(t,n.class_loading),f(t,"loading"),E(n.callback_loading,t,e),E(n.callback_reveal,t,e))},j=["IMG","IFRAME","VIDEO"],D=function(t){t&&(t.loadingCount-=1)},F=function(t,n){!n||n.toLoadCount||n.loadingCount||E(t.callback_finish,n)},P=function(t,n,e){t.addEventListener(n,e),t.llEvLisnrs[n]=e},V=function(t,n,e){t.removeEventListener(n,e)},U=function(t){return!!t.llEvLisnrs},$=function(t){if(U(t)){var n=t.llEvLisnrs;for(var e in n){var i=n[e];V(t,e,i)}delete t.llEvLisnrs}},q=function(t,n,e){!function(t){delete t.llTempImage}(t),D(e),L(t,n.class_loading),k(t,n,e)},H=function(t,n,e){var i=I(t)||t;if(!U(i)){!function(t,n,e){U(t)||(t.llEvLisnrs={}),P(t,"load",n),P(t,"error",e),"VIDEO"===t.tagName&&P(t,"loadeddata",n)}(i,(function(o){!function(t,n,e,i){q(n,e,i),y(n,e.class_loaded),f(n,"loaded"),E(e.callback_loaded,n,i),F(e,i)}(0,t,n,e),$(i)}),(function(o){!function(t,n,e,i){q(n,e,i),y(n,e.class_error),f(n,"error"),E(e.callback_error,n,i),F(e,i)}(0,t,n,e),$(i)}))}},B=function(t){t&&(t.toLoadCount-=1)},J=function(t,n,e){!function(t){t.llTempImage=document.createElement("img")}(t),H(t,n,e),function(t,n,e){var i=s(t,n.data_bg),o=s(t,n.data_bg_hidpi),r=a&&o?o:i;r&&(t.style.backgroundImage='url("'.concat(r,'")'),I(t).setAttribute("src",r),A(e),y(t,n.class_loading),f(t,"loading"),E(n.callback_loading,t,e),E(n.callback_reveal,t,e))}(t,n,e),function(t,n,e){var i=s(t,n.data_bg_multi),o=s(t,n.data_bg_multi_hidpi),r=a&&o?o:i;r&&(t.style.backgroundImage=r,y(t,n.class_applied),f(t,"applied"),k(t,n,e),E(n.callback_applied,t,e))}(t,n,e)},K=function(t,n,e){!function(t){return j.indexOf(t.tagName)>-1}(t)?J(t,n,e):function(t,n,e){H(t,n,e),S(t,n,e)}(t,n,e),B(e),F(n,e)},Q=function(t){var n=h(t);n&&(v(t)&&_(t),clearTimeout(n),m(t,null))},W=function(t,n,e,i){"IMG"===t.tagName&&($(t),function(t){T(t,(function(t){R(t)})),R(t)}(t),function(t){T(t,(function(t){N(t)})),N(t)}(t),L(t,e.class_loading),D(i),E(e.callback_cancel,t,n,i),setTimeout((function(){i.resetElementStatus(t,i)}),0))},X=function(t,n,e,i){E(e.callback_enter,t,n,i),p(t)||(e.load_delay?function(t,n,e){var i=n.load_delay,o=h(t);o||(o=setTimeout((function(){K(t,n,e),Q(t)}),i),f(t,"delayed"),m(t,o))}(t,e,i):K(t,e,i))},Y=function(t,n,e,i){g(t)||(e.cancel_on_exit&&function(t){return"loading"===d(t)}(t)&&W(t,n,e,i),E(e.callback_exit,t,n,i),e.load_delay&&v(t)&&Q(t))},Z=["IMG","IFRAME"],tt=function(t){return t.use_native&&"loading"in HTMLImageElement.prototype},nt=function(t,n,e){t.forEach((function(t){-1!==Z.indexOf(t.tagName)&&(t.setAttribute("loading","lazy"),function(t,n,e){H(t,n,e),S(t,n,e),B(e),f(t,"native"),F(n,e)}(t,n,e))})),e.toLoadCount=0},et=function(t){var n=t._settings;i&&!tt(t._settings)&&(t._observer=new IntersectionObserver((function(e){!function(t,n,e){t.forEach((function(t){return function(t){return t.isIntersecting||t.intersectionRatio>0}(t)?X(t.target,t,n,e):Y(t.target,t,n,e)}))}(e,n,t)}),function(t){return{root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}}(n)))},it=function(t){return Array.prototype.slice.call(t)},ot=function(t){return t.container.querySelectorAll(t.elements_selector)},at=function(t){return function(t){return"error"===d(t)}(t)},rt=function(t,n){return function(t){return it(t).filter(g)}(t||ot(n))},ct=function(t){var n,e=t._settings;(n=ot(e),it(n).filter(at)).forEach((function(t){L(t,e.class_error),_(t)})),t.update()},lt=function(t,e){var i;this._settings=c(t),this.loadingCount=0,et(this),i=this,n&&window.addEventListener("online",(function(t){ct(i)})),this.update(e)};return lt.prototype={update:function(t){var n,o,a=this._settings,r=rt(t,a);(this.toLoadCount=r.length,!e&&i)?tt(a)?nt(r,a,this):(n=this._observer,o=r,function(t){t.disconnect()}(n),function(t,n){n.forEach((function(n){t.observe(n)}))}(n,o)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var n=this,e=this._settings;rt(t,e).forEach((function(t){K(t,e,n)}))},resetElementStatus:function(t){!function(t,n){p(t)&&function(t){t&&(t.toLoadCount+=1)}(n),f(t,null)}(t,this)},load:function(t){K(t,this._settings,this)}},lt.load=function(t,n){var e=c(n);K(t,e)},n&&function(t,n){if(n)if(n.length)for(var e,i=0;e=n[i];i+=1)l(t,e);else l(t,n)}(lt,window.lazyLoadOptions),lt})); </script> <script type="text/javascript"> function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i <ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return null; } function enhancedEcommerceAddProduct(product) { if (product) ga('enhancedEcommerce.ec:addProduct', product); } function enhancedEcommerceAddToCart(product) { if (product) { enhancedEcommerceAddProduct(product); ga('enhancedEcommerce.ec:setAction', 'add'); ga('enhancedEcommerce.send', 'event', 'UX', 'click', 'add to cart'); } } function ecEventDispatch(productData) { if (productData) { enhancedEcommerceAddProduct(productData); ga('enhancedEcommerce.ec:setAction', 'click', {list: productData.list}); // Send click with an event, then send user to product page. ga('enhancedEcommerce.send', 'event', 'UX', 'click', 'Product'); } } function toggleModal(target) { let templateId = target + '-template'; if (target === "#add-item-to-wishlist-modal" || target === "#create-new-wishlist-modal" || target === "#add-wishlist-templates") { templateId = "#wishlist-actions-template"; } else if (target === "#delete-wishlist-modal" || target === "#share-wishlist-modal" || target === '#share-lists-modal') { templateId = "#wishlist-popups-template"; } appendModalTemplate(target, templateId); if (target !== "#undefined-modal") { const activeModal = jQuery('.b-show-modal'), activeModalId = '#' + activeModal.attr('id'), targetSelector = $(target), targetModal = $(target + '.b-modal'); if (activeModal.length && activeModalId !== target) { activeModal.trigger('b-modal-closed'); activeModal.removeClass('b-show-modal'); } if (targetModal.hasClass('b-show-modal')) { targetSelector.trigger('b-modal-closed', [target]); } else { targetSelector.trigger('b-modal-opened', [target]); showModalContent(targetModal); } if(window.BKT_GLOBALS.isSidePanelTheme && !window.BKT_GLOBALS.isKoboPopup && targetSelector.hasClass('side-panel-theme')) { const targetModalContent = targetModal.find('.b-modal-content'); if(targetSelector.hasClass('b-show-modal')) { targetModalContent.toggleClass('slide-side-panel'); setTimeout(function() { targetModal.toggleClass("b-show-modal"); }, 300) } else { targetModal.toggleClass("b-show-modal"); setTimeout(function() { targetModalContent.toggleClass('slide-side-panel'); }, 300) } $('.b-modal:not(.b-show-modal) .b-modal-content').removeClass('slide-side-panel'); } else { targetModal.toggleClass("b-show-modal"); } lazyLoadInstance.update(); } } function createModal(name, className) { if (className === undefined) className = ""; if (jQuery("#" + name + "").length == 0) { var modal = '<div id="' + name + '" class="b-modal dynamic-modal ' + className + '">\n' + '<div id="' + name + '-popup" class="b-modal-content">' + '<button class="b-close-button b-modal-close"><i class="icon-cross"></i></button>' + '<div id="' + name + '-container"><div class="loader-wrapper"><i class="icon-spinner3 loader"></i></div></div>' + '</div>' + '</div>'; jQuery("#footer").append(modal); } } function windowOnClick(event) { var activeModal = jQuery('.b-show-modal'); if (activeModal[0] !== undefined && (event.target === activeModal[0] || event.target === jQuery('#paypal-terms-modal .overlay')[0]) && jQuery(activeModal[0]).find('.loader-wrapper').length === 0) { window.parent.jQuery('.b-modal-close').first().trigger('click'); } } function showModalContent(target) { target.show(); target.find('.b-modal-content').show(); } function openWishListDrawer() { appendModalTemplate(); var jNotificationContainer = jQuery("#product-wishlist-notification"); var jParentSelector = jQuery("#booktopia-notification-wrapper"); jParentSelector.find('#booktopia-notification > div').hide(); jNotificationContainer.show(); jParentSelector.show(); jQuery('.b-modal').hide(); jQuery('#wishlist-confirmation').hide(); showModalContent($('#add-item-to-wishlist-modal')); jQuery('#create-wishlist-form').trigger('reset'); jQuery('#add-item-to-wishlist-modal').trigger('b-modal-opened', ['#add-item-to-wishlist-modal']); setTimeout(function () { jParentSelector.addClass('active'); }, 20) } $(function () { $(document).on('b-modal-opened', '#add-item-to-wishlist-modal', function (e, target) { const form = $('#create-wishlist-form'); form.trigger('reset'); form.find('.input-error').remove(); form.find('.field').removeClass('error'); $.ajax({ url: "/api/customer/wishlist?version=v1", method: "get", dataType: "json" }).done(function(response) { if(response.success) { const responseData = response && response.data ? response.data : null, wishListSelect = $('#wishlist-select'); if (responseData.length <= 1) { const label = wishListSelect.closest('.field').find('label'); wishListSelect.hide(); label.html('This item will be added to your Wish List (default)'); label.addClass('mb-0'); } else { let options = []; responseData.forEach(function (item) { const option = '<option value="' + item.uidPk + '">' + item.displayName + '</option>' options.push(option) }); wishListSelect.show(); wishListSelect.parents('.field').find('label').html('Select a list to add to'); wishListSelect.html(options); } } }).fail(function(response){ console.warn(response); }); }); jQuery(document).on('click', '.b-modal-close', function () { const activeModal = $('.b-show-modal'), modal = $(activeModal[0]); if (modal.find('.loader-wrapper').length === 0) { toggleModal('#' + modal.attr('id')); const bModal = $(this).parents('.b-modal') if(bModal.attr('id') !== 'gallery-modal') { if (bModal.hasClass('dynamic-modal') && !bModal.hasClass('google-preview')) { setTimeout(function () { bModal.remove(); }, 100) } } } }); window.addEventListener("click", windowOnClick); //------END MODAL-------- jQuery(document).on('click', '#cancel-modal, .cancel-modal', function () { window.parent.jQuery('.b-modal-close').trigger('click'); }) jQuery("#reload-page").on('click', function () { parent.location.reload(); }) var trigger = $('.b-trigger'); trigger.on('click', function(e) { if(trigger.data('target') === "donation") { e.preventDefault(); } }) jQuery(document).on('click', 'a[data-product-data]', function(){ if($(this).hasClass('cart-item')) return; var productData = jQuery(this).data('product-data'); if (productData) { const wo = window.google_object?window.google_object:null; productData.dimension27 = wo?wo.dimension27:''; productData.deliveryExpectation = getOccasionDeliveryExpectation(productData); dataLayer.push({ecommerce: null}); dataLayer.push({ 'event': 'addToCart', 'ecommerce': { 'currencyCode': wo?wo.currency:'', 'add': { 'products': [productData] } } }) } }) jQuery(document).on('click', '[data-promo-data]', function() { const wo = window.google_object?window.google_object:null, promoData = jQuery(this).data('promo-data'); if (promoData) { dataLayer.push({ ecommerce: null }); dataLayer.push({ 'event': 'promotionClick', 'dimension5': wo?wo.dimension5:'', 'dimension6': wo?wo.dimension6:'', 'ecommerce': { 'promoClick': { 'promotions': [ promoData ] } } }); } }); $(window).on('beforeunload', function(){ if(loadedProducts.length > 0) { const wo = window.google_object?window.google_object:null; dataLayer.push({ ecommerce: null }); dataLayer.push({ 'event': 'productImpression', 'dimension5': wo?wo.dimension5:'', 'dimension6': wo?wo.dimension6:'', 'ecommerce': { 'currencyCode': wo?wo.currency:'', 'products': loadedProducts } }); loadedProducts = []; } }); }); function appendModalTemplate(contentId, templateId) { const nonFooterModals = ["#zookal-study-modal","#paypal-terms-modal","#flat-rate-modal","#share-lists-modal","#etext-access-modal", "#free-shipping-modal"] if(window.BKT_GLOBALS.isMobileSession && !nonFooterModals.includes(contentId)) { const modalTemplateContainer = jQuery("#booktopia-notification"); if (modalTemplateContainer.children().length === 1) { modalTemplateContainer.append(jQuery("#footer-modal-template").html()); } } else { var desktopTemplateParent = jQuery(templateId).parent(); if(templateId === '#gallery-modal-template') desktopTemplateParent = jQuery('body'); var desktopTemplate = jQuery(templateId); var modalContent = jQuery(contentId); if (navigator.userAgent.indexOf("MSIE ") > -1 || navigator.userAgent.indexOf("Trident/") > -1) { desktopTemplate.show(); } else if (modalContent.length === 0) { desktopTemplateParent.append(desktopTemplate.html()); desktopTemplate.remove(); if(contentId === "#flat-rate-modal") { getShippingFeeTable(); } } } } function appendModalTemplateAfter(templateId, elementAfter) { const sharedTemplateId = $(templateId); if (typeof elementAfter !== 'undefined' && $(elementAfter).length > 0 && sharedTemplateId.length === 1) { $(sharedTemplateId.html()).insertAfter(elementAfter); } } function addProductToWishListPopup() { var timeout = 0; if($('#product-browse').length > 0) { $('html, body').scrollTop($('[id*=' + $('#product-hidden-isbn').val() + ']').offset().top - 60); timeout = 300; } setTimeout(function() { toggleModal("#add-item-to-wishlist-modal"); }, timeout); } function getOccasionDeliveryExpectation(productData) { return willDeliverBeforeOccasion === null ? null : (willDeliverBeforeOccasion && (productData.dimension1 ? productData.dimension1.trim() : false) === 'In-Stock'); } //Global variable for occasion delivery GA4 willDeliverBeforeOccasion = null; $(function(){ $(document).on('occasionDeliveryEstimate', function(e, willArriveBeforeCutoff){ // set value for this global variable willDeliverBeforeOccasion = willArriveBeforeCutoff; }) }) function getShippingFeeTable() { $.ajax({ method: "GET", url: '/news240.html' }).done(function (result) { const content = $('<div />').append(result).find('#content').html(); $('.shipping-fee-table-container').html(content); }); } </script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { $('body').addClass('side-panel-theme-active'); window.BKT_GLOBALS.isSidePanelTheme = true; }); jQuery(document).on('header-version-b-loaded',function(){ jQuery('#top-nav #shopping-cart-summary').appendTo(jQuery('.main-content .content-right-section')); jQuery('#fiction-sub').appendTo(jQuery('#navlink-fiction-sub')); jQuery('#non-fiction-sub').appendTo(jQuery('#navlink-non-fiction-sub')); jQuery('#kids-sub').appendTo(jQuery('.navlink-kids-sub')); jQuery('#schools-sub').appendTo(jQuery('#navlink-schools-sub')); }); function isTouchDevice() { // Workaround as `Modernizr.touch == false` on new Windows Phone and true on some Firefox desktop versions. // Also cover Opera Mini for Android 4.0. return isModernMobileUserAgent(); } // Including "Windows Phone OS 7.5" and "Windows Phone 8.0" function isModernMobileUserAgent() { var ua = navigator.userAgent; return (ua.match(/(iPhone|iPod|iPad)/) || ua.match(/Android/) || ua.match(/BlackBerry/) || ua.match(/Opera Mini/) || ua.match(/Windows Phone/) ? true : false); } function isOldIE() { var oldIE = (navigator.userAgent.match(/msie/i)) && parseInt(jQuery.browser.version, 10) < 9; return oldIE; } // Toggle the floating navigation bar and quicklinks function togglePersistentNavBar() { var persistentNavBar = jQuery('.persistent-nav-bar'); if (persistentNavBar.length) { var showNavBar = jQuery(window).scrollTop() > 210; if (showNavBar) { persistentNavBar.show(); jQuery(document).trigger('persistentNavBar.shown'); if (!jQuery('.persistent-nav-bar #shopping-cart-summary').length && !jQuery('.persistent-nav-bar #searchform').length) { jQuery('#shopping-cart-summary').appendTo(jQuery('.persistent-cart-summary')); jQuery('#header #searchform').appendTo(jQuery('.persistent-search-box')); } if (jQuery('.autocomplete-suggestions').is(':visible')) { jQuery('.autocomplete-suggestions').hide(); } } else { persistentNavBar.hide(); jQuery(document).trigger('persistentNavBar.hidden'); if (!jQuery('#top-nav #shopping-cart-summary').length && !jQuery('#header #searchform').length) { if (jQuery('body').hasClass("header-version-b")) { jQuery('.persistent-nav-bar #shopping-cart-summary').appendTo(jQuery('.main-content .content-right-section')); } else { jQuery('.persistent-nav-bar #shopping-cart-summary').insertAfter('#top-nav .content > ul.header-version-default-item'); } jQuery('.persistent-nav-bar #searchform').appendTo(jQuery('#header #search')); } } } } function togglePersistentNavQuicklinks(quicklinksButton) { var quicklinkList = jQuery(quicklinksButton).siblings(".persistent-quicklink-list"); if (quicklinkList.hasClass("persistent-quicklink-list-open")) { quicklinkList.removeClass("persistent-quicklink-list-open"); quicklinkList.hide(); } else { quicklinkList.addClass("persistent-quicklink-list-open"); quicklinkList.show(); } } // below function called from CMS, init 'book of the month' img function initBookOfTheMonth(productLink, productImgURL, altText) { var bookOfTheMonthHtml = "<a href='" + productLink + "'><img class='book-of-the-month-img lazyload block' src='//images.booktopia.com.au/loading-cover-150.gif' data-src='" + productImgURL + "'alt='" + altText + "'></a>"; jQuery("#book-of-the-month-section").append(bookOfTheMonthHtml); var middleTile = jQuery("#banner .banner-middle-section .tile"); if (middleTile.length == 1) { middleTile.find("img").css("max-height", "260px"); } lazyLoadInstance.update(); }; </script> <script type="text/javascript" src="/template-resources/js/slick.min.js"></script> <script type="text/javascript"> // Excluding (true, 4) which is handled by initAddToCart (above) // and "product-carousel-priced-5" which is used for the No Products carousel function initCarousels(numResults, productType, parentSelector) { if (!parentSelector || parentSelector === "body") { if (numResults > 0) { initCarousel("small", 5, productType, parentSelector); // For categoryTemplateHead initCarousel("priced", 5, productType, parentSelector); // For categoryTemplate, categoryLandingPageTemplate, holidayHaven, clickFrenzy initCarousel("priced", 7, productType, parentSelector); // For /books-online/bargains/c9-p1.html initCarousel("", 4, productType, parentSelector); initCarousel("", 5, productType, parentSelector); // For productTemplateHead, productUnavailableTemplate initCarousel("", 7, productType, parentSelector); // For baum initCarousel("grid", 5, productType, parentSelector); } else initCarousel("priced", 5, productType, parentSelector); // For searchResultsDescription (No Results page) } } // Size carousels and set animate style for the overlaid price on the main carousel. // Returns the number of carousel containers that needed initialising function initCarousel(style, scroll, productType, parentSelector) { if (!parentSelector) parentSelector = "body"; var carouselSelector = null, options = {speed: 500, slidesToShow: scroll, slidesToScroll: scroll, infinite: false}; var initCount = 0; // Get common options for given carousel type if (style === "small") { // scroll will be 4 or 5 carouselSelector = ".product-carousel-small-5"; } else if (style === "priced") { carouselSelector = ".product-carousel-priced-" + scroll; } else if (style === "grid") { carouselSelector = ".product-carousel-grid-6"; options['slidesToShow'] = 6 options['slidesToScroll'] = 5 options['variableWidth'] = true } else { options['responsive'] = [{ breakpoint: 1150,// normal number of products up until 1150 settings: { slidesToShow: scroll, slidesToScroll: scroll, } },{ breakpoint: 3000,// setting this more than 1200 so the break point is never reached settings: { slidesToShow: scroll + 1, slidesToScroll: scroll + 1, } }] carouselSelector = ".product-carousel-" + scroll; } options['prevArrow'] = '<span class="slick-prev icon-arrow-left10" data-mh-ea="Arrow click" data-mh-el="Left"></span>'; options['nextArrow'] = '<span class="slick-next icon-uniE89B" data-mh-ea="Arrow click" data-mh-el="Right"></span>'; var listIds = new Array(); var categoryCode = null; var batch = true; jQuery(parentSelector).find(carouselSelector).each(function (index, element) { var jqContainer = jQuery(this); if (jqContainer.attr('data-batch') === "no") { batch = false } if (jqContainer.attr('data-dynamic') === "ajax") { // For AJAX carousels, <li> items must be appended to DOM before jcarousel() is called if (jqContainer.find("na").length == 0) { categoryCode = jqContainer.attr('data-category'); if (batch) { listIds.push(jqContainer.attr('data-list')); } else { let productListUrl = '/api/product/productsInList?version=v1&productTypeId=' + productType + '&listId=' + jqContainer.attr('data-list'); if(categoryCode) productListUrl += '&categoryCode=' + categoryCode; $.ajax({ url: productListUrl, dataType: "json" }).done(function(response) { const listProducts = response.data; setCarouselProducts(listProducts, jqContainer, options, parentSelector); }).fail(function(response) { console.warn(response); }); initCount++; } } } else { if (initCarouselInstanceFromDOM(jqContainer, options, parentSelector)) initCount++; } }); if (batch && listIds.length > 0) { var l = 0; let batchListUrl = '/api/product/productsInListBatch?version=v1&productTypeId=' + productType + '&listIds=' + listIds; if(categoryCode) batchListUrl += '&categoryCode=' + categoryCode; $.ajax({ url: batchListUrl, dataType: "json" }).done(function(response) { const listOfLists = response.data; jQuery(parentSelector).find(carouselSelector).each(function (index, element) { var jqContainer = jQuery(this); if (jqContainer.attr('data-dynamic') === "ajax" && l < listOfLists.length) { setCarouselProducts(listOfLists[l], jqContainer, options, parentSelector); initCount++; l++; } }); if(window.BKT_GLOBALS.isKeyboardAccessible) { initAccessibleCarousel(parentSelector); } }).fail(function(response){ console.warn(response); }); } return initCount; } // Get/set memory with template html function substituteFromTemplate(selector, vars) { if (!parent.cache) parent.cache = {}; if (!parent.cache[selector]) { var jTemplate = jQuery(selector); if (jTemplate.length === 0) { if (window.console && console.warn) console.warn("Template not found: " + selector); return ""; } var html = jTemplate.html().trim(); if (!html || html === "") { if (window.console && console.warn) console.warn("Template empty: " + selector); return ""; } parent.cache[selector] = html; } return substitute(parent.cache[selector], vars); } // Simple template substitution. If array passed in, assume pattern has format "Var1: {0} Var2: {1}". // If object passed in, assume pattern has Velocity-style format "Var1: ${var1} Var2: ${var2}". function substitute(pattern, vars) { var substitution; if (!vars) return pattern; else if (jQuery.isArray(vars)) { return pattern.replace(/{([0-9]+)}/g, function (match, key, value) { substitution = vars[key]; return (substitution ? substitution : ""); }); } else { return pattern.replace(/\${([A-Za-z0-9\.]+)}/g, function (match, key, value) { substitution = vars[key]; return (substitution ? substitution : ""); }); } } function setCarouselProducts(listProducts, jqContainer, options, parentSelector) { var fullTemplate = jqContainer.attr('data-details') === "full"; var isGridCarousel = jqContainer.hasClass('product-carousel-grid-6'); if (listProducts && listProducts.length > 0) { for (var i in listProducts) { if (listProducts[i] != null) { var itemHtml = carouselComposeItemHTML(listProducts[i], fullTemplate, isGridCarousel, i); jqContainer.find('.jcarousel-skin-booktopia').append('<li>' + itemHtml + '</li>'); } } options['lazyLoad'] = 'ondemand'; initCarouselInstanceFromDOM(jqContainer, options, parentSelector); //update lazy loading once the carousel is loaded in DOM lazyLoadInstance.update(); if (isTouchDevice()) { jQuery(parentSelector).find(".product-carousel-7 .jcarousel-skin-booktopia .product .sale-price, .product-carousel-small-5 .jcarousel-skin-booktopia .product .sale-price, .product-carousel-grid-6 .jcarousel-skin-booktopia .product .sale-price").animate({"opacity": 1.0}, 300); jQuery(parentSelector).find(".button").animate({"opacity": 1.0}, 300); } // //update the delivery icon for dynamic carousel if(localStorage.getItem('inStockDeliveryForPostcode') === "1") displayDeliveryIcon(); } else jqContainer.hide(); } // Initialise a specific carousel function initCarouselInstanceFromDOM(jqContainer, options, parentSelector) { var instanceOptions = carouselGetInstanceOptions(jqContainer, options); instanceOptions['_parentSelector'] = parentSelector; if (instanceOptions['visibleSize'] > 0 || instanceOptions['invisibleSize'] > 0) { var carouselRoot = jqContainer.find(".jcarousel-skin-booktopia"); if (carouselRoot.length > 0) { carouselRoot.slick(instanceOptions) // Add numbers to carousel images, similar to Bestsellers carousel try { if (jqContainer.parent().hasClass("carousel-grid-1-4-layout") && jqContainer.hasClass("product-rankings")) { // E.g. Carousel style used on eBook Fiction landing page jqContainer.find(".slick-slide").each(function (iCounter) { if (!jQuery(this).find(".ranking").length) { var iRanking = iCounter + 1; jQuery(this).find("div.image").append('<span class="ranking">' + iRanking + '</span>'); } }); } } catch (e) {} return true; } else return false; } else { if (window.console && console.warn) console.warn("Carousel data not found: " + parentSelector + " > " + jqContainer.attr('id') + " " + instanceOptions['size'] + " " + instanceOptions['visibleSize'] + " " + instanceOptions['invisibleSize']); return false; } } // Inspect a specific carousel to count the number of items to be added to it function carouselGetInstanceOptions(jqContainer, options) { var instanceOptions = jQuery.extend(true, {}, options); // clone var dynamic = false; var visibleSize = 0; var invisibleSize = 0; try { dynamic = jqContainer.attr("data-dynamic") || false; if ("domUpdate" == dynamic) { invisibleSize = jqContainer.find(".image img[src='']").parent().parent().length; // product.image count visibleSize = jqContainer.find("li").length - invisibleSize; } else { invisibleSize = jqContainer.find("na").length; visibleSize = jqContainer.find("li").length; // static/added carousel items } } catch (e) { } instanceOptions['visibleSize'] = visibleSize; instanceOptions['invisibleSize'] = invisibleSize; return instanceOptions; } //Generate stars sprite Y position from rounded rating (dynamic carousel helper) function getStarsSpriteY(rating, imageOffset) { var r = Number(rating); if (r === NaN || r <= 0.0) return -200; return -36.0 * rating + 2 + imageOffset; } // Item HTML creation helper function carouselComposeItemHTML(vars, fullTemplate, isGridCarousel, index) { // Alt text should NOT display as tooltips (that's what title is for), this was only fixed in IE8 if (!vars.altText || isOldIE()) vars.altText = ""; if (vars.formattedDateIfInFuture == "null" || typeof vars.formattedDateIfInFuture === "undefined") { vars.formattedDateIfInFuture = ''; } // Replaces image URL width parameter to 200 and 100 for grid carousels if (isGridCarousel && index % 5 == 0) { vars.imageUrl = vars.imageUrl.replace("/150/", "/200/"); } else { vars.imageUrl = vars.imageUrl.replace("/150/", "/110/"); } vars.productTypeTagClass = getProductTypeTagClass(vars.binding); vars.rating = vars.rating || 0.0; vars.starsSpriteY = getStarsSpriteY(vars.rating, 0); // ISBN and CODE can be used interchangeablely but template is using: data-code="${isbn}" if (vars.code && !vars.isbn) { vars.isbn = vars.code; } var itemHtml = substituteFromTemplate((fullTemplate ? "#carousel-item-buy-now-full-template" : "#carousel-item-buy-now-short-template"), vars, false); if (itemHtml) { if (document.getElementById('ec_enabled') && document.getElementById('ec_enabled').getAttribute('content') == 'true') { var ecData = jQuery("<div></div>").append(itemHtml), buyButton = ecData.find(".buy-button > a"), enhancedEcommerceData = { 'id': vars.uidPk.toString(), 'name': vars.displayName, 'category': buyButton.data('category'), 'brand': vars.altText.split(' - ')[1], 'variant': vars.defaultSupplierVitalSource ? "eText" : vars.fmtBinding, 'price': vars.fmtSalePrice.replace('$', ''), 'quantity': 1, 'dimension1': vars.hasStockAvailable ? 'In-Stock' : 'Not in Stock', 'list': 'Dynamic Carousel', 'position': index }; buyButton.attr('data-product-data', JSON.stringify(enhancedEcommerceData)); itemHtml = ecData.html(); } itemHtml = itemHtml.replace('data-src=""', 'data-src="' + vars.imageUrl + '"').replace('data-ll-status', 'data'); if (vars.hasStockAvailable && vars.binding !== "MAG") { itemHtml = itemHtml.replace('<img', '<span class="special-occasion-icon" title="This item will arrive by Christmas"></span><img'); itemHtml = itemHtml.replace('class="delivery">', 'class="delivery"><div class="in-stock"></div>'); } if (vars.fmtBinding === "eBook") { itemHtml = itemHtml.replace('buy-now button', 'buy-now ebook button'); itemHtml = itemHtml.replace('>BUY NOW<', '>BUY EBOOK<'); itemHtml = itemHtml.replace('icon-cart', 'icon-download'); } else if (vars.availability == "PREORDER") { itemHtml = itemHtml.replace('buy-now button', 'pre-order button'); itemHtml = itemHtml.replace('>BUY NOW<', '>PREORDER<'); } else if (vars.availability == "BACKORDER") { itemHtml = itemHtml.replace('buy-now button', 'back-order button'); itemHtml = itemHtml.replace('>BUY NOW<', '>BACKORDER<'); } if (vars.bundledProduct || vars.signed || vars.displayProductBadge || vars.productTypeTagClass) { var productBadge = ""; if (vars.bundledProduct) productBadge += '<span class="bundle-badge" title="This product belongs to a bundle"></span>'; if (vars.signed) productBadge += '<span class="signed-copy-sticker"></span>'; if (vars.displayProductBadge) { var badgeBgColor = vars.badgeBackgroundColor; if (!badgeBgColor || badgeBgColor == "") { badgeBgColor = "#009933"; } productBadge += '<div class="campaign-badge-wrapper"><div style="background-color: ' + badgeBgColor + '" class="campaign-badge-background"><div class="campaign-badge-text" style="color: ' + badgeBgColor + ';">' + vars.displayProductBadge + '</div></div></div>' var campaignBorder = '<div class="image" style="outline: 1px solid rgba(255,255,255,0.5); box-shadow: 0 0 0 1px ' + badgeBgColor + ';"'; itemHtml = itemHtml.replace('<div class="image"', campaignBorder); } if (vars.productTypeTagClass) productBadge += '<div class="' + vars.productTypeTagClass + '"></div>'; itemHtml = itemHtml.replace('<div class="product-badges-empty">', '<div class="product-badges">' + productBadge); } if (vars.adultCover) { itemHtml = itemHtml.replace('<img class="lazyload "', '<img class="lazyload blur"'); // Other browsers } } return itemHtml; } // Product type identifier overlaid on product images (dynamic carousel helper) function getProductTypeTagClass(binding) { if (!binding || binding === "") return ""; var tagClass = ""; if (binding === "DG_EPUB_PDF" || binding === "DG_PDF" || binding === "DG_EPUB") tagClass = "product-type-tag-ebook"; else if (binding === "AA" || binding === "RI" || binding === "AZ" || binding === "AJ" || binding === "C3" || binding === "CD" || binding === "CX" || binding === "DA" || binding === "M3" || binding === "MP3") tagClass = "product-type-tag-audio"; else if (binding === "DR" || binding === "CR" || binding === "DH" || binding === "DZ") tagClass = "product-type-tag-cd-dvd"; else if (binding === "BLR") tagClass = "product-type-tag-blu-ray"; else if (binding === "DAB") tagClass = "product-type-tag-audio-digital"; return tagClass; } </script><script type="text/javascript" src="/wro/5148/booktopia.desktop.js?v=dev-20241119152116"></script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', "UA-413837-1"]); _gaq.push(['_trackPageview']); _gaq.push(['_setCustomVar', 1, 'Site', "PC", 2]); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', "UA-413837-3", 'auto'); ga('send', 'pageview'); ga('create', 'UA-413837-4', 'auto', 'enhancedEcommerce'); ga('enhancedEcommerce.require', 'ec'); ga('enhancedEcommerce.set', 'currencyCode', 'AUD'); ga('create', "UA-413837-1", 'auto', 'MHEnhancedEcommerce'); ga('MHEnhancedEcommerce.require', 'ec'); ga('MHEnhancedEcommerce.set', 'currencyCode', 'AUD'); var ecPageViewSent; window.onbeforeunload = function(){ if(ecPageViewSent !== true) { ga('enhancedEcommerce.send', 'pageview'); ga('MHEnhancedEcommerce.send', 'pageview'); return null; } }; </script> <script type="text/javascript" src="/Ns7aBMIv/init.js" async></script> <script type="text/javascript"> var advertTrackerRaw = localStorage.getItem('advertTracker') var advertTracker = JSON.parse(advertTrackerRaw) if(advertTrackerRaw && window.location.pathname != advertTracker.pathname){ localStorage.removeItem('advertTracker') } </script> <script type="text/javascript"> (function (a, b, c, d, e, f, g) { e['ire_o'] = c; e[c] = e[c] || function () { (e[c].a = e[c].a || []).push(arguments) }; f = d.createElement(b); g = d.getElementsByTagName(b)[0]; f.async = 1; f.src = a; g.parentNode.insertBefore(f, g); })('//d.impactradius-event.com/A1393524-e137-4555-83c9-d01ef05ce3901.js', 'script', 'ire', document, window); </script> <script> window.addEventListener('load', function() { lazyLoadScript('https://apis.google.com/js/platform.js?onload=initGoogleAuth', function(){}); }); </script> <script type="text/javascript"> var advertTrackerRaw = localStorage.getItem('advertTracker') var advertTracker = JSON.parse(advertTrackerRaw) if(advertTrackerRaw && window.location.pathname != advertTracker.pathname){ localStorage.removeItem('advertTracker') } </script> <div id="freshbot-initiator-mock" style="bottom:30px; right:30px; display: none;"> <div id="chat-bubble"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 30 30"><path d="M13.5 0h-9C2.016 0 0 1.99 0 4.44v7.565A1 1 0 001.008 13H13.5c2.484 0 4.5-1.99 4.5-4.44V4.44C18 1.99 15.984 0 13.5 0zm-3.24 9.52H3.744a.87.87 0 01-.864-.853.87.87 0 01.864-.853h6.516a.87.87 0 01.864.853.87.87 0 01-.864.852zm3.996-4.228H3.744a.87.87 0 01-.864-.852.87.87 0 01.864-.853h10.512a.87.87 0 01.864.853c0 .462-.36.852-.864.852z" fill="#fff" fill-rule="nonzero"/></svg> </div> </div> <script> window.addEventListener('load', function() { if(!isBotUserAgent()) { isFClicked = false; var freshBotCookie = getCookie('initiateFreshBotOnLoad'); if (freshBotCookie === 'true') { initiateFreshService(freshBotCookie); return true; } $('#freshbot-initiator-mock').show(); $('#freshbot-initiator-mock').one('click', function () { isFClicked = true; initiateFreshService(freshBotCookie); }); } }); function initFcWidget(cookie = null) { window.fcWidget.init({ token: "650540ae-cdd9-4b5e-9933-1035f1ff2c4e", host: "https://wchat.freshchat.com", tags:["chatbot"] }); window.fcWidget.on('widget:loaded', function() { if (isFClicked) { $('#freshbot-initiator-mock').hide(); window.fcWidget.open(); isFClicked = false; } }) window.fcWidget.on('widget:opened', function() { if(cookie === null) { setCookie('initiateFreshBotOnLoad', true, 1); } }); } function initiateFreshService(cookie){ var i = document, t = 'Freshchat-js-sdk', e; i.getElementById(t) ? initFcWidget(cookie) : ((e = i.createElement("script")).id = t, e.async = !0, e.src = "https://wchat.freshchat.com/js/widget.js", e.onload = function(){ initFcWidget(cookie); }, i.head.appendChild(e)) } </script> <script> window.insider_object= { "page": { "type": "Books" }, }; </script> <script> var breadcrumbs = $('#breadcrumbs'), nav = "books", category = "", genre = "", subGenre = ""; if(breadcrumbs.length > 0){ let crumbs = breadcrumbs.text().split('>'); category = crumbs.shift().trim(); genre = crumbs.length > 0 ? crumbs[0].trim() : ""; subGenre = crumbs.length > 1 ? crumbs[crumbs.length - 1].trim(): ""; } else if (nav === "Gift Certificates") { category = nav; } window.google_object = { "page": { "type": "books" }, currency: "AUD", dimension27: "CC|PayPal|Afterpay|Bank Transfer|Visa Checkout", dimension5: getCookie('gaUniqueIdentifier') || "", dimension6: getCookie('customerUid') || "", dimension12: getCookie('__utmz')?getCookie('__utmz').indexOf('emarsys') >= -1 : "", dimension13: getCookie('insdrSubsId') || "", dimension14: "", dimension15: getCookie('irclickid') || "", dimension16: category, dimension17: genre, dimension18: subGenre, } </script> <script> var lazyLoadInstance = new LazyLoad({ elements_selector: ".lazyload", callback_loaded: function(el){ var promoItem = $(el).parents('[data-promo-data]'); if(promoItem.length) { handlePromoImpression(promoItem.data('promo-data')); return; } const elem = $(el), wishlistItem = elem.parents('.wishlist-item'); let productData; const searchAndCarouselItem = elem.parents('.product'), bestsellingItem = elem.parents('.bestselling-product'); if(wishlistItem.length > 0){ productData = wishlistItem.find('.wishlist-unit-cost > a').data('product-data'); }else if (searchAndCarouselItem.length > 0){ productData = searchAndCarouselItem.find('.buy-button > a').data('product-data'); }else if (bestsellingItem.length > 0){ productData = bestsellingItem.data('product-data'); } if(productData){ const wo = window.google_object ? window.google_object : null; let extendedProductData = { deliveryExpectation: getOccasionDeliveryExpectation(productData) }, paymentType = {dimension27: wo?wo.dimension27:''}; Object.assign(extendedProductData, productData, paymentType); var MHExtendedProductData = {}, additionalParams = { currency: wo?wo.currency:'', dimension5: wo?wo.dimension5:'', dimension6: wo?wo.dimension6:'', dimension12: wo?wo.dimension12:'', dimension13: wo?wo.dimension13:'', dimension14: wo?wo.dimension14:'', dimension27: wo?wo.dimension27:'', "eventCategory": "Enhanced Ecommerce", "eventAction": "Product Impressions", "eventLabel": "", deliveryExpectation: getOccasionDeliveryExpectation(productData) }; Object.assign(MHExtendedProductData, productData, additionalParams); if(isCustomerSessionLoaded) { extendedProductData.dimension2 = sessionDataAccountType; ga('enhancedEcommerce.ec:addImpression', MHExtendedProductData); ga('MHEnhancedEcommerce.ec:addImpression', MHExtendedProductData); MHLoadedCount++; } else { MHProductQueue.push(MHExtendedProductData); } if(MHLoadedCount > 9) { ga('enhancedEcommerce.send', 'event', 'Scroll Tracking', 'scroll', window.location.href); ga('MHEnhancedEcommerce.send', 'event', 'Scroll Tracking', 'scroll', window.location.href); MHLoadedCount = 0; } // Add product data to data layer loadedProducts.push(extendedProductData); if(loadedProducts.length > 9){ if(!isCustomerSessionLoaded) { productEventQueue.push(loadedProducts); loadedProducts = []; return; } addProductImpressions(loadedProducts); loadedProducts = []; } } } }); let loadedProducts = []; let MHLoadedCount = 0; let MHProductQueue = []; let productEventQueue = [], promoEventQueue = [], isCustomerSessionLoaded = false, sessionDataAccountType = ""; $(document).on("customerSessionLoaded", function(event, customerSessionData) { isCustomerSessionLoaded = true, sessionDataAccountType = customerSessionData.accountType; let sessionDataCustomerUid = customerSessionData.customerUid; MHProductQueue.forEach(function(extendedProductData) { extendedProductData.dimension2 = sessionDataAccountType, extendedProductData.dimension6 = sessionDataCustomerUid; ga('enhancedEcommerce.ec:addImpression', extendedProductData); ga('MHEnhancedEcommerce.ec:addImpression', extendedProductData); MHLoadedCount++; if(MHLoadedCount > 9) { ga('enhancedEcommerce.send', 'event', 'Scroll Tracking', 'scroll', window.location.href); ga('MHEnhancedEcommerce.send', 'event', 'Scroll Tracking', 'scroll', window.location.href); MHLoadedCount = 0; } }); productEventQueue.forEach(function(event) { addProductImpressions(event); }); promoEventQueue.forEach(function(event) { addPromoImpression(event); }); }); function handlePromoImpression(promoData) { if(!isCustomerSessionLoaded) { promoEventQueue.push(promoData); return; } addPromoImpression(promoData); } function addPromoImpression(promoData) { const wo = window.google_object?window.google_object:null; if(promoData.creative === "Citrus") { const productType = "Books"; if(productType.length) { promoData.creative += " " + productType; } } dataLayer.push({ecommerce: null}); dataLayer.push({ 'event': 'promotionImpression', 'dimension5': wo?wo.dimension5:'', 'dimension6': wo?wo.dimension6:'', 'ecommerce': { 'promoView': { 'promotions': [ promoData ] } } }); } function addProductImpressions(productsData) { const wo = window.google_object?window.google_object:null; dataLayer.push({ecommerce: null}); dataLayer.push({ 'event': 'productImpression', 'dimension5': wo?wo.dimension5:'', 'dimension6': wo?wo.dimension6:'', 'ecommerce': { 'currencyCode': wo?wo.currency:'', 'products': productsData } }); } </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"errorBeacon":"bam.nr-data.net","licenseKey":"18e954a8c4","agent":"","beacon":"bam.nr-data.net","applicationTime":39,"applicationID":"457372","transactionName":"Z1FVY0FZXEZQBUEKCl4bZEdBUVxScglbFxdfWFtSQRdcUEYVWQYRRFFFGVZIEh12I2FK","queueTime":0}</script> <!-- Emarsys JavaScript API Header code. Loads the scarab-v2.js --> <script type="text/javascript"> var ScarabQueue = ScarabQueue || []; (function(id) { if(isBotUserAgent()) return; if (document.getElementById(id)) return; var js = document.createElement('script'); js.id = id; js.src = '//cdn.scarabresearch.com/js/189BDB0239BB84D9/scarab-v2.js'; var fs = document.getElementsByTagName('script')[0]; fs.parentNode.insertBefore(js, fs); })('scarab-js-api'); </script> <!-- [WEB-1422] Emarsys JavaScript API code. See booktopia.common.js --> <script type="text/javascript"> window.addEventListener('emarsysTracking', function(customerSession) { emarsysInit(customerSession.detail); }) var emarsysEnabled = true; function emarsysInit(ajaxCustomerSession){ pushEmarsysData(ajaxCustomerSession) } function pushEmarsysData(ajaxCustomerSession) { emarsysPushDefault(ajaxCustomerSession.emarsysCustomerUid,'false','false'); } </script> <div class="persistent-nav-bar"> <div class="persistent-nav-bar-inner"> <button class="sidenav-menu-switch"> <i class="icon-menu-new"></i> <span>ALL CATEGORIES</span> </button> <div class="persistent-search-box"></div> <div class="persistent-cart-summary"></div> </div> </div><script type="text/javascript"> if (!isTouchDevice()) { jQuery(window).on('scroll', function() {togglePersistentNavBar();}); } </script> </body> </html>