/* --- BoxOver --- /* --- v 2.1 17th June 2006 By Oliver Bryant with help of Matthew Tagg http://boxover.swazz.org */ if (typeof document.attachEvent!='undefined') { window.attachEvent('onload',init); document.attachEvent('onmousemove',moveMouse); document.attachEvent('onclick',checkMove); } else { window.addEventListener('load',init,false); document.addEventListener('mousemove',moveMouse,false); document.addEventListener('click',checkMove,false); } var oDv=document.createElement("div"); var dvHdr=document.createElement("div"); var dvBdy=document.createElement("div"); var windowlock,boxMove,fixposx,fixposy,lockX,lockY,fixx,fixy,ox,oy,boxLeft,boxRight,boxTop,boxBottom,evt,mouseX,mouseY,boxOpen,totalScrollTop,totalScrollLeft; boxOpen=false; ox=10; oy=10; lockX=0; lockY=0; function init() { oDv.appendChild(dvHdr); oDv.appendChild(dvBdy); oDv.style.position="absolute"; oDv.style.visibility='hidden'; document.body.appendChild(oDv); } function defHdrStyle() { dvHdr.innerHTML='  '+dvHdr.innerHTML; dvHdr.style.fontWeight='bold'; dvHdr.style.width='250px'; dvHdr.style.fontFamily='Verdana, sans-serif'; dvHdr.style.border='1px solid #2C72E6'; dvHdr.style.padding='3px'; dvHdr.style.fontSize='10px'; dvHdr.style.color='#0066cc'; dvHdr.style.background='#F1F2FB'; dvHdr.style.filter='alpha(opacity=85)'; // IE dvHdr.style.opacity='0.95'; // FF } function defBdyStyle() { dvBdy.style.borderBottom='1px solid #005599'; dvBdy.style.borderLeft='1px solid #005599'; dvBdy.style.borderRight='1px solid #005599'; dvBdy.style.width='250px'; dvBdy.style.fontFamily='Verdana, sans-serif'; dvBdy.style.fontSize='11px'; dvBdy.style.padding='3px'; dvBdy.style.color='#202020'; dvBdy.style.background='#FEFEFE'; dvBdy.style.filter='alpha(opacity=85)'; // IE dvBdy.style.opacity='0.95'; // FF } function checkElemBO(txt) { if (!txt || typeof(txt) != 'string') return false; if ((txt.indexOf('header')>-1)&&(txt.indexOf('body')>-1)&&(txt.indexOf('[')>-1)&&(txt.indexOf('[')>-1)) return true; else return false; } function scanBO(curNode) { if (checkElemBO(curNode.title)) { curNode.boHDR=getParam('header',curNode.title); curNode.boBDY=unescape(getParam('body',curNode.title)); curNode.boCSSBDY=getParam('cssbody',curNode.title); curNode.boCSSHDR=getParam('cssheader',curNode.title); curNode.IEbugfix=(getParam('hideselects',curNode.title)=='on')?true:false; curNode.fixX=parseInt(getParam('fixedrelx',curNode.title)); curNode.fixY=parseInt(getParam('fixedrely',curNode.title)); curNode.absX=parseInt(getParam('fixedabsx',curNode.title)); curNode.absY=parseInt(getParam('fixedabsy',curNode.title)); curNode.offY=(getParam('offsety',curNode.title)!='')?parseInt(getParam('offsety',curNode.title)):10; curNode.offX=(getParam('offsetx',curNode.title)!='')?parseInt(getParam('offsetx',curNode.title)):10; curNode.fade=(getParam('fade',curNode.title)=='on')?true:false; curNode.fadespeed=(getParam('fadespeed',curNode.title)!='')?getParam('fadespeed',curNode.title):0.12; curNode.delay=(getParam('delay',curNode.title)!='')?parseInt(getParam('delay',curNode.title)):0; if (getParam('requireclick',curNode.title)=='on') { curNode.requireclick=true; document.all?curNode.attachEvent('onclick',showHideBox):curNode.addEventListener('click',showHideBox,false); document.all?curNode.attachEvent('onmouseover',hideBox):curNode.addEventListener('mouseover',hideBox,false); } else {// Note : if requireclick is on the stop clicks are ignored if (getParam('doubleclickstop',curNode.title)!='off') { document.all?curNode.attachEvent('ondblclick',pauseBox):curNode.addEventListener('dblclick',pauseBox,false); } if (getParam('singleclickstop',curNode.title)=='on') { document.all?curNode.attachEvent('onclick',pauseBox):curNode.addEventListener('click',pauseBox,false); } } curNode.windowLock=getParam('windowlock',curNode.title).toLowerCase()=='off'?false:true; curNode.title=''; curNode.hasbox=1; } else curNode.hasbox=2; } function getParam(param,list) { var reg = new RegExp('([^a-zA-Z]' + param + '|^' + param + ')\\s*=\\s*\\[\\s*(((\\[\\[)|(\\]\\])|([^\\]\\[]))*)\\s*\\]'); var res = reg.exec(list); var returnvar; if(res) return res[2].replace('[[','[').replace(']]',']'); else return ''; } function Left(elem){ var x=0; if (elem.calcLeft) return elem.calcLeft; var oElem=elem; while(elem){ if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderLeftWidth)))&&(x!=0)) x+=parseInt(elem.currentStyle.borderLeftWidth); x+=elem.offsetLeft; elem=elem.offsetParent; } oElem.calcLeft=x; return x; } function Top(elem){ var x=0; if (elem.calcTop) return elem.calcTop; var oElem=elem; while(elem){ if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderTopWidth)))&&(x!=0)) x+=parseInt(elem.currentStyle.borderTopWidth); x+=elem.offsetTop; elem=elem.offsetParent; } oElem.calcTop=x; return x; } var ah,ab; function applyStyles() { if(ab) oDv.removeChild(dvBdy); if (ah) oDv.removeChild(dvHdr); dvHdr=document.createElement("div"); dvBdy=document.createElement("div"); CBE.boCSSBDY?dvBdy.className=CBE.boCSSBDY:defBdyStyle(); CBE.boCSSHDR?dvHdr.className=CBE.boCSSHDR:defHdrStyle(); dvHdr.innerHTML=CBE.boHDR; dvBdy.innerHTML=CBE.boBDY; ah=false; ab=false; if (CBE.boHDR!='') { oDv.appendChild(dvHdr); ah=true; } if (CBE.boBDY!=''){ oDv.appendChild(dvBdy); ab=true; } } var CSE,iterElem,LSE,CBE,LBE, totalScrollLeft, totalScrollTop, width, height ; var ini=false; // Customised function for inner window dimension function SHW() { if (document.body && (document.body.clientWidth !=0)) { width=document.body.clientWidth; height=document.body.clientHeight; } if (document.documentElement && (document.documentElement.clientWidth!=0) && (document.body.clientWidth + 20 >= document.documentElement.clientWidth)) { width=document.documentElement.clientWidth; height=document.documentElement.clientHeight; } return [width,height]; } var ID=null; function moveMouse(e) { //boxMove=true; e?evt=e:evt=event; CSE=evt.target?evt.target:evt.srcElement; if (!CSE.hasbox) { // Note we need to scan up DOM here, some elements like TR don't get triggered as srcElement iElem=CSE; while ((iElem.parentNode) && (!iElem.hasbox)) { scanBO(iElem); iElem=iElem.parentNode; } } if ((CSE!=LSE)&&(!isChild(CSE,dvHdr))&&(!isChild(CSE,dvBdy))){ if (!CSE.boxItem) { iterElem=CSE; while ((iterElem.hasbox==2)&&(iterElem.parentNode)) iterElem=iterElem.parentNode; CSE.boxItem=iterElem; } iterElem=CSE.boxItem; if (CSE.boxItem&&(CSE.boxItem.hasbox==1)) { LBE=CBE; CBE=iterElem; if (CBE!=LBE) { applyStyles(); if (!CBE.requireclick) if (CBE.fade) { if (ID!=null) clearTimeout(ID); ID=setTimeout("fadeIn("+CBE.fadespeed+")",CBE.delay); } else { if (ID!=null) clearTimeout(ID); COL=1; ID=setTimeout("oDv.style.visibility='visible';ID=null;",CBE.delay); } if (CBE.IEbugfix) {hideSelects();} fixposx=!isNaN(CBE.fixX)?Left(CBE)+CBE.fixX:CBE.absX; fixposy=!isNaN(CBE.fixY)?Top(CBE)+CBE.fixY:CBE.absY; lockX=0; lockY=0; boxMove=true; ox=CBE.offX?CBE.offX:10; oy=CBE.offY?CBE.offY:10; } } else if (!isChild(CSE,dvHdr) && !isChild(CSE,dvBdy) && (boxMove)) { // The conditional here fixes flickering between tables cells. if ((!isChild(CBE,CSE)) || (CSE.tagName!='TABLE')) { CBE=null; if (ID!=null) clearTimeout(ID); fadeOut(); showSelects(); } } LSE=CSE; } else if (((isChild(CSE,dvHdr) || isChild(CSE,dvBdy))&&(boxMove))) { totalScrollLeft=0; totalScrollTop=0; iterElem=CSE; while(iterElem) { if(!isNaN(parseInt(iterElem.scrollTop))) totalScrollTop+=parseInt(iterElem.scrollTop); if(!isNaN(parseInt(iterElem.scrollLeft))) totalScrollLeft+=parseInt(iterElem.scrollLeft); iterElem=iterElem.parentNode; } if (CBE!=null) { boxLeft=Left(CBE)-totalScrollLeft; boxRight=parseInt(Left(CBE)+CBE.offsetWidth)-totalScrollLeft; boxTop=Top(CBE)-totalScrollTop; boxBottom=parseInt(Top(CBE)+CBE.offsetHeight)-totalScrollTop; doCheck(); } } if (boxMove&&CBE) { // This added to alleviate bug in IE6 w.r.t DOCTYPE bodyScrollTop=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop; bodyScrollLet=document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft; mouseX=evt.pageX?evt.pageX-bodyScrollLet:evt.clientX-document.body.clientLeft; mouseY=evt.pageY?evt.pageY-bodyScrollTop:evt.clientY-document.body.clientTop; if ((CBE)&&(CBE.windowLock)) { mouseY < -oy?lockY=-mouseY-oy:lockY=0; mouseX < -ox?lockX=-mouseX-ox:lockX=0; mouseY > (SHW()[1]-oDv.offsetHeight-oy)?lockY=-mouseY+SHW()[1]-oDv.offsetHeight-oy:lockY=lockY; mouseX > (SHW()[0]-dvBdy.offsetWidth-ox)?lockX=-mouseX-ox+SHW()[0]-dvBdy.offsetWidth:lockX=lockX; } oDv.style.left=((fixposx)||(fixposx==0))?fixposx:bodyScrollLet+mouseX+ox+lockX+"px"; oDv.style.top=((fixposy)||(fixposy==0))?fixposy:bodyScrollTop+mouseY+oy+lockY+"px"; } } function doCheck() { if ( (mouseX < boxLeft) || (mouseX >boxRight) || (mouseY < boxTop) || (mouseY > boxBottom)) { if (!CBE.requireclick) fadeOut(); if (CBE.IEbugfix) {showSelects();} CBE=null; } } function pauseBox(e) { e?evt=e:evt=event; boxMove=false; evt.cancelBubble=true; } function showHideBox(e) { oDv.style.visibility=(oDv.style.visibility!='visible')?'visible':'hidden'; } function hideBox(e) { oDv.style.visibility='hidden'; } var COL=0; var stopfade=false; function fadeIn(fs) { ID=null; COL=0; oDv.style.visibility='visible'; fadeIn2(fs); } function fadeIn2(fs) { COL=COL+fs; COL=(COL>1)?1:COL; oDv.style.filter='alpha(opacity='+parseInt(100*COL)+')'; oDv.style.opacity=COL; if (COL<1) setTimeout("fadeIn2("+fs+")",20); } function fadeOut() { oDv.style.visibility='hidden'; } function isChild(s,d) { while(s) { if (s==d) return true; s=s.parentNode; } return false; } var cSrc; function checkMove(e) { e?evt=e:evt=event; cSrc=evt.target?evt.target:evt.srcElement; if ((!boxMove)&&(!isChild(cSrc,oDv))) { fadeOut(); if (CBE&&CBE.IEbugfix) {showSelects();} boxMove=true; CBE=null; } } function showSelects(){ var elements = document.getElementsByTagName("select"); for (i=0;i< elements.length;i++){ elements[i].style.visibility='visible'; } } function hideSelects(){ var elements = document.getElementsByTagName("select"); for (i=0;i< elements.length;i++){ elements[i].style.visibility='hidden'; } } /* ------------------------------------------ Flipbox written by CrappoMan simonpatterson@dsl.pipex.com ------------------------------------------ */ //modified by Wooya function flipBox(who) { var tmp; if (document.images['b_' + who].src.indexOf('_on') == -1) { tmp = document.images['b_' + who].src.replace('_off', '_on'); document.getElementById('box_' + who).style.display = 'none'; if (document.getElementById('box_' + who + '_diff')) { document.getElementById('box_' + who + '_diff').style.display = 'block'; } document.images['b_' + who].src = tmp; disply = 'none'; now = new Date(); now.setTime(now.getTime()+1000*60*60*24*365); expire = (now.toGMTString()); document.cookie = "fusion_box_"+who+"=" + escape(disply) + "; expires="+expire; } else { tmp = document.images['b_' + who].src.replace('_on', '_off'); document.getElementById('box_' + who).style.display = 'block'; if (document.getElementById('box_' + who + '_diff')) { document.getElementById('box_' + who + '_diff').style.display = 'none'; } document.images['b_' + who].src = tmp; disply = 'block'; now = new Date(); now.setTime(now.getTime()+1000*60*60*24*365); expire = (now.toGMTString()); document.cookie = "fusion_box_"+who+"=" + escape(disply) + "; expires="+expire; } } //modified by wooya function addText(elname, strFore, strAft, formname) { if (formname == undefined) formname = 'inputform'; if (elname == undefined) elname = 'message'; element = document.forms[formname].elements[elname]; element.focus(); // for IE if (document.selection) { var oRange = document.selection.createRange(); var numLen = oRange.text.length; oRange.text = strFore + oRange.text + strAft; return false; // for FF and Opera } else if (element.setSelectionRange) { var selStart = element.selectionStart, selEnd = element.selectionEnd; var oldScrollTop = element.scrollTop; element.value = element.value.substring(0, selStart) + strFore + element.value.substring(selStart, selEnd) + strAft + element.value.substring(selEnd); element.setSelectionRange(selStart + strFore.length, selEnd + strFore.length); element.scrollTop = oldScrollTop; element.focus(); } else { var oldScrollTop = element.scrollTop; element.value += strFore + strAft; element.scrollTop = oldScrollTop; element.focus(); } } //modified by Wooya function insertText(elname, what, formname) { if (formname == undefined) formname = 'inputform'; if (document.forms[formname].elements[elname].createTextRange) { document.forms[formname].elements[elname].focus(); document.selection.createRange().duplicate().text = what; } else if ((typeof document.forms[formname].elements[elname].selectionStart) != 'undefined') { // for Mozilla var tarea = document.forms[formname].elements[elname]; var selEnd = tarea.selectionEnd; var txtLen = tarea.value.length; var txtbefore = tarea.value.substring(0,selEnd); var txtafter = tarea.value.substring(selEnd, txtLen); var oldScrollTop = tarea.scrollTop; tarea.value = txtbefore + what + txtafter; tarea.selectionStart = txtbefore.length + what.length; tarea.selectionEnd = txtbefore.length + what.length; tarea.scrollTop = oldScrollTop; tarea.focus(); } else { document.forms[formname].elements[elname].value += what; document.forms[formname].elements[elname].focus(); } } //modified by Wooya to W3C standards function show_hide(msg_id) { document.getElementById(msg_id).style.display = document.getElementById(msg_id).style.display == 'none' ? 'block' : 'none'; } //modified by Wooya to work properly with Opera function correctPNG() { // correctly handle PNG transparency in Win IE 5.5 or higher. if (navigator.appName=="Microsoft Internet Explorer" && navigator.userAgent.indexOf("Opera")==-1) { for(var i=0; i" img.outerHTML = strNewHTML i = i-1 } } } } function getStyle(el,style) { if(typeof el == "string") var element = document.getElementById(el); else var element = el; if (element.currentStyle) var value = element.currentStyle[style]; else if (window.getComputedStyle) var value = document.defaultView.getComputedStyle(element,null).getPropertyValue(style); return value; } /*********************************************** * Drop Down/ Overlapping Content- © Dynamic Drive (www.dynamicdrive.com) * This notice must stay intact for legal use. * Visit http://www.dynamicdrive.com/ for full source code ***********************************************/ function getposOffset(overlay, offsettype){ var totaloffset=(offsettype=='left')? overlay.offsetLeft : overlay.offsetTop; var parentEl=overlay.offsetParent; while (parentEl!=null) { if(getStyle(parentEl, "position") != "relative"){ totaloffset=(offsettype=='left')? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; } parentEl=parentEl.offsetParent; } return totaloffset; } function overlay(curobj, subobjstr, opt_position){ if (document.getElementById){ var subobj=document.getElementById(subobjstr) subobj.style.display=(subobj.style.display!='block')? 'block' : 'none' var xpos=getposOffset(curobj, 'left')+((typeof opt_position!='undefined' && opt_position.indexOf('right')!=-1)? -(subobj.offsetWidth-curobj.offsetWidth) : 0) var ypos=getposOffset(curobj, 'top')+((typeof opt_position!='undefined' && opt_position.indexOf('bottom')!=-1)? curobj.offsetHeight : 0) subobj.style.left=xpos+'px' subobj.style.top=ypos+'px' return false } else return true } function overlayclose(subobj){ document.getElementById(subobj).style.display='none' } //written by Wooya NewWindowPopUp = null; function OpenWindow(src, wdth, hght, wcenter) { //close previous popup window if (NewWindowPopUp != null) { NewWindowPopUp.close(); NewWindowPopUp = null; } //if center parameter given center opoup window if (wcenter == false) { wtop = 0; wleft = 0; } else { wtop = (screen.availHeight-hght)/2; wleft = (screen.availWidth-wdth)/2; } NewWindowPopUp = window.open(src, "","toolbar=no,menubar=no,location=no,personalbar=no,scrollbars=yes,status=no,directories=no,resizable=yes,height="+hght+",width="+wdth+",top="+wtop+",left="+wleft+""); NewWindowPopUp.focus(); } //Image Resizer by Matonor function resize_forum_imgs(){ var max; var viewport_width; //Get the width of the viewport if(self.innerWidth) viewport_width = self.innerWidth; else if(document.documentElement && document.documentElement.clientWidth) viewport_width = document.documentElement.clientWidth; else if(document.body) viewport_width = document.body.clientWidth; else viewport_width = 1000; //Set the max width/height according to the viewport-width if(viewport_width <= 800) max = 200; else if(viewport_width < 1152) max = 300; else if(viewport_width >= 1152) max = 400; //loop through images that have the className forum-img for(var i=0; i max){ image.height = max; image.width = width*(max/height); resized = true; } }else{ if(width > max){ image.width = max; image.height = height*(max/width); resized = true; } } //Find the div around the image and the next element around the div. var span = image.parentNode; var parent = span.parentNode; if(span.className != "forum-img-wrapper"){ continue; } if(resized){ //Insert the link and make the span inline span.style.display = "inline"; if(parent.tagName != "A"){ span.onclick = new Function("OpenWindow('"+image.src+"', "+(width+40)+", "+(height+40)+", true)"); span.onmouseover = "this.style.cursor='pointer'"; } }else{ //only make the span inline span.style.display = "inline"; } } return true; } function onload_events(){//Add function calls to be executed onload here resize_forum_imgs(); correctPNG(); // Execute xTab panel if(window.xTabbed_start) xTabbed_start(); } window.onload = onload_events;