/*
     $Revision$
     $Id$

     File:               ins_onderdelen.js
*/

var rowIndex = -1;

function CreateRow(deel_key, deel_name, srtdeel_name, srtgroep_name, disc_name)
{
  rowIndex++;
  var table = $("#deel_desctable>tbody")[0];

  // Insert data rows
  tr = table.insertRow(-1);
  tr.setAttribute("deel_key", deel_key);
  tr.value = rowIndex;

  // Create drop button
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.align = "center";
  cell.innerHTML = "<span OnClick='delRow(this)' style='cursor:pointer'>" + I("fa-trash-alt") + "</span>";

  // innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
  // Input velden moeten wel met innerHTML of outerHTML anders wordt het text

  // Deel omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = deel_name + "<input type='hidden' id='deel" + rowIndex + "' name='deel" + rowIndex + "' value='" + deel_key + "'>";
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  // disc omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = disc_name;
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  // srtgroep_name omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = srtgroep_name;
  cell.align = 'left';
  cell.style.whiteSpace = "nowrap";

  // srtdeel omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = srtdeel_name;
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}

function delRow(img)
{
  // Verwijder het aangeklikte object uit de lijst (de regel)
  var tr = $(img).closest("tr")[0];
  if (tr.getAttribute("deel_key") != null)
  {
    document.getElementById("deel_desctable").deleteRow(tr.rowIndex);
  }
}

function ins_submit()
{
  document.forms.u2.submit();
}
function ins_cancel()
{
    FcltMgr.closeDetail(window, { cancel: true });
}

async function ins_add()
{
  if (!await validateForm("u2"))
    return false;

  if ($("#deel_key").val() > 0)
  { // Check of het object al in de lijst staat
    var exist = false;
    $("tr[deel_key]").each(function(i)
                           {
                             if ($("#deel_key").val() == $(this).attr("deel_key"))
                               exist = true;
                           });
    if (!exist)
    { // Object staat nog niet in de lijst.
      CreateRow($("#deel_key").val(),
                $("#deel_key_show").val(),
                $("#srtdeel_show").val(),
                $("#srtgroep_show").val(),
                $("#disc_show").val());
      FcltMgr.resized(window);
    }
    //else => Het object staat al in de lijst.
  }
}

function onChangeDiscipline()
{
  //sgSrtgroep.setValue($("#stdm").val(), $("#stdm_show").val(), true, true, null, true);
  // Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat.
  // In de tussentijd verstoort CheckJustOne dit process met een $.getJSON()
  // Dus gewoon Groep leegmaken
  sgSrtgroep.setValue(-1, "", true, false, null, true);
  sgSrtgroep.CheckJustOne();
  $("#srtdeelmulti").empty();
}

function callback_ins_info(data, textStatus, jqXHR)
{ // Zet de discipline indien niet ingevuld
  // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
  if ($("#disc").val() == -1)
    sgDisc.setValue(data.disc_key, data.disc_omschr, false /*doonChange*/, true /*checkExist*/);
  if ($("#srtgroep").val() == -1)
    sgSrtgroep.setValue(data.srtgroep_key, data.srtgroep_omschr, false /*doonChange*/, true /*checkExist*/);
  if ($("#srtdeel").val() == -1)
    sgSrtdeel.setValue(data.srtdeel_key, data.srtdeel_omschr, false /*doonChange*/, true /*checkExist*/);
}

function onChangeSrtgroep(srtgroep_key)
{ // Zet de discipline indien niet ingevuld.
  if (srtgroep_key > 0 && $("#disc").val() <= 0 && typeof sgDisc != "undefined")
  {
    $.getJSON("../Shared/get_ins_info.asp",
              { srtgroep_key: srtgroep_key },
                callback_ins_info);
  }
  sgSrtdeel.setValue(-1, "", true, false, null, true);
  sgSrtdeel.CheckJustOne();
  sgDeel.setValue(-1, "", true, false, null, true);
  sgDeel.CheckJustOne();
}

function onChangeSrtdeel(srtdeel_key)
{
  if (srtdeel_key > 0 && ($("#srtgroep").val() <= 0 && typeof sgSrtgroep != "undefined"))
  {
    $.getJSON("../Shared/get_ins_info.asp",
              { srtdeel_key: srtdeel_key },
                callback_ins_info);
  }
  sgDeel.setValue(-1, "", true, false, null, true);
  sgDeel.CheckJustOne();
}

function onChangeDeel(deel_key)
{
  if (deel_key > 0 && ($("#srtdeel").val() <= 0 && typeof sgSrtdeel != "undefined"))
  {
    $.getJSON("../Shared/get_ins_info.asp",
              { deel_key: deel_key },
                callback_ins_info);
  }
}
