/*
     $Revision$
     $Id$

    File:               bez_list.js
*/

function bezDelete(row)
{
  $(row).addClass('dirty');
  var bez_key = row.getAttribute("ROWKEY");
  var data = { bez_key: bez_key
             , urole: urole
             , level: "B"
             };
  protectRequest.dataToken(data);
  FcltMgr.confirm(L("lcl_bez_confirm_delete_bezoeker"), function() {
      $.post("bez_delete.asp",
          data,
          FcltCallbackAndThen(function() {
              $(row).hide();
          }),
          "json");
  });
}

function bezEdit(row)
{
  var bezData = eval('(' + row.getAttribute("ROWDATA") + ')');
  if (bezData)
  {
    $(row).addClass('dirty');
    var url = "appl/bez/bez_afspraak.asp?afspr_key=" + bezData.afspr_key + "&urole=" + urole;
    if (contactonly)
        url += "&contactonly=1"
    FcltMgr.openDetail(url, { reuse: true });
  }
}

function CheckInCallback(json, textStatus)
{
    for (i = 0 ; i < json.bez_key_arr.length; i++)
    {
      if (json.checkInDone[i]) // Checkin is uitgevoerd
      {
        if (json.undo_check_in == 0) // bezoeker is nu ingechecked/aangemeld. Geef juiste afvinkbox weer aan het eind van de regel
        {
          if (json.badges[i])
          {
            var badgefield = $("#checkin" + json.bez_key_arr[i]).closest("tr").find("input.fldbadge");
            badgefield.val(json.badges[i]).attr("disabled", "1");
          }
          if (json.autoprint[i])
            printBadge(json.bez_key_arr[i]);

          content = '<span id="CHDin' + json.bez_key_arr[i] + '"'
                  + ' class="fa fa-check-square-o fa-lg ilbutton"'
                  + ' OnClick="doCheckIn(event, ' + json.bez_key_arr[i] + ', 1);"' // bezoeker not out
                  + ' style="cursor:pointer"'
                  + ' title="' + L("lcl_vis_done") + ' (' + todayString + ')"' // Net (vandaag) ingechecked
                  + '></span>';
          $("#checkin" + json.bez_key_arr[i]).html(content);
        }
        else // bezoeker is niet meer aangemeld. Geef juiste afvinkbox weer aan het eind van de regel
        {
          content = '<span id="CHDin' + json.bez_key_arr[i] +'"'
                  + ' class="fa fa-square-o fa-lg ilbutton"'
                  + ' OnClick="doCheckIn(event, ' + json.bez_key_arr[i] + ', 0);"'
                  + ' style="cursor:pointer"'
                  + ' title="' + L("lcl_vis_register") + '"'
                  + '></span>';
          $("#checkin" + json.bez_key_arr[i]).html(content);
        }
      }
    }
    // Is er nog een message die weergegeven moet worden?
    if (json.message) FcltMgr.alert(json.message);
}

function doCheckIn(evt, bezKeyString, undo_check_in)
{
  FcltMgr.stopPropagation(evt);

  var bez_key_arr = bezKeyString.toString().split(","); // Bulkactie geeft het als een string door, klikken op het aanmeldvakje als een integer.
  if (bez_key_arr.length == 1 && (hasKenmerk || s_vis_remark==2) && !undo_check_in)
  { // Niet voor bulkacties
    // alleen voor bo (al geregeld door de aanroeper)
    // en alleen als er kenmerken > 900 zijn.
    // PF: en alleen bij inchecken, niet bij undo-inchecken
    var url = "../bez/bez_edit_check_in.asp?urole="+urole+"&bez_key="+bez_key_arr[0];
    FcltMgr.openModalDetail(url,
                            L("lcl_vis_checkin_title"),
                            { callback: function(data)
                                {
                                    $("#badgenr"+bez_key_arr[0]).val(data.bezBadgeArr[0]);
                                    setCheckIn(bezKeyString, undo_check_in);
                                }
                            });
  }
  else
  {
    setCheckIn(bezKeyString, undo_check_in);
  }
}

function setCheckIn(bezKeyString, undo_check_in)
{
  var data = { bez_key: bezKeyString
             , undo_check_in: undo_check_in
             };
  protectRequest.dataToken(data);
  $.post("bez_check_in.asp",
         data,
         CheckInCallback,
         "json");
}

function bezCheckIn(rowArray, isMulti)
{
  // bulk actie
  var bezKeyString = getKeyString(rowArray);
  doCheckIn(null, bezKeyString, 0);
}

function CheckOutCallback(json, textStatus)
{
  if (textStatus == "success")
  {
    for (i = 0 ; i < json.bez_key_arr.length; i++)
    {
      if (json.checkOutDone[i]) // Checkout is uitgevoerd
      {
        if (json.undo_check_out == 0) // bezoeker is nu uitgechecked. Geef juiste afvinkbox weer aan het eind van de regel
        {
          content = '<span id="CHOut' + json.bez_key_arr[i] + '"'
                  + ' class="fa fa-check-square-o fa-lg ilbutton"'
                  + ' OnClick="doCheckOut(event, ' + json.bez_key_arr[i] + ', 1);"'
                  + ' style="cursor:pointer"'
                  + ' title="' + L("lcl_vis_checkout") + ' (' + todayString + ')"' // Net (vandaag) uitgechecked
                  + '></span>';
          $("#checkout" + json.bez_key_arr[i]).html(content);

          if (json.aantal_ojb > 0)
          {
            url = "../INS/ins_list.asp?urole=fo&embedded=1";
            if (json.prs_key > 0)
              url += "&prs_key=" + json.prs_key;
            else if (json.cps_key > 0)
              url += "&cps_key=" + json.cps_key;
            FcltMgr.openModalDetail(url, L("lcl_bez_insinn_objects"), {width: 800});
          }

        }
        else // bezoeker is niet meer uitgechecked (wel ingechecked). Geef juiste afvinkbox weer aan het eind van de regel
        {
          content = '<span id="CHOut' + json.bez_key_arr[i] + '"'
                  + ' class="fa fa-square-o fa-lg ilbutton"'
                  + ' OnClick="doCheckOut(event, ' + json.bez_key_arr[i] + ', \'\');"'
                  + ' style="cursor:pointer"'
                  + ' title="' + L("lcl_vis_todo") + '"'
                  + '></span>';
          $("#checkout" + json.bez_key_arr[i]).html(content);
        }
      }
    }

    // Is er nog een message die weergegeven moet worden?
    if (json.message) FcltMgr.alert(json.message);
  }
  else
    FcltMgr.alert("CheckOutCallback: " + textStatus);
}

function doCheckOut(evt, bezKeyString, undo_check_out)
{
  FcltMgr.stopPropagation(evt);

  var data = { bez_key: bezKeyString
             , undo_check_out: undo_check_out
             };
  protectRequest.dataToken(data);
  $.post("bez_check_out.asp",
         data,
         CheckOutCallback,
         "json");
}

function bezCheckOut(rowArray, isMulti)
{
  // bulk actie
  var bezKeyString = getKeyString(rowArray);
  doCheckOut(null, bezKeyString, 0);
}

// Op de OnChange van inputveld wordt een pasnummer direct opgeslagen
function SaveBadge(bez_key, badgenr)
{
  var data = { bez_key: bez_key
             , badgenr: badgenr
             };
  protectRequest.dataToken(data);
  $.post("bez_badgenr_save.asp",
         data,
         FcltCallback,
         "json");
}