﻿/********************************************
保留所有版权 Copyright : FSLL.COM
Dobbin Wen
*********************************************/
function TransXmlData(xmldataid,xsltfilename,htmldiv){
	var doc = new ActiveXObject("MSXML.DOMDocument")
	doc.async = false;
	doc.loadXML(document.all[xmldataid].xml);

	var xsl = new ActiveXObject("MSXML.DOMDocument")
	xsl.async = false;
	xsl.load(xsltfilename);

	document.all[htmldiv].innerHTML = doc.documentElement.transformNode(xsl);
}

function TreeView_NodeClick(){
	var eImg=event.srcElement
	var CurrentNodeRow=eImg.parentElement.parentElement
	var isCloseAction= (CurrentNodeRow.status == 'expand')
	var childrencount = parseInt(CurrentNodeRow.childrencount)
	//alert("Action = " + isCloseAction + "  ||  " + "ChildRenCount=" + childrencount)
	if(childrencount!=0){
		TreeView_ShowHideChildren(CurrentNodeRow,isCloseAction)
		TreeView_ChangeImg(eImg)
	}
	TreeView_ChangeRowStatus(CurrentNodeRow)
}

//设置被点击的节点行的开关状态

function TreeView_ChangeRowStatus(NodeRow){
	if(NodeRow.status!="expand"){
		NodeRow.status="expand"
	}else{
		NodeRow.status="close"
	}
}

//改变被点击的节点的节点图
function TreeView_ChangeImg(eImg){
	var sTmpSrc=eImg.src
	sTmpSrc="../js/TreeImages/" + sTmpSrc.substr(sTmpSrc.lastIndexOf("/")).replace("/","")

	if(sTmpSrc == "../js/TreeImages/Tminus.png"){
		eImg.src = "../js/TreeImages/Tplus.png"
		return
	}
	if(sTmpSrc == "../js/TreeImages/Tplus.png"){
		eImg.src = "../js/TreeImages/Tminus.png"
		return
	}
	if(sTmpSrc == "../js/TreeImages/Lminus.png"){
		eImg.src = "../js/TreeImages/Lplus.png"
		return
	}
	if(sTmpSrc == "../js/TreeImages/Lplus.png"){
		eImg.src = "../js/TreeImages/Lminus.png"
		return
	}
}

//自动隐藏或显示相应的节点的子节点
function TreeView_ShowHideChildren(NodeRow,isCloseAction){
	var NodeRows=NodeRow.parentElement
	var nodeid=NodeRow.nodeid
	var Node
	
	for(var i=0;i<NodeRows.children.length;i++){
		Node = NodeRows.children[i]
		if(Node.pnodeid == nodeid){
			if(isCloseAction){
				Node.style.display = "none"
				TreeView_ShowHideChildren(Node,isCloseAction)
			}else{
				Node.style.display = "block"
				if(Node.status == 'expand'){
					TreeView_ShowHideChildren(Node,isCloseAction)
				}
			}
		}
	}
}

// For TreeView CheckBox
			function checkNode(nodeid,xmldataid){
				var doc = new ActiveXObject("MSXML.DOMDocument")
				doc.async = false;
				doc.loadXML(document.all[xmldataid].xml);
				
				
				var nodeChkBox = event.srcElement;
				if(nodeChkBox){
					if(! nodeChkBox.checked){
						//clear all children
						var node = doc.documentElement.selectSingleNode("//folder[@id='" + nodeid + "']");
						if(node){
							SetChildRen(doc,node,nodeid,false);
						}						
					}else{
						//check all children
						var node = doc.documentElement.selectSingleNode("//folder[@id='" + nodeid + "']");
						if(node){
							SetChildRen(doc,node,nodeid,true);
						}						
						
						//add all parents
						var parentnode = node.parentNode;
						while(true){
							if(parentnode){
								if(parentnode.parentNode){
									var parentnodeid = parentnode.getAttribute("id");
									var parentchkbox = document.getElementById("nodeACL_" + parentnodeid );
									if(parentchkbox ){
										parentchkbox .checked = true;
									}
								}
								parentnode = parentnode.parentNode;
							}else{
								break;
							}
						}
					}
				}
			}
			
			function SetChildRen(doc,node,nodeid,ischeck){
				var chkbox = document.getElementById("nodeACL_" + nodeid);
				if(chkbox){
					chkbox.checked = ischeck;
				}
				var childNodes = node.childNodes;
				for(var i=0;i<childNodes.length;i++){
					var childnode = childNodes[i];
					var childnodeid = childnode.getAttribute("id");
					SetChildRen(doc,childnode,childnodeid,ischeck);
				}
			}

