document.kSwapTimeout = 5000; /* 6*1000 = 6 seconds */
document.kSwapRetry = 1000;
document.swapData = new Array();
document.currentSwap = 0;
document.swapCount = 0;
document.inAnimation = false;
document.kSwapIsLoaded = true;

document.getNextSwap = function() {
	var nextSwap;

	if(document.currentSwap + 1 >= document.swapData.length) {
		nextSwap = 0;
	} else {
		nextSwap = document.currentSwap + 1;
	}
	
	return nextSwap;
}

document.loadNextImage = function(nextSwap) {
	if(!document.swapData[nextSwap]['image']) {
		document.swapData[nextSwap]['image'] = new Image();
		document.swapData[nextSwap]['image'].src = document.swapData[nextSwap]['path'];
	}
}

document.swapImage = function() {
	if(document.inAnimation || document.swapData.length < 2) {
		return;
	}

	var nextSwap = document.getNextSwap();
	
	if(!document.swapData[nextSwap]['image']) {
		setTimeout('document.swapImage();', document.kSwapRetry);
		return;
	}

	var nextImg = document.getElementById('swapImg'+((document.swapCount+1) % 2));
	
	if(!nextImg) {
		return;
	}
	
	nextImg.src = document.swapData[nextSwap]['path'];
	
	if(document.swapData[nextSwap]['animation']) {
		document.swapData[nextSwap]['animation'].stop();
	}
	
	if(document.swapAnimation) {
		document.swapAnimation();
	}
	
	document.inAnimation = true;
}

document.swapImageFinish = function() {
	var nextSwap = document.getNextSwap();
	var currentDiv = document.getElementById('swapDiv'+(document.swapCount % 2));
	var nextDiv = document.getElementById('swapDiv'+((document.swapCount+1) % 2));
	var tempIndex;
	
	tempIndex = currentDiv.style.zIndex;
	currentDiv.style.zIndex = nextDiv.style.zIndex;
	nextDiv.style.zIndex = tempIndex;
	
	document.currentSwap = nextSwap;
	document.swapCount += 1;
	
	nextSwap = document.getNextSwap();
	document.loadNextImage(nextSwap);
	
	document.inAnimation = false;
}

document.cancelSwap = function() {
	if(document.inAnimation) {
		var nextSwap = document.getNextSwap();

		document.swapData[nextSwap]["animation"].stop();
		document.inAnimation = false;
	} else if(document.swapTimeout) {
		clearTimeout(document.swapTimeout);
	}
}

document.initSwap();
document.loadNextImage(document.getNextSwap());
document.swapTimeout = setTimeout("document.swapImage();", document.kSwapTimeout);