var AlertManager=function(){var d=null,f=$B.Mobile?true:false,b=f?15:35,c="OK",e="Cancel";function a(){if(typeof a.caller!="undefined"&&a.caller!=a.getInstance)throw new Error("Error: There is no public constructor for AlertManager. Use AlertManager.getInstance().");this.m_pVisibleAlert=null}a.getInstance=function(){if(d==null)d=new a;return d};a.setDefaultAlertWidth=function(a){var d=15,c=50;if(a>=d&&a<=c)b=a;else if(a<d)b=d;else if(a>c)b=c};a.setOKButtonTitle=function(a){if(a)c=a};a.getOKButtonTitle=function(){return c};a.setCancelButtonTitle=function(a){if(a)e=a};a.getCancelButtonTitle=function(){return e};a.downlevelIfRequired=function(b){var a=false;if(typeof Alert=="undefined"){alert(b.split("<!--wertrim='true'-->")[0]);a=true}return a};a.createInformationalAlert=function(g,d,e,f){var a=null;if(!AlertManager.downlevelIfRequired(d)){a=new Alert(Alert.Importance.low,g,d,false);a.setWidth(b);a.setHideCallback(AlertManager.cb_alertHidden);if(e)a.addButton(c,"OK",true,true);if(f)AlertManager.getInstance().showAlert(a)}return a};a.createWarningAlert=function(j,f,i,d,g,h,e){var a=null;if(!AlertManager.downlevelIfRequired(f)){a=new Alert(Alert.Importance.med,j,f,i);a.setWidth(b);a.setHideCallback(AlertManager.cb_alertHidden);if(d)a.setCallback(d);if(e)a.setContext(e);if(g)a.addButton(c,"OK",true,true);if(h)AlertManager.getInstance().showAlert(a)}return a};a.createErrorAlert=function(i,f,d,g,h,e){var a=null;if(!AlertManager.downlevelIfRequired(f)){a=new Alert(Alert.Importance.high,i,f,true,null);a.setWidth(b);a.setHideCallback(AlertManager.cb_alertHidden);if(d)a.setCallback(d);if(e)a.setContext(e);if(g)a.addButton(c,"OK",true,true);if(h)AlertManager.getInstance().showAlert(a)}return a};a.cb_alertHidden=function(a){if(a)AlertManager.getInstance().m_pVisibleAlert=null};a.prototype.showAlert=function(a){if(a){this.hideVisibleAlert();a.show();this.m_pVisibleAlert=a}};a.prototype.hideVisibleAlert=function(){if(this.m_pVisibleAlert!=null&&!this.m_pVisibleAlert.isClosing()){this.m_pVisibleAlert.cancel();this.m_pVisibleAlert=null}};return a}();var AdManager=function(){var b=null;function a(){if(typeof a.caller!="undefined"&&a.caller!=a.getInstance)throw new Error("Error: There is no public constructor for AdManager. Use AdManager.getInstance().");this.adsEnabled=false;this.handlerInstance={}}a.getInstance=function(){if(b==null)b=new a;return b};a.getScrollbarObject=function(c){var b=document.createElement("DIV");b.innerHTML=a.getScrollbarHtml(c);return b.firstChild};a.getScrollbarHtml=function(b){var a=new $StringBuilder;a.append("<div class='scrollController'");a.append(b.getIdTag("scrollController"));a.append("><div");a.append(b.getIdTag("scrollSizer"));a.append("></div></div>");return a.toString()};a.scrollController=function(a){return a.getElement("scrollController")};a.scrollSizer=function(a){return a.getElement("scrollSizer")};a.setScrollHeight=function(a,c,b){if(this.scrollSizer(a)&&$(c)){this.scrollSizer(a).style.pixelHeight=Math.max($(c).scrollHeight,b.scrollHeight);if($(c).scrollHeight>this.scrollController(a).style.pixelHeight){b.style.overflowY="scroll";this.scrollController(a).style.visibility="visible"}else{b.style.overflowY="auto";this.scrollController(a).style.visibility="hidden"}}};a.setAdContainerHeight=function(a,b){if($(a))$(a).parentNode.style.pixelHeight=b};a.scrollToTop=function(b){if(a.scrollController(b))a.scrollController(b).scrollTop=0};a.prototype.attachHandlers=function(c,e,d){var a=new Calendar.AdManagerHandlers(c,e,d);a.attach();b.handlerInstance[c.getId("__AdManagerHandlers__")]=a};a.prototype.detachHandlers=function(a){if(b.handlerInstance[a.getId("__AdManagerHandlers__")])b.handlerInstance[a.getId("__AdManagerHandlers__")].detach()};a.prototype.updateDisplay=function(c){var a;switch(c){case CAL.DisplayView.MonthView:case CAL.DisplayView.WeekView:case CAL.DisplayView.CalendarSharingSettingsView:a=false;break;default:a=true}if(!b.adsEnabled)a=false;Dom.addClass($("bodyContainer"),(a?"-":"+")+"noAd160x600")};a.prototype.Refresh=function(){if(b.adsEnabled){for(var d=0;d<$AdConfig.Data.length;d++){var a=$AdConfig.Data[d],f=$(a[0]);if($(a[0]).currentStyle.display!="none"){var g=f.getAttributeNode("init");if(!g){$Ads.InitAd(a);var e=document.createAttribute("init");e.value=true;f.setAttributeNode(e)}}}$Ads.Refresh();c(AD160_600)}};function c(a){if($(a))$(a).parentNode.scrollTop=0}return a}();Calendar.AdManagerHandlers=function(l,h,k){var a=l,e=h,b=k,d=null,c=null;this.attach=function(){d=new Calendar.EventHandlerManager;d.attach(AdManager.scrollController(a),{onscroll:j,onmousedown:g,onmouseup:g},b,{onscroll:f,onmousewheel:i})};this.detach=function(){d.dispose();c=null};function g(a){if(!$B.IE)switch(a.type){case "mouseup":c=d.attach(b,{onscroll:f});break;case "mousedown":if(c)d.detach(c);c=null}}function j(){if($(e)){if(typeof AdManager.scrollController(a).lastTop=="undefined")AdManager.scrollController(a).lastTop=b.scrollTop;$(h).parentNode.scrollTop+=AdManager.scrollController(a).scrollTop-AdManager.scrollController(a).lastTop;AdManager.scrollController(a).lastTop=AdManager.scrollController(a).scrollTop;b.scrollTop=AdManager.scrollController(a).scrollTop}}function f(){if($(e)){$(e).parentNode.scrollTop+=b.scrollTop-AdManager.scrollController(a).scrollTop;AdManager.scrollController(a).scrollTop=b.scrollTop}}function i(){var d=true;if(!$B.IE&&b.scrollHeight!=b.clientHeight)d=false;if($(e)&&d){var c=1;if($B.IE)c=event.wheelDelta/40;else if(event.detail)c=event.detail*-4;AdManager.scrollController(a).scrollTop+=-c}}};var CharmsManager=function(){var b=null,c=null;function a(){this.m_charms={};this.m_numCharms=0;this.m_mktCharms={};this.m_numMarketCharms=0;for(var b in gCharmsConfig){var d=gCharmsConfig[b];if($B.IE&&$B.V<7)b+="_ie6";for(var a in d){var c=d[a],e=new Charm(b,a,c);this.m_charms[a]=e;this.m_numCharms++;if(c.charAt(0)=="+"){this.m_mktCharms[a]=e;this.m_numMarketCharms++}}}}a.getInstance=function(){if(b==null)b=new a;return b};a.setImagePath=function(a){c=a};a.getImagePath=function(){return m_pImagePath};a.prototype.getCharms=function(){return this.m_charms};a.prototype.getNumCharms=function(){return this.m_numCharms};a.prototype.getMarketCharms=function(){return this.m_mktCharms};a.prototype.getNumMarketCharms=function(){return this.m_numMarketCharms};a.prototype.getCharm=function(b){var a=this.m_charms[b.toUpperCase()];return a};return a}();Charm=function(b,c,a){this.m_id=c;this.m_altText=null;this.m_isSelected=false;this.m_imgCluster=b+".png";this.m_topPos=0;this.m_leftPos=0;this.parse(a)};Charm.prototype.setIsSelected=function(a){this.m_isSelected=a};Charm.prototype.altText=function(){return this.m_altText};Charm.prototype.parse=function(b){var a=b.split(":");this.m_altText=a[0].slice(1);this.m_topPos=a[1];this.m_leftPos=a[2]};Charm.prototype.render=function(e,d,b,c){var a=new $StringBuilder;a.append("<div class='Charm");if(!c)a.append(this.m_isSelected?" buttonPressed'":" buttonRest'");else a.append("'");if(e){a.append(" charmId='");a.append(this.m_id);a.append("'")}if(d)a.append(getEffectHandlerAttributesHtml(false));a.append(">");if(b)a.append("<a href='javascript:;' class='localAction'>");a.append("<div class='charmClip16x16'><img src='");a.append(CharmsManager.getImagePath());a.append(this.m_imgCluster);a.append("' alt='");a.append(this.m_altText);a.append("' title='' style='top:");a.append(this.m_topPos);a.append("px;left:");a.append(this.m_leftPos);a.append("px;'");a.append(" /></div>");if(b)a.append("</a>");a.append("</div>");return a.toString()};Charm.prototype.getElement=function(d,b,c){var a=document.createElement("DIV");a.innerHTML=this.render(d,b,c);return a.firstChild};CharmPicker=function(s,r,p,l,o){var k=5,h=this,a=null,b=l==""?null:l,q=s,g=null,d=p,i=new Calendar.IdManager,e=new Calendar.EventHandlerManager,c=false,u=o;this.setSelectedCharmId=function(d,a){b=d;c=a;f()};this.getSelectedCharmId=function(){return b};this.show=function(){var b=WebUtilities.getLocation(d,Dom.getOffsetPositionedParent(d));n();if(a){a.onClick.attach(j);a.show(b)}};this.hide=function(){if(a){a.onClick.detach(j);e.detachAll();a.hide()}};this.dispose=function(){e.dispose();if(a)a.dispose();h=a=b=q=g=d=i=e=null};this.setNoneString=function(b,c){var a=new $StringBuilder;if(c){a.append("<div class='charmPickerUseDefault'>");a.append(CharmsManager.getInstance().getCharm(c).render(false,false,false,true));a.append(b);a.append("</div>")}else a.append(b);g=a.toString()};this.rerender=function(){f()};function t(){h.setNoneString(r);f()}function f(){e.detachAll();var a=new $StringBuilder;a.append("<table class='charmPickerControlTable'><tr><td><table class='charmPicker'");a.append(i.getIdTag("charmPicker"));a.append("><tr><td");if(!c)a.append(" class='clickable'");a.append(">");if(!c)a.append("<a href='javascript:;'>");if(b){var f=CharmsManager.getInstance().getCharm(b);if(f)a.append(f.render())}else{a.append("<div class='charmPickerNone'>");a.append(g);a.append("</div>")}if(!c)a.append("</a>");a.append("</td>");if(!c){a.append("<td class='clickable'><span class='c_chev'");a.append(">&#9660;</span></td>")}a.append("</tr></table></td></tr></table>");d.innerHTML=a.toString();if(!c)e.attach($(i.getId("charmPicker")),{onclick:m})}function m(){if(!a)a=new Calendar.SimplePopup(d,{closeOnFocusOut:true,m_dontRepositionYAxis:$B.Mobile?true:false});h.show()}function n(){var c=new $StringBuilder;c.append("<div class='charmPickerContainer'");c.append("><table class='charmPickerTable'>");c.append("<tr><td colspan='5'><a href='javascript:;' class='localAction'><div class='charmPickerNonePopup TextSizeNormal");c.append(b?" buttonRest'":" buttonPressed'");c.append(getEffectHandlerAttributesHtml(false));c.append(">");c.append(g);c.append("</div></a></td></tr>");var f=CharmsManager.getInstance().getMarketCharms(),d=0;for(var h in f){var e=f[h];e.setIsSelected(e.m_id==(b?b.toUpperCase():null));d++;if(d%k==1)c.append("<tr>");c.append("<td>");c.append(e.render(true,true,true));c.append("</td>");if(d%k==0)c.append("</tr>")}c.append("</table></div>");a.setContent(c.toString(),"")}function j(c){b=null;var a=Dom.getNearestParentWithClass(c.Package.srcElement,"Charm",d);if(a!=null)b=a.getAttribute("charmId");h.hide();f()}t()};CharmSegmentManager=function(d){var b=$B.IE?4:6,e=this,c=d,a={};this.addCharm=function(g,e,h){var f=e.toString(),d=a[f];if(!d){d=new CharmSegment(c,e,h-b);a[f]=d}return d.insertCharm(g,e)};this.removeCharm=function(e,f){var d=f.toString(),b=a[d],c=null;if(b){c=b.removeCharm(e);if(b.getNumberOfCharms()==0)delete a[d]}return c};this.clearCharms=function(){for(var b in a){a[b].dispose();delete a[b]}};this.updateLayout=function(){for(var b in a)a[b].updateLayout()}};CharmSegment=function(r,k,p){var o=18,q=this,c=[],a=[],e=r,b=0;s(k,p);this.dispose=function(){c.clear();a.clear();e=q=c=a=null};this.getNumberOfCharms=function(){return c.length};this.insertCharm=function(h,p){var r=h.Charm,s=h.Event,e=r.getElement(false,false,true);e.className+=" enhPreview";e.DataSource={ItemId:s.CacheEventId,ItemType:"event"};e.ParentFigure=h;e.getElementsByTagName("A")[0].id="cellCharm_"+p;var k=null,q=a[a.length-1];if(q.childNodes.length==b)k=f();var o=n(e),j=Math.floor(o/b),l=o%b,g=a[j];if(l==g.childNodes.length)g.appendChild(e);else g.insertBefore(e,g.hasChildNodes()?g.childNodes[l]:null);if(j<a.length-1)for(var c=j;c<a.length-1;c++){var m=a[c].removeChild(a[c].lastChild);a[c+1].insertBefore(m,a[c+1].hasChildNodes()?a[c+1].firstChild:null);d(m,a[c+1])}if(k)i(k);return g};this.removeCharm=function(l){for(var f=0;f<c.length;f++)if(c[f].ParentFigure==l){var j=c[f],g=Math.floor(f/b),n=f%b,k=a[g];c.remove(j);k.removeChild(j);if(!k.hasChildNodes()){var m=a.removeAt(g);return m.removeNode(true)}else if(g<a.length-1){for(var e=g;e<a.length-1;e++){var i=a[e+1].removeChild(a[e+1].firstChild);a[e].appendChild(i);d(i,a[e])}h()}break}return null};this.updateLayout=function(){var k=l(),n=a[0].childNodes.length;if(b<n){while(a.length<k)i(f());for(var c=0;c<k;c++){var r=a[c].childNodes.length-b;for(var q=r;q>0;q--){var m=a[c].removeChild(a[c].lastChild);a[c+1].insertBefore(m,a[c+1].hasChildNodes()?a[c+1].firstChild:null);d(m,a[c+1])}}j()}else if(b>n&&a.length>1){var s=k;for(var e=0;e<s;e++){var o=b-a[e].childNodes.length,t=0,g=e+1;while(o&&g<a.length)if(a[g].hasChildNodes()){var m=a[g].removeChild(a[g].firstChild);a[e].appendChild(m);d(m,a[e]);o--}else g++}for(var p=a.length-k;p>0;p--)h();j()}};function s(b,a){g(a);f(b)}function f(){var b=document.createElement("DIV");b.className="charmSegment monthViewEventItem segmentContainer";b.IsCharmSegment=true;b.DayOffset=k;b.DaySpan=1;a.push(b);return b}function h(){if(!a[a.length-1].hasChildNodes()){var b=a.pop();e.removeCharmSegment(b);b.removeNode(true)}}function i(a){e.addCharmSegment(a)}function j(){e.updateCharmSegments()}function l(){g();return Math.ceil(c.length/b)}function g(d){var g=2,e=a[0],c=d?d:e?e.clientWidth:0;if(!$B.IE&&!d)c-=g;if(c){var f=c;b=Math.max(Math.floor(f/o),0)}else b=0;return b}function d(a,b){a.ParentFigure.Segments.clear();a.ParentFigure.Segments.push(b)}function m(f,g){var a=f.ParentFigure.Event,b=g.ParentFigure.Event;if(!a.IsAllDayEvent&&b.IsAllDayEvent)return 1;if(a.IsAllDayEvent&&!b.IsAllDayEvent)return -1;if(a.IsAllDayEvent)return a.CreatedDate.valueOf()-b.CreatedDate.valueOf();var d=a.DateStart,e=b.DateStart,c=d.valueOf()-e.valueOf();if(c!=0)return c;return a.CreatedDate.valueOf()-b.CreatedDate.valueOf()}function n(a){var b=c.findInsertLoc(a,m);c.insert(b,a);return b}};Calendar.MiniCalendar=function(I,g){var b=this,o=null,f=null,e=null,n=false,i=false,a={StartDate:null,EndDate:null},C=6,B=null,w=null,v=null,u=null,R=null,l=null,m=null,d=null,G=null,A=null,y=false,c=new Calendar.IdManager,H="",h=new Calendar.EventHandlerManager,z=null,x=null;Calendar.MiniCalendar.initializeBase(this,arguments);g=this.getParameters();this.getController=function(){return o};this.initialize=function(){Calendar.MiniCalendar.callBaseMethod(this,"initialize",arguments);if(g.disallowMultiDaySelection)y=true;if(g.imagePath)H=g.imagePath;var a=new Calendar.Date;f=a.getFullYear();e=a.getMonth();G=Calendar.Date.AbbreviatedMonthNames;A=Calendar.Date.OneCharDayNames;M(a);h.attach(I,{onmousedown:O,onmouseup:E,onkeypress:Q});o=new MiniCalendarController(b)};this.dispose=function(){Calendar.MiniCalendar.callBaseMethod(this,"dispose",arguments);if(o)o.dispose();h.dispose();b=a=G=c=h=null;H=d=l=R=null;m=m_contentStrings=w=v=null;u=B=null};this.getIDManager=function(){return c};this.getDisplayedYear=function(){return f};this.getDisplayedMonth=function(){return e};this.getSelectionRange=function(){var b={StartDate:null,EndDate:null};if(a.StartDate!=null)var b={StartDate:a.StartDate.clone(),EndDate:a.EndDate.clone()};return b};this.forceSetSelection=function(b,c,a,d){if(b&&b!=Calendar.MiniCalendar.None)b=b.clone();if(c&&c!=Calendar.MiniCalendar.None)c=c.clone();if(!b&&!c&&!a)a=new Calendar.Date;else if(a)a=a.clone();r(b,c,false);t(a,d,true)};this.setSelection=function(b,c,e,d){if((b==a.StartDate||b!=Calendar.MiniCalendar.None&&a.StartDate!=Calendar.MiniCalendar.None&&Calendar.Date.datesAreEqual(b,a.StartDate))&&(c==a.EndDate||c!=Calendar.MiniCalendar.None&&a.EndDate!=Calendar.MiniCalendar.None&&Calendar.Date.datesAreEqual(c,a.EndDate)))return;this.forceSetSelection(b,c,e,d)};this.changeCalendarBusyDayStatus=function(f){var b=d.firstChild.childNodes[1],e=0;for(var a=0;a<b.childNodes.length;a++){var g=b.childNodes[a];for(j=0;j<Calendar.Date.NumberOfDaysInWeek;j++){var c=g.childNodes[j];if(f[e]==true)c.style.fontWeight="bold";else c.style.fontWeight="normal";e++}}};this.getFirstDayDisplayed=function(){return l};this.getLastDayDisplayed=function(){return m};this.getDisplayedRange=function(){return {StartDate:l,EndDate:m}};function D(a,b){var c;if(b){var e=Calendar.Date.min(a,b),d=Calendar.Date.max(a,b);c=Calendar.Date.average(e,d)}else c=a;return c}this.calculateDisplayedRange=function(m,o){var c={},f=D(m,o),b=f.getFullYear(),a=f.getMonth(),i=new Calendar.Date(b,a,1,0,0),p=i.getDay(),e=(p-Calendar.Date.FirstDayOfWeek+7)%7,j=Calendar.Date.getDaysInMonth(b,a),k=e,n=C*7,d=n-j;if(k=0)c.StartDate=new Calendar.Date(b,a,1,0);else{var g=a==0?11:a-1,h=a==0?b-1:b,l=Calendar.Date.getDaysInMonth(h,g);c.StartDate=new Calendar.Date(h,g,l-(e-1),0);d=d-e}c.EndDate=new Calendar.Date(a==11?b+1:b,a==11?0:a+1,d,0);c.EndDate.moveToEndOfDay();return c};this.checkAndChangeViewingMonth=function(g,h){var a=null;if(g==Calendar.MiniCalendar.None&&h==Calendar.MiniCalendar.None)a=new Calendar.Date;else a=D(g,h);var c=a.getFullYear(),b=a.getMonth();if(c==f&&b==e)return;if(c!=f||b!=e){f=c;e=b;u.innerText=a.toYearMonthString()}var i=F(a);d.innerHTML=i};function r(c,d,b){n=true;a.StartDate=c;a.EndDate=d;s();if(b)q()}function t(e,g,f){b.fire("beforeselectionchanged",{focusDate:e,range:a,visiblerange:b.getDisplayedRange()});s();if(e)b.checkAndChangeViewingMonth(e);else b.checkAndChangeViewingMonth(a.StartDate,a.EndDate);q();n=false;var c=a.StartDate,d=a.EndDate;if(c!=Calendar.MiniCalendar.None)c=c.clone();if(d!=Calendar.MiniCalendar.None)d=d.clone();if(!g)b.fire("selectionchanged",{startDate:c,endDate:d,isMouseSelection:!f})}function k(c,d,e){var a;for(var b=0;b<c.length;b++){a=Dom.getNearestParentWithClass(d,c[b],e);if(a)return a}return null}function O(c){if(c.button!=$Browser.Button.LEFT)return;var b=k(["lastMonthDate","curMonthDate","nextMonthDate","pickTodayLink","pickNoneLink"],c.srcElement,d);if(b==null)return;var e=p(b),a=e;if(a!=Calendar.MiniCalendar.None)a=a.clone();r(e,a,true);if(!y){i=true;if($B.IE)d.setCapture(true);z=h.attach(d,{onmouseover:P});if(!$B.IE)x=h.attach(document.body,{onmouseup:N})}}function N(a){E(a)}function P(f){if(i)b.fire("drageventstarted");i=false;var c=k(["lastMonthDate","curMonthDate","nextMonthDate"],f.srcElement,d);if(c==null)return;var e=p(c);a.EndDate=e;q()}function E(a){if(i&&k(["lastMonthDate","curMonthDate","nextMonthDate","pickTodayLink","pickNoneLink"],a.srcElement,d))b.fire("clickaction");i=false;if(!n)return;h.detach(z);d.releaseCapture();s();t(null);if(!$B.IE){h.detach(x);event.cancelBubble=true;return false}}function Q(b){if(b.keyCode==Dom.KeyCode.Enter){var a=k(["lastMonthDate","curMonthDate","nextMonthDate","pickTodayLink"],b.srcElement,d);if(a==null)return;var c=p(a),e=c.clone();r(c,e,false);t()}event.cancelBubble=true;return false}function s(){if(a.StartDate==Calendar.MiniCalendar.None||a.EndDate==Calendar.MiniCalendar.None)return;if(a.StartDate>a.EndDate){var b=a.StartDate;a.StartDate=a.EndDate;a.EndDate=b}a.StartDate.moveToStartOfDay();a.EndDate.moveToEndOfDay()}function p(b){var d=f,a=e,c=b.className.split(" ")[0];switch(c){case "curMonthDate":break;case "lastMonthDate":a--;break;case "nextMonthDate":a++;break;case "pickTodayLink":return new Calendar.Date;case "pickNoneLink":return Calendar.MiniCalendar.None;default:return null}return new Calendar.Date(d,a,b.firstChild.innerText)}function q(){var g=a.StartDate!=Calendar.MiniCalendar.None&&a.EndDate!=Calendar.MiniCalendar.None,f=null,j=null;if(g){f=Calendar.Date.min(a.StartDate,a.EndDate).clone();var j=Calendar.Date.max(a.StartDate,a.EndDate).clone();f.moveToStartOfDay();j.moveToStartOfDay()}var h=d.firstChild.childNodes[1],b=null;for(var e=0;e<h.childNodes.length;e++){var l=h.childNodes[e];for(var c=0;c<Calendar.Date.NumberOfDaysInWeek;c++){var i=l.childNodes[c];if(!b)b=p(i);else b=b.addDays(1);if(n){var k=g&&b.isBetween(f,j);Dom.addClass(i,(k?"+":"-")+"selected")}}}}function M(b){var a=new $StringBuilder;a.append("<div class='miniCalendarHolder' ");a.append(c.getIdTag("miniCalendarHolder"));a.append("><div class='miniCalendarHeader'>");a.append("<div class='switchMonthBtn leftSideLargeMargin'"+c.getIdTag("prevMonthBtn")+">");a.append("<a href='#'");a.append(">");a.append(Calendar.GetClusteredImageHtml("clip10x10","nav_left_dark",g.contentStrings.previousMonth,"nav_left_h"));a.append("</a></div>");a.append("<span");a.append(c.getIdTag("headerText"));a.append(">");a.append(b.toYearMonthString());a.append("</span>");a.append("<div class='switchMonthBtn rightSideLargeMargin'"+c.getIdTag("nextMonthBtn")+">");a.append("<a href='#'");a.append(">");a.append(Calendar.GetClusteredImageHtml("clip10x10","nav_right_dark",g.contentStrings.nextMonth,"nav_right_h"));a.append("</a></div></div>");a.append("<div class='miniCalendarBody'"+c.getIdTag("miniCalendarBody")+">"+F(b)+"</div>");if(g.showTodayLink){a.append("<div class='pickTodayLink'"+c.getIdTag("pickTodayLink")+"><a href='#'");a.append(">"+g.contentStrings.today+"</a></div>")}if(g.showNoneLink){a.append("<div class='pickNoneLink'"+c.getIdTag("pickNoneLink")+"><a href='#'");a.append(">"+g.contentStrings.noDate+"</a></div>")}a.append("</div>");I.innerHTML=a.toString();w=c.getElement("prevMonthBtn");u=c.getElement("headerText");v=c.getElement("nextMonthBtn");d=c.getElement("miniCalendarBody");B=c.getElement("miniCalendarHolder");h.attach(w,{onclick:K},v,{onclick:L})}function F(d){var c=J(d),a=new $StringBuilder;a.append("<table class='miniCalendarTable TextSizeXSmall'><thead><tr>");for(var b=0;b<7;b++){var e=(b+Calendar.Date.FirstDayOfWeek)%7;a.append("<th");a.append(">");a.append(A[e]);a.append("</th>")}a.append("</tr><tr><td colspan='7' class='headerSeparator'></td></tr></thead><tbody>");a.append(c.toString());a.append("</tbody></table>");return a.toString()}function J(r){var e=r.getFullYear(),d=r.getMonth(),s=new Calendar.Date(e,d,1,0,0),v=s.getDay(),n=(v-Calendar.Date.FirstDayOfWeek+7)%7,t=Calendar.Date.getDaysInMonth(e,d),u=d==0?Calendar.Date.getDaysInMonth(e-1,11):Calendar.Date.getDaysInMonth(e,d-1),i=null,b=new $StringBuilder,h=null,p=null,o=1,q=1;if(a.StartDate&&a.StartDate!=Calendar.MiniCalendar.None&&a.EndDate&&a.EndDate!=Calendar.MiniCalendar.None)i={StartDate:a.StartDate.getDatePart(),EndDate:a.EndDate.getDatePart()};for(var k=0;k<C;k++){b.append("<tr>");for(j=0;j<Calendar.Date.NumberOfDaysInWeek;j++){var w="",c=null,f=null,g=[];if(k==0&&j<=n-1){f=u-n+j+1;c=new Calendar.Date(e,d-1,f,0,0);g.push("lastMonthDate");if(!h)h=c.clone()}else if(k==0&&j>n||o<=t){f=o;c=new Calendar.Date(e,d,f,0,0);g.push("curMonthDate");if(!h)h=c.clone();o++}else{var f=q;c=new Calendar.Date(e,d+1,f,0,0);g.push("nextMonthDate");p=c.clone();q++}if(c.isToday())g.push("miniCalToday");if(i&&c.isBetween(i.StartDate,i.EndDate))g.push("selected");b.append("<td class='");b.append(g.join(" "));b.append("' ");b.append("><a href='#' ");b.append(getEffectHandlerAttributesHtml(true));b.append(">");b.append(f);b.append("</a></td>")}b.append("</tr>")}l=h;m=p;return b.toString()}function K(){b.fire("paginationaction");var c=f,a=e-1;if(a==-1){a=11;c=c-1}var d=new Calendar.Date(c,a,1);b.checkAndChangeViewingMonth(d);b.fire("displayedmonthchanged",{ViewingYear:f,ViewingMonth:e,MonthNumberNavigated:-1});return}function L(){b.fire("paginationaction");var c=f,a=e+1;if(a==12){a=0;c=c+1}var d=new Calendar.Date(c,a,1);b.checkAndChangeViewingMonth(d);b.fire("displayedmonthchanged",{ViewingYear:f,ViewingMonth:e,MonthNumberNavigated:1});return}};Calendar.MiniCalendar.registerClass("Calendar.MiniCalendar","$Binding");Calendar.MiniCalendar.Events=new $Enum("beforeselectionchanged","selectionchanged","displayedmonthchanged","paginationaction","clickaction","drageventstarted");Calendar.MiniCalendar.None="None";var __MINICALENDAR_LOADED=true;Calendar.PublishedPublicToolbarInfo=function(){this.viewElements={MonthView:["toolbar_addtocal","miniCal","calendarMonthGrid","toolbar_gridview_print","toolbar_gridview_separator","toolbar_today","toolbar_nextFourWeeks","accHintLink","accContentLink"],WeekView:["toolbar_addtocal","miniCal","calendardayContent","toolbar_gridview_print","toolbar_gridview_separator","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink"],DayView:["toolbar_addtocal","miniCal","calendardayContent","toolbar_gridview_print","toolbar_gridview_separator","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink",AD160_600],AgendaView:["toolbar_addtocal","miniCal","calendarAgendaView","toolbar_gridview_print","toolbar_gridview_separator","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink",AD160_600],ReadOnlyEventView:["toolbar_editevent_close","toolbar_editevent_separator","toolbar_editevent_print","fullScreenEventEditor","sidebarReturnLinkContainer",AD160_600]};this.pageSequenceNames={MonthView:"PublishedMonthView",WeekView:"PublishedWeekView",AgendaView:"PublishedAgendaView",DayView:"PublishedDayView",ReadOnlyEventView:"FullScreenReadOnly"}};Calendar.PublishedPrivateToolbarInfo=function(){this.viewElements={MonthView:["miniCal","calendarMonthGrid","toolbar_gridview_print","toolbar_today","toolbar_nextFourWeeks","accHintLink","accContentLink"],WeekView:["miniCal","calendardayContent","toolbar_gridview_print","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink"],DayView:["miniCal","calendardayContent","toolbar_gridview_print","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink",AD160_600],AgendaView:["miniCal","calendarAgendaView","toolbar_gridview_print","toolbar_today","toolbar_nextSevenDays","accHintLink","accContentLink",AD160_600],ReadOnlyEventView:["toolbar_editevent_close","toolbar_editevent_separator","toolbar_editevent_print","fullScreenEventEditor","sidebarReturnLinkContainer",AD160_600]};this.pageSequenceNames={MonthView:"PublishedMonthView",WeekView:"PublishedWeekView",AgendaView:"PublishedAgendaView",DayView:"PublishedDayView",ReadOnlyEventView:"FullScreenReadOnly"}};Calendar.ViewNavigator=function(q,d){var a=this,b=null,c=null,e=null,f=new Calendar.EventHandlerManager,h="calendarMonthTab",j="calendarWeekTab",k="calendarDayTab",g="calendarAgendaTab",i="calendarTaskTab",m=d.toolbarInfo.viewElements,l={MonthView:new Array(h),WeekView:new Array(j),DayView:new Array(k),AgendaView:new Array(g),TaskView:new Array(i)},p=d.toolbarInfo.pageSequenceNames;Calendar.ViewNavigator.initializeBase(this,arguments);d=this.getParameters();this.initialize=function(){Calendar.ViewNavigator.callBaseMethod(this,"initialize",arguments);e=$("calendarViewNavigatorTab");f.attach(e,{onclick:o});gController.registerCommands(a,["NavigateToView","NavigateToViewWithContext"])};this.dispose=function(){Calendar.ViewNavigator.callBaseMethod(this,"dispose",arguments);f.dispose();gController.unregisterCommands(a);a=e=f=null};this.doCommand=function(c,b){switch(c){case "NavigateToView":a.navigate(b);break;case "NavigateToViewWithContext":a.navigate(b.view,b.context)}};this.getCurrentViewName=function(){return b};this.getPreviousViewName=function(){return c};this.navigateToPreviousEventView=function(){n(c);if($B.IE)if(["INPUT","TEXTAREA"].contains(document.activeElement.tagName))document.activeElement.blur()};this.navigate=function(a,d){if(c==null)c=a;else if(!Calendar.isEventOrTaskView(a))if(Calendar.isEventOrTaskView(b))c=b;return n(a,d)};function n(c,g){var h=false,f=p[Calendar.getViewNameFromEnum(c)];if(g&&g.isTraditionalView==false)f=g.pageSequenceName;if(c!=b){AdManager.getInstance().updateDisplay(c);Dom.addClassToElementsInArray(m[Calendar.getViewNameFromEnum(b)],"+displayNone");Dom.addClassToElementsInArray(m[Calendar.getViewNameFromEnum(c)],"-displayNone");Dom.addClassToElementsInArray(l[Calendar.getViewNameFromEnum(b)],"-tabSelected");Dom.addClassToElementsInArray(l[Calendar.getViewNameFromEnum(c)],"+tabSelected");var k=c==CAL.DisplayView.DayView||c==CAL.DisplayView.WeekView||c==CAL.DisplayView.MonthView||c==CAL.DisplayView.AgendaView||c==CAL.DisplayView.TaskView;Dom.addClass(e,(k?"-":"+")+"displayNone");var j=c==CAL.DisplayView.NewEventView||c==CAL.DisplayView.ReadOnlyEventView||c==CAL.DisplayView.EditEventView;Dom.addClass(d.editorElem,(j?"-":"+")+"displayNone");var i=c==CAL.DisplayView.NewTaskView||c==CAL.DisplayView.ReadOnlyTaskView||c==CAL.DisplayView.EditTaskView;Dom.addClass(d.taskEditorElem,(i?"-":"+")+"displayNone");if(getSetting("monthGridExpansionMode")!="DontExpand")switch(c){case CAL.DisplayView.DayView:f="GridExpansionExpandedDayView";break;case CAL.DisplayView.WeekView:f="GridExpansionExpandedWeekView";break;case CAL.DisplayView.MonthView:f="GridExpansionExpandedMonthView"}gController.doCommand("TrackAction",{trackId:f});b=c;AdManager.getInstance().Refresh();h=true}else if(g&&g.isTraditionalView==false)gController.doCommand("TrackAction",{trackId:f});if(h)a.fire("viewnav_viewchanged",{viewname:b});return h}this.changeDisplay=function(b){a.fire("viewnav_requestdisplaychange",{button:b,currentView:a.getCurrentViewName(),newView:a.buttonToViewName(b)})};function o(d){if(!gController.getAppState().getIsDelayedInit()&&($B.IE&&$B.V<7))return;var c=null,b=d.srcElement;while(b!=null&&b.tagName!="A")b=b.parentElement;if(b!=null){switch(b.parentElement.id){case h:c=Calendar.ViewNavigatorButtons.Month;break;case j:c=Calendar.ViewNavigatorButtons.Week;break;case k:c=Calendar.ViewNavigatorButtons.Day;break;case g:c=Calendar.ViewNavigatorButtons.Agenda;break;case i:c=Calendar.ViewNavigatorButtons.Task}a.changeDisplay(c)}}this.buttonToViewName=function(a){switch(a){case Calendar.ViewNavigatorButtons.Month:return CAL.DisplayView.MonthView;case Calendar.ViewNavigatorButtons.Week:return CAL.DisplayView.WeekView;case Calendar.ViewNavigatorButtons.Day:return CAL.DisplayView.DayView;case Calendar.ViewNavigatorButtons.Agenda:return CAL.DisplayView.AgendaView;case Calendar.ViewNavigatorButtons.Task:return CAL.DisplayView.TaskView}}};Calendar.ViewNavigator.registerClass("Calendar.ViewNavigator","$Binding");Calendar.ViewNavigator.Events=new $Enum("viewnav_requestdisplaychange","viewnav_viewchanged");Calendar.ViewNavigatorButtons=new $Flags("Month",0,"Week",1,"Day",2,"Agenda",3,"Task",4);Calendar.DelayLoadManager=function(){var e=this,b=false,a=[];function c(b,c){a.queue({fn:b,params:c})}function d(a,b){a(b)}this.requireDelayLoad=c;this.setDelayLoadCompleted=function(){this.requireDelayLoad=d;b=true;while(a.length>0){var c=a.dequeue();c.fn(c.params)}};this.isDelayLoadCompleted=function(){return b}};Calendar.DelayLoadManager.registerClass("Calendar.DelayLoadManager");Calendar.OnDemandLoader=function(){var g=this,c=null,f=null,b=null,e=[],a=[];this.requireFeatures=function(i,n,m,k){for(var g=0;g<i.length;g++){var h=k.Features[i[g]];if(h){for(var j=0;j<h.length;j++){var l=h[j];if(!a.exists(l))a.push(l)}e.push(i[g])}}c=k;b=m;f=n;$Network.fetchScript(a.shift(),d)};this.go=function(){if(b)b(f)};function d(){if(a.length==0)c.notifyFeaturesLoaded(e,g);else $Network.fetchScript(a.shift(),d)}};Calendar.OnDemandLoader.registerClass("Calendar.OnDemandLoader");Calendar.OnDemandLoadManager=function(){var a=this,b=[];this.dispose=function(){a=b=a.Features=null};this.registerFeatures=function(b){a.Features=b};this.requireFeatures=function(e,f,d){var c=new Calendar.OnDemandLoader;b.push(c);c.requireFeatures(e,f,d,a)};this.notifyFeaturesLoaded=function(d,c){a.featuresloaded.fire({Names:d,OnDemandLoader:c});b.remove(c)}};Calendar.OnDemandLoadManager.prototype={featuresloaded:new $Event};Calendar.OnDemandLoadManager.registerClass("Calendar.OnDemandLoadManager");Calendar.GridNavigator=function(j,b){var f=this,i=null,a=new Calendar.IdManager,d=null,c=null;Calendar.GridNavigator.initializeBase(this,arguments);b=this.getParameters();var e=new Calendar.EventHandlerManager;this.initialize=function(){Calendar.GridNavigator.callBaseMethod(this,"initialize",arguments);i=b.imagePath?b.imagePath:"";var c=new $StringBuilder;c.append("<a class='navPagination' href=\"#\"");c.append(a.getIdTag("previousButton"));c.append(">");c.append(Calendar.GetClusteredImageHtml("clip10x10","nav_left_dark",b.contentStrings.Previous,"nav_left_h"));c.append("</a>");c.append("<a class='navPagination' href=\"#\"");c.append(a.getIdTag("nextButton"));c.append(">");c.append(Calendar.GetClusteredImageHtml("clip10x10","nav_right_dark",b.contentStrings.Next,"nav_right_h"));c.append("</a>");c.append("<h3");c.append(a.getIdTag("dateLabel"));c.append("></h3>");c.append("<div class='gridExpansionActions noPrint'>");c.append("<a");c.append(a.getIdTag("expandGrid"));c.append("href='javascript:;' onclick=\"javascript:doCommand('ExpandGrid');\"");c.append(">");c.append(b.contentStrings.GridExpansion.ShowMoreLink);c.append("</a>");c.append("<span class='seperator'>|</span>");c.append("<a");c.append(a.getIdTag("collapseGrid"));c.append("href='javascript:;' onclick=\"javascript:doCommand('CollapseGrid')\"");c.append(">");c.append(b.contentStrings.GridExpansion.ShowLessLink);c.append("</a>");c.append("</div>");j.innerHTML=c.toString();e.attach(a.getElement("previousButton"),{onclick:h},a.getElement("nextButton"),{onclick:g})};this.disableGridExpansionLinks=function(b){if(!d)d=a.getElement("expandGrid");if(!c)c=a.getElement("collapseGrid");if(b){Dom.disableLink(d);Dom.disableLink(c)}else{Dom.enableLink(d);Dom.enableLink(c)}};this.dispose=function(){Calendar.GridNavigator.callBaseMethod(this,"dispose",arguments);e.dispose();f=e=null};this.setTitleText=function(b){a.getElement("dateLabel").innerHTML=b};function h(){f.fire("navbuttonclicked",{ButtonClicked:"previous"})}function g(){f.fire("navbuttonclicked",{ButtonClicked:"next"})}};Calendar.GridNavigator.registerClass("Calendar.GridNavigator","$Binding");Calendar.GridNavigator.Events=new $Enum("viewmodechanged","navbuttonclicked");Calendar.InfoBar=function(i,o){var d=this;Calendar.InfoBar.initializeBase(this,arguments);o=this.getParameters();Calendar.InfoBar.MessageType=new $Enum("Toast","Alert","Simple");var j=null,a=null,b=null,c=null,e=null,f=0,k=null,g=new Calendar.EventHandlerManager,l=3,h=0,n=260,m=5e3;this.initialize=function(){Calendar.InfoBar.callBaseMethod(this,"initialize",arguments);j=o.contentStrings;gController.registerCommands(d,["HideInfoBar"])};this.doCommand=function(a){if(a=="HideInfoBar")d.removeInfoBar()};this.dispose=function(){g.dispose();gController.unregisterCommands(d);Calendar.InfoBar.callBaseMethod(this,"dispose",arguments);a=b=c=e=null};this.displayInfoBar=function(q,e){if(a!=null||b!=null)d.removeInfoBar();var f="infoBar",o=document.createElement("DIV");a=i.appendChild(o);if(e==Calendar.InfoBar.MessageType.Alert)f+=" Alert";if(e==Calendar.InfoBar.MessageType.Simple)f+=" Simple";a.className=f;var c=new $StringBuilder;if(e!=Calendar.InfoBar.MessageType.Simple){c.append("<table class='infoBarHeader'><tr>");c.append("<td class='infoBarHeaderText'");c.append("><h3>");c.append(j.Header);c.append("</h3></td><td class='infoBarClose'><a name='close' href='#close'>");c.append(Calendar.GetClusteredImageHtml("clip10x10","close_rest_dark",j.CloseAltText,"close_hover_light"));c.append("</a></td></tr></table>")}c.append("<div class='infoBarMessage'");c.append(">");c.append(q.encodeHtml());c.append("</div>");a.innerHTML=c.toString();var k=document.createElement("DIV");k.className="infoBarShadow";b=i.appendChild(k);g.attach(a,{onclick:r});if(e!=Calendar.InfoBar.MessageType.Simple&&n>0)a.style.width=n+"px";a.style.bottom=l+h+"px";var p=l+h+"px",m=h+"px";if(m_isBidi){a.style.left=p;b.style.left=m}else{a.style.right=p;b.style.right=m}b.style.bottom=h+"px";b.style.height=a.clientHeight+"px";b.style.width=a.clientWidth+"px";if(e!=Calendar.InfoBar.MessageType.Simple)s();o=k=null};this.removeInfoBar=function(){g.detachAll();if(c!=null)window.clearTimeout(c);if(a!=null)i.removeChild(a);if(b!=null)i.removeChild(b);a=b=e=c=null;f=0};function s(){if(a){e=new Date;g.attach(document.body,{onmousemove:q});c=window.setTimeout(d.removeInfoBar,m)}}function q(b){var a=b.srcElement;if(k!=null)window.clearTimeout(k);k=window.setTimeout(function(){p(a)},5)}function p(b){if(Dom.getNearestParentWithClass(b,"infoBar")){if(c!=null){window.clearTimeout(c);c=null;f=f+(new Date-e)}}else if(c==null){var a=m-f;if(a<0)a=0;c=window.setTimeout(d.removeInfoBar,a);e=new Date}}function r(c){var a=c.srcElement,b=null;if(a.tagName=="A")b=a.name;else if(a.tagName=="IMG")b=a.parentNode.parentNode.name;if(b!=null)d.removeInfoBar()}};Calendar.InfoBar.registerClass("Calendar.InfoBar","$Binding");registerNamespace("Calendar");Calendar.Model=function(){var d=this,c=null,a=null,e=null,b=0;this.getCalendarService=function(){return c};this.init=function(f,d){a=f;e=d;$Network.Events.onerror.attach(this.network_cb_onError);$Network.Events.onhttperror.attach(this.network_cb_onError);$Network.Events.onrequest.attach(g);$Network.Events.onfinished.attach(h);$Network.defaultTimeout=a.defaultfpptimeout;var b=new CAL.FppProxySettings;b.PartnerId=0;b.Version=a.fppversion;b.CommandType=a.fppcmd;b.SessionId=a.sessionidhash;b.CanaryToken=a.canary;b.DefaultRetry=a.fppretry;b.AuthUser=a.authuser;b.AllowDuplicate=true;c=CAL.initializeEx(a.fppUrl,b);c.FppProxySettings.DateType=c.FppDateType.Local};this.dispose=function(){a=e=c=d=boundElem=null};this.setFppError=function(a){d.network_cb_onError(a)};this._cb_processError=function(b,c,d,a){f(a,b,a?a.Message:null)};function g(c){if(a.enableloadingindicator&&c.type==$Network.Type.XMLPost){if(b==0)window.setTimeout(i,a.loadingindicatordelay);b++}}function h(){if(a.enableloadingindicator){b--;if(b<=0)d.fire("requestcomplete")}}function i(){if(b>0)d.fire("requestinprogress")}function f(c,a,b){if(a==Calendar.ErrorCodes.FppRequestTimeout||a==Calendar.ErrorCodes.HttpMisconfiguration||!b)errorContext={title:e["connectionErrorTitle"],message:e["connectionError"]};else errorContext={message:b,error:c};errorContext.errorCode=a;d.fire("servererror",errorContext)}this.network_cb_onError=function(a){if(a.Context&&a.Context.customError)return;f(a.Error,a.ErrorCode,a.Error?a.Error.Message:null)};Calendar.Model.registerBaseMethod(this,"init");Calendar.Model.registerBaseMethod(this,"dispose");Calendar.Model.registerBaseMethod(this,"_cb_processError");Calendar.Model.registerBaseMethod(this,"network_cb_onError")};Calendar.Model.registerClass("Calendar.Model");Calendar.Model.prototype=new $Event.DOM;Calendar.Model.Events=new $Enum("servererror","requestcomplete","requestinprogress");Calendar.DesktopModel=function(){Calendar.DesktopModel.initializeBase(this,arguments);var m_this=this,m_initParams=null,m_pCache=null,m_targetDate=null,m_pContentStrings=null,m_initView=CAL.DisplayView.MonthView,m_pSortedTasks=[],__isLimitedTasksMode=false,m_pTaskSortDelegate=null,m_pTasksCurrentMode={ShowCompletedTasks:false,DataReceived:false},m_pBootstrapPackage=null,m_pBootstrapRequestContext=null,m_pBootstrapRequestErrorStatus=null,m_isReadyForBootstrapPackage=false,m_isReadyForBootstrapPackageForDelayControls=false,m_isBootstrapComplete=false,ROWS_IN_MINI_CALENDAR=6,DAYS_IN_WEEK=7;this.init=function(a,b){m_initParams=a;Calendar.DesktopModel.callBaseMethod(m_this,"init",arguments);m_initView=a.initViewName;m_pContentStrings=b;m_pTaskSortDelegate=m_this.compareTasksByDate;m_pCache=new Calendar.ModelCache;m_pCache.initialize();m_targetDate=new Calendar.Date;if(getSetting("isRruPresent"))if(getSetting("targetDate"))m_targetDate=new Calendar.Date(parseInt(getSetting("targetDate"))*1e3);else if(m_initParams.alternatebootstraprangestart)m_targetDate=new Calendar.Date(m_initParams.alternatebootstraprangestart*1e3)};this.dispose=function(){Calendar.DesktopModel.callBaseMethod(m_this,"dispose",arguments);m_pCache.dispose();if(m_pSortedTasks)m_pSortedTasks.clear();m_pCache=m_pSortedTasks=m_pBootstrapPackage=m_pBootstrapRequestContext=m_pContentStrings=null};function _getBootstrapDateRange(){var a=new Calendar.Date(m_targetDate.getYear(),m_targetDate.getMonth(),1);a.moveToStartOfWeek();var b=a.addDays(ROWS_IN_MINI_CALENDAR*DAYS_IN_WEEK),c={DateRange:{StartDate:a,EndDate:b}};return c}this.initBootFetch=function(){var a=_getBootstrapDateRange();a.InnerContext={ControlInstanceName:"bootstrapControls",WaitForServer:false};m_this.getCalendarService().GetBootstrapPackage(a.DateRange.StartDate,a.DateRange.EndDate,_cb_bootstrap,a)};this.processBootData=function(bootstrapData){var fppPkg=eval(bootstrapData);if(fppPkg)if(fppPkg.Value.Calendars&&fppPkg.Value.Calendars.length)_initBootWithoutFetch(fppPkg.Value,fppPkg.OutRefParams.length?fppPkg.OutRefParams[0]:null);else _handleBootstrapFailure();else _handleBootstrapFailure()};function _handleBootstrapFailure(){m_this.fire("bootstrapfailed")}function _initBootWithoutFetch(b,c){var a=_getBootstrapDateRange();a.InnerContext={ControlInstanceName:"bootstrapControls",WaitForServer:false};m_this.setBootData(b,a,c)}this.getTargetDate=function(){return m_targetDate};function _cb_bootstrap(b,c,a){m_this.setBootData(b,c,a)}this.handleFirstRunExperience=function(a,c,b){m_this.getCalendarService().HandleFirstRunExperience(a,c,_cb_handleFirstRunExperience,{DoBootstrap:b,timeZone:a})};this.releaseBootstrapPackage=function(){if(m_pBootstrapPackage)_produceBootstrapData();else m_isReadyForBootstrapPackage=true;if(m_pBootstrapRequestErrorStatus&&_checkErrorsForSharingDownError(m_pBootstrapRequestErrorStatus.ErrorCode))_fireSharingDownEvent()};this.releaseBootstrapPackageForDelayLoadedControls=function(){if(m_pBootstrapPackage)_produceBootstrapDataForDelayLoadControls();else m_isReadyForBootstrapPackageForDelayControls=true};this.getAgendaViewDataForPrinting=function(c,d){var a={StartDate:c,EndDate:d},b=m_pCache.isEventQueryAnswerable(a);if(b)return m_pCache.getEventsByDateRange(a);return null};this.getAgendaViewData=function(a,b,d,e){var f={StartDate:a,EndDate:b},c={StartDate:d,EndDate:e},g={DateRange:c,ControlInstanceName:"calendarAgendaView",SearchRange:f};m_this.fire("agenda_data_requested",{DateRange:c});m_this.getEventsByDateRange(a,b,g,true)};this.returnCachedEventsByDateRange=function(b,d){var a=null,c=m_pCache.isEventQueryAnswerable(b);if(c)a=m_pCache.getEventsByDateRange(b);if(a.length&&!d)return Calendar.Event.cloneEvents(a);return a};this.getEventsByDateRange=function(h,i,e,d){if(m_isBootstrapComplete){var b={StartDate:h,EndDate:i},c=m_pCache.isEventQueryAnswerable(b);if(!c){var a=m_pCache.trimRangeToOnlyUncachedDates(b),g={DateRange:a,InnerContext:e,WaitForServer:d};m_this.getCalendarService().GetEventsByDateTimeAndCalendars(_getVisibleCalendars(),null,a.StartDate,a.EndDate,_cb_getEventsByDateRange,g)}if(!d||c){var f=m_pCache.getEventsByDateRange(b);if(f){_busyDaysStatusUpdated();m_this.fire("eventsexist",{events:Calendar.Event.cloneEvents(f),context:e})}}}};this.updateTaskProgress=function(d,c,b,e){if(m_pCache.isEventInCache(d)){var a=m_pCache.getEventById(d);if(a.EventProgress!=c){a.EventProgress=c;m_this.getCalendarService().UpdateEventWithStubResult(a,[CAL.PLEventFields.EventProgress],b.StartDate,b.EndDate,_cb_saveEvent,{EventSaved:a,InnerContext:e},m_this._cb_processError)}}};this.getFullEvent=function(f,d,e){var a=f,b=null,c=null;if(d)c=m_pCache.trimEventCacheToSingleRange(d);if(m_pCache.isEventInCache(a)){var g=m_pCache.getEventById(a);b=m_pCache.getCalendarByEventId(a).Guid;if(Calendar.Event.isRecurringEvent(g))a=g.Guid}else b=e.calendarId;if(a!=null&&b!=null){var h={oContext:e,eventId:f,calendarId:b,removeOnAccessDenied:true};m_this.getCalendarService().GetEventWithRange(b,a,c.StartDate,c.EndDate,_cb_getFullEvent,h,m_this._cb_processError)}};this.getCachedEvent=function(h,g,e){var b=h,c=null,f=false,a=null,d=null;if(m_pCache.isEventInCache(b)){a=m_pCache.getEventById(b);d=m_pCache.getCalendarByEventId(b);c=d.Guid;if(Calendar.Event.isRecurringEvent(a)){f=true;b=a.Guid}}else if(e.event){a=e.event;d=m_pCache.getCalendarById(a.CalendarGuid)}else{f=true;c=e.calendarId}var i={oContext:e,eventId:h,calendarId:c};if(f&&b!=null&&c!=null)m_this.getCalendarService().GetEventWithRange(c,b,g.StartDate,g.EndDate,_cb_getFullEvent,i,m_this._cb_processError);else if(a!=null&&d!=null)m_this.fire("eventdetailsreceived",{event:Calendar.FullEvent.cloneEvent(a),calendar:d,context:e})};this.getEventDetailsHtml=function(a){var b=m_pCache.getCalendarByEventId(a),c=m_pCache.getEventById(a);m_this.fire("eventhtmldetailsreceived",{event:Calendar.Event.cloneEvent(c),calendar:b})};this.saveEvent=function(a,c,d,h,j,i){var b={InnerContext:i,EventSaved:a},e=null;if(h)e=m_pCache.trimEventCacheToSingleRange(h);if(c)m_this.fire("preeventssaved",{events:[a]});var f=null;if(!c&&_tasksDataReceived())f=_createTasksQueryObj(false,_getQueryTaskCount(),a.CalendarGuid);b.TasksQueryObj=f;var g=Calendar.FullEvent.cloneEvent(a);if(!c){b.isTogglingCalendarOn=true;b.CalendarToToggle=a.CalendarGuid}if(!d||!a.Guid){var k=c&&a.Guid?_cb_saveEvent:_cb_appendEvents;m_this.getCalendarService().SaveEventWithStubResult(g,m_initParams.ignoreCalendarVisibility?null:c,e.StartDate,e.EndDate,f,k,b,m_this._cb_processError);_busyDaysStatusUpdated();if(!c&&a.Guid)_uncacheEventsAndNotify([a],true)}else{i["savingRecurringEvent"]=true;b.Event=a;b.RecurrenceState=d;b.IsChangingCalendar=j;m_this.getCalendarService().SaveRecurringEventWithStubResult(g,d.isEditingSeries,d.shouldDeleteExceptions,d.ConvertRecurringToNonRecurringEnum,m_initParams.ignoreCalendarVisibility?null:c,e.StartDate,e.EndDate,f,_cb_saveRecurringEvents,b,m_this._cb_processError)}};this.saveBirthday=function(a,b,e,g){var d={InnerContext:g,EventSaved:a},c=null;if(e)c=m_pCache.trimEventCacheToSingleRange(e);if(b)m_this.fire("preeventssaved",{events:[a]});if(!b){d.isTogglingCalendarOn=true;d.CalendarToToggle=a.CalendarGuid}var f=b&&a.Guid?_cb_saveBirthdayEvent:_cb_appendEvents;m_this.getCalendarService().SaveBirthdayEvent(a.ExternalId,a.FirstName,a.LastName,a.Birthdate,a.Alarms,a.CharmId,m_initParams.ignoreCalendarVisibility?null:b,c.StartDate,c.EndDate,f,d,m_this._cb_processError);if(!b&&a.Guid)_uncacheEventsAndNotify([a],true)};this.updateEventStartTime=function(a,d,f){var e=a.Event.Calendar,b=Calendar.Event.cloneEvent(a.OriginalEvent),c=Calendar.Event.cloneEvent(a.Event);if(_validateIsEventReadOnly(b,e)||Calendar.Event.areEventsEqual(b,c))return;b.EventTimeInUserTimeZone=true;c.EventTimeInUserTimeZone=true;m_this.getCalendarService().UpdateEventWithStubResult(c,[CAL.PLEventFields.StartTime],d.StartDate,d.EndDate,_cb_saveEvent,{EventSaved:a,InnerContext:f},m_this._cb_processError)};this.updateEventEndTime=function(a,d,f){var e=a.Event.Calendar,c=Calendar.Event.cloneEvent(a.OriginalEvent),b=Calendar.Event.cloneEvent(a.Event);if(_validateIsEventReadOnly(c,e)||Calendar.Event.areEventsEqual(c,b))return;b.EventTimeInUserTimeZone=true;m_this.getCalendarService().UpdateEventWithStubResult(b,[CAL.PLEventFields.EndTime],d.StartDate,d.EndDate,_cb_saveEvent,{EventSaved:a,InnerContext:f},m_this._cb_processError)};this.moveEventUsingStartTime=function(a,d,f){var e=a.Event.Calendar,c=Calendar.Event.cloneEvent(a.OriginalEvent),b=Calendar.Event.cloneEvent(a.Event);if(_validateIsEventReadOnly(c,e)||Calendar.Event.areEventsEqual(c,b))return;b.EventTimeInUserTimeZone=true;m_this.getCalendarService().UpdateEventWithStubResult(b,[CAL.PLEventFields.StartTime,CAL.PLEventFields.EndTime],d.StartDate,d.EndDate,_cb_saveEvent,{EventSaved:a,InnerContext:f},m_this._cb_processError)};this.saveReadOnlyEvent=function(c,b){var a=Calendar.FullEvent.cloneEvent(c);m_this.getCalendarService().UpdateEventAlarms(a,_cb_updateEventAlarms,b,m_this._cb_processError)};this.deleteRecurringEvent=function(a,b){m_this.fire("preeventsdeleted",{eventids:[a.Guid]});var c={Event:a,DeleteSeries:b,RecurringEvent:true};m_this.getCalendarService().DeleteRecurringEvent(a,b,_cb_deleteEvents,c,m_this._cb_processError)};this.deleteEvents=function(c,a){m_this.fire("preeventsdeleted",{eventids:c});var b=null;if(m_pCache.isEventInCache(c[0]))b=m_pCache.getEventById(c[0]);else b=a.events[0];a.pDeletedEvent=b;var d=a.events[0].MeetingRequestOperation?a.events[0].MeetingRequestOperation:null,e=m_pCache.getCalendarById(b.CalendarGuid);m_this.getCalendarService().DeleteEvent(e.Guid,b.Guid,d,_cb_deleteEvents,a,m_this._cb_processError)};this.getAllCalendars=function(c,b){if(m_isBootstrapComplete==false)return;var a=m_pCache.getAllCalendars();if(a.length==0)AlertManager.createErrorAlert(m_pContentStrings["noCalendarsErrorTitle"],m_pContentStrings["noCalendarsError"],null,true,true);else if(b)return a;else m_this.fire("calendarsexist",{calendars:a,context:c})};this.getCalendar=function(a,c){var b=m_pCache.getCalendarById(a);if(!b)m_this.getCalendarService().GetCalendarById(a,true,_cb_addNewCalendar,c,m_this._cb_processError);return b};this.hasBirthdayCalendar=function(){var a=m_pCache.getAllCalendars();if(a&&a.length)for(var b=0;b<a.length;b++)if(Calendar.Event.isBirthdayCalendar(a[b]))return true;return false};this.getBirthdayCalendar=function(){var a=m_pCache.getAllCalendars();if(a&&a.length)for(var b=0;b<a.length;b++)if(Calendar.Event.isBirthdayCalendar(a[b]))return a[b];return null};this.getSubscriptionCalendarInfo=function(a,c){var b=m_pCache.getCalendarById(a);if(b&&!b.subscriptionCalendarInfo)m_this.getCalendarService().GetSubscriptionCalendarInfo(a,_cb_addSubscriptionCalendarInfo,{calendarId:a,innerContext:c},m_this._cb_processError)};this.getCalendarById=function(a,b){m_this.getCalendarService().GetCalendarById(a,true,_cb_getCalendarById,{calendarId:a,innerContext:b},m_this._cb_processError)};this.makeCalendarsVisibleInGroupMode=function(a,f,h,g){var e={InnerContext:g},d=m_pCache.trimEventCacheToSingleRange({StartDate:f,EndDate:h});for(var b=0;b<a.length;b++)m_pCache.getCalendarById(a[b]).IsVisibleToCurrentUser=true;var c=_createTasksQueryObj(false,_getQueryTaskCount());c.CalendarList=a;m_this.getCalendarService().GetEventsByDateTimeAndCalendars(a,c,d.StartDate,d.EndDate,_cb_appendEvents,e)};this.setCalendarInvisible=function(a,f,g){var d=m_pCache.unregisterEventsOnCalendar(a),c=_buildEventIdArray(d);_pruneSortedTaskList(d);var b={},e=Function.emptyFunction;if(f&&g){b.RemovedEventIds=c;b.calendarId=a;e=_cb_SetCalendarInvisible}else{m_pCache.getCalendarById(a).IsVisibleToCurrentUser=false;m_this.fire("eventsdeleted",{eventids:c,calendarVisibility:false,calendarId:a})}_busyDaysStatusUpdated();if(f)m_this.getCalendarService().SetCalendarInvisible(a,null,e,b,null)};this.updateCalendarVisibility=function(a,g,f,i,h,e){if(g){var c=m_pCache.trimEventCacheToSingleRange({StartDate:f,EndDate:i}),d={InnerContext:h,isTogglingCalendarOn:true,CalendarToToggle:a},b=null;if(_tasksDataReceived())b=_createTasksQueryObj(false,_getQueryTaskCount(),a);d.TasksQueryObj=b;m_this.getCalendarService().SetCalendarVisible(a,c.StartDate,c.EndDate,b,_cb_appendEvents,d,m_this._cb_processError)}else m_this.setCalendarInvisible(a,true,e)};this.pollCalendarEventsByDateRange=function(b,d,f,e){if(m_isBootstrapComplete){var c={InnerContext:e},a=m_pCache.trimEventCacheToSingleRange({StartDate:d,EndDate:f});m_this.getCalendarService().PollCalendarEventsByDateTime(b,a.StartDate,a.EndDate,_cb_pollCalendarEventsByDateRange,c,null)}};this.getCalendarDetails=function(a,c){var b=m_pCache.getCalendarById(a),d=Calendar.Event.isSubscriptionCalendar(b);if(d&&!b.subscriptionCalendarInfo)this.getSubscriptionCalendarInfo(a,c);else this.getCalendarById(a,c)};this.getCalendarColorIndex=function(b){var a=m_pCache.getCalendarById(b);if(a)return a.ColorIndex;return -1};this.getCalendarCharmId=function(b){var a=m_pCache.getCalendarById(b);if(a)return a.CharmId;return null};this.getCalendarSharingSettings=function(a,b){m_this.getCalendarService().GetCalendarSharingSettings(a,_cb_getCalendarSharingSettings,b,m_this._cb_processError)};this.sendExchangeSharing=function(b,c,e,d,a){a.customError=true;m_this.getCalendarService().RespondToExchangeSharingRequest(b,c,e,d,true,_cb_sendExchangeSharing,a,_cb_sendExchangeSharing_error)};this.setCalendarColor=function(b,c){var a=m_pCache.getCalendarById(b);if(a){a.ColorIndex=c;var d={calendar:a};m_this.getCalendarService().SetCalendarColor(b,c,_cb_setCalendarColor,d,m_this._cb_processError)}};this.moveCalendar=function(b,a){var c=m_pCache.getCalendarById(b);if(c){m_pCache.moveCalendar(b,a);var d={calendar:c,position:a};m_this.getCalendarService().ReorderCalendar(b,a,_cb_moveCalendars,d,m_this._cb_processError)}};this.saveCalendarGeneralSettings=function(a,c,h){var e={InnerContext:h},b=a.Guid==null,d=b&&Calendar.Event.isBirthdayCalendar(a),g=b?_cb_createCalendar:_cb_saveCalendarSettings,f=d;m_this.getCalendarService().SaveCalendarSettings(a.Guid,a.Name,a.ColorIndex,a.Description,a.HasDailyEmailSummaryEnabled,a.CharmId,f,c.StartDate,c.EndDate,a.CalendarType,g,e,null)};this.saveCalendarSharingSettings=function(a,b){m_this.getCalendarService().SaveCalendarSharingSettings(a.Guid,a.MemberSharingEnabled,a.PrivateUrlsEnabled,a.PublicUrlsEnabled,a.AddMembers,a.UpdateMembers,a.DeleteMembers,a.PublicUrlsPermissionLevel,a.TimeZoneNum,a.TasksPermissionLevel,_cb_saveCalendarSharingSettings,b,m_this._cb_processError)};this.refreshCalendar=function(c,b,e,f){var a={InnerContext:f};if(!b){a.isTogglingCalendarOn=true;a.CalendarToToggle=c}var d=m_pCache.trimEventCacheToSingleRange(e);m_this.getCalendarService().RefreshCalendar(c,b,d.StartDate,d.EndDate,_cb_refreshCalendar,a,null)};this.addNewCalendar=function(c,a,b,d){m_this.getCalendarService().SaveCalendarFormData(c,a,b,null,_cb_addNewCalendar,d,null)};this.deleteCalendar=function(a,b){m_this.getCalendarService().DeleteCalendar(a,_cb_deleteCalendar,b,m_this._cb_processError)};this.resetCalendarPrivateFreeBusySharingUrl=function(a,b){m_this.getCalendarService().PublishingResetCalendarPrivateFreeBusyId(a,_cb_resetCalendarPrivateFreeBusySharingUrl,b,null)};this.resetCalendarPrivateDetailSharingUrl=function(a,b){m_this.getCalendarService().PublishingResetCalendarPrivateDetailId(a,_cb_resetCalendarPrivateDetailSharingUrl,b,null)};this.saveCompletedTaskSectionState=function(b){m_pTasksCurrentMode.ShowCompletedTasks=b;if(b){var d=_createTasksQueryObj(false,_getQueryTaskCount());d.ReturnIncompleteTasks=false;var c={InnerContext:{taskAction:"getCompletedTasks"}};_setTaskViewControlInstance(c.InnerContext);m_this.getCalendarService().GetTasks(d,_cb_appendEvents,c,null)}else{var a=_getCompletedTasks();_pruneSortedTaskList(a);m_pCache.unregisterEvents(a);m_this.fire("eventsdeleted",{eventids:_buildTaskIdArray(a),taskAction:"hideCompletedTasks"})}setSetting(["taskViewShowDone",b])};this.savePersistentView=function(a){m_this.getCalendarService().SetLastDisplayView(a,Function.emptyFunction,null);setSetting(["savedView",Calendar.getViewNameFromEnum(a)])};this.saveMonthGridExpansionMode=function(a){if(!getSetting("publishedPrintUrl")&&CAL.GridExpansionMode[getSetting("monthGridExpansionMode")]!=a){m_this.getCalendarService().SetMonthGridExpansionMode(a,Function.emptyFunction,null);setSetting(["monthGridExpansionMode",CAL.GridExpansionMode.valueToString(a)])}};this.isLimitedTaskMode=function(){return __isLimitedTasksMode};this.setIsLimitedTaskMode=function(a){__isLimitedTasksMode=a;m_this.fire("taskslimitedmodechanged",{isLimitedTaskMode:__isLimitedTasksMode})};this.getAllTasks=function(a){a.clearTaskCache=true;m_this.getCalendarService().GetTasks(_createTasksQueryObj(true,_getQueryTaskCount()),_cb_getTasks,a,null)};this.getTasks=function(a){m_this.getCalendarService().GetTasks(_createTasksQueryObj(true,_getQueryTaskCount()),_cb_getTasks,a,null)};this.clearAllCompletedTasks=function(){var a=_getCompletedTasks(),b={CompletedTasks:a};m_this.getCalendarService().ClearAllCompletedTasks(null,_cb_removeCompletedTasks,b)};this.setBootData=function(d,e,c){m_pBootstrapPackage=d;m_pBootstrapRequestContext=e;if(m_pBootstrapPackage.NumberOfCircleCalendars>0){var a=m_pBootstrapPackage.Calendars;a[0].IsVisibleToCurrentUser=true;for(var b=1;b<a.length;b++){a[b].IsVisibleInNonGroupMode=a[b].IsVisibleToCurrentUser;a[b].IsVisibleToCurrentUser=false}}m_pBootstrapRequestContext.InnerContext["GroupCalendarCount"]=d.NumberOfCircleCalendars;if(m_isReadyForBootstrapPackage){_produceBootstrapData();if(m_isReadyForBootstrapPackageForDelayControls)_produceBootstrapDataForDelayLoadControls();if(c&&_checkErrorsForSharingDownError(c.ErrorCode))_fireSharingDownEvent(e,true)}else m_pBootstrapRequestErrorStatus=c};this.compareTasksByDate=function(b,c){if(b.EventProgress==CAL.EventProgress.Completed&&c.EventProgress!=CAL.EventProgress.Completed)return 1;if(b.EventProgress!=CAL.EventProgress.Completed&&c.EventProgress==CAL.EventProgress.Completed)return -1;if(b.EventProgress==CAL.EventProgress.Completed)return b.CompletedDate.valueOf()-c.CompletedDate.valueOf();var d=b.DateEnd,e=c.DateEnd;if(d==null){d=new Calendar.Date;d.moveToEndOfDay()}if(e==null){e=new Calendar.Date;e.moveToEndOfDay()}var a=d.valueOf()-e.valueOf();if(a!=0)return a;a=(b.IsAllDayEvent?0:1)-(c.IsAllDayEvent?0:1);if(a!=0)return a;a=b.Priority-c.Priority;if(a!=0)return a;return b.CreatedDate.valueOf()-c.CreatedDate.valueOf()};function _cb_addSubscriptionCalendarInfo(c,b){var a=m_pCache.getCalendarById(b.calendarId);a.subscriptionCalendarInfo=c;m_this.fire("calendardetailsreceived",{calendar:a,context:b})}function _cb_getCalendarById(a,b){m_this.fire("calendardetailsreceived",{calendar:a,context:b.innerContext})}function _checkForSharingError(b){if(b){var a=parseInt(b.ErrorCode,16);if(a>=Calendar.ErrorCodes.AbchDownRangeBegin&&a<=Calendar.ErrorCodes.AbchDownRangeEnd)_fireSharingDownEvent()}}function _cb_saveCalendarSettings(b,e){var a=b.Calendar;if(a){Calendar.Event.fixDateTypeInCalendarArray([a]);var c=m_pCache.getCalendarById(a.Guid);if(c)_copySharingProps(c,a);m_pCache.registerCalendars([a]);m_this.fire("calendarsaved",{calendar:a,context:e.InnerContext})}var d=b.Events;if(d)_saveEventCore(d,e,"eventsadded")}function _cb_saveCalendarSharingSettings(c,b,d){if(d)m_this.fire("calendarsharingsettingsnotsaved",{context:b,requestErrorStatus:d});else{var a=m_pCache.getCalendarById(b.calendarId);if(c.SharingPermission!=a.SharingPermission){var e={CalendarId:a.Guid,OldPermissionLevel:a.SharingPermission,NewPermissionLevel:c.SharingPermission};m_this.fire("calendarpermissionlevelchanged",e)}if(c.SharingPermission==CAL.SharingPermissionLevel.Null)_removeCalendarFromClientSide(b.calendarId,b);else{_copySharingProps(c,a);m_pCache.registerCalendars([a])}m_this.fire("calendarsharingsettingssaved",{context:b,result:c})}}function _cb_refreshCalendar(b,e){var a=b.Calendar;if(a){Calendar.Event.fixDateTypeInCalendarArray([a]);var c=m_pCache.getCalendarById(a.Guid);if(c)_copySharingProps(c,a);m_pCache.registerCalendars([a]);m_this.fire("calendarrefreshed",{calendar:a,context:e.InnerContext});var g=m_pCache.unregisterEventsOnCalendar(a.Guid),f=_buildEventIdArray(g);_busyDaysStatusUpdated();m_this.fire("eventsdeleted",{eventids:f})}var d=b.Events;if(d)_saveEventCore(d,e,"eventsadded")}function _copySharingProps(a,b){b.IsShared=a.IsShared;b.IsPublicPublished=a.IsPublicPublished;b.IsAllowSharingViaUrl=a.IsAllowSharingViaUrl;b.SharingPermission=a.SharingPermission}function _createTasksQueryObj(c,d,b){var a=new CAL.TasksQueryObject;a.BuildTaskList=c;a.NumberOfSearchResults=d;a.CalendarList=b?[b]:_getVisibleCalendars();a.ReturnCompletedTasks=m_pTasksCurrentMode.ShowCompletedTasks;a.ReturnIncompleteTasks=true;return a}function _setTaskViewControlInstance(a){a["ControlInstanceName"]="taskView"}function _getQueryTaskCount(){if(__isLimitedTasksMode)return 0;else return -1}function _cb_getTasks(a,d,c){var f=!m_pTasksCurrentMode.DataReceived&&!c;if(f){m_pCache.unregisterAllItemsByType(CAL.CalendarItemType.TaskItem);m_pSortedTasks.clear();m_this.fire("cleartasklist",{})}m_pTasksCurrentMode.DataReceived=true;if(c){var e=[];for(var b=0;b<a.length;b++)if(a[b].ItemType==CAL.CalendarItemType.TaskItem)e.push(a[b]);a=e;_setTaskViewControlInstance(d);d.isBootstrap=true}else{Calendar.Event.fixDateTypeInEventArray(a);m_pCache.registerEvents(a)}_maintainTaskList(a,c,false,false);m_this.fire("eventsexist",{events:a,context:d})}function _addTasksToTaskList(d){var e=false;for(var c=0;c<d.length;c++){var a=d[c];if(a.ItemType==CAL.CalendarItemType.TaskItem){var b=m_pSortedTasks.findInsertLoc(a,m_pTaskSortDelegate);if(b==m_pSortedTasks.length||a.Guid!=m_pSortedTasks[b].Guid){m_pSortedTasks.insert(b,a);e=true}}}return e}function _tasksDataReceived(){return m_pTasksCurrentMode.DataReceived}function _pruneSortedTaskList(b){var c=false;if(m_pSortedTasks.length){var d=[];for(var a=0;a<b.length;a++)if(b[a].ItemType==CAL.CalendarItemType.TaskItem)d.push(b[a].Guid);for(var a=0;a<m_pSortedTasks.length;a++)if(d.indexOf(m_pSortedTasks[a].Guid)>=0){m_pSortedTasks.removeAt(a--);c=true}}return c}function _removeTaskFromList(b){var a=_getIndexOfTask(b);if(a!=-1)m_pSortedTasks.removeAt(a)}function _getIndexOfTask(b){for(var a=0;a<m_pSortedTasks.length;a++)if(m_pSortedTasks[a].Guid==b)return a;return -1}function _getCompletedTasks(){var b=[];for(var a=0;a<m_pSortedTasks.length;a++)if(m_pSortedTasks[a].EventProgress==CAL.EventProgress.Completed)b.push(m_pSortedTasks[a]);return b}function _getVisibleCalendars(){var b=m_pCache.getAllCalendars(),c=[];for(var a=0;a<b.length;a++)if(b[a].IsVisibleToCurrentUser)c.push(b[a].Guid);return c}function _cb_removeCompletedTasks(b,a){_pruneSortedTaskList(a.CompletedTasks);m_pCache.unregisterEvents(a.CompletedTasks);m_this.fire("eventsdeleted",{eventids:_buildTaskIdArray(a.CompletedTasks)})}function _getEventFromArrayById(b,c){for(var a=0;a<b.length;a++)if(m_pCache.getEventId(b[a])==c)return b[a];return null}function _getOldEventFromCache(d,e){var c=m_pCache.getEventById(d);if(!c&&e){var b=m_pCache.getRecurringEventSeries(d);for(var a=0;a<b.length;a++)if(b[a].Guid==d){c=b[a];break}}return c}function _uncacheRelatedEvents(c){var d=Calendar.Event.isRecurringEvent(c)&&!c.IsRecurrenceException?c.ParentGuid:null;if(d){var a=m_pCache.getRecurringEventSeries(d);for(var b=0;b<a.length;b++)if(a[b].IsRecurrenceException){a.removeAt(b);b--}if(a.length>0)_uncacheEventsAndNotify(a,true)}}function _cb_setCalendarColor(b,a){m_this.fire("calendarcolorchanged",a)}function _cb_moveCalendars(b,a){m_this.fire("calendarpositionchanged",a)}function _cb_getFullEvent(a,b,d){var h=b.eventId,e=null,g=_getOldEventFromCache(b.eventId,b.oContext.getSeries),f=[a];if(d){f=d;Calendar.Event.fixDateTypeInEventArray([a])}_uncacheRelatedEvents(a);_saveEventCore(f,b,"eventssaved");e=m_pCache.getCalendarById(b.calendarId);var c=null;if(d&&!b.oContext.getSeries)c=Calendar.FullEvent.CreateFromFullMasterAndStubInstance(a,_getEventFromArrayById(d,b.eventId));else c=Calendar.FullEvent.cloneEvent(a);m_pCache.appendClientProperties(c,m_pCache.getEventId(c),e);m_pCache.appendClientProperties(a,m_pCache.getEventId(a),e);m_this.fire("eventdetailsreceived",{event:c,calendar:e,masterEvent:a,context:b.oContext,originalEvent:g})}function _cb_saveRecurringEvents(b,a){var c=a.RecurrenceState.shouldDeleteExceptions||a.RecurrenceState.ConvertRecurringToNonRecurringEnum==2||a.IsChangingCalendar;if(a.EventSaved.Guid&&a.EventSaved.Guid!=""){_removeRecurringEventManagementTasks(a.Event,a.RecurrenceState.isEditingSeries,true,c);_saveEventCore(b,a,"eventssaved")}else _cb_appendEvents(b,a)}function _cb_updateEventAlarms(a,e){Calendar.Event.fixDateTypeInEventArray([a]);var b;if(Calendar.FullEvent.isRecurringEvent(a))if(a.IsRecurrenceException){var f=m_pCache.getEventId(a);b=m_pCache.getEventById(f);b.Alarms=a.Alarms}else{var d=m_pCache.getRecurringEventSeries(a.ParentGuid),g=d.length;for(var c=0;c<g;c++){b=d[c];if(!b.IsRecurrenceException)b.Alarms=a.Alarms}}else{b=m_pCache.getEventById(a.Guid);b.Alarms=a.Alarms}m_this.fire("readonlyeventsaved",{event:b,context:e})}function _cb_appendEvents(b,a){var c=b.length;if(c==0&&a.EventSaved){m_this.fire("eventsoutofrangeadded",{EventSaved:a.EventSaved,context:a.InnerContext?a.InnerContext:{}});return}_saveEventCore(b,a,"eventsadded")}function _cb_saveEvent(b,a){if(b.length==0||a.EventSaved.Guid&&a.EventSaved.Guid!=b[0].Guid)_uncacheEventsAndNotify([a.EventSaved],true);_saveEventCore(b,a,"eventssaved")}function _cb_saveBirthdayEvent(b,a){_removeRecurringEventManagementTasks(a.EventSaved,true,true,true);_saveEventCore(b,a,"eventssaved")}function _maintainTaskList(a,e,c,b){if(c)if(b)m_pSortedTasks.clear();else _pruneSortedTaskList(a);var d=_addTasksToTaskList(a);m_this.fire("tasksreceived",{});return d}function _saveEventCore(c,a,e){if(a.isTogglingCalendarOn)m_pCache.getCalendarById(a.CalendarToToggle).IsVisibleToCurrentUser=true;Calendar.Event.fixDateTypeInEventArray(c);var b=Calendar.Event.cloneEvents(c);m_pCache.registerEvents(b);var d=a.tasksQueryObj,f=_maintainTaskList(b,false,true,d&&d.BuildTaskList);m_this.fire(e,{events:b,context:a.InnerContext?a.InnerContext:{},EventSaved:a.EventSaved,CalendarToToggle:a.CalendarToToggle});_busyDaysStatusUpdated()}function _cb_deleteEvents(b,a){if(a.RecurringEvent)_removeRecurringEventManagementTasks(a.Event,a.DeleteSeries,true,a.DeleteSeries);else{if(m_pCache.isEventInCache(a.pDeletedEvent.Guid))_uncacheEventsAndNotify([a.pDeletedEvent],false);_removeTaskFromList(a.pDeletedEvent.Guid);m_this.fire("eventsdeleted",{eventids:a.eventIds})}}function _cb_getCalendars(a,b){Calendar.Event.fixDateTypeInCalendarArray(a);m_pCache.registerCalendars(a);m_this.fire("calendarsexist",{calendars:a,context:b})}function _cb_getCalendarSharingSettings(b,a){var c=m_pCache.getCalendarById(a.calendarId);m_this.fire("calendarsharingsettingsreceived",{calendarSharingSettings:b,calendar:c,context:a})}function _cb_createCalendar(a,d){var c=a.Calendar;if(c)_cb_addNewCalendar(c,d.InnerContext);var b=a.Events;if(b)_saveEventCore(b,d,"eventsadded")}function _cb_addNewCalendar(a,b){Calendar.Event.fixDateTypeInCalendarArray([a]);m_pCache.registerCalendars([a]);m_this.fire("calendarsadded",{calendars:[a],context:b})}function _removeCalendarFromClientSide(b,e){var a=m_pCache.unregisterEventsOnCalendar(b),c=m_pCache.unregisterCalendar(b),d=_buildEventIdArray(a);_pruneSortedTaskList(a);_busyDaysStatusUpdated();m_this.fire("calendarremoved",{calendarId:c,eventIds:d,context:e})}function _cb_deleteCalendar(a,b){_removeCalendarFromClientSide(a,b)}function _cb_SetCalendarInvisible(c,b){var a=b.calendarId;m_pCache.getCalendarById(a).IsVisibleToCurrentUser=false;m_this.fire("eventsdeleted",{eventids:b.RemovedEventIds,calendarVisibility:false,calendarId:a})}function _cb_resetCalendarPrivateFreeBusySharingUrl(a,b){m_this.fire("calendarprivatefreebusysharingurlreset",{PrivateFreeBusySharingUrls:a,context:b})}function _cb_resetCalendarPrivateDetailSharingUrl(a,b){m_this.fire("calendarprivatedetailsharingurlreset",{PrivateDetailSharingUrls:a,context:b})}function _cb_handleFirstRunExperience(b,a){setSetting(["timeZoneNum",a.timeZone],["timeZoneOffset",b]);if(a.DoBootstrap)gController.doCommand("Bootstrap")}function _checkErrorsForSharingDownError(a){if(a!=null&&a.length>0)for(var b=0;b<a.length;b++)if(a[b]>=Calendar.ErrorCodes.AbchDownRangeBegin&&a[b]<=Calendar.ErrorCodes.AbchDownRangeEnd)return true;return false}function _fireSharingDownEvent(b,a){var c=[];m_this.fire("sharingdown",{context:b,forceAlert:a,allCalendars:m_pCache.getAllCalendars()})}function _cb_getNewCalendarAndEvents(a,b){_cb_addNewCalendar(a.Calendar,b)}function _cb_getEventsByDateRange(b,a,c){var d=a["InnerContext"],f=a["DateRange"],e=a["WaitForServer"];Calendar.Event.fixDateTypeInEventArray(b);m_pCache.registerEventsForDateRange(b,f);window.setTimeout(function(){_busyDaysStatusUpdated()},0);if(c&&_checkErrorsForSharingDownError(c.ErrorCode))_fireSharingDownEvent(a);if(e)b=m_pCache.getEventsByDateRange(d.DateRange);m_this.fire("eventsexist",{events:b,context:d})}function _cb_pollCalendarEventsByDateRange(c,b,a){if(!a||a.ErrorCode!=Calendar.ErrorCodes.SubscriptionPending)m_this.fire("stoppolling",{calendarId:b.calendarId});if(!a)_cb_appendEvents(c,b)}function _uncacheEventsAndNotify(a,b){removedEventIds=_buildEventIdArray(a);m_pCache.unregisterEvents(a);_busyDaysStatusUpdated();if(b)m_this.fire("eventsdeleted",{eventids:removedEventIds});return removedEventIds}function _buildEventIdArray(c){var b=[],d=c.length;for(var a=0;a<d;a++)b.push(c[a].CacheEventId);return b}function _buildTaskIdArray(c){var b=[],d=c.length;for(var a=0;a<d;a++)b.push(c[a].Guid);return b}function _produceBootstrapData(){_cb_getCalendars(m_pBootstrapPackage.Calendars,m_pBootstrapRequestContext.InnerContext);if(m_initView==CAL.DisplayView.AgendaView)m_this.fire("agenda_data_requested");_cb_getEventsByDateRange(m_pBootstrapPackage.Events,m_pBootstrapRequestContext);if(CAL.DisplayView[getSetting("savedView")]==CAL.DisplayView.TaskView)_cb_getTasks(m_pBootstrapPackage.Events,m_pBootstrapRequestContext,true);m_isBootstrapComplete=true;m_this.fire("bootstrapcompleted",{isToastDisabledForUser:m_pBootstrapPackage.IsToastDisabledForUser})}function _produceBootstrapDataForDelayLoadControls(){_cb_getCalendars(m_pBootstrapPackage.Calendars,m_pBootstrapRequestContext);m_pBootstrapRequestContext=null;m_pBootstrapPackage=null}function _removeRecurringEventManagementTasks(a,i,g,h){var c=[],b=null;if(i){var f=m_pCache.getRecurringEventSeries(a.ParentGuid),j=f.length;b=[];for(var e=0;e<j;e++){var d=f[e];if(!d.IsRecurrenceException||h){c.push(d.CacheEventId);b.push(d)}}}else{c.push(a.CacheEventId?a.CacheEventId:m_pCache.getEventId(a));b=[a]}m_pCache.unregisterEvents(b);_busyDaysStatusUpdated();if(g)m_this.fire("eventsdeleted",{eventids:c})}function _moveRecurringEvent(a,b,d){var c={InnerContext:d,EventSaved:a};m_this.getCalendarService().SaveRecurringEvent(a,false,false,CAL.ConvertRecurringToNonRecurringEnum.None,true,b.StartDate,b.EndDate,_getQueryTaskCount(),_cb_saveEvent,c,null)}function _busyDaysStatusUpdated(){m_this.fire("busydaysupdated",{busyDaysManager:m_pCache.getBusyDaysManager()})}function _validateIsEventReadOnly(a,b){if(Calendar.Event.isCalendarReadOnly(b)){m_this.fire("eventsnotsaved",{originalEvents:[a],reason:Calendar.DesktopModel.EventsNotSavedReason.ReadOnlyCalendar});return true}else return false}function _cb_sendExchangeSharing(b,a){m_this.fire("exchangesharingsaved",{context:a})}function _cb_sendExchangeSharing_error(e,b,d,c){var a=parseInt(c.ErrorCode,16);if(a==Calendar.ErrorCodes.SharingPermissionDenied)m_this.fire("exchangesharingerror",{errorcode:a});else{b.customError=false;m_this.network_cb_onError({Context:b,Error:c,ErrorCode:a,Proxy:d})}}this.network_cb_onError=function(c){if(c.Context.removeOnAccessDenied){var d=null,b=null,e=parseInt(c.Error.ErrorCode,16);if(e==Calendar.ErrorCodes.ServerErrorGetEventAlreadyDeleted||e==Calendar.ErrorCodes.PermissionErrorEventNoReadPermissions)b=c.Context.eventId;else if(e==Calendar.ErrorCodes.ServerErrorGetCalendarAlreadyDeleted)d=c.Context.calendarId;if(b){var f=m_pCache.getEventById(b),a=[];if(f.Guid==f.ParentGuid)a=m_pCache.getRecurringEventSeries(b);a.push(f);if(a&&a.length>0)_uncacheEventsAndNotify(a,true)}if(d)_removeCalendarFromClientSide(d)}Calendar.DesktopModel.callBaseMethod(m_this,"network_cb_onError",arguments)};this._cb_processError=function(b,c,d,a){_checkForSharingError(a);Calendar.DesktopModel.callBaseMethod(m_this,"_cb_processError",arguments)}};Calendar.DesktopModel.registerClass("Calendar.DesktopModel","Calendar.Model");Calendar.DesktopModel.Events=new $Enum("eventsadded","eventsexist","eventssaved","readonlyeventsaved","eventsdeleted","eventdetailsreceived","eventhtmldetailsreceived","eventsnotsaved","eventsoutofrangeadded","preeventsdeleted","preeventssaved","calendarsadded","calendarcolorchanged","calendarsexist","calendardetailsreceived","calendarsharingsettingsreceived","calendarsaved","calendarsharingsettingssaved","calendarsharingsettingsnotsaved","calendarremoved","calendarpermissionlevelchanged","calendarpositionchanged","calendarrefreshed","calendarprivatefreebusysharingurlreset","calendarprivatedetailsharingurlreset","busydaysupdated","agenda_data_requested","tasksreceived","taskslimitedmodechanged","cleartasklist","exchangesharingsaved","exchangesharingerror","sharingpermissionserror","bootstrapcompleted","bootstrapfailed","sharingdown","stoppolling","accessdenied","servererror","requestcomplete","requestinprogress");Calendar.DesktopModel.EventsNotSavedReason=new $Enum("ReadOnlyCalendar");Calendar.ModelCache=function(){var d=this,a=null,b=null,c=null,e=new Calendar.BusyDaysManager,i=[CAL.CalendarItemType.TaskItem];this.initialize=function(){a={};b={};c=new Calendar.LineSegmentManager;c.initialize()};this.dispose=function(){d.disposeEventCache();c.dispose();c=null;b=null;a=null;d=null};this.disposeEventCache=function(){for(var b in a)a[b]=null;a={};c.clear();e.clearBusyDayInfo()};this.getBusyDaysManager=function(){return e};this.registerEvents=function(c){for(var b=0,d=c.length;b<d;b++){var a=c[b];k(a,this.getEventId(a),this.getCalendarById(a.CalendarGuid))}};this.unregisterEvents=function(b){var c=b.length;for(var a=0;a<c;a++)g(this.getEventId(b[a]))};this.unregisterEventsOnCalendar=function(d){var b=[];for(var c in a)if(a[c].CalendarGuid==d)b.push(g(c));return b};this.unregisterCalendar=function(c){for(var a in b)if(b[a].Guid==c)return j(a);return null};this.unregisterAllItemsByType=function(d){var b=[];for(var c in a)if(a[c].ItemType==d)b.push(g(c));return b};this.getEventId=function(a){var b=null;if(a.RecurrenceId)b=a.ParentGuid+"|"+a.RecurrenceId;else b=a.Guid;return b};this.getEventById=function(b){return a[b]};this.getRecurringEventSeries=function(d){var b=[];for(var c in a)if(a[c].ParentGuid==d)b.push(a[c]);return b};this.moveCalendar=function(f,e){var a=d.getAllCalendars(),c=d.getCalendarById(f);a.remove(c);a.insert(e,c);b={};d.registerCalendars(a)};this.registerCalendars=function(c){for(var a=0;a<c.length;a++){var d=c[a],e=d.Guid;b[e]=d}};this.getAllCalendars=function(){var a=[];for(var c in b)a.push(b[c]);return a};this.getCalendarById=function(a){return b[a]};this.getCalendarByEventId=function(a){var b=d.getEventById(a);return d.getCalendarById(b.CalendarGuid)};this.isEventInCache=function(a){var b=d.getEventById(a);return b!=null};this.registerEventsForDateRange=function(b,a){var e={Start:a.StartDate.valueOf(),End:a.EndDate.valueOf()};c.setRange(e,true);d.registerEvents(b)};this.isEventQueryAnswerable=function(a){var b={Start:a.StartDate.valueOf(),End:a.EndDate.valueOf()};return c.isRangeMarked(b)};this.getEventsByDateRange=function(d){var c=[];for(var b in a)if(f(a[b])&&h(a[b],d))c.push(a[b]);return c};this.getAllTasks=function(){var b=[];for(var c in a)if(a[c].ItemType==CAL.CalendarItemType.TaskItem)b.push(a[c]);return b};this.trimEventCacheToSingleRange=function(b){var e={Start:b.StartDate.valueOf(),End:b.EndDate.valueOf()};for(var d in a)if(f(a[d])&&!h(a[d],b))g(d);c.trimToRange(e);return b};this.trimRangeToOnlyUncachedDates=function(b){var e={Start:b.StartDate.valueOf(),End:b.EndDate.valueOf()},a=c.truncateRange(e),d={StartDate:new Calendar.Date(a.Start),EndDate:new Calendar.Date(a.End)};return d};this.appendClientProperties=function(a,c,b){a.Calendar=b;a.CacheEventId=c};function f(a){return i.indexOf(a.ItemType)==-1}function h(a,b){return a.DateStart&&a.DateEnd&&Calendar.Event.isEventInRange(a.DateStart.getTime(),a.DateEnd.getTime(),b.StartDate.getTime(),b.EndDate.getTime())}function g(c){var b=a[c];if(b&&f(b))e.removeBusyDayInfo(b.DateStart,b.DateEnd);a[c]=null;delete a[c];return b}function k(c,b,h){var g=f(c);if(a[b]&&g)e.removeBusyDayInfo(a[b].DateStart,a[b].DateEnd);d.appendClientProperties(c,b,h);a[b]=c;if(g)e.addBusyDayInfo(a[b].DateStart,a[b].DateEnd)}function j(a){b[a]=null;delete b[a];return a}this.__debug_getLineSegmentStringDisplay=function(){return c.toString()};this.__debug_getEventList=function(){return a}};Calendar.LineSegmentManager=function(){var b=this,a=null;this.initialize=function(){a=[]};this.dispose=function(){b.clear();a=null};this.clear=function(){a.clear()};this.trimToRange=function(b){var c={Start:b.Start,End:b.End};a.clear();a.push(c)};this.setRange=function(h,m){if(m){var f=b.getRangeWhichEnclosesValue(h.Start),g=b.getRangeWhichEnclosesValue(h.End);if(!f&&!g){for(var e=0;e<a.length;e++){var k=a[e];if(k.Start>=h.Start&&k.End<=h.End){a.removeAt(e);e--}}d(h)}if(!(f&&f===g))if(f){if(g)f.End=g.End;else f.End=h.End;var i=c(f);for(var e=i+1;e<a.length;e++){var l=a[e];if(!l)break;else if(l.Start>f.End)break;else{a.removeAt(e);e--}}}else if(g&&!f){g.Start=h.Start;var i=c(g);for(var e=i-1;e>=0;e--){var j=a[e];if(!j)break;else if(j.End<g.Start)break;else a.removeAt(e)}}}};this.toString=function(){var b="<--";for(var c=0;c<a.length;c++){var d=a[c],e=new Calendar.Date(d.Start),g=e.getMonth()+"/"+e.getDate(),f=new Calendar.Date(d.End),h=f.getMonth()+"/"+f.getDate();b+="["+g+"-"+h+"]";b+="--"}b+="-->";return b};this.isRangeMarked=function(d){for(var b=0;b<a.length;b++){var c=a[b];if(c.Start<=d.Start&&c.End>=d.End)return true}return false};this.truncateRange=function(c){var d=c;for(var e=0,f=a.length;e<f;e++){var b=a[e];if(b.Start<=c.Start&&b.End>c.Start)d.Start=b.End;else if(b.Start<c.End&&b.End>=c.End)d.End=b.Start}return d};function d(d){var c=a.length;for(var b=0;b<a.length;b++){var e=a[b];if(e.Start>d.Start){c=b;break}}a.insert(c,d)}this.getRangeWhichEnclosesValue=function(d){for(var c=0;c<a.length;c++){var b=a[c];if(d>=b.Start&&d<=b.End)return b}};function c(c){for(var b=0;b<a.length;b++)if(a[b]==c)return b}};registerNamespace("Calendar");Calendar.View=function(qb,g){Calendar.View.initializeBase(this,arguments);g=this.getParameters();var e=this,b=null,c=null,p=true,n=true,l=true,d=CAL.DisplayView.MonthView,ob=false,r=null,E=null,q=false,u=false,j=new Calendar.EventHandlerManager,pb=250,a={},f=null,i=null;this.initialize=function(){Calendar.View.callBaseMethod(this,"initialize",arguments)};this.init=function(a){i=new Calendar.DelayLoadManager;f=a;p=g["enableGridDragDrop"];n=g["enableGridBgSelection"];l=g["hasCalPicker"];d=g["initViewName"];ob=g["isAdsDown"];r=g["subscriptionErrorThreshold"];b=g["contentStrings"];c=g["imagePath"];E=g["toolbarInfo"];q=g["isInPublishingMode"];nb(E);j.attach(f,{eventsexist:s,eventsadded:s,eventssaved:lb,readonlyeventsaved:Y,eventsdeleted:jb,eventdetailsreceived:S,eventhtmldetailsreceived:K,eventsnotsaved:hb,eventsoutofrangeadded:Q,calendarsadded:fb,calendarcolorchanged:R,calendarsexist:gb,calendardetailsreceived:M,calendarsharingsettingsreceived:I,calendarsaved:ib,calendarsharingsettingssaved:J,calendarsharingsettingsnotsaved:H,calendarrefreshed:Z,calendarremoved:cb,calendarpositionchanged:N,calendarprivatefreebusysharingurlreset:F,calendarprivatedetailsharingurlreset:G,busydaysupdated:bb,bootstrapcompleted:X,servererror:mb,requestinprogress:ab,requestcomplete:db,sharingdown:V});gController.onOnDemandFeatureLoaded.attach(w)};this.dispose=function(){Calendar.View.callBaseMethod(this,"dispose",arguments);if(a["fullScreenEventEditor"])a["fullScreenEventEditor"].dispose();if(a["fullScreenTaksEditor"])a["fullScreenTaskEditor"].dispose();gController.onOnDemandFeatureLoaded.detach(w);j.dispose();for(var c in a)a[c]=null;b=f=i=a=j=null};this.getCurrentView=function(){switch(a["viewNavigator"].getCurrentViewName()){case CAL.DisplayView.MonthView:return a["calendarMonthGrid"];break;case CAL.DisplayView.WeekView:case CAL.DisplayView.DayView:return a["calendarDayList"];break;case CAL.DisplayView.AgendaView:return a["calendarAgendaView"];break;case CAL.DisplayView.TaskView:return a["calendarTaskView"];break;case CAL.DisplayView.NewEventView:case CAL.DisplayView.ReadOnlyEventView:case CAL.DisplayView.EditEventView:return a["fullScreenEventEditor"];break;case CAL.DisplayView.NewTaskView:case CAL.DisplayView.ReadOnlyTaskView:case CAL.DisplayView.EditTaskView:return a["fullScreenTaskEditor"];break;case CAL.DisplayView.CalendarGeneralSettingsView:return a["calendarGeneralSettingsControl"];break;case CAL.DisplayView.CalendarSharingSettingsView:return a["calendarSharingSettingsControl"]}};this.getLargestDisplayedRange=function(){var c=a["miniCalendar"].getFirstDayDisplayed(),b=a["miniCalendar"].getLastDayDisplayed();if(a["calendarMonthGrid"]){var d=a["calendarMonthGrid"].getDisplayedRange();c=Calendar.Date.min(c,d.StartDate);b=Calendar.Date.max(b,d.EndDate)}b.moveToEndOfDay();return {StartDate:c,EndDate:b}};this.getContentStrings=function(){return b};this.fireResizeEvent=function(){e.fire("appview_windowresized")};this.getControlInstance=function(b){return a[b]};this.notifyDelaySourcesLoaded=function(){if(d!=CAL.DisplayView.MonthView&&d!=CAL.DisplayView.DayView&&d!=CAL.DisplayView.WeekView)y();if(d!=CAL.DisplayView.DayView&&d!=CAL.DisplayView.WeekView)B();if(d!=CAL.DisplayView.AgendaView)C();if(d!=CAL.DisplayView.TaskView)D();a["resizeEngine"].completeDeferredResize();var e=$Binding.define("Calendar.CalendarEnhancedPreview").bindTo(window.document.body).setNS("Calendar").setDefaults({imagePath:c,readOnlyModel:f,contentStrings:b.enhPreviewEvent,previewedElements:[$("calendarViewsContainer")]}).attach()[0];a["calendarEnhancedPreview"]=e;gAlertsImagePath=c;gAlertsCloseBoxAltText=b.alerts["CloseBoxAltText"];gAlertsLowImportanceAltText=b.alerts["LowImportanceAltText"];gAlertsMedImportanceAltText=b.alerts["MedImportanceAltText"];gAlertsHighImportanceAltText=b.alerts["HighImportanceAltText"];if(a["calendarPicker"])a["calendarPicker"].initContextMenu([{commandName:"EditCalendarFromContextMenu",commandParams:null,text:b.calendarPicker.edit},{commandName:"ShareCalendarFromContextMenu",commandParams:null,text:b.calendarPicker.share,itemId:"Share"},{commandName:"ChangeCalendarColorFromContextMenu",commandParams:null,text:"CalendarColor",isCustomItem:true,customItemCallback:L,customItemId:"ColorPicker"},{commandName:"MoveUpCalendarFromContextMenu",commandParams:null,text:b.calendarPicker.moveUp,itemId:"MoveUp"},{commandName:"MoveDownCalendarFromContextMenu",commandParams:null,text:b.calendarPicker.moveDown,itemId:"MoveDown"}]);gController.initDelayed();i.setDelayLoadCompleted();if(u)z()};function w(h){switch(h.feature){case "CalendarGeneralSettingsControl":a["calendarGeneralSettingsControl"]=$Binding.define("Calendar.CalendarGeneralSettingsControl").bindTo($("calendarGeneralSettingsContainer")).setNS("Calendar").setDefaults({contentStrings:b.calendarSettings,imagePath:c,deleteToolbarTextElem:$("toolbar_editcalendar_delete_text"),groupProfileURL:getSetting("groupProfileUrl")}).attach()[0];break;case "CalendarSharingSettingsControl":a["calendarSharingSettingsControl"]=$Binding.define("Calendar.CalendarSharingSettingsControl").bindTo($("calendarSharingSettingsContainer")).setNS("Calendar").setDefaults({contentStrings:b.calendarSharingSettings,imagePath:c}).attach()[0];break;case "FullScreenEventEditor":b.fullScreenEventEditor.common=b.fullScreenCommonEditor;var d=new Calendar.DesktopFullScreenEventEditorView($("fullScreenEventEditor"),b.fullScreenEventEditor,q);if(d){d.initialize({readOnlyModel:f,timezones:b.timeZone});a["fullScreenEventEditor"]=d}break;case "FullScreenTaskEditor":b.fullScreenTaskEditor.common=b.fullScreenCommonEditor;var e=new Calendar.DesktopFullScreenTaskEditorView($("fullScreenTaskEditor"),b.fullScreenTaskEditor,q);if(e){e.initialize({readOnlyModel:f});a["fullScreenTaskEditor"]=e}break;case "ItemEditor":a["eventEditor"]=$Binding.define("Calendar.ItemEditorDialog").bindTo($("quickAddEvent")).setNS("Calendar").setDefaults({itemType:"event",contentStrings:b,imagePath:c,calendarPicker:a["calendarPicker"]}).attach()[0];a["taskEditor"]=$Binding.define("Calendar.ItemEditorDialog").bindTo($("quickAddTask")).setNS("Calendar").setDefaults({itemType:"task",contentStrings:b,imagePath:c,calendarPicker:a["calendarPicker"]}).attach()[0];a["birthdayEditor"]=$Binding.define("Calendar.ItemEditorDialog").bindTo($("quickAddBirthday")).setNS("Calendar").setDefaults({itemType:"birthday",contentStrings:b,imagePath:c,calendarPicker:a["calendarPicker"]}).attach()[0];break;case "EventEditRsvpResponse":a["eventEditRsvpResponse"]=$Binding.define("Calendar.EventEditRsvpResponse").bindTo($("fullScreenEventEditor")).setNS("Calendar").setDefaults({contentStrings:b.eventEditRsvpResponse,imagePath:c}).attach()[0];break;case "FlyoutFooter":a["flyoutFooter"]=$Binding.define("Calendar.FlyoutFooter").bindTo($("leftPanePrivacy")).setNS("Calendar").setDefaults({contentStrings:b.footer,imagePath:c,footerUrl:g.footerPageUrl}).attach()[0]}application_EndWaitForServer()}this.toggleToolbarMenu=function(f,e,n){if(!a[f]){var d=null;switch(f){case "HelpMenu":d=$Binding.define("Calendar.Menu").bindTo(e).setNS("Calendar").setDefaults({imagePath:c,menuItems:[{commandName:"HelpMenuAction",commandParams:'{"action":"help"}',text:b.toolbar.help,commandCss:"localAction"},{commandName:"HelpMenuAction",commandParams:'{"action":"support"}',text:b.toolbar.support,itemId:"Support"},{commandName:"HelpMenuAction",commandParams:'{"action":"feedback"}',text:b.toolbar.feedback},{commandName:"HelpMenuAction",commandParams:'{"action":"calblog"}',text:b.toolbar.calblog,itemId:"CalBlog"}]}).attach()[0];j.attach(d,{getMenuItemVisibility:P});break;case "GridViewNew":d=$Binding.define("Calendar.Menu").bindTo(e).setNS("Calendar").setDefaults({imagePath:c,menuItems:[{commandName:"NewEvent",commandParams:null,text:b.toolbar.eventButton},{commandName:"NewTask",commandParams:null,text:b.toolbar.taskButton},{commandName:"NewBirthday",commandParams:null,text:b.toolbar.birthdayButton,itemId:"NewBirthday"},{commandName:"LaunchCalendarSettingDialog",commandParams:null,text:b.toolbar.calendar,itemId:"NewCalendar"},{commandName:"LaunchCalendarSettingDialog",commandParams:'{"newCalendarType": '+CAL.CalendarType.Birthday+" }",text:b.toolbar.birthdayCalendar,itemId:"NewBirthdayCalendar"}]}).attach()[0];j.attach(d,{getMenuItemVisibility:W});break;case "CalendarShare":d=$Binding.define("Calendar.Menu").bindTo(e).setNS("Calendar").setDefaults({imagePath:c,menuItems:null}).attach()[0]}if(d)a[f]=d}var i=a[f];if(i.isVisible())i.hide();else if(e){if(f=="CalendarShare"){var h=n.allCalendars,l=new Array(0);for(var g=0;g<h.length;g++)if(Calendar.Event.canCalendarBeShared(h[g])){var k={commandName:"LaunchCalendarSharingSettingDialog"};k.commandParams='{"calendarId":"'+h[g].Guid+'"}';k.text=h[g].Name.encodeHtml();l.push(k)}i.updateMenuContent(l)}var m=WebUtilities.getLocation(e);i.show(m)}};this.displayToast=function(a){if(e.getControlInstance("infoBar")&&Calendar.UserPrefs.IsToastDisabledForUser==false)e.getControlInstance("infoBar").displayInfoBar(a,Calendar.InfoBar.MessageType.Toast)};function nb(m){var n=new Calendar.ResizeEngine(e);a["resizeEngine"]=n;a["resizeEngine"].attachHandler();var h=$Binding.define("Calendar.ViewNavigator").bindTo($("viewNavigator")).setNS("Calendar").setDefaults({imagePath:c,toolbarInfo:m,viewsContainerElem:$("calendarViewsContainer"),editorElem:$("fullScreenEventEditor"),taskEditorElem:$("fullScreenTaskEditor")}).attach()[0];a["viewNavigator"]=h;var i=$Binding.define("Calendar.MiniCalendar").bindTo($("miniCal")).setNS("Calendar").setDefaults({contentStrings:b.miniCalendar,imagePath:c}).attach()[0];a["miniCalendar"]=i;if(l){var g=$Binding.define("Calendar.CalendarPicker").bindTo($("calendarPicker")).setNS("Calendar").setDefaults({imagePath:c,contentStrings:b.calendarPicker,subscriptionErrorThreshold:r,isGroupMode:getSetting("circleId")!=null}).attach()[0];a["calendarPicker"]=g}if(d==CAL.DisplayView.MonthView||d==CAL.DisplayView.DayView||d==CAL.DisplayView.WeekView)y();if(d==CAL.DisplayView.DayView||d==CAL.DisplayView.WeekView)B();if(d==CAL.DisplayView.AgendaView)C();if(d==CAL.DisplayView.TaskView)D();AlertManager.setOKButtonTitle(b.alerts["OK"]);AlertManager.setCancelButtonTitle(b.alerts["Cancel"]);AlertManager.setDefaultAlertWidth(Number(b.alerts["DefaultWidth"]));var k=$Binding.define("Calendar.InfoBar").bindTo($("bodyContainer")).setNS("Calendar").setDefaults({imagePath:c,contentStrings:b.infobar}).attach()[0];a["infoBar"]=k;if(getSetting("exchangeSharing")){a["exchangeSharingDialog"]=new Calendar.ExchangeSharing;j.attach(f,{exchangesharingsaved:U,exchangesharingerror:T})}}function y(){var d=$Binding.define("Calendar.CalendarMonthGrid").bindTo($("calendarMonthGrid")).setNS("Calendar").setDefaults({contentStrings:b.monthGrid,imagePath:c,readOnlyModel:f,showIconsInEventFigures:false,enableCharms:true,expandAllCharmedEvents:false,enableDynamicRowHeights:true,enableDynamicEventHeights:true,expandTitlesOnRowExpansion:false,expandCharmsOnRowExpansion:true,enableBackgroundSelection:n,enableEventDragAndDrop:p}).attach()[0];a["calendarMonthGrid"]=d}function B(){var d=$Binding.define("Calendar.DayViewGridList").bindTo($("dayView")).setNS("Calendar").setDefaults({contentStrings:b.dayGrid,contentStringsForMonthGrid:b.monthGrid,imagePath:c,readOnlyModel:f,initHeight:$("bodyContainer").offsetHeight-$("calendarToolbar").offsetHeight,initWidth:document.documentElement.clientWidth-$("bodyContainer").offsetLeft-8,enableBackgroundSelection:n,enableCharms:true,enableEventDragAndDrop:p}).attach()[0];a["calendarDayList"]=d}function C(){var d=$Binding.define("Calendar.AgendaView").bindTo($("calendarAgendaView")).setNS("Calendar").setDefaults({initWidth:document.documentElement.clientWidth-$("bodyContainer").offsetLeft-8,contentStrings:b,imagePath:c,isPublishingMode:!!getSetting("publishedPrintUrl"),userTimezone:getSetting("timeZoneNum"),readOnlyModel:f}).attach()[0];a["calendarAgendaView"]=d}function D(){var d=$Binding.define("Calendar.TaskView").bindTo($("calendarTaskView")).setNS("Calendar").setDefaults({initWidth:document.documentElement.clientWidth-$("bodyContainer").offsetLeft-8,contentStrings:b.taskView,imagePath:c,isPublishingMode:!!getSetting("publishedPrintUrl"),userTimezone:getSetting("timeZoneNum"),readOnlyModel:f,taskCountInLimitedMode:getSetting("taskDisplayCount")}).attach()[0];a["calendarTaskView"]=d}function L(d,e){var a=document.createElement("DIV"),f=$Binding.define("Calendar.ColorPicker").bindTo(a).setNS("Calendar").setDefaults({imagePath:c,contentStrings:b.colorPicker,menuMode:true,menuBinding:e}).attach()[0];d.appendChild(a)}function o(b){var a=function(){var a=e.getControlInstance("calendarMonthGrid"),c=a.getDisplayedRange();if(c==null)return;if(b.length>0)a.addEvents(b)};if(d==CAL.DisplayView.MonthView||d==CAL.DisplayView.DayView||d==CAL.DisplayView.WeekView)a();else i.requireDelayLoad(a)}function m(a){var b=function(){var b=e.getControlInstance("calendarDayList");if(a.length>0&&b.eventExistsOnGrid(a[0])==false)b.addEvents(a)};if(d==CAL.DisplayView.DayView||d==CAL.DisplayView.WeekView)b();else i.requireDelayLoad(b)}function v(b){a["calendarAgendaView"].setEvents(b)}function A(b,h,g){var f=[];for(var a=0;a<b.length;a++)if(b[a].ItemType==CAL.CalendarItemType.TaskItem)f.push(b[a]);var c=function(){var a=e.getControlInstance("calendarTaskView");a.tasksAdded(f,g)};if(d==CAL.DisplayView.TaskView)c();else i.requireDelayLoad(c)}function k(c,e){if(l){var b=a["calendarPicker"],d=b.isCalendarChecked(c);if(e&&!d)b.checkCalendar(true,c,false);else if(!e&&d)b.checkCalendar(false,c,false)}}function h(){if(a["viewNavigator"].getCurrentViewName()==CAL.DisplayView.AgendaView)a["calendarAgendaView"].refresh()}function t(a){var c=a.Summary;if(!c||c.length==0)c=b.controller["emptytitle"];var d=a.MeetingRequestOperation&&a.MeetingRequestOperation.organizerAction==CAL.OrganizerActionType.CreateMeetingRequest&&!a.IsDraft,f=b.infobaralerts[d?"Invitesent":"Eventsadded"];e.displayToast(f.format(c))}function O(b){var a=b.Package.context;if(a&&a.ControlInstanceName)return a.ControlInstanceName}function kb(a){var b=parseInt(a.errorCode,16);switch(b){case Calendar.ErrorCodes.SessionTimedOut:reloadMainFrame();break;default:e.fire("appview_servererrorcleared")}}function X(d){Calendar.UserPrefs.IsToastDisabledForUser=d.Package.isToastDisabledForUser;if(getSetting("isRruPresent")){var c=CAL.DisplayView[getSetting("displayView")];if(c==CAL.DisplayView.DefaultView||a["viewNavigator"].getCurrentViewName()==c)return;application_BeginWaitForServer(b.infobaralerts.Loading);switch(c){case CAL.DisplayView.EditEventView:gController.doCommand("EditEvent",{eventId:getSetting("eventId"),eventRecurrenceId:getSetting("eventRecurrenceId"),calendarId:getSetting("calendarId"),isRru:true},true);break;case CAL.DisplayView.EditTaskView:gController.doCommand("EditTask",{eventId:getSetting("eventId"),calendarId:getSetting("calendarId")},true);break;case CAL.DisplayView.CalendarGeneralSettingsView:gController.doCommand("LaunchCalendarSettingDialog",{calendarGuid:getSetting("calendarId")},true);break;case CAL.DisplayView.CalendarSharingSettingsView:gController.doCommand("LaunchCalendarSharingSettingDialog",{calendarId:getSetting("calendarId")},true);break;case CAL.DisplayView.NewEventView:gController.doCommand("NewPrePopulatedEvent",getSetting("eventDetails"),true);break;case CAL.DisplayView.NewTaskView:gController.doCommand("NewPrePopulatedTask",getSetting("eventDetails"),true);break;case CAL.DisplayView.ExchangeSharingDialogView:gController.doCommand("ExchangeSharingDialog",{name:getSetting("exchangeSharingName"),email:getSetting("exchangeSharingEmail"),reciprocation:getSetting("exchangeSharingReciprocationRequested"),request:getSetting("exchangeSharingRequest")})}}}function mb(c){if(a["fullScreenEventEditor"]&&a["fullScreenEventEditor"].getController().getIsWaitingForServer())a["fullScreenEventEditor"].getController().editingComplete(c.Package.message,c.Package.title);else if(a["fullScreenTaskEditor"]&&a["fullScreenTaskEditor"].getController().getIsWaitingForServer())a["fullScreenTaskEditor"].getController().editingComplete(c.Package.message,c.Package.title);else if(a["calendarGeneralSettingsControl"]&&a["calendarGeneralSettingsControl"].getIsWaitingForServer())a["calendarGeneralSettingsControl"].refreshComplete(null,c.Package.message);else{var d=c.Package.message;AlertManager.createErrorAlert(c.Package.title?c.Package.title:b.alerts.ErrorTitle,d,kb,true,true,{errorCode:c.Package.error&&c.Package.error.ErrorCode?c.Package.error.ErrorCode:c.Package.errorCode})}h()}function hb(a){switch(a.Package.reason){case Calendar.DesktopModel.EventsNotSavedReason.ReadOnlyCalendar:gController.updateEvents(a.Package.originalEvents);h();AlertManager.createErrorAlert(a.Package.originalEvents[0].Summary.encodeHtml(),b.modelErrors["eventModifyPermissionsError"],null,true,true)}}function Q(b){if(a["fullScreenEventEditor"]&&b.Package.context&&b.Package.context.ControlInstanceName=="fullScreenEventEditor")a["fullScreenEventEditor"].getController().editingComplete();else if(a["fullScreenTaskEditor"]&&b.Package.context.ControlInstanceName=="fullScreenTaskEditor")a["fullScreenTaskEditor"].getController().editingComplete();t(b.Package.EventSaved)}function s(b){var c=b.Package.events;if(a["fullScreenEventEditor"]&&b.Package.context.ControlInstanceName=="fullScreenEventEditor")a["fullScreenEventEditor"].getController().editingComplete();else if(a["fullScreenTaskEditor"]&&b.Package.context.ControlInstanceName=="fullScreenTaskEditor")a["fullScreenTaskEditor"].getController().editingComplete();var e=false;if(b.Package.context!=null&&b.Package.context.ControlInstanceName!=null)switch(b.Package.context.ControlInstanceName){case "calendarDayList":m(c);break;case "calendarMonthGrid":o(c);m(c);break;case "taskView":A(c,false,b.Package.context.taskAction=="getCompletedTasks");break;case "eventEditor":case "fullScreenEventEditor":case "taskEditor":case "fullScreenTaskEditor":case "bugger":var d=b.Package.EventSaved;if(!d)d=b.Package.context.newEvents?b.Package.context.newEvents[0]:c[0];if(!b.Package.context.suppressToast&&!b.Package.context.savingRecurringEvent)t(d);k(d.CalendarGuid,true);e=true;case "pollingControl":case "calendarPicker":case "calendarGeneralSettings":o(c);m(c);A(c,e);h();if(b.Package.CalendarToToggle)k(b.Package.CalendarToToggle,true);break;case "calendarAgendaView":v(c);break;case "bootstrapControls":o(c);m(c);if(a["viewNavigator"].getCurrentViewName()==CAL.DisplayView.AgendaView)v(c)}else alert("please provide a control instance name...")}function S(a){switch(a.Package.context.ControlInstanceName){case "fullScreenEventEditor":case "fullScreenTaskEditor":if(getSetting("isEmbedded")){eb(a.Package["event"]);break}var g=e.getControlInstance(a.Package.context.ControlInstanceName);if(g){var b=a.Package["event"],i=a.Package["calendar"],h=a.Package["masterEvent"],c=a.Package.context.Callback,d=b?Calendar.Event.isEventReadOnly(b):false;if(b&&!i.IsCurrentUserOwner&&Calendar.FullEvent.isEventMeetingRequest(b))d=true;c(b,a.Package.context.viewingName,false,d,h,a.Package.originalEvent,a.Package.context)}break;case "eventEditor":var f=e.getControlInstance("eventEditor");if(f){var b=a.Package["event"];f.show(b,a.Package["calendar"],"edit")}break;case "None":var c=a.Package.context.Callback;if(c)c(a.Package["event"],a.Package["calendar"],a.Package.context.Context)}}function K(b){var c=a["calendarEnhancedPreview"].getHtml(b.Package["event"],Calendar.Event.isEventReadOnly(b.Package.event));a["calendarEnhancedPreview"].setContent(c)}function jb(b){var d=b.Package.eventids,f=a["calendarMonthGrid"],g=a["calendarDayList"],c=a["calendarTaskView"],i=b.Package.calendarVisibility,e=b.Package.calendarId;if(i==false&&e)k(e,false);if(f)f.removeEvents(d);if(g)g.removeEvents(d);h();if(c){if(b.Package.taskAction=="hideCompletedTasks")c.setHasCompletedTasks(false);c.tasksDeleted(d)}}function x(b){if(a["fullScreenEventEditor"]&&b.Package.context.ControlInstanceName=="fullScreenEventEditor")a["fullScreenEventEditor"].getController().editingComplete();else if(a["fullScreenTaskEditor"]&&b.Package.context.ControlInstanceName=="fullScreenTaskEditor")a["fullScreenTaskEditor"].getController().editingComplete()}function Y(a){x(a)}function lb(a){if(a.Package.events.length>0)k(a.Package.events[0].CalendarGuid,true);x(a);gController.updateEvents(a.Package.events);e.getControlInstance("calendarTaskView").tasksUpdated(a.Package.events);h()}function gb(h){var b=h.Package.calendars;if(a["eventEditor"])a["eventEditor"].addCalendarsToDropdownList(b);if(a["taskEditor"])a["taskEditor"].addCalendarsToDropdownList(b);if(a["birthdayEditor"])a["birthdayEditor"].addCalendarsToDropdownList(b);if(l){var f=a["calendarPicker"];if(f.getCalendarCount()==0)f.addCalendars(b,true)}if(O(h)=="bootstrapControls"){if(a["exchangeSharingDialog"])a["exchangeSharingDialog"].setCalendars(b);var g=["calendarMonthGrid","calendarDayList","calendarTaskView"];for(var e=0;e<g.length;e++){var d=g[e];for(var c=0;c<b.length;++c)if(a[d]){a[d].setCalendarColor(b[c].Guid,b[c].ColorIndex);if(d=="calendarTaskView")a[d].setCalendarReadOnly(b[c].Guid,Calendar.Event.isCalendarReadOnly(b[c]))}else i.requireDelayLoad(function(b){a[b.ctrlName].setCalendarColor(b.calendarGuid,b.colorIndex);if(b.ctrlName=="calendarTaskView")a[b.ctrlName].setCalendarReadOnly(b.calendarGuid,Calendar.Event.isCalendarReadOnly(b.calendar))},{ctrlName:d,calendarGuid:b[c].Guid,colorIndex:b[c].ColorIndex,calendar:b[c]})}}}function fb(i){var c=i.Package.calendars,g=i.Package.context.Callback;if(g)g(c);var f=[];for(var d=0;d<c.length;++d){f.push(c[d]);a["calendarMonthGrid"].setCalendarColor(c[d].Guid,c[d].ColorIndex);a["calendarDayList"].setCalendarColor(c[d].Guid,c[d].ColorIndex);a["calendarTaskView"].setCalendarColor(c[d].Guid,c[d].ColorIndex);a["calendarTaskView"].setCalendarReadOnly(c[d].Guid,Calendar.Event.isCalendarReadOnly(c[d]))}a["calendarPicker"].addCalendars(f);if(a["eventEditor"])a["eventEditor"].addCalendarsToDropdownList(c);if(a["fullScreenEventEditor"])a["fullScreenEventEditor"].getController().addCalendarsToDropdownList(c);if(a["fullScreenTaskEditor"])a["fullScreenTaskEditor"].getController().addCalendarsToDropdownList(c);if(a["taskEditor"])a["taskEditor"].addCalendarsToDropdownList(c);h();e.displayToast(b.infobaralerts["Calendarsadded"].format(c[0].Name))}function R(c){var b=c.Package.calendar;a["calendarPicker"].updateCalendar(b);a["calendarMonthGrid"].setCalendarColor(b.Guid,b.ColorIndex);a["calendarDayList"].setCalendarColor(b.Guid,b.ColorIndex);a["calendarTaskView"].setCalendarColor(b.Guid,b.ColorIndex);h()}function N(d){var c=d.Package.calendar,b=d.Package.position;a["calendarPicker"].moveCalendar(c.Guid,b);if(a["fullScreenEventEditor"])a["fullScreenEventEditor"].getController().updateCalendarInDropdownList(c,b);if(a["fullScreenTaskEditor"])a["fullScreenTaskEditor"].getController().updateCalendarInDropdownList(c,b);if(a["eventEditor"])a["eventEditor"].updateCalendarInDropdownList(c,b);if(a["taskEditor"])a["taskEditor"].updateCalendarInDropdownList(c,b);if(a["birthdayEditor"])a["birthdayEditor"].updateCalendarInDropdownList(c,b)}function M(d){var b=d.Package.calendar,c=a["calendarGeneralSettingsControl"];gController.doCommand("NavigateToView",CAL.DisplayView.CalendarGeneralSettingsView);c.loadFromCalendar(b);gController.doCommand("TrackAction",{trackId:Calendar.Event.isBirthdayCalendar(b)?"ExistingBirthdayCalendarSettingsPage":"ExistingCalendarSettingsPage"})}function ib(d){var b=d.Package.calendar,c=d.Package.context.Callback;if(c)c(b);a["calendarPicker"].updateCalendar(b);a["calendarMonthGrid"].setCalendarCharm(b.Guid,b.CharmId);a["calendarDayList"].setCalendarCharm(b.Guid,b.CharmId);a["calendarMonthGrid"].setCalendarColor(b.Guid,b.ColorIndex);a["calendarDayList"].setCalendarColor(b.Guid,b.ColorIndex);a["calendarTaskView"].setCalendarColor(b.Guid,b.ColorIndex);a["calendarTaskView"].setCalendarReadOnly(b.Guid,Calendar.Event.isCalendarReadOnly(b));if(a["eventEditor"])a["eventEditor"].updateCalendarInDropdownList(b);if(a["fullScreenEventEditor"])a["fullScreenEventEditor"].getController().updateCalendarInDropdownList(b);if(a["fullScreenTaskEditor"])a["fullScreenTaskEditor"].getController().updateCalendarInDropdownList(b);if(a["taskEditor"])a["taskEditor"].updateCalendarInDropdownList(b);if(a["birthdayEditor"])a["birthdayEditor"].updateCalendarInDropdownList(b);h()}function I(b){a["calendarSharingSettingsControl"].loadFromCalendarAndSharingSettings(b.Package.calendar,b.Package.calendarSharingSettings);gController.doCommand("NavigateToView",CAL.DisplayView.CalendarSharingSettingsView)}function J(b){var a=b.Package.context.CallbackForSuccess;if(a)a(b.Package)}function H(b){var a=b.Package.context.CallbackForFail;if(a)a(b.Package)}function Z(b){a["calendarGeneralSettingsControl"].refreshComplete(b.Package.calendar)}function F(b){a["calendarSharingSettingsControl"].setPrivateFreeBusyUrl(b.Package.PrivateFreeBusySharingUrls)}function G(b){a["calendarSharingSettingsControl"].setPrivateDetailUrl(b.Package.PrivateDetailSharingUrls)}function cb(d){var b=d.Package.calendarId,c=d.Package.eventIds;a["calendarPicker"].deleteCalendars([b]);if(a["eventEditor"])a["eventEditor"].removeCalendarsFromDropdownList([b]);if(a["fullScreenEventEditor"])a["fullScreenEventEditor"].getController().removeCalendarsFromDropdownList([b]);if(a["fullScreenTaskEditor"])a["fullScreenTaskEditor"].getController().removeCalendarsFromDropdownList([b]);if(a["taskEditor"])a["taskEditor"].removeCalendarsFromDropdownList([b]);if(a["birthdayEditor"])a["birthdayEditor"].removeCalendarsFromDropdownList([b]);a["calendarMonthGrid"].removeEvents(c);a["calendarDayList"].removeEvents(c);a["calendarTaskView"].tasksDeleted(c);if(d.Package.context.ControlInstanceName)a["viewNavigator"].navigateToPreviousEventView();h()}function bb(d){var a=e.getControlInstance("miniCalendar"),b=a.getFirstDayDisplayed(),c=a.getLastDayDisplayed();a.changeCalendarBusyDayStatus(d.Package.busyDaysManager.getBusyDaysStatus(b,c))}function ab(){if(e.getControlInstance("infoBar"))e.getControlInstance("infoBar").displayInfoBar(b.infobaralerts["Loading"],Calendar.InfoBar.MessageType.Simple)}function db(){if(e.getControlInstance("infoBar"))e.getControlInstance("infoBar").removeInfoBar()}function W(a){if(!!getSetting("circleId")){a.Package.menuItems["NewCalendar"]=false;a.Package.menuItems["NewBirthdayCalendar"]=false;a.Package.menuItems["NewBirthday"]=false}else{var b=f.hasBirthdayCalendar();a.Package.menuItems["NewBirthdayCalendar"]=!b;a.Package.menuItems["NewBirthday"]=b}}function P(a){if(m_calBlogUrl.length==0)a.Package.menuItems["CalBlog"]=false;if(m_supportUrl.length==0)a.Package.menuItems["Support"]=false}function eb(a){var f="http://"+getSetting("publishedUrlBase")+"index.html?rru={0}",e="{0}?event={1}&eventrecurrence={2}&calendar={3}",b=null;switch(a.ItemType){case CAL.CalendarItemType.TaskItem:b="taskdetails";break;default:b="eventdetails"}var c="",d=a.Guid;if(a.RecurrenceId){c=a.RecurrenceId.valueOf();if(a.IsRecurrenceException)d=a.ParentGuid}var e=e.format(b,d,c,a.CalendarGuid);window.open(f.format(e.encodeURIComponent()),"_blank")}function U(b){e.displayToast(b.Package.context.toastMessage);a["exchangeSharingDialog"].hide()}function T(b){a["exchangeSharingDialog"].showError(b.Package.errorcode)}function z(){AlertManager.createWarningAlert(b.controller.errortitle,b.controller.abchdown,false,null,true,true)}function V(){if(i.isDelayLoadCompleted())z();else u=true}};Calendar.View.registerClass("Calendar.View","$Binding");Calendar.View.Events=new $Enum("appview_windowresized","appview_servererrorcleared");Calendar.ResizeEngine=function(M){var K=987,J=610,I=687,H=310,i=K,g=J,o=this,F=M,c=false,a=false,j=$("c_header"),d=$("CalendarPublishedHeader"),e=$("bodyWrapper"),r=$("calendarInfoContainer"),q=$("calendarListPaneHeader"),p=$("calendarPickerContainer"),v=$("sidebarReturnLinkContainer"),u=$("leftPaneDivider1"),t=$("calendarShortcutsContainer"),w=$("brandLinksContainer"),D=$("miniCal"),E=$("appTitle"),x=$("GoToCalPane"),m=$("calendarViewsContainer"),y=$("leftPanePrivacy"),C=$("Crm120x60_0"),n=$("leftPane"),b=$("calendarToolbar"),k=$("calendarViewNavigatorTab"),f=$("footerContainer"),A=$B.Firefox?8:9,l=new Calendar.EventHandlerManager;gController.onDisposeControllers.attach(G);gController.registerCommands(o,["RefreshResizeEngine"]);if(getSetting("isEmbedded")){i=I;g=H;A=0}function G(){gController.onDisposeControllers.detach(G);l.dispose();l=null;gController.unregisterCommands(o);if(!$B.IE)window.onresize=null}this.doCommand=function(a){switch(a){case "RefreshResizeEngine":o.refresh()}};this.attachHandler=function(){window.setTimeout(function(){if($B.IE)l.attach(window,{onresize:h});else window.onresize=h},1)};this.refresh=function(){h(null)};this.completeDeferredResize=function(){if(a){a=false;h(null)}};function h(){if(L())setTimeout(B,0)}function z(){var a=document.documentElement;return !c&&a.clientHeight!=0&&a.clientWidth!=0}function L(){if(!z())return false;c=true;var e=Math.max(document.documentElement.clientHeight,g),a=e-s()-2;r.style.pixelHeight=a-(E?E.offsetHeight:0)-(D?D.offsetHeight:0)-(v?v.offsetHeight:0)-(t?t.offsetHeight:0)-(w?w.offsetHeight:0)-(u?u.offsetHeight:0)-(y?y.offsetHeight:0)-(C?C.offsetHeight:0)+(b?b.offsetHeight:0)+(k?k.offsetHeight:0)+(d?d.offsetHeight:0)-(x?x.offsetHeight:0);if(p)p.style.pixelHeight=r.offsetHeight-(q?q.offsetHeight+2:0);c=false;F.fireResizeEvent();if(document.documentElement.clientWidth<i){B();return false}return true}function B(){if(!z()||!gController.getAppState().getIsDelayedInit()&&($B.IE&&$B.V<7))return;a=false;var d=document.documentElement;c=true;if($B.IE&&$B.V<7)if(d.scrollTop>0&&d.clientHeight>=d.offsetHeight)d.scrollTop=0;var w=$("bodyContainer"),p=i-parseInt(n.offsetWidth),h=F.getCurrentView();if(h&&typeof h.getMinWidth!="undefined")p=h.getMinWidth();var q=Math.max(p+parseInt(n.offsetWidth),i),t=d.clientHeight<g,u=d.clientWidth<q,o=Math.max(d.clientHeight,g),r=Math.max(d.clientWidth,q);if(u){e.style.width=r+"px";d.style.overflowX="auto"}else{e.style.width="auto";d.style.overflowX="hidden"}var v=b.offsetWidth;if(h&&typeof h.setWidth!="undefined")h.setWidth(v);else a=true;if(m_isBidi)n.style.left=m.offsetLeft+m.offsetWidth+"px";var l=o-s()-1;m.style.pixelHeight=l;AdManager.setAdContainerHeight("Ad160x600_0",l);if(h&&typeof h.setHeight!="undefined")h.setHeight(l);else a=true;if(t){d.style.overflowY="auto";e.style.height=o-(j?j.offsetHeight:0)-(f?f.offsetHeight:0)+"px"}else{d.style.overflowY="hidden";e.style.height="auto"}var k=$("popOverPageMask");if(k){k.style.pixelHeight=o;k.style.pixelWidth=r;window.centerWelcomePage();if($B.IE){$("ifmWelcome").style.visibility="hidden";window.setTimeout(function(){$("ifmWelcome").style.visibility="visible"},0)}}c=false}function s(){return (j?j.offsetHeight:0)+(b?b.offsetHeight:0)+(k?k.offsetHeight:0)+(d?d.offsetHeight:0)+(f?f.offsetHeight:0)+A}};AppState=function(){var h=CAL.DisplayView.MonthView,c=null,k=null,g=null,d=null,i=null,f=5e3,e=10,m=!!getSetting("circleId"),j=new Calendar.Date,a=null,b=null,n=false,l=false;this.init=function(j){if(j["initViewName"])h=j["initViewName"];if(j["initViewCommandName"])c=j["initViewCommandName"];if(j["calUrl"])k=j["calUrl"];if(j["contactsUrl"])g=j["contactsUrl"];if(j["cleanUpContactsUrl"])d=j["cleanUpContactsUrl"];if(j["marketQS"])i=j["marketQS"];if(j["pollingInterval"])f=j["pollingInterval"];if(j["pollingMaxRetries"])e=j["pollingMaxRetries"];if(j["serviceVersion"])a=j["serviceVersion"];if(j["targetDate"])b=j["targetDate"]};this.getInitView=function(){return h};this.setInitView=function(a){h=a};this.getInitViewCommandName=function(){return c};this.setInitViewCommandName=function(a){c=a};this.getApplicationUrl=function(){return k};this.getContactsUrl=function(){return g};this.setContactsUrl=function(a){g=a};this.getCleanUpContactsUrl=function(){return d};this.setCleanUpContactsUrl=function(a){d=a};this.getMarketQS=function(){return i};this.setMarketQS=function(a){i=a};this.getPollingInterval=function(){return f};this.setPollingInterval=function(a){f=a};this.getPollingMaxRetries=function(){return e};this.setPollingMaxRetries=function(a){e=a};this.getIsGroupMode=function(){return m};this.setIsGroupMode=function(a){m=a};this.getTargetStartDate=function(){return j};this.setTargetStartDate=function(a){j=a};this.getServiceVersion=function(){return a?a:""};this.setServiceVersion=function(b){a=b};this.getBootModelTargetDate=function(){return b};this.setBootModelTargetDate=function(a){b=a};this.getIsInDragMode=function(){return n};this.setIsInDragMode=function(a){n=a};this.getIsDelayedInit=function(){return l};this.setIsDelayedInit=function(a){l=a}};CommandDispatcher=function(){var a={};this.registerListener=function(d,b){if(d&&b&&Object.isArray(b))for(var c=0;c<b.length;c++)if(!a[b[c]]){a[b[c]]=[];a[b[c]].push(d)}else if(!a[b[c]].contains(d))a[b[c]].push(d)};this.unregisterListener=function(b,c){if(b)if(c&&Object.isArray(c)){for(var d=0;d<c.length;d++)if(a[c[d]].contains(b))a[c[d]].remove(b)}else for(var e in a)if(a[e].contains(b))a[e].remove(b)};this.doCommand=function(b,e){var d=false;if(a[b])for(var c=0;c<a[b].length;c++){if(typeof a[b][c].doCommand!="undefined")d=a[b][c].doCommand(b,e);if(d)break}return d}};AppController=function(){var a=this,i=new AppState,c=null,d=null,g=null,e=null,h=new Calendar.EventHandlerManager,f=new CommandDispatcher,b=null,j=null;this.getStrings=function(){return g};this.getAppState=function(){return i};this.getOnDemandLoadManager=function(){return b};this.getTrackingId=function(){return 0};this.init=function(j,k,f){b=new Calendar.OnDemandLoadManager;c=j;d=k;g=f.contentStrings;i.init(f);e={};h.attach(window,{onunload:a.dispose},window.document,{onkeydown:a.handleKeyDown},d,{appview_windowresized:a.hideAllPopupDialogs});b.featuresloaded.attach(a.ondemandFeaturesLoaded);a.onInitControllers.fire({model:c,view:d})};this.registerOnDemandFeatures=function(a){b.registerFeatures(a)};this.initOnDemand=function(b){a.onInitOnDemandControllers.fire({model:c,view:d,featuresloaded:b})};this.initDelayed=function(){c.releaseBootstrapPackageForDelayLoadedControls();a.onInitDelayedControllers.fire({model:c,view:d})};this.hideAllPopupDialogs=function(){a.onHideAllPopups.fire();if(typeof $menu!="undefined")$menu.closeCurrent()};this.dispose=function(){b.featuresloaded.detach(a.ondemandFeaturesLoaded);h.dispose();if(b)b.dispose();c.dispose();a.onDisposeControllers.fire()};this.registerCommands=function(a,b){f.registerListener(a,b)};this.unregisterCommands=function(a,b){f.unregisterListener(a,b)};this.doCommand=function(c,b){switch(c){case "SelectContentArea":a.selectNavigableElement(a.getCurrentViewContentElementID());break;case "CommonClickAction":a.onClickAction.fire({context:b})}return f.doCommand(c,b)};this.isCalendarVisible=function(){return true};this.saveEventData=Function.abstractMethod;this.selectNavigableElement=function(b){var a=window.document.getElementById(b);if(a){a.tabIndex=0;try{a.focus()}catch(c){}a.tabIndex=-1;return false}return true};this.getCurrentViewContentElementID=Function.abstractMethod;this.handleKeyDown=function(b){if(b.keyCode==Dom.KeyCode.Esc)a.hideAllPopupDialogs()};this.onDemandFeatureLoaded=function(b){a.onOnDemandFeatureLoaded.fire({feature:b})};this.ondemandFeaturesLoaded=function(d){var b=d.Names;for(var c=0;c<b.length;++c)if(!e[b[c]]){e[b[c]]=true;a.onDemandFeatureLoaded(b[c])}a.initOnDemand(b);d.OnDemandLoader.go()};this.askToEditEventOrSeries=function(c,d){var b=AlertManager.createWarningAlert(c,a.getStrings().recurrenceinformation,true,d);b.addOption(a.getStrings().editoccurence,"Occurrence",true);b.addOption(a.getStrings().editseries,"Series",false);b.addButton(a.getStrings().openforedit,"Open",true,false);b.addButton(a.getStrings().cancel,"Cancel",false,true);AlertManager.getInstance().showAlert(b)};this._setupDeleteSeries=function(d,c){var b=AlertManager.createWarningAlert(d,a.getStrings()["alertdeleteseries"],true);b.addOption(a.getStrings()["alertdeleteoccurrence"],"Occurrence",true);b.addOption(a.getStrings()["alertdeleteevery"],"Series",false);b.addButton(a.getStrings()["delete"],c,true,false);b.addButton(a.getStrings()["cancel"],"Cancel",false,true);return b};AppController.registerBaseMethod(this,"init");AppController.registerBaseMethod(this,"initOnDemand");AppController.registerBaseMethod(this,"initDelayed");AppController.registerBaseMethod(this,"doCommand");AppController.registerBaseMethod(this,"dispose");AppController.registerBaseMethod(this,"isCalendarVisible");AppController.registerBaseMethod(this,"saveEventData");AppController.registerBaseMethod(this,"handleKeyDown");AppController.registerBaseMethod(this,"onDemandFeatureLoaded");AppController.registerBaseMethod(this,"ondemandFeaturesLoaded");return this};AppController.prototype={onInitControllers:new $Event,onInitDelayedControllers:new $Event,onInitOnDemandControllers:new $Event,onDisposeControllers:new $Event,onHideAllPopups:new $Event,onOnDemandFeatureLoaded:new $Event,onClickAction:new $Event,onDisplayviewchangerequested:new $Event};AppController.registerClass("AppController");DesktopAppController=function(){DesktopAppController.initializeBase(this,arguments);var a=this,c=null,d=null,e=null,r=null,v=new Calendar.DelayLoadManager,m=null,b=null,g=null,h=null,p=null,s=null,n=new Calendar.EventHandlerManager,z=["miniCal","calendarInfoContainer","calendarShortcutsContainer","calendarToolbar","calendarViewNavigatorTab","calendarViewsContainer"],w=null,f=null,j=null,i=null,hb=8;this.getMaxDaysInWeekView=function(){return hb};var eb=42;this.getMonthViewMaxCells=function(){return eb};var k={isTraditionalMonthView:true,isTraditionalWeekView:false,haveTasksLoaded:CAL.DisplayView[getSetting("savedView")]==CAL.DisplayView.TaskView,tasksClicked:false};this.setViewFlags=function(a,b){if(a!=null&&typeof a!="undefined")k.isTraditionalMonthView=a;if(b!=null&&typeof b!="undefined")k.isTraditionalWeekView=b};this.getIsTraditionalMonthView=function(){return k.isTraditionalMonthView};this.getIsTraditionalWeekView=function(){return k.isTraditionalWeekView};this.getTasksLoaded=function(){return k.haveTasksLoaded};this.setTasksLoaded=function(a){k.haveTasksLoaded=a};this.getTasksClicked=function(){return k.tasksClicked};this.setTasksClicked=function(a){k.tasksClicked=a};this.getCurrentViewName=function(){return b.getCurrentViewName()};this.getPreviousViewName=function(){return b.getPreviousViewName()};this.navigateToPreviousEventView=function(){b.navigateToPreviousEventView()};this.getPrintContext=function(){return j};this.beginWaitForBootstrap=function(a){w=window.setTimeout(H,a)};this.endWaitForBootstrap=function(){if(w)window.clearTimeout(w)};function H(){AlertManager.createWarningAlert(a.getStrings().errortitle,a.getStrings().bootstrapTimeout,false,null,true,true)}this.init=function(h,i,g){e=i;c=e.getControlInstance;d=h;b=c("viewNavigator");if(g["idssTrackUrl"])r=(new Calendar.IDSS(g["idssTrackUrl"])).init(!!getSetting("circleId"));K();n.attach(d,{stoppolling:Cb,bootstrapfailed:H},b,{viewnav_requestdisplaychange:E,viewnav_viewchanged:db});var f=c("miniCalendar");if(f)n.attach(f.getController(),{selectionchanged:W});DesktopAppController.callBaseMethod(a,"init",arguments)};this.initDelayed=function(){K();v.setDelayLoadCompleted();gHistoryEngine=new HistoryEngine;gHistoryEngine.initialize(window,"app_frameset","/calendar/Library/hist0"+a.getAppState().getServiceVersion()+".aspx","/calendar/Library/hist1"+a.getAppState().getServiceVersion()+".aspx",{commandName:a.getAppState().getInitViewCommandName(),paramList:{targetDate:a.getAppState().getBootModelTargetDate()}},doCommandFromHistory,null);DesktopAppController.callBaseMethod(a,"initDelayed",arguments);a.getAppState().setIsDelayedInit(true)};this.onDemandFeatureLoaded=function(d){DesktopAppController.callBaseMethod(a,"onDemandFeatureLoaded",arguments);switch(d){case "EventEditRsvpResponse":var b=c("eventEditRsvpResponse");if(b)n.attach(b,{send:T,"delete":R})}};this.registerDragDropControl=function(a){n.attach(a,{drageventended:Db,drageventstarted:Bb})};this.dispose=function(){n.dispose();if(gHistoryEngine){gHistoryEngine.dispose();gHistoryEngine=null}if(i){for(var b=0;b<i.length;b++){var c=i[b];if(c)c.close()}i.clear();i=null}if(typeof MenuManager!="undefined")MenuManager.dispose();DesktopAppController.callBaseMethod(a,"dispose",arguments)};this.isCalendarVisible=function(b){var a=e.getControlInstance("calendarPicker");return a?a.isCalendarChecked(b):true};this.saveEventData=function(c,o,p,n,g,l,i,h){if(n){d.saveReadOnlyEvent(c,{ControlInstanceName:i});return}var m=e?e.getLargestDisplayedRange():null,k=g&&(c.IsRecurrenceException||c.RecurrenceId||c.RecurrenceInfo||g.originalEventWasRecurring);if(!k)g=null;if(d)d.saveEvent(c,a.isCalendarVisible(c.CalendarGuid),g,m,l,{ControlInstanceName:i});if(!c.Guid){var f=h=="event"?"AddNewEvent":"TaskNoDueDateQuickAddSave",j=e.getControlInstance("calendarPicker");if(a.getAppState().getIsGroupMode()&&j&&!j.isMainGroupCalendar(calendarId))f="SaveEventToPersonalCalendar";else if(b.getCurrentViewName()==CAL.DisplayView.MonthView||h=="task")if(c.IsAllDayEvent)f=h=="event"?"EventAllDayMonthGridSave":"TaskNoDueTimeQuickAddSave";else if(c.DateEnd)f=h=="event"?"EventPartialDayMonthGridSave":"TaskWithDueTimeQuickAddSave";a.doCommand("TrackAction",{trackId:f})}};this.saveBirthdayData=function(b,c){var f=e?e.getLargestDisplayedRange():null;if(d)d.saveBirthday(b,a.isCalendarVisible(b.CalendarGuid),f,{ControlInstanceName:c})};this.getCurrentViewContentElementID=function(){switch(b.getCurrentViewName()){case CAL.DisplayView.MonthView:case CAL.DisplayView.WeekView:case CAL.DisplayView.DayView:case CAL.DisplayView.AgendaView:case CAL.DisplayView.TaskView:return "calendarViewsContainer";break;case CAL.DisplayView.EditEventView:case CAL.DisplayView.NewEventView:case CAL.DisplayView.ReadOnlyEventView:return "fullScreenEventEditor";break;case CAL.DisplayView.EditTaskView:case CAL.DisplayView.NewTaskView:case CAL.DisplayView.ReadOnlyTaskView:return "fullScreenTaskEditor";break;case CAL.DisplayView.CalendarGeneralSettingsView:return "calendarGeneralSettingsContainer";break;case CAL.DisplayView.CalendarSharingSettingsView:return "calendarSharingSettingsContainer"}};this.getSelectionRange=function(c,b){var a=c.getSelectionRange();if(!a&&!b)a=gController.getDefaultSelectionRange();return a};this.calculateDisplayedRange=function(b,d){var a=c("miniCalendar");if(a)return a.calculateDisplayedRange(b,d);return null};this.getDefaultSelectionRange=function(){var g=c("miniCalendar"),h=null,d=g?g.getSelectionRange():null;if(!d){var f=new Calendar.Date;f.moveToStartOfDay();var i=new Calendar.Date(f);i.moveToEndOfDay();d={DateStart:f,DateEnd:i}}var e=new Calendar.Date,b=null;if(Calendar.Date.getDayDifference(d.StartDate,e)>=0&&Calendar.Date.getDayDifference(e,d.EndDate)>=0){b=e;e=null}else if(a.getAppState().getTargetStartDate())b=a.getAppState().getTargetStartDate().clone();b.setHours(Calendar.Date.StartHourOfWorkDay,Calendar.Date.StartMinuteOfWorkDay,0,0);var j=b.addMinutes(60);h={DateStart:b,DateEnd:j,IsAllDayEvent:false};return h};this.getItemDetailsAndEditFromHistory=function(b){var c={itemType:b.itemType,itemId:b.eventId,calendarId:b.calendarId,viewName:b.viewingName,skipRecurrenceDialog:false};a.doCommand("EditItem",c)};this.deleteSelectedEvent=function(){var f=null,j=null,i={bIsEditingEvent:false};switch(b.getCurrentViewName()){case CAL.DisplayView.EditEventView:f=[c("fullScreenEventEditor").getController().getEventId()];j=c("fullScreenEventEditor").getController().getOriginalEvent();i.bIsEditingEvent=true;i.bIsEditingSeries=c("fullScreenEventEditor").getController().isEditingRecurringEventSeries();break;case CAL.DisplayView.MonthView:f=g.getSelectedEventIds();break;case CAL.DisplayView.WeekView:case CAL.DisplayView.DayView:f=h.getSelectedEventIds()}if(f)if(f.length==0){var n=a.getStrings().deleteEventNoSelectionTitle,k=a.getStrings().deleteEventNoSelectionText;AlertManager.createWarningAlert(n,k,false,null,true,true)}else{var m=e.getLargestDisplayedRange();d.getCachedEvent(f[0],m,{ControlInstanceName:"None",Callback:l,event:Calendar.Event.cloneEvent(j),Context:i})}};this.deleteSelectedTask=function(){var a=null,g=null,f={bIsEditingEvent:false};switch(b.getCurrentViewName()){case CAL.DisplayView.EditTaskView:a=[c("fullScreenTaskEditor").getController().getEventId()];g=c("fullScreenTaskEditor").getController().getOriginalEvent();f.bIsEditingEvent=true;break;default:alert("deleting tasks from grid not implemented")}var h=e.getLargestDisplayedRange();d.getCachedEvent(a[0],h,{ControlInstanceName:"None",Callback:l,event:Calendar.Event.cloneEvent(g),Context:f})};this.closeFullScreenEventEditor=function(){var a=c("fullScreenEventEditor");if(a)a.getController().stopWatchingSidebarNavigation()};this.closeFullScreenTaskEditor=function(){var a=c("fullScreenTaskEditor");if(a)a.getController().stopWatchingSidebarNavigation()};this.handleKeyDown=function(c){var d=window.document.activeElement;switch(c.keyCode){case Dom.KeyCode.F6:var b=wb(d)+1;if(b==z.length)return true;if(!a.selectNavigableElement(z[b])){c.returnValue=false;return false}}DesktopAppController.callBaseMethod(a,"handleKeyDown",arguments)};this.showDeleteConfirmationAlert=function(c,a,b){l(c,a,b)};this.updateEvents=function(b){a.onUpdateEvents.fire({events:b})};this.doCommand=function(g,c,k){var e=false,f=null;switch(g){case "LoadCalendars":if(d)d.getAllCalendars();break;case "SetTasksLoaded":xb();break;case "UpdateAd":vb();break;case "FirstRunExperience":if(getSetting("showFRE"))cb();break;case "SetUserTimezone":G(c.Timezone,c.BootstrapWhenComplete);break;case "Bootstrap":sendBootstrapRequest();break;case "ShowAddEventPopOver":u("event",c.locationRect,c.timeSelection,c.trackingName,"showAddEventPopOver");break;case "ShowAddTaskPopOver":u("task",c.locationRect,c.timeSelection,c.trackingName,"showAddTaskPopOver");break;case "ShowAddBirthdayPopOver":u("birthday",c.locationRect,c.timeSelection,c.trackingName,"showAddBirthdayPopOver");break;case "InitAgendaView":e=true;a.doCommand("NavigateToView",CAL.DisplayView.AgendaView);break;case "ShowAgendaView":e=true;b.changeDisplay(Calendar.ViewNavigatorButtons.Agenda);break;case "ShowDayView":e=true;a.doCommand("NavigateToView",CAL.DisplayView.DayView);t(c.targetDate);break;case "ShowWeekView":e=true;a.doCommand("NavigateToView",CAL.DisplayView.WeekView);t(c.targetDate);break;case "ShowTaskView":e=true;a.doCommand("NavigateToView",CAL.DisplayView.TaskView);break;case "SelectThisMonth":e=true;var i=new Calendar.Date(c.targetDate.getFullYear(),c.targetDate.getMonth(),1),h=Calendar.Date.getRangeOfCalendarMonth(i),j={startDate:h.StartDate,endDate:h.EndDate,focusDate:c.targetDate,dontBroadcast:false};a.doCommand("SetSelection",j);a.doCommand("NavigateToView",CAL.DisplayView.MonthView);break;case "NewEvent":y(CAL.CalendarItemType.CalendarItem);break;case "NewBirthday":y("birthday");break;case "NewTask":y(CAL.CalendarItemType.TaskItem);break;case "LaunchEditor":bb(c.locationRect,c.control);break;case "EditEvent":e=true;N("event",c.eventId+(c.eventRecurrenceId?"|"+c.eventRecurrenceId:""),c.calendarId,!c.eventRecurrenceId,c.isRru);break;case "EditTask":e=true;N("task",c.eventId,c.calendarId);break;case "NewPrePopulatedEvent":e=true;Y(c);break;case "NewPrePopulatedTask":e=true;ab(c);break;case "GoToDay":e=true;t(c.targetDate);break;case "GoToToday":e=true;t();a.doCommand("TrackAction",{trackId:"ToolbarTodayButton"});break;case "NextSevenDays":e=true;rb();break;case "NextFourWeeks":e=true;qb();break;case "TrackAction":if(r)r.SetPageSequenceUrl(r.PageSequenceNumbers[c.trackId]);break;case "CommonClickAction":mb(c.clickAction,c.context);break;case "DeleteEvent":a.deleteSelectedEvent();break;case "DeleteTask":a.deleteSelectedTask();break;case "LaunchCalendarSettingDialog":e=true;F(c?c.calendarGuid:null,c?c.newCalendarType:null);break;case "EditCalendarFromContextMenu":e=true;F(c.menuContext.calendarId);break;case "ShareCalendarFromContextMenu":e=true;C(c.menuContext.calendarId);f=D;break;case "ToggleToolbarMenu":sb(c.name,c.dockElement);break;case "LaunchCalendarSharingSettingDialog":e=true;C(c.calendarId);f=D;break;case "Print":Eb();break;case "ReturnToCalendarView":e=true;b.navigateToPreviousEventView();break;case "StartPolling":Ab(c.calendarId);break;case "RsvpResponse":e=true;gb(c.rsvpMenuAction,c.menuContext);break;case "MessageToParticipants":case "ReplyToMeetingRequest":case "ReplyAllToMeetingRequest":e=true;break;case "SetupPrintContext":pb(c.printType);break;case "DisposePrintContext":ib(c.printWindow);break;case "ToggleFlyoutFooter":ob(c.forceHide);break;case "HelpMenuAction":ub(c.action);break;case "NavigateToContactDetails":I(c);break;case "NavigateToCleanUpContacts":X(c);break;case "EditItem":q(c.itemType,c.itemId,c.calendarId,c.viewName?c.viewName:b.getCurrentViewName(),c.skipRecurrenceDialog,c.isRru);break;case "ProcessBootCommands":kb()}if(gHistoryEngine&&e&&!k)gHistoryEngine.AddEventToHistory({commandName:g,paramList:c},doCommandFromHistory,f);DesktopAppController.callBaseMethod(a,"doCommand",arguments)};function kb(){var c=$Cookie.getCookie("wlc_command");if(c){$Cookie.deleteCookie("wlc_command");var b=c.split(":"),d={};d[b[1]]=b[2];a.doCommand(b[0],d)}}function N(h,d,c,f,i){var e=a.getAppState().getInitView();if(b.getCurrentViewName()!=null)e=b.getCurrentViewName();if(d&&c&&d.length>0&&c.length>0){var g={itemType:h,itemId:d,calendarId:c,viewName:e,skipRecurrenceDialog:f,isRru:i};a.doCommand("EditItem",g)}}function Bb(){a.getAppState().setIsInDragMode(true)}function Db(){a.getAppState().setIsInDragMode(false)}function W(j){var c=j.Package.startDate,d=j.Package.endDate,f=Calendar.Date.getDayDifference(c,d);if(a.getCurrentViewName()==CAL.DisplayView.AgendaView)p.getController().updateRange(c,d);else if(f<=a.getMaxDaysInWeekView()){var e;if(f>1)e=b.navigate(CAL.DisplayView.WeekView,{isTraditionalView:a.getIsTraditionalWeekView(),pageSequenceName:"CustomWeekView"});else e=b.navigate(CAL.DisplayView.DayView);if(h)h.showDateRange(c,d,e);else v.requireDelayLoad(function(){h.showDateRange(c,d,e)})}else{b.navigate(CAL.DisplayView.MonthView,{isTraditionalView:a.getIsTraditionalMonthView(),pageSequenceName:"CustomMonthView"});if(a.getIsTraditionalMonthView()){var i=g.getDisplayedRange();if(!(i.StartDate.isEqual(c)&&i.EndDate.isEqual(d)))a.doCommand("ShowMonth",{thisMonthDate:Calendar.Date.average(c,d)})}else g.showWeekRange(c,d)}}function xb(){if(gController.getTasksClicked())gController.setTasksLoaded(true)}function vb(){AdManager.getInstance().updateDisplay(b.getCurrentViewName());if(b.getCurrentViewName()==CAL.DisplayView.DayView)h.updateDisplayForAd()}function gb(d,b){if(b.isEventChanged&&b.userParticipationStatus!=CAL.CalendarUserParticipationStatus.Declined){var c=AlertManager.createWarningAlert(a.getStrings().editRsvpAlertSaveTitle,a.getStrings().editRsvpAlertSaveText,true,tb,false,false,{menuAction:d,innerContext:b});c.addButton(a.getStrings().save,"Save",true,false);c.addButton(a.getStrings().cancel,"Cancel",false,true);AlertManager.getInstance().showAlert(c)}else x(d,b)}function bb(c,b){a.doCommand("ShowAddEventPopOver",{locationRect:c,timeSelection:a.getSelectionRange(b),trackingName:"EventQuickAddFromGridAddLink"})}function y(d){var c=null,e=d==CAL.CalendarItemType.TaskItem;switch(b.getCurrentViewName()){case CAL.DisplayView.MonthView:c=a.getSelectionRange(g,e);break;case CAL.DisplayView.WeekView:case CAL.DisplayView.DayView:c=a.getSelectionRange(h,e);break;case CAL.DisplayView.AgendaView:c=e?null:a.getDefaultSelectionRange()}if(d==CAL.CalendarItemType.CalendarItem)a.doCommand("ShowAddEventPopOver",{locationRect:null,timeSelection:c,trackingName:"ToolbarAddEventButton"});else if(d==CAL.CalendarItemType.TaskItem)a.doCommand("ShowAddTaskPopOver",{locationRect:null,timeSelection:c,trackingName:"ToolbarAddTaskButton"});else if(d=="birthday")a.doCommand("ShowAddBirthdayPopOver",{locationRect:null,timeSelection:c,trackingName:"ToolbarAddBirthdayButton"})}function wb(c){var a=c;while(a&&a!=document){var b=z.indexOf(a.id);if(b>=0)return b;a=a.parentNode}return -1}function zb(f){var a=f;if(!a){var c=gController.getStrings().pageTitles,e=b.getCurrentViewName(),d=c[Calendar.getViewNameFromEnum(e)];a=d?d:c["Default"]}window.document.title=a}function db(c){a.doCommand("HideInfoBar");var b=c.Package["viewname"];if(a.getAppState().getIsGroupMode()){Calendar.Toolbar.DisplayButton($("toolbar_gridview_import"),false);Calendar.Toolbar.DisplayButton($("toolbar_gridview_share"),false)}a.doCommand("RefreshResizeEngine");zb();if(b!=CAL.DisplayView[getSetting("savedView")]&&isAllowedSavedView(Calendar.getViewNameFromEnum(b))&&!!getSetting("publishedUrlBase")==false)d.savePersistentView(b);a.hideAllPopupDialogs();if(b==CAL.DisplayView.MonthView){if(g.getExpansionMode()!=CAL.GridExpansionMode[getSetting("monthGridExpansionMode")])a.doCommand(g.getExpansionMode()?"CollapseGrid":"ExpandGrid");g.becomeActiveView()}else if(b==CAL.DisplayView.WeekView||b==CAL.DisplayView.DayView)if(h.getExpansionMode()!=CAL.GridExpansionMode[getSetting("monthGridExpansionMode")])a.doCommand(h.getExpansionMode()?"CollapseGrid":"ExpandGrid")}function E(e,k){if(!k&&gHistoryEngine)gHistoryEngine.AddEventToHistory(e,E);a.onDisplayviewchangerequested.fire(e.Package);var l=e.Package["button"];switch(l){case Calendar.ViewNavigatorButtons.Month:if(a.getIsTraditionalMonthView()&&!a.getIsTraditionalWeekView()&&b.getCurrentViewName()==CAL.DisplayView.MonthView)break;a.setViewFlags(true,false);a.doCommand("NavigateToView",CAL.DisplayView.MonthView);var d=a.getAppState().getTargetStartDate().clone(),j=new Calendar.Date(d.getFullYear(),d.getMonth(),1),i=Calendar.Date.getRangeOfCalendarMonth(j),c={startDate:i.StartDate,endDate:i.EndDate,focusDate:d,dontBroadcast:false};a.doCommand("ForceSetSelection",c);break;case Calendar.ViewNavigatorButtons.Week:if(!a.getIsTraditionalMonthView()&&a.getIsTraditionalWeekView()&&b.getCurrentViewName()==CAL.DisplayView.WeekView)break;B();a.setViewFlags(false,true);a.doCommand("NavigateToView",CAL.DisplayView.WeekView);var g=a.getAppState().getTargetStartDate().clone(),h=a.getAppState().getTargetStartDate().clone();g.moveToStartOfWeek();h.moveToEndOfWeek();var c={startDate:g,endDate:h,focusDate:a.getAppState().getTargetStartDate(),dontBroadcast:false};a.doCommand("ForceSetSelection",c);break;case Calendar.ViewNavigatorButtons.Day:if(!a.getIsTraditionalMonthView()&&!a.getIsTraditionalWeekView()&&b.getCurrentViewName()==CAL.DisplayView.DayView)break;B();a.setViewFlags(false,false);a.doCommand("NavigateToView",CAL.DisplayView.DayView);var c={startDate:a.getAppState().getTargetStartDate(),endDate:a.getAppState().getTargetStartDate(),focusDate:null,dontBroadcast:false};a.doCommand("ForceSetSelection",c);break;case Calendar.ViewNavigatorButtons.Agenda:if(b.getCurrentViewName()==CAL.DisplayView.AgendaView)break;a.setViewFlags(false,false);var f=fb();a.doCommand("NavigateToView",CAL.DisplayView.AgendaView);p.getController().updateRange(f.StartDate,f.EndDate);break;case Calendar.ViewNavigatorButtons.Task:a.setViewFlags(false,false);a.setTasksClicked(true);if(!a.getTasksLoaded())a.doCommand("LoadTasks");a.doCommand("NavigateToView",CAL.DisplayView.TaskView)}}function B(){if(b.getCurrentViewName()==CAL.DisplayView.MonthView){var c=g.getSelectionRange();if(c!=null)a.getAppState().setTargetStartDate(c.DateStart.moveToStartOfDay())}}function fb(){var c=null;if(b.getCurrentViewName()==CAL.DisplayView.MonthView)c=g.getDisplayedRange();else if(b.getCurrentViewName()==CAL.DisplayView.DayView||b.getCurrentViewName()==CAL.DisplayView.WeekView)c=h.getCurrentDateRange();else{var d=a.getAppState().getTargetStartDate().clone();d.moveToStartOfWeek();var e=a.getAppState().getTargetStartDate().clone();e.moveToEndOfWeek();c={StartDate:d,EndDate:e}}return c}function mb(h,c){var f=true,g=b.getCurrentViewName(),j=h;switch(j){case "viewSocialEvent":U(c.dataSource.ItemId);break;case "view":case "edit":case "setReminder":q(c.dataSource.ItemType,c.dataSource.ItemId,null,g);break;case "viewContact":case "editContact":I(c.externalId);break;case "delete":f=false;var i=e.getLargestDisplayedRange();d.getCachedEvent(c.dataSource.ItemId,i,{ControlInstanceName:"None",Callback:l})}if(f&&gHistoryEngine)gHistoryEngine.AddEventToHistory({eventId:c.dataSource.ItemId,itemType:c.dataSource.ItemType,viewingName:g},V,a.closeFullScreenEventEditor)}function V(a){q(a.itemType,a.eventId,a.calendarId,a.viewingName)}function U(b){a.hideAllPopupDialogs();var c=e.getLargestDisplayedRange();d.getFullEvent(b,c,{ControlInstanceName:"None",eventId:b,calendarId:0,Callback:lb})}function lb(a){window.top.location.href=a.Url}function q(g,h,l,m,k,n){a.hideAllPopupDialogs();var c=null,f=null,b=null;if(g=="event"){c="fullScreenEventEditor";f=O;b=["ItemEditor","FullScreenEventEditor"]}else if(g=="task"){c="fullScreenTaskEditor";f=P;b=["ItemEditor","FullScreenTaskEditor"]}else return;var i={ControlInstanceName:c,Callback:f,viewingName:m,itemType:g,eventId:h,calendarId:l,getSeries:k,isRru:n},j=e.getLargestDisplayedRange();if(getSetting("isEmbedded"))d.getCachedEvent(h,j,i);else a.getOnDemandLoadManager().requireFeatures(b,{fppContext:i},function(a){d.getFullEvent(h,j,a.fppContext)})}function nb(a,c,b){if(a==null&&c!=null&&c.RecurrenceDescription!=null&&b!=null)return true;if(a&&b&&a.RecurrenceDescription!=null&&a.RecurrenceDescription!=b.RecurrenceDescription)return true;return false}function O(b,k,i,e,g,d,j){var l=j.isRru;if(!l&&nb(b,g,d))AlertManager.createInformationalAlert(a.getStrings().fullScreenEventEditor.warningChangeRecurrencePatternTitle,a.getStrings().fullScreenEventEditor.majorRecurrenceChangeOnQuery,true,true);else if(b&&Calendar.Event.isRecurringEvent(b)&&!e){var m=a.getStrings().emptytitle;if(b.Summary&&b.Summary.length>0)m=b.Summary.encodeHtml();var n=d?Calendar.Event.quantifyChangeFromStub(b,d):{};f={pMasterEvent:g,pEvent:b,viewingGrid:k,isEventChanged:i,isReadOnly:e,changeDescription:n};if(j.getSeries){var o={isMasterEventFetched:true};L(o,"Open","Series")}else a.askToEditEventOrSeries(m,L)}else{var p=b?b:g,h=c("fullScreenEventEditor");if(h){h.getController().show(p,k,i,e,Calendar.Event.quantifyChangeFromStub(b,!d&&l?b:d));a.doCommand("NavigateToView",e?CAL.DisplayView.ReadOnlyEventView:CAL.DisplayView.EditEventView)}}}function L(e,h,i){if(h=="Open"){var d=c("fullScreenEventEditor");if(d){switch(i){case "Occurrence":d.getController().setEditSeries(false);break;case "Series":if(f.pEvent.IsRecurrenceException){if(e&&e.isMasterEventFetched){var g=a.getStrings()["emptytitle"];if(f.pEvent.Summary&&f.pEvent.Summary.length>0)g=f.pEvent.Summary.encodeHtml();AlertManager.createWarningAlert(g,a.getStrings()["meetingRequestSeriesMissingError"],false,null,true,true)}else q("event",f.pEvent.ParentGuid,f.pEvent.CalendarGuid,b.getCurrentViewName(),true);return true}d.getController().setEditSeries(true);f.pEvent=Z(f.pMasterEvent,f.pEvent)}d.getController().show(f.pEvent,f.viewingGrid,f.isEventChanged,f.isReadOnly,f.pMasterEvent,f.changeDescription);a.doCommand("NavigateToView",f.isReadOnly?CAL.DisplayView.ReadOnlyEventView:CAL.DisplayView.EditEventView)}}}function Z(c,a){var b=a.CacheEventId;a=c;a.CacheEventId=b;return a}function P(h,g,f,d,e){var b=c("fullScreenTaskEditor");if(b){b.getController().show(h,g,f,d,e);a.doCommand("NavigateToView",d?CAL.DisplayView.ReadOnlyTaskView:CAL.DisplayView.EditTaskView)}}function Y(f){var e=Calendar.FullEvent.createNewEvent();e.Summary=f.Summary;e.Description=f.Description;e.Location=f.Location;e.DateStart=new Calendar.Date(f.StartDate*1e3);e.DateEnd=new Calendar.Date(f.EndDate*1e3);e.CustomTZStartDate=e.DateStart.clone();e.CustomTZEndDate=e.DateEnd.clone();e.EventTimeInUserTimeZone=false;e.RecurrenceId=null;e.RecurrenceInfo=null;e.ItemType=CAL.CalendarItemType.CalendarItem;var g=a.getAppState().getInitView();if(b.getCurrentViewName()!=null)g=b.getCurrentViewName();var h={ControlInstanceName:"fullScreenEventEditor",viewingName:g,isEventChanged:false};a.doCommand("TrackAction",{trackId:"AddToCalSingleEventLandingPage"});a.getOnDemandLoadManager().requireFeatures(["ItemEditor","FullScreenEventEditor","EventEditorManager","EventRecurrenceManager"],{m_pModel:d,eventData:e,fppContext:h},function(b){a.hideAllPopupDialogs();c("fullScreenEventEditor").getController().show(b.eventData,b.fppContext.viewingName,b.fppContext.isEventChanged);a.doCommand("NavigateToView",CAL.DisplayView.NewEventView)})}function ab(f){var e=Calendar.FullEvent.createNewEvent();e.Summary=f.Summary;e.Description=f.Description;e.Location=null;e.DateStart=null;if(f.DueDate)e.DateEnd=new Calendar.Date(f.DueDate*1e3);else e.DateEnd=null;e.CustomTZStartDate=null;e.CustomTZEndDate=null;e.EventTimeInUserTimeZone=false;e.RecurrenceId=null;e.RecurrenceInfo=null;e.ItemType=CAL.CalendarItemType.TaskItem;e.Priority=CAL.EventPriority.Normal;e.EventProgress=CAL.EventProgress.NotStarted;var g=a.getAppState().getInitView();if(b.getCurrentViewName()!=null)g=b.getCurrentViewName();var h={ControlInstanceName:"fullScreenTaskEditor",viewingName:g,isEventChanged:false};a.doCommand("TrackAction",{trackId:"AddToCalSingleTaskLandingPage"});a.getOnDemandLoadManager().requireFeatures(["ItemEditor","FullScreenTaskEditor","EventEditorManager"],{m_pModel:d,eventData:e,fppContext:h},function(b){a.hideAllPopupDialogs();c("fullScreenTaskEditor").getController().show(b.eventData,b.fppContext.viewingName,b.fppContext.isEventChanged);a.doCommand("NavigateToView",CAL.DisplayView.NewTaskView)})}function t(f){var c=f?f:new Calendar.Date,e={startDate:c,endDate:c,focusDate:c,dontBroadcast:false},d=b.getCurrentViewName();if(d==CAL.DisplayView.DayView||d==CAL.DisplayView.AgendaView)a.doCommand("SetSelection",e);else if(d==CAL.DisplayView.WeekView){a.setViewFlags(null,true);a.doCommand("SetSelection",e)}else if(d==CAL.DisplayView.MonthView){a.setViewFlags(true,null);var g=Calendar.Date.getDayDifference(a.getAppState().getTargetStartDate(),c);a.doCommand("ShowMonth",{thisMonthDate:c,daysShifted:g})}}function rb(){a.doCommand("TrackAction",{trackId:"Toolbar7DaysButton"});var b=new Calendar.Date,d=b.addDays(6),c={startDate:b,endDate:d,focusDate:b,dontBroadcast:false};a.doCommand("SetSelection",c)}function qb(){a.doCommand("TrackAction",{trackId:"Toolbar4WeeksButton"});a.doCommand("NavigateToView",CAL.DisplayView.MonthView);var b=new Calendar.Date,d=b.addDays(21),c={startDate:b,endDate:d,focusDate:b,dontBroadcast:false};a.doCommand("SetSelection",c)}function sb(a,f){var b={};if(a=="CalendarShare"){var c=d.getAllCalendars(null,true);b.allCalendars=c}e.toggleToolbarMenu(a,f,b)}function ub(a){switch(a){case "help":doHelp(m_helpKeywords.main);break;case "support":window.top.location.href=m_supportUrl;break;case "feedback":window.top.location.href=m_feedbackUrl;break;case "calblog":window.top.location.href=m_calBlogUrl}}function u(d,e,f,b){if(d=="event"&&!b)b="EventQuickAdd";else if(d=="task"&&!b)b="TaskQuickAdd";else if(d=="birthday"&&!b)b="BirthdayQuickAdd";v.requireDelayLoad(function(){if(!e){var g=WebUtilities.getLocation($("calendarToolbar"));e=g}a.getOnDemandLoadManager().requireFeatures(["ItemEditor"],{popOverRect:e,timeSelection:f,type:d},function(b){var d=c(b.type+"Editor");d.setBestDefaultCalendar(a.getAppState().getIsGroupMode());d.show(b.timeSelection,b.popOverRect)});gController.doCommand("TrackAction",{trackId:b})})}function Ab(b){d.getCalendar(b,{});a.getOnDemandLoadManager().requireFeatures(["Polling"],{calendarId:b},function(b){if(!m){m=new Calendar.PollingControl;m.initialize(a.getAppState().getPollingInterval(),a.getAppState().getPollingMaxRetries())}m.startPolling(function(){yb(b.calendarId)})})}function Cb(){m.stopPolling()}function yb(c){var f=b.getCurrentViewName()==CAL.DisplayView.AgendaView,a=e.getLargestDisplayedRange();d.pollCalendarEventsByDateRange(c,a.StartDate,a.EndDate,{ControlInstanceName:"pollingControl",CalendarGuid:c},f)}function K(){g=c("calendarMonthGrid");h=c("calendarDayList");p=c("calendarAgendaView");s=c("calendarTaskView")}function ob(b){a.getOnDemandLoadManager().requireFeatures(["FlyoutFooter"],{forceHide:b},function(a){c("flyoutFooter").toggle(a.forceHide)})}function I(b){if(b)window.open(a.getAppState().getContactsUrl().format(b),"_blank")}function X(){window.open(a.getAppState().getCleanUpContactsUrl(),"_blank")}function cb(){new FREDialog(jb,a.getAppState().getIsGroupMode())}function jb(c,b){if(b=="cancel"){var a=getSetting("groupProfileUrl");if(a)window.top.location=a}else G(c.getSelectValue(FREDialog.timeZoneSelectId),true);return true}function G(b,a){d.handleFirstRunExperience(b,false,a)}function Eb(){switch(b.getCurrentViewName()){case CAL.DisplayView.AgendaView:if(p)o("agenda","");break;case CAL.DisplayView.MonthView:o("monthView","");break;case CAL.DisplayView.DayView:case CAL.DisplayView.WeekView:var a=b.getCurrentViewName()==CAL.DisplayView.DayView?"dayView":"weekView";o(a,"");break;case CAL.DisplayView.NewEventView:case CAL.DisplayView.ReadOnlyEventView:case CAL.DisplayView.EditEventView:M(false);break;case CAL.DisplayView.NewTaskView:case CAL.DisplayView.ReadOnlyTaskView:case CAL.DisplayView.EditTaskView:M(true);break;case CAL.DisplayView.TaskView:o("taskView","")}}function M(d){var b=c(d?"fullScreenTaskEditor":"fullScreenEventEditor");if(b){var a=b.getController().getOriginalEvent();if(a){var e="&guid="+a.Guid+"&calid="+a.CalendarGuid;o(d?"task":"event",e)}}}function o(d,e){var c=getSetting("publishedPrintUrl"),b=c?c:"PrintShell.aspx";b+="?type="+d+e;b+=a.getAppState().getMarketQS()?"&"+a.getAppState().getMarketQS():"";if(!i)i=[];i.push(window.open(b,"","width=980px,height=600px,menubar=yes,location=no,toolbar=yes,resizable=yes,scrollbars=no"))}function ib(a){j=null;if(a&&i)i.remove(a)}function pb(b){var a=null,i=null,c=null;switch(b){case "agenda":a=p.getController().getRange();break;case "monthView":a=g.getDisplayedRange();break;case "dayView":case "weekView":a=h.getCurrentDateRange();break;case "taskView":var f=s;i=f.getTasks();c=f.getTaskColors()}j={model:d,contentStrings:e.getContentStrings(),userTimezone:getSetting("timeZoneNum"),dateRange:a,datePrefs:getSetting("dateClassUserPref"),isPublishMode:getSetting("publishedPrintUrl")?true:false};if(b=="monthView")j["displayMode"]=g.getDisplayMode();else if(b=="taskView"){j["tasks"]=i;j["taskColors"]=c;j["isTaskLimitedMode"]=s.getController().isLimitedMode();j["isTaskCompletedSectionVisible"]=s.getController().isCompletedSectionVisible()}}function F(e,f){var d=e?false:true,b=null;if(d&&c("calendarPicker"))b=c("calendarPicker").getAvailableColorIndexes();a.getOnDemandLoadManager().requireFeatures(["CalendarGeneralSettingsControl"],{calendarId:e,isNew:d,availableColors:b,newCalendarType:f},function(b){a.doCommand("LaunchCalendarSettingsDialog",b)})}function C(b){a.getOnDemandLoadManager().requireFeatures(["CalendarSharingSettingsControl"],{calendarId:b},function(b){a.doCommand("LaunchCalendarSharingSettingsDialog",b)})}function D(){a.doCommand("CloseCalendarSharingSettingsDialog")}function l(c,q,d){var j=false,e=a.getStrings()["emptytitle"];if(c.Summary&&c.Summary.length>0)e=c.Summary.encodeHtml();if(Calendar.Event.isCalendarReadOnly(q)){AlertManager.createWarningAlert(e,a.getStrings()["eventDeletePermissionsError"],false,null,true,true);return}if(c.ItemType==CAL.CalendarItemType.SocialEvent){var o=a.getStrings()["eventSpaceEventCantDeleteError"].format(c.Url);AlertManager.createWarningAlert(e,o,false,null,true,true);return}if(Calendar.Event.isEventMeetingRequest(c)&&!c.Calendar.IsCurrentUserOwner){AlertManager.createWarningAlert(e,a.getStrings()["meetingRequestDeletePermissionsError"],false,null,true,true);return}var n=d&&d.bIsEditingEvent,h=d&&d.bIsEditingSeries,g=d&&d.preDeleteComplete,l=Calendar.Event.isEventMeetingRequestInOrganizerMode(c)&&c.Calendar.IsCurrentUserOwner&&!c.IsDraft,k=Calendar.Event.isEventMeetingRequestInParticipantMode(c)&&c.Calendar.IsCurrentUserOwner,b=null,f=c.RecurrenceId&&!n;if(m_meetingRequestsEnabled&&l)if(f&&!g)b=a._setupDeleteSeries(e,"PreDeleteMeetingRequest");else{b=AlertManager.createWarningAlert(e,a.getStrings()["alertDeleteMeetingRequestOrganizer"],true);b.addButton(a.getStrings()["yes"],"DeleteMeetingRequest",true,false);b.addButton(a.getStrings()["no"],"Cancel",false,true)}else if(m_meetingRequestsEnabled&&k&&c.IcsEventStatus!=CAL.ICalEventStatus.Cancelled)if(f&&!g)b=a._setupDeleteSeries(e,"PreDeleteParticipantMeetingRequest");else if(d&&d.MeetingRequestOperation){c.MeetingRequestOperation=d.MeetingRequestOperation;j=true}else{b=AlertManager.createWarningAlert(e,a.getStrings()["alertDeleteMeetingRequestParticipant"],true);b.addOption(a.getStrings()["alertDeleteMeetingRequestParticipantOption1"],"send",true);b.addOption(a.getStrings()["alertDeleteMeetingRequestParticipantOption2"],"edit",false);b.addOption(a.getStrings()["alertDeleteMeetingRequestParticipantOption3"],"donotsend",false);b.addButton(a.getStrings()["ok"],"DeleteParticipantMeetingRequest",true,false);b.addButton(a.getStrings()["cancel"],"Cancel",false,true)}else if(f)b=a._setupDeleteSeries(e,"Delete");else{var p=c.ItemType==CAL.CalendarItemType.TaskItem?a.getStrings()["alertdeletetask"]:a.getStrings()["alertdeletesingle"];b=AlertManager.createWarningAlert(e,p,true);b.addButton(a.getStrings()["delete"],"Delete",true,false);b.addButton(a.getStrings()["cancel"],"Cancel",false,true)}var m=d?d.ControlInstanceName:"None",i={DeletedEvent:c,bIsEditingSeries:h,ControlInstanceName:m};if(j)J(null,"Delete",h?"Series":"Occurrence",i);else{b.setCallback(J);b.setContext(i);AlertManager.getInstance().showAlert(b)}}function J(k,f,h,n){var j=k?k:n,e=j.DeletedEvent,i=j.bIsEditingSeries;if(f=="Delete"){var g=false;switch(h){case "Occurrence":g=false;break;case "Series":g=true;break;default:if(e.RecurrenceId&&i)g=true}if(e.RecurrenceId)d.deleteRecurringEvent(e,g);else{var m=[e.Guid];d.deleteEvents(m,{eventIds:m,events:[e],ControlInstanceName:j.ControlInstanceName})}if(b.getCurrentViewName()==CAL.DisplayView.EditEventView)c("fullScreenEventEditor").getController().cancel();else if(b.getCurrentViewName()==CAL.DisplayView.EditTaskView)c("fullScreenTaskEditor").getController().cancel()}else if(f=="DeleteMeetingRequest")a.getOnDemandLoadManager().requireFeatures(["EventEditRsvpResponse"],{eventPackage:{eventData:e},organizerActionType:CAL.OrganizerActionType.CancelMeeting,bIsEditingSeries:i},S);else if(f=="DeleteParticipantMeetingRequest")x(h,{eventPackage:{eventData:e},userParticipationStatus:CAL.CalendarUserParticipationStatus.Declined,userMessagingComplete:true,bIsEditingSeries:i});else if(f=="PreDeleteParticipantMeetingRequest"||f=="PreDeleteMeetingRequest")l(e,e.Calendar,{bIsEditingEvent:false,preDeleteComplete:true,bIsEditingSeries:h=="Series"})}function S(a){var b=e.getLargestDisplayedRange();d.getFullEvent(a.eventPackage.eventData.CacheEventId,b,{ControlInstanceName:"None",eventId:a.eventPackage.eventData.CacheEventId,calendarId:0,Callback:Q,Context:a})}function Q(d,e,a){var b={eventData:d};c("eventEditRsvpResponse").show(b,null,a.organizerActionType,a.bIsEditingSeries)}function x(j,g){var m=g&&g.userMessagingComplete,h=g&&typeof g.bIsEditingSeries!="undefined"?g.bIsEditingSeries:false;if(j=="edit")a.getOnDemandLoadManager().requireFeatures(["EventEditRsvpResponse"],{eventPackage:g.eventPackage,userParticipationStatus:g.userParticipationStatus,bIsEditingSeries:h},function(a){c("eventEditRsvpResponse").show(a.eventPackage,a.userParticipationStatus,null,a.bIsEditingSeries)});else{var i=CAL.ParticipantActionType.UpdateParticipantStatusOnly;if(j=="send")i=CAL.ParticipantActionType.UpdateParticipantStatusAndSendUpdate;var f=g.eventPackage;f.eventData.MeetingRequestOperation=new CAL.PLMROperationInfo(null,i);if(g.userParticipationStatus==CAL.CalendarUserParticipationStatus.Declined){if(!m){var n=e.getLargestDisplayedRange();d.getCachedEvent([c("fullScreenEventEditor").getController().getEventId()],n,{ControlInstanceName:"None",Callback:l,event:Calendar.Event.cloneEvent(f.eventData),Context:{bIsEditingEvent:true,bIsEditingSeries:h,MeetingRequestOperation:Calendar.Event.MeetingRequestOperation.clone(f.eventData.MeetingRequestOperation)}})}else if(f.eventData.RecurrenceId)d.deleteRecurringEvent(f.eventData,h);else{var k=[f.eventData.Guid];d.deleteEvents(k,{eventIds:k,events:[f.eventData]})}if(b.getCurrentViewName()==CAL.DisplayView.EditEventView)c("fullScreenEventEditor").getController().cancel()}else{a.saveEventData(f.eventData,f.OldDateStart,f.OldDateEnd,f.IsReadOnly,f.recurrenceState,f.IsChangingCalendar,"fullScreenEventEditor","event");if(gHistoryEngine)gHistoryEngine.AddEventToHistory(g,A);c("fullScreenEventEditor").getController().clear()}}}function A(b){a.doCommand("NavigateToView",b.Package.preViewingGrid)}function R(f){var a=f.Package.eventPackage;if(a.eventData.RecurrenceId)d.deleteRecurringEvent(a.eventData,f.Package.bIsEditingSeries);else{var e=[a.eventData.Guid];d.deleteEvents(e,{eventIds:e,events:[a.eventData]})}if(b.getCurrentViewName()==CAL.DisplayView.EditEventView)c("fullScreenEventEditor").getController().cancel()}function T(f){var e=f.Package.eventPackage;if(f.Package.userParticipationStatus==CAL.CalendarUserParticipationStatus.Declined){if(e.eventData.RecurrenceId)d.deleteRecurringEvent(e.eventData,f.Package.bIsEditingSeries);else{var g=[e.eventData.Guid];d.deleteEvents(g,{eventIds:g,events:[e.eventData]})}if(b.getCurrentViewName()==CAL.DisplayView.EditEventView)c("fullScreenEventEditor").getController().cancel()}else{a.saveEventData(e.eventData,e.OldDateStart,e.OldDateEnd,e.IsReadOnly,e.recurrenceState,e.IsChangingCalendar,"fullScreenEventEditor","event");if(gHistoryEngine)gHistoryEngine.AddEventToHistory(f,A);if(c("fullScreenEventEditor"))c("fullScreenEventEditor").getController().clear()}}function tb(a,b){switch(b){case "Save":x(a.menuAction,a.innerContext)}}return this};DesktopAppController.registerClass("DesktopAppController","AppController");DesktopAppController.prototype={onInitControllers:new $Event,onInitDelayedControllers:new $Event,onInitOnDemandControllers:new $Event,onDisposeControllers:new $Event,onHideAllPopups:new $Event,onUpdateEvents:new $Event,onOnDemandFeatureLoaded:new $Event,onClickAction:new $Event,onDisplayviewchangerequested:new $Event};GridControllerBase=function(i){var a=this,f=i,b=null,c=null,d=null,g=false;this.getGridView=function(){return f};this.getModel=function(){return b};this.getAppView=function(){return c};this.getAttachManager=function(){return d};this.isInitialized=function(){return g};this.initController=function(d){gController.registerCommands(a,["ExpandGrid","CollapseGrid"]);b=d.model;c=d.view;g=true};this.initDelayed=function(b){a.initController(b)};this.create=function(){d=new Calendar.EventHandlerManager;gController.onInitControllers.attach(a.initController);gController.onInitDelayedControllers.attach(a.initDelayed);gController.onUpdateEvents.attach(e)};this.dispose=function(){gController.onInitControllers.detach(a.initController);gController.onInitDelayedControllers.detach(a.initDelayed);gController.onUpdateEvents.detach(e);d.dispose();gController.unregisterCommands(a);b=c=d=null};this.doCommand=function(a){switch(a){case "ExpandGrid":b.saveMonthGridExpansionMode(CAL.GridExpansionMode.CharmsExpanded);break;case "CollapseGrid":b.saveMonthGridExpansionMode(CAL.GridExpansionMode.DontExpand)}};this.isCurrentView=function(){return false};this.getPaginationSequenceID=function(){return ""};this.paginationAction=function(){gController.doCommand("TrackAction",{trackId:a.getPaginationSequenceID()})};this.dragEventStarted=function(){gController.hideAllPopupDialogs()};this.eventDropped=function(c){var d=c.Package.Event;if(m_meetingRequestsEnabled&&Calendar.Event.isEventMeetingRequestInOrganizerMode(d)){var b=AlertManager.createWarningAlert(gController.getStrings().alertDragDropChangeMeetingRequestTitle,gController.getStrings().alertDragDropChangeMeetingRequestText,true,h,true);b.addOption(gController.getStrings().alertDragDropChangeMeetingRequestOption1,"SendUpdate",true);b.addOption(gController.getStrings().alertDragDropChangeMeetingRequestOption2,"Cancel",false);b.addButton(gController.getStrings().cancel,"Cancel",false,true);b.setContext(c.Package);AlertManager.getInstance().showAlert(b)}else a.eventDroppedPost(c.Package)};this.eventDroppedPost=function(a){switch(a.DragType){case Calendar.DragDrop.DragType.Move:b.moveEventUsingStartTime(a,c.getLargestDisplayedRange(),null);break;case Calendar.DragDrop.DragType.TopResize:b.updateEventStartTime(a,c.getLargestDisplayedRange(),null);break;case Calendar.DragDrop.DragType.BottomResize:b.updateEventEndTime(a,c.getLargestDisplayedRange(),null)}gController.doCommand("TrackAction",{trackId:"DragOrResizeEvent"})};function e(a){f.updateEvents(a.events)}function h(e,c,d){var b=e;switch(c){case "OK":if(d=="SendUpdate"){b.Event.MeetingRequestOperation=new CAL.PLMROperationInfo(CAL.OrganizerActionType.SendUpdatesToAll);a.eventDroppedPost(b);break}default:gController.updateEvents([b.OriginalEvent])}}GridControllerBase.registerBaseMethod(this,"initController");GridControllerBase.registerBaseMethod(this,"initDelayed");GridControllerBase.registerBaseMethod(this,"dispose");GridControllerBase.registerBaseMethod(this,"doCommand");GridControllerBase.registerBaseMethod(this,"isCurrentView");GridControllerBase.registerBaseMethod(this,"getPaginationSequenceID")};GridControllerBase.registerAbstractClass("GridControllerBase");MiniCalendarController=function(m){var c=this,n=null,o=null,a=m,b=null;this.dispose=function(){gController.onInitControllers.detach(e);b.dispose();gController.unregisterCommands(c);a=b=null};function l(){b=new Calendar.EventHandlerManager;gController.onInitControllers.attach(e)}function e(d){o=d.model;n=d.view;b.attach(a,{selectionchanged:j,beforeselectionchanged:f,displayedmonthchanged:g,paginationaction:i,clickaction:k,drageventstarted:h});gController.registerCommands(c,["SetSelection","ForceSetSelection"])}this.doCommand=function(c,b){switch(c){case "SetSelection":a.setSelection(b.startDate,b.endDate,b.focusDate,b.dontBroadcast);break;case "ForceSetSelection":a.forceSetSelection(b.startDate,b.endDate,b.focusDate,b.dontBroadcast)}};function d(b){gController.doCommand("NavigateToView",b.view);a.setSelection(b.startDate,b.endDate,b.focusDate)}function j(a){c.fire("selectionchanged",{startDate:a.Package.startDate,endDate:a.Package.endDate});if(a.Package.isMouseSelection)gHistoryEngine.AddEventToHistory({startDate:a.Package.startDate,endDate:a.Package.endDate,focusDate:gController.getAppState().getTargetStartDate(),view:gController.getCurrentViewName()},d)}function f(a){if(a.Package.range.StartDate>a.Package.range.EndDate)return;if(gController.getCurrentViewName()==CAL.DisplayView.AgendaView)gController.getAppState().setTargetStartDate(a.Package.range.StartDate.clone());else{var b=Calendar.Date.getDayDifference(a.Package.range.StartDate,a.Package.range.EndDate);if(b==Calendar.Date.NumberOfDaysInWeek&&a.Package.range.StartDate.getDay()==Calendar.Date.FirstDayOfWeek)gController.setViewFlags(null,true);if(gController.getIsTraditionalWeekView())if(b==1){a.Package.range.StartDate.moveToStartOfWeek();a.Package.range.EndDate.moveToEndOfWeek()}else gController.setViewFlags(null,b==Calendar.Date.NumberOfDaysInWeek&&a.Package.range.StartDate.getDay()==Calendar.Date.FirstDayOfWeek);if(b>gController.getMaxDaysInWeekView()&&b<=gController.getMonthViewMaxCells()){var c=a.Package.range.StartDate.clone();c.moveToEndOfWeek();c.moveToStartOfDay();var d=a.Package.range.EndDate.clone();d.moveToStartOfWeek();var j=c.getMonth();if(!gController.getIsTraditionalMonthView()&&d.getMonth()==j&&c.getDate()<=7&&d.getDate()>Calendar.Date.getDaysInMonth(c.getFullYear(),j)-7)gController.setViewFlags(true,null);a.Package.range.StartDate.moveToStartOfWeek();a.Package.range.EndDate.moveToEndOfWeek()}if(gController.getIsTraditionalMonthView())if(b<28)gController.setViewFlags(false,null);else{var i=Calendar.Date.average(a.Package.range.StartDate,a.Package.range.EndDate),g=Calendar.Date.getRangeOfMonth(i),e=Calendar.Date.getRangeOfCalendarMonth(i);gController.setViewFlags(g.StartDate.valueOf()==a.Package.range.StartDate.valueOf()&&g.EndDate.valueOf()==a.Package.range.EndDate.valueOf()||e.StartDate.valueOf()==a.Package.range.StartDate.valueOf()&&e.EndDate.valueOf()==a.Package.range.EndDate.valueOf(),null)}if(a.Package.focusDate)gController.getAppState().setTargetStartDate(a.Package.focusDate.clone());else if(!gController.getAppState().getTargetStartDate().isBetween(a.Package.range.StartDate,a.Package.range.EndDate))if(gController.getIsTraditionalMonthView()){var f=Calendar.Date.average(a.Package.range.StartDate,a.Package.range.EndDate),h=gController.getAppState().getTargetStartDate().clone();h.moveToSameDateOfTargetMonth(f.getYear(),f.getMonth());gController.getAppState().setTargetStartDate(h)}else gController.getAppState().setTargetStartDate(a.Package.range.StartDate.clone())}}function g(h){var e=h.srcBinding.getSelectionRange(),i=h.Package.MonthNumberNavigated;if(!e.StartDate||i==0)return;var g=h.Package.ViewingYear,f=h.Package.ViewingMonth,n=Math.min(gController.getAppState().getTargetStartDate().getDate(),Calendar.Date.getDaysInMonth(g,f)),m=Calendar.Date.getDayDifference(e.StartDate,e.EndDate),b=e.StartDate.clone(),a=e.EndDate.clone(),c=null;if(m<=gController.getMaxDaysInWeekView())if(gController.getIsTraditionalWeekView()){c=new Calendar.Date(g,f,Math.min(n,Calendar.Date.getDaysInMonth(g,f)));b=c.clone();b.moveToStartOfWeek();a=b.clone();a.moveToEndOfWeek()}else{var p=a-b,j=(new Calendar.Date(a.getFullYear(),a.getMonth(),1)).addMonths(i),k=Calendar.Date.getDaysInMonth(j.getFullYear(),j.getMonth()),o=a.getDate();if(k<o){a=j.clone();a.setDate(k);a.moveToEndOfDay()}else a.setMonth(a.getMonth()+i);b.setTime(a.getTime()-p);c=b.clone()}else{c=new Calendar.Date(g,f,n);if(gController.getIsTraditionalMonthView()||gController.getCurrentViewName()==CAL.DisplayView.AgendaView){var l=Calendar.Date.getRangeOfCalendarMonth(new Calendar.Date(g,f,1));b=l.StartDate;a=l.EndDate}else{b=c.clone();b.moveToStartOfWeek();a=b.addDays(m-1);a.moveToEndOfDay()}}h.srcBinding.setSelection(b,a,c);gHistoryEngine.AddEventToHistory({startDate:b,endDate:a,focusDate:c,view:gController.getCurrentViewName()},d)}function i(){gController.doCommand("TrackAction",{trackId:"MiniCalPagination"})}function k(){gController.doCommand("TrackAction",{trackId:"MiniCalClickEvent"})}function h(){gController.doCommand("TrackAction",{trackId:"MiniCalDragEvent"})}l()};MiniCalendarController.Events=new $Enum("selectionchanged");MiniCalendarController.prototype=new $Event.DOM;MiniCalendarController.registerClass("MiniCalendarController")
