function startSlideshow(image1, image2, imagePaths) {

	var currentImageElement = document.getElementById(image1);
	var nextImageElement = document.getElementById(image2);
	var imageCount = imagePaths.length;

	if (currentImageElement && nextImageElement && imageCount > 0) {

		var index = 0;

		currentImageElement.src = imagePaths[index];
		currentImageElement.style.zIndex = 1;
		xOpacity(currentImageElement, 1.0);

		index = (index + 1) % imageCount;

		nextImageElement.src = imagePaths[index];
		nextImageElement.style.zIndex = 2;
		xOpacity(nextImageElement, 0.0);

		var slideshowData = new Object();
		slideshowData.imagePaths = imagePaths;
		slideshowData.imageCount = imageCount;
		slideshowData.currentImageElement = currentImageElement;
		slideshowData.nextImageElement = nextImageElement;
		slideshowData.imageIndex = index;
		slideshowData.opa = 0.0;

		setTimeout(function() {
			initTransition(slideshowData);
		}, 4000);

	}

}

function initTransition(slideshowData) {

	slideshowData.currentImageElement.style.zIndex = 1;
	slideshowData.nextImageElement.style.zIndex = 2;

	setTimeout(function() {
		runTransition(slideshowData);
	}, 50);

}

function runTransition(slideshowData) {

	var changeImages = false;

	slideshowData.opa = slideshowData.opa + 0.05;
	if (slideshowData.opa > 1.0) {
		slideshowData.opa = 1.0;
	}

	var currentImageElement = slideshowData.currentImageElement;
	var nextImageElement = slideshowData.nextImageElement;

	xOpacity(nextImageElement, slideshowData.opa);

	if (slideshowData.opa == 1.0) {

		var temp = currentImageElement;
		currentImageElement = nextImageElement;
		nextImageElement = temp;

		var imageIndex = (slideshowData.imageIndex + 1) % slideshowData.imageCount;

		nextImageElement.src = slideshowData.imagePaths[imageIndex];
		xOpacity(nextImageElement, 0.0);

		slideshowData.currentImageElement = currentImageElement;
		slideshowData.nextImageElement = nextImageElement;
		slideshowData.imageIndex = imageIndex;
		slideshowData.opa = 0.0;

		setTimeout(function() {
			initTransition(slideshowData);
		}, 4000);

	} else {

		setTimeout(function() {
			runTransition(slideshowData);
		}, 50);

	}

}
