<% /*
     $Revision$
     $Id$

     File:          referentieselector.inc
     Description:   Algemen interface functie om een referentie suggestbox te maken
                    Deze moet je kunnen includen en aanroepen.
                    Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de referentienaam bevat (referentienaam veld)
                    en een hidden keyveld die de key van de referentie bevat (referentiekey veld).
                    Het referentienaam veld heeft geen naam en wordt niet meegesubmit.
                    Het referentiekey veld heeft een naam en wordt meegesubmit.
                    Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
     parameters     fieldName:    veldnaam van het referentiekey veld. Dit veld wordt gesubmit.
                    objectName:   naam van het suggest object dat wordt aangemaakt.
                    params:       object met meegegeven parameters.
                                  referenceKey:      initiële key waarde van de referentie die ingevuld moet worden.
                                  label:             label dat voor het referentienaam veld wordt weergegeven.
                                  filtercode:        extra filtercode voor de query die gebruikt wordt voor de suggest.
                                  excludemldkey:     uitsluiting van de referentie naar deze melding key.
                                  onChange:          onchange op het textveld.
                                  trclass:           wordt ook op de <tr> gezet
                                  autlevel:          autorisatie niveau voor de query die gebruikt wordt voor de suggest.
                                  isBad:             boolean die aangeeft dat het referentienaam veld als ongeldig
                                                     en leeg weergegeven moet worden (true|false(default)).
                                  readonly:          geeft aan of het referentie veld readonly weergegeven moet worden (true|false(default)).
                                  moreinfo:          geeft een extra informatie button achter het suggest veld. Klikken hierop geeft informatie
                                                     over de geselecteerde waarde
*/ %>

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

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

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

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_referentie")));
  var lreferenceName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  if (params.referenceType && params.referenceKey && params.referenceKey > 0)
    lreferenceName = getReferenceNameReferentie(params.referenceKey, params.referenceType);

  // Bouw de url voor de referentie query op
  var refQueryUrl = rooturl + "/appl/shared/suggest/SuggestReferentie.asp?a=1"
                   + (params.filtercode? "&filtercode=" + params.filtercode : "")
                   + (params.excludemldkey? "&excludemldkey=" + params.excludemldkey : "")
                   + (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>
    <% = params.moreinfo && !params.readonly ? "<span class='labelextra'><i class='fa fa-info-circle details' onclick='referentiedetails_" + fieldName + "()'></i></span>" : ""%>
    </td>
    <td>
<%
  } %>
  <nobr>
    <input id="<%=fieldName%>_show" class="fldbedr<%=!params.readonly&&params.required? " required" : ""%><%=params.readonly && params.moreinfo ? " details" : ""%>"
           <% =params.moreinfo && params.readonly ? " title='" + L("lcl_details") + "' onclick='referentiedetails_" + fieldName + "()'" : ""%>
           value="<%=safe.htmlattr(lreferenceName)%>" placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly" : ""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.referenceKey%>">
    <input type="hidden" id="ref_type" name="ref_type" value="<%=params.referenceType%>">
    <% = params.moreinfo && !params.label ? "<i class='fa fa-info-circle details' onclick='referentiedetails_" + fieldName + "()'></i>" : ""%>
  </nobr>
<%
  if (params.label)
  { %>
    </td></tr>
<%
  } %>
  <script type="text/javascript">
    function referentiedetails_<%=fieldName%> ()
    {
      if ($('#<%=fieldName%>')[0].value != -1) {
        FcltMgr.openDetail("appl/mld/mld_melding.asp?mld_key=" + $('#<%=fieldName%>')[0].value, $('#<%=fieldName%>')[0].value);
      } else {
        // FcltMgr.alert("Wat wil je nou?");
      }
    }
  </script>

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