l.style.color = l.fontColorHilite;
}
}function selectTreeItem(l)
{
var s = window.selectedTreeItem;
if (s)
{
if (l == s) return;
s.style.backgroundColor = s.saveBgColor;
s.style.backgroundColor = s.saveBgColor;
if (!s.childTree) s.img.src = s.icons[0] || s._icons[0];
s.isSelected = false;
} if (l)
{
l.saveBgColor = l.style.backgroundColor;
l.saveBgColor = l.style.backgroundColor;
l.style.backgroundColor = l.selectedBgColor;
l.style.backgroundColor = l.selectedBgColor;
l.isSelected = true;
window.selectedTreeItem = l;
}
hiliteTreeItem(l);
}function onTreeItemUp(e, isIcon, isDrag)
{
e = e || window.Event || window.event;
if (e.which > 1) return false;
document.saveMousemove = document.onmousemove;
document.onmousemove = mouseTracker;
var a = window.activeTreeItem;
if (window.tDrag)
{
if (tDrag.dragLayer) isDrag = fOnTreeItemUp(e, a);
}
if (a && !isDrag)
{
if (a.isSelected)
onTreeFolder(a);
if (isIcon)
{
}
else if (a.action)
{
selectTreeItem(a);
window.saveActiveTreeItem = a;
setTimeout('window.saveActiveTreeItem.parentElement.Tree.onTreeItemAction();', 2);
}
else
{
selectTreeItem(a);
}
hiliteTreeItem();
}
window.inactiveTreeItem = activeTreeItem;
window.activeTreeItem = a;
}function onTreeItemAction(e, l)
{
l = l || this;
if (!window.saveActiveTreeItem) return;
if (saveActiveTreeItem.action)
{
eval(saveActiveTreeItem.action + "");
}
else if (l.id)
{
if (l.id.indexOf("treeItem") != -1) eval(l.action +"");
}
window.saveActiveTreeItem = null;
}function onTreeFolder(l)
{
document.onmousemove = mouseTracker;
l = l || window.activeTreeItem;
if (!l.childTree) return;
if (!l.childTree.treeLayer)
l.childTree.writeTree(); var childTreeLayer = l.childTree.treeLayer;
var childTree = l.childTree;
var parentTree = l.parentElement.Tree;
childTreeLayer.parentTree = parentTree;
childTreeLayer.zIndex = l.zIndex +1; //bring folders fwd for now...
if (childTree.isOpen)
{
l.img.src = l.icons[1];
if (l.openerImg)
l.openerImg.src = l.openFolderIcons[0]; closeChildTree(childTree);
}
else
{
childTree.isOpen = true;
l.img.src = l.icons[3];
if (l.openerImg)
l.openerImg.src = l.openFolderIcons[1];
if (parentTree)
{
childTreeLayer.style.visibility = "inherit";
if (!childTreeLayer.onmouseover)
buildTree(childTree);
childTree.treeLayer.style.pixelLeft = parentTree.treeLayer.style.pixelLeft + 20;
childTree.treeLayer.style.pixelTop = parentTree.treeLayer.style.pixelTop + l.style.pixelTop + l.style.pixelHeight + childTree.itemBorder;
} adjustParentTree(childTree);
adjustChildTree(childTree);
activeTreeLayers[childTreeLayer.id] = childTreeLayer;
} window.activeTreeLayer = childTreeLayer;
}function closeChildTree(tree)
{
if (!tree) return;
tree.isOpen = false;
if (tree.treeLayer)
tree.treeLayer.style.visibility = "hidden"; adjustChildTree(tree);
adjustParentTree(tree);
activeTreeLayers[tree.id] = null;
}function adjustParentTree(tree)
{
if (!tree)
return; tree = tree.Tree || tree;
var treeLayer = tree.treeLayer || tree;
var p = treeLayer.parentTree; if (!p)
return; if (!p.itemLayers)
return; var l = p.treeLayer;
if (!l)
return; for (var i=0; i<p.itemLayers.length; i++)
{
if (p.itemLayers.length > 0)
{
if (i>0)
{
p.itemLayers[i].style.pixelTop = p.itemLayers[i-1].style.pixelTop + p.itemLayers[i-1].style.pixelHeight;
if (p.itemLayers[i-1].childTree && !p.itemLayers[i-1].isDeleted)
{
if (p.itemLayers[i-1].childTree.isOpen)
{
p.itemLayers[i-1].childTree.treeLayer.style.pixelTop = p.itemLayers[i-1].childTree.parentFolder.parentElement.style.pixelTop + p.itemLayers[i-1].childTree.parentFolder.style.pixelTop + p.itemLayers[i-1].childTree.parentFolder.style.pixelHeight;
p.itemLayers[i].style.pixelTop += p.itemLayers[i-1].childTree.treeLayer.style.pixelHeight;
for (var j in p.itemLayers[i-1].childTree.childTrees)
{
if (p.itemLayers[i-1].childTree.childTrees[j].isOpen) adjustChildTree(p.itemLayers[i-1].childTree);
}
}
}
}
p.itemLayers[i].style.visibility = "inherit";
}
} if (l.lastLayer)
{
l.style.pixelHeight = l.lastLayer.style.pixelTop +20;
if (l.lastLayer.childTree)
{
if (l.lastLayer.childTree.isOpen)
{
l.lastLayer.childTree.treeLayer.style.pixelTop = l.lastLayer.childTree.parentFolder.parentElement.style.pixelTop + l.lastLayer.childTree.parentFolder.style.pixelTop + l.lastLayer.childTree.parentFolder.style.pixelHeight;
l.style.pixelHeight += l.lastLayer.childTree.treeLayer.style.pixelHeight;
}
}
}
else
{
l.style.pixelHeight = 0;
}
adjustParentTree(l);
}function adjustChildTree(tree)
{
if (!tree)
return;
}
}function selectTreeItem(l)
{
var s = window.selectedTreeItem;
if (s)
{
if (l == s) return;
s.style.backgroundColor = s.saveBgColor;
s.style.backgroundColor = s.saveBgColor;
if (!s.childTree) s.img.src = s.icons[0] || s._icons[0];
s.isSelected = false;
} if (l)
{
l.saveBgColor = l.style.backgroundColor;
l.saveBgColor = l.style.backgroundColor;
l.style.backgroundColor = l.selectedBgColor;
l.style.backgroundColor = l.selectedBgColor;
l.isSelected = true;
window.selectedTreeItem = l;
}
hiliteTreeItem(l);
}function onTreeItemUp(e, isIcon, isDrag)
{
e = e || window.Event || window.event;
if (e.which > 1) return false;
document.saveMousemove = document.onmousemove;
document.onmousemove = mouseTracker;
var a = window.activeTreeItem;
if (window.tDrag)
{
if (tDrag.dragLayer) isDrag = fOnTreeItemUp(e, a);
}
if (a && !isDrag)
{
if (a.isSelected)
onTreeFolder(a);
if (isIcon)
{
}
else if (a.action)
{
selectTreeItem(a);
window.saveActiveTreeItem = a;
setTimeout('window.saveActiveTreeItem.parentElement.Tree.onTreeItemAction();', 2);
}
else
{
selectTreeItem(a);
}
hiliteTreeItem();
}
window.inactiveTreeItem = activeTreeItem;
window.activeTreeItem = a;
}function onTreeItemAction(e, l)
{
l = l || this;
if (!window.saveActiveTreeItem) return;
if (saveActiveTreeItem.action)
{
eval(saveActiveTreeItem.action + "");
}
else if (l.id)
{
if (l.id.indexOf("treeItem") != -1) eval(l.action +"");
}
window.saveActiveTreeItem = null;
}function onTreeFolder(l)
{
document.onmousemove = mouseTracker;
l = l || window.activeTreeItem;
if (!l.childTree) return;
if (!l.childTree.treeLayer)
l.childTree.writeTree(); var childTreeLayer = l.childTree.treeLayer;
var childTree = l.childTree;
var parentTree = l.parentElement.Tree;
childTreeLayer.parentTree = parentTree;
childTreeLayer.zIndex = l.zIndex +1; //bring folders fwd for now...
if (childTree.isOpen)
{
l.img.src = l.icons[1];
if (l.openerImg)
l.openerImg.src = l.openFolderIcons[0]; closeChildTree(childTree);
}
else
{
childTree.isOpen = true;
l.img.src = l.icons[3];
if (l.openerImg)
l.openerImg.src = l.openFolderIcons[1];
if (parentTree)
{
childTreeLayer.style.visibility = "inherit";
if (!childTreeLayer.onmouseover)
buildTree(childTree);
childTree.treeLayer.style.pixelLeft = parentTree.treeLayer.style.pixelLeft + 20;
childTree.treeLayer.style.pixelTop = parentTree.treeLayer.style.pixelTop + l.style.pixelTop + l.style.pixelHeight + childTree.itemBorder;
} adjustParentTree(childTree);
adjustChildTree(childTree);
activeTreeLayers[childTreeLayer.id] = childTreeLayer;
} window.activeTreeLayer = childTreeLayer;
}function closeChildTree(tree)
{
if (!tree) return;
tree.isOpen = false;
if (tree.treeLayer)
tree.treeLayer.style.visibility = "hidden"; adjustChildTree(tree);
adjustParentTree(tree);
activeTreeLayers[tree.id] = null;
}function adjustParentTree(tree)
{
if (!tree)
return; tree = tree.Tree || tree;
var treeLayer = tree.treeLayer || tree;
var p = treeLayer.parentTree; if (!p)
return; if (!p.itemLayers)
return; var l = p.treeLayer;
if (!l)
return; for (var i=0; i<p.itemLayers.length; i++)
{
if (p.itemLayers.length > 0)
{
if (i>0)
{
p.itemLayers[i].style.pixelTop = p.itemLayers[i-1].style.pixelTop + p.itemLayers[i-1].style.pixelHeight;
if (p.itemLayers[i-1].childTree && !p.itemLayers[i-1].isDeleted)
{
if (p.itemLayers[i-1].childTree.isOpen)
{
p.itemLayers[i-1].childTree.treeLayer.style.pixelTop = p.itemLayers[i-1].childTree.parentFolder.parentElement.style.pixelTop + p.itemLayers[i-1].childTree.parentFolder.style.pixelTop + p.itemLayers[i-1].childTree.parentFolder.style.pixelHeight;
p.itemLayers[i].style.pixelTop += p.itemLayers[i-1].childTree.treeLayer.style.pixelHeight;
for (var j in p.itemLayers[i-1].childTree.childTrees)
{
if (p.itemLayers[i-1].childTree.childTrees[j].isOpen) adjustChildTree(p.itemLayers[i-1].childTree);
}
}
}
}
p.itemLayers[i].style.visibility = "inherit";
}
} if (l.lastLayer)
{
l.style.pixelHeight = l.lastLayer.style.pixelTop +20;
if (l.lastLayer.childTree)
{
if (l.lastLayer.childTree.isOpen)
{
l.lastLayer.childTree.treeLayer.style.pixelTop = l.lastLayer.childTree.parentFolder.parentElement.style.pixelTop + l.lastLayer.childTree.parentFolder.style.pixelTop + l.lastLayer.childTree.parentFolder.style.pixelHeight;
l.style.pixelHeight += l.lastLayer.childTree.treeLayer.style.pixelHeight;
}
}
}
else
{
l.style.pixelHeight = 0;
}
adjustParentTree(l);
}function adjustChildTree(tree)
{
if (!tree)
return;
var l = tree.treeLayer; if (!l)
return; if (!tree.itemLayers)
return; for (var i=0; i<tree.itemLayers.length; i++)
{
if (!tree.itemLayers[i].childTree)
{
}
else if (!tree.itemLayers[i].childTree.treeLayer || tree.itemLayers[i].isDeleted)
{
}
else if (tree.itemLayers[i].childTree)
{
tree.itemLayers[i].childTree.treeLayer.style.pixelTop = tree.itemLayers[i].childTree.parentFolder.parentElement.style.pixelTop + tree.itemLayers[i].childTree.parentFolder.style.pixelTop + tree.itemLayers[i].childTree.parentFolder.style.pixelHeight;
tree.itemLayers[i].childTree.treeLayer.zIndex = l.zIndex +1; //bring folders fwd for now...
if (l.style.visibility != "inherit")
tree.itemLayers[i].childTree.treeLayer.style.visibility = "hidden";
else if (tree.itemLayers[i].childTree.isOpen)
tree.itemLayers[i].childTree.treeLayer.style.visibility = "inherit";
}
adjustChildTree(tree.itemLayers[i].childTree);
}
}function handleTreeContainer(e, container)
{
}function setTreeItemProps(l, label, action, icons, img, fontSize, fontColor, fontColorHilite, selectedBgColor, mouseover, childTree)
{
l.label = label;
l.action = action;
//l.fontSize = fontSize || 14;
l.fontSize = 2;
l.fontColor = fontColor;
l.fontColorHilite = fontColorHilite;
l.selectedBgColor = selectedBgColor;
if (childTree)
{
l.childTree = childTree;
l.childTree.parentFolder = l;
}
l.icons = icons;
l.img = img;
l.onmouseover = mouseover;
}function buildTree(tree, x, y, child)
{
tree = tree || this;
if (!tree.treeLayer)
writeTree(tree); var l = tree.treeLayer;
if (!l)
return; var items = new Array();
for (var i=0; i<l.children.length; i++) items[i] = l.children[i];
tree.itemLayers = items;
var container = l.Tree.container;
var actions = l.Tree.actions;
var proto = l.Tree.protoTree;
l.onmouseover = setActiveTree;
l.Tree.childTrees = new Array();
l.style.pixelWidth = proto.treeWidth || 200;
l.style.pixelHeight = proto.treeHeight || 200;
for (var i=0; i < l.children.length; i++)
{
child = l.children[i];
child.pos = i;
var childTree=null, icons=null, img=null;
if (child.innerHTML.indexOf("treeFolderImg") > -1)
{
childTree = container.trees[child.id.substring(child.id.indexOf(":")+1)];
l.Tree.childTrees[l.Tree.childTrees.length] = childTree;
icons = l.Tree.icons[i] || l.Tree.protoTree.folderIcons;
img = child.document.images["treeFolderImg:" + child.id];
if (child.innerHTML.indexOf("treeOpenerImg") > -1)
{
child.openerImg = child.document.images["treeOpenerImg:" + child.id];
child.openFolderIcons = proto.openFolderIcons;
}
}
else
{
icons = l.Tree.icons[i] || l.Tree.protoTree.itemIcons;
img = child.document.images["treeItemImg:" + child.id];
}
setTreeItemProps(child,(l.Tree.items[i].label || l.Tree.items[i]),actions[i],icons,img,(l.Tree.fontSizes[i] || proto.fontSize), (l.Tree.fontColors[i] || proto.fontColor),proto.fontColorHilite,proto.selectedBgColor,onTreeItemOver,childTree);
child.style.pixelLeft = child.style.pixelWidth + 2;
child.style.pixelLeft = child.style.pixelWidth + 3;
child.style.pixelWidth = proto.treeItemWidth || 100;
child.style.pixelHeight = proto.treeItemHeight || 20;
if (i>0)
{
child.style.pixelLeft = l.children[i-1].style.pixelLeft;
child.style.pixelTop = l.children[i-1].style.pixelTop + l.children[i-1].style.pixelHeight + proto.itemBorder;
var w = l.children[i-1].style.pixelLeft + l.children[i-1].style.pixelWidth;
if (child.style.pixelWidth < w) child.style.pixelWidth = w;
}
child.style.visibility = "inherit";
} if (l.children.length == 1)
{
l.lastLayer = null;
l.style.pixelHeight = 20;
}
else
{
l.lastLayer = child;
child.isLastLayer = true;
l.style.pixelHeight = child.style.pixelTop + child.style.pixelHeight;
l.style.pixelWidth = child.style.pixelLeft + child.style.pixelWidth;
}
l.style.pixelLeft = x || 0;
l.style.pixelTop = y || 0;
l.onmousedown = onTreeItemDown;
l.onmouseout = onTreeItemOut;
if (container.style.visibility != "inherit")
{
container.style.pixelWidth = window.activeTreeLayer.style.pixelWidth +2;
container.style.pixelHeight = window.activeTreeLayer.style.pixelHeight +2;
container.style.visibility = "inherit";
}
}function showTree(tree, x, y)
{
tree = tree || this;
if (!tree.treeLayer)
writeTree(tree); var l = tree.treeLayer;
if (!l)
return; window.activeTreeLayer = l;
window.activeTreeLayers[l.id] = l;
if (l.parentElement)
{
if (x) l.parentElement.style.pixelLeft = x || 0;
if (y) l.parentElement.style.pixelTop = y || 0;
window.activeTreeLayer.style.pixelLeft = 1;
window.activeTreeLayer.style.pixelTop = 1;
} if (!l.onmouseover)
buildTree(l.Tree);
l.style.visibility = "inherit";
}function setActiveTree(e, l)
{
window.activeTreeLayer = l || this;
}function mouseTracker(e)
{
e = e || window.Event || window.event;
window.pageX = e.pageX || e.clientX;
window.pageY = e.pageY || e.clientY;
}function setTreeMouseTracker()
{
document.onmousemove = this.mouseTracker;
}function onTreeItemDown(e, l)
{
e = e || window.Event || window.event;
l = l || window.activeTreeItem;
if (!l)
return false; if (e.which > 1)
{
if (l.parentElement.Tree.protoTree.onTreeRightDown)
l.parentElement.Tree.protoTree.onTreeRightDown(e, l);
return false;
}
else if (window.Features)
{
return fOnTreeItemDown(e, l);
}
return true;
}function setMouseUps(name, func)
{
window.saveMouseUps = window.saveMouseUps || new Array();
window.saveMouseUps[name] = func;
window.saveMouseUps[onmouseup] = onmouseup;
if (document.onmouseup && document.onmouseup != handleMouseUps)
window.saveMouseUps[document.onmouseup] = document.onmouseup;
document.onmouseup = handleMouseUps;
}function handleMouseUps(e)
{
for (var i in window.saveMouseUps)
{
if (typeof(saveMouseUps[i]) == "function" && saveMouseUps[i] != window.hideMenu)
saveMouseUps[i](e);
}
if (window.hideMenu)
hideMenu(e); //backwards compat.
}if (document.all)
{
if (!document.all["rootContainer"])
document.writeln('<SPAN ID="rootContainer" STYLE="position:absolute;visibility:hidden"></SPAN>');
if (!document.all["dragContainer"])
document.writeln('<SPAN ID="dragContainer" STYLE="position:absolute;visibility:hidden"></SPAN>');
}// we expand the 'tree' to the node by 'treeParams'
// 'treeParams' must like 'AAAA->BBBB->CCCC'..
// we can parse the strings from the 'treeParams' string,
// and we expand the tree with these strings labelled in tree
function expandTo(tree,treeParams)
{
var i;
var pos;
var strs = new Array();for (i=0; ((pos=treeParams.search("->"))!=-1);i++)
{
strs[i] = treeParams.substr(0,pos);
treeParams = treeParams.replace(strs[i]+"->","");
}
if (treeParams != "")
strs[i] = treeParams;var treeItem = tree;
for (i=0; i<strs.length; i++)
{
var treeItem = getTreeItem(treeItem,strs[i]);
if (treeItem==null || treeItem.items==null)
break;
}
}// find a item in tree items which label is == str;
// if the found item is a tree, we expand the item;
// if the found item is a string, we navigate the right frame to the actionURL.;
// at last return the found item;
function getTreeItem(tree, str)
{
if (tree && tree.items)
{
var i;
for (i=0; i<tree.items.length; i++)
{
var iTree = tree.items[i];
var iLabel = (iTree.items ? iTree.label:iTree);
if (iLabel == str)
{
var l;
if (iTree.items)
l = document.all("treeItem"+i+":"+iTree.id,0);
else
{
l = document.all("treeItem"+i+":"+iTree,0);
selectTreeItem(l);
var action = tree.actions[i];
eval(action);
/*
// action = action.replace("goURL('","");
// action = action.replace("')",""); // xxxx:here is hack ,we use the static name 'top.main.rf',;
// maybe some problem will happens someday because right frame name isn't always equals 'rf'
top.main.rf.location.href = action;
*/
} onTreeFolder(l,true);
return iTree;
}
}
}return null;
}