﻿
var animator = {
    targetUrl: null,
    imageID: null,

    imagePrefix: null,
    imageSuffix: null,
    imageCount: null,
    animStepTime: null,
    currentImage: null,
    waitscreenImages: null
}

function $get(id) {
    return document.getElementById(id);
}

function startAnimatingAndRedirect(url, imageID) {
    animator.targetUrl = url;
    animator.imageID = imageID;

    progressInit('images/progress/anim0', '.gif', 6, 100);
    progressStart();
}

function progressInit(imagePrefix, imageSuffix, imageCount, animStepTime) {

    //save waitscreen params
    animator.imagePrefix = imagePrefix;
    animator.imageSuffix = imageSuffix;
    animator.imageCount = imageCount;
    animator.animStepTime = animStepTime;

    //cache images
    animator.waitscreenImages = new Array(animator.imageCount);
    animator.currentImage = 0;

    for (var i = 0; i < animator.imageCount; i++) {
        animator.waitscreenImages[i] = new Image();
        animator.waitscreenImages[i].src = animator.imagePrefix + i + animator.imageSuffix;
    }
    $get(animator.imageID).src = animator.waitscreenImages[animator.currentImage].src;
}

function progressStart() {
    $get(animator.imageID).style.display = "block";
    animate();
    setTimeout('gotoTarget()', 0);
}

function animate() {

    animator.currentImage = (animator.currentImage + 1) % animator.imageCount;
    $get(animator.imageID).src = animator.waitscreenImages[animator.currentImage].src;

    setTimeout('animate()', animator.animStepTime);
}

function gotoTarget() {
    location.replace(animator.targetUrl);
}

