
var tree = null;
var selected = null;

function findTreeItem(idx)
{
    for (var i in TreeHandler.all) {
		if (TreeHandler.all[i].idx == idx) return TreeHandler.all[i];
	}
	return tree;
}

function insertTree()
{
	var struct = getStruct();
	var item = struct.rootItem();
	tree = new Tree(item["title"], null);
	tree.idx = item["index"];
	tree.pidx = item["parent"];
	
	for (var i = 0; i < struct.length(); i++) {
		if (struct.item(i)["visible"] == "1") {
			var item = struct.item(i);
			var o = new TreeItem(item["title"], "javascript:getPlayer().gotoPage(" + item["gix"] + ");", findTreeItem(item["parent"]));
			o.idx = item["index"];
			o.gix = item["gix"];
			o.pidx = item["parent"];
		}
	}
	
	document.write(tree);
}	
	
function setStatus(gix)	
{
	for (var i in TreeHandler.all) {
		if (TreeHandler.all[i].gix == gix) {
			var item = getStruct().findItem(gix);
			if (item) {
				var icon = TreeConfig.pageNotAtt;
				switch (item["status"]) {
					case "C": icon = TreeConfig.pageCompleted;
						break;
					case "I": icon = TreeConfig.pageIncomplete;
						break;
					case "P": icon = TreeConfig.pagePass;
						break;
					case "F": icon = TreeConfig.pageFail;
						break;
				}
				document.getElementById(TreeHandler.all[i].id + '-icon').src = icon;
			}
		}
	}
}

function initialize()
{
	for (var i in TreeHandler.all) {
		setStatus(TreeHandler.all[i].gix);
	}
}
	
function selectedNode(gix) 
{
	if (selected) {
		setStatus(selected.gix);
		document.getElementById(selected.id).className = "tree-item";
	}
	selected = null;
	
	while (!selected && gix >= 0) {
		for (var i in TreeHandler.all) {
			if (TreeHandler.all[i].gix == gix) {
				setStatus(gix);
				document.getElementById(TreeHandler.all[i].id).className = "tree-item-select";
				selected = TreeHandler.all[i];
				TreeHandler.all[i].focus();
				return;
			}
		}
		gix--;
	}
}

function openAll()
{
    for (var i in TreeHandler.all) {
		if (TreeHandler.all[i].pidx == tree.idx) TreeHandler.all[i].expandAll();
	}
}

function closeAll()
{
    for (var i in TreeHandler.all) {
		if (TreeHandler.all[i].pidx == tree.idx) TreeHandler.all[i].collapseAll();
	}
}
