<% /*
     $Revision$
     $Id$

     File:          kostensoortselector.inc
     Description:   Algemen interface functie om een kostensoort suggestbox te maken
                    Deze moet je kunnen includen en aanroepen.
                    Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de kostensoorten bevat (kostensoortnaam veld)
                    en een hidden keyveld die de key van de kostensoort bevat (kostensoortkey veld).
                    Het kostensoortnaam veld heeft geen naam en wordt niet meegesubmit.
                    Het kostensoortkey veld heeft een naam en wordt meegesubmit.
                    Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
    parameters:     fieldName:    veldnaam van het kostensoortkey veld. Dit veld wordt gesubmit.
                    objectName:   naam van het suggest object dat wordt aangemaakt.
                    params:       object met meegegeven parameters.
                                  kostensoortKey:    initiële key waarde van de kostensoort die ingevuld moet worden.
                                  label:             label dat voor het kostensoortnaam 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
                                  extraParamField:   veldnaam voor een extra hidden parameter veld.
                                  isBad:             boolean die aangeeft dat het kostensoortnaam veld als ongeldig
                                                     en leeg weergegeven moet worden (true|false(default)).
                                  readonly:          geeft aan of het kostensoortnaam veld readonly weergegeven moet worden (true|false(default)).
                                  filtercode:        filtercode van extra filter clausule voor initiële waarde
                                  suppressEmpty:     niets tonen als suppressEmpty en readonly
*/ %>

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

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

function FCLTkostensoortselector(fieldName, objectName, params)
{
  if (typeof params == "undefined") params = {};
  if (!(params.kostensoortKey && params.kostensoortKey > 0) && params.readonly && params.suppressEmpty) return;

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_kostensoort")));
  var lkostensoortName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  var lextraInit = "";
  if (params.kostensoortKey && params.kostensoortKey > 0)
  {
    var filtClause = getFiltClauseKostensoort(params.filtercode);
    //var extraInf = ", 'Extra' extra";
    var extraInf = getExtraInfKostensoort(params.extracode);

    sql = "SELECT ks.prs_kostensoort_key"
        + ", ks.prs_kostensoort_oms || '-' || " + lcl.xsql("ks.prs_kostensoort_opmerking", "ks.prs_kostensoort_key") + " kostensoort"
        + extraInf
        + " FROM prs_kostensoort ks"
        + " WHERE ks.prs_kostensoort_key = " + params.kostensoortKey
        + filtClause;
    var oRs = Oracle.Execute(sql);
    lkostensoortName = oRs("kostensoort").value;
    lextraInit = oRs("extra").value;
  }

  // Bouw de url voor de kostensoorten query op
  var kostensoortQueryUrl = rooturl+"/appl/shared/suggest/SuggestKostensoort.asp?a=1"
                          + (params.filtercode? "&filtcode=" + params.filtercode : "")
                          + (params.showall? "&showall=" + params.showall : "")
                          + (params.extracode? "&extracode=" + params.extracode : "");
  if (params.label)
  { %><tr <%=params.trclass? "class='" + params.trclass + "'":""%>>
    <td class="label">
      <label class='selector' for="<%=fieldName%>"><%=params.label%>:</label>
    </td>
    <td>
<%
  } %>
  <nobr>
    <input id="<%=fieldName%>_show" class="fldcontactpers<%=!params.readonly&&params.required? " required" : ""%>"
        value="<%=safe.htmlattr(lkostensoortName)%>" placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly" : ""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.kostensoortKey%>">

<%  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: "<%=kostensoortQueryUrl%>",
                                         initKey: <%=params.kostensoortKey? params.kostensoortKey : -1%>,
                                         keyField: $("#<%=fieldName%>")[0],
                                         highlightDescript: true
                                         <%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
                                         <%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
                                         <%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
                                         <%=params.isBad? ", isBad: true": ""%>
                                         <%=params.readonly? ", fieldReadonly: true": ""%>
                                       });
       }
      )
    </script>
<%
  }
}
%>