<%@language = "javascript" %>
<% /*
     $Revision$
     $Id$

    File:           ins_xcp.asp
    Description:    Interval gegeven opgeven/aanpassen
    Parameters:     ins_keys of ins_key (geen verschil)

    Context:        Actie ins_inspect_list
    Note:           Resultaat van een submit is een json object

*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="ins_flexkenmerksrtcontrole.inc" -->
<!-- #include file="ins.inc" -->

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

// Eigenlijk tot nu toe geen multi ins_key waarden. Slechts één ins_key waarden wordt gesubmit.
var ins_key = getQParamInt("ins_key");

var srtcont_key = getQParamInt("srtcont_key", -1); // voorgekozen inspectiesoort
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // bestaande inspectie
var transitParam = buildTransitParam(["srtcont_key", "deelsrtcont_key"]);
var add = getQParamInt("add", 0) == 1; // Controle inspectie (ins_srtcontrole) waarvan de periode op 0 staat actief maken.

// Mag ik het object aanpassen?
var this_ins = ins.func_enabled_deel(ins_key);
user.anything_todo_or_abort(this_ins.canChangeXcp);
%>

<html>
  <head>
<%  FCLTHeader.Generate(); %>

    <script type="text/javascript">
      function ins_submit()
      {
        if (!validateForm("u2"))
          return false;

        // Als alle xcp waarden overeenkomen met de std waarden en respijt, groep en de datum zijn leeg dan kan het xcp record worden verwijderd.
        var periode_std = $("#sel_srtcontrole option:selected")[0].getAttribute("periode_std");
        var eenheid_std = $("#sel_srtcontrole option:selected")[0].getAttribute("eenheid_std");
        var bits_std = $("#sel_srtcontrole option:selected")[0].getAttribute("bits_std");
        var vervaldatum_std = $("#sel_srtcontrole option:selected")[0].getAttribute("vervaldatum_std");
        var respijt = $("#sel_srtcontrole option:selected")[0].getAttribute("respijt");

        if (periode_std == $("#periode").val() &&
            eenheid_std == $("#eenheid").val() &&
            bits_std == $("#bits").val() &&
            $("#groep").val() == "" &&
            vervaldatum_std == $("#vervaldatum").val() &&
            $("#sel_srtcontrole option:selected")[0].getAttribute("respijt") == "")
        {
          ins_delete();
          return true;
        }

        $.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), FcltCallbackClose, "json");
        return true; // disable submit.
      }

      function ins_delete()
      {
        var srtcontr_key = $("#sel_srtcontrole").val();
        if (srtcontr_key < 0)
        {
          alert("<%=L("lcl_ins_controle_srt_verplicht")%>");
          $("#sel_srtcontrole").addClass("missing");
          return false;
        }
        var data = { ins_key: <%=ins_key%>,
                     srtcontr_key: srtcontr_key };
        protectRequest.dataToken(data);
        $.post("ins_delete_xcp.asp",
               data,
               FcltCallbackClose,
               "json");
      }

      function ins_cancel()
      {
          FcltMgr.closeDetail(window, { cancel: true } );
      }

      function onClickCbDay(pday)
      { // Minimaal 1 checkbox moet aangevinkt zijn. De laatste uit vinken kan niet.
        if (!document.getElementById("insInspZo").checked &&
            !document.getElementById("insInspMa").checked &&
            !document.getElementById("insInspDi").checked &&
            !document.getElementById("insInspWo").checked &&
            !document.getElementById("insInspDo").checked &&
            !document.getElementById("insInspVr").checked &&
            !document.getElementById("insInspZa").checked)
          $("#insInsp" + pday).prop('checked', true);
      }

      function onChangeEenheid()
      {
        var mode = $("#sel_srtcontrole option:selected")[0].getAttribute("modus");
        $("#mode").val(mode);

        var eenheid = parseInt($("#eenheid").val(), 10);
        var bits = 0;
        if (eenheid == 1 || eenheid == 2 || eenheid == 3 || eenheid == 4)
        {
          var bits_std = $("#sel_srtcontrole option:selected")[0].getAttribute("bits_std");
          var bits_xcp = $("#sel_srtcontrole option:selected")[0].getAttribute("bits_xcp");
          if (eenheid == 1)
            bits = (bits_xcp >= 0? bits_xcp : bits_std);
          else
            bits = (bits_xcp > 0? bits_xcp : bits_std);
        }

        if ($("#sel_srtcontrole").val() > 0)
        {
          if (mode == 1)
          { // Interval modus (1)
            // Bits niet zichtbaar
            $(".trbits2").hide();
            $(".trbits3").hide();
            $(".trbits4").hide();
            if (eenheid == -1)
            {
              $(".trperiode").hide();
              $("#periode").removeClass("required");
            }
            else
            {
              $(".trperiode").show();
              $("#periode").addClass("required");
            }

            switch (eenheid)
            {
              case -1: $("#periodereartext").text("");
                       break;
              case 0: $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearhour")%>");
                       break;
              case 1: $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearday")%>");
                       break;
              case 2: $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearweek")%>");
                       break;
              case 3: $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearmonth")%>");
                       break;
              case 4: $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearyear")%>");
                       break;
            }
          }
          else
          { // Moment modus (0)
            switch (eenheid)
            {
              case -1: $(".trperiode").hide();
                       $(".trbits2").hide();
                       $(".trbits3").hide();
                       $(".trbits4").hide();
                       $(".trnotholiday").hide();
                       $("#periodereartext").text("");
                       $("#periode").removeClass("required");
                       break;
              case 0:  $(".trperiode").show();
                       $(".trbits2").hide();
                       $(".trbits3").hide();
                       $(".trbits4").hide();
                       $(".trnotholiday").show();
                       $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearhour")%>");
                       $("#periode").addClass("required");
                       $("#insInspNoHoli").prop('checked', (bits & 128) == 128);
                       break;
              case 1:  $(".trperiode").show();
                       $(".trbits2").hide();
                       $(".trbits3").hide();
                       $(".trbits4").hide();
                       $(".trnotholiday").show();
                       $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearday")%>");
                       $("#periode").addClass("required");
                       $("#insInspNoHoli").prop('checked', (bits & 128) == 128);
                       break;
              case 2:  $(".trperiode").show();
                       $(".trbits2").show();
                       $(".trbits3").hide();
                       $(".trbits4").hide();
                       $(".trnotholiday").show();
                       $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearweekon")%>");
                       $("#periode").addClass("required");
                       // Alle checkboxen de juiste waarde geven.
                       var dag_bits = (bits & 1) + (bits & 2) + (bits & 4) + (bits & 8) + (bits & 16) + (bits & 32) + (bits & 64);
                       if (dag_bits == 0)
                       { // Er is geen dag gekozen. Dan maar vandaag kiezen.
                         var todaydow = new Date().getDay();
                         bits = Math.pow(2, todaydow - 1);
                       }
                       $("#insInspZo").prop('checked', (bits & 1) == 1);
                       $("#insInspMa").prop('checked', (bits & 2) == 2);
                       $("#insInspDi").prop('checked', (bits & 4) == 4);
                       $("#insInspWo").prop('checked', (bits & 8) == 8);
                       $("#insInspDo").prop('checked', (bits & 16) == 16);
                       $("#insInspVr").prop('checked', (bits & 32) == 32);
                       $("#insInspZa").prop('checked', (bits & 64) == 64);
                       $("#insInspNoHoli").prop('checked', (bits & 128) == 128);
                       break;
              case 3:  $(".trperiode").show();
                       $(".trbits2").hide();
                       $(".trbits3").show();
                       $(".trbits4").hide();
                       $(".trnotholiday").show();
                       $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearmonthon")%>");
                       $("#periode").addClass("required");
                       // De bits kan nog een waarde van weekelijks hebben als je eenheid van wekelijks naar maandelijks zet.
                       // Dan eerste dag aangeven.
                       var dag_bits = (bits & 1) || (bits & 2) || (bits & 4) || (bits & 8) || (bits & 16) || (bits & 32) || (bits & 64);
                       if (dag_bits == 0)
                       { // Er is geen dag gekozen. Dan maar vandaag kiezen.
                         var todaydow = new Date().getDay();
                         dag_bits = Math.pow(2, todaydow - 1);
                       }
                       var week_bits = (bits & 256) / 256 * 1 + (bits & 512) / 512 * 2 + (bits & 1024) / 1024 * 4;
                       if (week_bits < 1 || week_bits > 7)
                       { // Er is geen week gekozen, dan maar de eerste kiezen.
                         var todaydate = new Date().getDate();
                         week_bits = Math.floor(todaydate / 7) + 1;
                       }
                       week_bits = (week_bits & 1) * 256 + (week_bits & 2) * 256  + (week_bits & 4) * 256;
                       $("#dagbits").val(dag_bits);
                       $("#weekbits").val(week_bits);
                       $("#insInspNoHoli").prop('checked', (bits & 128) == 128);
                       break;
              case 4:  $(".trperiode").show();
                       $(".trbits2").hide();
                       $(".trbits3").hide();
                       $(".trbits4").show();
                       $(".trnotholiday").hide();
                       // Als bits geen maand waarde heeft dan selecteer huidige maand.
                       $("#maandbits").val(bits >= 1 && bits <= 12? bits : (new Date().getMonth() + 1));
                       $("#periodereartext").text("<%=L("lcl_ins_controle_period_rearyearin")%>");
                       $("#periode").addClass("required");
                       break;
            }
          }
        }
        else
        {
          $(".trperiode").hide();
          $(".trbits2").hide();
          $(".trbits3").hide();
          $(".trbits4").hide();
          $(".trnotholiday").hide();
        }

        FcltMgr.resized(window);
      }

      function onChangeSrtControle()
      {
        var periode_std = $("#sel_srtcontrole option:selected")[0].getAttribute("periode_std");
        var periode_xcp = $("#sel_srtcontrole option:selected")[0].getAttribute("periode_xcp");
        $("#periode").val(periode_xcp >= 0? periode_xcp : periode_std);

        var eenheid_std = $("#sel_srtcontrole option:selected")[0].getAttribute("eenheid_std");
        var eenheid_xcp = $("#sel_srtcontrole option:selected")[0].getAttribute("eenheid_xcp");
        $("#eenheid").val(eenheid_xcp >= 0? eenheid_xcp : eenheid_std);

        var kosten_std = parseFloat(($("#sel_srtcontrole option:selected")[0].getAttribute("kosten_std") || "0").replace(',', '.'));
        var kosten_xcp = parseFloat(($("#sel_srtcontrole option:selected")[0].getAttribute("kosten_xcp") || "0").replace(',', '.'));
        if (kosten_std == kosten_xcp)
          $("#kosten").val("");
        else if (!isNaN(kosten_std) && !isNaN(kosten_xcp))
          $("#kosten").val(num2currEditable(kosten_xcp >= 0? kosten_xcp : kosten_std));

        onChangeEenheid();

        $("#groep").val($("#sel_srtcontrole option:selected")[0].getAttribute("groep"));

        var vervaldatum_std_dag = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_std_dag");
        var vervaldatum_std_maand = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_std_maand");
        var vervaldatum_std_jaar = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_std_jaar");
        var vervaldatum_xcp_dag = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_xcp_dag");
        var vervaldatum_xcp_maand = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_xcp_maand");
        var vervaldatum_xcp_jaar = $("#sel_srtcontrole option:selected")[0].getAttribute("eind_xcp_jaar");
        var vervaldatum_std = (vervaldatum_std_dag == ""? "" : new Date(vervaldatum_std_jaar, (vervaldatum_std_maand - 1), vervaldatum_std_dag));
        var vervaldatum_xcp = (vervaldatum_xcp_dag == ""? "" : new Date(vervaldatum_xcp_jaar, (vervaldatum_xcp_maand - 1), vervaldatum_xcp_dag));
        // Zet de vervaldatum
        $("#show_vervaldatum").datepicker("setDate", (vervaldatum_xcp != ""? vervaldatum_xcp : vervaldatum_std));

        $("#xcp_key").val($("#sel_srtcontrole option:selected")[0].getAttribute("xcp_key"));
      }

      function calcKosten()
      {
        var kosten = parseFloat($("#kosten").val().replace(',', '.'));
        if ($("#kosten").val() != '' && !isNaN(kosten))
          $("#kosten").val(num2currEditable(kosten));
      }
    </script>
  </head>


  <body class="modal" id="mod_insxcp">
    <form name="u2" action="ins_xcp_save.asp?ins_key=<%=ins_key%><%=transitParam%>" method="post">
      <input type="hidden" id="mode" name="mode" value="1">
<%    BLOCK_START("insXcp", L("lcl_ins_interval_kenmerken"))
        // mogelijke inspecties op dit object/ deze objecten
        var sql = "SELECT COUNT (DISTINCT ins_deel_key)"
                + "  FROM ins_deel"
                + " WHERE ins_deel_key = " + ins_key;
        var cntdeel = Oracle.Execute(sql)(0).Value;

        var sql = "SELECT *"
                + "  FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
                + "                                      , isc.ins_srtcontrole_key"
                + "                                      , isc.ins_srtcontrole_omschrijving"
                + "                                      , isc.ins_srtcontrole_mode"
                + "                                      , isc.ins_srtcontrole_periode"
                + "                                      , isc.ins_srtcontrole_eenheid"
                + "                                      , isc.ins_srtcontrole_bits"
                + "                                      , isc.ins_srtcontrole_kosten"
                + "                                      , isc.ins_srtcontrole_eind"
                + "                                      , id.ins_deel_key"
                + "                                   FROM ins_deel id"
                + "                                      , ins_srtdeel s"
                + "                                      , ins_srtcontrole isc"
                + "                                  WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
                + "                                    AND (isc.ins_srtcontrole_niveau = 'S'"
                + "                                         AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
                + "                                      OR isc.ins_srtcontrole_niveau = 'G'"
                + "                                         AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
                + "                                      OR isc.ins_srtcontrole_niveau = 'D'"
                + "                                         AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
                + "                                    AND id.ins_deel_key = " + ins_key + ")"
                + "      SELECT di.ins_srtcontrole_key"
                + "           , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
                + "           , di.ins_srtcontrole_mode modus"
                + "           , di.ins_srtcontrole_periode periode_std"
                + "           , COALESCE(xcp.ins_srtcontroledl_xcp_periode, -1) periode_xcp"
                + "           , di.ins_srtcontrole_eenheid eenheid_std"
                + "           , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, -1) eenheid_xcp"
                + "           , di.ins_srtcontrole_bits bits_std"
                + "           , COALESCE(xcp.ins_srtcontroledl_xcp_bits, -1) bits_xcp"
                + "           , xcp.ins_srtcontroledl_xcp_groep groep"
                + "           , di.ins_srtcontrole_kosten kosten_std"
                + "           , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, 0) kosten_xcp"
                + "           , COALESCE(xcp.ins_srtcontroledl_xcp_key, -1) xcp_key"
                + "           , di.ins_srtcontrole_eind eind_std"
                + "           , TO_CHAR(di.ins_srtcontrole_eind, 'DD') eind_std_dag"
                + "           , TO_CHAR(di.ins_srtcontrole_eind, 'MM') eind_std_maand"
                + "           , TO_CHAR(di.ins_srtcontrole_eind, 'YYYY') eind_std_jaar"
                + "           , xcp.ins_srtcontroledl_xcp_eind eind_xcp"
                + "           , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'DD') eind_xcp_dag"
                + "           , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'MM') eind_xcp_maand"
                + "           , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'YYYY') eind_xcp_jaar"
                + "        FROM defined_inspect di"
                + "           , ins_srtcontroledl_xcp xcp"
                + "       WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
                + "         AND di.ins_deel_key = xcp.ins_deel_key(+)"
                + "         AND di.ins_deel_key = " + ins_key
                // De xcp_periode overruled de standaard periode. De xcp_periode kan/mag NULL zijn maar de standaard periode niet.
                // Mogelijke waarden van de standaard periode en xcp periode:
                // ins_srtcontrole_periode     ins_srtcontroledl_xcp_periode    uitleg
                //         0                                NULL                een inactieve soort controle die ook geldt voor het object
                //         1..n                             NULL                een actieve soort controle geldt ook voor het object.
                //         0                                1                   een standaard niet actieve controle is voor het object actief gemaakt.
                //         1..n                             0                   een standaard actieve controle is voor het object inactief gemaakt.
                + (add
                  ? "         AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) <= 0" // Inactieve soort controles tonen.
                    + "       AND xcp.ins_srtcontroledl_xcp_periode IS NULL"                                     // Soort controles die niet overruled zijn tonen.
                  : "         AND (COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0" // Actieve soort controles tonen
                    + "            OR ins_srtcontroledl_xcp_periode = 0)")                                       // Soort controles die inactief zijn gemaakt tonen.
                + (srtcont_key > 0
                  ? "       AND di.ins_srtcontrole_key = " + srtcont_key
                  : "")
                + "       GROUP BY di.ins_srtcontrole_key"
                + "              , di.ins_srtcontrole_omschrijving"
                + "              , di.ins_srtcontrole_mode"
                + "              , di.ins_srtcontrole_periode"
                + "              , di.ins_srtcontrole_eenheid"
                + "              , di.ins_srtcontrole_bits"
                + "              , di.ins_srtcontrole_kosten"
                + "              , di.ins_srtcontrole_eind"
                + "              , di.ins_deel_key"
                + "              , xcp.ins_srtcontroledl_xcp_key"
                + "              , xcp.ins_srtcontroledl_xcp_periode"
                + "              , xcp.ins_srtcontroledl_xcp_eenheid"
                + "              , xcp.ins_srtcontroledl_xcp_bits"
                + "              , xcp.ins_srtcontroledl_xcp_groep"
                + "              , xcp.ins_srtcontroledl_xcp_kosten"
                + "              , xcp.ins_srtcontroledl_xcp_eind"
                + "      HAVING COUNT(*) = " + cntdeel // Als multi dan alleen de inspecties die voor *alle* objecten gelden
                + "      ORDER BY di.ins_srtcontrole_omschrijving)";
        FCLTselector("sel_srtcontrole",
                     sql,
                     { label: L("lcl_ins_controle"),
                       initKey: srtcont_key,
                       emptyOption: L("lcl_select_srtcontrole"),
                       //readonly: srtcont_key > 0, // dan wordtie niet gesubmit
                       required: true,
                       onChange: "onChangeSrtControle()",
                       //trclass: "invoerinsp",
                       extraParamValue: "modus, periode_std, periode_xcp, eenheid_std, eenheid_xcp, bits_std, bits_xcp, kosten_std, kosten_xcp, xcp_key, groep"
                                      + ", eind_std_dag, eind_xcp_dag, eind_std_maand, eind_xcp_maand, eind_std_jaar, eind_xcp_jaar",
                       extraParamValueInit: "1, , , 1, -1, , , 0, , , , , , , , , ,"
                     });
%>
        <input type="hidden" id="xcp_key" name="xcp_key" value="-1">
        <script type="text/javascript">
          jQuery(document).ready(function()
          {
            onChangeSrtControle();
          });
        </script>
<%
        sql = "SELECT 0, " + safe.quoted_sql(L("lcl_ins_controle_uurlijks")) + " FROM DUAL"
            + " UNION SELECT 1, " + safe.quoted_sql(L("lcl_ins_controle_dagelijks")) + " FROM DUAL"
            + " UNION SELECT 2, " + safe.quoted_sql(L("lcl_ins_controle_wekelijks")) + " FROM DUAL"
            + " UNION SELECT 3, " + safe.quoted_sql(L("lcl_ins_controle_maandelijks")) + " FROM DUAL"
            + " UNION SELECT 4, " + safe.quoted_sql(L("lcl_ins_controle_jaarlijks")) + " FROM DUAL";
        FCLTselector("eenheid",
                     sql,
                     { label: L("lcl_ins_controle_eenheid"),
                       initKey: 1,
                       required: false,
                       onChange: "onChangeEenheid()"
                     });
        RWFIELDTR("periode",
                  "fldshort",
                  L("lcl_ins_controle_period"),
                  "",
                  { datatype: "number",
                    required: true,
                    fronttext: L("lcl_ins_controle_period_fronttext"),
                    reartext: "<span id='periodereartext'></span>",
                    trclass: "trperiode"
                  });
%>
        <tr class="trbits2">
          <td class="label">
          </td>
          <td>
            <input type="checkbox" class="fldInspZo" name="insInspZo" id="insInspZo" onClick="onClickCbDay('Zo')" value="1"><label for="insInspZo"><%=safe.html(calendar_names.days[0])%></label>
            <br>
            <input type="checkbox" class="fldInspMa" name="insInspMa" id="insInspMa" onClick="onClickCbDay('Ma')" value="1"><label for="insInspMa"><%=safe.html(calendar_names.days[1])%></label>
            <br>
            <input type="checkbox" class="fldInspDi" name="insInspDi" id="insInspDi" onClick="onClickCbDay('Di')" value="1"><label for="insInspDi"><%=safe.html(calendar_names.days[2])%></label>
            <br>
            <input type="checkbox" class="fldInspWo" name="insInspWo" id="insInspWo" onClick="onClickCbDay('Wo')" value="1"><label for="insInspWo"><%=safe.html(calendar_names.days[3])%></label>
            <br>
            <input type="checkbox" class="fldInspDo" name="insInspDo" id="insInspDo" onClick="onClickCbDay('Do')" value="1"><label for="insInspDo"><%=safe.html(calendar_names.days[4])%></label>
            <br>
            <input type="checkbox" class="fldInspVr" name="insInspVr" id="insInspVr" onClick="onClickCbDay('Vr')" value="1"><label for="insInspVr"><%=safe.html(calendar_names.days[5])%></label>
            <br>
            <input type="checkbox" class="fldInspZa" name="insInspZa" id="insInspZa" onClick="onClickCbDay('Za')" value="1"><label for="insInspZa"><%=safe.html(calendar_names.days[6])%></label>
          </td>
        </tr>
        <tr class="trbits3">
          <td>
          </td>
          <td>
<%
          sql = "SELECT 256, " + safe.quoted_sql(L("lcl_ins_controle_eerste")) + ", 1 FROM DUAL"
              + " UNION SELECT 512, " + safe.quoted_sql(L("lcl_ins_controle_tweede")) + ", 2 FROM DUAL"
              + " UNION SELECT 768, " + safe.quoted_sql(L("lcl_ins_controle_derde")) + ", 3 FROM DUAL"
              + " UNION SELECT 1024, " + safe.quoted_sql(L("lcl_ins_controle_vierde")) + ", 4 FROM DUAL"
              + " UNION SELECT 1280, " + safe.quoted_sql(L("lcl_ins_controle_vijfde")) + ", 5 FROM DUAL"
              + " UNION SELECT 1536, " + safe.quoted_sql(L("lcl_ins_controle_eennalaatste")) + ", 6 FROM DUAL"
              + " UNION SELECT 1792, " + safe.quoted_sql(L("lcl_ins_controle_laatste")) + ", 7 FROM DUAL"
              + " ORDER BY 1";
          FCLTselector("weekbits",
                       sql,
                       { initKey: 1,
                         required: false,
                         html: " width='100px'"
                       });
          sql = "";
          for (var i = 0; i <= 6; i++)
          {
            sql += (i > 0? " UNION " : "") + "SELECT " + Math.pow(2, (i )) + ", " + safe.quoted_sql(calendar_names.days[i]) + " FROM DUAL"
          }
          sql += " ORDER BY 1";
          FCLTselector("dagbits",
                       sql,
                       { initKey: 1,
                         required: false
                       });
%>
          <%=L("lcl_ins_controle_period_ofthemonth")%></td>
        </tr>
        <tr class="trbits4">
          <td>
          </td>
          <td>
<%
          sql = "";
          for (var i = 1; i <= 12; i++)
          {
            sql += (i > 1? " UNION " : "") + "SELECT " + i + ", " + safe.quoted_sql(calendar_names.months[i - 1]) + " FROM DUAL";
          }
          FCLTselector("maandbits",
                       sql,
                       { initKey: 1,
                         required: false
                       });
%>
          </td>
        </tr>
        <tr class="trnotholiday">
          <td class="label">
          </td>
          <td>
            <input type="checkbox" class="fldInspNoHoli" name="insInspNoHoli" id="insInspNoHoli" value="1"><label for="insInspNoHoli"><%=L("lcl_ins_controle_notholiday")%></label>
          </td>
        </tr>
<%
        RWFIELDTR("kosten",
                  "fldshort",
                  L("lcl_ins_prijs") + "&nbsp;" + S("currency_pref"),
                  "",
                  { datatype: "currency",
                    html: "onBlur='calcKosten()'"
                  });
        //RWFIELDTR("bits", "fldshort trbits3", L("lcl_ins_controle_bits"), "", {trclass: "trbits", datatype: "number" });
        RWFIELDTR("groep", "fldgroep", L("lcl_ins_controle_groep"), "", {datatype: "text" });
        FCLTcalendar("vervaldatum",
                     { label    : L("lcl_ins_vervaldatum"),
                       initEmpty: true
                     });
      BLOCK_END();

      var buttons =  [];
      buttons.push({title: L("lcl_submit"), action:"ins_submit()"})
      buttons.push({title: L("lcl_delete"), action:"ins_delete()"})
      buttons.push({title: L("lcl_cancel"),  action:"ins_cancel()"})
      CreateButtons(buttons)
      IFACE.FORM_END();
%>
    </form>
  </body>
</html>
