CINXE.COM
Yale University - OverDrive
<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=1"> <title>Yale University - OverDrive</title> <link rel='shortcut icon' type='image/x-icon' href='https://lightning.od-cdn.com/static/img/favicon.bb86d660d3929b5c0c65389d6a8e8aba.ico' /> <meta name="twitter:title" property="og:title" content="Yale University"/> <meta name="twitter:description" property="og:description" content="Browse, borrow, and enjoy titles from the Yale University digital collection."/> <meta name="twitter:image" property="og:image" content="https://thunder.cdn.overdrive.com/logos/crushed/2825.png?1"/> <meta property="og:url" content="/"/> <meta name="twitter:card" content="summary" /> <meta property="og:site_name" content="Yale University" /> <meta name="twitter:site" content="@OverDriveLibs" /> <meta property="og:locale" content="en" /> <!-- iOS smart app banner --> <meta name="apple-itunes-app" content="app-id=1076402606" /> <!-- Google Play app banner --> <link rel="manifest" href="https://lightning.od-cdn.com/static/manifest.ed71e3d923d287cd1dce64ae0d3cc8b8.json"> <meta name="google-play-app" content="app-id=com.overdrive.mobile.android.libby" /> <!-- Windows Store app banner --> <meta name="msApplication-ID" content="2FA138F6.LibbybyOverDrive" /> <meta name="msApplication-PackageFamilyName" content="2FA138F6.LibbybyOverDrive_daecb9042jmvt" /> <link rel="stylesheet" type="text/css" href="https://lightning.od-cdn.com/static/vendor.bundle.min.b062de5a03333401085c20696b3eec95.css" onerror="cdnError(this)" /> <link rel="stylesheet" type="text/css" href="https://lightning.od-cdn.com/static/app.bundle.min.85fcc6b5602d6646e4639336d6448b8b.css" onerror="cdnError(this)" /> <link rel='shortcut icon' type='image/x-icon' href='https://lightning.od-cdn.com/static/img/favicon.bb86d660d3929b5c0c65389d6a8e8aba.ico' /> <link id="highContrastStylesheet" rel="stylesheet" type="text/css" href="https://lightning.od-cdn.com/static/contrast.min.f5bd34dacaf1049e83d975987e8e35a0.css"> <link rel="stylesheet" type="text/css" href="/assets/v2/css/d5724298e0a70fbc7c49e6da5aa86591/colors.css?primary=%230f4d92&primaryR=15&primaryG=77&primaryB=146&primaryFontColor=%23fff&secondary=%23848484&secondaryR=132&secondaryG=132&secondaryB=132&secondaryFontColor=%23fff&bannerIsSecondaryColor=false&defaultColor=%23222"> <script> window.OverDrive = window.OverDrive || {}; window.OverDrive.colors = {}; window.OverDrive.colors.primary = "#0f4d92"; window.OverDrive.colors.secondary = "#848484"; window.OverDrive.tenant = 835; window.OverDrive.libraryName = "Yale University"; window.OverDrive.libraryKey = "yale"; window.OverDrive.allFeatures = ""; window.OverDrive.libraryConfigurations = {"autocomplete":{"enabled":true},"content-holds":{"enabled":true},"getACard":{"enabled":false},"backToMainCollectionLink":{"enabled":true},"promoteLibby":{"enabled":true},"switchToLibby":{"enabled":true},"showLibbyIntercept":{"enabled":true},"disableOdAppAccess":{"enabled":true},"bannerIsSecondaryColor":{"enabled":false},"lexileScores":{"enabled":true},"atosLevels":{"enabled":true},"gradeLevels":{"enabled":true},"interestLevels":{"enabled":true},"readingHistory":{"enabled":true},"reciprocalLending":{"enabled":true},"OzoneAuthentication":{"enabled":false},"Notifications":{"enabled":true},"kindleFooter":{"enabled":true},"kindleNav":{"enabled":true},"kindleLoanFormatLimit":{"enabled":true},"kindleSearchOffer":{"enabled":true},"kindleLoanOffer":{"enabled":true},"sampleOnlyMode":{},"luckyDayMenuLink":{"enabled":false},"disableWishlist":{"enabled":false},"simplifiedNavigationBar":{"enabled":false},"geo-idc":{"enabled":false},"show-star-ratings":{"enabled":true},"libby-footer-promo":{"enabled":false}}; window.OverDrive.goback = ""; window.OverDrive.mediaItems = ""; window.OverDrive.thunderHost = "https://thunder.api.overdrive.com/v2"; window.OverDrive.autocompleteHost = "https://autocomplete.api.overdrive.com/v1"; window.OverDrive.autocompleteApiKey = "66d3b2fb030e46bba783b1a658705fe3"; window.patronSettings = {}; window.OverDrive.isAuthenticated = false; window.OverDrive.allowAnonymousSampling = true; window.OverDrive.hasLinkedCards = false; window.OverDrive.authType = "no-auth"; window.OverDrive.currentRoom = false; window.OverDrive.supportedFormats = [{"mediaType":"ebook","id":"ebook-pdf-adobe","name":"PDF eBook"},{"mediaType":"ebook","id":"ebook-media-do","name":"MediaDo eBook"},{"mediaType":"ebook","id":"ebook-epub-adobe","name":"EPUB eBook"},{"mediaType":"ebook","id":"ebook-kobo","name":"Kobo eBook"},{"mediaType":"ebook","id":"ebook-kindle","name":"Kindle Book"},{"mediaType":"audiobook","id":"audiobook-mp3","name":"MP3 audiobook"},{"mediaType":"ebook","id":"ebook-overdrive","name":"OverDrive Read"},{"mediaType":"audiobook","id":"audiobook-overdrive","name":"OverDrive Listen audiobook"},{"mediaType":"ntc","id":"ntc-pay-per-access","name":"External service"},{"mediaType":"ntc","id":"ntc-subscription","name":"External service"}]; window.OverDrive.cdn = 'https://lightning.od-cdn.com'; window.OverDrive.features = {"kindlefire-sunset-date-set":{"enabled":false,"testable":false},"mp3-in-app-only":{"enabled":true,"testable":true},"show-od-desktop-message":{"enabled":true,"testable":true},"kindlefire-sunset":{"enabled":false,"testable":false},"download-libby-modal":{"enabled":false,"testable":false},"hide-unowned-samples":{"enabled":true,"testable":true},"downloadlibbyfooterpromo":{"enabled":true,"testable":true},"libby-footer-promo":{"enabled":true,"testable":true},"ODAppSunsetLibbyFooterPromo ":{"enabled":true,"testable":true},"hide-lightning-campaigns":{"enabled":false,"testable":false},"simplifiedNavigationBar":{"enabled":true,"testable":true},"kindleLoanOffer":{"enabled":true,"testable":true},"kindleSearchOffer":{"enabled":true,"testable":true},"kindleLoanFormatLimit":{"enabled":true,"testable":true},"kindleNav":{"enabled":true,"testable":true},"kindleFooter":{"enabled":true,"testable":true},"showAndroid7xWarningModal":{"enabled":false,"testable":false},"disableWishlist":{"enabled":true,"testable":true},"geo-idc":{"enabled":true,"testable":true},"show-star-ratings":{"enabled":true,"testable":true},"LHTNG-5681":{"enabled":true,"testable":true},"switchToLibby":{"enabled":false,"testable":false},"kanopy-promo":{"enabled":true,"testable":true},"query-collection-metadata":{"enabled":false,"testable":false},"ntc-libby-promo-tile":{"enabled":true,"testable":true},"ntc-home":{"enabled":true,"testable":true},"ntc-homepage-provider-grid":{"enabled":true,"testable":true},"ntc-details-page-provider-grid":{"enabled":true,"testable":true},"ntc-faq":{"enabled":true,"testable":true},"show-provider-links":{"enabled":false,"testable":false},"ozoneCnRedirect":{"enabled":true,"testable":true},"show-support-form":{"enabled":true,"testable":true},"show-china-security-code-footer":{"enabled":true,"testable":true},"updated-ga":{"enabled":true,"testable":true},"odsunset-korea-2023":{"enabled":true,"testable":true},"disableOdAppAccess":{"enabled":true,"testable":true},"sunset-audiobook-rewrite":{"enabled":true,"testable":true},"Notifications":{"enabled":true,"testable":true},"sunset-date-set":{"enabled":true,"testable":true},"enhancedSeries":{"enabled":true,"testable":true},"support-series-rank-order":{"enabled":true,"testable":true},"sample-signin-redirect":{"enabled":true,"testable":true},"windows-app-download-message":{"enabled":true,"testable":true},"only-show-owned-content":{"enabled":true,"testable":true},"footer-redesign":{"enabled":true,"testable":true},"sunset-is-coming":{"enabled":true,"testable":true},"view-in-libby-button":{"enabled":true,"testable":true},"react-enabled":{"enabled":true,"testable":true},"provisional-format-filtering":{"enabled":true,"testable":true},"improved-preference-validation":{"enabled":true,"testable":true},"details-page-libby-button":{"enabled":true,"testable":true},"display-title-rank":{"enabled":false,"testable":true},"sampleOnlyMode":{"enabled":true,"testable":true},"keep-od-app-fulfillment":{"enabled":true,"testable":true},"hide-libby-promo-fulfillment":{"enabled":true,"testable":true},"hide-kanopy-covers":{"enabled":true,"testable":true},"fix-option-sorting":{"enabled":true,"testable":true},"try-libby-modal":{"enabled":true,"testable":true},"history-export":{"enabled":true,"testable":true},"hide-cta-campaigns":{"enabled":true,"testable":true},"ajax-error-reporting":{"enabled":false,"testable":false},"idc-always-captcha":{"enabled":true,"testable":true},"allow-admin-fulfillment-auth":{"enabled":false,"testable":false},"odapp-sunset":{"enabled":true,"testable":true},"api-fulfillment-new-window-fix":{"enabled":true,"testable":true},"tolino-other-button":{"enabled":false,"testable":true},"tolino":{"enabled":true,"testable":true},"reenableMp3DownloadMacOSPreCatalina":{"enabled":true,"testable":true},"cookieless-fulfillment-auth":{"enabled":true,"testable":true},"odread-fulfillment-first":{"enabled":true,"testable":true},"mac-mp3-warning-fulfillment":{"enabled":true,"testable":true},"mp3-download-for-me-cn":{"enabled":true,"testable":true},"public-api-fulfillment":{"enabled":true,"testable":true},"clear-0recommend-cache":{"enabled":true,"testable":true},"fix-seeall-mediatypes-url":{"enabled":true,"testable":true},"fix-titlemodal-magazine-display":{"enabled":true,"testable":true},"filter-out-ntc":{"enabled":true,"testable":true},"dont-mark-su-as-expired":{"enabled":true,"testable":true},"media-types-collection-param":{"enabled":true,"testable":true},"hide-disabled-formats":{"enabled":true,"testable":true},"no-author-fix":{"enabled":true,"testable":true},"magazine-rollup":{"enabled":true,"testable":true},"open-mediado-samples-in-tab":{"enabled":true,"testable":true},"stop-treating-ipad-like-mac":{"enabled":true,"testable":true},"handle-expired-account-token":{"enabled":true,"testable":true},"mediado-safari-fix":{"enabled":true,"testable":true},"tls-soft-removal":{"enabled":true,"testable":true},"tls-warning-modal":{"enabled":false,"testable":false},"show-tls-version-warning":{"enabled":false,"testable":false},"hide-skip-line-facets":{"enabled":true,"testable":true},"use-lightning-lang-for-holds":{"enabled":true,"testable":true},"dontUseLocationHeaderForCheckoutUrl":{"enabled":true,"testable":true},"removeWindowsFromLibbyTout":{"enabled":true,"testable":true},"bisac-collection-filtering":{"enabled":true,"testable":true},"skip-the-line-message":{"enabled":false,"testable":true},"gac-cookie-on-dismiss":{"enabled":true,"testable":true},"close-dropdowns-on-esc":{"enabled":true,"testable":true},"postLogoutUriFix":{"enabled":true,"testable":true},"safari-autocomplete-adjustment":{"enabled":true,"testable":true},"dontCrashOnError":{"enabled":true,"testable":true},"suspend-modal-data-adjustment":{"enabled":true,"testable":true},"allowIdcWhenExternalAuth":{"enabled":true,"testable":true},"sort-curated-list-carousels":{"enabled":true,"testable":true},"logTlsHeaders":{"enabled":true,"testable":true},"random-sort-curated-lists":{"enabled":true,"testable":true},"wrongLanguageForHolds":{"enabled":true,"testable":true},"streaming-update-message":{"enabled":true,"testable":true},"stopStealingCollectionTitle":{"enabled":true,"testable":true},"macmillanMessaging":{"enabled":false,"testable":false},"removeExtraHoldCancel":{"enabled":true,"testable":true},"cleanupContextMenuToggle":{"enabled":true,"testable":true},"holdRedelivery":{"enabled":true,"testable":true},"dontHangUpOnError":{"enabled":true,"testable":true},"fixHtmlTagsInCopy":{"enabled":true,"testable":true},"idcDuplicateHandlerFix":{"enabled":true,"testable":true},"collectionsSeeAllLinkError":{"enabled":true,"testable":true},"declineNewIdcLogin":{"enabled":true,"testable":true},"logSpamCleanup":{"enabled":true,"testable":true},"movedSiteMessage":{"enabled":true,"testable":true},"mergedSite":{"enabled":true,"testable":true},"idc-only-ils":{"enabled":true,"testable":true},"luckyDayMenuLink":{"enabled":false,"testable":true},"pollForAutofill":{"enabled":true,"testable":true},"macOSAudiobookMessaging":{"enabled":true,"testable":true},"noAudiobooksForMacOS":{"enabled":true,"testable":true},"languageCookieBandaid":{"enabled":true,"testable":true},"authorityCookieBandaid":{"enabled":true,"testable":true},"ghostLogin":{"enabled":true,"testable":true},"OzoneAuthentication":{"enabled":true,"testable":true},"nonHoldableConflictModal":{"enabled":true,"testable":true},"allowRemoveHoldsOnCheckout":{"enabled":true,"testable":true},"LuckyDay":{"enabled":true,"testable":true},"expectedWaitTimeOnHoldsPage":{"enabled":true,"testable":true},"betterPatronState":{"enabled":false,"testable":true},"LHTNG-3387":{"enabled":true,"testable":true},"LHTNG-2863":{"enabled":true,"testable":true},"reciprocalLending":{"enabled":true,"testable":true},"internationalDemoMode":{"enabled":true,"testable":true},"showLibbyIntercept":{"enabled":false,"testable":true},"enhancedLibbyPromo":{"enabled":true,"testable":true},"getACard":{"enabled":true,"testable":true},"languagePref":{"enabled":false,"testable":true},"bannerIsSecondaryColor":{"enabled":true,"testable":true},"interestLevels":{"enabled":true,"testable":true},"gradeLevels":{"enabled":true,"testable":true},"lexileScores":{"enabled":true,"testable":true},"atosLevels":{"enabled":true,"testable":true},"readingHistory":{"enabled":true,"testable":true},"promoteLibby":{"enabled":true,"testable":true},"libbyTout":{"enabled":true,"testable":true},"backToMainCollectionLink":{"enabled":true,"testable":true},"content-holds":{"enabled":true,"testable":true},"autocomplete":{"enabled":true,"testable":true},"reverse-preview":{},"_softExpiration":"2024-11-23T16:37:53.114Z"}; window.OverDrive.languageSelection = "undefined"; window.OverDrive.supportArticles = {"ODAppSupport":"1481728-get-help-with-the-overdrive-app","LibbySupport":"2673906","recentUpdates":"2778185","havingTrouble":"1481730-having-trouble","newOverDrive":"2145737","howToReturn":"1481263","howToReturnWindows":"1481265","howToReturnAndroid":"1482571","howToReturnIOS":"1481551","howToReturnChromebook":"1775656","sessionExpiredError":"2847569","readAlongEbook":"1749249","noWindowsPhoneSupport":"2804623","ODAppNoPDFEbook":"1481649","aboutHistory":"2833477","deviceRestrictions":"2373846"}; window.OverDrive.showHistoryFeature = true; window.OverDrive.optimizeForChina = false; window.OverDrive.isGdprCountry = false; window.OverDrive.siteLogoUrl = 'https://thunder.cdn.overdrive.com/logos/crushed/2825.png?1'; window.OverDrive.showCookieSettingsModal = false; window.OverDrive.insufficientTls = false; window.OverDrive.showTlsWarningModal = false window.OverDrive.showTryLibbyModal = false; window.OverDrive.showGetACardModal = false; window.OverDrive.showAccessEndingModal = false; window.OverDrive.androidUrl = "https://play.google.com/store/apps/details?id=com.overdrive.mobile.android.libby&referrer=utm_source%3Dlightning%26utm_medium%3Dbanner%26utm_campaign%3Dlibby"; window.OverDrive.iOSUrl = "https://itunes.apple.com/us/app/libby-by-overdrive-labs/id1076402606?pt=211483&ct=lightning_banner&mt=8&utm_medium=lightning_banner&utm_source=lightning&utm_campaign=libby"; window.OverDrive.winUrl = "https://www.microsoft.com/en-us/p/libby-by-overdrive/9p6g3tcr4hzr?utm_medium=lightning_banner&utm_source=lightning&utm_campaign=libby&utm_content=microsoft_app_store_libby&activetab=pivot%3aoverviewtab"; window.OverDrive.hasPartnerLibraries = false; window.OverDrive.isVisitor = false; window.OverDrive.showOnlyAvailable = false; window.OverDrive.LuckyDayLendingPeriodsByFormat = {}; window.OverDrive.collectionId = 0 || 0; window.OverDrive.collectionType = ""; window.OverDrive.dyslexic = false; window.OverDrive.highContrast = false; window.OverDrive.cardSignUpLink = "askyalelibrary@yale.edu"; window.OverDrive.deviceIsMac = false; window.OverDrive.isWindows = true; window.OverDrive.isPreCatalinaMac = true; window.OverDrive.librarySupportUrl = ""; window.OverDrive.librarySupportEmail = "askyalelibrary@yale.edu"; window.OverDrive.isTolinoDevice = false; window.OverDrive.enabledPlatforms = ["lightning","libby"]; window.OverDrive.isKindle = false; window.OverDrive.isUnsupportedKindle = false; window.OverDrive.isAndroid710OrLower = false; window.OverDrive.hasKanopySubscription = false; window.OverDrive.kanopySignUpUrl = ''; window.OverDrive.reactEmbedded = true; window.OverDrive.isChina = false; window.OverDrive.pageMetadata = {"pageName":"home"}; window.OverDrive.classifierIds = ""; window.OverDrive.tlsVersion = 'TLSv1.2'; window.OverDrive.tlsCipher = 'ECDHE-RSA-AES256-GCM-SHA384'; window.OverDrive.features.isEnabled = function(feature){ var feature = window.OverDrive.features[feature]; if (!feature) { return false; } if (feature.enabled) { return true; } if (window.OverDrive.tenant === 100501 || window.OverDrive.tenant === 100300 || (window.OverDrive.tenant >= 800000 && window.OverDrive.tenant < 900000) || window.OverDrive.allFeatures === '1') { return feature.testable; } }; window.OverDrive.isLocal = false; window.OverDrive.inApp = false; window.OverDrive.deviceType = 'desktop'; window.OverDrive.appVersion = ""; window.OverDrive.deepSearch = true; window.OverDrive.whitelistedMediaTypes = 'ebook,audiobook,magazine,video'; window.OverDrive._baseUrl = ''; window.OverDrive._locale = 'en'; </script> <style> img.broken { background-image: url(https://lightning.od-cdn.com/static/img/loading.17eca6dfe312e31db61216637ca7b440.gif) !important; } a.cdnFailLink { color: #00f; } a.cdnFailLink:hover, a.cdnFailLink:focus { color: #00f; text-decoration: underline; } .cdnFailContainer { display: none; text-align: center; margin: 15px 20px 0 20px; } </style> <script> var gaEventTriggered = false; function cdnError(elem) { // Need to wait for window.onload to get elements window.onload = function() { var src = elem.src || elem.href; // Show CDN failure copy document.getElementById('cdnfail').style.display = 'block'; // Hide site containers to not show unstyled/broken elements var containers = document.getElementsByClassName('js-hideOnCdnError'); for(var x = 0; x < containers.length; x++) { containers[x].style.display = 'none'; } // Only send 1 event to GA if (!gaEventTriggered && window.ga) { window.ga('send', 'event', { eventCategory: 'CDN', eventAction: 'Load Failure', eventLabel: src }); gaEventTriggered = true; } var requestData = { level: 'warn', message: 'A CDN resource has failed to load', fields: { src: src } } var request = new XMLHttpRequest(); request.open('POST', '/log', true); request.setRequestHeader('Content-Type', 'application/json'); request.send(JSON.stringify(requestData)); }; } </script> <script> if (typeof Intl === 'undefined') { Intl = {}; } if (typeof Intl.NumberFormat === 'undefined') { Intl.NumberFormat = function (){}; Intl.NumberFormat.prototype.format = function (n) { return n; }; } </script> <style> .body--ntcMode { height: auto; min-height: 100%; } </style> <script src="https://lightning.od-cdn.com/static/vendor.bundle.min.f23b75dd56a005d9261e6d9ace1927a2.js" onerror="cdnError(this)"></script> <script src="https://lightning.od-cdn.com/static/holds.app.min.235cd2c8c01bd08feb1a4a7bdefd0afb.js" onerror="cdnError(this)"></script> <script id="inlineModernizrScript"> /*! modernizr 3.12.0 (Custom Build) | MIT * * https://modernizr.com/download/?-cssgrid_cssgridlegacy-setclasses !*/ !function(e,n,t,r){function o(e,n){return typeof e===n}function s(e,n){return!!~(""+e).indexOf(n)}function i(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):_?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function l(){var e=t.body;return e||(e=i(_?"svg":"body"),e.fake=!0),e}function a(e,n,r,o){var s,a,f,u,d="modernizr",c=i("div"),p=l();if(parseInt(r,10))for(;r--;)f=i("div"),f.id=o?o[r]:d+(r+1),c.appendChild(f);return s=i("style"),s.type="text/css",s.id="s"+d,(p.fake?p:c).appendChild(s),p.appendChild(c),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(t.createTextNode(e)),c.id=d,p.fake&&(p.style.background="",p.style.overflow="hidden",u=S.style.overflow,S.style.overflow="hidden",S.appendChild(p)),a=n(c,e),p.fake&&p.parentNode?(p.parentNode.removeChild(p),S.style.overflow=u,S.offsetHeight):c.parentNode.removeChild(c),!!a}function f(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function u(e,t,r){var o;if("getComputedStyle"in n){o=getComputedStyle.call(n,e,t);var s=n.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(s){var i=s.error?"error":"log";s[i].call(s,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else o=!t&&e.currentStyle&&e.currentStyle[r];return o}function d(e,t){var o=e.length;if("CSS"in n&&"supports"in n.CSS){for(;o--;)if(n.CSS.supports(f(e[o]),t))return!0;return!1}if("CSSSupportsRule"in n){for(var s=[];o--;)s.push("("+f(e[o])+":"+t+")");return s=s.join(" or "),a("@supports ("+s+") { #modernizr { position: absolute; } }",function(e){return"absolute"===u(e,null,"position")})}return r}function c(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function p(e,n,t,l){function a(){u&&(delete z.style,delete z.modElem)}if(l=!o(l,"undefined")&&l,!o(t,"undefined")){var f=d(e,t);if(!o(f,"undefined"))return f}for(var u,p,m,y,g,h=["modernizr","tspan","samp"];!z.style&&h.length;)u=!0,z.modElem=i(h.shift()),z.style=z.modElem.style;for(m=e.length,p=0;p<m;p++)if(y=e[p],g=z.style[y],s(y,"-")&&(y=c(y)),z.style[y]!==r){if(l||o(t,"undefined"))return a(),"pfx"!==n||y;try{z.style[y]=t}catch(e){}if(z.style[y]!==g)return a(),"pfx"!==n||y}return a(),!1}function m(e,n){return function(){return e.apply(n,arguments)}}function y(e,n,t){var r;for(var s in e)if(e[s]in n)return!1===t?e[s]:(r=n[e[s]],o(r,"function")?m(r,t||n):r);return!1}function g(e,n,t,r,s){var i=e.charAt(0).toUpperCase()+e.slice(1),l=(e+" "+b.join(i+" ")+i).split(" ");return o(n,"string")||o(n,"undefined")?p(l,n,r,s):(l=(e+" "+E.join(i+" ")+i).split(" "),y(l,n,t))}function h(e,n,t){return g(e,r,r,n,t)}var v=[],C={_version:"3.12.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){v.push({name:e,fn:n,options:t})},addAsyncTest:function(e){v.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=C,Modernizr=new Modernizr;var w=[],S=t.documentElement,_="svg"===S.nodeName.toLowerCase(),x="Moz O ms Webkit",b=C._config.usePrefixes?x.split(" "):[];C._cssomPrefixes=b;var P={elem:i("modernizr")};Modernizr._q.push(function(){delete P.elem});var z={style:P.elem.style};Modernizr._q.unshift(function(){delete z.style});var E=C._config.usePrefixes?x.toLowerCase().split(" "):[];C._domPrefixes=E,C.testAllProps=g,C.testAllProps=h,Modernizr.addTest("cssgridlegacy",h("grid-columns","10px",!0)),Modernizr.addTest("cssgrid",h("grid-template-rows","none",!0)),function(){var e,n,t,r,s,i,l;for(var a in v)if(v.hasOwnProperty(a)){if(e=[],n=v[a],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(r=o(n.fn,"function")?n.fn():n.fn,s=0;s<e.length;s++)i=e[s],l=i.split("."),1===l.length?Modernizr[l[0]]=r:(Modernizr[l[0]]&&(!Modernizr[l[0]]||Modernizr[l[0]]instanceof Boolean)||(Modernizr[l[0]]=new Boolean(Modernizr[l[0]])),Modernizr[l[0]][l[1]]=r),w.push((r?"":"no-")+l.join("-"))}}(),function(e){var n=S.className,t=Modernizr._config.classPrefix||"";if(_&&(n=n.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(e.length>0&&(n+=" "+t+e.join(" "+t)),_?S.className.baseVal=n:S.className=n)}(w),delete C.addTest,delete C.addAsyncTest;for(var N=0;N<Modernizr._q.length;N++)Modernizr._q[N]();e.Modernizr=Modernizr}(window,window,document); </script> <script> 'use strict'; var __globalBootstrappingReady = false; var __reactComponentsReady = false; var __reactComponentsReadyEvent = undefined; document.addEventListener('react-components-ready', function (event) { __reactComponentsReady = true; __reactComponentsReadyEvent = event; }); document.addEventListener('global-bootstrapping-ready', function () { __globalBootstrappingReady = true; }); function onReactComponentsReady(callback) { function isReadyToRender() { return __reactComponentsReady && __globalBootstrappingReady && document.readyState !== 'loading'; } var callbackCalled = false; function handleReadyEvent() { if (!isReadyToRender() || callbackCalled) { return; } callbackCalled = true; callback(__reactComponentsReadyEvent); } handleReadyEvent(); document.addEventListener('readystatechange', function () { handleReadyEvent(); }); document.addEventListener('react-components-ready', function () { handleReadyEvent(); }); document.addEventListener('global-bootstrapping-ready', function() { handleReadyEvent(); }); } </script> <script src="https://lightning.od-cdn.com/static/react/static/js/main.2ba9f623.js"></script> </head> <body class="body "> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NRMQ5Q" height="0" width="0" class="GTM"> </iframe> </noscript> <script> var onLoadProps = { 'libraryId' : '835', 'libraryName' : 'Yale University', 'environment' : '', 'viewId' : '104625049', 'propertyId' : 'UA-34791607-33', 'roomName' : 'Main', 'sampleOnlyMode' : 'false' }; // LHTNG-2810 var currentRoom = false; if(currentRoom && currentRoom.name) { onLoadProps['roomName'] = currentRoom.englishName; } // LHTNG-2857 const collectionId = 0 || 0; if(collectionId > 0) { onLoadProps['listID'] = collectionId; onLoadProps['listType'] = ''; } const tlsVersion = 'TLSv1.2'; if(tlsVersion){ onLoadProps.tlsVersion = tlsVersion; } const tlsCipher = 'ECDHE-RSA-AES256-GCM-SHA384'; if(tlsCipher){ onLoadProps.tlsCipher = tlsCipher; } dataLayer = [onLoadProps]; (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= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NRMQ5Q'); </script> <script> function showAltLogoMobile() { $('.js-mobileLibraryLogo').hide(); $('.js-altLibraryLink').show().css('display', 'inline-block'); $('.icon-account').addClass('alt-logo'); } function showAltLogoDesktop() { $('h1#logo-desktop').hide(); $('.library-home-alt-link-desktop').removeClass('hideMeImportant'); } </script> <nav> <div class="MobileNav js-mobileNav"> <div class="row js-toggleRow"> <div class="columns small-12 MobileNav-logoContainer"><a href="/" aria-label="Yale University: OverDrive digital collection"> <img class="MobileNav-libraryLogo js-mobileLibraryLogo" alt="Logo for Yale University" src="https://thunder.cdn.overdrive.com/logos/crushed/2825.png?1"/> </a> <a class="MobileNav-altLibraryLink js-altLibraryLink u-hideMe" href="/" tabindex="0"> Yale University </a> </div> </div> <div class="row js-toggleRow"> <div class="columns small-12 MobileNav-searchContainer js-mobileSearchContainer"> <span class="MobileNav-searchIconContainer left js-mobileNavSearchIcon"> <i class="icon-search-nav js-doQuickSearch MobileNav-searchIcon"></i> </span> <h2 tabindex="-1" class="offscreen">Search</h2> <form class="js-quickSearchForm js-mobileSearchForm MobileNav-searchForm is-unexpanded" id="search-form-mobile" autocomplete="off" method="get" action="/search"> <label class="hideMeImportant" for="nav-search-mobile">Search</label> <input type="text" maxlength="100" name="query" id="nav-search-mobile" autocomplete="off" data-search="nav-search-mobile" placeholder="Search" title="Search" class="js-quickSearchInput js-mobileSearchInput MobileNav-searchInput" value="" aria-haspopup="true" /> </form> <span class="right js-searchControlContainer u-hideMe MobileNav-searchControlContainer"> <i class="icon-clear js-clearMobileSearch MobileNav-clearSearchIcon" tabindex="0" aria-label="Clear search"></i> <a class="js-doQuickSearch u-allCaps MobileNav-submitSearch" href="javascript:void(0)" tabindex="0">Search</a> </span> <span class="right MobileNav-iconContainer js-mobileNavIconContainer"> <a href="/account/loans" aria-label="Loans" tabindex="0" class="MobileNav-bookshelfLink"> <i class="icon-bookshelf MobileNav-bookshelfIcon" aria-hidden="true"></i> </a> <h2 tabindex="-1" class="offscreen">Browse menu</h2> <button data-toggle="mobile-nav-foundation-dropdown" class="js-mobileMenu MobileNav-accountMenu" id="hamburger" aria-expanded="false" aria-label="Browse menu" aria-role="button" title="Browse menu" tabindex="0"> <i class="icon-hamburger MobileNav-hamburgerIcon" aria-hidden="true"></i> </button> </span> </div> </div> <div class="js-quickSearchAutocompletionsMobile"></div> <div class="MobileNav-advancedSearchContainer js-advancedSearchContainer row u-hideMe js-toggleRow"> <a class="MobileNav-advancedSearchText js-advancedSearchLink" id="mobileAdvancedSearch" href="/advanced-search" tabindex="0" aria-live="polite" aria-label="Advanced Search"> <div class="small-12 columns MobileNav-advancedSearch"> Advanced </div> </a> </div><div class="MobileNav-advantageTout js-advantageTout row js-toggleRow u-hideMe"> <div class="columns small-12"> <a class="MobileNav-closeAdvantageTout right js-closeAdvantageTout" href="javascript:void(0)" aria-label="Close" role="button" tabindex="0">×</a> <p class="MobileNav-advantageToutText text-center"> More titles and copies may be available to you. Sign in to see the full collection. </p> <div class="MobileNav-advantageToutSigninContainer text-center"> <a href="/account/sign-in?forward=%2F" class="u-allCaps MobileNav-advantageToutSignin" tabindex="0" aria-label="More titles and copies may be available to you. Sign in to see the full collection."> Sign in </a> </div> </div> </div> </div> </nav> <div class="nav-container Nav js-nav" aria-hidden="false"> <div class="row"> <nav class="top-bar unexpanded js-top-bar" data-topbar data-options="mobile_show_parent_link: false"> <div class="white-cover"></div> <section class="top-bar-section"> <div class="DesktopNavLinks Nav-topRightLinks"> <a target="_blank" rel="noreferrer" href="https://help.overdrive.com?Key=yale&Sup=&edge=true" class="DesktopNavLinks-link Nav-topRightLink secondary-color-hover">Help</a> </div> <div tabindex="-1" class="Nav-logoWrapper--desktop" id="logo-desktop"><a aria-label="Yale University: OverDrive digital collection" href="/"> <img onerror="showAltLogoDesktop();" class="Nav-logo--desktop" tabindex="-1" aria-hidden="true" alt="Logo for Yale University" src="https://thunder.cdn.overdrive.com/logos/crushed/2825.png?1"/> </a> </div> <a tabindex="-1" class="library-home-alt-link-desktop Nav-logoWrapper--desktop hideMeImportant" href="/"><span class="library-home-alt-text Nav-logo--desktop Nav-altLogo no-logo">Yale University</span></a> <h2 class="offscreen" tabindex="-1">Browse options</h2> <!-- Left Nav Section --> <ul role="navigation" class="left desktop hide-for-small-only Nav-bottomLeftLinksWrapper"> <li tabindex="-1"> <a tabindex="0" href="/browse" class="main-level" data-action="main-navigation" nav-name="Subjects"> Subjects </a> </li><li tabindex="-1" class="Nav-collectionsDropLink"> <a tabindex="0" class="main-level Nav-collectionsLink" data-dropdown="drop-collections" aria-controls="drop-collections" aria-expanded="false" data-action="main-navigation" nav-name="Collections" role="button"> Collections <i class="icon-down-arrow Nav-collectionsDropArrow" tabindex="-1" aria-hidden="true"></i> </a> </li> <li tabindex="-1"> <a href="/search?format=ebook-kindle&sortBy=newlyadded" aria-label="Kindle Books" class="main-level" data-action="main-navigation" nav-name="Kindle"> Kindle Books </a> </li> <ul data-equalizer id="drop-collections" class="drop content f-dropdown dynamic Nav-collectionsDropdown" aria-hidden="true" tabindex="-1"> <div class="large-11 medium-12 columns large-centered medium-centered"> <ul class="large-block-grid-5 medium-block-grid-5"> <li> <h3 tabindex="-1" class="u-allCaps Nav-collectionsDropHeading">eBooks</h3> <ul> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20597" tabindex="-1"><span class="secondary-border-color">Available now</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20598" tabindex="-1"><span class="secondary-border-color">New eBook additions</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20599" tabindex="-1"><span class="secondary-border-color">New teen additions</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20600" tabindex="-1"><span class="secondary-border-color">Most popular</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20601" tabindex="-1"><span class="secondary-border-color">Try something different</span></a></li> <li> <a class="view-all-collections Nav-featuredCollectionItem secondary-color primary-color-hover contrast" href="/collections/featured/1" tabindex="-1"> <span class="secondary-border-color"> See all <i class="icon-forward-arrow chevron secondary-color primary-color-hover" aria-hidden="true"></i> </span> </a> </li> </ul> </li> <li> <h3 tabindex="-1" class="u-allCaps Nav-collectionsDropHeading">Audiobooks</h3> <ul> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20602" tabindex="-1"><span class="secondary-border-color">Available now</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20603" tabindex="-1"><span class="secondary-border-color">New audiobook additions</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20604" tabindex="-1"><span class="secondary-border-color">Most popular</span></a></li> <li><a class="featured-collection-item Nav-featuredCollectionItem" href="/collection/20605" tabindex="-1"><span class="secondary-border-color">Try something different</span></a></li> <li> <a class="view-all-collections Nav-featuredCollectionItem secondary-color primary-color-hover contrast" href="/collections/featured/2" tabindex="-1"> <span class="secondary-border-color"> See all <i class="icon-forward-arrow chevron secondary-color primary-color-hover" aria-hidden="true"></i> </span> </a> </li> </ul> </li> </ul> </div> </ul> </ul><!-- Right Nav Section --> <h2 class="offscreen" tabindex="-1">Search and account</h2> <ul role="presentation" class="right desktop hide-for-small-only Nav-bottomRightLinks"> <li class="Nav-searchIconContainer"> <a role="button" href="javascript:void(0)" class="secondary-color-hover js-toggleSearch" aria-label="Search"> <i class="icon-search-nav Nav-searchIcon--desktop secondary-color-hover" aria-hidden="true"></i><span class="Nav-searchText">Search</span> </a> </li> <li> <a href="/account/loans" class="secondary-color-hover shelf-icon-container" aria-label="Loans"> <i class="icon-bookshelf Nav-bookshelfIcon--desktop secondary-color-hover" aria-hidden="true"></i> </a> </li><li role="presentation" class="Nav-signInWrapper"> <a href="/account/sign-in?forward=%2F" class="Nav-signIn button secondary secondary-background" tabindex="0">Sign in</a> <!-- TODO: refactor advantage tout so that it's not a dropdown linked directly to the sign-in button (confusing screen-readers) --> <a data-dropdown="dropAccount" aria-haspopup="true" style="top: -1rem; height:0" data-options="align:bottom" class="signed-out js-account-menu-link Nav-signIn button secondary secondary-background invisible" aria-controls="dropAccount" aria-expanded="false" href="#" id="account-holder-name">Sign in</a> <div id="dropAccount" data-dropdown-content class="f-dropdown large content Nav-advantageTout" aria-hidden="true" tabindex="-1"> <p tabindex="0" class="advantage-tout-text"> More titles and copies may be available to you. Sign in to see the full collection. </p> <div class="text-center"> <a href="/account/sign-in?forward=%2F" class="sign-in contrast u-allCaps Nav-advantageToutSignIn button" tabindex="0"> Sign in </a> </div> <a class="close-advantage-tout contrast js-closeAdvantageTout" href="javascript:void(0)" aria-label="Close" role="button" tabindex="0">×</a> </div> </li> </ul> </section> </nav><div class="row dropdown-pane" id="mobile-nav-foundation-dropdown" data-dropdown data-menu="main"> <div class="mobile-nav-wrapper"> <div class="mobile-nav-menu"> <ul class="accordion top-nav" data-accordion> <li> <div class="help-mobile"> <a class="signed-out js-account-menu-link Nav-signIn button secondary secondary-background" href="/account/sign-in?forward=%2F" > Sign in </a> </div> </li> <li> <div class="help-mobile"> <a class="contrast" href="/browse" data-action="main-navigation" nav-name="Subjects">Subjects</a> </div> </li><li class="accordion-navigation top-nav" data-sub-nav="featured-collections"> <a href="#featured-collections" role="tab" id="featured-collections-heading" aria-controls="featured-collections" class="contrast nav-panel-name">Collections</a><span class="nav-panel-icon" tabindex="-1"><i class="icon-forward-arrow panel-arrow right chevron" aria-hidden="true" data-action="main-navigation" nav-name="Collections"></i></span> <div id="featured-collections" class="content" role="tabpanel" aria-labelledby="featured-collections-heading"> <hr/> <ul> <li class="nav-heading" tabindex="0">eBooks</li> <li><a href="/collection/20597" class="js-link"><span>Available now</span></a></li> <li><a href="/collection/20598" class="js-link"><span>New eBook additions</span></a></li> <li><a href="/collection/20599" class="js-link"><span>New teen additions</span></a></li> <li><a href="/collection/20600" class="js-link"><span>Most popular</span></a></li> <li><a href="/collection/20601" class="js-link"><span>Try something different</span></a></li> <li><a href="/collections/featured/1" class="secondary-color primary-color-hover collection-link"><span><b>See all<i class="icon-forward-arrow chevron secondary-color" aria-hidden="true"></i></b></span></a></li> </ul> <hr/> <ul> <li class="nav-heading" tabindex="0">Audiobooks</li> <li><a href="/collection/20602" class="js-link"><span>Available now</span></a></li> <li><a href="/collection/20603" class="js-link"><span>New audiobook additions</span></a></li> <li><a href="/collection/20604" class="js-link"><span>Most popular</span></a></li> <li><a href="/collection/20605" class="js-link"><span>Try something different</span></a></li> <li><a href="/collections/featured/2" class="secondary-color primary-color-hover collection-link"><span><b>See all<i class="icon-forward-arrow chevron secondary-color" aria-hidden="true"></i></b></span></a></li> </ul> <hr/> </div> </li> <li tabindex="-1"> <a href="/search?format=ebook-kindle&sortBy=newlyadded" aria-label="Kindle Books" class="contrast nav-panel-name" data-action="main-navigation" nav-name="Kindle"> Kindle Books </a> </li> <li> <div class="help-mobile"> <a class="text-center contrast" target="_blank" rel="noreferrer" href="https://help.overdrive.com?Key=yale&Sup=&edge=true">Help</a> </div> </li> </ul> </div> </div> </div></div><div class="row js-nav-search-drop js-desktopSearchContainer hideMe"> <hr class="Nav-searchSeparator"/> <div class="large-12 columns"> <div class="Nav-searchDrop"> <div class="search-bar Nav-searchBar"> <form class="js-quickSearchDesktop js-quickSearchForm" id="search-form" method="get" action="/search" autocomplete="off"> <label class="hideMe" id="search-label" for="nav-search">Search</label> <input tabindex="0" type="text" maxlength="100" name="query" id="nav-search" autocomplete="off" data-search="nav-search" title="Search" aria-labelledby="search-label" class="js-quickSearchInput search-input Nav-searchInput" value="" placeholder="Search" /> <div class="Nav-searchButtonContainer"> <button tabindex="0" class="js-doQuickSearch fake-button right" aria-label="Submit search."> <span tabindex="-1" class="desktop-search Nav-searchButton right"> <i class="icon-search-nav Nav-searchIcon--desktop is-submit secondary-color-hover" aria-hidden="true"></i> </span> </button> <i class="icon-clear js-clearSearch Nav-clearSearch right hideMe"></i> </div> <div class="js-quickSearchAutocompletionsDesktop"></div> <a class="js-desktopAdvancedSearch secondary-color-hover help-link-desktop advanced-search-desktop Nav-advancedSearch right" tabindex="0" href="/advanced-search">Advanced<i class="icon-forward-arrow Nav-advancedSearchCaret right"></i></a> </form> </div> </div> </div> </div></div> <div class="toast-placeholder js-toastPlaceholder"></div> <div class="js-toaster"></div> <div id="sample-only-banner"></div> <div id="cdnfail" class="cdnFailContainer">Error loading page.<br/>Try refreshing the page. If that doesn't work, there may be a network issue, and you can use our <a href="/selftest" class="cdnFailLink">self test page</a> to see what's preventing the page from loading.<br/><a href="https://help.overdrive.com/customer/portal/articles/2663201" class="cdnFailLink">Learn more about possible network issues</a> or <a href="https://help.overdrive.com/customer/en/portal/articles/1613698" class="cdnFailLink">contact support</a> for more help.</div> <main id="mainContent" class="container js-hideOnCdnError"> <input type="hidden" id="csrf" name="_csrf" value="AVPrux9p-mkmZt3BPIw1lcvi-jy9l-SnJLkM"> <div role="dialog" id="sample-dynamic-modal" class="sample-modal reveal-modal large" data-reveal aria-hidden="true" role="dialog"> <div class="modal-header"> <h2 data-first-focus tabindex="0" class="primary-color modal-title js-first-focus" data-sample-title></h2> <a class="close-reveal-modal" tabindex="0" role="button" aria-label="Close">×</a> </div> <div class="modal-container"> <iframe id="sample-dynamic-iframe" data-src class="js-last-focus"></iframe> </div> </div> <div id="main"> <div class="Carousels"></div> </div> <div id="access-ending-modal"></div> <div id="home-intercept-modal"></div> </main> <div class="js-hideOnCdnError"> <script> (function() { var usesLibby = true; var usesSora = false; function hasDownloadableFormats() { return (window.OverDrive.supportedFormats || []) .filter(function(format) { return format.mediaType !== 'ntc' && format.id !== 'audiobook-overdrive' && format.id !== 'ebook-kobo' && format.id !== 'ebook-media-do' && format.id !== 'ebook-overdrive' && format.id !== 'magazine-overdrive'; }) .length > 0; } function isWindows() { return window.navigator.userAgent.match(/Win/) && !bowser.windowsphone; } function isKindle() { return window.OverDrive.isKindle; } function renderFooter(elementId, reactRenderFunctions) { var canPromoteApps = hasDownloadableFormats() && !window.OverDrive.isTolinoDevice && !window.OverDrive.optimizeForChina; var showLibbyPromo = canPromoteApps && usesLibby; var showSoraPromo = canPromoteApps && usesSora; var showOverDrivePromo = canPromoteApps && !showLibbyPromo && !showSoraPromo; var advantageKey = 'null'; reactRenderFunctions.renderFooter(elementId, { advantageKey: advantageKey, disableWishlist: window.featureManager.isEnabled('disableWishlist'), gacEnabled: false, hasLinkedCards: window.OverDrive.hasLinkedCards, isAuthenticated: window.OverDrive.isAuthenticated, isChinaSecurityCodeEnabled: window.featureManager.isEnabled('show-china-security-code-footer'), isConsortium: false, isDlr: false, isGdprCountry: window.OverDrive.isGdprCountry, isGhostLoginEnabled: window.featureManager.isEnabled('ghostLogin'), isSupportLinkEnabled: window.featureManager.isEnabled('show-support-form'), languages: [ { name: 'English', localeCode: 'en' }, ], libraryHomeUrl: 'http://www.library.yale.edu', libraryKey: 'yale', libraryName: window.OverDrive.libraryName, librarySupportEmail: window.OverDrive.librarySupportEmail, librarySupportUrl: window.OverDrive.librarySupportUrl, ntcMode: false, openLinksInNewWindow: !window.OverDrive.inApp, optimizeForChina: window.OverDrive.optimizeForChina, parentAccountKey: 'yale', sampleOnlyMode: window.featureManager.isEnabled('sampleOnlyMode'), showHolds: window.featureManager.isEnabled('content-holds'), showKindlePromo: window.featureManager.isEnabled('kindleFooter'), showLibbyPromo: showLibbyPromo, showOverDrivePromo: showOverDrivePromo, showOverDriveWindowsLink: !window.featureManager.isEnabled('removeWindowsFromLibbyTout'), showReadingHistory: window.OverDrive.showHistoryFeature, showStarRating: window.featureManager.isEnabled('show-star-ratings'), showSoraPromo: showSoraPromo, simplifiedNavigationBar: window.featureManager.isEnabled('simplifiedNavigationBar'), socialFacebookUrl: '', socialPinterestUrl: '', socialTwitterUrl: '', socialYouTubeUrl: '' }); } function renderLibbyFooterPromo(elementId, reactRenderFunctions) { var tabletSupportsLibby = !window.OverDrive.isUnsupportedKindle; if(window.OverDrive.isTolinoDevice) { //Do not display promos return; } if(window.featureManager.isEnabled('ODAppSunsetLibbyFooterPromo') && window.OverDrive.inApp && usesLibby && !window.featureManager.isEnabled('sampleOnlyMode')) { //Render the OverDrive App Sunset Footer Promo var isSunsetMayDateSet = window.featureManager.isEnabled('sunset-date-set'); var isSunsetKoreaDateSet = window.featureManager.isEnabled('odsunset-korea-2023'); reactRenderFunctions.renderODAppSunsetLibbyFooterPromo(elementId, { isWindows: isWindows(), isKindle: isKindle(), isSunsetMayDateSet: isSunsetMayDateSet, isSunsetKoreaDateSet: isSunsetKoreaDateSet, tabletSupportsLibby: tabletSupportsLibby }); } else if(window.featureManager.isEnabled('libby-footer-promo') && tabletSupportsLibby) { var isGeoIDCEnabled = window.featureManager.isEnabled('geo-idc'); //Render the Generic Libby Footer Promo or Tourism Footer Promo isGeoIDCEnabled ? reactRenderFunctions.renderTourismLibbyFooterPromo(elementId, { isKindle: isKindle(), }) : reactRenderFunctions.renderGenericLibbyFooterPromo(elementId, { isKindle: isKindle() }); } } function renderPartnerLibraries(elementId, reactRenderFunctions) { var partnerLibraries = [ ]; if (window.featureManager.isEnabled('reciprocalLending') && partnerLibraries.length > 0) { reactRenderFunctions.renderPartnerLibraries(elementId, { libraryName: window.OverDrive.libraryName, partnerLibraries: partnerLibraries }); } } onReactComponentsReady(function (event) { renderPartnerLibraries('footer-partner-libraries', event.detail); renderLibbyFooterPromo('footer-libby-promo', event.detail); renderFooter('footer-redesign', event.detail); }); })(); </script> <div id="footer-libby-promo"></div> <div id="footer-partner-libraries"></div> <div id="footer-redesign"></div> <script> $('.copyright > .ghost').on('click', function() { var url = window.routes.ozone.external; var form = $('<form sytle="display:none" id="target" method="post" action="' + window.url(window.routes.ozone.external, {forwardUrl: window.location.href}) +'">' + '<input type="hidden" name="authType" value="External">' + '<input type="hidden" name="ilsName" value="_ghost">' +'</form>'); $('body').append(form); form.submit(); }); </script> <!-- authenticate Modal --> <div id="authenticate-modal" class="authenticate-modal reveal-modal small" data-reveal aria-hidden="true" role="dialog"> <div class="modal-header"> <h2 tabindex="0" class="modal-title primary-color js-first-focus" >Session expired</h2> <a class="close-reveal-modal " role="button" aria-label="Close" tabindex="0">×</a> </div> <div class="modal-container" aria-describedby="authenticate-label"> <p class="modal-body" id="authenticate-label" data-first-focus > Your session has expired. Please sign in again so you can continue to borrow titles and access your Loans, Wish list, and Holds pages. </p> <p class="modal-body"> If you're still having trouble, <a target="_blank" rel="noreferrer" href="https://help.overdrive.com/customer/portal/articles/2847569">follow these steps to sign in.</a> </p> <div class="button-container"> <a href="/account/card/invalid" role="button" class="js-reauthenticate button margin-small radius secondary u-allCaps" aria-label="Sign in"> Sign in </a> <button type="button" data-cancel class="button radius margin-small outline gray cancel u-allCaps js-last-focus">Cancel</button> </div> </div> </div> <!-- Link Card Modal --> <div role="dialog" id="link-card-modal" class="link-card-modal reveal-modal small" data-reveal aria-hidden="true" > <div class="modal-header"> <h2 class="modal-title primary-color u-allCaps js-first-focus" id="link-card-modal-title" tabindex="0">Add a card</h2> <a class="close-reveal-modal" aria-label="Close" role="button" tabindex="0">×</a> </div> <div class="modal-container"> <div class="row"> <div class="description small-12 columns"> <p data-first-focus class="js-first-focus"> Add a library card to your account to borrow titles, place holds, and add titles to your wish list. </p> </div> </div> <div class="row"> <div class="category small-12 small-centered columns"> <p class="text"><span class="question">Have a card?</span> Add it now to start borrowing from the collection.</p> <div class="button-container"> <a href="/account/initiate-card-link" class="button margin-small radius secondary u-allCaps js-last-focus">Add a card</a> </div> </div> </div> </div> </div> <!-- Link Card Modal...psyche! --> <div role="dialog" id="card-error-modal" class="js-card-error-modal reveal-modal small" data-reveal aria-hidden="true" > <div class="modal-header"> <h2 tabindex="0" class="modal-title primary-color u-allCaps js-first-focus">Card error</h2> <a class="close-reveal-modal" aria-label="Close" role="button" tabindex="0">×</a> </div> <div class="modal-container"> <p > The library card you previously added can't be used to complete this action. Please add your card again, or add a different card. If you receive an error message, please contact your library for help. </p> <div class="button-container"> <a href="/account/initiate-card-link" id="add-card-button" class="button margin-small radius secondary u-allCaps" data-forward>Add a card</a> <a href="mailto:askyalelibrary@yale.edu" class="button margin-small radius secondary support-choice-button"> Contact support </a> <button type="button" data-cancel class="button radius margin-small outline gray cancel u-allCaps js-last-focus" id="cancel-button">Cancel</button> </div> </div> </div> </div> <script src="https://lightning.od-cdn.com/static/lang/en.f14b787bd3fa85c7b164c989e8d8eee2.js" onerror="cdnError(this)"></script> <script> var dynamicTranslations = ""; for (var key in dynamicTranslations) { window.OverDrive.translations[key] = dynamicTranslations[key]; }; </script> <script src="https://lightning.od-cdn.com/static/assetMapper.bundle.min.a15d2d76378bc2a71c90d36f7f1c625a.js" onerror="cdnError(this)"></script> <script>window.OverDrive.toStaticUrl = require('/lib/assetMapper.js').toStaticUrl</script> <script src="https://lightning.od-cdn.com/static/app.bundle.min.4956f7d9c369db08073602639fb88c95.js" onerror="cdnError(this)"></script> <script> Foundation.global.namespace = ''; // Run foundation js dependencies $(document).foundation({ abide: { live_validate: false, focus_on_invalid : false, validate_on_blur : false, patterns: { email: /^([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/ }, equalizer: { equalize_on_stack: true } } }); // Set csrf header for all jQuery ajax requests $.ajaxSetup({ headers: {'csrf-token': $('#csrf').val() || OverDrive._csrf} }); function closeNav(e) { var desktopContainer = $(".drop.content.open"); var mobileContainer = $('.mobile-nav-menu[data-menu]'); //Close Desktop if (!desktopContainer.is(e.target) && desktopContainer.has(e.target).length === 0 && !$(e.target).is('[aria-expanded],[aria-haspopup]')){ $(document).foundation('dropdown', 'close', $('.drop.content.open')); $('li[data-dropdown]').attr('aria-expanded', 'false'); } //Close mobile if (!mobileContainer.is(e.target) && mobileContainer.has(e.target).length === 0){ if ($('.mobile-nav-wrapper').hasClass('expanded')) { $('.mobile-nav-menu[data-menu]').toggle(); $('.mobile-nav-wrapper').removeClass('expanded').addClass('unexpanded'); $('.top-bar').removeClass('expanded').addClass('unexpanded'); if (window.toaster) window.toaster._stickToast(); } } } //Hide nav when clicked outside of it $(document).on("click tap", function(e){ closeNav(e); }); //Fix for issue with dropdown not closing upon clicking parent link $('li[data-dropdown]').on( "tap", function(e){ $('li[data-dropdown]').attr('aria-expanded', 'false'); e.stopImmediatePropagation(); e.preventDefault(); }); $(document).ready(function(e) { var URL = window.location.search.slice(1); var errorMessage = 'errorMessage'; var successMessage = 'successMessage'; var error = false; var success = false; if(URL.indexOf('errorMessage') > -1) { error = true; } else if (URL.indexOf('successMessage') > -1) { success = true; } if(error || success) { if (URL.indexOf('&') > -1) { URL = URL.split('&'); _.each(URL, function (URLee) { if (URLee.indexOf(errorMessage) > -1) { errorMessage = URLee.slice(errorMessage.length += 1); } else if (URLee.indexOf(successMessage) > -1) { successMessage = URLee.slice(successMessage.length += 1); } }); } else { if(error) { errorMessage = URL.slice(errorMessage.length += 1); } else { successMessage = URL.slice(successMessage.length += 1); } } } if (success && window.toaster) { var copy = window.html('toastSuccess'); var html = '<strong>' + copy + '</strong> ' + decodeURIComponent(successMessage); window.toaster.push(html, 'message'); } var cookies = ("cookie" in document && (document.cookie.length > 0 || (document.cookie = "test").indexOf.call(document.cookie, "test") > -1)); // If no cookie support: warn the user with a toast if (!cookies && window.toaster) { window.toaster.push('<strong>Error!</strong>' + html('toasts.cookiesMustBeEnabled', {link1: '<a href="https://help.overdrive.com/customer/portal/articles/1481652-how-to-enable-cookies-on-your-computer?Key=yale&Sup=">how to enable cookies on a computer</a>', link2: '<a href="https://help.overdrive.com/customer/portal/articles/1481678-how-to-enable-cookies-on-your-mobile-device?Key=yale&Sup=">how to enable cookies on a mobile device</a>'}), 'error'); } var $desktopAccountButton = $('#account-holder-name'); var $mobileAccountButton = $('li.account-dropdown-mobile a i.icon-account'); // intercept the account button click to navigate instead of toggle the advantage dropdown $desktopAccountButton.add($mobileAccountButton).on('click', function(e) { e.stopPropagation(); window.location = '/account/sign-in?forward=%2F'; }); }); var systemMsgArr = []; systemMsgArr.push({ message: 'You can now access the Yale University digital library through the Libby app. Upgrade to Libby today! <a href=\"https://help.libbyapp.com/en-us/6103.htm\" target=\"_blank\">Learn more about Libby</a>', toasterType: 'system', id: 'system-toast', messageId: '13691', settings: {"sampleSiteOnly":false,"enhancedSiteMessage":false} }); var sampleOnlyBannerMessage = systemMsgArr.filter(function(message) { return message.settings && message.settings.enhancedSiteMessage; })[0]; if (sampleOnlyBannerMessage) { if(window.OverDrive.pageMetadata && window.OverDrive.pageMetadata.pageName === 'home') { onReactComponentsReady(function (event) { event.detail.renderSampleOnlyBanner('sample-only-banner', { message: sampleOnlyBannerMessage.message, showLibbyAppStoreInfo: sampleOnlyBannerMessage.settings.showLibbyAppStoreInfo, showLibbyDeviceImage: sampleOnlyBannerMessage.settings.showLibbyDeviceImage }); }); } } else if (window.toaster) { window.toaster.bulkSystemMsgPush(systemMsgArr); } $('img').one('error', function() { this.src = window.OverDrive.toStaticUrl('img/no-cover_en_US.jpg'); }); //Set body attributes for tracking authentication and available linked cards. if (false && false) { $('body').attr({'authenticated': true, 'no-linked-cards': false}); } else if (false && !false) { $('body').attr({'authenticated': false, 'no-linked-cards': true}); } else { $('body').attr({'authenticated': false, 'no-linked-cards': false}); } //Add loading gif here to be used in javascript. Needs the swig cdn parameters for caching var primaryActionLoadingGif = '<img src="https://lightning.od-cdn.com/static/img/loading.17eca6dfe312e31db61216637ca7b440.gif">'; if(Cookies.get('high-contrast-setting') == 1) { primaryActionLoadingGif = '<img src="https://lightning.od-cdn.com/static/img/loading-contrast.0601caf072ee32dacc2d74de06d6ffe4.gif">'; } </script> <script src="https://lightning.od-cdn.com/static/home.bundle.min.bfbde4499c8dbd7363169b60ad6ba022.js"></script> </body> </html>