$(function ()
{
    $("#orderdiscipline").change(function() {change_article_catalogue(); });
    $("#orderarticlegroup").change(function() {change_article_group(); });
    $("#orderpropertytype").change(change_orderpropertytype);

    var srtinstallatie_key = $("#orderdisciplinehide").val();
    if (!srtinstallatie_key)
    {
        change_article_catalogue();
        change_article_group(); // Initialisatie listboxen bij search.
    }
    else
    {
        var discipline_key = $("#orderdiscipline").val();
        var srtgroep_key = $("#orderarticlegroup").val();
        var srtdeel_key = $("#orderarticle").val();
        var niveau = $("#level").val();
        if (niveau == "D")
        {
            fill_srtgroep(discipline_key);
            $("#orderarticle").prop("disabled", true);
        }
        if (niveau == "G")
        {
            fill_srtgroep(discipline_key, srtgroep_key);
            fill_srtdeel(discipline_key, srtgroep_key);
        }
        if (niveau == "S")
        {
            fill_srtgroep(discipline_key, srtgroep_key);
            fill_srtdeel(discipline_key, srtgroep_key, srtdeel_key);
        }
    }
});

function change_orderpropertytype()
{
    var ktype = $("#orderpropertytype option:selected").attr("bes_srtkenmerk_kenmerktype");
    var ktype_lbl_default  = (ktype == "l" ? L("mgt_kenmerk_icon") : L("mgt_kenmerk_default"));
    var ktype_lbl_readonly = (ktype == "l" ? L("mgt_kenmerk_collapsed"): L("mgt_kenmerk_toonbaar"));
    $("label[for*='default']").html(ktype_lbl_default);
    $("label[for*='readonly']").html(ktype_lbl_readonly);
}

function change_article_catalogue(srtgroep_key)
{
    process_info({niveau:"G",lov:[]});
    process_info({niveau:"S",lov:[]});

    var discipline_key = $("#orderdiscipline").val();
    fill_srtgroep(discipline_key);
}

function change_article_group(srtdeel_key)
{
    process_info({niveau:"S",lov:[]});

    var discipline_key = $("#orderdiscipline").val();
    var srtgroep_key = $("#orderarticlegroup").val();
    fill_srtdeel(discipline_key, srtgroep_key);
}

function fill_srtgroep(discipline_key, srtgroep_key)
{
    if (discipline_key > 0)
    {
        $.getJSON("../bes/get_item_info_ajax.asp",
                    {
                      req_info: "bes_srtinstallatie",
                      niveau: "G",
                      install_key: discipline_key,
                      init_key: srtgroep_key
                    },
                  process_info);
    }
}

function fill_srtdeel(discipline_key, srtgroep_key, srtdeel_key)
{
    if (srtgroep_key > 0)
    {
        $.getJSON("../bes/get_item_info_ajax.asp",
                    { req_info: "bes_srtinstallatie",
                      niveau: "S",
                      install_key: srtgroep_key,
                      init_key: srtdeel_key
                    },
                  process_info);
    }
}

function process_info(data)
{
    var select = (data.niveau=="G" ? $("#orderarticlegroup") : $("#orderarticle"));

    var sel_key = -1;
    $new_lov = $("<option>").val(-1).html("");
    select.empty().append($new_lov);
    if (data.lov.length > 0)
    {
        for (i=0; i<data.lov.length;i++)
        {
            var opt = data.lov[i];
            $new_lov = $("<option>").val(opt.key).html(opt.oms);
            if (opt.sel)
            {
                $new_lov.attr("selected", "selected");
                sel_key = opt.key;
            }
            select.append($new_lov);
        }
        select.prop("disabled", false);
    }
    else
    {
        select.prop("disabled", true);
    }
    if (sel_key > -1)
        select.val(sel_key);
}

function pre_submit()
{
    var add = $("#id").val() == -1;
    var discipline_key = $("#orderdiscipline").val() || -1;
    var srtgroep_key = $("#orderarticlegroup").val() || -1;
    var srtdeel_key = $("#orderarticle").val() || -1;

    // Na het toevoegen zijn de discipline, srtgroep en srtdeel niet meer aan te passen.
    if (add)
    {
        if (srtdeel_key != -1)
        {
            $("#level").val("S");
            $("#orderdisciplinehide").val(srtdeel_key);
        }
        else if (srtgroep_key != -1)
        {
            $("#level").val("G");
            $("#orderdisciplinehide").val(srtgroep_key);
        }
        else
        {
            $("#level").val("D");
            $("#orderdisciplinehide").val(discipline_key);
        }
    }
    return true;
}