calendar-min.js revision 528126a57f0c28ce4de35bb3c4c4cbfbb52a36e7
YUI.add("calendar",function(c){var s=c.ClassNameManager.getClassName,n="calendar",e=40,p=38,t=37,i=39,f=13,g=32,m=s(n,"header"),d=s(n,"day-selected"),b=s(n,"day-highlighted"),r=s(n,"day"),a=s(n,"prevmonth-day"),o=s(n,"nextmonth-day"),j=s(n,"grid"),k=c.DataType.Date,q=c.delegate,u=s(n,"pane"),h=c.UA.os;function l(v){l.superclass.constructor.apply(this,arguments);}c.Calendar=c.extend(l,c.CalendarBase,{_keyEvents:[],_highlightedDateNode:null,_lastSelectedDate:null,initializer:function(){this.plug(c.Plugin.CalendarNavigator);},syncUI:function(){},_bindCalendarEvents:function(){var v=this.get("contentBox"),w=v.one("."+u);w.on("selectstart",function(x){x.preventDefault();});w.delegate("click",this._clickCalendar,"."+r,this);w.delegate("keydown",this._keydownCalendar,"."+j,this);w.delegate("focus",this._focusCalendarGrid,"."+j,this);w.delegate("blur",this._blurCalendarGrid,"."+j,this);},_highlightDateNode:function(w){this._unhighlightCurrentDateNode();var v=this._dateToNode(w);this._highlightedDateNode=v;this._highlightedDateNode.addClass(b);},_unhighlightCurrentDateNode:function(){if(this._highlightedDateNode){this._highlightedDateNode.removeClass(b);}},_getGridNumber:function(w){var v=w.get("id").split("_").reverse();return parseInt(v[0],10);},_blurCalendarGrid:function(v){this._unhighlightCurrentDateNode();},_focusCalendarGrid:function(x){var w=this._getGridNumber(x.target),v=k.addMonths(this.get("date"),w);this._highlightDateNode(v);},_keydownCalendar:function(F){var x=this._getGridNumber(F.target),z=this._nodeToDate(this._highlightedDateNode),I=F.keyCode,w=0,y="";if(z){switch(I){case e:w=7;y="s";break;case p:w=-7;y="n";break;case t:w=-1;y="w";break;case i:w=1;y="e";break;case g:case f:var E=this.get("selectionMode");if(E==="single"&&!this._highlightedDateNode.hasClass(d)){this._clearSelection(true);this._addDateToSelection(z);}else{if(E==="multiple"||E==="multiple-sticky"){if(this._highlightedDateNode.hasClass(d)){this._removeDateFromSelection(z);}else{this._addDateToSelection(z);}}}break;}if(I==e||I==p||I==t||I==i){var H=k.addDays(z,w),v=this.get("date"),B=k.addMonths(this.get("date"),this._paneNumber-1);B.setDate(k.daysInMonth(B));if(k.isInRange(H,v,B)){var D=(H.getMonth()-z.getMonth())%10;if(D!=0){var A=x+D,C=this.get("contentBox"),G=C.one("#"+this._calendarId+"_pane_"+A);G.focus();}this._highlightDateNode(H);}else{if(k.isGreater(v,H)){this.set("date",k.addMonths(v,-1));if(!k.isGreater(this.get("minimumDate"),H)){this._highlightDateNode(H);}}else{if(k.isGreater(H,B)){this.set("date",k.addMonths(v,1));if(!k.isGreaterOrEqual(B,this.get("maximumDate"))){this._highlightDateNode(H);}}}}}}},_clickCalendar:function(y){var z=y.target,w=z.hasClass(r)&&!z.hasClass(a)&&!z.hasClass(o),v=z.hasClass(d);switch(this.get("selectionMode")){case ("single"):if(w){if(!v){this._clearSelection(true);this._addDateToSelection(this._nodeToDate(z));}}break;case ("multiple-sticky"):if(w){if(v){this._removeDateFromSelection(this._nodeToDate(z));}else{this._addDateToSelection(this._nodeToDate(z));}}break;case ("multiple"):if(!y.metaKey&&!y.ctrlKey&&!y.shiftKey){this._clearSelection(true);this._lastSelectedDate=this._nodeToDate(z);this._addDateToSelection(this._lastSelectedDate);}else{if(((h=="macintosh"&&y.metaKey)||(h!="macintosh"&&y.ctrlKey))&&!y.shiftKey){if(v){this._removeDateFromSelection(this._nodeToDate(z));this._lastSelectedDate=null;}else{this._lastSelectedDate=this._nodeToDate(z);this._addDateToSelection(this._lastSelectedDate);}}else{if(((h=="macintosh"&&y.metaKey)||(h!="macintosh"&&y.ctrlKey))&&y.shiftKey){if(this._lastSelectedDate!=null){var x=this._nodeToDate(z);this._addDateRangeToSelection(x,this._lastSelectedDate);this._lastSelectedDate=x;}else{this._lastSelectedDate=this._nodeToDate(z);this._addDateToSelection(this._lastSelectedDate);}}else{if(y.shiftKey){if(this._lastSelectedDate!=null){var x=this._nodeToDate(z);this._clearSelection(true);this._addDateRangeToSelection(x,this._lastSelectedDate);this._lastSelectedDate=x;}else{this._clearSelection(true);this._lastSelectedDate=this._nodeToDate(z);this._addDateToSelection(this._lastSelectedDate);}}}}}break;}if(w){this.fire("dateClick",{cell:z,date:this._nodeToDate(z)});}else{if(z.hasClass(a)){this.fire("prevMonthClick");}else{if(z.hasClass(o)){this.fire("nextMonthClick");}}}},subtractMonth:function(v){this.set("date",k.addMonths(this.get("date"),-1));v.halt();},subtractYear:function(v){this.set("date",k.addYears(this.get("date"),-1));v.halt();},addMonth:function(v){this.set("date",k.addMonths(this.get("date"),1));v.halt();},addYear:function(v){this.set("date",k.addYears(this.get("date"),1));v.halt();}},{NAME:"calendar",ATTRS:{selectionMode:{value:"single"},date:{value:new Date(),lazyAdd:false,setter:function(A){var w=this._normalizeDate(A),x=k.addMonths(w,this._paneNumber-1);var y=this.get("minimumDate");var z=this.get("maximumDate");if((y==null||k.isGreaterOrEqual(w,y))&&(z==null||k.isGreaterOrEqual(z,x))){return w;}else{if(y!=null&&k.isGreater(y,w)){return y;}else{if(z!=null&&k.isGreater(x,z)){var v=k.addMonths(z,-1*(this._paneNumber-1));return v;}}}}},minimumDate:{value:null,setter:function(x){if(x!=null){var w=this.get("date"),v=this._normalizeDate(x);if(w!=null&&!k.isGreaterOrEqual(w,v)){this.set("date",v);}return v;}else{return this._normalizeDate(x);}}},maximumDate:{value:null,setter:function(x){if(x!=null){var v=this.get("date"),w=this._normalizeDate(x);if(v!=null&&!k.isGreaterOrEqual(x,k.addMonths(v,this._paneNumber-1))){this.set("date",k.addMonths(w,-1*(this._paneNumber-1)));}return w;}else{return x;}}}}});},"@VERSION@",{lang:["de","en","fr","ja","pt-BR","ru","zh-HANT-TW"],requires:["calendar-base","calendarnavigator"]});