function init(tree_id){

	var mp='nav';
	var hp='hide';
	var sp='show';
	var pp='parent';
	var pa='active';
	var cu='current';
	
	var d,uls,i;
	if(!document.getElementById && !document.createTextNode){return;}

	d=document.getElementById(tree_id);

	if (!d){return;}
	addclass(d,mp)
	uls=d.getElementsByTagName('ul');
	for (i=0;i<uls.length;i++)
	{
		if(checkcurrent(uls[i]))
		{
			addclass(uls[i].parentNode.firstChild,pa);
		} else {
			addclass(uls[i],hp);
			addclass(uls[i].parentNode.firstChild,pp);
			uls[i].parentNode.firstChild.onclick=function()
			{
				swapclass(this,pp,pa);
				swapclass(this.parentNode.getElementsByTagName('ul')[0],hp,sp);
				return false;
			}
		}
	}
	function checkcurrent(o){
		if(check(o.parentNode,cu)){return true;}
		for(var i=0;i<o.getElementsByTagName('li').length;i++)
		{
			if(check(o.getElementsByTagName('li')[i],cu)){return true;}
		}
		return false;
	}
	function swapclass(o,c1,c2){
		var cn=o.className
		o.className=!check(o,c1)?cn.replace(c2,c1):cn.replace(c1,c2);
	}
	function addclass(o,c){
		if(!check(o,c)){o.className+=o.className==''?c:' '+c;}
	}
	function check(o,c){
	 	return new RegExp('\\b'+c+'\\b').test(o.className);
	}
}
