var tree = "tree";
var treeopen = "treeopen";
var treeclose = "treeclose";
var node = "node";
var nodeopen = "nodeopen";
var nodeclose = "nodeclose";
function buildtree(opentier) {
	if (!document.createElement) {
		alert("Without createElement, we can't do anything.");
		return;
	}
	var currenttier = 0;
	uls = document.getElementsByTagName("UL");
	for (var uli = 0; uli<uls.length; uli++) {
		var ul = uls[uli];
		if (ul.nodeName == "UL" && ul.className == tree) {
			btree(ul, currenttier, opentier);
			//alert(ul.innerHTML);
		}
	}
}

function btree(ul, currenttier, opentier) {
	currenttier++;
	if (!ul.childNodes || ul.childNodes.length==0) { return; }
	for (var i=0; i<ul.childNodes.length; i++) {
		var li = ul.childNodes[i];
		if (li.nodeName == "LI") {
			var hasc = false;
			for (var j=0; j<li.childNodes.length; j++) {
				var liul = li.childNodes[j];
				if(liul.nodeName == "UL") {
					hasc = true;
					btree(liul, currenttier, opentier);
				}
			}
			var sp = document.createElement("SPAN");
			if(hasc) {
				if(currenttier >= opentier) {
					li.className = treeclose;
					sp.className = nodeclose;
				} else {
					li.className = treeopen;
					sp.className = nodeopen;
				}
				sp.onclick = toggle;
			} else {
				sp.className = node;
			}
			li.insertBefore(sp,li.firstChild);
		}
	}
}

function toggle(event) {
	var obj;
	if(navigator.appName == "Microsoft Internet Explorer")
		obj = window.event.srcElement;
	else
		obj = event.target;
	var prt = obj.parentNode;
	if(obj.className==nodeopen) {
		obj.className = nodeclose;
		prt.className = treeclose;
	} else {
		obj.className = nodeopen;
		prt.className = treeopen;
	}	
}

function initTreenodeCheckbox(checkboxname) {
	var items = document.getElementsByName(checkboxname);
	for(var i=0;i<items.length;i++)
		items[i].onclick = treenodeClick;
}


function treenodeClick(event)  {
	var o;
	if(navigator.appName == "Microsoft Internet Explorer")
		o = window.event.srcElement;
	else
		o = event.target;
	var p = o.parentNode;
	for(var i=0; i<p.childNodes.length; i++) {
		var li = p.childNodes[i];
		if(li.nodeName == "LI") {
			alert(li.innerText);
			for(var j=0; j<li.childNodes.length; j++)
				if( li.childNodes[j].nodeName == "INPUT" && li.childNodes[j].type == "checkbox")
					li.childNodes[j].checked = o.checked;  
		}
		if( li.nodeName == "UL") {
			treenodeChildCheck(li, o.checked);
		}
	}
	var grand = p.parentNode.parentNode;
	if(grand.nodeName == "LI")
		treenodeParentCheck(grand, o.checked);
		
}

function treenodeChildCheck(ul, checkvalue) {
	if(!ul.childNodes || ul.childNodes.length==0) { return; }
	for(var i=0; i<ul.childNodes.length; i++) {
		var li = ul.childNodes[i];
		if( li.nodeName == "LI") {
			for(var j=0; j<li.childNodes.length; j++) {
				if( li.childNodes[j].nodeName == "INPUT" && li.childNodes[j].type == "checkbox")
					li.childNodes[j].checked = checkvalue;
				if( li.childNodes[j].nodeName == "UL")
					treenodeChildCheck(li.childNodes[j], checkvalue);
			}
		}
	}
}

function treenodeParentCheck(li, checkvalue) {
	if(!li.childNodes || li.childNodes.length==0) { return; }
	if( li.nodeName == "LI") {
		for(var j=0; j<li.childNodes.length; j++) {
			if( li.childNodes[j].nodeName == "INPUT" && li.childNodes[j].type == "checkbox") {
				li.childNodes[j].checked = checkvalue;
				break;
			}
		}
	}
	var grand = li.parentNode.parentNode;
	if( grand.nodeName=="LI" )
		treenodeParentCheck(grand, checkvalue);
}


function treeseldel() {
	var lis = document.getElementsByTagName("LI");
	var f = false;
	for(var i=0;i<lis.length;i++) {
		var li = lis[i];
		var chk = li.childNodes[1];
		if(chk.checked) {
			for(var j=0;j<li.childNodes.length;j++) {
				if( li.childNodes[j].nodeName == "UL" ) {
					alert("节点包含子节点，不能删除。"); return;
				}
			}
		  f = true;
		}
	}
	if(!f) { alert("请先选择某个子节点，再删除。"); return; }
      if(confirm("确定要删除节点？")) {
        document.getElementById("listform").action = contextPath+"/doMDel/"+actionName+".do";
        document.getElementById("listform").target = "_self";
        document.getElementById("listform").submit();
      }
}

function treepopinit() {
  var e_id = parent.window.dialogArguments[2];
  var e_name = parent.window.dialogArguments[1];
  var f = document.getElementById("listform");
  for(var i=0; i<f.elements.length; i++) {
    var e = f.elements[i];
    if(e.name=="select" && e_id.value==eval("f.id"+e.value).value) {
      e.checked=true;
    }
  }
}

function treepopsubmit() {
  var res = new Array(2);
  res[0] = "";
  res[1] = "";
  var f = document.getElementById("listform");
  for(var i=0; i<f.elements.length; i++) {
    var e = f.elements[i];
    if(e.name=="select" && e.checked) {
      res[0] = eval("f.id"+e.value).value;
      res[1] = eval("f.name"+e.value).value;
      break;
    }
  }
  parent.window.returnValue = res;
  parent.window.close();
}

var schar;
function treepopminit(){
  var e_id = parent.window.dialogArguments[2];
  var e_name = parent.window.dialogArguments[1];
  var f = document.getElementById("listform");
  for(var i=0; i< f.elements.length; i++){
    var e = f.elements[i];
    if(e.name=="select"
       && ifischecked(e_id.value, eval("f.id" + e.value).value)){
      e.checked = true;
    }
  }
  if(e_name.tagName=="INPUT")
    schar = ";";
  else
    schar = "\n";
}

function ifischecked(all, one){
  var begin = 0;
  var end = all.indexOf(";");
  while(end!=-1){
    if(all.substring(begin, end)==one)
      return true;
    begin = end + 1;
    end = all.indexOf(";", begin);
  }
  if(all.substr(begin)==one)
    return true;
  return false;
}

function treepopmsubmit(){
  var e_idvalue = "";
  var e_namevalue = "";
  var f = document.getElementById("listform");
  for(var i=0; i<f.elements.length; i++){
  var e = f.elements[i];
  if(e.name=="select" && e.checked){
    if(e_idvalue==""){
      e_idvalue = eval("f.id" + e.value).value;
      e_namevalue = eval("f.name" + e.value).value;
    } else {
      e_idvalue =  e_idvalue + ";" + eval("f.id" + e.value).value;
      e_namevalue = e_namevalue + schar + eval("f.name" + e.value).value;
    }
  }
  }
  var res = new Array(2);  res[0]="";  res[1]="";
  res[0] = e_idvalue;
  res[1] = e_namevalue;
  parent.window.returnValue = res;
  parent.window.close();
}




