PageSourceSearch

https://www.yourcloudlibrary.com/en/home.html

html yourcloudlibrary.com collected 2026-10-01 10:26:51 UTC 55,691 bytes, 1,511 lines download raw bytes

1
2
3
4<!DOCTYPE HTML>
5<!--[if gt IE 9]><!--><html class="homepage no-js" lang="en" dir="ltr"><!--<![endif]-->
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<head>
26    <!-- OneTrust Cookies Consent Notice start for yourcloudlibrary.com --> 
26<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="0190552f-04d6-7c47-90fc-cb2d3fe29d67"></script>
26 
26<script type="text/javascript"> function OptanonWrapper() { } </script>
26 <!-- OneTrust Cookies Consent Notice end for yourcloudlibrary.com -->
27    
28<script>
29dataLayer = [{
30'site': 'yourcloudlibrary',
31'language': 'en_us'
32}];
33</script>
33
34
35    
36    <!-- Google Tag Manager --> 
36<script>
vendor: 327 bytes, line 36
36(function(w,d,s,l,i){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;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','
36GTM-WFL6J9N9
vendor: 3 bytes, line 36
36');
36</script>
36 <!-- End Google Tag Manager -->
37    <!-- Start VWO Async SmartCode --> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com"/> 
37<script type='text/javascript' id='vwoCode'> window._vwo_code || (function() { var account_id=1077420, version=2.1, settings_tolerance=2000, hide_element='body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;', /* DO NOT EDIT BELOW THIS LINE */ f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={nonce:v&&v.nonce,use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}v&&t.setAttribute('nonce',v.nonce);d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var n=this.getSettings(),i=d.createElement('script'),r=this;t=t||{};if(n){i.textContent=n;d.getElementsByTagName('head')[0].appendChild(i);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200||o.status===304){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var n=this.hide_element(),i=n?n+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=i;else t.appendChild(d.createTextNode(i));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var i=d.createElement('div');i.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;display: block !important;';i.setAttribute('id','_vis_opt_path_hides');i.classList.add('_vis_hide_layer');t.parentNode.insertBefore(i,t.nextSibling)}var o=window._vis_opt_url||d.URL,s='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(o)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:s})}else{this.load(s+'&x=true')}}};w._vwo_code=code;code.init();})(); </script>
37 <!-- End VWO Async SmartCode -->
38    <meta charset="utf-8" />
39
40    
41    
42
43    
43<script src="/etc.clientlibs/clientlibs/granite/utils.min.js"></script>
vendor: 1 bytes, line 43
43
44<script src="/etc.clientlibs/clientlibs/granite/jquery/granite.min.js"></script>
vendor: 1 bytes, line 44
44
45<script src="/etc.clientlibs/foundation/clientlibs/jquery.min.js"></script>
vendor: 1 bytes, line 45
45
46<script src="/etc.clientlibs/foundation/clientlibs/shared.min.js"></script>
vendor: 1 bytes, line 46
46
47<script src="/etc.clientlibs/cq/personalization/clientlib/underscore.min.js"></script>
vendor: 1 bytes, line 47
47
48<script src="/etc.clientlibs/cq/personalization/clientlib/personalization/kernel.min.js"></script>
vendor: 1 bytes, line 48
48
49<script type="text/javascript">
50    $CQ(function() {
51        CQ_Analytics.SegmentMgr.loadSegments("\/etc\/segmentation");
52        CQ_Analytics.ClientContextUtils.init("\/etc\/clientcontext\/default", "\/content\/yourcloudlibrary\/en\/home");
53
54        
55    });
56</script>
56
57
58
59    
60
61    
61<script src="/etc.clientlibs/oclc/clientlibs/oclc/jquery.min.js"></script>
vendor: 1 bytes, line 61
61
62<script src="/etc.clientlibs/oclc/clientlibs/oclc/jquery/oclc.min.js"></script>
62
63
64
65    <link rel="stylesheet" href="/apps/oclc/clientlibs/oclc/jquery-ui-1.14.2.min.css" type="text/css">
66<script src="/apps/oclc/clientlibs/oclc/jquery-ui-1.14.2.min.js"></script>
66
67
68    
68<script src="/etc.clientlibs/oclc/clientlibs/oclc/jquery/animation.min.js"></script>
68
69
70
71    
72
73    
74
75
76
77    <title>CloudLibrary | Accessing your library’s digital collection is easy
78    </title>
79
80    
81
82
83
84
85
86
87    
88    
89    
90    
91
92
93
94
95
96<meta name="description" content="A world of experiences. All waiting for you with CloudLibrary." />
97
98<!-- Dublin Core Metadata -->
99
100<meta name="DC.Title" content="CloudLibrary | Accessing your library’s digital collection is easy" />
101
102
103<meta name="DCTERMS.Alternative" content="CloudLibrary | Accessing your library’s digital collection is easy">
104<meta name="DC.Subject" content="" />
105
106
107<meta name="DC.Description" content="A world of experiences. All waiting for you with CloudLibrary.">
108
109
110<meta name="DC.Publisher" content="OCLC" />
111<meta name="DC.Creator" content="">
112
113<meta name="DC.Contributor" content=""/>
114<meta name="DCTERMS.Created" scheme="DCTERMS.W3CTDF" content="2026-3-19">
115<meta name="DCTERMS.Issued" scheme="DCTERMS.W3CTDF" content="2026-3-19">
116<meta name="DCTERMS.Modified" scheme="DCTERMS.W3CTDF" content="2026-3-19">
117<meta name="DC.Language" content="en">
118<meta name="DC.Modified" content="2026-3-19" />
119<meta name="DC.Rights" content="https://policies.oclc.org/en/copyright.html" />
120<meta name="twitter:title" content="CloudLibrary | Accessing your library’s digital collection is easy" />
121<meta name="twitter:card" content="summary_large_image" />
122<meta name="twitter:site" content="@OCLC" />
123<meta name="twitter:domain" content="www.oclc.org" />
124<meta name="twitter:description" content="A world of experiences. All waiting for you with CloudLibrary." />
125<meta name="twitter:image" content="https://www.yourcloudlibrary.com/content/dam/yourcloudlibrary/en/images/social-images/social_card_cloudlibrary.jpg" />
126
127<meta property="og:image" content="https://www.yourcloudlibrary.com/content/dam/yourcloudlibrary/en/images/social-images/social_card_cloudlibrary.jpg" />
128<meta property="og:type" content="website" />
129<meta property="og:site_name" content="OCLC" />
130<meta property="og:title" content="CloudLibrary | Accessing your library’s digital collection is easy" />
131<meta property="og:locale" content="en" />
132<meta property="og:url" content="https://www.yourcloudlibrary.com/en/home.html" />
133<meta property="og:description" content="A world of experiences. All waiting for you with CloudLibrary." />
134
135
136<meta name="viewport" content="width=device-width" />
137
138
139
140<link rel="canonical" href="https://www.yourcloudlibrary.com/en/home.html"/>
141<link rel="alternate" href="https://www.yourcloudlibrary.com/en/home.html" hreflang="en"/>
142
143
144<!-- News Article Script -->
145
146
147
148
149    <!-- Favicons -->
150    <link rel="icon" href="/apps/settings/wcm/designs/oclc/cloudlibrary/images/icons/favicon.ico" sizes="32x32"><link rel="icon" href="/apps/settings/wcm/designs/oclc/cloudlibrary/images/icons/icon.svg" type="image/svg+xml"><link rel="apple-touch-icon" href="/apps/settings/wcm/designs/oclc/cloudlibrary/images/icons/apple-touch-icon.png">
151
152    
153
154    
155
156
157<script type="text/javascript">
158if(typeof String.prototype.trim !== 'function') {
159      String.prototype.trim = function() {
160        return this.replace(/^\s+|\s+$/g, '');
161      }
162    }
163</script>
163
164
165<!-- Modernizr: http://www.modernizr.com/ -->
166<script src="/etc.clientlibs/oclc/clientlibs/oclc/modernizr.min.js"></script>
166
167
168
169
170
171
172<script type="text/javascript" src="/apps/oclc/clientlibs/oclc/jquery-ui-1.14.2/source/jquery-ui.min.js"></script>
vendor: 1 bytes, line 172
172
173<script type="text/javascript" src="/apps/oclc/docroot/js/pardot.loader-1.0.js"></script>
vendor: 1 bytes, line 173
173
174<script type="text/javascript">
175(function ($) {
176    $(function () {
177
178        yepnope([{
179            load: ['/apps/settings/wcm/designs/oclc/js/jquery/jquery.easing.js']
180        }, {
181            test: $("#faq-set").length,
182            yep: ['/apps/settings/wcm/designs/oclc/js/faqs-functions-v0.1.js']
183        }, {
184            // FancyBox for modals: http://fancybox.net
185            test: ($("a.modal-media").length || $("a.modal").length || $("a.img-gallery").length || $("a.modal-iframe").length || $(".modal-youtube").length),
186            yep: ['/apps/settings/wcm/designs/oclc/js/jquery/fancybox/jquery.fancybox.pack.js', '/apps/settings/wcm/designs/oclc/js/jquery/fancybox/jquery.fancybox.css',
187                '/apps/settings/wcm/designs/oclc/js/jquery/fancybox/helpers/jquery.fancybox-media.js', '/apps/settings/wcm/designs/oclc/js/modal-functions-v0.1.js']
188        }, {
189            // Sitebar show/hide
190            test: ($("#sitebar-sites").length),
191            yep: ['/apps/settings/wcm/designs/oclc/js/jquery/jquery.hoverIntent.minified.js', '/apps/settings/wcm/designs/oclc/js/sitebar-functions-v0.1.js']
192        }, {
193            // jQuery UI widgets live on $.fn, not $ -- testing $.autocomplete was
194            // always undefined and re-loaded the whole library on every page.
195            test: $.fn.autocomplete,
196            nope: '/apps/oclc/clientlibs/oclc/jquery-ui-1.14.2/source/jquery-ui.min.js',
197            complete: function () {
198                if ($("#search-terms").autocomplete) {
199                    $("#search-terms").autocomplete({
200                        source: function (request, response) {
201                            var s_siteVal = $("#s_site").val(),
202                                s_clientVal = $("#s_client").val(),
203                                uri = '/apps/oclc/suggest?q=';
204                            uri = uri + request.term + '&site=' + encodeURIComponent(s_siteVal) + '&client=' + encodeURIComponent(s_clientVal);
205                            $.ajax({
206                                url: uri,
207                                dataType: "json",
208                                type: "GET",
209                                success: function (data) {
210                                    response(data);
211                                }
212                            }); //ajax closed
213                        } //source closed
214                    }); //autocomplete closed
215                }
216
217                if ($("#result-search-terms").autocomplete) {
218                    $("#result-search-terms").autocomplete({
219                        source: function (request, response) {
220                            var sr_siteVal = $("#sr_site").val(),
221                                sr_clientVal = $("#sr_client").val(),
222                                uri = '/apps/oclc/suggest?q=';
223                            uri = uri + request.term + '&site=' + encodeURIComponent(sr_siteVal) + '&client=' + encodeURIComponent(sr_clientVal);
224                            $.ajax({
225                                url: uri,
226                                dataType: "json",
227                                type: "GET",
228                                success: function (data) {
229                                    response(data);
230                                }
231                            }); //ajax closed
232                        } //source closed
233                    }); //autocomplete closed
234                }
235            }
236        }]);
237    });
238}(jQuery));
239
240</script>
240
241
242<!-- TypeKit -->
243<link rel="stylesheet" href="https://use.typekit.net/xyd8noe.css">
244
245
246    
246<script src="/apps/settings/wcm/designs/oclc/js/jquery/jquery.url.min.js"></script>
246
247    
247<script src="/apps/settings/wcm/designs/oclc/js/toggle-show-hide.js" type="text/javascript"></script>
247
248    
248<script src="/apps/settings/wcm/designs/oclc/js/en.js"></script>
248
249
250    
250<script>
251        (function($){
252            $(function() {
253                yepnope({
254                    test: $('div.form').length > 0, // test whether the a form exists on the page with "validate" class
255                    yep: ['/apps/settings/wcm/designs/oclc/js/jquery/jquery.validate.1.11.1.min.js','/etc/oclc/js/forms-functions-v0.4.js']
256                });
257            });
258        })(jQuery);
259
260
261    </script>
261
262
263    <!-- Style sheets -->
264    
265    <link rel="stylesheet" href="/apps/settings/wcm/designs/oclc/cloudlibrary/main.css?v=20260917">
266    
267    
268
269    
270    <link rel="stylesheet" href="/content/dam/yourcloudlibrary/en/css/ycl-hero-clouds-1.0.css" type="text/css">
271<link rel="stylesheet" href="/content/dam/yourcloudlibrary/en/css/ycl-library-search-1.2.css" type="text/css">
272
273<script src="/content/dam/yourcloudlibrary/en/js/ycl-hero-clouds-1.0.js" type="text/javascript"></script>
vendor: 2 bytes, line 273
273
274<script src="/content/dam/yourcloudlibrary/en/js/ycl-library-search-1.2.js" type="text/javascript"></script>
274
275
276    
277
278
279
280
281    
282
283<!-- Template Includes -->
284
285
286
287</head>
288
289
290
291
292
293
294
295
296
297
298<body class="oclc">
299
300<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, line 300
300 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
300GTM-WFL6J9N9
vendor: 83 bytes, line 300
300" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
300<!-- End Google Tag Manager (noscript) -->
301
302<noscript>
303    <div class="nojs-caution">
304     <p>
305     <strong>JavaScript is currently not supported or is disabled by this browser.     </strong>
306     <br>
307      Some features of this site will not be available. Please enable JavaScript for full functionality.
308     <br> </p>
309
310    </div>
311</noscript>
312
313<DIV class="header_microbar iparsys parsys"><div class="section"><div class="new"></div>
314</div><div class="iparys_inherited"><div class="header_microbar iparsys parsys"><div class="customjavascript section">
315<style>
316/* Hide search box - Remove after search indexing is complete */
317</style></div>
318<div class="customjavascript section">
319<script src="/apps/settings/wcm/designs/oclc/cloudlibrary/js/main.js"></script>
319
320</div>
321</div>
322</div>
323</DIV>
324
325<div class="header iparsys parsys"><div class="section"><div class="new"></div>
326</div><div class="iparys_inherited"><div class="header iparsys parsys"><div class="header parbase section">
327
328
329
330
331
332<header>
333
334
335    
335<script type="text/javascript">
336        (function (OCLC, $) {
337            OCLC.logout = function() {
338                if (_g && _g.shared && _g.shared.ClientSidePersistence) {
339                    //_g.shared.ClientSidePersistence.clearAllMaps();
340                }
341
342                if( CQ_Analytics && CQ_Analytics.CCM) {
343                    //CQ_Analytics.ProfileDataMgr.clear();
344                    //CQ_Analytics.CCM.reset();
345                    //CQ_Analytics.ProfileDataMgr.loadProfile("anonymous");
346                    CQ.shared.Util.load("");
347                }
348            }
349            OCLC.empty = function (data) {
350                if (typeof (data) == 'number' || typeof (data) == 'boolean') {
351                    return false;
352                }
353                if (typeof (data) == 'undefined' || data === null) {
354                    return true;
355                }
356                if (typeof (data.length) != 'undefined') {
357                    return data.length == 0;
358                }
359                var count = 0;
360                for (var i in data) {
361                    if (data.hasOwnProperty(i)) {
362                        count++;
363                    }
364                }
365                return count == 0;
366            }
367            $(function () {
368
369                var headerLinks, headerName, headerLink;
370                if (!CQ.shared.User.isInitialized() ) {
371                    CQ.shared.User.init();
372                    CQ_Analytics.ProfileDataMgr.loadProfile(CQ.shared.User.data.userID);
373                }
374                
375                    
376                
377
378            });
379        }(window.OCLC = window.OCLC || {}, jQuery));
380    </script>
380
381
382    <div class="cont-page">
383        <section class="header__pre">
384            <div class="skip-nav visuallyhidden">
385                <p><a href="#main-content" title="Skip navigation and go directly to page content">Skip to page content.</a></p>
386            </div>
387            <div id="url-mapper-msg"></div>
388        </section>
389        <section class="header__top">
390            <a class="header__icon-button hide-desktop" id="mobile-menu" href="#">Menu</a>
391            <div class="header__brand">
392                <div class="logo globallogo parbase">
393
394
395
396    <!-- logo -->
397    
398    <a href="https://www.yourcloudlibrary.com/en/home.html">
399    
400        
401            <img src="/content/dam/yourcloudlibrary/en/images/logos/CloudLibrary_H_RGB.svg" border="0"  title="Home"   alt="CloudLibrary"  class="oclc-logo">
402        
403        
404    
405    </a>
406    
407</div>
408
409                <div class="logo-secondary globallogo parbase">
410
411
412
413    <!-- logo -->
414    
415    
416    
417        
418        
419    
420    
421    
422</div>
423
424            </div>
425            <div class="header__controls">
426            
427                
428
429
430
431<script>
432    var contentLink = '';
433</script>
433
434
435
436        
436<script src="/apps/oclc/components/page/oclcbase/ggclientlibs.min.js"></script>
436
437
438
439        <section class="region-language lang-selector">
440            <p class="region">
441                <a id="region-select" class="header__icon-button" tabindex="0" title="Select a different language" role="button" aria-controls="global-gateway" aria-expanded="false">
442                    English
443                </a>
444            </p>
445            <div id="global-gateway" style="display: none;" aria-hidden="true" role="menu" aria-labelledby="region-select">
446                <div id="gateway-content">
447                    
448                        
449                            <ul class="language" role="none">
450                                
451                                    <li><a href="https://www.yourcloudlibrary.com/ca/home.html" id="ca" lang="ca" hreflang="ca" role="menuitem">Català</a></li>
452                                
453                                    <li><a href="https://www.yourcloudlibrary.com/de/home.html" id="de" lang="de" hreflang="de" role="menuitem">Deutsch</a></li>
454                                
455                                    <li class="current-language"><a href="https://www.yourcloudlibrary.com/en/home.html" id="en" lang="en" hreflang="en" role="menuitem" aria-current="page">English</a></li>
456                                
457                                    <li><a href="https://www.yourcloudlibrary.com/es/home.html" id="es" lang="es" hreflang="es" role="menuitem">Español</a></li>
458                                
459                                    <li><a href="https://www.yourcloudlibrary.com/fr/home.html" id="fr" lang="fr" hreflang="fr" role="menuitem">Français</a></li>
460                                
461                                    <li><a href="https://www.yourcloudlibrary.com/mi/home.html" id="mi" lang="mi" hreflang="mi" role="menuitem">Māori</a></li>
462                                
463                                    <li><a href="https://www.yourcloudlibrary.com/nl/home.html" id="nl" lang="nl" hreflang="nl" role="menuitem">Nederlands</a></li>
464                                
465                            </ul>
466                        
467                        
468                    
469                </div>
470            </div>
471            
472            <noscript>
473                <div id="global-gateway-noscript">
474                    <div id="gateway-content-noscript">
475                        
476                            
477                                <ul class="language">
478                                    
479                                        <li>
480                                                <li><a href="https://www.yourcloudlibrary.com/ca/home.html" id="ca" lang="ca" hreflang="ca" role="menuitem">Català</a></li>
481                                        </li>
482                                    
483                                        <li>
484                                                <li><a href="https://www.yourcloudlibrary.com/de/home.html" id="de" lang="de" hreflang="de" role="menuitem">Deutsch</a></li>
485                                        </li>
486                                    
487                                        <li>
488                                                <li class="current-language"><a href="https://www.yourcloudlibrary.com/en/home.html" id="en" lang="en" hreflang="en" role="menuitem" aria-current="page">English</a></li>
489                                        </li>
490                                    
491                                        <li>
492                                                <li><a href="https://www.yourcloudlibrary.com/es/home.html" id="es" lang="es" hreflang="es" role="menuitem">Español</a></li>
493                                        </li>
494                                    
495                                        <li>
496                                                <li><a href="https://www.yourcloudlibrary.com/fr/home.html" id="fr" lang="fr" hreflang="fr" role="menuitem">Français</a></li>
497                                        </li>
498                                    
499                                        <li>
500                                                <li><a href="https://www.yourcloudlibrary.com/mi/home.html" id="mi" lang="mi" hreflang="mi" role="menuitem">Māori</a></li>
501                                        </li>
502                                    
503                                        <li>
504                                                <li><a href="https://www.yourcloudlibrary.com/nl/home.html" id="nl" lang="nl" hreflang="nl" role="menuitem">Nederlands</a></li>
505                                        </li>
506                                    
507                                </ul>
508                            
509                            
510                        
511                    </div>
512                </div>
513            </noscript>
514        </section>
515        
515<script src="/apps/settings/wcm/designs/oclc/js/jquery/jquery.ba-outside-events.js" type="text/javascript" charset="utf-8">
516        </script>
516
517
518
519
520            
521                
522
523
524
525
526    
527    
528
529
530
531
532
533
534    <ul class="universal-links">
535        
536            <li>
537                <a href="https://www.yourcloudlibrary.com/en/home.html#download" title="">Get the app</a>
538            </li>
539        
540
541        
542            
543        
544    </ul>
545
546
547
548
549                <div class="header__profile" id="header__profile"></div>
550            </div>
551            <a class="header__icon-button hide-desktop" id="mobile-search" href="#">Search</a>
552        </section>
553        <section class="header__bottom">
554            <div class="topnav">
555
556
557
558    
559    
560
561
562<script>
563(function ($) {
564    $(function () {
565        yepnope({
566            test: $.hoverIntent, // test whether hoverIntent
567            nope: ['/apps/settings/wcm/designs/oclc/js/jquery/jquery.hoverIntent.minified.js'],
568            complete: function () {
569                yepnope({
570                    load: ['/apps/settings/wcm/designs/oclc/js/mainnavigation-functions-v0.3.js', '/apps/settings/wcm/designs/oclc/js/jquery/jquery.ba-outside-events.js']
571                });
572            }
573        });
574
575        $(window).bind("load", function () {}); // Not sure why this is here.
576    });
577
578}(jQuery));
579</script>
579
580
581
582
583<nav>
584    <ul id="main-nav"> 
585        <li class="main-nav-item">
586            <a href="https://www.yourcloudlibrary.com/en/home.html" title="" class="main-nav-link ">Getting started</a>
587            
588        </li>
589        <li class="main-nav-item">
590            <a href="https://www.yourcloudlibrary.com/en/support.html" title="" rel="/content/yourcloudlibrary/en/megadrop-menus/support.html" class="main-nav-link dropnav">Support</a>
591            
592                <div class="dropnav-cont hidden-all"></div>
593        </li>
594    </ul>
595</nav>
596
597
598
599</div>
600
601        
602        </section>
603    </div>
604</header>
605<input type="hidden" name="headerPagePath" value="/content/yourcloudlibrary/en/home" id="headerPagePath">
606<input type="hidden" name="includeSearch" value="false" id="includeSearch">
607</div>
608</div>
609</div>
610</div>
611
612<main>
613    
614        <div class="hero_area parsys"><div class="parsyscolumncontrol section">
615
616
617<div class="parsys_column cq-colctrl-1-fc" >
618
619<div class="parsys_column cq-colctrl-1-fc-c0" >    
620    <div class="col0 parsys"><div class="title-v2 title section">
621<div id="title-v2-b3f0b4ec08" class="cmp-title">
622    <h1 class="cmp-title__text">A world of experiences. All waiting for you with CloudLibrary.</h1>
623</div>
624
625    
626
627</div>
628
629</div>
630
631    </div>
632
633</div></div>
634
635</div>
636
637    
638    
639
640
641
642
643  
644<div id="main-content" class="cont-page mod">
645    <div class="parsys_column interior-content">
646      <div class="parsys_column home-content-c0">       
647        <div class="cont-page mod crumbs-tools">
648          <div class="breadcrumb"></div>
649
650        </div> 
651               
652        
653        
654        
655        
656           
657        
658        
659        <div class="page-content no-nav">
660          <div class="par parsys"><div class="text parbase section">
661
662
663
664
665
666  
667  
668    <h2 class="heading-3" id="find-your-library">Browse CloudLibrary online</h2> 
669  <p class="heading-5" id="search-drop-label">Find your library to get started</p>
670  
671
672
673 
674</div>
675<div class="customjavascript section">
676<data data-config-key="countryDropdownPlaceholder"  value="Select country/territory"></data>
677<data data-config-key="countryDropdownSectionLabel" value="Country/territory"></data>
678<data data-config-key="stateDropdownPlaceholder"    value="Select state/province"></data>
679<data data-config-key="stateDropdownSectionLabel"   value="State/province"></data>
680<data data-config-key="libraryDropdownPlaceholder"  value="Select library"></data>
681<data data-config-key="libraryDropdownSectionLabel" value="Library"></data>
682<data data-config-key="recentTitle"         value="Recent selections"></data>
683<data data-config-key="noLibrariesFound"    value="No libraries found"></data>
684<data data-config-key="cantFindYourLibrary" value="Can’t find your library?"></data>
685<data data-config-key="clearInputText"      value="Clear"></data>
686<data data-config-key="librarySubmitText"   value="Go"></data>
687<data data-config-key="region.canton"       value="Canton"></data>
688<data data-config-key="region.cantonSelect" value="Select canton"></data>
689<data data-config-key="region.county"           value="County"></data>
690<data data-config-key="region.countySelect"     value="Select county"></data>
691<data data-config-key="region.country"          value="Country"></data>
692<data data-config-key="region.countrySelect"    value="Select country"></data>
693<data data-config-key="region.department"       value="Department"></data>
694<data data-config-key="region.departmentSelect" value="Select department"></data>
695<data data-config-key="region.prefecture"       value="Prefecture"></data>
696<data data-config-key="region.prefectureSelect" value="Select prefecture"></data>
697<data data-config-key="region.province"         value="Province"></data>
698<data data-config-key="region.provinceSelect"   value="Select province"></data>
699<data data-config-key="region.region"           value="Region"></data>
700<data data-config-key="region.regionSelect"     value="Select region"></data>
701<data data-config-key="region.state"            value="State"></data>
702<data data-config-key="region.stateSelect"      value="Select state"></data>
703<data data-config-key="countryName.au" value="Australia"></data>
704<data data-config-key="countryName.be" value="Belgium"></data>
705<data data-config-key="countryName.br" value="Brazil"></data>
706<data data-config-key="countryName.ca" value="Canada"></data>
707<data data-config-key="countryName.ch" value="Switzerland"></data>
708<data data-config-key="countryName.de" value="Germany"></data>
709<data data-config-key="countryName.es" value="Spain"></data>
710<data data-config-key="countryName.fr" value="France"></data>
711<data data-config-key="countryName.gb" value="United Kingdom"></data>
712<data data-config-key="countryName.hu" value="Hungary"></data>
713<data data-config-key="countryName.in" value="India"></data>
714<data data-config-key="countryName.is" value="Iceland"></data>
715<data data-config-key="countryName.jp" value="Japan"></data>
716<data data-config-key="countryName.kr" value="South Korea"></data>
717<data data-config-key="countryName.mx" value="Mexico"></data>
718<data data-config-key="countryName.nz" value="New Zealand"></data>
719<data data-config-key="countryName.pk" value="Pakistan"></data>
720<data data-config-key="countryName.ro" value="Romania"></data>
721<data data-config-key="countryName.sg" value="Singapore"></data>
722<data data-config-key="countryName.tw" value="Taiwan"></data>
723<data data-config-key="countryName.us" value="United States"></data>
724<data data-config-key="countryName.za" value="South Africa"></data>
725
726<form id="searchDropForm"></form></div>
727<div class="text parbase section">
728
729
730
731
732
733  
734  
735    <hr class="cl-hr" />
736  
737
738
739 
740</div>
741<div class="text parbase section">
742
743
744
745
746
747  
748  
749    <h2 class="heading-2">Accessing your library’s digital collection has never been easier</h2>
750  
751
752
753 
754</div>
755<div class="parsyscolumncontrol section">
756
757
758<div class="parsys_column cq-colctrl-lt0" >
759
760<div class="parsys_column cq-colctrl-lt0-c0" >    
761    <div class="col0 parsys"><div class="image parbase section">
762
763
764    <figure class="figure-stack-image">
765        <img src="/content/yourcloudlibrary/en/home/jcr%3acontent/par/parsyscolumncontrol_652988463/col0/image.img.png/1739292582466.png" alt="Photo illustration: Browsing a CloudLibrary app on a tablet" title="Photo illustration: Browsing a CloudLibrary app on a tablet" class="cq-dd-image" >
766        <figcaption>
767            <div class="img-caption"></div>
768            <div class="img-attribution"></div>
769        </figcaption>
770    </figure></div>
771
772</div>
773
774    </div>
775
776<div class="parsys_column cq-colctrl-lt0-c1" >    
777    <div class="col1 parsys"><div class="text parbase section">
778
779
780
781
782
783  
784  
785    <div class="cl-numbered cl-numbered--1">
786   <h3 class="heading-4">Download the app</h3> 
787   <p>See options below</p> 
788  </div>
789  
790
791
792 
793</div>
794<div class="text parbase section">
795
796
797
798
799
800  
801  
802    <div class="cl-numbered cl-numbered--2">
803   <h3 class="heading-4">Log in to your library</h3> 
804   <p>Select your state, library and enter your library ID and pin. Click “agree to terms” and log in.</p> 
805  </div>
806  
807
808
809 
810</div>
811<div class="text parbase section">
812
813
814
815
816
817  
818  
819    <div class="cl-numbered cl-numbered--3">
820   <h3 class="heading-4">Start exploring</h3> 
821   <p>Browse, borrow and read ebooks and audiobooks from your library</p> 
822  </div>
823  
824
825
826 
827</div>
828
829</div>
830
831    </div>
832
833</div></div>
834<div class="text parbase section">
835
836
837
838
839
840  
841  
842    <h2 class="heading-3" id="download">Download the app</h2>
843  
844
845
846 
847</div>
848<div class="text parbase section">
849
850
851
852
853
854  
855  
856    <div class="app-download-container">
857   <div class="app-download-icon" title="CloudLibrary app icon">
858     
859   </div> 
860   <div class="app-download-text">
861    <p class="app-download-badges"><a class="app-store-badge-ios" href="https://itunes.apple.com/us/app/3m-cloud-library/id466446054?mt=8" title="Download on the App Store">Download on the App Store</a> <a class="app-store-badge-android" href="https://play.google.com/store/apps/details?id=com.txtr.android.mmm" title="Get it on Google Play">Get it on Google Play</a> <a class="app-store-badge-amazon" href="https://www.amazon.com/Bibliotheca-cloudLibrary/dp/B0CJ1HLJXV" title="Available at Amazon appstore">Available at Amazon appstore</a><span class="app-download-badges__asterisk">*</span> <a class="app-store-badge-chrome" href="https://play.google.com/store/apps/details?id=com.txtr.android.mmm" title="Available in the Chrome Web Store">Available in the Chrome Web Store</a></p> 
862    <p class="heading-5">or read and listen online by <a></a><a href="#find-your-library">finding your library</a></p> 
863    <p><span class="text-small">*Amazon appstore app only available for Fire tablets</span></p> 
864   </div> 
865  </div>
866  
867
868
869 
870</div>
871<div class="text parbase section">
872
873
874
875
876
877  
878  
879    <hr class="cl-hr" />
880  
881
882
883 
884</div>
885<div class="parsyscolumncontrol section">
886
887
888<div class="parsys_column home-content" id="ycl-less-max">
889
890<div class="parsys_column home-content-c0" >    
891    <div class="col0 parsys"><div class="text parbase section">
892
893
894
895
896
897  
898  
899    <h2 style="text-align: center;" class="heading-4">Need help with CloudLibrary on your device? We got you.</h2> 
900  <p style="text-align: center;"><a href="https://www.yourcloudlibrary.com/en/support.html" title="Support">Support and FAQ</a>   <a href="https://www.yourcloudlibrary.com/en/adobe-reset.html" title="Adobe activation request">Adobe activation reset request</a>   <a href="https://www.yourcloudlibrary.com/en/ereader.html" title="Adobe Ereader instructions">Web Patron/ereader</a><br /> <br /> </p>
901  
902
903
904 
905</div>
906<div class="highlightbox section">
907
908
909
910<!-- Start: Highlight Box -->
911    <div class="hbox "  >   
912          <div class="highlightbox parsys"><div class="text parbase section">
913
914
915
916
917
918  
919  
920    <h2 class="heading-5" style="text-align: center;">Intrigued by the possibilities of CloudLibrary?</h2>
921  
922
923
924 
925</div>
926<div class="text parbase section">
927
928
929
930
931
932  
933  
934    <p style="text-align: center;"><span class="link-btn link-btn-primary link-btn-outline"><a href="https://www.oclc.org/en/cloudlibrary.html" title="Learn how to provide a seamless digital content experience for your library users at a budget-friendly price" alt="Provide a seamless digital content experience for your library users at a budget-friendly price.">Learn more</a></span></p>
935  
936
937
938 
939</div>
940
941</div>
942
943     </div>
944<!-- End: Highlight Box -->
945        </div>
946
947</div>
948
949    </div>
950
951</div></div>
952
953</div>
954
955              
956        </div>
957      </div>
958    </div>     
959    <div class="cont-page extra-info">
960        <div class="purposestmt iparsys parsys"><div class="section"><div class="new"></div>
961</div><div class="iparys_inherited"><div class="purposestmt iparsys parsys"></div>
962</div>
963</div>
964
965    </div>
966</div>
967</main>
968
969<div class="footer iparsys parsys"><div class="section"><div class="new"></div>
970</div><div class="iparys_inherited"><div class="footer iparsys parsys"><div class="footer section">
971
972
973
974
975
976    
977    
978    
979    
980    
981
982
983
984
985    <!--
986        Footer container
987    -->
988    <footer class="page-footer">
989        <!-- footer content -->
990        <div class="cont-page">
991            <div class="par parsys"><div class="parsyscolumncontrol section">
992
993
994<div class="parsys_column cq-colctrl-ltf" >
995
996<div class="parsys_column cq-colctrl-ltf-c0" >    
997    <div class="col0 parsys"><div class="text parbase section">
998
999
1000
1001
1002
1003  
1004  
1005    <h3>CloudLibrary</h3> 
1006  <ul class="no-bullets"> 
1007   <li><a href="https://www.yourcloudlibrary.com/en/home.html">Getting started</a></li> 
1008   <li><a href="https://www.yourcloudlibrary.com/en/support.html">Support<br /> </a></li> 
1009  </ul> 
1010  <p> </p>
1011  
1012
1013
1014 
1015</div>
1016
1017</div>
1018
1019    </div>
1020
1021<div class="parsys_column cq-colctrl-ltf-c1" >    
1022    <div class="col1 parsys"><div class="text parbase section">
1023
1024
1025
1026
1027
1028  
1029  
1030    <h3>Search</h3>
1031  
1032
1033
1034 
1035</div>
1036<div class="search section">
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046<script type="module" src="https://static.cloud.coveo.com/atomic/v3/atomic.esm.js"></script>
1046
1047
1048<script src="/apps/oclc/components/content/search/clientlib.min.js"></script>
1048
1049
1050
1051<link rel="stylesheet" href="https://static.cloud.coveo.com/atomic/v3/themes/coveo.css"/>
1052
1053
1054
1055    <div id="customSuggestionHtml" style="display:none;" data-url="http://www.worldcat.org"><span class="search-worldcatorg">Searching for items in a library? Try <a href="http://www.worldcat.org">WorldCat.org</a></span></div>
1056    
1056<script type="module">
1057        // Register custom query suggestion before Coveo search box initializes
1058        (async () => {
1059            // Get HTML from hidden div to safely handle special characters
1060            const customSuggestionHtmlDiv = document.getElementById('customSuggestionHtml');
1061            const customSuggestionHtml = customSuggestionHtmlDiv ? customSuggestionHtmlDiv.innerHTML : '';
1062            // Get URL from data attribute (extracted on server side before XSS filtering)
1063            const customSuggestionUrl = customSuggestionHtmlDiv ? customSuggestionHtmlDiv.getAttribute('data-url') || '' : '';
1064
1065            if (!customSuggestionHtml || customSuggestionHtml.trim() === '') {
1066                return;
1067            }
1068
1069            // Extract URL from HTML anchor tag (fallback if data attribute not available)
1070            const extractUrlFromHtml = (html) => {
1071                const parser = new DOMParser();
1072                const doc = parser.parseFromString(html, 'text/html');
1073                const anchor = doc.querySelector('a');
1074                return anchor ? anchor.getAttribute('href') : '';
1075            };
1076
1077            // Use URL from data attribute if available, otherwise extract from HTML
1078            const finalUrl = customSuggestionUrl || extractUrlFromHtml(customSuggestionHtml);
1079
1080            // Extract text content for query display
1081            const extractTextFromHtml = (html) => {
1082                const parser = new DOMParser();
1083                const doc = parser.parseFromString(html, 'text/html');
1084                return doc.body.textContent || doc.body.innerText || '';
1085            };
1086
1087            const displayText = extractTextFromHtml(customSuggestionHtml);
1088
1089            // Import the dispatchSearchBoxSuggestionsEvent function
1090            const { dispatchSearchBoxSuggestionsEvent } = await import('https://static.cloud.coveo.com/atomic/v3/index.esm.js');
1091
1092            // Define custom suggestion element class
1093            class CustomQuerySuggestion extends HTMLElement {
1094                connectedCallback() {
1095                    dispatchSearchBoxSuggestionsEvent((bindings) => {
1096                        return {
1097                            position: Number.MAX_SAFE_INTEGER, // Place at bottom of list
1098                            onInput: () => {
1099                                // No specific action needed on input for this static suggestion
1100                            },
1101                            renderItems: () => {
1102                                // Create content element with HTML content
1103                                const content = document.createElement('div');
1104                                content.setAttribute('part', 'atomic-custom-suggestion-content');
1105                                content.style.fontSize = 'var(--atomic-custom-suggestion-content--font-size, 0.75rem)';
1106                                content.style.padding = 'var(--atomic-custom-suggestion-content--padding, 0.5rem 0)';
1107
1108                                // Parse and insert the HTML content
1109                                const parser = new DOMParser();
1110                                const doc = parser.parseFromString(customSuggestionHtml, 'text/html');
1111                                const bodyContent = doc.body.firstChild;
1112
1113                                if (bodyContent) {
1114                                    // Clone the content to avoid issues
1115                                    const clonedContent = bodyContent.cloneNode(true);
1116
1117                                    // Check if anchor tag exists (might be stripped in published environment)
1118                                    let anchors = clonedContent.querySelectorAll('a');
1119
1120                                    // If no anchor found but we have a URL, reconstruct the link
1121                                    if (anchors.length === 0 && finalUrl) {
1122                                        // Find text that might be the link text (e.g., "WorldCat.org")
1123                                        const textContent = clonedContent.textContent || '';
1124                                        // Look for common link text patterns
1125                                        const linkTextMatch = textContent.match(/(WorldCat\.org|worldcat\.org|[a-zA-Z0-9-]+\.[a-zA-Z]{2,})/i);
1126                                        const linkText = linkTextMatch ? linkTextMatch[0] : 'Link';
1127
1128                                        // Create a new anchor element
1129                                        const newAnchor = document.createElement('a');
1130                                        newAnchor.setAttribute('part', 'atomic-custom-suggestion-link');
1131                                        newAnchor.href = finalUrl;
1132                                        newAnchor.textContent = linkText;
1133                                        newAnchor.style.color = 'var(--link, rgba(0, 110, 170, 0.95))';
1134                                        newAnchor.style.textDecoration = 'underline';
1135                                        newAnchor.style.cursor = 'pointer';
1136                                        newAnchor.style.display = 'inline';
1137
1138                                        // Try to replace the link text in the content
1139                                        if (textContent.includes(linkText)) {
1140                                            // Replace the text with the anchor
1141                                            const beforeText = textContent.substring(0, textContent.indexOf(linkText));
1142                                            const afterText = textContent.substring(textContent.indexOf(linkText) + linkText.length);
1143                                            clonedContent.textContent = '';
1144                                            if (beforeText) clonedContent.appendChild(document.createTextNode(beforeText));
1145                                            clonedContent.appendChild(newAnchor);
1146                                            if (afterText) clonedContent.appendChild(document.createTextNode(afterText));
1147                                        } else {
1148                                            // Append the anchor at the end
1149                                            clonedContent.appendChild(document.createTextNode(' '));
1150                                            clonedContent.appendChild(newAnchor);
1151                                        }
1152
1153                                        // Re-query for anchors
1154                                        anchors = clonedContent.querySelectorAll('a');
1155                                    }
1156
1157                                    // Ensure anchor tags have proper link styling
1158                                    anchors.forEach(anchor => {
1159                                        // Apply link styling to make it visually appear as a link
1160                                        anchor.style.color = anchor.style.color || 'var(--link, rgba(0, 110, 170, 0.95))';
1161                                        anchor.style.textDecoration = anchor.style.textDecoration || 'underline';
1162                                        anchor.style.cursor = 'pointer';
1163                                        anchor.style.display = 'inline';
1164                                        // Ensure href is set (in case it was stripped)
1165                                        if (!anchor.href && finalUrl) {
1166                                            anchor.href = finalUrl;
1167                                        }
1168                                    });
1169
1170                                    content.appendChild(clonedContent);
1171                                } else {
1172                                    // Fallback: use text content
1173                                    content.textContent = displayText;
1174                                }
1175
1176                                return [{
1177                                    key: 'custom-external-suggestion',
1178                                    query: displayText, // Needed for Coveo to display the suggestion
1179                                    content: content,
1180                                    onSelect: (bindings) => {
1181                                        // Open the URL in the current window
1182                                        if (finalUrl) {
1183                                            window.location.href = finalUrl;
1184                                        }
1185
1186                                        // Return false to prevent default suggestion behavior
1187                                        return false;
1188                                    }
1189                                }];
1190                            }
1191                        };
1192                    }, this);
1193                }
1194            }
1195
1196            // Register the custom element
1197            customElements.define('custom-query-suggestion', CustomQuerySuggestion);
1198        })();
1199    </script>
1199
1200
1201
1202<input type="hidden" name="resultsPagePath" value="/content/yourcloudlibrary/en/search-results.html" id="resultsPagePath">
1203<input type="hidden" name="accessToken" value="xxc839667d-dd5e-474e-b3ab-c84b434185fe" id="accessToken">
1204<input type="hidden" name="searchWord" value="Search support..." id="searchWord">
1205<input type="hidden" name="dataEnableQuerySuggestAddon" value="" id="dataEnableQuerySuggestAddon">
1206
1207<script>
1208    (async () => {
1209        await customElements.whenDefined("atomic-search-interface");
1210
1211        await customElements.whenDefined("custom-query-suggestion");
1212
1213        const searchInterface = document.querySelector('#header-search-interface');
1214        if (!searchInterface) {
1215            return;
1216        }
1217        searchInterface.language = 'en';
1218
1219        await searchInterface.initialize({
1220            accessToken: "xxc839667d-dd5e-474e-b3ab-c84b434185fe",
1221            organizationId: "oclcprodbkh6ljcv",
1222            searchHub: "ycl_en"
1223        });
1224
1225        // Set placeholder text programmatically (attribute may not work directly)
1226        const searchBox = searchInterface.querySelector('atomic-search-box');
1227        const searchWord = "Search support...";
1228        if (searchBox && searchWord && searchWord.trim() !== "") {
1229            // Wait for search box to be fully initialized
1230            await customElements.whenDefined('atomic-search-box');
1231            await new Promise(resolve => requestAnimationFrame(resolve));
1232
1233            // Set placeholder if the component has a placeholder property
1234            const setPlaceholder = () => {
1235                if (searchBox.shadowRoot) {
1236                    const searchInput = searchBox.shadowRoot.querySelector('textarea[part="textarea"]');
1237                    if (searchInput) {
1238                        searchInput.placeholder = searchWord;
1239                        return true;
1240                    }
1241                }
1242                return false;
1243            };
1244
1245            if (!setPlaceholder()) {
1246                // Try again after a short delay
1247                setTimeout(() => setPlaceholder(), 100);
1248            }
1249
1250        }
1251
1252        // Accessibility: hide decorative icons from screen readers when buttons have aria-label
1253        if (window.OCLCApplyAtomicSearchBoxAriaHidden) {
1254            await window.OCLCApplyAtomicSearchBoxAriaHidden(searchInterface);
1255        }
1256
1257        // Close dropdown after initialization
1258        const closeDropdownOnLoad = () => {
1259            const searchBox = searchInterface.querySelector('atomic-search-box');
1260            if (searchBox) {
1261                if (searchBox.shadowRoot) {
1262                    const textarea = searchBox.shadowRoot.querySelector('textarea[part="textarea"]');
1263                    const input = searchBox.shadowRoot.querySelector('input');
1264                    if (textarea) textarea.blur();
1265                    if (input) input.blur();
1266                }
1267                searchBox.blur();
1268            }
1269        };
1270
1271        // Close dropdown after initialization (with one retry for async updates)
1272        setTimeout(closeDropdownOnLoad, 100);
1273        setTimeout(closeDropdownOnLoad, 300);
1274    })();
1275
1276    // Reusable function to close the dropdown
1277    const closeDropdown = () => {
1278        const searchInterface = document.querySelector('#header-search-interface');
1279        if (!searchInterface) return;
1280
1281        const searchBox = searchInterface.querySelector('atomic-search-box');
1282        if (!searchBox) return;
1283
1284        // Check if search box is currently focused - if so, don't close
1285        let isFocused = false;
1286        if (searchBox.shadowRoot) {
1287            const textarea = searchBox.shadowRoot.querySelector('textarea[part="textarea"]');
1288            const input = searchBox.shadowRoot.querySelector('input');
1289            if ((textarea && document.activeElement === textarea) ||
1290                (input && document.activeElement === input)) {
1291                isFocused = true;
1292            }
1293        }
1294
1295        if (!isFocused) {
1296            // Blur input elements
1297            if (searchBox.shadowRoot) {
1298                const textarea = searchBox.shadowRoot.querySelector('textarea[part="textarea"]');
1299                const input = searchBox.shadowRoot.querySelector('input');
1300                if (textarea) textarea.blur();
1301                if (input) input.blur();
1302
1303                // Try to find and close suggestion panels
1304                const selectors = [
1305                    '[part="suggestions"]',
1306                    '[part="suggestions-wrapper"]',
1307                    '.suggestions',
1308                    'atomic-search-box-query-suggestions',
1309                    'atomic-search-box-recent-queries'
1310                ];
1311
1312                selectors.forEach(selector => {
1313                    const panel = searchBox.shadowRoot.querySelector(selector) ||
1314                        document.querySelector(selector);
1315                    if (panel) {
1316                        panel.style.display = 'none';
1317                        panel.style.visibility = 'hidden';
1318                        panel.style.opacity = '0';
1319                    }
1320                });
1321            }
1322
1323            searchBox.blur();
1324
1325            // Try Coveo's internal methods
1326            if (searchBox.closeSuggestions) searchBox.closeSuggestions();
1327            if (searchBox.hideSuggestions) searchBox.hideSuggestions();
1328        }
1329    };
1330
1331    // Handle page restoration from back/forward cache
1332    window.addEventListener('pageshow', () => {
1333        closeDropdown();
1334        // Retry once to catch async updates
1335        setTimeout(closeDropdown, 150);
1336    });
1337
1338    // Handle page visibility changes
1339    document.addEventListener('visibilitychange', () => {
1340        if (!document.hidden) {
1341            closeDropdown();
1342        }
1343    });
1344</script>
1344
1345<atomic-search-interface id="header-search-interface" language="en" analytics="true" pipeline="ycl_en">
1346    <atomic-search-layout>
1347        <atomic-layout-section section="search">
1348            <atomic-search-box  redirection-url="/content/yourcloudlibrary/en/search-results.html" placeholder="Search support...">
1349                <div>
1350                    <atomic-search-box-recent-queries></atomic-search-box-recent-queries>
1351                    
1352                    <custom-query-suggestion></custom-query-suggestion>
1353                </div>
1354            </atomic-search-box>
1355        </atomic-layout-section>
1356    </atomic-search-layout>
1357</atomic-search-interface></div>
1358
1359</div>
1360
1361    </div>
1362
1363<div class="parsys_column cq-colctrl-ltf-c2" >    
1364    <div class="col2 parsys"><div class="text parbase section">
1365
1366
1367
1368
1369
1370  
1371  
1372    <h3>Follow us</h3> 
1373  <div class="social-accounts" style="float: left;">
1374   <a href="https://www.threads.net/@cloudlibrary_app" title="Follow us on Threads"><img class="img-nobrdr" src="/content/dam/common/images/social-icons/footer/footer-threads.png" alt="Threads" /></a>
1375   <a href="https://www.instagram.com/cloudlibrary_app/" title="Follow us on Instagram"><img class="img-nobrdr" src="/content/dam/common/images/social-icons/footer/footer-instagram.png" alt="Instagram" /></a>
1376  </div>
1377  
1378
1379
1380 
1381</div>
1382
1383</div>
1384
1385    </div>
1386
1387<div class="parsys_column cq-colctrl-ltf-c3" >    
1388    <div class="col3 parsys">
1389</div>
1390
1391    </div>
1392
1393</div></div>
1394<div class="parsyscolumncontrol section">
1395
1396
1397<div class="parsys_column cq-colctrl-lt6" >
1398
1399<div class="parsys_column cq-colctrl-lt6-c0" >    
1400    <div class="col0 parsys"><div class="globallogo parbase section">
1401
1402
1403
1404    <!-- logo -->
1405    
1406    <a href="https://www.oclc.org/en/home.html">
1407    
1408        
1409            <img src="/content/dam/oclc/design-images/navigation-logo.svg" border="0"   alt="OCLC"  class="footer-logo">
1410        
1411        
1412    
1413    </a>
1414    
1415</div>
1416
1417</div>
1418
1419    </div>
1420
1421<div class="parsys_column cq-colctrl-lt6-c1" >    
1422    <div class="col1 parsys"><div class="text parbase section">
1423
1424
1425
1426
1427
1428  
1429  
1430    <div class="copyright">
1431   <p><span class="cq-rte-sprinkles" name="Sprinkles:copyright-current-year"><a href="https://policies.oclc.org/en/copyright.html" title="Read the OCLC copyright policy">&copy; 2026 OCLC</a></span>  <a href="https://policies.oclc.org/en/copyright/trademarks.html" title="View the OCLC and Affiliate Trademarks and Service Marks list">Domestic and international trademarks and/or service marks of OCLC, Inc. and its affiliates</a></p> 
1432   <ul> 
1433    <li><a href="https://policies.oclc.org/en/privacy/privacy-statement.html">Privacy statement</a></li> 
1434    <li><a href="https://policies.oclc.org/en/privacy/cookie-statement.html">Cookie notice</a></li> 
1435    <li><a id="ot-sdk-btn" class="ot-sdk-show-settings">Cookie settings</a></li> 
1436    <li><a href="https://policies.oclc.org/en/accessibility.html">Accessibility statement</a></li> 
1437    <li><a href="https://www.oclc.org/en/trust/compliance.html#trust-certifications">ISO 27001 Certificate</a></li> 
1438   </ul> 
1439  </div>
1440  
1441
1442
1443 
1444</div>
1445
1446</div>
1447
1448    </div>
1449
1450</div></div>
1451
1452</div>
1453
1454            <div style="clear: both"></div>
1455        </div>
1456
1457        <div class="connect-bar mod">
1458            <div class="cont-page">
1459                
1460                    <!-- ComputerWorld logo should only appear on US/EN site -->
1461                    
1462                        
1463                     
1464                    
1465            </div>
1466        </div>
1467
1468        <!-- Copyright -->
1469        <div class="cont-page copyright">
1470            <div class="text parbase">
1471
1472
1473
1474
1475
1476  
1477    
1478  
1479  
1480
1481
1482 
1483</div>
1484
1485        </div>
1486    </footer>
1487    
1488<script>
1489	(function ($) {
1490	    $(function() {
1491	        yepnope({
1492	            test: ($(".event-listing-show").length),
1493	            yep: ['/apps/settings/wcm/designs/oclc/js/event-functions-v0.2.js']
1494	        });
1495	    });
1496	})(jQuery);
1497</script>
1497
1498    
1499
1500</div>
1501</div>
1502</div>
1503</div>
1504
1505
1506
1507
1508</body>
1509
1510
1511</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.