jQuery(document).ready(function ()
{
	//------- FADE EFFECTS -------
	$('.slide-img').hide().delay(1300).fadeIn(2000);
	jQuery("#info ul,#info p,#content-nextslide,#submenu").hide().delay(3000).fadeIn(2000);
	//jQuery("#page p,#page ul").hide().delay(1300).fadeIn(2000);
	
	//------- BOTTOM MENU -------
	$('#panel').css({
		opacity: 0
	});
		
	$('#panel').animate({
		opacity: 0.8,
		height: 'toggle'
	}, 1700, function() {
		// Animation complete.
	});
	
	//------- LIGHTBOX 1 ---------
	$("a#inline").fancybox({
		'padding': 0,
		'margin': 15,
		'hideOnContentClick': true,
		'speedIn': 1200,
		'speedOut' : 400,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'easingIn': 'easeOutCubic',
		'easingOut': 'easeOutCubic',
		'overlayOpacity': 0.8,
		'overlayColor': '#DDD'
	});
	
	//------- LIGHTBOX 2 ---------
	$("a#textbox").fancybox({
		'padding': 15,
		'margin': 15,
		'hideOnContentClick': true,
		'speedIn': 1200,
		'speedOut' : 400,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'easingIn': 'easeOutCubic',
		'easingOut': 'easeOutCubic',
		'overlayOpacity': 0.8,
		'overlayColor': '#DDD',
		'autoDimensions': false
	});
	
	//------- LIGHTBOX 3 --------
	$("a#chipclick").fancybox({
		'padding': 0,
		'margin': 15,
		'hideOnContentClick': true,
		'speedIn': 1500,
		'speedOut' : 400,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'easingIn': 'easeOutCubic',
		'easingOut': 'easeOutCubic',
		'overlayOpacity': 0.8,
		'overlayColor': '#000'
	});

	//------- Press Fading --------
	$("#col-content > div").hide();
	$("#col-content > div:first").show();
	$("#col-side a").click(function(event){
		var at = $(this).attr('rel');
		$('#col-content > div').hide();
		$('#col-side a').removeClass('current');
		$(this).addClass('current');
		$("#story-" + at).fadeIn('slow');
	});

	

	//------- IMAGE RESIZING AND POSITIONING -------
	// Size images on load and screen resize
	fit_images();
	$(window).resize(function() {
		fit_images();
	});
	
	// Center each image on load
	jQuery(".slide-img").load(function () {
		center(jQuery(this), jQuery(this).parent());
	});
	
	// Resize every image so it fits into it's square parent div, regardless of orientation, and center it
	function fit_images() {
		var imgs = jQuery(".slide-img");
		jQuery.each(imgs, function() {
			jQuery(this).imgscale({
				scale : 'fit'
			});
			center(jQuery(this), jQuery(this).parent());
		});
	}
	
	function center(src, inside) {
		if (jQuery(src).width() == 0 || jQuery(src).height() == 0)
		{
			return;
		}
		var centerYOffset = (jQuery(inside).height() - jQuery(src).height()) * 0.5;	
		var centerXOffset = (jQuery(inside).width() - jQuery(src).width()) * 0.5;
		jQuery(src).css("position", "absolute");
		jQuery(src).css("top", centerYOffset);
		jQuery(src).css("left", centerXOffset);
	}
	
	/* Image click */
	$(".slide-img").click(function() {
			$("#nextslide img").fadeOut().fadeIn().fadeOut().fadeIn();
		});
		
	/* Info hover */
	$("#info").hover(function() {
		jQuery("#info").animate({ opacity: 1 }, { duration: 500,easing : 'swing' });
	});
	
	//------- IMAGE SLIDING -------
	var currentSlide = 0;
	var maxSlides = jQuery("div.slide").length;
	
	/* Handle supplied movement and fading */
	function animate_to(elem, x) {
		jQuery("#info").animate({ opacity: 0.2 }, { duration: 2000,easing : 'swing' });
		jQuery(elem).animate({ left: x }, { duration: 2200,easing : 'easeInOutQuart' });
	}
	
	/* Handle supplied movement and fading going to start */
	function animate_to_start(elem) {
		jQuery("#content-nextslide").fadeOut(500);
		jQuery(".slide-img").fadeOut(500, function() {
			jQuery(elem).css({ left: 0 });
		}).delay(1000).fadeIn(3000);
		jQuery("#content-nextslide").delay(4000).fadeIn(2000);
		jQuery("#info").delay(3000).animate({ opacity: 1 }, { duration: 2000,easing : 'swing' });
	}

	function fadein(elem) {
		jQuery(elem).fadeIn();
	}
    
	function fadeout(elem) {
		jQuery(elem).fadeOut();
	}
    
	function update_frame(reset) {
		var slides = jQuery("div.slide");
		var slide = slides[currentSlide];
		var slideFrames = jQuery(slide).find("img.slide-img");

		if (slideFrames.length < 2) {
			return;
		}

		var currentFrame = 0;
		if (reset) {
			jQuery(slide).data("currentFrame", currentFrame);
			jQuery(slideFrames).hide();
		} else {
			currentFrame = jQuery(slide).data("currentFrame");
			currentFrame += 1;
			if (currentFrame >= slideFrames.length) {
				return;
			}
			jQuery(slide).data("currentFrame", currentFrame);
		}
        
		for (var i = 0; i < slideFrames.length; i++) {
			if (i == currentFrame) {
				fadein(slideFrames[i]);
			}
			else if (i > currentFrame) {
				fadeout(slideFrames[i]);
			}
		}
        
		setTimeout(function () {
			update_frame(false);
		}, 1500);
	}
    
	function update_slider(index, force) {
		if (index == currentSlide && !force) {
			return;
		}

		var elem = jQuery("#slider-inner").get(0);
    	var slideWidth = 1200; // jQuery("#slider-frame").outerWidth();
		var maxSlides = jQuery("div.slide").length;
		if((currentSlide+1) == maxSlides) {
			currentSlide = 1;
			animate_to_start(elem);
		} else if (index < 0) {
			currentSlide = maxSlides-1;
			animate_to(elem, ((maxSlides-1) * -slideWidth));
		} else {
			animate_to(elem, index * -slideWidth);
		}
        
		currentSlide = index;
		update_frame(true);
	}
        
	jQuery("#nextslide").click(function () {
		update_slider((currentSlide + 1) % maxSlides);
		return false;
	});
	
	jQuery(document).keydown(function (event) {
		if(event.keyCode == '39') {
			update_slider((currentSlide + 1) % maxSlides);
			return false;
		}
	});
    
});
