var idx = 0;
var timer = null;
var mouse_el = null;
var orig = null;

var sprite_thumbs = false;
var sprite_height = null;
var sprite_count = null;
var sprite_step = null;

function get_rolling_image(idx) {
    var imagelist = rolling_images[orig];
    if (!imagelist) {
        alert('key E' + orig + 'E not found!');
        var allkeys = []
        for (var k in rolling_images) {
            allkeys.push(k);
        }
        alert('all keys: ' + allkeys);
    }
    for (var n = 0; n < imagelist.length; n++) {
        if (idx == n)
            return imagelist[n];
    }
    return null;
}

function switch_image() {
    var new_img = get_rolling_image(idx);
    idx += 1;
    if (new_img)
        mouse_el.attr('src', new_img);
    else
        idx = 0;
    timer = window.setTimeout(function() { switch_image(); }, 250);
}

function sextank_switch_image() {
    var bg_image = get_rolling_image(0);

    mouse_el.css('background-image', 'url(' + bg_image + ')');

    var ypixel = -idx * sprite_height * sprite_step;
    var bg_pos = '0px ' + ypixel + 'px';
    
    mouse_el.css('background-position', bg_pos);
    
    timer = window.setTimeout(function() { sextank_switch_image(); }, 250);
    idx += 1

    var top_idx = parseInt(sprite_count / sprite_step);
    if (idx == top_idx)
        idx = 0;
}

$(document).ready(function() {
    var roll_sel = $('.box .roll-img');
    roll_sel.mouseover(function() {
        mouse_el = $(this);

        orig = mouse_el.attr('src');
        sprite_thumbs = false;
        if (!orig) {
            sprite_thumbs = true;

            // Lots of text-massaging going on.
            var text = mouse_el.css('background-image')
            orig = text.split("(")[1].split(")")[0];

            var parts = orig.split("\"");
            if (parts.length > 1) {
                orig = parts[1];
            }
            
            var domain = orig.match(/:\/\/(.[^/:]+)/)[1];
            if (domain == 'localhost' || domain == 'www.phobostube.com') {
                var parts = orig.split('/');
                orig = '/' + parts.slice(3).join('/');
            }

            var id = mouse_el.attr('id');
            var parts = id.split('-');
            sprite_count = parseInt(parts[0]);
            sprite_step = parseInt(parts[1]);
            sprite_height = parseInt(parts[2]);
        } 

        idx = 0;
        if (sprite_thumbs) {
            sextank_switch_image();
        } else {
            switch_image();
        }
    });
    roll_sel.bind('click mouseout', function() {
        if (mouse_el) {
            if (sprite_thumbs) {
                mouse_el.css('background-image', 'url("' + orig + '")');
                
                // Both needed for Chrome & FF
                mouse_el.css('background-position-y', '0px');
                mouse_el.css('background-position', '0px 0px');
            } else {
                mouse_el.attr('src', orig);
            }
        }
        window.clearTimeout(timer);
    });
});
