var MenuHeight = 0;
var MenuRowHeight = 19;
var MENUSTEP = 8;
var MENUTIMESTEP = 25;
var MenuRunning = 0;
var MENU_VISIBLEWIDTH = 180;
var MENU_VISIBLEHEIGHT = 287;
var MENUARROWHEIGHT = 14;
var MENUARROWSTEP = 1;
var MenuTimer = null;
var MenuFdown, MenuFup, MenuBody, MenuObjects;
var MenuTopOver=0;

var ToolObj;
var ToolIsRunning = false;
var ToolString = '';
var TOOLYSTOP = 5;
var TOOLHEIGHT = 25;
var TOOLTIMESTEP = 10;

function Roll(who,img)
{
	who.src = img;
}

function RollById(id,img)
{
	if (document.getElementById)
	{
		document.getElementById(id).src = img;
	}
	else if (document.all)
	{
		this.doc = document.all[id].src = img;
	}
	else if (document.layers)
	{
		 document.layers[id].src = img;
	}
}

function menuColor(who,flag,id)
{
	var color = "#383838";
	var fgColor = "#D7D7D7";

	if(flag)
	{
		var t = color;
		color = fgColor;
		fgColor = t;
	}
	document.getElementById(id).style.color = fgColor;
	who.style.background = color;
}

function printMenu()
{
	document.write('<table cellpadding="0" cellspacing="0" border="0">');
	document.write('<tr valign="top">');
	document.write('<td background="/images/pixels/redup.gif" height="15">');
	document.write('<DIV id="menuUp" style="position:relative; top:0; left:0; width:' + MENU_VISIBLEWIDTH + '; height:' + MENUARROWHEIGHT + '; overflow:hidden; cursor:hand;" onMouseOver="MenuGo(\'U\',true);" onMouseOut="MenuGo(\'U\',false);">');
	document.write('<img src="/images/menu_fu_00.gif" border="0">');
	document.write('<DIV id="menuFup" style="position:absolute; top:'+ MENUARROWHEIGHT +'; left:0; width:' + MENU_VISIBLEWIDTH + '; height:' + MENUARROWHEIGHT + ';">');
	document.write('<img src="/images/menu_fmask.gif" border="0">');
	document.write('</DIV></DIV></td></tr>');
	document.write('<tr><td background="/images/pixels/tratteggio5.gif" height="1"></td></tr>');
	document.write('<tr>');
	document.write('<td height="' + MENU_VISIBLEHEIGHT + '">');
	document.write('<DIV style="position:relative; top:0; left:0; width:' + MENU_VISIBLEWIDTH + '; height:' + MENU_VISIBLEHEIGHT + '; overflow:hidden;">');
	document.write('<DIV id="menuBody" style="position:absolute; top:0; left:0; width:' + MENU_VISIBLEWIDTH + ';">');
	
	for(var i=0; i<Menu.length; i++)
	{
		var inc = 0;
		var inc2 = 1;
		var img = "menu_foff";
		var calc = (MenuRowHeight + 1);
		var bck = "#F3F3F3";
		if(i == MenuOpened)
		{
			inc = MenuRowHeight;
			inc2 = 2;
			var calc = (MenuRowHeight*(Menu[i][1].length+1)) + 2;
			img = "menu_fselect";
			bck = "#DEDEDE";
		}
		document.write('<DIV id="m_voice__' + i + '" style="position:absolute; overflow:hidden; top:' + MenuHeight + '; left:0; width:' + MENU_VISIBLEWIDTH + '; height:' + calc + '; background:' + bck +';" onMouseOver="MenuRoll(' + i + ',false);" onMouseOut="MenuRoll(' + i + ',true);">');
		document.write('<table cellpadding="0" cellspacing="0" border="0">');
		document.write('<tr valign="middle"><td width="180" height="' + MenuRowHeight + '" class="menutext" onClick="MenuClick(' + i + ')"><img src="/images/' + img + '.gif" id="m_img__' + i + '" align="absmiddle">' + Menu[i][0] + '</td></tr>');
		document.write('<tr><td height="1" background="/images/pixels/tratteggio2.gif"></td></tr>');
		for(var j=0; j<Menu[i][1].length; j++) 
		{
			document.write('<tr valign="middle" bgcolor="#FFFFFF"><td height="' + MenuRowHeight + '"><img src="/images/menu_spacer.gif" align="absmiddle"><a href="' + Menu[i][2][j] + '" class="submenutext" onMouseOver="this.style.color=\'#606060\';" onMouseOut="this.style.color=\'#923F42\';">' + Menu[i][1][j] + '</a></td></tr>');
			MenuHeight += inc;
		}
		document.write('<tr><td height="1" background="/images/pixels/tratteggio2.gif"></td></tr>');
		document.write('</table>');		
		document.write('</DIV>');
		MenuHeight += MenuRowHeight + inc2;
	}
	
	document.write('</DIV></DIV></td></tr>');
	document.write('<tr><td background="/images/pixels/tratteggio5.gif" height="1"></td></tr>');
	document.write('<tr valign="top">');
	document.write('<td background="/images/pixels/red.gif" height="15">');
	document.write('<DIV id="menuDown" style="position:relative; top:0; left:0; width:' + MENU_VISIBLEWIDTH + '; height:' + MENUARROWHEIGHT + '; overflow:hidden; cursor:hand;" onMouseOver="MenuGo(\'D\',true);" onMouseOut="MenuGo(\'D\',false);">');
	document.write('<img src="/images/menu_fd_00.gif" border="0">');
	document.write('<DIV id="menuFdown" style="position:absolute; top:' + (-MENUARROWHEIGHT) + '; left:0; width:' + MENU_VISIBLEWIDTH + '; height:'+ MENUARROWHEIGHT + ';">');
	document.write('<img src="/images/menu_fmask.gif" border="0">');
	document.writeln('</DIV></DIV></td></tr></table>');
}

function MenuClick(index)
{
	if(MenuObjects[index].timer != null)
	{
		clearTimeout(MenuObjects[index].timer);
		MenuObjects[index].timer = null;
		MenuRunning--;
	}
	MenuObjects[index].isOpen = !MenuObjects[index].isOpen;
	MenuRunning++;
	if(MenuObjects[index].isOpen)
		MenuObjects[index].timer = setTimeout('MenuAdd('+index+')',MENUTIMESTEP);
	else
		MenuObjects[index].timer = setTimeout('MenuSub('+index+')',MENUTIMESTEP);
}

function MenuAdd(index)
{
	var add = MENUSTEP;
	var h = parseInt(MenuObjects[index].css.height);
	MenuObjects[index].timer = null;
	if(add+h >= MenuObjects[index].maxH)
	{
		add = MenuObjects[index].maxH-h;
		MenuObjects[index].image.src = "/images/menu_fselect.gif";
		MenuRunning--;
		MenuHeight += (MenuObjects[index].maxH - MenuRowHeight - 1);
		MenuTopOver = MENU_VISIBLEHEIGHT - MenuHeight;
		if(MenuTopOver>0) MenuTopOver = 0;
		MenuFdown.css.top = -MENUARROWHEIGHT;
		MenuFup.css.top = MENUARROWHEIGHT;
	}
	else
	{
		var t = parseInt(MenuFdown.css.top) + MENUARROWSTEP;
		if(t>MENUARROWHEIGHT) t = -MENUARROWHEIGHT;
		MenuFdown.css.top = t;
		MenuFup.css.top = -t;
		MenuObjects[index].timer = setTimeout('MenuAdd('+index+')',MENUTIMESTEP);
	}
	MenuObjects[index].css.height = h+add;
	while(++index<MenuObjects.length)
	{
		h = parseInt(MenuObjects[index].css.top)+add;
		MenuObjects[index].css.top = h;
	}
}

function MenuSub(index)
{
	var dif = MENUSTEP;
	var h = parseInt(MenuObjects[index].css.height);
	MenuObjects[index].timer = null;
	if((h-dif) < (MenuRowHeight+1))
	{
		dif = h-MenuRowHeight-1;
		MenuObjects[index].image.src = "/images/menu_foff.gif";
		MenuRunning--;
		MenuHeight -= (MenuObjects[index].maxH - MenuRowHeight - 1);
		MenuTopOver = MENU_VISIBLEHEIGHT - MenuHeight;
		if(MenuTopOver>0) MenuTopOver = 0;
		MenuFup.css.top = MENUARROWHEIGHT;
		MenuFdown.css.top = -MENUARROWHEIGHT;
	}
	else
	{
		var t = parseInt(MenuFdown.css.top) + MENUARROWSTEP;
		if(t>MENUARROWHEIGHT) t = -MENUARROWHEIGHT;
		MenuFdown.css.top = t;
		MenuFup.css.top = -t;
		MenuObjects[index].timer = setTimeout('MenuSub('+index+')',MENUTIMESTEP);
	}
		
	MenuObjects[index].css.height = h-dif;
	while(++index<MenuObjects.length)
	{
		h = parseInt(MenuObjects[index].css.top)-dif;
		MenuObjects[index].css.top = h;
	}
}

function MenuRoll(index,state)
{
	var color;
	var img;
	if(MenuObjects[index].isOpen)
	{		
		MenuObjects[index].image.src = (state)? "/images/menu_fselect.gif":"/images/menu_fselecton.gif";
	}
	else
	{
		if(state)
		{
			color = "#F3F3F3";
			img = "/images/menu_foff.gif";
		}
		else
		{
			color = "#DEDEDE"; 
			img = "/images/menu_fon.gif";
		}
		MenuObjects[index].css.background = color;
		MenuObjects[index].image.src = img
	}
}

function MenuGo(direction,value)
{
	if(MenuTimer != null)
	{
		clearTimeout(MenuTimer);
		MenuTimer = null;
		MenuFdown.css.top = -MENUARROWHEIGHT;
		MenuFup.css.top = MENUARROWHEIGHT;
	}

	if(value)
	{
		if(direction == 'D')	
			MenuGoAdd();
		else
			MenuGoSub();
	}
}

function MenuGoAdd()
{
	var t = parseInt(MenuBody.css.top) - MENUSTEP;
	if(t<=MenuTopOver)
	{
		t = MenuTopOver;
		MenuBody.css.top = t;
		MenuFdown.css.top = -MENUARROWHEIGHT;
		return;
	}
	MenuBody.css.top = t;
	t = parseInt(MenuFdown.css.top) + MENUARROWSTEP;
	if(t>MENUARROWHEIGHT) t = -MENUARROWHEIGHT;
	MenuFdown.css.top = t;
	MenuTimer = setTimeout("MenuGoAdd()",MENUTIMESTEP);
}

function MenuGoSub()
{
	var t = parseInt(MenuBody.css.top) + MENUSTEP;
	if(t>=0)
	{
		t = 0;
		MenuBody.css.top = t;
		MenuFup.css.top = MENUARROWHEIGHT;
		return;
	}
	MenuBody.css.top = t;
	t = parseInt(MenuFup.css.top) - MENUARROWSTEP;
	if(t<-MENUARROWHEIGHT) t = MENUARROWHEIGHT;
	MenuFup.css.top = t;
	MenuTimer = setTimeout("MenuGoSub()",MENUTIMESTEP);
}

function MenuShifter(parameter)
{
	var t = parseInt(menuBody.css.top) + parameter;
	if(t>0) t = 0;
	else if(t<MenuTopOver) t = MenuTopOver;
	
}

function MenuMakeObj(index)
{
	if (document.getElementById)
	{
	  	this.css = document.getElementById('m_voice__'+index).style;
	  	this.image = document.getElementById('m_img__'+index);
	}
	else if (document.all)
	{
		this.css = document.all['m_voice__'+index].style;
		this.image = document.all['m_img__'+index];
	}
	else if (document.layers)
	{
	   	this.css = document.layers['m_voice__'+index];
	   	this.image = document.layers['m_img__'+index];
	}
	
	this.isOpen = (index == MenuOpened);
	this.maxH = (MenuRowHeight*(Menu[index][1].length+1)) + 2;
	this.timer = null;
	return this;
}

function ToolRun()
{
	var h = parseInt(ToolObj.css.top);
	if(h == TOOLYSTOP)
	{
		if(ToolString == ToolObj.string)
		{
			ToolIsRunning = false;
			return;
		}
	}
	if(h == TOOLHEIGHT)
	{
		ToolObj.string = ToolString;
		if(ToolObj.document.layers)
		{
			ToolObj.document.write(ToolString);
			ToolObj.document.close();
		}
		else
		{
			ToolObj.document.innerHTML = ToolString;
		}
	}
	h -= 1;
	if(h == -TOOLHEIGHT)
	{
		if(ToolString == ToolObj.string)
		{
			ToolObj.css.top = TOOLHEIGHT;
			ToolIsRunning = false;
			return;
		}
		h = TOOLHEIGHT;
	}
	ToolObj.css.top = h;
	setTimeout('ToolRun()',TOOLTIMESTEP);
}

function Tool(who,stringa,state)
{
	if(state)
	{
		RollById(who,'/images/'+who+'_on.gif');
	}
	else
	{
		RollById(who,'/images/'+who+'.gif');
	}
	ToolString = unescape(stringa);
	if(!ToolIsRunning)
	{
		ToolIsRunning = true;
		ToolRun();
	}
}

function MakeObj(who)
{
	if (document.getElementById)
	{
	  	this.css = document.getElementById(who).style;
	  	this.document = document.getElementById(who);
	}
	else if (document.all)
	{
		this.css = document.all[who].style;
		this.document = document.all[who];
	}
	else if (document.layers)
	{
	   	this.css = document.layers[who];
	   	this.document = document.layers[who];
	}
	return this;
}

function init()
{
	MenuObjects = new Array(Menu.length);
	for(var i=0; i<Menu.length; i++)
	{
		MenuObjects[i] = new MenuMakeObj(i);
	}
	
	MenuFdown = new MakeObj('menuFdown');
	MenuFup = new MakeObj('menuFup');
	MenuBody = new MakeObj('menuBody');
}

function ToolInit()
{
	ToolObj = new MakeObj('infowind');
}