var animations = new Array();
var animation_states = new Array();
var animation_guids = new Array();
var animations_max = new Array();

function initAnimations(data)
{
    $.each(data, function(k, _data){
        var guid = _data[0];
        var max = _data[1];

        var obj = $('img#' + k);

        if ((obj.length) && max > 0) {
            animations[k] = new Array();
            animation_states[k] = -1;
            animations_max[k] = max;
            animation_guids[k] = guid;

            for (i = 1; i <= max; i++){
                animations[k][i] = new Image();
            }

            obj.hover(
                function(){
                    animation_states[k] = 0;
                    nextImage(k);
                },
                function(){
                    animation_states[k] = -1;
                    $(this).attr('src', screenshotUrl(guid));
                }
            );
        }
    })
}

function nextImage(k)
{
    if (animation_states[k] == -1)
        return;

    var next_state = (animation_states[k] + 1 > animations_max[k] ? 1 : animation_states[k] + 1);
    var obj = animations[k][next_state];

    if (!obj.src) {
        obj.src = screenshotUrl(animation_guids[k], next_state);
    }

    if (!obj.complete) {
        window.setTimeout('nextImage("' + k + '")', 20);
        return;
    }

    $('#' + k).attr('src', obj.src);
    animation_states[k] = next_state;

    window.setTimeout('nextImage("' + k + '")', 750); // next
}

function screenshotUrl(guid, frame)
{
    var url = 'http://p1.freudbox.com/screenshots/' + guid.charAt(0) + '/' + guid.charAt(1) + '/' + guid;

    if (frame) {
        url += '-n' + frame;
    } else {
        url += '-200';
    }

    url += '.jpg';

    return url;
}
