~vcs-imports/almidon/trunk

« back to all changes in this revision

Viewing changes to core/pub/js/tiny_mce/utils/mctabs.js

  • Committer: christian
  • Date: 2010-09-11 20:55:52 UTC
  • Revision ID: svn-v4:924a4236-293c-0410-b38f-c0813de1d4fd:trunk:381
Change name to pub directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * mctabs.js
 
3
 *
 
4
 * Copyright 2009, Moxiecode Systems AB
 
5
 * Released under LGPL License.
 
6
 *
 
7
 * License: http://tinymce.moxiecode.com/license
 
8
 * Contributing: http://tinymce.moxiecode.com/contributing
 
9
 */
 
10
 
 
11
function MCTabs() {
 
12
        this.settings = [];
 
13
};
 
14
 
 
15
MCTabs.prototype.init = function(settings) {
 
16
        this.settings = settings;
 
17
};
 
18
 
 
19
MCTabs.prototype.getParam = function(name, default_value) {
 
20
        var value = null;
 
21
 
 
22
        value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
 
23
 
 
24
        // Fix bool values
 
25
        if (value == "true" || value == "false")
 
26
                return (value == "true");
 
27
 
 
28
        return value;
 
29
};
 
30
 
 
31
MCTabs.prototype.displayTab = function(tab_id, panel_id) {
 
32
        var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i;
 
33
 
 
34
        panelElm= document.getElementById(panel_id);
 
35
        panelContainerElm = panelElm ? panelElm.parentNode : null;
 
36
        tabElm = document.getElementById(tab_id);
 
37
        tabContainerElm = tabElm ? tabElm.parentNode : null;
 
38
        selectionClass = this.getParam('selection_class', 'current');
 
39
 
 
40
        if (tabElm && tabContainerElm) {
 
41
                nodes = tabContainerElm.childNodes;
 
42
 
 
43
                // Hide all other tabs
 
44
                for (i = 0; i < nodes.length; i++) {
 
45
                        if (nodes[i].nodeName == "LI")
 
46
                                nodes[i].className = '';
 
47
                }
 
48
 
 
49
                // Show selected tab
 
50
                tabElm.className = 'current';
 
51
        }
 
52
 
 
53
        if (panelElm && panelContainerElm) {
 
54
                nodes = panelContainerElm.childNodes;
 
55
 
 
56
                // Hide all other panels
 
57
                for (i = 0; i < nodes.length; i++) {
 
58
                        if (nodes[i].nodeName == "DIV")
 
59
                                nodes[i].className = 'panel';
 
60
                }
 
61
 
 
62
                // Show selected panel
 
63
                panelElm.className = 'current';
 
64
        }
 
65
};
 
66
 
 
67
MCTabs.prototype.getAnchor = function() {
 
68
        var pos, url = document.location.href;
 
69
 
 
70
        if ((pos = url.lastIndexOf('#')) != -1)
 
71
                return url.substring(pos + 1);
 
72
 
 
73
        return "";
 
74
};
 
75
 
 
76
// Global instance
 
77
var mcTabs = new MCTabs();