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

// ============================================================================
// | Thumbnail rotator                                                        |
// ============================================================================

function KTThumbRotation(thumbId, urlPrefix, thumbCount, thumbExt) {
    KTThumbStopRotation();
    KTThumbRotation._THUMBS[thumbId] = {
        thumb: document.getElementById(thumbId),
        thumbInitial: (document.getElementById(thumbId) ? document.getElementById(thumbId).src : null),
        prefix: urlPrefix,
        count: thumbCount,
        ext: thumbExt,
        idx: 1
    };

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

KTThumbRotation._THUMBS = new Object();
KTThumbRotation._ROTATION_PERIOD_MS = 700;
KTThumbRotation._ROTATION_ID = null;
KTThumbRotation._ROTATION_UID = null;

KTThumbRotation._rotation = function(thumbId, uid) {
    var thumbData = KTThumbRotation._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 == KTThumbRotation._ROTATION_ID) && (uid == KTThumbRotation._ROTATION_UID)) {
                if (img.width == 0) {
                    KTThumbRotation._rotation(thumbId, uid);
                }
                thumb.src = url;
                setTimeout('KTThumbRotation._rotation(\'' + thumbId + '\', ' + uid + ')', KTThumbRotation._ROTATION_PERIOD_MS);
            }
        }
        img.onerror = function() {
            if ((thumbId == KTThumbRotation._ROTATION_ID) && (uid == KTThumbRotation._ROTATION_UID)) {
                KTThumbRotation._rotation(thumbId, uid);
            }
        }
        img.src = url;
        KTThumbRotation._THUMBS[thumbId] = thumbData;
    }
}

function KTThumbStopRotation() {
    if (KTThumbRotation._ROTATION_ID) {
        var thumbData = KTThumbRotation._THUMBS[KTThumbRotation._ROTATION_ID];
        if (thumbData && thumbData['thumb'] && thumbData['thumbInitial']) {
            thumbData['thumb'].src = thumbData['thumbInitial'];
        }
    }
    KTThumbRotation._ROTATION_ID = null;
    KTThumbRotation._ROTATION_UID = null;
}