// ============================================================================
// Developed by Kernel Team.
// http://kernel-team.com
// ============================================================================

function KT_rotationEngineStartup(tp, wp) {
	KT_rotationEngineStartup._THUMBS = {};
	if (window['KT_rotationEngineWaitPeriod']) {
		KT_rotationEngineStartup._ROTATION_PERIOD_MS = window['KT_rotationEngineWaitPeriod'] * 1000;
	} else {
		KT_rotationEngineStartup._ROTATION_PERIOD_MS = wp * 1000;
	}
	KT_rotationEngineStartup._ROTATION_ID = null;
	KT_rotationEngineStartup._ROTATION_UID = null;
	KT_rotationEngineStartup._DUMMY = tp;
}

function KT_rotationStop(image) {
	if (KT_rotationEngineStartup._ROTATION_ID) {
		var thumbData = KT_rotationEngineStartup._THUMBS[KT_rotationEngineStartup._ROTATION_ID];
		if (thumbData && thumbData['thumb'] && thumbData['thumbInitial']) {
			thumbData['thumb'].src = thumbData['thumbInitial'];
		}
	}
	KT_rotationEngineStartup._ROTATION_ID = null;
	KT_rotationEngineStartup._ROTATION_UID = null;
	KT_rotationEngineStartup._DUMMY = image;
}

function KT_rotationStart(image, urlPrefix, thumbCount, thumbExt) {
	KT_rotationStop(null);

	if (image) {
		var currentThumbUrl = image.src;

		var thumbId = image.id;
		if (!thumbId) {
			thumbId = 'KT_rotationEngineStartup_' + new Date().getTime();
			image.id = thumbId
		}
		var initialIdx = 1;
		if (image.src.indexOf(urlPrefix + initialIdx + (thumbExt ? thumbExt : '.jpg'))>=0)
		{
			initialIdx = 2;
		}
		KT_rotationEngineStartup._THUMBS[thumbId] = {
			thumb: image,
			thumbInitial: currentThumbUrl,
			prefix: urlPrefix,
			count: thumbCount,
			ext: thumbExt,
			idx: initialIdx - 1
		};

		if (KT_rotationEngineStartup._THUMBS[thumbId]['thumb']) {
			KT_rotationEngineStartup._ROTATION_UID = new Date().getTime();
			KT_rotationEngineStartup._ROTATION_ID = thumbId;
			KT_rotationInvoke(thumbId, KT_rotationEngineStartup._ROTATION_UID);
		}
	}
}

function KT_rotationInvoke(thumbId, uid) {
	var thumbData = KT_rotationEngineStartup._THUMBS[thumbId];
	if (thumbData) {
		var thumb = thumbData['thumb'];
		var prefix = thumbData['prefix'];
		var count = thumbData['count'];
		var ext = thumbData['ext'];
		var idx = thumbData['idx'];

		idx = (idx == count ? 1 : idx + 1);
		thumbData['idx'] = idx;

		var url = prefix + idx + (ext ? ext : '.jpg');
		var img = new Image();
		img.onload = function() {
			if ((thumbId == KT_rotationEngineStartup._ROTATION_ID) && (uid == KT_rotationEngineStartup._ROTATION_UID)) {
				if (img.width == 0) {
					KT_rotationInvoke(thumbId, uid);
				}
				thumb.src = url;
				setTimeout('KT_rotationInvoke(\'' + thumbId + '\', ' + uid + ')', KT_rotationEngineStartup._ROTATION_PERIOD_MS);
			}
		};
		img.onerror = function() {
			if ((thumbId == KT_rotationEngineStartup._ROTATION_ID) && (uid == KT_rotationEngineStartup._ROTATION_UID)) {
				KT_rotationInvoke(thumbId, uid);
			}
		};
		img.src = url;
		KT_rotationEngineStartup._THUMBS[thumbId] = thumbData;
	}
}