var trial_executed = 0;

function display_errors(error_data)
{
    var html = '';

    var nb_error = error_data.length;
    for (i = 0; i < nb_error; i++)
    {
        switch (error_data[i].type)
        {
        case "to_iso" :
            html = '<li>' + trad_friend_country + '</li>' + html;
            $('to_iso').focus();
            break;
        case "to_clid" :
            html = '<li>' + trad_friend_phone + '</li>' + html;
            $('to_clid').focus();
            break;
        case "to_fname" :
            switch (error_data[i].value)
            {
            case 1:
                html = '<li>' + trad_friend_long + '</li>' + html;
                $('to_fname').focus();
                break;
            case 2:
                html = '<li>' + trad_friend_first + '</li>' + html;
                $('to_fname').focus();
                break;
            case 3:
                html = '<li>' + trad_friend_chars + '</li>' + html;
                $('to_fname').focus();
                break;
            case 4:
                html = '<li>' + trad_friend_first + '</li>' + html;
                $('from_fname').focus();
                break;
            }
            break;
        case "from_iso" :
            html = '<li>' + trad_your_country + '</li>' + html;
            $('from_iso').focus();
            break;
        case "from_clid" :
            switch (error_data[i].value)
            {
            case 1:
                html = '<li>' + trad_your_phone + '</li>' + html;
                $('from_clid').focus();
                break;
            case 2:
                html = '<li>' + trad_already_link + '</li>';
                $('from_clid').focus();
                display_error_window(html, trad_already);
                return;
            }
            break;
        case "from_fname" :
            switch (error_data[i].value)
            {
            case 1:
                html = '<li>' + trad_your_long + '</li>' + html;
                $('from_fname').focus();
                break;
            case 2:
                html = '<li>' + trad_your_name + '</li>' + html;
                $('from_fname').focus();
                break;
            case 3:
                html = '<li>' + trad_chars_your + '</li>' + html;
                $('from_fname').focus();
                break;
            }
            break;
        }
    }
    display_error_window(html, trad_error_title);
}


function execute_trial()
{
    if (!(validate_trial()))
    {
        return;
    }

    var post_body = Form.serializeElements([$('from_fname'), $('from_iso'), $('from_clid'), $('to_fname'),
        $('to_iso'), $('to_clid'), $('com_type')]);

    var opt =
    {
        // Use POST
        method: 'post',
        // Send this lovely data
        asynchronous: false,
        postBody: post_body,
        // Handle successful response
        onSuccess: function (t, didList)
        {
            if (didList.result === 'ok')
            {
                $('friend_name').innerHTML = '"' + $F('to_fname') + '"';
                if ($F('com_type') === 'did')
                {
                    $('local_did').innerHTML = didList.closest;
                    select_remove_all_options($('local_number'));
                    select_add_option($('local_number'), 'Choose one', '', true);
                    for (I = 0; I < didList.list.length; I++)
                    {
                        select_add_option($('local_number'), didList.list[I][0].escapeHTML() + ' ' + didList.list[I][1].escapeHTML(), didList.list[I][1].escapeHTML(), false);
                    }
                }
                $('register_link').href = didList.link;
                trial_executed = 1;
                open_popup('lightBox');
            }
            else if (didList.result === 'register')
            {
                trial_executed = 1;
                document.location.href = didList.link;
            }
            else
            {
                switch (didList.error_type)
                {
                case "sql" :
                    display_error_window('<li>' + trad_error + contactList.error_no + '</li>', trad_error_title_unknow);
                    break;
                case "not_connect" :
                    display_error_window(trad_error_not_connect, trad_error_title_connection);
                    break;
                case "validation" :
                    display_errors(didList.error_info);
                    break;
                default :
                    display_error_window('<li>' + trad_error + contactList.error_no + '</li>', trad_error_title_unknow);
                }
            }
        },
    // Handle 404
        on404: function (t)
        {
            display_error_window(trad_error_function, trad_error_title_server);
        },
        // Handle other errors
        onFailure: function (t)
        {
            display_error_window(trad_error_function, trad_error_title_server);
        }
    };

    var tmp = new Ajax.Request('/try/go/', opt);
}


function on_did_changed()
{
    if ($F('local_number') != '')
    {
        $('local_did').innerHTML = $F('local_number');
    }
}

function on_country_changed(country_tag)
{
    var country = $(country_tag);
    $(country_tag + '_txt').value = (country.value != '??*XX')? '+' + country.value.split('*')[1] : '';
}


function validate_trial()
{
    var to_return = true;
    var error = [];
    var pos = 0;

    if (!validate_data("dontselect=0", $('to_iso'), ""))
    {
        error[pos] = {"type": "to_iso", "value": 1};
        pos++;
        to_return = false;
    }
    else if (!validate_data("req", $('to_clid'), "") ||
        !validate_data("maxlen=20", $('to_clid'), "") ||
        !validate_data("phone", $('to_clid'), ""))
    {
        error[pos] = {"type": "to_clid", "value": 1};
        pos++;
        to_return = false;
    }
    if ($('to_fname').value.toLowerCase() === 'friend\'s first name')
    {
        error[pos] = {"type": "to_fname", "value": 2};
        pos++;
        to_return = false;
    }
    else if (!validate_data("maxlen=50", $('to_fname'), ""))
    {
        error[pos] = {"type": "to_fname", "value": 1};
        pos++;
        to_return = false;
    }
    if (!validate_data("req", $('to_fname'), ""))
    {
        error[pos] = {"type": "to_fname", "value": 4};
        pos++;
        to_return = false;
    }
    if (!validate_data("dontselect=0", $('from_iso'), ""))
    {
        error[pos] = {"type": "from_iso", "value": 1};
        pos++;
        to_return = false;
    }
    if (!validate_data("req", $('from_clid'), "") ||
        !validate_data("maxlen=20", $('from_clid'), "") ||
        !validate_data("phone", $('from_clid'), ""))
    {
        error[pos] = {"type": "from_clid", "value": 1};
        pos++;
        to_return = false;
    }
    if (!validate_data("req", $('from_fname'), "") || $('from_fname').value.toLowerCase() === 'your first name')
    {
        error[pos] = {"type": "from_fname", "value": 2};
        pos++;
        to_return = false;
    }
    else if (!validate_data("maxlen=50", $('from_fname'), ""))
    {
        error[pos] = {"type": "from_fname", "value": 1};
        pos++;
        to_return = false;
    }
    if (!to_return)
    {
        display_errors(error);
    }
    return to_return;
}