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

    File:                  prs_edit_inzetbaar.asp
    Description:           edit or add availability
    Parameters:
       prs_inzetbaar_key   availability key
       prs_key             perslid key

    Context:
    Note:
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->

<%
FCLTHeader.Requires({ plugins:["jQuery"],
                      js: ["jquery.timepicker-table.js"],
                      css: ["timePicker-table.css"]
                    });

var prs_perslid_key = getQParamInt("prs_key", -1);
var prs_inzetbaar_key = getQParamInt("prs_inzetbaar_key", -1);
user.auth_required_or_abort(prs_perslid_key > 0 || prs_inzetbaar_key > 0);

var autfunction = "WEB_PRSMAN";
var authparams = user.checkAutorisation(autfunction);
user.auth_required_or_abort(authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9);

var dt = new Date(); // Vandaag
var prs_inzetbaar_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, S("prs_t1") * 60 );
var prs_inzetbaar_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, S("prs_t2") * 60 );
var prs_inzetbaar_dag = getQParamInt("prs_dag", -1);

if (prs_inzetbaar_key > -1)
{
  sql = "SELECT pi.prs_perslid_key"
      + "     , pi.prs_perslid_inzetbaar_van"
      + "     , pi.prs_perslid_inzetbaar_tot"
      + "     , pi.prs_perslid_inzetbaar_dag"
      + "  FROM prs_perslid_inzetbaar pi"
      + " WHERE pi.prs_perslid_inzetbaar_key = " + prs_inzetbaar_key;
  var oRs = Oracle.Execute(sql);

  prs_perslid_key = oRs("prs_perslid_key").value;
  prs_inzetbaar_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("prs_perslid_inzetbaar_van").value);
  prs_inzetbaar_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("prs_perslid_inzetbaar_tot").value);
  prs_inzetbaar_dag = oRs("prs_perslid_inzetbaar_dag").value;
  oRs.Close();
}
%>
<html>
  <head>
<%  FCLTHeader.Generate(); %>
    <script  type="text/javascript">
      var submitted = false;
      function submitCallback(json, textStatus)
      {
          submitted = true;
          <% if (getQParamInt("prs_dag", -1) == -1) { %>
              if (json.isnew) // Het was een nieuwe inzetbaarheid. Met leeg scherm beginnen.
              {
                // Initiele waarden tonen. Naam (prs_key) blijft hetzelfde en hoeft niet aangepast te worden.
                $("#prsinzetbaardag").val(<%=prs_inzetbaar_dag%>);

                var dt = new Date(); // Vandaag
                var prs_inzetbaar_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, <%=Math.floor(S("prs_t1") * 60)%>  );
                var prs_inzetbaar_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, <%=Math.floor(S("prs_t2") * 60)%>  );
                // Datum is niet zichtbaar maar wel het hidden veld aanpassen
                $("#inzetbaar_van").val(prs_inzetbaar_van.getTime());
                $("#time_from_inzetbaar_van").val(toTimeString(prs_inzetbaar_van))
                $("#inzetbaar_tot").val(prs_inzetbaar_tot.getTime());
                $("#time_from_inzetbaar_tot").val(toTimeString(prs_inzetbaar_tot));
                $("#added").text(L("lcl_prs_inzetbaar_added"));
              }
              else // Scherm sluiten
          <% } %>
            FcltMgr.closeDetail(window, { refresh: true });

          // Is er nog een message die weergegeven moet worden?
          if (json.message) alert(json.message);
      };

      function prs_submit()
      {
          if (!validateForm("u2"))
            return false;

          var data = { prs_inzetbaar_key: <%=prs_inzetbaar_key%>,
                       prs_key: <%=prs_perslid_key%>,
                       prsinzetbaardag: $("#prsinzetbaardag").val(),
                       inzetbaar_van: $("#inzetbaar_van").val(),
                       inzetbaar_tot: $("#inzetbaar_tot").val() };
          <% protectRequest.dataToken("data"); %>
          $.post("prs_edit_inzetbaar_save.asp",
                 data,
                 submitCallback,
                 "json");
      }

      function prs_cancel()
      {
          FcltMgr.closeDetail(window, { cancel: !submitted, refresh: submitted } );
      }
    </script>
  </head>

  <body class="modal" id="mod_prsinzetbaar">
    <div id="edit">
      <form name="u2">
<%
        BLOCK_START("prsInzetbaar", L("lcl_prs_basisblok"));
        sql = "SELECT p.prs_perslid_key"
            + "     , " + S("prs_pers_string") + " prs_perslid_naam"
            + "  FROM prs_v_aanwezigperslid p"
            + " ORDER BY p.prs_perslid_upper"
        FCLTpersoonselector("prs_key",
                        "sgPerson",
                     { label: L("lcl_prs_name"),
                       perslidKey: prs_perslid_key,
                       readonly: true
                     });

        var sql = "";
        for (var i = 0; i < 7; i++)
        {
          sql += (i != 0? " UNION" : "") + " SELECT " + i + " dagkey"
               + ", " + safe.quoted_sql(calendar_names.days[i]) + " dag"
               + " FROM DUAL";
        }
        sql += " ORDER BY 1";
        FCLTselector("prsinzetbaardag",
                     sql,
                     { label: L("lcl_prs_inzetbaar_dag"),
                       initKey: prs_inzetbaar_dag,
                       emptyOption: "",
                       required: true
                     });

        FCLTcalendar( "inzetbaar_van",
                      { label: L("lcl_from"),
                        datum: prs_inzetbaar_van,
                        timeField: true,
                        timeStep: S("prs_h") * 60,
                        startTime: S("prs_t1"),
                        endTime: S("prs_t2"),
                        required: true,
                        volgnr: 1,
                        hidden: true // de *datum* is dan verborgen, tijd blijft zichtbaar
                      });

        FCLTcalendar( "inzetbaar_tot",
                      { label: L("lcl_to"),
                        datum: prs_inzetbaar_tot,
                        timeField: true,
                        timeStep: S("prs_h") * 60,
                        startTime: S("prs_t1"),
                        endTime: S("prs_t2"),
                        required: true,
                        volgnr: 2,
                        hidden: true // de *datum* is dan verborgen, tijd blijft zichtbaar
                      });
        Response.Write("<tr><td colspan='2'><br><br><div id='added'></div></td></tr>");
        BLOCK_END();
%>
<%        var buttons =  [ {title: prs_inzetbaar_key>0?L("lcl_submit"):L("lcl_add"), action:"prs_submit()", icon: "opslaan.png" },
                           {title: L("lcl_cancel"), action:"prs_cancel()", icon: "undo.png" }];
          CreateButtons(buttons);
IFACE.FORM_END();
%>
      </form>
    </div>
  </body>
</html>
