diff options
Diffstat (limited to 'html/javascript/helptip.js')
| -rw-r--r-- | html/javascript/helptip.js | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/html/javascript/helptip.js b/html/javascript/helptip.js deleted file mode 100644 index 6c129d4..0000000 --- a/html/javascript/helptip.js +++ /dev/null @@ -1,240 +0,0 @@ -/*----------------------------------------------------------------------------\ -| Help Tip 1.12 | -|-----------------------------------------------------------------------------| -| Created by Erik Arvidsson | -| (http://webfx.eae.net/contact.html#erik) | -| For WebFX (http://webfx.eae.net/) | -|-----------------------------------------------------------------------------| -| A tool tip like script that can be used for context help | -|-----------------------------------------------------------------------------| -| Copyright (c) 1999 - 2002 Erik Arvidsson | -|-----------------------------------------------------------------------------| -| This software is provided "as is", without warranty of any kind, express or | -| implied, including but not limited to the warranties of merchantability, | -| fitness for a particular purpose and noninfringement. In no event shall the | -| authors or copyright holders be liable for any claim, damages or other | -| liability, whether in an action of contract, tort or otherwise, arising | -| from, out of or in connection with the software or the use or other | -| dealings in the software. | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| This software is available under the three different licenses mentioned | -| below. To use this software you must chose, and qualify, for one of those. | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| The WebFX Non-Commercial License http://webfx.eae.net/license.html | -| Permits anyone the right to use the software in a non-commercial context | -| free of charge. | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| The WebFX Commercial license http://webfx.eae.net/commercial.html | -| Permits the license holder the right to use the software in a commercial | -| context. Such license must be specifically obtained, however it's valid for | -| any number of implementations of the licensed software. | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | -| Permits anyone the right to use and modify the software without limitations | -| as long as proper credits are given and the original and modified source | -| code are included. Requires that the final product, software derivate from | -| the original source or any software utilizing a GPL component, such as | -| this, is also licensed under the GPL license. | -|-----------------------------------------------------------------------------| -| 2002-09-27 | | -| 2001-11-25 | Added a resize to the tooltip if the document width is too | -| | small. | -| 2002-05-19 | IE50 did not recognise the JS keyword undefined so the test | -| | for scroll support was updated to be IE50 friendly. | -| 2002-07-06 | Added flag to hide selects for IE | -| 2002-10-04 | (1.1) Restructured and made code more IE garbage collector | -| | friendly. This solved the most nasty memory leaks. Also added | -| | support for hiding the tooltip if ESC is pressed. | -| 2002-10-18 | Fixed verrical position in case of scrolled document. | -| 2002-12-02 | Mozilla bug workaround related to mousedown and move. | -|-----------------------------------------------------------------------------| -| Dependencies: helptip.css (To set up the CSS of the help-tooltip class) | -|-----------------------------------------------------------------------------| -| Usage: | -| | -| <script type="text/javascript" src="helptip.js">< /script> | -| <link type="text/css" rel="StyleSheet" href="helptip.css" /> | -| | -| <a class="helpLink" href="?" onclick="showHelp(event, 'String to show'); | -| return false">Help</a> | -|-----------------------------------------------------------------------------| -| Created 2001-09-27 | All changes are in the log above. | Updated 2002-12-02 | -\----------------------------------------------------------------------------*/ - -function showHelpTip(e, sHtml, bHideSelects) { - - // find anchor element - var el = e.target || e.srcElement; - while (el.tagName != "A") - el = el.parentNode; - - // is there already a tooltip? If so, remove it - if (el._helpTip) { - helpTipHandler.hideHelpTip(el); - } - - helpTipHandler.hideSelects = Boolean(bHideSelects); - - // create element and insert last into the body - helpTipHandler.createHelpTip(el, sHtml); - - // position tooltip - helpTipHandler.positionToolTip(e); - - // add a listener to the blur event. - // When blurred remove tooltip and restore anchor - el.onblur = helpTipHandler.anchorBlur; - el.onkeydown = helpTipHandler.anchorKeyDown; -} - -var helpTipHandler = { - hideSelects: false, - - helpTip: null, - - showSelects: function (bVisible) { - if (!this.hideSelects) return; - // only IE actually do something in here - var selects = []; - if (document.all) - selects = document.all.tags("SELECT"); - var l = selects.length; - for (var i = 0; i < l; i++) - selects[i].runtimeStyle.visibility = bVisible ? "" : "hidden"; - }, - - create: function () { - var d = document.createElement("DIV"); - d.className = "help-tooltip"; - d.onmousedown = this.helpTipMouseDown; - d.onmouseup = this.helpTipMouseUp; - document.body.appendChild(d); - this.helpTip = d; - }, - - createHelpTip: function (el, sHtml) { - if (this.helpTip == null) { - this.create(); - } - - var d = this.helpTip; - d.innerHTML = sHtml; - d._boundAnchor = el; - el._helpTip = d; - return d; - }, - - // Allow clicks on A elements inside tooltip - helpTipMouseDown: function (e) { - var d = this; - var el = d._boundAnchor; - if (!e) e = event; - var t = e.target || e.srcElement; - while (t.tagName != "A" && t != d) - t = t.parentNode; - if (t == d) return; - - el._onblur = el.onblur; - el.onblur = null; - }, - - helpTipMouseUp: function () { - var d = this; - var el = d._boundAnchor; - el.onblur = el._onblur; - el._onblur = null; - el.focus(); - }, - - anchorBlur: function (e) { - var el = this; - helpTipHandler.hideHelpTip(el); - }, - - anchorKeyDown: function (e) { - if (!e) e = window.event - if (e.keyCode == 27) { // ESC - helpTipHandler.hideHelpTip(this); - } - }, - - removeHelpTip: function (d) { - d._boundAnchor = null; - d.style.filter = "none"; - d.innerHTML = ""; - d.onmousedown = null; - d.onmouseup = null; - d.parentNode.removeChild(d); - //d.style.display = "none"; - }, - - hideHelpTip: function (el) { - var d = el._helpTip; - /* Mozilla (1.2+) starts a selection session when moved - and this destroys the mouse events until reloaded - d.style.top = -el.offsetHeight - 100 + "px"; - */ - - d.style.visibility = "hidden"; - //d._boundAnchor = null; - - el.onblur = null; - el._onblur = null; - el._helpTip = null; - el.onkeydown = null; - - this.showSelects(true); - }, - - positionToolTip: function (e) { - this.showSelects(false); - var scroll = this.getScroll(); - var d = this.helpTip; - - // width - if (d.offsetWidth >= scroll.width) - d.style.width = scroll.width - 10 + "px"; - else - d.style.width = ""; - - // left - if (e.clientX > scroll.width - d.offsetWidth) - d.style.left = scroll.width - d.offsetWidth + scroll.left + "px"; - else - d.style.left = e.clientX - 2 + scroll.left + "px"; - - // top - if (e.clientY + d.offsetHeight + 18 < scroll.height) - d.style.top = e.clientY + 18 + scroll.top + "px"; - else if (e.clientY - d.offsetHeight > 0) - d.style.top = e.clientY + scroll.top - d.offsetHeight + "px"; - else - d.style.top = scroll.top + 5 + "px"; - - d.style.visibility = "visible"; - }, - - // returns the scroll left and top for the browser viewport. - getScroll: function () { - if (document.all && typeof document.body.scrollTop != "undefined") { // IE model - var ieBox = document.compatMode != "CSS1Compat"; - var cont = ieBox ? document.body : document.documentElement; - return { - left: cont.scrollLeft, - top: cont.scrollTop, - width: cont.clientWidth, - height: cont.clientHeight - }; - } - else { - return { - left: window.pageXOffset, - top: window.pageYOffset, - width: window.innerWidth, - height: window.innerHeight - }; - } - - } - -};
\ No newline at end of file |
