PageSourceSearch

http://audiobookbay.fi/js/main.js

js audiobookbay.fi collected 2026-09-30 15:01:42 UTC 21,078 bytes, 659 lines download raw bytes

1$(document).ready(function() {
2	//Add megnet link
3	if ($('td:contains("Info Hash:")').length > 0 || $('td:contains("Info:")').length > 0) {
4		var torDown = $('a:contains("Torrent Free Downloads")');
5		if (torDown.length == 1)
6		{
7			torDown.after(' | <a id="magnetLink" href="javascript:void(0)">Magnet</a> <a id="magnetIcon" title="magnet link"><img src="/images/magnet.gif" /></a>');
8			$('#magnetIcon').hide();
9		}
10	}
11	if ($('audio').length > 0){
12		var playerwidth = 156;
13		
14		var attr = $('.postContent .center a img').attr("width");
15		// attribute exists?
16		if(attr !== undefined && attr !== false) {
17			playerwidth = $('.postContent .center a img').attr("width");
18		} 
19		
20		//if($('audio').attr('src').indexOf('audible') > -1 || $('audio').attr('src').indexOf('bigfinish') > -1 || $('audio').attr('src').indexOf('blacklibrary') > -1)
21		//{
22			//var sample = $('audio').attr('src');
23			//var playerhtml = '<iframe src="https://loving-clarke-58dd81.netlify.com/?w='+playerwidth+'&s='+sample+'" style="width: '+playerwidth+'px;height:30px;margin:0 auto;display:block;" frameBorder="0"></iframe>';
24		//}
25		//else
26		//{
27			var playerhtml = '<div class="player" style="width: '+playerwidth+'px"><div class="info"><div class="name">Sample<div class="btns"><div class="iconfont play-pause icon-play"></div></div></div></div><div class="progress"></div></div>';			
28		//}
29		$('.postContent .center a img').parent().after(playerhtml);
30			
31		 var aud = $('audio')[0];
32		  $('.play-pause').on('click', function(){
33			  if (aud.paused) {
34				aud.play();
35				$('.play-pause').removeClass('icon-play');
36				$('.play-pause').addClass('icon-stop');
37			  }
38			  else {
39				aud.pause();
40				$('.play-pause').removeClass('icon-stop');
41				$('.play-pause').addClass('icon-play');
42			  }
43		  })
44		  aud.ontimeupdate = function(){
45			$('.progress').css('width', aud.currentTime / aud.duration * 100 + '%')
46		  }
47	}
48	
49	var searchString = getUrlParameter("s");
50	if (searchString != "")
51	{
52		$("#searchform").children("input").val(decodeURI(searchString));
53	}
54	var searchCat = getUrlParameter("cat");
55	if (searchCat != "")
56	{
57		searchCat = decodeURIComponent(searchCat);
58		if(searchCat.includes(","))
59		{			
60			var cats = searchCat.split(",");
61			for (i = 0; i < cats.length; ++i) {
62				if(cats[i]>0)
63					$("select#cat").val(cats[i]);	
64				else
65					$("select#ec").val(cats[i]);
66			}
67		}
68		else
69		{
70			if(searchCat>0)
71				$("select#cat").val(searchCat);	
72			else
73				$("select#ec").val(searchCat);	
74		}		
75	}
76	
77	$('.re-ab').each(function(i, obj) {
78    	var str = $(this).text();
79		$(this).html(Base64.decode(str));
80		$(this).show();	
81	});	
82	
83	$(".topButton a").click(function(){
84        $(".overlay").toggle();
85		$(".overlay-wrap").toggle();
86		$(".topSearch").toggle();	
87		$(".topMenu").toggle();	
88		$("#lsidebar").children("ul").children("li.leftCat").toggle();	
89       $(this).toggleClass('btn-open').toggleClass('btn-close');
90    });
91	
92	$(".leftCat").click(function(){
93		if (document.body.clientWidth < 720)
94		{
95		   $(this).children("ul").toggle();
96		   $(this).toggleClass('closeCat').toggleClass('openCat');
97		}
98    });	
99	
100	var offset = 300,
101		//browser window scroll (in pixels) after which the "back to top" link opacity is reduced
102		offset_opacity = 1200,
103		//duration of the top scrolling animation (in ms)
104		scroll_top_duration = 700,
105		//grab the "back to top" link
106		$back_to_top = $('.cd-top');
107
108	//hide or show the "back to top" link
109	$(window).scroll(function(){
110		( $(this).scrollTop() > offset ) ? $back_to_top.addClass('cd-is-visible') : $back_to_top.removeClass('cd-is-visible cd-fade-out');
111		if( $(this).scrollTop() > offset_opacity ) { 
112			$back_to_top.addClass('cd-fade-out');
113		}
114	});
115
116	//smooth scroll to top
117	$back_to_top.on('click', function(event){
118		event.preventDefault();
119		$('body,html').animate({
120			scrollTop: 0 ,
121		 	}, scroll_top_duration
122		);
123	});
124	
125	configureMenus();
126	
127		
128});   			
129	
130function getUrlParameter(sParam)
131{
132    var sPageURL = window.location.search.substring(1);
133    var sURLVariables = sPageURL.split('&');
134    for (var i = 0; i < sURLVariables.length; i++) 
135    {
136        var sParameterName = sURLVariables[i].split('=');
137        if (sParameterName[0] == sParam) 
138        {
139            return sParameterName[1].replace(/\+/g, " ");
140        }
141    }
142    return "";
143}
144
145var Base64 = {
146
147
148    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
148+/=",
149
150
151    encode: function(input) {
152        var output = "";
153        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
154        var i = 0;
155
156        input = Base64._utf8_encode(input);
157
158        while (i < input.length) {
159
160            chr1 = input.charCodeAt(i++);
161            chr2 = input.charCodeAt(i++);
162            chr3 = input.charCodeAt(i++);
163
164            enc1 = chr1 >> 2;
165            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
166            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
167            enc4 = chr3 & 63;
168
169            if (isNaN(chr2)) {
170                enc3 = enc4 = 64;
171            } else if (isNaN(chr3)) {
172                enc4 = 64;
173            }
174
175            output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
176
177        }
178
179        return output;
180    },
181
182
183    decode: function(input) {
184        var output = "";
185        var chr1, chr2, chr3;
186        var enc1, enc2, enc3, enc4;
187        var i = 0;
188
189        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
190
191        while (i < input.length) {
192
193            enc1 = this._keyStr.indexOf(input.charAt(i++));
194            enc2 = this._keyStr.indexOf(input.charAt(i++));
195            enc3 = this._keyStr.indexOf(input.charAt(i++));
196            enc4 = this._keyStr.indexOf(input.charAt(i++));
197
198            chr1 = (enc1 << 2) | (enc2 >> 4);
199            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
200            chr3 = ((enc3 & 3) << 6) | enc4;
201
202            output = output + String.fromCharCode(chr1);
203
204            if (enc3 != 64) {
205                output = output + String.fromCharCode(chr2);
206            }
207            if (enc4 != 64) {
208                output = output + String.fromCharCode(chr3);
209            }
210
211        }
212
213        output = Base64._utf8_decode(output);
214
215        return output;
216
217    },
218
219    _utf8_encode: function(string) {
220        string = string.replace(/\r\n/g, "\n");
221        var utftext = "";
222
223        for (var n = 0; n < string.length; n++) {
224
225            var c = string.charCodeAt(n);
226
227            if (c < 128) {
228                utftext += String.fromCharCode(c);
229            }
230            else if ((c > 127) && (c < 2048)) {
231                utftext += String.fromCharCode((c >> 6) | 192);
232                utftext += String.fromCharCode((c & 63) | 128);
233            }
234            else {
235                utftext += String.fromCharCode((c >> 12) | 224);
236                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
237                utftext += String.fromCharCode((c & 63) | 128);
238            }
239
240        }
241
242        return utftext;
243    },
244
245    _utf8_decode: function(utftext) {
246        var string = "";
247        var i = 0;
248        var c = c1 = c2 = 0;
249
250        while (i < utftext.length) {
251
252            c = utftext.charCodeAt(i);
253
254            if (c < 128) {
255                string += String.fromCharCode(c);
256                i++;
257            }
258            else if ((c > 191) && (c < 224)) {
259                c2 = utftext.charCodeAt(i + 1);
260                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
261                i += 2;
262            }
263            else {
264                c2 = utftext.charCodeAt(i + 1);
265                c3 = utftext.charCodeAt(i + 2);
266                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
267                i += 3;
268            }
269
270        }
271
272        return string;
273    }
274
275}
276$("#include_a").click(function() {
277	if($(this).hasClass('close')){
278	   $(this).removeClass("close")
279       $(this).addClass("open");
280    }else{
281       $(this).removeClass("open")
282       $(this).addClass("close");
283    }
284	$("#include_inner").toggle();
285});
286$("#exclude_a").click(function() {
287	if($(this).hasClass('close')){
288	   $(this).removeClass("close")
289       $(this).addClass("open");
290    }else{
291       $(this).removeClass("open")
292       $(this).addClass("close");
293    }
294	$("#exclude_inner").toggle();
295});
296$("#search_in_a").click(function() {
297	if($(this).hasClass('close')){
298	   $(this).removeClass("close")
299       $(this).addClass("open");
300    }else{
301       $(this).removeClass("open")
302       $(this).addClass("close");
303    }
304	$("#search_in_inner").toggle();
305});
306$('#include_checkall').click(function() {
307	if($('#include_checkall').is(':checked')) {
308    	$('#include_inner input:checkbox').prop('checked', true);
309	} else {
310		$('#include_inner input:checkbox').prop('checked', false);
311	}
312});
313$('#exclude_checkall').click(function() {
314	if($('#exclude_checkall').is(':checked')) {
315    	$('#exclude_inner input:checkbox').prop('checked', true);
316	} else {
317		$('#exclude_inner input:checkbox').prop('checked', false);
318	}
319});
320
321$("#searchform").on( "submit", function() {
322	if($('select#ec').val() == "0")
323		$('select#ec').attr('disabled', true);
324	if($('select#cat').val() == "0")
325		$('select#cat').attr('disabled', true);
326	if($('select#cat').attr('disabled') != "disabled" && $('select#ec').attr('disabled') != "disabled" )
327	{
328		var cat1 = Number($('select#ec').val());
329		var cat2 = Number($('select#cat').val());
330		if( cat1 + cat2 != 0)
331			$("#searchform").append("<input type='hidden' name='cat' value='"+$('select#cat').val()+","+$('select#ec').val()+"'>");
332		$('select#ec').attr('disabled', true);
333		$('select#cat').attr('disabled', true);
334	}
335	$('#searchform input.s').val (function () {
336		var res = this.value.toLowerCase();
337		res = res.replace(/\+/gi, " ");
338		res = res.replace(/\-/, " ");
339		res = res.replace(/\%26/, " ");
340		res = res.replace(/\&/, " ");
341		res = res.replace(/\:/, " ");
342		return $.trim(res);
343	})
344	$('#asearchform').attr('disabled', true)
345});
346$("#searchform a.searchSubmit").on( "click", function() {
347	$('#searchform input.s').val (function () {
348		var res = this.value.toLowerCase();
349		res = res.replace(/\+/gi, " ");
350		res = res.replace(/\-/, " ");
351		res = res.replace(/\%26/, " ");
352		res = res.replace(/\&/, " ");
353		res = res.replace(/\:/, " ");
354		return $.trim(res);
355	})
356	if($('select#ec').val() == "0")
357		$('select#ec').attr('disabled', true);
358	if($('select#cat').val() == "0")
359		$('select#cat').attr('disabled', true);
360	if($('select#cat').attr('disabled') != "disabled" && $('select#ec').attr('disabled') != "disabled" )
361	{
362		var cat1 = Number($('select#ec').val());
363		var cat2 = Number($('select#cat').val());
364		if( cat1 + cat2 != 0)
365			$("#searchform").append("<input type='hidden' name='cat' value='"+$('select#cat').val()+","+$('select#ec').val()+"'>");
366		$('select#ec').attr('disabled', true);
367		$('select#cat').attr('disabled', true);
368	}
369	$('#asearchform').attr('disabled', true)
370});
371$("#asearchform").on( "submit", function() {	
372	var liste_tt = "";
373	if($('#search_in_inner input:checkbox:checked').length != $('#search_in_inner input:checkbox').length){
374		var liste_tt = $('#search_in_inner input:checkbox:checked').map(function() {
375			return this.value;
376		}).get();
377	}
378	if(liste_tt != "")
379	{
380		var the_tt = liste_tt + "";
381		$("#asearchform").append("<input type='hidden' name='tt' value='"+the_tt+"'>");
382	}
383	$('input[name=tt\\[\\]]').attr('disabled', true);	
384	var liste_in = "";
385	if($('#include_inner input:checkbox:checked').length != $('#include_inner input:checkbox').length){
386		var liste_in = $('#include_inner input:checkbox:checked').map(function() {
387			return this.value;
388		}).get();
389	}
390	$('input[name=include_cat\\[\\]]').attr('disabled', true);
391	$('#include_checkall').attr('disabled', true);
392	var liste_ex = "";
393	if ($("#exclude_inner input:checkbox:checked").length > 0)
394	{
395		var liste_ex = $('#exclude_inner input:checkbox:checked').map(function() {
396			return this.value;
397		}).get();
398	}
399	$('input[name=exclude_cat\\[\\]]').attr('disabled', true);
400	$('#exclude_checkall').attr('disabled', true);
401	if(liste_in != "" || liste_ex != "")
402	{
403		var the_cat = liste_in + "," + liste_ex;
404		if(the_cat[0] == ','){
405			the_cat = the_cat.substring(1);
406		}
407		$("#asearchform").append("<input type='hidden' name='cat' value='"+the_cat+"'>");
408	}
409	$('#asearchform input.s').val (function () {
410		var res = this.value.toLowerCase();
411		res = res.replace(/\+/gi, " ");
412		res = res.replace(/\-/, " ");
413		res = res.replace(/\%26/, " ");
414		res = res.replace(/\&/, " ");
415		res = res.replace(/\:/, " ");
416		if($('#exact_match').is(':checked')){
417			if(res[0] != '"' || res[res.length - 1] != '"'){
418				$.trim(res);
419				res = '"'+res+'"';
420			}
421		}
422		$('#exact_match').attr('disabled', true);	
423		return $.trim(res);
424	})
425	$('#searchform').attr('disabled', true);	
426});
427$("#asearchform a.searchSubmit").on( "click", function() {
428	var liste_tt = "";
429	if($('#search_in_inner input:checkbox:checked').length != $('#search_in_inner input:checkbox').length){
430		var liste_tt = $('#search_in_inner input:checkbox:checked').map(function() {
431			return this.value;
432		}).get();
433	}
434	if(liste_tt != "")
435	{
436		var the_tt = liste_tt + "";
437		$("#asearchform").append("<input type='hidden' name='tt' value='"+the_tt+"'>");
438	}
439	$('input[name=tt\\[\\]]').attr('disabled', true);	
440	var liste_in = "";
441	if($('#include_inner input:checkbox:checked').length != $('#include_inner input:checkbox').length){
442		var liste_in = $('#include_inner input:checkbox:checked').map(function() {
443			return this.value;
444		}).get();
445	}
446	$('input[name=include_cat\\[\\]]').attr('disabled', true);
447	$('#include_checkall').attr('disabled', true);
448	var liste_ex = "";
449	if ($("#exclude_inner input:checkbox:checked").length > 0)
450	{
451		var liste_ex = $('#exclude_inner input:checkbox:checked').map(function() {
452			return this.value;
453		}).get();
454	}
455	$('input[name=exclude_cat\\[\\]]').attr('disabled', true);
456	$('#exclude_checkall').attr('disabled', true);
457	if(liste_in != "" || liste_ex != "")
458	{
459		var the_cat = liste_in + "," + liste_ex;
460		if(the_cat[0] == ','){
461			the_cat = the_cat.substring(1);
462		}
463		$("#asearchform").append("<input type='hidden' name='cat' value='"+the_cat+"'>");
464	}
465	$('#asearchform input.s').val (function () {
466		var res = this.value.toLowerCase();
467		res = res.replace(/\+/gi, " ");
468		res = res.replace(/\-/, " ");
469		res = res.replace(/\%26/, " ");
470		res = res.replace(/\&/, " ");
471		res = res.replace(/\:/, " ");
472		if($('#exact_match').is(':checked')){
473			if(res[0] != '"' || res[res.length - 1] != '"'){
474				$.trim(res);
475				res = '"'+res+'"';
476			}
477		}
478		$('#exact_match').attr('disabled', true);	
479		return $.trim(res);
480	})
481	$('#searchform').attr('disabled', true);
482});
483$("#categories-toggle").on('click', function(eve){
484     eve.preventDefault(); 
485     $(this).toggleClass("down");
486	 $("#aSearch").toggle();
487});
488$('#searchform a.searchSubmit').click(function(){
489   if($.trim($('#searchform input.s').val()) == ''){
490      alert('Search can not be left blank.');
491	  return false;
492   }
493});
494$('#asearchform a.searchSubmit').click(function(){
495   if($.trim($('#asearchform input.s').val()) == ''){
496      alert('Search can not be left blank.');
497	  return false;
498   }
499});
500$('#searchform input.s').keydown(function (e) {
501    if (e.keyCode == 13 && $.trim($('#searchform input.s').val()) == '') {		
502        e.preventDefault();
503		alert('Search can not be left blank.');
504        return false;		
505    }
506});
507$('#asearchform input.s').keydown(function (e) {
508    if (e.keyCode == 13 && $.trim($('#asearchform input.s').val()) == '') {		
509        e.preventDefault();
510		alert('Search can not be left blank.');
511        return false;		
512    }
513});
514$('.related-audiobook').on('click', function(){
515	window.location.href = $(this).attr("dest");
516});
517$('.audiobook-tag').on('click', function(){
518	window.location.href = $(this).attr("dest");
519});
520
521$('.overlay').on('click', function(){
522    $(".overlay").toggle(); 
523	$(".overlay-wrap").toggle(); 
524	$(".topSearch").toggle();
525	$(".topMenu").toggle();	
526	$("#lsidebar").children("ul").children("li.leftCat").toggle();
527    $(".topButton a").toggleClass('btn-open').toggleClass('btn-close');
528$("#discord").css('zIndex', '99');
529    open = false;
530});
531$('.overlay-wrap').on('click', function(){
532    $(".overlay").toggle(); 
533	$(".overlay-wrap").toggle(); 
534	$(".topSearch").toggle();
535	$(".topMenu").toggle();	
536	$("#lsidebar").children("ul").children("li.leftCat").toggle();
537    $(".topButton a").toggleClass('btn-open').toggleClass('btn-close');
538$("#discord").css('zIndex', '9999');
539    open = false;
540});
541
542$('body').on('click', '#magnetLink', function() {
543	var infoHash = $('td:contains("Info:")');
544	var hash = $('td:contains("Info Hash:")');
545	if (infoHash.length == 1 || hash.length == 1)
546	{	
547		var hashCode = $('td:contains("Info:")').next().text();
548		$.ajax
549		({
550			url: "/download-magnet.php?h="+hashCode,
551			success : function(ajaxresult) 
552			{
553				if(ajaxresult!='invalid' && ajaxresult!='valid')
554				{
555					var data = "magnet:"
556						+ "?xt=urn:btih:" + ajaxresult
557						+ "&dn=" + encodeURIComponent($('h1').text())
558						+ "&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce"
559						+ "&tr=udp%3A%2F%2Fbittorrent-tracker.e-n-c-r-y-p-t.net%3A1337%2Fannounce"
560						+ "&tr=udp%3A%2F%2Fretracker01-msk-virt.corbina.net%3A80%2Fannounce"
561						+ "&tr=udp%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce"
562						+ "&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce"
563						+ "&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce"
564						+ "&tr=http%3A%2F%2Fipv4announce.sktorrent.eu%3A6969%2Fannounce"
565						+ "&tr=http%3A%2F%2Ftracker.bt4g.com%3A2095%2Fannounce"
566						+ "&tr=http%3A%2F%2Ftracker.mywaifu.best%3A6969%2Fannounce"				
567						;
568					$('#magnetIcon').attr("href", data);				
569					$('#magnetIcon').show(500);				
570				}
571				else if (ajaxresult=='invalid')
572				{
573					var url = window.location.pathname; 
574					window.location='/member/login.php?r='+url;
575				}
576				else if (ajaxresult=='valid')
577				{
578					var data = "magnet:"
579						+ "?xt=urn:btih:" + $('td:contains("Info Hash:")').next().text()
580						+ "&dn=" + encodeURIComponent($('h1').text())
581						+ "&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969"
582						+ "&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969"
583						+ "&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce"
584						+ "&tr=udp%3A%2F%2Ftracker.open-internet.nl%3A6969%2Fannounce"
585						+ "&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A69691337%2Fannounce"
586						+ "&tr=udp%3A%2F%2Ftracker.vanitycore.co%3A6969%2Fannounce"
587						+ "&tr=http%3A%2F%2Ftracker.baravik.org%3A6970%2Fannounce"
588						+ "&tr=http%3A%2F%2Fretracker.telecom.by%3A80%2Fannounce"
589						+ "&tr=http%3A%2F%2Ftracker.vanitycore.co%3A6969%2Fannounce"					
590						;
591					$('#magnetIcon').attr("href", data);				
592					$('#magnetIcon').show(500);	
593				}
594			}
595		});
596	}
597});
598function configureMenus() {
599		// variable to hold current window state - small, medium, or large
600		 var windowState = 'large';
601		  
602		  // check intital width of the screen, respond with appropriate menu
603		 var sw = document.body.clientWidth;
604		 if (sw < 720) {
605			 smMenu();
606			 if($(".topMenu li:contains('Advanced Search')").length == 0){$(".topMenu li:contains('Forum')").after('<li><a href="/member/advanced_search" title="Advanced search">Advanced Search</a></li>');}
607		 } else if (sw >= 721 && sw <= 988) {
608				 medMenu();
609		 } else {
610				 lgMenu();
611			  };
612		  
613		  // take care of resizing the window
614		  $(window).resize(function() {
615			  var sw = document.body.clientWidth;
616			  if (sw < 720 && windowState != 'small') {
617				 smMenu();
618				 if($(".topMenu li:contains('Advanced Search')").length == 0){$(".topMenu li:contains('Forum')").after('<li><a href="/member/advanced_search" title="Advanced search">Advanced Search</a></li>');}
619			  }
620			  if (sw >= 721 && sw <= 988 && windowState != 'medium') {
621				 if($(".topMenu li:contains('Advanced Search')").length > 0){$(".topMenu li:contains('Advanced Search')").remove();} 
622				 medMenu();
623			  }  
624			  if (sw > 988 && windowState != 'large') {
625				 if($(".topMenu li:contains('Advanced Search')").length > 0){$(".topMenu li:contains('Advanced Search')").remove();} 
626				 lgMenu();
627			  } 
628		  });
629
630	function smMenu() {
631		$(".topMenu").hide();		
632		$(".topSearch").hide();
633		$("#lsidebar").children("ul").children("li.leftCat").hide();
634		$(".topButton a").addClass('btn-open').removeClass('btn-close');
635		$(".leftCat").addClass('closeCat').removeClass('openCat');
636		$("#lsidebar").children("ul").children("li.leftCat").children("ul").hide();
637		windowState = 'small';
638	}
639	
640	function medMenu() {		
641		$(".topMenu").show();
642		$(".topSearch").show();
643		$("#lsidebar").children("ul").children("li.leftCat").show();
644		$("#lsidebar").children("ul").children("li.leftCat").children("ul").show();
645		$(".overlay-wrap").hide();
646		$(".overlay").hide();			
647		windowState = 'medium';
648	}
649	
650	function lgMenu() {		
651		$(".topMenu").show();
652		$(".topSearch").show();
653		$("#lsidebar").children("ul").children("li.leftCat").show();
654		$("#lsidebar").children("ul").children("li.leftCat").children("ul").show();
655		$(".overlay-wrap").hide();
656		$(".overlay").hide();
657		windowState = 'large';
658	}
659}

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.