angular.module('webui.filters.bytes', ["webui.services.utils"])
.filter('blength', ['$filter', "$utils", function(filter, utils) {
  return utils.fmtsize;
}])
.filter('bspeed', ['$filter', "$utils", function(filter, utils) {
  return utils.fmtspeed;
}])
.filter('time', function() {
  function pad(f) {
    return ("0" + f).substr(-2);
  }

  return function(time) {
    time = parseInt(time, 10);
    if (!time || !isFinite(time)) return "∞";
    var secs = time % 60;
    if (time < 60) return secs + "s";
    var mins = Math.floor((time % 3600) / 60)
    if (time < 3600) return pad(mins) + ":" + pad(secs);
    var hrs = Math.floor((time % 86400) / 3600);
    if (time < 86400) return pad(hrs) + ":" + pad(mins) + ":" + pad(secs);
    var days = Math.floor(time / 86400);
    return days + "::" +  pad(hrs) + ":" + pad(mins) + ":" + pad(secs);
  };
});