a:88:{s:9:"#provides";s:21:"dojox.widget.Calendar";s:9:"#resource";s:18:"widget/Calendar.js";s:9:"#requires";a:2:{i:0;a:3:{i:0;s:6:"common";i:1;s:15:"dijit._Calendar";i:2;s:5:"dijit";}i:1;a:3:{i:0;s:6:"common";i:1;s:16:"dijit._Container";i:2;s:5:"dijit";}}s:26:"dojox.widget._CalendarBase";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:13:"dijit._Widget";}s:4:"call";a:3:{i:0;s:13:"dijit._Widget";i:1;s:16:"dijit._Templated";i:2;s:16:"dijit._Container";}}s:6:"mixins";a:1:{s:9:"prototype";a:2:{i:0;s:26:"dijit._Templated.prototype";i:1;s:26:"dijit._Container.prototype";}}s:7:"summary";s:26:"constructor for the widget";s:6:"source";s:19:" this._views = [];";s:9:"classlike";b:1;}s:39:"dojox.widget._CalendarBase.templatePath";a:3:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:3:"URL";s:7:"summary";s:60:"the path to the template to be used to construct the widget.";}s:33:"dojox.widget._CalendarBase._views";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:5:"Array";s:7:"summary";s:51:"The list of mixin views available on this calendar.";s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"private";b:1;}s:32:"dojox.widget._CalendarBase.useFx";a:3:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:7:"Boolean";s:7:"summary";s:182:"Specifies if visual effects should be applied to the widget. The default behavior of the widget does not contain any effects. The dojox.widget.CalendarFx package is needed for these.";}s:44:"dojox.widget._CalendarBase.widgetsInTemplate";a:3:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:7:"Boolean";s:7:"summary";s:61:"This widget is a container of other widgets, so this is true.";}s:32:"dojox.widget._CalendarBase.value";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:8:"instance";s:26:"dojox.widget._CalendarBase";s:4:"type";s:4:"Date";s:7:"summary";s:27:"the currently selected Date";}s:38:"dojox.widget._CalendarBase.constraints";a:2:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:7:"summary";s:0:"";}s:39:"dojox.widget._CalendarBase.footerFormat";a:3:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:6:"String";s:7:"summary";s:89:"The date format of the date displayed in the footer. Can be 'short', 'medium', and 'long'";}s:46:"dojox.widget._CalendarBase.postMixInProperties";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:6:"source";s:226:" var c = this.constraints; if (c) { var fromISO = dojo.date.stamp.fromISOString; if (typeof c.min == "string") { c.min = fromISO(c.min); } if (typeof c.max == "string") { c.max = fromISO(c.max); } }";s:7:"summary";s:0:"";}s:37:"dojox.widget._CalendarBase.postCreate";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:6:"source";s:2428:" this._height = dojo.style(this.containerNode, "height"); this.displayMonth = new Date(this.attr('value')); var mixin = { parent: this, _getValueAttr: dojo.hitch(this, function(){return new Date(this.displayMonth);}), _getConstraintsAttr: dojo.hitch(this, function(){return this.constraints;}), getLang: dojo.hitch(this, function(){return this.lang;}), isDisabledDate: dojo.hitch(this, this.isDisabledDate), getClassForDate: dojo.hitch(this, this.getClassForDate), addFx: this.useFx ? dojo.hitch(this, this.addFx) : function(){} }; //Add the mixed in views. dojo.forEach(this._views, function(widgetType){ var widget = new widgetType(mixin, dojo.create('div')); this.addChild(widget); var header = widget.getHeader(); if (header) { //place the views's header node in the header of the main widget this.header.appendChild(header); //hide the header node of the widget dojo.style(header, "display", "none"); } //Hide all views dojo.style(widget.domNode, "visibility", "hidden"); //Listen for the values in a view to be selected dojo.connect(widget, "onValueSelected", this, "_onDateSelected"); widget.attr("value", this.attr('value')); }, this); if(this._views.length < 2) { dojo.style(this.header, "cursor", "auto"); } this.inherited(arguments); // Cache the list of children widgets. this._children = this.getChildren(); this._currentChild = 0; //Populate the footer with today's date. var today = new Date(); this.footer.innerHTML = "Today: " + dojo.date.locale.format(today, {formatLength:this.footerFormat,selector:'date', locale:this.lang}); dojo.connect(this.footer, "onclick", this, "goToToday"); var first = this._children[0]; dojo.style(first.domNode, "top", "0px"); dojo.style(first.domNode, "visibility", "visible"); var header = first.getHeader(); if (header) { dojo.style(first.getHeader(), "display", ""); } dojo[first.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); first.onDisplay(); var _this = this; var typematic = function(nodeProp, dateProp, adj){ dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ if(count >= 0){ _this._adjustDisplay(dateProp, adj);} }, 0.8, 500); }; typematic("incrementMonth", "month", 1); typematic("decrementMonth", "month", -1); this._updateTitleStyle();";s:7:"summary";s:28:"Instantiates the mixin views";}s:32:"dojox.widget._CalendarBase.addFx";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"query";a:1:{s:4:"type";s:0:"";}s:8:"fromNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:4119:"dojo.provide("dojox.widget.Calendar"); dojo.experimental("dojox.widget.Calendar"); dojo.require("dijit._Calendar"); dojo.require("dijit._Container"); dojo.declare("dojox.widget._CalendarBase", [dijit._Widget, dijit._Templated, dijit._Container], { // summary: The Root class for all _Calendar extensions // templatePath: URL // the path to the template to be used to construct the widget. templatePath: dojo.moduleUrl("dojox.widget","Calendar/Calendar.html"), // _views: Array // The list of mixin views available on this calendar. _views: null, // useFx: Boolean // Specifies if visual effects should be applied to the widget. // The default behavior of the widget does not contain any effects. // The dojox.widget.CalendarFx package is needed for these. useFx: true, // widgetsInTemplate: Boolean // This widget is a container of other widgets, so this is true. widgetsInTemplate: true, // value: Date // the currently selected Date value: new Date(), constraints: null, // footerFormat: String // The date format of the date displayed in the footer. Can be // 'short', 'medium', and 'long' footerFormat: "medium", constructor: function(){ // summary: constructor for the widget this._views = []; }, postMixInProperties: function(){ var c = this.constraints; if (c) { var fromISO = dojo.date.stamp.fromISOString; if (typeof c.min == "string") { c.min = fromISO(c.min); } if (typeof c.max == "string") { c.max = fromISO(c.max); } } }, postCreate: function(){ // summary: Instantiates the mixin views this._height = dojo.style(this.containerNode, "height"); this.displayMonth = new Date(this.attr('value')); var mixin = { parent: this, _getValueAttr: dojo.hitch(this, function(){return new Date(this.displayMonth);}), _getConstraintsAttr: dojo.hitch(this, function(){return this.constraints;}), getLang: dojo.hitch(this, function(){return this.lang;}), isDisabledDate: dojo.hitch(this, this.isDisabledDate), getClassForDate: dojo.hitch(this, this.getClassForDate), addFx: this.useFx ? dojo.hitch(this, this.addFx) : function(){} }; //Add the mixed in views. dojo.forEach(this._views, function(widgetType){ var widget = new widgetType(mixin, dojo.create('div')); this.addChild(widget); var header = widget.getHeader(); if (header) { //place the views's header node in the header of the main widget this.header.appendChild(header); //hide the header node of the widget dojo.style(header, "display", "none"); } //Hide all views dojo.style(widget.domNode, "visibility", "hidden"); //Listen for the values in a view to be selected dojo.connect(widget, "onValueSelected", this, "_onDateSelected"); widget.attr("value", this.attr('value')); }, this); if(this._views.length < 2) { dojo.style(this.header, "cursor", "auto"); } this.inherited(arguments); // Cache the list of children widgets. this._children = this.getChildren(); this._currentChild = 0; //Populate the footer with today's date. var today = new Date(); this.footer.innerHTML = "Today: " + dojo.date.locale.format(today, {formatLength:this.footerFormat,selector:'date', locale:this.lang}); dojo.connect(this.footer, "onclick", this, "goToToday"); var first = this._children[0]; dojo.style(first.domNode, "top", "0px"); dojo.style(first.domNode, "visibility", "visible"); var header = first.getHeader(); if (header) { dojo.style(first.getHeader(), "display", ""); } dojo[first.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); first.onDisplay(); var _this = this; var typematic = function(nodeProp, dateProp, adj){ dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ if(count >= 0){ _this._adjustDisplay(dateProp, adj);} }, 0.8, 500); }; typematic("incrementMonth", "month", 1); typematic("decrementMonth", "month", -1); this._updateTitleStyle(); }, addFx: function(query, fromNode) { // Stub function than can be overridden to add effects.";s:7:"summary";s:0:"";}s:40:"dojox.widget._CalendarBase._setValueAttr";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"value";a:1:{s:4:"type";s:4:"Date";}}s:6:"source";s:418:" if (!value["getFullYear"]) { value = dojo.date.stamp.fromISOString(value + ""); } if(!this.value || dojo.date.compare(value, this.value)){ value = new Date(value); this.displayMonth = new Date(value); if(!this.isDisabledDate(value, this.lang)){ this.value = value; this.onChange(value); } this._children[this._currentChild].attr("value", this.value); return true; } return false;";s:7:"summary";s:151:"set the current date and update the UI. If the date is disabled, the selection will not change, but the display will change to the corresponding month.";s:7:"private";b:1;}s:41:"dojox.widget._CalendarBase.isDisabledDate";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"date";a:1:{s:4:"type";s:4:"Date";}s:6:"locale";a:2:{s:8:"optional";b:1;s:4:"type";s:6:"String";}}s:6:"source";s:177:" var c = this.constraints; var compare = dojo.date.compare; return c && (c.min && (compare(c.min, date, "date") > 0) || (c.max && compare(c.max, date, "date") < 0));";s:7:"summary";s:107:"May be overridden to disable certain dates in the calendar e.g. `isDisabledDate=dojo.date.locale.isWeekend`";}s:42:"dojox.widget._CalendarBase.onValueSelected";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"date";a:1:{s:4:"type";s:4:"Date";}}s:6:"source";s:81:" // summary: a date cell was selected. It may be the same as the previous value.";s:7:"summary";s:67:"a date cell was selected. It may be the same as the previous value.";}s:42:"dojox.widget._CalendarBase._onDateSelected";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"date";a:1:{s:4:"type";s:0:"";}s:14:"formattedValue";a:1:{s:4:"type";s:0:"";}s:5:"force";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:308:" this.displayMonth = date; this.attr("value", date) //Only change the selected value if it was chosen from the //first child. if (!this._transitionVert(-1)) { if (!formattedValue && formattedValue !== 0) { formattedValue = this.attr('value'); } this.onValueSelected(formattedValue); }";s:7:"private";b:1;s:7:"summary";s:0:"";}s:35:"dojox.widget._CalendarBase.onChange";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"date";a:1:{s:4:"type";s:4:"Date";}}s:6:"source";s:60:" // summary: called only when the selected date has changed";s:7:"summary";s:46:"called only when the selected date has changed";}s:40:"dojox.widget._CalendarBase.onHeaderClick";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:26:" this._transitionVert(1);";s:7:"summary";s:29:"Transitions to the next view.";}s:36:"dojox.widget._CalendarBase.goToToday";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:6:"source";s:77:" this.attr("value", new Date()); this.onValueSelected(this.attr('value'));";s:7:"summary";s:0:"";}s:42:"dojox.widget._CalendarBase._transitionVert";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:9:"direction";a:1:{s:4:"type";s:6:"Number";}}s:6:"source";s:1388:" var curWidget = this._children[this._currentChild]; var nextWidget = this._children[this._currentChild + direction]; if(!nextWidget){return false;} dojo.style(nextWidget.domNode, "visibility", "visible"); var height = dojo.style(this.containerNode, "height"); nextWidget.attr("value", this.displayMonth); if (curWidget.header) { dojo.style(curWidget.header, "display", "none"); } if (nextWidget.header) { dojo.style(nextWidget.header, "display", ""); } dojo.style(nextWidget.domNode, "top", (height * -1) + "px"); dojo.style(nextWidget.domNode, "visibility", "visible"); this._currentChild += direction; var height1 = height * direction; var height2 = 0; dojo.style(nextWidget.domNode, "top", (height1 * -1) + "px"); // summary: Slides two nodes vertically. var anim1 = dojo.animateProperty({ node: curWidget.domNode, properties: {top: height1}, onEnd: function(){ dojo.style(curWidget.domNode, "visibility", "hidden"); } }); var anim2 = dojo.animateProperty({ node: nextWidget.domNode, properties: {top: height2}, onEnd: function(){ nextWidget.onDisplay(); } }); dojo[nextWidget.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); anim1.play(); anim2.play(); curWidget.onBeforeUnDisplay() nextWidget.onBeforeDisplay(); this._updateTitleStyle(); return true;";s:7:"summary";s:173:"Animates the views to show one and hide another, in a vertical direction. If 'direction' is 1, then the views slide upwards. If 'direction' is -1, the views slide downwards.";s:7:"private";b:1;}s:44:"dojox.widget._CalendarBase._updateTitleStyle";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:6:"source";s:110:" dojo[this._currentChild < this._children.length -1 ? "addClass" : "removeClass"](this.header, "navToPanel");";s:7:"private";b:1;s:7:"summary";s:0:"";}s:38:"dojox.widget._CalendarBase._slideTable";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:6:"widget";a:1:{s:4:"type";s:6:"String";}s:9:"direction";a:1:{s:4:"type";s:6:"Number";}s:8:"callback";a:1:{s:4:"type";s:8:"Function";}}s:6:"source";s:839:" var table = widget.domNode; //Clone the existing table var newTable = table.cloneNode(true); var left = dojo.style(table, "width"); table.parentNode.appendChild(newTable); //Place the existing node either to the left or the right of the new node, //depending on which direction it is to slide. dojo.style(table, "left", (left * direction) + "px"); //Call the function that generally populates the new cloned node with new data. //It may also attach event listeners. callback(); //Animate the two nodes. var anim1 = dojo.animateProperty({node: newTable, properties:{left: left * direction * -1}, duration: 500, onEnd: function(){ newTable.parentNode.removeChild(newTable); }}); var anim2 = dojo.animateProperty({node: table, properties:{left: 0}, duration: 500}); anim1.play(); anim2.play();";s:7:"summary";s:43:"Animates the horizontal sliding of a table.";s:7:"private";b:1;}s:35:"dojox.widget._CalendarBase._addView";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"view";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:8844:"dojo.provide("dojox.widget.Calendar"); dojo.experimental("dojox.widget.Calendar"); dojo.require("dijit._Calendar"); dojo.require("dijit._Container"); dojo.declare("dojox.widget._CalendarBase", [dijit._Widget, dijit._Templated, dijit._Container], { // summary: The Root class for all _Calendar extensions // templatePath: URL // the path to the template to be used to construct the widget. templatePath: dojo.moduleUrl("dojox.widget","Calendar/Calendar.html"), // _views: Array // The list of mixin views available on this calendar. _views: null, // useFx: Boolean // Specifies if visual effects should be applied to the widget. // The default behavior of the widget does not contain any effects. // The dojox.widget.CalendarFx package is needed for these. useFx: true, // widgetsInTemplate: Boolean // This widget is a container of other widgets, so this is true. widgetsInTemplate: true, // value: Date // the currently selected Date value: new Date(), constraints: null, // footerFormat: String // The date format of the date displayed in the footer. Can be // 'short', 'medium', and 'long' footerFormat: "medium", constructor: function(){ // summary: constructor for the widget this._views = []; }, postMixInProperties: function(){ var c = this.constraints; if (c) { var fromISO = dojo.date.stamp.fromISOString; if (typeof c.min == "string") { c.min = fromISO(c.min); } if (typeof c.max == "string") { c.max = fromISO(c.max); } } }, postCreate: function(){ // summary: Instantiates the mixin views this._height = dojo.style(this.containerNode, "height"); this.displayMonth = new Date(this.attr('value')); var mixin = { parent: this, _getValueAttr: dojo.hitch(this, function(){return new Date(this.displayMonth);}), _getConstraintsAttr: dojo.hitch(this, function(){return this.constraints;}), getLang: dojo.hitch(this, function(){return this.lang;}), isDisabledDate: dojo.hitch(this, this.isDisabledDate), getClassForDate: dojo.hitch(this, this.getClassForDate), addFx: this.useFx ? dojo.hitch(this, this.addFx) : function(){} }; //Add the mixed in views. dojo.forEach(this._views, function(widgetType){ var widget = new widgetType(mixin, dojo.create('div')); this.addChild(widget); var header = widget.getHeader(); if (header) { //place the views's header node in the header of the main widget this.header.appendChild(header); //hide the header node of the widget dojo.style(header, "display", "none"); } //Hide all views dojo.style(widget.domNode, "visibility", "hidden"); //Listen for the values in a view to be selected dojo.connect(widget, "onValueSelected", this, "_onDateSelected"); widget.attr("value", this.attr('value')); }, this); if(this._views.length < 2) { dojo.style(this.header, "cursor", "auto"); } this.inherited(arguments); // Cache the list of children widgets. this._children = this.getChildren(); this._currentChild = 0; //Populate the footer with today's date. var today = new Date(); this.footer.innerHTML = "Today: " + dojo.date.locale.format(today, {formatLength:this.footerFormat,selector:'date', locale:this.lang}); dojo.connect(this.footer, "onclick", this, "goToToday"); var first = this._children[0]; dojo.style(first.domNode, "top", "0px"); dojo.style(first.domNode, "visibility", "visible"); var header = first.getHeader(); if (header) { dojo.style(first.getHeader(), "display", ""); } dojo[first.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); first.onDisplay(); var _this = this; var typematic = function(nodeProp, dateProp, adj){ dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ if(count >= 0){ _this._adjustDisplay(dateProp, adj);} }, 0.8, 500); }; typematic("incrementMonth", "month", 1); typematic("decrementMonth", "month", -1); this._updateTitleStyle(); }, addFx: function(query, fromNode) { // Stub function than can be overridden to add effects. }, _setValueAttr: function(/*Date*/ value){ // summary: set the current date and update the UI. If the date is disabled, the selection will // not change, but the display will change to the corresponding month. if (!value["getFullYear"]) { value = dojo.date.stamp.fromISOString(value + ""); } if(!this.value || dojo.date.compare(value, this.value)){ value = new Date(value); this.displayMonth = new Date(value); if(!this.isDisabledDate(value, this.lang)){ this.value = value; this.onChange(value); } this._children[this._currentChild].attr("value", this.value); return true; } return false; }, isDisabledDate: function(/*Date*/date, /*String?*/locale){ // summary: // May be overridden to disable certain dates in the calendar e.g. `isDisabledDate=dojo.date.locale.isWeekend` var c = this.constraints; var compare = dojo.date.compare; return c && (c.min && (compare(c.min, date, "date") > 0) || (c.max && compare(c.max, date, "date") < 0)); }, onValueSelected: function(/*Date*/date){ // summary: a date cell was selected. It may be the same as the previous value. }, _onDateSelected: function(date, formattedValue, force){ this.displayMonth = date; this.attr("value", date) //Only change the selected value if it was chosen from the //first child. if (!this._transitionVert(-1)) { if (!formattedValue && formattedValue !== 0) { formattedValue = this.attr('value'); } this.onValueSelected(formattedValue); } }, onChange: function(/*Date*/date){ // summary: called only when the selected date has changed }, onHeaderClick: function(e) { // summary: Transitions to the next view. this._transitionVert(1); }, goToToday: function(){ this.attr("value", new Date()); this.onValueSelected(this.attr('value')); }, _transitionVert: function(/*Number*/direction){ // summary: Animates the views to show one and hide another, in a // vertical direction. // If 'direction' is 1, then the views slide upwards. // If 'direction' is -1, the views slide downwards. var curWidget = this._children[this._currentChild]; var nextWidget = this._children[this._currentChild + direction]; if(!nextWidget){return false;} dojo.style(nextWidget.domNode, "visibility", "visible"); var height = dojo.style(this.containerNode, "height"); nextWidget.attr("value", this.displayMonth); if (curWidget.header) { dojo.style(curWidget.header, "display", "none"); } if (nextWidget.header) { dojo.style(nextWidget.header, "display", ""); } dojo.style(nextWidget.domNode, "top", (height * -1) + "px"); dojo.style(nextWidget.domNode, "visibility", "visible"); this._currentChild += direction; var height1 = height * direction; var height2 = 0; dojo.style(nextWidget.domNode, "top", (height1 * -1) + "px"); // summary: Slides two nodes vertically. var anim1 = dojo.animateProperty({ node: curWidget.domNode, properties: {top: height1}, onEnd: function(){ dojo.style(curWidget.domNode, "visibility", "hidden"); } }); var anim2 = dojo.animateProperty({ node: nextWidget.domNode, properties: {top: height2}, onEnd: function(){ nextWidget.onDisplay(); } }); dojo[nextWidget.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); anim1.play(); anim2.play(); curWidget.onBeforeUnDisplay() nextWidget.onBeforeDisplay(); this._updateTitleStyle(); return true; }, _updateTitleStyle: function(){ dojo[this._currentChild < this._children.length -1 ? "addClass" : "removeClass"](this.header, "navToPanel"); }, _slideTable: function(/*String*/widget, /*Number*/direction, /*Function*/callback){ // summary: Animates the horizontal sliding of a table. var table = widget.domNode; //Clone the existing table var newTable = table.cloneNode(true); var left = dojo.style(table, "width"); table.parentNode.appendChild(newTable); //Place the existing node either to the left or the right of the new node, //depending on which direction it is to slide. dojo.style(table, "left", (left * direction) + "px"); //Call the function that generally populates the new cloned node with new data. //It may also attach event listeners. callback(); //Animate the two nodes. var anim1 = dojo.animateProperty({node: newTable, properties:{left: left * direction * -1}, duration: 500, onEnd: function(){ newTable.parentNode.removeChild(newTable); }}); var anim2 = dojo.animateProperty({node: table, properties:{left: 0}, duration: 500}); anim1.play(); anim2.play(); }, _addView: function(view) { //Insert the view at the start of the array. this._views.push(view);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:42:"dojox.widget._CalendarBase.getClassForDate";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:10:"dateObject";a:1:{s:4:"type";s:4:"Date";}s:6:"locale";a:2:{s:8:"optional";b:1;s:4:"type";s:6:"String";}}s:6:"source";s:22:" return ""; // String";s:7:"summary";s:153:"May be overridden to return CSS classes to associate with the date entry for the given dateObject, for example to indicate a holiday in specified locale.";s:7:"returns";s:6:"String";}s:41:"dojox.widget._CalendarBase._adjustDisplay";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarBase";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"part";a:1:{s:4:"type";s:6:"String";}s:6:"amount";a:1:{s:4:"type";s:3:"int";}s:7:"noSlide";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:215:" var child = this._children[this._currentChild]; var month = this.displayMonth = child.adjustDate(this.displayMonth, amount); this._slideTable(child, amount, function(){ child.attr("value", month); });";s:7:"summary";s:142:"This function overrides the base function defined in dijit._Calendar. It changes the displayed years, months and days depending on the inputs.";s:7:"private";b:1;}s:34:"dojox.widget._CalendarBase._height";a:3:{s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"private";b:1;s:7:"summary";s:0:"";}s:39:"dojox.widget._CalendarBase.displayMonth";a:2:{s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"summary";s:0:"";}s:36:"dojox.widget._CalendarBase._children";a:3:{s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"private";b:1;s:7:"summary";s:0:"";}s:40:"dojox.widget._CalendarBase._currentChild";a:3:{s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"private";b:1;s:7:"summary";s:0:"";}s:43:"dojox.widget._CalendarBase.footer.innerHTML";a:2:{s:8:"instance";s:26:"dojox.widget._CalendarBase";s:7:"summary";s:0:"";}s:26:"dojox.widget._CalendarView";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:13:"dijit._Widget";}s:4:"call";a:1:{i:0;s:13:"dijit._Widget";}}s:7:"summary";s:86:"Base implementation for all view mixins. All calendar views should extend this widget.";s:9:"classlike";b:1;}s:38:"dojox.widget._CalendarView.headerClass";a:2:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:7:"summary";s:0:"";}s:36:"dojox.widget._CalendarView.useHeader";a:2:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:7:"summary";s:0:"";}s:37:"dojox.widget._CalendarView.cloneClass";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:5:"clazz";a:1:{s:4:"type";s:0:"";}s:1:"n";a:1:{s:4:"type";s:0:"";}s:6:"before";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:345:" var template = dojo.query(clazz, this.domNode)[0]; if (!before) { for (var i = 0; i < n; i++) { template.parentNode.appendChild(template.cloneNode(true)); } } else { var bNode = dojo.query(clazz, this.domNode)[0]; for (var i = 0; i < n; i++) { template.parentNode.insertBefore(template.cloneNode(true), bNode); } }";s:7:"summary";s:51:"Clones all nodes with the class 'clazz' in a widget";}s:35:"dojox.widget._CalendarView._setText";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"node";a:1:{s:4:"type";s:0:"";}s:4:"text";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:118:" while(node.firstChild){ node.removeChild(node.firstChild); } node.appendChild(dojo.doc.createTextNode(text));";s:7:"summary";s:27:"sets the text inside a node";s:7:"private";b:1;}s:36:"dojox.widget._CalendarView.getHeader";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:6:"source";s:104:" return this.header || (this.header = this.header = dojo.create("span", { "class":this.headerClass }));";s:7:"summary";s:88:"Returns the header node of a view. If none exists, an empty DIV is created and returned.";}s:42:"dojox.widget._CalendarView.onValueSelected";a:6:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"date";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:10790:"dojo.provide("dojox.widget.Calendar"); dojo.experimental("dojox.widget.Calendar"); dojo.require("dijit._Calendar"); dojo.require("dijit._Container"); dojo.declare("dojox.widget._CalendarBase", [dijit._Widget, dijit._Templated, dijit._Container], { // summary: The Root class for all _Calendar extensions // templatePath: URL // the path to the template to be used to construct the widget. templatePath: dojo.moduleUrl("dojox.widget","Calendar/Calendar.html"), // _views: Array // The list of mixin views available on this calendar. _views: null, // useFx: Boolean // Specifies if visual effects should be applied to the widget. // The default behavior of the widget does not contain any effects. // The dojox.widget.CalendarFx package is needed for these. useFx: true, // widgetsInTemplate: Boolean // This widget is a container of other widgets, so this is true. widgetsInTemplate: true, // value: Date // the currently selected Date value: new Date(), constraints: null, // footerFormat: String // The date format of the date displayed in the footer. Can be // 'short', 'medium', and 'long' footerFormat: "medium", constructor: function(){ // summary: constructor for the widget this._views = []; }, postMixInProperties: function(){ var c = this.constraints; if (c) { var fromISO = dojo.date.stamp.fromISOString; if (typeof c.min == "string") { c.min = fromISO(c.min); } if (typeof c.max == "string") { c.max = fromISO(c.max); } } }, postCreate: function(){ // summary: Instantiates the mixin views this._height = dojo.style(this.containerNode, "height"); this.displayMonth = new Date(this.attr('value')); var mixin = { parent: this, _getValueAttr: dojo.hitch(this, function(){return new Date(this.displayMonth);}), _getConstraintsAttr: dojo.hitch(this, function(){return this.constraints;}), getLang: dojo.hitch(this, function(){return this.lang;}), isDisabledDate: dojo.hitch(this, this.isDisabledDate), getClassForDate: dojo.hitch(this, this.getClassForDate), addFx: this.useFx ? dojo.hitch(this, this.addFx) : function(){} }; //Add the mixed in views. dojo.forEach(this._views, function(widgetType){ var widget = new widgetType(mixin, dojo.create('div')); this.addChild(widget); var header = widget.getHeader(); if (header) { //place the views's header node in the header of the main widget this.header.appendChild(header); //hide the header node of the widget dojo.style(header, "display", "none"); } //Hide all views dojo.style(widget.domNode, "visibility", "hidden"); //Listen for the values in a view to be selected dojo.connect(widget, "onValueSelected", this, "_onDateSelected"); widget.attr("value", this.attr('value')); }, this); if(this._views.length < 2) { dojo.style(this.header, "cursor", "auto"); } this.inherited(arguments); // Cache the list of children widgets. this._children = this.getChildren(); this._currentChild = 0; //Populate the footer with today's date. var today = new Date(); this.footer.innerHTML = "Today: " + dojo.date.locale.format(today, {formatLength:this.footerFormat,selector:'date', locale:this.lang}); dojo.connect(this.footer, "onclick", this, "goToToday"); var first = this._children[0]; dojo.style(first.domNode, "top", "0px"); dojo.style(first.domNode, "visibility", "visible"); var header = first.getHeader(); if (header) { dojo.style(first.getHeader(), "display", ""); } dojo[first.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); first.onDisplay(); var _this = this; var typematic = function(nodeProp, dateProp, adj){ dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ if(count >= 0){ _this._adjustDisplay(dateProp, adj);} }, 0.8, 500); }; typematic("incrementMonth", "month", 1); typematic("decrementMonth", "month", -1); this._updateTitleStyle(); }, addFx: function(query, fromNode) { // Stub function than can be overridden to add effects. }, _setValueAttr: function(/*Date*/ value){ // summary: set the current date and update the UI. If the date is disabled, the selection will // not change, but the display will change to the corresponding month. if (!value["getFullYear"]) { value = dojo.date.stamp.fromISOString(value + ""); } if(!this.value || dojo.date.compare(value, this.value)){ value = new Date(value); this.displayMonth = new Date(value); if(!this.isDisabledDate(value, this.lang)){ this.value = value; this.onChange(value); } this._children[this._currentChild].attr("value", this.value); return true; } return false; }, isDisabledDate: function(/*Date*/date, /*String?*/locale){ // summary: // May be overridden to disable certain dates in the calendar e.g. `isDisabledDate=dojo.date.locale.isWeekend` var c = this.constraints; var compare = dojo.date.compare; return c && (c.min && (compare(c.min, date, "date") > 0) || (c.max && compare(c.max, date, "date") < 0)); }, onValueSelected: function(/*Date*/date){ // summary: a date cell was selected. It may be the same as the previous value. }, _onDateSelected: function(date, formattedValue, force){ this.displayMonth = date; this.attr("value", date) //Only change the selected value if it was chosen from the //first child. if (!this._transitionVert(-1)) { if (!formattedValue && formattedValue !== 0) { formattedValue = this.attr('value'); } this.onValueSelected(formattedValue); } }, onChange: function(/*Date*/date){ // summary: called only when the selected date has changed }, onHeaderClick: function(e) { // summary: Transitions to the next view. this._transitionVert(1); }, goToToday: function(){ this.attr("value", new Date()); this.onValueSelected(this.attr('value')); }, _transitionVert: function(/*Number*/direction){ // summary: Animates the views to show one and hide another, in a // vertical direction. // If 'direction' is 1, then the views slide upwards. // If 'direction' is -1, the views slide downwards. var curWidget = this._children[this._currentChild]; var nextWidget = this._children[this._currentChild + direction]; if(!nextWidget){return false;} dojo.style(nextWidget.domNode, "visibility", "visible"); var height = dojo.style(this.containerNode, "height"); nextWidget.attr("value", this.displayMonth); if (curWidget.header) { dojo.style(curWidget.header, "display", "none"); } if (nextWidget.header) { dojo.style(nextWidget.header, "display", ""); } dojo.style(nextWidget.domNode, "top", (height * -1) + "px"); dojo.style(nextWidget.domNode, "visibility", "visible"); this._currentChild += direction; var height1 = height * direction; var height2 = 0; dojo.style(nextWidget.domNode, "top", (height1 * -1) + "px"); // summary: Slides two nodes vertically. var anim1 = dojo.animateProperty({ node: curWidget.domNode, properties: {top: height1}, onEnd: function(){ dojo.style(curWidget.domNode, "visibility", "hidden"); } }); var anim2 = dojo.animateProperty({ node: nextWidget.domNode, properties: {top: height2}, onEnd: function(){ nextWidget.onDisplay(); } }); dojo[nextWidget.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); anim1.play(); anim2.play(); curWidget.onBeforeUnDisplay() nextWidget.onBeforeDisplay(); this._updateTitleStyle(); return true; }, _updateTitleStyle: function(){ dojo[this._currentChild < this._children.length -1 ? "addClass" : "removeClass"](this.header, "navToPanel"); }, _slideTable: function(/*String*/widget, /*Number*/direction, /*Function*/callback){ // summary: Animates the horizontal sliding of a table. var table = widget.domNode; //Clone the existing table var newTable = table.cloneNode(true); var left = dojo.style(table, "width"); table.parentNode.appendChild(newTable); //Place the existing node either to the left or the right of the new node, //depending on which direction it is to slide. dojo.style(table, "left", (left * direction) + "px"); //Call the function that generally populates the new cloned node with new data. //It may also attach event listeners. callback(); //Animate the two nodes. var anim1 = dojo.animateProperty({node: newTable, properties:{left: left * direction * -1}, duration: 500, onEnd: function(){ newTable.parentNode.removeChild(newTable); }}); var anim2 = dojo.animateProperty({node: table, properties:{left: 0}, duration: 500}); anim1.play(); anim2.play(); }, _addView: function(view) { //Insert the view at the start of the array. this._views.push(view); }, getClassForDate: function(/*Date*/dateObject, /*String?*/locale){ // summary: // May be overridden to return CSS classes to associate with the date entry for the given dateObject, // for example to indicate a holiday in specified locale. return ""; // String }, _adjustDisplay: function(/*String*/part, /*int*/amount, noSlide){ // summary: This function overrides the base function defined in dijit._Calendar. // It changes the displayed years, months and days depending on the inputs. var child = this._children[this._currentChild]; var month = this.displayMonth = child.adjustDate(this.displayMonth, amount); this._slideTable(child, amount, function(){ child.attr("value", month); }); } }); dojo.declare("dojox.widget._CalendarView", dijit._Widget, { // summary: Base implementation for all view mixins. // All calendar views should extend this widget. headerClass: "", useHeader: true, cloneClass: function(clazz, n, before){ // summary: Clones all nodes with the class 'clazz' in a widget var template = dojo.query(clazz, this.domNode)[0]; if (!before) { for (var i = 0; i < n; i++) { template.parentNode.appendChild(template.cloneNode(true)); } } else { var bNode = dojo.query(clazz, this.domNode)[0]; for (var i = 0; i < n; i++) { template.parentNode.insertBefore(template.cloneNode(true), bNode); } } }, _setText: function(node, text){ // summary: sets the text inside a node while(node.firstChild){ node.removeChild(node.firstChild); } node.appendChild(dojo.doc.createTextNode(text)); }, getHeader: function(){ // summary: Returns the header node of a view. If none exists, // an empty DIV is created and returned. return this.header || (this.header = this.header = dojo.create("span", { "class":this.headerClass })); }, onValueSelected: function(date){ //Stub function called when a date is selected";s:7:"returns";s:6:"String";s:7:"summary";s:0:"";}s:37:"dojox.widget._CalendarView.adjustDate";a:5:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"date";a:1:{s:4:"type";s:0:"";}s:6:"amount";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:52:" return dojo.date.add(date, this.datePart, amount);";s:7:"summary";s:186:"Adds or subtracts values from a date. The unit, e.g. "day", "month" or "year", is specified in the "datePart" property of the calendar view mixin.";}s:36:"dojox.widget._CalendarView.onDisplay";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:6:"source";s:77:" // summary: Stub function that can be used to tell a view when it is shown.";s:7:"summary";s:63:"Stub function that can be used to tell a view when it is shown.";}s:42:"dojox.widget._CalendarView.onBeforeDisplay";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:6:"source";s:84:" // summary: Stub function that can be used to tell a view it is about to be shown.";s:7:"summary";s:70:"Stub function that can be used to tell a view it is about to be shown.";}s:44:"dojox.widget._CalendarView.onBeforeUnDisplay";a:4:{s:9:"prototype";s:26:"dojox.widget._CalendarView";s:4:"type";s:8:"Function";s:6:"source";s:92:" // summary: Stub function that can be used to tell // a view when it is no longer shown.";s:7:"summary";s:73:"Stub function that can be used to tell a view when it is no longer shown.";}s:33:"dojox.widget._CalendarView.header";a:2:{s:8:"instance";s:26:"dojox.widget._CalendarView";s:7:"summary";s:0:"";}s:25:"dojox.widget._CalendarDay";a:4:{s:4:"type";s:8:"Function";s:7:"summary";s:108:"Mixin for the dojox.widget.Calendar which provides the standard day-view. A single month is shown at a time.";s:6:"source";s:47:" this._addView(dojox.widget._CalendarDayView);";s:9:"classlike";b:1;}s:32:"dojox.widget._CalendarDay.parent";a:2:{s:9:"prototype";s:25:"dojox.widget._CalendarDay";s:7:"summary";s:0:"";}s:29:"dojox.widget._CalendarDayView";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarView";}s:4:"call";a:2:{i:0;s:26:"dojox.widget._CalendarView";i:1;s:16:"dijit._Templated";}}s:6:"mixins";a:1:{s:9:"prototype";a:1:{i:0;s:26:"dijit._Templated.prototype";}}s:7:"summary";s:215:"View class for the dojox.widget.Calendar. Adds a view showing every day of a single month to the calendar. This should not be mixed in directly with dojox.widget._CalendarBase. Instead, use dojox.widget._CalendarDay";s:9:"classlike";b:1;}s:42:"dojox.widget._CalendarDayView.templatePath";a:3:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:3:"URL";s:7:"summary";s:60:"the path to the template to be used to construct the widget.";}s:38:"dojox.widget._CalendarDayView.datePart";a:3:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:6:"String";s:7:"summary";s:124:"Specifies how much to increment the displayed date when the user clicks the array button to increment of decrement the view.";}s:38:"dojox.widget._CalendarDayView.dayWidth";a:3:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:6:"String";s:7:"summary";s:97:"Specifies the type of day name to display. "narrow" causes just one letter to be shown.";}s:40:"dojox.widget._CalendarDayView.postCreate";a:4:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:8:"Function";s:6:"source";s:596:" this.cloneClass(".dijitCalendarDayLabelTemplate", 6); this.cloneClass(".dijitCalendarDateTemplate", 6); // now make 6 week rows this.cloneClass(".dijitCalendarWeekTemplate", 5); // insert localized day names in the header var dayNames = dojo.date.locale.getNames('days', this.dayWidth, 'standAlone', this.getLang()); var dayOffset = dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang()); // Set the text of the day labels. dojo.query(".dijitCalendarDayLabel", this.domNode).forEach(function(label, i){ this._setText(label, dayNames[(i + dayOffset) % 7]); }, this);";s:7:"summary";s:29:"Constructs the calendar view.";}s:39:"dojox.widget._CalendarDayView.onDisplay";a:4:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:8:"Function";s:6:"source";s:178:" if(!this._addedFx) { // Add visual effects to the view, if any has been specified. this._addedFx = true; this.addFx(".dijitCalendarDateTemplate div", this.domNode); }";s:7:"summary";s:0:"";}s:41:"dojox.widget._CalendarDayView._onDayClick";a:6:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:468:" var date = new Date(this.attr("value")); var p = e.target.parentNode; var c = "dijitCalendar"; var d = dojo.hasClass(p, c + "PreviousMonth") ? -1 : (dojo.hasClass(p, c + "NextMonth") ? 1 : 0); if (d){date = dojo.date.add(date, "month", d)} date.setDate(e.target._date); // If the day is disabled, ignore it if (this.isDisabledDate(date)) { dojo.stopEvent(e); return; } this.attr('value', date); this.parent._onDateSelected(date);";s:7:"summary";s:37:"executed when a day value is clicked.";s:7:"private";b:1;}s:43:"dojox.widget._CalendarDayView._setValueAttr";a:7:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"value";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:14050:"dojo.provide("dojox.widget.Calendar"); dojo.experimental("dojox.widget.Calendar"); dojo.require("dijit._Calendar"); dojo.require("dijit._Container"); dojo.declare("dojox.widget._CalendarBase", [dijit._Widget, dijit._Templated, dijit._Container], { // summary: The Root class for all _Calendar extensions // templatePath: URL // the path to the template to be used to construct the widget. templatePath: dojo.moduleUrl("dojox.widget","Calendar/Calendar.html"), // _views: Array // The list of mixin views available on this calendar. _views: null, // useFx: Boolean // Specifies if visual effects should be applied to the widget. // The default behavior of the widget does not contain any effects. // The dojox.widget.CalendarFx package is needed for these. useFx: true, // widgetsInTemplate: Boolean // This widget is a container of other widgets, so this is true. widgetsInTemplate: true, // value: Date // the currently selected Date value: new Date(), constraints: null, // footerFormat: String // The date format of the date displayed in the footer. Can be // 'short', 'medium', and 'long' footerFormat: "medium", constructor: function(){ // summary: constructor for the widget this._views = []; }, postMixInProperties: function(){ var c = this.constraints; if (c) { var fromISO = dojo.date.stamp.fromISOString; if (typeof c.min == "string") { c.min = fromISO(c.min); } if (typeof c.max == "string") { c.max = fromISO(c.max); } } }, postCreate: function(){ // summary: Instantiates the mixin views this._height = dojo.style(this.containerNode, "height"); this.displayMonth = new Date(this.attr('value')); var mixin = { parent: this, _getValueAttr: dojo.hitch(this, function(){return new Date(this.displayMonth);}), _getConstraintsAttr: dojo.hitch(this, function(){return this.constraints;}), getLang: dojo.hitch(this, function(){return this.lang;}), isDisabledDate: dojo.hitch(this, this.isDisabledDate), getClassForDate: dojo.hitch(this, this.getClassForDate), addFx: this.useFx ? dojo.hitch(this, this.addFx) : function(){} }; //Add the mixed in views. dojo.forEach(this._views, function(widgetType){ var widget = new widgetType(mixin, dojo.create('div')); this.addChild(widget); var header = widget.getHeader(); if (header) { //place the views's header node in the header of the main widget this.header.appendChild(header); //hide the header node of the widget dojo.style(header, "display", "none"); } //Hide all views dojo.style(widget.domNode, "visibility", "hidden"); //Listen for the values in a view to be selected dojo.connect(widget, "onValueSelected", this, "_onDateSelected"); widget.attr("value", this.attr('value')); }, this); if(this._views.length < 2) { dojo.style(this.header, "cursor", "auto"); } this.inherited(arguments); // Cache the list of children widgets. this._children = this.getChildren(); this._currentChild = 0; //Populate the footer with today's date. var today = new Date(); this.footer.innerHTML = "Today: " + dojo.date.locale.format(today, {formatLength:this.footerFormat,selector:'date', locale:this.lang}); dojo.connect(this.footer, "onclick", this, "goToToday"); var first = this._children[0]; dojo.style(first.domNode, "top", "0px"); dojo.style(first.domNode, "visibility", "visible"); var header = first.getHeader(); if (header) { dojo.style(first.getHeader(), "display", ""); } dojo[first.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); first.onDisplay(); var _this = this; var typematic = function(nodeProp, dateProp, adj){ dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ if(count >= 0){ _this._adjustDisplay(dateProp, adj);} }, 0.8, 500); }; typematic("incrementMonth", "month", 1); typematic("decrementMonth", "month", -1); this._updateTitleStyle(); }, addFx: function(query, fromNode) { // Stub function than can be overridden to add effects. }, _setValueAttr: function(/*Date*/ value){ // summary: set the current date and update the UI. If the date is disabled, the selection will // not change, but the display will change to the corresponding month. if (!value["getFullYear"]) { value = dojo.date.stamp.fromISOString(value + ""); } if(!this.value || dojo.date.compare(value, this.value)){ value = new Date(value); this.displayMonth = new Date(value); if(!this.isDisabledDate(value, this.lang)){ this.value = value; this.onChange(value); } this._children[this._currentChild].attr("value", this.value); return true; } return false; }, isDisabledDate: function(/*Date*/date, /*String?*/locale){ // summary: // May be overridden to disable certain dates in the calendar e.g. `isDisabledDate=dojo.date.locale.isWeekend` var c = this.constraints; var compare = dojo.date.compare; return c && (c.min && (compare(c.min, date, "date") > 0) || (c.max && compare(c.max, date, "date") < 0)); }, onValueSelected: function(/*Date*/date){ // summary: a date cell was selected. It may be the same as the previous value. }, _onDateSelected: function(date, formattedValue, force){ this.displayMonth = date; this.attr("value", date) //Only change the selected value if it was chosen from the //first child. if (!this._transitionVert(-1)) { if (!formattedValue && formattedValue !== 0) { formattedValue = this.attr('value'); } this.onValueSelected(formattedValue); } }, onChange: function(/*Date*/date){ // summary: called only when the selected date has changed }, onHeaderClick: function(e) { // summary: Transitions to the next view. this._transitionVert(1); }, goToToday: function(){ this.attr("value", new Date()); this.onValueSelected(this.attr('value')); }, _transitionVert: function(/*Number*/direction){ // summary: Animates the views to show one and hide another, in a // vertical direction. // If 'direction' is 1, then the views slide upwards. // If 'direction' is -1, the views slide downwards. var curWidget = this._children[this._currentChild]; var nextWidget = this._children[this._currentChild + direction]; if(!nextWidget){return false;} dojo.style(nextWidget.domNode, "visibility", "visible"); var height = dojo.style(this.containerNode, "height"); nextWidget.attr("value", this.displayMonth); if (curWidget.header) { dojo.style(curWidget.header, "display", "none"); } if (nextWidget.header) { dojo.style(nextWidget.header, "display", ""); } dojo.style(nextWidget.domNode, "top", (height * -1) + "px"); dojo.style(nextWidget.domNode, "visibility", "visible"); this._currentChild += direction; var height1 = height * direction; var height2 = 0; dojo.style(nextWidget.domNode, "top", (height1 * -1) + "px"); // summary: Slides two nodes vertically. var anim1 = dojo.animateProperty({ node: curWidget.domNode, properties: {top: height1}, onEnd: function(){ dojo.style(curWidget.domNode, "visibility", "hidden"); } }); var anim2 = dojo.animateProperty({ node: nextWidget.domNode, properties: {top: height2}, onEnd: function(){ nextWidget.onDisplay(); } }); dojo[nextWidget.useHeader ? "removeClass" : "addClass"](this.container, "no-header"); anim1.play(); anim2.play(); curWidget.onBeforeUnDisplay() nextWidget.onBeforeDisplay(); this._updateTitleStyle(); return true; }, _updateTitleStyle: function(){ dojo[this._currentChild < this._children.length -1 ? "addClass" : "removeClass"](this.header, "navToPanel"); }, _slideTable: function(/*String*/widget, /*Number*/direction, /*Function*/callback){ // summary: Animates the horizontal sliding of a table. var table = widget.domNode; //Clone the existing table var newTable = table.cloneNode(true); var left = dojo.style(table, "width"); table.parentNode.appendChild(newTable); //Place the existing node either to the left or the right of the new node, //depending on which direction it is to slide. dojo.style(table, "left", (left * direction) + "px"); //Call the function that generally populates the new cloned node with new data. //It may also attach event listeners. callback(); //Animate the two nodes. var anim1 = dojo.animateProperty({node: newTable, properties:{left: left * direction * -1}, duration: 500, onEnd: function(){ newTable.parentNode.removeChild(newTable); }}); var anim2 = dojo.animateProperty({node: table, properties:{left: 0}, duration: 500}); anim1.play(); anim2.play(); }, _addView: function(view) { //Insert the view at the start of the array. this._views.push(view); }, getClassForDate: function(/*Date*/dateObject, /*String?*/locale){ // summary: // May be overridden to return CSS classes to associate with the date entry for the given dateObject, // for example to indicate a holiday in specified locale. return ""; // String }, _adjustDisplay: function(/*String*/part, /*int*/amount, noSlide){ // summary: This function overrides the base function defined in dijit._Calendar. // It changes the displayed years, months and days depending on the inputs. var child = this._children[this._currentChild]; var month = this.displayMonth = child.adjustDate(this.displayMonth, amount); this._slideTable(child, amount, function(){ child.attr("value", month); }); } }); dojo.declare("dojox.widget._CalendarView", dijit._Widget, { // summary: Base implementation for all view mixins. // All calendar views should extend this widget. headerClass: "", useHeader: true, cloneClass: function(clazz, n, before){ // summary: Clones all nodes with the class 'clazz' in a widget var template = dojo.query(clazz, this.domNode)[0]; if (!before) { for (var i = 0; i < n; i++) { template.parentNode.appendChild(template.cloneNode(true)); } } else { var bNode = dojo.query(clazz, this.domNode)[0]; for (var i = 0; i < n; i++) { template.parentNode.insertBefore(template.cloneNode(true), bNode); } } }, _setText: function(node, text){ // summary: sets the text inside a node while(node.firstChild){ node.removeChild(node.firstChild); } node.appendChild(dojo.doc.createTextNode(text)); }, getHeader: function(){ // summary: Returns the header node of a view. If none exists, // an empty DIV is created and returned. return this.header || (this.header = this.header = dojo.create("span", { "class":this.headerClass })); }, onValueSelected: function(date){ //Stub function called when a date is selected }, adjustDate: function(date, amount){ // summary: Adds or subtracts values from a date. // The unit, e.g. "day", "month" or "year", is // specified in the "datePart" property of the // calendar view mixin. return dojo.date.add(date, this.datePart, amount); }, onDisplay: function(){ // summary: Stub function that can be used to tell a view when it is shown. }, onBeforeDisplay: function(){ // summary: Stub function that can be used to tell a view it is about to be shown. }, onBeforeUnDisplay: function(){ // summary: Stub function that can be used to tell // a view when it is no longer shown. } }); dojo.declare("dojox.widget._CalendarDay", null, { // summary: Mixin for the dojox.widget.Calendar which provides // the standard day-view. A single month is shown at a time. parent: null, constructor: function(){ this._addView(dojox.widget._CalendarDayView); } }); dojo.declare("dojox.widget._CalendarDayView", [dojox.widget._CalendarView, dijit._Templated], { // summary: View class for the dojox.widget.Calendar. // Adds a view showing every day of a single month to the calendar. // This should not be mixed in directly with dojox.widget._CalendarBase. // Instead, use dojox.widget._CalendarDay // templatePath: URL // the path to the template to be used to construct the widget. templatePath: dojo.moduleUrl("dojox.widget","Calendar/CalendarDay.html"), // datePart: String // Specifies how much to increment the displayed date when the user // clicks the array button to increment of decrement the view. datePart: "month", // dayWidth: String // Specifies the type of day name to display. "narrow" causes just one letter to be shown. dayWidth: "narrow", postCreate: function(){ // summary: Constructs the calendar view. this.cloneClass(".dijitCalendarDayLabelTemplate", 6); this.cloneClass(".dijitCalendarDateTemplate", 6); // now make 6 week rows this.cloneClass(".dijitCalendarWeekTemplate", 5); // insert localized day names in the header var dayNames = dojo.date.locale.getNames('days', this.dayWidth, 'standAlone', this.getLang()); var dayOffset = dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang()); // Set the text of the day labels. dojo.query(".dijitCalendarDayLabel", this.domNode).forEach(function(label, i){ this._setText(label, dayNames[(i + dayOffset) % 7]); }, this); }, onDisplay: function(){ if(!this._addedFx) { // Add visual effects to the view, if any has been specified. this._addedFx = true; this.addFx(".dijitCalendarDateTemplate div", this.domNode); } }, _onDayClick: function(e) { // summary: executed when a day value is clicked. var date = new Date(this.attr("value")); var p = e.target.parentNode; var c = "dijitCalendar"; var d = dojo.hasClass(p, c + "PreviousMonth") ? -1 : (dojo.hasClass(p, c + "NextMonth") ? 1 : 0); if (d){date = dojo.date.add(date, "month", d)} date.setDate(e.target._date); // If the day is disabled, ignore it if (this.isDisabledDate(date)) { dojo.stopEvent(e); return; } this.attr('value', date); this.parent._onDateSelected(date); }, _setValueAttr: function(value) { //Change the day values this._populateDays();";s:7:"returns";s:6:"String";s:7:"private";b:1;s:7:"summary";s:0:"";}s:43:"dojox.widget._CalendarDayView._populateDays";a:5:{s:9:"prototype";s:29:"dojox.widget._CalendarDayView";s:4:"type";s:8:"Function";s:6:"source";s:2070:" var month = this.attr("value"); month.setDate(1); var firstDay = month.getDay(); var daysInMonth = dojo.date.getDaysInMonth(month); var daysInPreviousMonth = dojo.date.getDaysInMonth(dojo.date.add(month, "month", -1)); var today = new Date(); var selected = this.attr('value'); var dayOffset = dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang()); if(dayOffset > firstDay){ dayOffset -= 7; } // Iterate through dates in the calendar and fill in date numbers and style info dojo.query(".dijitCalendarDateTemplate", this.domNode).forEach(function(template, i){ i += dayOffset; var date = new Date(month); var number, clazz = "dijitCalendar", adj = 0; if(i < firstDay){ number = daysInPreviousMonth - firstDay + i + 1; adj = -1; clazz += "Previous"; }else if(i >= (firstDay + daysInMonth)){ number = i - firstDay - daysInMonth + 1; adj = 1; clazz += "Next"; }else{ number = i - firstDay + 1; clazz += "Current"; } if(adj){ date = dojo.date.add(date, "month", adj); } date.setDate(number); if(!dojo.date.compare(date, today, "date")){ clazz = "dijitCalendarCurrentDate " + clazz; } if(!dojo.date.compare(date, selected, "date")){ clazz = "dijitCalendarSelectedDate " + clazz; } if(this.isDisabledDate(date, this.getLang())){ clazz = " dijitCalendarDisabledDate " + clazz; } var clazz2 = this.getClassForDate(date, this.getLang()); if(clazz2){ clazz += clazz2 + " " + clazz; } template.className = clazz + "Month dijitCalendarDateTemplate"; template.dijitDateValue = date.valueOf(); var label = dojo.query(".dijitCalendarDateLabel", template)[0]; this._setText(label, date.getDate()); label._date = label.parentNode._date = date.getDate(); }, this); // Fill in localized month name var monthNames = dojo.date.locale.getNames('months', 'wide', 'standAlone', this.getLang()); this._setText(this.monthLabelNode, monthNames[month.getMonth()]); this._setText(this.yearLabelNode, month.getFullYear());";s:7:"summary";s:36:"Fills the days of the current month.";s:7:"private";b:1;}s:38:"dojox.widget._CalendarDayView._addedFx";a:3:{s:8:"instance";s:29:"dojox.widget._CalendarDayView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:31:"dojox.widget._CalendarMonthYear";a:4:{s:4:"type";s:8:"Function";s:7:"summary";s:67:"Adds a dojox.widget._CalendarMonthView view to the calendar widget.";s:6:"source";s:53:" this._addView(dojox.widget._CalendarMonthYearView);";s:9:"classlike";b:1;}s:35:"dojox.widget._CalendarMonthYearView";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarView";}s:4:"call";a:2:{i:0;s:26:"dojox.widget._CalendarView";i:1;s:16:"dijit._Templated";}}s:6:"mixins";a:1:{s:9:"prototype";a:1:{i:0;s:26:"dijit._Templated.prototype";}}s:7:"summary";s:49:"A Calendar view listing the 12 months of the year";s:9:"classlike";b:1;}s:48:"dojox.widget._CalendarMonthYearView.templatePath";a:3:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:3:"URL";s:7:"summary";s:60:"the path to the template to be used to construct the widget.";}s:44:"dojox.widget._CalendarMonthYearView.datePart";a:3:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:6:"String";s:7:"summary";s:124:"Specifies how much to increment the displayed date when the user clicks the array button to increment of decrement the view.";}s:50:"dojox.widget._CalendarMonthYearView.displayedYears";a:2:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:7:"summary";s:0:"";}s:45:"dojox.widget._CalendarMonthYearView.useHeader";a:2:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:7:"summary";s:0:"";}s:46:"dojox.widget._CalendarMonthYearView.postCreate";a:4:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:6:"source";s:1594:" this.cloneClass(".dojoxCal-MY-G-Template", 5, ".dojoxCal-MY-btns"); this.monthContainer = this.yearContainer = this.myContainer; var yClass = "dojoxCalendarYearLabel"; var dClass = "dojoxCalendarDecrease"; var iClass = "dojoxCalendarIncrease"; dojo.query("." + yClass, this.myContainer).forEach(function(node, idx){ var clazz = iClass; switch (idx) { case 0: clazz = dClass; case 1: dojo.removeClass(node, yClass); dojo.addClass(node, clazz); break; } }); // Get the year increment and decrement buttons. this._decBtn = dojo.query('.' + dClass, this.myContainer)[0]; this._incBtn = dojo.query('.' + iClass, this.myContainer)[0]; dojo.query(".dojoxCal-MY-M-Template", this.domNode) .filter(function(item){ return item.cellIndex == 1; }) .addClass("dojoxCal-MY-M-last"); dojo.connect(this, "onBeforeDisplay", dojo.hitch(this, function(){ this._cachedDate = new Date(this.attr("value").getTime()); this._populateYears(this._cachedDate.getFullYear()); this._populateMonths(); this._updateSelectedMonth(); this._updateSelectedYear(); })); dojo.connect(this, "_populateYears", dojo.hitch(this, function(){ this._updateSelectedYear(); })); dojo.connect(this, "_populateMonths", dojo.hitch(this, function(){ this._updateSelectedMonth(); })); this._cachedDate = this.attr("value"); this._populateYears(); this._populateMonths(); // Add visual effects to the view, if any have been mixed in this.addFx(".dojoxCalendarMonthLabel,.dojoxCalendarYearLabel ", this.myContainer);";s:7:"summary";s:19:"Constructs the view";}s:49:"dojox.widget._CalendarMonthYearView._setValueAttr";a:6:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"value";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:43:" this._populateYears(value.getFullYear());";s:7:"private";b:1;s:7:"summary";s:0:"";}s:45:"dojox.widget._CalendarMonthYearView.getHeader";a:4:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:6:"source";s:14:" return null;";s:7:"summary";s:0:"";}s:50:"dojox.widget._CalendarMonthYearView._getMonthNames";a:6:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:6:"format";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:142:" this._monthNames = this._monthNames || dojo.date.locale.getNames('months', format, 'standAlone', this.getLang()); return this._monthNames;";s:7:"summary";s:29:"Returns localized month names";s:7:"private";b:1;}s:51:"dojox.widget._CalendarMonthYearView._populateMonths";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:6:"source";s:1105:" var monthNames = this._getMonthNames('abbr'); dojo.query(".dojoxCalendarMonthLabel", this.monthContainer).forEach(dojo.hitch(this, function(node, cnt){ this._setText(node, monthNames[cnt]); })); var constraints = this.attr('constraints'); if (constraints) { var date = new Date(); date.setFullYear(this._year); var min = -1, max = 12; if (constraints.min) { var minY = constraints.min.getFullYear(); if (minY > this._year) { min = 12; } else if (minY == this._year) { min = constraints.min.getMonth(); } } if (constraints.max) { var maxY = constraints.max.getFullYear(); if (maxY < this._year) { max = -1; } else if (maxY == this._year) { max = constraints.max.getMonth(); } } dojo.query(".dojoxCalendarMonthLabel", this.monthContainer).forEach(dojo.hitch(this, function(node, cnt){ dojo[(cnt < min || cnt > max) ? "addClass" : "removeClass"](node, 'dijitCalendarDisabledDate'); })); } var h = this.getHeader(); if (h) { this._setText(this.getHeader(), this.attr("value").getFullYear()); }";s:7:"summary";s:52:"Populate the month names using the localized values.";s:7:"private";b:1;}s:50:"dojox.widget._CalendarMonthYearView._populateYears";a:6:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"year";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:1219:" var constraints = this.attr('constraints'); var dispYear = year || this.attr("value").getFullYear(); var firstYear = dispYear - Math.floor(this.displayedYears/2); var min = constraints && constraints.min ? constraints.min.getFullYear() : firstYear -10000; firstYear = Math.max(min, firstYear); // summary: Writes the years to display to the view this._displayedYear = dispYear; var yearLabels = dojo.query(".dojoxCalendarYearLabel", this.yearContainer); var max = constraints && constraints.max ? constraints.max.getFullYear() - firstYear : yearLabels.length; var disabledClass = 'dijitCalendarDisabledDate'; yearLabels.forEach(dojo.hitch(this, function(node, cnt){ if (cnt <= max) { this._setText(node, firstYear + cnt); dojo.removeClass(node, disabledClass); } else { dojo.addClass(node, disabledClass); } })); if (this._incBtn) { dojo[max < yearLabels.length ? "addClass" : "removeClass"](this._incBtn, disabledClass); } if (this._decBtn) { dojo[min >= firstYear ? "addClass" : "removeClass"](this._decBtn, disabledClass); } var h = this.getHeader(); if (h) { this._setText(this.getHeader(), firstYear + " - " + (firstYear + 11)); }";s:7:"summary";s:95:"Fills the list of years with a range of 12 numbers, with the current year being the 6th number.";s:7:"private";b:1;}s:55:"dojox.widget._CalendarMonthYearView._updateSelectedYear";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:6:"source";s:240:" this._year = String((this._cachedDate || this.attr("value")).getFullYear()); this._updateSelectedNode(".dojoxCalendarYearLabel", dojo.hitch(this, function(node, idx){ return this._year !== null && node.innerHTML == this._year; }));";s:7:"private";b:1;s:7:"summary";s:0:"";}s:56:"dojox.widget._CalendarMonthYearView._updateSelectedMonth";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:6:"source";s:195:" var month = (this._cachedDate || this.attr("value")).getMonth(); this._month = month; this._updateSelectedNode(".dojoxCalendarMonthLabel", function(node, idx){ return idx == month; });";s:7:"private";b:1;s:7:"summary";s:0:"";}s:55:"dojox.widget._CalendarMonthYearView._updateSelectedNode";a:6:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"query";a:1:{s:4:"type";s:0:"";}s:6:"filter";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:541:" var sel = "dijitCalendarSelectedDate"; dojo.query(query, this.domNode) .forEach(function(node, idx, array) { dojo[filter(node, idx, array) ? "addClass" : "removeClass"](node.parentNode, sel); }); var selMonth = dojo.query('.dojoxCal-MY-M-Template div', this.myContainer).filter(function(node){ return dojo.hasClass(node.parentNode, sel); })[0]; if (!selMonth){return;} var disabled = dojo.hasClass(selMonth, 'dijitCalendarDisabledDate'); dojo[disabled ? 'addClass' : 'removeClass'](this.okBtn, "dijitDisabled");";s:7:"private";b:1;s:7:"summary";s:0:"";}s:43:"dojox.widget._CalendarMonthYearView.onClick";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"evt";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:1017:" var clazz; var _this = this; var sel = "dijitCalendarSelectedDate"; function hc(c) { return dojo.hasClass(evt.target, c); } if (hc('dijitCalendarDisabledDate')) { dojo.stopEvent(evt); return; } // summary: Handles clicks on month names if(hc("dojoxCalendarMonthLabel")){ clazz = "dojoxCal-MY-M-Template"; this._month = evt.target.parentNode.cellIndex + (evt.target.parentNode.parentNode.rowIndex * 2); this._cachedDate.setMonth(this._month); this._updateSelectedMonth(); } else if (hc( "dojoxCalendarYearLabel")) { clazz = "dojoxCal-MY-Y-Template"; this._year = Number(evt.target.innerHTML); this._cachedDate.setYear(this._year); this._populateMonths(); this._updateSelectedYear(); } else if(hc("dojoxCalendarDecrease")) { this._populateYears(this._displayedYear - 10); return } else if(hc("dojoxCalendarIncrease")) { this._populateYears(this._displayedYear + 10); return } else { return true; } dojo.stopEvent(evt); return false;";s:7:"summary";s:0:"";}s:40:"dojox.widget._CalendarMonthYearView.onOk";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"evt";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:153:" dojo.stopEvent(evt); if (dojo.hasClass(this.okBtn, "dijitDisabled")) { return false; } this.onValueSelected(this._cachedDate); return false;";s:7:"summary";s:0:"";}s:44:"dojox.widget._CalendarMonthYearView.onCancel";a:5:{s:9:"prototype";s:35:"dojox.widget._CalendarMonthYearView";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"evt";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:82:" dojo.stopEvent(evt); this.onValueSelected(this.attr("value")); return false;";s:7:"summary";s:0:"";}s:50:"dojox.widget._CalendarMonthYearView.monthContainer";a:2:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"summary";s:0:"";}s:43:"dojox.widget._CalendarMonthYearView._decBtn";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:43:"dojox.widget._CalendarMonthYearView._incBtn";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:47:"dojox.widget._CalendarMonthYearView._cachedDate";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:47:"dojox.widget._CalendarMonthYearView._monthNames";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:50:"dojox.widget._CalendarMonthYearView._displayedYear";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:41:"dojox.widget._CalendarMonthYearView._year";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:42:"dojox.widget._CalendarMonthYearView._month";a:3:{s:8:"instance";s:35:"dojox.widget._CalendarMonthYearView";s:7:"private";b:1;s:7:"summary";s:0:"";}s:26:"dojox.widget.Calendar2Pane";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarBase";}s:4:"call";a:3:{i:0;s:26:"dojox.widget._CalendarBase";i:1;s:25:"dojox.widget._CalendarDay";i:2;s:31:"dojox.widget._CalendarMonthYear";}}s:6:"mixins";a:1:{s:9:"prototype";a:2:{i:0;s:35:"dojox.widget._CalendarDay.prototype";i:1;s:41:"dojox.widget._CalendarMonthYear.prototype";}}s:7:"summary";s:72:"A Calendar with two panes, the second one containing both month and year";s:9:"classlike";b:1;}s:21:"dojox.widget.Calendar";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarBase";}s:4:"call";a:3:{i:0;s:26:"dojox.widget._CalendarBase";i:1;s:25:"dojox.widget._CalendarDay";i:2;s:31:"dojox.widget._CalendarMonthYear";}}s:6:"mixins";a:1:{s:9:"prototype";a:2:{i:0;s:35:"dojox.widget._CalendarDay.prototype";i:1;s:41:"dojox.widget._CalendarMonthYear.prototype";}}s:7:"summary";s:92:"The standard Calendar. It includes day and month/year views. No visual effects are included.";s:9:"classlike";b:1;}s:26:"dojox.widget.DailyCalendar";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarBase";}s:4:"call";a:2:{i:0;s:26:"dojox.widget._CalendarBase";i:1;s:25:"dojox.widget._CalendarDay";}}s:6:"mixins";a:1:{s:9:"prototype";a:1:{i:0;s:35:"dojox.widget._CalendarDay.prototype";}}s:7:"summary";s:34:"A calendar with only a daily view.";s:9:"classlike";b:1;}s:35:"dojox.widget.MonthAndYearlyCalendar";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:26:"dojox.widget._CalendarBase";}s:4:"call";a:2:{i:0;s:26:"dojox.widget._CalendarBase";i:1;s:31:"dojox.widget._CalendarMonthYear";}}s:6:"mixins";a:1:{s:9:"prototype";a:1:{i:0;s:41:"dojox.widget._CalendarMonthYear.prototype";}}s:7:"summary";s:34:"A calendar with only a daily view.";s:9:"classlike";b:1;}s:12:"dojox.widget";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}