dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dojo.fx");
dojo.require("dojo.number");

//Create data stores for document directories
function createLinks(items, request) {
  var containerLatest = dojo.byId(request.query.category + "Latest");
  containerLatest.innerHTML = '';
  createLinkRange(items, request, 0, 1, containerLatest);
  var containerArchive = dojo.byId(request.query.category + "Archive");
  containerArchive.innerHTML = '';
  createLinkRange(items, request, 1, -1, containerArchive);
}

function createLinkRange(items, request, start, count, container) {
  var delay = 0;
  dojo.forEach(items, function(item, index) {
    if(index >= start && (index < start+count || count == -1)) {
      var div = dojo.doc.createElement("div");
      div.innerHTML = "<a href='/" + item.dir + "/" + item.filename + "' target='_new'>" + item.date + "</a>  (" + dojo.number.round(item.size / 1024, 0) + "KB)";
      dojo.style(div, "opacity", "0");
      container.appendChild(div);
      delay += 200;
      dojo.fadeIn({node:div}).play(delay);
    }
  });
}

function genericLinkList(items, request) {
  var container = dojo.byId(request.params.id);
  var delay = 0;
  dojo.forEach(items, function(item, index) {
    var div = dojo.doc.createElement("div");
    div.innerHTML = "<a href='/" + item.dir + "/" + item.filename + "' target='_new'>" + item.date + " - " + item.category + "</a>  (" + dojo.number.round(item.size / 1024, 0) + "KB)";
    dojo.style(div, "opacity", "0");
    container.appendChild(div);
    delay += 200;
    dojo.fadeIn({node:div}).play(delay);
  });
}

function documentError(e) {
  alert("There was an error loading documents: " + (e.cause ? e.cause.statusText : e.message));
}

function getDocuments(query, params, handleComplete, sort) {
  var documents = new dojo.data.ItemFileReadStore({url: "/cgi-bin/getDir.cgi?dir=" + params.dir + "&filter=" + params.filter, urlPreventCache: true});
  documents.fetch({query: query, params: params, onComplete: handleComplete, onError: documentError, sort: sort});
}
