$(document).ready(function() {
	criarLinkExterno();
	manipularFonte();
	navegacao = new Menu();
});

// Funcoes de carregamento instantaneo
//incorporarEtiqueta();
//desabilitaEstiloMenu();
//exibirOpcoesPagina();

function Menu()
{
	this.animar = function()
	{
		$("#menu-retratil .basico").hover(function() {
			$(this).stop().animate({ marginTop: "-20px" }, 200);
		}, function() {
			$(this).stop().animate({ marginTop: "-27px" }, 200);
		});
	}

	this.manipular = function()
	{
		$("#menu-retratil .basico > a").click(function()
		{
			// Fechar o menu
			if ( $(this).parent().find(".tarja").css("display") != "none" )
			{
				$(this).parent().find(".tarja").slideUp("slow");
				$("#menu-retratil .suspensorio").remove();
				$(this).parent().removeClass("ativa");

				navegacao.acionar("fechamento");
			}
			

		});
	}

	this.acionar = function( tipo )
	{
		var tipo = (tipo == "abertura") ? 1 : 0;
		var velocidade = 600;

		// Valores de inicio e fim do posicionamento de blocos
		var header			= new Array("220px","378px");
		var gdf				= new Array("95px","253px");
		var boasVindas		= new Array("146px","304px");
		var previsaoTempo	= new Array("112px","270px");

		$("#header").animate({ height: header[tipo] }, velocidade);
		$("#gdf").animate({ top: gdf[tipo] }, velocidade);
		$("#boas-vindas").animate({ top: boasVindas[tipo] }, velocidade);
		$("#previsao-tempo").animate({ top: previsaoTempo[tipo] }, velocidade);
	}

	this.suspender = function()
	{
		// Fundo verde posicionado atras da tarja do menu
		var suspensorio = "<div class='suspensorio'></div>";

		if( ! $("#menu-retratil > ul > li").eq(0).find(".suspensorio").length) {
			$("#menu-retratil > ul > li").eq(0).prepend(suspensorio);
		}
	}

	this.inverter = function( index )
	{
		// Inverta o sentido da seta dos botoes
		var seta = '<div class="seta" onclick="$(\'#menu-retratil .basico > a\').eq('+ index +').click();">&nbsp;</div>';
		
		$("#menu-retratil .basico").eq(index).append(seta);
	}

	this.animar();
	this.manipular();
}

// Mostra a lista de sites relacionados a opcao do submenu
function exibirListaSites( botao, evento ) {
	if ( evento ) {
		if ( retornaCodigoTecla(evento) != 13 && retornaCodigoTecla(evento) != 32 ) {
			if ( retornaCodigoTecla(evento) == 0 ) {
				return true;
			}
			else { return false; }
		}
	}

	$("#sites .aberta").removeClass("aberta");
	$("#sites li .raiz").removeClass("raiz");

	$(botao).parent().addClass("aberta");
	$(botao).addClass("raiz");

	return false;
}

function Apresentacao( alvo )
{
	// Slides
	this.itens = $(alvo).find("li");

	// Total de slides
	this.total = $(alvo).find("li").length;

	// Oculta os slides e exibe o controle de navegacao
	this.preparar = function()
	{
		$(alvo).find("li").not($(alvo).find("li").eq(0)).hide();
		$(alvo).find(".controle").show();

		this.processar();
	}

	// Algoritmo que verifica o slide a ser apresentado
	this.processar = function()
	{
		$(alvo + " .controle a").click(function()
		{
			proximo = $(this).hasClass("proximo");

			apresentacao.itens.each(function(index)
			{
				if ( $(this).css("display") != "none" )
				{
					slideNovo = ( proximo ) ? index + 1 : index - 1;
				}
			});
			
			// Indice do slide a ser apresentado
			var slideNovo = (slideNovo < 0) ? 0 : (slideNovo == apresentacao.total) ? apresentacao.total - 1 : slideNovo;

			return apresentacao.exibir($(this), slideNovo);
		});
	}

	// Apresenta o slide e manipula os controladores
	this.exibir = function(botao, slideNovo)
	{
		// Botao anterior
		if ( slideNovo == 0 ) {
			$(botao).addClass("anterior-desativado");
			$(botao).removeAttr("title");
		}
		else {
			$(botao).parent().find(".anterior").attr("title", "Anterior");
			$(botao).parent().find("a").removeClass("anterior-desativado");
		}

		// Botao proximo
		if ( slideNovo == apresentacao.total - 1 ) {
			$(botao).addClass("proximo-desativado");
			$(botao).removeAttr("title");
		}
		else {
			$(botao).parent().find(".proximo").attr("title", "Próximo");
			$(botao).parent().find("a").removeClass("proximo-desativado");
		}

		this.itens.hide();
		this.itens.eq(slideNovo).show();

		return false;
	}

	// Invoca o metodo construtor
	this.preparar();
}

function Carrossel( alvo )
{
	// Duracao de cada apresentacao em milesegundos
	this.duracao = 5000;

	// Slides
	this.itens = $(alvo).find("li");

	// Total de slides
	this.total = $(alvo).find("li").length;

	// Controla o arranque do clico de tempo, ele sera iniciado na primeira interacao, depois sera controlado pelo metodo exibir()
	this.primeiroCiclo = true;

	this.preparar = function()
	{
		var navegadores = "";

		// Exibe apenas o primeiro slide
		$(alvo).find("li").not($(alvo).find("li").eq(0)).hide();

		// Cria os links de navegacao
		for( i=0; i<=(this.total - 1); i++ ) {
			navegadores += '<li><input type="radio" id="' + i + '" name="' + alvo.substr(1) + '-slide" "' + (( i == 0 ) ? 'checked="checked"' : '') + '" /></li>';
		}

		// Escreve o controle de navegacao
		$(alvo).append('<div class="controle"><ul>' + navegadores + '</ul></div>');

		this.monitorarClique();
		this.monitorarTempo();
	}

	this.monitorarClique = function()
	{
		$(alvo + " .controle input").click(function()
		{
			// Índice do destaque a ser apresentado
			var slideNovo =  $(alvo + " .controle input").index(this);

			return carrossel.exibir(slideNovo, "clique");
		});
	}

	this.monitorarTempo = function()
	{
		// Índice do destaque atual
		var slideAtual = $(this.itens).index($(alvo).find("li:visible"));

		// Índice do destaque a ser apresentado
		var slideNovo = ( slideAtual < ( this.total - 1 ) ) ? slideAtual + 1 : 0;

		if ( this.primeiroCiclo ) {
			this.primeiroCiclo = false;
			exibicao = setTimeout("carrossel.exibir("+ slideNovo +",'tempo')", this.duracao);
		}
		else {
			this.exibir(slideNovo, "tempo");
		}
	}

	this.exibir = function(slideNovo, origem)
	{
		this.itens.hide();
		this.itens.eq(slideNovo).show();

		if ( origem == "clique" ) {
			clearTimeout(exibicao);
			exibicao = setTimeout("carrossel.monitorarTempo()", this.duracao);
		}
		else if ( origem == "tempo" ) {
			$(alvo).find(".controle input").eq(slideNovo).attr("checked","checked");
			exibicao = setTimeout("carrossel.monitorarTempo()", this.duracao);
		}
	}

	// Invoca o metodo construtor
	this.preparar();
}

// Manipula o tamanho das fontes no site
function manipularFonte() {
	var fonte = 100;
	var limite = new Array(80, 130);

	// Aumenta a fonte
	$("#aumentar-fonte a").click(function() {
		if ( fonte + 10 > limite[1] ) {
			fonte = limite[1];
		}
		else { fonte += 10; }

		$("#wrapper").css("font-size", fonte + "%");
		$("#menu").css("font-size", fonte + "%");

		return false;
	});

	// Diminui a fonte
	$("#diminuir-fonte a").click(function() {
		if ( fonte - 10 < limite[0] ) {
			fonte = limite[0];
		}
		else { fonte -= 10; }

		$("#wrapper").css("font-size", fonte + "%");
		$("#menu").css("font-size", fonte + "%");

		return false;
	});
}

// Habilita os links externos para abrirem em uma nova janela
function criarLinkExterno() {
	$("a[rel='external']").click(function() {
		$(this).attr("target", "_blank");
	});
}

// Seleciona as abas na busca
function seletorAbas( ) {
	$("#blocoEmpresas").hide();
	$('#seletor-Abas li').click(function(){
		var ident = ($(this).attr('id'));
		if ($(this).hasClass('ativo')) {
		} else {
			$('#seletor-Abas li').removeClass('ativo');
			$(this).addClass('ativo');
			$('.areaBusca').hide();
			$('.'+ident+'').show();
		}

		return false;
	});
};










function janela(url, x, y) {

	window.open(url,"","toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width="+x+",height="+y+",left=40%, top=20%");
	

}





function banner(id) {
	
	$("#registraBanner").load('includes/banner.php?idBanner='+id);
	
}





function agenda(url) {
	
	$("#agenda").load(url);
	
}



