includes/clientside/tinymce/utils/mctabs.js
changeset 1344 dc96d6c5cd1e
parent 1343 2a31905a567d
child 1345 1de01205143b
equal deleted inserted replaced
1343:2a31905a567d 1344:dc96d6c5cd1e
     1 /**
       
     2  * $Id: mctabs.js 758 2008-03-30 13:53:29Z spocke $
       
     3  *
       
     4  * Moxiecode DHTML Tabs script.
       
     5  *
       
     6  * @author Moxiecode
       
     7  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
       
     8  */
       
     9 
       
    10 function MCTabs() {
       
    11 	this.settings = [];
       
    12 };
       
    13 
       
    14 MCTabs.prototype.init = function(settings) {
       
    15 	this.settings = settings;
       
    16 };
       
    17 
       
    18 MCTabs.prototype.getParam = function(name, default_value) {
       
    19 	var value = null;
       
    20 
       
    21 	value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
       
    22 
       
    23 	// Fix bool values
       
    24 	if (value == "true" || value == "false")
       
    25 		return (value == "true");
       
    26 
       
    27 	return value;
       
    28 };
       
    29 
       
    30 MCTabs.prototype.displayTab = function(tab_id, panel_id) {
       
    31 	var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i;
       
    32 
       
    33 	panelElm= document.getElementById(panel_id);
       
    34 	panelContainerElm = panelElm ? panelElm.parentNode : null;
       
    35 	tabElm = document.getElementById(tab_id);
       
    36 	tabContainerElm = tabElm ? tabElm.parentNode : null;
       
    37 	selectionClass = this.getParam('selection_class', 'current');
       
    38 
       
    39 	if (tabElm && tabContainerElm) {
       
    40 		nodes = tabContainerElm.childNodes;
       
    41 
       
    42 		// Hide all other tabs
       
    43 		for (i = 0; i < nodes.length; i++) {
       
    44 			if (nodes[i].nodeName == "LI")
       
    45 				nodes[i].className = '';
       
    46 		}
       
    47 
       
    48 		// Show selected tab
       
    49 		tabElm.className = 'current';
       
    50 	}
       
    51 
       
    52 	if (panelElm && panelContainerElm) {
       
    53 		nodes = panelContainerElm.childNodes;
       
    54 
       
    55 		// Hide all other panels
       
    56 		for (i = 0; i < nodes.length; i++) {
       
    57 			if (nodes[i].nodeName == "DIV")
       
    58 				nodes[i].className = 'panel';
       
    59 		}
       
    60 
       
    61 		// Show selected panel
       
    62 		panelElm.className = 'current';
       
    63 	}
       
    64 };
       
    65 
       
    66 MCTabs.prototype.getAnchor = function() {
       
    67 	var pos, url = document.location.href;
       
    68 
       
    69 	if ((pos = url.lastIndexOf('#')) != -1)
       
    70 		return url.substring(pos + 1);
       
    71 
       
    72 	return "";
       
    73 };
       
    74 
       
    75 // Global instance
       
    76 var mcTabs = new MCTabs();