/*
     $Revision$
     $Id$

    File:               res_list.js
    Remark:             Functies voor res-lijsten
    Parameters:
    Context:
*/

// Resultaat: URL om de data op te halen
function inlineVoorzieningUrl(row)
{
  //var rsv_ruimte_key = row.getAttribute("ROWKEY");
  var resData = eval("(" + row.getAttribute("ROWDATA") + ")");
  if (resData)
  {
    var resRsvRuimteKey = resData.resRsvRuimteKey;

    return "objects_list_tiny.asp?rsv_ruimte_key=" + resRsvRuimteKey
                                   + "&urole=" + urole
                                   + "&closed=" + res_closed;
  }
}

function resEdit(row)
{
  $(row).addClass('dirty');
  //var rsv_ruimte_key = row.getAttribute("ROWKEY");
  var resData = eval("(" + row.getAttribute("ROWDATA") + ")");
  if (resData)
  {
    var resRsvRuimteKey = resData.resRsvRuimteKey;
    var url = "appl/res/res_reservering.asp?urole=" + urole + "&rsv_ruimte_key=" + resRsvRuimteKey;
    FcltMgr.openDetail(url, { reuse: true });
  }
}

// BO/MI functions
// zie ook objects_list_tiny.asp
function resClose(rowArray)
{
  var rsv_ruimte_key;
  var resData;

  var resFuture = false;
  var resKeyString = getKeyString(rowArray);
  var resPartkeyArray = [];
  var resPartTypeArray = [];
  for (var i = 0; i < rowArray.length; i++)
  {
    resData = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
    if (resData)
    {
      resFuture = resFuture || (resData.resFuture == 1);
      resPartkeyArray.push(resData.resPartkey); // rsv_ruimte_key, rsv_deel_key of rsv_artikel_key
      resPartTypeArray.push(resData.resPartType); // reserveringstype ('C', 'V', 'R')
    }
  }
                   // multi
  if (resFuture && rowArray.length > 1)
  {
    window.FcltMgr.alert(L("lcl_res_all_future"));
    return;
  }

  FcltMgr.confirm(L("lcl_res_future_res"), { autoconfirm: !resFuture }, function() {
      // Afmelden kan beginnen
      var data = {
          partres_key: (groupres ? resKeyString : resPartkeyArray.join(",")),
          part_type: resPartTypeArray.join(","),
          group: groupres
      };
      protectRequest.dataToken(data);
      $.post("res_close.asp",
          data,
          FcltCallbackAndThen(function() { // Reservering is nu afgemeld. Geef afvinkbox weer aan het eind van de regel
              resKeyArray = resKeyString.split(",");
              for (var i = 0; i < resKeyArray.length; i++) {
                  $("#afm" + resKeyArray[i]).html('<img src="../Pictures/res_ok.gif" alt="' + todayString + '&nbsp;&nbsp;-&nbsp;&nbsp;' + user_naam + '">');
              }
          }),
          "json");
  });
}

function resNoShow(row)
{
  function resNoShowCallback(json, modalParams)
  {
    $(row).addClass('dirty');
  }

  var resData = eval("(" + row.getAttribute("ROWDATA") + ")");
  if (resData)
  {
    var resKey = resData.resKey;
    var resVolgnr = resData.resVolgnr;
    var resRsvRuimteKey = resData.resRsvRuimteKey;

    url = "../res/res_noshow.asp?urole=" + urole + "&rsv_ruimte_key=" + resRsvRuimteKey;
    FcltMgr.openModalDetail(url, L("lcl_res_reservation") + " " + resKey + "/" + resVolgnr, {callback: resNoShowCallback});
  }
}

function reloadList()
{
    // liefst doe ik FcltMgr.reload maar dit is een POST form. Dat komt niet over.
    parent.document.forms.u2.submit();
}

function insCheckIn(row)
{
    var rsv_deel_key = row.getAttribute("ROWKEY");
    var resData = eval('(' + row.getAttribute("ROWDATA") + ')');
    FcltMgr.openModalDetail("../ins/ins_deel_free.asp?rsv_deel_key="+resData.res_rsv_deel_key,
                                    L("lcl_ins_insinn"), {callback: reloadList});
}

function insCheckOut(row)
{
    var rsv_deel_key = row.getAttribute("ROWKEY");
    var resData = eval('(' + row.getAttribute("ROWDATA") + ')');
    FcltMgr.openModalDetail("../ins/ins_deel_free.asp?rsv_deel_key="+resData.res_rsv_deel_key,
                                    L("lcl_ins_lend_out"), {callback: reloadList});
}

// Uitleen flexkenmerken bewerken.
function insAdapt(row)
{
    var rsv_deel_key = row.getAttribute("ROWKEY");
    var resData = eval('(' + row.getAttribute("ROWDATA") + ')');
    FcltMgr.openModalDetail("../ins/ins_deel_free.asp?adapt=1&rsv_deel_key="+resData.res_rsv_deel_key,
                                    L("lcl_ins_adapt"), {callback: reloadList});
}

function toggleFlag(evt, resRsvRuimteKey)
{
	FcltMgr.stopPropagation(evt);

  var flagkey = $('#resflagimg' + resRsvRuimteKey).attr('flagkey');
  var data = { rsv_ruimte_key: resRsvRuimteKey,
               flagkey: flagkey
             };
  protectRequest.dataToken(data);
  $.post("../res/res_flag.asp"
        , data
        ,  FcltCallbackAndThen(setFlag)
        , "json"
        );
}

function setFlag(data)
{ // Zet de flag en het volgnummer van de flag.
	var rsv_ruimte_key = data.rsv_ruimte_key;
	var flagkey = data.newflag;
	var flagimg = 'fa fa-circle resflag'+flagkey;;

  // Alle gekleurde balletjes met dezelfde id. Met $(#id) pak je alleen het eerste bolletje. Alle voorzieningen (en ruimte) pakken.
  $("i[id^='resflagimg" + rsv_ruimte_key + "']").attr('flagkey', flagkey);
  $("i[id^='resflagimg" + rsv_ruimte_key + "']").attr('class', flagimg);
  $("i[id^='resflagimg" + rsv_ruimte_key + "']").parent().attr('title', L("lcl_res_flag" + flagkey));
  $("i[id^='resflagimg" + rsv_ruimte_key + "']").next().text(flagkey || 999); // Hidden span voor sorteren
  $('#restable th').removeClass('sorttable_sorted sorttable_sorted_reverse'); // sortable cache't namelijk
}

