PageSourceSearch

https://tunabase.com/js/freefind.js

js tunabase.com collected 2026-10-02 14:07:41 UTC 6,747 bytes, 283 lines download raw bytes

1// JavaScript Document
2<!--
3var ffresults = {
4
5	// copyright 2008 - 2010 FreeFind.com - authorized for use with the FreeFind service only
6
7	// Start of config settings
8
9    autoPos : true,			// automatic initial window position / size. 
10
11	// if autoPos if false, the following four numbers are used as initial window position and size
12
13	initialX : 78,			// left position (pixels)
14	initialY : 66,			// right position (pixels)
15	initialH : 395,			// height of window
16	initialW : 622,			// width of window
17
18	// choose a number for z-index that is high enough so the results window appears above other windows on your page
19
20	initialZ : 10000000,    // initial z-index of the results window
21	
22	// the following value controls the color of the window's drag bar (top area of window)
23	
24	barColor : 'navy',
25
26	// end of config settings
27
28	element : undefined,
29	cover : undefined,
30	mouseDownX : 0,
31	mouseDownY : 0,
32	objectX : 0,
33	objectY : 0,
34	objectH : 0,
35	objectW : 0,
36    ipos : false,
37	resize : false,
38	
39	sizeImageUrl : 'http://search.freefind.com/img/rsize.gif',
40
41	selectFunc : undefined,
42	selectState : undefined,
43	mozSelect : undefined,
44
45	noSelect : function()
46	{
47	    var obj = document.body;
48
49        ffresults.selectFunc = obj.onselectstart;
50		ffresults.selectState = obj.unselectable;
51		ffresults.mozSelect = obj.style.MozUserSelect;
52
53		obj.onselectstart = function(){ return false; };
54		obj.unselectable = 'on';
55		obj.style.MozUserSelect = 'none';
56	},
57
58	restoreSelect : function()
59	{
60	    var obj = document.body;
61
62		obj.onselectstart = ffresults.selectFunc;
63		obj.unselectable = ffresults.selectState;
64		obj.style.MozUserSelect = ffresults.mozSelect;
65	},
66
67
68	drag : function (e,size)
69	{
70		if(!document.getElementById) return;
71		
72		if(!e) e = window.event;
73		var targ = e.target || e.srcElement;
74	    ffresults.resize = size;
75
76		if(targ.id != 'ffresult_bar' && targ.id != 'ffresult_szimg') return true;
77		ffresults.noSelect();
78
79		ffresults.element = document.getElementById('ffresult_win');
80		ffresults.objectX = parseInt(ffresults.element.style.left,10);
81		ffresults.objectY = parseInt(ffresults.element.style.top,10);
82		ffresults.objectH = parseInt(ffresults.element.style.height,10);
83		ffresults.objectW = parseInt(ffresults.element.style.width,10);
84
85		ffresults.cover = document.getElementById('ffresult_cvr');
86		ffresults.cover.style.zIndex = '40';
87		ffresults.mouseDownX = e.clientX;
88		ffresults.mouseDownY = e.clientY;
89		if(e.preventDefault) e.preventDefault();
90		e.returnValue = false;
91		e.cancelBubble = true;
92		ffresults.attach(document,"mouseup",ffresults.drop);
93		ffresults.attach(document,"mousemove",ffresults.move);
94	},
95
96
97
98
99	attach : function(to,eventname,func)
100	{
101		if(to.addEventListener) 
102			to.addEventListener(eventname,func,false);
103		else
104			to.attachEvent("on" + eventname,func);
105	},
106
107	detach : function(to,eventname,func)
108	{
109		if(to.removeEventListener) 
110			to.removeEventListener(eventname,func,false);
111		else
112			to.detachEvent("on" + eventname,func);
113	},
114
115	drop : function(e)
116	{
117		ffresults.detach(document,"mouseup",ffresults.drop);
118		ffresults.detach(document,"mousemove",ffresults.move);
119		ffresults.cover.style.zIndex = 0;	
120		ffresults.element = null;
121		ffresults.restoreSelect();
122	},
123
124	move: function(e)
125	{
126	   if(!e) e = window.event;
127
128	   e.returnValue = false;
129	   e.cancelBubble = true;
130	   if(e.preventDefault) e.preventDefault();
131
132		var x = e.clientX;
133		var y = e.clientY; 
134
135		if(ffresults.resize)
136		{
137			var winW = ffresults.objectW + x - ffresults.mouseDownX;
138			var winH = ffresults.objectH + y - ffresults.mouseDownY;
139			
140			if(winH < 128) winH = 128;
141			if(winW < 128) winW = 128;
142
143			ffresults.element.style.width = winW + "px";
144			ffresults.element.style.height = winH + "px";
145		}
146		else
147		{
148			var left = ffresults.objectX + x - ffresults.mouseDownX;
149			var top = ffresults.objectY + y - ffresults.mouseDownY;
150
151			ffresults.element.style.left = left + "px";
152			ffresults.element.style.top = top + "px";
153		}
154		
155
156	},
157
158	hide : function()
159	{
160		var rStyle = document.getElementById('ffresult_win').style;
161		rStyle.display = "none";
162		rStyle.zIndex = 0;
163		var ifr = document.getElementById('ffresult_ifr');
164		if(ifr) ifr.src="";
165		var szImg = document.getElementById('ffresult_szimg');
166		if(szImg) szImg.src = "";
167
168	},
169
170
171	show : function(num)
172	{
173		if(!document.getElementById) return;
174
175		var searchForm = document.getElementById('ffresult_sbox'+num);
176		var idxLink = document.getElementById('ffresult_idx'+num);
177		var smpLink = document.getElementById('ffresult_smp'+num);
178		var advLink = document.getElementById('ffresult_adv'+num);
179
180		if(searchForm) searchForm.target = 'ffresult_frame';
181		if(idxLink) idxLink.target = 'ffresult_frame';
182		if(smpLink) smpLink.target = 'ffresult_frame';
183		if(advLink) advLink.target = 'ffresult_frame';
184
185		var rDiv = document.getElementById('ffresult_win');
186
187		if(!ffresults.ipos)
188		{
189		    if(ffresults.autoPos)
190			{
191			    ffresults.computePos(rDiv); 
192			}
193			else
194			{
195				rDiv.style.top = ffresults.initialY + 'px';
196				rDiv.style.left = ffresults.initialX + 'px';
197				rDiv.style.width = ffresults.initialW + 'px';
198				rDiv.style.height = (ffresults.initialH - 36) + 'px';	
199			}
200			ffresults.ipos = true;
201		}
202
203		var szImg = document.getElementById('ffresult_szimg');
204		if(szImg) szImg.src = ffresults.sizeImageUrl;
205
206		var dragBar = document.getElementById('ffresult_bar');
207		if(dragBar) 
208		{
209			dragBar.style.backgroundColor = ffresults.barColor;
210			dragBar.style.borderColor = ffresults.barColor;
211		}
212
213		rDiv.style.zIndex = ffresults.initialZ;
214		rDiv.style.display = "block";
215	},
216
217
218
219	computePos : function(rDiv)
220	{
221
222		var view = ffresults.viewSize();
223		var w = parseInt(view.width * 0.75,10);
224		var h = parseInt(view.height * 0.75,10);
225		if(w < 220) w = 220;
226		if(h < 220) h = 220;
227
228
229		var left = parseInt((view.width - w ) / 2,10);
230		var top = parseInt((view.height - (h + 36)) / 2,10);
231
232
233		if(left < 0) left = 0;
234		if(top < 0) top = 0;
235
236		rDiv.style.top = (top + view.scrollY) + 'px';
237		rDiv.style.left =  (left + view.scrollX) + 'px';
238		rDiv.style.width =  w + 'px';
239		rDiv.style.height =  h + 'px';
240
241	},
242	
243	viewSize : function()
244	{   
245		var w = 0;
246		var h = 0;
247		var sx = 0;
248		var sy = 0;
249
250	    if(window.innerWidth)	
251		{  // non-ie
252		   w = window.innerWidth;
253		   h = window.innerHeight;
254		   sx = window.pageXOffset;
255		   sy = window.pageYOffset;
256		}
257		else
258		{
259		    var elem;
260			if(document.documentElement && document.documentElement.clientWidth != 0)
261			{   // ie strict
262				elem = document.documentElement;
263			}
264			else
265			{	// ie quirks
266				elem = document.body;
267			}
268			w = elem.clientWidth;
269			h = elem.clientHeight;
270			sx = elem.scrollLeft;
271			sy = elem.scrollTop;
272			
273		}
274		  
275		
276		return {width: w,height: h, scrollX: sx, scrollY: sy};
277		
278	}
279
280
281};
282
283//-->

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.