//CUSTOMIZANDO O MENU

//PARA CUSTOMIZAR ESTE MENU, UTILIZE FOLHAS DE ESTILO CSS.

//TODO O MENU ESTÁ DENTRO DE UMA DIV CUJO ID É "menu_compos"
//VOCÊ PODE USAR CSS PARA CUSTOMIZAR ESTA DIV. OBSERVE QUE ESTA DIV
//TEM ALTURA 0, ENTÃO VOCÊ PODE QUERER REAJUSTAR ESSA ALTURA NO
//CSS.

//O MENU PRINCIPAL USA A CLASSE menuPrincipal, ENTÃO CRIE
//ESTA CLASSE EM SUA FOLHA CSS PARA CUSTOMIZAR O MENU

//CADA LINK DO SUBMENU USA A CLASSE submenu, ENTÃO CRIE ESTA
//CLASSE PARA CUSTOMIZAR O SUBMENU. SE VOCÊ CRIAR UMA CLASSE
//CHAMADA submenu, AFETARÁ O SUBMENU COMO UM TODO. SE IMPLEMENTAR
//UMA CLASSE A.submenu AFETARÁ OS LINKS CONTIDOS NO SUBMENU


var mostrarMenu = false;
var topo = 0;
var esquerda = 0;
var alturaPai = 0;
var larguraPai = 0;
var offsetEsqPai = 0;
var offsetTopPai = 0;
var ultimoTemporizador = 0;
var supernumero = 1;
var filhosAEsconder = new Array();

var filhosVerticais = new Array();
var larguras = new Array();
var alturas = new Array();

var agt = navigator.userAgent.toLowerCase();
var is_ie = false;

if (agt.indexOf("msie") != -1)
{
	is_ie = true;
}

var strMenuPrincipal = document.createElement("div");
strMenuPrincipal.id = 'menu_compos';
//strMenuPrincipal.style.position = "absolute";

var strSubmenu = new Array();

function iniciarMenu(container)
{
	var corpo = document.body;
	for (i=0; i<strSubmenu.length;i++)
	{
		corpo.appendChild(strSubmenu[i]);
		
	}

	var menuContainer = document.getElementById(container)
	if (menuContainer!=null)
	{
		menuContainer.appendChild(strMenuPrincipal);
	}
}

/**
* Gera um link a ser colocado como o primeiro menu da página

* @param string nome O nome que vai identificar este link (apenas uma palavra sem espaços).
* @param string descricao O texto que vai aparecer no link
* @param string link A URL que o menu deve seguir ao ser clicado. Use # para um menu sem link
* @param int numFilho O submenu que este menu abre ao se passar o mouse por cima dele. 0 para não abrir submenus

* PARAMETROS OPCIONAIS (NÃO ESTÃO NA CHAMADA DA FUNÇÃO MAS SÃO USADOS
* @param string orientacao Indica se este menu é vertical (passe "vertical") ou horizontal (o padrão, não passe nada)
* @param int largura Indica a que distancia o submenu deve estar deste menu, usado apenas se o menu for vertical
*/
function gerarMenuPrincipal(nome , descricao , link, numFilho, altura,acaoMenu , page)
{
	var newDiv = document.createElement("div");
	//var newLink = new HTMLAnchorElement();

	newDiv.className = 'menuprincipal';
	newDiv.id = nome;
	//newDiv.style.height = altura + "px";
	alturas[nome] = parseInt(altura);
	//newDiv.style.position="absolute";
		

	if (typeof(arguments[5])!='undefined'&& arguments[5] != 'vertical')
	{
		if (!is_ie)
			newDiv.style.cssFloat = "left";
		else
			newDiv.style.styleFloat = "left";
	}
	else
	{
		filhosVerticais[nome] = true;
	}

	if (arguments[6] && arguments[6] > 0)
	{
		larguras[nome] = parseInt(arguments[6]);
		//newDiv.style.width = parseInt(arguments[6]) + "px";
	}

	var redirectPage = "target='_blank'";
	if(page == 0)
	{
		redirectPage = "";
	}
	var meuLink ="";
	if(acaoMenu!="onclick"){
		meuLink = "<a class='menuprincipal_link' " + redirectPage + " href='"+link+"' onmouseover='manter(true); escondeDivs(); showSubmenu("+numFilho+",\""+nome+"\");' onmouseout='manter(false); ultimoTemporizador = setTimeout(\"hideMenu()\",8000);'><span>"+descricao+"</span></a>";
	}else{
		meuLink = "<a class='menuprincipal_link' " + redirectPage + " href='"+link+"'><span>"+descricao+"</span></a>";
	}

	newDiv.innerHTML = meuLink;

	strMenuPrincipal.appendChild(newDiv);
}

function escondeDivs()
{
	if (typeof(arguments[0])=='undefined')
	{
		var x = 1;
		var teste = document.getElementById('menu'+x);
		while (teste != null)
		{
			teste.style.visibility = 'hidden';
			x++;
			teste = document.getElementById('menu'+x);
		}
	}
	else if (arguments[0].length > 0)
	{
		var meuArray = arguments[0];
		for (i=0;i<meuArray.length;i++)
		{
			var teste = document.getElementById('menu'+meuArray[i]);
			if (teste!=null)
				teste.style.visibility = 'hidden';
		}
	}
}

/**
* Gera um submenu que deve ser aberto por um menu principal
* @param int numMenu o número deste submenu (para ser usado como referencia pelo menu principal
* @param array nomes Um array com os nomes identificadores dos links deste submenu
* @param array descricoes Um array com os textos que aparecerão nos links deste sumenu
* @param array links Um array com os links deste submenu
* @param array numFilhos Um array com o número dos submenus abertos por um submenu

* PARAMETROS OPCIONAIS (NÃO ESTÃO NA CHAMADA DA FUNÇÃO MAS SÃO USADOS
* @param int largura A que distância os submenus deste submenu devem se distanciar. Usado apenas se este submenu tiver filhos.
*/
function gerarSubmenu(numMenu, nomes , descricoes , links, numFilhos, altura, acaoMenu,pages)
{
	var newDiv = document.createElement("div");
	
	newDiv.className = "submenu_geral";
	newDiv.id = 'menu'+numMenu;
	newDiv.style.zIndex = 1000;
	newDiv.style.visibility = 'hidden';
	newDiv.style.position = 'absolute';
	//newDiv.style.height = altura;
	filhosAEsconder[newDiv.id] = numFilhos;

	for (i=0; i<nomes.length; i++)
	{
		
		var newDivLink = document.createElement("div");
		var meuLink = "";
		newDivLink.className = "submenu";

		filhosVerticais[nomes[i]] = true;
		
		newDivLink.id = nomes[i];
		
		alturas[newDivLink.id] = parseInt(altura);
		
		if (arguments[6] && arguments[6]>0)
		{
			larguras[newDivLink.id] = parseInt(arguments[6]);
			//newDivLink.style.width = parseInt(arguments[6]) + "px";
		}
		
	var redirectPage = "target='_blank'";

	if(pages[i] == 0)
	{
		redirectPage = "";
	}

//		alert(acaoMenu);
//		alert(arguments[7]);
		if(typeof arguments[7]=='undefined'||arguments[7]=="onmouseover"){
			meuLink = "<a " + redirectPage + " class='submenu_link' href='"+links[i]+"' ON_MOUSE_OVER onmouseout='manter(false); ultimoTemporizador = setTimeout(\"hideMenu()\",8000);'><span>"+descricoes[i]+"</span></a>";
			meuLink = meuLink.replace("ON_MOUSE_OVER","onmouseover='manter(true); escondeDivs(filhosAEsconder[\""+newDiv.id+"\"]); showSubmenu("+numFilhos[i]+",\""+nomes[i]+"\",true);'");
		}else{
			//meuLink = "<a class='submenu_link' href='"+links[i]+" "+arguments[7]+"='manter(true); escondeDivs(filhosAEsconder[\""+newDiv.id+"\"]); showSubmenu("+numFilhos[i]+",\""+nomes[i]+"\",true);'><span>"+descricoes[i]+"</span></a>";
			var link ="#"
			if(numFilhos[i]==0)
				link = links[i];
			meuLink = "<a " + redirectPage + " class=\'submenu_link\' href=\'"+link+"\' onclick=\'manter(true);showSubmenu("+numFilhos[i]+",\""+nomes[i]+"\",true);\'><span>"+descricoes[i]+"</span></a>";
		}
		

		newDivLink.innerHTML = meuLink;
		newDiv.appendChild(newDivLink);
	}
    
     // Resolve bug de sobreposição
    if (typeof FIXBUG !== "undefined" && FIXBUG == true && navigator.appVersion.indexOf("MSIE 6") > 0) {
        var iframe = document.createElement("IFRAME");
        iframe.style.zIndex = "-1";
        iframe.style.height = "0px";
        iframe.style.width = "0px";
        iframe.className = "fix";
        newDiv.appendChild(iframe);
    }
	
	strSubmenu[strSubmenu.length] = newDiv;
}

function initVars(pai)
{
	topo = pai.offsetTop;
	esquerda = pai.offsetLeft;

	var paiDoPai = pai.offsetParent;
	while (paiDoPai!=null)
	{
		if (paiDoPai.offsetTop)
			topo += parseInt(paiDoPai.offsetTop);
			
		if (paiDoPai.offsetLeft)
			esquerda += parseInt(paiDoPai.offsetLeft);

		paiDoPai = paiDoPai.offsetParent;
	}

	larguraPai = larguras[pai.id] ? larguras[pai.id] : 0;
	alturaPai = alturas[pai.id] ? alturas[pai.id] : 0;
}

function showSubmenu(menuId , nomePai)
{
	if (menuId>0)
	{
		var pai = document.getElementById(nomePai);
		initVars(pai);
		
		var x = 1;

		if (arguments[2]!=true)
		{
			while (document.getElementById('menu'+x)!=null)
			{
				var tmp = document.getElementById('menu'+x);
				tmp.style.visibility = 'hidden';
				x++;
			}
		}

		obj = document.getElementById('menu'+menuId);		
		obj.style.zIndex = 1000 + supernumero;

		supernumero++;

		obj.style.position = "absolute";
		obj.style.top = (topo + alturaPai) + 'px';

		if (!filhosVerticais[nomePai])
			obj.style.left = (esquerda) + 'px';
		else
			obj.style.left = (esquerda + larguraPai) + 'px';

    if (navigator.appVersion.indexOf("MSIE 6") > 0) {
        var iframes = obj.getElementsByTagName("iframe");
        if (iframes.length > 0) {
            var iframe = iframes[0];
            iframe.style.height = obj.offsetHeight;
            iframe.style.width = obj.offsetWidth;
        }
    }

		obj.style.visibility = 'visible';
		
	}
}

function hideMenu()
{
	if (!mostrarMenu)
	{
		/*var obj = document.getElementById('menu'+menuId);
		if(obj!=null)
		{
			obj.style.visibility = 'hidden';
		}
		*/
		var x = 1;
		while (document.getElementById('menu'+x)!=null)
		{
			var tmp = document.getElementById('menu'+x);
			tmp.style.visibility = 'hidden';
			x++;
		}
	}
}

function manter(opt)
{
	mostrarMenu = opt;
	if (opt == true && ultimoTemporizador)
	{
		clearTimeout(ultimoTemporizador);
	}
}

function gerarMenuLateral(){
	/* 
		arguments[0] = telaPai
		arguments[1] = id
		arguments[2] = descricao
		arguments[3] = link
		arguments[4] = filhos
		arguments[5] = acao
		arguments[6] = tela pai
	*/
	
		var telaPai		= arguments[0];
		var id			= arguments[1];
		var descricao	= arguments[2];
		var link		= arguments[3];
		var filhos		= arguments[4];
		var acao		= arguments[5];
		var pai			= arguments[6];
	

	var aml = document.getElementById('area_menu_lateral');
	var table = document.createElement("div");
	table.id=pai;
	table.style.visibility = 'hidden';
	table.className = 'menuLateral';
	var tr = document.createElement("div");
	var td = document.createElement("div");
	if(aml!=null){
		var lList = new String(link);
		var linkList = lList.split(",");
		var nList = new String(descricao);
		var nomeList = nList.split(",");
		
			tr.className = "submenu";
//			td.innerHTML = '<a href=\''+link+'&manter=true\' >'+ descricao+'</a>';
			var referencia = '<a href=\'#\' onclick="javascript:submeterPagina(\''+link+'\');" >'+ descricao+'</a>';
			td.innerHTML = referencia.replace('exibir_','');
			tr.appendChild(td);
			table.appendChild(tr);
		if(linkList.length>1 ){
			for(i=0;i<linkList.length;i++){
				tr = document.createElement("div");
				td = document.createElement("div");
				tr.className = "submenu";
//				td.innerHTML = '<a href=\''+linkList[i]+'&manter=true\' >'+ nomeList[i]+'</a>';
				
				var referencia = '<a href=\'#\' onclick="javascript:submeterPagina(\''+linkList[i]+'\');" >'+ nomeList[i]+'</a>';
				td.innerHTML = referencia.replace('exibir_','');
				tr.appendChild(td);
				table.appendChild(tr);
			}
		}
		aml.appendChild(table);
	}

}
function getElementsByClassName(strClass){
	var ret = new Array();
	var tag = arguments[1] || "*";
	var node = arguments[2] || document;
	var base = node.getElementsByTagName(tag);
	var tBase = base.length;
	for(var i = 0; i < tBase; i++){
		var aClass = base[i].className.split(" ");
		var taClass = aClass.length;
		for(var j = 0; j < taClass; j++){
			if(aClass[j] == strClass){
				ret[ret.length] = base[i];
				break;
			}
		}
	}
	return ret;
}

function iniciarLateral(idPai){
	for (z=2;z<=3 ;z++ ){
		var elem = getElementsByClassName("botaoN"+z);
		if(elem!=null){
			for(i=0;i<elem.length;i++){
				elem[i].style.display= "none";
			}
		}
	}
}

function switchDiv(id){
	var elem = document.getElementsByName(id);
	if(elem !=null){
		for (i=0;i<elem.length ; i++ ){
			var display = elem[i].style.display ? '' : 'none';
			elem[i].style.display = display;
		}
	}
}

function submeterPagina(pagina){
	var miolo = document.getElementById('miolo');
	miolo.innerHTML	=	'<iframe '+
							'id="centro" '+
							'class="centro" '+ 
							'frameborder=0 '+
							'hspace=0 '+
							'vspace=0 '+
							'scrolling=auto>'+
						'</iframe>';
	var temp = document.getElementById("centro");
	temp.src = pagina;
}
