/*
    $Revision$
    $Id$

    File:           INS/ins_list.js
*/
// FE functions
function insHistory(row)
{
  $(row).addClass('dirty');
  var ins_key = row.getAttribute("ROWKEY");
  var insData = JSON.parse(row.getAttribute("ROWDATA"));
  if (insData)
  {
    var insDeelDescr = insData.insDeelDescr;
    var insKenmerkDeelKey = insData.insKenmerkDeelKey;
    var insKenmerkKey = insData.insKenmerkKey;

    var url = "appl/ins/ins_history.asp?urole=" + urole
                  + "&insdeelkey=" + ins_key
                  + "&inskenmerkdeelkey=" + insKenmerkDeelKey
                  + "&inskenmerkkey=" + insKenmerkKey
                  + "&insdeeldescr=" + insDeelDescr
                  + "&consumption_reg=1";
    FcltMgr.openDetail(url, insDeelDescr);
  }
}

function insSave(rowArray)
{
  var insKeyString = getKeyString(rowArray);

  if (insKeyString != "")
  {
    var data = $("#inslist").serialize();
    $.post("../ins/ins_save_use.asp",
           data,
           FcltCallbackRefresh,
           "json");
  }
}

function checkEnter(evt)
{ // e is event object passed from function invocation
  evt = evt || window.event;
  var characterCode = evt.keyCode; // literal character code will be stored in this variable, character code is contained in IE's keyCode property

  if (characterCode == 13) // if generated character code is equal to ascii 13 (if enter key)
    return false;
  else
    return true;
}

function checkInput(evt)
{
  evt = evt || window.event;
  var obj = evt.srcElement || evt.target;
  var new_val = obj.value;
  var sk_kenmerktype = obj.value1;
  //var sk_lengte = parseInt(obj.value2, 10);
  var sk_nmin = parseInt(obj.value3, 10);
  var sk_nmax = parseInt(obj.value4, 10);

  if (sk_kenmerktype == 'N')
  {
    var valid = true;
    var error = "";
    if (new_val == "" ||
      new_val >= 0 ||
      (!isNaN(new_val) && isGoodNumber(new_val,true,true,-1,-1) && parseInt(new_val,10) >= 0))
    {
      i = obj.id.substring(3);
      var last_value = parseInt(document.getElementById("last_val" + i).value,10);
      if (new_val == "") new_val = last_value;
      if (new_val < last_value)
      {
        valid = false;
        error = L("lcl_obj_value_to_low");
      }
      else if (!isNaN(sk_nmin) && new_val < sk_nmin)
      {
        valid = false;
        error = L("lcl_obj_value_below_nmin");
      }
      else if (!isNaN(sk_nmax) && new_val > sk_nmax)
      {
        valid = false;
        error = L("lcl_obj_value_below_nmax");
      }
    }
    else
    {
        valid = false;
        error = L("lcl_obj_bad_value");
    }
    validateField(obj, valid, error);
    inslist.action = valid ? 'ins_search_list.asp' : 'javascript:0';
    return valid;
  }
  else
  {
    // yet, only numerical kenmerktypes are supported
    // FcltMgr.alert(L("lcl_obj_only_num"));
    obj.value = "";
  }
}

// FO en BO functions
function insEdit1(row)
{
    insEdit([row]);
}

// insEdit wordt allen nog maar aangeroepen voor wijzigen van 1 object.
// Voor uitlenen en innemen worden de functies insCheckIn() en insCheckOut() gebruikt.
function insEdit(row)
{
  $(row).addClass('dirty');
  var ins_key = row.getAttribute("ROWKEY");

  if (ins_key > 0)
  {
    var url = 'appl/ins/ins_deel.asp?ins_key=' + ins_key
            + '&urole=' + urole
            + '&self=' + eigen;
    FcltMgr.openDetail(url, "", { reuse: true });
  }
}

function insDelete(rowArray, isMulti)
{
  FcltMgr.confirm(L("lcl_ins_del_txt_deel"), { autoconfirm: isMulti }, function() {
      var insKeyString = getKeyString(rowArray);
      var data = {
          key: insKeyString,
          level: "D"
      };
      protectRequest.dataToken(data);
      $.post("../ins/ins_delete.asp",
          data,
          FcltCallbackRefresh,
          "json");
  });
}

function refreshall(data)
{
  if (data.refresh)
    window.location.reload();
}

//TODO: werkt voor single items. Nu nog voor multi?
function insCheckIn(rowArray, isMulti)
{
  var insKeyString = getKeyString(rowArray);
  FcltMgr.openModalDetail("../INS/ins_deel_free.asp?takein=1&ins_keys=" + insKeyString, L("lcl_ins_insinn"), {callback: FcltMgr.reload});
}

function insCheckOut(rowArray, isMulti)
{
  var insKeyString = getKeyString(rowArray);
  FcltMgr.openModalDetail("../INS/ins_deel_free.asp?lendout=1&ins_keys=" + insKeyString, L("lcl_ins_lend_out"), {callback: FcltMgr.reload});
}

// Uitleen flexkenmerken bewerken.
function insAdapt(row)
{
  $(row).addClass('dirty');
  var ins_key = row.getAttribute("ROWKEY");
  FcltMgr.openModalDetail("../INS/ins_deel_free.asp?adapt=1&ins_keys=" + ins_key, L("lcl_ins_adapt"));
}

// Een nieuw item uitgeven
function insCheckOutNewItem(prskey, prstype)
{
  FcltMgr.openModalDetail("../INS/ins_deel_free.asp?" + (prstype == "C"? "cps_key=" : "prs_key=") + prskey, L("lcl_ins_lend_out"), {callback: FcltMgr.reload});
}

function insMultiEdit(rowArray)
{
  var insKeyString = getKeyString(rowArray);
  var subject = L("lcl_ins_multi_edit");
  var url = "../ins/ins_edit_deel_multi.asp?ins_keys=" + insKeyString + "&urole=" + urole;
  FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh});
}

function insMultiReserve(rowArray)
{
  var insKeyString = getKeyString(rowArray);
  var subject = L("lcl_ins_multi_reserve");
  var url = "../mgt/res_deel.asp?mode=edit&id=-1&scf_multi=1&insres=1&urole=" + urole;
  // De geselecteerde ins_deel_key's worden meegestuurd in de parameters van openModalDetail en niet in de url-parameter &scf_multi_id.
  FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh, id:insKeyString});
}

function insMultiSrtdeel(rowArray)
{
  var insKeyString = getKeyString(rowArray);
  var subject = L("lcl_ins_multi_srtdeel");
  var url = "../ins/ins_change_srtdeel.asp?ins_key=" + insKeyString;
  FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh, id:insKeyString});
}

function insShowInsp(row)
{
  $(row).addClass('dirty');
  var inskey = row.getAttribute("ROWKEY");
  var rowdata = JSON.parse(row.getAttribute("ROWDATA"));
  if (rowdata)
  {
    var srtcontrolekey = rowdata.insSrtControleKey;
    var deellsrtcontkey = rowdata.insDeelSrtContrKey;
    var url = "appl/ins/ins_inspect.asp?ins_keys=" + inskey + "&srtcont_keys=" + srtcontrolekey + "&deelsrtcont_key=" + deellsrtcontkey;
    FcltMgr.openDetail(url, L("lcl_change"));
  }
}

function insPlanInline(row)
{
  $(row).addClass('dirty');
  var inskey = row.getAttribute("ROWKEY");
  var rowdata = JSON.parse(row.getAttribute("ROWDATA"));
  if (rowdata)
  {
    var srtcontrolekey = rowdata.insSrtControleKey;
    var deellsrtcontkey = rowdata.insDeelSrtContrKey;
    var url = "appl/ins/ins_inspect.asp?plan=1&ins_keys=" + inskey
            + "&srtcont_keys=" + srtcontrolekey
            + "&deelsrtcont_keys=" + deellsrtcontkey;
    FcltMgr.openDetail(url, L("lcl_ins_schedule"));
  }
}

function insPlanMulti(rowArray)
{
  var insKeyString = getKeyString(rowArray);
  var srtcontrolekeyArray = new Array();
  var deelsrtcontrkeyArray = new Array();
  var deleted = 0;
  for (var i = 0; i < rowArray.length; i++)
  {
    rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
    // Scenario's kunnen niet gestart worden. Hier de scenario's er al uit filteren.
    if (!rowdata.insScenKey || rowdata.insScenKey == 1)
    { // Het is geen scenario. De periodieke taak kan gestart worden. De periodieke taak aan het array toevoegen.
      srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
      // Als je wilt inplannen is er nog geen inspectie record (ins_deelsrtcontrole_key). De insDeelSrtContrKey is dan -2.
      deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrKey;
    }
    else
    { // Het is een scenario. De ins_key verwijderen uit de lijst.
      var insKeyString_arr = insKeyString.split(",");
      insKeyString_arr.splice(i - deleted, 1);
      insKeyString = insKeyString_arr.join(",");
      deleted++;
    }
  }
  var url = "appl/ins/ins_inspect.asp?plan=1&ins_keys=" + insKeyString
          + "&srtcont_keys=" + srtcontrolekeyArray.join(",")
          + "&deelsrtcont_keys=" + deelsrtcontrkeyArray.join(",");
  FcltMgr.openDetail(url, L("lcl_ins_schedule"));
}

function insFreeze(rowArray, isMulti)
{
  insStart(rowArray, isMulti, true);
}

function insStart(rowArray, isMulti, pfreeze)
{
  var lcl_1 = pfreeze? L("lcl_mjb_freezing") : L("lcl_ins_starting");
  var lcl_m = pfreeze? L("lcl_mjb_freezing_m") : L("lcl_ins_starting_m");
  FcltMgr.confirm(rowArray.length == 1? lcl_1 : lcl_m,
                  { autoconfirm: isMulti },
                  function()
                  {
                    var insKeyString = getKeyString(rowArray);
                    var srtcontrolekeyArray = new Array();
                    var deleted = 0;
                    var aantaltaken = 0;
                    for (var i = 0; i < rowArray.length; i++)
                    {
                      var rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
                      // Scenario's kunnen niet gestart worden. Hier de scenario's er al uit filteren.
                      if (!rowdata.insScenKey || rowdata.insScenKey == 1)
                      { // Het is geen scenario. De periodieke taak kan gestart worden. De inspectie aan het array toevoegen.
                        if (!pfreeze || (pfreeze && groupby == 9))
                          srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
                        aantaltaken += rowdata.aantaltaken;
                      }
                      else
                      { // Het is een scenario. De ins_key verwijderen uit de lijst.
                        var insKeyString_arr = insKeyString.split(",");
                        insKeyString_arr.splice(i - deleted, 1);
                        insKeyString = insKeyString_arr.join(",");
                        deleted++;
                      }
                    }

                    var data = { ins_keys: insKeyString,
                                 srtcont_key_arr: srtcontrolekeyArray.join(","),
                                 freeze: (pfreeze? 1 : 0),
                                 aantaltaken: aantaltaken
                               };
                    if (pfreeze)
                    {
                      data.dist_key_arr = dist_key_arr;
                      data.loc_key_arr = loc_key_arr;
                      data.bld_key_arr = bld_key_arr;
                      data.disc_key_arr = disc_key_arr;
                      data.srtgroep_key_arr = srtgroep_key_arr;
                      data.srtdeel_key_arr = srtdeel_key_arr;
                      data.moredetail = moredetail;
                      data.groep_str_arr = groep_str_arr;
                      data.categorie_key_arr = categorie_key_arr;
                      data.srtcontrole_key_arr = srtcontrole_key_arr;
                      data.frequentie_arr = frequentie_arr;
                      data.kp_key_arr = kp_key_arr;
                      data.incbtw = incbtw;
                      data.showunfin = showunfin;
                      data.groupby = groupby;
                      data.deel = deel;
                      data.mjbMoved = mjbMoved;
                      data.mjbFreezed = mjbFreezed;
                      data.mjbXcped = mjbXcped;
                      data.toyear = toyear;
                      data.scenario = scenario;
                      data.fitness_score1_from = fitness_score1_from;
                      data.fitness_score1_through = fitness_score1_through;
                      data.fitness_score1_from_neg = fitness_score1_from_neg;
                      data.fitness_score1_through_neg = fitness_score1_through_neg;
                      data.fitness_score1_from_pos = fitness_score1_from_pos;
                      data.fitness_score1_through_pos = fitness_score1_through_pos;
                      data.priority_score2_from = priority_score2_from;
                      data.priority_score2_through = priority_score2_through;
                      data.jaren = jaren;
                    }
                    protectRequest.dataToken(data);
                    $.post("../ins/ins_inspect_start.asp", data, FcltCallbackRefresh, "json");
                  });
}

function insUnfreeze(rowArray, isMulti)
{
  var lcl_1 = L("lcl_ins_unstarting");
  var lcl_m = L("lcl_ins_unstarting_m");
  FcltMgr.confirm(rowArray.length == 1? lcl_1 : lcl_m,
                  { autoconfirm: isMulti },
                  function()
                  {
                    var insKeyString = getKeyString(rowArray);
                    var srtcontrolekeyArray = new Array();
                    var deelsrtcontrkeyArray = new Array();
                    var deleted = 0;
                    var aantaltaken = 0;
                    for (var i = 0; i < rowArray.length; i++)
                    {
                      var rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
                      // Scenario's kunnen niet teruggezet worden. Hier de scenario's er al uit filteren.
                      if (!rowdata.insScenKey || rowdata.insScenKey == 1)
                      { // Het is geen scenario. De periodieke taak kan teruggezet worden. De inspectie aan het array toevoegen.
                        if (groupby == 9)
                        {
                          srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
                          deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrKey;
                        }
                        aantaltaken += rowdata.aantaltaken;
                      }
                      else
                      { // Het is een scenario. De ins_key verwijderen uit de lijst.
                        var insKeyString_arr = insKeyString.split(",");
                        insKeyString_arr.splice(i - deleted, 1);
                        insKeyString = insKeyString_arr.join(",");
                        deleted++;
                      }
                    }

                    var data = { ins_keys: insKeyString,
                                 srtcont_key_arr: srtcontrolekeyArray.join(","),
                                 deelsrtcont_key_arr: deelsrtcontrkeyArray.join(","),
                                 dist_key_arr: dist_key_arr,
                                 loc_key_arr: loc_key_arr,
                                 bld_key_arr: bld_key_arr,
                                 disc_key_arr: disc_key_arr,
                                 srtgroep_key_arr: srtgroep_key_arr,
                                 srtdeel_key_arr: srtdeel_key_arr,
                                 moredetail: moredetail,
                                 groep_str_arr: groep_str_arr,
                                 categorie_key_arr: categorie_key_arr,
                                 srtcontrole_key_arr: srtcontrole_key_arr,
                                 frequentie_arr: frequentie_arr,
                                 kp_key_arr: kp_key_arr,
                                 incbtw: incbtw,
                                 showunfin: showunfin,
                                 groupby: groupby,
                                 deel: deel,
                                 mjbMoved: mjbMoved,
                                 mjbFreezed: mjbFreezed,
                                 mjbXcped: mjbXcped,
                                 toyear: toyear,
                                 scenario: scenario,
                                 fitness_score1_from: fitness_score1_from,
                                 fitness_score1_through: fitness_score1_through,
                                 fitness_score1_from_neg: fitness_score1_from_neg,
                                 fitness_score1_through_neg: fitness_score1_through_neg,
                                 fitness_score1_from_pos: fitness_score1_from_pos,
                                 fitness_score1_through_pos: fitness_score1_through_pos,
                                 priority_score2_from: priority_score2_from,
                                 priority_score2_through: priority_score2_through,
                                 jaren: jaren,
                                 aantaltaken: aantaltaken
                               };
                    protectRequest.dataToken(data);
                    $.post("../ins/ins_inspect_unstart.asp", data, FcltCallbackRefresh, "json");
                  });
}

function insClose(rowArray, isMulti, fromfinish, pfinishmjob)
{
  var insKeyString = getKeyString(rowArray);
  var srtcontrolekeyArray = new Array();
  var deelsrtcontrkeyArray = new Array();
  var deleted = 0;
  for (var i = 0; i < rowArray.length; i++)
  {
    rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
    // Scenario's kunnen niet gestart worden. Hier de scenario's er al uit filteren.
    if (!rowdata.insScenKey || rowdata.insScenKey == 1)
    { // Het is geen scenario. De periodieke taak kan gestart worden. De inspectie aan het array toevoegen.
      if (!pfinishmjob || (pfinishmjob && groupby == 9))
      {
        srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
        // Als er een inspectie is ingepland, dan kan er ook nog een geaccordeerde/gestarte inspectie zijn.
        // Die kan dan wel voltooid worden. Dan deze deelsrtcontrole key meegeven.
        deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrStatus == 0 && rowdata.insDeelSrtContrKeyFreezed > 0
                                            ? rowdata.insDeelSrtContrKeyFreezed
                                            : rowdata.insDeelSrtContrKey;
      }
    }
    else
    { // Het is een scenario. De ins_key verwijderen uit de lijst.
      var insKeyString_arr = insKeyString.split(",");
      insKeyString_arr.splice(i - deleted, 1);
      insKeyString = insKeyString_arr.join(",");
      deleted++;
    }
  }
    var url = "appl/ins/ins_inspect.asp?close=1&ins_keys=" + insKeyString
            + "&srtcont_keys=" + srtcontrolekeyArray.join(",")
            + "&deelsrtcont_keys=" + deelsrtcontrkeyArray.join(",")
            + (fromfinish
              ? "&fromfinish=1"
              : "")
            + (pfinishmjob
              ? "&finishmjob=1"
                + "&dist_key_arr=" + dist_key_arr
                + "&loc_key_arr=" + loc_key_arr
                + "&bld_key_arr=" + bld_key_arr
                + "&disc_key_arr=" + disc_key_arr
                + "&srtgroep_key_arr=" + srtgroep_key_arr
                + "&srtdeel_key_arr=" + srtdeel_key_arr
                + "&moredetail=" + moredetail
                + "&groep_str_arr=" + groep_str_arr
                + "&categorie_key_arr=" + categorie_key_arr
                + "&srtcontrole_key_arr=" + srtcontrole_key_arr
                + "&frequentie_arr=" + frequentie_arr
                + "&kp_key_arr=" + kp_key_arr
                + "&incbtw=" + incbtw
                + "&showunfin=" + showunfin
                + "&groupby=" + groupby
                + "&deel=" + deel
                //+ "&actsit=" + actsit  // actsit alleen van invloed op scenario_key > 1.
                + "&mjbMoved=" + mjbMoved
                + "&mjbFreezed=" + mjbFreezed
                + "&mjbXcped=" + mjbXcped
              : "");
  FcltMgr.openDetail(url, L("lcl_ins_stop"));
}

function insMoveUp(rowArray, isMulti)
{
  FcltMgr.confirm(L("lcl_ins_del_txt_deel"),
                  { autoconfirm: isMulti },
                  function()
                  {
                    var insKeyString = getKeyString(rowArray);
                    var srtcontrolekeyArray = new Array();
                    var deelsrtcontrkeyArray = new Array();
                    var deleted = 0;
                    var aantaltaken = 0;
                    for (var i = 0; i < rowArray.length; i++)
                    {
                      rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
                      // Scenario's kunnen niet gestart worden. Hier de scenario's er al uit filteren.
                      if (!rowdata.insScenKey || rowdata.insScenKey == 1)
                      { // Het is geen scenario. De periodieke taak kan gestart worden. De inspectie aan het array toevoegen.
                        srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
                        deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrKey;
                        aantaltaken += rowdata.aantaltaken;
                      }
                      else
                      { // Het is een scenario. De ins_key verwijderen uit de lijst.
                        var insKeyString_arr = insKeyString.split(",");
                        insKeyString_arr.splice(i - deleted, 1);
                        insKeyString = insKeyString_arr.join(",");
                        deleted++;
                      }
                    }

                    var data = { ins_keys: insKeyString,
                                 srtcont_key_arr: srtcontrolekeyArray.join(","),
                                 dlsrtcont_key_arr: deelsrtcontrkeyArray.join(","),
                                 aantaltaken: aantaltaken
                               };
                    protectRequest.dataToken(data);
                    $.post("../ins/ins_moveup.asp",
                           data,
                           FcltCallbackRefresh,
                           "json");
                  });
}

function insFinishMJOB(rowArray, isMulti)
{
  insFinish(rowArray, isMulti, true)
}

function insFinish(rowArray, isMulti, pfinishmjob)
{
  var insKeyString = getKeyString(rowArray);
  var insKey_arr = insKeyString.split(",");
  FcltMgr.confirm(rowArray.length == 1 ? L("lcl_ins_finishing") : L("lcl_ins_finishing_m"),
                  { autoconfirm: isMulti || !(pfinishmjob || insKey_arr.length > 1) },
                  function()
                  {
                    var insKeyString = getKeyString(rowArray);
                    var deelsrtcontrkeyArray = new Array();
                    var srtcontrolekey;
                    var srtcontroletype;
                    // Als er 1 inspectie is die niet direct Afgerond(6) kan worden dan heb ik de Gereed meld gegevens nodig.
                    // Dan moet ik de gegevens invullen via insClose.
                    var mustClose = false;
                    var deleted = 0;
                    for (var i = 0; i < rowArray.length; i++)
                    {
                      rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
                      // Scenario's kunnen niet gestart worden. Hier de scenario's er al uit filteren.
                      if (!rowdata.insScenKey || rowdata.insScenKey == 1)
                      { // Het is geen scenario. De periodieke taak kan voltooid worden. De inspectie aan het array toevoegen.
                        if (!pfinishmjob || (pfinishmjob && groupby == 9))
                        {
                          // Als er een inspectie is ingepland, dan kan er ook nog een geaccordeerde/gestarte inspectie zijn.
                          // Die kan dan wel voltooid worden. Dan deze deelsrtcontrole key meegeven.
                          deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrStatus == 0 && rowdata.insDeelSrtContrKeyFreezed > 0
                                                              ? rowdata.insDeelSrtContrKeyFreezed
                                                              : rowdata.insDeelSrtContrKey;
                          srtcontrolekey = rowdata.insSrtControleKey;
                          srtcontroletype = rowdata.insSrtControleType;
                        }
                        isc_status = rowdata.ins_status;
                        mustClose = mustClose || (isc_status != 5);
                      }
                      else
                      { // Het is een scenario. De ins_key verwijderen uit de lijst.
                        var insKeyString_arr = insKeyString.split(",");
                        insKeyString_arr.splice(i - deleted, 1);
                        insKeyString = insKeyString_arr.join(",");
                        deleted++;
                      }
                    }

                    if (mustClose)
                    { // Via insClose scherm de gegevens invullen.
                      insClose(rowArray, isMulti, true, (pfinishmjob? true: false));
                    }
                    else
                    {
                      var insKeyString_arr = insKeyString.split(",");
                      if (pfinishmjob || insKeyString_arr.length > 1)
                      { // MJOB of multi taken.
                        var data = { ins_keys: insKeyString,
                                     dlsrtcont_key_arr: deelsrtcontrkeyArray.join(",") };
                        protectRequest.dataToken(data);
                        $.post("../ins/ins_inspect_finish.asp", data, FcltCallbackRefresh, "json");
                      }
                      else
                      { // Er moet 1 taak voltooid worden.
                        // Eerst de taak gegevens aanpassen, dan voltooien.
                        var url = "appl/ins/ins_inspect.asp?ins_keys=" + insKeyString
                                + "&srtcont_keys=" + srtcontrolekey
                                + "&deelsrtcont_key=" + deelsrtcontrkeyArray[0]
                                + "&finish=1";
                        var title = "";
                        switch (srtcontroletype)
                        {
                          case 1: title = L("lcl_ins_srtcontrole_insp"); break;
                          case 2: title = L("lcl_ins_srtcontrole_repl"); break;
                          case 3: title = L("lcl_ins_srtcontrole_cert"); break;
                        }
                        FcltMgr.openDetail(url, title + " " + deelsrtcontrkeyArray[0]);

                      }
                    }
                  });
}

function insMultiMove(rowArray)
{
  var insKeyString = getKeyString(rowArray);
  var subject = L("lcl_ins_multi_move");
  var url = "../ins/ins_move_deel_multi.asp?ins_keys=" + insKeyString + "&urole=" + urole;
  FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh});
}
