1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
var cbi_d = {};
function cbi_d_add(field, target, value) {
if (!cbi_d[target]) {
cbi_d[target] = {};
}
if (!cbi_d[target][value]) {
cbi_d[target][value] = [];
}
cbi_d[target][value].push(field);
}
function cbi_d_update(target) {
if (!cbi_d[target]) {
return;
}
for (var x in cbi_d[target]) {
for (var i=0; i<cbi_d[target][x].length; i++) {
var y = document.getElementById(cbi_d[target][x][i])
y.style.display = "none";
}
}
var t = document.getElementById(target);
if (t && t.value && cbi_d[target][t.value]) {
for (var i=0; i<cbi_d[target][t.value].length; i++) {
var y = document.getElementById(cbi_d[target][t.value][i])
y.style.display = "block";
}
}
}
function cbi_d_init() {
for (var x in cbi_d) {
cbi_d_update(x);
}
}
function cbi_bind(obj, type, callback, mode) {
if (typeof mode == "undefined") {
mode = false;
}
if (!obj.addEventListener) {
ieCallback = function(){
var e = window.event;
if (!e.target && e.srcElement) {
e.target = e.srcElement;
};
e.target['_eCB' + type + callback] = callback;
e.target['_eCB' + type + callback](e);
e.target['_eCB' + type + callback] = null;
};
obj.attachEvent('on' + type, ieCallback);
} else {
obj.addEventListener(type, callback, mode);
}
return obj;
}
function cbi_combobox(id, values, def, man) {
var obj = document.getElementById(id)
var sel = document.createElement("select");
obj.parentNode.appendChild(sel);
if (!values[obj.value]) {
if (obj.value == "") {
var optdef = document.createElement("option");
optdef.value = "";
optdef.appendChild(document.createTextNode(def));
sel.appendChild(optdef);
} else {
var opt = document.createElement("option");
opt.value = obj.value;
opt.selected = "selected";
opt.appendChild(document.createTextNode(obj.value));
sel.appendChild(opt);
}
}
for (var i in values) {
var opt = document.createElement("option");
opt.value = i;
if (obj.value == i) {
opt.selected = "selected";
}
opt.appendChild(document.createTextNode(values[i]));
sel.appendChild(opt);
}
var optman = document.createElement("option");
optman.value = "";
optman.appendChild(document.createTextNode(man));
sel.appendChild(optman);
obj.style.display = "none";
cbi_bind(sel, "change", function() {
obj.value = sel.options[sel.selectedIndex].value;
if (sel.selectedIndex == sel.options.length - 1) {
obj.style.display = "inline";
sel.parentNode.removeChild(sel);
obj.focus();
}
})
}
function cbi_combobox_init(id, values, def, man) {
var obj = document.getElementById(id);
cbi_bind(obj, "blur", function() {
cbi_combobox(id, values, def, man)
});
cbi_combobox(id, values, def, man);
}
|