src/cm/media/js/lib/flexible-js-formatting/dates/date-functions.js
author gibus
Mon, 21 May 2012 16:50:42 +0200
changeset 439 8994d24e4b2f
parent 0 40c8f766c9b8
permissions -rw-r--r--
Reverts to changeset 435, and just add {% csrf_token %} to template forgot_pw.html, since CSRF protection seems to be only here (surely because of django.contrib.auth.views).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
 * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
 * This program is free software; you can redistribute it and/or modify it
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
 * under the terms of the GNU Lesser General Public License as published by the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
 * Free Software Foundation, version 2.1.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
 * This program is distributed in the hope that it will be useful, but WITHOUT
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
 * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * details.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
Date.parseFunctions = {count:0};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
Date.parseRegexes = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
Date.formatFunctions = {count:0};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
Date.prototype.dateFormat = function(format, ignore_offset) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
    if (Date.formatFunctions[format] == null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
        Date.createNewFormat(format);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
    var func = Date.formatFunctions[format];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
    if (ignore_offset || ! this.offset) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
      return this[func]();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
      return (new Date(this.valueOf() - this.offset))[func]();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
Date.createNewFormat = function(format) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    var funcName = "format" + Date.formatFunctions.count++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    Date.formatFunctions[format] = funcName;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    var code = "Date.prototype." + funcName + " = function(){return ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    var special = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    var ch = '';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
    for (var i = 0; i < format.length; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
        ch = format.charAt(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        if (!special && ch == "\\") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
            special = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        else if (special) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
            special = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
            code += "'" + String.escape(ch) + "' + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
        else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
            code += Date.getFormatCode(ch);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    eval(code.substring(0, code.length - 3) + ";}");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
Date.getFormatCode = function(character) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    switch (character) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
    case "d":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
        return "String.leftPad(this.getDate(), 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    case "D":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
        return "Date.dayNames[this.getDay()].substring(0, 3) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    case "j":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        return "this.getDate() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    case "l":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
        return "Date.dayNames[this.getDay()] + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    case "S":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
        return "this.getSuffix() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
    case "w":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
        return "this.getDay() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
    case "z":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
        return "this.getDayOfYear() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
    case "W":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
        return "this.getWeekOfYear() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
    case "F":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
        return "Date.monthNames[this.getMonth()] + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
    case "m":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
        return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
    case "M":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
        return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
    case "n":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
        return "(this.getMonth() + 1) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
    case "t":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
        return "this.getDaysInMonth() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
    case "L":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        return "(this.isLeapYear() ? 1 : 0) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
    case "Y":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        return "this.getFullYear() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
    case "y":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
        return "('' + this.getFullYear()).substring(2, 4) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
    case "a":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
        return "(this.getHours() < 12 ? 'am' : 'pm') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
    case "A":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
        return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
    case "g":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
        return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
    case "G":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
        return "this.getHours() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
    case "h":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
        return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
    case "H":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
        return "String.leftPad(this.getHours(), 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
    case "i":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
        return "String.leftPad(this.getMinutes(), 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
    case "s":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
        return "String.leftPad(this.getSeconds(), 2, '0') + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
    case "O":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
        return "this.getGMTOffset() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    case "T":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
        return "this.getTimezone() + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
    case "Z":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
        return "(this.getTimezoneOffset() * -60) + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
    default:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
        return "'" + String.escape(character) + "' + ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
Date.parseDate = function(input, format) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
    if (Date.parseFunctions[format] == null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
        Date.createParser(format);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
    var func = Date.parseFunctions[format];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
    return Date[func](input);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
Date.createParser = function(format) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
    var funcName = "parse" + Date.parseFunctions.count++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
    var regexNum = Date.parseRegexes.length;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
    var currentGroup = 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
    Date.parseFunctions[format] = funcName;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    var code = "Date." + funcName + " = function(input){\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
        + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = 0;\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
        + "var d = new Date();\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
        + "y = d.getFullYear();\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
        + "m = d.getMonth();\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        + "d = d.getDate();\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
        + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
        + "if (results && results.length > 0) {" ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
    var regex = "";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
    var special = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
    var ch = '';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
    for (var i = 0; i < format.length; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
        ch = format.charAt(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
        if (!special && ch == "\\") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
            special = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        else if (special) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            special = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
            regex += String.escape(ch);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
        else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
            obj = Date.formatCodeToRegex(ch, currentGroup);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
            currentGroup += obj.g;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
            regex += obj.s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
            if (obj.g && obj.c) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
                code += obj.c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
    code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
        + "{return new Date(y, m, d, h, i, s).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
        + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        + "{return new Date(y, m, d, h, i).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        + "{return new Date(y, m, d, h).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
        + "else if (y > 0 && m >= 0 && d > 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
        + "{return new Date(y, m, d).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        + "else if (y > 0 && m >= 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
        + "{return new Date(y, m).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
        + "else if (y > 0)\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
        + "{return new Date(y).applyOffset(z);}\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
        + "}return null;}";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
    Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
    eval(code);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
Date.formatCodeToRegex = function(character, currentGroup) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
    switch (character) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
    case "D":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
        c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
        s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
    case "j":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
    case "d":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
            c:"d = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
            s:"(\\d{1,2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
    case "l":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            s:"(?:" + Date.dayNames.join("|") + ")"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
    case "S":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
            s:"(?:st|nd|rd|th)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
    case "w":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
            s:"\\d"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
    case "z":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
            s:"(?:\\d{1,3})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
    case "W":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
            s:"(?:\\d{2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
    case "F":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
            s:"(" + Date.monthNames.join("|") + ")"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
    case "M":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
            s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
    case "n":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
    case "m":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
            c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
            s:"(\\d{1,2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
    case "t":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
            s:"\\d{1,2}"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
    case "L":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
            s:"(?:1|0)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
    case "Y":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
            c:"y = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
            s:"(\\d{4})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
    case "y":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
            c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
                + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
            s:"(\\d{1,2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
    case "a":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
            c:"if (results[" + currentGroup + "] == 'am') {\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
                + "if (h == 12) { h = 0; }\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                + "} else { if (h < 12) { h += 12; }}",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
            s:"(am|pm)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
    case "A":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
            c:"if (results[" + currentGroup + "] == 'AM') {\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
                + "if (h == 12) { h = 0; }\n"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
                + "} else { if (h < 12) { h += 12; }}",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
            s:"(AM|PM)"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
    case "g":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
    case "G":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
    case "h":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
    case "H":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
            c:"h = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
            s:"(\\d{1,2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
    case "i":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
            c:"i = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
            s:"(\\d{2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
    case "s":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
            c:"s = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
            s:"(\\d{2})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
    case "O":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
    case "P":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
            c:"z = Date.parseOffset(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
            s:"(Z|[+-]\\d{2}:?\\d{2})"}; // "Z", "+05:00", "+0500" all acceptable.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
    case "T":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
            s:"[A-Z]{3}"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
    case "Z":
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
        return {g:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            c:"s = parseInt(results[" + currentGroup + "], 10);\n",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
            s:"([+-]\\d{1,5})"};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
    default:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        return {g:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
            c:null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
            s:String.escape(character)};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
Date.parseOffset = function(str) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
  if (str == "Z") { return 0 ; } // UTC, no offset.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
  var seconds ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
  seconds = parseInt(str[0] + str[1] + str[2]) * 3600 ; // e.g., "+05" or "-08"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
  if (str[3] == ":") {            // "+HH:MM" is preferred iso8601 format ("O")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
    seconds += parseInt(str[4] + str[5]) * 60;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
  } else {                      // "+HHMM" is frequently used, though. ("P")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
    seconds += parseInt(str[3] + str[4]) * 60;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
  }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
  return seconds ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
// convert the parsed date into UTC, but store the offset so we can optionally use it in dateFormat()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
Date.prototype.applyOffset = function(offset_seconds) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
  this.offset = offset_seconds * 1000 ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
  this.setTime(this.valueOf() + this.offset);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
  return this ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
Date.prototype.getTimezone = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
    return this.toString().replace(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
        /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
        /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3").replace(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
        /^.*?[0-9]{4} \(([A-Z]{3})\)/, "$1");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
Date.prototype.getGMTOffset = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
    return (this.getTimezoneOffset() > 0 ? "-" : "+")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
        + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
        + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
Date.prototype.getDayOfYear = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
    var num = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
    for (var i = 0; i < this.getMonth(); ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
        num += Date.daysInMonth[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
    return num + this.getDate() - 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
Date.prototype.getWeekOfYear = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
    // Skip to Thursday of this week
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
    var now = this.getDayOfYear() + (4 - this.getDay());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
    // Find the first Thursday of the year
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
    var jan1 = new Date(this.getFullYear(), 0, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
    var then = (7 - jan1.getDay() + 4);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    document.write(then);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
    return String.leftPad(((now - then) / 7) + 1, 2, "0");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
Date.prototype.isLeapYear = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    var year = this.getFullYear();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
    return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
Date.prototype.getFirstDayOfMonth = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
    var day = (this.getDay() - (this.getDate() - 1)) % 7;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
    return (day < 0) ? (day + 7) : day;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
Date.prototype.getLastDayOfMonth = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
    var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
    return (day < 0) ? (day + 7) : day;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
Date.prototype.getDaysInMonth = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
    return Date.daysInMonth[this.getMonth()];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
Date.prototype.getSuffix = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
    switch (this.getDate()) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
        case 1:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
        case 21:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
        case 31:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
            return "st";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
        case 2:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
        case 22:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
            return "nd";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
        case 3:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
        case 23:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
            return "rd";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
        default:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
            return "th";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
String.escape = function(string) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
    return string.replace(/('|\\)/g, "\\$1");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
String.leftPad = function (val, size, ch) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
    var result = new String(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
    if (ch == null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
        ch = " ";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
    while (result.length < size) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
        result = ch + result;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
    return result;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
Date.monthNames =
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
   ["January",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
    "February",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
    "March",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
    "April",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
    "May",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
    "June",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
    "July",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
    "August",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
    "September",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
    "October",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
    "November",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
    "December"];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
Date.dayNames =
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
   ["Sunday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    "Monday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
    "Tuesday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
    "Wednesday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
    "Thursday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
    "Friday",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
    "Saturday"];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
Date.y2kYear = 50;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
Date.monthNumbers = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
    Jan:0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
    Feb:1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    Mar:2,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
    Apr:3,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
    May:4,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
    Jun:5,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
    Jul:6,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
    Aug:7,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
    Sep:8,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
    Oct:9,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
    Nov:10,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
    Dec:11};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
Date.patterns = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
    ISO8601LongPattern: "Y\\-m\\-d\\TH\\:i\\:sO",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
    ISO8601ShortPattern: "Y\\-m\\-d",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
    ShortDatePattern: "n/j/Y",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
    LongDatePattern: "l, F d, Y",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
    FullDateTimePattern: "l, F d, Y g:i:s A",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
    MonthDayPattern: "F d",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
    ShortTimePattern: "g:i A",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
    LongTimePattern: "g:i:s A",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
    SortableDateTimePattern: "Y-m-d\\TH:i:s",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
    UniversalSortableDateTimePattern: "Y-m-d H:i:sO",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
    YearMonthPattern: "F, Y"};