var menu, dir, loc;
var chain, cItemId, cItemId_Old, cId, cParentId, cLevel, cPosition;
var st, ss = "";

var hideDelay = 10;

	
//
// Show menu
//
function showMenu(mnemo) 
{
    d.write("<span id=sp></span>");
	menu = eval("window."+mnemo);
	dir = eval("window."+mnemo+"Dir");
	loc = eval("window."+mnemo+"Loc");
	showName = eval("window."+mnemo+"ShowName");
	name = eval("window."+mnemo+"Name");
	menuSetDefaultValue();
	
	if (dir=="v") width=170; else width=null;
	
	//var s = "<div style='position:relative'>";
	
	var s = "<table id='"+mnemo+"Table' cellpadding='0' cellspacing='0' class='"+mnemo+"Table' "+(width!=null?"width='"+width+"'":"")+"border='0'>";
	if (dir=="v" && showName && name!='') s += "<tr><td class='bHeader'>"+name+"</td></tr>";
	if (dir=="h") s+="<tr>";
	d.write(s);
	ss+=s;
	
	for(i=0; i<menu.length; i++) 
	{
	  if (menu[i][1]==0) 
	  {
	    s = "";
		if (dir=="v") s+="<tr>";
		s += "<td valign='top'>";
		
		s += "<div style='position:relative'>";
		s += "<table id='"+mnemo+"Item"+i+"' class='"+mnemo+(menu[i][7]=="active"?"ItemActive":"Item")+"' cellpadding='0' cellspacing='0' border='0' ";
		s += "onmouseover=\"menuItemOver('"+mnemo+"', -1, "+i+")\" onmouseout=\"menuItemOut('"+mnemo+"', -1, "+i+")\"";
		if ((menu[i][6]!='')) s+=" onclick=\"menuItemClick('"+menu[i][6]+"')\"";
		s += "><tr>";	

		// Title
		s += "<td class='"+mnemo+"Title' width='100%' valign='middle'>"+menu[i][5]+"</td>";	
		// RightBlock
		s += "<td id='"+mnemo+"rb"+i+"' class='"+menuGetBlockClass(mnemo, -1, i, "R")+"'>"+menuGetContent(mnemo, -1, i, "R")+"</td>";
		if (menu[i][8]!='') s += "<td><img src='"+menu[i][8]+"'></td>";
		s += "</tr></table>";		  
		d.write(s);
		ss+=s;

		// -- create submenu -------
		if (menu[i][2]==1) {
		    st = "";
			createSubMenu(mnemo, i, 0, 0);
			d.write(st);
			ss+=st;
		}
		s = "</div>";
		s = "</td>";

		if (dir=="v") s += "</tr>";
		d.write(s);
		ss+=s;
	  }
	}
	// for horizontal menu
	s = "";
	if (dir=="h") s += "</tr>";
	
	s += "</table>";
	//s += "</div>";
	d.write(s);
	ss+=s;
	//alert(ss);
	//d.getElementById("sp").innerText = ss;
}

//
//  Create sub menus
//
function createSubMenu(mnemo, ind, row, counter) 
{

	// get top and left
	var top = -1;
	var left = 221;

    st = "<div id='"+mnemo+"SMenu"+ind+"'  style='top:"+top+"px; left:"+left+"px; position:absolute; visibility:hidden'>";
	st += "<table id='"+mnemo+"STable"+ind+"' class='"+mnemo+"STable' width='"+200+"' cellpadding='0' cellspacing='0' border='0'>";
	
	counter = 0;
	while (row<menu.length) 
	{
	  if (menu[row][1]==menu[ind][0]) 
	  {
	  	counter++;
		st += "\n\r<tr><td>";
		if (menu[row][7]=='active') cl = mnemo + "SItemActive"; else cl = mnemo + "SItem";

		//st += "<div style='position:relative' style='width:100%;'>";
		st += "<table id='"+mnemo+"SItem"+ind+"_"+row+"' width='100%' class='"+cl+"' cellpadding='0' cellspacing='0' border='0' style='width:100%;' ";
		st += "onmouseover='menuItemOver(\""+mnemo+"\", "+ind+","+row+")' onmouseout='menuItemOut(\""+mnemo+"\", "+ind+","+row+")' "; 			
		
		if (menu[row][6]!='') st+=" onclick=\"menuItemClick('"+menu[row][6]+"')\"";
		
		st += "><tr>";

		//----- Title ------------		
		st += "<td class='"+mnemo+"STitle' width='100%' valign='middle'>"+menu[row][5]+"</td>";	
		//----- RightBlock ----
		st += "<td id='"+mnemo+"rb"+ind+"_"+row+"' class='"+menuGetBlockClass(mnemo, ind, row, "R")+"'>"+menuGetContent(mnemo, ind, row, "R")+"</td>";
		
		st += "</tr></table>";
		if (menu[row][2]==1) {
			st += createSubMenu(mnemo, row, 0, counter);
		}
		//st += "</DIV>";

		st += "</td></tr>";
	  }
	  row++;
	}
	st += "</table>";
	st += "</div>";
	
	//alert(st);
	return st;
}

//
//  Return block class
//
function menuGetBlockClass(mnemo, ind1, ind2, pos) 
{
	var menu = eval("window."+mnemo);

	if (ind1==-1) 
		var Id = ind2;
	else
		var Id = ind1+'_'+ind2;
	
	if (menu[ind2][1]==0) var pre=''; else var pre='S';	
	
	var cl="Title";
	if (pos!="R" && pos!="L") {
	  if (menu[ind2][7]=='over') cl='Over';
	  if (menu[ind2][7]=='active') cl='Active';	
	}
	
	return mnemo+pre+pos+cl;
}

//
//  Menu item over
//
function menuItemOver(mnemo, i, j) 
{
    var menu = eval("window."+mnemo);

  	cLevel = menu[j][3];
	cPosition = "menu";
	if (cLevel==0) chain = new Array();
	chain[cLevel] = j;
  	
	if (menu[j][2]==1) 
	{
		hideSelects(d.getElementById(mnemo+"SMenu"+j));
		d.getElementById("mmSBack").style.visibility = "visible";
		el = d.getElementById(mnemo+"SMenu"+j);
		//el.style.left = menuGetPos(mnemo, j)-1;
		el.style.visibility="visible";
	}
	
	if (menu[j][7]!='active') menuSetStyle(mnemo, i, j, 1);
	
	if ( (cLevel>0)&&(chain[cLevel-1]==i)&&(menu[i][7]!='active') ) {
		var ind2 = chain[cLevel-1];
		if (cLevel==1) 
			var ind1 = -1;
		else
			var ind1 = chain[cLevel-2];
		menuSetStyle(mnemo, ind1, ind2, 1);
	}
}

//
//  Menu item out
//
function menuItemOut(mnemo, i, j) 
{
	menu = eval("window."+mnemo);
	hide = true;
	
  	cLevel = -1;
	cPosition = "out";
	chain[cLevel] = j;

	t = setTimeout("menuHideAll('"+mnemo+"')", hideDelay);

	if (menu[j][7]!='active') menuSetStyle(mnemo, i, j, 0);
}


//
//  Set style for item
//
function menuSetStyle(mnemo, i, j, status) 
{
	menu = eval("window."+mnemo);
	
	var itemStatus='';
	
	switch(status) {
		case 0: menu[j][7]=''; break;
		case 1: itemStatus='Over'; menu[j][7]='over'; break;
		case 2: itemStatus='Active'; break;
	}
	
	if (menu[j][1]==0) {
	  	d.getElementById(mnemo+"Item"+j).className = mnemo + "Item"+ itemStatus;
	} else {
	  	d.getElementById(mnemo+"SItem"+i+"_"+j).className = mnemo + "SItem" +itemStatus;	
	}
}


//
//  Return char
//
function menuGetContent(mnemo, ind1, ind2, pos) {
	
	var menu = eval("window."+mnemo);

	//----  With sub icon (only right) ------------------------
	if ( menu[ind2][2]==1 && pos=='R' ) 
	{
		if (mnemo=="mm") {
		  switch (menu[ind2][7]) {
		  	case "over": 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "&nbsp;<img src='/images/arr.gif'>";
			break;
			case "active": 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "<img src='/images/arr.gif'>";
			break;
			default: 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "<img src='/images/arr.gif'>";
			break;
		  }
		}
		if (mnemo=="um") {
		  switch (menu[ind2][7]) {
		  	case "over": 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "<img src='/images/arr.gif'>";
			break;
			case "active": 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "<img src='/images/arr.gif'>";
			break;
			default: 
			  //- main menu ---------
			  if (menu[ind2][1]==0) return "<img src='/images/arr.gif'>";
			  //- sub menu ----------
			  if ((menu[ind2][1]!=0)) return "<img src='/images/arr.gif'>";
			break;
		  }
		}
	}
	return "&nbsp;";
}


//
// Hide submenus and items
//
function menuHideAll(mnemo) 
{
	var menu = eval("window."+mnemo), st='';
	
	showSelects();
	
	// hide submenu
	var vis = false;
	for (var i=0; i<menu.length; i++) 
	{
	  if (menu[i][2]==1) 
	  {
		if ( (menu[i][3]>=cLevel)&&(chain[cLevel]!=i) || (cPosition=="out"))  
		{
			el = d.getElementById(mnemo+"SMenu"+i);
			el.style.visibility="hidden";
		} else {
			//el.style.visibility="visible";
			hideSelects(d.getElementById(mnemo+"SMenu"+i));
			vis = true;
		}
	  }
	
	  if ( (i==chain[menu[i][3]])&&(menu[i][7]=='over') ) 
	  {
	  	var hide = 0;
	  	if (cPosition=="out") hide = 1;
		if (cLevel<menu[i][3]) hide = 1;
		if (hide == 1) {
			var ind2 = i;
			if (menu[i][3]==0) 
				var ind1 = -1;
			else
				var ind1 = chain[menu[i][3]-1];
			menuSetStyle(mnemo, ind1, ind2, 0);
		}
	  }
	  
	  if ( (i!=chain[menu[i][3]])&&(menu[i][7]=='over') ) {
			var ind2 = i;
			if (menu[i][3]==0) 
				var ind1 = -1;
			else
				var ind1 = chain[menu[i][3]-1];
			menuSetStyle(mnemo, ind1, ind2, 0);
	  }	
	}
	if (vis==false) d.getElementById("mmSBack").style.visibility = "hidden";
}

//
//  Item click
//
function menuItemClick(Link) 
{
	window.location.href=Link;
}


//
//  Return submenu left position
//
function menuGetPos(mnemo, ind) 
{
	var menu = eval("window."+mnemo);
	var loc = eval("window."+mnemo+"Loc");
	
	if (loc!="right") {
	  if (cLevel==0) 
		var w = d.getElementById(mnemo+"Table").width;
	  else
		var w = d.getElementById(mnemo+"STable"+chain[cLevel-1]).width;
	} else {
	    var w = (d.getElementById(mnemo+"STable"+ind).width)*(-1)+1;
	}
  	return w;
}

//
//  Set default variables' value
//
function menuSetDefaultValue() 
{
    chain = new Array();

    ctemId = -1;
    cItemId_Old = -1;
    cId = -1;
    cParentId = -1;
    cLevel = -1;
    cPosition = "";
}