// Name: Calendar.CalendarBehavior.debug.js
// Assembly: AjaxControlToolkit
// Version: 4.1.51116.0
// FileVersion: 4.1.51116
// (c) 2010 CodePlex Foundation
///
///
///
///
///
///
///
///
///
///
(function() {
var scriptName = "ExtendedCalendar";
function execute() {
Type.registerNamespace("Sys.Extended.UI");
Sys.Extended.UI.CalendarBehavior = function(element) {
///
/// A behavior that attaches a calendar date selector to a textbox
///
/// The element to attach to
Sys.Extended.UI.CalendarBehavior.initializeBase(this, [element]);
this._textbox = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(element);
this._format = "d";
this._todaysDateFormat = "MMMM d, yyyy";
this._daysModeTitleFormat = "MMMM, yyyy";
this._cssClass = "ajax__calendar";
this._enabled = true;
this._animated = true;
this._buttonID = null;
this._layoutRequested = 0;
this._layoutSuspended = false;
this._button = null;
this._popupMouseDown = false;
this._selectedDate = null;
this._startDate = null;
this._endDate = null;
this._visibleDate = null;
this._todaysDate = null;
this._firstDayOfWeek = Sys.Extended.UI.FirstDayOfWeek.Default;
this._firstPopUp = true;
this._container = null;
this._popupDiv = null;
this._header = null;
this._prevArrow = null;
this._nextArrow = null;
this._title = null;
this._body = null;
this._today = null;
this._days = null;
this._daysTable = null;
this._daysTableHeader = null;
this._daysTableHeaderRow = null;
this._daysBody = null;
this._months = null;
this._monthsTable = null;
this._monthsBody = null;
this._years = null;
this._yearsTable = null;
this._yearsBody = null;
this._popupPosition = Sys.Extended.UI.CalendarPosition.BottomLeft;
this._defaultView = Sys.Extended.UI.CalendarDefaultView.Days;
this._popupBehavior = null;
this._modeChangeAnimation = null;
this._modeChangeMoveTopOrLeftAnimation = null;
this._modeChangeMoveBottomOrRightAnimation = null;
this._mode = "days";
this._selectedDateChanging = false;
this._isOpen = false;
this._isAnimating = false;
this._clearTime = false;
this._width = 170;
this._height = 139;
this._modes = { "days": null, "months": null, "years": null };
this._modeOrder = { "days": 0, "months": 1, "years": 2 };
this._blur = new Sys.Extended.UI.DeferredOperation(1, this, this.blur);
this._button$delegates = {
click: Function.createDelegate(this, this._button_onclick),
keypress: Function.createDelegate(this, this._button_onkeypress),
blur: Function.createDelegate(this, this._button_onblur)
}
this._element$delegates = {
change: Function.createDelegate(this, this._element_onchange),
keypress: Function.createDelegate(this, this._element_onkeypress),
click: Function.createDelegate(this, this._element_onclick),
focus: Function.createDelegate(this, this._element_onfocus),
blur: Function.createDelegate(this, this._element_onblur)
}
this._popup$delegates = {
mousedown: Function.createDelegate(this, this._popup_onmousedown),
mouseup: Function.createDelegate(this, this._popup_onmouseup),
drag: Function.createDelegate(this, this._popup_onevent),
dragstart: Function.createDelegate(this, this._popup_onevent)
}
this._cell$delegates = {
mouseover: Function.createDelegate(this, this._cell_onmouseover),
mouseout: Function.createDelegate(this, this._cell_onmouseout),
click: Function.createDelegate(this, this._cell_onclick)
}
}
Sys.Extended.UI.CalendarBehavior.prototype = {
get_clearTime: function() {
///
/// Whether time should be cleared in edited date/time
///
///
return this._clearTime;
},
set_clearTime: function(value) {
if (this._clearTime != value) {
this._clearTime = value;
this.raisePropertyChanged("_clearTime");
}
},
get_animated: function() {
///
/// Whether changing modes is animated
///
///
return this._animated;
},
set_animated: function(value) {
if (this._animated != value) {
this._animated = value;
this.raisePropertyChanged("animated");
}
},
get_enabled: function() {
///
/// Whether this behavior is available for the current element
///
return this._enabled;
},
set_enabled: function(value) {
if (this._enabled != value) {
this._enabled = value;
this.raisePropertyChanged("enabled");
}
},
get_button: function() {
///
/// The button to use to show the calendar (optional)
///
return this._button;
},
set_button: function(value) {
if (this._button != value) {
if (this._button && this.get_isInitialized()) {
$common.removeHandlers(this._button, this._button$delegates);
}
this._button = value;
if (this._button && this.get_isInitialized()) {
$addHandlers(this._button, this._button$delegates);
}
this.raisePropertyChanged("button");
}
},
get_popupPosition: function() {
///
/// Where the popup should be positioned relative to the target control.
/// Can be BottomLeft (Default), BottomRight, TopLeft, TopRight.
///
return this._popupPosition;
},
set_popupPosition: function(value) {
if (this._popupPosition != value) {
this._popupPosition = value;
this.raisePropertyChanged('popupPosition');
}
},
set_startDate: function(value) {
///
/// The property of the start date for range
///
if (this._startDate != value) {
this._startDate = new Date(value);
this.raisePropertyChanged('startDate');
}
},
get_startDate: function() {
///
/// The property of the start date for range
///
return this._startDate;
},
set_endDate: function(value) {
///
/// The property of the end date for range
///
if (this._endDate != value) {
this._endDate = new Date(value);
this.raisePropertyChanged('_endDate');
}
},
get_endDate: function() {
///
/// The property of the end date for range
///
return this._endDate;
},
get_format: function() {
///
/// The format to use for the date value
///
return this._format;
},
set_format: function(value) {
if (this._format != value) {
this._format = value;
this.raisePropertyChanged("format");
}
},
get_todaysDateFormat: function() {
///
/// The format to use for the todays date
///
return this._todaysDateFormat;
},
set_todaysDateFormat: function(value) {
if (this._todaysDateFormat != value) {
this._todaysDateFormat = value;
this.raisePropertyChanged("todaysDateFormat");
}
},
get_daysModeTitleFormat: function() {
///
/// The format to use for the title when in days mode
///
return this._daysModeTitleFormat;
},
set_daysModeTitleFormat: function(value) {
if (this._daysModeTitleFormat != value) {
this._daysModeTitleFormat = value;
this.raisePropertyChanged("daysModeTitleFormat");
}
},
get_selectedDate: function() {
///
/// The date value represented by the text box
///
if (this._selectedDate == null) {
var value = this._textbox.get_Value();
if (value) {
value = this._parseTextValue(value);
if (value) {
this._selectedDate = value;
}
}
}
return this._selectedDate;
},
set_selectedDate: function(value) {
if (value && (String.isInstanceOfType(value)) && (value.length != 0)) {
value = new Date(value);
}
if (this._selectedDate != value) {
this._selectedDate = value;
this._selectedDateChanging = true;
var text = "";
if (value) {
text = this._convertToLocal(value).localeFormat(this._format);
if (!this._clearTime) {
var tbvalue = this._textbox.get_Value();
if (tbvalue) {
tbvalue = this._parseTextValue(tbvalue);
}
if (tbvalue) {
if (value != tbvalue.getDateOnly()) {
value.setUTCHours(tbvalue.getUTCHours());
value.setUTCMinutes(tbvalue.getUTCMinutes());
value.setUTCMilliseconds(tbvalue.getUTCMilliseconds());
text = this._convertToLocal(value).localeFormat(this._format);
}
}
}
}
if (text != this._textbox.get_Value()) {
this._textbox.set_Value(text);
this._fireChanged();
}
this._selectedDateChanging = false;
this.invalidate();
this.raisePropertyChanged("selectedDate");
}
},
get_defaultView: function() {
///
/// The default view of the calendar when it first pops up.
///
return this._defaultView;
},
set_defaultView: function(value) {
if (this._defaultView != value) {
this._defaultView = value;
this.raisePropertyChanged("defaultView");
}
},
get_visibleDate: function() {
///
/// The date currently visible in the calendar
///
///
return this._visibleDate;
},
set_visibleDate: function(value) {
if (value && (String.isInstanceOfType(value)) && (value.length != 0)) {
value = new Date(value);
}
if (this._visibleDate != value) {
this._switchMonth(value, !this._isOpen);
this.raisePropertyChanged("visibleDate");
}
},
get_isOpen: function() {
///
/// Whether the calendar is open
///
return this._isOpen;
},
get_todaysDate: function() {
///
/// The date to use for "Today"
///
if (this._todaysDate != null) {
return this._todaysDate;
}
return new Date();
},
set_todaysDate: function(value) {
if (this._todaysDate != value) {
this._todaysDate = value;
this.invalidate();
this.raisePropertyChanged("todaysDate");
}
},
get_firstDayOfWeek: function() {
///
/// The day of the week to appear as the first day in the calendar
///
return this._firstDayOfWeek;
},
set_firstDayOfWeek: function(value) {
if (this._firstDayOfWeek != value) {
this._firstDayOfWeek = value;
this.invalidate();
this.raisePropertyChanged("firstDayOfWeek");
}
},
get_cssClass: function() {
///
/// The CSS class selector to use to change the calendar's appearance
///
return this._cssClass;
},
set_cssClass: function(value) {
if (this._cssClass != value) {
if (this._cssClass && this.get_isInitialized()) {
Sys.UI.DomElement.removeCssClass(this._container, this._cssClass);
}
this._cssClass = value;
if (this._cssClass && this.get_isInitialized()) {
Sys.UI.DomElement.addCssClass(this._container, this._cssClass);
}
this.raisePropertyChanged("cssClass");
}
},
get_todayButton: function() {
///
/// The button used to select todays date
///
return this._today;
},
get_dayCell: function(row, col) {
///
/// Gets the day cell at the specified row or column
///
if (this._daysBody) {
return this._daysBody.rows[row].cells[col].firstChild;
}
return null;
},
add_showing: function(handler) {
///
/// Adds an event handler for the showiwng
event.
///
///
/// The handler to add to the event.
///
///
this.get_events().addHandler("showing", handler);
},
remove_showing: function(handler) {
///
/// Removes an event handler for the showing
event.
///
///
/// The handler to remove from the event.
///
///
this.get_events().removeHandler("showing", handler);
},
raiseShowing: function(eventArgs) {
///
/// Raise the showing event
///
///
/// Event arguments for the showing event
///
///
var handler = this.get_events().getHandler('showing');
if (handler) {
handler(this, eventArgs);
}
},
add_shown: function(handler) {
///
/// Adds an event handler for the shown
event.
///
///
/// The handler to add to the event.
///
///
this.get_events().addHandler("shown", handler);
},
remove_shown: function(handler) {
///
/// Removes an event handler for the shown
event.
///
///
/// The handler to remove from the event.
///
///
this.get_events().removeHandler("shown", handler);
},
raiseShown: function() {
///
/// Raise the shown
event
///
///
var handlers = this.get_events().getHandler("shown");
if (handlers) {
handlers(this, Sys.EventArgs.Empty);
}
},
add_hiding: function(handler) {
///
/// Adds an event handler for the hiding
event.
///
///
/// The handler to add to the event.
///
///
this.get_events().addHandler("hiding", handler);
},
remove_hiding: function(handler) {
///
/// Removes an event handler for the hiding
event.
///
///
/// The handler to remove from the event.
///
///
this.get_events().removeHandler("hiding", handler);
},
raiseHiding: function(eventArgs) {
///
/// Raise the hiding event
///
///
/// Event arguments for the hiding event
///
///
var handler = this.get_events().getHandler('hiding');
if (handler) {
handler(this, eventArgs);
}
},
add_hidden: function(handler) {
///
/// Adds an event handler for the hidden
event.
///
///
/// The handler to add to the event.
///
///
this.get_events().addHandler("hidden", handler);
},
remove_hidden: function(handler) {
///
/// Removes an event handler for the hidden
event.
///
///
/// The handler to remove from the event.
///
///
this.get_events().removeHandler("hidden", handler);
},
raiseHidden: function() {
///
/// Raise the hidden
event
///
///
var handlers = this.get_events().getHandler("hidden");
if (handlers) {
handlers(this, Sys.EventArgs.Empty);
}
},
add_dateSelectionChanged: function(handler) {
///
/// Adds an event handler for the dateSelectionChanged
event.
///
///
/// The handler to add to the event.
///
///
this.get_events().addHandler("dateSelectionChanged", handler);
},
remove_dateSelectionChanged: function(handler) {
///
/// Removes an event handler for the dateSelectionChanged
event.
///
///
/// The handler to remove from the event.
///
///
this.get_events().removeHandler("dateSelectionChanged", handler);
},
raiseDateSelectionChanged: function() {
///
/// Raise the dateSelectionChanged
event
///
///
var handlers = this.get_events().getHandler("dateSelectionChanged");
if (handlers) {
handlers(this, Sys.EventArgs.Empty);
}
},
initialize: function() {
///
/// Initializes the components and parameters for this behavior
///
Sys.Extended.UI.CalendarBehavior.callBaseMethod(this, "initialize");
var elt = this.get_element();
$addHandlers(elt, this._element$delegates);
if (this._button) {
$addHandlers(this._button, this._button$delegates);
}
this._modeChangeMoveTopOrLeftAnimation = new Sys.Extended.UI.Animation.LengthAnimation(null, null, null, "style", null, 0, 0, "px");
this._modeChangeMoveBottomOrRightAnimation = new Sys.Extended.UI.Animation.LengthAnimation(null, null, null, "style", null, 0, 0, "px");
this._modeChangeAnimation = new Sys.Extended.UI.Animation.ParallelAnimation(null, .25, null, [this._modeChangeMoveTopOrLeftAnimation, this._modeChangeMoveBottomOrRightAnimation]);
var value = this.get_selectedDate();
if (value) {
this.set_selectedDate(value);
}
},
dispose: function() {
///
/// Disposes this behavior's resources
///
if (this._popupBehavior) {
this._popupBehavior.dispose();
this._popupBehavior = null;
}
this._modes = null;
this._modeOrder = null;
if (this._modeChangeMoveTopOrLeftAnimation) {
this._modeChangeMoveTopOrLeftAnimation.dispose();
this._modeChangeMoveTopOrLeftAnimation = null;
}
if (this._modeChangeMoveBottomOrRightAnimation) {
this._modeChangeMoveBottomOrRightAnimation.dispose();
this._modeChangeMoveBottomOrRightAnimation = null;
}
if (this._modeChangeAnimation) {
this._modeChangeAnimation.dispose();
this._modeChangeAnimation = null;
}
if (this._container) {
if (this._container.parentNode) { // added this check before calling removeChild WI: 8486
this._container.parentNode.removeChild(this._container);
}
this._container = null;
}
if (this._popupDiv) {
$common.removeHandlers(this._popupDiv, this._popup$delegates);
this._popupDiv = null;
}
if (this._prevArrow) {
$common.removeHandlers(this._prevArrow, this._cell$delegates);
this._prevArrow = null;
}
if (this._nextArrow) {
$common.removeHandlers(this._nextArrow, this._cell$delegates);
this._nextArrow = null;
}
if (this._title) {
$common.removeHandlers(this._title, this._cell$delegates);
this._title = null;
}
if (this._today) {
$common.removeHandlers(this._today, this._cell$delegates);
this._today = null;
}
if (this._button) {
$common.removeHandlers(this._button, this._button$delegates);
this._button = null;
}
if (this._daysBody) {
for (var i = 0; i < this._daysBody.rows.length; i++) {
var row = this._daysBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
$common.removeHandlers(row.cells[j].firstChild, this._cell$delegates);
}
}
this._daysBody = null;
}
if (this._monthsBody) {
for (var i = 0; i < this._monthsBody.rows.length; i++) {
var row = this._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
$common.removeHandlers(row.cells[j].firstChild, this._cell$delegates);
}
}
this._monthsBody = null;
}
if (this._yearsBody) {
for (var i = 0; i < this._yearsBody.rows.length; i++) {
var row = this._yearsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
$common.removeHandlers(row.cells[j].firstChild, this._cell$delegates);
}
}
this._yearsBody = null;
}
var elt = this.get_element();
$common.removeHandlers(elt, this._element$delegates);
Sys.Extended.UI.CalendarBehavior.callBaseMethod(this, "dispose");
},
show: function() {
///
/// Shows the calendar
///
this._ensureCalendar();
if (!this._isOpen) {
var eventArgs = new Sys.CancelEventArgs();
this.raiseShowing(eventArgs);
if (eventArgs.get_cancel()) {
return;
}
this._isOpen = true;
this._popupBehavior.show();
if (this._firstPopUp) {
this._switchMonth(null, true);
switch (this._defaultView) {
case Sys.Extended.UI.CalendarDefaultView.Months:
this._switchMode("months", true);
break;
case Sys.Extended.UI.CalendarDefaultView.Years:
this._switchMode("years", true);
break;
}
this._firstPopUp = false;
}
this.raiseShown();
}
},
hide: function() {
///
/// Hides the calendar
///
if (this._isOpen) {
var eventArgs = new Sys.CancelEventArgs();
this.raiseHiding(eventArgs);
if (eventArgs.get_cancel()) {
return;
}
if (this._container) {
this._popupBehavior.hide();
}
this._isOpen = false;
this.raiseHidden();
this._popupMouseDown = false;
}
},
focus: function() {
if (this._button) {
this._button.focus();
} else {
this.get_element().focus();
}
},
blur: function(force) {
if (!force && Sys.Browser.agent === Sys.Browser.Opera) {
this._blur.post(true);
} else {
if (!this._popupMouseDown) {
this.hide();
}
this._popupMouseDown = false;
}
},
suspendLayout: function() {
///
/// Suspends layout of the behavior while setting properties
///
this._layoutSuspended++;
},
resumeLayout: function() {
///
/// Resumes layout of the behavior and performs any pending layout requests
///
this._layoutSuspended--;
if (this._layoutSuspended <= 0) {
this._layoutSuspended = 0;
if (this._layoutRequested) {
this._performLayout();
}
}
},
invalidate: function() {
///
/// Performs layout of the behavior unless layout is suspended
///
if (this._layoutSuspended > 0) {
this._layoutRequested = true;
} else {
this._performLayout();
}
},
_buildCalendar: function() {
///
/// Builds the calendar's layout
///
var elt = this.get_element();
var id = this.get_id();
this._container = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: id + "_container" },
cssClasses: [this._cssClass],
visible: false
}, elt.parentNode);
this._popupDiv = $common.createElementFromTemplate({
nodeName: "div",
events: this._popup$delegates,
properties: {
id: id + "_popupDiv"
},
cssClasses: ["ajax__calendar_container"]
}, this._container);
},
_buildHeader: function() {
///
/// Builds the header for the calendar
///
var id = this.get_id();
this._header = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: id + "_header" },
cssClasses: ["ajax__calendar_header"]
}, this._popupDiv);
var prevArrowWrapper = $common.createElementFromTemplate({ nodeName: "div" }, this._header);
this._prevArrow = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: id + "_prevArrow",
mode: "prev"
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_prev"]
}, prevArrowWrapper);
var nextArrowWrapper = $common.createElementFromTemplate({ nodeName: "div" }, this._header);
this._nextArrow = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: id + "_nextArrow",
mode: "next"
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_next"]
}, nextArrowWrapper);
var titleWrapper = $common.createElementFromTemplate({ nodeName: "div" }, this._header);
this._title = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: id + "_title",
mode: "title"
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_title"]
}, titleWrapper);
},
_buildBody: function() {
///
/// Builds the body region for the calendar
///
this._body = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: this.get_id() + "_body" },
cssClasses: ["ajax__calendar_body"]
}, this._popupDiv);
this._buildDays();
this._buildMonths();
this._buildYears();
},
_buildFooter: function() {
///
/// Builds the footer for the calendar
///
var todayWrapper = $common.createElementFromTemplate({ nodeName: "div" }, this._popupDiv);
this._today = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: this.get_id() + "_today",
mode: "today"
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_footer", "ajax__calendar_today"]
}, todayWrapper);
},
_buildDays: function() {
///
/// Builds a "days of the month" view for the calendar
///
var dtf = Sys.CultureInfo.CurrentCulture.dateTimeFormat;
var id = this.get_id();
this._days = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: id + "_days" },
cssClasses: ["ajax__calendar_days"]
}, this._body);
this._modes["days"] = this._days;
this._daysTable = $common.createElementFromTemplate({
nodeName: "table",
properties: {
id: id + "_daysTable",
cellPadding: 0,
cellSpacing: 0,
border: 0,
style: { margin: "auto" }
}
}, this._days);
this._daysTableHeader = $common.createElementFromTemplate({ nodeName: "thead", properties: { id: id + "_daysTableHeader"} }, this._daysTable);
this._daysTableHeaderRow = $common.createElementFromTemplate({ nodeName: "tr", properties: { id: id + "_daysTableHeaderRow"} }, this._daysTableHeader);
for (var i = 0; i < 7; i++) {
var dayCell = $common.createElementFromTemplate({ nodeName: "td" }, this._daysTableHeaderRow);
var dayDiv = $common.createElementFromTemplate({
nodeName: "div",
cssClasses: ["ajax__calendar_dayname"]
}, dayCell);
}
this._daysBody = $common.createElementFromTemplate({ nodeName: "tbody", properties: { id: id + "_daysBody"} }, this._daysTable);
for (var i = 0; i < 6; i++) {
var daysRow = $common.createElementFromTemplate({ nodeName: "tr" }, this._daysBody);
for (var j = 0; j < 7; j++) {
var dayCell = $common.createElementFromTemplate({ nodeName: "td" }, daysRow);
var dayDiv = $common.createElementFromTemplate({
nodeName: "div",
properties: {
mode: "day",
id: id + "_day_" + i + "_" + j,
innerHTML: " "
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_day"]
}, dayCell);
}
}
},
_buildMonths: function() {
///
/// Builds a "months of the year" view for the calendar
///
var dtf = Sys.CultureInfo.CurrentCulture.dateTimeFormat;
var id = this.get_id();
this._months = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: id + "_months" },
cssClasses: ["ajax__calendar_months"],
visible: false
}, this._body);
this._modes["months"] = this._months;
this._monthsTable = $common.createElementFromTemplate({
nodeName: "table",
properties: {
id: id + "_monthsTable",
cellPadding: 0,
cellSpacing: 0,
border: 0,
style: { margin: "auto" }
}
}, this._months);
this._monthsBody = $common.createElementFromTemplate({ nodeName: "tbody", properties: { id: id + "_monthsBody"} }, this._monthsTable);
for (var i = 0; i < 3; i++) {
var monthsRow = $common.createElementFromTemplate({ nodeName: "tr" }, this._monthsBody);
for (var j = 0; j < 4; j++) {
var monthCell = $common.createElementFromTemplate({ nodeName: "td" }, monthsRow);
var monthDiv = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: id + "_month_" + i + "_" + j,
mode: "month",
month: (i * 4) + j,
innerHTML: "
" + dtf.AbbreviatedMonthNames[(i * 4) + j]
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_month"]
}, monthCell);
}
}
},
_buildYears: function() {
///
/// Builds a "years in this decade" view for the calendar
///
var id = this.get_id();
this._years = $common.createElementFromTemplate({
nodeName: "div",
properties: { id: id + "_years" },
cssClasses: ["ajax__calendar_years"],
visible: false
}, this._body);
this._modes["years"] = this._years;
this._yearsTable = $common.createElementFromTemplate({
nodeName: "table",
properties: {
id: id + "_yearsTable",
cellPadding: 0,
cellSpacing: 0,
border: 0,
style: { margin: "auto" }
}
}, this._years);
this._yearsBody = $common.createElementFromTemplate({ nodeName: "tbody", properties: { id: id + "_yearsBody"} }, this._yearsTable);
for (var i = 0; i < 3; i++) {
var yearsRow = $common.createElementFromTemplate({ nodeName: "tr" }, this._yearsBody);
for (var j = 0; j < 4; j++) {
var yearCell = $common.createElementFromTemplate({ nodeName: "td" }, yearsRow);
var yearDiv = $common.createElementFromTemplate({
nodeName: "div",
properties: {
id: id + "_year_" + i + "_" + j,
mode: "year",
year: ((i * 4) + j) - 1
},
events: this._cell$delegates,
cssClasses: ["ajax__calendar_year"]
}, yearCell);
}
}
},
_isInDateRange: function(date, part) {
switch (part) {
case "d":
if ((this._startDate) && (this._getDateOnly(date) < this._getDateOnly(this._startDate))) { return false; }
if ((this._endDate) && (this._getDateOnly(date) > this._getDateOnly(this._endDate))) { return false; }
break;
case "M":
if ((this._startDate) && (this._getMonthOnly(date) < this._getMonthOnly(this._startDate))) { return false; }
if ((this._endDate) && (this._getMonthOnly(date) > this._getMonthOnly(this._endDate))) { return false; }
break;
case "y":
if ((this._startDate) && (date.getUTCFullYear() < this._startDate.getUTCFullYear())) { return false; }
if ((this._endDate) && (date.getUTCFullYear() > this._endDate.getUTCFullYear())) { return false; }
break;
}
return true;
},
_getDateOnly: function(date) {
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
},
_getMonthOnly: function(date) {
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));
},
_convertToUTC: function(value) {
/// Converts a local date such as 1/1/2007 into 1/1/2007 GMT
/// without adjusting for time zone
if (value) {
value = new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds()));
}
return value;
},
_convertToLocal: function(value) {
/// Converts a UTC date such as 1/1/2007 GMT into 1/1/2007 without adjusting for time zone
/// The date to convert
var result = new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());
if (result.getDate() != value.getUTCDate()) {
result = new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours() + 1, value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());
}
return result;
},
_performLayout: function() {
///
/// Updates the various views of the calendar to match the current selected and visible dates
///
var elt = this.get_element();
if (!elt) return;
if (!this.get_isInitialized()) return;
if (!this._isOpen) return;
var dtf = Sys.CultureInfo.CurrentCulture.dateTimeFormat;
var selectedDate = this.get_selectedDate();
var visibleDate = this._getEffectiveVisibleDate();
var todaysDate = this.get_todaysDate();
switch (this._mode) {
case "days":
var firstDayOfWeek = this._getFirstDayOfWeek();
var daysToBacktrack = visibleDate.getUTCDay() - firstDayOfWeek;
if (daysToBacktrack <= 0)
daysToBacktrack += 7;
var startDate = new Date(visibleDate);
startDate.setUTCDate(startDate.getUTCDate() - daysToBacktrack);
var currentDate = new Date(startDate);
for (var i = 0; i < 7; i++) {
var dayCell = this._daysTableHeaderRow.cells[i].firstChild;
if (dayCell.firstChild) {
dayCell.removeChild(dayCell.firstChild);
}
dayCell.appendChild(document.createTextNode(dtf.ShortestDayNames[(i + firstDayOfWeek) % 7]));
}
for (var week = 0; week < 6; week++) {
var weekRow = this._daysBody.rows[week];
for (var dayOfWeek = 0; dayOfWeek < 7; dayOfWeek++) {
var dayCell = weekRow.cells[dayOfWeek].firstChild;
if (dayCell.firstChild) {
dayCell.removeChild(dayCell.firstChild);
}
dayCell.appendChild(document.createTextNode(currentDate.getUTCDate()));
dayCell.title = this._convertToLocal(currentDate).localeFormat("D");
dayCell.date = currentDate;
$common.removeCssClasses(dayCell.parentNode, ["ajax__calendar_other", "ajax__calendar_active", "ajax__calendar_today"]);
if (!this._isInDateRange(currentDate, "d")) {
$common.removeCssClasses(dayCell.parentNode, ["ajax__calendar_other", "ajax__calendar_active"]);
Sys.UI.DomElement.addCssClass(dayCell.parentNode, "ajax__calendar_invalid");
} else {
$common.removeCssClasses(dayCell.parentNode, ["ajax__calendar_invalid", "ajax__calendar_other", "ajax__calendar_active", ""]);
Sys.UI.DomElement.addCssClass(dayCell.parentNode, this._getCssClass(dayCell.date, 'd'));
}
currentDate = new Date(currentDate);
currentDate.setUTCDate(currentDate.getUTCDate() + 1);
}
}
this._prevArrow.date = new Date(Date.UTC(visibleDate.getUTCFullYear(), visibleDate.getUTCMonth() - 1, 1));
this._nextArrow.date = new Date(Date.UTC(visibleDate.getUTCFullYear(), visibleDate.getUTCMonth() + 1, 1));
if (this._title.firstChild) {
this._title.removeChild(this._title.firstChild);
}
this._title.appendChild(document.createTextNode(this._convertToLocal(visibleDate).localeFormat(this.get_daysModeTitleFormat())));
this._title.date = visibleDate;
break;
case "months":
for (var i = 0; i < this._monthsBody.rows.length; i++) {
var row = this._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
var cell = row.cells[j].firstChild;
cell.date = new Date(Date.UTC(visibleDate.getUTCFullYear(), cell.month, 1));
cell.title = this._convertToLocal(cell.date).localeFormat("Y");
if (!this._isInDateRange(cell.date, "M")) {
$common.removeCssClasses(cell.parentNode, ["ajax__calendar_other", "ajax__calendar_active"]);
Sys.UI.DomElement.addCssClass(cell.parentNode, "ajax__calendar_invalid");
}
else {
$common.removeCssClasses(cell.parentNode, ["ajax__calendar_invalid", "ajax__calendar_other", "ajax__calendar_active"]);
Sys.UI.DomElement.addCssClass(cell.parentNode, this._getCssClass(cell.date, 'M'));
}
}
}
if (this._title.firstChild) {
this._title.removeChild(this._title.firstChild);
}
this._title.appendChild(document.createTextNode(this._convertToLocal(visibleDate).localeFormat("yyyy")));
this._title.date = visibleDate;
this._prevArrow.date = new Date(Date.UTC(visibleDate.getUTCFullYear() - 1, 0, 1));
this._nextArrow.date = new Date(Date.UTC(visibleDate.getUTCFullYear() + 1, 0, 1));
break;
case "years":
var minYear = (Math.floor(visibleDate.getUTCFullYear() / 10) * 10);
for (var i = 0; i < this._yearsBody.rows.length; i++) {
var row = this._yearsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
var cell = row.cells[j].firstChild;
cell.date = new Date(Date.UTC(minYear + cell.year, 0, 1));
if (cell.firstChild) {
cell.removeChild(cell.lastChild);
} else {
cell.appendChild(document.createElement("br"));
}
cell.appendChild(document.createTextNode(minYear + cell.year));
if (!this._isInDateRange(cell.date, "y")) {
$common.removeCssClasses(cell.parentNode, ["ajax__calendar_other", "ajax__calendar_active"]);
Sys.UI.DomElement.addCssClass(cell.parentNode, "ajax__calendar_invalid");
}
else {
$common.removeCssClasses(cell.parentNode, ["ajax__calendar_invalid", "ajax__calendar_other", "ajax__calendar_active"]);
Sys.UI.DomElement.addCssClass(cell.parentNode, this._getCssClass(cell.date, 'y'));
}
}
}
if (this._title.firstChild) {
this._title.removeChild(this._title.firstChild);
}
this._title.appendChild(document.createTextNode(minYear.toString() + "-" + (minYear + 9).toString()));
this._title.date = visibleDate;
this._prevArrow.date = new Date(Date.UTC(minYear - 10, 0, 1));
this._nextArrow.date = new Date(Date.UTC(minYear + 10, 0, 1));
break;
}
if (this._today.firstChild) {
this._today.removeChild(this._today.firstChild);
}
$common.removeCssClasses(this._today.parentNode, ["ajax__calendar_invalid"]);
this._today.appendChild(document.createTextNode(String.format(Sys.Extended.UI.Resources.Calendar_Today, todaysDate.localeFormat(this.get_todaysDateFormat()))));
if (!this._isInDateRange(todaysDate, "d")) {
Sys.UI.DomElement.addCssClass(this._today.parentNode, "ajax__calendar_invalid");
}
this._today.date = this._convertToUTC(todaysDate);
},
_ensureCalendar: function() {
if (!this._container) {
var elt = this.get_element();
this._buildCalendar();
this._buildHeader();
this._buildBody();
this._buildFooter();
this._popupBehavior = new $create(Sys.Extended.UI.PopupBehavior, { parentElement: elt }, {}, {}, this._container);
if (this._popupPosition == Sys.Extended.UI.CalendarPosition.TopLeft) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopLeft);
} else if (this._popupPosition == Sys.Extended.UI.CalendarPosition.TopRight) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopRight);
} else if (this._popupPosition == Sys.Extended.UI.CalendarPosition.BottomRight) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomRight);
} else if (this._popupPosition == Sys.Extended.UI.CalendarPosition.Right) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Right);
} else if (this._popupPosition == Sys.Extended.UI.CalendarPosition.Left) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Left);
} else {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomLeft);
}
}
},
_fireChanged: function() {
///
/// Attempts to fire the change event on the attached textbox
///
var elt = this.get_element();
if (document.createEventObject) {
elt.fireEvent("onchange");
} else if (document.createEvent) {
var e = document.createEvent("HTMLEvents");
e.initEvent("change", true, true);
elt.dispatchEvent(e);
}
},
_switchMonth: function(date, dontAnimate) {
///
/// Switches the visible month in the days view
///
/// The visible date to switch to
/// Prevents animation from occuring if the control is animated
if (this._isAnimating) {
return;
}
if (date && !this._canSwitchMonth(date)) {
return;
}
var visibleDate = this._getEffectiveVisibleDate();
if ((date && date.getFullYear() == visibleDate.getFullYear() && date.getMonth() == visibleDate.getMonth())) {
dontAnimate = true;
}
if (this._animated && !dontAnimate) {
this._isAnimating = true;
var newElement = this._modes[this._mode];
var oldElement = newElement.cloneNode(true);
this._body.appendChild(oldElement);
if (visibleDate > date) {
$common.setLocation(newElement, { x: -162, y: 0 });
$common.setVisible(newElement, true);
this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("left");
this._modeChangeMoveTopOrLeftAnimation.set_target(newElement);
this._modeChangeMoveTopOrLeftAnimation.set_startValue(-this._width);
this._modeChangeMoveTopOrLeftAnimation.set_endValue(0);
$common.setLocation(oldElement, { x: 0, y: 0 });
$common.setVisible(oldElement, true);
this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("left");
this._modeChangeMoveBottomOrRightAnimation.set_target(oldElement);
this._modeChangeMoveBottomOrRightAnimation.set_startValue(0);
this._modeChangeMoveBottomOrRightAnimation.set_endValue(this._width);
} else {
$common.setLocation(oldElement, { x: 0, y: 0 });
$common.setVisible(oldElement, true);
this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("left");
this._modeChangeMoveTopOrLeftAnimation.set_target(oldElement);
this._modeChangeMoveTopOrLeftAnimation.set_endValue(-this._width);
this._modeChangeMoveTopOrLeftAnimation.set_startValue(0);
$common.setLocation(newElement, { x: 162, y: 0 });
$common.setVisible(newElement, true);
this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("left");
this._modeChangeMoveBottomOrRightAnimation.set_target(newElement);
this._modeChangeMoveBottomOrRightAnimation.set_endValue(0);
this._modeChangeMoveBottomOrRightAnimation.set_startValue(this._width);
}
this._visibleDate = date;
this.invalidate();
var endHandler = Function.createDelegate(this, function() {
this._body.removeChild(oldElement);
oldElement = null;
this._isAnimating = false;
this._modeChangeAnimation.remove_ended(endHandler);
});
this._modeChangeAnimation.add_ended(endHandler);
this._modeChangeAnimation.play();
} else {
this._visibleDate = date;
this.invalidate();
}
},
_canSwitchMonth: function(date) {
switch (this._mode) {
case "days":
if (!this._isInDateRange(date, "M")) {
return false;
}
break;
case "months":
if (!this._isInDateRange(date, "y")) {
return false;
}
break;
case "years":
if (!this._isInDateRange(date, "y")) {
return false;
}
break;
}
return true;
},
_switchMode: function(mode, dontAnimate) {
///
/// Switches the visible view from "days" to "months" to "years"
///
/// The view mode to switch to
/// Prevents animation from occuring if the control is animated
if (this._isAnimating || (this._mode == mode)) {
return;
}
var moveDown = this._modeOrder[this._mode] < this._modeOrder[mode];
var oldElement = this._modes[this._mode];
var newElement = this._modes[mode];
this._mode = mode;
if (this._animated && !dontAnimate) {
this._isAnimating = true;
this.invalidate();
if (moveDown) {
$common.setLocation(newElement, { x: 0, y: -this._height });
$common.setVisible(newElement, true);
this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("top");
this._modeChangeMoveTopOrLeftAnimation.set_target(newElement);
this._modeChangeMoveTopOrLeftAnimation.set_startValue(-this._height);
this._modeChangeMoveTopOrLeftAnimation.set_endValue(0);
$common.setLocation(oldElement, { x: 0, y: 0 });
$common.setVisible(oldElement, true);
this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("top");
this._modeChangeMoveBottomOrRightAnimation.set_target(oldElement);
this._modeChangeMoveBottomOrRightAnimation.set_startValue(0);
this._modeChangeMoveBottomOrRightAnimation.set_endValue(this._height);
} else {
$common.setLocation(oldElement, { x: 0, y: 0 });
$common.setVisible(oldElement, true);
this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("top");
this._modeChangeMoveTopOrLeftAnimation.set_target(oldElement);
this._modeChangeMoveTopOrLeftAnimation.set_endValue(-this._height);
this._modeChangeMoveTopOrLeftAnimation.set_startValue(0);
$common.setLocation(newElement, { x: 0, y: 139 });
$common.setVisible(newElement, true);
this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("top");
this._modeChangeMoveBottomOrRightAnimation.set_target(newElement);
this._modeChangeMoveBottomOrRightAnimation.set_endValue(0);
this._modeChangeMoveBottomOrRightAnimation.set_startValue(this._height);
}
var endHandler = Function.createDelegate(this, function() {
this._isAnimating = false;
this._modeChangeAnimation.remove_ended(endHandler);
});
this._modeChangeAnimation.add_ended(endHandler);
this._modeChangeAnimation.play();
} else {
this._mode = mode;
$common.setVisible(oldElement, false);
this.invalidate();
$common.setVisible(newElement, true);
$common.setLocation(newElement, { x: 0, y: 0 });
}
},
_isSelected: function(date, part) {
///
/// Gets whether the supplied date is the currently selected date
///
/// The date to match
/// The most significant part of the date to test
///
var value = this.get_selectedDate();
if (!value) return false;
switch (part) {
case 'd':
if (date.getUTCDate() != value.getUTCDate()) return false;
case 'M':
if (date.getUTCMonth() != value.getUTCMonth()) return false;
case 'y':
if (date.getUTCFullYear() != value.getUTCFullYear()) return false;
break;
}
return true;
},
_isOther: function(date, part) {
///
/// Gets whether the supplied date is in a different view from the current visible month
///
/// The date to match
/// The most significant part of the date to test
///
var value = this._getEffectiveVisibleDate();
switch (part) {
case 'd':
return (date.getUTCFullYear() != value.getUTCFullYear() || date.getUTCMonth() != value.getUTCMonth());
case 'M':
return false;
case 'y':
var minYear = (Math.floor(value.getUTCFullYear() / 10) * 10);
return date.getUTCFullYear() < minYear || (minYear + 10) <= date.getUTCFullYear();
}
return false;
},
_isTodaysDate: function(date) {
return this._getDateOnly(this._convertToUTC(this.get_todaysDate())).valueOf() === this._getDateOnly(date).valueOf();
},
_getCssClass: function(date, part) {
///
/// Gets the cssClass to apply to a cell based on a supplied date
///
/// The date to match
/// The most significant part of the date to test
///
if (this._isSelected(date, part)) {
return "ajax__calendar_active";
} else if (this._isOther(date, part)) {
return "ajax__calendar_other";
} else if (this._isTodaysDate(date)) {
return "ajax__calendar_today";
} else {
return "";
}
},
_getEffectiveVisibleDate: function() {
var value = this.get_visibleDate();
if (value == null)
value = this.get_selectedDate();
if (value == null)
value = this.get_todaysDate();
value = new Date(value);
value.setUTCDate(1);
return this._getDateOnly(value);
},
_getFirstDayOfWeek: function() {
///
/// Gets the first day of the week
///
if (this.get_firstDayOfWeek() != Sys.Extended.UI.FirstDayOfWeek.Default) {
return this.get_firstDayOfWeek();
}
return Sys.CultureInfo.CurrentCulture.dateTimeFormat.FirstDayOfWeek;
},
_parseTextValue: function(text) {
///
/// Converts a text value from the textbox into a date
///
/// The text value to parse
///
var value = null;
if (text) {
value = this._convertToUTC(Date.parseLocale(text, this.get_format()));
}
if (isNaN(value)) {
value = null;
}
return value;
},
_element_onfocus: function(e) {
///
/// Handles the focus event of the element
///
/// The arguments for the event
if (!this._enabled) return;
if (!this._button) {
this.show();
this._popupMouseDown = false;
}
},
_element_onblur: function(e) {
///
/// Handles the blur event of the element
///
/// The arguments for the event
if (!this._enabled) return;
if (!this._button) {
this.blur();
}
},
_element_onchange: function(e) {
///
/// Handles the change event of the element
///
/// The arguments for the event
if (!this._selectedDateChanging) {
var value = this._parseTextValue(this._textbox.get_Value());
this._selectedDate = value;
if (this._isOpen) {
this._switchMonth(this._selectedDate, this._selectedDate == null);
}
}
},
_element_onkeypress: function(e) {
///
/// Handles the keypress event of the element
///
/// The arguments for the event
if (!this._enabled) return;
if (!this._button && e.charCode == Sys.UI.Key.esc) {
e.stopPropagation();
e.preventDefault();
this.hide();
}
},
_element_onclick: function(e) {
///
/// Handles the click event of the element
///
/// The arguments for the event
if (!this._enabled) return;
if (!this._button) {
this.show();
this._popupMouseDown = false;
}
},
_popup_onevent: function(e) {
///
/// Handles the drag-start event of the popup calendar
///
/// The arguments for the event
e.stopPropagation();
e.preventDefault();
},
_popup_onmousedown: function(e) {
///
/// Handles the mousedown event of the popup
///
/// The arguments for the event
this._popupMouseDown = true;
},
_popup_onmouseup: function(e) {
///
/// Handles the mouseup event of the popup
///
/// The arguments for the event
if (Sys.Browser.agent === Sys.Browser.Opera && this._blur.get_isPending()) {
this._blur.cancel();
}
this._popupMouseDown = false;
this.focus();
},
_cell_onmouseover: function(e) {
///
/// Handles the mouseover event of a cell
///
/// The arguments for the event
e.stopPropagation();
if (Sys.Browser.agent === Sys.Browser.Safari) {
for (var i = 0; i < this._daysBody.rows.length; i++) {
var row = this._daysBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
Sys.UI.DomElement.removeCssClass(row.cells[j].firstChild.parentNode, "ajax__calendar_hover");
}
}
}
var target = e.target;
Sys.UI.DomElement.addCssClass(target.parentNode, "ajax__calendar_hover");
},
_cell_onmouseout: function(e) {
///
/// Handles the mouseout event of a cell
///
/// The arguments for the event
e.stopPropagation();
var target = e.target;
Sys.UI.DomElement.removeCssClass(target.parentNode, "ajax__calendar_hover");
},
_cell_onclick: function(e) {
///
/// Handles the click event of a cell
///
/// The arguments for the event
e.stopPropagation();
e.preventDefault();
if (!this._enabled) return;
var target = e.target;
if (target.parentNode.className.indexOf("ajax__calendar_invalid") != -1) {
return;
}
var visibleDate = this._getEffectiveVisibleDate();
Sys.UI.DomElement.removeCssClass(target.parentNode, "ajax__calendar_hover");
switch (target.mode) {
case "prev":
case "next":
this._switchMonth(target.date);
break;
case "title":
switch (this._mode) {
case "days": this._switchMode("months"); break;
case "months": this._switchMode("years"); break;
}
break;
case "month":
if (target.month == visibleDate.getMonth()) {
this._switchMode("days");
} else {
this._visibleDate = target.date;
this._switchMode("days");
}
break;
case "year":
if (target.date.getFullYear() == visibleDate.getFullYear()) {
this._switchMode("months");
} else {
this._visibleDate = target.date;
this._switchMode("months");
}
break;
case "day":
this.set_selectedDate(target.date);
this._switchMonth(target.date);
this._blur.post(true);
this.raiseDateSelectionChanged();
break;
case "today":
this.set_selectedDate(target.date);
this._switchMonth(target.date);
this._blur.post(true);
this.raiseDateSelectionChanged();
break;
}
},
_button_onclick: function(e) {
///
/// Handles the click event of the asociated button
///
/// The arguments for the event
e.preventDefault();
e.stopPropagation();
if (!this._enabled) return;
if (e.clientX == 0) return;
if (!this._isOpen) {
this.show();
} else {
this.hide();
}
this.focus();
this._popupMouseDown = false;
if (this._visibleDate != this._selectedDate) {
this._visibleDate = this._selectedDate
this.invalidate();
}
},
_button_onblur: function(e) {
///
/// Handles the blur event of the button
///
/// The arguments for the event
if (!this._enabled) return;
if (!this._popupMouseDown) {
this.hide();
}
this._popupMouseDown = false;
},
_button_onkeypress: function(e) {
///
/// Handles the keypress event of the element
///
/// The arguments for the event
if (!this._enabled) return;
if (e.charCode == Sys.UI.Key.esc) {
e.stopPropagation();
e.preventDefault();
this.hide();
}
this._popupMouseDown = false;
}
}
Sys.Extended.UI.CalendarBehavior.registerClass("Sys.Extended.UI.CalendarBehavior", Sys.Extended.UI.BehaviorBase);
Sys.registerComponent(Sys.Extended.UI.CalendarBehavior, { name: "calendar" });
Sys.Extended.UI.CalendarPosition = function() {
///
/// Position of the popup relative to the target control
///
///
///
///
///
///
///
throw Error.invalidOperation();
}
Sys.Extended.UI.CalendarPosition.prototype = {
BottomLeft: 0,
BottomRight: 1,
TopLeft: 2,
TopRight: 3,
Right: 4,
Left: 5
}
Sys.Extended.UI.CalendarPosition.registerEnum('Sys.Extended.UI.CalendarPosition');
Sys.Extended.UI.CalendarDefaultView = function() {
///
/// Choices for default view of the calendar when it first pops up.
///
///
///
///
throw Error.invalidOperation();
}
Sys.Extended.UI.CalendarDefaultView.prototype = {
Days: 0,
Months: 1,
Years: 2
}
Sys.Extended.UI.CalendarDefaultView.registerEnum('Sys.Extended.UI.CalendarDefaultView');
} // execute
if (window.Sys && Sys.loader) {
Sys.loader.registerScript(scriptName, ["Globalization", "ExtendedBase", "ExtendedDateTime", "ExtendedThreading", "ExtendedAnimationBehavior", "ExtendedPopup"], execute);
}
else {
execute();
}
})();