var THUMB_WIDTH = 180;
var THUMB_HEIGHT = 120;
var LOAD_RETRY_COUNT = 20;
var RETRY_INTERVAL_MS = 3000;

var g_img_list = new Array();
var g_img_valid = new Array();
var g_img_loaded = new Array();
var g_list_size = 0;
var g_retry_count = 0;

function resize_img(index)
{
    var img = g_img_list[index];
    var img_valid = false;
    if (img.height >= THUMB_HEIGHT)
    {
        img.width = (img.width * THUMB_HEIGHT) / img.height;
        img.height = THUMB_HEIGHT;
        img_valid = (img.width >= THUMB_HEIGHT / 2);
    }
    if (img.width >= THUMB_WIDTH)
    {
        img.height = (img.height * THUMB_WIDTH) / img.width;
        img.width = THUMB_WIDTH;
        img_valid = (img.height >= THUMB_WIDTH / 2);
    }
    if (img_valid)
    {
        var img_in_doc = document.images[img.name];
        if (img_in_doc.style.visibility == "hidden")
        {
            img_in_doc.style.visibility = "visible";
            img_in_doc.src = img.src;
            img_in_doc.width = img.width;
            img_in_doc.height = img.height;
        }
        else
        {
            img_in_doc.title = 'Click the Image to see more ...';
            img_in_doc.style.cursor = "pointer";

        }
        g_img_valid[index] = true;
    }
}

function check_all_img()
{
    var i = 0, completed = 0;
    for (i = 0; i < g_list_size; ++i)
    {
        var img = g_img_list[i];
        if ((g_img_loaded[i] == false) && img.complete)
        {
            ++completed;
            resize_img(i);
            g_img_loaded[i] = true;
        }
    }
    if (g_retry_count++ < LOAD_RETRY_COUNT)
        setTimeout(check_all_img, RETRY_INTERVAL_MS);
}

function add_img_set(list, name)
{
    var i = 0;
    for (i = 0; i < list.length; ++i)
    {
        g_img_list[g_list_size] = new Image();
        g_img_list[g_list_size].name = name;
        g_img_list[g_list_size].src = list[i];
        g_img_valid[g_list_size] = false;
        g_img_loaded[g_list_size] = false;
        ++g_list_size;
    }
}

function img_switch(name)
{
    var img_in_doc = document.images[name];
    var current = 0;
    var i = 0;

    for (i = 0; i < g_list_size; ++i)
    {
        var img = g_img_list[i];
        if (g_img_valid[i] && img_in_doc.src == img.src)
        {
            current = i;
            break;
        }
    }

    for (i = 0; i < g_list_size; ++i)
    {
        if (++current >= g_list_size)
        {
            current = 0;
        }
        var img = g_img_list[current];
        if (g_img_valid[current] && name == img.name)
        {
            img_in_doc.src = img.src;
            img_in_doc.width = img.width;
            img_in_doc.height = img.height;
            return true;
        }
    }
    return false;
}

