1
function treeTooltipOn() { document.getElementById("tree-tooltip").innerHTML = treeTooltips[treeElements.indexOf(this.id)]; }
2
function treeTooltipOff() { document.getElementById("tree-tooltip").innerHTML = ""; }
4
var treeElements = ["tree-moveUp", "tree-moveDown", "tree-moveLeft", "tree-moveRight", "tree-insert", "tree-info", "tree-remove"];
5
var treeTooltips = ["Move Up", "Move Down", "Move Left", "Move Right", "Insert", "Info", "Delete"];
7
for (var i = 0; i < treeElements.length; i++) {
8
document.getElementById(treeElements[i]).onmouseover = treeTooltipOn;
9
document.getElementById(treeElements[i]).onmouseout = treeTooltipOff;
12
function treeMoveUp() {
13
if (tree.mayMoveUp()) {
17
function treeMoveDown() {
18
if (tree.mayMoveDown()) {
22
function treeMoveLeft() {
23
if (tree.mayMoveLeft()) {
27
function treeMoveRight() {
28
if (tree.mayMoveRight()) {
32
function treeInsert() {
34
document.getElementById("tree-insert-form").style.display = "block";
35
document.getElementById("tree-insert-where-div").style.display = (tree.active ? "" : "none");
37
var where = document.getElementById("tree-insert-where");
38
if (tree.mayInsertInside()) {
39
if (!where.options[2] && !where.options[3]) {
40
where.options[2] = new Option("Inside at start", "inside_start");
41
where.options[3] = new Option("Inside at end", "inside_end");
43
} else if (where.options[2] && where.options[3]) {
44
where.options[2] = null;
45
where.options[3] = null;
46
where.options.length = 2;
50
function treeHideInsert() {
51
var name = document.getElementById("tree-insert-name");
52
var href = document.getElementById("tree-insert-href");
53
var title = document.getElementById("tree-insert-title");
54
var target = document.getElementById("tree-insert-target");
59
document.getElementById("tree-insert-form").style.display = "none";
63
var name = document.getElementById("tree-info-name");
64
var href = document.getElementById("tree-info-href");
65
var title = document.getElementById("tree-info-title");
66
var target = document.getElementById("tree-info-target");
71
document.getElementById("tree-info-form").style.display = "block";
73
var node = tree.getActiveNode();
74
name.value = node.text;
75
href.value = node.href;
76
title.value = node.title;
77
target.value = node.target;
80
function treeInfoUpdate() {
81
var name = document.getElementById("tree-info-name");
82
var href = document.getElementById("tree-info-href");
83
var title = document.getElementById("tree-info-title");
84
var target = document.getElementById("tree-info-target");
85
name.value = name.value.trim();
86
href.value = href.value.trim();
91
var node = tree.getActiveNode();
92
node.text = name.value;
93
node.href = href.value;
94
node.title = title.value;
95
node.target = target.value;
99
function treeHideInfo() {
100
var name = document.getElementById("tree-info-name");
101
var href = document.getElementById("tree-info-href");
102
var title = document.getElementById("tree-info-title");
103
var target = document.getElementById("tree-info-target");
108
document.getElementById("tree-info-form").style.display = "none";
111
/* only event - blur */
112
function treeInsertExecute() {
113
var where = document.getElementById("tree-insert-where");
114
var type = document.getElementById("tree-insert-type");
115
var name = document.getElementById("tree-insert-name");
116
var href = document.getElementById("tree-insert-href");
117
var title = document.getElementById("tree-insert-title");
118
var target = document.getElementById("tree-insert-target");
119
name.value = name.value.trim();
120
href.value = href.value.trim();
124
var o = {"href": href.value, "title": title.value, "target": target.value};
126
switch (where.value) {
128
tree.insertBefore("tree-"+(++tree.count), name.value, type.value, o);
131
tree.insertAfter("tree-"+(++tree.count), name.value, type.value, o);
134
tree.insertInsideAtStart("tree-"+(++tree.count), name.value, type.value, o);
137
tree.insertInsideAtEnd("tree-"+(++tree.count), name.value, type.value, o);
141
tree.insert("tree-"+(++tree.count), name.value, type.value, o);
149
function treeRemove() {
150
if (tree.mayRemove()) {
151
if (confirm("Delete current node ?")) {
153
if (document.getElementById("tree-insert-form").style.display == "block") {
156
if (document.getElementById("tree-info-form").style.display == "block") {
163
document.getElementById("tree-moveUp").onclick = treeMoveUp;
164
document.getElementById("tree-moveDown").onclick = treeMoveDown;
165
document.getElementById("tree-moveLeft").onclick = treeMoveLeft;
166
document.getElementById("tree-moveRight").onclick = treeMoveRight;
168
if (document.all && !/opera/i.test(navigator.userAgent)) {
169
document.getElementById("tree-moveUp").ondblclick = treeMoveUp;
170
document.getElementById("tree-moveDown").ondblclick = treeMoveDown;
171
document.getElementById("tree-moveLeft").ondblclick = treeMoveLeft;
172
document.getElementById("tree-moveRight").ondblclick = treeMoveRight;
175
document.getElementById("tree-insert").onclick = treeInsert;
176
document.getElementById("tree-info").onclick = treeInfo;
177
document.getElementById("tree-remove").onclick = treeRemove;
179
document.getElementById("tree-insert-button").onclick = treeInsertExecute;
180
document.getElementById("tree-insert-cancel").onclick = treeHideInsert;
182
document.getElementById("tree-info-button").onclick = treeInfoUpdate;
183
document.getElementById("tree-info-cancel").onclick = treeHideInfo;
185
tree.textClickListener.add(function() { if (document.getElementById("tree-insert-form").style.display == "block") { treeInsert(); } });
186
tree.textClickListener.add(function() { if (document.getElementById("tree-info-form").style.display == "block") { treeInfo(); } });
188
/* Finds the index of the first occurence of item in the array, or -1 if not found */
189
if (!Array.prototype.indexOf) {
190
Array.prototype.indexOf = function(item) {
191
for (var i = 0; i < this.length; ++i) {
192
if (this[i] === item) { return i; }
202
function treePluginImportHtml() {
203
document.getElementById("tree-plugin").style.display = "block";
204
document.getElementById("tree-plugin-header").innerHTML = "Import from Html";
205
document.getElementById("tree-plugin-button-import-html").style.display = "block";
207
function treePluginImportHtmlExecute() {
208
var html = document.getElementById("tree-plugin-textarea");
209
tree.importFromHtml(html.value);
211
function treePluginExportHtml() {
212
var w = window.open("", "exportToHtml", "width=600,height=600,scrollbars=yes,resizable=yes");
213
w.document.write('<html><body><pre>'+tree.exportToHtml().replace(/</g, "<").replace(/>/g, ">")+'</pre></body></html>');
215
function treePluginExportPhp() {
216
var w = window.open("", "exportToPhp", "width=600,height=600,scrollbars=yes,resizable=yes");
217
w.document.write('<pre>'+tree.exportToPhp().replace(/</g, "<").replace(/>/g, ">")+'</pre>');
219
function treePluginExportSql() {
220
var w = window.open("", "exportToSql", "width=600,height=600,scrollbars=yes,resizable=yes");
221
w.document.write('<pre>'+tree.exportToSql().replace(/</g, "<").replace(/>/g, ">")+'</pre>');
223
function treePluginHide() {
224
document.getElementById("tree-plugin").style.display = "none";
225
document.getElementById("tree-plugin-header").innerHTML = "";
226
document.getElementById("tree-plugin-textarea").value = "";
227
document.getElementById("tree-plugin-button-import-html").style.display = "none";
230
document.getElementById("tree-plugin-import-html").onclick = function() { this.blur(); treePluginHide(); treePluginImportHtml(); };
231
document.getElementById("tree-plugin-button-import-html").onclick = treePluginImportHtmlExecute;
232
document.getElementById("tree-plugin-export-html").onclick = function() { this.blur(); treePluginHide(); treePluginExportHtml(); };
233
document.getElementById("tree-plugin-export-php").onclick = function() { this.blur(); treePluginHide(); treePluginExportPhp(); };
234
document.getElementById("tree-plugin-export-sql").onclick = function() { this.blur(); treePluginHide(); treePluginExportSql(); }
b'\\ No newline at end of file'