﻿//2007-02-07

//节点或图标的单击
function TreeView_NodeClick()
{
    var o = event.srcElement;
    var CurrentNodeRow = o.parentElement.parentElement;

    var oStateImagef = null;
    var oImg = document.getElementById("img" + CurrentNodeRow.nodeid);

    if (o.id != "undefined" && o.id.indexOf("stateImagef") > -1)
    {
        oStateImagef = o;
    }
    else
    {
        oStateImagef = document.getElementById("stateImagef" + CurrentNodeRow.nodeid);
    }

    //全关
    //if (CurrentNodeRow.pnodeid == "")
    //{
    //    TreeView_CloseAll(CurrentNodeRow.nodeid);
    //}

    var isCloseAction = (CurrentNodeRow.status == 'expand');
    var childrencount = parseInt(CurrentNodeRow.childrencount);
    if (childrencount > 0)
    {
        TreeView_ShowHideChildren(CurrentNodeRow.rowIndex, CurrentNodeRow, isCloseAction);
        TreeView_ChangeImg(oStateImagef);
    }
	
    TreeView_ChangeRowStatus(CurrentNodeRow);
    TreeView_ChangeFolderImg(oImg);
}

//显示或隐藏下级节点
function TreeView_ShowHideChildren(iStart, NodeRow, isCloseAction)
{
    var NodeRows = NodeRow.parentElement;
    var nodeid = NodeRow.nodeid;
    var Node;

    for (var i = iStart + 1; i < NodeRows.children.length; i++)
    {
        Node = NodeRows.children[i];
        if (Node.pnodeid == nodeid)
        {
            if (isCloseAction)
            {
                Node.style.display = "none";
                if (parseInt(Node.childrencount) > 0) TreeView_ShowHideChildren(i, Node, isCloseAction);
            }
            else
            {
                Node.style.display = "block";
                if (Node.status == 'expand')
                {
                    if (parseInt(Node.childrencount) > 0) TreeView_ShowHideChildren(i, Node, isCloseAction);
                }
            }
        }
        else
        {
            if (typeof(Node.nodefullid) != "undefined")
            {
                if (Node.nodefullid.indexOf(nodeid) < 0) {break;}
            }
            else
            {
                if (typeof(Node.nodecode) != "undefined")
                {
                    if (Node.nodecode.indexOf(nodeid) < 0) {break;}
                }
            }
        }
    }
}

//转换节点图标
function TreeView_ChangeImg(eImg)
{
    var imgPath = "/secmanage/Include/adminskin/FolderTree/";
    
    if ((eImg == "undefined") || (eImg == null)) return ;

    var sTmpSrc = eImg.src;
    
    if ((sTmpSrc == "undefined") || (sTmpSrc==null)) return ;

    sTmpSrc = sTmpSrc.substr(sTmpSrc.lastIndexOf("/")).replace("/","").toLowerCase();

    if (sTmpSrc == "tminus.gif")
    {
        eImg.src = imgPath + "tplus.gif";
        return;
    }
    if (sTmpSrc == "tplus.gif")
    {
        eImg.src = imgPath + "tminus.gif";
        return;
    }
    if (sTmpSrc == "lminus.gif")
    {
        eImg.src = imgPath + "lplus.gif";
        return;
    }
    if (sTmpSrc == "lplus.gif")
    {
        eImg.src = imgPath + "lminus.gif";
        return;
    }
}

//设置节点的开关状态
function TreeView_ChangeRowStatus(NodeRow)
{
    if (NodeRow.status != "expand")
    {
        NodeRow.status = "expand";
    }
    else
    {
        NodeRow.status = "close";
    }
}

//转换文件夹图标
function TreeView_ChangeFolderImg(oImg)
{
    var imgPath = "/secmanage/Include/adminskin/FolderTree/";
    
    if ((oImg == "undefined") || (oImg == null)) return ;

    var sTmpSrc = oImg.src;
    
    if ((sTmpSrc == "undefined") || (sTmpSrc==null)) return ;

    sTmpSrc = sTmpSrc.substr(sTmpSrc.lastIndexOf("/")).replace("/","").toLowerCase();

    if (sTmpSrc == "foldero.gif")
    {
	    oImg.src = imgPath + "folder.gif";
    }
    else
    {
	    oImg.src = imgPath + "foldero.gif";
    }
}

//全部关闭
function TreeView_CloseAll(nodeid)
{
    var tbl = document.all.tree;
    var r;
    for (var i = 0; i < tbl.rows.length; i++)
    {
        r = tbl.rows[i];
        if (r.pnodeid == '' && r.nodeid != nodeid)
        {
            var oStateImagef = document.getElementById("stateImagef" + r.nodeid);
	        if (oStateImagef)
	        {
		        var sTmpSrc = oStateImagef.src;
		        if ((sTmpSrc != null) || (sTmpSrc != 'undefined'))
		        {
			        sTmpSrc = sTmpSrc.substr(sTmpSrc.lastIndexOf("/")).replace("/","").toLowerCase();
			        if ((sTmpSrc == "lminus.gif") || (sTmpSrc == "tminus.gif"))
			        {
				        oStateImagef.click();
			        }
		        }
	        }
        }
    }
}

