<% /*
     $Revision$
     $Id$

     File:          srtgroepselector.inc
     Description:   Algemene interface functie om een standaard srtgroep 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.
                                  srtgroep_key       Initi�le key waarde van de srtgroep die ingevuld moet worden.
                                  disc_key:          Discipline key (parent)
                                  module:            Verplicht: module waarvan de srtgroepen zijn
                                  autfunction        Verplicht autfunction (fac_function_code)
                                  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.
                                  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)).
*/ %>
<!-- #include file="./Suggest/srtgroepFilter.inc" -->

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

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

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_srtgroep")));
  var lsrtgroepName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  var lextraInit = "";
  var filtClause = getFiltClauseSrtgroep(params.filtercode, params);
  var module = params.module || "INS"; // geldige waarden: INS, BES

  if (module != "INS" && module != "BES")
    shared.internal_error(L("lcl_obj_bad_value") + " module={0}.".format(module));

  sql = "SELECT COUNT(distinct sg." + module + "_srtgroep_key) aantal"
      + "  FROM " + module + "_v_aanwezigsrtgroep sg"
        + ", ins_tab_discipline td"
        + " WHERE td.ins_discipline_key = sg.ins_discipline_key"
        + "   AND td.ins_discipline_verwijder IS NULL"
      + filtClause;
  var oRs = Oracle.Execute(sql);
  // Als er maar ��n srtgroep is, dan deze selecteren.
  if (oRs("aantal").value == 1)
  {
    sql = "SELECT sg." + module + "_srtgroep_key srtgroep_key"
        + ", " + lcl.xsql("sg." + module + "_srtgroep_omschrijving", "sg." + module + "_srtgroep_key") + "srtgroep_omschrijving"
        + ", td.ins_discipline_key extra"
        + " FROM " + module + "_v_aanwezigsrtgroep sg"
        + ", ins_tab_discipline td"
        + " WHERE td.ins_discipline_key = sg.ins_discipline_key"
        + "   AND td.ins_discipline_verwijder IS NULL"
        + filtClause;
    var oRs = Oracle.Execute(sql);
    lsrtgroepName = oRs("srtgroep_omschrijving").value;
    lextraInit = oRs("extra").value;
    params.srtgroep_key = oRs("srtgroep_key").value;
  }

  // Bouw de url voor de srtgroep query op
  var srtgroepQueryUrl = rooturl + "/appl/shared/suggest/SuggestSrtgroep.asp"
                       + "?autfunction=" + params.autfunction
                       + (params.disc_key? "&disc_key=" + params.disc_key : "")
                       + (params.extracode? "&extracode=" + params.extracode : "")
                       + (params.filtercode? "&filtcode=" + params.filtercode : "")
                       + "&module=" + module;
  if (params.label)
  { %>
    <tr <%=params.trclass ? "class='"+params.trclass+"'" : ""%>><td class="label">
      <label for="<%=fieldName%>"><%=params.label%>:</label>
    </td>
    <td>
<%
  } %>
  <nobr>
    <input id="<%=fieldName%>_show" class="fldsrtgroup<%=(!params.readonly && params.required)? " required" : ""%>" value="<%=safe.htmlattr(lsrtgroepName)%>"  placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly":""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'":""%>
   >
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.srtgroep_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)
  { %>
    </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: "<%=srtgroepQueryUrl%>",
                                                                initKey: <%=params.srtgroep_key? params.srtgroep_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
                                                              });
                              }
                            )
    </script>
<%
  }
}
%>