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


    File:               BijlagenPreview.asp
    Description:        ASP to browse a directory of pictures
    Parameters:
        root_path       absolute path on the webserver to the directory where the pictures are
                        stored. Including starting slash and ending slash. (only forward slashes are
                        allowed)
        loc_key         key of the location to select the pictures from.
        nrOfPict        optional, number of pictures to be displayed per line
    Note:               !

*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../shared/FlexFiles.inc" -->

<%
protectQS.verify(); // tamper check
FCLTHeader.Requires({ plugins: ["jQuery"] });

var pModule       = getQParam("module", "");
var p_key_arr     = getQParamIntArray("key", []);
var p_kkey_arr    = getQParamIntArray("kkey", []);
var pNiveau       = getQParam("niveau", "");
var picsPerLine   = getQParamInt("nrOfPict", -1);

if (p_kkey_arr.length == 0)
{ // Indien geen kenmerk-keys meegegeven de kenmerk array vullen met -1
  // Aantal elementen in kenmerk-array moet hetzelfde zijn als in referentie-key array.
  for (var i=0; i<p_key_arr.length; i++)
  {
    p_kkey_arr.push(-1);
  }
}

%>
<html>
  <head>
<%  FCLTHeader.Generate();
    var lijst = [];
    var regex = new RegExp(S("flexPreviewExt"), "i");
    for (var x = 0; x < p_key_arr.length; x++)
    {
        // p_key_arr en p_kkey_arr hebben altijd evenveel elementen.
        var params = flexProps(pModule, p_key_arr[x], String(p_kkey_arr[x]), pNiveau, { getFiles: true });
        for (var i = 0; i < params.files.length; i++)
        {
            // Only preview the extensions as specified in S("flexPreviewExt")
            if (regex.test(params.files[i].name))
            {
                lijst.push(params.files[i]);
            }
        }
    }

    lijst.sort(function(a, b){ return new Date(a.date) - new Date(b.date); });
    // Kiest optimaal aantal plaatjes per regel, zo vierkant mogelijk met
    var MAXPERLINE = 5;

    if (picsPerLine > 0)
      picsPerLine = Math.min(picsPerLine, lijst.length);
    else if (lijst.length > 0)
      picsPerLine = lijst.length < 4 ? lijst.length : Math.min(Math.round(Math.sqrt(lijst.length)), MAXPERLINE);
%>
    <script type="text/javascript">

      $(function() {
        var pictures = <%=lijst.length%>;
        var loaded = 0;
        $("img").each(function () {
          if (this.complete) // Plaatje geladen?
            loaded++;
          else
            $(this).one("load error", function () { FcltMgr.resized(); }); // Na het laden van elk plaatje even de modal resizen zodat we geen scrollbalken krijgen.
        });
        if (loaded > 0)
          FcltMgr.resized(); // Plaatjes kunnen hier al geladen zijn (Na de resized van het openen van het modal), daarom hier ook een resized();
      });

    </script>
  </head>
  <body class="fclt-modal" id="mod_preview">
    <br>
    <table class="preview" cellspacing="0" cellpadding="10">
<%
      var href;
      var tdWidth = parseInt(100/picsPerLine)+"%";

      for (var i = 0; i < lijst.length; i++)
      {
        href = params.directlink
                ? protectQS.create(lijst[i].deepurl)
                : protectQS.create(OpenFlexFile( lijst[i].module
                                            , lijst[i].key
                                            , { mime_type: lijst[i].mimetype, contentdp: "inline" }
                                            ));
        if (i % picsPerLine == 0)
        {
%>        <tr valign="top">
<%      } %>

        <td onclick="iface.fullscreen_image('<%=safe.jsstring(href)%>')" style="width:<%=tdWidth%>">
          <img src="<%=safe.htmlattr(href)%>" class="preview" alt="<%=safe.htmlattr(lijst[i].name)%>">
          <br>
          <%=safe.html(lijst[i].name)%>
        </td>

<%      if ((i+1) % picsPerLine == 0)
        { %>
          </tr>
<%      }
      }

      if (!lijst.length)
      {
        shared.simpel_page(L("lcl_shared_no_photos_present"));
      } %>
    </table>
  </body>
</html><% ASPPAGE_END(); %>
