src/cm/media/js/lib/yui/yui_3.10.3/build/calendar/calendar.js
author gibus
Tue, 11 Feb 2014 12:33:25 +0100
changeset 572 93383e54e042
parent 525 89ef5ed3c48b
permissions -rw-r--r--
Font size for piwik optout iframe.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('calendar', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * The Calendar component is a UI widget that allows users
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * to view dates in a two-dimensional month grid, as well as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * to select one or more dates, or ranges of dates. Calendar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * is generated dynamically and relies on the developer to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * provide for a progressive enhancement alternative.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 * @module calendar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
var getCN             = Y.ClassNameManager.getClassName,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    CALENDAR          = 'calendar',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    KEY_DOWN          = 40,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    KEY_UP            = 38,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    KEY_LEFT          = 37,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    KEY_RIGHT         = 39,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    KEY_ENTER         = 13,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
    KEY_SPACE         = 32,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    CAL_DAY_SELECTED  = getCN(CALENDAR, 'day-selected'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    CAL_DAY_HILITED   = getCN(CALENDAR, 'day-highlighted'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    CAL_DAY           = getCN(CALENDAR, 'day'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    CAL_PREVMONTH_DAY = getCN(CALENDAR, 'prevmonth-day'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    CAL_NEXTMONTH_DAY = getCN(CALENDAR, 'nextmonth-day'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    CAL_GRID          = getCN(CALENDAR, 'grid'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    ydate             = Y.DataType.Date,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    CAL_PANE          = getCN(CALENDAR, 'pane'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    os                = Y.UA.os;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
/** Create a calendar view to represent a single or multiple
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    * month range of dates, rendered as a grid with date and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    * weekday labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    * @class Calendar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    * @extends CalendarBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    * @param config {Object} Configuration object (see Configuration attributes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
function Calendar() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    Calendar.superclass.constructor.apply ( this, arguments );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    _keyEvents: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    _highlightedDateNode: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
     * A property tracking the last selected date on the calendar, for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
     * purposes of multiple selection.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
     * @property _lastSelectedDate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
     * @type Date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
     * @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    _lastSelectedDate: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
     * Designated initializer. Activates the navigation plugin for the calendar.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
     * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    initializer : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        this.plug(Y.Plugin.CalendarNavigator);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        this._keyEvents = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        this._highlightedDateNode = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
        this._lastSelectedDate = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
     * Overrides the _bindCalendarEvents placeholder in CalendarBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
     * and binds calendar events during bindUI stage.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
     * @method _bindCalendarEvents
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    _bindCalendarEvents : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        var contentBox = this.get('contentBox'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
            pane       = contentBox.one("." + CAL_PANE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
        pane.on("selectstart", this._preventSelectionStart);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        pane.delegate("click", this._clickCalendar, "." + CAL_DAY + ", ." + CAL_PREVMONTH_DAY + ", ." + CAL_NEXTMONTH_DAY, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        pane.delegate("keydown", this._keydownCalendar, "." + CAL_GRID, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        pane.delegate("focus", this._focusCalendarGrid, "." + CAL_GRID, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        pane.delegate("focus", this._focusCalendarCell, "." + CAL_DAY, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
        pane.delegate("blur", this._blurCalendarGrid, "." + CAL_GRID + ",." + CAL_DAY, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
     * Prevents text selection if it is started within the calendar pane
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
     * @method _preventSelectionStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
     * @param event {Event} The selectstart event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    _preventSelectionStart : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        event.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
     * Highlights a specific date node with keyboard highlight class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
     * @method _highlightDateNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
     * @param oDate {Date} Date corresponding the node to be highlighted
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    _highlightDateNode : function (oDate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        this._unhighlightCurrentDateNode();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        var newNode = this._dateToNode(oDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        newNode.focus();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        newNode.addClass(CAL_DAY_HILITED);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
     * Unhighlights a specific date node currently highlighted with keyboard highlight class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
     * @method _unhighlightCurrentDateNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    _unhighlightCurrentDateNode : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        var allHilitedNodes = this.get("contentBox").all("." + CAL_DAY_HILITED);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        if (allHilitedNodes) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
            allHilitedNodes.removeClass(CAL_DAY_HILITED);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     * Returns the grid number for a specific calendar grid (for multi-grid templates)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     * @method _getGridNumber
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
     * @param gridNode {Node} Node corresponding to a specific grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    _getGridNumber : function (gridNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        var idParts = gridNode.get("id").split("_").reverse();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        return parseInt(idParts[0], 10);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
     * Handler for loss of focus of calendar grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     * @method _blurCalendarGrid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    _blurCalendarGrid : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        this._unhighlightCurrentDateNode();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
     * Handler for gain of focus of calendar cell
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
     * @method _focusCalendarCell
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    _focusCalendarCell : function (ev) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        this._highlightedDateNode = ev.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        ev.stopPropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
     * Handler for gain of focus of calendar grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
     * @method _focusCalendarGrid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    _focusCalendarGrid : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        this._unhighlightCurrentDateNode();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        this._highlightedDateNode = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
     * Handler for keyboard press on a calendar grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
     * @method _keydownCalendar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
    _keydownCalendar : function (ev) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
        var gridNum = this._getGridNumber(ev.target),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
            curDate = !this._highlightedDateNode ? null : this._nodeToDate(this._highlightedDateNode),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            keyCode = ev.keyCode,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            dayNum = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
            dir = '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            selMode,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
            newDate,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            startDate,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
            endDate,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
            lastPaneDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
        switch(keyCode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
            case KEY_DOWN:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
                dayNum = 7;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
                dir = 's';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
            case KEY_UP:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
                dayNum = -7;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
                dir = 'n';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
            case KEY_LEFT:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
                dayNum = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
                dir = 'w';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
            case KEY_RIGHT:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                dayNum = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                dir = 'e';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
            case KEY_SPACE: case KEY_ENTER:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
                ev.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
                if (this._highlightedDateNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
                    selMode = this.get("selectionMode");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
                    if (selMode === "single" && !this._highlightedDateNode.hasClass(CAL_DAY_SELECTED)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
                            this._clearSelection(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
                            this._addDateToSelection(curDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
                    } else if (selMode === "multiple" || selMode === "multiple-sticky") {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
                        if (this._highlightedDateNode.hasClass(CAL_DAY_SELECTED)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                            this._removeDateFromSelection(curDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
                        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
                            this._addDateToSelection(curDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        if (keyCode === KEY_DOWN || keyCode === KEY_UP || keyCode === KEY_LEFT || keyCode === KEY_RIGHT) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
            if (!curDate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
                curDate = ydate.addMonths(this.get("date"), gridNum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
                dayNum = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
            ev.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
            newDate = ydate.addDays(curDate, dayNum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
            startDate = this.get("date");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
            endDate = ydate.addMonths(this.get("date"), this._paneNumber - 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            lastPaneDate = new Date(endDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
            endDate.setDate(ydate.daysInMonth(endDate));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            if (ydate.isInRange(newDate, startDate, endDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
                var paneShift = (newDate.getMonth() - curDate.getMonth()) % 10;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
                if (paneShift != 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
                    var newGridNum = gridNum + paneShift,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
                            contentBox = this.get('contentBox'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
                            newPane = contentBox.one("#" + this._calendarId + "_pane_" + newGridNum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
                            newPane.focus();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
                this._highlightDateNode(newDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
            } else if (ydate.isGreater(startDate, newDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
                if (!ydate.isGreaterOrEqual(this.get("minimumDate"), startDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
                    this.set("date", ydate.addMonths(startDate, -1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
                    this._highlightDateNode(newDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
            } else if (ydate.isGreater(newDate, endDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
                if (!ydate.isGreaterOrEqual(lastPaneDate, this.get("maximumDate"))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
                    this.set("date", ydate.addMonths(startDate, 1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
                    this._highlightDateNode(newDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
     * Handles the calendar clicks based on selection mode.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
     * @method _clickCalendar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
     * @param {Event} ev A click event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    _clickCalendar : function (ev) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        var clickedCell = ev.currentTarget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
            clickedCellIsDay = clickedCell.hasClass(CAL_DAY) &&
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
                                !clickedCell.hasClass(CAL_PREVMONTH_DAY) &&
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
                                !clickedCell.hasClass(CAL_NEXTMONTH_DAY),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        clickedCellIsSelected = clickedCell.hasClass(CAL_DAY_SELECTED),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        selectedDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
        switch (this.get("selectionMode")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
            case("single"):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
                if (clickedCellIsDay) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
                    if (!clickedCellIsSelected) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
                        this._clearSelection(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
                        this._addDateToSelection(this._nodeToDate(clickedCell));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
            case("multiple-sticky"):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
                if (clickedCellIsDay) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
                    if (clickedCellIsSelected) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
                        this._removeDateFromSelection(this._nodeToDate(clickedCell));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
                    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
                        this._addDateToSelection(this._nodeToDate(clickedCell));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
            case("multiple"):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
                if (clickedCellIsDay) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
                    if (!ev.metaKey && !ev.ctrlKey && !ev.shiftKey) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
                        this._clearSelection(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
                        this._lastSelectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
                        this._addDateToSelection(this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
                    } else if (((os === 'macintosh' && ev.metaKey) || (os !== 'macintosh' && ev.ctrlKey)) && !ev.shiftKey) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
                        if (clickedCellIsSelected) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
                            this._removeDateFromSelection(this._nodeToDate(clickedCell));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
                            this._lastSelectedDate = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
                        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
                            this._lastSelectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
                            this._addDateToSelection(this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
                    } else if (((os === 'macintosh' && ev.metaKey) || (os !== 'macintosh' && ev.ctrlKey)) && ev.shiftKey) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
                        if (this._lastSelectedDate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
                            selectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
                            this._addDateRangeToSelection(selectedDate, this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
                            this._lastSelectedDate = selectedDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
                        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                            this._lastSelectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
                            this._addDateToSelection(this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
                    } else if (ev.shiftKey) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
                        if (this._lastSelectedDate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
                            selectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
                            this._clearSelection(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
                            this._addDateRangeToSelection(selectedDate, this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
                            this._lastSelectedDate = selectedDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
                        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
                            this._clearSelection(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
                            this._lastSelectedDate = this._nodeToDate(clickedCell);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
                            this._addDateToSelection(this._lastSelectedDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
        if (clickedCellIsDay) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
            * Fired when a specific date cell in the calendar is clicked. The event carries a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            * payload which includes a `cell` property corresponding to the node of the actual
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
            * date cell, and a `date` property, with the `Date` that was clicked.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
            * @event dateClick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
            this.fire("dateClick", {cell: clickedCell, date: this._nodeToDate(clickedCell)});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
        } else if (clickedCell.hasClass(CAL_PREVMONTH_DAY)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
            * Fired when any of the previous month's days displayed before the calendar grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
            * are clicked.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
            *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
            * @event prevMonthClick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
            */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
            this.fire("prevMonthClick");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        } else if (clickedCell.hasClass(CAL_NEXTMONTH_DAY)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
            * Fired when any of the next month's days displayed after the calendar grid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
            * are clicked.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
            *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
            * @event nextMonthClick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
            */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
            this.fire("nextMonthClick");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
     * Subtracts one month from the current calendar view.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
     * @method subtractMonth
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
     * @return {Calendar} A reference to this object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
    subtractMonth : function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        this.set("date", ydate.addMonths(this.get("date"), -1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        if (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
            e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
     * Subtracts one year from the current calendar view.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
     * @method subtractYear
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
     * @return {Calendar} A reference to this object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    subtractYear : function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        this.set("date", ydate.addYears(this.get("date"), -1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
        if (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
            e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
     * Adds one month to the current calendar view.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
     * @method addMonth
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
     * @return {Calendar} A reference to this object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
    addMonth : function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
        this.set("date", ydate.addMonths(this.get("date"), 1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
        if (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
            e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
     * Adds one year to the current calendar view.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
     * @method addYear
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
     * @return {Calendar} A reference to this object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    addYear : function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
        this.set("date", ydate.addYears(this.get("date"), 1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        if (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
            e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    * The identity of the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
    * @property NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
    * @default 'calendar'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    NAME: "calendar",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    * Static property used to define the default attribute configuration of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    * the Widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
    * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
         * A setting specifying the type of selection the calendar allows.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
         * Possible values include:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
         * <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
         *   <li>`single` - One date at a time</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
         *   <li>`multiple-sticky` - Multiple dates, selected one at a time (the dates "stick"). This option
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
         *   is appropriate for mobile devices, where function keys from the keyboard are not available.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
         *   <li>`multiple` - Multiple dates, selected with Ctrl/Meta keys for additional single
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
         *   dates, and Shift key for date ranges.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
         * @attribute selectionMode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
         * @default single
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
        selectionMode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
            value: "single"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
         * The date corresponding to the current calendar view. Always
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
         * normalized to the first of the month that contains the date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
         * at assignment time. Used as the first date visible in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
         * calendar.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
         * @attribute date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
         * @type Date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
         * @default Today's date as set on the user's computer.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
        date: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
            value: new Date(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
            setter: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                var newDate = this._normalizeDate(val),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
                    newTopDate = ydate.addMonths(newDate, this._paneNumber - 1),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
                    minDate = this.get("minimumDate"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
                    maxDate = this.get("maximumDate"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
                    actualMaxDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
                if ((!minDate || ydate.isGreaterOrEqual(newDate, minDate)) &&
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                        (!maxDate || ydate.isGreaterOrEqual(maxDate, newTopDate))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
                ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
                    return newDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
                } else if (minDate && ydate.isGreater(minDate, newDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
                    return minDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
                } else if (maxDate && ydate.isGreater(newTopDate, maxDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
                    actualMaxDate = ydate.addMonths(maxDate, -1*(this._paneNumber - 1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
                    return actualMaxDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
         * The minimum date that can be displayed by the calendar. The calendar will not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
         * allow dates earlier than this one to be set, and will reset any earlier date to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
         * this date. Should be `null` if no minimum date is needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
         * @attribute minimumDate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
         * @type Date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
         * @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
        minimumDate: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
            setter: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                    var curDate = this.get('date'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
                        newMinDate = this._normalizeDate(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
                    if (curDate && !ydate.isGreaterOrEqual(curDate, newMinDate)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
                        this.set('date', newMinDate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
                    return newMinDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
                    return this._normalizeDate(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
         * The maximum date that can be displayed by the calendar. The calendar will not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
         * allow dates later than this one to be set, and will reset any later date to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
         * this date. Should be `null` if no maximum date is needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
         * @attribute maximumDate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
         * @type Date
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
         * @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
        maximumDate: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
            setter: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
                if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
                    var curDate = this.get('date'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
                        newMaxDate = this._normalizeDate(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
                    if (curDate && !ydate.isGreaterOrEqual(val, ydate.addMonths(curDate, this._paneNumber - 1))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
                        this.set('date', ydate.addMonths(newMaxDate, -1*(this._paneNumber -1)));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
                    return newMaxDate;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
                    return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
}, '3.10.3', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
    "requires": [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
        "calendar-base",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
        "calendarnavigator"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
    "lang": [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
        "de",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
        "en",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
        "es",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
        "es-AR",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
        "fr",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
        "it",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
        "ja",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
        "nb-NO",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
        "nl",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
        "pt-BR",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
        "ru",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
        "zh-HANT-TW"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
    "skinnable": true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
});