function showOverlaySlide(slug, fade)
{
	if (typeof(fade) == 'undefined')
	{
		fade = false;
	}

	if (fade)
	{
		$('#overlay').find('.current').fadeOut('fast', function ()
		{
			$(this).removeClass('current');
			$('#overlay').find('#overlay-' + slug).fadeIn('fast', function ()
			{
				$(this).addClass('current');
			});		
		});		
	}
	else
	{
		$('#overlay').find('.current').removeClass('current').css('display','none');
		$('#overlay').find('#overlay-' + slug).addClass('current').css('display','block');
	}
}

function clearActiveLink()
{
	$('#nav .active').removeClass('active');	
}

$(function ()
{
	$('#header').data('open', false)
	$('#screen').css('opacity','0').css('display','none');
	$('#overlay').css('borderTopWidth','0');

	/* Overlay close button */
	$('#closeButton').click(function ()
	{
		$('#nav .active').trigger('click');
		return false;
	});

	/* Nav links  - slide down overlay on click */
	$('#nav li a').live('click', function ()
	{
		/* Highlight the current link */
		clearActiveLink();
		$(this).addClass('active');

		/* Switch to the proper slide */
		var slug = $(this).attr('href');
		slug = slug.substr(1);

		/* Slide Open Window */
		var open = $('#nav').data('open');
		var curSlug = $('#nav').data('curSlug');
		
		var finalHeight = 420;
		if (slug == 'aboutUs')
		{
			finalHeight = 480;	
		}
		else if (slug == 'testimonials')
		{
			finalHeight = 350;	
		}
		else if (slug == 'contact')
		{
			finalHeight = 300;	
		}
		
		if (!open)
		{
			showOverlaySlide(slug);
			$('#screen').css('display', 'block');
			$('#overlay').stop().animate({ 'height': finalHeight + 'px' });
			$('#screen').stop().animate({ 'opacity': '.9' });
			$('#overlay').css('borderTopWidth','1px');
			$('#nav').data('open', true);
		}
		else
		{
			if (curSlug == slug) /* If the user clicked on the already open overlay's link, close the overlay */
			{
				clearActiveLink();
				$('#overlay').stop().animate({ 'height': '0px' }, function ()
				{																			
					$('#overlay').css('borderTopWidth','0');
				});
				$('#screen').stop().animate({ 'opacity': '0' }, function ()
				{
					$(this).css('display', 'none');
				});
				$('#nav').data('open', false);
			}
			else /* Otherwise fade in the new one and leave it open */
			{
				/* resize the overlay to the final height */
				$('#overlay').animate({'height': finalHeight + 'px'});
				showOverlaySlide(slug, true);
			}
		}
		$('#nav').data('curSlug', slug);
		return false; /* prevent link's normal click behavior */
	});
	
	/* Next Testimonial link */
	$('#nextTestimonial').click(function ()
	{
		if ($(this).data('animating'))
		{
			return false;
		}
		$(this).data('animating', true);
		var testimonialCount = $('#overlay-testimonials .testimonial').size();
		// fade out the current testimonial
		$('#overlay-testimonials .currentTestimonial').stop().fadeOut('fast', function ()
		{
			$(this).removeClass('currentTestimonial');
		});


		// fade in the next testimonial
		var nextTestimonialIndex = $(this).data('curIndex') + 1;
		if (nextTestimonialIndex >= testimonialCount)
		{
			nextTestimonialIndex = 0;	
		}
		
		$('#overlay-testimonials .testimonial:eq(' + nextTestimonialIndex +')').stop().fadeIn('fast', function ()
		{
			$(this).addClass('currentTestimonial');
			$('#nextTestimonial').data('animating', false);
		});
		$(this).data('curIndex', nextTestimonialIndex);
		return false;
	});
	$('#nextTestimonial').data('curIndex', 0);


	/* Next Slide link (classes overlay) */
	$('#viewClasses').click(function ()
	{
		if ($('#overlay-classes').data('animating'))
		{
			return false;
		}
		$(this).data('animating', true);
		$('#overlay-classes .slide:first').stop().fadeOut('fast', function ()
		{
			$(this).removeClass('currentSlide');
		});

		// fade in the classes list
		$('#overlay-classes .slide:eq(1)').stop().fadeIn('fast', function ()
		{
			$(this).addClass('currentSlide');
			$('#overlay-classes').data('animating', false);
		});
		return false;
	});

	$('#backToClassesOverview').click(function ()
	{
		if ($('#overlay-classes').data('animating'))
		{
			return false;
		}
		$(this).data('animating', true);
		$('#overlay-classes .slide:eq(1)').stop().fadeOut('fast', function ()
		{
			$(this).removeClass('currentSlide');
		});

		// fade in the classes list
		$('#overlay-classes .slide:first').stop().fadeIn('fast', function ()
		{
			$(this).addClass('currentSlide');
			$('#overlay-classes').data('animating', false);
		});
		return false;
	});
});