/adei/ui

To get this branch, use:
bzr branch http://darksoft.org/webbzr/adei/ui

« back to all changes in this revision

Viewing changes to js/popup.js

  • Committer: Suren A. Chilingaryan
  • Date: 2008-04-20 05:22:25 UTC
  • Revision ID: csa@dside.dyndns.org-20080420052225-enu1yngq1pny531z
Layout redesign: search tab, controls, menu

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
    this.popups = new Array();
9
9
    this.popups_width = 300;
10
10
    this.num_opened = 0;
 
11
 
 
12
    this.super_popup = false;
 
13
 
 
14
    this.resizable = null;
11
15
    
12
16
    if (typeof cb != "undefined") this.RegisterCallback(cb,cbattr);
13
17
}
14
18
 
 
19
 
 
20
POPUP.prototype.TryFixedSizeMode = function(sidebar, popup, geometry_node) {
 
21
    this.super_popup = false;
 
22
    
 
23
    var node = domGetLastChildByName(sidebar, "div");
 
24
    if (!node) return;
 
25
    
 
26
    if (!domGetFirstChildByName(node, "table")) {
 
27
        node = domGetLastChildByName(node, "div");
 
28
        if (!node) return;
 
29
        
 
30
        var subnodes = node.getElementsByTagName("table");
 
31
        if ((!subnodes)||(!subnodes.length))
 
32
            alert("problem detecting popups structure");
 
33
    }
 
34
    this.super_node = node;
 
35
 
 
36
    var switch_node = document.getElementById("popup_switch_" + popup);
 
37
    nodes = switch_node.getElementsByTagName("button");
 
38
    if ((!nodes)||(!nodes.length)) {
 
39
        alert("problem detecting popups structure");
 
40
        return;
 
41
    }
 
42
    
 
43
    this.geometry_nodes = new Array();
 
44
    
 
45
    if (geometry_node) {
 
46
        node = document.getElementById(geometry_node);
 
47
        if (!node) {
 
48
            alert("Invalid geometry_node is supplied");
 
49
            return;
 
50
        }
 
51
        this.geometry_nodes.push(node);
 
52
    }
 
53
 
 
54
    this.super_button = nodes[0];
 
55
    this.super_popup = popup;
 
56
}
 
57
 
 
58
 
15
59
POPUP.prototype.RegisterOnCallback = function (module, cb, cbattr, call_once) {
16
60
    if (typeof this.popup_on_callbacks[module] == "undefined")
17
61
        this.popup_on_callbacks[module] = new Array();
56
100
 
57
101
 
58
102
POPUP.prototype.UpdateGeometry = function(module) {
 
103
    this.UpdateGlobalGeometry();
 
104
    
59
105
    with (this) {
60
106
        var node = document.getElementById("popup_" + module);
61
107
        var switch_node = document.getElementById("popup_switch_" + module);
92
138
            }
93
139
        }
94
140
        
95
 
        if ((node)&&(switch_node)) {
 
141
        if ((node)&&(switch_node)&&(module!=this.super_popup)) {
96
142
            var a = switch_node.getElementsByTagName("button")[0];
97
143
            if (a) {
98
144
                var new_height_value = node.parentNode.offsetHeight; // td
104
150
                }
105
151
            }
106
152
        }
 
153
 
107
154
    }
108
155
}
109
156
 
158
205
 }
159
206
}
160
207
 
 
208
POPUP.prototype.UpdateGlobalGeometry = function(height, vend) {
 
209
    if (!this.super_popup) return;
 
210
    
 
211
    if (vend) this.global_end = vend;
 
212
    else if (this.global_end) vend = this.global_end;
 
213
    else return;
 
214
 
 
215
    var mboffset = domGetNodeOffset(this.super_node);
 
216
    var real_size = vend - mboffset[1];
 
217
 
 
218
    var mboffset = domGetNodeOffset(this.super_button);
 
219
    var new_size = vend - mboffset[1];
 
220
    domSetHeight(this.super_button, new_size, true, this.super_node, real_size);
 
221
 
 
222
    if (!this.popup_states['controls']) return;
 
223
 
 
224
    for (var i = 0; i < this.geometry_nodes.length; ++i) {
 
225
        var node = this.geometry_nodes[i];
 
226
        var mboffset = domGetNodeOffset(node);
 
227
 
 
228
        var new_size = vend - mboffset[1];
 
229
        domSetHeight(node, new_size, true, this.super_node, real_size);
 
230
    }
 
231
}
 
232
 
 
233
 
161
234
function popupUpdateGeometryCallback(me, submodule) {
162
235
    me.popup.UpdateGeometry(me.module);
163
236
}