<% /*
     $Revision$
     $Id$

     File:          disciplineselector.inc
     Description:   Algemene interface functie om een discipline suggestbox te maken

    parameters:     fieldName:    veldnaam van het key veld. Dit veld wordt gesubmit.
                    objectName:   naam van het suggest object dat wordt aangemaakt.
                    params:       object met meegegeven parameters.
                                  disc_key:          initi�le key waarde van de discipline die ingevuld moet worden.
                                  module:            Verplicht: module waarvan de disciplines zijn
                                  perslidKey:        Verplicht voor MLD: persoon waarvoor melding is
                                  autfunctionKey:    verplicht fac_function_key
                                  label:             label dat voor het veld wordt weergegeven.
                                  filtercode:        extra filtercode voor de query die gebruikt wordt voor de suggest.
                                  onChange:          onchange op het textveld.
                                  trclass:            wordt ook op de <tr> gezet.
                                  autlevel:          autorisatie niveau voor de query die gebruikt wordt voor de suggest.
                                  ins_key:           alleen als melding op dit object mogelijk is.
                                  extraParamField:   veldnaam voor een extra hidden parameter veld.
                                  isBad:             boolean die aangeeft dat het veld als ongeldig
                                                     en leeg weergegeven moet worden (true|false(default)).
                                  readonly:          geeft aan of het veld readonly weergegeven moet worden (true|false(default)).
                                  dohide:            verberg de discipline selector
                                  autRW:             Geeft aan of er read or write autorisatie geldt.
*/ %>
<!-- #include file="./Suggest/disciplineFilter.inc" -->

<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });

function FCLTdisciplineselector(fieldName, objectName, params)
{
  params = params || {};

  var lwhenEmpty = "";
  if (!params.readonly)
  {
    // the default empty value depends on the module
    switch(params.module)
    {
      // Plaatsgegevens
      case "MLD":  { lwhenEmpty = L("lcl_select_vakgroep");
                     break;
                   }
      case "BES":  { lwhenEmpty = L("lcl_select_catalogus");
                     break;
                   }
      default:     { lwhenEmpty = L("lcl_select_discipline");
                     break;
                   }
    }
  }
  lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : lwhenEmpty));
  var ldiscName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  var lextraInit = "";
  var filtClause = getFiltClauseDiscipline(params.filtercode, params);
  var extraInf = getExtraInfDiscipline(params.extracode);

  sql = "SELECT COUNT(distinct td.ins_discipline_key) aantal"
      + "  FROM ins_tab_discipline td"
      + filtClause.from
      + " WHERE ins_discipline_verwijder IS NULL"
      + filtClause.where;
  var oRs = Oracle.Execute(sql);
  // Als er maar ��n vakgroep is, dan deze selecteren.
  if (oRs("aantal").value == 1)
  {
    sql = "SELECT td.ins_discipline_key"
        + ", NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') "
        + " || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " disciplineomschr"
        + extraInf.selectstr
        + " FROM ins_tab_discipline td"
        + ", ins_srtdiscipline sd"
        + filtClause.from
        + extraInf.fromstr
        + " WHERE td.ins_discipline_verwijder IS NULL"
        + "   AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
        + filtClause.where
        + extraInf.wherestr;
    var oRs = Oracle.Execute(sql);
    ldiscName = oRs("disciplineomschr").value;
    lextraInit = oRs("extra").value;
    params.disc_key = oRs("ins_discipline_key").value;
    if (params.ins_key > 0) // dan ben ik zeker nieuw
      params.readonly = true;
  }

  // Bouw de url voor de vakgroep query op
  var discQueryUrl = rooturl + "/appl/shared/suggest/SuggestDiscipline.asp"
                   + "?module=" + params.module
                   + "&perslidKey=" + params.perslidKey
                   + "&autfunctionKey=" + params.autfunctionKey
                   + "&autRW=" + params.autRW
                   + (params.srtdisc_key? "&srtdisc_key=" + params.srtdisc_key : "")
                   + (params.ins_key? "&ins_key=" + params.ins_key : "")
                   + (params.extracode? "&extracode=" + params.extracode : "")
                   + (params.filtercode? "&filtcode=" + params.filtercode : "");
  if (params.label && !params.dohide)
  { %>
    <tr <%=params.trclass ? "class='"+params.trclass+"'" : ""%>><td class="label">
      <label for="<%=fieldName%>"><%=params.label%>:</label>
        <%=params.moreinfo && S("faq_enabled") == 1? "<span class='"+"labelextra'><i class='fa fa-info-circle details' title='" + safe.htmlattr(L("lcl_faq_items")) + "'onclick='disciplineselector.kennisbankitems()'></i></span>" : "" %>
    </td>
    <td>
<%
  } %>
  <nobr>
    <input type=<%=params.dohide? "hidden" : "text"%> id="<%=fieldName%>_show" class="flddisc<%=(!params.readonly && params.required)? " required" : ""%>" value="<%=safe.htmlattr(ldiscName)%>"
           placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly":""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'":""%>
   >
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.disc_key%>">
<%
    if (params.extraParamField)
    { /* het extra parameter veld wordt door suggest object gevuld */%>
      <input type="hidden" id="<%=params.extraParamField%>" name="<%=params.extraParamField%>" value="<%=safe.htmlattr(lextraInit)%>">
<%
    } %>
  </nobr>
<%
  if (params.label && !params.dohide)
  { %>
    </td></tr>
<%
  }

  if (!params.readonly)
  {
    if (params.urlAdd)
    {
      var urlAddTxt = "[";
      for (var i = 0; i < params.urlAdd.length; i++)
      {
        urlAddTxt += (i > 0? ", " : "") + "{ urlParam: \"" + params.urlAdd[i].urlParam + "\", field: \"" + params.urlAdd[i].field + "\" }";
      }
      urlAddTxt += "]"
    }
%>
    <script type="text/javascript">
      jQuery(document).ready( function()
                              {
                                <%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
                                                                queryField: $("#<%=fieldName%>_show")[0],
                                                                queryUrl: "<%=discQueryUrl%>",
                                                                initKey: <%=params.disc_key? params.disc_key : -1%>,
                                                                icon: "fa-tag",
                                                                keyField: $("#<%=fieldName%>")[0]
                                                                <%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
                                                                <%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
                                                                <%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
                                                                <%=params.isBad? ", isBad: true": ""%>
                                                                <%=params.readonly? ", fieldReadonly: true": ""%>
                                                                ,highlightDescript: true
                                                              });
                              }
                            );

<%    if (params.moreinfo && S("faq_enabled") == 1)
      { %>
        disciplineselector =
        {
          kennisbankitems: function()
          {
            function process_disc_info(data, textStatus)
            {
              if (data.aantal_fefaq > 0 || data.aantal_fofaq > 0)
                FcltMgr.openDetail("appl/fac/fac_faq_search.asp?autosearch=1&urole=bo&disc_key_str=" + disc_key, "<%=L("lcl_faq_kennisbank")%>");
            }

            var disc_key=$("#<%=fieldName%>")[0].value;
            if (disc_key != -1)
            {
              $.getJSON("../ins/get_ins_info_ajax.asp",
                        { req_info: "ins_discipline_key",
                          disc_key: disc_key
                        },
                        process_disc_info);
            }
          }
        }
<%    } %>
    </script>
<%
  }
}
%>