59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
/**
|
|
* Provides the javascript class for handling tabbed sections in Horde Forms.
|
|
*
|
|
* @author Marko Djukic <marko@oblo.com>
|
|
* @copyright 2003-2015 Horde LLC
|
|
* @license LGPL-2 (http://www.horde.org/licenses/lgpl)
|
|
*/
|
|
|
|
function Horde_Form_Sections(instanceName, openSection)
|
|
{
|
|
/* Set up this class instance for function calls from the page. */
|
|
this._instanceName = instanceName;
|
|
|
|
/* The currently showed section. */
|
|
var _openSection, s;
|
|
|
|
this.toggle = function(sectionId)
|
|
{
|
|
if (!document.getElementById) {
|
|
return false;
|
|
}
|
|
|
|
/* Get the currently open section object. */
|
|
openSectionId = this._get();
|
|
s = document.getElementById(this._instanceName + '_section_' + openSectionId);
|
|
if (s) {
|
|
s.style.display = 'none';
|
|
document.getElementById(this._instanceName + '_tab_' + openSectionId).className = '';
|
|
}
|
|
|
|
/* Get the newly opened section object. */
|
|
s = document.getElementById(this._instanceName + '_section_' + sectionId);
|
|
if (s) {
|
|
s.style.display = '';
|
|
document.getElementById(this._instanceName + '_tab_' + sectionId).className = 'horde-active';
|
|
}
|
|
|
|
/* Store the newly opened section. */
|
|
this._set(sectionId);
|
|
};
|
|
|
|
this._get = function()
|
|
{
|
|
return this._openSection;
|
|
};
|
|
|
|
this._set = function(sectionId)
|
|
{
|
|
var form = document.getElementById(this._instanceName);
|
|
if (form !== null &&
|
|
typeof form.__formOpenSection != 'undefined') {
|
|
form.__formOpenSection.value = sectionId;
|
|
}
|
|
this._openSection = sectionId;
|
|
};
|
|
|
|
this._set(openSection);
|
|
}
|