1/* --- BoxOver ---*/ 2 3if (typeof document.attachEvent!='undefined') { 4 window.attachEvent('onload',initboxOver); 5 document.attachEvent('onmousemove',moveMouse); 6 document.attachEvent('onclick',checkMove); } 7else { 8 window.addEventListener('load',initboxOver,false); 9 document.addEventListener('mousemove',moveMouse,false); 10 document.addEventListener('click',checkMove,false); 11} 12 13var oDv=document.createElement("div"); 14var dvHdr=document.createElement("div"); 15var dvBdy=document.createElement("div"); 16var windowlock,boxMove,fixposx,fixposy,lockX,lockY,fixx,fixy,ox,oy,boxLeft,boxRight,boxTop,boxBottom,evt,mouseX,mouseY,boxOpen,totalScrollTop,totalScrollLeft; 17boxOpen=false; 18ox=10; 19oy=10; 20lockX=0; 21lockY=0; 22 23function initboxOver() { 24 oDv.appendChild(dvHdr); 25 //oDv.appendChild(dvBdy); 26 oDv.style.position="absolute"; 27 oDv.style.visibility='hidden'; 28 document.body.appendChild(oDv); 29} 30 31function defHdrStyle() { 32 //dvHdr.innerHTML=' '+dvHdr.innerHTML; 33 //dvHdr.style.maxWidth='auto'; 34 dvHdr.style.width='150px'; 35 dvHdr.style.height='auto'; 36 dvHdr.style.fontFamily='Tahoma'; 37 dvHdr.style.fontSize='12px'; 38 dvHdr.style.border='0px solid #FFFFFF'; 39 dvHdr.style.padding='10px'; 40 dvHdr.style.color='#FFFFFF'; 41 dvHdr.style.background='none'; 42 dvHdr.style.filter='alpha(opacity=90)'; // IE 43 dvHdr.style.opacity='0.9'; // FF 44 //dvHdr.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'../images/cut.gif\')'; 45} 46 47function defBdyStyle() { 48 dvBdy.style.borderBottom='none'; 49 dvBdy.style.borderLeft='none'; 50 dvBdy.style.borderRight='none'; 51 dvBdy.style.width='auto'; 52 dvBdy.style.height='1px'; 53 dvBdy.style.padding='0'; 54 dvBdy.style.margin='0'; 55 dvBdy.style.color='#999999'; 56} 57 58function checkElemBO(txt) { 59if (!txt || typeof(txt) != 'string') return false; 60if ((txt.indexOf('header')>-1)&&(txt.indexOf('body')>-1)&&(txt.indexOf('[')>-1)&&(txt.indexOf('[')>-1)) 61 return true; 62else 63 return false; 64} 65 66function scanBO(curNode) { 67 if (checkElemBO(curNode.title)) { 68 curNode.boHDR=getParam('header',curNode.title); 69 curNode.boBDY=getParam('body',curNode.title); 70 curNode.boCSSBDY=getParam('cssbody',curNode.title); 71 curNode.boCSSHDR=getParam('cssheader',curNode.title); 72 curNode.IEbugfix=(getParam('hideselects',curNode.title)=='on')?true:false; 73 curNode.fixX=parseInt(getParam('fixedrelx',curNode.title)); 74 curNode.fixY=parseInt(getParam('fixedrely',curNode.title)); 75 curNode.absX=parseInt(getParam('fixedabsx',curNode.title)); 76 curNode.absY=parseInt(getParam('fixedabsy',curNode.title)); 77 curNode.offY=(getParam('offsety',curNode.title)!='')?parseInt(getParam('offsety',curNode.title)):10; 78 curNode.offX=(getParam('offsetx',curNode.title)!='')?parseInt(getParam('offsetx',curNode.title)):10; 79 curNode.fade=(getParam('fade',curNode.title)=='on')?true:false; 80 curNode.fadespeed=(getParam('fadespeed',curNode.title)!='')?getParam('fadespeed',curNode.title):0.1; 81 curNode.delay=(getParam('delay',curNode.title)!='')?parseInt(getParam('delay',curNode.title)):0; 82 if (getParam('requireclick',curNode.title)=='on') { 83 curNode.requireclick=true; 84 document.all?curNode.attachEvent('onclick',showHideBox):curNode.addEventListener('click',showHideBox,false); 85 document.all?curNode.attachEvent('onmouseover',hideBox):curNode.addEventListener('mouseover',hideBox,false); 86 } 87 else {// Note : if requireclick is on the stop clicks are ignored 88 if (getParam('doubleclickstop',curNode.title)!='off') { 89 document.all?curNode.attachEvent('ondblclick',pauseBox):curNode.addEventListener('dblclick',pauseBox,false); 90 } 91 if (getParam('singleclickstop',curNode.title)=='on') { 92 document.all?curNode.attachEvent('onclick',pauseBox):curNode.addEventListener('click',pauseBox,false); 93 } 94 } 95 curNode.windowLock=getParam('windowlock',curNode.title).toLowerCase()=='off'?false:true; 96 curNode.title=''; 97 curNode.hasbox=1; 98 } 99 else 100 curNode.hasbox=2; 101} 102 103 104function getParam(param,list) { 105 var reg = new RegExp('([^a-zA-Z]' + param + '|^' + param + ')\\s*=\\s*\\[\\s*(((\\[\\[)|(\\]\\])|([^\\]\\[]))*)\\s*\\]'); 106 var res = reg.exec(list); 107 var returnvar; 108 if(res) 109 return res[2].replace('[[','[').replace(']]',']'); 110 else 111 return ''; 112} 113 114function Left(elem){ 115 var x=0; 116 if (elem.calcLeft) 117 return elem.calcLeft; 118 var oElem=elem; 119 while(elem){ 120 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderLeftWidth))
120)&&(x!=0)) 121 x+=parseInt(elem.currentStyle.borderLeftWidth); 122 x+=elem.offsetLeft; 123 elem=elem.offsetParent; 124 } 125 oElem.calcLeft=x; 126 return x; 127 } 128 129function Top(elem){ 130 var x=0; 131 if (elem.calcTop) 132 return elem.calcTop; 133 var oElem=elem; 134 while(elem){ 135 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderTopWidth)))&&(x!=0)) 136 x+=parseInt(elem.currentStyle.borderTopWidth); 137 x+=elem.offsetTop; 138 elem=elem.offsetParent; 139 } 140 oElem.calcTop=x; 141 return x; 142 143} 144 145var ah,ab; 146function applyStyles() { 147 if(ab) 148 oDv.removeChild(dvBdy); 149 if (ah) 150 oDv.removeChild(dvHdr); 151 dvHdr=document.createElement("div"); 152 dvBdy=document.createElement("div"); 153 CBE.boCSSBDY?dvBdy.className=CBE.boCSSBDY:defBdyStyle(); 154 CBE.boCSSHDR?dvHdr.className=CBE.boCSSHDR:defHdrStyle(); 155 dvHdr.innerHTML=CBE.boHDR; 156 dvBdy.innerHTML=CBE.boBDY; 157 ah=false; 158 ab=false; 159 if (CBE.boHDR!='') { 160 oDv.appendChild(dvHdr); 161 ah=true; 162 } 163 if (CBE.boBDY!=''){ 164 oDv.appendChild(dvBdy); 165 ab=true; 166 } 167} 168 169var CSE,iterElem,LSE,CBE,LBE, totalScrollLeft, totalScrollTop, width, height ; 170var ini=false; 171 172// Customised function for inner window dimension 173function SHW() { 174 if (document.body && (document.body.clientWidth !=0)) { 175 width=document.body.clientWidth; 176 height=document.body.clientHeight; 177 } 178 if (document.documentElement && (document.documentElement.clientWidth!=0) && (document.body.clientWidth + 20 >= document.documentElement.clientWidth)) { 179 width=document.documentElement.clientWidth; 180 height=document.documentElement.clientHeight; 181 } 182 return [width,height]; 183} 184 185 186var ID=null; 187function moveMouse(e) { 188 //boxMove=true; 189 e?evt=e:evt=event; 190 191 CSE=evt.target?evt.target:evt.srcElement; 192 193 if (!CSE.hasbox) { 194 // Note we need to scan up DOM here, some elements like TR don't get triggered as srcElement 195 iElem=CSE; 196 while ((iElem.parentNode) && (!iElem.hasbox)) { 197 scanBO(iElem); 198 iElem=iElem.parentNode; 199 } 200 } 201 202 if ((CSE!=LSE)&&(!isChild(CSE,dvHdr))&&(!isChild(CSE,dvBdy))){ 203 if (!CSE.boxItem) { 204 iterElem=CSE; 205 while ((iterElem.hasbox==2)&&(iterElem.parentNode)) 206 iterElem=iterElem.parentNode; 207 CSE.boxItem=iterElem; 208 } 209 iterElem=CSE.boxItem; 210 if (CSE.boxItem&&(CSE.boxItem.hasbox==1)) { 211 LBE=CBE; 212 CBE=iterElem; 213 if (CBE!=LBE) { 214 applyStyles(); 215 if (!CBE.requireclick) 216 if (CBE.fade) { 217 if (ID!=null) 218 clearTimeout(ID); 219 ID=setTimeout("fadeIn("+CBE.fadespeed+")",CBE.delay); 220 } 221 else { 222 if (ID!=null) 223 clearTimeout(ID); 224 COL=1; 225 ID=setTimeout("oDv.style.visibility='visible';ID=null;",CBE.delay); 226 } 227 if (CBE.IEbugfix) {hideSelects();} 228 fixposx=!isNaN(CBE.fixX)?Left(CBE)+CBE.fixX:CBE.absX; 229 fixposy=!isNaN(CBE.fixY)?Top(CBE)+CBE.fixY:CBE.absY; 230 lockX=0; 231 lockY=0; 232 boxMove=true; 233 ox=CBE.offX?CBE.offX:10; 234 oy=CBE.offY?CBE.offY:10; 235 } 236 } 237 else if (!isChild(CSE,dvHdr) && !isChild(CSE,dvBdy) && (boxMove)) { 238 // The conditional here fixes flickering between tables cells. 239 if ((!isChild(CBE,CSE)) || (CSE.tagName!='TABLE')) { 240 CBE=null; 241 if (ID!=null) 242 clearTimeout(ID); 243 fadeOut(); 244 showSelects(); 245 } 246 } 247 LSE=CSE; 248 } 249 else if (((isChild(CSE,dvHdr) || isChild(CSE,dvBdy))&&(boxMove))) { 250 totalScrollLeft=0; 251 totalScrollTop=0; 252 253 iterElem=CSE; 254 while(iterElem) { 255 if(!isNaN(parseInt(iterElem.scrollTop))) 256 totalScrollTop+=parseInt(iterElem.scrollTop); 257 if(!isNaN(parseInt(iterElem.scrollLeft))) 258 totalScrollLeft+=parseInt(iterElem.scrollLeft); 259 iterElem=iterElem.parentNode; 260 } 261 if (CBE!=null) { 262 boxLeft=Left(CBE)-totalScrollLeft; 263 boxRight=parseInt(Left(CBE)+CBE.offsetWidth)-totalScrollLeft; 264 boxTop=Top(CBE)-totalScrollTop; 265 boxBottom=parseInt(Top(CBE)+CBE.offsetHeight)-totalScrollTop; 266 doCheck(); 267 } 268 } 269 270 if (boxMove&&CBE) { 271 // This added to alleviate bug in IE6 w.r.t DOCTYPE 272 bodyScrollTop=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop; 273 bodyScrollLet=document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft; 274 mouseX=evt.pageX?evt.pageX-bodyScrollLet:evt.clientX-document.body.clientLeft; 275 mouseY=evt.pageY?evt.pageY-bodyScrollTop:evt.clientY-document.body.clientTop; 276 if ((CBE)&&(CBE.windowLock)) { 277 mouseY < -oy?lockY=-mouseY-oy:lockY=0; 278 mouseX < -ox?lockX=-mouseX-ox:lockX=0; 279 mouseY > (SHW()[1]-oDv.offsetHeight-oy)?lockY=-mouseY+SHW()[1]-oDv.offsetHeight-oy:lockY=lockY; 280 mouseX > (SHW()[0]-dvBdy.offsetWidth-ox)?lockX=-mouseX-ox+SHW()[0]-dvBdy.offsetWidth:lockX=lockX; 281 } 282 oDv.style.left=((fixposx)||(fixposx==0))?fixposx:bodyScrollLet+mouseX+ox+lockX+"px"; 283 oDv.style.top=((fixposy)||(fixposy==0))?fixposy:bodyScrollTop+mouseY+oy+lockY+"px"; 284 285 } 286} 287 288function doCheck() { 289 if ( (mouseX < boxLeft) || (mouseX >boxRight) || (mouseY < boxTop) || (mouseY > boxBottom)) { 290 if (!CBE.requireclick) 291 fadeOut(); 292 if (CBE.IEbugfix) {showSelects();} 293 CBE=null; 294 } 295} 296 297function pauseBox(e) { 298 e?evt=e:evt=event; 299 boxMove=false; 300 evt.cancelBubble=true; 301} 302 303function showHideBox(e) { 304 oDv.style.visibility=(oDv.style.visibility!='visible')?'visible':'hidden'; 305} 306 307function hideBox(e) { 308 oDv.style.visibility='hidden'; 309} 310 311var COL=0; 312var stopfade=false; 313function fadeIn(fs) { 314 ID=null; 315 COL=0; 316 oDv.style.visibility='visible'; 317 fadeIn2(fs); 318} 319 320function fadeIn2(fs) { 321 COL=COL+fs; 322 COL=(COL>1)?1:COL; 323 oDv.style.filter='alpha(opacity='+parseInt(100*COL)+')'; 324 oDv.style.opacity=COL; 325 if (COL<1) 326 setTimeout("fadeIn2("+fs+")",10); 327} 328 329 330function fadeOut() { 331 oDv.style.visibility='hidden'; 332 333} 334 335function isChild(s,d) { 336 while(s) { 337 if (s==d) 338 return true; 339 s=s.parentNode; 340 } 341 return false;
342} 343 344var cSrc; 345function checkMove(e) { 346 e?evt=e:evt=event; 347 cSrc=evt.target?evt.target:evt.srcElement; 348 if ((!boxMove)&&(!isChild(cSrc,oDv))) { 349 fadeOut(); 350 if (CBE&&CBE.IEbugfix) {showSelects();} 351 boxMove=true; 352 CBE=null; 353 } 354} 355 356function showSelects(){ 357 var elements = document.getElementsByTagName("select"); 358 for (i=0;i< elements.length;i++){ 359 elements[i].style.visibility='visible'; 360 } 361} 362 363function hideSelects(){ 364 var elements = document.getElementsByTagName("select"); 365 for (i=0;i< elements.length;i++){ 366 elements[i].style.visibility='hidden'; 367 } 368}
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.