var win = null;

function getX(Elem) {
	var elem;
	if(document.getElementById)
		var elem = document.getElementById(Elem);
	x = elem.offsetLeft;
	tmp = elem.offsetParent;
  	while (tmp != null) {
  		x += tmp.offsetLeft;
  		tmp = tmp.offsetParent;
  	}
	return x;
}

function getY(Elem) {
	if(document.getElementById)
		var elem = document.getElementById(Elem);
	y = elem.offsetTop;
	tmp = elem.offsetParent;
	while (tmp != null) {
  		y += tmp.offsetTop;
  		tmp = tmp.offsetParent;
  	}
	return y;
}
 	
function ImageClicked() {
	if (win != null)
		win.close();
}

function opennode(id) {
	_tree(id, false, false);
}

function pmnode(id) {
	_tree(id, false, true);
}

function openroot(id) {
	_tree(id, true, false);
}

function _tree(id,root,pm) {
	if (!pm) {
		var data = null;
		var i;
		var isHasText = true;
		for (i = 0; i < ar.length; i++) {
			if (ar[i].id == id) {
				data = ar[i];
				break;
			}
		}
		
		var text = null;
		if (document.getElementById('id' + id + 't') != null)
			text = document.getElementById('id' + id + 't').innerHTML;
		if (text == null) {
			text = noText;
			isHasText = false;
		}
		text = 	"<html><BODY>" + text + "<BR></BODY></HTML>";

		if (win != null)
			win.close();
		var x = data.x + getX('map');
		var y = data.y + getY('map');
		if (isHasText) {
			win = new Window({
					title:"",
					className: "dialog",
					top:y, 
					left:x - 8,
					minimizable:false,
					maximizable:false,
					width:240, 
					height:100,
					zIndex:100,
					resizable:true,
					draggable:false,
					showEffect:Element.show,
					hideEffect:Element.hide
					});
		} else {
			win = new Window({
					title:"",
					className: "dialog2",
					top:y, 
					left:x - 8,
					minimizable:false,
					maximizable:false,
					width:0, 
					height:0,
					zIndex:100,
					resizable:false,
					draggable:false,
					showEffect:Element.show,
					hideEffect:Element.hide
					});
		} 
		win.getContent().update(text);
		win.show();
	}

	//
	if (!root) {
		var targetObject = document.getElementById('id' + id + 'd');
		var targetObject2 = document.getElementById('id' + id + 'n');
		if (targetObject != null) {
			if (pm) {
				if (targetObject.style.display == "none") {
			  		targetObject.style.display="block";
			  	} else {
					targetObject.style.display="none";
				}
				flipPlusMinus(targetObject2);
				flipFolder(targetObject2);
			} else {
				if (targetObject.style.display == "none") {
			  		targetObject.style.display="block";
					flipPlusMinus(targetObject2);
					flipFolder(targetObject2);
			  	}
			}
		}
	}
}

function openComment(id) {
	var data = null;
	var i;
	var isHasText = true;
	for (i = 0; i < ar.length; i++) {
		if (ar[i].id == id) {
			data = ar[i];
			break;
		}
	}

	var text = null;
	if (document.getElementById('id' + id + 't') != null)
		text = document.getElementById('id' + id + 't').innerHTML;
	if (text == null) {
		text = noText;
		isHasText = false;
	}
	
	text = 	"<html><BODY>" + text + "<BR></BODY></HTML>";

	if (win != null)
		win.close();
	var x = data.x + getX('map');
	var y = data.y + getY('map');
	if (isHasText) {
		win = new Window({
				title:"",
				className: "dialog",
				top:y, 
				left:x - 8,
				minimizable:false,
				maximizable:false,
				width:240, 
				height:100,
				zIndex:100,
				resizable:true,
				draggable:false,
				showEffect:Element.show,
				hideEffect:Element.hide
				});
	} else {
		win = new Window({
				title:"",
				className: "dialog2",
				top:y, 
				left:x - 8,
				minimizable:false,
				maximizable:false,
				width:0, 
				height:0,
				zIndex:100,
				resizable:false,
				draggable:false,
				showEffect:Element.show,
				hideEffect:Element.hide
				});
	} 
	win.getContent().update(text);
	win.show();
}

function flipPlusMinus(obj) {
	var childlen = obj.childNodes;
	var i, j, k;
	for (i= 0; i < childlen.length; i++) {
		var objx = childlen.item(i);
		var childen2 = objx.childNodes;
		for (j = 0; j < childen2.length; j++) {
			var obj2 = childen2.item(j);
			if (obj2.id == 'pm') {
				var childlen3 = obj2.childNodes;
				for (k = 0; k < childlen3.length; k++) {
					var obj3 = childlen3.item(k);
					if (obj3.id == 'pl') {
						obj3.src='img/tree/minus.gif';
						obj3.id='mn';
					} else if (obj3.id == 'mn') {
						obj3.src='img/tree/plus.gif';
						obj3.id='pl';
					}
				}
			}
		}
	}
}

function flipFolder(obj) {
	var childen = obj.childNodes;
	var i, j;
	for (i= 0; i < childen.length; i++) {
		var obj = childen.item(i);
		var childen2 = obj.childNodes;
		for (j = 0; j < childen2.length; j++) {
			var obj2 = childen2.item(j);
			if (obj2.id == 'fc') {
				obj2.src='img/tree/folderopen.gif';
				obj2.id='fo';
			} else if (obj2.id == 'fo') {
				obj2.src='img/tree/folder.gif';
				obj2.id='fc';
			}
		} 
	}
}

function openAll(flag) {
	var i;
	for (i = 1; i < ar.length; i++) {
		var obj1 = document.getElementById('id' + ar[i].id + 'd');
		var obj2 = document.getElementById('id' + ar[i].id + 'n');
		if (flag) {
			if (obj1 != null && obj1.style.display=="none") {
				flipPlusMinus(obj2);
				flipFolder(obj2);
				obj1.style.display="block";
			}
		} else {
			if (obj1 != null && obj1.style.display!="none") {
				flipPlusMinus(obj2);
				flipFolder(obj2);
				obj1.style.display="none";
			}
		}
	}
}
