
imageleFile = new Array("images/comp/treeview_terminate_plus.gif", "images/comp/treeview_terminate_minus.gif");
imageltFile = new Array("images/comp/treeview_cross_plus.gif", "images/comp/treeview_cross_minus.gif");

function DisplayAll(div) {
	var divs = div.getElementsByTagName("div");
	var imgs = div.getElementsByTagName("img");
	var states = div.getElementsByTagName("input");
	var img;
	var inputvalue;
	var inputobj;
	
	for (var i = 0; i < divs.length; i++) {
		divs[i].style.display = "block";
	}
	
	for (var i = 0; i < imgs.length; i++) {
		img = imgs[i];
		if(img.src.indexOf(imageleFile[0]) != -1) {
        	img.src  = img.src.replace(imageleFile[0], imageleFile[1]);
    	} 
    	
    	if(img.src.indexOf(imageltFile[0]) != -1) {
        	img.src  = img.src.replace(imageltFile[0], imageltFile[1]);
    	}
	}
	
	for (var i = 1;  states != null && i < states.length; i++) {
		inputobj = states[i];
		if (inputobj.type == "hidden") {
			inputvalue = inputobj.value;
			if (inputvalue.indexOf("*") != -1) {
				inputobj.value = inputvalue.substring(0, inputvalue.length - 1);
			}
		}
	}
}

function UnDisplayAll(div) {
	var divs = div.getElementsByTagName("div");
	var imgs = div.getElementsByTagName("img");
	var states = div.getElementsByTagName("input");
	var img;
	var inputvalue;
	var inputobj;
	
	for (var i = 0; i < divs.length; i++) {
		divs[i].style.display = "none";
	}
	
	for (var i = 0; i < imgs.length; i++) {
		img = imgs[i];
		if(img.src.indexOf(imageleFile[1]) != -1) {
        	img.src  = img.src.replace(imageleFile[1], imageleFile[0]);
    	} 
    	
    	if(img.src.indexOf(imageltFile[1]) != -1) {
        	img.src  = img.src.replace(imageltFile[1], imageltFile[0]);
    	}
	}
	
	for (var i = 1; states != null && i < states.length; i++) {
		inputobj = states[i];
		if (inputobj.type == "hidden") {
			inputvalue = inputobj.value;
			if (inputvalue.indexOf("*") == -1) {
				inputobj.value = inputvalue + "*";
			}
		}
	}
}

function UnDisplayByLvl(divobj, level) {
	if (level == 1) {
		UnDisplayAll(divobj);
		return;
	}
	
	var childs = divobj.childNodes;
	var div;
	for (var i = 0; childs != null && i < childs.length; i ++) {
		
		if (childs[i].tagName != null && childs[i].tagName.toUpperCase() == "DIV") {
			div = childs[i];
			UnDisplayByLvl(div, level - 1);
		}
	}
}

function DisplayByLvl(divid, level) {
	var divobj = document.getElementById(divid);
	if (divobj == null) {
		return ;
	}
	DisplayAll(divobj);
	UnDisplayByLvl(divobj, level);
}
 
function Display(id){
	var div; 
    if(document.all){
    	div = document.all(id);
    } else if(document.getElementById){
    	div = document.getElementById(id);
    }
	var inputs = div.getElementsByTagName("input");
	if (inputs != null && inputs[0] != null && inputs[0].type == "hidden") {
    	var statehidden = inputs[0];
    	var hiddenvalue = statehidden.value;
        if(div.style.display == "block"){
            div.style.display = "none";
            statehidden.value = hiddenvalue + "*";
        }else if(div.style.display == "none"){
            div.style.display = "block";
            statehidden.value = hiddenvalue.substring(0, hiddenvalue.length - 1);
        }
	} else {
		if(div.style.display == "block"){
            div.style.display = "none";
        }else if(div.style.display == "none"){
            div.style.display = "block";
        }
	}
}

//imagele = new Array(imageleFile.length);
//imagelt = new Array(imageltFile.length);
//for(count = 0; count < (imageleFile.length - 1); count++){
//    imagele[count] = new Image();
//    imagele[count].src = imageleFile[count];
//}
//for(count = 0; count < (imageltFile.length - 1); count++){
//    imagelt[count] = new Image();
//    imagelt[count].src = imageltFile[count];
//}
function ImageChangele(id){
    if(window.document.images[id].src.indexOf(imageleFile[0]) != -1){
        window.document.images[id].src  = window.document.images[id].src.replace(imageleFile[0], imageleFile[1]);
    }else{
        window.document.images[id].src  = window.document.images[id].src.replace(imageleFile[1], imageleFile[0]);
    }
}
function ImageChangelt(id){
    if(window.document.images[id].src.indexOf(imageltFile[0]) != -1){
        window.document.images[id].src  = window.document.images[id].src.replace(imageltFile[0], imageltFile[1]);
    }else{
        window.document.images[id].src  = window.document.images[id].src.replace(imageltFile[1], imageltFile[0]);
    }
}    
var oldtarget="";
function CharacterReversal(treeid,target){
    backcolor=document.getElementById(treeid).style.backgroundColor;
    fontcolor=document.getElementById(treeid).style.color;

    if (oldtarget==""){
        oldtarget=target;
    } else {
        if(document.all){
            document.all(oldtarget).backgroundColor = 'white';
            document.all(oldtarget).color = 'black';
        }
        if(document.getElementById){
            document.getElementById(oldtarget).style.backgroundColor = backcolor;
            document.getElementById(oldtarget).style.color = fontcolor;
        }
    }

    if(document.all){
        document.all(target).backgroundColor = 'black';
        document.all(target).color = 'white';
    }
    if(document.getElementById){
        document.getElementById(target).style.backgroundColor = fontcolor;
        document.getElementById(target).style.color = backcolor;
    }
    oldtarget=target;
}


// get index of checkbox in all checkbox
function getFirstCheckIndexOfDiv(checkObj) {
	var checkIndex = 0;
	
	if (null == checkObj) {
		return checkIndex;
	}
	
	var check_list = document.getElementsByName(checkObj.name);
	for (var i = 0; i < check_list.length; i++) {
		if (checkObj == check_list[i]) {
			checkIndex = i;
			break;
		}
	}
	
	return checkIndex;
}

// When parent node is selected, children nodes will be selected.
function RecursionSelect(divId, selfObj) {
	var divObj = document.getElementById(divId);
	
	if (null == divObj) {
		RecursionSearch(selfObj);
		return;
	}
	
	var input_list = divObj.getElementsByTagName("input");
	
	if (null == input_list) {
		RecursionSearch(divObj.parentElement);
		return;
	}
	
	for (var i = 0; i < input_list.length; i++) {
		var innerInput = input_list[i]; 
		if (innerInput.type == "checkbox") {
			if (selfObj.checked == false) {
				innerInput.checked = false;
			} else {
				innerInput.checked = true;
			}
		}
	}

	RecursionSearch(divObj);
	
}

// When all children nodes is selected, parent node will be selected.
// When all children nodes is not selected, parent node will be not selected.
function RecursionSearch(divObj) {
	var firstCheckOfParentDiv;

	if (null == divObj 
			|| ("DIV" != divObj.tagName && "INPUT" != divObj.tagName)) {
		
		return;
	}
	
	var parentDivObj = divObj.parentElement;
	
	if (null == parentDivObj) {
		return;
	}

	var input_list = parentDivObj.getElementsByTagName("input");
	
	if (null == input_list) {
		return;
	}
	
	var counterChecked = 0;
	var counterUnChecked = 0;
	var firstCheckFlag = true;
	
	for (var i = 0; i < input_list.length; i++) {
		var innerInput = input_list[i]; 
		
		if (innerInput.type == "checkbox" && firstCheckFlag == true) {
			firstCheckOfParentDiv = innerInput;
			firstCheckFlag = false;
		}
		
		if (innerInput.type == "checkbox" && innerInput.checked == true) {
			counterChecked++;
		} else if (innerInput.type == "checkbox" ) {
			counterUnChecked++;
		}
	}
	
	var checkIndex = getFirstCheckIndexOfDiv(firstCheckOfParentDiv);
	
	var parentCheck = document.getElementsByName(firstCheckOfParentDiv.name)[checkIndex - 1];
	
	if (null != parentCheck && counterChecked != 0) {
		parentCheck.checked = true;
	}
	
	if (null != parentCheck && counterChecked == 0) {
		parentCheck.checked = false;
	}
	
	RecursionSearch(parentDivObj);
}


function collaspeTree(){
  	var pix = "trees";
  	var piximg = "treesimg";
  	var flag = 2;
  	while(1){
		var a = document.getElementById(pix+flag)
  		if(a == null){
  			break;
  		}
  		ImageChangele(piximg+flag);
  		ImageChangelt(piximg+flag);Display(pix+flag);
  			flag++;
  		}
  }







// ?? When parent node is selected, children nodes will be selected.
// function RecursionSelect(divId, selfObj) {
// 	var divObj = document.getElementById(divId);
// 	
// 	if (null == divObj) {
// 		return;
// 	}
// 	
// 	var input_list = divObj.getElementsByTagName("input");
// 	
// 	if (null == input_list) {
// 		return;
// 	}
// 	
// 	for (var i = 0; i < input_list.length; i++) {
// 		var innerInput = input_list[i]; 
// 		if (innerInput.type == "checkbox") {
// 			if (selfObj.checked == false) {
// 				innerInput.checked = false;
// 			} else {
// 				innerInput.checked = true;
// 			}
// 		}
// 	}
// }

