1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4<base href="https://members.urbanlibraries.org/" /> 5 6 7 <!-- Google Tag Manager --> 8
8<script>
vendor: 343 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 9 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 10 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 11 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 12 })(window,document,'script','dataLayer','
12GTM-5JKMCT
vendor: 3 bytes, line 12
12');
12</script>
12 13 <!-- End Google Tag Manager --> 14 15 16 17 <meta charset="UTF-8" /> 18 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5" /> 19 <title>Products - Urban Libraries Council Member Hub</title> 20 21 22<meta property="og:type" content="website"/> 23 24 25<meta property="og:url" content="https://members.urbanlibraries.org/products/donation/"/> 26 <meta name="keywords" content="" /> 27 <meta name="description" content="" /> 28 29 30 31 <link rel="shortcut icon" href="graphics/design/favicon.ico" /> 32 <link rel="icon" type="image/png" href="graphics/design/favicon.png" /> 33 34 <link rel="stylesheet" href="https://use.typekit.net/buo7aqy.css"> 35 <!--<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /> --> 36
36<script src="https://kit.fontawesome.com/67cc50e5c3.js" crossorigin="anonymous"></script>
36<!-- fontawesome 5 --> 37 38 <link rel="stylesheet" type="text/css" href="graphics/scripts/zoombox/zoombox.css" /> 39 <link rel="stylesheet" type="text/css" href="stylesheet.css?v=1642712075" /> 40 41 42
42<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
vendor: 1 bytes, line 42
42
43<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
vendor: 1 bytes, line 43
43
44<script type="text/javascript" src="/freedom_html/common/jquery/jquery.loader.php?v=2026.38.201&js=pack.all"></script>
44 45 46
46<script type="text/javascript" src="graphics/scripts/flexisel/js/jquery.flexisel.js"></script>
46 47
47<script type="text/javascript" src="graphics/scripts/zoombox/zoombox.js"></script>
47 48
48<script type="text/javascript" src="js/ieCheck.js"></script>
48 49
49<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js.cookie.min.js"></script>
49 50
50<script type="text/javascript" src="js/sitescripts.js?v=20230406"></script>
50 51 52</head> 53 54<body class="interior "> 55 <!-- Google Tag Manager (noscript) -->
vendor: 85 bytes, lines 55-57
55 56 <noscript><iframe src=" 57 https://www.googletagmanager.com/ns.html?id=
57GTM-5JKMCT
vendor: 103 bytes, lines 57-60
57" 58 height="0" width="0" 59 style="display:none;visibility:hidden"></iframe></noscript> 60
60<!-- End Google Tag Manager (noscript) --> 61 62 63<div id="mobileMenu"> 64 <nav class="mobileMenu"></nav> 65</div> 66 67<div id="header"> 68 <div class="wrapper"> 69 <a id="logo" href="index.php"></a> 70 <div id="mainMenu"> 71 <nav class="mainMenu"> 72 <ul class="main_menu"> 73 <li class="item1" ><a class="first" href="https://www.urbanlibraries.org/about/mission">ABOUT US </a></li> 74 <li class="item2" ><a href="https://www.urbanlibraries.org/resources">RESOURCES </a></li> 75 <li class="item3" ><a href="https://www.urbanlibraries.org/innovations">INNOVATIONS </a></li> 76 <li class="item4" ><a href="https://www.urbanlibraries.org/initiatives">OUR WORK </a></li> 77 <li class="item5" ><a href="/events/">EVENTS </a></li> 78 <li class="item6" ><a href="https://www.urbanlibraries.org/newsroom">NEWSROOM </a></li> 79 <li class="item7" ><a href="https://www.urbanlibraries.org/join">JOIN </a></li> 80 <li class="item8" ><a href="https://connect.urbanlibraries.org/">MEMBER HUB </a></li> 81 <li class="item9" ><a class="last" href="products/donation/">DONATE </a></li> 82 </ul> 83 84</nav> 85 </div> 86 <button id="mainMenuToggle" type="button"><span class="fa fa-bars"></span> MENU</button> 87 88 </div> 89</div> 90 91 92 93 94 95<div id="interiorContent"> 96 <div class="wrapper"> 97 <div class="flexRow"> 98 99 <div id="sidebar" class="flexItem"> 100 <div class="sidebox"> 101 <div id="subMenu"><h3>ULC MEMBER HUB</h3> 102 103 <ul class="sub_menu subMenu" > 104 <li class="menuItemHighlight item1" ><a class="first current" href="https://connect.urbanlibraries.org/">Home </a></li> 105 <li class="item2" ><a href="https://connect.urbanlibraries.org/knowledgeexchange">Knowledge Exchange </a></li> 106 <li class="item3" ><a href="events/">Events </a></li> 107 <li class="item4" ><a href="https://connect.urbanlibraries.org/member-directory">Member Directory </a></li> 108 <li class="item5" ><a href="https://connect.urbanlibraries.org/ulclibrarydatahive">ULC Library Data Hive </a></li> 109 <li class="item6" ><a href="https://connect.urbanlibraries.org/membercommunities/allcommunities">Member Groups </a></li> 110 <li class="item7 JobBoard" ><a class="last" href="https://connect.urbanlibraries.org/job-board2">Job Board </a></li> 111 </ul> 112 113</div> 114 </div> 115 <a class="button" href="index.php?src=membership&srctype=myaccount&intended_url=referer">LOGIN</a> 116 <div class="sidebox"> 117 <h3>Need Help?</h3> 118 <p><i class="far fa-envelope"> </i> Email <a href="/cdn-cgi/l/email-protection#761f1810193603041417181a1f140417041f130558190411490503141c1315024b3b131b141304534446251f02135344463e131a06"><span class="__cf_email__" data-cfemail="91f8fff7fed1e4e3f3f0fffdf8f3e3f0e3f8f4e2bffee3f6">[email protected]</span></a></p> 119<p><i class="fas fa-user-plus"> </i> Is your library a ULC Member? Request a <a href="forms/request-for-member-login/">new member login</a> for yourself.</p>
vendor: 110 bytes, lines 119-120
119 120<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
120<script>// <![CDATA[ 121document.addEventListener("DOMContentLoaded",function () { 122 if (window.location.search.indexOf("hlepembed=1") != -1 ) { 123 if (elems = document.querySelectorAll("#header, #sidebar, #footer, div.breadcrumb, .tr_misc7, .tr_misc0, .tr_meta__contact_mname, .tr_attr__linkedin")) { 124 for (i=0; i<elems.length; i++) { 125 elems[i].style.visibility="hidden"; 126 } 127 } 128 } 129 if ( ( elem = document.querySelector("#content meta") ) && elem.outerHTML.indexOf('<meta http-equiv="refresh" content="0; url=https://urbanlibraries-accrisoft.auth') !== -1) { 130 elems = document.querySelectorAll(".button"); 131 for (i=0; i < elems.length; i++) { 132 if (elems[i].textContent == "LOGIN") { 133 elems[i].innerText="Logging in... Please wait"; 134 elems[i].style.visibility="visible"; 135 elems[i].style.position="absolute"; 136 } 137 138 } 139 } 140}); 141 if (window.location.href.match("src=membership&cmd=resetidp&")) { 142 setTimeout(function(){window.stop();},200); 143 window.alert("We're sorry. The function allowing you to click the link in the 'Your Verification Code' email to reset your password is not working.\n\nInstead please copy the verification code in that email and paste it in the already-open browser window where you clicked 'Reset Password.'\n\nIf you've already closed that browser window/tab, please click the 'Forgot password' link again, but don't close the browser window when you go to check your email for the code.\n\nYou may aso email us at [email protected] and we'll be happy to help.\n\nThank you for your patience.\n---The ULC Member Hub Team"); 144 window.close(); 145 } 146// ]]></script>
146</div> 147 </div> 148
148<script>checkSideMenu();</script>
148 149 <div id="content" class="flexItem"> 150 <div class="breadcrumb"><a href="">Member Hub</a> > <a href="https://connect.urbanlibraries.org/">Home</a> 151 <span id="jsPageTitle"></span></div> 152 153 <!-- Accrisoft Freedom v/11 Sep 24, 2026 --><div class="productsModule moduleLister"> 154 <h1>Products</h1> 155 <div><form action="index.php" method="get" id="form_products_search" style="margin:0px;"> 156<div class="flexRow"> 157 <div class="flexItem oneSixth">Search</div> 158 <div class="flexItem twoThirds"><input type="text" name="xsearch[0]" size="20" value="" class="directorySearchInput" /></div> 159 <div class="flexItem oneFifth"><input type="submit" name="submit" value="Go" /></div> 160</div><div style="display:none"><input type="hidden" name="xsearch_id" value="products_search" /><input type="hidden" name="src" value="directory" /><input type="hidden" name="srctype" value="products_lister" /><input type="hidden" name="view" value="products" /><input type="hidden" name="submenu" value="Home" /></div></form></div> 161 162<hr style="margin-top:10px; margin-bottom:10px" /> 163 164<div> 165<div class="listerItem"> 166 <h2>Donation</h2> 167 <div class="flexRow" style="align-items: flex-start;"> 168 <div class="flexItem threeFourths"> 169 <h3><span class="normalinline diritem_price" id="item_price_58702" origprice="varies">varies</span></h3> 170 <p><em>ULC is recognized by the IRS as a 501(c)3 nonprofit charitable organization. 171Please consult your tax advisor for questions about possible deductions.</em></p> 172 <p><b><em>Category: Donation</em></b></p> 173 </div> 174 <div class="flexItem oneFourth"> 175 <form relid="58702" id="item_58702" class="cart_add" method="post" action="https://members.urbanlibraries.org/index.php">
176<script type="text/javascript"> 177//<![CDATA[ 178 179$(document).ready( function(){ CommerceOptions.fAddOptionForm( $('#item_58702') ); } ); 180//]]> 181</script>
181 182 183<div style="display:none"> 184<input type="hidden" name="cmd" value="add" /> 185<input type="hidden" name="src" value="commerce" /> 186<input type="hidden" name="srctype" value="cart" /> 187<input type="hidden" name="back" value="products" /> 188<input type="hidden" name="refno" value="58702" /> 189<input type="hidden" name="category" value="donation" /> 190<input type="hidden" name="view" value="products" /> 191</div><div> 192 <div class="cart_add_qty">Quantity: <input type="text" name="quantity" size="2" value="1" class="shoppingFormQuantity" /> 193</div><br/> 194 <div class="cart_add_select"><div id="shoppingOption1"> 195 <span class="choice">Donation Amount: </span> 196 <select size="1" name="choice"> 197 <option value="14">$5</option> 198 <option value="15">$10</option> 199 <option value="16">$20</option> 200 <option value="17">$50</option> 201 <option value="18">$100</option> 202 <option value="13">$250</option> 203 <option value="7">$500</option> 204 <option value="8">$750</option> 205 <option value="9">$1000</option> 206 <option value="10">$1500</option> 207 <option value="11">$2000</option> 208 <option value="12">$2500</option> 209 </select> 210</div>
211<script type="text/javascript"> 212//<![CDATA[ 213CommerceOptions.fAddOptionSet({"7":{"sku":"Donation_500","price":"$500.00","status":"normal"},"8":{"sku":"Donation_750","price":"$750.00","status":"normal"},"9":{"sku":"Donation_1000","price":"$1,000.00","status":"normal"},"10":{"sku":"Donation_1500","price":"$1,500.00","status":"normal"},"11":{"sku":"Donation_2000","price":"$2,000.00","status":"normal"},"12":{"sku":"Donation_2500","price":"$2,500.00","status":"normal"},"13":{"sku":"Donation_250","price":"$250.00","status":"normal"},"14":{"sku":"Donation_5","price":"$5.00","status":"normal"},"15":{"sku":"Donation_10","price":"$10.00","status":"normal"},"16":{"sku":"Donation_20","price":"$20.00","status":"normal"},"17":{"sku":"Donation_50","price":"$50.00","status":"normal"},"18":{"sku":"Donation_100","price":"$100.00","status":"normal"}});//]]> 214</script>
214 215 216</div><br/> 217 <div class="cart_add_submit"><input type="submit" value="Add To Cart" name="Submit" /> 218</div><br/> 219</div> 220</form> 221 </div> 222 </div> 223</div> 224 225</div> 226 227<div class="pagination"><div style="text-align:center;width:100%;padding-top:10px" class="paginationText">Items 1-1 of 1 </div></div> 228<form method="POST" action="index.php" class="commerce_shoppingcart_mini"> 229 <input type="hidden" name="cmd" value="set" /> 230 <input type="hidden" name="src" value="directory" /> 231 <input type="hidden" name="srctype" value="cart" /> 232<input type="hidden" name="category" value="donation" /> 233<input type="hidden" name="view" value="products" /> 234<div class="shoppingCartMini"> 235<p>No Items in Cart!</p> 236</div> 237<style> 238 239p.details { 240 background: #eee; 241 padding: 1em; 242 font-size: 0.8em; 243} 244 245span.toggle-details { 246 float: right; 247} 248</style>
249<script> 250$(function(){ 251$('.cartItem .details').hide(); 252$('.product .info').append("<a href='javascript:void' class='toggle-details icon-info-sign'></a>"); 253$('.info .toggle-details').on('click', function(){ var num = $(this).parent().data('number'); $('#details'+num).toggle();}); 254}); 255 256</script>
256 257 258</form> 259</div> 260 </div> 261 262 </div> 263 </div> 264</div> 265 266 267<div id="footer"> 268 <div class="wrapper"> 269 <div><p><a href="https://www.urbanlibraries.org/privacy-policy" target="_blank" rel="noopener noreferrer">Privacy Policy</a> | ©2025 Urban Libraries Council | <a href="admin.php" target="_blank" rel="noopener noreferrer">Admin Login</a></p> 270<!-- category , name fname first_name cat today name website membership_contact_first_name -->
271<script>// <![CDATA[ 272let qs = document.querySelector.bind(document); 273let qsa = document.querySelectorAll.bind(document); 274let user_cat=''; 275/* Modify the Edit Profile page to work as an embed on the Higher Logic site */ 276if (window.location.href.indexOf("hlepembed=1") !== -1 ) { 277 if (elems = qsa("#header, #sidebar, #footer, div.breadcrumb, .tr_misc7, .tr_misc0, .tr_meta__contact_mname, .tr_attr__linkedin")) { 278 for (i=0; i<elems.length; i++) { 279 elems[i].style.display='none'; 280 } 281 } 282 if ( (elem = qs(".imageBoxContainer")) && (elem=elem.closest("tr")) ) { 283 elem.style.display='none'; 284 elem.nextElementSibling.style.display='none'; 285 elem.nextElementSibling.nextElementSibling.style.display='none'; 286 } 287 if (elem = document.form) elem.action = "index.php?hlepembed=1"; 288 if (elem = qs("a.myaccountButton.cancelButton") ) { 289 elem.setAttribute("onclick","window.close();return false;"); 290 elem.href="javascript:window.opener.focus();window.close(); return false;"; 291 } 292 293 /* Now fix the submission confirmation page */ 294 if (elem = qs(".myaccountMessage.defaultSuccess") ) { 295 elems = qsa("*"); 296 for (i=0; i<elems.length; i++) { 297 elems[i].style.visibility='hidden'; 298 } 299 elem.style.visibility="visible"; 300 elem.innerHTML = "Your profile has been successfully saved.<br>Please wait 15 minutes for your changes to take effect."; 301 newelem = document.createElement("a"); 302 newelem.innerText="OK"; 303 newelem.style.display="block"; 304 newelem.style.margin = "2em auto"; 305 newelem.style.width="fit-content"; 306 newelem.classList="button"; 307 elem.after(newelem); 308 newelem.style.visibility="visible"; 309 newelem.href="javascript:window.close()"; 310 } 311 312} 313 314 315/* Fix Timezones on Events 316 Look for "?tz=PDT" or similar at the end of the thumbnail src 317*/ 318 319$(".thumbnail img[src*='?tz=']").each(function(){ 320 var $el=$(this); 321 var tz=$el.attr("src").match(/\?tz=([A-Za-z0-9]*)/)[1]; 322 323 /* traverse to the Date line and replace the timezone indicated */ 324 $el.parent().next().find(".date").html(function(){ 325 $(this).html($(this).html().replace(/EST|EDT/,tz)); 326 console.log("Changed display to " + tz); 327 }); 328 329 /* replace the href of the "Add to Calendar" button with adjusted times */ 330 $("#eventRegister .button").each(function() { 331 var $btn=$(this); 332 var bHref=$btn.attr("href"); 333 334 /* fetch the current .vcs file */ 335 $.get(bHref, function( data ) { 336 337 /* search for date strings */ 338 var newData=data.replace(/:(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)Z/g, function(match, y, mo, d, h, min, s, offset, str) { 339 340 /* convert string to js date; note js months start with 0, so adjust accordingly */ 341 var oldDate= new Date(y,mo-1,d,h,min,s); 342 343 /* define adjustments for other timezones */ 344 var tzOffsets={'HST':5, 'HDT':5, 'HT':5, 'AST':4, 'ADT':4, 'AT':4, 'PST':3, 'PDT':3, 'PT':3, 'MST':2, 'MDT':2, 'MT':2, 'CST':1, 'CDT':1, 'CT':1, 'EST':0, 'EDT':0, 'ET':0}; 345 var useOS=(typeof tzOffsets[tz] !== "undefined") ? tzOffsets[tz] : 0; 346 var newDate = new Date(oldDate.getTime() + useOS*1000*60*60); 347 348 /* make new string */ 349 var formatted= ":" + newDate.getFullYear() + dpad((newDate.getMonth() + 1)) + dpad(newDate.getDate()) + 'T' + dpad(newDate.getHours()) + dpad(newDate.getMinutes()) + dpad(newDate.getSeconds()) + 'Z'; 350 return formatted; 351 }); 352 353 /* client-defined download */ 354 $btn.attr('href','data:application/x-vcalendar;charset=utf-8, ' + enc(newData)).attr('download', 'vcalendar.vcs'); 355 console.log("Adjusted downloadable .vcs file"); 356 357 /* What the heck, let's make a Google calendar button too */ 358 var title=newData.match(/SUMMARY;ENCODING=QUOTED-PRINTABLE:([^\r\n]*)[\r\n]/)[1].replaceAll('=0D=0A',' \r\n'); 359 var details=newData.match(/DESCRIPTION;ENCODING=QUOTED-PRINTABLE:([^\r\n]*)[\r\n]/)[1].replaceAll('=0D=0A',' \r\n'); 360 var location=newData.match(/LOCATION;ENCODING=QUOTED-PRINTABLE:([^\r\n]*)[\r\n]/)[1].replaceAll('=0D=0A',' \r\n'); 361 var dates=newData.match(/DTSTART:([\dTZ]{16})/)[1] + "/" + newData.match(/DTEND:([\dTZ]{16})/)[1]; 362 var gLink="https://calendar.google.com/calendar/r/eventedit?text=" + enc(title) + "&details=" + enc(details) + "&location=" + enc(location) + "&dates=" + enc(dates); 363 console.log("link is: " + gLink); 364 $btn.after("<a href='" + gLink + "' class='button light' target='_blank''>Add to Android/Google Calendar</a>"); 365 $btn.text("Add to Apple, Outlook, and Other Calendars").css("margin-right","1em"); 366 367 368 369 }); 370 }) 371 function dpad(num) { 372 return num.toString().padStart(2, 0); 373 } 374 function enc(str) { 375 return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
376 return '%' + c.charCodeAt(0).toString(16).toUpperCase(); 377 }); 378 } 379}); 380 381/* Change event not-logged-in text */ 382if ( elem = document.evaluate("//p[contains(strong,'Login for Member Only Pricing')]", 383 document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null). 384 singleNodeValue ) { 385 if ( document.getElementById("eventRegister") ) { 386 elem.outerHTML = ""; 387 } else { 388 elem.outerHTML = 389 '<p>' + 390 '<a class="button" ' + 391 'href="index.php?src=membership&srctype=myaccount&intended_url=referer">' + 392 'LOG IN' + 393 '</a> ' + 394 ' to register.' + 395 '</p>'; 396 } 397} 398 399/* Automatically log the person in if querystring includes "autologin=1" */ 400if (window.location.href.includes("autologin=1") && 401 (thebutton = qs("#sidebar a.button") ) && 402 thebutton.innerText == "LOGIN" 403) { 404 thebutton.click(); 405} 406 407/* Change Logout buttons and links to go to tools logout */ 408qsa("a[href*='cmd=logout']").forEach((el) => { 409 el.href="https://tools.urbanlibraries.org/oidc/logout.php"; 410}) 411 412/* Change Logo homepage link to link to www.urbanlibraries.org site */ 413qs("a#logo").href="https://www.urbanlibraries.org/"; 414 415/* Limit ULC Academy or donation items to Quantity:1 */ 416qsa("form.cart_add input[name='sku'][value^='ulca_'], form.cart_add input[name='category'][value='donation']").forEach( (el) => { 417 el.closest("form").querySelector("input[name='quantity']").value=1; 418 el.closest("form").querySelector("div.cart_add_qty").style.display='none'; 419}); 420/* Fix in Cart if somehow Quantity greater than 1 */ 421let ulca_refreshIt = false; 422qsa("a[href*='src=commerce'][href*='cmd=del'][href*='sku=ulca_'], a[href*='src=commerce'][href*='cmd=del'][href*='sku=Donation']").forEach( (el) => { 423 qtyBox = el.closest(".quantity").querySelector("input[type=text]"); 424 if (qtyBox.value > 1) { 425 ulca_refreshIt = qtyBox.form; 426 } 427 qtyBox.value=1; 428 qtyBox.readOnly=true; 429}); 430/* Submit form with new quantities if any have been changed */ 431if (ulca_refreshIt) { 432 ulca_refreshIt.submit(); 433} 434/* add submit button to all carts so people can change quantities */ 435if (el = qs("form.commerce_shoppingcart")) { 436 el.insertAdjacentHTML( 437 'beforeend', 438 "<input type='submit' style='position:fixed; left:10000px;'>" + 439 "<style>" + 440 "/* Fix trash can icon in cart */" + 441 "i.icon-trash:before {" + 442 " font-family: FontAwesome;" + 443 " content: '\\00f014';" + 444 " font-style: normal;" + 445 "}" + 446 ".cartQuantityControl {" + 447 " white-space: nowrap;" + 448 "}" + 449 "</style>" 450 ); 451 452 453 /* Fix broken #loginAsk.logged-in */ 454 if (qs("#sidebar a.button[href*='logout.php']") ) { 455 let loginAsk = qs("#loginAsk"); 456 if (loginAsk) loginAsk.classList.add('logged-in') 457 } 458}; 459 460/* If Cart or MiniCart contains donation, change Checkout button to invoke the donation checkout form */ 461if ( qs(".cartQuantityControl a[href*='sku=Donation'], .shoppingCartMini a[href*='products/donation']") ) { 462let co_button=qs(".shoppingCartButtons a[href*='forms/'], .shoppingCartMini a[href*='forms/']"); 463if (co_button) { 464 co_button.href = co_button.href.replace(/forms\/([^\/]+)($|\/)/, "forms/donation-form$2"); 465} 466} 467 468 469/* Change Product list page if the URL has "donation" in it */ 470if (window.location.href.match(/(\/|view=)products/) && window.location.href.match(/donation/) ) { 471 /* Change Heading */ 472 let el = qs("#content .productsModule.moduleLister>h1"); 473 if (el) el.innerHTML = 'Donate to Support ULC'; 474 475 /* remove product search row */ 476 el = qs("#content .productsModule.moduleLister>div:has(>form#form_products_search)"); 477 if (el) el.innerHTML = '<p>Thank you for supporting the Urban Libraries Council’s mission to strengthen public libraries as engines of literacy, learning, workforce readiness, digital access, and economic mobility.</p>' + 478 'ULC represents nearly <strong>200 leading public library systems</strong> across the United States and Canada, <strong>serving 138 million people</strong>. Your support is truly appreciated.</p>' + 479 '<ul><li>To make a donation by <strong>credit card</strong>, please use the cart function below. <ul><li>If you have a ULC Member Hub account, you can ' + 480 '<strong><a href="https://members.urbanlibraries.org/index.php?src=membership&srctype=myaccount&intended_url=referer">
480' + 481 'log in first</a></strong> to retrieve your information and associate your donation with your account.</li><li>' + 482 'Otherwise, you can <strong>continue as a guest user</strong>.</li></ul></li>' + 483 '<li>If you prefer, you may<ul><li>give us a call at <strong><a href="tel:+12027508650">202-750-8650</a></strong>, or</li><li>feel free to <strong>mail in a check</strong>, made out to Urban Libraries Council, to:' + 484 '<div style="margin-left:1em">Donations<br>'+ 485 'Urban Libraries Council<br>' + 486 '1333 H Street NW, Suite 1000 W<br>' + 487 'Washington DC, 20005</div></li></ul></li></ul>'; 488 489 /* remove HR */ 490 el = qs("#content .productsModule.moduleLister>hr"); 491 if (el) el.remove(); 492 493 /* Insert directions where product name would be */ 494 el = qs("#content .productsModule.moduleLister .listerItem>h2"); 495 if (el) el.outerHTML = "<hr><h2>Online Donation</h2><h5 style='color:#A33;'>Choose the amount to donate in the dropdown box to the right.</h5>"; 496 497 document.write('<style>#content .productsModule.moduleLister li {margin-bottom: 0.4em;margin-top: 0.4em;}</style>'); 498} 499 500else if (window.location.href.match(/(\/|view=)products/) ) { 501 /* Hide nonmember items if user is member; hide member items if user is nonmember; 502 Show message to login if they are not logged in 503 */ 504 /* If logged into members.urbanlibraries.org, there will be a cookie called "USERAUTH" */ 505 if (!document.cookie.match(/(^|;)\s*USERAUTH\s*=\s*[a-z0-9A-Z%]/)) { 506 let el = qs("#content div.productsModule"); 507 if (el) el.innerHTML= 508 '<h1>ULC Academy Access</h1>' + 509 '<p>To purchase an Academy product, you must first be logged in.</p>' + 510 '<ul>' + 511 '<li>If you already have an account please '+ 512 '<a href="https://members.urbanlibraries.org/index.php?src=membership&srctype=myaccount&intended_url=referer' + 513 '">' + 514 'login</a></li>' + 515 '<li>If you don’t yet have an account and you work for a ULC Member Library, you may ' + 516 '<a href="https://tools.urbanlibraries.org/library/selfadd.php?redirect=' + 517 encodeURIComponent(window.location.href) + '">' + 518 'create a member account here</a></li>' + 519 '<li>If you do not work for a ULC Member Library, you may ' + 520 '<a href="https://tools.urbanlibraries.org/academy/newaccount.php?redirect=' + 521 encodeURIComponent(window.location.href) + '">' + 522 'create a non-member account here</a></li>' + 523 '</ul>'; 524 } else if ( 525 !(uinfo = document.cookie.match(/(?:^|;)\s*ulc_user_info\s*=\s*([^;]*)(?:;|$)/ ))|| 526 !(uinfoj = JSON.parse(decodeURIComponent(uinfo[1])) ) || 527 !( uinfoj.roles) 528 ) { 529 /* User is logged into Accrisoft but not Tools; we need that cookie so log them into tools */ 530 qs("#content div.productsModule").innerHTML='<h1>Products</h1><p>Please wait, checking status...</p>'; 531 window.location = 'https://tools.urbanlibraries.org/oidc/loginandredirect.php?redirect=' + 532 encodeURIComponent(window.location.href); 533 534 } else { 535 let ismember = (uinfoj.roles.includes("IsMember")); 536 console.log("ismember = " + ismember); 537 if (ismember) { 538 /* Hide any nonmember product items */ 539 qsa("#content div.productsModule .listerItem").forEach( (el) => { 540 if (el.querySelector("input[name=sku][value*=nm_]")) { 541 if (theButton = el.querySelector("input[type=submit]") ) { 542 theButton.value="Not available to Members"; 543 theButton.disabled=true; 544 } else { 545 el.style.display="none"; 546 } 547 } 548 }) 549 } else { 550 /* Hide any academy items that aren't marked nm_ */ 551 qsa("#content div.productsModule .listerItem").forEach( (el) => { 552 if (el.querySelector("input[name=sku][value*=ulca_]:not([value*=nm_]), input[name=sku][value*=mo_]:not([value*=nm_])")) { 553 if (theButton = el.querySelector("input[type=submit]") ) { 554 theButton.value="Not available to Non members"; 555 theButton.disabled=true; 556 } else { 557 el.style.display="none"; 558 } 559 } 560 }) 561 } 562 563 564 565 } 566} 567// ]]></script>
567</div> 568 <a id="credits" target="_blank" href="https://www.accrisoft.com/">Website by Accrisoft</a> 569 <div class="clear"></div> 570 </div> 571</div> 572 573 574<div id="mobileBottom"><div id="backToTop">Back to top <span class="fa fa-arrow-circle-up"></span></div></div> 575
576<script>createMobileMenu();</script>
576 577 578 579<!-- Hotjar Tracking Code for https://www.urbanlibraries.org/ -->
580<script>
vendor: 125 bytes, lines 580-583
580 581 (function(h,o,t,j,a,r){ 582 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 583 h._hjSettings={hjid:
5833328351
vendor: 258 bytes, lines 583-588
583,hjsv:6}; 584 a=o.getElementsByTagName('head')[0]; 585 r=o.createElement('script');r.async=1; 586 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 587 a.appendChild(r); 588 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
589</script>
589 590 591</body> 592</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.