/*
Page image slideshow, with click-to-select controls.
Uses the Revealing Module Pattern.
*/
try {
	var test = COMO.ns;
}
catch (e) {
	COMO = {};
}

COMO.PageImages = (function($) {
	var ns = 'COMO.PageImages';
	var description = 'Page image slideshow and click-to-select-image controls.';
	var slideshowEngine;

	function createSlideshow() {
		// create slideshow and set up image array
		slideshowEngine = new imageslideshowEngine();
		slideshowEngine.images = $('#pageimages img').get();

		// set up control click event handlers
		$('#pageimages .controls li a').each(function(i) {
			$(this).click(function(event) {
				selectImage(i);
				event.preventDefault();
			});
		});

		// start the engine
		slideshowEngine.init(5000, 500, imageSwitched);
	}

	function selectImage(i) {
		slideshowEngine.jumpToPair(i, true);
		imageSwitched({
			to: i
		});
	}

	function imageSwitched(indexes) {
		// deactivate all controls items
		$('#pageimages .controls li.active').removeClass('active');

		// activate the indexed control item
		$('#pageimages .controls li').eq(indexes.to).addClass('active');

		// change caption
		$('#pageimages .caption').text($('#pageimages img').eq(indexes.to).attr('alt'));
	}

	function pause() {
		if (slideshowEngine) {
			slideshowEngine.pauseEngine();
		}
	}
	function unpause() {
		if (slideshowEngine) {
			slideshowEngine.unpauseEngine();
		}
	}

	return {
		ns: ns,
		description: description,
		createSlideshow: createSlideshow,
		selectImage: selectImage,
		imageSwitched: imageSwitched,
		pause: pause,
		unpause: unpause
	};

} (jQuery));


jQuery(document).ready(COMO.PageImages.createSlideshow);
