var objs_cache = new Array;

var objs = new Array;

if (window.opera)
	document.all = document.getElementsByTagName("*");



function hidetree(tree, id)

{

	for(var i=0; i<tree.length; i++)

		if (tree[i].getAttribute("parent")==id)

		{

			tree[i].style.display="none";

			hidetree(tree, i);

		}

}



function showtree(tree, id)

{

	for(var i=0; i<tree.length; i++)

		if (tree[i].getAttribute("parent")==id)

		{

			tree[i].style.display="";

			if (!tree[i].getAttribute("shrinked"))

				showtree(tree, i);

		}

}



function has_sons(menu_obj, id)

{

	for (var i=0; i<objs.length; i++)

		if (objs[i].getAttribute("parent")==id) return true;

	return false;

}



function menu(ptr)

{

	eval("var curimg = document.all."+ptr.getAttribute("table")+ptr.id+";");

	var iidx = 0;

	if (objs_cache[ptr.getAttribute("table")])

		objs = objs_cache[ptr.getAttribute("table")];

	else

		objs = new Array;

	if (!objs.length)

	{

		objs = new Array;

		for (var i=0; i<document.all.length; i++)

			if (document.all[i].getAttribute("table")==ptr.getAttribute("table"))

			{

				objs[iidx] = document.all[i];

				iidx++;

			}

	}

	if (ptr.getAttribute("shrinked"))

	{

		showtree(objs, ptr.id);

		sons = has_sons(objs, ptr.id);

		if (sons)

		{

			if (ptr.getAttribute("parent")==-1)

			{

				for (var j=0; j<objs.length; j++)

					if ((objs[j].id!=ptr.id) && (objs[j].getAttribute("parent")==-1) && (!objs[j].getAttribute("shrinked")))

					{

						hidetree(objs, j);

						objs[j].setAttribute("shrinked", "true");

						eval("if (document.all."+ptr.getAttribute("table")+j+") document.all."+ptr.getAttribute("table")+j+".src=document.all."+ptr.getAttribute("table")+j+".getAttribute('imgclose');");

					}

			}

			else

			{

				for (var j=0; j<objs.length; j++)

					if ((objs[j].id!=ptr.id) && (objs[j].getAttribute("parent")==ptr.getAttribute("parent")) && (!objs[j].getAttribute("shrinked")))

					{

						hidetree(objs, j);

						objs[j].setAttribute("shrinked", "true");

						eval("if (document.all."+ptr.getAttribute("table")+j+") document.all."+ptr.getAttribute("table")+j+".src=document.all."+ptr.getAttribute("table")+j+".getAttribute('imgclose');");

					}

			}

		}

		ptr.setAttribute("shrinked", "");

		if (curimg)

			curimg.src = curimg.getAttribute('imgopen');

	}

	else

	{

		hidetree(objs, ptr.id);

		ptr.setAttribute("shrinked", true);

		if (curimg)

			curimg.src = curimg.getAttribute('imgclose');

	}

	objs_cache[ptr.getAttribute("table")] = objs;

}