franta-hg@49
|
1 |
/** Strom je načítaný AJAXem až po načtení stránky, takže je potřeba funkci zavolat ručně */
|
franta-hg@49
|
2 |
//pridejUdalost(window,"load",sestavStromy);
|
franta-hg@49
|
3 |
|
franta-hg@49
|
4 |
function pridejUdalost(o, e, f) {
|
franta-hg@49
|
5 |
if (o.addEventListener) {
|
franta-hg@49
|
6 |
o.addEventListener(e,f,true);
|
franta-hg@49
|
7 |
return true;
|
franta-hg@49
|
8 |
} else if (o.attachEvent) {
|
franta-hg@49
|
9 |
return o.attachEvent("on" + e, f);
|
franta-hg@49
|
10 |
} else {
|
franta-hg@49
|
11 |
return false;
|
franta-hg@49
|
12 |
}
|
franta-hg@49
|
13 |
}
|
franta-hg@49
|
14 |
|
franta-hg@49
|
15 |
function nastavKonstantu(name, val) {
|
franta-hg@49
|
16 |
if (typeof(window[name]) == "undefined" || window[name] == null) {
|
franta-hg@49
|
17 |
window[name] = val;
|
franta-hg@49
|
18 |
}
|
franta-hg@49
|
19 |
}
|
franta-hg@49
|
20 |
|
franta-hg@49
|
21 |
function rozbalStrom(treeId) {
|
franta-hg@49
|
22 |
var ul = document.getElementById(treeId);
|
franta-hg@49
|
23 |
if (ul == null) {
|
franta-hg@49
|
24 |
return false;
|
franta-hg@49
|
25 |
}
|
franta-hg@49
|
26 |
rozbalSbalSeznam(ul, nodeOpenClass);
|
franta-hg@49
|
27 |
}
|
franta-hg@49
|
28 |
|
franta-hg@49
|
29 |
function sbalStrom(treeId) {
|
franta-hg@49
|
30 |
var ul = document.getElementById(treeId);
|
franta-hg@49
|
31 |
if (ul == null) {
|
franta-hg@49
|
32 |
return false;
|
franta-hg@49
|
33 |
}
|
franta-hg@49
|
34 |
rozbalSbalSeznam(ul, nodeClosedClass);
|
franta-hg@49
|
35 |
}
|
franta-hg@49
|
36 |
|
franta-hg@49
|
37 |
function rozbalAzNaPolozku(treeId, itemId) {
|
franta-hg@49
|
38 |
var ul = document.getElementById(treeId);
|
franta-hg@49
|
39 |
if (ul == null) {
|
franta-hg@49
|
40 |
return false;
|
franta-hg@49
|
41 |
}
|
franta-hg@49
|
42 |
var ret = rozbalSbalSeznam(ul, nodeOpenClass, itemId);
|
franta-hg@49
|
43 |
if (ret) {
|
franta-hg@49
|
44 |
var o = document.getElementById(itemId);
|
franta-hg@49
|
45 |
if (o.scrollIntoView) {
|
franta-hg@49
|
46 |
o.scrollIntoView(false);
|
franta-hg@49
|
47 |
}
|
franta-hg@49
|
48 |
}
|
franta-hg@49
|
49 |
}
|
franta-hg@49
|
50 |
|
franta-hg@49
|
51 |
function rozbalSbalSeznam(ul, cName, itemId) {
|
franta-hg@49
|
52 |
if(!ul.childNodes || ul.childNodes.length==0) {
|
franta-hg@49
|
53 |
return false;
|
franta-hg@49
|
54 |
}
|
franta-hg@49
|
55 |
for (var itemi = 0; itemi < ul.childNodes.length; itemi++) {
|
franta-hg@49
|
56 |
var item = ul.childNodes[itemi];
|
franta-hg@49
|
57 |
|
franta-hg@49
|
58 |
if (itemId != null && item.id == itemId) {
|
franta-hg@49
|
59 |
return true;
|
franta-hg@49
|
60 |
}
|
franta-hg@49
|
61 |
|
franta-hg@49
|
62 |
if (item.nodeName == "LI") {
|
franta-hg@49
|
63 |
var subLists = false;
|
franta-hg@49
|
64 |
for (var sitemi = 0; sitemi<item.childNodes.length; sitemi++) {
|
franta-hg@49
|
65 |
var sitem = item.childNodes[sitemi];
|
franta-hg@49
|
66 |
if (sitem.nodeName=="UL") {
|
franta-hg@49
|
67 |
subLists = true;
|
franta-hg@49
|
68 |
var ret = rozbalSbalSeznam(sitem, cName, itemId);
|
franta-hg@49
|
69 |
if (itemId != null && ret) {
|
franta-hg@49
|
70 |
item.className = cName;
|
franta-hg@49
|
71 |
return true;
|
franta-hg@49
|
72 |
}
|
franta-hg@49
|
73 |
}
|
franta-hg@49
|
74 |
}
|
franta-hg@49
|
75 |
|
franta-hg@49
|
76 |
if (subLists && itemId == null) {
|
franta-hg@49
|
77 |
item.className = cName;
|
franta-hg@49
|
78 |
}
|
franta-hg@49
|
79 |
}
|
franta-hg@49
|
80 |
}
|
franta-hg@49
|
81 |
}
|
franta-hg@49
|
82 |
|
franta-hg@49
|
83 |
function sestavStromy() {
|
franta-hg@49
|
84 |
nastavKonstantu("treeClass", "strom");
|
franta-hg@49
|
85 |
nastavKonstantu("nodeClosedClass", "liClosed");
|
franta-hg@49
|
86 |
nastavKonstantu("nodeOpenClass", "liOpen");
|
franta-hg@49
|
87 |
nastavKonstantu("nodeBulletClass", "liBullet");
|
franta-hg@49
|
88 |
nastavKonstantu("nodeLinkClass", "bullet");
|
franta-hg@49
|
89 |
nastavKonstantu("preProcessTrees", true);
|
franta-hg@49
|
90 |
if (preProcessTrees) {
|
franta-hg@49
|
91 |
if (!document.createElement) {
|
franta-hg@49
|
92 |
return;
|
franta-hg@49
|
93 |
}
|
franta-hg@49
|
94 |
uls = document.getElementsByTagName("ul");
|
franta-hg@49
|
95 |
for (var uli = 0; uli < uls.length; uli++) {
|
franta-hg@49
|
96 |
var ul = uls[uli];
|
franta-hg@49
|
97 |
if (ul.nodeName == "UL" && ul.className == treeClass) {
|
franta-hg@49
|
98 |
zpracujStrom(ul);
|
franta-hg@49
|
99 |
ul.style.display = "block";
|
franta-hg@49
|
100 |
}
|
franta-hg@49
|
101 |
}
|
franta-hg@49
|
102 |
}
|
franta-hg@49
|
103 |
}
|
franta-hg@49
|
104 |
|
franta-hg@49
|
105 |
function zpracujStrom(ul) {
|
franta-hg@49
|
106 |
if (!ul.childNodes || ul.childNodes.length==0) {
|
franta-hg@49
|
107 |
return;
|
franta-hg@49
|
108 |
}
|
franta-hg@49
|
109 |
for (var itemi = 0; itemi < ul.childNodes.length; itemi++) {
|
franta-hg@49
|
110 |
var item = ul.childNodes[itemi];
|
franta-hg@49
|
111 |
if (item.nodeName == "LI") {
|
franta-hg@49
|
112 |
var subLists = false;
|
franta-hg@49
|
113 |
for (var sitemi = 0; sitemi < item.childNodes.length; sitemi++) {
|
franta-hg@49
|
114 |
var sitem = item.childNodes[sitemi];
|
franta-hg@49
|
115 |
if (sitem.nodeName == "UL") {
|
franta-hg@49
|
116 |
subLists = true;
|
franta-hg@49
|
117 |
zpracujStrom(sitem);
|
franta-hg@49
|
118 |
}
|
franta-hg@49
|
119 |
}
|
franta-hg@49
|
120 |
var s = document.createElement("span");
|
franta-hg@49
|
121 |
var t = '\u00A0';
|
franta-hg@49
|
122 |
s.className = nodeLinkClass;
|
franta-hg@49
|
123 |
if (subLists) {
|
franta-hg@49
|
124 |
if (item.className == null || item.className == "") {
|
franta-hg@49
|
125 |
item.className = nodeClosedClass;
|
franta-hg@49
|
126 |
}
|
franta-hg@49
|
127 |
if (item.firstChild.nodeName == "#text") {
|
franta-hg@49
|
128 |
t = t + item.firstChild.nodeValue;
|
franta-hg@49
|
129 |
item.removeChild(item.firstChild);
|
franta-hg@49
|
130 |
}
|
franta-hg@49
|
131 |
s.onclick = function() {
|
franta-hg@49
|
132 |
this.parentNode.className = (this.parentNode.className==nodeOpenClass) ? nodeClosedClass : nodeOpenClass;
|
franta-hg@49
|
133 |
return false;
|
franta-hg@49
|
134 |
}
|
franta-hg@49
|
135 |
} else {
|
franta-hg@49
|
136 |
item.className = nodeBulletClass;
|
franta-hg@49
|
137 |
s.onclick = function() {
|
franta-hg@49
|
138 |
return false;
|
franta-hg@49
|
139 |
}
|
franta-hg@49
|
140 |
}
|
franta-hg@49
|
141 |
s.appendChild(document.createTextNode(t));
|
franta-hg@49
|
142 |
item.insertBefore(s, item.firstChild);
|
franta-hg@49
|
143 |
}
|
franta-hg@49
|
144 |
}
|
franta-hg@49
|
145 |
}
|