diff --git a/htdocs/sql/js/tooltip.js b/htdocs/sql/js/tooltip.js new file mode 100755 --- /dev/null +++ b/htdocs/sql/js/tooltip.js @@ -0,0 +1,197 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Displays the Tooltips (hints), if we have some + * 2005-01-20 added by Michael Keck (mkkeck) + * + * @version $Id: tooltip.js 10142 2007-03-20 10:32:13Z cybot_tm $ + */ + +/** + * + */ +var ttXpos = 0, ttYpos = 0; +var ttXadd = 10, ttYadd = -10; +var ttDisplay = 0, ttHoldIt = 0; +// Check if browser does support dynamic content and dhtml +var ttNS4 = (document.layers) ? 1 : 0; // the old Netscape 4 +var ttIE4 = (document.all) ? 1 : 0; // browser wich uses document.all +var ttDOM = (document.getElementById) ? 1 : 0; // DOM-compatible browsers +if (ttDOM) { // if DOM-compatible, set the others to false + ttNS4 = 0; + ttIE4 = 0; +} + +var myTooltipContainer = null; + +if ( (ttDOM) || (ttIE4) || (ttNS4) ) { + // mouse-event + if ( ttNS4 ) { + document.captureEvents(Event.MOUSEMOVE); + } else { + document.onmousemove = mouseMove; + } +} + +/** + * init the tooltip and write the text into it + * + * @param string theText tooltip content + */ +function textTooltip(theText) { + if (ttDOM || ttIE4) { // document.getEelementById || document.all + myTooltipContainer.innerHTML = ""; // we should empty it first + myTooltipContainer.innerHTML = theText; + } else if (ttNS4) { // document.layers + var layerNS4 = myTooltipContainer.document; + layerNS4.write(theText); + layerNS4.close(); + } +} + +/** + * @var integer + */ +var ttTimerID = 0; + +/** + * swap the Tooltip // show and hide + * + * @param boolean stat view status + */ +function swapTooltip(stat) { + if (ttHoldIt!=1) { + if (stat!='default') { + if (stat=='true') + showTooltip(true); + else if (stat=='false') + showTooltip(false); + } else { + if (ttDisplay) + ttTimerID = setTimeout("showTooltip(false);",500); + else + showTooltip(true); + } + } else { + if (ttTimerID) { + clearTimeout(ttTimerID); + ttTimerID = 0; + } + showTooltip(true); + } +} + +/** + * show / hide the Tooltip + * + * @param boolean stat view status + */ +function showTooltip(stat) { + if (stat==false) { + if (ttNS4) + myTooltipContainer.visibility = "hide"; + else + myTooltipContainer.style.visibility = "hidden"; + ttDisplay = 0; + } else { + if (ttNS4) + myTooltipContainer.visibility = "show"; + else + myTooltipContainer.style.visibility = "visible"; + ttDisplay = 1; + } +} +/** + * hold it, if we create or move the mouse over the tooltip + */ +function holdTooltip() { + ttHoldIt = 1; + swapTooltip('true'); + ttHoldIt = 0; +} + +/** + * move the tooltip to mouse position + * + * @param integer posX horiz. position + * @param integer posY vert. position + */ +function moveTooltip(posX, posY) { + if (ttDOM || ttIE4) { + myTooltipContainer.style.left = posX + "px"; + myTooltipContainer.style.top = posY + "px"; + } else if (ttNS4) { + myTooltipContainer.left = posX; + myTooltipContainer.top = posY; + } +} + +/** + * build the tooltip + * + * @param string theText tooltip content + */ +function pmaTooltip( theText ) { + // reference to TooltipContainer + if ( null == myTooltipContainer ) { + if (ttNS4) { + myTooltipContainer = document.TooltipContainer; + } else if (ttIE4) { + myTooltipContainer = document.all('TooltipContainer'); + } else if (ttDOM) { + myTooltipContainer = document.getElementById('TooltipContainer'); + } else { + return; + } + + if ( typeof( myTooltipContainer ) == 'undefined' ) { + return; + } + } + + var plusX=0, plusY=0, docX=0, docY=0; + var divHeight = myTooltipContainer.clientHeight; + var divWidth = myTooltipContainer.clientWidth; + if (navigator.appName.indexOf("Explorer")!=-1) { + if (document.documentElement && document.documentElement.scrollTop) { + plusX = document.documentElement.scrollLeft; + plusY = document.documentElement.scrollTop; + docX = document.documentElement.offsetWidth + plusX; + docY = document.documentElement.offsetHeight + plusY; + } else { + plusX = document.body.scrollLeft; + plusY = document.body.scrollTop; + docX = document.body.offsetWidth + plusX; + docY = document.body.offsetHeight + plusY; + } + } else { + docX = document.body.clientWidth; + docY = document.body.clientHeight; + } + + ttXpos = ttXpos + plusX; + ttYpos = ttYpos + plusY; + + if ((ttXpos + divWidth) > docX) + ttXpos = ttXpos - (divWidth + (ttXadd * 2)); + if ((ttYpos + divHeight) > docY) + ttYpos = ttYpos - (divHeight + (ttYadd * 2)); + + textTooltip(theText); + moveTooltip((ttXpos + ttXadd), (ttYpos + ttYadd)); + holdTooltip(); +} + +/** + * register mouse moves + * + * @param event e + */ +function mouseMove(e) { + if ( typeof( event ) != 'undefined' ) { + ttXpos = event.x; + ttYpos = event.y; + } else { + ttXpos = e.pageX; + ttYpos = e.pageY; + } +}