<% /*
     $Revision$
     $Id$

     File:          srtcontroleselector.inc
     Description:   Algemene interface functie om een taken (srtcontrole) 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.
                                  srtcontrole_key:   initiële key waarde van de srtcontrole die ingevuld moet worden.
                                  ctrdisc_key:       Taakcategorieën van de taken die je kunt selecteren.
                                  multitoggle:       Sta multi-toggle toe
                                  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.
                                  intern_uitv:       Ben ik interne uitvoerder.
                                  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)).
                    TODO: Autoselect als er maar eentje is
*/ %>

<!-- #include file="./Suggest/srtcontroleFilter.inc" -->

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

function FCLTsrtcontroleselector(fieldName, objectName, params)
{
  var sgType = fieldName;
  if (typeof params == "undefined") params = {};
  var isMobile = ("mobile" in params) ? params.mobile : (typeof mobile != "undefined");

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_srtcontrole")));
  var lsrtcontroleName = "";

  // Is er een initiele waarde meegegeven? Zoek dan de omschrijving erbij!

  // Bijvoorbeeld params.perslidKey ook meegeven aan getFiltClauseSrtcontrole.
  // params.perslidKey kan ook meegegeven worden met urlAdd zodat de waarde uit een veld wordt gehaald
  if (params.urlAdd)
  {
    for (i in params.urlAdd)
    {
      if (params.urlAdd[i].init)
          params[params.urlAdd[i].urlParam] = params.urlAdd[i].init;
    }
  }

  var filtClause = getFiltClauseSrtcontrole(params.filtercode, params, true);
  sql = "SELECT COUNT(*) aantal"
      + "  FROM ins_srtcontrole isc"
      + "     , ctr_disc_params cdp"
      + "     , ctr_discipline cd"
      + filtClause.from
      + " WHERE isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
      + "   AND cdp.ctr_ins_discipline_key = cd.ins_discipline_key"
      + filtClause.where;
  var oRs = Oracle.Execute(sql);
  // Als er maar één taakcategorie (ctr_discipline) is, dan deze selecteren.
  var justone = (oRs("aantal").value == 1);
  if (oRs("aantal").value == 1)
  {
    sql = "SELECT ins_srtcontrole_key"
        + filtClause.select
        + "     , cd.ins_discipline_omschrijving"
        + "  FROM ins_srtcontrole isc"
        + "     , ctr_disc_params cdp"
        + "     , ctr_discipline cd"
        + filtClause.from
        + " WHERE isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
        + "   AND cdp.ctr_ins_discipline_key = cd.ins_discipline_key"
        + filtClause.where;
    oRs.Close(); // close the above recordset first
    var oRs = Oracle.Execute(sql);
    lsrtcontroleName = oRs("ins_srtcontrole_omschrijving").value;
    params.srtcontrole_key = oRs("ins_srtcontrole_key").Value;
  }
  oRs.Close(); // close the recordset
  // TODO: dit gaat nog niet zo lekker; als ik binnen het kennelijk geldende filter geen Name kan vinden
  //       moet-ie dan bv bad worden getoond? Of wat?

  // Bouw de url voor de srtcontrole query op
  var srtcQueryUrl = rooturl + "/appl/shared/suggest/SuggestSrtcontrole.asp"
                     + "?intern_uitv=" + (params.intern_uitv? 1 : 0)
                     + (params.ctrdisc_key_arr && params.ctrdisc_key_arr.length > 0? "&ctrdisc_key_arr=" + params.ctrdisc_key_arr.join(",") : "")
                     + (params.filtercode? "&filtcode=" + params.filtercode : "");
  if (params.label)
  { %><tr>
    <td class="label">
      <label for="<%=fieldName%>_show"><%=params.label%></label>
    </td>
    <td>
<%
  } %>
  <div<%=isMobile ? ' class="input-icon-wrapper"' : ''%>>
    <input id="<%=fieldName%>_show" class="fld<%=(!params.readonly && params.required)? " required" : ""%><%=isMobile ? MOBILE_UI_CLASSES.input : ""%>"
           value="<%=safe.htmlattr(lsrtcontroleName)%>" placeholder="<%=safe.htmlattr(lwhenEmpty)%>"
           <%=params.readonly? " readonly":""%> sgType="<%=sgType%>"
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'":""%>
   >
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.srtcontrole_key%>">
  </div>
<%
  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">
      $(function()
      {
        <%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
                                        sgType: "<%=sgType%>",
                                        queryField: $("#<%=fieldName%>_show")[0],
                                        queryUrl: "<%=srtcQueryUrl%>",
                                        initKey: <%=params.srtcontrole_key? params.srtcontrole_key : -1%>,
                                        keyField: $("#<%=fieldName%>")[0]
                                        <%=params.multitoggle ? ", multitoggle: true" : ""%>
                                        <%=params.sgRelType ? ", sgRelType: \"" + params.sgRelType + "\"": ""%>
                                        <%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
                                        <%=params.isBad? ", isBad: true": ""%>
                                        <%=params.readonly? ", fieldReadonly: true": ""%>
                                        ,highlightDescript: true
                                      });
      });
    </script>
<%
  }
}
%>