$(function() {

	// Write screen resolution to cookies
	$.cookie('screen_x',screen.width,{path:'/'});
	$.cookie('screen_y',screen.height,{path:'/'});
	
	// Set elements for one-time effects
	if ($.cookie('animate_once') != 1) {
		$('#header').css('display','none');
	}
	// Set elements for every-time effects
	$('#supersize a').css('display','none');
	$('#supersize img').css('display','block');
	$('#project_links').css('display','none');
			
	$.fn.supersized.options = {  
		startwidth: size_x,  
		startheight: size_y,
		horizontal_center: 1,
		vertical_center: 0,
		slideshow: 0,
		navigation: 0,
		transition: 0,
		pause_hover: 0,
		slide_counter: 0,
		slide_captions: 0,
		slide_interval: 0
	};
	$('#supersize').supersized();

	// Fade nav mouseover effect
	$('#nav>ul>li').hoverIntent(
		// Mouse over
		function() {
			$(this).children('a').children('img.nav_off').fadeOut('fast');
			$(this).children('a').children('img.nav_on').fadeIn('fast');
		},
		// Mouse out
		function() {
			$(this).children('a').children('img.nav_on').fadeOut('fast');
			$(this).children('a').children('img.nav_off').fadeIn('fast');
		}
	);
	
	// Open sub-menu
	$('#nav>ul>li>a').click(
		function() {
			// Show this menu
			if ($(this).parent().children('div.menu:hidden').length > 0) {
				// Close other menus
				$('#nav>ul>li>div.menu:visible').slideUp('slow');
				$('#project_links:visible').slideUp('slow');
				// Show this menu
				$(this).parent().children('div.menu:hidden').slideDown('slow');
			}
			// Hide this menu
			else if ($(this).parent().children('div.menu:visible').length > 0) {
				// Hide this menu
				$(this).parent().children('div.menu:visible').slideUp('slow');
				// Show other menus
				$('#nav>ul>li>div.menu.current:hidden').slideDown('slow');
				$('#project_links:hidden').slideDown('slow');
			}
		}
	);
	
	// Close sub-menu
	$('div.menu_close').click(
		function() {
			$(this).parent().slideUp('slow');
			// Show other menus
			$('#nav>ul>li>div.menu.current:hidden').slideDown('slow');
			$('#project_links:hidden').slideDown('slow');
		}
	);
	
	// Open project info
	$('#project_info_link').click(
		function() {
			// Close any open menus
			$('#nav>ul>li>div.menu:visible').slideUp('slow');
			// Open this menu
			$('#project_info').slideToggle('slow');
			// Prevent following link
			return false;
		}
	)
	
	// Advance slide
	$('#nextslide').click(
		function() {
			slideSwitch();
			return false;
		}
	);
		
	// Reverse slide
	$('#prevslide').click(
		function() {
			slideSwitchReverse();
			return false;
		}
	);
		
	// Preload images (must come after all other $ functionality except onload actions)
	$.preloadCssImages();
	
});

// Actions after full page load
$(window).load(
	function() {
		// One-time animations
		if ($.cookie('animate_once') != 1) {
			$('#header').slideDown('slow');
			$('#project_links').slideDown('slow');
			$('#nav>ul>li>div.menu.current').slideDown('slow');
		}
		// Subsequent pages
		else {
			$('#project_links').slideDown('slow');
		}

		// Slideshow
		slideSwitch();
		if (run_slideshow) {
			setInterval("slideSwitch()", 4000);
		}

		// Set cookie for one-time animations
		$.cookie('animate_once',1,{path:'/'});
	}
);

function slideSwitch() {
	var $previous = $('#supersize>a.previous');
	var $current = $('#supersize>a.current');
	if ($.slidenumber < $('#supersize>a').length) {
		var $next = $current.next();
		$.slidenumber++;
	}
	else {
		var $next = $('#supersize>a:first-child');
		$.slidenumber = 1;
	}
	$previous.removeClass('previous').hide();
	$current.addClass('previous').removeClass('current');
	$next.addClass('current').fadeIn(1000);
	$('#slidecounter span.slidenumber').html($.slidenumber);
	return false;
}

function slideSwitchReverse() {
	var $previous = $('#supersize>a.previous');
	var $current = $('#supersize>a.current');
	if ($.slidenumber > 1) {
		var $next = $current.prev();
		$.slidenumber--;
	}
	else {
		var $next = $('#supersize>a:last-child');
		$.slidenumber = $('#supersize>a').length;
	}
	$previous.removeClass('previous').hide();
	$current.addClass('previous').removeClass('current');
	$next.addClass('current').fadeIn(1000);
	$('#slidecounter span.slidenumber').html($.slidenumber);
	return false;
}
