document.kSwapTimeout = 6000; /* 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 || (document.kSwap3 && document.swapData.length < 4)) {
		return;
	}

	var nextSwap = document.getNextSwap();
	
	if(!document.swapData[nextSwap]['image']) {
		setTimeout('document.swapImage();', document.kSwapRetry);
		return;
	}
	
	if(document.kSwap3) {
		var nextImg = document.getElementById('swapImg'+((Math.floor(document.swapCount / 3) + 1) % 2)+"_"+(document.swapCount % 3));
	} else {
		var nextImg = document.getElementById('swapImg'+((document.swapCount+1) % 2));
	}
	
	if(!nextImg) {
		return;
	}
	
	nextImg.src = document.swapData[nextSwap]['path'];
	if(document.kSwap3) {
		nextImg.onclick = function() { popupMedia(document.swapData[nextSwap]['path'].replace('.jpg', '_large.jpg'), document.swapData[nextSwap]['width'], document.swapData[nextSwap]['height']); }
	}
	
	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();
	if(document.kSwap3) {
		var currentDiv = document.getElementById('swapDiv'+(Math.floor(document.swapCount / 3) % 2)+"_"+(document.swapCount % 3));
		var nextDiv = document.getElementById('swapDiv'+((Math.floor(document.swapCount / 3) + 1) % 2)+"_"+(document.swapCount % 3));
	} else {
		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);
	}
}