/* -----------------------------------------------------------------------

	Marcelogreco.com - Script que gerencia o funcionamento do site.

	Author: Thiago Carvalho <thiago.carvalho at teadigital.com.br>

	Este script define funções para controlar os eventos principais do site:
		cliques em menu;
		mouse_over em menus;
		exibição das sessões e divs ocultos do site.
	Ele utiliza funções definidas em outros scripts.
	
	Requer:
		mootools 1.2 (mootools.js);
		contato.js;
		kscroll.ks;
		precarregar_imagens.js;
		series.js.
		
----------------------------------------------------------------------- */

function debug(x){
	// firebug
	//console.log(x);
}

var fundos_aleatorios = ["images/geral/fotos_home/home_random_Silencio04.jpg",
                         "images/geral/fotos_home/home_random_Silencio06.jpg",
                         "images/geral/fotos_home/home_random_Silencio07.jpg",
                         "images/geral/fotos_home/home_random_Ultimas01.jpg",
                         "images/geral/fotos_home/home_random_Ultimas03.jpg",
                         "images/geral/fotos_home/home_random_Ultimas08.jpg"];
var fundo_aleatorio_atual = 0;

/* Indica qual fundo está sendo mostrado. O valor abaixo é o fundo inicial */
var fundo_atual = -1;

/* Diz se devo alterar o fundo. Será false se estamos vendo uma página diferente da inicial */
var trocar_fundo = true;


/* esconde tudo e mostra a tela inicial */
function retorna_inicio() {
	menu_click('');
	habilita_troca_de_fundo();
	altera_fundo_conteudo(-1);
}

/*
 * idiomas
 */
var _current_lang = "POR";

 // troca a classe X por X_eng
var _lang_classes = ["titulo_aba_perfil",
                     "titulo_aba_exposicoes"
];

// esconde o item menu_por e mostra menu_eng
var _lang_switches = ["menu",
                      "nome",
                      "email",
                      "mensagem",
                      "enviar",
                      "enviado",
                      "titulo_video1",
                      "titulo_video2",
                      "titulo_video3",
                      "titulo_video4",
                      "titulo_video5",
                      "titulo_video6",
                      "sobre_exposicoes",
                      "sobre_perfil"];
					  
// inclui saiba-mais das séries
for(var i = 0; i < series.length; i++) {
	_lang_switches.include('saiba_mais'+i);
	_lang_switches.include('texto_serie_'+i);
	_lang_switches.include('titulo_serie_'+i);
	_lang_switches.include('submenu_item_' + i);
}

function lang_click(lang) {
	/*
	if(lang == _current_lang) {
		return;
	}
	*/
	
	_current_lang = lang;
	if(lang == "ENG") {
		for(var i = 0; i < _lang_classes.length; i++) {
			var el = $(document.body).getElement('.'+_lang_classes[i]);
			if(el) {
				el.addClass(_lang_classes[i] + "_eng")
				.removeClass(_lang_classes[i]);
			}
			
		}
		
		for(var i = 0; i < _lang_switches.length; i++) {
			var el = $(_lang_switches[i] + "_por");
			
			if(el) {
				el.setStyle('display', 'none');
				
				var el2 = $(_lang_switches[i] + "_eng");
				if(!(el2.getAttribute('displayable') == 'false')) {
					el2.setStyle('display', 'block');
				}
			}
		}
	}
	else {
		for(var i = 0; i < _lang_classes.length; i++) {
			var el = $$('[class='+_lang_classes[i]+'_eng]');
			if(el) {
				el.addClass(_lang_classes[i])
				.removeClass(_lang_classes[i] + "_eng");
			}
		}
		
		for(var i = 0; i < _lang_switches.length; i++) {
			var el = $(_lang_switches[i] + "_eng");
			
			if(el) {
				el.setStyle('display', 'none');
			
				var el2 = $(_lang_switches[i] + "_por");
				if(!(el2.getAttribute('displayable') == 'false')) {
					el2.setStyle('display', 'block');
				}
			}
		}
	}
	
	// change series lightbox link title
	var links = document.getElementsByTagName('a');
	for(var i = 0; i < links.length; i++) {
		if(links[i].getAttribute('title_por')) {
			if(lang == "ENG")
				links[i].setAttribute('title', links[i].getAttribute('title_eng'));
			else
				links[i].setAttribute('title', links[i].getAttribute('title_por'));
		}
	}
}


var timer_esconder;
/* mouseover menu trabalhos */
function menu_over_trabalhos()
{
	$clear(timer_esconder);
	
	
	$('submenu_trabalhos').setStyles({
		'display' : 'block',
		'opacity' : 1
	});
	
	/*
	var submenu = $('submenu_trabalhos');
	if(submenu.style.display == 'none') {
		submenu.setStyle('display','block');
		
		var fx = new Fx.Tween(submenu,{
			duration: 500,
			onComplete: function(){
				submenu.fade('in');
			}
		});
		fx.start('height',0,250);
	}
	*/
	
	return true;
}

/* mouseout menu trabalhos */
function menu_out_trabalhos()
{
	timer_esconder = esconde_submenu_trabalhos.delay(200);
	return true;
}

function esconde_submenu_trabalhos() {
	$('submenu_trabalhos').setStyle('display', 'none');
	/*
	var fx = new Fx.Tween(submenu,{
		duration: 100,
		onComplete: function(){ 
			submenu.setStyle('display','none');
			submenu.fade('out');
		}
	});
	fx.start('opacity',1,0);
	*/
}

/* submenu trabalhos - exibe a série clicada */
function click_series(n)
{
	esconde_series();
	if(serie_construida[n] != true) {
		constroi_serie(n);
		ativa_replacer($('titulo_serie_'+n+'_por'));
		ativa_replacer($('titulo_serie_'+n+'_eng'));
	}
	_kscrolls[n].restartScroll();
	menu_click('div_content_'+n);
	
	lang_click(_current_lang);
}

function esconde_series()
{
	for(var i = 0; i < series.length; i++) {
		if(serie_construida[i] == true) {
			$('div_content_'+i).style.display = 'none';
		}
	}
}

/* altera o fundo do conteúdo para a imagem da série especificada */
function mouse_over_series(n)
{
	if(trocar_fundo != false) {
		if(fundo_atual != n) {
			fundo_atual = n;
			altera_fundo_conteudo(n);
		}
	}
}

/* desabilita a troca de fundo e define o fundo como cor preta sólida */
function desabilita_troca_de_fundo() {
	trocar_fundo = false;
	$('background').style.background = '#000';
}

function habilita_troca_de_fundo() {
	trocar_fundo = true;
	$('background').setStyles({
		'background' : '',
		'background-image' : ''
	});
}

function fundo_serie(n) {
	return series[n].path_imagens + series[n].bg_home;
}

/* altera o fundo do conteúdo para a imagem
   correspondente à série que tem o mouse em cima 
   usando efeito de fade-out/in com duração em milisegundos */
function altera_fundo_conteudo(serie)
{
	var img;
	if(serie != -1) {
		img = fundo_serie(serie);
	}
	else {
		// vai mostrar um dos fundos aleatórios
		img = fundos_aleatorios[fundo_aleatorio_atual];
		fundo_aleatorio_atual = (fundo_aleatorio_atual + 1) % fundos_aleatorios.length;
		fundo_atual = -1;
	}
	
	var m = $('background');
	var fx = new Fx.Tween(m,{
		duration: 50,
		onComplete: function(){ 
			m.setStyles({
				'background-image' : 'url(' + img + ')',
				'background-repeat' : 'no-repeat'
			});
			m.fade('in');
		}
	});
	fx.start('opacity',1,0);
}


/* click em item do menu, esconde as abas e mostra apenas a referente à selecionada */
function menu_click(item) 
{
	desabilita_troca_de_fundo();
	esconde_series();

	var abas = ['conteudo_sobre', 'conteudo_videos', 'conteudo_contato'];	
	for(var i = 0; i < abas.length; i++) {
		$(abas[i]).style.display = 'none';
	}
	var vitem = $(item);
	if(vitem != null) {
		vitem.style.display = 'inline-block';
	}
	
	// previne caso uma mensagem já tenha sido enviada
	if(item == 'conteudo_contato') {
		$('div_form').setStyle('display', 'block');
		$('form_enviado').setStyle('display', 'none');
	}
	
	// se for mostrar a aba de conteudo pela primeira vez, inicializa o scroll!
	if(item == 'conteudo_sobre' && scroll_sobre == null) {
		cria_scroll_sobre();
	}
}

/* cria o scrollbar da aba sobre */
var scroll_sobre = null;

function cria_scroll_sobre() {
	scroll_sobre = new KScroll({
		elements: {
			scroller : 'sobre_scrollable',
			slider : 'bar_sobre',
			knob : 'knob_sobre',
			go_back : 'btn_sobe',
			go_forward : 'btn_desce',
			go_steps: 3
		},
		scroll: {
			duration: 2000,
			transition: Fx.Transitions.Quad.easeInOut
		},
		slider: {
			mode: 'vertical',
			offset: 0
		},
		knob: {
			duration: 800,
			transition: Fx.Transitions.Quad.easeInOut
		}
	});
}


// mostra o texto "saiba_mais" de uma série
function mostra_saiba_mais(n) {
	var fundo = $('fundo');
	var contorno = $('saiba_mais_contorno');
	
	var fx_fundo = new Fx.Tween(fundo,{duration: 350});
	var fx = new Fx.Tween(contorno,{
		duration: 800,
		onStart: function() {
			if(series[n].saiba_mais_tem_scroll == true) {
				$('scroll_texto_'+n).setStyle('display', 'block');
				scroll_t[n].restartScroll();
			}
			fundo.setStyle('display', 'block');
			contorno.setStyle('display', 'block');
			$('texto_serie_'+n).setStyle('display', 'block');

			fx_fundo.start('opacity',0,0.93);
		}
	});
	fx.start('opacity',0,1);
	
	$('btn_fechar').removeEvents('click');
	$('btn_fechar').addEvent('click',function() {
		var contorno = $('saiba_mais_contorno');
		var fundo = $('fundo');
		
		var fx_fundo = new Fx.Tween(fundo,{duration: 650});
		var fx = new Fx.Tween(contorno,{
			duration: 400,
			onStart: function() {
				fx_fundo.start('opacity', 0.93, 0);
			},
			onComplete: function() {
				fundo.setStyle('display', 'none');
				contorno.setStyle('display','none');
				$('texto_serie_'+n).setStyle('display', 'none');
				if(series[n].saiba_mais_tem_scroll == true) {
					$('scroll_texto_'+n).setStyle('display', 'none');
				}
			}
		});
		fx.start('opacity',1,0);
	});
	
	// abaixo define evento para fechar ao pressionar ESC
	$(document).addEvent('keydown', function(e) {
		// se pressionou o ESC
		if(e.key == 'esc') {
			$('btn_fechar').fireEvent('click');
			$(document).removeEvent('keydown');
		}
	});
}

function altera_fonte_menu_series() {
	ativa_replacer($$('.replace_this'));
}

function ativa_replacer(elements) {
	AlphabetReplacer._charMapping = _charMapping;
	AlphabetReplacer._defaultReplacementCode = _defaultReplacementCode;
	AlphabetReplacer.replace(elements);
}


window.addEvent('domready', function() {
	var imagens_pre_carregadas = pre_carregar_imagens();
	
	//constroi_series();
	constroi_menu_series();
	altera_fonte_menu_series();
	
	altera_fundo_conteudo(-1);
	cria_scroll_saiba_mais();
	inicializa_contato();
});

