//--------------------------------------------------
// Author: Chris Lock
// Copyright (c) 2009
//--------------------------------------------------

//--------------------------------------------------
// VARIABLES
//--------------------------------------------------
var bgRatio = 3;
var imgWidth = 1500;
var minWidth = 1005;
var slideFade = 1500;
var slideInterval = 7000;


//--------------------------------------------------
// RESIZE
//--------------------------------------------------
function resizeImg() {
	var winWidth = $(window).width();
	var winHeight = $('div#home-slideshow').height();
	
	if ( winWidth > imgWidth ) {
		var newHeight = winWidth / bgRatio;
		
		$('img.resize').css('width', winWidth).css('height', newHeight).css( { left: '0px', top: (winHeight-newHeight)/2 + 'px' } );
	} else {
		if ( winWidth > minWidth ) {
			var newHeight = imgWidth / bgRatio;
			
			$('img.resize').css('width', imgWidth).css('height', newHeight).css( { left: (winWidth-imgWidth)/2 + 'px', top: '0px' } );
		} else {
			var newHeight = imgWidth / bgRatio;
			
			$('img.resize').css('width', imgWidth).css('height', newHeight).css( { left: (minWidth-imgWidth)/2 + 'px', top: '0px' } );
		}
	}
}


//--------------------------------------------------
// SLIDESHOW
//--------------------------------------------------
function slideShow() {
	$('div#slides img.slide:first').addClass('active');
	$('div#slides-nav div.slide-nav-section:first ul.slide-nav-links li.nav-link:first a').addClass('active-link');
	
	function fade() {
		if ( !$('div#slides').hasClass('working') ) {
			var active = $('div#slides img.active');
			var next = active.next();
			var activeLink = $('ul.slide-nav-links li.nav-link a.active-link');
			var nextLink = activeLink.parent('li.nav-link').next('li.nav-link').children('a');
			
			if ( active.is(':last-child') ) {
				var next = $('div#slides img.slide:first');
			}
			
			if ( activeLink.parent('li.nav-link').is(':last-child') ) {
				if ( activeLink.parent('li.nav-link').parent('ul.slide-nav-links').parent('div.slide-nav-section').is(':last-child') ) {
					var nextLink = $('div.slide-nav-section:first').children('ul.slide-nav-links').children('li.nav-link:first').children('a');
				} else {
					var nextLink = activeLink.parent('li.nav-link').parent('ul.slide-nav-links').parent('div.slide-nav-section').next().children('ul.slide-nav-links').children('li.nav-link:first').children('a');
				}
			}
			
			$('div#slides').addClass('working');
			
			next.addClass('next').show();
			activeLink.removeClass('active-link');
			nextLink.addClass('active-link');
			active.fadeOut(slideFade, function() {
				next.removeClass('next').addClass('active');
				active.removeClass('active');
				
				$('div#slides').removeClass('working');
			});
		}
	}
	
	$('ul.slide-nav-links li a').click( function(e) {
		$(this).blur();
		e.preventDefault();
	});
	
	$('ul.slide-nav-links li a').click( function() {
		if ( !$(this).hasClass('active-link') ) {
			if ( !$('div#slides').hasClass('working') ) {
				var navLinkId = $(this).attr('id');
				var active = $('div#slides img.active');
				var next = $('div#slides img#slide-' + navLinkId);
				var activeLink = $('ul.slide-nav-links li.nav-link a.active-link');
				var nextLink = $(this);
				
				$('div#slides').addClass('working');
				
				clearInterval(startSlideShow);
				
				next.addClass('next').show();
				activeLink.removeClass('active-link');
				nextLink.addClass('active-link');
				active.fadeOut(slideFade, function() {
					next.removeClass('next').addClass('active');
					active.removeClass('active');
					
					startSlideShow = setInterval(fade, slideInterval);
					
					$('div#slides').removeClass('working');
				});
			}
		}
	});
	
	if ( $('img.slide').size() > 1 ) {
		startSlideShow = setInterval(fade, slideInterval);
	}
}


//--------------------------------------------------
// START
//--------------------------------------------------
$(document).ready( function() {
	if ( $('div#home-slideshow').css('display') == 'none' ) {
		$('div#home-slideshow').show();
		slideShow();
		resizeImg();


//--------------------------------------------------
// RESIZE
//--------------------------------------------------
		$(window).bind('resize', function() { 
			resizeImg();
		});
	}
});


