var topIdPref='T';
var subIdPref='S';
var seqItems=0;

var timeMen=0;
var MenPop=new Object();

var CurrPart;
var listPopup=new Object();
var relPopup=new Object();

function hiddeMen(n, s, id)
{
	var obj;
	for(var i=MenPop.length-1; i>=n; i--)
	{
		obj=getObj(subIdPref+MenPop[i], relPopup[topIdPref+MenPop[i]]);

		if(isDOM && obj.className.substr(0, 7)=='Active_')
		{
			obj.className=obj.className.substr(7);
		}

		setView(topIdPref+MenPop[i], 0, 0, 0);
	}

	MenPop.length=n;

	if(s && isIE && !listPopup[n] && isDOM && !n)
	{
		var s=document.getElementsByTagName('SELECT');
		for(var i=0; i<s.length; i++)
			s[i].style.visibility='visible';
	}
}

function overMen(topId, emb, id, x, y)
{
	clearTimeout(timeMen);
	//status='Over'+timeMen
	var childId=topIdPref+id;

	if(isDOM)
	{
		var obj=getObj(subIdPref+id, topIdPref+topId);
		if(obj.className.substr(0, 7)!='Active_')
			obj.className='Active_'+obj.className;

		if(emb)
		{
			obj=getObj(subIdPref+topId, relPopup[topIdPref+topId]);
			if(obj.className.substr(0, 7)!='Active_')
				obj.className='Active_'+obj.className;
		}
	}

	if(MenPop[emb] == id) return;
	hiddeMen(emb);

	if(!menuItem(childId, childId)) return;

	var p=new getPosObj(subIdPref+id, topIdPref+topId);

	MenPop[emb]=id;
	setView(childId, (p.x+eval(x)), (p.y+eval(y)), 1);

	if(isIE && !listPopup[childId] && isDOM && !MenPop.length)
	{
		var s=document.getElementsByTagName('SELECT');
		for(var i=0; i<s.length; i++)
			s[i].style.visibility='hidden';
	}
}

function clickMen(url, target)
{
	if(event)
	{
		event.cancelBubble=true;
		event.returnValue=false;
	}

	hiddeMen(0);
	if(url.indexOf('://') == -1)
	{
        window.open(url, target).focus();
//		document.location.assign(url);
	}
	else
		window.open(url, target).focus();
//		document.location.href=url;

	return false;
}

function outMen(id)
{
	clearTimeout(timeMen);
	if(isDOM)
	{
		var obj=getObj(subIdPref+id, relPopup[topIdPref+id]);
		if(obj.className.substr(0, 7)=='Active_')
			obj.className=obj.className.substr(7);
	}
	timeMen=setTimeout('hiddeMen(0,1)', 700);
	//status='Out'+timeMen
}

function bindMenu(tp, arg, id, countSub)
{
	if(!arg.length) return;

	MenPop[tp][topIdPref+id]=arg;
	MenPop[tp][topIdPref+id].emb=countSub;

	var itemId;
	for(var i=0; i<arg.length; i++)
	{
		if(typeof(arg[i]) != 'object') continue;

		itemId=++seqItems;
		relPopup[topIdPref+itemId]=topIdPref+id;
		bindMenu(tp, arg[i], itemId, countSub+1);
		arg[i]=new Array(itemId, arg[i].length);
	}
}

function creatMenu()
{
	var id;
	var arg = creatMenu.arguments;

	var typeMenu = arg[arg.length-2];
	var listTop = arg[arg.length-1];
	CurrPart = listTop[listTop.length-1];
	arg.length-=2;

	MenPop[typeMenu]=new Object();
	for(var i=0; i<arg.length; i++)
	{
		if(typeof(arg[i])!='object') continue;

		id=++seqItems;
		bindMenu(typeMenu, arg[i], seqItems, 1);

		arg[i]=new Array(id, arg[i].length);
	}

	document.write(tplMenuRoot[typeMenu](arg));

	for(id in MenPop[typeMenu])
		MenPop[typeMenu][id]=tplMenuChild[typeMenu] (id.substr(topIdPref.length), MenPop[typeMenu][id].emb, MenPop[typeMenu][id]);
}

function creatMenuChild(typeMenu)
{
	if(!MenPop[typeMenu]) return;

	var str='';
	var popHTML='<html><head><META http-equiv="Content-Type" content="text/html; charset=windows-1251">'+linkCSS+'';
			popHTML+='<script type="text/javascript">';
			popHTML+='function overMen(topId, emb, id, x, y){parent.itemMenID=id;parent.overMen(topId, emb, id, x, y);}';
			popHTML+='function outMen(id){parent.outMen(id);}';
			popHTML+='function clickMen(url,id){parent.clickMen(url,id);}';
			popHTML+='</script></head>'
			popHTML+='<body scroll=no style="margin:0px;padding:0px;border:0px" onunload="if(parent.itemMenID)parent.outMen(parent.itemMenID)">'

	for(var id in MenPop[typeMenu])
	{
		if(window.createPopup) //Is Popup
		{
			listPopup[id]=(relPopup[id])? listPopup[relPopup[id]].document.parentWindow.createPopup() : window.createPopup();
			listPopup[id].document.write(popHTML+MenPop[typeMenu][id]+'</body></html>');
			listPopup[id].document.close();
		}
		else	str+=MenPop[typeMenu][id];
	}

	MenPop=new Array();
	if(str) document.write(str);
}