
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);
}
};

