zindex=100;

function log(teyt)
{
_getbyid('log').innerHTML += teyt+'<br />';
}

function Menu (id, varname)
{
	this.ID = id;
	this.Varname = varname;
	
	this.ActiveItem = -1;

	this.Captions = new Array();
	this.Texts    = new Array();
	this.Actions  = new Array();
	this.Submenus = new Array();

	this.i = 0;
	this.TimeoutID = "";

	this.HTMLCache = "";

	this.ClearAll = function()
	{
		for (this.i=0; this.i< this.Captions.length; this.i++)
		{
			_chgclass(this.ID +"_"+this.i,'mmi');

			if(isObject(this.Submenus[this.i]))
			{
				this.Submenus[this.i].ClearAll();
				this.Submenus[this.i].Hide();
			}
		}

	}

	this.MouseOver = function(itmNo)
	{
		clearTimeout(this.TimeoutID);
		this.ClearAll();

		olditem = this.ActiveItem;
		this.ActiveItem = itmNo;

		_chgclass(this.ID +"_"+itmNo,'mmihilite');

		if(isObject(this.Submenus[olditem]))
		{
			if (olditem != itmNo)
			{
				this.Submenus[olditem].ClearAll();
				this.Submenus[olditem].Hide();
				this.Submenus[olditem].ActiveItem = -1;
			}

		}

		if(isObject(this.Submenus[itmNo]))
		{
			this.Submenus[itmNo].Show();
			this.Submenus[itmNo].ClearAll();
		}

	}

	this.MouseOut = function(itmNo)
	{

		if(isObject(this.Submenus[itmNo]))
		{
			if(this.Submenus[itmNo].ActiveItem == -1)
			{
				this.Submenus[itmNo].ActiveItem = -1;
				this.Submenus[itmNo].ClearAll();
				this.Submenus[itmNo].Hide();
				_chgclass(this.ID +"_"+itmNo,'mmi');
			}
		}
		else
		{
			_chgclass(this.ID +"_"+itmNo,'mmi');
		}

	}


	this.doAction = function(itmNo)
	{
		if(this.Actions[itmNo] != 'undefined')
		{
			eval(this.Actions[itmNo]);
		}
	}

	// Functions
	this.AddItem = function(caption, action, text)
	{
		curID = this.Captions.length;
		this.Captions[curID] = caption || "-";
		this.Texts[curID] = text || "";
		if(isObject(action))
		{
			this.Submenus[curID] = action;
		}
		else
		{
			this.Actions[curID] = action || "";
		}
	}

	this.DropAll = function()
	{
		this.Captions = new Array();
		this.Actions  = new Array();
		this.Submenus = new Array();
		this.HTMLCache = "";
		itm = _getbyid(this.ID)
		itm.innerHTML = this.HTMLCache;
	}

	this.BuildMenu = function()
	{
		if (this.Captions.length == 0) return;
		
		this.HTMLCache = '<table border="0" cellpadding="0" cellspacing="0"><tr>';

		for(this.i=0;this.i<this.Captions.length;this.i++)
		{
			mouseacts = "onMouseOver=\""+this.Varname+".MouseOver("+this.i+")\" onMouseOut=\""+this.Varname+".TimeoutID = setTimeout('"+this.Varname+".MouseOut("+this.i+")',650)\"";
			// modositva			
			if(typeof (this.Actions[this.i]) != "undefined")
			{
				mouseacts += " onClick=\""+this.Varname+".doAction("+this.i+")\""
			}

			this.HTMLCache += "<td><div class=\"mmi\" id=\""+ this.ID +"_"+this.i+"\"><a title=\""+this.Texts[this.i]+"\"  "+mouseacts+">"+ this.Captions[this.i] +"</a><br />";
			if(isObject(this.Submenus[this.i]))
			{
				this.HTMLCache += "<div style=\"position:absolute;\">"+this.Submenus[this.i].ShowMenu()+"</div></div></td>";
			}
			else
			{
				this.HTMLCache += "</div></td>";
			}

			if(this.i < (this.Captions.length - 1))
			{
				this.HTMLCache += '<td><div class="mmidiv"></div></td>';
			}
		}

		this.HTMLCache +='</table>';
	}

	this.ShowMenu = function()
	{
		if(this.HTMLCache == "")
		{
			this.BuildMenu();
		}
		itm = _getbyid(this.ID)
		itm.innerHTML = this.HTMLCache;
	}
}


function SubMenu(id, varname)
{
	zindex++;

	this.ID        = id;
	this.Varname   = varname;
	this.HTMLCache = "";

	this.ActiveItem = -1;	

	this.Items    = new Array();
	this.Texts    = new Array();
	this.Actions  = new Array();
	this.Submenus = new Array();

	this.i = 0;

	this.TimeoutID = "";

	this.ClearAll = function()
	{
		for (this.i=0; this.i< this.Items.length; this.i++)
		{
			_chgclass(this.ID +"_"+this.i,'menuitem');

			if(isObject(this.Submenus[this.i]))
			{
				this.Submenus[this.i].Hide();
	//			this.Submenus[this.i].ClearAll();
				this.Submenus[this.i].ActiveItem = -1;
			}
		}
		
	}

	this.MouseOver = function(itmNo)
	{
		clearTimeout(this.TimeoutID);

		this.ClearAll();

		olditem = this.ActiveItem;

		this.ActiveItem = itmNo;

		_chgclass(this.ID +"_"+itmNo,'menuitemhilite');

		if(isObject(this.Submenus[itmNo]))
		{
			this.Submenus[itmNo].Show();

			this.Submenus[itmNo].ClearAll();
		}


		if(isObject(this.Submenus[olditem]))
		{
			if (olditem != itmNo)
			{
		//		this.Submenus[olditem].ClearAll();
				this.Submenus[olditem].Hide();
				this.Submenus[olditem].ActiveItem = -1;
			}

		}

	}

	this.MouseOut  = function(itmNo)
	{
		if(isObject(this.Submenus[itmNo]))
		{
			if (this.ActiveItem == itmNo)
			{
				if(this.Submenus[itmNo].ActiveItem == -1)
				{
					this.ActiveItem = -1;
					this.ClearAll();
				}
			}

		}
		else
		{
			if (this.ActiveItem == -1 || this.ActiveItem == itmNo)
			{
				this.ClearAll();
				this.ActiveItem = -1;
			}
		}
		
		if (this.ActiveItem == -1)
		{
			this.Hide();
		}
		
	}

	this.doAction  = function(itmNo)
	{
		if(typeof(this.Actions[itmNo]) != 'undefined')
		{
			eval(this.Actions[itmNo]);
		}
	}

	this.AddItem   = function(caption, action, text)
	{
		curID = this.Items.length;

		this.Items[curID] = caption || "-";
		this.Texts[curID] = text || "";

		if(isObject(action) && (action != undefined))
		{
			this.Submenus[curID] = action;
		}
		else
		{
			this.Actions[curID] = action || "";
		}
	}

	this.DropAll   = function()
	{
		this.Items    = new Array();
		this.Texts    = new Array();
		this.Actions  = new Array();
		this.Submenus = new Array();
		this.HTMLCache = "";
	}

	this.BuildMenu = function()
	{
		if (this.Items.length == 0) return;

		this.HTMLCache += "<div style=\"display:none;position:absolute;\" id=\""+ this.ID +"_container\">";

		this.HTMLCache +="<table class=\"mcontainer\" style=\"width:100%\">";

		for (this.i=0; this.i<this.Items.length;this.i++)
		{
			imgvar="";
			if(isObject(this.Submenus[this.i]))
			{
				imgvar = "<img src=\"images/arrows.gif\" align=\"right\">"
			}
			mouseacts = "onMouseOver=\""+this.Varname+".MouseOver("+this.i+")\" onMouseOut=\""+this.Varname+".TimeoutID = setTimeout('"+this.Varname+".MouseOut("+this.i+")',550)\"";
			
			//modositva !!
  			if(typeof (this.Actions[this.i]) != "undefined")
			{
				mouseacts += " onClick=\""+this.Varname+".doAction("+this.i+")\""
			}

  
			tdcl = " colspan=\"3\""
			setd ="";

			if (isObject(this.Submenus[this.i]))
			{
				setd ="<td>"+imgvar+"</td><td valign=\"top\"><div style=\"position:absolute;\">"+this.Submenus[this.i].ShowMenu()+"</div></td></td>";
				tdcl = "";
			}

			this.HTMLCache +="<tr><td"+tdcl+" valign=\"middle\" align=\"left\" class=\"menuitem\" style=\"white-space:nowrap;width:100%\" id=\""+this.ID+"_"+this.i+"\" "+mouseacts+">"+this.Items[this.i]+"";

			this.HTMLCache += setd+"</td></tr>";
		}

		this.HTMLCache +="</table>";

		this.HTMLCache += "</div>";
	}

	this.ShowMenu  = function()
	{
		if(this.HTMLCache == "")
		{
			this.BuildMenu();
		}
		return this.HTMLCache;
	}
	
	this.Show = function()
	{
		_showdiv(_getbyid(this.ID +"_container"));
	}

	this.Hide = function()
	{
		_hidediv(_getbyid(this.ID +"_container"));
	}
}

/*
id=\""+ this.ID +"_"+i+"_container\"
*/