//******************************************************************************************************************************************************************************************************************************************************************
//																				   
//		
//										   
//Exemplo:
//			1) Chamar o Include no Head do documento
//			2) Chamar a função MontaMenu com os seus respectivos parâmetros
//			3) Chamar a função MostraMenu com os seu respectivos parâmetros
//
//			Obs: Não esquecer de chamar a função TempoMenu no MouseOver
//
//ATENÇÃO: Caso o parâmetro IMAGEMGUIA seja utilizado, chame a função MontaMenu no final do documento 
//
//<script language="JavaScript" src="Menu.js"></script>
//<script language=JavaScript>
//	MontaMenu("Menu1", 48, 15, Array("A", "B", "C"), Array("a.htm", "b.htm", "c.htm"), Array("blank", "", ""), Array("a", "b", "c"), 100, "E5BC74", "A07B44", "E5BC74", "FFFFFF", "vertical", 0, '');
//	MontaMenu("Menu1", 48, 15, Array("A", "B", "C"), Array("a.htm", "b.htm", "c.htm"), Array("blank", "", ""), Array("a", "b", "c"), 100, "E5BC74", "A07B44", "E5BC74", "FFFFFF", "vertical", 0, 'document.images.Img');
//
//<A href="." Onmouseover="MostraMenu(Menu1)" Onmouseout="TempoMenu()" OnClick="return false">Menu 1</A>
//
//******************************************************************************************************************************************************************************************************************************************************************

if(document.all){ns6=0;n=0;ie=1;fShow="visible";fHide="hidden";} //Variáveis usadas no IE
if(document.layers){ns6=0;n=1;ie=0;fShow="show";fHide="hide";} //Variáveis usadas no NE4
if(document.getElementById&&!document.all){ns6=1;n=0;ie=0;fShow="visible";fHide="hidden";} //Variáveis usadas no NE6

var a; //usada na função setTimeout
var Mostra;
var ItensMenu=new Array;
var ArrayImagemGuia=new Array; ////VETOR COM AS IMAGENS GUIAS DE CADA MENU;
var ArrayMenuTop=new Array; ////VETOR COM AS POSIÇÕES DO TOP
var ArrayMenuLeft=new Array; ////VETOR COM AS POSIÇÕES DO LEFT

//****************************************************
//Função que troca a cor do item do menu no MouseOver*
//****************************************************
function ChangeColor(s, nColor)
{
	var a
	if (ns6)
	{
		s.style.backgroundColor = nColor;
	}
	else
	{
		a = eval(s);
		a.bgColor = nColor;
	}
}

//******************************************************************************************
//Função que Monta o Menu																   *
//Parametros:																			   *
//			ID - Nome do Menu															   *
//			Top - Posição X do menu														   *
//			Left - Posição Y do menu													   *
//			ItensOn - Array contendo os textos dos itens do menu                           *
//			Links - Array contendo os links de cada item do menu						   *
//			Targets - Array contendo os targets de cada item do menu					   *
//			Titulos - Array contendo os textos da tag ALT de cada item do menu			   *
//			Width - Lagura do menu														   *
//			CorFundo - Cor de background do Menu										   *
//			CorMouseOver - Cor do item quando selecionado							   *
//			CorMouseOut - Cor do item quando perde o focus							   *
//			ForeColor - Cor da Letra													   *
//			Direcao - Se o menu vai crescer na Horizontal ou na Vertical				   *
//			Espacamento - Distância entre os itens do menu								   *
//			ImagemGuia - Id de uma imagem que o menu acompanhará no Left e no Top.		   *
//																						   *
//******************************************************************************************
function MontaMenu(Id, Top, Left, Itens, Links, Targets, Titulos, SubMenus, Width, CorFundo, CorMouseOver, CorMouseOut, ForeColor, Direcao, Espacamento, ImagemGuia)
{
	var i=0;
	var EventoOver='';	
	var TodosSubMenus='';	
	
	if (ImagemGuia!='')
	{
		Top=RetornaTop(ImagemGuia);
		Left=RetornaLeft(ImagemGuia);
	}
	
	for (i=0;i<SubMenus.length;i++)
	{
		if (SubMenus[i]!='')
		{
			TodosSubMenus+='SomeSubMenu(\'' + SubMenus[i] + '\');';
		}
	}

	if (n) //Se for NE monta a tabela contendo o menu
	{
		document.writeln('<LAYER id="'+Id+'" visibility=hide Top="'+Top+'" Left="'+Left+'" OnMouseOut="TempoMenu();" onmouseover="Mostra=false;clearTimeout();">');
		document.writeln('<TABLE border="0" width='+Width+' cellpadding="4" cellspacing="'+Espacamento+'">');
		if(Direcao=='horizontal'){document.writeln('<TR valign="middle">');}
		for (i=0;i<Itens.length;i++)
		{
			if (SubMenus[i]=='')
			{
				EventoOver=TodosSubMenus;
			}
			else
			{
				EventoOver=TodosSubMenus + 'MostraSubMenu(\'' + SubMenus[i] + '\');';
				Itens[i] = Itens[i];
			}
			if (Links[i]==''){Links[i]='JavaScript:Nothing();'}
			if (Direcao=='horizontal')
			{
				document.writeln('<TD valign="middle" bgcolor="#'+CorFundo+'"><nobr><ILAYER><LAYER onmouseover="Mostra=false;ChangeColor(this, \''+CorMouseOver+'\');' + EventoOver + '" onmouseout="ChangeColor(this, \''+CorMouseOut+'\');" width='+Width+'><A class=clsMenuItemNS Target="' + Targets[i] + '" title="'+Titulos[i]+'" href="'+Links[i]+'">'+Itens[i]+'</A><BR></LAYER></ILAYER></nobr></TD>');
			}
			else
			{
				document.writeln('<TR valign="middle"><TD valign="middle" bgcolor="#'+CorFundo+'"><nobr><ILAYER><LAYER onmouseover="Mostra=false;ChangeColor(this, \''+CorMouseOver+'\');' + EventoOver + '" onmouseout="ChangeColor(this, \''+CorMouseOut+'\');" width='+Width+'><A class=clsMenuItemNS Target="' + Targets[i] + '" title="'+Titulos[i]+'" href="'+Links[i]+'">'+Itens[i]+'</A><BR></LAYER></ILAYER></nobr></TD></TR>');
			}
		}
		if(Direcao=='horizontal'){document.writeln('</TR>');}
		document.writeln('</TABLE>');
		document.writeln('</LAYER>');
	}
	if (ie || ns6) //Se for IE monta a tabela contendo o menu
	{
		document.writeln('<div id="'+Id+'" style="position:absolute; visibility: hidden; width: '+Width+'; top: '+Top+'; left:'+Left+';" OnMouseOut="TempoMenu();" onmouseover="Mostra=false;clearTimeout();">');
		document.writeln('<table border="0" width='+Width+' cellpadding="4" cellspacing="'+Espacamento+'" bgcolor="#FFFFFF">');
		if(Direcao=='horizontal'){document.writeln('<TR>');}
		for (i=0;i<Itens.length;i++)
		{
			if (SubMenus[i]=='')
			{
				EventoOver=TodosSubMenus;
			}
			else
			{
				EventoOver=TodosSubMenus + 'MostraSubMenu(\'' + SubMenus[i] + '\');';
				Itens[i] = Itens[i];
			}
			if (Links[i]==''){Links[i]='JavaScript:Nothing();'}
			if (Direcao=='horizontal')
			{
				document.writeln('<td bgcolor="#'+CorFundo+'" onmouseover="Mostra=false;clearTimeout(a);ChangeColor(this, \''+CorMouseOver+'\');' + EventoOver + '" onmouseout="ChangeColor(this, \''+CorMouseOut+'\');" valign="middle"><nobr><FONT Color= "#' + ForeColor + '"><a class=clsMenuItemIE Target="' + Targets[i] + '" title="'+Titulos[i]+'" href="'+Links[i]+'" style="font: xx-small arial; font-size: 10; color: #'+ForeColor+'; text-decoration: none">'+Itens[i]+'</a></FONT></nobr><br></td>');
			}
			else
			{
				document.writeln('<tr><td bgcolor="#'+CorFundo+'" onmouseover="Mostra=false;clearTimeout(a);ChangeColor(this, \''+CorMouseOver+'\');' + EventoOver + '" onmouseout="ChangeColor(this, \''+CorMouseOut+'\');" valign="middle"><nobr><FONT Color= "#' + ForeColor + '"><a class=clsMenuItemIE Target="' + Targets[i] + '" title="'+Titulos[i]+'" href="'+Links[i]+'" style="font: xx-small Verdana; font-size: 10; color: #'+ForeColor+'; text-decoration: none">'+Itens[i]+'</a></FONT></nobr><br></td></tr>');
			}
		}
		if(Direcao=='horizontal'){document.writeln('</TR>');}
		document.writeln('</table>');
		document.writeln('</div>');
	}
	ItensMenu[ItensMenu.length] = Id;
	ArrayImagemGuia[ArrayImagemGuia.length] = ImagemGuia;
	ArrayMenuTop[ArrayMenuTop.length] = Top;
	ArrayMenuLeft[ArrayMenuLeft.length] = Left;
}

//************************************************
//Função que mostra o menu						 *
//Parametros:									 *
//			NomeMenu: Nome do menu a ser mostrado*
//************************************************
function MostraMenu(NomeDoMenu)
{
	
	if(n){NomeMenu=eval('document.'+NomeDoMenu);}
	if(ie){NomeMenu=eval(NomeDoMenu);}
	if (ns6){NomeMenu=document.getElementById(NomeDoMenu)}

	clearTimeout(a);
	Mostra = true;
	SomeMenu();
	Mostra = false;
	
	for (var i=0; i<ItensMenu.length; i++)
	{
		if (ItensMenu[i]==NomeMenu.id && ArrayImagemGuia[i]!='')
		{
			if(ie || ns6){NomeMenu.style.top=RetornaTop(ArrayImagemGuia[i]);NomeMenu.style.left=RetornaLeft(ArrayImagemGuia[i]);}
			if(n){NomeMenu.y=RetornaTop(ArrayImagemGuia[i]);NomeMenu.x=RetornaLeft(ArrayImagemGuia[i]);}
		}
		else
		{
			if (ItensMenu[i]==NomeMenu.id)
			{
				if(ie)
				{
					NomeMenu.style.top=ArrayMenuTop[i]+document.body.scrollTop;
					NomeMenu.style.left=ArrayMenuLeft[i]+document.body.scrollLeft;
				}
				if (n)
				{
					NomeMenu.y=ArrayMenuTop[i]+window.pageYOffset;
					NomeMenu.x=ArrayMenuLeft[i]+window.pageXOffset;
				}
				if (ns6)
				{
					NomeMenu.style.top=ArrayMenuTop[i]+window.pageYOffset;
					NomeMenu.style.left=ArrayMenuLeft[i]+window.pageXOffset;
				}
			}
		}
	}
	
	if(n){NomeMenu.visibility = 'show';}
	if(ie || ns6){NomeMenu.style.visibility = 'visible';}
	
}

//************************************************
//Função que mostra o SubMenu					 *
//Parametros:									 *
//			NomeMenu: Nome do menu a ser mostrado*
//************************************************
function MostraSubMenu(NomeDoMenu)
{

	if(n){NomeMenu=eval('document.'+NomeDoMenu);}
	if(ie){NomeMenu=eval(NomeDoMenu);}
	if (ns6){NomeMenu=document.getElementById(NomeDoMenu)}

	clearTimeout(a);
	SomeMenu();
	Mostra = false;
	
	for (var i=0; i<ItensMenu.length; i++)
	{
		if (ItensMenu[i]==NomeMenu.id && ArrayImagemGuia[i]!='')
		{
			if(ie || ns6){NomeMenu.style.top=RetornaTop(ArrayImagemGuia[i]);NomeMenu.style.left=RetornaLeft(ArrayImagemGuia[i]);}
			if(n){NomeMenu.y=RetornaTop(ArrayImagemGuia[i]);NomeMenu.x=RetornaLeft(ArrayImagemGuia[i]);}
		}
		else
		{
			if (ItensMenu[i]==NomeMenu.id)
			{
				if(ie)
				{
					NomeMenu.style.top=ArrayMenuTop[i]+document.body.scrollTop;
					NomeMenu.style.left=ArrayMenuLeft[i]+document.body.scrollLeft;
				}
				if (n)
				{
					NomeMenu.y=ArrayMenuTop[i]+window.pageYOffset;
					NomeMenu.x=ArrayMenuLeft[i]+window.pageXOffset;
				}
				if (ns6)
				{
					NomeMenu.style.top=ArrayMenuTop[i]+window.pageYOffset;
					NomeMenu.style.left=ArrayMenuLeft[i]+window.pageXOffset;
				}
			}
		}
	}
	
	if(n){NomeMenu.visibility = 'show';}
	if(ie || ns6){NomeMenu.style.visibility = 'visible';}
	
}

//************************************
//Função que some com todos os menus *
//************************************
function SomeMenu()
{
	var i=0;
	var obj;
	if (Mostra == true)
	{
		for (i=0;i<ItensMenu.length;i++)
		{
			if(n){obj=eval('document.'+ItensMenu[i]);}
			if(ie){obj=eval(ItensMenu[i]);}
			if (ns6){obj=document.getElementById(ItensMenu[i])}
			if(n){obj.visibility='hide';}
			if(ie || ns6){obj.style.visibility='hidden';}
		}
	}
}

//*************************************************************
//Função que informa o delay para a chamada da função sub menu*
//*************************************************************
function TempoMenu()
{
	Mostra=true;
	a=setTimeout('SomeMenu()', 400);
}

//************************************
//Função que some com o submenu      *
//************************************
function SomeSubMenu(SubMenu)
{
	var i=0;
	var obj;
	if(n){obj=eval('document.'+SubMenu);}
	if(ie){obj=eval(SubMenu);}
	if(ns6){obj=document.getElementById(SubMenu);}
	if(n){obj.visibility='hide';}
	if(ie || ns6){obj.style.visibility='hidden';}
}

//**************************************************************************
//Função que retorna um valor para o topo referente a posicao de uma imagem*
//**************************************************************************
function RetornaTop(nImg)
{
	var nObj = eval(nImg);
	var nTop
	var nTop = 0;
	if (document.all)
	{
		nTop += nObj.offsetHeight
		while (nObj.offsetParent.tagName != 'BODY') 
		{
			nTop += nObj.offsetTop;
			nObj = nObj.offsetParent;
		}		
		nTop += nObj.offsetTop;
		return (parseInt(nTop));
	}
	if (document.layers)
	{
		return parseInt(nObj.y + nObj.height);
	}
}

//******************************************************************************
//Função que retorna um valor a esquerda referente a posicao de uma imagem     *
//******************************************************************************
function RetornaLeft(nImg)
{
	var nObj = eval(nImg);
	var nLeft
	nLeft = 0;
	if (document.all)
	{
		while (nObj.offsetParent.tagName != 'BODY') 
		{
			nLeft += nObj.offsetLeft;
			nObj = nObj.offsetParent;
		}		
		nLeft += nObj.offsetLeft;
		return (nLeft);
	}
	if (document.layers)
	{
		return (nObj.x);
	}
}

function Nothing()
{

}