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 menuItem(n, topId)
{
	var obj=getObj(n, topId);
	if(obj)
	{
		return obj.style;
	}
}
function getPosObj(n, topId)
{
	var obj=getObj(n, topId);
	this.x=obj.offsetLeft;
	this.y=obj.offsetTop;
	this.w=obj.offsetWidth;
	this.h=obj.offsetHeight;

	while((obj=obj.offsetParent)!=null && obj.tagName!='BODY')
	{
		this.x+=obj.offsetLeft;
		this.y+=obj.offsetTop;
	}
}
function setView(n, x, y, s)
{
	var obj=menuItem(n, n);
	if(listPopup[n])
	{
		if(s)
		{
			var m=listPopup[n].document.body.all[0];
			listPopup[n].show(0, 0, 0, 0);
			m.style.display='none';
			m.style.display='block';
			var pBody=(relPopup[n])? listPopup[relPopup[n]].document.body : document.body;
			listPopup[n].show(x-pBody.scrollLeft, y-pBody.scrollTop, m.offsetWidth, m.offsetHeight, pBody);
		}
		else listPopup[n].hide();
	}
	else
	{
		obj.left=x;
		obj.top=y;
	}

	obj.display=(s)?'block':'none';

}
function getObj(n, topId)
{
	if(isIE)
	{
		if(listPopup[topId] && listPopup[topId].document.getElementById(n))
		{
			//alert(n)
			return listPopup[topId].document.getElementById(n);
		}
		else return document.all[n];
	}
	else return document.getElementById(n);
}
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(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] && !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);
	var childId=topIdPref+id;

	var obj=getObj(subIdPref+id, topIdPref+topId);
	if(obj.className.substr(0, 7)!='Active_')obj.className='Active_'+(obj.className.indexOf(' ')==-1?'':' ')+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);

	setView(childId, (p.x+eval(x)), (p.y+eval(y)), 1);

	if(isIE && !listPopup[childId] && !MenPop.length)
	{
		var s=document.getElementsByTagName('SELECT');
		for(var i=0; i<s.length; i++)
			s[i].style.visibility='hidden';
	}

	MenPop[emb]=id;
}
var loc=1;
function clickMen(url)
{
	if(isIE&&event)
	{
		event.cancelBubble=true;
		event.returnValue=false;
	}

	hiddeMen(0);
	if(url.indexOf('://') == -1)
	{
		url=baseURL+url
		//alert(url);
		if(loc)document.location.href=url;
		loc = 0;
	}
	else {
		//alert(url);
		if(loc)document.location.href=url;
		loc=0;
		//window.open(url, '_blank');
	}

	return false;
}
function outMen(id, dodelay)
{
	clearTimeout(timeMen);
	timeMen=setTimeout('hiddeMen(0,1)', 700);

	if(!dodelay)
	{
		var obj=getObj(subIdPref+id, relPopup[topIdPref+id]);
		if(obj.className.substr(0, 7)=='Active_')
		{
			obj.className=obj.className.substr(7);
		}
	}
}
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='';
	for(var id in MenPop[typeMenu])
	{
		str+=MenPop[typeMenu][id];
	}

	MenPop=new Array();
	if(str)document.write(str);

	seqItems+=1000;
}