blob: f292d95d45db70bb074a54c212731fd934cf8c4e [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.widget.Calendar"]){
dojo._hasResource["dojox.widget.Calendar"]=true;
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],{templateString:dojo.cache("dojox.widget","Calendar/Calendar.html","<div class=\"dojoxCalendar\">\n <div tabindex=\"0\" class=\"dojoxCalendarContainer\" style=\"visibility: visible;\" dojoAttachPoint=\"container\">\n\t\t<div style=\"display:none\">\n\t\t\t<div dojoAttachPoint=\"previousYearLabelNode\"></div>\n\t\t\t<div dojoAttachPoint=\"nextYearLabelNode\"></div>\n\t\t\t<div dojoAttachPoint=\"monthLabelSpacer\"></div>\n\t\t</div>\n <div class=\"dojoxCalendarHeader\">\n <div>\n <div class=\"dojoxCalendarDecrease\" dojoAttachPoint=\"decrementMonth\"></div>\n </div>\n <div class=\"\">\n <div class=\"dojoxCalendarIncrease\" dojoAttachPoint=\"incrementMonth\"></div>\n </div>\n <div class=\"dojoxCalendarTitle\" dojoAttachPoint=\"header\" dojoAttachEvent=\"onclick: onHeaderClick\">\n </div>\n </div>\n <div class=\"dojoxCalendarBody\" dojoAttachPoint=\"containerNode\"></div>\n <div class=\"\">\n <div class=\"dojoxCalendarFooter\" dojoAttachPoint=\"footer\"> \n </div>\n </div>\n </div>\n</div>\n"),_views:null,useFx:true,widgetsInTemplate:true,value:new Date(),constraints:null,footerFormat:"medium",constructor:function(){
this._views=[];
},postMixInProperties:function(){
var c=this.constraints;
if(c){
var _1=dojo.date.stamp.fromISOString;
if(typeof c.min=="string"){
c.min=_1(c.min);
}
if(typeof c.max=="string"){
c.max=_1(c.max);
}
}
},postCreate:function(){
this.displayMonth=new Date(this.attr("value"));
var _2={parent:this,_getValueAttr:dojo.hitch(this,function(){
return new Date(this._internalValue||this.value);
}),_getDisplayMonthAttr: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(){
}};
dojo.forEach(this._views,function(_3){
var _4=new _3(_2,dojo.create("div"));
this.addChild(_4);
var _5=_4.getHeader();
if(_5){
this.header.appendChild(_5);
dojo.style(_5,"display","none");
}
dojo.style(_4.domNode,"visibility","hidden");
dojo.connect(_4,"onValueSelected",this,"_onDateSelected");
_4.attr("value",this.attr("value"));
},this);
if(this._views.length<2){
dojo.style(this.header,"cursor","auto");
}
this.inherited(arguments);
this._children=this.getChildren();
this._currentChild=0;
var _6=new Date();
this.footer.innerHTML="Today: "+dojo.date.locale.format(_6,{formatLength:this.footerFormat,selector:"date",locale:this.lang});
dojo.connect(this.footer,"onclick",this,"goToToday");
var _7=this._children[0];
dojo.style(_7.domNode,"top","0px");
dojo.style(_7.domNode,"visibility","visible");
var _8=_7.getHeader();
if(_8){
dojo.style(_7.getHeader(),"display","");
}
dojo[_7.useHeader?"removeClass":"addClass"](this.container,"no-header");
_7.onDisplay();
var _9=this;
var _a=function(_b,_c,_d){
dijit.typematic.addMouseListener(_9[_b],_9,function(_e){
if(_e>=0){
_9._adjustDisplay(_c,_d);
}
},0.8,500);
};
_a("incrementMonth","month",1);
_a("decrementMonth","month",-1);
this._updateTitleStyle();
},addFx:function(_f,_10){
},_setValueAttr:function(_11){
if(!_11["getFullYear"]){
_11=dojo.date.stamp.fromISOString(_11+"");
}
if(!this.value||dojo.date.compare(_11,this.value)){
_11=new Date(_11);
this.displayMonth=new Date(_11);
this._internalValue=_11;
if(!this.isDisabledDate(_11,this.lang)&&this._currentChild==0){
this.value=_11;
this.onChange(_11);
}
this._children[this._currentChild].attr("value",this.value);
return true;
}
return false;
},isDisabledDate:function(_12,_13){
var c=this.constraints;
var _14=dojo.date.compare;
return c&&(c.min&&(_14(c.min,_12,"date")>0)||(c.max&&_14(c.max,_12,"date")<0));
},onValueSelected:function(_15){
},_onDateSelected:function(_16,_17,_18){
this.displayMonth=_16;
this.attr("value",_16);
if(!this._transitionVert(-1)){
if(!_17&&_17!==0){
_17=this.attr("value");
}
this.onValueSelected(_17);
}
},onChange:function(_19){
},onHeaderClick:function(e){
this._transitionVert(1);
},goToToday:function(){
this.attr("value",new Date());
this.onValueSelected(this.attr("value"));
},_transitionVert:function(_1a){
var _1b=this._children[this._currentChild];
var _1c=this._children[this._currentChild+_1a];
if(!_1c){
return false;
}
dojo.style(_1c.domNode,"visibility","visible");
var _1d=dojo.style(this.containerNode,"height");
_1c.attr("value",this.displayMonth);
if(_1b.header){
dojo.style(_1b.header,"display","none");
}
if(_1c.header){
dojo.style(_1c.header,"display","");
}
dojo.style(_1c.domNode,"top",(_1d*-1)+"px");
dojo.style(_1c.domNode,"visibility","visible");
this._currentChild+=_1a;
var _1e=_1d*_1a;
var _1f=0;
dojo.style(_1c.domNode,"top",(_1e*-1)+"px");
var _20=dojo.animateProperty({node:_1b.domNode,properties:{top:_1e},onEnd:function(){
dojo.style(_1b.domNode,"visibility","hidden");
}});
var _21=dojo.animateProperty({node:_1c.domNode,properties:{top:_1f},onEnd:function(){
_1c.onDisplay();
}});
dojo[_1c.useHeader?"removeClass":"addClass"](this.container,"no-header");
_20.play();
_21.play();
_1b.onBeforeUnDisplay();
_1c.onBeforeDisplay();
this._updateTitleStyle();
return true;
},_updateTitleStyle:function(){
dojo[this._currentChild<this._children.length-1?"addClass":"removeClass"](this.header,"navToPanel");
},_slideTable:function(_22,_23,_24){
var _25=_22.domNode;
var _26=_25.cloneNode(true);
var _27=dojo.style(_25,"width");
_25.parentNode.appendChild(_26);
dojo.style(_25,"left",(_27*_23)+"px");
_24();
var _28=dojo.animateProperty({node:_26,properties:{left:_27*_23*-1},duration:500,onEnd:function(){
_26.parentNode.removeChild(_26);
}});
var _29=dojo.animateProperty({node:_25,properties:{left:0},duration:500});
_28.play();
_29.play();
},_addView:function(_2a){
this._views.push(_2a);
},getClassForDate:function(_2b,_2c){
},_adjustDisplay:function(_2d,_2e,_2f){
var _30=this._children[this._currentChild];
var _31=this.displayMonth=_30.adjustDate(this.displayMonth,_2e);
this._slideTable(_30,_2e,function(){
_30.attr("value",_31);
});
}});
dojo.declare("dojox.widget._CalendarView",dijit._Widget,{headerClass:"",useHeader:true,cloneClass:function(_32,n,_33){
var _34=dojo.query(_32,this.domNode)[0];
var i;
if(!_33){
for(i=0;i<n;i++){
_34.parentNode.appendChild(_34.cloneNode(true));
}
}else{
var _35=dojo.query(_32,this.domNode)[0];
for(i=0;i<n;i++){
_34.parentNode.insertBefore(_34.cloneNode(true),_35);
}
}
},_setText:function(_36,_37){
if(_36.innerHTML!=_37){
dojo.empty(_36);
_36.appendChild(dojo.doc.createTextNode(_37));
}
},getHeader:function(){
return this.header||(this.header=this.header=dojo.create("span",{"class":this.headerClass}));
},onValueSelected:function(_38){
},adjustDate:function(_39,_3a){
return dojo.date.add(_39,this.datePart,_3a);
},onDisplay:function(){
},onBeforeDisplay:function(){
},onBeforeUnDisplay:function(){
}});
dojo.declare("dojox.widget._CalendarDay",null,{parent:null,constructor:function(){
this._addView(dojox.widget._CalendarDayView);
}});
dojo.declare("dojox.widget._CalendarDayView",[dojox.widget._CalendarView,dijit._Templated],{templateString:dojo.cache("dojox.widget","Calendar/CalendarDay.html","<div class=\"dijitCalendarDayLabels\" style=\"left: 0px;\" dojoAttachPoint=\"dayContainer\">\n\t<div dojoAttachPoint=\"header\">\n\t\t<div dojoAttachPoint=\"monthAndYearHeader\">\n\t\t\t<span dojoAttachPoint=\"monthLabelNode\" class=\"dojoxCalendarMonthLabelNode\"></span>\n\t\t\t<span dojoAttachPoint=\"headerComma\" class=\"dojoxCalendarComma\">,</span>\n\t\t\t<span dojoAttachPoint=\"yearLabelNode\" class=\"dojoxCalendarDayYearLabel\"></span>\n\t\t</div>\n\t</div>\n\t<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin: auto;\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<td class=\"dijitCalendarDayLabelTemplate\"><div class=\"dijitCalendarDayLabel\"></div></td>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody dojoAttachEvent=\"onclick: _onDayClick\">\n\t\t\t<tr class=\"dijitCalendarWeekTemplate\">\n\t\t\t\t<td class=\"dojoxCalendarNextMonth dijitCalendarDateTemplate\">\n\t\t\t\t\t<div class=\"dijitCalendarDateLabel\"></div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n"),datePart:"month",dayWidth:"narrow",postCreate:function(){
this.cloneClass(".dijitCalendarDayLabelTemplate",6);
this.cloneClass(".dijitCalendarDateTemplate",6);
this.cloneClass(".dijitCalendarWeekTemplate",5);
var _3b=dojo.date.locale.getNames("days",this.dayWidth,"standAlone",this.getLang());
var _3c=dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang());
dojo.query(".dijitCalendarDayLabel",this.domNode).forEach(function(_3d,i){
this._setText(_3d,_3b[(i+_3c)%7]);
},this);
},onDisplay:function(){
if(!this._addedFx){
this._addedFx=true;
this.addFx(".dijitCalendarDateTemplate div",this.domNode);
}
},_onDayClick:function(e){
if(typeof (e.target._date)=="undefined"){
return;
}
var _3e=new Date(this.attr("displayMonth"));
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){
_3e=dojo.date.add(_3e,"month",d);
}
_3e.setDate(e.target._date);
if(this.isDisabledDate(_3e)){
dojo.stopEvent(e);
return;
}
this.parent._onDateSelected(_3e);
},_setValueAttr:function(_3f){
this._populateDays();
},_populateDays:function(){
var _40=new Date(this.attr("displayMonth"));
_40.setDate(1);
var _41=_40.getDay();
var _42=dojo.date.getDaysInMonth(_40);
var _43=dojo.date.getDaysInMonth(dojo.date.add(_40,"month",-1));
var _44=new Date();
var _45=this.attr("value");
var _46=dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang());
if(_46>_41){
_46-=7;
}
var _47=dojo.date.compare;
var _48=".dijitCalendarDateTemplate";
var _49="dijitCalendarSelectedDate";
var _4a=this._lastDate;
var _4b=_4a==null||_4a.getMonth()!=_40.getMonth()||_4a.getFullYear()!=_40.getFullYear();
this._lastDate=_40;
if(!_4b){
dojo.query(_48,this.domNode).removeClass(_49).filter(function(_4c){
return _4c.className.indexOf("dijitCalendarCurrent")>-1&&_4c._date==_45.getDate();
}).addClass(_49);
return;
}
dojo.query(_48,this.domNode).forEach(function(_4d,i){
i+=_46;
var _4e=new Date(_40);
var _4f,_50="dijitCalendar",adj=0;
if(i<_41){
_4f=_43-_41+i+1;
adj=-1;
_50+="Previous";
}else{
if(i>=(_41+_42)){
_4f=i-_41-_42+1;
adj=1;
_50+="Next";
}else{
_4f=i-_41+1;
_50+="Current";
}
}
if(adj){
_4e=dojo.date.add(_4e,"month",adj);
}
_4e.setDate(_4f);
if(!_47(_4e,_44,"date")){
_50="dijitCalendarCurrentDate "+_50;
}
if(!_47(_4e,_45,"date")&&!_47(_4e,_45,"month")&&!_47(_4e,_45,"year")){
_50=_49+" "+_50;
}
if(this.isDisabledDate(_4e,this.getLang())){
_50=" dijitCalendarDisabledDate "+_50;
}
var _51=this.getClassForDate(_4e,this.getLang());
if(_51){
_50+=_51+" "+_50;
}
_4d.className=_50+"Month dijitCalendarDateTemplate";
_4d.dijitDateValue=_4e.valueOf();
var _52=dojo.query(".dijitCalendarDateLabel",_4d)[0];
this._setText(_52,_4e.getDate());
_52._date=_52.parentNode._date=_4e.getDate();
},this);
var _53=dojo.date.locale.getNames("months","wide","standAlone",this.getLang());
this._setText(this.monthLabelNode,_53[_40.getMonth()]);
this._setText(this.yearLabelNode,_40.getFullYear());
}});
dojo.declare("dojox.widget._CalendarMonthYear",null,{constructor:function(){
this._addView(dojox.widget._CalendarMonthYearView);
}});
dojo.declare("dojox.widget._CalendarMonthYearView",[dojox.widget._CalendarView,dijit._Templated],{templateString:dojo.cache("dojox.widget","Calendar/CalendarMonthYear.html","<div class=\"dojoxCal-MY-labels\" style=\"left: 0px;\"\t\n\tdojoAttachPoint=\"myContainer\" dojoAttachEvent=\"onclick: onClick\">\n\t\t<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin: auto;\">\n\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr class=\"dojoxCal-MY-G-Template\">\n\t\t\t\t\t\t\t\t<td class=\"dojoxCal-MY-M-Template\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"dojoxCalendarMonthLabel\"></div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td class=\"dojoxCal-MY-M-Template\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"dojoxCalendarMonthLabel\"></div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td class=\"dojoxCal-MY-Y-Template\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"dojoxCalendarYearLabel\"></div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td class=\"dojoxCal-MY-Y-Template\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"dojoxCalendarYearLabel\"></div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t </tr>\n\t\t\t\t\t\t <tr class=\"dojoxCal-MY-btns\">\n\t\t\t\t\t\t \t <td class=\"dojoxCal-MY-btns\" colspan=\"4\">\n\t\t\t\t\t\t \t\t <span class=\"dijitReset dijitInline dijitButtonNode ok-btn\" dojoAttachEvent=\"onclick: onOk\" dojoAttachPoint=\"okBtn\">\n\t\t\t\t\t\t \t \t \t <button\tclass=\"dijitReset dijitStretch dijitButtonContents\">OK</button>\n\t\t\t\t\t\t\t\t </span>\n\t\t\t\t\t\t\t\t <span class=\"dijitReset dijitInline dijitButtonNode cancel-btn\" dojoAttachEvent=\"onclick: onCancel\" dojoAttachPoint=\"cancelBtn\">\n\t\t\t\t\t\t \t \t\t <button\tclass=\"dijitReset dijitStretch dijitButtonContents\">Cancel</button>\n\t\t\t\t\t\t\t\t </span>\n\t\t\t\t\t\t \t </td>\n\t\t\t\t\t\t </tr>\n\t\t\t\t</tbody>\n\t\t</table>\n</div>\n"),datePart:"year",displayedYears:10,useHeader:false,postCreate:function(){
this.cloneClass(".dojoxCal-MY-G-Template",5,".dojoxCal-MY-btns");
this.monthContainer=this.yearContainer=this.myContainer;
var _54="dojoxCalendarYearLabel";
var _55="dojoxCalendarDecrease";
var _56="dojoxCalendarIncrease";
dojo.query("."+_54,this.myContainer).forEach(function(_57,idx){
var _58=_56;
switch(idx){
case 0:
_58=_55;
case 1:
dojo.removeClass(_57,_54);
dojo.addClass(_57,_58);
break;
}
});
this._decBtn=dojo.query("."+_55,this.myContainer)[0];
this._incBtn=dojo.query("."+_56,this.myContainer)[0];
dojo.query(".dojoxCal-MY-M-Template",this.domNode).filter(function(_59){
return _59.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();
this.addFx(".dojoxCalendarMonthLabel,.dojoxCalendarYearLabel ",this.myContainer);
},_setValueAttr:function(_5a){
this._populateYears(_5a.getFullYear());
},getHeader:function(){
return null;
},_getMonthNames:function(_5b){
this._monthNames=this._monthNames||dojo.date.locale.getNames("months",_5b,"standAlone",this.getLang());
return this._monthNames;
},_populateMonths:function(){
var _5c=this._getMonthNames("abbr");
dojo.query(".dojoxCalendarMonthLabel",this.monthContainer).forEach(dojo.hitch(this,function(_5d,cnt){
this._setText(_5d,_5c[cnt]);
}));
var _5e=this.attr("constraints");
if(_5e){
var _5f=new Date();
_5f.setFullYear(this._year);
var min=-1,max=12;
if(_5e.min){
var _60=_5e.min.getFullYear();
if(_60>this._year){
min=12;
}else{
if(_60==this._year){
min=_5e.min.getMonth();
}
}
}
if(_5e.max){
var _61=_5e.max.getFullYear();
if(_61<this._year){
max=-1;
}else{
if(_61==this._year){
max=_5e.max.getMonth();
}
}
}
dojo.query(".dojoxCalendarMonthLabel",this.monthContainer).forEach(dojo.hitch(this,function(_62,cnt){
dojo[(cnt<min||cnt>max)?"addClass":"removeClass"](_62,"dijitCalendarDisabledDate");
}));
}
var h=this.getHeader();
if(h){
this._setText(this.getHeader(),this.attr("value").getFullYear());
}
},_populateYears:function(_63){
var _64=this.attr("constraints");
var _65=_63||this.attr("value").getFullYear();
var _66=_65-Math.floor(this.displayedYears/2);
var min=_64&&_64.min?_64.min.getFullYear():_66-10000;
_66=Math.max(min,_66);
this._displayedYear=_65;
var _67=dojo.query(".dojoxCalendarYearLabel",this.yearContainer);
var max=_64&&_64.max?_64.max.getFullYear()-_66:_67.length;
var _68="dijitCalendarDisabledDate";
_67.forEach(dojo.hitch(this,function(_69,cnt){
if(cnt<=max){
this._setText(_69,_66+cnt);
dojo.removeClass(_69,_68);
}else{
dojo.addClass(_69,_68);
}
}));
if(this._incBtn){
dojo[max<_67.length?"addClass":"removeClass"](this._incBtn,_68);
}
if(this._decBtn){
dojo[min>=_66?"addClass":"removeClass"](this._decBtn,_68);
}
var h=this.getHeader();
if(h){
this._setText(this.getHeader(),_66+" - "+(_66+11));
}
},_updateSelectedYear:function(){
this._year=String((this._cachedDate||this.attr("value")).getFullYear());
this._updateSelectedNode(".dojoxCalendarYearLabel",dojo.hitch(this,function(_6a,idx){
return this._year!==null&&_6a.innerHTML==this._year;
}));
},_updateSelectedMonth:function(){
var _6b=(this._cachedDate||this.attr("value")).getMonth();
this._month=_6b;
this._updateSelectedNode(".dojoxCalendarMonthLabel",function(_6c,idx){
return idx==_6b;
});
},_updateSelectedNode:function(_6d,_6e){
var sel="dijitCalendarSelectedDate";
dojo.query(_6d,this.domNode).forEach(function(_6f,idx,_70){
dojo[_6e(_6f,idx,_70)?"addClass":"removeClass"](_6f.parentNode,sel);
});
var _71=dojo.query(".dojoxCal-MY-M-Template div",this.myContainer).filter(function(_72){
return dojo.hasClass(_72.parentNode,sel);
})[0];
if(!_71){
return;
}
var _73=dojo.hasClass(_71,"dijitCalendarDisabledDate");
dojo[_73?"addClass":"removeClass"](this.okBtn,"dijitDisabled");
},onClick:function(evt){
var _74;
var _75=this;
var sel="dijitCalendarSelectedDate";
function hc(c){
return dojo.hasClass(evt.target,c);
};
if(hc("dijitCalendarDisabledDate")){
dojo.stopEvent(evt);
return false;
}
if(hc("dojoxCalendarMonthLabel")){
_74="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")){
_74="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 true;
}else{
if(hc("dojoxCalendarIncrease")){
this._populateYears(this._displayedYear+10);
return true;
}else{
return true;
}
}
}
}
dojo.stopEvent(evt);
return false;
},onOk:function(evt){
dojo.stopEvent(evt);
if(dojo.hasClass(this.okBtn,"dijitDisabled")){
return false;
}
this.onValueSelected(this._cachedDate);
return false;
},onCancel:function(evt){
dojo.stopEvent(evt);
this.onValueSelected(this.attr("value"));
return false;
}});
dojo.declare("dojox.widget.Calendar2Pane",[dojox.widget._CalendarBase,dojox.widget._CalendarDay,dojox.widget._CalendarMonthYear],{});
dojo.declare("dojox.widget.Calendar",[dojox.widget._CalendarBase,dojox.widget._CalendarDay,dojox.widget._CalendarMonthYear],{});
dojo.declare("dojox.widget.DailyCalendar",[dojox.widget._CalendarBase,dojox.widget._CalendarDay],{});
dojo.declare("dojox.widget.MonthAndYearlyCalendar",[dojox.widget._CalendarBase,dojox.widget._CalendarMonthYear],{});
}