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

    File:               mld_show_melding.asp
    Description:        Detailscherm voor meldingen
    Parameters:         mld_key (REQUIRED)
                        urol (REQUIRED)
                        verynew: optional
    Context:
    Note:               TODO: ik kom hier af en toe met een urole, die me eigenlijk niet zo interesseert
                              maar mogelijk moet dat hogerop worden opgelost (mld_melding.asp)
                              Case: na toevoegen als FE kom je terug maar zie je geen opdrachtframe omdat daar
                                    vast op fe wordt gecheckt?
                                    De urole is inprincipe wel nodig voor scopes die kunnen verschillen,
                                    maar dat is in showmode niet zo wezenlijk.

    Note:           De lcl-textcontextswitcher is srtdisc=ins_srtdiscipline_key
                    Deze is dus verplicht, altijd bekend en moet bij alle
                    lcl's worden meegegeven.

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/rater.inc" -->
<!-- #include file="mld.inc" -->
<!-- #include file="mld_flexkenmerk.inc" -->

<%
FCLTHeader.Requires({ plugins: ["jQuery"],
                      js: ["jQuery-ui.js", "./mld_show_melding.js", "./mld.js"]
                    })

// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole");
// Om nog even compatible te blijven zodat alles nog even blijft werken. Moet er straks uit, natuurlijk.
var fronto = urole == "fo";
var backo  = urole == "bo";
var minfo  = urole == "mi";
var frontend = (!fronto & !backo & !minfo);

var mld_key = getQParamInt("mld_key");
var mld_melding = mld.mld_melding_info(mld_key); // Globale variabele met alle mld_melding informatie
var stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm);

// Alleen verynew als de status van de melding nieuw (2) is of 0
// Voor een reload van het scherm kan de status namelijk aangepast zijn (bijvoorbeeld bij direct afmelden van de melding).
var verynew = getQParamInt("verynew", 0) == 1 && (mld_melding.mld_status == 2 || mld_melding.mld_status == 0)&& !mld_melding.parent_key;

var this_mld = mld.func_enabled_melding(mld_key, {verynew: verynew}); // Wat heb ik zoal aan rechten op deze specifieke melding
var hasFOBOread = this_mld.canFOread || this_mld.canBOread;

user.auth_required_or_abort(this_mld.canReadAny);

if (mld_melding.locked_user_key == user_key)
    mld.unlock(mld_key);

lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
var subjectMail = L("lcl_mld_complain_subject").format((mld_melding.prefix||"")+mld_key, mld_melding.mld_stdmelding_omschrijving, mld_melding.ins_discipline_omschrijving, mld_melding.mld_onderwerp||"");
var urlMail = "../shared/queuemail.asp?pcode=MLDMAI&defemail_key=" + mld_melding.melder_key
            + "&key=" + mld_key
            + "&subject=" + Server.URLencode(subjectMail)
            + "&mailfrom=" + (hasFOBOread? 1 : 0)
            + "&pmodule=MLD"
            + "&pniveau=M";

// Zijn er velden verplicht die niet zijn ingevuld?
// Startdatum, Einddatum, Melding voor (persoon), Vakgroep en Melding (stdmelding) worden door enkele constraint op de mld_melding tabel al afgedwongen.
// Om een melding te forwarden/doorsturen moeten namelijk alle verplichte gegevens zijn ingevuld. Dat kan het geval zijn bij extern aangemaakte meldingen.
var emptyRequiredFields = false;
// Alleen als ik de melding door kan sturen de verplichte velden checken. Niet bij het corrigeren van de vakgroep/melding (canFixMelding) vanuit de status "Afgemeld(5)".
if (this_mld.canForward)
  emptyRequiredFields = mld.getEmptyRequiredFields(mld_melding);
%>

<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script  type="text/javascript" >
      $(document).ready(function () {
           FcltMgr.setTitle(L("lcl_complain") +" <%= (mld_melding.prefix||"") + mld_key%>", {hot:false});
           $('textarea').resize(function () { FcltMgr.resized(window) } );
           $('textarea').autogrow();
      });
      mld_key = <%=mld_key%>;
      mldPrefix = "<%=safe.htmlattr(mld_melding.prefix)%>";
      mld_allow_parentmelding = <%=S("mld_allow_parentmelding")%>;
      verynew = <%=verynew? 1 : 0%> == 1;
      defemail_key = <%=mld_melding.melder_key%>;
      urole = "<%=urole%>";
      var setting_mld_accept_confirm = <%=S("mld_accept_confirm")?1:0%>;
      var emptyRequiredFields = <%=emptyRequiredFields? 1 : 0%>;

      function mld_mail()
      {
        function mldMailCallback(data)
        {
          alert(L("lcl_mld_is_mldmai") + data.emails);
        }

        var subject = "<%=safe.jsstring(subjectMail)%>";
        var url = "<%=safe.jsstring(protectQS.create(urlMail))%>";
        FcltMgr.openModalDetail(url, subject, { callback: mldMailCallback });
      }

    </script>
<%


%>
  </head>

  <body id="showbody" <%= (mld_melding.parent_key)?"class='child'":"" %>>
<%
    // Heb ik het recht om opdrachten aan te maken?
    var ordschrijfrechten = false;
    sql = "SELECT i.ins_discipline_key"
        + ",      wg.fac_gebruiker_alg_level_write"
        + " FROM fac_v_webgebruiker wg"
        + ",     fac_functie f"
        + ",     ins_tab_discipline i"
        + " WHERE wg.prs_perslid_key = " + user_key
        + " AND f.fac_functie_key = wg.fac_functie_key"
        + " AND f.fac_functie_code = 'WEB_ORDBOF'"
        + " AND wg.fac_gebruiker_alg_level_write < 9"
        + " AND wg.ins_discipline_key = i.ins_discipline_key"
        + " AND i.ins_discipline_key = " + mld_melding.disc
    oRs = Oracle.Execute( sql );
    if (!oRs.eof)
        ordschrijfrechten = true;
    oRs.close();

    // Heb ik het recht om bestellingen aan te maken?
    // Alleen van belang als het een bes-srtdiscipline is
    // De huidige MLD-discipline-key heeft hier NIETS mee te maken
    var besschrijfrechten = false;
    if (mld_melding.show_bes)
    {
        var authparamsBES = user.checkAutorisation("WEB_BESFOF", true);
        besschrijfrechten = authparamsBES && authparamsBES.ALGwritelevel < 9
    }
    // We weten nu 'alles'. Tijd om te bepalen welke knoppen er zijn:
    // Knoppen zijn afhankelijk van de volgende dimensie's
    // - mld_status
    // - urole
    // - is_fo_melding
    // - (heb ik) ordschrijfrechten

    var buttons = [];

    if (this_mld.canChange)
        if (this_mld.canClose && mld_melding.is_fo_melding && verynew)
            buttons.push({title: L("lcl_close"), icon: "close.png", action: "mld_close(true)", autoshow: true, tooltip: L("lcl_close_hint") });
        else
            buttons.push({title: L("lcl_change"),  icon: "wijzigen.png", action: "mld_change('" + this_mld.canChangeUrole + "')" });

    if (this_mld.canFixSLA)
       buttons.push({title: L("lcl_mld_fix_sla"), icon: "history.png", action:"mld_fix_sla()", autoshow: false });

    if (this_mld.canAdd2Faq)
       buttons.push({title: L("lcl_mld_addtofaq"), icon: "star_2_plus.png", action:"mld_add2faq()", autoshow: false, tooltip: L("lcl_mld_addtofaqinfo") });

    if (this_mld.canUnlink)
        buttons.push({title: L("lcl_unlink"), icon: "link_break.png",   action:"mld_unlink()",  autoshow: false , tooltip: L("lcl_unlink_hint") });

    if (this_mld.canLink && S("mld_allow_parentmelding")) // S("mld_allow_parentmelding"): Allow attaching a call to another manually (0=not | 1=allow)
        buttons.push({title: L("lcl_link"), icon: "link.png",   action:"createLink()",  autoshow: false , tooltip: L("lcl_link_hint") });

    if (this_mld.canDoorzet) // fo2bo
        buttons.push({title: L("lcl_doorzet"), icon: "doorzet.png",   action:"mld_doorzet()",  autoshow: true , tooltip: L("lcl_doorzet_hint") });

    if (this_mld.canAccept)
        buttons.push({title: L("lcl_accept"), icon: "accept.png",  action:"mld_accept(" + stdm_info.doublecheck + ")",  autoshow: true, tooltip: L("lcl_accept_hint")});  /* als verynew reload tab met edit-versie? */

    if (this_mld.canTerugzet) // bo2fo
        buttons.push({title: L("lcl_terugzet"), icon: "terugzet.png",  action:"mld_terugzet()" });

    if (this_mld.canReject)
        buttons.push({title: L("lcl_reject"), icon: "reject.png", action:"mld_reject()",  autoshow: true, tooltip: L("lcl_reject_hint") });

    if (this_mld.canForward || this_mld.canFixMelding) // bo2bo
        buttons.push({title: this_mld.canForward?L("lcl_forward"):L("lcl_fixmelding"), icon:"forward.png",  action:"mld_forward('" + this_mld.canChangeUrole + "')"});

    if (this_mld.canClose && !verynew)
        buttons.push({title: L("lcl_close"),  icon: "close.png",  action:"mld_close()",   autoshow: true, tooltip: L("lcl_close_hint") });

    if (this_mld.canContinue)
        buttons.push({title: L("lcl_mld_continuation"), icon: "plus.png", action:"mld_continue()", autoshow: false, tooltip: L("lcl_continue_hint") });

    if (this_mld.canCopy)
        buttons.push({ title: L("lcl_mld_copy"), icon: "copy.png", action: "mld_copy()" });
    if (this_mld.canAfrond && !mld_melding.afgerond)
        buttons.push({ title: L("lcl_mld_afrond"), icon: "finish.png", action: "mld_afrond()" });

    buttons.push({ icon: "print.png", title: L("lcl_print"),          action: 'mld_print()' });
    buttons.push({ icon: "email.png", title: L("lcl_noti_mld_email"), action: 'mld_mail()' });

    IFRAMER_HEADER(mld_melding.act_key? L("lcl_mld_frame_algemeen_actie") : L("lcl_mld_frame_algemeen"), buttons);

    // Als niet verynew dan doe je opdrachten en bestellen maar onderin het frame
    // Als je geen rechten hebt tot accepteren van de melding (BO) dan mag je zeker ook geen opdracht en bestelling aanmaken
    if (this_mld.canAccept && ordschrijfrechten && verynew) // TODO: De reguliere button hoeft niet meer, alleen autoshow!
        buttons.push({title: L("lcl_shared_order"), icon: "mld_order.png",  action:"mld_orders(" + stdm_info.doublecheck + ")",  autoshow: (S("mld_ask_for_orders") && mld_melding.noWorkflow), tooltip: L("lcl_orders_hint") });
    if (this_mld.canAccept && besschrijfrechten && verynew) // impliceert tevens show_bes
        buttons.push({title: L("lcl_bes_bestelling"), icon: "bes_order.png", action: "mld_bestel()", autoshow: (S("mld_ask_for_orders")), tooltip: L("lcl_bes_hint") });
%>
    <div id="show">
    <div id="showlink" style='padding:10px;border:2px solid black;position:absolute;top:5px;left:500px;background-color:#f0f0f0;display:none'>
        <input id='mldnum' style='width:300px' type='text' value='<%=safe.htmlattr(this.title)%>'><br>
       <input type='button' value='<%=L("lcl_mld_koppelen")%>' onclick='preSaveLink()'>
       <input type='button' value='<%=L("lcl_cancel")%>' onclick='$("#showlink").hide()'>
    </div>
    <form name="u2" onSubmit="return false;">
<div class='leftcontainer'>
<%
    var anyAuto=false;
    for (var i = 0; !anyAuto && i < buttons.length; i++)
        anyAuto = buttons[i].autoshow;

    if (anyAuto && verynew) // eigenlijk: *alleen* autoshow, vandaar pas NADAT hiervoor de buttons in de header geplaatst zijn; niet voor FE
        buttons.push({title: L("lcl_doorzet"), icon: "geenactie.png",   action:"mld_laatgaan()",  autoshow: true ,
                      tooltip: (mld_melding.mld_status == 0 ? L("lcl_laatgaan_hint_fo"): L("lcl_laatgaan_hint")) }); /* en close tab? */

    if (!mld_melding.act_key && anyAuto && verynew && buttons.length) // TODO: beter: er is een button met autoshow-property?
    {
%>    <script>
        $(document).ready(function ()
                          {
                            //FcltMgr.resized(window);
                            params = {};
                            params.width = params.width || 600;
                            params.height = params.height || 280;
                            params.modal = true;
                            params.resizable = false;
                            params.title = '<%=safe.jsstring(L("lcl_select_nextaction"))%>';
                            //params.close = dialogClose;
                            FcltMgr.fixActiveelementError();
                            $('div#dmodal').dialog(params).dialog('open').dialog('option', 'position', { my: "top", at: "top", of: "div#show" });
                          })
      </script>
      <div id="dmodal">
        <% CreateButtons(buttons, { vertical: 1, autoshowOnly: true, isDialog: true, showIcons: true  } ) %>
      </div>
<%
    }

function gen_flex() // ik weet nog niet waar
{
    var parent_list = []; // Ook knoppen met bijlagen van de 'parent'-chain
    var sk = mld_melding.Startkey;
    var mk = mld_key;
    while (sk && sk != mk)
    {
        parent_list.push ( { label:  mld.mld_prefix(mld_melding.Startkey)+mld_melding.Startkey + " ({0})",
                             module:  "MLD",
                             key: sk
                           }
                         ); // TODO: Recursief
        var sql = "SELECT mld_melding_start_key"
                + "  FROM mld_melding"
                + " WHERE mld_melding_key = " + sk;
        var oRs = Oracle.Execute(sql);
        mk = sk;
        sk = oRs("mld_melding_start_key").Value;
    }

    generateFlexKenmerkBlock({stdm_arr     : [mld_melding.stdm],
                              mld_key      : mld_key,
                              parent_list  : parent_list,
                              reado        : true,
                              flexcolumns  : S("mld_flexcolumns")
                             });
}

// Verwijzing naar de parent
function parentButton()
{
  if (mld_melding.parent_key)
  {
      var sprefix = mld.mld_prefix(mld_melding.parent_key);
      var params = { infoPointer: { Url: "appl/mld/mld_melding.asp?urole="+urole+"&mld_key=" + mld_melding.parent_key}};
      ROFIELDTR("fld", L("lcl_mld_completion_in"), sprefix + mld_melding.parent_key, params);
  }
}
    BLOCK_START("mldCaller" , L("lcl_mld_aanvragergegevens"));

    FCLTpersoonselector("sgPerson",
                        "sgPerson",
                        { perslidKey: mld_melding.melder_key,
                          label: L("lcl_mld_name"),
                          fieldNameKey: "person",
                          fieldId: "fldmelder",
                          filtercode: "M",
                          moreinfo: (this_mld.canFOread || this_mld.canBOread),
                          readonly: true
                        });
    // In showmode hoef ik niet twee keer dezelfde naam te tonen
    // en wil ik ongeacht setting S("mld_allow_for_others") tonen als ze verschillen
    if (mld_melding.perslid_key_voor != mld_melding.melder_key)
    {
      FCLTpersoonselector("personFor",
                          "sgPersonFor",
                          { perslidKey: mld_melding.perslid_key_voor,
                            label: L("lcl_mld_call_for"),
                            readonly: true,
                            moreinfo: (this_mld.canFOread || this_mld.canBOread || this_mld.canMIread)
                          });
    }
    if (mld_melding.kostenpl_key>0) {  // omdat deze selectors geen suppressEmpty hebben
        FCLTkostenplaatsselector("sgAccount",
                                  "sgAccount",
                                  -1,
                                 { kostenplaatsKey: mld_melding.kostenpl_key,
                                   label: L("lcl_account"),   // blijkt dummy
                                   fieldNameKey: "account",
                                   readonly: true
                                 });
    }
    if (S("show_ordernr") != 0)
    {
        ROFIELDTR("fldordernr", L("lcl_mld_inf_Ordernr"), mld_melding.mld_ordernr, {suppressEmpty: true});
    }
    BLOCK_END();


    BLOCK_START("mldMelding", L("lcl_mld_categorie"), true);
      ROFIELDTR("flddisc", L("lcl_vakgroup"), (mld_melding.prefix ? mld_melding.prefix + "-" : "") + mld_melding.ins_discipline_omschrijving);
      ROFIELDTR("flddisc", L("lcl_complain"), mld_melding.mld_stdmelding_omschrijving);
      // Normale prio tonen we niet meer
      ROFIELDTR("fldprio", L("lcl_mld_urg"), ((mld_melding.mprio != 3 && stdm_info.afhankelijk != 1) ? mld.getpriotext(mld_melding.mprio) : ""), { suppressEmpty: true});
      if (mld_melding.show_start_date) {
        ROFIELDTR("flddate", L("lcl_mld_startdate"), toDateTimeString(mld_melding.melddatum));
      }

      if (!mld_melding.parent_key)
      {
          // Extra class "expired2" toevoegen indien: ((einddatum + respijttijd) > sla_datum) && slabewaken
          // TODO: Respijt hier (ook) tonen?
          var klaar_na_sla = (mld_actualuitvoertijd > mld_uitvoertijd + mld_respijt) && stdm_info.slabewaken;
          var lclass = (klaar_na_sla? " expired2" : "");
          if (mld_melding.uitvoertijd_eenheid == "U" || S("mld_show_endtime") == 1)
            ROFIELDTR("flddatetime" + lclass, (stdm_info.planbaar? L("lcl_mld_desirable_enddate") : L("lcl_mld_enddate")), toDateTimeString(mld_melding.einddatum), { title: (klaar_na_sla? L("lcl_mld_klaar_na_sla") : "") });
          else
            ROFIELDTR("flddate" + lclass, (stdm_info.planbaar? L("lcl_mld_desirable_enddate") : L("lcl_mld_enddate")), toDateString(mld_melding.einddatum));
      }
    BLOCK_END();

    if (mld_melding.show_bes)
    {
      BLOCK_START("mldBes", L("lcl_aflevergegevens"));
      sql = "SELECT ma.mld_adres_naam, ma.alg_locatie_key"
          + " FROM mld_adres ma"
          + " WHERE mld_adres_key = " + mld_melding.deladdress;
      oRs = Oracle.Execute( sql );
      if( !oRs.eof )
      {
        ROFIELDTR("fld", L("lcl_delivery_address"), oRs("mld_adres_naam").value);
        if (mld_melding.loc_key == -1 && !mld_melding.show_alg)
        {
          // Als het een niet plaatsgebonden melding is, is deze locatie (indien gevuld)
          // een goede parameter voor de link naar de historie (kennisbank)
          mld_melding.loc_key = oRs("alg_locatie_key").value;
        }
      }
      BLOCK_END();
    }

    if (mld_melding.show_alg)
    {
      BLOCK_START("mldAlg", L("lcl_plaatsgegevens"));
        FCLTplaatsselector  (-1, { locatiekey: mld_melding.loc_key,
                                   gebouwkey: mld_melding.bld_key,
                                   verdiepingkey: mld_melding.flr_key,
                                   ruimtekey: mld_melding.room_key,
                                   moreinfo: (this_mld.canFOread || this_mld.canBOread),
                                   terrein: true,
                                   suppressEmpty: true,
                                   readonly:true});
      BLOCK_END();
    }

%></div><% // div.leftcontainer, de rest staat rechts

    BLOCK_START("mldInfo", L("lcl_complain") + " "+ (mld_melding.prefix != null? mld_melding.prefix : "") + mld_key + (mld_melding.mld_onderwerp ? ": <span class='mldsubject'>" + mld_melding.mld_onderwerp + "</span>" : ""));
      if (mld_melding.behandel_key) {
          FCLTpersoonselector("sBehandel",
                              "sgBehandelaar",
                              { perslidKey: mld_melding.behandel_key,
                                label: L("lcl_mld_behandelaar"),
                                fieldNameKey : "sBehandel_key",
                                fieldId: "fldbehandel",
                                moreinfo: (this_mld.canFOread || this_mld.canBOread),
                                readonly: true
                              });
      }
      if (!mld_melding.show_start_date) { // alleen dan is de melddatum de invoerdatum; in het andere geval staat-ie elders al
        ROFIELDTR("flddatetime", L("lcl_mld_date_time"), toDateTimeString(mld_melding.melddatum));
      }

      ROFIELDTR("fld", L("lcl_vakgroup_type"), mld_melding.srtdisc_oms);

      if (mld_melding.meldbron_key != S("mld_meldbron_key")) {  // niet lastigvallen met defaultwaarde
        sql = "SELECT "+lcl.xsqla('mld_meldbron_omschrijving', 'mld_meldbron_key')
            + "  FROM mld_meldbron"
            + " WHERE mld_meldbron_key = " + mld_melding.meldbron_key;
        oRs = Oracle.Execute(sql);

        ROFIELDTR("fld", L("lcl_mld_meldbron"), oRs("mld_meldbron_omschrijving").value);
        oRs.close();
      }
      ROFIELDTR("fld", L("lcl_mld_meldbron_nr"), mld_melding.meldbron_nr, {suppressEmpty: true});

      var params = { infoPointer: { Url: "appl/shared/status_info.asp?mld_key=" + mld_key + "&urole=" + urole,
                                    Title: L("lcl_status_details") + " " + mld_key
                                  }
                   }
      ROFIELDTR("fld", L("lcl_mld_status"), mld_melding.mld_status_str, params);
      parentButton(); // Knop staat er ook nog een keer bij de afhandeling

      // Uitvoertijden naar dagen omrekenen zodat we ze onderling goed kunnen vergelijken.
      var mld_respijt = mld_melding.respijt_eenheid == "U"? mld_melding.respijt / 24 : mld_melding.respijt;
      var mld_uitvoertijd = mld_melding.uitvoertijd_eenheid == "U"? mld_melding.uitvoertijd / 24 : mld_melding.uitvoertijd;
      var mld_actualuitvoertijd = mld_melding.actualuitvoertijd_eenheid == "U"? mld_melding.actualuitvoertijd / 24 : mld_melding.actualuitvoertijd;
      // TODO: Eigen SLA-blokje van maken?
      if (stdm_info.slabewaken)
      {
        if (mld_respijt > 0 || mld_actualuitvoertijd > mld_uitvoertijd)
        {
          var lclass = (mld_actualuitvoertijd > mld_uitvoertijd + mld_respijt? " expired2" : "");
          ROFIELDTR("fld", L("lcl_mld_stduitvoer"), mld_melding.uitvoertijdtxt);
          if (mld_melding.respijt > 0)
            ROFIELDTR("fld", L("lcl_mld_respijt"), mld_melding.respijttxt );
          ROFIELDTR("fld" + lclass, L("lcl_mld_actualuitvoer"), mld_melding.actualuitvoertijdtxt);
        }
        if (this_mld.canSLAChange)
          ROCHECKBOXTR("fldafr", L("lcl_mld_indult"), mld_melding.indult, { suppressEmpty: true });
      }
      if (this_mld.canAfrond)
        ROCHECKBOXTR("fldafr", L("lcl_mld_afgerond"), mld_melding.afgerond, { suppressEmpty: true });

      if (mld_melding.rsv_ruimte_key && mld_melding.res_key)
        mld.referentielink("R", mld_melding.rsv_ruimte_key, L("lcl_mld_with_res"));

      ROCHECKBOXTR("fldkto", L("lcl_mld_kto_invite"), mld_melding.kto, { suppressEmpty: true });

      if (mld_melding.kto_type)
        mld.referentielink(mld_melding.kto_type, mld_melding.kto_key, L("lcl_mld_kto"));

      if (mld_melding.haschild)
      {
        for (var i = 0; i < mld_melding.childs.length; i++)
        {
          mld.referentielink("M", mld_melding.childs[i].key, (i == 0? L("lcl_mld_child_mld") : ""));
        }
      }
      if (mld_melding.hasreference)
      {
        for (var j = 0; j < mld_melding.references.length; j++)
        {
          mld.referentielink("M", mld_melding.references[j].key, (j == 0? L("lcl_mld_referenced") : ""));
        }
      }

      if (mld_melding.Startkey && mld_melding.Startkey != mld_key)
        mld.referentielink("M", mld_melding.Startkey, L("lcl_mld_continue_of"));

      if ((urole == "bo" || urole == "fo") && (S("mld_melding_flags") > 0) && mld_melding.flag)
      {
          ROFIELDTR("fld", L("lcl_mld_flags"), L("lcl_mld_flag" + mld_melding.flag),
                   { html: 'style="padding-left: 20px; background-repeat: no-repeat; background-image: url(../Pictures/mldflag'+mld_melding.flag+'.png)"' });
      }
    BLOCK_END();



    if (S("mld_flexcolumns") == 1)
        gen_flex(); // hier....



    mld.generate_relobject_block(mld_key);

    if (S("mld_flexcolumns") == 2)
        gen_flex(); // dan hier....

    //21-2-2016 11:18:10/PF voor Logcentre-toepassing is mld_onderwerp wel een dingetje; zo heeft het iig geen nut.
    var _imgsrcstr = 'src="../Pictures/lightbulb.png" ';
    var _imgonclickstr = "FcltMgr.openDetail('/appl/mld/mld_search.asp?urole=" + urole + "&chkSelf=1&chkBusy=1&autosearch=1&gebouw_key=" + mld_melding.bld_key + "&locatie_key=" + mld_melding.loc_key + "&stdm_str=" + mld_melding.stdm + "', '"
                         + L("lcl_mld_similarcalls") + "') ";
    BLOCK_START("mldOmschrijving",
                L("lcl_txt") + ((backo || fronto)
                            ? '<img class="details" id="goegel" title="' + L("lcl_mld_similarcalls") + '" '+ _imgsrcstr + 'onclick="' + _imgonclickstr + '">'
                            :''
                          ),
                true,
                mld_melding.freetext == 0); // Geen omschrijving indien mld_stdmelding_freetext == 0
    ROTEXTAREATR("fldtxt", "", mld_melding.mld_omschr, {id: "txt", suppressEmpty: true, mldlink: true });
    BLOCK_END();

    // Wil het blokje helemaal niet zien als het (nog) leeg is
    if (mld_melding.remark || mld_melding.satisfaction) {
        BLOCK_START("mldBehandel", L("lcl_behandelgegevens"), true);

        parentButton(); // Knop staat ook in het info-blok

        if (mld_melding.satisfaction)
          AFIELDTR("fld", L("lcl_res_beoordeling"), "", "", {rating: { id: "oordeel"
                                                                     , score: mld_melding.satisfaction
                                                                     , note: mld_melding.satisfaction_op
                                                                     }
                                                            });

        ROTEXTAREATR("fldtxt", "", mld_melding.remark, {id: "remark", tdhtml_ta: "colspan='2'", suppressEmpty: true, mldlink: true });

        BLOCK_END();
    }
%></form>
    </div> <!-- edit -->
  </body>
</html>
