<% /*
     $Revision$
     $Id$

     File:          adresselector.inc
     Description:   Algemene interface functie om een adres suggestbox te maken
                    Deze moet je kunnen includen en aanroepen.
                    Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de adres bevat
                    en een hidden keyveld die de key van het adres bevat (bedrijfskey veld).
                    Het bedrijfsnaam veld heeft geen naam en wordt niet meegesubmit.
                    Het bedrijfskey veld heeft een naam en wordt meegesubmit.
                    Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
     parameters     fieldName:    veldnaam van het bedrijfskey veld. Dit veld wordt gesubmit.
                    objectName:   naam van het suggest object dat wordt aangemaakt.
                    params:       object met meegegeven parameters.
                                  adresKey:        initiële key waarde van de bedrijf die ingevuld moet worden.
                                  label:             label dat voor het bedrijfsnaam 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 bedrijfsnaam veld als ongeldig
                                                     en leeg weergegeven moet worden (true|false(default)).
                                  readonly:          geeft aan of het bedrijf 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/adresFilter.inc" -->

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

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

  var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty :  (params.readonly ? L("lcl_select_readonly") : L("lcl_select_adres")));
  var ladresName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
  var lextraInit = "";
  if (params.adresKey && params.adresKey > 0)
  {
    var filtClause = getFiltClauseAdres(params.filtercode);

   sql = "SELECT  m.mld_adres_naam adres, 'dummy' extra"
       + "  FROM mld_adres m"
       + " WHERE m.mld_adres_key = " + params.adresKey
       + filtClause;
    var oRs = Oracle.Execute(sql);
    if (!oRs.eof) {
      ladresName = oRs("adres").Value;
      lextraInit = oRs("extra").Value
    }
  }
  else
  {
    var filtClause = getFiltClauseAdres(params.filtercode, params);
    var extraInf = getExtraInfadres(params.extracode);
    sql = "SELECT COUNT(*) aantal"
        + " FROM mld_adres m"
        + " WHERE mld_adres_verwijder IS NULL"
        + filtClause;
    var oRs = Oracle.Execute(sql);
  } 

  // Bouw de url voor de persoons query op
  var compQueryUrl = rooturl + "/appl/shared/suggest/SuggestAdres.asp"
                   + ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
                   + (params.filtercode? "&filtcode=" + params.filtercode : "")
                   + (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='adresdetails_" + fieldName + "()'></i></span>" : ""%>
    </td>
    <td>
<%
  } %>
  <nobr>
    <input id="<%=fieldName%>_show" class="fldadr<%=!params.readonly&&params.required? " required" : ""%><%=params.readonly && params.moreinfo ? " details" : ""%>"
           <% =params.moreinfo && params.readonly ? " title='" + L("lcl_details") + "' onclick='adresdetails_" + fieldName + "()'" : ""%>
           value="<%=safe.htmlattr(ladresName)%>" placeholder="<%=lwhenEmpty%>"
           <%=params.readonly? " readonly" : ""%>
           <%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
    <input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.adresKey%>">
    <% = params.moreinfo && !params.readonly && !params.label ? "<i class='fa fa-info-circle details' onclick='adresdetails_" + fieldName + "()'></i>" : ""%>
<%
    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>
<%
  } %>
  <script type="text/javascript">
    function adresdetails_<%=fieldName%> ()
    {
      if ($('#<%=fieldName%>')[0].value != -1) {
        FcltMgr.openDetail("appl/fac/fac_adres.asp?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: "<%=compQueryUrl%>",
                                                                icon: "fa-envelope",
                                                                initKey: <%=params.adresKey? params.adresKey : -1%>,
                                                                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": ""%>
                                                              });
                              }
                            )
    </script>
<%
  }
}
%>