var bIsMenuBuild = false;
var oSpanMenu;
var aMenu;
var sLastShowedMenu;
var aShowedMenuId = new Array();
var iShowedMenuIdIndex = 0;


function BuildMenu()
{
	var sTemp = "";
	var sParentID, sID, sURL, sName = "";
	var iSubMenu, iLevel = 0;
	oSpanMenu = document.getElementById("spanmenu");
	aMenu =  ('BuildMenu');
	aMenu = GetMenuArray();
	for (aItemIndex in aMenu)
	{
		sParentID = aMenu[aItemIndex][0];
		sID = aMenu[aItemIndex][1];
		sURL = aMenu[aItemIndex][2];
		sName = aMenu[aItemIndex][3];
		sTitle = aMenu[aItemIndex][4];
		iSubMenu = aMenu[aItemIndex][5];
		iLevel = aMenu[aItemIndex][6];
		AddMenuItem(sParentID, sID, sURL, sName, sTitle, iSubMenu, iLevel);
	}
	SetPosition();
	sTemp = oSpanMenu.innerHTML;
	oSpanMenu.innerHTML = sTemp;
	//alert(sTemp);
	bIsMenuBuild = true;
}

function Table(parentid, id, url, name, title, submenu, level)
{
	test = document.getElementById("TableSubMenuMain" + parentid);
	//alert (test);
	if (test == null)
	{
		oTableMain = document.createElement("table")
		oTableMain.cellPadding = 0;
		oTableMain.cellSpacing = 0;
		oTableMain.id = "TableSubMenuMain" + parentid;
		(level == 1) ? oTableMain.className = "SubMenuMain" : oTableMain.className = "SubMenuMainSecond";
		oTableMain.className = "SubMenuMain";
		oTableMain.onmouseover = "javascript: ShowMenu('" + parentid + "', " + level + ");";
		oTableMain.onmouseout = "javascript: HideMenu('" + parentid + "', " + level + ");";

		// create one td in tablemain, which contains table with rows
		oTR = document.createElement("tr");
		oTD = document.createElement("td");
		oTD.className = "tdSubMenuMain"
		oTable = document.createElement("table")
		oTable.cellPadding = 0;
		oTable.cellSpacing = 0;
		oTable.Border = 0;
		oTable.id = "TableSubMenu" + parentid;
		
		oTD.appendChild(oTable);
		oTR.appendChild(oTD);
		oTableMain.appendChild(oTR);
		
		oSpanMenu.appendChild(oTableMain);
	} else
	{
		oTable = document.getElementById("TableSubMenu" + parentid);
		//oTable = oTable.getElementsByTagName("table");
	}
	return oTable;
}

function SetPosition()
{
	var sTemp = "";
	var sParentID, sID, sURL, sName = "";
	var iSubMenu, iLevel = 0;
	for (aItemIndex in aMenu)
	{
		sParentID = aMenu[aItemIndex][0];
		sID = aMenu[aItemIndex][1];
		sURL = aMenu[aItemIndex][2];
		sName = aMenu[aItemIndex][3];
		sTitle = aMenu[aItemIndex][4];
		iSubMenu = aMenu[aItemIndex][5];
		iLevel = aMenu[aItemIndex][6];

		if (iLevel == 1)
		{
			//alert(iLevel);
			oParent = document.getElementById("tdmenu" + sParentID);
			oTableMain = document.getElementById("TableSubMenuMain" + sParentID);
			// Find the element's offsetTop and offsetLeft relative to the BODY tag.
			objLeft   = oParent.offsetLeft;
			objTop    = oParent.offsetTop;
			objParent = oParent.offsetParent;
			while (objParent.tagName.toUpperCase() != "BODY")
			{
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
			oTableMain.style.posLeft = objLeft - 1;
			objTop = objTop + oParent.offsetHeight + 1;
			oTableMain.style.posTop = objTop;
		} 
		else
		{
			for (aItemIndex2 in aMenu)
			{
				if (aMenu[aItemIndex2][1] == sParentID)
				{
					oTopParent = document.getElementById("TableSubMenuMain" + aMenu[aItemIndex2][0]);
					break;
				}
			}

			oParent = document.getElementById("tdmenu" + sParentID)
			oTableMain = document.getElementById("TableSubMenuMain" + sParentID);
			// Find the element's offsetTop and offsetLeft relative to the BODY tag.
			objLeft   = oParent.offsetLeft;
			objTop    = oParent.offsetTop;
			objParent = oParent.offsetParent;
			//alert (objParent.id + ";" + oTopParent.id);
			while (objParent.id != oTopParent.id)
			{
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
			oTableMain.style.posLeft = oTopParent.style.posLeft + objLeft + 10;
			oTableMain.style.posTop = oTopParent.style.posTop + objTop;		
		}
	}
}

function AddMenuItem(parentid, id, url, name, title, submenu, level)
{
	//alert('AddMenuItem:' + parentid + ";" + id + ";" + url + ";" + name + ";" + title + ";" + submenu + ";" + level + ";");
	var sTemp = '';
	var oTable = Table(parentid, id, url, name, title, submenu, level);
	var oRow = document.createElement("tr")
	
	// Create "Line" td
	var oImg = document.createElement("img");
	var oCellLine = document.createElement("td");
	oCellLine.className = "tdSubMenuLine"
	oImg.src = "/cara/images/web/spacer.gif";
	oImg.width = 1;
	oImg.height = 1;
	oCellLine.appendChild(oImg);
	
	// Create "Name" td
	var oAText = document.createElement("a");
	var oCellText = document.createElement("td");
	sTemp = '';
	if ((url == '') && (id == '') && (name == ''))
	{ // separator
		oCellText.className = "tdSubMenu";
		var oHr = document.createElement("hr");
		oHr.color = 0;
		oHr.size = 1;
		oCellText.appendChild(oHr);
	} else {
		if (url == '') {
			oCellText.className = "tdSubMenuInactive"
			oCellText.innerText = name;
		} else {
			oCellText.className = "tdSubMenu";
			oAText.href = url;
			oAText.className = "aSubMenu";
			oAText.innerText = name;
			oCellText.appendChild(oAText);
		}
	}
	
	// Create "Submenu" td
	var oCellSubMenu = document.createElement("td");
	var oASubMenu = document.createElement("a");
	var oImg = document.createElement("img");
	oCellSubMenu.id = "tdmenu" + id;
	if (submenu == 1) {
		oImg.src = "/cara/images/web/Button-Arrow.gif";
		level++;
		oImg.onmouseover = "javascript: ShowMenu('" + id + "', " + (level) + ");";
		level--;
	} else {
		oImg.src = "/cara/images/web/spacer.gif"
	}
	oCellSubMenu.appendChild(oImg);
	
	
	// Add to menu
	oRow.appendChild(oCellLine);
	oRow.appendChild(oCellText);
	oRow.appendChild(oCellSubMenu);
	oTable.appendChild(oRow);
}



function ShowMenu(id, level)
{
	if (!bIsMenuBuild) BuildMenu()
	//return true;
	InfoBox ('Show:'+sLastShowedMenu+':'+id);
	SetPosition();
	sLastShowedMenu = id;
	
	aShowedMenuId[iShowedMenuIdIndex] = id;
	iShowedMenuIdIndex++;

	if (level != 0)
	{
		tableMainSelected = document.all('TableSubMenuMain' + id);
		tableSelected = document.all('TableSubMenu' + id);
	}
	tdSelected = document.all('tdmenu' + id);

	if (level != 0)
	{
		tableMainSelected.className = "SubMenuMainSecondSelected";
		tableSelected.className = "SubMenuSelected";
	}
	tdSelected.className = "tdMenuSelected";
	
	
	if (level == 1)
	{
		tableMainSelected.className = "SubMenuMainSelected";
		aSelected = document.all('amenu' + id);
		aSelected.className = "aMenuSelected";
	}

	if (level == 0)
	{
		aSelected = document.all('amenu' + id);
		aSelected.className = "aMenuSelected";
	}

	if (level>1)
	{
		for (aItemIndex in aMenu)
		{
			if (aMenu[aItemIndex][1] == id)
			{
				level--;
				ShowMenu(aMenu[aItemIndex][0], level);
				level++;
			}
		}
	}
}

function HideMenu(id, level)
{
	InfoBox ('Hide:'+id);
	tableMainSelected = document.all('TableSubMenuMain' + id);
	tableSelected = document.all('TableSubMenu' + id);
	tdSelected = document.all('tdmenu' + id);
	
	if (level != 0)
	{
		tableMainSelected.className = "SubMenuMain";
		tableSelected.className = "SubMenu";
	}
	tdSelected.className = "tdMenu";
	if (level==1 | level==0) {
		aSelected = document.all('amenu' + id);
		aSelected.className = "aMenu";
	}
	else
	{
		for (aItemIndex in aMenu)
		{
			if (aMenu[aItemIndex][1] == id)
			{
				level--;
				HideMenu(aMenu[aItemIndex][0], level);
				level++;
			}
		}
	}
}


function InfoBox(message)
{
/*
	var oDiv = document.getElementById("divpom");
	var newDateObj = new Date();
	var s = "";
	s = oDiv.innerHTML;
	s = s + newDateObj.toLocaleTimeString() + ": " + message + "<br>";
	oDiv.innerHTML = s;
	*/
}

