<% /*
     $Revision$
     $Id$

     File:          srtdeelselector.inc
     Description:   Algemene interface functie om een standaard srtdeel 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.
                                  srtdeel_key       Initi�le key waarde van de srtgroep die ingevuld moet worden.
                                  srtgroep_key:      Srtgroep key (parent)
                                  module:            Verplicht: module waarvan de srtdelen 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/srtdeelFilter.inc" -->

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

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

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_srtdeel")));
  var lsrtdeelName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  var lextraInit = "";
  var filtClause = getFiltClauseSrtdeel(params.filtercode, params);
  var orgmodule = params.module || "INS"; // geldige waarden: INS, BES, SLE
  var module = (orgmodule == "SLE" ? "INS" : orgmodule); // module SLE wordt verder behandled als INS.

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

  sql = "SELECT COUNT(distinct sd." + module + "_srtdeel_key) aantal"
      + "  FROM " + module + "_srtdeel sd"
      + "     , " + module + "_v_aanwezigsrtgroep sg"
      + filtClause.from
      + " WHERE sg." + module + "_srtgroep_key = sd." + module + "_srtgroep_key"
      + filtClause.where;
  var oRs = Oracle.Execute(sql);
  // Als er maar ��n srtdeel is, dan deze selecteren.
  if (oRs("aantal").value == 1)
  {
    sql = "SELECT sd." + module + "_srtdeel_key srtdeel_key"
        + ",  CASE"
          + " WHEN sd." + module + "_srtdeel_nr IS NULL"
          + " THEN ''"
          + " ELSE sd." + module + "_srtdeel_nr || ' '"
          + " END ||"
          + lcl.xsql ("sd." + module + "_srtdeel_omschrijving", "sd." + module + "_srtdeel_key") + " srtdeel_omschrijving"
        +  getExtraInfSrtdeel(params.extracode, module)
        + " FROM " + module + "_srtdeel sd"
        + ", "     + module + "_v_aanwezigsrtgroep sg"
        + filtClause.from
        + " WHERE sg." + module + "_srtgroep_key = sd." + module + "_srtgroep_key"
        + "   AND sg." + module + "_srtgroep_verwijder IS NULL"
        + filtClause.where;
    var oRs = Oracle.Execute(sql);
    lsrtdeelName = oRs("srtdeel_omschrijving").value; // bes_srtdeel_omschrijving
    lextraInit = oRs("extra").value;
    params.srtdeel_key = oRs("srtdeel_key").value;
  }

  // Bouw de url voor de srtdeel query op
  var srtdeelQueryUrl = rooturl + "/appl/shared/suggest/SuggestSrtdeel.asp"
                       + "?autfunction=" + params.autfunction
                       + (params.srtgroep_key? "&srtgroep_key=" + params.srtgroep_key : "")
                       + (params.module? "&module=" + params.module : "")
                       + (params.extracode? "&extracode=" + params.extracode : "")
                       + (params.filtercode? "&filtcode=" + params.filtercode : "");
  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="fldsrtdeel<%=(!params.readonly && params.required)? " required" : ""%>" value="<%=safe.htmlattr(lsrtdeelName)%>" placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly":""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'":""%>
   >
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.srtdeel_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: "<%=srtdeelQueryUrl%>",
                                                                initKey: <%=params.srtdeel_key? params.srtdeel_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>
<%
  }
}
%>