function wsTreeCtrl()
{
// Methods
this.initializeDocument = initializeDocument;
this.InsItem = InsItem;
this.GenerateCode = GenerateCode;
this.ToggleTree = ToggleTree;
this.ResetItem = ResetItem;
this.ExpandAllTree = ExpandAllTree;
this.RecudeAllTree = RecudeAllTree;
// constant
var nCount = 0;
var LastRootItem = 0;
var ImgDir = "../images/Analysis/";
var ItemImg = "../images/Analysis/html.gif";
// variable
var Doc;
var browserVersion;
var id = "";
var Item = new Array();
function initializeDocument()
{
if (document.all) { //IE4
Doc = document.all;
browserVersion = 1;
}else if (document.layers) { //NS4
Doc = document.layers;
browserVersion = 2;
}else if(document.getElementById) { //NS6
Doc = document;
browserVersion = 3;
}else { //other
Doc = document.all;
browserVersion = 0;
}
}
function InsItem(parentItem, description, hreference, target)
{
var iDepth = 0;
var iLength = Item.length;
if(parentItem == null) {
parentItem = iLength;
}
if(Item[parentItem] != null) {
iDepth = Item[parentItem][4];
iDepth++;
}
Item[iLength] = new Array();
Item[iLength][0] = parentItem;
Item[iLength][1] = description;
Item[iLength][2] = hreference;
Item[iLength][3] = target;
Item[iLength][4] = iDepth;
Item[iLength][5] = true;
nCount++;
return iLength;
}
function GenerateCode()
{
var NextItemDepth = 0;
var CurItemDepth = 0;
DocWrite("
");
for(var i=0; i| ");
DocWrite("");
DocWrite(" | ");
}
DocWrite("
");
LastRootItem = GetRootItem(nCount-1);
}
function GetSpace(CurItem, Depth, bBlank)
{
var Space = "";
for(var i=0; i";
}else {
Space += "
";
}
}else {
Space += "
";
}
}
//alert("Space===["+Space+"]");
return Space;
}
function bHaveSameDepthChildItem(CurItem, Depth)
{
if(CurItem < 0 || CurItem > Item.length) { return false; }
var PItem = Item[CurItem][0];
var RootItem = GetRootItemEx(PItem, Depth);
if(GetItemCount(RootItem, Depth) >= 2) {
//alert("true");
return true;
}else {
return false;
}
}
function GetChildItems(iNode)
{
var ChildItems = "";
var CurDepth = Item[iNode][4];
for(var i=iNode+1; i= Item[i][4]) { return ChildItems; }
if(Item[i][4] > Item[iNode][4]) {
ChildItems += i + ";"
}
}
return ChildItems;
}
function ToggleTree(CurNode, NodeItem)
{
if(NodeItem == "") { return; }
var NodeStatus;
var arr = new Array();
arr = NodeItem.split(";");
if(Item[CurNode][5] == true) {
ToggleDisplayLayer(arr, CurNode, "none");
Item[CurNode][5] = false;
}else {
ToggleDisplayLayer(arr, CurNode, "");
Item[CurNode][5] = true;
ResetItem(CurNode);
}
}
function ToggleDisplayLayer(ItemArray, CurNode, Display)
{
var NodeImg;
var ItemImg;
var bShow;
if(Display == "none") { bShow = false; }
else{ bShow = true; }
if(!bShow) {
ItemImg = ImgDir + "folder.gif";
if(GetItemCount(CurNode,Item[CurNode][4]) == 1) {
if(GetItemCount(GetRootItemEx(CurNode, 0),0) == 1 && CurNode == 0) {
NodeImg = ImgDir + "Rplus.gif";
}else {
NodeImg = ImgDir + "Lplus.gif";
}
}else {
if(CurNode == 0) {
NodeImg = ImgDir + "fplus.gif";
}else {
NodeImg = ImgDir + "Tplus.gif";
}
}
}
else {
ItemImg = ImgDir + "folderopen.gif";
if(GetItemCount(CurNode,Item[CurNode][4]) == 1) {
if(GetItemCount(GetRootItemEx(CurNode, 0),0) == 1 && CurNode == 0) {
NodeImg = ImgDir + "Rminus.gif";
}else {
NodeImg = ImgDir + "Lminus.gif";
}
}else {
if(CurNode == 0) {
NodeImg = ImgDir + "fminus.gif";
}else {
NodeImg = ImgDir + "Tminus.gif";
}
}
}
for(var i=0; i=0; i--) {
Item[i][5] = false;
ToggleTree(i, GetChildItems(i));
}
}
function RecudeAllTree()
{
for(var i=Item.length-1; i>=0; i--) {
Item[i][5] = true;
ToggleTree(i, GetChildItems(i));
}
}
function GetRootItem(ChildItem)
{
if(Item[ChildItem][4] == 0) {
return ChildItem;
}else {
return GetRootItem(Item[ChildItem][0]);
}
}
function GetRootItemEx(ChildItem, Depth)
{
if(Item[ChildItem][4] == Depth) {
return ChildItem;
}else {
return GetRootItemEx(Item[ChildItem][0], Depth);
}
}
function GetItemCount(CurItem, Depth)
{
var nRet = 0;
for(var i=CurItem; i