﻿// Utilities required by the Service/Status pages

function pad(input) {
    if (input < 10)
        return ("0" + input);
    else
        return (input);
}

function toLocalDateTimeString(inputString) {
    var d = new Date();
    d.setISO8601(inputString);
    month = pad(d.getMonth() + 1);
    day = pad(d.getDate());
    year = d.getFullYear();
    hours = pad(d.getHours());
    minutes = pad(d.getMinutes());
    document.write(month + "/" + day + "/" + year + " " + hours + ":" + minutes);
}

function toLocalDateString(inputString) {
    var d = new Date();
    d.setISO8601(inputString);
    month = pad(d.getMonth() + 1);
    day = pad(d.getDate());
    year = d.getFullYear();
    document.write(month + "/" + day + "/" + year);
}

// Adapted from http://delete.me.uk/2005/03/iso8601.html
// See also http://en.wikipedia.org/wiki/ISO_8601
Date.prototype.setISO8601 = function(string) {
    var regexp = "([0-9]{4})" +                 // 1
                 "(-" +                         // 2
                   "([0-9]{2})" +               // 3
                   "(-" +                       // 4
                     "([0-9]{2})" +             // 5
                     "(T" +                     // 6
                       "([0-9]{2})" +           // 7
                       ":([0-9]{2})" +          // 8
                       "(:" +                   // 9
                         "([0-9]{2})" +         // 10
                       ")?" +                   // 11
                       "(Z|" +                  // 12
                         "(" +                  // 13
                           "([-+])" +           // 14
                           "([0-9]{2})" +       // 15
                           ":([0-9]{2})" +      // 16
                         ")" +
                       ")?" +
                     ")?" +
                   ")?" +
                 ")?";
    var d = string.match(new RegExp(regexp));

    var offset = 0;
    var date = new Date(d[1], 0, 1);

    if (d[3]) { date.setMonth(d[3] - 1); }
    if (d[5]) { date.setDate(d[5]); }
    if (d[7]) { date.setHours(d[7]); }
    if (d[8]) { date.setMinutes(d[8]); }
    if (d[10]) { date.setSeconds(d[10]); }
    if (d[12]) {
        offset = (Number(d[14]) * 60) + Number(d[15]);
        offset *= ((d[13] == '-') ? 1 : -1);
    }

    offset -= date.getTimezoneOffset();
    time = (Number(date) + (offset * 60 * 1000));
    this.setTime(Number(time));
}
