
/* Constantes */
fontFamily = "Verdana";
fontSize = "11";
topFamilias	= 99;
alturaFamilia = 18;
larguraFamilia = 10;
offSetHorizontal = 2;
corON = "#E7EEF1";
corOFF = "#E7EEF1";


sAgent = navigator.userAgent;
bIsMac = sAgent.indexOf("Mac") > -1;
bIsIE = sAgent.indexOf("MSIE") > -1;
bIsIE4 = sAgent.indexOf("IE 4") > -1;
bIsIE5 = sAgent.indexOf("IE 5")  > -1;
bIsIE6 = sAgent.indexOf("IE 6")  > -1;
bIsNav = sAgent.indexOf("Mozilla") > -1 && !bIsIE;
bDoesAll = (bIsIE4 || bIsIE5 || bIsIE6) && !bIsMac;


if(bDoesAll){

	for(a = 0; a < Menu.NumLinhas; a++){
		objeto = Menu.Linhas[a];
		Ajuste(objeto,0,Menu.Linhas[a].Nome);
		VerificaBorder(objeto,0);
		CarregaObjeto(objeto,0,0);
			
		for(b = 0; b < Menu.Linhas[a].NumFamilias; b++){
			objeto = Menu.Linhas[a].Familias[b];
			Ajuste(objeto,1,Menu.Linhas[a].Nome);
			VerificaBorder(objeto,1);
			CarregaObjeto(objeto,1,1);
						
			for(c = 0; c < Menu.Linhas[a].Familias[b].NumSubFamilias; c++){
				objeto = Menu.Linhas[a].Familias[b].SubFamilias[c];
				Ajuste(objeto,2,Menu.Linhas[a].Nome);
				VerificaBorder(objeto,2);
				CarregaObjeto(objeto,2,2);
				
				for(d = 0; d < Menu.Linhas[a].Familias[b].SubFamilias[c].NumClasses; d++){
					objeto = Menu.Linhas[a].Familias[b].SubFamilias[c].Classes[d];
					Ajuste(objeto,3,Menu.Linhas[a].Nome);
					VerificaBorder(objeto,3);
					CarregaObjeto(objeto,3,3);
					
					for(e = 0; e < Menu.Linhas[a].Familias[b].SubFamilias[c].Classes[d].NumProdutos; e++){
						objeto = Menu.Linhas[a].Familias[b].SubFamilias[c].Classes[d].Produtos[e];
						CarregaObjeto(objeto,4,4);
					}	
				}
				
				for(f = 0; f < Menu.Linhas[a].Familias[b].SubFamilias[c].NumProdutos; f++){
					objeto = Menu.Linhas[a].Familias[b].SubFamilias[c].Produtos[f];
					CarregaObjeto(objeto,4,3);
				}	
			}
			
			for(g = 0; g < Menu.Linhas[a].Familias[b].NumProdutos; g++){
				objeto = Menu.Linhas[a].Familias[b].Produtos[g];
				CarregaObjeto(objeto,4,2);
			}	
		}
		
		for(h = 0; h < Menu.Linhas[a].NumProdutos; h++){
			objeto = Menu.Linhas[a].Produtos[h];
			CarregaObjeto(objeto,4,1);
		}	
	}
}


function CarregaObjeto(obj,tab,nivel) {
	switch(tab) 
	{
		case 0:{break;}
		case 1:{
			nome = "Familia" + obj.Codigo
			if((obj.NumSubFamilias > 0)||(obj.NumProdutos > 0)) bSubItem = true; else bSubItem = false;
			ImprimeItem(tab,obj.idLinha,obj.idFamilia,obj.idSubFamilia,obj.idClasse,obj.idProduto,nome,obj.Nome,obj.Left,obj.Top,obj.Height,obj.Width,"0",bSubItem,obj.Link);
			break;
		}
		case 2:{
			nome = "SubFamilia" + obj.Codigo
			if((obj.NumClasses > 0)||(obj.NumProdutos > 0)) bSubItem = true; else bSubItem = false;
			ImprimeItem(tab,obj.idLinha,obj.idFamilia,obj.idSubFamilia,obj.idClasse,obj.idProduto,nome,obj.Nome,obj.Left,obj.Top,obj.Height,obj.Width,"1",bSubItem,obj.Link);
			break;
		}
		case 3:{
			nome = "Classe" + obj.Codigo
			if(obj.NumProdutos > 0) bSubItem = true; else bSubItem = false;
			ImprimeItem(tab,obj.idLinha,obj.idFamilia,obj.idSubFamilia,obj.idClasse,obj.idProduto,nome,obj.Nome,obj.Left,obj.Top,obj.Height,obj.Width,"2",bSubItem,obj.Link);
			break;
		}
		case 4:{
			nome = "Produto" + obj.Codigo
			bSubItem = false;
			ImprimeItem(tab,obj.idLinha,obj.idFamilia,obj.idSubFamilia,obj.idClasse,obj.idProduto,nome,obj.Nome,obj.Left,obj.Top,obj.Height,obj.Width,nivel-1,bSubItem,obj.Link);
			break;
		}
	}
}

function VerificaBorder(objeto,tab)
{
	flagBorder = false;
	switch(tab) {
		case 0:{offSetBorderTop = 0; contadorCaso = objeto.NumFamilias; arrayCaso = objeto.Familias; break;}
		case 1:{offSetBorderTop = 20; contadorCaso = objeto.NumSubFamilias; arrayCaso = objeto.SubFamilias; break;}
		case 2:{offSetBorderTop = 20; contadorCaso = objeto.NumClasses; arrayCaso = objeto.Classes; break;}
		case 3:{offSetBorderTop = 20; contadorCaso = 0; arrayCaso = null; break;}
	}
	
	if(contadorCaso > 0){
		objetoInicio	= arrayCaso[0];
		objetoFim		= arrayCaso[contadorCaso - 1];
		flagBorder		= true;				
	}
	if(objeto.NumProdutos > 0){
		if(!flagBorder)
			objetoInicio = objeto.Produtos[0];
		objetoFim = objeto.Produtos[objeto.NumProdutos - 1];
		flagBorder = true;				
	}
	
	if(flagBorder){
		bTop	= parseInt(objetoInicio.Top,10) - offSetBorderTop;
		bLeft	= parseInt(objetoInicio.Left,10) - 20;
		bHeight = parseInt(objetoFim.Top,10) + parseInt(objetoFim.Height,10) + 20 - parseInt(bTop,10);
		bWidth	= parseInt(objetoInicio.Width,10) + 40;
	}
}

function mostra(){
	for(var f=0;f <= (document.forms.length-1);f++){
		for(var e=0;e <= (document.forms[f].elements.length-1);e++){	
			if(document.forms[f].elements[e].type=="select-one" || document.forms[f].elements[e].type=="select-multiple" ) document.forms[f].elements[e].style.visibility="visible";}}
}
function esconde(){
	for(var f=0;f <= (document.forms.length-1);f++){
		for(var e=0;e <= (document.forms[f].elements.length-1);e++){	
			if(document.forms[f].elements[e].type=="select-one" || document.forms[f].elements[e].type=="select-multiple" ) document.forms[f].elements[e].style.visibility="hidden";}}
	}
function ImprimeItem(tab,idLinha,idFamilia,idSubFamilia,idClasse,idProduto,sId,sNome,iLeft,iTop,iHeight,iWidth,iZIndex,bSubItem,sLink)
{
	leftImage = parseInt(iWidth-12,10);
	espacamentoTexto = "&nbsp;";
	strFun = "SubItem(" + idLinha + "," + idFamilia + "," + idSubFamilia + "," + idClasse + "," + idProduto + ")";
	if(document.all)
	{
		document.write("<div id='" + nome + "' style='cursor: hand; font-size: " + fontSize + "px; position: absolute; visibility: hidden; background-color: " + corOFF + "; width: " + iWidth + "px; border-width: 1px; border-style: solid; border-color: #999999; height: " + iHeight + "px; z-index: " + parseInt(parseInt(iZIndex,10)+1,10) + "; left: " + iLeft + "px; top: " + iTop + "px;' onMouseOver='" + strFun + ";esconde();' onmouseout='mostra();' onClick=Link('" + sLink + "')><font face='" + fontFamily + "' color='#666666'>" + espacamentoTexto + sNome + "</font>");
		if(bSubItem)
		{
			document.write("<img src='/img/mn_seta.gif' style='position: absolute; left: " + leftImage + "px; top: " + parseInt((iHeight/2)-5,10) + "px;'>");
		}
		document.write("</div>");
		
	}
	else if(document.layers)
	{
		strLayer = "<layer id='" + nome + "' left='" + iLeft + "' top='" + iTop + "' visibility='" + GetVisibility(false) + "' onMouseOver=" + strFun + " bgcolor='" + corOFF + "' style='width: " + iWidth + "px; border-width: 1px; font-size: " + fontSize + "px; z-index: " + parseInt(parseInt(iZIndex,10)+1,10) + ";'><font face='" + fontFamily + "' color='#666666'>&nbsp;" + sNome + "</font>";
		if(bSubItem)
			strLayer = strLayer + "<layer left='" + parseInt(iWidth-10,10) + "' top='" + parseInt((iHeight/2)-5,10) + "'><img src='/img/mn_seta.gif' border='0'></layer>";
		strLayer = strLayer + "</layer>";
		document.write(strLayer);
	}	
}

function Ajuste(objeto,tab,Linha)
{
	flagAltera = false;
	widthAtual = larguraFamilia;
	maiorWidth = MaiorLargura(objeto,tab);
	if(maiorWidth > widthAtual)
	{
		AjusteLargura(objeto,tab,maiorWidth);
		AjustePosicao(objeto,tab,maiorWidth - widthAtual);
	}
}

function MaiorLargura(objeto,tab)
{
	maiorWidth = 0;
	
	switch(tab) {
		case 0:{iMax = objeto.NumFamilias; iArray = objeto.Familias; break;}
		case 1:{iMax = objeto.NumSubFamilias; iArray = objeto.SubFamilias; break;}
		case 2:{iMax = objeto.NumClasses; iArray = objeto.Classes; break;}
		case 3:{iMax = 0; break;}
	}
	
	for(iMaiorLargura = 0; iMaiorLargura < iMax; iMaiorLargura++){
		if(iArray[iMaiorLargura].Width > maiorWidth)
			maiorWidth = iArray[iMaiorLargura].Width;
	}
	for(iMaiorLargura = 0; iMaiorLargura < objeto.NumProdutos; iMaiorLargura++){
		if(objeto.Produtos[iMaiorLargura].Width > maiorWidth)
			maiorWidth = objeto.Produtos[iMaiorLargura].Width;
	}
	return maiorWidth;
}

function AjusteLargura(objeto,tab,maiorWidth)
{
	switch(tab) {
		case 0:{iMax = objeto.NumFamilias; iArray = objeto.Familias; break;}
		case 1:{iMax = objeto.NumSubFamilias; iArray = objeto.SubFamilias; break;}
		case 2:{iMax = objeto.NumClasses; iArray = objeto.Classes; break;}
		case 3:{iMax = 0; break;}
	}
	for(iAjusteLargura = 0; iAjusteLargura < iMax; iAjusteLargura++)
		iArray[iAjusteLargura].Width = maiorWidth;
	for(iAjusteLargura = 0; iAjusteLargura < objeto.NumProdutos; iAjusteLargura++)
		objeto.Produtos[iAjusteLargura].Width = maiorWidth;
}

function AjustePosicao(objeto,tab,offSet)
{
	switch(tab)
	{
		case 0:{
			for(iFamilias = 0; iFamilias < objeto.NumFamilias; iFamilias++)
			{
				leftSubFamilias = parseInt(objeto.Familias[iFamilias].Left,10) + parseInt(objeto.Familias[iFamilias].Width,10) - parseInt(offSetHorizontal,10);
				for(iSubFamilias = 0; iSubFamilias < objeto.Familias[iFamilias].NumSubFamilias; iSubFamilias++)
				{
					objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Left = parseInt(leftSubFamilias,10);
					leftClasses = parseInt(leftSubFamilias,10) + parseInt(objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Width,10) - parseInt(offSetHorizontal,10);
					for(iClasses = 0; iClasses < objeto.Familias[iFamilias].SubFamilias[iSubFamilias].NumClasses; iClasses++)
					{
						objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Classes[iClasses].Left = parseInt(leftClasses,10);
						leftProdutos = parseInt(leftClasses,10) + parseInt(objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Classes[iClasses].Width,10) - parseInt(offSetHorizontal,10);
						for(iProdutos = 0; iProdutos < objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Classes[iClasses].NumProdutos; iProdutos++)
							objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Classes[iClasses].Produtos[iProdutos].Left = parseInt(leftProdutos,10);
					}
					for(iProdutos = 0; iProdutos < objeto.Familias[iFamilias].SubFamilias[iSubFamilias].NumProdutos; iProdutos++)
						objeto.Familias[iFamilias].SubFamilias[iSubFamilias].Produtos[iProdutos].Left = parseInt(leftClasses,10);
				}
				for(iProdutos = 0; iProdutos < objeto.Familias[iFamilias].NumProdutos; iProdutos++)
					objeto.Familias[iFamilias].Produtos[iProdutos].Left = parseInt(leftSubFamilias,10);
			}
			break;
		}
		case 1:{
			for(iSubFamilias = 0; iSubFamilias < objeto.NumSubFamilias; iSubFamilias++)
			{
				leftClasses = parseInt(objeto.SubFamilias[iSubFamilias].Left,10) + parseInt(objeto.SubFamilias[iSubFamilias].Width,10) - parseInt(offSetHorizontal,10);
				for(iClasses = 0; iClasses < objeto.SubFamilias[iSubFamilias].NumClasses; iClasses++)
				{
					objeto.SubFamilias[iSubFamilias].Classes[iClasses].Left = parseInt(leftClasses,10);
					leftProdutos = parseInt(leftClasses,10) + parseInt(objeto.SubFamilias[iSubFamilias].Classes[iClasses].Width,10) - parseInt(offSetHorizontal,10);
					for(iProdutos = 0; iProdutos < objeto.SubFamilias[iSubFamilias].Classes[iClasses].NumProdutos; iProdutos++)
						objeto.SubFamilias[iSubFamilias].Classes[iClasses].Produtos[iProdutos].Left = parseInt(leftProdutos,10);
				}
				for(iProdutos = 0; iProdutos < objeto.SubFamilias[iSubFamilias].NumProdutos; iProdutos++)
					objeto.SubFamilias[iSubFamilias].Produtos[iProdutos].Left = parseInt(leftClasses,10);
			}
			break;
		}
		case 2:{
			for(iClasses = 0; iClasses < objeto.NumClasses; iClasses++)
			{
				leftProdutos = parseInt(objeto.Classes[iClasses].Left,10) + parseInt(objeto.Classes[iClasses].Width,10) - parseInt(offSetHorizontal,10);
				for(iProdutos = 0; iProdutos < objeto.Classes[iClasses].NumProdutos; iProdutos++)
					objeto.Classes[iClasses].Produtos[iProdutos].Left = parseInt(leftProdutos,10);
			}
			break;
		}
	}
}

function Border()
{
	HideChild(Menu,-1);
}

function Link(URL)
{
	self.location.href = URL;
}

function SubItem(idLinha,idFamilia,idSubFamilia,idClasse,idProduto)
{
	aObjetoProduto = null;
	teste = "";
	if(idLinha!=-1){
		aObjetoPai		= Menu;
		aObjeto			= Menu.Linhas[idLinha]; 
		tabPai			= -1;
		tab				= 0;
	}
	if(idFamilia!=-1){
		aObjetoPai		= Menu.Linhas[idLinha];
		aObjeto			= Menu.Linhas[idLinha].Familias[idFamilia]; 
		tabPai			= 0;
		tab				= 1;
	}
	if(idSubFamilia!=-1){
		aObjetoPai		= Menu.Linhas[idLinha].Familias[idFamilia];
		aObjeto			= Menu.Linhas[idLinha].Familias[idFamilia].SubFamilias[idSubFamilia]; 
		tabPai			= 1;
		tab				= 2;
	}
	if(idClasse!=-1){
		aObjetoPai		= Menu.Linhas[idLinha].Familias[idFamilia].SubFamilias[idSubFamilia];
		aObjeto			= Menu.Linhas[idLinha].Familias[idFamilia].SubFamilias[idSubFamilia].Classes[idClasse]; 
		tabPai			= 2;
		tab				= 3;
	}
	if(idProduto!=-1){
		aObjetoPai	= aObjeto;
		aObjeto		= aObjetoPai.Produtos[idProduto]; 
		tabPai		= tab;
		tab			= 4;
	}

	SetColor(aObjeto,tab);
	HideChild(aObjetoPai,tabPai,0);
	ShowChild(aObjeto,tab);
}

function Item(sItem)
{
	aLinha = null;
	flag = false;
	for(iItem = 0; iItem < Menu.NumLinhas; iItem++){
		if(Menu.Linhas[iItem].Nome == sItem)
		{
			ShowChild(Menu.Linhas[iItem],0);
			HideChild(Menu,-1,iItem);
			flag = true;
		}
	}
	if(!flag)
		HideChild(Menu,-1,iItem + 1);
}
function SetColor(objeto,tab,caso)
{
	if(tab!=0)
	{
		switch(tab){
			case 1:{sPrefixo = "Familia"; break;}
			case 2:{sPrefixo = "SubFamilia"; break;}
			case 3:{sPrefixo = "Classe"; break;}
			case 4:{sPrefixo = "Produto"; break;}
		}
		if(caso) cor = corON; else cor = corOFF;
		if(document.all) {
			//alert(sPrefixo + objeto.Codigo);
			//document.all[sPrefixo + objeto.Codigo].style.backgroundColor = cor;
		} else if(document.layers)
		{
			objLayer = eval("document.layers." + sPrefixo + objeto.Codigo);
			objLayer.bgColor = cor;
		}
	}
}

function SetBorder(objeto,tab,caso){
	switch(tab) {
		case 0:{sPrefixo = "Linha"; break;}
		case 1:{sPrefixo = "Familia"; break;}
		case 2:{sPrefixo = "SubFamilia"; break;}
		case 3:{sPrefixo = "Classe"; break;}
		case 4:{sPrefixo = "Produto"; break;}
	}
	if(caso) visibility = GetVisibility(true); else visibility = GetVisibility(false);
	if(document.all){
		if(document.all["Border" + sPrefixo + objeto.Codigo])
			document.all["Border" + sPrefixo + objeto.Codigo].style.visibility = visibility;
	}
	else if(document.layers){
		objLayer = eval("document.layers.Border" + sPrefixo + objeto.Codigo);
		if(objLayer) objLayer.visibility = visibility;
	}
}

function ShowChild(aArray,iTipo)
{
	flag = true;
	if(aArray!=null)
	{
		switch(iTipo) {
			case 0:{
				sPrefixo = "Familia";
				aObjetoCaso = aArray.Familias;
				iIndiceCaso = aArray.NumFamilias;
				break;}
			case 1:{
				sPrefixo = "SubFamilia";
				aObjetoCaso = aArray.SubFamilias;
				iIndiceCaso = aArray.NumSubFamilias;
				break;}
			case 2:{
				sPrefixo = "Classe";
				aObjetoCaso = aArray.Classes;
				iIndiceCaso = aArray.NumClasses;
				break;}
			case 3:{
				sPrefixo = "Produto";
				aObjetoCaso = aArray.Produtos;
				iIndiceCaso = aArray.NumProdutos;
				break;}
			case 4:{
				sPrefixo = "";
				aObjetoCaso = null;
				iIndiceCaso = 0;
				break;}
			default:{
				flag = false;
			}
		}
	
		if(flag)
		{
			for(iCaso = 0; iCaso < iIndiceCaso; iCaso++)
			{
				if(document.all)
				{
					document.all[sPrefixo + aObjetoCaso[iCaso].Codigo].style.visibility = "visible";
				}
				else if(document.layers)
				{
					objLayer = eval("document.layers." + sPrefixo + aObjetoCaso[iCaso].Codigo);
					objLayer.visibility = "show";
				}
			}
			if(iTipo != 4){
				for(iProduto = 0; iProduto < aArray.NumProdutos; iProduto++)
				{
					if(document.all)
						document.all["Produto" + aArray.Produtos[iProduto].Codigo].style.visibility = "visible";
					else if(document.layers)
					{
						objLayer = eval("document.layers.Produto" + aArray.Produtos[iProduto].Codigo);
						objLayer.visibility = "show";
					}
				}
			}
		}

		SetColor(aArray,iTipo,true);
		SetBorder(aArray,iTipo,true);
	}	
}

function HideChild(aObjeto,tab,indiceEscolhido)
{
	switch(tab) {
		case -1:{
			for(xIndice = 0; xIndice < aObjeto.NumLinhas; xIndice++)
			{
				if(indiceEscolhido != xIndice)
				{
					SetBorder(aObjeto.Linhas[xIndice],0,false);
					for(aIndice = 0; aIndice < aObjeto.Linhas[xIndice].NumFamilias; aIndice++)
					{
						SetColor(aObjeto.Linhas[xIndice].Familias[aIndice],1,false);
						SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice],1,false);
						HideItem("Familia" + aObjeto.Linhas[xIndice].Familias[aIndice].Codigo);
						for(bIndice = 0; bIndice < aObjeto.Linhas[xIndice].Familias[aIndice].NumSubFamilias; bIndice++)
						{
							SetColor(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice],2,false);
							SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice],2,false);
							HideItem("SubFamilia" + aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Codigo);
							for(cIndice = 0; cIndice < aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].NumClasses; cIndice++)
							{
								SetColor(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice],3,false);
								SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice],3,false);
								HideItem("Classe" + aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Codigo);
								
								for(dIndice = 0; dIndice < aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].NumProdutos; dIndice++){
									SetColor(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice],4,false);
									SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice],4,false);
									HideItem("Produto" + aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice].Codigo);
								}
							}
							for(cIndice = 0; cIndice < aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].NumProdutos; cIndice++)
							{
								SetColor(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice],4,false);
								SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice],4,false);
								HideItem("Produto" + aObjeto.Linhas[xIndice].Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice].Codigo);
							}
						}
						for(bIndice = 0; bIndice < aObjeto.Linhas[xIndice].Familias[aIndice].NumProdutos; bIndice++)
						{
							SetColor(aObjeto.Linhas[xIndice].Familias[aIndice].Produtos[bIndice],4,false);
							SetBorder(aObjeto.Linhas[xIndice].Familias[aIndice].Produtos[bIndice],4,false);
							HideItem("Produto" + aObjeto.Linhas[xIndice].Familias[aIndice].Produtos[bIndice].Codigo);
						}
					}
					for(aIndice = 0; aIndice < aObjeto.Linhas[xIndice].NumProdutos; aIndice++)
					{
						SetColor(aObjeto.Linhas[xIndice].Produtos[aIndice],4,false);
						SetBorder(aObjeto.Linhas[xIndice].Produtos[aIndice],4,false);
						HideItem("Produto" + aObjeto.Linhas[xIndice].Produtos[aIndice].Codigo);
					}
				}
				
			}
			break;
		}
		case 0:
		{
			for(aIndice = 0; aIndice < aObjeto.NumFamilias; aIndice++)
			{
				SetColor(aObjeto.Familias[aIndice],1,false);
				SetBorder(aObjeto.Familias[aIndice],1,false);
				for(bIndice = 0; bIndice < aObjeto.Familias[aIndice].NumSubFamilias; bIndice++)
				{
					SetColor(aObjeto.Familias[aIndice].SubFamilias[bIndice],2,false);
					SetBorder(aObjeto.Familias[aIndice].SubFamilias[bIndice],2,false);
					HideItem("SubFamilia" + aObjeto.Familias[aIndice].SubFamilias[bIndice].Codigo);
					for(cIndice = 0; cIndice < aObjeto.Familias[aIndice].SubFamilias[bIndice].NumClasses; cIndice++)
					{
						SetColor(aObjeto.Familias[aIndice].SubFamilias[bIndice].Classe[cIndice],3,false);
						SetBorder(aObjeto.Familias[aIndice].SubFamilias[bIndice].Classe[cIndice],3,false);
						HideItem("Classe" + aObjeto.Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Codigo);
						for(dIndice = 0; dIndice < aObjeto.Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].NumProdutos; dIndice++)
						{
							SetColor(aObjeto.Familias[aIndice].SubFamilias[bIndice].Classe[cIndice].Produtos[dIndice],1,false);
							SetBorder(aObjeto.Familias[aIndice].SubFamilias[bIndice].Classe[cIndice].Produtos[dIndice],1,false);
							HideItem("Produto" + aObjeto.Familias[aIndice].SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice].Codigo);
						}
					}
					for(cIndice = 0; cIndice < aObjeto.Familias[aIndice].SubFamilias[bIndice].NumProdutos; cIndice++)
					{
						SetColor(aObjeto.Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice],4,false);
						SetBorder(aObjeto.Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice],4,false);
						HideItem("Produto" + aObjeto.Familias[aIndice].SubFamilias[bIndice].Produtos[cIndice].Codigo);
					}
				}
				for(bIndice = 0; bIndice < aObjeto.Familias[aIndice].NumProdutos; bIndice++)
				{
					SetColor(aObjeto.Familias[aIndice].Produtos[bIndice],4,false);
					SetBorder(aObjeto.Familias[aIndice].Produtos[bIndice],4,false);
					HideItem("Produto" + aObjeto.Familias[aIndice].Produtos[bIndice].Codigo);
				}
			}
			for(aIndice = 0; aIndice < aObjeto.NumProdutos; aIndice++)
			{
				SetColor(aObjeto.Produtos[aIndice],4,false);
				SetBorder(aObjeto.Produtos[aIndice],4,false);
			}
			break;
		}
		case 1:
		{
			for(bIndice = 0; bIndice < aObjeto.NumSubFamilias; bIndice++)
			{
				SetColor(aObjeto.SubFamilias[bIndice],2,false);
				SetBorder(aObjeto.SubFamilias[bIndice],2,false);				
				for(cIndice = 0; cIndice < aObjeto.SubFamilias[bIndice].NumClasses; cIndice++)
				{	
					SetColor(aObjeto.SubFamilias[bIndice].Classes[cIndice],3,false);
					SetBorder(aObjeto.SubFamilias[bIndice].Classes[cIndice],3,false);
					HideItem("Classe" + aObjeto.SubFamilias[bIndice].Classes[cIndice].Codigo);
					for(dIndice = 0; dIndice < aObjeto.SubFamilias[bIndice].Classes[cIndice].NumProdutos; dIndice++)
					{
						SetColor(aObjeto.SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice],4,false);
						SetBorder(aObjeto.SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice],4,false);
						HideItem("Produto" + aObjeto.SubFamilias[bIndice].Classes[cIndice].Produtos[dIndice].Codigo);
					}
				}
				for(cIndice = 0; cIndice < aObjeto.SubFamilias[bIndice].NumProdutos; cIndice++)
				{
					SetColor(aObjeto.SubFamilias[bIndice].Produtos[cIndice],4,false);
					SetBorder(aObjeto.SubFamilias[bIndice].Produtos[cIndice],4,false);
					HideItem("Produto" + aObjeto.SubFamilias[bIndice].Produtos[cIndice].Codigo);
				}
			}
			for(bIndice = 0; bIndice < aObjeto.NumProdutos; bIndice++)
			{
				SetBorder(aObjeto.Produtos[bIndice],4,false);
				SetColor(aObjeto.Produtos[bIndice],4,false);
			}
			break;
		}
		case 2:
		{
			for(cIndice = 0; cIndice < aObjeto.NumClasses; cIndice++)
			{
				SetBorder(aObjeto.Classes[cIndice],3,false);
				SetColor(aObjeto.Classes[cIndice],3,false);
				for(dIndice = 0; dIndice < aObjeto.Classes[cIndice].NumProdutos; dIndice++)
				{
					SetColor(aObjeto.Classes[cIndice].Produtos[dIndice],4,false);
					SetBorder(aObjeto.Classes[cIndice].Produtos[dIndice],4,false);
					HideItem("Produto" + aObjeto.Classes[cIndice].Produtos[dIndice].Codigo);
				}
			}
			for(cIndice = 0; cIndice < aObjeto.NumProdutos; cIndice++)
			{
				SetColor(aObjeto.Produtos[cIndice],4,false);
				SetBorder(aObjeto.Produtos[cIndice],4,false);
			}
			break;
		}
		case 3:
		{
			break;
		}
	}
}

function GetVisibility(caso){
	if(caso){if(document.all) return "visible"; else return "show";}
	else {if(document.all) return "hidden"; else return "hide";}
}

function HideItem(nome){
	if(document.all) document.all[nome].style.visibility = "hidden";
	else if(document.layers){/*objLayer = eval("document.layers." + nome); objLayer.visibility = "hide";*/}
}