var Menus = new Array();

function CreateSubMenu(Name,Link,IsOpen,IsActive)
{
	return this.Sub[this.Sub.length]=new Menu(Name,Link,IsOpen,IsActive,this);
}

function Close(Active)
{
	for(var Sub=0;Sub<this.Sub.length;Sub++)
		this.Sub[Sub].Close(Active);
	this.IsOpen=0;
	if(Active)
		this.IsActive=0;
}

function Open()
{
	var Parrent=this;
	while(Parrent.Parrent)
		Parrent=Parrent.Parrent;
	if(this.Link)
		Parrent.Close(1);
	else
		Parrent.Close();
	for(Parrent=this;Parrent.Parrent;Parrent=Parrent.Parrent)
		Parrent.IsOpen=1;
	if(this.Link)
		this.IsActive=1;
}

function Change()
{
	var Parrent=this;
	if(this.IsOpen)
		this.Close();
	else
		this.Open();
	while(Parrent.Parrent)
		Parrent=Parrent.Parrent;
	Parrent.Paint();
}

function Paint(SubCount)
{
	var Text="";
	if(this.Parrent)
	{
		for(var SC=0;SC<SubCount;SC++)
			Text+="&nbsp;&nbsp;&nbsp;";
		Text+="<a";
		if(this.Link)
		{
			Text+=" href='"+this.Link+"' onClick='Menus["+this.Identifier+"].Change()' onMouseOver='this.style.color=\"#ffff00\";this.style.textDecoration=\"underline\"' onMouseOut='if(!Menus["+this.Identifier+"].IsActive){this.style.color=\"#";
			if(SubCount)
				Text+="ff6600";
			else
				Text+="ffffff";
			Text+="\";this.style.textDecoration=\"none\"}' target='main'";
		}
		else
		{
			Text+=" href='javascript:Menus["+this.Identifier+"].Change()' onMouseOver='this.style.color=\"#ffff00\";this.style.textDecoration=\"underline\"' onMouseOut='if(!Menus["+this.Identifier+"].IsActive){this.style.color=\"#";
			if(SubCount)
				Text+="ff6600";
			else
				Text+="ffffff";
			Text+="\";this.style.textDecoration=\"none\"}'";
		}
		Text+=" style='";
		if(SubCount)
			Text+="color:#ff6600;";
		else
			Text+="color:#ffffff;";
		if(this.IsActive)
			Text+="cursor:hand;font-family:Comic sans MS;font-size:16px;text-decoration:underline'";
		else
			Text+="cursor:hand;font-family:Comic sans MS;font-size:16px;text-decoration:none'";
		Text+=">"+this.Name+"</a><br>";
		for(var Sub=0;Sub<this.Sub.length&&this.IsOpen;Sub++)
			Text+=this.Sub[Sub].Paint(SubCount+1);
		return Text;
	}
	else
	{
		var Object;
		for(var Sub=0;Sub<this.Sub.length;Sub++)
			Text+=this.Sub[Sub].Paint(0);
		Object=eval("document.all."+this.Name);
		Object.innerHTML=Text;
	}
}

function Menu(Name,Link,IsOpen,IsActive,Parrent)
{
	this.Name=Name;
	this.Link=Link;
	this.IsOpen=IsOpen;
	this.IsActive=IsActive;
	this.Parrent=Parrent;
	this.Sub=new Array();
	this.Identifier=Menus.length;
	Menus[Menus.length]=this;
	this.CreateSubMenu=CreateSubMenu;
	this.Close=Close;
	this.Open=Open;
	this.Change=Change;
	this.Paint=Paint;
	return this;
}