PageSourceSearch

https://t.08quan.com/js/function.js

js 08quan.com collected 2026-10-09 04:28:21 UTC 21,299 bytes, 533 lines download raw bytes

1var ajax = new AJAX();ajax.setcharset("utf-8");
2function reportErr(id){openWin("/"+sitePath+"err.php?id="+id,400,220,350,250,0)}
3
4function AddFav(vid,uid)
5{
6	ajax.get( 
7		"/"+sitePath+"include/ajax.php?action=addfav&id="+vid+"&uid="+uid,
8		function(obj) {
9			if (obj.responseText=="err"){
10				alert("请先登录!");
11				location.href="/"+sitePath+"login.php";
12			}else{
13				alert("收藏成功!");
14			}
15		}
16	);
17}
18
19function viewComment(id,page){
20	var url;
21	if (page.length==0){url=id;}else{url="/"+sitePath+"comment.php?id="+id+"&page="+page;}
22	ajax.get( 
23		url,
24		function(obj) {
25			if (obj.responseText=="err"){
26				set(document.getElementById("comment_list"),"<font color='red'>发生错误</font>")	
27			}else{
28				set(document.getElementById("comment_list"),obj.responseText)	
29			}
30		}
31	);		
32}
33
34function submitComment(id){
35	if(document.getElementById("username").value.length<1){alert('请填写昵称');return false;}
36	if(document.getElementById("msg").value.length<1){alert('请填写内容');return false;}
37	ajax.postf(
38		document.getElementById("f_comment"),
39		function(obj){if(obj.responseText=="ok"){viewComment(id,1);alert('感谢您的评论!');}else if(obj.responseText=="validateerr"){alert('验证码错误,请点击验证码图片更新验证码!');}else if(obj.responseText=="havecomment"){alert('发布过于频繁,请稍后再操作!');}else if(obj.responseText=="ipcomment"){alert('您所在的ip不能评论');}else if(obj.responseText=="wordcomment"){alert('您的评论中有禁用词语,不能评论');}/*else{alert(obj.responseText);}*/}
40	);
41}
42
43function diggVideo(id,div){
44	ajax.get(
45		"/"+sitePath+"include/ajax.php?id="+id+"&action=digg",
46		function (obj){
47			var returnValue=Number(obj.responseText)
48			if (!isNaN(returnValue)){set(document.getElementById(div),returnValue);alert('成功顶贴!');}else if(obj.responseText=="err"){alert('顶贴失败')}else if(obj.responseText=="havescore"){alert('您已经执行过顶踩操作!')}	
49		}
50	);	
51}
52
53function treadVideo(id,div){
54	ajax.get(
55		"/"+sitePath+"include/ajax.php?id="+id+"&action=tread",
56		function (obj){
57			var returnValue=Number(obj.responseText)
58			if(!isNaN(returnValue)){set(document.getElementById(div),returnValue);alert('踩贴成功!');}else if(obj.responseText=="err"){alert('踩贴失败')}	else if(obj.responseText=="havescore"){alert('您已经执行过顶踩操作!')}	
59		}
60	);	
61}
62
63function diggNews(id,div){
64	ajax.get("/"+sitePath+"include/ajax.php?id="+id+"&action=diggnews",function (obj){
65			var returnValue=Number(obj.responseText)
66			if (!isNaN(returnValue)){set(document.getElementById(div),returnValue);alert('成功顶贴!');}else if(obj.responseText=="err"){alert('顶贴失败')}else if(obj.responseText=="havescore"){alert('您已经执行过顶踩操作!')}	
67		}
68	);
69}
70
71function treadNews(id,div){
72	ajax.get("/"+sitePath+"include/ajax.php?id="+id+"&action=treadnews",function (obj){
73			var returnValue=Number(obj.responseText)
74			if(!isNaN(returnValue)){set(document.getElementById(div),returnValue);alert('踩贴成功!');}else if(obj.responseText=="err"){alert('踩贴失败')}	else if(obj.responseText=="havescore"){alert('您已经执行过顶踩操作!')}	
75		}
76	);	
77}
78
79function alertFrontWin(zindex,width,height,alpha,str){
80	openWindow(zindex,width,height,alpha)
81	set(document.getElementById("msgbody"),str)
82}
83
84function getAspParas(suffix){
85	var cur_url=location.href;
86	var urlParas=location.search;
87	if (cur_url.indexOf("?")>0){
88		
89		if(cur_url.indexOf("-")>0){
90			return urlParas.substring(1,urlParas.indexOf(suffix)).split('-');
91		}
92		else
93		{
94			var tmpurl = cur_url.split("?");
95			var mytemp = tmpurl[1]; 
96			var superx = mytemp.split("&");
97			var myarr = new Array(superx[0],superx[1],superx[2]);		
98			return myarr;	
99		}
100	}else{
101		return cur_url.substring(cur_url.lastIndexOf("/")+1,cur_url.indexOf(suffix)).split('-')	//伪静态
102	}
103}
104
105function getHtmlParas(suffix){
106		var cur_url=location.href;
107		return cur_url.substring(cur_url.lastIndexOf("/")+1,cur_url.indexOf(suffix)).split('-')	//静态
108
109		//var urlParas=location.href;
110		//var tempurl = urlParas.replace("http://",""); //去掉 http
111		//tempurl = tempurl.replace("//","/"); //避免出现双杠现象
112		//var temparr = tempurl.split('/'); //通过 / 划分数组
113		//var hosturl = "http://" + temparr[0]; // 主域名
114		//var filename = temparr[temparr.length-1]; //文件名
115		//var middle = "";
116		//var filearr = filename.split('-');
117		//middle = urlParas.replace(filename,"")+filearr[0];
118		//var myarr = new Array(middle,filearr[1],filename.split('.')[0].split('-')[2]);
119		//return myarr;
120}
121
122function handleParas(para1,para2){
123	var i,fromArray,len1,len2,urlArray,j,dataStr,dataArray
124	if (isNaN(para1) || isNaN(para2)){return false}
125	fromArray=VideoInfoList.split('$$$')
126	len1=fromArray.length;if(para2>len1-1){para2=len1-1}
127	for (i=0;i<len1;i++){if (para2==i){urlArray=fromArray[i].split('$$')[1].split('#');len2=urlArray.length;if(para1>len2-1){para1=len2-1};for (j=0;j<len2;j++){if (para1==j){dataStr=urlArray[j];dataArray=dataStr.split('$');return dataArray}}}}
128}
129
130
131function regexpSplice(url,pattern,spanstr) {
132   pattern.exec(url);
133   return (RegExp.$1+spanstr+ RegExp.$2);
134}
135
136function getPageValue(pageGoName){
137	var pageGoArray,i,len,pageValue
138	pageGoArray=getElementsByName('input',pageGoName) ; len=pageGoArray.length
139	for(i=0;i<len;i++){
140		pageValue=pageGoArray[i].value;
141		if(pageValue.length>0){return pageValue;}
142	}
143	return ""
144}
145
146function getPageGoUrl(maxPage,pageDiv,type,listpagename){
147	var str,goUrl
148	var url=location.href
149	pageNum=getPageValue(pageDiv)
150	if (pageNum.length==0||isNaN(pageNum)){alert('输入页码非法');return false;}
151	if(pageNum>maxPage){pageNum=maxPage;}
152	if(pageNum<1){pageNum=1;}
153	switch (type){
154		case 1 :
155			//dynamic
156			//http://127.0.0.1/xxxx/?1.html ; http://127.0.0.1/xxxx/?1-2.html
157			str=(pageNum==1)?'':"-"+pageNum;
158			goUrl=regexpSplice(url,/(\/\/\S+\?\d+)[-]{0,1}\d*(\.html|\.htm|\.shtml|\.shtm|\.asp)/,str);
159			break;
160		case 2 :
161			//dir1
162			//http://127.0.0.1/xxxx/xxxx.html ; http://127.0.0.1/xxxx/xxxx2.html
163			if(url.lastIndexOf("/")==(url.length-1)){url+=listpagename}
164			str=(pageNum==1)?'':pageNum;;
165			goUrl=regexpSplice(url,/(\/\/\S+?)[\d]*(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str);
166			break;
167		case 3 :
168			//dir2
169			//http://127.0.0.1/xxxx/1.html ; http://127.0.0.1/xxxx/1_2.html
170			str=(pageNum==1)?'':"_"+pageNum;
171			goUrl=(url.split('_').length<3)?regexpSplice(url,/(\/\/\S+\d+?)(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str):regexpSplice(url,/(\/\/\S+\d+?)_\d+(\.html|\.htm|\.shtml|\.shtm|\.asp)/,str);
172			if(goUrl.indexOf('//')==-1){goUrl=regexpSplice(url,/(\/\/\S+_\d+?)(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str);}
173			break;
174		case 5 :
175			//zt
176			//http://127.0.0.1/topiclist/?5.html ; http://127.0.0.1/topiclist/?5-2.html
177			//http://127.0.0.1/topiclist/xxx.html ; http://127.0.0.1/topiclist/xxx-2.html
178			str=(pageNum==1)?'':"-"+pageNum;
179			goUrl=(url.split('-').length<2)?regexpSplice(url,/(\/\/\S+\d+?)(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str):regexpSplice(url,/(\/\/\S+\d+?)-\d+(\.html|\.htm|\.shtml|\.shtm|\.asp)/,str);
180			if(goUrl.indexOf('//')==-1){goUrl=regexpSplice(url,/(\/\/\S+\d+?)(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str);}
181			break;
182		case 6 :
183			//forged
184			str=(pageNum==1)?'':"-"+pageNum;
185			goUrl=regexpSplice(url,/(\/\/\S+?)[-]{0,1}[\d]{0,1}(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str);
186			break;
187		case 7:
188			//ztindex
189			//http://127.0.0.1/topic/?1.html
190			str=pageNum;
191			goUrl=regexpSplice(url,/(\/\/\S+\?+?)\d+(\.html|\.htm|\.shtml|\.shtm|\.asp|\.php)/,str);
192			break;
193			}
194	location.href=goUrl;
195}
196
197function goSearchPage(maxPage,pageDiv,searchtype,searchword){
198	var pageNum=getPageValue(pageDiv)
199	if (pageNum.length==0||isNaN(pageNum)){alert('输入页码非法');return false;}
200	if(pageNum>maxPage){pageNum=maxPage;}
201	if(pageNum<1){pageNum=1;}
202	location.href='?page='+pageNum+'&searchword='+searchword+'&searchtype='+searchtype;
203}
204
205function goCascadePage(maxPage,pageDiv,searchwhere){
206	var pageNum=getPageValue(pageDiv)
207	if (pageNum.length==0||isNaN(pageNum)){alert('输入页码非法');return false;}
208	if(pageNum>maxPage){pageNum=maxPage;}
209	if(pageNum<1){pageNum=1;}
210	location.href='?page='+pageNum+'&'+searchwhere;
211}
212
213function leaveWord(){
214	if(document.getElementById("m_author").value.length<1){alert('昵称必须填写');return false;}
215	if(document.getElementById("m_content").value.length<1){alert('内容必须填写');return false;}
216	ajax.postf(
217		document.getElementById("f_leaveword"),
218		function(obj){if(obj.responseText=="ok"){viewLeaveWordList(1);alert('留言成功!');document.getElementById("m_content").value='';}else if(obj.responseText=="haveleave"){alert('发布过于频繁,请稍后再操作!');}else{alert('发生错误');}}
219	);
220}
221
222function leaveWordgbook(){
223	if(document.getElementById("vdcode").value.length<1){alert('验证码必须填写');return false;}
224	if(document.getElementById("m_content").value.length<1){alert('内容必须填写');return false;}
225	var obj=document.getElementById("m_content").value;
226	if(!(/.*[\u4e00-\u9fa5]+.*$/.test(obj)))
227	{alert("留言内容请包含中文!");return false;}
228	return true;
229}
230
231function leaveWordgbook2(){
232	if(document.getElementById("m_content").value.length<1){alert('内容必须填写');return false;}
233	var obj=document.getElementById("m_content").value;
234	if(!(/.*[\u4e00-\u9fa5]+.*$/.test(obj)))
235	{alert("留言内容请包含中文!");return false;}
236	return true;
237}
238
239function getVideoHit(vid){
240	ajax.get(
241		"/"+sitePath+"include/ajax.php?action=hit&id="+vid,
242		function (obj){
243			var result=obj.responseText
244			if(result=="err"){set(document.getElementById('hit'),'发生错误')}else{set(document.getElementById('hit'),result);}
245		}
246	);				
247}
248
249function member()
250{
251	ajax.get( 
252		"/"+sitePath+"include/ajax.php?action=member",
253		function (obj){
254			var result=obj.responseText;
255			set(document.getElementById('seacms_member'),result);
256		}
257	);
258}
259
260function getNewsHit(nid){
261	ajax.get(
262		"/"+sitePath+"include/ajax.php?action=hitnews&id="+nid,
263		function (obj){
264			var result=obj.responseText
265			
266			if(result=="err"){set(document.getElementById('hit'),'发生错误')}else{set(document.getElementById('hit'),result);}
267		}
268	);		
269}
270
271function markscore0(vd,d,t,s,l,ac){
272	var alt=['很差','较差','还行','推荐','力荐'],url=ac=='news' ? ["/"+sitePath+"include/ajax.php?id="+vd+"&action=newsscore","/"+sitePath+"include/ajax.php?id="+vd+"&action=scorenews&score="] : ["/"+sitePath+"include/ajax.php?id="+vd+"&action=videoscore","/"+sitePath+"include/ajax.php?id="+vd+"&action=score&score="],
273	x=d,y=(Math.round(s / x * 100) / 100) || 0,id='BT'+(new Date()).getTime();
274	document.write('<div style="padding:5px 10px;border:1px solid #CCC">\
275			<div style="color:#000"><strong>我来评分(请您参与评分,体现您的观点)</strong></div>\
276			<div>共 <strong style="font-size:14px;color:red" id="MARK_B1"> '+x+' </strong> 个人评分, 平均分 <strong style="font-size:14px;color:red" id="MARK_B2"> '+y+' </strong>, 总得分 <strong style="font-size:14px;color:red" id="MARK_B3"> '+s+' </strong> <strong style="font-size:14px;color:red" id="MARK_B4"></strong></div>\
277			<div>');
278	for(var i=0;i<=l;i++) document.write('<input type="radio" name="score" id="sint'+i+'" value="1" title="'+alt[parseInt(i/l*(alt.length-1))]+'"/><label for="sint'+i+'">'+i+'</label>');
279	document.write('&nbsp;<input type="button" value=" 评分 " id="'+id+'" style="width:55px;height:21px"/>\
280			</div>\
281		</div>');
282	document.getElementById(id).onclick=function (){
283		for(var i=0;i<=l;i++) if(document.getElementById('sint'+i).checked)break;
284		if(i>l){alert('你还没选取分数');return;}
285		ajax.get(url[1]+i,function (obj){
286			if((''+obj.responseText).indexOf("havescore")!=-1){
287				alert('你已经评过分啦');
288			}else{
289				document.getElementById('MARK_B4').innerHTML="评分成功!";
290
291				alert('感谢你的参与!');
292			}
293		});
294		this.disabled=true;
295	}
296	if(new Date().toGMTString()!=new Date(document.lastModified).toGMTString()) return ajax.get(url[0],function (obj){
297		var a=obj.responseText
298		try{
299			a.replace(/\[(\d+),(\d+),(\d+)\]/i,function ($0,d,t,s){
300				var x=parseInt(d),y=(Math.round(parseInt(s) / x * 100) / 100) || 0;
301				document.getElementById('MARK_B1').innerHTML=x;
302				document.getElementById('MARK_B2').innerHTML=y;
303				document.getElementById('MARK_B3').innerHTML=s;
304			});
305		}catch(ig){}
306	});
307}
308function showpf()
309	{document.getElementById('seacmsvpf1').style.display="none";document.getElementById('seacmsvpf2').style.display="inline";}
310function markscore1(vd,d,t,s,l,ac){
311	var alt=['很差','较差','还行','推荐','力荐'],src=['/'+sitePath+'pic/star0.gif','/'+sitePath+'pic/star1.gif'],url=ac=='news' ? ["/"+sitePath+"include/ajax.php?id="+vd+"&action=newsscore","/"+sitePath+"include/ajax.php?id="+vd+"&action=scorenews&score="] : ["/"+sitePath+"include/ajax.php?id="+vd+"&action=videoscore","/"+sitePath+"include/ajax.php?id="+vd+"&action=score&score="],
312	x=d,y=(Math.round(s / x * 100) / 100) || 0,id='STAR'+(new Date()).getTime();
313	document.write('<span id="'+id+'" style="padding:5px">');
314	
315	document.write('<span id="seacmsvpf1" onmouseover=showpf()></span>');
316	document.write('<span id="seacmsvpf2">');
317	for(var i=1;i<=l;i++){
318		document.write('<img id="'+i+'" src="'+src[i<=y ? 0 : 1]+'" title="'+alt[parseInt(i/l*(alt.length-1))]+'" style="cursor:pointer">');
319	}
320	document.write('</span>');
321	document.write('&nbsp;<strong style="font-size:14px;color:red" id="MARK_B2"></strong>(<span id="MARK_B3"></span>)</span>');
322	var dc=document.getElementById(id),im=dc.getElementsByTagName('img');
323	for(var i=0;i<im.length;i++){
324		im[i].onclick=function (){
325			var x=parseInt(this.id);
326			ajax.get(url[1]+x,function (obj){
327				if((''+obj.responseText).indexOf("havescore")!=-1){
328					alert('你已经评过分啦');
329				}else{
330					alert('感谢你的参与!');
331					y=x;dc.onmouseout();
332				}
333			});
334		}
335		im[i].onmouseover=function (){
336			var x=parseInt(this.id);
337			for(var i=0;i<im.length;i++) im[i].src=src[x>=parseInt(im[i].id) ? 0 : 1];
338		}
339	}
340	dc.onmouseout=function (){
341		for(var i=0;i<im.length;i++) im[i].src=src[y>=parseInt(im[i].id) ? 0 : 1];
342		document.getElementById('MARK_B2').innerHTML=y;document.getElementById('MARK_B3').innerHTML=y>0 ? alt[parseInt(y/l*(alt.length-1))] : '请选择' ;
343	}
344	if(new Date().toGMTString()!=new Date(document.lastModified).toGMTString()) return ajax.get(url[0],function (obj){
345		var a=obj.responseText
346		try{
347			a.replace(/\[(\d+),(\d+),(\d+)\]/i,function ($0,d,t,s){
348				var x=parseInt(d);y=(Math.round(parseInt(s) / x * 100) / 100) || 0;
349				dc.onmouseout();
350			});
351		}catch(ig){}
352	});
353	dc.onmouseout();
354}
355
356
357function markNews2(vid,style,len){
358
359	ajax.get(
360		"/"+sitePath+"include/ajax.php?action=npingfen&id="+vid,
361		function (obj){
362			var result=obj.responseText;
363			result=result.split(",");
364			num=result[0];
365			sum=result[1];
366			sc=result[2];
367			if(style==1){
368			//星星评分
369			document.getElementById('seacmsvpf2').style.display="none";
370			id='STAR'+(new Date()).getTime();
371			for(var ii=1;ii<=len;ii++){
372			if(ii>sc){p=1;}else{p=0;}
373			document.getElementById('seacmsvpf1').innerHTML+='<img iid='+ii+' src="/pic/star'+p+'.gif" style="cursor:pointer">';
374			}
375			document.getElementById('MARK_B2').innerHTML=sc;
376			document.getElementById('MARK_B3').innerHTML=''+num+'次评分';
377			}else{
378			//单选评分
379			document.getElementById('MARK_B2').innerHTML=sc;
380			document.getElementById('MARK_B3').innerHTML=sum;
381			document.getElementById('MARK_B1').innerHTML=num;
382			}
383		}
384	);			
385}
386
387
388
389function markNews(vd,d,t,s,l,c){
390	window['markscore'+(c==1 ? 1 : 0)](vd,d,t,s,parseInt(l)<0 ? 5 : l,'news');
391}
392
393
394function markVideo2(vid,style,len){
395
396	ajax.get(
397		"/"+sitePath+"include/ajax.php?action=vpingfen&id="+vid,
398		function (obj){
399			var result=obj.responseText;
400			result=result.split(",");
401			num=result[0];
402			sum=result[1];
403			sc=result[2];
404			if(style==1){
405			//星星评分
406			document.getElementById('seacmsvpf2').style.display="none";
407			id='STAR'+(new Date()).getTime();
408			for(var ii=1;ii<=len;ii++){
409			if(ii>sc){p=1;}else{p=0;}
410			document.getElementById('seacmsvpf1').innerHTML+='<img iid='+ii+' src="/pic/star'+p+'.gif" style="cursor:pointer">';
411			}
412			document.getElementById('MARK_B2').innerHTML=sc;
413			document.getElementById('MARK_B3').innerHTML=''+num+'次评分';
414			}else{
415			//单选评分
416			document.getElementById('MARK_B2').innerHTML=sc;
417			document.getElementById('MARK_B3').innerHTML=sum;
418			document.getElementById('MARK_B1').innerHTML=num;
419			}
420		}
421	);			
422}
423
424
425
426
427function markVideo(vd,d,t,s,l,c){
428	window['markscore'+(c==1 ? 1 : 0)](vd,d,t,s,parseInt(l)<0 ? 5 : l);
429}
430
431function addFavorite(sURL, sTitle){
432	try{ window.external.addFavorite(sURL, sTitle);}
433		catch (e){
434			try{window.sidebar.addPanel(sTitle, sURL, "");}
435			catch (e)
436				{alert("加入收藏失败,请使用Ctrl+D进行添加");}
437		}
438}
439
440function setHome(obj,vrl,url){
441    try{obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
442	this.style.behavior='url(#default#homepage)';this.setHomePage(url);}
443        catch(e){
444            if(window.netscape){
445                try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}  
446                   catch (e){alert("此操作被浏览器拒绝!请手动设置");}
447                   var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
448                   prefs.setCharPref('browser.startup.homepage',vrl);
449             }
450      }
451}
452
453function addFace(id) {
454	document.getElementById('m_content').value += '[ps:' + id +']';
455}
456
457function openWin(url,w,h,left,top,resize){
458	window.open(url,'New_Win','toolbars=0, scrollbars=0, location=0, statusbars=0,menubars=0, resizable='+(resize)+',width='+w+',height='+h+',left='+left+',top='+top);
459}
460
461function loadSlide(w,h){
462	var type=1   //type=0不显示幻灯片右侧列表;type=1显示幻灯片右侧列表
463	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="'+w+'" height="'+h+'"><param name="movie" value="/'+sitePath+'pic/slide/slide.swf" /><param name="quality" value="high"><param   name="wmode"   value="transparent"><param name="allowscriptaccess" value="always"><param name="allowfullscreen" value="true"><param name="flashvars" value="type='+type+'&domain=/'+sitePath+'pic/slide/"><embed src="/'+sitePath+'pic/slide/slide.swf" flashvars="type='+type+'&domain=/'+sitePath+'pic/slide/" quality="high" pluginspage="//www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" allowfullscreen="true" width="'+w+'" height="'+h+'"></embed></object>');
464}
465
466function stringReplaceAll(str,findstr,replacestr){var raRegExp = new RegExp(findstr,"g");return str.replace(raRegExp,replacestr);}
467
468function addRemoteFavor(){
469	ajax.get(
470		"/"+sitePath+"include/ajax.php?action=favorAjax&id="+play_vid+"&faction=add",
471		function (obj){alert(obj.responseText)}
472	);
473}
474
475var base64DecodeChars = new Array(
476    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
477    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
478    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
479    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
480    -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
481    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
482    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
483    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); 
484
485function base64decode(str) {
486    var c1, c2, c3, c4;
487    var i, len, out;
488
489    len = str.length;
490    i = 0;
491    out = "";
492    while(i < len) {
493    /* c1 */
494    do {
495        c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
496    } while(i < len && c1 == -1);
497    if(c1 == -1)
498        break;
499
500    /* c2 */
501    do {
502        c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
503    } while(i < len && c2 == -1);
504    if(c2 == -1)
505        break;
506
507    out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
508
509    /* c3 */
510    do {
511        c3 = str.charCodeAt(i++) & 0xff;
512        if(c3 == 61)
513        return out;
514        c3 = base64DecodeChars[c3];
515    } while(i < len && c3 == -1);
516    if(c3 == -1)
517        break;
518
519    out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
520
521    /* c4 */
522    do {
523        c4 = str.charCodeAt(i++) & 0xff;
524        if(c4 == 61)
525        return out;
526        c4 = base64DecodeChars[c4];
527    } while(i < len && c4 == -1);
528    if(c4 == -1)
529        break;
530    out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
531    }
532    return out;
533}

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.