/**
 * @author Giorgo Paizanis
 */

// Globals
currentSlide= 1;
totalSlides= 0;
timePassed = 0;
timeToChange = 5;
useHash = true;
autoPlay = true;

// Auto advance function
function nextSlide(){
	if (window.timePassed == timeToChange){
		window.timePassed = 0;
		if(window.currentSlide == totalSlides){
			window.currentSlide = 0;	
		}
		if(autoPlay == true){
			$('.promo-slider-nav a.promo-slider-nav-item:nth-child('+(window.currentSlide+1)+')').trigger('click');
		}
	} else {
		window.timePassed += 1;
	}
	
}

//Setup the caption animation
function setCaption(){
	var captionHeight = $('.promo-slider-caption-content').height();
	var promoSliderHeight = $('.promo-slider-container').height();
	var newCaptionHeight = promoSliderHeight - captionHeight;
	$('.promo-slider-caption-content').animate({top: newCaptionHeight}, 500);
}

// Initialize the slider by loading the first panel caption and animating.
function initializePromo(){
	$('.promo-slider-caption-content').html(
		$('.promo-slider-slides .promo-slider-caption:first').html()
	);
	$('a.promo-slider-nav-item:first').addClass('selected');
	setCaption();
}

// Run script once the document is ready
$(document).ready(function() {
	
	//If global var autoPlay == true, start timer
	if(autoPlay){
		setInterval(nextSlide,1000);
	}
	
	//Stop autoplay on hover and resume on hover out
	$('.promo-slider-container').hover(
		function(){
			window.autoPlay = false;
			$(this).removeClass('autoplay');
		} , 
		function(){
			window.autoPlay = true;
			window.timePassed = 0;
			$(this).addClass('autoplay');
		}
	);
	
	//Generate Photo Lineup
	$('img.promo-slider-photo').each(function(index){
		var photoWidth = $('.promo-slider').width();
		var photoPosition = index * photoWidth;
		var photoLink = $('.promo-slider-slides .promo-slider-link:eq('+(index)+')').html();
		$('.promo-slider').append('<a href="'+(photoLink)+'"><img class="promo-slider-photo" style="left:"'+photoPosition+'" src="'+$(this).attr('src')+'" alt="'+$(this).attr('alt')+'" /></a>');
		$('.promo-slider').css('width', photoPosition+photoWidth);
		window.totalSlides = index + 1;
	});

	
	// Add Links to the Lineup
	$('.promo-slider .promo-slider-photo').each(function(index){
		$('.promo-slider .promo-slider-photo['+(index)+']').wrap($('.promo-slider-link['+(index)+']'));
	});
	
	// Build the navigation link
	$('.promo-slider-slides > div').each(function(index){
		if(window.useHash){
			$('.promo-slider-nav').append('<a class="promo-slider-nav-item" href="#slide-'+(index +1)+'">&nbsp;</a>');
		} else {
			$('.promo-slider-nav').append('<a class="promo-slider-nav-item">&nbsp;</a>');
		}
	})
	
	// Set up click events for nav Links
	$('.promo-slider-nav a.promo-slider-nav-item').click(function(){
		$('.promo-slider-nav a.promo-slider-nav-item').removeClass('selected');
		$(this).addClass('selected');
		var navClicked = $(this).index();
		window.currentSlide = navClicked + 1;
		var slideWidth = $('.promo-slider-container').width();
		var distanceToMove = slideWidth * (-1);
		var newPhotoPosition = navClicked * distanceToMove + 'px';
		var newCaption = $('.promo-slider-caption').get(navClicked);
		$('.promo-slider').animate({left: newPhotoPosition}, 1000);
		$('.promo-slider-caption-content').animate({top: '381px'},600, function(){
			var newHtml = $(newCaption).html();
			$('.promo-slider-caption-content').html(newHtml);
			setCaption();
		});
	});
	
	//Initialize
	initializePromo();
});
