/*--------------------------------------------------------------------------*/

var stop_refresh = true;
var prev_n;
var image_shortlist;
var image_shortlist_uploaded = false;
var time = 0;

/*--------------------------------------------------------------------------*/

var submit_launch_request = function()
{
    new Ajax.Request("/python/submit_page.py/submit",
    {
        method: 'get',
        parameters: {"submit_url": submit_url},
        onSuccess: function(transport) {
            submit_id = transport.responseText;
            submit_get_state();
        }
    });

    prev_n = -1;
    stop_refresh == false;
    button_actif = false;

    $('submit_shortlist_content').innerHTML = '';
}

/*--------------------------------------------------------------------------*/

var submit_get_state = function()
{
    new Ajax.Request("/python/submit_page.py/get_state",
    {
        method: 'get',
        parameters: submit_id,
        onSuccess: function(transport) {
            current_state = eval(transport.responseText);
            submit_timed_prog(current_state);
        }
    });
}

/*--------------------------------------------------------------------------*/

var submit_timed_prog = function(current_state)
{
    if(current_state.name == 'end')
    {
        if(stop_refresh == true) {
            button_actif = true;
        }
        else
        {
            stop_refresh = true;
            setTimeout("submit_get_state();", 200);
        }

        init_html_button();
    }
    else {
        setTimeout("submit_get_state();", 200);
    }

    switch(current_state.n)
    {
        case 1:
            time = Math.floor(current_state.frac * 10);
            break;

        case 2:
            time = Math.floor(10 + current_state.frac * 20);
            break;

        case 3:
            time = Math.floor(30 + current_state.frac * 40);
            break;

        case 4:
            time = Math.floor(70 + current_state.frac * 30);
            break;

        case 5:
            time = 100;
            break;
    }

    state = current_state.name;

    time += '%';

    $("progress_bar_text_1").innerHTML = state;
    $("progress_bar_text_2").innerHTML = state;
    $("progress_bar_bar").setStyle({'width': time})

    show_ready();
}

/*--------------------------------------------------------------------------*/

function show_ready()
{
    while(prev_n <= current_state.n)
    {
        /**/ if(prev_n == 1) { // in function 
        }
        else if(prev_n == 2) {  // computing descriptors done
        }
        else if(prev_n == 3) { // VW done
        }
        else if(prev_n == 4) { // bigimbaz query done
        }
        else if(prev_n == 5) { // filter done
            show_filtered();
        }

        prev_n++;
    }
}

/*--------------------------------------------------------------------------*/

function show_shortl()
{
    new Ajax.Request("/python/submit_page.py/get_short_list",
    {
        method: 'get',
        parameters: submit_id,
        onSuccess: function(transport)
        {
            shortl = eval(transport.responseText);

            new Ajax.Request("/python/submit_page.py/get_result",
            {
                method: 'get',
                parameters: submit_id,
                onSuccess: function(transport)
                {
                    result = eval(transport.responseText);

                    var s = '' 

                    s += '<ol class= "thumbs">';

                    for(var i = 0; i < shortl.length; i++)
                    {
                        r1 = shortl[i];
                        var present = 0;

                        for(var j = 0; j < result.length; j++)
                        {
                            r2 = result[j];

                            if(r1[4] == r2[4])
                            {
                                present = 1;
                                break;
                            }
                        }

                        if(present == 0) {
                            s += build_thumb(r1[0], r1[1], r1[2], r1[3], "shortlist");
                        }
                    }

                    s += '</ol>';

                    $('submit_shortlist_content').innerHTML = s;
                    $('submit_shortlist_loading').setStyle({'display': 'none'});

                    init_html_button();
                }
            });

        }
    });
}

/*--------------------------------------------------------------------------*/

function show_filtered()
{
    new Ajax.Request("/python/submit_page.py/get_result",
    {
        method: 'get',
        parameters: submit_id,
        onSuccess: function(transport)
        {
            var s = '' 

            res = eval(transport.responseText);

            s += '<ol class= "thumbs">';

            for(var i = 0; i < res.length; i++)
            {
                r = res[i];
                s += build_thumb(r[0], r[1], r[2], r[3], "result");
            }

            s += '</ol>';

            $('submit_result_content').innerHTML = s;
            $('submit_result_loading').setStyle({'display': 'none'})

            init_html_button();

            image_shortlist_uploaded = true;
            show_shortl();

            if(res.length == 0)
            {
                $('submit_result_content').innerHTML = '<h2>No result</h2>';
                $('submit_result_loading').setStyle({'display': 'none'})

                init_html_button();

                if(image_shortlist == true)
                {
                    image_shortlist_uploaded = true;
                    show_shortl();
                }
            }

            Lightbox.initialize();
        }
    });
}

/*--------------------------------------------------------------------------*/

var toggle_image_shortlist = function()
{
    if(image_shortlist == true)
    {
        image_shortlist = false;

        $('submit_shortlistImageNone').hide();
        $('submit_shortlistImageDown').show();
        $('submit_shortlistImageUp').hide();

        $('submit_shortlistContent').hide();

    }
    else
    {
        image_shortlist = true;

        if(image_shortlist_uploaded == false && prev_n > 3)
        {
            image_shortlist_uploaded = true;
            show_shortl();
        }

        $('submit_shortlistImageNone').hide();
        $('submit_shortlistImageDown').hide();
        $('submit_shortlistImageUp').show();

        $('submit_shortlistContent').show();
    }
}

/*--------------------------------------------------------------------------*/

var submit_page_init = function(url)
{
    image_shortlist = true;
    toggle_image_shortlist();

    $('submit_shortlistTitle').setStyle({'cursor': 'pointer'});
    Event.observe('submit_shortlistTitle', 'click', function(e)
    {
        e.preventDefault();
        toggle_image_shortlist();
    });

    submit_launch_request();
}

/*--------------------------------------------------------------------------*/

