<%@language = "javascript" %>
<%
/*  $Revision$
    $Id$

    File:               res_reservering.asp
    Description:        Muteerscherm voor reserveringen
    Parameters:         (allemaal optioneel)
                        rsv_ruimte_key: te bewerken
                        restype: "R" of "CV" of "O" om (via CV) alleen catering/objecten te reserven.
                                 "O" is vanuit Opdrachten, een variant van CV, biedt de optie om bepaalde activiteiten (nl CV)
                                     niet te tonen.
                        verynew: we zijn heel erg nieuw (net aangemaakt)
                                 gevolg:==> Bij CV wordt catering direct geopend
                                        ==> ?? Automatisch multi voor alle deelreservingen ??
                        nowold: nog sterker dan verynew, negeer verynew.
    Context:
    Note:
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="res.inc" -->
<!-- #include file="../fin/fin_verkoopfactuur.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"],
                          js: ["jQuery-ui.js"],
                         css: ["../shared/suggest/suggest.css"]}); // css voor child frames

// AUTORISATIEPARAMETERS
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
if (rsv_ruimte_key > 0)
{
    var urole = getQParamSafe("urole", "fe");
    var autolike = getQParamInt("autolike", 0) == 1;
}
else
    var urole = getQParamSafe("urole", "xx"); // autodetect
var rrr = { rsv_ruimte_key: rsv_ruimte_key };

var orgurole = urole;
var verynew = getQParamInt("verynew", 0) == 1 && getQParamInt("nowold", 0) != 1;
var bez_edit = getQParamInt("bez_edit", 0) == 1;
var res_edit = getQParamInt("res_edit", 0) == 1;
var pageTitle = L('lcl_reservation');

var transitParam = "";
if (verynew)
  transitParam += "&verynew=1";

// res_deel_key: Te reserveren deel, Vanuit planbord geklikt
// activiteit_key: res_activiteit_key die we van plan zijn. Wordt automatisch bevroren
// host_key: gastheer, vanuit PACTA
// ab_mode: zie res_default_CVAB_mode
// alg_ruimte_key, handig bij bezorgen
// flex_defaults pacta, bijv: bsn=12345678&plaats=Enschede&postcode=1234AB
transitParam += buildTransitParam(["res_deel_key", "res_artikel_key", "res_ruimte_key", "disc_key", "host_key", "activiteit_key",
                                   "res_van", "res_tot", "ab_mode", "alg_ruimte_key","mld_opdr_key", "mld_melding_key",
                                   "flex_defaults", "rsv_copy_key","rsv_is_serie","pool","timefrom",
                                   "bez_omschr", // vanuit Outlook
                                   "bez_naam", "bez_bedrijf"]); // alleen eerste naam/bedrijf

var res_deel_key = getQParamInt("res_deel_key", -1);
var res_artikel_key = getQParamInt("res_artikel_key", -1);

// Nog een alternatieve ingang: als een (hoofd)reserveringskey wordt meegegeven en geen deelreservernmg
// Dan gaat het toch niet om een nieuwe reservering, maar iets dat info wil over deze xreservering
// Dan zoeken we er de eerste deelreservering bij om verder te gaan
if (rsv_ruimte_key == -1 && res_deel_key == -1 && res_artikel_key == -1)
{
  var res_reservering_key = getQParamInt("reservering_key", -1);
  if (res_reservering_key > 0)
  {
    var sql = "SELECT MIN(res_rsv_ruimte_key) res_rsv_ruimte_key"
            + "  FROM res_rsv_ruimte"
            + " WHERE res_rsv_ruimte_verwijder IS NULL"
            + "   AND res_reservering_key = " + res_reservering_key
    var oRs = Oracle.Execute(sql);
    if (!oRs.eof)
    {
        rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
        var byMainResKey = true;
    }
    oRs.Close();
  }
}

if (rsv_ruimte_key == -1)
{
  // nieuwe reservering
  var res_ruimte_key = getQParamInt("res_ruimte_key", -1);

  rrr = { reservering_key: getQParamInt("reservering_key", ""),
          rsv_ruimte_volgnr: "",
          rsv_ruimte_omschrijving: "",
          reservering_ispool : getQParamInt("pool", 0) == 1,
          activiteit_omschrijving: "",
          srtactiviteit_prefix: ""
        };

  if (res_ruimte_key == -1)
  {
      var koppelzalen = [];
      // Enigszins afwijkend: res_alg_ruimte_key (ipv alg_ruimte_key) om aan te geven dat je voor alg_ruimte een ruimteservering wilt maken
      var res_alg_ruimte_key = getQParamInt("res_alg_ruimte_key", -1);
      if (res_alg_ruimte_key > 0)
      {
        // Maakt deze res_alg_ruimte_key onderdeel uit van een koppelzaal dan eerst vragen of de gekozen zaal of de koppelzaal gewenst is.
        var sql = "SELECT rr.res_ruimte_key"
                + "     , rr.res_ruimte_nr"
                + "  FROM res_alg_ruimte ra"
                + "     , res_ruimte rr"
                + " WHERE ra.res_ruimte_key = rr.res_ruimte_key"
                + "   AND ra.res_alg_ruimte_verwijder IS NULL"
                + "   AND ra.alg_ruimte_key = " + res_alg_ruimte_key;
        var oRs = Oracle.Execute(sql);
        while (!oRs.eof)
        {
            koppelzalen.push( { icon: "fa-map-marker"
                              , title: oRs("res_ruimte_nr").Value
                              , action: "res_ruimte_key=" + oRs("res_ruimte_key").Value + ";$('div#koppel_modal').dialog('close').remove();"
                              });
            oRs.MoveNext();
        }
        oRs.Close();

        if (koppelzalen.length == 1)
        {
            res_ruimte_key = res.alg_ruimte2res_ruimte(res_alg_ruimte_key);
            transitParam += "&res_ruimte_key=" + res_ruimte_key;
        }
      }
  }
  if (res_deel_key > 0 || res_artikel_key > 0)
  {
      if (res_deel_key > 0)
          sql = "SELECT rd.res_discipline_key"
              + "  FROM res_deel rd"
              + " WHERE res_deel_key = " + res_deel_key;
      else
          sql = "SELECT ra.res_discipline_key"
              + "  FROM res_artikel ra"
              + " WHERE res_artikel_key = " + res_artikel_key;
      var oRs = Oracle.Execute(sql);
      var disc_key = oRs("res_discipline_key").Value;
      oRs.Close();
  }
  // Autorisatie-rol-bepaling
  var autfunctions = { fe: "WEB_RESUSE", bo: "WEB_RESBOF", fo: "WEB_RESFOF" };// pas op voorkeursvolgorde!
  if (urole == "xx") // Vanuit prodsearch, probeer intelligente autoUrole
  { // Let op: als FSN#22774 wordt doorgevoerd is urole niet meer nodig in dit bestand
    // en kan onderstaande code waarschijnlijk naar res_edit_rsv_ruimte.asp
    if (res_ruimte_key > 0)
    {
        sql = "SELECT 1"
            + "  FROM fac_functie ff,"
            + res.fac_v_my_res_ruimte_write + "rr"
            + " WHERE ff.fac_functie_code = 'WEB_RESFOF'"
            + "   AND res_ruimte_key = " + res_ruimte_key
            + "   AND ff.fac_functie_key = rr.fac_functie_key"
            + "   AND prs_perslid_key = " + user_key;
        var oRs = Oracle.Execute(sql);
        urole = oRs.Eof?"fe":"fo";
        oRs.Close();
    }
    else if (res_deel_key > 0 || res_artikel_key > 0)
    {
        var canFOF = user.checkAutorisation("WEB_RESFOF", true, disc_key);
        urole = canFOF?"fo":"fe";
    }
    else
    {
      urole = user.autoUrole("fo", autfunctions, false); // false->verplicht, je moet 1 van de 2 hebben
    }
  }

  // Wat voor activiteit, soort activiteit en eigenschappen daarbij
  var srtact   = getQParamInt("srtact", -1);
  var meteindtijd = true;

  // Is er een activiteit meegegeven, dan kan de srtactiviteit enz hieruit gehaald worden en worden die parameters genegeerd
  var act_key = getQParamInt("activiteit_key", -1);
  if (act_key > -1)
  {
    var sql_a = "SELECT res_srtactiviteit_key"
              + "     , res_activiteit_image"
              + "     , res_activiteit_meteindtijd"
              + ", " + lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
              + "  FROM res_activiteit a"
              + " WHERE res_activiteit_key = " + act_key;
    var oRs_a = Oracle.Execute(sql_a);
    if (!oRs_a.eof)
    {
      srtact = oRs_a("res_srtactiviteit_key").value;
      meteindtijd = oRs_a("res_activiteit_meteindtijd").value == 1;
      rrr.activiteit_omschrijving= oRs_a("res_activiteit_omschrijving").value;
      rrr.activiteit_image= oRs_a("res_activiteit_image").value;
    }
    oRs_a.Close();
  }

  // letters van de ASP naar code in tabel
  function restype2srtactiviteit_soort (prestype)
  {
    var soortvalue;
    if (prestype == "R")  soortvalue = 0;
    if (prestype == "CV") soortvalue = 1;
    if (prestype == "O")  soortvalue = 2;
    return soortvalue;
  }

  var restype;
  if (srtact > 0)
  {
    // Bepalen restype uit srtactiviteit.
    var sql = "SELECT sa.res_srtactiviteit_soort"
            + "     , sa.res_srtactiviteit_prefix"
            + " FROM res_srtactiviteit sa"
            + " WHERE sa.res_srtactiviteit_key = " + srtact;
    var oRs = Oracle.Execute(sql);
    var restype = ["R", "CV", "O"][oRs("res_srtactiviteit_soort").value];  // srtactiviteit_soort2restype()
    rrr.srtactiviteit_prefix = oRs("res_srtactiviteit_prefix").value || "";
    oRs.Close();
  }
  else {
    var restype = getQParamSafe("restype", "R");
  }

  rrr.met_eindtijd = meteindtijd;

}
else // Bestaande reservering
{
  if (urole == "xx") // In case you enter via search
  {
    var authparamsRESFOF = user.checkAutorisation("WEB_RESFOF", true);
    if (authparamsRESFOF)
      urole = "fo";
    else
      urole = "fe";
  }
  // Zoek zo snel mogelijk info van res_rsv_ruimte op
  sql = "SELECT rr.res_reservering_key"
      + "     , rr.res_reservering_ispool"
      + "     , alg_ruimte_key"
      + "     , res_ruimte_opstel_key"
      + "     , res_rsv_ruimte_volgnr"
      + "     , res_rsv_ruimte_verwijder"
      + "     , res_rsv_ruimte_dirtlevel"
      + "     , ra.res_activiteit_aantalverplicht"
      + "     , ra.res_activiteit_ismaster"
      + "     , res_rsv_ruimte_omschrijving"
      + "     , ra.res_activiteit_image"
      + ", " + lcl.xsqla("ra.res_activiteit_omschrijving", "ra.res_activiteit_key")
      + "     , sa.res_srtactiviteit_prefix"
      + "  FROM res_reservering rr"
      + "     , res_rsv_ruimte rrr"
      + "     , res_activiteit ra"
      + "     , res_srtactiviteit sa"
      + " WHERE rr.res_reservering_key = rrr.res_reservering_key"
      + "   AND ra.res_srtactiviteit_key = sa.res_srtactiviteit_key"
      + "   AND ra.res_activiteit_key = rrr.res_activiteit_key"
      + "   AND res_rsv_ruimte_key = " + rsv_ruimte_key;
  oRs = Oracle.Execute(sql);
  if (oRs.EOF)
  {
    shared.record_not_found("RES: Record not found"); // bijv. gepind tabje naar opgeschoonde reservering.
  }

  rrr = { rsv_ruimte_key      : rsv_ruimte_key,
          reservering_key     : oRs("res_reservering_key").value,
          reservering_ispool  : oRs("res_reservering_ispool").value == 1,
          rsv_ruimte_volgnr   : oRs("res_rsv_ruimte_volgnr").value,
          rsv_ruimte_verwijder: oRs("res_rsv_ruimte_verwijder").value,
          rsv_ruimte_dirtlevel: oRs("res_rsv_ruimte_dirtlevel").value,
          rsv_ruimte_omschrijving: oRs("res_rsv_ruimte_omschrijving").value,
          activiteit_omschrijving: oRs("res_activiteit_omschrijving").value,
          activiteit_image    : oRs("res_activiteit_image").value||"",
          aantal_verplicht    : oRs("res_activiteit_aantalverplicht").value,
          ismaster            : oRs("res_activiteit_ismaster").value,
          srtactiviteit_prefix: oRs("res_srtactiviteit_prefix").value || "",
          met_eindtijd        : true
        };

  if (oRs("alg_ruimte_key").value != null)
    restype = "CV";
  else if (oRs("res_ruimte_opstel_key").value != null)
    restype = "R";
  else
    restype = "O";

  oRs.Close();

  FCLTHeader.Title(L("lcl_reservation"));
  var this_res = res.func_enabled(rsv_ruimte_key, null, { isOptional: true} ); // Wat heb ik zoal aan rechten op deze specifieke reservering
  rrr.met_eindtijd = this_res.res_met_eindtijd;

  var hasFOBOread = this_res.canReadFO || this_res.canReadBO;
  if (byMainResKey && !this_res.canReadAny) // Dit is voor het heel bijzondere geval dat je voor deelres 1 geen
  {                                         // rechten hebt maar mogelijk voor anderen wel. Dan laten we res_list het uitzoeken.
    Response.Redirect("res_search_list.asp?urole=" + urole + "&resnum=" + res_reservering_key);
  }

  user.auth_required_or_abort(this_res.canReadAny); // Meeste diepere schermen controleren ook zelf wel (UWVA#20446: bez nog niet).

  // Veelgevraagd: autoswitch naar fo als geen fe-schrijfrechten
  if (urole == "fe" && !this_res.canWrite("WEB_RESUSE") && this_res.canWrite("WEB_RESFOF"))
  {
    urole = "fo";
  }
}

// Mag ik ook BEZ doen (met ongeveer dezelfde rol als RES)?
// Functioneel nagaan wat we met BO eigenlijk moeten
var bezauthparams = user.checkAutorisation({ fe: "WEB_BEZUSE", bo: "WEB_BEZBOF", fo: "WEB_BEZFOF", mi: "WEB_BEZBAC"} [urole], true);
var mldauthparams = user.checkAutorisation({ fe: "WEB_MLDUSE", bo: "WEB_MLDBOF", fo: "WEB_MLDFOF", mi: "WEB_MLDBAC"} [urole], true);
var resauthParams = user.checkAutorisation("WEB_RESMSU", true);
var mayShow_bez_desk = (resauthParams ? true : false ) && rrr.reservering_ispool;

var showMldFrame = (rsv_ruimte_key > 0 && mldauthparams && S("res_with_mld") == 1);
if (showMldFrame && urole == 'fe') // fe krijgt geen Add knop. Als er dan ook geen meldingen zijn wil ik het hele frame niet zien
{
    var sql = "SELECT COUNT(1) FROM mld_melding WHERE res_rsv_ruimte_key=" + rsv_ruimte_key;
    var oRs = Oracle.Execute(sql);
    showMldFrame = oRs(0).Value > 0;
    oRs.Close();
}
%>

<html>
  <head>
<%  FCLTHeader.Generate() %>
    <script>
      var rsv_ruimte_key=<%=rsv_ruimte_key%>; // kan na wisselen deelres veranderen

      $(function ()
      {
<%      if (rsv_ruimte_key > 0)
        { %>
          FcltMgr.setTitle(L("lcl_reservation") + " " + "<%=rrr.reservering_key + "/" + rrr.rsv_ruimte_volgnr%>", {hot: false});
<%      }
        else
        { %>
          FcltMgr.setTitle(L("lcl_res_new_reservation"), {hot: true});
          FcltMgr.startEdit($("#resroomframe")[0].contentWindow);
<%      }

        if (res_edit && restype == "R" && rsv_ruimte_key > 0)
        { %>
            $("#frametabs").tabs({ "active": 0 }); // Open direct het reserveringscherm om evt dirty aan te passen.
            FcltMgr.startEdit($("#resroomframe")[0].contentWindow);
            $("#resroomframe")[0].src = "res_edit_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>";
<%      }


        if (verynew && restype != "R") // Indien verynew dan geldt (rsv_ruimte_key > 0)
        { // direct naar edit mode
%>
          $("#frametabs").tabs({ "active": 1 }); // Open direct het voorzieningen subframe (2de frame/subtab, dus index == 1)
          FcltMgr.startEdit($("#objcatframe")[0].contentWindow); // het window is over 1 seconde weg maar onze overlays staan dan al goed
          $("#objcatframe")[0].src = "res_edit_objcat.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>&width_px=" + $(window).width();
<%      }


        if (bez_edit || (verynew && rrr.aantal_verplicht == 2 && !rrr.rsv_ruimte_dirtlevel))
        { // Bezoekersscherm direct in edit mode
%>
          $("#frametabs").tabs({ "active": 2 }); // Open direct het externe bezoekers subframe (3de frame/subtab, dus index == 2)
          FcltMgr.startEdit($("#bezlistframe")[0].contentWindow);
          $("#bezlistframe")[0].src = "../bez/bez_edit_bezoekers.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>&autoadd=1&&width_px=" + $(window).width();
<%
        }
%>
        // onChange of roomFrame hide repeat button when roomFrame has intervals
        $("iframe#resroomframe").attr("onchange", "$('#repeatbutton, #addspacebutton, #addpartresbutton').toggle($(this).attr('intervals') != '1');");
      });

      function refreshall(data)
      {
        if (data.refresh)
          window.location.href = "res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>";
      }

      function roomClose(params)
      {
<%      if (rsv_ruimte_key == -1)
        {
          var verynew=1;
          if (res_deel_key > 0)
            verynew=0; // hij is opgeslagen
%>
          if (params.cancel)
          {
            FcltMgr.closeDetail(window, { cancel: true } );
            return true;
          }
          // nieuwe reservering, ga verder in 'verynew' modus
          if (!params.keepForm)
            window.location.href = "res_reservering.asp?urole=<%=urole%>&verynew=<%=verynew%><%=transitParam%>&rsv_ruimte_key=" + params.rsv_ruimte_key;
<%      }
        else
        { // Bestaande res bewerkt, switch naar show-mode
%>
          if (!params.keepForm)
          {
            if (params.cancel)
                $("#resroomframe")[0].src = "res_show_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key;
            else // Complete refresh: allerlei dirty<-->clean toggles mogelijk
                window.location.href="res_reservering.asp?urole=<%=urole%><%=transitParam%>&rsv_ruimte_key="+rsv_ruimte_key;
          }

<%      } %>
      };
      function bezClose(params)
      {
        $("#bezlistframe")[0].src = "../bez/bez_show_bezoekers.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>";
        if (<%= (urole == "bo" && rrr.reservering_ispool)?1:0 %> && params.beznewkeyArr && params.beznewkeyArr.length) // Auto-checkin
        {
            var data = { bez_key: params.beznewkeyArr
                         };
            protectRequest.dataToken(data);
            $.post("../bez/bez_check_in.asp",
                   data,
                   CheckInCallback,
                   "json");
        }
      }
      function CheckInCallback(json, textStatus)
      {
          for (var i = 0 ; i < json.bez_key_arr.length; i++)
          {
              if (json.autoprint[i])
                printBadge(json.bez_key_arr[i]);
          }
      }
      function printBadge(pbez_key)
      {    // Printen van de bezoekers badge
          FcltMgr.windowopen("../bez/bez_xml.asp?badge=1&bez_key=" + pbez_key, "", "resizable=0,scrollbars=0,menubar=0,width=500,height=400");
      }

      // In verynew mode klagen we zelfs als je cancel drukt.
      var everCV = false;
      function objcatClose(params)
      { // Als deze functie wordt aangeroepen dan geldt (rsv_ruimte_key > 0)
        everCV |= params.hasAnyCV;
<%      if (restype == "CV")
        {
          if (verynew)
          { %>
            if (params.cancel && !everCV)
              FcltMgr.alert(L("lcl_res_no_CV_yet")); // Nog niets gereserveerd.
<%        } %>
          if (!params.cancel && !params.hasAnyCV)
            FcltMgr.alert(L("lcl_res_no_CV_yet")); // Nog niets gereserveerd.
<%      } %>
        if (!params.keepForm)
        {
            if (params.cancel || params.stillnew)
                $("#objcatframe")[0].src = "res_show_objcat.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key + (params.verynew || params.stillnew ? "&verynew=1" : "");
            else // Complete refresh: allerlei dirty<-->clean toggles mogelijk. Wel de verynew er van af
                window.location.href="res_reservering.asp?urole=<%=urole%>&nowold=1<%=transitParam%>&rsv_ruimte_key=" + rsv_ruimte_key;
        }
      };

      function MultiSave()
      {
        if (FcltMgr.mayEdit(window))
          FcltMgr.openModalDetail("./res_edit_multi.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key,
                                  L("lcl_res_multiple_save"), { callback: refreshall });
      }

      function makeMulti()
      {
        if (FcltMgr.mayEdit(window))
          FcltMgr.openModalDetail("./res_multi_create.asp?urole=<%=orgurole%>&rsv_ruimte_key=" + rsv_ruimte_key,
                                  L("lcl_res_add_deelres"), { callback: refreshall });
      }

      function ruimteErbij(rtype)
      {
        if (FcltMgr.mayEdit(window))
            window.location.href="res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=-1&rsv_copy_key=" + rsv_ruimte_key + "&restype=" + rtype;
      }

      function GaNaar()
      {
        if (FcltMgr.mayEdit(window))
        {
          rsv_ruimte_key = $("#selectedDates").val();
          window.location.href="res_reservering.asp?urole=<%=urole%><%=transitParam%>&rsv_ruimte_key="+rsv_ruimte_key;
        }
      }

      function res_print()
      {
        FcltMgr.windowopen('../res/res_xml.asp?res_key=<%=rrr.reservering_key%>');
      }

      function res_mail()
      { // Als deze functie wordt aangeroepen geldt rsv_ruimte_key > 0 (Bestaande reserveringen). hasFOBOread is dan bekend
<%      var defemail_key = -1;
        // van de aanvrager=melder van initieel getoonde deelreservering
        sql = " SELECT rr.res_rsv_ruimte_contact_key, res_rsv_ruimte_volgnr"
            + "   FROM res_rsv_ruimte rr"
            + "  WHERE rr.res_rsv_ruimte_key=" + rsv_ruimte_key;
        oRs = Oracle.Execute( sql);
        if (!oRs.eof)
          defemail_key = oRs("res_rsv_ruimte_contact_key").value;
        oRs.Close();
          subject = L("lcl_reservation") + ' ' + rrr.reservering_key;
          url = "../shared/queuemail.asp?pcode=RES2MA&defemail_key=" + defemail_key
              + "&key=" + rrr.reservering_key
              + "&subject=" + Server.URLencode(subject)
              + "&mailfrom=" + (hasFOBOread? 1 : 0);
%>
        var subject = "<%=safe.jsstring(subject)%>";
        var url= "<%=safe.jsstring(protectQS.create(url))%>";
        FcltMgr.openModalDetail(url, subject);

      }

      var anyDirty = [];
      function openDirtyRes()
      {
        if (anyDirty.length)
        {   // Open alle dirty reserveringen binnen deze reeks
            for (var i=0; i<anyDirty.length; i++)
            {
                var url = "./appl/res/res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=" + anyDirty[i] + "&res_edit=1";
                FcltMgr.openDetail(url);
            }
        }

      }

<%  if (mayShow_bez_desk)
    {
%>
      function res_oproep()
      {
<%
        url = "./appl/res/res_bez_desk.asp"
            + "?key=" + rrr.reservering_key;
%>
        var subject = L("lcl_res_bez_oproepscherm");
        var url = "<%=safe.jsstring(url)%>";
        FcltMgr.openDetail(url, subject)
      }
<%  }
%>
        // Wordt automagisch aangeroepen als tabje wordt geactiveerd
        function fcltontabshow(isHot)
        {
            if (isHot)
                return;
            $("iframe#objcatframe").each(function ()
                {
                    this.src = this.src;
                });
        }

    </script>
  </head>

  <body>
<%

      if (rsv_ruimte_key > 0)
      {
        var page = "res_show_rsv_ruimte.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + (autolike?"&autolike=1":"");

        // ============================================
        // Voorzieningen info
        // ============================================
        var sqlD = "SELECT ra.res_rsv_ruimte_key, "
                 + "       res_rsv_artikel_verwijder datumdel, "
                 + "       CASE WHEN (res_rsv_artikel_dirtlevel < 256 OR res_rsv_artikel_verwijder IS NOT NULL)"
                 + "            THEN 0" // afwijkende tijden niet moeilijk over doen
                 + "            ELSE res_rsv_artikel_dirtlevel"
                 + "       END dirtlevel"
                 + " FROM res_rsv_artikel ra "
                 + " UNION ALL "
                 + "SELECT res_rsv_ruimte_key, "
                 + "       res_rsv_deel_verwijder datumdel, "
                 + "       CASE WHEN (res_rsv_deel_dirtlevel < 256 OR res_rsv_deel_verwijder IS NOT NULL)"
                 + "            THEN 0" // afwijkende tijden niet moeilijk over doen
                 + "            ELSE res_rsv_deel_dirtlevel"
                 + "       END dirtlevel"
                 + "  FROM res_rsv_deel rd "

        // ============================================
        // Show list of reservation-rooms
        // ============================================
        if (restype == "R")
        {
          sql = "SELECT rm.res_rsv_ruimte_key"
              + "     ," + lcl.xsqla('r.res_ruimte_nr', 'r.res_ruimte_key')
              + "     , res_rsv_ruimte_van"
              + "     , res_rsv_ruimte_tot"
              + "     , rm.res_rsv_ruimte_contact_key"
              + "     , rm.res_rsv_ruimte_host_key"
              + "     , rm.mld_opdr_key"
              + "     , rm.res_rsv_ruimte_volgnr"
              + "     , rm.res_rsv_ruimte_verwijder"
              + "     , rm.res_rsv_ruimte_dirtlevel"
              + "     , COUNT (*) cnt, COUNT (datumdel) cntdeleted, SUM(dirtlevel) dirtlevel"
              + "  FROM res_rsv_ruimte rm, res_ruimte_opstelling ro, res_ruimte r"
              + "     , (" + sqlD + ") rec2 "
              + " WHERE rm.res_rsv_ruimte_key = rec2.res_rsv_ruimte_key (+) "
              + "   AND rm.res_ruimte_opstel_key = ro.res_ruimte_opstel_key"
              + "   AND ro.res_ruimte_key = r.res_ruimte_key"
              + "   AND res_reservering_key = " + rrr.reservering_key
              + "   AND (res_rsv_ruimte_verwijder IS NULL OR rm.res_rsv_ruimte_key = " + rsv_ruimte_key + ")"
              + " GROUP BY res_rsv_ruimte_van, res_rsv_ruimte_tot"
              + "        , rm.res_rsv_ruimte_key"
              + "        , " + lcl.xsql('r.res_ruimte_nr', 'r.res_ruimte_key')
              + "        , res_rsv_ruimte_volgnr"
              + "        , res_rsv_ruimte_verwijder"
              + "        , res_rsv_ruimte_dirtlevel"
              + "        , rm.res_rsv_ruimte_contact_key"
              + "        , rm.res_rsv_ruimte_host_key"
              + "        , rm.mld_opdr_key"
              + " ORDER BY res_rsv_ruimte_van, res_rsv_ruimte_key";
        }
        else
        {
          sql = "SELECT res_rsv_ruimte_van, res_rsv_ruimte_tot"
              + "     , COUNT (*) cnt, COUNT (datumdel) cntdeleted, SUM(dirtlevel) dirtlevel"
              + "     , rr.res_rsv_ruimte_key, res_rsv_ruimte_volgnr"
              + "     , rr.res_rsv_ruimte_contact_key"
              + "     , rr.res_rsv_ruimte_host_key"
              + "     , rr.mld_opdr_key"
              + "     , rr.res_rsv_ruimte_verwijder"
              + "     , res_rsv_ruimte_dirtlevel"
              + "  FROM res_rsv_ruimte rr"
              + "     , (" + sqlD + ") rec2 "
              + " WHERE rr.res_rsv_ruimte_key = rec2.res_rsv_ruimte_key (+) "
              + "   AND res_reservering_key = " + rrr.reservering_key
              + "   AND (res_rsv_ruimte_verwijder IS NULL OR rr.res_rsv_ruimte_key = " + rsv_ruimte_key + ")"
              + " GROUP BY res_rsv_ruimte_van, res_rsv_ruimte_tot"
              + "        , rr.res_rsv_ruimte_key"
              + "        , res_rsv_ruimte_volgnr"
              + "        , res_rsv_ruimte_verwijder"
              + "        , res_rsv_ruimte_dirtlevel"
              + "        , rr.res_rsv_ruimte_contact_key"
              + "        , rr.res_rsv_ruimte_host_key"
              + "        , rr.mld_opdr_key"
              + " ORDER BY res_rsv_ruimte_van";
        }
        oRs = Oracle.Execute(sql);
        var multiDeel = false;
        var anyDirty = [];
%>      <div id="resselector"><%
        if (!oRs.eof)
        {
            if (rrr.reservering_ispool)
                Response.Write("<span id='multires'>"+L("lcl_respool")+"</span>");

            // Pas als er meer dan 1 deelreservering is, is een listbox nodig
            var options = [];
            var selclass = "";
            var rKey, d1Key, d2Key, contact, host;
            //======================================
            while (!oRs.eof)
            {
              rKey = oRs("res_rsv_ruimte_key").Value;
              d1Key = new Date(oRs("res_rsv_ruimte_van").Value);
              d2Key = new Date(oRs("res_rsv_ruimte_tot").Value);
              contact = oRs("res_rsv_ruimte_contact_key").Value;
              host = oRs("res_rsv_ruimte_host_key").Value;

              if (this_res.canReadFEOnly) {
                var auth = true; // Mag ik de andere deelreserveringen wel zien?
                if (   !user.isCollega(contact)
                    && !user.isCollega(host)) {
                  auth = false;
                  if (oRs("mld_opdr_key").Value !== null) {
                    var ord_sql = "SELECT res_prs_perslid_key"
                                + "  FROM res_deel rd, res_rsv_deel rrd"
                                + " WHERE rd.res_deel_key = rrd.res_deel_key"
                                + "   AND rrd.res_rsv_ruimte_key = " + rsv_ruimte_key;
                    var ord_oRs = Oracle.Execute(ord_sql);
                    var userIsReservedResource = false;
                    while (!ord_oRs.EoF && !userIsReservedResource) {
                      if (user_key == ord_oRs("res_prs_perslid_key").Value) {
                        userIsReservedResource = true;
                      }
                      ord_oRs.MoveNext();
                    }
                    auth = userIsReservedResource;
                  }
                }
                if (!auth) {
                  oRs.MoveNext();
                  continue;
                }
              }

              var tekst = toDateTimeString(d1Key) + "-" + toTimeString(d2Key)
              if (restype == "R")
              {
                opttitle = "title='" + safe.htmlattr(oRs("res_ruimte_nr").value) + "' ";
              }
              else
              {
                opttitle = "title='" + (oRs("cnt").Value - oRs("cntDeleted").Value) + " " + L("lcl_reserved_cons") + "/" + L("lcl_reserved_object") + "' ";
              }

              volgnrTxt = oRs("res_rsv_ruimte_volgnr").value + ".";

              var optclass = "";
              if ((oRs("res_rsv_ruimte_dirtlevel").Value & res.dirtlevel.ruimte.notavailable) || oRs("dirtlevel").Value > 0)
              {
                anyDirty.push(rKey);
                tekst = L("lcl_res_BAD_reservation_pre") + tekst + L("lcl_res_BAD_reservation_post");
                optclass = " fatal ";
              }

              sel = "";
              if (oRs("res_rsv_ruimte_key").value == rsv_ruimte_key)
              {
                var sel = " SELECTED "
                selclass = optclass;
              }
              options.push("<option "+(optclass ? "class='"+optclass+"'" : "")+" "+opttitle+" value="+rKey+ " " + sel + ">" + volgnrTxt + "&nbsp;" + tekst + "</option>");

              oRs.Movenext();
              if (!oRs.Eof) multiDeel = true;
            }
if (options.length > 1) {
%>
            <select id="selectedDates" class="fld<%=selclass%>" onchange='GaNaar()'>
                <%= options.join("") %>
            </select>
<%          }
        }
        oRs.Close();

        if (anyDirty.length)
        {
          var txt = null;
          if (anyDirty.length > 1)
              var txt = L("lcl_res_fail_multi1") + anyDirty.length + " " + L("lcl_res_fail_multi2");
          else if (anyDirty[0] != rsv_ruimte_key) // onszelf geven we al wel op andere manieren aan
              var txt = L("lcl_res_fail_multi1s");

          if (txt && res_edit == 0 && !inArray(rsv_ruimte_key, anyDirty))
          { %>
            <script type="text/javascript">
              $(function()
                {
                    FcltMgr.confirm("<%=safe.jsstring(txt)%>", { oktekst: L("lcl_res_alternatief") }, openDirtyRes );
                    anyDirty = <%=JSON.stringify(anyDirty)%>;
                });
            </script>
<%        }
        }

        var buttons =  [];

        var multi_tz = Session("time_zone") != S("fac_server_timezone"); // Hebben we te maken met een ruimte, gebruiker of server in een afwijkende tijdszone?
        if (!multi_tz) {
          var rsv_timezone = res.getRsvTimezone(rsv_ruimte_key);
          multi_tz = rsv_timezone != Session("time_zone");
        }

        if (!multi_tz && this_res.couldCreate)
        {
          buttons.push( {id: "repeatbutton", title: L("lcl_res_add_deelres"), icon: "fa-clone", action: "makeMulti()" } );
          if (restype == "R")
            buttons.push( {id: "addspacebutton", title: L("lcl_res_add_deelresruimte"), icon: "fa-calendar-plus", action: "ruimteErbij('" + restype + "')" } );
          if (restype == "CV") // en O??
            buttons.push( {id: "addpartresbutton", title: L("lcl_res_add_deelresreservering"), icon: "fa-layer-plus", action: "ruimteErbij('" + restype + "')" } );
        }
        if (!multi_tz && multiDeel && this_res.couldCreate)
        {
          buttons.push({ title: L("lcl_res_multiple_save"), icon: "fa-copy", action: "MultiSave()" });
          buttons.push({ icon: "fa-print", title: L("lcl_print"), action: "res_print()" });
          buttons.push({ icon: "fa-envelope", title: L("lcl_noti_res_email"), action: "res_mail()" });
        }
        if (mayShow_bez_desk)
          buttons.push({ icon: "fa-desktop", title: L("lcl_res_bez_oproepscherm"), action: "res_oproep()" });

        if (rrr.rsv_ruimte_verwijder == null && buttons.length)
        {
          %><div class="buttoncontainer"><%
          CreateButtons(buttons, { showIcons: true} );
          %></div><%
        }
            //======================================
        %></div><% // \.resselector
      }
      else
      { // rsv_ruimte_key == -1
        var page = "res_edit_rsv_ruimte.asp?urole=" + urole + "&res_ruimte_key=" + res_ruimte_key + transitParam;
        // srtactiviteit moeten we weten om toe te kunnen voegen aan page, anders vragen.
        if (srtact > 0 || !restype) // Vanuit de reservering subtab bij een melding ook direct de activiteit kiezen, ook bij het ontbreken van een srtact
        {
          if (srtact > 0) {
            page += "&srtact=" + srtact;
          }
          if (act_key > 0) {
            if (!hasQParam("activiteit_key")) { // Anders zit die al bij de transitParam in
              page += "&activiteit_key=" + act_key;
            }
          }
          else
          { //Dan maar vragen
            var buttons = [];
            // Give the user a list and let him select a activiteit.
            //======= FIELD 'Activiteit' =======
            var myACTsql = "SELECT a.res_activiteit_key"
                    + "     , sa.res_srtactiviteit_key"
                    + ", " + lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
                    + "     , a.res_activiteit_duur"
                    + "     , a.res_activiteit_omsverplicht"
                    + "     , a.res_activiteit_aantalverplicht"
                    + "     , a.res_activiteit_meteindtijd"
                    + "     , a.res_activiteit_cvab_mode"
                    + "     , a.res_activiteit_intervals"
                    + "     , a.res_activiteit_image"
                    + "  FROM res_activiteit a"
                    + "     , res_srtactiviteit sa"
                    + (res_deel_key > 0 || res_artikel_key > 0
                      ? " , res_activiteitdiscipline rad"
                      : "")
                    + " WHERE res_activiteit_verwijder IS NULL"
                    + "   AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key"
                    + "   AND a.res_activiteit_master_key IS NULL" // niet via deze route
                    + (srtact > 0
                      ? "   AND sa.res_srtactiviteit_key = " + srtact
                      : "")
                    + (restype
                      ? "   AND sa.res_srtactiviteit_soort = " + restype2srtactiviteit_soort(restype)
                      : "")
                    + "   AND EXISTS (SELECT rad.res_activiteit_key"
                    + "                 FROM res_activiteitdiscipline rad"
                    + "                    , ins_tab_discipline disc"
                    + "                    , fac_v_my_disciplines md"
                    + "                WHERE rad.res_discipline_key = md.ins_discipline_key"
                    + "                  AND md.prs_perslid_key = " + user_key
                    + "                  AND md.fac_functie_code = " + safe.quoted_sql(autfunctions[urole])
                    + "                  AND fac_gebruiker_alg_level_write < 9"
                    + "                  AND fac_gebruiker_prs_level_write < 9"
                    + "                  AND rad.res_discipline_key = disc.ins_discipline_key"
                    + "                  AND rad.res_activiteit_key = a.res_activiteit_key"
                    + "                  AND ins_discipline_verwijder IS NULL"
                    + (restype
                      ? (restype == "R"
                        ? "                AND ins_discipline_min_level = 3"            // 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte
                        : "                AND ins_discipline_min_level IN (1,2,4,5)")  // 4 = persoonresource
                      : "")
                    + "              )"
                    + (getQParamInt("activiteit_key", -1) > -1
                      ? " AND a.res_activiteit_key = " + getQParamInt("activiteit_key", -1)
                      : "")
                    + (urole == "fe"
                      ? " AND a.res_activiteit_notfrontend = 0"
                      : "")
                    + (res_deel_key > 0 || res_artikel_key > 0
                      ? " AND rad.res_activiteit_key = a.res_activiteit_key"
                        + " AND rad.res_discipline_key = " + disc_key
                      : "")
                   + (res_ruimte_key > 0 // Alleen die activiteiten die mogelijk zijn in deze ruimte.
                     ? " AND a.res_activiteit_key IN (SELECT ra.res_activiteit_key"
                       + "                                  FROM res_ruimte rr"
                       + "                                     , res_activiteitdiscipline r"
                       + "                                     , res_activiteit ra"
                       + "                                     , res_srtactiviteit rs"
                       + "                                 WHERE rr.res_discipline_key = r.res_discipline_key"
                       + "                                   AND r.res_activiteit_key = ra.res_activiteit_key"
                       + "                                   AND ra.res_srtactiviteit_key = rs.res_srtactiviteit_key"
                       + "                                   AND rr.res_ruimte_key = " + res_ruimte_key + ")"
                     : "")
                    + " ORDER BY res_activiteit_volgnr, sa.res_srtactiviteit_prefix, UPPER(" + lcl.xsql('a.res_activiteit_omschrijving', 'a.res_activiteit_key') +")";
            oRs = Oracle.Execute(myACTsql);
            while (!oRs.eof)
            {
              var tmp_act_key = oRs("res_activiteit_key").value;
              var tmp_srtact_key = oRs("res_srtactiviteit_key").value;
              buttons.push({  icon: oRs("res_activiteit_image").value||"fa-users",
                             title: oRs("res_activiteit_omschrijving").value,
                            action: "srtact=" + tmp_srtact_key + ";act_key=" + tmp_act_key + ";$('div#act_modal').dialog('close').remove();"
                          });
              oRs.MoveNext();
            }
            oRs.Close();

            if (buttons.length == 0)
            {
                shared.simpel_page(L("lcl_no_auth"));  // Response.End;
            }
            else if (buttons.length == 1)
            { // Er is maar één activiteit die direct geselecteerd dient te worden.
              Response.Redirect("res_reservering.asp?urole=" + urole + transitParam + "&srtact=" + tmp_srtact_key + "&activiteit_key=" + tmp_act_key);
            }
            else
            {
              var tpage = page;
              page="../shared/empty.html?urole=" + urole;  // Achtergrondpagina tijdens popup keuze
  %>          <script type='text/javascript'>
                act_key = -1;
                function dialogClose()
                {
                  if (act_key == -1)
                  {
                    FcltMgr.closeDetail(window, { cancel: true, panelModalCool: true } );
                  }
                  else
                    window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&srtact=" + srtact + "&activiteit_key=" + act_key;
                }
                // Normaal gebruik je hier $(function() {})
                // Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
                // Dan maar $(window).load die een fractie later is.
                $(window).on("load", function()
                    {
                        var params = { title: L("lcl_res_choose_act"),
                                       modal: true,
                                       width: 365,
                                       resizable: false,
                                       close: dialogClose,
                                       create: FcltMgr.fnCreateCloseButton("div#act_modal")
                                     };
                        $('div#act_modal').dialog(params).dialog('open');
                    });
              </script>
              <div id="act_modal" style="display:none">
  <%            if (buttons.length)
                  CreateButtons(buttons, { vertical: 1, isDialog: true, showIcons: true } )
                else
                  Response.write(L("lcl_mld_choose_na")); %>
              </div>
  <%        }
          }
        }
        else
        { //Dan maar vragen
          var buttons = [];
          // Give the user a list and let him select a srtactiviteit.
          mySRTsql = // Voor alle res_srtactiviteiten met zijn ins_disciplines eronder moeten we schrijf rechten hebben.
                     // Om een reservering toe te kunnen voegen vereist FE/FO rechten, dit is ook het geval bij BO reserveringen.
                     "SELECT DISTINCT sa.res_srtactiviteit_key"
                   + ", "+lcl.xsqla('sa.res_srtactiviteit_omschrijving', 'sa.res_srtactiviteit_key')
                   + " FROM res_srtactiviteit sa"
                   + ", res_activiteit ra"
                   + ", res_activiteitdiscipline ad"
                   + ", res_discipline rd"
                   + " WHERE sa.res_srtactiviteit_key = ra.res_srtactiviteit_key"
                   + " AND ra.res_activiteit_key = ad.res_activiteit_key"
                   + " AND sa.res_srtactiviteit_verwijder IS NULL"
                   + " AND rd.ins_discipline_key = ad.res_discipline_key"
                   + " AND rd.ins_discipline_key IN (SELECT ins_discipline_key"
                     + " FROM fac_v_webgebruiker g"
                     + ", fac_functie f"
                     + " WHERE g.fac_functie_key = f.fac_functie_key"
                     + " AND f.fac_functie_code = " + safe.quoted_sql({ fe: "WEB_RESUSE", bo: "WEB_RESBOF", fo: "WEB_RESFOF", mi: "WEB_RESBAC"} [urole])
                     + " AND (g.fac_gebruiker_alg_level_write < 9"
                     + " AND g.fac_gebruiker_prs_level_write < 9)"
                     + " AND g.prs_perslid_key = " + user_key + ")"
                   + (restype
                     ? " AND sa.res_srtactiviteit_soort = " + restype2srtactiviteit_soort(restype)
                     : "")
                   + (urole == "fe"
                     ? " AND ra.res_activiteit_notfrontend = 0"
                     : "")
                   + (res_deel_key > 0  // Alleen die activiteitsoorten die de gekozen voorziening onder een van de bijbehorende activiteiten hebben gedefinieerd.
                     ? " AND EXISTS (SELECT rd1.res_deel_key"
                       + "             FROM res_deel rd1"
                       + "            WHERE rd1.res_discipline_key = rd.ins_discipline_key"
                       + "              AND rd1.res_deel_key = " + res_deel_key + ")"
                     : "")
                   + (res_artikel_key > 0  // Alleen die activiteitsoorten die het gekozen artikel onder een van de bijbehorende activiteiten hebben gedefinieerd.
                     ? " AND EXISTS (SELECT ra1.res_artikel_key"
                       + "             FROM res_artikel ra1"
                       + "            WHERE ra1.res_discipline_key = rd.ins_discipline_key"
                       + "              AND ra1.res_artikel_key = " + res_artikel_key + ")"
                     : "")
                   + (res_ruimte_key > 0 // Alleen die activiteitsoorten die mogelijk zijn in deze ruimte.
                     ? " AND sa.res_srtactiviteit_key IN (SELECT rs.res_srtactiviteit_key"
                       + "                                  FROM res_ruimte rr"
                       + "                                     , res_activiteitdiscipline r"
                       + "                                     , res_activiteit ra"
                       + "                                     , res_srtactiviteit rs"
                       + "                                 WHERE rr.res_discipline_key = r.res_discipline_key"
                       + "                                   AND r.res_activiteit_key = ra.res_activiteit_key"
                       + "                                   AND ra.res_srtactiviteit_key = rs.res_srtactiviteit_key"
                       + "                                   AND rr.res_ruimte_key = " + res_ruimte_key + ")"
                     : "")
                   + " ORDER BY 2"
          oRs = Oracle.Execute(mySRTsql);
          while (!oRs.eof)
          {
            var tmp_srtact = oRs("res_srtactiviteit_key").value;
            buttons.push({ title: oRs("res_srtactiviteit_omschrijving").value, icon: "fa-angle-right",
                           action: "srtact=" + tmp_srtact + ";$('div#dmodal').dialog('close').remove();"
                         });
            oRs.MoveNext();
          }
          oRs.Close();

          if (buttons.length == 0)
          {
              shared.simpel_page(L("lcl_no_auth"));  // Response.End;
          }
          else if (buttons.length == 1)
          { // Er is maar één srtactiviteit die direct geselecteerd dient te worden.
            Response.Redirect("res_reservering.asp?urole=" + urole + transitParam + "&srtact=" + tmp_srtact);
          }
          else
          {
            var tpage = page;
            page="../shared/empty.html?urole=" + urole;  // Achtergrondpagina tijdens popup keuze
%>          <script type='text/javascript'>
              srtact = -1;
              function dialogClose()
              {
                if (srtact == -1)
                  FcltMgr.closeDetail(window, { cancel: true } );
                else
                  window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&srtact=" + srtact;
              }
              // Normaal gebruik je hier $(function() {})
              // Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
              // Dan maar $(window).load die een fractie later is.
              $(window).on("load", function()
              {
                var params = { title: "<%=L("lcl_mld_choose_srt")%>",
                               modal: true,
                               width: 334,
                               resizable: false,
                               close: dialogClose,
                               create: FcltMgr.fnCreateCloseButton("div#dmodal")
                             };
                $('div#dmodal').dialog(params).dialog('open');
              });
            </script>
            <div id="dmodal" style="display:none">
<%            if (buttons.length)
                CreateButtons(buttons, { vertical: 1, isDialog: true } )
              else
                Response.write(L("lcl_mld_choose_na")); %>
            </div>
<%        }
        }

        if (res_ruimte_key == -1 && koppelzalen.length > 0)
        {   // Als geselecteerde ruimte een koppelzaal is vraag dan of de ruimte zelf of de koppelzaal gewenst is.
            var buttons = koppelzalen;
            var tpage = page;
            page="../shared/empty.html?urole=" + urole;  // Achtergrondpagina tijdens popup keuze
%>
            <script type='text/javascript'>
                res_ruimte_key = -1;
                function dialogClose()
                {
                  if (res_ruimte_key == -1)
                  {
                    FcltMgr.closeDetail(window, { cancel: true, panelModalCool: true } );
                  }
                  else
                    window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&res_ruimte_key=" + res_ruimte_key;
                }
                // Normaal gebruik je hier $(function() {})
                // Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
                // Dan maar $(window).load die een fractie later is.
                $(window).on("load", function()
                    {
                        var params = { title: "<%=L("lcl_res_choose_room")%>",
                                       modal: true,
                                       width: 350,
                                       resizable: false,
                                       close: dialogClose,
                                       create: FcltMgr.fnCreateCloseButton("div#koppel_modal")
                                     };
                        $('div#koppel_modal').dialog(params).dialog('open');
                    });
            </script>
            <div id="koppel_modal" style="display:none">
<%
            if (buttons.length)
                CreateButtons(buttons, { vertical: 1, isDialog: true, showIcons: true } )
            else
                Response.write(L("lcl_mld_choose_na"));
%>
            </div>
<%
        }
      }

      pageTitle = rrr.srtactiviteit_prefix + rrr.reservering_key
                + (rrr.rsv_ruimte_volgnr ? "/" + rrr.rsv_ruimte_volgnr : "")
                + (rrr.rsv_ruimte_omschrijving ? " " + rrr.rsv_ruimte_omschrijving : "")
                + " " + rrr.activiteit_omschrijving;
      PAGE_START({ pageHeader: { icon: rrr.activiteit_image || "fa-users", title: pageTitle } });

      IFRAMER("resroomframe", page, { FcltClose: "roomClose" });
      //======================================

      if (rsv_ruimte_key > 0 || (srtact > 0 && act_key > 0 && res_ruimte_key > 0))
      {
          var pageIcon = "fa-utensils";
          if (rsv_ruimte_key < 0)
            var page = "res_save_first.asp?module=RES";
          else if (verynew && restype == "CV" && res_artikel_key < 0)
            var page = "../shared/empty.html"; // komt wel in $(function() {})
          else {
            var page = "res_show_objcat.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + transitParam;
            pageIcon = "fa-list"; /* Dit is de enige echte lijst */
          }

          IFRAMER("objcatframe", page, { icon: pageIcon, FcltClose: "objcatClose" });

          if (rrr.ismaster)
          {
              var page = "res_show_subres.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + transitParam;
              IFRAMER("reschildframe", page, { title: L("lcl_res_frame_subres"),
                                               icon: "fa-list",
                                               refreshOnClose: true });
          }

          //======================================

          if (rrr.rsv_ruimte_verwijder == null && bezauthparams && rrr.met_eindtijd)   //TODO  Ook nog check op IsBldVisitable();
          {
            pageIcon = "fa-list";
            if (rsv_ruimte_key < 0) {
                var page = "res_save_first.asp?module=BEZ";
                pageIcon = "fa-users";
            }
            else
            {
                var page = "../bez/bez_show_bezoekers.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + transitParam;

                if (rrr.rsv_ruimte_dirtlevel & res.dirtlevel.ruimte.nocatering)
                {
                    var sql = "SELECT 1 FROM bez_afspraak WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
                    var oRs = Oracle.Execute(sql);
                    if (oRs.Eof) {
                        var page = "res_save_first.asp?module=BEZ";
                        pageIcon = "fa-users";
                    }
                    oRs.Close();
                }
            }
            IFRAMER("bezlistframe",
                     page,
                    { title: (S("bez_sel_internpersoon") == 1? L("lcl_res_frame_visitors") : L("lcl_res_frame_visitors_external")),
                      FcltClose: "bezClose",
                      icon: pageIcon
                    });
          }
          //======================================

          if (showMldFrame)
          {
            IFRAMER("bezmldlistframe",
                     "../mld/mld_search_list.asp?rsv_ruimte_key=" + rsv_ruimte_key,
                    { icon: "fa-list", refreshOnClose: true });
          }

          verkoopfactuur_IFRAMER('reservering', rsv_ruimte_key);
          // tracking naar subframe :-)
          if (rsv_ruimte_key > 0 && (this_res.canReadBO || this_res.canReadFO && !(S("res_hide_tracking") & 2)
                                                        || this_res.canReadFEOnly && !(S("res_hide_tracking") & 1))) // Staat niet tussen de notities
          {
            page = protectQS.create("../shared/status_info.asp?rsv_ruimte_key=" + rsv_ruimte_key + "&urole=" + urole);
            IFRAMER("opdrhistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
          }
      }

      PAGE_END(); %>
  </body>
</html><% ASPPAGE_END(); %>
