﻿$j(document).ready(function() {
	var $heroImages = $j('#hero-images .hero-image');
	var $nextButton = $j('#hero-next');
	var $prevButton = $j('#hero-prev');
	var $playButton = $j('#hero-play');
	var $pauseButton = $j('#hero-pause');
	var currentImage = 0;
	var totalImages = $heroImages.length;
	var cycleInterval;
	var delayTimeout;

	function setupCycle() {
		clearInterval(cycleInterval);
		cycleInterval = setInterval(nextImage, 5000);
	}

	function delayCycle() {
		clearInterval(cycleInterval);
		clearTimeout(delayTimeout);
		delayTimeout = setTimeout(setupCycle, 10000);
	}

	function stopCycle() {
		clearInterval(cycleInterval);
		clearTimeout(delayTimeout);
	}

	function nextImage() {
		$heroImages.eq(currentImage).hide();
		currentImage = (currentImage + 1) % totalImages;
		$heroImages.eq(currentImage).show();
	}

	function prevImage() {
		$heroImages.eq(currentImage).hide();
		currentImage = (currentImage == 0) ? totalImages - 1 : currentImage - 1;
		$heroImages.eq(currentImage).show();
	}

	if (totalImages > 0 && $nextButton.length == 1 && $prevButton.length == 1) {
		$nextButton.click(function() {
			nextImage();
			if ($pauseButton.is(':visible')) {
				delayCycle();
			}
		});

		$prevButton.click(function() {
			prevImage();
			if ($pauseButton.is(':visible')) {
				delayCycle();
			}
		});

		$pauseButton.click(function() {
			$pauseButton.hide();
			$playButton.show();
			stopCycle();
		});

		$playButton.click(function() {
			$playButton.hide();
			$pauseButton.show();
			setupCycle();
		});

		$heroImages.find('img[src]').each(function() {
			var img = new Image();
			img.src = this.src;
		});

		$heroImages.eq(0).show();

		$playButton.hide();

		setupCycle();
	}
});
