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.