function MKTreeInit(TreeID)
{
	var t = document.getElementById("div" + TreeID);
	t.style.marginLeft = "0px";
	AddEvents(t, t, 0);
	t.style.display = '';
}
function AddEvents(tv, o, iDepth)
{
	var i;
	var s;

	for (i = 0; i < o.childNodes.length; i++)
	{
		if (o.childNodes[i].tagName == "UL")
			iDepth++;
		if (o.tagName == "LI")
		{	
			if (o.childNodes[0].tagName == "P")
			{
				s = o.childNodes[0].innerHTML;

				var hasChilds = (o.childNodes.length == 2);
								
				var isExpanded = s.substr(1, 1);	
				var de = null;
				
				if (hasChilds)
				{
					de = document.createElement("input");
					de.style.cursor = 'default';
					de.type = 'hidden';
					de.id = 'e' + o.id;
					de.name = 'e' + o.id;
					de.value = isExpanded;
				}

				// Checked
				k = s.substr(0, 1);
								
				var dn = document.createElement("input")
				dn.onclick = function(event) { CheckInside(event, tv.id, o.id); };
				dn.type = 'checkbox';
				dn.id = dn.name = 'c' + o.id;
									
				if (document.getElementById(tv.id).getAttribute("checks") != "yes")
				{
					dn.style.display = 'none';
					dn.style.width = 0;
				}
				s = s.substr(2);
						
				var ds;
				if (o.getAttribute("href") != null)
				{
					ds = document.createElement("A");
					ds.href = o.getAttribute("href");
				}
				else
					ds = document.createElement("SPAN");
				
				ds.innerHTML = s;
								
				if (hasChilds)
				{
					imgPath = tv.getAttribute('imgPath');
					imgSet = tv.getAttribute('imgSet');
					if (isExpanded == "y")
						o.style.backgroundImage = "url(" + imgPath + "/m" + imgSet + ")";
					else
					{
						o.style.backgroundImage = "url(" + imgPath + "/p" + imgSet + ")";
						var d = document.getElementById(o.id.replace("i", "d"));
							d.style.display = "none";
					}
				}
				else
					o.style.backgroundImage = "url()";
				
				o.onmouseover = function(event) { mktreeOver(event, tv.id, o.id); };
				o.onmouseout = function(event) { mktreeOut(event, tv.id, o.id); };
				o.onclick = function(event) { toggle(event, tv.id, o.id); };
				o.className = document.getElementById(tv.id).className + "L" + iDepth;
						
				
				var q = document.createElement("span");
				q.appendChild(dn);
				q.appendChild(ds);
				if (de != null)
					q.appendChild(de);
				o.replaceChild(q, o.childNodes[0]);
				
				dn.checked = (k == "y");
			}
		}
		
		AddEvents(tv, o.childNodes[i], iDepth);
	}
}
function mktreeOver(event, tv, objId)
{
	if (window.event) event = window.event;
	event.cancelBubble = true;
	o = document.getElementById(objId);
	tvClass = document.getElementById(tv).className;
	o.className = o.className + " " + o.className + "Over";
	
}
function mktreeOut(event, tv, objId)
{
	if (window.event) event = window.event;
	event.cancelBubble = true;
	o = document.getElementById(objId);
	s = o.className;
	o.className = s.substr(0, s.indexOf(' '));
}
function toggle(event, tv, o)
{
	if (window.event) event = window.event;
	event.cancelBubble = true;
	
	var x = document.getElementById(o.replace("i", "d"));
	var e = document.getElementById(o.replace("i", "ei"));
	var oo = document.getElementById(o);
	var tvo = document.getElementById(tv);
	var imgPath = tvo.getAttribute('imgPath');
	var imgSet = tvo.getAttribute('imgSet');
	if (!x) return;
	if (x.style.display == "none")
	{
		oo.style.backgroundImage = "url(" + imgPath + "/m" + imgSet + ")";
		e.value = "y";
		x.style.display = "";		
	}
	else
	{
		x.style.display = "none";
		e.value = "n";
		oo.style.backgroundImage = "url(" + imgPath + "/p" + imgSet + ")";
	}
}
function CheckInside(event, tv, id)
{
	if (window.event)
		window.event.cancelBubble = true;
	else event.cancelBubble = true;
	
	oP = document.getElementById(id);
	
	for (i = 0; i < oP.childNodes.length; i++)
		if (oP.childNodes[i].tagName == "UL")
			CheckBoxInside(oP.childNodes[i], document.getElementById("c" + id).checked);
	return false;
}
function CheckBoxInside(checkBox_o, bCheck)
{
	while (checkBox_o)
	{
		if (checkBox_o.nodeName == "INPUT" && checkBox_o.type == "checkbox")
			checkBox_o.checked = bCheck;
			
		if (checkBox_o.firstChild)
			CheckBoxInside(checkBox_o.firstChild, bCheck);
		checkBox_o = checkBox_o.nextSibling;			
	}
}