/*
* Author:      Marco Kuiper (http://www.marcofolio.net/)
*/

// Speed of the automatic slideshow
var slideshowSpeed = 6000;

//Set the path to the image directory
var imagePath = '/wci/wp-content/themes/wine_country_inn/images/';

// Variable to store the images we need to set as background
// which also includes some text and url's.
var photos = [ {
		'title' : 'Wine Country Inn',
		'image' : 'hdr_0000_home.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Sleeping',
		'image' : 'hdr_0001_sleeping.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Waking Up',
		'image' : 'hdr_0002_waking_up.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Dining',
		'image' : 'hdr_0006_dining.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Touring',
		'image' : 'hdr_0004_touring.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Planning',
		'image' : 'hdr_0003_planning.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Relaxing',
		'image' : 'hdr_0005_relaxing.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Saving',
		'image' : 'hdr_0007_saving.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Eloping',
		'image' : 'hdr_0008_eloping.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Celebrating',
		'image' : 'hdr_0009_celebrating.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Events',
		'image' : 'hdr_0010_events.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Exercising',
		'image' : 'hdr_0011_exercising.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}, {
		'title' : 'Bragging',
		'image' : 'hdr_0012_bragging.jpg',
		'url' : 'http://www.winecontryinn.com',
		'firstline' : 'Napa Valley',
		'secondline' : 'Bed and Breakfast'
	}
];



$(document).ready(function() {
		
	// Backwards navigation
	$('#back').click(function() {
		stopAnimation();
		navigate('back');
	});
	
	// Forward navigation
	$('#next').click(function() {
		stopAnimation();
		navigate('next');
	});
	
	var interval;
	$('#control').toggle(function(){
		stopAnimation();
	}, function() {
		// Change the background image to 'pause'
		$(this).css({ 'background-image' : 'url(images/btn_pause.png)' });
		
		// Show the next image
		navigate('next');
		
		// Start playing the animation
		interval = setInterval(function() {
			navigate('next');
		}, slideshowSpeed);
	});
	
	
	var activeContainer = 1;	
	var currentImg = 0;
	var animating = false;
	var navigate = function(direction) {
		// Check if no animation is running. If it is, prevent the action
		if(animating) {
			return;
		}
		
		// Check which current image we need to show
		if(direction == 'next') {
			var prevImg = currentImg - 1;
   			$("#main_nav ul li a.item_" + currentImg).toggleClass("hovered");
   			$("#main_nav ul li a.item_" + prevImg).toggleClass("hovered");
			currentImg++;
			if(currentImg == photos.length + 1) {
				currentImg = 1;
			}
		} else {
			currentImg--;
			if(currentImg == 0) {
				currentImg = photos.length;
			}
		}
		
		// Check which container we need to use
		var currentContainer = activeContainer;
		if(activeContainer == 1) {
			activeContainer = 2;
		} else {
			activeContainer = 1;
		}
		
		showImage(photos[currentImg - 1], currentContainer, activeContainer);
		
	};
	
	var currentZindex = -1;
	var showImage = function(photoObject, currentContainer, activeContainer) {
		animating = true;
		
		// Make sure the new container is always on the background
		currentZindex--;
		
		// Set the background image of the new active container
		$('#headerimg' + activeContainer).css({
			'background-image' : 'url(' + imagePath + photoObject.image + ')',
			'display' : 'block',
			'z-index' : currentZindex
		});
		
		// Hide the header text
		$('#headertxt').css({'display' : 'none'});
		
		// Set the new header text
		$('#firstline').html(photoObject.firstline);
		$('#secondline')
			.attr('href', photoObject.url)
			.html(photoObject.secondline);
		$('#pictureduri')
			.attr('href', photoObject.url)
			.html(photoObject.title);
		
		
		// Fade out the current container
		// and display the header text when animation is complete
		$('#headerimg' + currentContainer).fadeOut(function() {
			setTimeout(function() {
				$('#headertxt').css({'display' : 'block'});
				animating = false;
			}, 500);
		});
	};

	
	var stopAnimation = function() {
		// Change the background image to 'play'
		$('#control').css({ 'background-image' : 'url(images/btn_play.png)' });
		
		// Clear the interval
		clearInterval(interval);
	};
	
	// We should statically set the first image
	navigate('next');
	
	// Start playing the animation
	var startAnimation = function() {
	interval = setInterval(function() {
		navigate('next');
	}, slideshowSpeed);
	};
	
	//We need to preload the images
	var preload = function () {
    var i = 0;

	var preloadnext = function() {
		x = i + 1;
		if (i < photos.length) {
			if (x != photos.length) {
				var img = new Image();
				img.onload = preloadnext;
				img.src = imagePath +photos[++i].image;
			} else {
				startAnimation();
			}
		}
    };

    preloadnext();
	};
	
	preload();
	
	
});
