var maxMenuID=1;
var maxSubMenuID=1;
var maxItemID=1;
var menukiller=null;
var visiblesubmenu=new Array();
var menubgcolorover='';
var submenubgcolorover='';
var menuarray=new Array();

function menu(id)
{
	this.childs=new Array();
	if (id!=null)
		this.ID=id;
	else
	{
		this.ID=maxMenuID;
		maxMenuID++;
	}
	this.type='menu';
	menuarray.push(this);

	this.add = function (submenu)
	{
		submenu.parent=this;
		this.childs.push(submenu);
	}

	this.create = function()
	{
		document.write('<table id="menu'+this.ID+'" name="menu'+this.ID+'" cellspacing="0" cellpadding="0" class="menu" style="position:absolute;top:0px;left:0px;visibility:hidden">');
		document.write('<tr class="menu">');
		for (var i=0;i<this.childs.length;i++)
			document.write('<td id="menuitem'+this.childs[i].ID+'" name="menu'+this.childs[i].ID+'"'+(this.childs[i].type=='subMenu'?' onmouseover="javascript:this.style.backgroundColor=\''+menubgcolorover+'\';showSubMenuItem('+this.childs[i].subMenuID+','+0+')" onmouseout="javascript:this.style.backgroundColor=\'\';hideSubMenuItem('+this.childs[i].subMenuID+')"':' onmouseover="javascript:this.style.backgroundColor=\''+menubgcolorover+'\'" onmouseout="javascript:this.style.backgroundColor=\'\'"')+' class="menu">'+(this.childs[i].link!=null && this.childs[i].link.length?'<a href="'+this.childs[i].link+'"'+((this.childs[i].target!=null && this.childs[i].target.length)?' target="'+this.childs[i].target+'"':'') + (this.childs[i].link.indexOf('formularz.php') > 0  ? ' class="menublink"' : ' class="menu"') + '>' + this.childs[i].label + '</a>' : this.childs[i].label)+'</td>');
		document.write('</tr>');
		document.write('</table>');
		for (var i=0;i<this.childs.length;i++)
		{
			if (this.childs[i].type=='subMenu')
				this.childs[i].create(0);
		}
	}

	this.show = function(x, y)
	{
		getElement('menu'+this.ID).style.left = x + 'px';
		getElement('menu'+this.ID).style.top  = y + 'px';
		for (var i=0;i<this.childs.length;i++)
		{
			if (this.childs[i].type=='subMenu')
				this.childs[i].show();
		}
		elementShow('menu'+this.ID);
	}
}

function subMenu(label,link,target)
{
	this.label=label;
	this.link=link;
	this.target=target;
	this.childs=new Array();
	this.subMenuID=maxSubMenuID;
	maxSubMenuID++;
	this.ID=maxItemID;
	maxItemID++;
	this.type='subMenu';
	this.parent=null;
	this.depth=null;

	this.add = function (item)
	{
		item.parent=this;
		this.childs.push(item);
	}

	this.create = function (depth)
	{
		var i;
		this.depth=depth;
		document.write('<table id="submenu'+this.subMenuID+'" name="submenu'+this.subMenuID+'" cellspacing="0" cellpadding="0" onmouseover="javascript:showSubMenu('+this.subMenuID+')" onmouseout="javascript:hideSubMenu('+this.subMenuID+')" class="submenu" style="position:absolute;top:0px;left:0px;visibility:hidden">');
		for (i=0;i<this.childs.length;i++)
		{
			document.write('<tr class="submenu">');
			document.write('<td id="menuitem'+this.childs[i].ID+'" name="menuitem'+this.childs[i].ID+'"'+(this.childs[i].type=='subMenu'?' onmouseover="javascript:this.style.backgroundColor=\''+submenubgcolorover+'\';showSubMenuItem('+this.childs[i].subMenuID+','+this.depth+')" onmouseout="javascript:this.style.backgroundColor=\'\';hideSubMenuItem('+this.childs[i].subMenuID+')"':' onmouseover="javascript:this.style.backgroundColor=\''+submenubgcolorover+'\'" onmouseout="javascript:this.style.backgroundColor=\'\'"')+' class="submenu">'+(this.childs[i].link!=null && this.childs[i].link.length?'<a href="'+this.childs[i].link+'"'+((this.childs[i].target!=null && this.childs[i].target.length)?' target="'+this.childs[i].target+'"':'')+' class="submenu">'+this.childs[i].label+'</a>':this.childs[i].label)+'</td>');
			document.write('</tr>');
		}
		document.write('</table>');
		for (i=0;i<this.childs.length;i++)
		{
			if (this.childs[i].type=='subMenu')
				this.childs[i].create(this.depth+1);
		}
	}

	this.show = function ()
	{
		if (this.parent!=null && this.parent.parent!=null)
		{
			// left submenu
			getElement('submenu'+this.subMenuID).style.left = (getElementLeft('menuitem'+this.ID) + getElementWidth('menuitem'+this.ID)) + 'px';
			getElement('submenu'+this.subMenuID).style.top  = getElementTop('menuitem'+this.ID) + 'px';
		}
		else
		if (this.parent!=null)
		{
			// down submenu
			getElement('submenu'+this.subMenuID).style.left = getElementLeft('menuitem'+this.ID) + 'px';
			getElement('submenu'+this.subMenuID).style.top  = (getElementTop('menuitem'+this.ID) + getElementHeight('menuitem'+this.ID)) + 'px';
		}
		for (var i=0;i<this.childs.length;i++)
		{
			if (this.childs[i].type=='subMenu')
				this.childs[i].show();
		}
	} 
}

function menuItem(label,link,target)
{
	this.label=label;
	this.link=link;
	this.target=target;
	this.parent=null;
	this.ID=maxItemID;
	maxItemID++;
	this.parent=null;
	this.type='menuItem';
}

function showSubMenu(id)
{
	var tmp;
	var i;

	if (menukiller!=null)
	{
		stopMenuKiller();
		tmp=new Array();
		i=0;
		for(;i<visiblesubmenu.length && visiblesubmenu[i]!=id;i++)
			tmp.push(visiblesubmenu[i]);
		for(;i<visiblesubmenu.length;i++)
			if (visiblesubmenu[i]!=id)
				elementHide('submenu'+visiblesubmenu[i]);
		visiblesubmenu=tmp;
	}

	elementShow('submenu'+id);

	tmp=new Array();
	for(i=0;i<visiblesubmenu.length;i++)
		tmp.push(visiblesubmenu[i]);

	visiblesubmenu=tmp;
	visiblesubmenu.push(id);
}

function hideSubMenu(id)
{	
	menukiller=window.setTimeout('hideSubMenu_(\''+id+'\')',500);
}

function hideSubMenu_(id)
{
	stopMenuKiller();
	while (i=visiblesubmenu.pop())
		elementHide('submenu'+i);
	elementHide('submenu'+id);
}

function showSubMenuItem(id,depth)
{
	stopMenuKiller();
	elementShow('submenu'+id);

	var tmp=new Array();
	var i;
	for(i=0;i<visiblesubmenu.length;i++)
		if (visiblesubmenu[i]!=id)
			tmp.push(visiblesubmenu[i]);

	for(i=depth;i<tmp.length;i++)
		if (tmp[i]!=id)
			elementHide('submenu'+tmp[i]);
	tmp.length=depth;

	visiblesubmenu=tmp;
	visiblesubmenu.push(id);
}

function hideSubMenuItem(id)
{	
	stopMenuKiller();

	var tmp=new Array();
	for(var i=0;i<visiblesubmenu.length;i++)
		if (visiblesubmenu[i]!=id)
			tmp.push(visiblesubmenu[i]);
	visiblesubmenu=tmp;

	elementHide('submenu'+id);
}

function stopMenuKiller()
{
	if (menukiller!=null)
	{
		window.clearTimeout(menukiller);
		menukiller=null;
	}
}