1function getQueryVariable(variable) { 2 var query = window.location.search.substring(1); 3 var vars = query.split("&"); 4 for (var i = 0; i < vars.length; i++) { 5 var pair = vars[i].split("="); 6 if (pair[0] == variable) { 7 return pair[1]; 8 } 9 } 10 return (false); 11} 12 13function setCookie(name, value, days) { 14 var expires = ""; 15 if (days) { 16 var date = new Date(); 17 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 18 expires = "; expires=" + date.toUTCString(); 19 } 20 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 21} 22 23function getCookie(name) { 24 var nameEQ = name + "="; 25 var ca = document.cookie.split(';'); 26 for (var i = 0; i < ca.length; i++) { 27 var c = ca[i]; 28 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 29 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 30 } 31 return null; 32} 33 34function eraseCookie(name) { 35 document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 36} 37 38 39(function($) { 40 $("body").addClass("loading"); 41 $(window).load(function() { 42 $("body").addClass("is-loaded"); 43 $("body").removeClass("loading"); 44 45 // init headroom 46 var headerEl = document.querySelector("header"); 47 if (headerEl) { 48 var headroom = new Headroom(headerEl); 49 headroom.init(); 50 } 51 52 // initial page scroll state 53 if (window.pageYOffset > 0) { 54 headerEl.classList.add('headroom--not-top'); 55 } 56 57 $('.showMenuButton').on('click', function(e) { 58 $('header').addClass('-menuVisible'); 59 }); 60 61 $('.hideMenuButton').on('click', function(e) { 62 $('header').removeClass('-menuVisible'); 63 }); 64 65 $('.headerExternalButtonSearchFocusInput').on('click', function(e) { 66 $('#search_form input').focus(); 67 }); 68 69 $('.toggleDescriptionButton').on('click', function(e) { 70 $('.shortDescription').hide(); 71 $('.longDescription').show(); 72 }); 73 74 $(document).keyup(function(e) { 75 if (e.key === "Escape") { 76 $('header').removeClass('-menuVisible'); 77 } 78 }); 79 80 $('#search_form').submit(function(e) { 81 e.preventDefault(); 82 var input = $('#header_external_search').val() 83 window.location.replace(`/search/?s=${input.replace(/&/g, '&').replace(/</g, '<').replace(/"/g, '"')}`); 84 }); 85 86 var textSearchVal = getQueryVariable('s'); 87 if (textSearchVal && textSearchVal.length) { 88 $('#header_external_search').val(textSearchVal); 89 } 90 91 $(".-categoriesMenu a").on("click", function(e) { 92 var $target = $(e.target); 93 var $parent = $target.closest('li'); 94 e.preventDefault(); 95 96 if (!$parent || $target.hasClass('active')) { 97 return null; 98 } 99 100 var categoryClass = $parent[0].className.split('_')[1]; 101 $(".-horizontalList-category").addClass('-hidden'); 102 $(`.-horizontalList-category.-horizontalList_${categoryClass}`).removeClass('-hidden'); 103 $(".-categoriesMenu .active").removeClass('active'); 104 $parent.addClass('active'); 105 }); 106 107 $(".-volumesMenu a").on("click", function(e) { 108 var $target = $(e.target); 109 var $parent = $target.closest('li'); 110 e.preventDefault(); 111 112 if (!$parent) { 113 return null; 114 } 115 116 var volumeClass = $parent[0].className.split('-')[2]; 117 $(".-horizontalList-volume").addClass('-hidden'); 118 $(`.-horizontalList-volume.-horizontalList_${volumeClass}`).removeClass('-hidden'); 119 $(".-volumesMenu .active").removeClass('active'); 120 $parent.addClass('active'); 121 }); 122 123 // initial volumes state (make not static in the future) 124 if ($(".-volumesMenu").length) { 125 $(".-horizontalList-volume.-horizontalList_volume_8").removeClass('-hidden'); 126 $(".-menuItem-volume_8").addClass('active'); 127 } 128 129 const initSidebarStick = () => { 130 if ($("#main_sidebar").length) { 131 const sidebar1 = new StickySidebar('#main_sidebar', { 132 topSpacing: 0, 133 bottomSpacing: 0, 134 resizeSensor: true, 135 }); 136 } 137 if ($("#main_sidebar_secondary").length) { 138 const sidebar2 = new StickySidebar('#main_sidebar_secondary', { 139 topSpacing: 0, 140 bottomSpacing: 0, 141 resizeSensor: true, 142 }); 143 } 144 }; 145 146 const removeSidebarStick = () => {
147 // TODO: reimplement this with new sticky sidebar package 148 // $("#sidebar").unstick(); 149 }; 150 151 if (window.innerWidth > 990) { 152 setTimeout(() => { 153 initSidebarStick(); 154 }, 300); 155 } 156 157 $(window).resize(() => { 158 if (window.innerWidth > 990) { 159 initSidebarStick(); 160 } else { 161 removeSidebarStick(); 162 } 163 }); 164 165 window.downloadPDF = () => { 166 $(".lazyload") 167 .removeClass("lazyload") 168 .addClass("lazyloaded"); 169 // window.scrollTo(0,document.body.scrollHeight); 170 setTimeout(() => { 171 // window.scrollTo(0,0); 172 window.print(); 173 }, 1000); 174 }; 175 if (window.location.hash === "#download") { 176 window.downloadPDF(); 177 } 178 179 setTimeout(() => { 180 if ($('body').hasClass('home')) { 181 $('.background').plaxify({ 182 "xRange": 20, 183 "yRange": 20 184 }); 185 $('.middle').plaxify({ 186 "xRange": 10, 187 "yRange": 10, 188 invert: true 189 }); 190 $('.foreground').plaxify({ 191 "xRange": 5, 192 "yRange": 5, 193 invert: true 194 }); 195 $.plax.enable(); 196 } else if ($('body').hasClass('error404')) { 197 $('.left').plaxify({ 198 "xRange": 40, 199 "yRange": 40, 200 invert: true 201 }); 202 $('.middle').plaxify({ 203 "xRange": 0, 204 "yRange": 0, 205 invert: true 206 }); 207 $('.right').plaxify({ 208 "xRange": 20, 209 "yRange": 20, 210 }); 211 $.plax.enable(); 212 } 213 }, 300); 214 215 }); 216 217 218 $(document).on("click", ".accordionMenuToggle", (e) => { 219 let $target = $(e.target); 220 let parent; 221 222 223 e.preventDefault(); 224 225 if (!$target.hasClass('accordionMenuToggle')) { 226 $target = $target.parent('.accordionMenuToggle'); 227 } 228 229 $parent = $target.parent('.accordionMenuItem'); 230 $parent.find('.accordionMenu').toggleClass('-hidden'); 231 $parent.toggleClass('-toggled'); 232 }); 233 234 $(document).on("click", ".tab", (e) => { 235 let $target = $(e.target); 236 const tabData = $target.data('tabname'); 237 238 e.preventDefault(); 239 240 $('.tab').removeClass('-active'); 241 $target.addClass('-active'); 242 243 if (tabData) { 244 $(".homepageContentFeed").addClass('-hidden'); 245 $(`.homepageContentFeed.-feed-${tabData}`).removeClass('-hidden'); 246 } 247 }); 248 249 250 $(".showMoreClassicsAtIssues").on("click", (e) => { 251 e.preventDefault(); 252 $(".olderIssues").removeClass("-hidden"); 253 }); 254 255 $("#accordion-section-custom_css").hide(); 256 257 /* 258 * Open and close the share dropdown menu 259 */ 260 $(".-shareButton").on("click", (e) => { 261 e.preventDefault(); 262 $("#book_share_links").show(); 263 }); 264 $(document).on("click", (e) => { 265 const $target = $(e.target); 266 if (!$target.hasClass("-shareButton") && !$target.parents('.-shareButton').length) { 267 $("#book_share_links").hide(); 268 } 269 }); 270 271 /* 272 * Add or remove a book from the Saved Bookshelf 273 */ 274 $(".-saveButton").on("click", (e) => { 275 e.preventDefault(); 276 if ($('.-saveButton').hasClass('-bookIsSaved')) { 277 $(".saveButtonText").text('Save'); 278 } else { 279 $(".saveButtonText").text('Saved'); 280 } 281 $(".-saveButton").toggleClass('-bookIsSaved'); 282 283 const bookID = $("#bookID").data().id; 284 285 $.post('/wp-json/chs/v1/bookshelf', { 286 bookID, 287 // _wpnonce: chsScriptVars.nonce, 288 }, (res) => { 289 console.log(res); 290 }); 291 }); 292 293})(jQuery);
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.