
if (typeof(Wicket) == "undefined")
Wicket = { };
Wicket.Tree = { };
Wicket.Tree.askForReload = function() {
if (confirm("There was a problem updating the tree. It might be caused be the old page being cached by the browser. \n"+
"It is recommended to reload the page. Do you want to reload it?")) {
window.location.reload();
}
}
Wicket.Tree.removeNodes = function(prefix, nodeList) {
var problem = false;
for (var i = 0; i < nodeList.length; i++) {
var e = document.getElementById(prefix + nodeList[i]);
if (e != null) {
e.parentNode.removeChild(e);
} else {
 problem = true;
Wicket.Log.error("Can't find node with id " + prefix + nodeList[i] + ". This shouldn't happen - possible bug in tree?");
}
}
if (problem == true) {
Wicket.Tree.askForReload();
}
}
Wicket.Tree.createElement = function(elementId, afterId) {
var existing = Wicket.$(elementId);
if (typeof(existing) != "undefined" && existing != null) {
Wicket.Tree.askForReload();
}
var after = document.getElementById(afterId);
var newNode = document.createElement(after.tagName);
newNode.setAttribute("id", elementId);
var p = after.parentNode;
for (var i = 0; i < p.childNodes.length; ++i) {
if (after == p.childNodes[i])
break;
}
if (i == p.childNodes.length - 1) {
p.appendChild(newNode);
} else {
p.insertBefore(newNode, p.childNodes[i+1]);
}
}
Wicket.TreeTable = { };

Wicket.TreeTable.update = function(elementId) {
var element = document.getElementById(elementId);
if (element != null && typeof(element) != "undefined") {
try {
 var headerParent = element.getElementsByTagName("div")[1];
 var header = headerParent.getElementsByTagName("div")[0];
 var body = headerParent.nextSibling;
 while (body.tagName != "DIV") { 
body = body.nextSibling;
}
 if (body.className == "wicket-tree-table-body") {
 var padding;
if (document.defaultView && document.defaultView.getComputedStyle) {
padding = document.defaultView.getComputedStyle(headerParent, '').getPropertyValue("padding-right");
} else if (headerParent.currentStyle) {
padding = headerParent.currentStyle.paddingRight;
} else {
padding = 6;
}
padding = parseInt(padding, 10);
 var w = (body.getElementsByTagName("div")[0].clientWidth - padding) + "px";
if (w == (-padding)+"px") {   w = (body.getElementsByTagName("div")[1].clientWidth - padding) + "px";
}
if (w != "0px") {
header.style.width = w;
}
}
} catch (ignore) { 
}
}
}
Wicket.TreeTable.attached = new Object();
Wicket.TreeTable.attachUpdate = function(treeTableId) {
	var attached = Wicket.TreeTable.attached;
	Wicket.TreeTable.update(treeTableId);
	if (typeof(attached[treeTableId]) == "undefined") { 
 attached[treeTableId] = window.setInterval(function() { Wicket.TreeTable.update(treeTableId); }, 100);
}
}
