summaryrefslogtreecommitdiff
path: root/javascript/libs/mygosu/actions.js
blob: 9b950ba3b9f2d05dbd7f91885424e0a10d9f54ce (plain)
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
// tooltips
function treeTooltipOn() { $("tree-tooltip").innerHTML = treeTooltips[treeElements.indexOf(this.id)]; }
function treeTooltipOff() { $("tree-tooltip").innerHTML = ""; }
var treeElements = ["tree-moveUp", "tree-moveDown", "tree-moveLeft", "tree-moveRight", "tree-remove", "tree-convert"];
var treeTooltips = ["Move Up", "Move Down", "Move Left", "Move Right", "Delete", "Convert between Document and Folder"];
for (var i = 0; i < treeElements.length; i++) {
	$(treeElements[i]).onmouseover = treeTooltipOn;
	$(treeElements[i]).onmouseout = treeTooltipOff;
}

// moving nodes
function treeMoveUp()    { if (tree.mayMoveUp())    { tree.moveUp();    treePluginExportBitweaver(); } }
function treeMoveDown()  { if (tree.mayMoveDown())  { tree.moveDown();  treePluginExportBitweaver(); } }
function treeMoveLeft()  { if (tree.mayMoveLeft())  { tree.moveLeft();  treePluginExportBitweaver(); } }
function treeMoveRight() { if (tree.mayMoveRight()) { tree.moveRight(); treePluginExportBitweaver(); } }

$("tree-moveUp").onclick	= treeMoveUp;
$("tree-moveDown").onclick  = treeMoveDown;
$("tree-moveLeft").onclick  = treeMoveLeft;
$("tree-moveRight").onclick = treeMoveRight;

if (document.all && !/opera/i.test(navigator.userAgent)) {
	$("tree-moveUp").ondblclick	   = treeMoveUp;
	$("tree-moveDown").ondblclick  = treeMoveDown;
	$("tree-moveLeft").ondblclick  = treeMoveLeft;
	$("tree-moveRight").ondblclick = treeMoveRight;
}

// remove node
$("tree-remove").onclick = treeRemove;
function treeRemove() { if (tree.mayRemove()) { if (confirm("Delete current node ?")) { tree.remove(); treePluginExportBitweaver(); } } }
// export string
function treePluginExportBitweaver() { $('structure_string').value = tree.exportToPhp(); }

/* Finds the index of the first occurence of item in the array, or -1 if not found */
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function(item) {
		for (var i = 0; i < this.length; ++i) {
			if (this[i] === item) { return i; }
		}
		return -1;
	};
}

// convert node
$("tree-convert").onclick = function() { this.blur(); treePluginConvertType(); };
function treePluginConvertType() {
	if (tree.active) {
		var node = tree.getActiveNode();
		var type = (node.isFolder) ? "doc" : "folder";
		var o = {"href": node.href, "title": node.title, "target": node.target};
		if (type == "doc") {
			if (tree.mayRemove()) {
				tree.insertBefore("tree-"+(++tree.count), node.text, type, o);
				tree.remove();
			}
		} else {
			tree.insertBefore("tree-"+(++tree.count), node.text, type, o);
			tree.remove();
		}
	}
}