Calendar.MonthViewEventFigure=function(){this.Event=null;this.IsSingleDayEvent=true;this.Segments=[];this.Charm=null;this.OnlyCharm=null};Calendar.MonthViewEventFigure.prototype.dispose=function(){for(var a=0;a<this.Segments.length;++a){if(!this.Segments[a].IsCharmSegment)this.Segments[a].ParentFigure=null;this.Segments[a]=null}this.Segments.clear();this.Event=null;this.Charm=null};Calendar.MonthViewFigureSegmentType=new $Enum("RoundHeadRoundTail","RoundHeadSquareTail","SquareHeadRoundTail","SquareHeadSquareTail","Charmed");Calendar.MonthViewFigureSegmentFactory=function(){var g=2,f=3,i=this,e="",a=false,c=false,h=false,b=false;this.initialize=function(j,i,d,f,g){e=j;a=d;c=f;h=g;b=i};this.createFigureSegment=function(i,r,o,z,k,l,j,q,n,y,p,v,w,t,x,m,s){var h=null,u=j,f=new $StringBuilder,g=new $StringBuilder;if(b){j="Clear";m=true;g.append("<div class='insideFloat'><div class='Calendar_ColoredCheckBox color");g.append(u);g.append("'");g.append("></div>");if(a)l=true}if(i.Charm&&c)f.append(i.Charm.render());if(!p){g.append("<span class='timeIndicator'>");g.append(n.toCompactTimeString());g.append(m_bidiMark);g.append("</span>");if(b&&a){g.append("<span class='eventDuration'>(");g.append(BuildDurationString(n,y));g.append(")</span>")}}if(b)g.append("</div>");f.append(g.toString());if(!m){f.append("<a href='#' id='cellFigure_");f.append(o);f.append("'>");f.append(r.encodeHtml());f.append("</a>")}else{f.append("<span class='readOnlyTitle");if(p)f.append(" allDay");f.append("'>");f.append(r.encodeHtml());f.append("</span>")}h=Calendar.EventGridHelper.createEventElement(j,f.toString(),q,v,e,s,w,t,x);h.ParentFigure=i;h.DayOffset=o;h.DaySpan=z;h.DataSource={ItemId:q,ItemType:"event"};h.className="monthViewEventItem segmentContainer enhPreview roundElem";if(i.Charm&&c)h.className+=" expandedCharm";if(k==Calendar.MonthViewFigureSegmentType.SquareHeadRoundTail||k==Calendar.MonthViewFigureSegmentType.SquareHeadSquareTail)h.className+=" squareLeft";if(k==Calendar.MonthViewFigureSegmentType.RoundHeadSquareTail||k==Calendar.MonthViewFigureSegmentType.SquareHeadSquareTail)h.className+=" squareRight";Calendar.EventGridHelper.updateEventAppearance(h,false,j,d(l));return h};this.updateFigureAppearance=function(a,f,e){if(!a.OnlyCharm){var c=Calendar.EventGridHelper.updateEventAppearance,g=a.Segments.length;for(var b=0;b<g;++b)c(a.Segments[b],f,e,d())}};function d(c){var b=a&&c?"auto":Calendar.EventFigureScaledHeight()-g-f+"px";return b}};Calendar.MonthGridLayoutEngine=function(){var k=this,c=false,d=false,g=false,h=false,b=0,e="",a=14,i=2;this.initialize=function(l,f,i,j,k,a){c=l;d=f;g=j;h=k;b=i;e=a};this.getMoreLinkHeight=function(){return a};this.setMoreLinkHeight=function(b){if(!c&&!$B.IE)b+=2;a=b};this.renderRow=function(s,r,j,e,v,w){Dom.removeAllChildNodes(r);if(j==null||j[0]==null)return;var u=100/e,k=[],n=[];for(var a=0;a<e;++a)n[a]=[];var x=j.length;for(var l=0;l<x;++l){var b=j[l],h=b.DayOffset%e,o=b.DaySpan,t=(h*u).toString()+"%",y=(o*u-.37).toString()+"%",g=0;while(true){var A=Calendar.EventFigureScaledHeight()*g+i,p=true;for(var m=h;m<h+o;++m)if(n[m][g]){p=false;break}if(p){b.style.width=y;if(m_isBidi)b.style.right=t;else b.style.left=t;b.style.pixelTop=A;b.RowIndex=g;k.push(b);for(var a=h;a<h+o;++a)n[a][g]=true;break}++g}}if(!c&&d&&w){var q=document.createElement("DIV");q.innerHTML=f(s);k.push(q.firstChild);for(var a=0;a<e;a++)v[e*s+a].firstChild.style.visibility="hidden"}var z=k.length;for(var a=0,B=z;a<B;++a)r.appendChild(k[a])};function f(b){var a=new $StringBuilder;a.append("<div class='collapseWeekControl' ");a.append(getEffectHandlerAttributesHtml(true));a.append("><a href='javascript:;' class='collapseWeekLink' id='showLessLink_"+b+"'>");a.append(e);a.append("</a></div>");return a.toString()}this.adjustDisplayedEventsPerRow=function(j,r,m,p,q){if(d&&q)return;if($B.IE&&c&&!b)return;var i=m.length;if(j==null||j[0]==null){for(var e=0;e<i;++e){var h=m[e].childNodes[0];h.style.visibility="hidden"}return}var g=[];for(var e=0;e<i;++e)g[e]=0;var l=Math.floor((r-a)/Calendar.EventFigureScaledHeight());if(!q&&b&&l>b)l=b;var s=j.length;for(var e=0;e<s;++e){var f=j[e],n=f.RowIndex<l,k=f.DayOffset%i;f.style.display=n?"block":"none";if(f.DaySpan>1){if(!n)for(var o=k;o<f.DaySpan+k;o++)g[o]++}else if(!n)if(f.IsCharmSegment)g[k]+=f.childNodes.length;else g[k]++}for(var e=0;e<i;++e){var h=m[e].childNodes[0];if(g[e]>0){h.innerText=p.begin+g[e]+p.end;h.style.visibility="visible"}else h.style.visibility="hidden"}};this.getHeightForAllEventsPerRow=function(b,i,e,h){if(b==null||b[0]==null)return Calendar.MonthGridLayoutEngine.BaseHeight;var f=0,j=b.length;for(var g=0;g<j;g++){var c=b[g];if(c.offsetTop+c.offsetHeight>f)f=c.offsetTop+c.offsetHeight}var d=f;if(!i)d+=Calendar.EventFigureScaledHeight();if(!h&&e&&d+a>e)d=Math.floor((e-a)/Calendar.EventFigureScaledHeight())*Calendar.EventFigureScaledHeight()+a;return d};this.showAllEventsPerRow=function(a){if(a==null||a[0]==null)return;var c=a.length;for(var b=0;b<c;++b)a[b].style.display="block"}};Calendar.MonthGridLayoutEngine.BaseHeight=2*Calendar.EventFigureScaledHeight()+2;Calendar.CalendarMonthGrid=function(D,c){var a=this,Db=null;Calendar.MonthGridDisplayMode=new $Enum("Month","Weeks","Days");var p=Calendar.MonthGridDisplayMode.Month;Calendar.CalendarMonthGrid.initializeBase(this,arguments);c=this.getParameters();var ob=c.imagePath?c.imagePath:"",x=c.dayGridMode?c.dayGridMode:false,uc=c.showIconsInEventFigures,rb=c.enableBackgroundSelection,vc=c.enableEventDragAndDrop,V=c.enableCharms,cb=c.expandAllCharmedEvents,O=c.enableDynamicRowHeights,hb=c.enableDynamicEventHeights,E=hb?c.expandTitlesOnRowExpansion:false,N=V?c.expandCharmsOnRowExpansion:false,B=c.isPrintMode,Sb=c.showAbbrevDayNames,Bc=c.hideGridNavigator,xb=c.eventsPerRowLimit,v=new Calendar.EventHandlerManager,vb=null,pb=null,Mb=null,Gc=[CAL.CalendarItemType.TaskItem],J=new Calendar.MonthViewFigureSegmentFactory,A=new Calendar.MonthGridLayoutEngine,Fc=Sb?true:false,g=new Calendar.IdManager,z=new Calendar.Date,b=new Calendar.Date,e=new Calendar.Date,k=0,f=[],Yc=false,Z=null,Zc=new Calendar.Date,K={},w=[],o=null,Q=new CharmSegmentManager(this),s=null,h=[],Ab=0,zb=0,Rb=0,H=0,Cb=null,X=D.offsetWidth,y=null,d=null,m=null,l=[],db=B?CAL.GridExpansionMode.CharmsExpanded:CAL.GridExpansionMode[getSetting("monthGridExpansionMode")],q=[],Y=[],R=[],bb=[],n=[],eb=[],F=null,C=null,t=null,u=null,mb=null,L=null,Eb=false,Dc=750,Gb=0,Hb=0,Wb=null,yb=null,Bb=null,T=null,j=null,sb=null,jb=false,lb=false,M=null,ib=false,ac=false,U={},ub={},r=new $Flags("Header",0,"Figure",1,"More",2,"AfterCell",3),S={left:0,top:0};if($B.IE){if($B.V<=6)S.left=4}else if($B.Firefox)if($B.V<3)S.top=-2;else if(x)S.left=1;else{S.top=-1;S.left=-1}this.initialize=function(){Calendar.CalendarMonthGrid.callBaseMethod(this,"initialize",arguments);CharmsManager.setImagePath(ob);Vb();var b="";if(Bc){if(!x)b="<div class='dateLabelContainer'><H3"+g.getIdTag("dateLabel")+" class='dateLabel LineHeightStandard'></H3></div>";b+="<div class='monthViewContent' "+g.getIdTag("content")+"></div>"}else b="<div class='gridNavigator'"+g.getIdTag("header")+"></div><div class='monthViewContent' "+g.getIdTag("content")+"></div>";if(rb)b+="<div class='selectionManager displayNone'"+g.getIdTag("selectionmanager")+"></div>";D.innerHTML=b;y=g.getElement("header");d=g.getElement("content");F=!rb?null:g.getElement("selectionmanager");v.attach(d,{onmousedown:pc,onclick:Mc,onmouseup:Cc},D,{onkeydown:Kc,onmousemove:Jc});if(y){o=$Binding.define("Calendar.GridNavigator").bindTo(y).setNS("Calendar").setDefaults({contentStrings:c.contentStrings,imagePath:ob}).attach()[0];v.attach(o,{navbuttonclicked:xc});o.disableGridExpansionLinks(true)}Wb=$("dragAndDropIndicator");Db=new MonthGridController(a);Db.create()};this.getExpansionMode=function(){return db};this.initSelectionManager=function(){if(rb){s=$Binding.define("Calendar.MonthViewSelectionManager").bindTo(F).setNS("Calendar").setDefaults({contentStrings:c.contentStrings,imagePath:ob}).attach()[0];s.setOffsetAdjustment(S);v.attach(s,{backgroundlinkclicked:rc,backgrounddblclicked:sc,onselectionstart:Ac})}};this.initWheelControl=function(){mb=new Calendar.WheelControl(D,ec,Dc)};this.initCalendarColorsForPrinting=function(c){var d=c.length;if(d)for(var b=0;b<d;b++)a.setCalendarColor(c[b].Guid,c[b].ColorIndex)};this.dispose=function(){Calendar.CalendarMonthGrid.callBaseMethod(this,"dispose",arguments);Db.dispose();a.clearEvents();if(mb)mb.dispose();v.dispose();a=D=f=Q=v=null;q=bb=R=Y=n=eb=w=J=A=null;h=U=ub=s=F=o=K=null;yb=Bb=T=g=M=mb=L=null};this.getFigures=function(){return h};function wc(){a.clearBackgroundSelection()}function P(){if(!x){var b=$("calendarMonthGrid"),d=$(g.getId("contentTableContainer")),a=$(g.getId("contentTableContainerInner"));if(O&&kb()){Dom.addClass(b,"+expanded");if(!B){var c=16,h=$("calendarViewsContainer").offsetHeight-(y?y.offsetHeight:0);a.style.pixelHeight=h+1;var e=a.firstChild,f=a.offsetWidth-c;e.style.width=f+"px";qb();vb=v.attach(a,{onscroll:wc});ac=true}}else if(d&&a){Dom.addClass(b,"-expanded");a.style.width=a.firstChild.style.width="100%";if(ac){v.detach(vb);vb=null}}}}var G=true,Fb=false;function I(b){l.clear();for(var a=0;a<q.length;a++)l.push(b);P()}function Ib(b,a){l[b]=a;P()}function Hc(g){var b=[];if(f.length>0){var e=f[g];for(var d=0;d<e.length;d++){var a=e[d];if(a.IsCharmSegment)for(var c=0;c<a.childNodes.length;c++){var h=a.childNodes[c].ParentFigure.Event;b.push(h)}else b.push(a.ParentFigure.Event)}}return b}function mc(b){if(O&&(N||E)){var c=Hc(parseInt(b));a.updateEvents(c)}else W([parseInt(b)])}function kb(){return l.contains(G)}function Ec(a){return !l.slice(0,a).concat(l.slice(a+1)).contains(G)}this.updateGridExpansionMode=function(){Lb()};this.expandRow=function(b){Ib(parseInt(b),G);mc(parseInt(b));a.fire("weekExpanded")};this.collapseRow=function(b){if(Ec(b))$(g.getId("contentTableContainerInner")).scrollTop=0;Ib(parseInt(b),Fb);mc(parseInt(b));a.fire("weekCollapsed")};this.expandGrid=function(b){if(X!=0&&H!=0){nb();I(G);P();a.addEvents(b)}};this.collapseGrid=function(b){if(X!=0&&H!=0&&kb()){nb();I(Fb);P();a.addEvents(b)}};this.enableDynamicRowHeights=function(a){O=a;tb()};this.enableDynamicEventHeights=function(a){hb=a;tb()};this.enableCharms=function(a,b){V=a;if(a&&b)cb=true;else cb=false;tb()};this.isDragHappening=function(){return lb};this.getCalendarsInThisView=function(){return K};this.getSegmentLists=function(){return f};this.getIsDayGridMode=function(){return x};this.getDisplayedRange=function(){return {StartDate:b.clone(),EndDate:e.clone()}};this.getSelectedEventIds=function(){return w.clone()};function hc(a){return a.offsetParent.offsetWidth-a.offsetWidth-a.offsetLeft}this.getCellExtents=function(){var b=R[0],e=b.cells.length,d=new Array(e),c=new Array(e);for(var a=0;a<e;a++)if(m_isBidi){c[a]=hc(b.cells[a])-hc(b.cells[0]);d[a]=c[a]+b.cells[a].offsetWidth}else{d[a]=b.cells[a].offsetLeft-b.cells[0].offsetLeft;c[a]=d[a]+b.cells[a].offsetWidth}return {lefts:d,rights:c}};this.getSelectionRange=function(g){if(!s)return null;var a=s.getSelectionRange(),d=null;if(a){var c=b.addDays(a.StartCellIndex),f=b.addDays(a.EndCellIndex),e=g||a.EndCellIndex!=a.StartCellIndex;if(!e){c.setHours(Calendar.Date.StartHourOfWorkDay,Calendar.Date.StartMinuteOfWorkDay,0,0);f=c.addMinutes(Calendar.Event.DefaultLength)}d={DateStart:c,DateEnd:f,IsAllDayEvent:e}}return d};this.getHandleMouseWheelFunction=function(){return ec};this.getDisplayMode=function(){return p};this.setCalendarColor=function(b,c){var d=K[b];if(d)d.ColorIndex=c;var e=U[b]!=null;U[b]=c;if(e){var f=h.length;for(var a=0;a<f;++a)if(h[a].Event.CalendarGuid==b)J.updateFigureAppearance(h[a],bc(h[a].Event.CacheEventId),c)}};this.setCalendarCharm=function(b,d){var f=K[b];if(f)f.CharmId=d;var e=ub[b];ub[b]=d;if(typeof e=="undefined"||e!=d){var g=[],i=h.length;for(var c=0;c<i;c++)if(h[c].Event.CalendarGuid==b)g.push(h[c].Event);a.updateEvents(g);return true}return false};this.setMinRowHeight=function(a){Cb=a};this.updateDisplayForAd=function(){qb()};this.setHeight=function(b){if(b!=H){H=b;cc();if(X!=D.offsetWidth)X=D.offsetWidth;a.refreshSelectionManager();P()}};var X=0;this.setWidth=function(a){if(a!=X){X=a;if(Q)Q.updateLayout();P();fb()}};this.showMonth=function(a,e){var b=new Calendar.Date(a.getFullYear(),a.getMonth(),1),d=Calendar.Date.getRangeOfCalendarMonth(a);ab(Calendar.MonthGridDisplayMode.Month,d.StartDate,d.EndDate,true,true,e);if(o)o.setTitleText(b.toYearMonthString());else{var c=g.getElement("dateLabel");if(c)c.innerHTML=b.toYearMonthString()}};this.showWeekRange=function(a,d,i){a=a.clone();a.moveToStartOfWeek();d=d.clone();d.moveToEndOfWeek();if(a.valueOf()==b.valueOf()&&d.valueOf()==e.valueOf()&&p==Calendar.MonthGridDisplayMode.Weeks)return;ab(Calendar.MonthGridDisplayMode.Weeks,a,d,true,true,i);var h=c.contentStrings.FromTo.format(a.toLongDateString(),d.getDatePart().toLongDateString());if(o)o.setTitleText(h);else{var f=g.getElement("dateLabel");if(f)f.innerHTML=h}};this.showDayRange=function(a,c){if(a.valueOf()==b.valueOf()&&c.valueOf()==e.valueOf()&&p==Calendar.MonthGridDisplayMode.Days)return;ab(Calendar.MonthGridDisplayMode.Days,a,c,false,null,false)};this.eventExistsOnGrid=function(a){return _getFigureByEventID(a.CacheEventId)!=null};function Ob(a,c){for(var b=0;b<a.length;b++)if(a[b].indexOf(c)==0){a=a.slice(0,b).concat(a.slice(b+1));b--}return a}this.addEvents=function(a,c){if(Eb)return;if(d.offsetHeight==0){if(!C)C=[];C.addRange(a);if(t)for(var b=0;b<a.length;b++)t=Ob(t,a[b].CacheEventId)}else{jc(a);W(c);this.clearBackgroundSelection()}};function Kb(a,c){for(var b=0;b<a.length;b++)if(a[b].CacheEventId.indexOf(c)==0){a=a.slice(0,b).concat(a.slice(b+1));b--}return a}this.removeEvents=function(a,c){if(d.offsetHeight==0){if(!t)t=[];t.addRange(a);if(C)for(var b=0;b<a.length;b++)C=Kb(C,a[b]);if(u)for(var b=0;b<a.length;b++)u=Kb(u,a[b])}else{ic(a);W(c)}};this.updateEvents=function(b,g){if(d.offsetHeight==0){if(!u)u=[];for(var a=0;a<b.length;a++){var c=b[a];for(var e=0;e<u.length;e++)if(c.CacheEventId==u[e].CacheEventId){u[e]=c;c=null;break}if(c)u.push(c)}if(t)for(var a=0;a<b.length;a++)t=Ob(t,b[a].CacheEventId)}else{var f=[],h=b.length;for(var a=0;a<h;++a)f.push(b[a].CacheEventId);ic(f);jc(b);W(g)}};this.becomeActiveView=function(){if(C)a.addEvents(C);if(u)a.updateEvents(u);if(t)a.removeEvents(t);t=C=u=null};this.removeCharmSegment=function(c){var b=Math.floor(c.DayOffset/i()),a=f[b];if(a){a.remove(c);W([b])}};this.addCharmSegment=function(b){var a=Math.floor(b.DayOffset/i());if(f[a]==null)f[a]=[];Nb(b,f[a]);W([a])};this.updateCharmSegments=function(){fb()};this.clearEvents=function(){Q.clearCharms();var c=q.length;for(var a=0;a<c;++a)Dom.removeAllChildNodes(q[a]);f.clear();var b;while(b=h.pop())b.dispose();w.clear()};this.clearBackgroundSelection=function(){if(s)s.destroy()};this.clearEventSelection=function(){var c=w.length;for(var b=0;b<c;b++){var a=Yb(w[b]);if(a)J.updateFigureAppearance(a,false,U[a.Event.CalendarGuid])}w.clear()};this.refreshSelectionManager=function(){if(!s)return;if(!m)return;var q=i(),d=R[0],v=d.cells[0],n=Y,p=n[n.length-1],A=p.cells[p.cells.length-1],h=WebUtilities.getLocation(v);if(x&&d!=null)h.top+=d.cells[0].offsetHeight;var f=WebUtilities.getLocation(D);if(m_isBidi){var t=g.getElement("contentTableContainerInner"),y=t.offsetLeft+t.offsetWidth,u=g.getElement("contentTableContainer"),z=u.offsetLeft+u.offsetWidth,w=z-y;f.right-=w}var o=a.getCellExtents(),j=o.lefts,r=o.rights;if(m_isBidi&&!$B.IE&&!x&&kb())for(var c=0;c<j.length;c++){j[c]+=16;r[c]+=16}var l=0,b=d;while(b!=null&&b.nodeName=="TR"){b=b.nextSibling;if(b)b=b.nextSibling;if(b)b=b.nextSibling;l++}var e=new Array(l);b=d;for(var c=0;c<l;c++){if(x)e[c]=0;else e[c]=b.cells[0].offsetHeight;b=b.nextSibling;if(b){b=b.nextSibling;e[c]+=b.cells[0].offsetHeight}if(b)b=b.nextSibling}if(F.currentStyle.display=="none")Dom.addClass(F,"-displayNone");s.init(Math.ceil(k/q),q,h.top,h.left,f.bottom,f.right,j,r,e)};this.selectItemInCell=function(d,c,f,e){var b=null,a=null;if(!f){if(c==r.AfterCell)b=Zb(d);if(!b){if(c>=r.More)a=gb(false,null,d);else if(c==r.Figure)a=gb(false,e,d);if(c!=r.Header&&!b&&!a)b=window.document.getElementById("cellHeader_"+d)}}else{if(c==r.Header)a=gb(true,null,d);else if(c==r.Figure)a=gb(true,e,d);if(c!=r.More&&!a)b=Zb(d)}if(a)b=a.getElementsByTagName("a")[0];if(b){try{b.focus()}catch(g){}return true}return false};function tb(){Vb();nb()}function Yb(b){var c=h.length;for(var a=0;a<c;++a)if(h[a].Event.CacheEventId==b)return h[a];return null}function Xb(){return b.addDays(6)}function Ub(a,b){return a.getYear()==b.getYear()&&a.getMonth()==b.getMonth()}function fc(b,o){var f=true;if(b.button!=$Browser.Button.LEFT||B)return f;var k=Dom.getNearestParentWithClass(b.srcElement,"segmentContainer",d),e=Dom.getNearestParentWithClass(b.srcElement,"bgCell",d),l=Dom.getNearestParentWithClass(b.srcElement,"hCell",d);if(k!=null){var g=k.ParentFigure;if(k.IsCharmSegment){var n=Dom.getNearestParentWithClass(b.srcElement,"Charm",d);if(n)g=n.ParentFigure}else qc(g);if(g){var c=g.Event;a.clearBackgroundSelection();if(o&&Calendar.Event.isEventDragable(c)){Gb=b.x;Hb=b.y;yb=c.DateStart;Bb=c.DateEnd;j=Calendar.Event.cloneEvent(c);sb=Calendar.Event.cloneEvent(c);pb=v.attach(d,{onmousemove:Pb});jb=true;ib=true}}}else if(e!=null&&(b.srcElement.tagName=="A"||b.srcElement.tagName=="IMG"))return f;else if(l!=null&&b.srcElement.tagName=="A")return f;if(e!=null||l!=null){var h=0;if(e)h=e.CellIndex;else h=l.CellIndex;a.clearEventSelection();var m=i();if(s){a.refreshSelectionManager();s.start(Math.floor(h/m),h%m)}}a.fire("selectionchanged");return f}function Ic(b){if(Sc(b.srcElement))zc(kc(b.srcElement.parentNode));if(Pc(b.srcElement)){var h=Dom.getNearestParentWithClass(b.srcElement,"backgroundRow",d).getAttribute("rowIndex");a.expandRow(h)}else if(yc(b.srcElement)){var h=Dom.getNearestParentWithClass(b.srcElement,"eventRow",d).getAttribute("rowIndex");a.collapseRow(h)}else{var c=Dom.getNearestParentWithClass(b.srcElement,"segmentContainer",d),f=c&&c.IsCharmSegment;if(c&&(b.srcElement.tagName=="A"||f)){var e=c.ParentFigure;if(f){var g=Dom.getNearestParentWithClass(b.srcElement,"Charm",d);if(g)e=g.ParentFigure}if(e){a.fire("eventlinkclicked",{EventId:e.Event.CacheEventId});event.cancelBubble=true}}}}function Cc(a){if(a.button!=$Browser.Button.LEFT)return;if(jb){v.detach(pb);jb=false}ib=false}function nb(){a.clearEvents();K={};var O,I=Calendar.MonthGridLayoutEngine.BaseHeight+"px";if(n.length>0)I=n[0].parentElement.style.height;while(O=n.pop())O.Date=null;eb.clear();d.innerHTML="";var r=i(),G=k/r,L=Math.floor(100/r).toString()+"%",u=0,e=new $StringBuilder;e.append("<div");e.append(g.getIdTag("contentTableContainer"));e.append("class='contentTableContainer'><div class='contentTableContainerEMPad'><span class='allDayHeading displayNone'>");e.append(c.contentStrings.AllDay);e.append("</span><div");e.append(g.getIdTag("contentTableContainerInner"));e.append("class='contentTableContainerInner'><TABLE class='contentTable' ");e.append(" cellSpacing='0' cellPadding='0'>");if(p==Calendar.MonthGridDisplayMode.Month||p==Calendar.MonthGridDisplayMode.Weeks){e.append("<THEAD><TR class=weekdayRow>");var C=Calendar.Date.DayNames,w=C.length;for(var f=0;f<w;++f){var S=(100/C.length).toString()+"%",Q=(f+Calendar.Date.FirstDayOfWeek)%Calendar.Date.NumberOfDaysInWeek;e.append("<TD class='weekday");e.append(f==0?" firstCol":"");e.append(f==C.length-1?" lastCol":"");e.append(b.addDays(f).isSameDayAs(z)?" wbt":"");e.append("' style='WIDTH: ");e.append(S);e.append("'");e.append(">");e.append(C[Q]);e.append("</TD>")}e.append("</TR></THEAD>")}e.append("<TBODY>");var P=Xb();for(var t=0;t<G;++t){var M="",N="";for(var h=0;h<r;++h){var s=b.addDays(u),v=s.isSameDayAs(z),x=false;if(!v&&h<r-1)x=s.addDays(1).isSameDayAs(z);var H=false;if(!v&&!x&&t<G-1)H=s.addDays(i()).isSameDayAs(z);var j="hCell";if(!Ub(s,P))j+=" lightcolor";if(s.getDay()==0||s.getDay()==6)j+=" lightbg";if(v&&h==r-1)j+=" lastToday";else if(v)j+=" today";else if(x)j+=" yesterday";if(h==0)j+=" firstCol";if(h==r-1)j+=" lastCol";var E=dc(s);E="<a href='#' class='dateCellTitle' id=cellHeader_"+u+">"+E+"</a>";M+="<TD style='WIDTH: "+L+";'"+(j==""?"":" class='"+j+"'")+" CellIndex='"+u+"'>"+E+"</TD>";var l="";if(v)l="bgCell today";else if(x)l="bgCell yesterday";else if(H)l="bgCell wbt";else l="bgCell";if(s.getDay()==0||s.getDay()==6)l+=" lightbg";if(h==0)l+=" firstCol";if(h==r-1)l+=" lastCol";if(t==G-1)l+=" lastRow";var F="",J=t==0&&h==0?"\u4e0b":"";if(B)F="<div class='TextSizeSmall'>"+J+"</div>";else F="<a href=\"javascript:;\" class='TextSizeSmall' id='cellMore_"+u+"'"+getEffectHandlerAttributesHtml()+">"+J+"</a>";N+="<TD style='WIDTH: "+L+";'"+" class='"+l+"'"+" CellIndex='"+u+"'>"+F+"</TD>";++u}e.append("<TR class='headerRow ");e.append(Fc?"":"TextSizeXSmall");e.append(h==r-1?" lastCol":"");e.append("'>");e.append(M);e.append("</TR>");e.append("<TR class='eventRow' rowIndex='");e.append(t);e.append("'>");e.append("<TD class=eventContainerRow colSpan=");e.append(r);e.append("></TD></TR><TR class=backgroundRow rowIndex='"+t+"' style='height:"+I+";' ");e.append(">"+N+"</TR>")}e.append("</TBODY></TABLE></div></div></div>");d.innerHTML=e.toString();m=Dom.getDescendantsWithClass(d,"contentTable",1,"TABLE")[0];var o=Dom.getDescendantsWithClass(m,"bgCell",-1,"TD");A.setMoreLinkHeight(o[0].childNodes[0].offsetHeight);o[0].childNodes[0].innerText="";w=o.length;for(var f=0;f<w;f++){o[f].CellIndex=o[f].attributes["CellIndex"].value;n.push(o[f])}var y=Dom.getDescendantsWithClass(m,"hCell",-1,"TD");w=y.length;for(var f=0;f<w;f++){y[f].CellIndex=y[f].attributes["CellIndex"].value;eb.push(y[f])}var D=m.rows.length;R=Dom.getDescendantsWithClass(m,"headerRow",D,"TR");bb=Dom.getDescendantsWithClass(m,"eventRow",D,"TR");Y=Dom.getDescendantsWithClass(m,"backgroundRow",D,"TR");q=Dom.getDescendantsWithClass(m,"eventContainerRow",D,"TD");if(!o[0].clientHeight)Rb=1;else Rb=o[0].offsetHeight-o[0].clientHeight;if(p==Calendar.MonthGridDisplayMode.Month||p==Calendar.MonthGridDisplayMode.Weeks)Ab=Dom.getDescendantsWithClass(m,"weekdayRow",1,"TR")[0].offsetHeight;zb=R[0].cells[0].offsetHeight;cc();Lb();a.refreshSelectionManager()}function Lb(){db=CAL.GridExpansionMode.DontExpand;if(B){if($B.IE)db=CAL.GridExpansionMode.CharmsAndTitlesExpanded}else db=B?CAL.GridExpansionMode.CharmsExpanded:CAL.GridExpansionMode[getSetting("monthGridExpansionMode")];switch(db){case CAL.GridExpansionMode.DontExpand:I(Fb);break;case CAL.GridExpansionMode.Expand:I(G);N=false;E=false;break;case CAL.GridExpansionMode.CharmsExpanded:I(G);N=true;E=false;break;case CAL.GridExpansionMode.TitlesExpanded:I(G);N=false;E=true;break;case CAL.GridExpansionMode.CharmsAndTitlesExpanded:I(G);N=true;E=true}}function Vb(){J.initialize(ob,B,hb,V,cb);A.initialize(B,O,xb,V,cb,c.contentStrings.GridExpansion.CollapseControlLink)}function ab(d,f,g,l,j,h,i){var c=!b.isEqual(f)||!e.isEqual(g);if(i||c||p!=d){p=d;b=f;b.moveToStartOfDay();e=g;e.moveToEndOfDay();k=Math.abs(Calendar.Date.getDayDifference(b,e));z=new Calendar.Date;nb();if(y)y.style.display=l?"block":"none";if(j){if(c)a.fire("weekrangechanged",{StartDate:b,EndDate:e,numDaysShifted:h});a.fire("eventsrequested",{StartDate:b,EndDate:e})}}}function Tb(i,a,g,h,e,d,f,b){return J.createFigureSegment(i,a.Summary==null||a.Summary==""?c.contentStrings.EmptySummary:a.Summary,g,h,e,d,f,a.CacheEventId,a.DateStart,a.DateEnd,b?b:a.IsAllDayEvent,a.FreeBusyStatus,a.RecurrenceId!=null,a.IsRecurrenceException,a.Visibility!=CAL.EventVisibility.Public,Calendar.Event.isEventViewOnly(a),uc)}function jc(t){t=Calendar.Event.filterItemsByType(t,Gc);var o={},B=h.length;for(var d=0;d<B;++d)if(!o[h[d].Event.CacheEventId])o[h[d].Event.CacheEventId]=true;var m=i();B=t.length;for(var u=0;u<B;++u){var a=t[u];if(a.ItemType==CAL.CalendarItemType.TaskItem)continue;if(!Calendar.Event.isEventInRange(a.DateStart.getTime(),a.DateEnd.getTime(),b.getTime(),e.getTime()))continue;if(o[a.CacheEventId])continue;else o[a.CacheEventId]=true;var s=U[a.CalendarGuid];if(a.Calendar&&!K[a.CalendarGuid]){var L={Name:a.Calendar.Name,ColorIndex:s};K[a.CalendarGuid]=L}var g=new Calendar.MonthViewEventFigure;g.Event=a;g.IsSingleDayEvent=!Calendar.Date.isRangeMultipleDays(a.DateStart,a.DateEnd);var A=Calendar.Event.getCharmId(a,c.readOnlyModel);if(V&&A)g.Charm=CharmsManager.getInstance().getCharm(A);if(g.IsSingleDayEvent){var p=null,w=Math.abs(Calendar.Date.getDayDifference(b,a.DateStart)),z=Math.floor(w/m),H=cb||l[z]&&N,D=l[z]&&E;if(V&&A&&!H){var I=n[0]&&n[0].clientWidth>0?n[0].clientWidth:1e3;g.OnlyCharm=true;p=Q.addCharm(g,w,I)}else p=Tb(g,a,w,1,Calendar.MonthViewFigureSegmentType.RoundHeadRoundTail,D,s,false);g.Segments.push(p)}else{var r=Math.abs(Calendar.Date.getDayDifference(b,a.DateStart)),x=Math.abs(Calendar.Date.getDayDifference(b,a.DateEnd));if(a.DateEnd.valueOf()%Calendar.Date.MillesecondsInADay==0)x--;var j=r-1;if(b.valueOf()>a.DateStart.valueOf()){r=0;j=-1}var C=Math.min(k-1,x);for(var d=r;d<=C;++d)if((d%m==m-1||d==C)&&d!=j){var F=j==r-1&&a.DateStart.valueOf()>=b.valueOf(),G=d==x,v,q=Calendar.MonthViewFigureSegmentType;if(F)v=G?q.RoundHeadRoundTail:q.RoundHeadSquareTail;else v=G?q.SquareHeadRoundTail:q.SquareHeadSquareTail;var z=Math.floor((j+1)/m),D=l[z]&&E,p=Tb(g,a,j+1,d-j,v,D,s,!F);g.Segments.push(p);j=d}}var M=g.Segments.length;for(var d=0;d<M;++d){var y=Math.floor(g.Segments[d].DayOffset/m);if(f[y]==null)f[y]=[];Nb(g.Segments[d],f[y])}if(bc(a.CacheEventId))J.updateFigureAppearance(g,true,s);h.push(g)}}function gb(h,j,e){var k=Math.floor(e/i()),c=f[k],g=null;if(c){var d;if(j)d=c.indexOf(j);else if(h)d=-1;else d=c.length;var b,a;if(h)for(b=d+1;b<c.length;b++){a=c[b];if(a.DayOffset==e&&gc(a)){g=a;break}}else for(b=d-1;b>=0;b--){a=c[b];if(a.DayOffset==e&&gc(a)){g=a;break}}}return g}function gc(a){return a.style.display=="block"}function ic(c){var e=c.length;for(var a=0;a<e;++a){for(var b=w.length-1;b>=0;b--)if(c[a]==w[b])w.remove(b);var d=Yb(c[a]);if(d)Lc(d)}}function Lc(b){var j=i(),l=b.Segments.length;for(var d=0;d<l;++d){var a=b.Segments[d];if(a.IsCharmSegment){var g=Q.removeCharm(b,a.DayOffset);if(g){var c=f[Math.floor(a.DayOffset/j)];c.remove(g)}}else{var c=f[Math.floor(a.DayOffset/j)],k=c.length;for(var e=0;e<k;++e)if(a==c[e]){c.remove(a);break}}}h.remove(b);b.dispose()}function W(b){if(q.length==0)return;var c=i(),d=q.length;for(var a=0;a<d;++a){if(b&&!b.contains(a))continue;A.renderRow(a,q[a],f[a],c,n,l[a])}fb(b);if(o)o.disableGridExpansionLinks(false)}function i(){return p==Calendar.MonthGridDisplayMode.Days?k:Calendar.Date.NumberOfDaysInWeek}function cc(){tc();fb()}function oc(m,d){if(d&&d.length){var l=2,i=4,c=l,j=d[0].DayOffset,g=false,e=[0,0,0,0,0,0,0];for(var k=0;k<d.length;k++){var a=d[k];if(a.DaySpan>1)g=true;else g=false;if(a.DayOffset!=j){j=a.DayOffset;c=e[j%7];if(!c)c=l;if(g){var f=a.DayOffset%7+(a.DaySpan-1);for(var h=a.DaySpan;h>0;h--){c=Math.max(c,e[f]);f--}}}a.style.pixelTop=c;a.style.pixelHeight=a.offsetHeight;var b=a.childNodes[1];if(b)b.style.pixelHeight=b.offsetHeight;if(g){var f=a.DayOffset%7+(a.DaySpan-1);for(var h=a.DaySpan;h>0;h--){e[f]=a.offsetTop+(b?b.offsetHeight:0)+i;f--}}else e[a.DayOffset%7]=a.offsetTop+(b?b.offsetHeight:a.offsetHeight)+i;c+=i+(b?b.offsetHeight:a.offsetHeight)}}}function fb(g){var d=Y,e=0,j=i();if(hb)for(var b=0;b<d.length;++b){if(g&&!g.contains(b))continue;if(E&&l[b])oc(d[b],f[b])}for(var b=0;b<d.length;++b){if(g&&!g.contains(b))continue;var h=O&&l[b],k=h||!H?9999:H;if(h){nc(d[b],f[b],k,B?null:bb[b].firstChild.lastChild);e=Z}else{e=wb();Qb(d[b],e)}A.adjustDisplayedEventsPerRow(f[b],e,n.slice(j*b,j*(b+1)),{begin:c.contentStrings.MoreLinkBegin,end:c.contentStrings.MoreLinkEnd},h)}qb();a.refreshSelectionManager()}function qb(){if(!m)return;var c=x?1:3,b=m.offsetWidth-c;for(var a=0;a<q.length;a++)if(q[a].parentElement.style.pixelWidth!=b)q[a].parentElement.style.pixelWidth=b}function wb(){if(Cb)return Cb;return xb?A.getMoreLinkHeight()+xb*Calendar.EventFigureScaledHeight():Z}function nc(d,c,f,b){A.showAllEventsPerRow(c);headerHeight=y?y.offsetHeight:0;var g=f-headerHeight-Ab-zb,a=A.getHeightForAllEventsPerRow(c,false,g,true);if(a<wb())a=wb();Qb(d,a);if(b){var e=d.offsetHeight-b.offsetHeight;if(!$B.IE)e--;b.style.pixelTop=e}}function Qb(b,c){b.style.pixelHeight=c;var a=b.firstChild;while(a){a.style.pixelHeight=c;a=a.nextSibling}}function tc(){headerHeight=y?y.offsetHeight:0;var a=H==0?D.offsetHeight:H-headerHeight-Ab,b=Z;Z=Math.max(a/q.length-zb,0);return Z}function Nb(b,e){var l=true,d=null,f=null,i=null;if(!b.IsCharmSegment)var l=b.ParentFigure.IsSingleDayEvent,d=b.ParentFigure.Event,f=b.ParentFigure.Event.DateStart.getTime(),i=b.ParentFigure.Event.DateEnd.getTime()-f;var g=0,n=e.length;for(;g<n;++g){if(b.IsCharmSegment)if(e[g].IsCharmSegment)continue;else break;if(e[g].IsCharmSegment)continue;var j=e[g].ParentFigure,a=j.Event,c=a.DateStart.getTime(),h=a.DateEnd.getTime()-c;if(l){if(j.IsSingleDayEvent)if(d.IsAllDayEvent&&a.IsAllDayEvent){if(d.CacheEventId<a.CacheEventId)break}else if(d.IsAllDayEvent&&!a.IsAllDayEvent)break;else if(!a.IsAllDayEvent)if(f<c)break;else if(f==c)if(i>h)break;else if(i==h)if(d.CacheEventId<a.CacheEventId)break}else{if(j.IsSingleDayEvent)break;var k=d.DateStart.isSameDayAs(a.DateStart);if(!k&&f<c)break;else if(k)if(i>h)break;else if(i==h)if(f<c)break;else if(f==c)if(d.CacheEventId<a.CacheEventId)break}}var m=b.IsCharmSegment&&e.contains(b)?false:true;if(m)e.insert(g,b)}function bc(b){for(var a=0;a<w.length;a++)if(w[a]==b)return true;return false}function qc(b){a.clearEventSelection();J.updateFigureAppearance(b,true,U[b.Event.CalendarGuid]);w.push(b.Event.CacheEventId)}function rc(b){a.fire("backgroundlinkclicked",{SourceElementRect:b.Package.SourceElementRect})}function sc(b){a.fire("backgrounddblclicked",{SourceElementRect:b.Package.SourceElementRect})}function Ac(){a.fire("onselectionstart")}function pc(a){return fc(a,vc)}function Mc(b){if(lb)return true;var a=fc(b,false);if(a)Ic(b);return a}function Jc(a){a.returnValue=false}function Pb(b){if(b.button==$Browser.Button.LEFT){if(ib)a.fire("drageventstarted");ib=false;var d=4;if(Math.abs(b.x-Gb)>d||Math.abs(b.y-Hb)>d){lb=true;M=new $UI.DragDropManager;Mb=v.attach(M,{ontargetenter:Nc,ontargetleave:Oc,ondragend:Rc});var e=n.length;for(var c=0;c<e;c++)M.addTargetElement(n[c],"MonthViewDayCell");M.start(Wb,false,false);Gb=null;Hb=null}}else{v.detach(pb);jb=false}}function Sc(a){return a&&Dom.getNearestParentWithClass(a,"headerRow",d)&&a.tagName=="A"}function zc(b){a.fire("headerlinkclicked",{Date:b})}function Pc(a){return a&&Dom.getNearestParentWithClass(a,"bgCell",d)&&(a.tagName=="A"||a.tagName=="IMG")}function yc(a){return a&&Dom.getNearestParentWithClass(a,"collapseWeekControl",d)}function Nc(h){document.body.style.cursor="";document.body.style.cursor="auto";Dom.addClass(document.body,"+dragCursor");var c=kc(h.Package.target.element);if(!T)T=c;var d=Calendar.Date.getDayDifference(T,c);if(d==0)return;else{var e={StartDate:j.DateStart.getDatePart(),EndDate:j.DateEnd.getDatePart()};j.DateStart=j.DateStart.addDays(d);j.DateEnd=j.DateEnd.addDays(d);var g={StartDate:j.DateStart.getDatePart(),EndDate:j.DateEnd.getDatePart()},f=Calendar.EventGridHelper.getCoveredGroupsFromRanges(e,g,b,q.length,i());a.updateEvents([j],f,true);T=c}}function Oc(){Dom.addClass(document.body,"-dragCursor");document.body.style.cursor="no-drop"}function Rc(){Calendar.DragDrop.onEventDragEnd(d,Pb,a,{Context:"MonthGrid Drag Drop",DragType:Calendar.DragDrop.DragType.Move,Event:Calendar.Event.cloneEvent(j),OriginalEvent:Calendar.Event.cloneEvent(sb),OldDateStart:yb,OldDateEnd:Bb,DateStart:j.DateStart,DateEnd:j.DateEnd,Guid:j.Guid});lb=false;T=null;j=sb=null;Dom.addClass(document.body,"-dragCursor");v.detach(Mb);M.dispose();M=null}function Kc(h){var i=h.keyCode;switch(i){case Dom.KeyCode.Delete:if(a.getSelectedEventIds().length>0)a.fire("deleteevent",null);return false;case Dom.KeyCode.RightArrow:case Dom.KeyCode.LeftArrow:case Dom.KeyCode.DownArrow:case Dom.KeyCode.UpArrow:case Dom.KeyCode.Tab:var p=window.document.activeElement;if(p){var f=-1,j,d=p.id.split("_"),n=false;if(d.length>1)if(d[0]=="cellHeader"){f=d[1];j=r.Header}else if(d[0]=="cellFigure"||d[0]=="cellCharm"){f=d[1];j=r.Figure}else if(d[0]=="cellMore"){f=d[1];j=r.More}else if(d[0]=="showLessLink"){f=parseInt(d[1])*7+6;n=true}if(f==-1)break;var c=parseInt(f);if(!n)if(i==Dom.KeyCode.RightArrow)c++;else if(i==Dom.KeyCode.LeftArrow)c--;else if(i==Dom.KeyCode.UpArrow&&!x)c-=7;else if(i==Dom.KeyCode.DownArrow&&!x)c+=7;if(i==Dom.KeyCode.Tab){var g=false;if(!n){var u=j==r.Figure?p.parentElement.parentElement:null;g=a.selectItemInCell(c,j,!h.shiftKey,u)}else if(h.shiftKey)g=a.selectItemInCell(c,r.AfterCell,false,null);if(!g){var m=Math.floor(f/7),s=f%7;if(!h.shiftKey){if(!n&&s==6&&l[m])g=Jb(m);if(!g)if(c<k-1)c++;else{F.tabIndex=0;try{F.focus()}catch(t){}F.tabIndex=-1}}else if(c!=0){if(s==0&&m!=0&&l[m-1])g=Jb(m-1);if(!g)g=a.selectItemInCell(c-1,3,false,null)}}if(g){h.returnValue=false;return false}}var o=0;if(c<0)if(x)c=0;else{c+=7;o=-1}else if(c>=k)if(x)c=k-1;else{c-=7;o=1}if(o!=0){lc(o);ab(Calendar.MonthGridDisplayMode.Weeks,b.clone(),e.clone(),true,true,0,true);f=-1}if(c!=f){var q=Dom.getDescendantsWithClass(eb[c],"dateCellTitle",1,"A")[0];if(q){try{q.focus()}catch(t){}h.returnValue=false;return false}}}}}function Jb(b){var a=$("showLessLink_"+b);if(a){try{a.focus()}catch(c){}return true}return false}function Zb(b){var a=window.document.getElementById("cellMore_"+b);if(a&&a.style.visibility!="hidden")return a;return null}function ec(h,s,j){if(O)if(kb())return;var f=j?1:-1,r=f*Calendar.Date.NumberOfDaysInWeek;switch(h){case Calendar.WheelControl.Message.onWheelMoved:lc(f);break;case Calendar.WheelControl.Message.onWheelStarted:if(o)o.disableGridExpansionLinks(true);p=Calendar.MonthGridDisplayMode.Weeks;Eb=true;a.clearBackgroundSelection();L={};var l=k/i(),g=bb;for(var c=0;c<l;c++){var n=b.addDays(c*Calendar.Date.NumberOfDaysInWeek).valueOf();L[n]=g[c].cells[0].innerHTML}var d=Dom.getDescendantsWithClass(m,"bgCell",-1,"TD"),q=d.length;for(var c=0;c<q;c++)d[c].firstChild.style.visibility="hidden";a.fire("stopallpopupsrequested",{stop:true});break;case Calendar.WheelControl.Message.onWheelStopped:Eb=false;L=null;ab(Calendar.MonthGridDisplayMode.Weeks,b.clone(),e.clone(),true,true,0,true);a.fire("stopallpopupsrequested",{stop:false})}}function lc(d){var i=d*Calendar.Date.NumberOfDaysInWeek;b=b.addDays(i);b.moveToStartOfWeek();e=b.addDays(k-1);e.moveToEndOfWeek();z=new Calendar.Date;Qc(b.clone());var h=c.contentStrings.FromTo.format(b.toLongDateString(),e.getDatePart().toLongDateString());if(o)o.setTitleText(h);else{var f=g.getElement("dateLabel");if(f)f.innerHTML=h}a.fire("weekrangechanged",{StartDate:b.clone(),EndDate:e.clone(),numDaysShifted:d*Calendar.Date.NumberOfDaysInWeek})}function Qc(n){var h=i(),w=k/h,v=Calendar.Date.getDayDifference(n,z),D=Dom.getDescendantsWithClass(m,"weekdayRow",1,"TR")[0],j=D.cells[z.getDay()];if(v>=0&&v<Calendar.Date.NumberOfDaysInWeek)Dom.addClass(j,"+wbt");else if(Dom.isClassPresent(j,"wbt"))Dom.addClass(j,"-wbt");var l=0,y=R,x=Y,B=bb,C=Xb();for(var c=0;c<w;++c){var E=y[c],A=x[c],s=B[c],u=n.addDays(l).valueOf();if(L&&L[u])s.cells[0].innerHTML=L[u];else s.cells[0].innerHTML="";for(var e=0;e<h;++e){var d=E.cells[e],r=A.cells[e],a=[d],b=[r],f=n.addDays(l),o=f.isSameDayAs(z),g=false;if(!o&&e<h-1)g=f.addDays(1).isSameDayAs(z);var p=false;if(!o&&!g&&c<w-1)p=f.addDays(i()).isSameDayAs(z);if(o){a.push("+today");b.push("+today")}else if(g){a.push("+yesterday");b.push("+yesterday")}else if(Dom.isClassPresent(d,"today")){a.push("-today");b.push("-today")}else if(Dom.isClassPresent(d,"yesterday")){a.push("-yesterday");b.push("-yesterday")}if(p)b.push("+wbt");else if(Dom.isClassPresent(r,"wbt"))b.push("-wbt");var t=!Dom.isClassPresent(d,"lightcolor"),q=Ub(f,C);if(!t&&q)a.push("-lightcolor");if(t&&!q)a.push("+lightcolor");d.firstChild.firstChild.nodeValue=dc(f);Dom.addClass.apply(this,a);Dom.addClass.apply(this,b);++l}}}function dc(b){var a="";if(Sb)a=b.toAbbreviatedWeekdayDayString();else if(b.getDate()==1)a=b.toAbbreviatedMonthDayString();else a=b.toDayString();return a}function xc(g){a.fire("paginationaction");if(p==Calendar.MonthGridDisplayMode.Month)if(g.Package["ButtonClicked"]=="previous"){var c=b.addDays(-1),d=-1*Calendar.Date.getDaysInMonth(c.getFullYear(),c.getMonth());a.showMonth(c,d)}else{var f=Calendar.Date.average(b,e),d=Calendar.Date.getDaysInMonth(f.getFullYear(),f.getMonth());a.showMonth(e.addDays(1),d)}else if(p==Calendar.MonthGridDisplayMode.Weeks)if(g.Package["ButtonClicked"]=="previous")a.showWeekRange(b.addDays(-1*k),b.addDays(-1),-1*k);else a.showWeekRange(e.addDays(1),e.addDays(1*k),k)}function kc(c){var a=c.getAttribute("CellIndex");return b.addDays(a)}};Calendar.CalendarMonthGrid.registerClass("Calendar.CalendarMonthGrid","$Binding");Calendar.CalendarMonthGrid.Events=new $Enum("weekrangechanged","eventsrequested","selectionchanged","eventlinkclicked","backgroundlinkclicked","backgrounddblclicked","moreeventslinkclicked","headerlinkclicked","drageventended","deleteevent","itemEnterDayCell","paginationaction","drageventstarted","stopallpopupsrequested","onselectionstart","weekExpanded","weekCollapsed");MonthGridController=function(q){MonthGridController.initializeBase(this,arguments);var b=this,c=null,d=null,e=null,a=q;this.getPaginationSequenceID=function(){return "MonthGridPagination"};this.initController=function(){if(b.isInitialized())return;MonthGridController.callBaseMethod(b,"initController",arguments);c=b.getModel();d=b.getAppView();e=b.getAttachManager();e.attach(a,{weekrangechanged:l,eventsrequested:n,eventlinkclicked:m,backgroundlinkclicked:i,backgrounddblclicked:k,moreeventslinkclicked:j,headerlinkclicked:f,stopallpopupsrequested:h,weekExpanded:p,weekCollapsed:o,drageventended:b.eventDropped,paginationaction:b.paginationAction,drageventstarted:b.dragEventStarted,deleteevent:gController.deleteSelectedEvent,onselectionstart:gController.hideAllPopupDialogs});gController.registerCommands(b,["ShowMonth"]);gController.registerDragDropControl(a)};this.initDelayed=function(){MonthGridController.callBaseMethod(b,"initDelayed",arguments);a.initSelectionManager();a.initWheelControl()};this.dispose=function(){MonthGridController.callBaseMethod(b,"dispose",arguments);gController.unregisterCommands(b);d=a=c=e=null};this.isCurrentView=function(){return !Dom.isClassPresent(a._element,"displayNone")};this.doCommand=function(e,d){switch(e){case "ExpandGrid":if(b.isCurrentView()&&!a.getIsDayGridMode())a.expandGrid(c.returnCachedEventsByDateRange(a.getDisplayedRange(),true));break;case "CollapseGrid":if(b.isCurrentView()&&!a.getIsDayGridMode())a.collapseGrid(c.returnCachedEventsByDateRange(a.getDisplayedRange(),true));break;case "ShowMonth":if(b.isCurrentView()&&!a.getIsDayGridMode())a.showMonth(d.thisMonthDate,d.daysShifted)}MonthGridController.callBaseMethod(b,"doCommand",arguments)};function p(){gController.doCommand("TrackAction",{trackId:"GridExpansionExpandWeek"})}function o(){gController.doCommand("TrackAction",{trackId:"GridExpansionCollapseWeek"})}function l(a){var c=a.Package.StartDate.clone(),d=a.Package.EndDate.clone(),b={startDate:c,endDate:d,focusDate:null,dontBroadcast:true};gController.doCommand("SetSelection",b);gController.hideAllPopupDialogs()}function n(){var a=d.getLargestDisplayedRange();c.getEventsByDateRange(a.StartDate,a.EndDate,{ControlInstanceName:"calendarMonthGrid"})}function m(a){if(gHistoryEngine)gHistoryEngine.AddEventToHistory({eventId:a.Package.EventId,viewingName:gController.getCurrentViewName(),itemType:"event"},g,gController.closeFullScreenEventEditor);var b={itemType:"event",itemId:a.Package.EventId,calendarId:null,skipRecurrenceDialog:false};gController.doCommand("EditItem",b)}function g(a){gController.getItemDetailsAndEditFromHistory(a)}function k(b){if(a.getDisplayMode()!=Calendar.MonthGridDisplayMode.Days)gController.doCommand("LaunchEditor",{locationRect:b.Package["SourceElementRect"],control:a})}function i(b){if(a.getDisplayMode()!=Calendar.MonthGridDisplayMode.Days)gController.doCommand("ShowAddEventPopOver",{locationRect:b.Package["SourceElementRect"],timeSelection:gController.getSelectionRange(a),trackingName:"EventQuickAddFromGridAddLink"})}function j(){a.clearEventSelection();gController.doCommand("TrackAction",{trackId:"MonthGridPopover"})}function f(b,d){if(!d&&gHistoryEngine)gHistoryEngine.AddEventToHistory(b,f);var a=b.Package.Date,c={startDate:a,endDate:a,focusDate:a,dontBroadcast:false};gController.doCommand("SetSelection",c)}function h(b){var a=d.getControlInstance("calendarEnhancedPreview");if(a!=null)a.stopPreview(b.Package.stop);if(b.Package.stop)gController.hideAllPopupDialogs()}};MonthGridController.registerClass("MonthGridController","GridControllerBase")
