function getStato( objId )
{
	if (objId == null)
		return null;
	else
		return objId.slice( objId.indexOf(KeyStartCode) + 1 , objId.length );
}

function getStatoAt( code , level)
{
	var code1;

	if (code == null)
		return null;
	else
	{	
		code = code.slice( code.indexOf(KeyStartCode) + 1 , code.length );
		code_split = code.split( KeyMenuLevel );
		for (j=0; j<=level; j++)
		{
			if ( j==0 )
				code1 = code_split[j];
			else
				code1 = code1 + KeyMenuLevel + code_split[j];
		}
		return code1;
	}
}

function getLevel( code )
{
	var code_split;

	if (code == null)
		return 0;
	else
		return (code.split( KeyMenuLevel )).length;
}

function Compare ( nextstato, pos )
{
	if ( getStatoAt( stato, pos) == getStatoAt( nextstato, pos))
		return true;
	else
		return false;
}

function SelezionaBarra(obj, color)
{
	obj.style.backgroundColor = color;
}

function DeSelezionaBarra(obj)
{
	obj.style.backgroundColor = "transparent";
}

function Seleziona(obj, color)
{
	obj.style.color = color;
}

function DeSeleziona(obj)
{
	obj.style.color = MenuColor0;
}

function ClickOnBarra(obj)
{
	subMenu = document.all( CONST_Nome_Menu	+ getStatoAt(stato, 0) + KeySubMenu)
	if ( subMenu != null )
		subMenu.style.display = "none";

	subMenu = document.all( CONST_Nome_Menu	+ getStato(obj.id) + KeySubMenu)
	if ( subMenu != null )
	{
		if ( subMenu.style.display == "" )
			subMenu.style.display = "none";
		else
			subMenu.style.display = "";
	}

	setStato( getStato(obj.id) );
}

function ClickOnLink(obj)
{
	var IMG;

	subMenu = document.all( CONST_Nome_Menu	+ getStato(obj.id) + KeySubMenu)
	if ( subMenu != null )
	{
		// Perchè viene usato il colore in questa IF ?????
		if ( subMenu.style.display == "" && obj.style.color.toUpperCase() == MenuColor2.toUpperCase() )
		{
			subMenu.style.display = "none";
			IMG = document.all("img" +  getStato(obj.id));
			if (IMG != null)
				document.all("img" +  getStato(obj.id)).src="images/OggettiGraficiSistema/Interfaccia/NodoChiuso.gif";
		}
		else
		{
			subMenu.style.display = "";
			IMG = document.all("img" +  getStato(obj.id));
			if (IMG != null)
				document.all("img" +  getStato(obj.id)).src="images/OggettiGraficiSistema/Interfaccia/NodoAperto.gif";
		}
	}

	setStato( getStato(obj.id) );
}

function setStato(nextstato)
{
	var k = 0;
	var Oggetto;
	var IMG;
	
	
	Oggetto = document.all( "AutoHiddenBanner" );
	if (Oggetto != null)
	{
		if(nextstato == 1)
			AutoHiddenBanner.style.display = '';
		else
			AutoHiddenBanner.style.display = 'none';
	}
	
	// GESTIONE DELLA BARRA
	Oggetto = document.all( CONST_Nome_BarraMenu_Voce + getStatoAt( stato , 0) );			// OK
	if ( Oggetto != null )	DeSelezionaBarra ( Oggetto );

	Oggetto = document.all( CONST_Nome_BarraMenu_Voce + getStatoAt( nextstato , 0) );		// OK
	if ( Oggetto != null )	SelezionaBarra ( Oggetto, MenuBarraColor2 );

	k = 1;

	// DECOLORA MENU
	
	while ( k < getLevel(stato) )
	{
		NomeOggetto1 = CONST_Nome_Menu + getStatoAt( stato, k );
		Oggetto1 = document.all(NomeOggetto1 );
		
		if ( Oggetto1 != null )	DeSeleziona( Oggetto1 );
		k++;
	}

	// COLORA KRNL_FRONT_MAPPA
	
	k = 1;

	while ( k < getLevel(nextstato) )
	{
		NomeOggetto1 = CONST_Nome_Menu + getStatoAt( nextstato, k );
		Oggetto1 = document.all(NomeOggetto1);
		if ( Oggetto1 != null )	Seleziona( Oggetto1 , MenuColor2 );
		
		k++;
	}

	// NASCONDE IL VACCHIO CANALE CANALE
	if (getStatoAt( nextstato , 0) != getStatoAt( stato , 0))
	{
		NomeOggetto1 = CONST_Nome_Menu + getStatoAt( stato, 0 );
		Oggetto1 = document.all(NomeOggetto1 + KeySubMenu);
		if ( Oggetto1 != null )	
			Oggetto1.style.display = "none";
	}
	
	
	// SROTOLA MENU
	
	k = 0;

	while ( k < (getLevel(nextstato) - 1))
	{
		NomeOggetto1 = CONST_Nome_Menu + getStatoAt( nextstato, k );
		Oggetto1 = document.all(NomeOggetto1 + KeySubMenu);
		if ( Oggetto1 != null )	
		{
			Oggetto1.style.display = "";
			IMG = document.all("img" +  getStatoAt( nextstato, k ));
			if (IMG != null)
				document.all("img" +  getStatoAt( nextstato, k )).src="images/OggettiGraficiSistema/Interfaccia/NodoAperto.gif";
		}
		k++;
	}	
	
	NomeOggetto1 = CONST_Nome_Menu + getStatoAt( nextstato, 0 );
	Oggetto1 = document.all(NomeOggetto1 + KeySubMenu);
	if ( Oggetto1 != null )	
			Oggetto1.style.display = "";
	
	stato = nextstato;
}

function OverBarra( obj, color )				// OK
{
	if ( !Compare ( getStato(obj.id) , 0) )
		SelezionaBarra( obj, color );
}

function OutBarra( obj )						// OK
{
	if ( !Compare ( getStato(obj.id) , 0) )
		DeSelezionaBarra( obj );
}

function OverMenu( obj, color )
{
	if ( obj.style.color.toUpperCase() != MenuColor2.toUpperCase() )
		Seleziona( obj, color );
}

function OutMenu( obj )
{
	if ( obj.style.color.toUpperCase() != MenuColor2.toUpperCase() )
		DeSeleziona( obj );
}


function HideDiagnostic()
{
	if ( DiagnosticBar != null )
	{
		DiagnosticBar.innerText = "";
		DiagnosticBar.style.display = "none";
	}

	if ( CopyrightBar != null )
		CopyrightBar.style.display = "";
}

function ShowDiagnostic(testo)
{
	if ( DiagnosticBar != null )
	{
		DiagnosticBar.innerText = testo;
		DiagnosticBar.style.display = "";
	}
	
	if ( CopyrightBar != null )
		CopyrightBar.style.display = "none";
}