function CukeTreeMenu( idUL, skin, unfoldedTree )
{
	var ul = this._ul = $(idUL);
	ul.className='cukeSimpleTree'+skin;
	this._internalBSTree(ul, Cuke.Skin+'CukeSimpleTree/'+skin+'/',unfoldedTree);
	ul.style.display='block';
}

CukeTreeMenu.prototype._internalBSTree=function(ul,skin,unfoldedTree)
{
	ul.removeAttribute('style');
	var li = ul.firstChild,i=null,u=null,oneOpen=false,thisSelected,isOpen;
	while(li)
	{
		if(li.nodeName=="LI"&&li.firstChild) 
		{
			i=document.createElement('img');
			i.align='absmiddle';
			li.insertBefore(i,li.firstChild);
			
			thisSelected=li.className.indexOf('selected')>=0;
			oneOpen|=thisSelected;
			if( li.className.indexOf('root')>=0 ) 
			{
				i.src=skin+"root.gif";
			}
			else
			{
				u=li.firstChild;while(u&&u.nodeName!="UL")u=u.nextSibling;
				if(u)
				{
					isOpen=false;
					if(thisSelected)
					{
						if(li.className.indexOf('closed')<0)
						{
							isOpen=true;
							if( li.className.indexOf('opened')<0)li.className+=' opened';
						}
						this._internalBSTree(u,skin,unfoldedTree);
					}
					else if(this._internalBSTree(u,skin,unfoldedTree))
					{
					    u.style.display='block';
						li.className='opened selectedPath';
						isOpen=true;
					}
					else if(unfoldedTree) li.className='opened';
					else li.className='closed';
					if(isOpen) {oneOpen=true;i.src=skin+"minus.gif";}
					else i.src=skin+"plus.gif";
					if(unfoldedTree) {oneOpen=false;i.src=skin+"minus.gif";}
					i.onclick=function(){var s=this.parentNode.className;var i=s.indexOf('opened');if(i>=0){s=s.replace(/opened/g,'closed');this.src=skin+'plus.gif';}else{s=s.replace(/closed/g,'opened');this.src=skin+'minus.gif';}this.parentNode.className=s;return false;}
				}
				else i.src=skin+"noexpand.gif";
			}
		}
		li=li.nextSibling;
	}
	return oneOpen;
}
