[阅读: 348] 2006-01-03 09:42:49
function refreshTree()
{
setTreeCheckPre(3);
setTreeCheckPre(2);
setTreeCheckPre(1);
var refreshTree1,refreshTree2;
for (refreshTree1=1;refreshTree1<NodeInfoCriterion.length;refreshTree1++)
{
if (NodeInfoCriterion[refreshTree1]["nodevalue"]==1){
if(document.all["checkbox"+refreshTree1]!=undefined)
document.all["checkbox"+refreshTree1].checked = true;
}
else{
if(document.all["checkbox"+refreshTree1]!=undefined)
document.all["checkbox"+refreshTree1].checked = false;
}
}
setTreeExpand(1);
setTreeExpand(2);
setTreeExpand(3);
setTreeExpand(4);
for (refreshTree1=1;refreshTree1<NodeInfoCriterion.length;refreshTree1++)
{
if (NodeInfoCriterion[refreshTree1]["grade"] < 4)
{
var objExpand = document.all["span"+refreshTree1];
if (NodeInfoCriterion[refreshTree1]["showControl"]=="none")
objExpand.innerHTML="<img src='plus.gif'>";
else
objExpand.innerHTML="<img src='minus.gif'>";
}
}
for (refreshTree1=1;refreshTree1<NodeInfoCriterion.length;refreshTree1++)
{
for (refreshTree2=1;refreshTree2<NodeInfoCriterion.length;refreshTree2++)
{
if (NodeInfoCriterion[refreshTree2]["grade"]==NodeInfoCriterion[refreshTree1]["grade"]+1&&NodeInfoCriterion[refreshTree2]["parentposition"]==NodeInfoCriterion[refreshTree1]["position"])
{
var objString = NodeInfoCriterion[refreshTree2]["DivId"];
var obj = document.all[objString];
if (obj != null)
obj.style.display=NodeInfoCriterion[refreshTree1]["showControl"];
else
alert("error:"+objString);
}
}
if (NodeInfoCriterion[refreshTree1]["grade"]==1)
{
var objString = NodeInfoCriterion[refreshTree1]["DivId"];
var obj = document.all[objString];
if (obj != null)
obj.style.display="";
else
alert("root error:"+objString);
}
}
}
function setTreeExpand(i)
{
var setTreeExpand1,setTreeExpand2
for (setTreeExpand1=1;setTreeExpand1<NodeInfoCriterion.length;setTreeExpand1++)
{
if (NodeInfoCriterion[setTreeExpand1]["grade"]==i && NodeInfoCriterion[setTreeExpand1]["showControl"]=="none")
{
for (setTreeExpand2=1;setTreeExpand2<NodeInfoCriterion.length;setTreeExpand2++)
{
if (NodeInfoCriterion[setTreeExpand2]["grade"]==i+1&&NodeInfoCriterion[setTreeExpand2]["parentposition"]==NodeInfoCriterion[setTreeExpand1]["position"])
{
NodeInfoCriterion[setTreeExpand2]["showControl"]="none";
}
}
}
}
}
function expand(obj)
{
var expand1;
for (expand1=1;expand1<NodeInfoCriterion.length;expand1++)
{
if ("span" + expand1==obj.id)
{
if (NodeInfoCriterion[expand1]["showControl"] == "none")
NodeInfoCriterion[expand1]["showControl"] = ""
else
NodeInfoCriterion[expand1]["showControl"] = "none"
}
}
refreshTree();
}
function changeCheck(obj)
{
var changeCheck1;
for (changeCheck1=1;changeCheck1<NodeInfoCriterion.length;changeCheck1++)
{
if ("checkbox" + changeCheck1==obj.id)
{
if (obj.checked == true)
{
NodeInfoCriterion[changeCheck1]["nodevalue"]=1;
setTreeCheckNext(changeCheck1,1);
}
else
{
NodeInfoCriterion[changeCheck1]["nodevalue"]=0;
setTreeCheckNext(changeCheck1,0);
}
}
}
refreshTree();
}
function setTreeCheckNext(i,j)
{
var loop;
for (loop=1;loop<NodeInfoCriterion.length;loop++)
{
if (NodeInfoCriterion[loop]["grade"]==NodeInfoCriterion[i]["grade"]+1&&NodeInfoCriterion[loop]["parentposition"]==NodeInfoCriterion[i]["position"])
{
NodeInfoCriterion[loop]["nodevalue"]=j;
if (NodeInfoCriterion[i]["grade"] < 4)
{
setTreeCheckNext(loop,j);
}
}
}
}
function setTreeCheckPre(i)
{
var pre1;
var pre2;
for (pre1=1;pre1<NodeInfoCriterion.length;pre1++)
{
if (NodeInfoCriterion[pre1]["grade"]==i)
{
var flag;
flag = 1;
var num;
num = 0;
for (pre2=1;pre2<NodeInfoCriterion.length;pre2++)
{
if (NodeInfoCriterion[pre2]["grade"]==i+1&&NodeInfoCriterion[pre2]["parentposition"]==NodeInfoCriterion[pre1]["position"])
{
if (NodeInfoCriterion[pre2]["nodevalue"]==0)
flag = 0;
num++;
}
}
if (flag == 1 && num > 0)
NodeInfoCriterion[pre1]["nodevalue"]=1;
else if (flag == 0 && num > 0)
NodeInfoCriterion[pre1]["nodevalue"]=0;
}
}
}
function createTree(){
//------------------------------------------------------------------
//生成第一层节点
var loop1;
for (loop1=1;loop1<NodeInfoCriterion.length;loop1++)
{
if (NodeInfoCriterion[loop1]["grade"]==1)
{
var checkboxId1,spanId1;
checkboxId1 ="checkbox" + loop1;
spanId1 = "span" + loop1;
if (NodeInfoCriterion[loop1]["showControl"] == "" )
{
writeHtml="<div id="+NodeInfoCriterion[loop1]["DivId"]+" style='display:"+NodeInfoCriterion[loop1]["showControl"]+"'><span id='"+spanId1+"' onclick='expand(this)'><img src='minus.gif'></span><input type='checkbox' onclick='changeCheck(this)' id ='"+checkboxId1+"' value =" + NodeInfoCriterion[loop1]["value"]+">"+NodeInfoCriterion[loop1]["nodetext"]+"</div>";
}
else
{
writeHtml="<div id="+NodeInfoCriterion[loop1]["DivId"]+" style='display:"+NodeInfoCriterion[loop1]["showControl"]+"'><span id='"+spanId1+"' onclick='expand(this)'><img src='plus.gif'></span><input type='checkbox' onclick='changeCheck(this)' id ='"+checkboxId1+"' value =" + NodeInfoCriterion[loop1]["value"]+">"+NodeInfoCriterion[loop1]["nodetext"]+"</div>";
}
document.write(writeHtml);
//生成第二层节点
var loop2;
for (loop2=1;loop2<NodeInfoCriterion.length;loop2++)
{
if (NodeInfoCriterion[loop2]["grade"]==2 && NodeInfoCriterion[loop2]["parentposition"]==NodeInfoCriterion[loop1]["position"])
{
var checkboxId2,spanId2;
checkboxId2 ="checkbox" + loop2;
spanId2 = "span" + loop2;
if (NodeInfoCriterion[loop2]["showControl"] == "" )
{
writeHtml="<div id="+NodeInfoCriterion[loop2]["DivId"]+" style='display:"+NodeInfoCriterion[loop2]["showControl"]+"'> <span id='"+spanId2+"' onclick='expand(this)'><img src='minus.gif'></span><input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId2+"' value =" + NodeInfoCriterion[loop2]["value"]+">"+ NodeInfoCriterion[loop2]["nodetext"]+"</div>";
}
else
{
writeHtml="<div id="+NodeInfoCriterion[loop2]["DivId"]+" style='display:"+NodeInfoCriterion[loop2]["showControl"]+"'> <span id='"+spanId2+"' onclick='expand(this)'><img src='plus.gif'></span><input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId2+"' value =" + NodeInfoCriterion[loop2]["value"]+">"+ NodeInfoCriterion[loop2]["nodetext"]+"</div>";
}
document.write(writeHtml);
//生成第三层节点
var loop3;
for (loop3=1;loop3<NodeInfoCriterion.length;loop3++)
{
if (NodeInfoCriterion[loop3]["grade"]==3 && NodeInfoCriterion[loop3]["parentposition"]==NodeInfoCriterion[loop2]["position"])
{
var checkboxId3,spanId3;
checkboxId3 ="checkbox" + loop3;
spanId3 = "span" + loop3;
if (NodeInfoCriterion[loop3]["showControl"] == "" )
{
writeHtml="<div id="+NodeInfoCriterion[loop3]["DivId"]+" style='display:"+NodeInfoCriterion[loop3]["showControl"]+"'> <span id='"+spanId3+"' onclick='expand(this)'><img src='minus.gif'></span><input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId3+"' value =" + NodeInfoCriterion[loop3]["value"]+">"+ NodeInfoCriterion[loop3]["nodetext"]+"</div>";
}
else
{
writeHtml="<div id="+NodeInfoCriterion[loop3]["DivId"]+" style='display:"+NodeInfoCriterion[loop3]["showControl"]+"'> <span id='"+spanId3+"' onclick='expand(this)'><img src='plus.gif'></span><input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId3+"' value =" + NodeInfoCriterion[loop3]["value"]+">"+ NodeInfoCriterion[loop3]["nodetext"]+"</div>";
}
document.write(writeHtml);
//生成第四层节点
var loop4;
for (loop4=1;loop4<NodeInfoCriterion.length;loop4++)
{
if (NodeInfoCriterion[loop4]["grade"]==4 && NodeInfoCriterion[loop4]["parentposition"]==NodeInfoCriterion[loop3]["position"])
{
var checkboxId4;
checkboxId4 ="checkbox" + loop4;
if (NodeInfoCriterion[loop4]["showControl"] == "" )
{
writeHtml="<div id="+NodeInfoCriterion[loop4]["DivId"]+" style='display:"+NodeInfoCriterion[loop4]["showControl"]+"'> <input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId4+"' value =" + NodeInfoCriterion[loop4]["value"] + ">"+ NodeInfoCriterion[loop4]["nodetext"]+"</div>";
}
else
{
writeHtml="<div id="+NodeInfoCriterion[loop4]["DivId"]+" style='display:"+NodeInfoCriterion[loop4]["showControl"]+"'> <input type='checkbox' name='selectBox' onclick='changeCheck(this)' id ='"+checkboxId4+"' value =" + NodeInfoCriterion[loop4]["value"] + ">" + NodeInfoCriterion[loop4]["nodetext"]+"</div>";
}
document.write(writeHtml);
}
}
}
}
}
}
}
}
refreshTree();
}