summaryrefslogtreecommitdiff
path: root/www/js/utils.js
blob: 023759407614da25844b9f1973eeaf409f6b205e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
alertbox = function() {}
alertbox.warning = function (dest, heading, message) {
  $('#' + dest + ' .alertbox').html('<div class="alert"><a class="close" data-dismiss="alert" href="#">&times;</a><h4 class="alert-heading">' + heading + '</h4>' + message + '</div>');
}
alertbox.error = function (dest, heading, message) {
  $('#' + dest + ' .alertbox').html('<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><h4 class="alert-heading">' + heading + '</h4>' + message + '</div>');
}
alertbox.info = function (dest, heading, message) {
  $('#' + dest + ' .alertbox').html('<div class="alert alert-info"><a class="close" data-dismiss="alert" href="#">&times;</a><h4 class="alert-heading">' + heading + '</h4>' + message + '</div>');
}

Number.prototype.pad = function(size) {
  var s = String(this);
  while (s.length < (size || 2)) {s = "0" + s;}
  return s;
}

var weekday = new Array(7);
weekday[0] =  "Sonntag";
weekday[1] = "Montag";
weekday[2] = "Dienstag";
weekday[3] = "Mittwoch";
weekday[4] = "Donnerstag";
weekday[5] = "Freitag";
weekday[6] = "Samstag";

function format_datetime(d) {
  if(Object.prototype.toString.call(d) === "[object Date]") {
    var daynames = new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
    var datetimestr = daynames[d.getDay()];
    datetimestr += ' ' + Number(d.getDate()).pad(2);
    datetimestr += '.' + Number(d.getMonth() + 1).pad(2);
    datetimestr += '.' + d.getFullYear();
    datetimestr += ' ' + Number(d.getHours()).pad(2);
    datetimestr += ':' + Number(d.getMinutes()).pad(2);
    datetimestr += ':' + Number(d.getSeconds()).pad(2);
    return datetimestr;
  }
  return d;
}

function msToTimeString(time) {
  if(time == '-') return time;

  var h = Number(Math.floor(time / 3600000));
  time %= 3600000;
  var m = Number(Math.floor(time / 60000));
  time %= 60000;
  var s = Number(Math.floor(time / 1000));
  var hs = Number(Math.floor((time % 1000)/100));
  
  return h + ':' + m.pad(2) + ':' + s.pad(2) + '.' + hs;
}

function get_rd_week() {
  //
  // This computes the current Rivendell Week based on the number
  // of weeks since epoch.
  //
  // Explanation:
  //  epoch was at 01.01.1970 which was a Thursday.
  //  Monday in that week is (s-from-epoch + 3*24*60*60) seconds ago.
  //  Divide this by (7*24*60*60) and you get the number of
  //  weeks since the Monday in the week of epoch.
  //  This week had week number 3 so add an offset of 2 and
  //  get the modulo of 4. This rounded down gives you the current week
  //  with 0 meaning Week 1. So add 1 to that number and you will get
  //  the current RD week.
  //
  var sEpoch = (+new Date()) / 1000;
  var week = Math.floor((((sEpoch + 259200)/604800) + 2) % 4) + 1
  return week;
}