зеркало из https://github.com/mozilla/pjs.git
109 строки
3.4 KiB
JavaScript
109 строки
3.4 KiB
JavaScript
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is the Bugzilla Bug Tracking System.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Gervase Markham <gerv@gerv.net>
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
var g_helpTexts = new Object();
|
|
var g_helpIframe;
|
|
var g_helpDiv;
|
|
|
|
/**
|
|
* Generate help controls during page construction.
|
|
*
|
|
* @return Boolean; true if controls were created and false if not.
|
|
*/
|
|
function generateHelp()
|
|
{
|
|
// Only enable help if controls can be hidden
|
|
if (!document.body.style)
|
|
return false;
|
|
|
|
// Create help controls (a div to hold help text and an iframe
|
|
// to mask any and all controls under the popup)
|
|
document.write('<div id="helpDiv" style="display: none;"><\/div>');
|
|
document.write('<iframe id="helpIframe" src="about:blank"');
|
|
document.write(' frameborder="0" scrolling="no"><\/iframe>');
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Enable help popups for all form elements after the page has finished loading.
|
|
*
|
|
* @return Boolean; true if help was enabled and false if not.
|
|
*/
|
|
function enableHelp()
|
|
{
|
|
g_helpIframe = document.getElementById('helpIframe');
|
|
g_helpDiv = document.getElementById('helpDiv');
|
|
if (!g_helpIframe || !g_helpDiv) // Disabled if no controls found
|
|
return false;
|
|
|
|
// MS decided to add fieldsets to the elements array; and
|
|
// Mozilla decided to copy this brokenness. Grr.
|
|
for (var i = 0; i < document.forms.length; i++) {
|
|
for (var j = 0; j < document.forms[i].elements.length; j++) {
|
|
if (document.forms[i].elements[j].tagName != 'FIELDSET') {
|
|
document.forms[i].elements[j].onmouseover = showHelp;
|
|
}
|
|
}
|
|
}
|
|
|
|
document.body.onclick = hideHelp;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Show the help popup for a form element.
|
|
*/
|
|
function showHelp() {
|
|
if (!g_helpIframe || !g_helpDiv || !g_helpTexts[this.name])
|
|
return;
|
|
|
|
// Get the position and size of the form element in the document
|
|
var elemY = bz_findPosY(this);
|
|
var elemX = bz_findPosX(this);
|
|
var elemH = this.offsetHeight;
|
|
|
|
// Update help text displayed in the div
|
|
g_helpDiv.innerHTML = ''; // Helps IE 5 Mac
|
|
g_helpDiv.innerHTML = g_helpTexts[this.name];
|
|
|
|
// Position and display the help popup
|
|
g_helpIframe.style.top = g_helpDiv.style.top = elemY + elemH + 5 + "px";
|
|
g_helpIframe.style.left = g_helpDiv.style.left = elemX + "px";
|
|
g_helpIframe.style.display = g_helpDiv.style.display = '';
|
|
g_helpIframe.style.width = g_helpDiv.offsetWidth + "px";
|
|
g_helpIframe.style.height = g_helpDiv.offsetHeight + "px";
|
|
}
|
|
|
|
/**
|
|
* Hide the help popup.
|
|
*/
|
|
function hideHelp() {
|
|
if (!g_helpIframe || !g_helpDiv)
|
|
return;
|
|
|
|
g_helpIframe.style.display = g_helpDiv.style.display = 'none';
|
|
}
|