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 = '<img  style="vertical-align:middle"  src="info.gif">&nbsp;&nbsp;' + dvHdr.innerHTML; dvHdr.style.fontWeight = 'bold'; dvHdr.style.width = '150px'; dvHdr.style.fontFamily = 'arial'; dvHdr.style.border = '1px solid #A5CFE9'; dvHdr.style.padding = '3'; dvHdr.style.fontSize = '11'; dvHdr.style.color = '#4B7A98'; dvHdr.style.background = '#FFFFFF'; dvHdr.style.filter = 'alpha(opacity=85)'; dvHdr.style.opacity = '0.85' } function defBdyStyle() { dvBdy.style.borderBottom = '1px solid #A5CFE9'; dvBdy.style.borderLeft = '1px solid #A5CFE9'; dvBdy.style.borderRight = '1px solid #A5CFE9'; dvBdy.style.width = '150px'; dvBdy.style.fontFamily = 'arial'; dvBdy.style.fontSize = '11'; dvBdy.style.padding = '3'; dvBdy.style.color = '#1B4966'; dvBdy.style.background = '#FFFFFF'; dvBdy.style.filter = 'alpha(opacity=85)'; dvBdy.style.opacity = '0.85' } 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 = 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.04; 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 { 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; 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) { e ? evt = e : evt = event; CSE = evt.target ? evt.target : evt.srcElement; if (!CSE.hasbox) { 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)) { 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) { 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' } }
