/*
Supersized - Fullscreen Slideshow jQuery Plugin
By Sam Dunn (www.buildinternet.com // www.onemightyroar.com)
Version: supersized.2.0.js // Relase Date: 5/7/09
Website: www.buildinternet.com/project/supersized
Thanks to Aen for preloading, fade effect, & vertical centering
*/

(function($){

	//Resize image on ready or resize
	$.fn.supersized = function() {
		$.inAnimation = false;
		$.paused = false;
		$.len = $('#supersize > div').length;
		slideshow_interval = 0;

		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
		$.fade_speed = options.fade_speed;
		$.click_fade_speed = options.click_fade_speed;
		
		$(window).bind("load", function(){
			$('#loading').hide();

			slideshow_interval = setInterval("nextslide()", options.slide_interval);
			
			$('#prev').click(function() {
				clearInterval(slideshow_interval);
				prevslide();
				slideshow_interval = setInterval(nextslide, options.slide_interval);
				return false;
			});
			$('#next').click(function() {
				clearInterval(slideshow_interval);
				nextslide();
				slideshow_interval = setInterval(nextslide, options.slide_interval);
				return false;
			});
			
		});
				
		$(document).ready(function() {
			$('#supersize').resizenow(); 			
			$('#supersize div:first').addClass('active');
			$('#interstitial_container').hide();		
			$('.interstitial:first').hide();
			$('#content').hide();
			$('#loading').hide();	
			$('#interstitial_container').show();			
			$('.interstitial:first').show();			
			$('#content').fadeIn('slow');			
			$('#loading').fadeIn('slow');
		});
		
		$(window).bind("resize", function(){
    		$('#supersize').resizenow(); 
		});

	};
	
	
	
	//Adjust image size
	$.fn.resizenow = function() {
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	  	return this.each(function() {
			//Define image ratio
			var ratio = options.startheight/options.startwidth;
			
			//Gather browser and current image size
			var imagewidth = $(this).width();
			var imageheight = $(this).height();
			var browserwidth = $(window).width();
			var browserheight = $(window).height();
			var offset;

			//Resize image to proper ratio
			if ((browserheight/browserwidth) > ratio){
			    $(this).height(browserheight);
			    $(this).width(browserheight / ratio);
			    $(this).children().height(browserheight);
			    $(this).children().width(browserheight / ratio);
			} else {
			    $(this).width(browserwidth);
			    $(this).height(browserwidth * ratio);
			    $(this).children().width(browserwidth);
			    $(this).children().height(browserwidth * ratio);
			}
			if (options.vertical_center == 1){
				$(this).children().children('img').css('left', (browserwidth - $(this).width())/2);
				$(this).children().children('img').css('top', (browserheight - $(this).height())/2);
			}
			return false;
		});
	};
	
	$.fn.supersized.defaults = { 
			startwidth: 4,  
			startheight: 3,
			vertical_center: 1,
			slideshow: 1,
			navigation:1,
			transition: 1, //0-None, 1-Fade, 2-slide top, 3-slide right, 4-slide bottom, 5-slide left
			pause_hover: 0,
			slide_counter: 1,
			slide_captions: 1,
			slide_interval: 5000,
			fade_speed: 500,
			click_fade_speed: 100
	};
	
})(jQuery);

/**
	TODO
	make left nav work
	move loader into center
	
**/

function nextslide() {
	if($.inAnimation) return false;
	else $.inAnimation = true;		
	
	var currentslide = $('.active');
	
	if ($(currentslide).attr('id').match(/inter/)) {
		var curr_index = $(currentslide).index();
		$('#interstitial_container').fadeOut($.click_fade_speed, function() {
			$('#interstitial_container > div').hide();
		});
		currentslide = $('#supersize > div:eq('+curr_index+')');
	}

	currentslide.delay(100).fadeOut($.click_fade_speed, function() {
		$(this).removeClass('active');
		if ( currentslide.length == 0 ) currentslide = $('#supersize div:last');		
	    var nextslide =  currentslide.next().length ? currentslide.next() : $('#supersize div:first');
	    var prevslide =  nextslide.prev().length ? nextslide.prev() : $('#supersize div:last');

		$('.prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide').hide();
		nextslide.hide().addClass('active');
		if ($(nextslide).attr('id').match(/inter/)) {
			var new_index = $(nextslide).index();
			var temp_id = $(nextslide).attr('id');
			var new_id = temp_id.replace('inter','');
			new_id -= 1;
			$('.interstitial:eq('+new_id+')').show();
			
			var curr_class = $('.interstitial:eq('+new_id+')').attr('class');
			if (curr_class == 'interstitial contact') {
				clearInterval(slideshow_interval);
				$('#controls a#next').html('Start again');
			}else{
				$('#controls a#next').html('Next');
			}
			$('#controls a').hover(function() {
				$(this).css('color','#4d4e4d');
			}, function() {
				$(this).css('color','#e7e1dc');
			});
			
			$('#interstitial_container').hide();
			$('#interstitial_container').fadeIn($.click_fade_speed, function() {$.inAnimation = false;});
			nextslide = $('#supersize div:eq('+new_index+')');
			$('#navigation li').removeClass('selected');
			if (curr_class == 'interstitial welcome') {
				$('#navigation li#welcome').addClass('selected');
			}else if (curr_class == 'interstitial contact') {
				$('#navigation li#contact').addClass('selected');
			}
		}else{	
			$('#controls a').hover(function() {
				$(this).css('color','#fd4f59');
			}, function() {
				$(this).css('color','#e7e1dc');
			});		
			nextslide.fadeIn($.click_fade_speed, function(){$.inAnimation = false;});		
			var folder = $('img',nextslide).attr('class');
			if (folder) {
				$('#navigation li').removeClass('selected');
				$('#navigation li a.'+folder).parent().addClass('selected');
			}else{		
				$('#navigation li').removeClass('selected');
			}
		}												

		$('#supersize').resizenow();//Fix for resize mid-transition
	});	
	
	
}

function prevslide() {
	if($.inAnimation) return false;
	else $.inAnimation = true;
	var currentslide = $('#supersize .active');
	
	if ($(currentslide).attr('id').match(/inter/)) {
		var curr_index = $(currentslide).index();
		$('#interstitial_container').fadeOut($.click_fade_speed, function() {
			$('#interstitial_container > div').hide();
		});
		currentslide = $('#supersize > div:eq('+curr_index+')');
	}
	
	
	currentslide.delay(100).fadeOut($.click_fade_speed, function() {
		$(this).removeClass('active');
		if ( currentslide.length == 0 ) currentslide = $('#supersize div:first');		
	    var nextslide =  currentslide.prev().length ? currentslide.prev() : $('#supersize div:last');
	    var prevslide =  nextslide.next().length ? nextslide.next() : $('#supersize div:first');

		$('.prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide').hide();		
		nextslide.hide().addClass('active');
		if ($(nextslide).attr('id').match(/inter/)) {
			var new_index = $(nextslide).index();
			var temp_id = $(nextslide).attr('id');
			var new_id = temp_id.replace('inter','');
			new_id -= 1;
			$('.interstitial:eq('+new_id+')').show();
			var curr_class = $('.interstitial:eq('+new_id+')').attr('class');
			if (curr_class == 'interstitial contact') {
				clearInterval(slideshow_interval);
				$('#controls a#next').html('Start again');
			}else{
				$('#controls a#next').html('Next');
			}
			$('#controls a').hover(function() {
				$(this).css('color','#4d4e4d');
			}, function() {
				$(this).css('color','#e7e1dc');
			});
			
			$('#interstitial_container').hide();
			$('#interstitial_container').fadeIn($.click_fade_speed, function() {$.inAnimation = false;});
			nextslide = $('#supersize div:eq('+new_index+')');
			$('#navigation li').removeClass('selected');
			if (curr_class == 'interstitial welcome') {
				$('#navigation li#welcome').addClass('selected');
			}else if (curr_class == 'interstitial contact') {
				$('#navigation li#contact').addClass('selected');
			}
		}else{	
			$('#controls a#next').html('Next');		
			nextslide.fadeIn($.click_fade_speed, function(){$.inAnimation = false;});		
			var folder = $('img',nextslide).attr('class');
			if (folder) {
				$('#navigation li').removeClass('selected');
				$('#navigation li a.'+folder).parent().addClass('selected');
			}else{
				$('#navigation li').removeClass('selected');
			}
		}
		$('#supersize').resizenow();//Fix for resize mid-transition
	});
	
}
