// VARIÁVEIS GLOBAIS
// Para o menu de abas
// indica o caminho da página atual
nivel1Ativo = 0;
nivel2Ativo = 0;
nivel3Ativo = 0;
nivel4Ativo = 0;
nivel5Ativo = 0;

// indica o caminho que está exibido no menu
// não necessariamente o mesmo da página (o usuário pode ter aberto uma aba)
_nivel1Ativo = 0;
_nivel2Ativo = 0;
_nivel3Ativo = 0;
_nivel4Ativo = 0;
_nivel5Ativo = 0;

// Outras variáveis
hidedElements = new Array(); // elementos que foram ocultados
windowWidth = 0; // largura da janela do browser
windowHeight = 0; // altura da janela do browser
documentWidth = 0; // largura do documento
documentHeight = 0; // altura do documento
currentOffsetY = 0; // offset do documento no eixo Y
currentOffsetX = 0; // offset do documento no eixo X
popupAberta = false; // indica o id da popup que está aberta

// Variaveis auxiliares Tela fale conosco
var statusAnteriorCampoCpf = '';
var statusAnteriorCampoAgenciaConta = '';
var statusAnteriorCampoCheckEmail = '';
var statusAnteriorCampoCheckTelefone = '';

// CONTROLE DE EVENTOS
window.onscroll = windowScrolled;
window.onresize = windowResized;
Event.observe(window, 'load', function() {
	if (!window.XMLHttpRequest){
		// dá o destaque nas linhas da tabela que tenha class destaque, no <=IE6
		$$('tr.destaque').each( function(e) {   
			Event.observe(e, 'mouseover', function() {   
				Element.addClassName(e, 'hover');   
			});   
			Event.observe(e, 'mouseout', function() {   
				Element.removeClassName(e, 'hover');   
			});   
		});
	}
	
	getWindowDimensions();// BUSCA INFORMAÇÕES DE DIMENSÕES
	
	// MENU ABAS
	marcaItens();
	if ($('m'+nivel1Ativo)) $('m'+nivel1Ativo).setStyle({visibility: 'visible'});
	$$('#menu_container ul ul li').each( function(e) {   
		Event.observe(e, 'mouseover', function() {
			if ($('m'+e.id.substring(1))){
				$('m'+e.id.substring(1)).setStyle({visibility: 'visible'});
				if (!window.XMLHttpRequest) hideElementsByTag('select'); // esconde os combos no IE6
			}
		});
		Event.observe(e, 'mouseout', function() {
			if ($('m'+e.id.substring(1))){
				$('m'+e.id.substring(1)).setStyle({visibility: 'hidden'});
				if (!window.XMLHttpRequest) showHidedElements(); // reexibe os combos no IE6
			}
		});
	});
	
	_nivel1Ativo = nivel1Ativo;
	_nivel2Ativo = nivel2Ativo;
	_nivel3Ativo = nivel3Ativo;
	_nivel4Ativo = nivel4Ativo;
	_nivel5Ativo = nivel5Ativo;
	
	// FORMULARIO
	// exibe dica
	$$('div.dica').each( function(e) {
		Event.observe(e, 'mouseover', function() {
			if (!window.XMLHttpRequest) hideElementsByTag('select');
			e.down(1).addClassName('visivel');
			// falta conferir se a dica não está saindo da área visível.
			// se estiver, calcula a largura da caixa de dica e a reposiciona para que fique visível.
			e.down(1).setStyle({
				left:(e.down(0).offsetLeft+e.down(0).getWidth()+5)+'px'
			})
		});
		Event.observe(e, 'mouseout', function() {   
			e.down(1).removeClassName('visivel');
			if (!window.XMLHttpRequest) showHidedElements();
		});
	});
	
	// Destaca a linha do campo ativo
	$$('input.checkbox').each( function(e) {   
		Event.observe(e, 'focus', function() {   
			e.up(1).addClassName('destaque');
		});
		Event.observe(e, 'blur', function() {   
			e.up(1).removeClassName('destaque');
		});
	});
	
	$$('input.radiobox').each( function(e) {   
		Event.observe(e, 'focus', function() {   
			e.up(1).addClassName('destaque');
		});
		Event.observe(e, 'blur', function() {   
			e.up(1).removeClassName('destaque');
		});
	});
	
	$$('input.text').each( function(e) {   
		Event.observe(e, 'focus', function() {   
			Element.addClassName(e, 'destaque');
			e.up(1).addClassName('destaque');
		});
		Event.observe(e, 'blur', function() {   
			Element.removeClassName(e, 'destaque'); 
			e.up(1).removeClassName('destaque');
		});
	});
	
	$$('select').each( function(e) {   
		Event.observe(e, 'focus', function() {   
			Element.addClassName(e, 'destaque');   
			e.up(1).addClassName('destaque');
		});
		Event.observe(e, 'blur', function() {   
			Element.removeClassName(e, 'destaque');   
			e.up(1).removeClassName('destaque');
		});
	});
	
	$$('textarea').each( function(e) {   
		Event.observe(e, 'focus', function() {   
			Element.addClassName(e, 'destaque');
			e.up(1).addClassName('destaque');
		});
		Event.observe(e, 'blur', function() {   
			Element.removeClassName(e, 'destaque'); 
			e.up(1).removeClassName('destaque');
		});
	});
	
	// SE HOUVER BOTOES FLUTUANTES, POSICIONA NO EIXO X DE ACORDO COM A LARGURA
	if ($('botoesFlutuantes')){
		$('botoesFlutuantes').setStyle({left:(761-$('botoesFlutuantes').getWidth())+'px'});
	}
	
	// RETIRA ESPAÇO À DIREITA, INCLUINDO CLASS ULTIMOITEM, DOS ULTIMOS BOTOES
	$$('ul.botoes').each( function(e) {
		//alert(e.immediateDescendants()[e.immediateDescendants().length-1].tagName);
		e.immediateDescendants()[e.immediateDescendants().length-1].addClassName('ultimoItem');
	});
	
	if (loadEspecifico) loadEspecifico();
});

// FUNÇÕES
// exibe hints
function showHint(txt, e){
	if ($('hint')){
		if (!window.XMLHttpRequest) hideElementsByTag('select');
		$('hint').innerHTML = txt;
		$('hint').setStyle({
			left:($(e).up(0).offsetLeft+$(e).up(0).getWidth())+'px', top:(Position.cumulativeOffset($(e).up(0))[1])+'px', zIndex:900
		})
		$('hint').addClassName('visivel');
	}
}
function hideHint(){
	if ($('hint')) $('hint').removeClassName('visivel');
	if (!window.XMLHttpRequest) showHidedElements();
}

// executa funções ao usar a rolagem
function windowScrolled(e){
	getWindowDimensions();
	if ($('botoesFlutuantes')) posicionaBtsFlutuantes();
	if (popupAberta) posicionaPopup(popupAberta);
}

// executa funções ao redimensionar a janela
function windowResized(e){
	getWindowDimensions();
	if ($('botoesFlutuantes')) posicionaBtsFlutuantes();
	if (popupAberta) posicionaPopup(popupAberta);
}

// Atualiza as dimensões da janela e do documento
function getWindowDimensions(){
	
	// calcula o tamanho da área visível
	if (self.innerHeight) { // NS
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // IE 6 Strict Mode e IE7
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // outros IEs
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	
	// calcula o tamanho do docuemnto todo
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if (test1 > test2){ // exceto IE MAC
		documentWidth = document.body.scrollWidth;
		documentHeight = document.body.scrollHeight;
	} else { // IE Mac
	 	// tb no IE6 Strict, Mozilla e Safari
		documentWidth = document.body.offsetWidth;
		documentHeight = document.body.offsetHeight;
	}
	
	// calcula o tanto que foi rolado da página
	if (self.pageYOffset) { // NS
		currentOffsetX = self.pageXOffset;
		currentOffsetY = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){ // IE6 Strict e IE7
		currentOffsetX = document.documentElement.scrollLeft;
		currentOffsetY = document.documentElement.scrollTop;
	} else if (document.body) { // outros IE
		currentOffsetX = document.body.scrollLeft;
		currentOffsetY = document.body.scrollTop;
	}
	
	//alert(windowWidth + "|" + windowHeight + "--" + documentWidth + "|" + documentHeight + "--" + currentOffsetX + "|" + currentOffsetY);
}

// marca os itens ativos do menu de abas
function marcaItens(){
	// Marca os itens do menu de abas
	if (nivel1Ativo > 0){
		// marca a aba ativa
		$('i'+nivel1Ativo).down(0).addClassName('ativo');
		if (nivel2Ativo > 0){
			// marca o item ativo do segundo nivel
			$('i'+nivel1Ativo+nivel2Ativo).down(0).addClassName('ativo');
			if (nivel3Ativo > 0){
				// marca o item ativo do terceiro nivel
				$('i'+nivel1Ativo+nivel2Ativo+nivel3Ativo).down(0).addClassName('ativo');
				if (nivel4Ativo > 0){
					// marca o item ativo do quarto nivel
					$('i'+nivel1Ativo+nivel2Ativo+nivel3Ativo+nivel4Ativo).down(0).addClassName('ativo');
					if (nivel5Ativo > 0){
						// marca o item ativo do quinto nivel
						$('i'+nivel1Ativo+nivel2Ativo+nivel3Ativo+nivel4Ativo+nivel5Ativo).down(0).addClassName('ativo');
					}
				}
			}
		}
	}	
}
// remove a classe 'ativo' em todos os itens ativos
function desmarcaItens(){
	if (_nivel1Ativo > 0){
		$('i'+_nivel1Ativo).down(0).removeClassName('ativo');
		if (_nivel2Ativo > 0){
			$('i'+_nivel1Ativo+_nivel2Ativo).down(0).removeClassName('ativo');
			if (_nivel3Ativo > 0){
				$('i'+_nivel1Ativo+_nivel2Ativo+_nivel3Ativo).down(0).removeClassName('ativo');
				if (_nivel4Ativo > 0){
					$('i'+_nivel1Ativo+_nivel2Ativo+_nivel3Ativo+_nivel4Ativo).down(0).removeClassName('ativo');
					if (_nivel5Ativo > 0){
						$('i'+_nivel1Ativo+_nivel2Ativo+_nivel3Ativo+_nivel4Ativo+_nivel5Ativo).down(0).removeClassName('ativo');
					}
				}
			}
		}
	}
	_nivel1Ativo = '';
	_nivel2Ativo = '';
	_nivel3Ativo = '';
	_nivel4Ativo = '';
	_nivel5Ativo = '';
}

// Exibe o submenu da aba clicada
function abreMenu(menuID){
	if ($('m'+_nivel1Ativo)) $('m'+_nivel1Ativo).setStyle({visibility: 'hidden'});
	desmarcaItens();
	_nivel1Ativo = menuID;
	if ($('m'+menuID)) $('m'+menuID).setStyle({visibility: 'visible'});
	_nivel1Ativo = menuID;
	if (nivel1Ativo == menuID){
		marcaItens();
	} else {
		if ($('m'+_nivel1Ativo)) $('i'+_nivel1Ativo).down(0).addClassName('ativo');
	}
}

// Esconde os elementos de uma tag específica e salva no array hidedElements
function hideElementsByTag(tagName){
	var vetor = document.getElementsByTagName(tagName);
	for (var i = 0 ; i < vetor.length ; i++){
		hidedElements.push(vetor[i]);
		$(vetor[i]).setStyle({visibility: 'hidden'});
	}
}
// exibe os elementos que estão salvos no array hidedElements
function showHidedElements(){
	for (var i = 0 ; i < hidedElements.length ; i++){
		$(hidedElements[i]).setStyle({visibility: 'visible'});
	}
}

/* POPUPS */
// Abre a popup indicada, caso ela exista
function abrePopup(idPopup, fullscreen){
	if ($(idPopup) != ''){
		if (!tampaoAberto) abreTampao();
		$(idPopup).removeClassName('popupFechada');
		$(idPopup).addClassName('popupAberta');
		if (fullscreen == true){
			// ajusta a altura da popup que for fullscreen
			if (self.innerHeight){
				fullscreenWidth = (windowWidth-27);
			} else {
				fullscreenWidth = (windowWidth-10);
			}
			if (fullscreenWidth > 760) fullscreenWidth = 760;
			$(idPopup).setStyle({left:'0px', height: (windowHeight-10)+'px',width: fullscreenWidth+'px'});
			$(idPopup).down(0).setStyle({height: (windowHeight-50)+'px',width: (fullscreenWidth-40)+'px'});
			$(idPopup).down(0).down(0).setStyle({height: (windowHeight-80)+'px',width: (fullscreenWidth-40)+'px'});
			$$('#'+idPopup+' dd').each(function(e) {
				e.setStyle({width: (fullscreenWidth-60)+'px'});
			});
			$$('#'+idPopup+' dt').each(function(e) {
				e.setStyle({width: (fullscreenWidth-60)+'px'});
			});
		}
		posicionaPopup(idPopup);
		popupAberta = idPopup;
		// exibe os selects caso o IE6 tenha pedido para ocultar
		if (!window.XMLHttpRequest){
			$$('#'+idPopup+' select').each(function(e) {
				e.setStyle({visibility: 'visible'});
			});
			if (!fullscreen) {
				textareaWidth = '390px';
			} else {
				textareaWidth = '685px';
			}
			$$('#'+idPopup+' textarea').each(function(e) {
				e.setStyle({width: textareaWidth});
			});
		}
	}
}
// Posiciona a popup aberta na tela
function posicionaPopup(idPopup){
	if ($(idPopup) != '') {
		var offset = Math.round((windowHeight - $(idPopup).getHeight()) / 2);
		$(idPopup).setStyle({top:(currentOffsetY + offset)+'px'});
	}
}
// Fecha a popup indicada, caso ela exista
function fechaPopup(idPopup){
	if ($(idPopup) != ''){
		if (tampaoAberto) fechaTampao();
		$(idPopup).removeClassName('popupAberta');
		$(idPopup).addClassName('popupFechada');
		popupAberta = false;
	}
}

/* BOTÕES FLUTUANTES */
// Posiciona os botões flutuantes
function posicionaBtsFlutuantes(){
	var minimoOffset = 253;
	var btHeight = 22;
	if (currentOffsetY <= (minimoOffset-btHeight)){
		$('botoesFlutuantes').setStyle({top:minimoOffset+'px'});
	} else {
		$('botoesFlutuantes').setStyle({top:(currentOffsetY + btHeight)+'px'});
	}
}

/* TAMPÃO */
tampaoAberto = false;
function abreTampao(){
	$('tampao').setStyle({width:documentWidth+'px',height:documentHeight+'px',visibility:'visible'});
	if (!window.XMLHttpRequest) hideElementsByTag('select');
	tampaoAberto = true;
}
function fechaTampao(){
	$('tampao').setStyle({visibility:'hidden'});
	if (!window.XMLHttpRequest) showHidedElements();
	tampaoAberto = false;
}

/* FORMULÁRIO */
// Agrupamentos
function mudaVisibilidade(grupo)
{
	$(grupo).immediateDescendants().each(function(e) { if (e.tagName != "DT") { e.toggle(); } });
	$(grupo).down().down().toggleClassName('bt_exibir');	
	getWindowDimensions();
	if ($('botoesFlutuantes')) posicionaBtsFlutuantes();
}
