2 function TreeView_ToggleExpand (treeId, nodeId) {
3 var tree = getTree (treeId);
6 var spanId = treeId + "_" + nodeId;
7 var node = document.getElementById (spanId);
8 var expand = node.style.display == "none";
10 if (tree.populateFromClient && expand && node.populated != true && (node.innerHTML.length == 0 || node.hasError)) {
11 WebForm_DoCallback (treeId, nodeId, TreeView_PopulateCallback, treeId + " " + nodeId, TreeView_ErrorCallback)
16 node.populated = true;
18 node.style.display = expand ? "block" : "none";
20 var myForm = WebForm_GetFormFromCtrl (treeId);
21 var inputStates = myForm [treeId + "_ExpandStates"];
22 TreeView_SetNodeFlag (inputStates, nodeId, expand);
25 var image = document.getElementById (spanId + "_img");
26 if (tree.defaultImages) {
27 if (expand) image.src = image.src.replace ("plus","minus");
28 else image.src = image.src.replace ("minus","plus");
30 if (expand) image.src = tree.collapseImage;
31 else image.src = tree.expandImage;
34 if (expand) alt = tree.collapseAlt;
35 else alt = tree.expandAlt;
37 if (alt.indexOf ("{0}") != -1) {
38 var txt = document.getElementById (spanId + "_txt").innerText;
39 alt = alt.replace ("{0}", txt);
45 function TreeView_SetNodeFlag (flagInput, nodeId, set)
47 if (!set) flagInput.value = flagInput.value.replace ("|" + nodeId + "|", "|");
48 else flagInput.value = flagInput.value + nodeId + "|";
51 function TreeView_PopulateCallback (data, ids)
53 var idArray = ids.split (" ");
54 var tree = getTree (idArray[0]);
57 var spanId = idArray[0] + "_" + idArray[1];
58 var node = document.getElementById (spanId);
59 node.populated = true;
61 node.innerHTML = data;
62 TreeView_ToggleExpand (idArray[0], idArray[1]);
63 var myForm = WebForm_GetFormFromCtrl (treeId);
64 TreeView_SetNodeFlag (myForm [idArray[0] + "_PopulatedStates"], idArray[1], true);
66 if (tree.showImage && tree.noExpandImage != null) {
67 var image = document.getElementById (spanId + "_img");
68 image.src = tree.noExpandImage;
73 function TreeView_ErrorCallback (data, ids)
75 var idArray = ids.split (" ");
76 var node = document.getElementById (idArray[0] + "_" + idArray[1]);
77 node.innerHTML = data;
78 node.populated = true;
79 TreeView_ToggleExpand (idArray[0], idArray[1]);
80 node.populated = false;
84 function getTree (treeId) { try { return eval (treeId + "_data"); } catch(e) { return null; } }
85 function getNodeLink (node) { return node.childNodes[node.childNodes.length - 1]; }
87 function TreeView_HoverNode (treeId, node)
89 var tree = getTree (treeId);
92 if (tree.hoverClass != null) {
93 if (node.normalClass == null)
94 node.normalClass = node.className;
95 node.className = node.normalClass + " " + tree.hoverClass;
97 if (tree.hoverLinkClass != null) {
98 var nodeLink = getNodeLink(node);
99 if (nodeLink.normalClass == null)
100 nodeLink.normalClass = nodeLink.className;
101 nodeLink.className = nodeLink.normalClass + " " + tree.hoverLinkClass;
105 function TreeView_UnhoverNode (node) {
106 if (node != null && node.normalClass != null)
107 node.className = node.normalClass;
108 var nodeLink = getNodeLink(node);
109 if (nodeLink != null && nodeLink.normalClass != null)
110 nodeLink.className = nodeLink.normalClass;