/* CONFIGURAÇÕES
-----------------------------------------------------------------------*/

var PAGINA = 'home',
	ATUAL = PAGINA,
	CARREGADOS = [PAGINA],
	ROLAGEM = '#home .imgs-conceito',
	//tempo rolagem (efeito home)
	r_tempo,
	// variaveis para a função ul_scroll
	prefixo = 'ul_scroll_img_',
	prefixo_atual = 'ul_scroll_atual'
	// variaveis look book
	look_sexo_atual = '',
	// velocidade (look book)
	v = 500;
	


/* FUNÇÕES NECESSÁRIAS PARA AVISOS
-----------------------------------------------------------------------*/

function alinha_centro(div){
	var posX = Math.round($(div).width() / 2);
	var posY = Math.round($(div).height() / 2);
	
	$(div).css({
		"position" : "fixed",
		"top": '50%',
		"left": '50%',
		"margin-left": - posX,
		"margin-top": - posY,
		"z-index": 1000
	});
}

// gera aviso (como alert);
function aviso(t,m){
	var div = '<div id="div_aviso"></div>';
	$('#div_aviso').remove();
	$('body').append(div);
	$('#div_aviso').html('<h1>' + t + '</h1><p>' + m + '</p><a href="javascript:void(0)" class="f">Fechar</a>');
	
	alinha_centro('#div_aviso');
	
	function fechar(){
		$('#div_aviso').fadeOut('slow',function(){
			$('#div_aviso').remove();
		});
	}
	
	$('#div_aviso').hide();
	$('#div_aviso').fadeIn(500);
	$('#div_aviso a.f').click(function(event){
		event.preventDefault();
		fechar();
	});
}

function debug(msg){
	aviso('Debug',msg);
}

function mostrarCarregando(texto){
	//carregando.show();
	if(texto == undefined){
		texto = 'Carregando...';
	}
	$('#carregando').html(texto).hide().fadeIn(200);
};
	
function ocultarCarregando(){
	$('#carregando').fadeOut(600);
};



/* GERA OS TÍTULOS DE ACORDO COM A PÁGINA ATUAL
-----------------------------------------------------------------------*/

function gera_titulo(){
	var titulos = [];
	titulos['monnari'] = 'Conheça a Monnari Jeans';
	titulos['conceito'] = 'Veja o release';
	titulos['look-book'] = 'Confira nossos produtos em look-book';
	titulos['news'] = 'Novidades Monnari Jeans';
	titulos['onde-encontrar'] = 'Compre os produtos da Monnari Jeans';
	titulos['contato'] = 'Fale Conosco';
	
	if(titulos[PAGINA] != undefined)
		return 'Monnari Jeans | ' + titulos[PAGINA];
	else
		return 'Monnari Jeans - Coleção Verão 2012';
}



/* ADICIONA AS FUNÇÕES NECESSÁRIAS PARA A PÁGINA ATUAL
-----------------------------------------------------------------------*/

function add_functions(){
	
	var local = '#conteudo #' + PAGINA + ' ';
	
	// colorbox
	$(local + "a.colorbox").colorbox({maxWidth:'95%',maxHeight:'95%'});
	
	// barra de rolagem
	$(local + '.scroll-pane').jScrollPane();
	
	// slide show
	//$(local + '.slider').orbit({timer: false});
	
	/*
	// efeito alpha ao carregar as imagens
	if(!$.browser.msie){
		$(local + ' img').css('opacity',0);
		$(local + ' img').onImagesLoaded(function(_this){
			$(_this).fadeTo(1000,1,function(){ $(this).removeAttr('style') });
		});
	}
	*/
}

// mostra o conteúdo
function mostra_arquivo(){
	if(ATUAL != 'home'){
		$('#conteudo #' + ATUAL).hide(400);
	}
	
	if(PAGINA != 'home'){
		$('#conteudo #' + PAGINA).hide().fadeIn(800);
		ocultarCarregando();
	}
	SWFAddress.setTitle(gera_titulo());
}

// carrega / exibi o arquivo
function carrega_arquivo(){
	if(CARREGADOS[PAGINA] == undefined || CARREGADOS[PAGINA] == false){
		if(PAGINA != 'home'){
			mostrarCarregando('Carregando conteúdo...');
			$('#conteudo #' + PAGINA).load('ajax-load.php?a=' + PAGINA , function(){
				CARREGADOS[PAGINA] = true;			
				$('#conteudo #' + PAGINA).show();
				add_functions();		
				mostra_arquivo();
			});
		}else{
			mostra_arquivo();
		}
	}else{
		//$('#conteudo #' + PAGINA).show();
		mostra_arquivo();
	}
	
}


/* ROLAR IMAGENS (NORMAL)
-----------------------------------------------------------------------*/

function normal_scroll($local){
	
	var animando = false,
		distancia = 880,
		lMax = ($($local).width() - distancia) * -1,
		lMin = 0;
	
	$($local).css({marginLeft: '0px'});
	
	function rolar(acao){
		
		var pos = $($local).css('margin-left').replace('px','');
		animando = true;
				
		if(pos == undefined)(pos = lMin);
		
		pos = parseFloat(pos);
		d_pos = pos
		if(acao == '#mais'){
			pos -= distancia;
			maximo = lMax - 380;
			//mostrarCarregando('distancia')
			pos = pos <= lMax ? (maximo) : (pos);		
		}else if(acao == '#menos'){
			pos += distancia;
			pos = pos >= 0 ? (0) : (pos);
		}else{
			alert('Ação não especificada!');
		}
			
		$($local).animate({marginLeft: pos}, 600, function(){
			animando = false;
		});
			
	}
	
	$('#setas a').unbind('click')	
	.click(function(event){
		event.preventDefault();
		if(!animando){
			url = $(this).attr('href');
			rolar(url);
		}
	});
	
}


/* ROLAR SCROLL DE ACORDO COM O TANTO DE LI (ul li)
-----------------------------------------------------------------------*/

function ul_scroll($ul,largura_mascara,qtd_negativa,efeito){
	
	var animando = false,
		tamanhos = [],
		atual = 0,
		max_li = 0,
		largura_total = 0;
	
	$($ul + ' li').each(function (i){
		var l = $(this).width();
		$(this).addClass(prefixo + i);	
		tamanhos[i] = l + 2;
		max_li++;
		
		// caso já esteja setado um li atual, atualiza a variavel atual que é 0 por padrão
		if($(this).is('.' + prefixo_atual)){
			atual = i;
		}	
	});
	
	if(qtd_negativa != undefined){
		max_li -= qtd_negativa;
	}
	
	// calcula o tamanho total
	for(i = 0; i < tamanhos.length; i++){
		largura_total += tamanhos[i];
	}
	
	//$($ul).css({marginLeft: '0px'});
	
	function auto_rolar(){
		var n_acao = '#mais';		
		if(atual >= max_li){
			atual = 0;
			$($ul).stop().animate({'margin-left': 0}, 600);
		}
		rolar_li(n_acao);
	}
	
	
	function rolar_li(acao){
		
		var mascara = largura_mascara == undefined ? (900) : (largura_mascara);
		var lMax = (largura_total - mascara) * -1; //($($ul).width() - mascara) * -1;
		var lMin = 0;	
		var pos = $($ul).css('margin-left').replace('px','');
		var d_pos = pos;
		
		if(pos == undefined)(pos = lMin);
		pos = parseFloat(pos);
		
		var d_pos = pos;
		
		animando = true;
		
		if(acao == '#mais'){
			
			var distancia = tamanhos[atual] != undefined ? (tamanhos[atual]) : (0);
			
			pos -= distancia;
			if(pos <= lMax){
				pos = lMax;
			}
			if(distancia != 0){
				atual += 1;
				if(atual > max_li){
					atual = max_li;
					pos = lMax;
				}
			}
			//pos = pos <= lMax ? (lMax) : (pos);
		}else{
			
			var distancia = tamanhos[atual - 1] != undefined ? (tamanhos[atual - 1]) : (0);
			
			pos += distancia;
			if(pos >= 0){
				pos = 0;
			}
			if(distancia != 0){
				atual -= 1;
			}
			
			//pos = pos >= 0 ? (0) : (pos);
		}
		
		// executa o efeito
		if(d_pos != pos){
			
			//debug('marginLeft: ' + $($ul).css('margin-left'));
			
			usar_efeito = efeito == undefined ? ('') : (efeito); 
			
			if(usar_efeito == 'fade'){
				$($ul).fadeOut(v / 2 ,function(){
					$(this)
					.css({marginLeft: pos})
					.fadeIn(v,function(){
						animando = false;
					})					
				})
			}else{
				$($ul).animate({marginLeft: pos}, 600,function(){
					animando = false;
				});
			}
		}else{
			animando = false;
		}
		
		// atualia a classe da img atual
		$('.' + prefixo_atual).removeClass(prefixo_atual);
		$('.' + prefixo + atual).addClass(prefixo_atual);
		
		//debug('atual = ' + atual + '<br>Distancia = ' + distancia + '<br>tamanhos[atual] = ' + tamanhos[atual] + '<br>pos = ' + pos + '<br>d_pos = ' + d_pos + '<br>max_li = ' + max_li + '<br>lMax ' + lMax);
			
	}
	$('#setas a').unbind('click')	
	.click(function(event){
		event.preventDefault();
		if(!animando){
			url = $(this).attr('href');
			rolar_li(url);
		}
	});
	
	//debug("max_li = " + max_li + '<br>tamanhos = ' + tamanhos);
	
	//r_tempo = setInterval(auto_rolar,4000);
	
}



/* MUDAR PRODUTOS DO LOOK BOOK
-----------------------------------------------------------------------*/

function look_book_scroll($ul,largura_mascara,qtd_negativa){
	
	var animando = false,
		tamanhos = [],
		atual = 0,
		max_li = 0,
		largura_total = 0;
	
	$($ul + ' li').each(function (i){
		var l = $(this).width();
		tamanhos[i] = l + 2;
		max_li++;		
	});
	
	if(qtd_negativa != undefined){
		max_li -= qtd_negativa;
	}
	
	// calcula o tamanho total
	for(i = 0; i < tamanhos.length; i++){
		largura_total += tamanhos[i];
	}
	
	$($ul).css({marginLeft: '0px'});
	
	function rolar_look(acao){
		
		var mascara = largura_mascara == undefined ? (900) : (largura_mascara);
		var lMax = (largura_total - mascara) * -1; //($($ul).width() - mascara) * -1;
		var lMin = 0;	
		var pos = $($ul).css('margin-left').replace('px','');
		var d_pos = pos;
		var distancia = mascara;
		
		if(pos == undefined)(pos = lMin);
		
		pos = parseFloat(pos);
		animando = true;
		
		if(acao == '#mais'){
			
			pos -= distancia;
			if(pos <= lMax){
				pos = lMax;
			}
			if(distancia != 0){
				atual += 1;
				if(atual > max_li){
					atual = max_li;
					pos = lMax;
				}
			}
		}else{
			
			pos += distancia;
			if(pos >= 0){
				pos = 0;
			}
			if(distancia != 0){
				atual -= 1;
			}
			
			//pos = pos >= 0 ? (0) : (pos);
		}
		
		// executa o efeito
		if(d_pos != pos){
			
			$($ul).fadeOut(v / 2 ,function(){
				$(this)
				.css({marginLeft: pos})
				.fadeIn(v,function(){
					animando = false;
				})					
			})
			
		}else{
			animando = false;
		}
		
		//debug('atual = ' + atual + '<br>Distancia = ' + distancia + '<br>tamanhos[atual] = ' + tamanhos[atual] + '<br>pos = ' + pos + '<br>d_pos = ' + d_pos + '<br>max_li = ' + max_li + '<br>lMax ' + lMax);
			
	}
	$('#setas a').unbind('click')	
	.click(function(event){
		event.preventDefault();
		if(!animando){
			url = $(this).attr('href');
			rolar_look(url);
		}
	});
	
}



/* NAVEGAÇÃO DO SITE ATUALIZA OS CONTEÚDOS DE ACORDO COM A URL
-----------------------------------------------------------------------*/

function voltar_home(){
	// remove o prefixo atual das imagens da home
	$('.' + prefixo_atual).removeClass(prefixo_atual);
	
	// volta para o iniício as imagens da home
	$('#home ul.imgs-conceito').css({'margin-left': 0});
}



/* FECHA FECHA O LOOK BOOK DE ACORDO COM O SEXO
-----------------------------------------------------------------------*/

function fecha_sexo_look_book(div_oculta,miniatura){
	
	if(miniatura){
		mTop = '80px';
		wImg = '90%';
		wLi = '180px';
	}else{
		mTop = 0;
		wImg = '235px'; // caso almentar o tamanho da imagem troque aqui
		wLi = '250px';
	}
	
	$(div_oculta + ' img.principal').show().animate({width : wLi},v);
	$(div_oculta).animate({
		width : wLi
	},v,function(){
		
		$(div_oculta + ' .load').html('');
			
		$(div_oculta + ' img.principal').animate({
			marginTop : mTop,
			width : wImg
		},v);
		
	});
}



/* FECHA TODO O LOOK BOOK
-----------------------------------------------------------------------*/

function fecha_look_book(){
	
	look_sexo_atual = '';
	
	$('#mlb').animate({width:'500px'},v);
	$('#mlb div.masculino').removeClass('borda');
	fecha_sexo_look_book('#mlb div.feminino',false);
	fecha_sexo_look_book('#mlb div.masculino',false);
	
}



/* TROCA O LOOK BOOK ENTRE MASCULINO E FEMININO
-----------------------------------------------------------------------*/

function atualiza_look_book(sexo_atual){
	var sexo_oculta = sexo_atual == 'feminino' ? 'masculino' : 'feminino',
		div_atual = '#mlb div.' + sexo_atual,
		div_oculta = '#mlb div.' + sexo_oculta,
		largura_g = 710;
	
	// caso não tenha escolhido nenhuma opção
	if(look_sexo_atual == ''){
		$('#mlb').animate({width:'900px'},v);
		$('#setas').fadeIn(800);
	}
	
	// atualiza o look atual
	look_sexo_atual = sexo_atual;
	
	mostrarCarregando();
	
	// carrega as outras imagens
	$(div_atual + ' div.load').load('listar-look-book.php?s=' + sexo_atual, function(){
		
		ocultarCarregando();
		
		// mostra o div atual
		$(div_atual + ' img.principal').hide();
		$(div_atual).animate({
			width : largura_g + 'px'
		},v,function(){
			//$(div_atual + ' li.hide').removeClass('hide').show(v);
			//$(div_atual + ' li.principal img').removeAttr('style');
			$('#mlb div.masculino').addClass('borda');
		});
		
		
		//
		// ADICIONA AS AÇÕES PARA OS LINKS DA LISTA
		//
		
		$(div_atual + ' .load a').hover(
			function(){
				$(this).children('.info').stop().fadeTo(v,1);
				//efeito_li($(this),'hover');
			},
			function(){
				//efeito_li($(this),'out');
				$(this).children('.info').stop().fadeTo(v,0);
			}
		)
		
		$(div_atual + ' a .info').css({'opacity':0});
				
		$(div_atual + " .load a.colorbox").colorbox({maxWidth:'95%',maxHeight:'95%'});
		
		// oculta o outro div	
		fecha_sexo_look_book(div_oculta,true);
		
		// adiciona funcao para as setas
		look_book_scroll(div_atual + ' .load ul' , largura_g , 0 , 'fade');
		//debug('sexo_atual ' + sexo_atual + '<br>sexo_oculta ' + sexo_oculta);
	
	});
	
}


/* NAVEGAÇÃO DO SITE ATUALIZA OS CONTEÚDOS DE ACORDO COM A URL
-----------------------------------------------------------------------*/

function atualizar(event){
	// arquivo para ser carregado
	ATUAL = PAGINA;
	PAGINA = event.path.replace('/','');
	
	if(PAGINA == ''){PAGINA = 'home';}
	//var linkA = $('div.menu a[href=' + PAGINA + ']');
	
	$('#setas').fadeIn(1000);
	
	if(PAGINA == 'home'){
		
		// para o efeito da home
		//clearInterval(r_tempo);
		
		ul_scroll('#home .imgs-conceito');
	}else if(PAGINA == 'news'){
		
		// para o efeito da home
		//clearInterval(r_tempo);
		
		voltar_home();		
		normal_scroll('#news ul.colunas');
		
	}else if(PAGINA == 'look-book'){
		
		// para o efeito da home
		//clearInterval(r_tempo);
		
		voltar_home();
		// caso o usuário ainda não tenha escolhido a opção desejada no look_book, faz aparecer as setas
		
		$('#setas').fadeOut(500);
		if(look_sexo_atual != '')
			fecha_look_book();
		
	}else{
		/*
		$('#setas a').unbind('click')
		.click(function(event){
			event.preventDefault();
			SWFAddress.setValue('');
		})
		*/
	}
	
	$('ul.menu-topo a.selecionado').removeClass('selecionado');
	$('ul.menu-topo a[href=#/' + PAGINA + ']').addClass('selecionado');
	
	SWFAddress.setTitle('Carregando ' + PAGINA + '...');
	//mostrarCarregando('Carregando ' + PAGINA + '...');
	carrega_arquivo();
}

/* REDIMENSIONAR O SITE PARA RESOLUÇÕES MENORES
-----------------------------------------------------------------------*/
function redimensionar() {
	_h = $(window).height();
	if(_h <= 660) {
		$('.bg-site').css({height : _h + 'px'}).addClass('bg-resolucao');
		$('#conteudo').addClass('cont-resolucao');
		$('.rodape').addClass('rodape-resolucao');
		$('.menu-topo').addClass('topo-resolucao');
	}else{
		$('.rodape').removeClass('rodape-resolucao');
		$('.menu-topo').removeClass('topo-resolucao');
		$('.bg-site').removeClass('bg-resolucao');
		$('#conteudo').removeClass('cont-resolucao');
	}	
}


/* ABRIR O SITE
-----------------------------------------------------------------------*/

function abrir_site(){
	
	// mostra o menu topo
	$('ul.menu-topo')
	.css({'margin-top':'-100px'})
	.animate({marginTop: 0, 'opacity': 1},800);
	
	// mostra o ropade
	$('div.rodape')
	.css({'margin-top':'100px'})
	.animate({marginTop: 0, 'opacity': 1},800,function(){
		// fade na home
		$('#home').fadeTo(1000,1,function(){
			$('.absolute, div.rodape, ul.menu-topo').removeAttr('style');
		});
		// fade na pagina atual
		if(PAGINA != 'home'){
			$('#' + PAGINA).removeClass('hide').fadeTo(1000,1);
		}		
	});
}


/* QUANDO CARREGAR AS IMAGENS
-----------------------------------------------------------------------*/

(function($) {
	var imgList = [];
	$.extend({
		preload: function(imgArr, option) {
			var setting = $.extend({
				init: function(loaded, total) {},
				loaded: function(img, loaded, total, id) {},
				loaded_all: function(loaded, total) {}
			}, option);
			var total = imgArr.length;
			var loaded = 0;
			
			setting.init(0, total);
			for(var i in imgArr) {
				imgList.push($("<img />")
					.attr("src", imgArr[i])
					.load(function() {
						loaded++;
						setting.loaded(this, loaded, total, i);
						if(loaded == total) {
							setting.loaded_all(loaded, total);
						}
					})
				);
			}
			
		}
	});
})(jQuery);


/* EXECUTA AS FUNÇÕES AO CARREGAR O SITE (CÓDIGO FONTE)
-----------------------------------------------------------------------*/

$(document).ready(function(){	
	
	redimensionar();
	$(window).resize(redimensionar);
	
	// adiciona as funções ao menu
	$('.menu-topo a').click(function(event){
		event.preventDefault();
		SWFAddress.setValue($(this).attr('href').replace('#/',''));
	})
	
	// atualiza ao trocar a url
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, atualizar);
	
	// oculta o conteudo
	$('div.absolute, div.rodape, ul.menu-topo').css({'opacity':0});
	$('div.site').removeClass('invisivel');
	
	/*
	if($.browser.msie && $.browser.version == 8.0){
		ocultarCarregando();
		abrir_site();
	}else{
		
		// primeiro carrega as imagens depois abre o site	
		var array_imgs = []
		$(".imgs-conceito img").each(function(index, domEle){
			array_imgs.push( $(domEle).attr('src') );
		});
	*/	
		// quando carregar (gambiarra para funcionar no IE 9
		$.preload(['img/conceito/monnari-verao-2012-1.jpg'],{
			init: function(loaded, total) {
				mostrarCarregando();
			},
	
			loaded: function(img, loaded, total, id) {
				$('#carregando').html("carregando imagens "+loaded+"/"+total);
				//$_li = $("<li />").addClass()
				//$('.imgs-conceito').append( $_li.append(img) );
			},
	
			// quando terminar de carregar todas as imagens
			loaded_all: function(loaded, total) {
				ocultarCarregando();
				// para o efeito da home
				//clearInterval(r_tempo);
				// executa novamente a função do scroll na home
				ul_scroll('#home .imgs-conceito');
				// abre o site
				abrir_site();
			}
		});
	//}
	
});
