// Status das janelas
bDDBAberto = true;
bMenuAberto = true;
bBTMenuAberto = !bMenuAberto;
bCarregou = false;

// Janelas
lyDDB = window.document.getElementById('layerDDB');
lyMenu = window.document.getElementById('layerMenu');

// Tamanhos da janela do usuário
if (document.all) {
	iLarguraJanela = parseInt(window.document.body.offsetWidth);
	iAlturaJanela = parseInt(window.document.body.offsetHeight);
}
else {
	iLarguraJanela = parseInt(window.innerWidth);
	iAlturaJanela = parseInt(window.innerHeight);
}
iLarguraBarraScroll = 0;
iAlturaBarraScroll = 0;

// Temporizadores
tAnimaQuadro = false;
tAnimaMenu = false;
tAnimaBTMenu = false;
tAnimaMargemConteudo = false;

// Monta array de animação com aceleração
aArrayAnimacaoQuadro = aceleracao(-5,79,1.000001);
aArrayAnimacaoMenu = aceleracao(-202,0,1.000001);
aArrayAnimacaoBTMenu = aceleracao(-21,0,1);
aArrayAnimacaoMargemConteudo = aceleracao(0,20,1);

// Desabilita a barra de scroll do navegador do usuário
if (document.all) {
	window.scrolling='no';
}

// :::::::::::::::::::::: POSICIONAMENTOS :::::::::::::::::::::::

// Posicionamentos iniciais dos layers
function lyPosicoes(bPrimeiraVez,bLogado) {
	// Tamanhos da janela do usuário
	if (document.all) {
		iLarguraJanela = parseInt(window.document.body.offsetWidth);
		iAlturaJanela = parseInt(window.document.body.offsetHeight);
	}
	else {
		iLarguraJanela = parseInt(window.innerWidth);
		iAlturaJanela = parseInt(window.innerHeight);
	}
	iLarguraBarraScroll = parseInt(iLarguraJanela-parseInt(window.document.body.clientWidth));
	iAlturaBarraScroll = parseInt(iAlturaJanela-parseInt(window.document.body.clientHeight));
	var lyAguarde = window.document.getElementById('layer-aguarde');
	var lyTopo = window.document.getElementById('layer-topo');
	var lyDDB = window.document.getElementById('layerDDB');
	var lyMenu = window.document.getElementById('layerMenu');
	var lyConteudo = window.document.getElementById('layerConteudo');
	var lyBTMenu = window.document.getElementById('layerBTMenu');
	var lyDestaque = window.document.getElementById('layerDestaque');
	// É a primeira vez? Então carrega os conteúdos do MENU e do DDB
	if (bPrimeiraVez) {
		lyDDB.src = 'includes/ddb.inc.html';
		lyMenu.src = 'includes/menu.inc.html';
	}
	// DDB
	lyDDB.style.left = '0px';
	if (bDDBAberto) {
		lyDDB.style.top = '80px';
	}
	else {
		lyDDB.style.top = '-5px';
	}
	// Menu
	lyMenu.style.top = parseInt(lyDDB.style.top)+parseInt(lyDDB.style.height)+5+'px';
	lyMenu.style.height = parseInt(iAlturaJanela)-(parseInt(lyTopo.style.height)+5+31)+'px';
	if (bMenuAberto) {
		lyMenu.style.left = '0px';
		lyBTMenu.style.visibility = 'hidden';
		lyBTMenu.style.left = '-21px';
	}
	else {
		lyMenu.style.left = '-202px';
		lyBTMenu.style.visibility = 'visible';
		lyBTMenu.style.left = '0px';
	}
	// Conteudo
	lyConteudo.style.top = parseInt(lyDDB.style.height)+parseInt(lyDDB.style.top)+'px';
	lyConteudo.style.left = parseInt(lyMenu.style.width)+parseInt(lyMenu.style.left)+'px';
	lyConteudo.style.width = parseInt(iLarguraJanela)-parseInt(lyConteudo.style.left)-iLarguraBarraScroll+'px';
	lyConteudo.style.height = parseInt(iAlturaJanela)-parseInt(lyConteudo.style.top)-iAlturaBarraScroll+'px';
	// Visibilidade das janelas
	lyTopo.style.visibility = 'visible';
	lyDDB.style.visibility = 'visible';
	lyMenu.style.visibility = 'visible';
	lyConteudo.style.visibility = 'visible';
	lyAguarde.style.visibility = 'hidden';
	bCarregou = true;
	// Verifica se existe popups internos
	if (document.all) {
		lyDestaque.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=100)'
	}
	if ((bPrimeiraVez) && (bLogado)) {
		parent.recarregaMenu();
		parent.recarregaDDB();
	}
}


function abreDestaque(sUrl) {
	var lyDestaque = window.document.getElementById('layerDestaque');
	// Verifica se existe popups internos
	if (document.all) {
		lyDestaque.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=100)'
	}
	
	lyDestaque.src = sUrl;
}



// :::::::::::::::::::::: MOVIMENTOS ::::::::::::::::::::::::

// Desloca para posicao Y o layer
function lyDesloca(sLayer,iPosAnimacao,iOrientacaoVarredura) {
	// Instancias dos iFrames
	var lyTopo = window.document.getElementById('layer-topo');
	var lyMenu = window.document.getElementById('layerMenu');
	var lyBTMenu = window.document.getElementById('layerBTMenu');
	var lyConteudo = window.document.getElementById('layerConteudo');
	umLayer = window.document.getElementById(sLayer);
	// Se for o layer DDB, desloca o MENU tmb
	if (umLayer.id=='layerDDB') {
		// Movimenta os layers
		umLayer.style.top = parseInt(aArrayAnimacaoQuadro[iPosAnimacao])+'px';
		lyMenu.style.top = parseInt(umLayer.style.top)+parseInt(umLayer.style.height)+5+'px';
		lyBTMenu.style.top = parseInt(umLayer.style.top)+parseInt(umLayer.style.height)+5+'px';
		// redimensiona o layer de conteudo e o menu, para que não ultrapasse o limite de altura da janela do navegador
		lyConteudo.style.top = parseInt(umLayer.style.height)+parseInt(umLayer.style.top)+'px';
		lyConteudo.style.height = parseInt(iAlturaJanela)-parseInt(lyConteudo.style.top)-iAlturaBarraScroll+'px';
		// Redimensiona menu?
//		lyMenu.style.height = parseInt(iAlturaJanela)-parseInt(lyMenu.style.top)-iAlturaBarraScroll+'px';
		// Tem animação (mais de uma posição de movimentação). Então entra em modo recursivo.
		if (aArrayAnimacaoQuadro.length>1) {
			if ((iPosAnimacao>=((aArrayAnimacaoQuadro.length)-1)) && (iOrientacaoVarredura>0)) {
				// Pára a animação
				clearTimeout(tAnimaQuadro);
				iPosAnimacao = 0;
			}
			else {
				if ((iPosAnimacao<=0) && (iOrientacaoVarredura<0)) {
					// Pára a animação
					clearTimeout(tAnimaQuadro);
					iPosAnimacao = 0;
				}
				else {
					iPosAnimacao = iPosAnimacao+iOrientacaoVarredura;
					tAnimaQuadro = setTimeout('lyDesloca("'+sLayer+'",'+iPosAnimacao+','+iOrientacaoVarredura+')',30);
				}
			}
		}
	}
	// Menu
	if (umLayer.id=='layerMenu') {
		// Ajusta a posição do layer
		umLayer.style.left = parseInt(aArrayAnimacaoMenu[iPosAnimacao])+'px';
		// redimensiona o layer de conteudo
		lyConteudo.style.left = parseInt(umLayer.style.width)+parseInt(umLayer.style.left)+'px';
		lyConteudo.style.width = parseInt(iLarguraJanela)-parseInt(lyConteudo.style.left)-iLarguraBarraScroll+'px';
		// Tem animação? Então entra em modo recursivo.
		if (aArrayAnimacaoQuadro.length>1) {
			// Atingiu o limite do array de animação?
			if ((iPosAnimacao>=((aArrayAnimacaoMenu.length)-1)) && (iOrientacaoVarredura>0)) {
				// Pára a animação
				clearTimeout(tAnimaMenu);
				iPosAnimacao = 0;
			}
			else {
				if ((iPosAnimacao<=0) && (iOrientacaoVarredura<0)) {
					// Pára a animação
					clearTimeout(tAnimaMenu);
					iPosAnimacao = 0;
					// Mostra o botão de menu
					lyBTMenu.style.visibility = 'visible';
					tAnimaBTMenu = setTimeout('lyDesloca("layerBTMenu",1,1)',30);
					//alert(window.document.getElementById("layerConteudo").marginWidth);
					tAnimaMargemConteudo = setTimeout('lyDeslocaMargemConteudo("layerConteudo",1,1)',30);
				}
				else {
					// Como não atingiu, pega a próxima posição do array, chamando recursivamente a função
					iPosAnimacao = iPosAnimacao+iOrientacaoVarredura;
					tAnimaMenu = setTimeout('lyDesloca("'+sLayer+'",'+iPosAnimacao+','+iOrientacaoVarredura+')',30);
					//tAnimaMargemConteudo = setTimeout(,30);
				}
			}
		}
	}
	// Botão de Menu
	if (umLayer.id=='layerBTMenu') {
		// Ajusta a posição do layer
		umLayer.style.left = parseInt(aArrayAnimacaoBTMenu[iPosAnimacao])+'px';
		// Tem animação? Então entra em modo recursivo.
		if (aArrayAnimacaoQuadro.length>1) {
			// Atingiu o limite do array de animação?
			if ((iPosAnimacao>=((aArrayAnimacaoBTMenu.length)-1)) && (iOrientacaoVarredura>0)) {
				// Pára a animação
				clearTimeout(tAnimaBTMenu);
				iPosAnimacao = 0;
				bBTMenuAberto = true;
			}
			else {
				if ((iPosAnimacao<=0) && (iOrientacaoVarredura<0)) {
					// Pára a animação
					clearTimeout(tAnimaBTMenu);
					iPosAnimacao = 0;
					bBTMenuAberto = false;
				}
				else {
					// Como não atingiu, pega a próxima posição do array, chamando recursivamente a função
					iPosAnimacao = iPosAnimacao+iOrientacaoVarredura;
					tAnimaBTMenu = setTimeout('lyDesloca("'+sLayer+'",'+iPosAnimacao+','+iOrientacaoVarredura+')',30);
				}
			}
		}
	}
}


// Anima apenas a margem esquerda do conteúdo
function lyDeslocaMargemConteudo(sLayer,iPosAtual,iOrientacao) {
	var lyConteudo = window.document.getElementById(sLayer);
//	lyConteudo.style.left = parseInt(lyConteudo.style.left) + aArrayAnimacaoMargemConteudo[iPosAtual]+'px';
	lyConteudo.style.left = aArrayAnimacaoMargemConteudo[iPosAtual]+'px';
	lyConteudo.style.width = parseInt(iLarguraJanela)-parseInt(lyConteudo.style.left)-iLarguraBarraScroll+'px';
//	lyConteudo.style.width = parseInt(lyConteudo.style.width) - parseInt(lyConteudo.style.left) + 'px';
//	lyConteudo.marginWidth = aArrayAnimacaoMargemConteudo[iPosAtual]+'px';
	iPos = iPosAtual+iOrientacao;
	if ((iPos>(aArrayAnimacaoMargemConteudo.length)-1) || (iPos<0)) {
		clearTimeout(tAnimaMargemConteudo);
	}
	else {
		tAnimaMargemConteudo = setTimeout('lyDeslocaMargemConteudo("'+sLayer+'",'+iPos+','+iOrientacao+')',30);
	}
}

// Abre o quadro de ddb, com ou sem animação

function abreQuadro(bAnimado) {
	
	var lyDDB = window.document.getElementById('layerDDB');
	var btAbreAvisos = window.document.getElementById('btAbreAvisos');

	// Se menu estiver aberto e foi uma ferramenta que abriu, não faz nada
	if(bDDBAberto==false)
		if(bAnimado=='FERRAMENTA_MENU')
		{
		return(0);
    	alert('Retorno abreMenu - ' + bAnimado);
		exit();
		}

	
	if (!bAnimado) {
		
		if (bDDBAberto) {
			bDDBAberto = false;
			var iPos = parseInt(lyDDB.style.top)-84+'px';

			//var iPos = parseInt(lyDDB.style.top);
			
			// Troca imagem
		}
		else {
			bDDBAberto = true;
			var iPos = parseInt(lyDDB.style.top)+84+'px';
			
		}

		aArrayAnimacaoQuadro = new Array(iPos);
		lyDeslocaY(1,0,1); // 1=layer ddb | 0=posição do ponteiro do array | 1=incrementador +1
		tAnimaQuadro = setTimeout('lyDesloca(1,0,1)',30);
	}
	else {
		
	
		// Com animação
		if (bDDBAberto) {
			bDDBAberto = false;
			var iOrientacao = -1;
			//var iPosInicial = (aArrayAnimacaoQuadro.length)-1;
			var iPosInicial = 0;
			//alert(iPosInicial);
		}
		else {
			bDDBAberto = true;
			var iOrientacao = 1;
			var iPosInicial = 0;
		}
		
		tAnimaQuadro = setTimeout('lyDesloca("layerDDB",'+iPosInicial+','+iOrientacao+')',30);
		return true;
	}
}



//function abreQuadro(bAnimado) {
//alert('teste');
//}

// Abre o menu, com ou sem animação
function abreMenu(bAnimado) {
	var lyMenu = window.document.getElementById('layerMenu');
	
	if(bAnimado=='FERRAMENTA_MENU')
	bAnimado = true;
	
	if (!bAnimado) {
		if (bMenuAberto) {
			bMenuAberto = false;
			var iPos = parseInt(lyMenu.style.left)-200+'px';
			// Troca imagem
			
		}
		else {
			bMenuAberto = true;
			var iPos = parseInt(lyMenu.style.left)+200+'px';
		}
		aArrayAnimacaoMenu = new Array(iPos);
		//lyDeslocaY(1,0,1); // 1=layer ddb | 0=posição do ponteiro do array | 1=incrementador +1
		tAnimaMenu = setTimeout('lyDesloca("layerMenu",0,1)',30);
	}
	else {
		// Com animação
		if (bMenuAberto) {
			bMenuAberto = false;
			var iOrientacao = -1;
			//var iPosInicial = (aArrayAnimacaoMenu.length)-1;
			var iPosInicial = 0;
		}
		else {
			bMenuAberto = true;
			var iOrientacao = 1;
			var iPosInicial = 0;
		}
		tAnimaMenu = setTimeout('lyDesloca("layerMenu",'+iPosInicial+','+iOrientacao+')',30);
		return true;
	}
}


// Abre o menu, com ou sem animação
function abreMenuBotao(bAnimado) {
	var lyMenu = window.document.getElementById('layerMenu');
	if (!bAnimado) {
		if (bBTMenuAberto) {
			
			var iPos = parseInt(lyMenu.style.left)-200+'px';
		}
		else {
			bMenuAberto = true;
			var iPos = parseInt(lyMenu.style.left)+200+'px';
		}
		aArrayAnimacaoMenu = new Array(iPos);
		//lyDeslocaY(1,0,1); // 1=layer ddb | 0=posição do ponteiro do array | 1=incrementador +1
		tAnimaMenu = setTimeout('lyDesloca("layerMenu",0,1)',30);
	}
	else {
		// Com animação
		if (bBTMenuAberto) {
			var iOrientacao = -1;
			var iPosInicial = (aArrayAnimacaoBTMenu.length)-1;
			var iPosInicialMC = (aArrayAnimacaoMargemConteudo.length)-1;
		}
		else {
			var iOrientacao = 1;
			var iPosInicial = 0;
			var iPosInicialMC = 0;
		}
		tAnimaBTMenu = setTimeout('lyDesloca("layerBTMenu",'+iPosInicial+','+iOrientacao+')',30);
		tAnimaMargemConteudo = setTimeout('lyDeslocaMargemConteudo("layerConteudo",'+iPosInicialMC+','+iOrientacao+')',30);
		abreMenu(bAnimado);
		return true;
	}
}


// Variáveis de auxílio
function aceleracao(iInicio,iFim,fAceleracao) {
	var aTemp = new Array();
	iValor = iInicio;
	i = 0;
	while (iValor<iFim) {
		aTemp[i] = iValor;
		i++;
		fAceleracao = fAceleracao*fAceleracao/(fAceleracao/1.3);
		iValor = iValor + fAceleracao;
	}
	aTemp[i] = iFim;
	return aTemp;
}



// Controle de conteúdo
function recarregaMenu(sLixo) {

		
	var lyMenu = window.document.getElementById('layerMenu');
	
	var bParar = false
	while ((lyMenu) && (!bParar)) {
		
		if (sLixo) {
			lyMenu.src='./includes/menu.inc.html'+sLixo;
		}
		else {
			
			lyMenu.src='./includes/menu.inc.html';
		}
		
		bParar = true;
	}
}

// Controle de conteúdo
function recarregaDDB(sLixo) {
	var lyDDB = window.document.getElementById('layerDDB');
	var bParar = false;
	while ((lyDDB) && (!bParar)) {
		if (sLixo!='undefined') {
			lyDDB.src='./includes/ddb.inc.html';
		}
		else {
			lyDDB.src='./includes/ddb.inc.html'+sLixo;
		}
		bParar = true;
	}
}

// DDB está aberto?
function ddbEstahAberto() {
	return bDDBAberto;
}

function mostraLayerDestaque() {
	var lyDestaque = window.document.getElementById('layerDestaque');
	lyDestaque.style.visibility = 'visible';
}

function escondeLayerDestaque() {
	var lyDestaque = window.document.getElementById('layerDestaque');
	lyDestaque.style.visibility = 'hidden';
}


