var agt = navigator.userAgent.toLowerCase();

var is_nav  = ((agt.indexOf ('mozilla') != -1) && (agt.indexOf ('spoofer') == -1) && (agt.indexOf ('compatible') == -1) && (agt.indexOf ('opera') == -1) && (agt.indexOf ('webtv') == -1) && (agt.indexOf ('hotjava') == -1) && (agt.indexOf ('safari') == -1)) ;
var is_nav8up = (( is_nav && (parseInt (navigator.appVersion) >= 5) && (agt.indexOf ('netscape/8') != -1) ) || (is_nav && (agt.indexOf ('netscape/8') != -1)) || (is_nav && (agt.indexOf ('firefox/') != -1)) || (is_nav && (agt.indexOf ('gecko') != -1) && (agt.indexOf ("netscape6/6") == -1) ) ) ;

var is_Mac = (agt.indexOf("mac") != -1 || agt.indexOf("68k") != -1 || agt.indexOf("68000") != -1 || agt.indexOf("ppc") != -1 ||	agt.indexOf("powerpc") != -1);
var is_ie = ((agt.indexOf ("msie") != -1) && (agt.indexOf ("opera") == -1) && (agt.indexOf ("safari") == -1)) ;
var is_Mac_ie = (is_Mac && is_ie)

var now = false
var nowSub = false
var nowSub2 = false
var timeout = null
var offset = 0
var width = 0
var width1 = 0
var width2 = 0
var dropLeft = false

var m1_4 = [0, 0];
var m1_11 = [0, 0];
var m1_11_1 = [0, 0];
var m2_2 = [0, 0];
var m2_2_1 = [0, 0];
var m3_4 = [0, 0];
var m3_6 = [0, 0];
var m3_6_1 = [0, 0];

var m1_Sub = ['m1_4', 'm1_11'];
var m1_4_Sub = [''];
var m1_11_Sub = ['m1_11_1'];
var m1_11_1_Sub = [''];
var m2_Sub = ['m2_2'];
var m2_2_Sub = ['m2_2_1'];
var m2_2_1_Sub = [''];
var m3_Sub = ['m3_4', 'm3_6'];
var m3_4_Sub = [''];
var m3_6_Sub = ['m3_6_1'];
var m3_6_1_Sub = [''];
var m4_Sub = [''];
var m5_Sub = [''];
var m6_Sub = [''];
var m7_Sub = [''];
var m8_Sub = [''];
var m9_Sub = [''];

function getMaxSubWidth(subList)
{
	var maxSubWidth = 0;
	for(t = 0; t < subList.length; t++)
		if (document.getElementById(subList[t]).childNodes[0].offsetWidth > maxSubWidth)
			maxSubWidth = document.getElementById(subList[t]).childNodes[0].offsetWidth;
	return maxSubWidth;
}

function getSubMenuCoord(n, left, width)
{
	var ar1 = eval(n + "_Sub")

	if (ar1[0] != "") // get coordimates of 2-level-menu
	{
		for (i = 0; i < ar1.length; i++)
		{
			var elem = document.getElementById(ar1[i])
			var k1 = ar1[i].substr(ar1[i].lastIndexOf("_") + 1)
			var width1 = elem.childNodes[0].offsetWidth;

			// get max width of 3-level-menu:
			var width2 = 0
			var ar2 = eval(ar1[i] + "_Sub")
			if (ar2[0] != "")
				width2 = getMaxSubWidth(ar2);

			var totalwidth = left + width + width1 + width2
			if (width1 > 0) totalwidth--;
			if (width2 > 0) totalwidth--;

			if (document.body.clientWidth < totalwidth)
			{
				left1 =  - width1 + 1
				dropLeft = true

			}
			else
			{
				left1 = width - 1;
				dropLeft = false;
			}

			var top1 = (k1 - 1) * (elem.parentNode.offsetHeight + 3)

			if (is_Mac_ie)
			{
				eval(ar1[i]) [0] = left1 - 2
				eval(ar1[i]) [1] = -2
			}
			else
			{
				eval(ar1[i]) [0] = left1
				eval(ar1[i]) [1] = top1
			}

			if (ar2[0] != "") // get coordinates of 3-level-menu
			for (j = 0; j < ar2.length; j++)
			{
				var elem = document.getElementById(ar2[j])
				var k2 = ar2[j].substr(ar2[j].lastIndexOf("_") + 1)
				width2 = elem.childNodes[0].offsetWidth;
				if (dropLeft) left2 = - width2 + 1
				else left2 = width1 - 1
				var top2 = (k2 - 1) * (elem.parentNode.offsetHeight + 3)

				if (is_Mac_ie)
				{
					eval(ar2[j]) [0] = left2 - 2
					eval(ar2[j]) [1] = top2 - 2
				}
				else
				{
					eval(ar2[j]) [0] = left2
					eval(ar2[j]) [1] = top2
				}
			}
		}
	}
}

function ItemOver()
{
	elem = this
	if (elem.className == "mmenuDropItemLast") elem.className = "mmenuDropItemOverLast";
	else elem.className = "mmenuDropItemOver";
	if (elem.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes.length > 1)
	{
		showSub(elem.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[1].id);
	}
	else
	{
		hideSub();
	}
}

function ItemOut()
{
	elem = this
	if (elem.className == "mmenuDropItemOverLast") elem.className = "mmenuDropItemLast";
	else elem.className = "mmenuDropItem"
	hideSub();
}

function setAction(what)
{
	elem = document.getElementById(what)

	for (i = 0; i < elem.childNodes.length; i++)
		if (elem.childNodes[i].tagName == 'TABLE')
			table = elem.childNodes[i]

	tr = table.childNodes[table.childNodes.length - 1].childNodes

	for (i = 0; i < tr.length; i++)
	{
		td = tr[i].childNodes;

		for (j = 0; j < td.length; j++)
		{
			if (td[j].tagName == "TD")
			{
				td[j].onmouseout = ItemOut
				td[j].onmouseover = ItemOver
				td[j].noWrap = 'true'
			}
		}
	}
}

function getX(elem)
{
	var pos = 0;

	while (elem.offsetParent != null)
	{
		elem = elem.offsetParent;
		pos += elem.offsetLeft;
		if (elem.tagName == 'BODY') break;
	}

	return pos - 1;
}

function getY(elem)
{
	var pos = 0;

	while (elem.offsetParent != null)
	{
		elem = elem.offsetParent;
		pos += elem.offsetTop;
		if (elem.tagName == 'BODY') break;
	}

	return pos - 1;
}

function show(n, td)
{
	timeout = clearTimeout(timeout);

	if (now)
	{
		elem = document.getElementById(now)
		elem.style.visibility = 'hidden'
		now = false
	}

	elem = document.getElementById(n)
	setAction(n)
	offset = getX(td)
	width = elem.childNodes[0].offsetWidth

	if (document.body.clientWidth < (offset + width) ) elem.style.left = document.body.clientWidth - width;

	else elem.style.left = offset

	left = parseInt(elem.style.left)
	elem.style.top = getY(td) + td.parentNode.offsetHeight + 1

	getSubMenuCoord(n, left, width)
	elem.style.visibility = "visible"


	if(document.getElementById("fr_"+elem.id))
	{
	document.getElementById("fr_"+elem.id).width=width;
	height = elem.childNodes[0].offsetHeight;
	document.getElementById("fr_"+elem.id).height=height;
	}


	now = n
}

function setImg(elem, type) // elem - DIV with tables, type: 1 - corner1, 2 - corner2
{
	tr = elem.parentNode.parentNode.childNodes
	j = 0
	for (i = 0; i < tr.length; i++)
	{
		if (tr[i].tagName == 'TD') { j++; break;}
	}
	if ((j == 1) && (tr[i].className == "sItem_corner1" || tr[i].className == "sItem_corner2"))
	{
		tr[i].className = "sItem_corner" + type;
	}
}



function showSub(n)
{
	elem = document.getElementById(n)

	var levelToShow = 0;
	for (i = 0; i < n.length; i++)
	{
		if (n.substr(i,1) == "_") levelToShow++;
	}

	if (levelToShow == 1) nowSub = n // draw menu 2 level
	else  if (levelToShow == 2) nowSub2 = n // draw menu 3 level

	elem.style.left = eval(elem.id) [0];
	elem.style.top = eval(elem.id) [1];
	setAction(n)
	elem.style.visibility = "visible"

	setImg(elem, 2)

}

function hide()
{
	if (timeout != null)
	{
		timeout = clearTimeout(timeout);
	}

	timeout = setTimeout('hideSub();doHide()', 1000);
}

function doHide()
{
	if (now)
	{
		elem = document.getElementById(now)
		elem.style.visibility = 'hidden'
		elem.style.left = -1000
		now = false
		left = 0
	}
}

function stopHide()
{
	timeout = clearTimeout(timeout);
	bodyWidth = document.body.clientWidth;
}

function hideSub()
{
	if (nowSub)
	{
		elem = document.getElementById(nowSub)
		elem.style.visibility = "hidden"
		elem.style.left = -1000
		setImg(elem, 1)
		nowSub = null
	}
	if (nowSub2)
	{
		elem = document.getElementById(nowSub2)
		elem.style.visibility = "hidden"
		elem.style.left = -1000
		setImg(elem, 1)
		nowSub2 = null
	}
}


