/* --- 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;