function log(data)
{
	if(window.console != undefined)
		console.log(data);
}

(function($){

	$(function()
	{
		/* $(window).ready() */

		$('.thumb')
		.mouseenter(handleThumbHover)
		.mouseleave(handleThumbHover);

		function handleThumbHover(event)
		{
			var $thumb = $(this);
			var $color = $thumb.find('.color');
			var $a_logo = $thumb.find('.a_logo');

			var speed = '';
			switch(event.type)
			{
				case 'mouseenter':
					$color.stop().fadeTo(speed, 1);
					$a_logo.hide();
					break;

				case 'mouseleave':
					$color.stop().fadeTo(speed,0);
					$a_logo.show();
					break;
			}
		}

		/* scroll */

		var lookingAtPage = false;

		var $home = $('#home');
		var $contents = $('#contents');
		var $page = $('#page');
		var scrollTime = 500;

		$('.back').click(scrollToTop);
		function scrollToTop()
		{
			$.scrollTo(0, scrollTime);
			lookingAtPage = false;
		}

		$(window).resize(setContentsPos);
		setContentsPos();
		$contents.show();

		function setContentsPos()
		{
			$contents.css('min-height',$(window).height());

			if(lookingAtPage)
			{
				$.scrollTo($contents,scrollTime);
				return;
			}

			var windowHeight = $(window).height();
			var containerPos = $home.outerHeight(true);
			if(windowHeight > containerPos)
				containerPos = windowHeight;

			$contents.css('top',containerPos);
		}


		SWFAddress.addEventListener(SWFAddressEvent.CHANGE, loadPage);
		function loadPage(event)
		{
			var pagina = event.pathNames[0];
			if(pagina == undefined || pagina == 'home')
			{
				lookingAtPage = false;
				setContentsPos();
				$.scrollTo(0,scrollTime);
				return;
			}

			var page_selector = '#pag_' + pagina;

			$('.pagina.visible').removeClass('visible');
			$(page_selector).addClass('visible');

			setContentsPos();

			$.scrollTo('#contents',scrollTime);
			lookingAtPage = true;
		}

		function showPage(data)
		{
			$page.html(data);
		}

		$('#news .close').click(closeNews);
		function closeNews()
		{
			$('#news').fadeOut();
			return false;
		}

		$('.load_gallery').gallery();

		var $intro = $('#preview');
		var $squadra = $('#squadra');
		var $wrapper = $('#wrapper');

		if($intro.length > 0)
		{
			$(window).resize(function(){centerImage($intro)});
			centerImage($intro);
		}
		function centerImage($image)
		{
			var top = ($(window).height() - $image.height()) / 2;
			$image.css('padding-top', top);
		}

		$('#intro_link').click(hideIntro);

		function hideIntro(e)
		{
			e.preventDefault();
			$(this).parent().fadeOut('default', showWrapper);
		}
		function showWrapper()
		{
			//$squadra.css('position','absolute');
			$wrapper.fadeIn();
		}

		$('#logo').click(hideWrapper);
		$squadra.click(hideSquadra);

		function hideSquadra()
		{
			$squadra.fadeOut(null, function(){$wrapper.fadeIn()});
		}

		function hideWrapper(e)
		{
			e.preventDefault();
			$wrapper.fadeOut('default', showSquadra);
		}
		function showSquadra()
		{
			centerImage($squadra);
			$squadra
				.css('position','relative')
				.fadeIn();
		}

		$('.blink').blink();

		// AUDIO
		$jplayer = $('#jplayer');

		$jplayer.jPlayer({
			ready: jPlayerReady,
			swfPath: "js",
			supplied: "mp3"
		});

		$audio = $('#audio');
		$audioPlay = $('#audio_play');
		$audioPause = $('#audio_pause');

		$audioPlay.click(handleAudio);
		$audioPause.click(handleAudio);

	});     //  closing $(document).ready()

	var $jplayer;
	var $audio;
	var playing = 'playing';
	var $audioPlay;
	var $audioPause;

	function jPlayerReady()
	{
		$jplayer
			.jPlayer('setMedia', {mp3: 'audio/devendra_acqua.mp3'})
			.jPlayer('play');
	}

	function handleAudio(event)
	{
		event.preventDefault();

		if($audio.hasClass(playing))
		{
			$jplayer.jPlayer('pause');
			$audio.removeClass(playing);
			$audioPause.hide();
			$audioPlay.show();
		}
		else
		{
			$jplayer.jPlayer('play');
			$audio.addClass(playing);
			$audioPlay.hide();
			$audioPause.show();
		}
	}

	$.fn.blink = function()
	{
		var $blink = this;
		var blink = this[0];
		blink.alive = true;

		var time = 200;
		hide();

		function hide()
		{
			$blink.hide();
			if(blink.alive)
				setTimeout(show, time);
		}
		function show()
		{
			$blink.show();
			if(blink.alive)
				setTimeout(hide, time);
		}
	}

	/* gallery */

	$.fn.gallery = function()
	{
		var $window = $(window);
		var $document = $(document);

		var $overlay = $('#overlay');
		var $gallery = $('#gallery');

		$overlay
		.fadeOut('fast')
		.click(closeGallery);

		$gallery.find('.close').click(closeGallery);

		function closeGallery(e)
		{
			e.preventDefault();

			if(busy) return;

			loaderRunning = false;

			$overlay.fadeOut();
			$gallery.fadeOut();
			$gallery.find('.links').remove();

			$('#gallery .images').unbind('click',loadNext);
		}

		this.click(loadGallery);
		var current = 0;

		function loadGallery(e)
		{
			e.preventDefault();

			setOverlayPos();
			$overlay.fadeTo('default',1);

			var $link = $(this);
			if($link.hasClass('thumb'))
				current = 0;
			else
				current = parseInt($link.text()) - 1;

			var src = $link.attr('href');

			var $links;
			if($link.hasClass('link'))
				$links = $link.parent().clone();
			else
				$links = $link.next().clone();

			$($links.find('a')[current]).addClass('active');

			$gallery.append($links);
			$links.find('.link').click(linkClicked);

			$gallery.find('.images').empty();
			setGalleryPos();
			$gallery.fadeIn('slow');
			loadImg(src);

			$('#gallery .images').click(loadNext);
		}

		var busy = false;

		function loadNext(e)
		{
			e.preventDefault();

			if(busy) return;
			busy = true;

			var $links = $(this).parent().find('.links a');
			var next = current + 1;
			if(next >= $links.size())
				next = 0;

			$links.parent().find('.active').removeClass('active');
			var $link = $($links[next]);
			$link.addClass('active');

			loadImg($link.attr('href'));
			current = next;
		}

		function linkClicked(e)
		{
			e.preventDefault();

			if(busy) return;
			busy = true;

			var $link = $(this);
			$link.parent().find('.active').removeClass('active');
			$link.blur().addClass('active');
			loadImg($link.attr('href'));

			current = parseInt($link.text()) - 1;
		}

		var loaderRunning = true;

		function startLoader()
		{
			var $loader = $('#loader');
			$loader.show();

			var time = 100;
			var currFrame = -1;
			var width = 28;
			var frames = 12;

			loaderRunning = true;
			nextFrame();

			function nextFrame()
			{
				currFrame ++;
				if(currFrame >= frames)
					currFrame = 0;

				var xPos = currFrame * -width;
				log(xPos);
				$loader.css('background-position',xPos + 'px 0');

				if(loaderRunning)
					setTimeout(nextFrame, time);
			}
		}

		function stopLoader()
		{
			loaderRunning = false;
			$('#loader').hide();
		}

		function loadImg(src)
		{
			var $old = $gallery.find('.new')
			$old
			.removeClass('new')
			.addClass('old');

			startLoader();

			$gallery.find('.images').append('<img class="new">');
			var $new = $gallery.find('.new');
			$new.hide();
			$new.attr('src',src);

			$new.load(swapImages);

			function swapImages()
			{
				stopLoader();
				$new.fadeTo('default',1);

				if($gallery.width() != 0)
					setGalleryPos();

				if($old.length > 0)
				{
					$old.fadeOut('default',removeOld);
				}

				function removeOld()
				{
					$old.remove();
				}

				busy = false;
			}
		}

		$(window).resize(setGalleryPos);
		$(window).scroll(setGalleryPos);
		$(window).resize(setOverlayPos);

		function setGalleryPos()
		{
			var xPos = ($window.width() - $gallery.width()) / 2;
			var yPos = ($window.height() - $gallery.height()) / 2 + $window.scrollTop();

			$gallery.css
			({
				'left':xPos,
				'top':yPos
			});
		}
		function setOverlayPos()
		{
			$overlay.css
			({
				'width':$document.width(),
				'height':$document.height()
			});
		}
	}
})(jQuery);
