(function(C){C.widget("ui.resizable",C.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var E=this,I=this.options;
this.element.addClass("ui-resizable");
C.extend(this,{_aspectRatio:!!(I.aspectRatio),aspectRatio:I.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:I.helper||I.ghost||I.animate?I.helper||"ui-resizable-helper":null});
if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&C.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})
}this.element.wrap(C('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));
this.element=this.element.parent().data("resizable",this.element.data("resizable"));
this.elementIsWrapper=true;
this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});
this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});
this.originalResizeStyle=this.originalElement.css("resize");
this.originalElement.css("resize","none");
this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));
this.originalElement.css({margin:this.originalElement.css("margin")});
this._proportionallyResize()
}this.handles=I.handles||(!C(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});
if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"
}var J=this.handles.split(",");
this.handles={};
for(var F=0;
F<J.length;
F++){var H=C.trim(J[F]),D="ui-resizable-"+H;
var G=C('<div class="ui-resizable-handle '+D+'"></div>');
if(/sw|se|ne|nw/.test(H)){G.css({zIndex:++I.zIndex})
}if("se"==H){G.addClass("ui-icon ui-icon-gripsmall-diagonal-se")
}this.handles[H]=".ui-resizable-"+H;
this.element.append(G)
}}this._renderAxis=function(O){O=O||this.element;
for(var L in this.handles){if(this.handles[L].constructor==String){this.handles[L]=C(this.handles[L],this.element).show()
}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var M=C(this.handles[L],this.element),N=0;
N=/sw|ne|nw|se|n|s/.test(L)?M.outerHeight():M.outerWidth();
var K=["padding",/ne|nw|n/.test(L)?"Top":/se|sw|s/.test(L)?"Bottom":/^e$/.test(L)?"Right":"Left"].join("");
O.css(K,N);
this._proportionallyResize()
}if(!C(this.handles[L]).length){continue
}}};
this._renderAxis(this.element);
this._handles=C(".ui-resizable-handle",this.element).disableSelection();
this._handles.mouseover(function(){if(!E.resizing){if(this.className){var K=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)
}E.axis=K&&K[1]?K[1]:"se"
}});
if(I.autoHide){this._handles.hide();
C(this.element).addClass("ui-resizable-autohide").hover(function(){C(this).removeClass("ui-resizable-autohide");
E._handles.show()
},function(){if(!E.resizing){C(this).addClass("ui-resizable-autohide");
E._handles.hide()
}})
}this._mouseInit()
},destroy:function(){this._mouseDestroy();
var D=function(F){C(F).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
};
if(this.elementIsWrapper){D(this.element);
var E=this.element;
E.after(this.originalElement.css({position:E.css("position"),width:E.outerWidth(),height:E.outerHeight(),top:E.css("top"),left:E.css("left")})).remove()
}this.originalElement.css("resize",this.originalResizeStyle);
D(this.originalElement);
return this
},_mouseCapture:function(E){var F=false;
for(var D in this.handles){if(C(this.handles[D])[0]==E.target){F=true
}}return !this.options.disabled&&F
},_mouseStart:function(F){var I=this.options,E=this.element.position(),D=this.element;
this.resizing=true;
this.documentScroll={top:C(document).scrollTop(),left:C(document).scrollLeft()};
if(D.is(".ui-draggable")||(/absolute/).test(D.css("position"))){D.css({position:"absolute",top:E.top,left:E.left})
}if(C.browser.opera&&(/relative/).test(D.css("position"))){D.css({position:"relative",top:"auto",left:"auto"})
}this._renderProxy();
var J=B(this.helper.css("left")),G=B(this.helper.css("top"));
if(I.containment){J+=C(I.containment).scrollLeft()||0;
G+=C(I.containment).scrollTop()||0
}this.offset=this.helper.offset();
this.position={left:J,top:G};
this.size=this._helper?{width:D.outerWidth(),height:D.outerHeight()}:{width:D.width(),height:D.height()};
this.originalSize=this._helper?{width:D.outerWidth(),height:D.outerHeight()}:{width:D.width(),height:D.height()};
this.originalPosition={left:J,top:G};
this.sizeDiff={width:D.outerWidth()-D.width(),height:D.outerHeight()-D.height()};
this.originalMousePosition={left:F.pageX,top:F.pageY};
this.aspectRatio=(typeof I.aspectRatio=="number")?I.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);
var H=C(".ui-resizable-"+this.axis).css("cursor");
C("body").css("cursor",H=="auto"?this.axis+"-resize":H);
D.addClass("ui-resizable-resizing");
this._propagate("start",F);
return true
},_mouseDrag:function(D){var G=this.helper,F=this.options,L={},O=this,I=this.originalMousePosition,M=this.axis;
var P=(D.pageX-I.left)||0,N=(D.pageY-I.top)||0;
var H=this._change[M];
if(!H){return false
}var K=H.apply(this,[D,P,N]),J=C.browser.msie&&C.browser.version<7,E=this.sizeDiff;
if(this._aspectRatio||D.shiftKey){K=this._updateRatio(K,D)
}K=this._respectSize(K,D);
this._propagate("resize",D);
G.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});
if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()
}this._updateCache(K);
this._trigger("resize",D,this.ui());
return false
},_mouseStop:function(G){this.resizing=false;
var H=this.options,L=this;
if(this._helper){var F=this._proportionallyResizeElements,D=F.length&&(/textarea/i).test(F[0].nodeName),E=D&&C.ui.hasScroll(F[0],"left")?0:L.sizeDiff.height,J=D?0:L.sizeDiff.width;
var M={width:(L.size.width-J),height:(L.size.height-E)},I=(parseInt(L.element.css("left"),10)+(L.position.left-L.originalPosition.left))||null,K=(parseInt(L.element.css("top"),10)+(L.position.top-L.originalPosition.top))||null;
if(!H.animate){this.element.css(C.extend(M,{top:K,left:I}))
}L.helper.height(L.size.height);
L.helper.width(L.size.width);
if(this._helper&&!H.animate){this._proportionallyResize()
}}C("body").css("cursor","auto");
this.element.removeClass("ui-resizable-resizing");
this._propagate("stop",G);
if(this._helper){this.helper.remove()
}return false
},_updateCache:function(D){var E=this.options;
this.offset=this.helper.offset();
if(A(D.left)){this.position.left=D.left
}if(A(D.top)){this.position.top=D.top
}if(A(D.height)){this.size.height=D.height
}if(A(D.width)){this.size.width=D.width
}},_updateRatio:function(G,F){var H=this.options,I=this.position,E=this.size,D=this.axis;
if(G.height){G.width=(E.height*this.aspectRatio)
}else{if(G.width){G.height=(E.width/this.aspectRatio)
}}if(D=="sw"){G.left=I.left+(E.width-G.width);
G.top=null
}if(D=="nw"){G.top=I.top+(E.height-G.height);
G.left=I.left+(E.width-G.width)
}return G
},_respectSize:function(K,F){var I=this.helper,H=this.options,P=this._aspectRatio||F.shiftKey,O=this.axis,R=A(K.width)&&H.maxWidth&&(H.maxWidth<K.width),L=A(K.height)&&H.maxHeight&&(H.maxHeight<K.height),G=A(K.width)&&H.minWidth&&(H.minWidth>K.width),Q=A(K.height)&&H.minHeight&&(H.minHeight>K.height);
if(G){K.width=H.minWidth
}if(Q){K.height=H.minHeight
}if(R){K.width=H.maxWidth
}if(L){K.height=H.maxHeight
}var E=this.originalPosition.left+this.originalSize.width,N=this.position.top+this.size.height;
var J=/sw|nw|w/.test(O),D=/nw|ne|n/.test(O);
if(G&&J){K.left=E-H.minWidth
}if(R&&J){K.left=E-H.maxWidth
}if(Q&&D){K.top=N-H.minHeight
}if(L&&D){K.top=N-H.maxHeight
}var M=!K.width&&!K.height;
if(M&&!K.left&&K.top){K.top=null
}else{if(M&&!K.top&&K.left){K.left=null
}}return K
},_proportionallyResize:function(){var I=this.options;
if(!this._proportionallyResizeElements.length){return 
}var F=this.helper||this.element;
for(var E=0;
E<this._proportionallyResizeElements.length;
E++){var G=this._proportionallyResizeElements[E];
if(!this.borderDif){var D=[G.css("borderTopWidth"),G.css("borderRightWidth"),G.css("borderBottomWidth"),G.css("borderLeftWidth")],H=[G.css("paddingTop"),G.css("paddingRight"),G.css("paddingBottom"),G.css("paddingLeft")];
this.borderDif=C.map(D,function(J,L){var K=parseInt(J,10)||0,M=parseInt(H[L],10)||0;
return K+M
})
}if(C.browser.msie&&!(!(C(F).is(":hidden")||C(F).parents(":hidden").length))){continue
}G.css({height:(F.height()-this.borderDif[0]-this.borderDif[2])||0,width:(F.width()-this.borderDif[1]-this.borderDif[3])||0})
}},_renderProxy:function(){var E=this.element,H=this.options;
this.elementOffset=E.offset();
if(this._helper){this.helper=this.helper||C('<div style="overflow:hidden;"></div>');
var D=C.browser.msie&&C.browser.version<7,F=(D?1:0),G=(D?2:-1);
this.helper.addClass(this._helper).css({width:this.element.outerWidth()+G,height:this.element.outerHeight()+G,position:"absolute",left:this.elementOffset.left-F+"px",top:this.elementOffset.top-F+"px",zIndex:++H.zIndex});
this.helper.appendTo("body").disableSelection()
}else{this.helper=this.element
}},_change:{e:function(F,E,D){return{width:this.originalSize.width+E}
},w:function(G,E,D){var I=this.options,F=this.originalSize,H=this.originalPosition;
return{left:H.left+E,width:F.width-E}
},n:function(G,E,D){var I=this.options,F=this.originalSize,H=this.originalPosition;
return{top:H.top+D,height:F.height-D}
},s:function(F,E,D){return{height:this.originalSize.height+D}
},se:function(F,E,D){return C.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[F,E,D]))
},sw:function(F,E,D){return C.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[F,E,D]))
},ne:function(F,E,D){return C.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[F,E,D]))
},nw:function(F,E,D){return C.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[F,E,D]))
}},_propagate:function(E,D){C.ui.plugin.call(this,E,[D,this.ui()]);
(E!="resize"&&this._trigger(E,D,this.ui()))
},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}
}});
C.extend(C.ui.resizable,{version:"1.8.1"});
C.ui.plugin.add("resizable","alsoResize",{start:function(E,F){var D=C(this).data("resizable"),H=D.options;
var G=function(I){C(I).each(function(){C(this).data("resizable-alsoresize",{width:parseInt(C(this).width(),10),height:parseInt(C(this).height(),10),left:parseInt(C(this).css("left"),10),top:parseInt(C(this).css("top"),10)})
})
};
if(typeof (H.alsoResize)=="object"&&!H.alsoResize.parentNode){if(H.alsoResize.length){H.alsoResize=H.alsoResize[0];
G(H.alsoResize)
}else{C.each(H.alsoResize,function(I,J){G(I)
})
}}else{G(H.alsoResize)
}},resize:function(F,H){var E=C(this).data("resizable"),I=E.options,G=E.originalSize,K=E.originalPosition;
var J={height:(E.size.height-G.height)||0,width:(E.size.width-G.width)||0,top:(E.position.top-K.top)||0,left:(E.position.left-K.left)||0},D=function(L,M){C(L).each(function(){var P=C(this),Q=C(this).data("resizable-alsoresize"),O={},N=M&&M.length?M:["width","height","top","left"];
C.each(N||["width","height","top","left"],function(R,T){var S=(Q[T]||0)+(J[T]||0);
if(S&&S>=0){O[T]=S||null
}});
if(/relative/.test(P.css("position"))&&C.browser.opera){E._revertToRelativePosition=true;
P.css({position:"absolute",top:"auto",left:"auto"})
}P.css(O)
})
};
if(typeof (I.alsoResize)=="object"&&!I.alsoResize.nodeType){C.each(I.alsoResize,function(L,M){D(L,M)
})
}else{D(I.alsoResize)
}},stop:function(E,F){var D=C(this).data("resizable");
if(D._revertToRelativePosition&&C.browser.opera){D._revertToRelativePosition=false;
el.css({position:"relative"})
}C(this).removeData("resizable-alsoresize-start")
}});
C.ui.plugin.add("resizable","animate",{stop:function(H,M){var N=C(this).data("resizable"),I=N.options;
var G=N._proportionallyResizeElements,D=G.length&&(/textarea/i).test(G[0].nodeName),E=D&&C.ui.hasScroll(G[0],"left")?0:N.sizeDiff.height,K=D?0:N.sizeDiff.width;
var F={width:(N.size.width-K),height:(N.size.height-E)},J=(parseInt(N.element.css("left"),10)+(N.position.left-N.originalPosition.left))||null,L=(parseInt(N.element.css("top"),10)+(N.position.top-N.originalPosition.top))||null;
N.element.animate(C.extend(F,L&&J?{top:L,left:J}:{}),{duration:I.animateDuration,easing:I.animateEasing,step:function(){var O={width:parseInt(N.element.css("width"),10),height:parseInt(N.element.css("height"),10),top:parseInt(N.element.css("top"),10),left:parseInt(N.element.css("left"),10)};
if(G&&G.length){C(G[0]).css({width:O.width,height:O.height})
}N._updateCache(O);
N._propagate("resize",H)
}})
}});
C.ui.plugin.add("resizable","containment",{start:function(E,O){var Q=C(this).data("resizable"),I=Q.options,K=Q.element;
var F=I.containment,J=(F instanceof C)?F.get(0):(/parent/.test(F))?K.parent().get(0):F;
if(!J){return 
}Q.containerElement=C(J);
if(/document/.test(F)||F==document){Q.containerOffset={left:0,top:0};
Q.containerPosition={left:0,top:0};
Q.parentData={element:C(document),left:0,top:0,width:C(document).width(),height:C(document).height()||document.body.parentNode.scrollHeight}
}else{var M=C(J),H=[];
C(["Top","Right","Left","Bottom"]).each(function(S,R){H[S]=B(M.css("padding"+R))
});
Q.containerOffset=M.offset();
Q.containerPosition=M.position();
Q.containerSize={height:(M.innerHeight()-H[3]),width:(M.innerWidth()-H[1])};
var N=Q.containerOffset,D=Q.containerSize.height,L=Q.containerSize.width,G=(C.ui.hasScroll(J,"left")?J.scrollWidth:L),P=(C.ui.hasScroll(J)?J.scrollHeight:D);
Q.parentData={element:J,left:N.left,top:N.top,width:G,height:P}
}},resize:function(F,O){var R=C(this).data("resizable"),H=R.options,E=R.containerSize,N=R.containerOffset,L=R.size,M=R.position,P=R._aspectRatio||F.shiftKey,D={top:0,left:0},G=R.containerElement;
if(G[0]!=document&&(/static/).test(G.css("position"))){D=N
}if(M.left<(R._helper?N.left:0)){R.size.width=R.size.width+(R._helper?(R.position.left-N.left):(R.position.left-D.left));
if(P){R.size.height=R.size.width/H.aspectRatio
}R.position.left=H.helper?N.left:0
}if(M.top<(R._helper?N.top:0)){R.size.height=R.size.height+(R._helper?(R.position.top-N.top):R.position.top);
if(P){R.size.width=R.size.height*H.aspectRatio
}R.position.top=R._helper?N.top:0
}R.offset.left=R.parentData.left+R.position.left;
R.offset.top=R.parentData.top+R.position.top;
var K=Math.abs((R._helper?R.offset.left-D.left:(R.offset.left-D.left))+R.sizeDiff.width),Q=Math.abs((R._helper?R.offset.top-D.top:(R.offset.top-N.top))+R.sizeDiff.height);
var J=R.containerElement.get(0)==R.element.parent().get(0),I=/relative|absolute/.test(R.containerElement.css("position"));
if(J&&I){K-=R.parentData.left
}if(K+R.size.width>=R.parentData.width){R.size.width=R.parentData.width-K;
if(P){R.size.height=R.size.width/R.aspectRatio
}}if(Q+R.size.height>=R.parentData.height){R.size.height=R.parentData.height-Q;
if(P){R.size.width=R.size.height*R.aspectRatio
}}},stop:function(E,L){var N=C(this).data("resizable"),F=N.options,J=N.position,K=N.containerOffset,D=N.containerPosition,G=N.containerElement;
var H=C(N.helper),O=H.offset(),M=H.outerWidth()-N.sizeDiff.width,I=H.outerHeight()-N.sizeDiff.height;
if(N._helper&&!F.animate&&(/relative/).test(G.css("position"))){C(this).css({left:O.left-D.left-K.left,width:M,height:I})
}if(N._helper&&!F.animate&&(/static/).test(G.css("position"))){C(this).css({left:O.left-D.left-K.left,width:M,height:I})
}}});
C.ui.plugin.add("resizable","ghost",{start:function(F,G){var D=C(this).data("resizable"),H=D.options,E=D.size;
D.ghost=D.originalElement.clone();
D.ghost.css({opacity:0.25,display:"block",position:"relative",height:E.height,width:E.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof H.ghost=="string"?H.ghost:"");
D.ghost.appendTo(D.helper)
},resize:function(E,F){var D=C(this).data("resizable"),G=D.options;
if(D.ghost){D.ghost.css({position:"relative",height:D.size.height,width:D.size.width})
}},stop:function(E,F){var D=C(this).data("resizable"),G=D.options;
if(D.ghost&&D.helper){D.helper.get(0).removeChild(D.ghost.get(0))
}}});
C.ui.plugin.add("resizable","grid",{resize:function(D,L){var N=C(this).data("resizable"),G=N.options,J=N.size,H=N.originalSize,I=N.originalPosition,M=N.axis,K=G._aspectRatio||D.shiftKey;
G.grid=typeof G.grid=="number"?[G.grid,G.grid]:G.grid;
var F=Math.round((J.width-H.width)/(G.grid[0]||1))*(G.grid[0]||1),E=Math.round((J.height-H.height)/(G.grid[1]||1))*(G.grid[1]||1);
if(/^(se|s|e)$/.test(M)){N.size.width=H.width+F;
N.size.height=H.height+E
}else{if(/^(ne)$/.test(M)){N.size.width=H.width+F;
N.size.height=H.height+E;
N.position.top=I.top-E
}else{if(/^(sw)$/.test(M)){N.size.width=H.width+F;
N.size.height=H.height+E;
N.position.left=I.left-F
}else{N.size.width=H.width+F;
N.size.height=H.height+E;
N.position.top=I.top-E;
N.position.left=I.left-F
}}}}});
var B=function(D){return parseInt(D,10)||0
};
var A=function(D){return !isNaN(parseInt(D,10))
}
})(jQuery);
(function(AN,T){var h={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:true,allDayDefault:true,ignoreTimezone:true,lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"&nbsp;&#9668;&nbsp;",next:"&nbsp;&#9658;&nbsp;",prevYear:"&nbsp;&lt;&lt;&nbsp;",nextYear:"&nbsp;&gt;&gt;&nbsp;",today:"today",month:"month",week:"week",day:"day"},theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true,dropAccept:"*"};
var n={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"&nbsp;&#9658;&nbsp;",next:"&nbsp;&#9668;&nbsp;",prevYear:"&nbsp;&gt;&gt;&nbsp;",nextYear:"&nbsp;&lt;&lt;&nbsp;"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}};
var AT=AN.fullCalendar={version:"1.5.1"};
var z=AT.views={};
AN.fn.fullCalendar=function(Af){if(typeof Af=="string"){var Ae=Array.prototype.slice.call(arguments,1);
var Ag;
this.each(function(){var Ai=AN.data(this,"fullCalendar");
if(Ai&&AN.isFunction(Ai[Af])){var Ah=Ai[Af].apply(Ai,Ae);
if(Ag===T){Ag=Ah
}if(Af=="destroy"){AN.removeData(this,"fullCalendar")
}}});
if(Ag!==T){return Ag
}return this
}var Ad=Af.eventSources||[];
delete Af.eventSources;
if(Af.events){Ad.push(Af.events);
delete Af.events
}Af=AN.extend(true,{},h,(Af.isRTL||Af.isRTL===T&&h.isRTL)?n:{},Af);
this.each(function(Aj,Ah){var Ai=AN(Ah);
var Ak=new Q(Ai,Af,Ad);
Ai.data("fullCalendar",Ak);
Ak.render()
});
return this
};
function AE(Ad){AN.extend(true,h,Ad)
}function Q(Av,A2,A5){var BK=this;
BK.options=A2;
BK.render=BB;
BK.destroy=BM;
BK.refetchEvents=Ap;
BK.reportEvents=At;
BK.reportEventChange=BO;
BK.rerenderEvents=Ah;
BK.changeView=Am;
BK.select=BL;
BK.unselect=Ao;
BK.prev=A7;
BK.next=Ag;
BK.prevYear=BN;
BK.nextYear=Ae;
BK.today=Aw;
BK.gotoDate=BA;
BK.incrementDate=Az;
BK.formatDate=function(BV,BU){return X(BV,BU,A2)
};
BK.formatDates=function(BW,BV,BU){return H(BW,BV,BU,A2)
};
BK.getDate=A0;
BK.getView=A6;
BK.option=BH;
BK.trigger=A9;
P.call(BK,A2,A5);
var Ad=BK.isFetchNeeded;
var BR=BK.fetchEvents;
var BI=Av[0];
var Ai;
var BC;
var Ar;
var BT;
var Aq;
var BS={};
var A8;
var Ak;
var An;
var BD=0;
var BJ=0;
var BP=new Date();
var A4=[];
var Aj;
V(BP,A2.year,A2.month,A2.date);
function BB(BU){if(!Ar){A3()
}else{BE();
BQ();
Af();
A1(BU)
}}function A3(){BT=A2.theme?"ui":"fc";
Av.addClass("fc");
if(A2.isRTL){Av.addClass("fc-rtl")
}if(A2.theme){Av.addClass("ui-widget")
}Ar=AN("<div class='fc-content' style='position:relative'/>").prependTo(Av);
Ai=new o(BK,A2);
BC=Ai.render();
if(BC){Av.prepend(BC)
}Am(A2.defaultView);
AN(window).resize(As);
if(!Au()){Al()
}}function Al(){setTimeout(function(){if(!Aq.start&&Au()){A1()
}},0)
}function BM(){AN(window).unbind("resize",As);
Ai.destroy();
Ar.remove();
Av.removeClass("fc fc-rtl ui-widget")
}function BF(){return BI.offsetWidth!==0
}function Au(){return AN("body")[0].offsetWidth!==0
}function Am(BW){if(!Aq||BW!=Aq.name){BJ++;
Ao();
var BV=Aq;
var BU;
if(BV){(BV.beforeHide||AL)();
e(Ar,Ar.height());
BV.element.hide()
}else{e(Ar,1)
}Ar.css("overflow","hidden");
Aq=BS[BW];
if(Aq){Aq.element.show()
}else{Aq=BS[BW]=new z[BW](BU=An=AN("<div class='fc-view fc-view-"+BW+"' style='position:absolute'/>").appendTo(Ar),BK)
}if(BV){Ai.deactivateButton(BV.name)
}Ai.activateButton(BW);
A1();
Ar.css("overflow","");
if(BV){e(Ar,1)
}if(!BU){(Aq.afterShow||AL)()
}BJ--
}}function A1(BW){if(BF()){BJ++;
Ao();
if(Ak===T){BE()
}var BV=false;
if(!Aq.start||BW||BP<Aq.start||BP>=Aq.end){Aq.render(BP,BW||0);
BG(true);
BV=true
}else{if(Aq.sizeDirty){Aq.clearEvents();
BG();
BV=true
}else{if(Aq.eventsDirty){Aq.clearEvents();
BV=true
}}}Aq.sizeDirty=false;
Aq.eventsDirty=false;
Ay(BV);
A8=Av.outerWidth();
Ai.updateTitle(Aq.title);
var BU=new Date();
if(BU>=Aq.start&&BU<Aq.end){Ai.disableButton("today")
}else{Ai.enableButton("today")
}BJ--;
Aq.trigger("viewDisplay",BI)
}}function Ax(){BQ();
if(BF()){BE();
BG();
Ao();
Aq.clearEvents();
Aq.renderEvents(A4);
Aq.sizeDirty=false
}}function BQ(){AN.each(BS,function(BU,BV){BV.sizeDirty=true
})
}function BE(){if(A2.contentHeight){Ak=A2.contentHeight
}else{if(A2.height){Ak=A2.height-(BC?BC.height():0)-a(Ar)
}else{Ak=Math.round(Ar.width()/Math.max(A2.aspectRatio,0.5))
}}}function BG(BU){BJ++;
Aq.setHeight(Ak,BU);
if(An){An.css("position","relative");
An=null
}Aq.setWidth(Ar.width(),BU);
BJ--
}function As(){if(!BJ){if(Aq.start){var BU=++BD;
setTimeout(function(){if(BU==BD&&!BJ&&BF()){if(A8!=(A8=Av.outerWidth())){BJ++;
Ax();
Aq.trigger("windowResize",BI);
BJ--
}}},200)
}else{Al()
}}}function Ay(BU){if(!A2.lazyFetching||Ad(Aq.visStart,Aq.visEnd)){Ap()
}else{if(BU){Ah()
}}}function Ap(){BR(Aq.visStart,Aq.visEnd)
}function At(BU){A4=BU;
Ah()
}function BO(BU){Ah(BU)
}function Ah(BU){Af();
if(BF()){Aq.clearEvents();
Aq.renderEvents(A4,BU);
Aq.eventsDirty=false
}}function Af(){AN.each(BS,function(BU,BV){BV.eventsDirty=true
})
}function BL(BW,BU,BV){Aq.select(BW,BU,BV===T?true:BV)
}function Ao(){if(Aq){Aq.unselect()
}}function A7(){A1(-1)
}function Ag(){A1(1)
}function BN(){AD(BP,-1);
A1()
}function Ae(){AD(BP,1);
A1()
}function Aw(){BP=new Date();
A1()
}function BA(BV,BW,BU){if(BV instanceof Date){BP=i(BV)
}else{V(BP,BV,BW,BU)
}A1()
}function Az(BV,BU,BW){if(BV!==T){AD(BP,BV)
}if(BU!==T){M(BP,BU)
}if(BW!==T){AV(BP,BW)
}A1()
}function A0(){return i(BP)
}function A6(){return Aq
}function BH(BU,BV){if(BV===T){return A2[BU]
}if(BU=="height"||BU=="contentHeight"||BU=="aspectRatio"){A2[BU]=BV;
Ax()
}}function A9(BU,BV){if(A2[BU]){return A2[BU].apply(BV||BI,Array.prototype.slice.call(arguments,2))
}}if(A2.droppable){AN(document).bind("dragstart",function(BW,BX){var BU=BW.target;
var BY=AN(BU);
if(!BY.parents(".fc").length){var BV=A2.dropAccept;
if(AN.isFunction(BV)?BV.call(BU,BY):BY.is(BV)){Aj=BU;
Aq.dragStart(Aj,BW,BX)
}}}).bind("dragstop",function(BU,BV){if(Aj){Aq.dragStop(Aj,BU,BV);
Aj=null
}})
}}function o(Ag,Ap){var Ao=this;
Ao.render=Ae;
Ao.destroy=Ak;
Ao.updateTitle=Ai;
Ao.activateButton=Ad;
Ao.deactivateButton=Am;
Ao.disableButton=Af;
Ao.enableButton=Aj;
var Ah=AN([]);
var Al;
function Ae(){Al=Ap.theme?"ui":"fc";
var Aq=Ap.header;
if(Aq){Ah=AN("<table class='fc-header' style='width:100%'/>").append(AN("<tr/>").append(An("left")).append(An("center")).append(An("right")));
return Ah
}}function Ak(){Ah.remove()
}function An(Aq){var As=AN("<td class='fc-header-"+Aq+"'/>");
var Ar=Ap.header[Aq];
if(Ar){AN.each(Ar.split(" "),function(Au){if(Au>0){As.append("<span class='fc-header-space'/>")
}var At;
AN.each(this.split(","),function(Ax,Aw){if(Aw=="title"){As.append("<span class='fc-header-title'><h2>&nbsp;</h2></span>");
if(At){At.addClass(Al+"-corner-right")
}At=null
}else{var Av;
if(Ag[Aw]){Av=Ag[Aw]
}else{if(z[Aw]){Av=function(){Ay.removeClass(Al+"-state-hover");
Ag.changeView(Aw)
}
}}if(Av){var Az=Ap.theme?Z(Ap.buttonIcons,Aw):null;
var A0=Z(Ap.buttonText,Aw);
var Ay=AN("<span class='fc-button fc-button-"+Aw+" "+Al+"-state-default'><span class='fc-button-inner'><span class='fc-button-content'>"+(Az?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+Az+"'/></span>":A0)+"</span><span class='fc-button-effect'><span></span></span></span></span>");
if(Ay){Ay.click(function(){if(!Ay.hasClass(Al+"-state-disabled")){Av()
}}).mousedown(function(){Ay.not("."+Al+"-state-active").not("."+Al+"-state-disabled").addClass(Al+"-state-down")
}).mouseup(function(){Ay.removeClass(Al+"-state-down")
}).hover(function(){Ay.not("."+Al+"-state-active").not("."+Al+"-state-disabled").addClass(Al+"-state-hover")
},function(){Ay.removeClass(Al+"-state-hover").removeClass(Al+"-state-down")
}).appendTo(As);
if(!At){Ay.addClass(Al+"-corner-left")
}At=Ay
}}}});
if(At){At.addClass(Al+"-corner-right")
}})
}return As
}function Ai(Aq){Ah.find("h2").html(Aq)
}function Ad(Aq){Ah.find("span.fc-button-"+Aq).addClass(Al+"-state-active")
}function Am(Aq){Ah.find("span.fc-button-"+Aq).removeClass(Al+"-state-active")
}function Af(Aq){Ah.find("span.fc-button-"+Aq).addClass(Al+"-state-disabled")
}function Aj(Aq){Ah.find("span.fc-button-"+Aq).removeClass(Al+"-state-disabled")
}}AT.sourceNormalizers=[];
AT.sourceFetchers=[];
var K={dataType:"json",cache:false};
var r=1;
function P(Aj,Ar){var At=this;
At.isFetchNeeded=Al;
At.fetchEvents=As;
At.addEventSource=Ag;
At.removeEventSource=Ah;
At.updateEvent=Aw;
At.renderEvent=Ap;
At.removeEvents=A8;
At.clientEvents=A2;
At.normalizeEvent=Ao;
var Av=At.trigger;
var Ad=At.getView;
var Ay=At.reportEvents;
var A0={events:[]};
var Ae=[A0];
var A5,A1;
var Af=0;
var A6=0;
var A4=0;
var Au=[];
for(var A3=0;
A3<Ar.length;
A3++){Ax(Ar[A3])
}function Al(BA,A9){return !A5||BA<A5||A9>A1
}function As(BD,BA){A5=BD;
A1=BA;
Au=[];
var BC=++Af;
var A9=Ae.length;
A6=A9;
for(var BB=0;
BB<A9;
BB++){Ak(Ae[BB],BC)
}}function Ak(BA,A9){Az(BA,function(BC){if(A9==Af){if(BC){for(var BB=0;
BB<BC.length;
BB++){BC[BB].source=BA;
Ao(BC[BB])
}Au=Au.concat(BC)
}A6--;
if(!A6){Ay(Au)
}}})
}function Az(A9,BJ){var BE;
var BI=AT.sourceFetchers;
var BG;
for(BE=0;
BE<BI.length;
BE++){BG=BI[BE](A9,A5,A1,BJ);
if(BG===true){return 
}else{if(typeof BG=="object"){Az(BG,BJ);
return 
}}}var BL=A9.events;
if(BL){if(AN.isFunction(BL)){An();
BL(i(A5),i(A1),function(BM){BJ(BM);
A7()
})
}else{if(AN.isArray(BL)){BJ(BL)
}else{BJ()
}}}else{var BA=A9.url;
if(BA){var BK=A9.success;
var BH=A9.error;
var BB=A9.complete;
var BD=AN.extend({},A9.data||{});
var BF=Ab(A9.startParam,Aj.startParam);
var BC=Ab(A9.endParam,Aj.endParam);
if(BF){BD[BF]=Math.round(+A5/1000)
}if(BC){BD[BC]=Math.round(+A1/1000)
}An();
AN.ajax(AN.extend({},K,A9,{data:BD,success:function(BN){BN=BN||[];
var BM=d(BK,this,arguments);
if(AN.isArray(BM)){BN=BM
}BJ(BN)
},error:function(){d(BH,this,arguments);
BJ()
},complete:function(){d(BB,this,arguments);
A7()
}}))
}else{BJ()
}}}function Ag(A9){A9=Ax(A9);
if(A9){A6++;
Ak(A9,Af)
}}function Ax(A9){if(AN.isFunction(A9)||AN.isArray(A9)){A9={events:A9}
}else{if(typeof A9=="string"){A9={url:A9}
}}if(typeof A9=="object"){Aq(A9);
Ae.push(A9);
return A9
}}function Ah(A9){Ae=AN.grep(Ae,function(BA){return !Am(BA,A9)
});
Au=AN.grep(Au,function(BA){return !Am(BA.source,A9)
});
Ay(Au)
}function Aw(BE){var BC,BA=Au.length,BF,A9=Ad().defaultEventEnd,BD=BE.start-BE._start,BB=BE.end?(BE.end-(BE._end||A9(BE))):0;
for(BC=0;
BC<BA;
BC++){BF=Au[BC];
if(BF._id==BE._id&&BF!=BE){BF.start=new Date(+BF.start+BD);
if(BE.end){if(BF.end){BF.end=new Date(+BF.end+BB)
}else{BF.end=new Date(+A9(BF)+BB)
}}else{BF.end=null
}BF.title=BE.title;
BF.url=BE.url;
BF.allDay=BE.allDay;
BF.className=BE.className;
BF.editable=BE.editable;
BF.color=BE.color;
BF.backgroudColor=BE.backgroudColor;
BF.borderColor=BE.borderColor;
BF.textColor=BE.textColor;
Ao(BF)
}}Ao(BE);
Ay(Au)
}function Ap(BA,A9){Ao(BA);
if(!BA.source){if(A9){A0.events.push(BA);
BA.source=A0
}Au.push(BA)
}Ay(Au)
}function A8(BA){if(!BA){Au=[];
for(var A9=0;
A9<Ae.length;
A9++){if(AN.isArray(Ae[A9].events)){Ae[A9].events=[]
}}}else{if(!AN.isFunction(BA)){var BB=BA+"";
BA=function(BC){return BC._id==BB
}
}Au=AN.grep(Au,BA,true);
for(var A9=0;
A9<Ae.length;
A9++){if(AN.isArray(Ae[A9].events)){Ae[A9].events=AN.grep(Ae[A9].events,BA,true)
}}}Ay(Au)
}function A2(A9){if(AN.isFunction(A9)){return AN.grep(Au,A9)
}else{if(A9){A9+="";
return AN.grep(Au,function(BA){return BA._id==A9
})
}}return Au
}function An(){if(!A4++){Av("loading",null,true)
}}function A7(){if(!--A4){Av("loading",null,false)
}}function Ao(BA){var BB=BA.source||{};
var A9=Ab(BB.ignoreTimezone,Aj.ignoreTimezone);
BA._id=BA._id||(BA.id===T?"_fc"+r++:BA.id+"");
if(BA.date){if(!BA.start){BA.start=BA.date
}delete BA.date
}BA._start=i(BA.start=v(BA.start,A9));
BA.end=v(BA.end,A9);
if(BA.end&&BA.end<=BA.start){BA.end=null
}BA._end=BA.end?i(BA.end):null;
if(BA.allDay===T){BA.allDay=Ab(BB.allDayDefault,Aj.allDayDefault)
}if(BA.className){if(typeof BA.className=="string"){BA.className=BA.className.split(/\s+/)
}}else{BA.className=[]
}}function Aq(BB){if(BB.className){if(typeof BB.className=="string"){BB.className=BB.className.split(/\s+/)
}}else{BB.className=[]
}var BA=AT.sourceNormalizers;
for(var A9=0;
A9<BA.length;
A9++){BA[A9](BB)
}}function Am(BA,A9){return BA&&A9&&Ai(BA)==Ai(A9)
}function Ai(A9){return((typeof A9=="object")?(A9.events||A9.url):"")||A9
}}AT.addDays=AV;
AT.cloneDate=i;
AT.parseDate=v;
AT.parseISO8601=L;
AT.parseTime=AZ;
AT.formatDate=X;
AT.formatDates=H;
var l=["sun","mon","tue","wed","thu","fri","sat"],AP=86400000,AF=3600000,q=60000;
function AD(Ae,Af,Ad){Ae.setFullYear(Ae.getFullYear()+Af);
if(!Ad){B(Ae)
}return Ae
}function M(Ag,Ah,Af){if(+Ag){var Ad=Ag.getMonth()+Ah,Ae=i(Ag);
Ae.setDate(1);
Ae.setMonth(Ad);
Ag.setMonth(Ad);
if(!Af){B(Ag)
}while(Ag.getMonth()!=Ae.getMonth()){Ag.setDate(Ag.getDate()+(Ag<Ae?1:-1))
}}return Ag
}function AV(Ag,Ah,Af){if(+Ag){var Ad=Ag.getDate()+Ah,Ae=i(Ag);
Ae.setHours(9);
Ae.setDate(Ad);
Ag.setDate(Ad);
if(!Af){B(Ag)
}AX(Ag,Ae)
}return Ag
}function AX(Ae,Ad){if(+Ae){while(Ae.getDate()!=Ad.getDate()){Ae.setTime(+Ae+(Ae<Ad?1:-1)*AF)
}}}function G(Ad,Ae){Ad.setMinutes(Ad.getMinutes()+Ae);
return Ad
}function B(Ad){Ad.setHours(0);
Ad.setMinutes(0);
Ad.setSeconds(0);
Ad.setMilliseconds(0);
return Ad
}function i(Ad,Ae){if(Ae){return B(new Date(+Ad))
}return new Date(+Ad)
}function D(){var Ad=0,Ae;
do{Ae=new Date(1970,Ad++,1)
}while(Ae.getHours());
return Ae
}function Aa(Ad,Ae,Af){Ae=Ae||1;
while(!Ad.getDay()||(Af&&Ad.getDay()==1||!Af&&Ad.getDay()==6)){AV(Ad,Ae)
}return Ad
}function AS(Ae,Ad){return Math.round((i(Ae,true)-i(Ad,true))/AP)
}function V(Ae,Ag,Ad,Af){if(Ag!==T&&Ag!=Ae.getFullYear()){Ae.setDate(1);
Ae.setMonth(0);
Ae.setFullYear(Ag)
}if(Ad!==T&&Ad!=Ae.getMonth()){Ae.setDate(1);
Ae.setMonth(Ad)
}if(Af!==T){Ae.setDate(Af)
}}function v(Ae,Ad){if(typeof Ae=="object"){return Ae
}if(typeof Ae=="number"){return new Date(Ae*1000)
}if(typeof Ae=="string"){if(Ae.match(/^\d+(\.\d+)?$/)){return new Date(parseFloat(Ae)*1000)
}if(Ad===T){Ad=true
}return L(Ae,Ad)||(Ae?new Date(Ae):null)
}return null
}function L(Ah,Ae){var Ad=Ah.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);
if(!Ad){return null
}var Ag=new Date(Ad[1],0,1);
if(Ae||!Ad[14]){var Af=new Date(Ad[1],0,1,9,0);
if(Ad[3]){Ag.setMonth(Ad[3]-1);
Af.setMonth(Ad[3]-1)
}if(Ad[5]){Ag.setDate(Ad[5]);
Af.setDate(Ad[5])
}AX(Ag,Af);
if(Ad[7]){Ag.setHours(Ad[7])
}if(Ad[8]){Ag.setMinutes(Ad[8])
}if(Ad[10]){Ag.setSeconds(Ad[10])
}if(Ad[12]){Ag.setMilliseconds(Number("0."+Ad[12])*1000)
}AX(Ag,Af)
}else{Ag.setUTCFullYear(Ad[1],Ad[3]?Ad[3]-1:0,Ad[5]||1);
Ag.setUTCHours(Ad[7]||0,Ad[8]||0,Ad[10]||0,Ad[12]?Number("0."+Ad[12])*1000:0);
var Ai=Number(Ad[16])*60+(Ad[18]?Number(Ad[18]):0);
Ai*=Ad[15]=="-"?1:-1;
Ag=new Date(+Ag+(Ai*60*1000))
}return Ag
}function AZ(Af){if(typeof Af=="number"){return Af*60
}if(typeof Af=="object"){return Af.getHours()*60+Af.getMinutes()
}var Ad=Af.match(/(\d+)(?::(\d+))?\s*(\w+)?/);
if(Ad){var Ae=parseInt(Ad[1],10);
if(Ad[3]){Ae%=12;
if(Ad[3].toLowerCase().charAt(0)=="p"){Ae+=12
}}return Ae*60+(Ad[2]?parseInt(Ad[2],10):0)
}}function X(Ae,Af,Ad){return H(Ae,null,Af,Ad)
}function H(Ap,Ao,An,Aq){Aq=Aq||h;
var Ae=Ap,Ag=Ao,Ah,Ai=An.length,Ak,Af,Am,Aj="";
for(Ah=0;
Ah<Ai;
Ah++){Ak=An.charAt(Ah);
if(Ak=="'"){for(Af=Ah+1;
Af<Ai;
Af++){if(An.charAt(Af)=="'"){if(Ae){if(Af==Ah+1){Aj+="'"
}else{Aj+=An.substring(Ah+1,Af)
}Ah=Af
}break
}}}else{if(Ak=="("){for(Af=Ah+1;
Af<Ai;
Af++){if(An.charAt(Af)==")"){var Ad=X(Ae,An.substring(Ah+1,Af),Aq);
if(parseInt(Ad.replace(/\D/,""),10)){Aj+=Ad
}Ah=Af;
break
}}}else{if(Ak=="["){for(Af=Ah+1;
Af<Ai;
Af++){if(An.charAt(Af)=="]"){var Al=An.substring(Ah+1,Af);
var Ad=X(Ae,Al,Aq);
if(Ad!=X(Ag,Al,Aq)){Aj+=Ad
}Ah=Af;
break
}}}else{if(Ak=="{"){Ae=Ao;
Ag=Ap
}else{if(Ak=="}"){Ae=Ap;
Ag=Ao
}else{for(Af=Ai;
Af>Ah;
Af--){if(Am=AR[An.substring(Ah,Af)]){if(Ae){Aj+=Am(Ae,Aq)
}Ah=Af-1;
break
}}if(Af==Ah){if(Ae){Aj+=Ak
}}}}}}}}return Aj
}var AR={s:function(Ad){return Ad.getSeconds()
},ss:function(Ad){return w(Ad.getSeconds())
},m:function(Ad){return Ad.getMinutes()
},mm:function(Ad){return w(Ad.getMinutes())
},h:function(Ad){return Ad.getHours()%12||12
},hh:function(Ad){return w(Ad.getHours()%12||12)
},H:function(Ad){return Ad.getHours()
},HH:function(Ad){return w(Ad.getHours())
},d:function(Ad){return Ad.getDate()
},dd:function(Ad){return w(Ad.getDate())
},ddd:function(Ae,Ad){return Ad.dayNamesShort[Ae.getDay()]
},dddd:function(Ae,Ad){return Ad.dayNames[Ae.getDay()]
},M:function(Ad){return Ad.getMonth()+1
},MM:function(Ad){return w(Ad.getMonth()+1)
},MMM:function(Ae,Ad){return Ad.monthNamesShort[Ae.getMonth()]
},MMMM:function(Ae,Ad){return Ad.monthNames[Ae.getMonth()]
},yy:function(Ad){return(Ad.getFullYear()+"").substring(2)
},yyyy:function(Ad){return Ad.getFullYear()
},t:function(Ad){return Ad.getHours()<12?"a":"p"
},tt:function(Ad){return Ad.getHours()<12?"am":"pm"
},T:function(Ad){return Ad.getHours()<12?"A":"P"
},TT:function(Ad){return Ad.getHours()<12?"AM":"PM"
},u:function(Ad){return X(Ad,"yyyy-MM-dd'T'HH:mm:ss'Z'")
},S:function(Ae){var Ad=Ae.getDate();
if(Ad>10&&Ad<20){return"th"
}return["st","nd","rd"][Ad%10-1]||"th"
}};
AT.applyAll=d;
function AI(Ad){if(Ad.end){return O(Ad.end,Ad.allDay)
}else{return AV(i(Ad.start),1)
}}function O(Ad,Ae){Ad=i(Ad);
return Ae||Ad.getHours()||Ad.getMinutes()?AV(Ad,1):B(Ad)
}function R(Ae,Ad){return(Ad.msLength-Ae.msLength)*100+(Ae.event.start-Ad.event.start)
}function j(Ae,Ad){return Ae.end>Ad.start&&Ae.start<Ad.end
}function x(Ap,Aj,Af,Ai){var Ag=[],Ak,Am=Ap.length,Ae,An,Al,Ao,Aq,Ad,Ah;
for(Ak=0;
Ak<Am;
Ak++){Ae=Ap[Ak];
An=Ae.start;
Al=Aj[Ak];
if(Al>Af&&An<Ai){if(An<Af){Ao=i(Af);
Ad=false
}else{Ao=An;
Ad=true
}if(Al>Ai){Aq=i(Ai);
Ah=false
}else{Aq=Al;
Ah=true
}Ag.push({event:Ae,start:Ao,end:Aq,isStart:Ad,isEnd:Ah,msLength:Aq-Ao})
}}return Ag.sort(R)
}function AC(Af){var Aj=[],Ai,Ad=Af.length,Ae,Ah,Ak,Ag;
for(Ai=0;
Ai<Ad;
Ai++){Ae=Af[Ai];
Ah=0;
while(true){Ak=false;
if(Aj[Ah]){for(Ag=0;
Ag<Aj[Ah].length;
Ag++){if(j(Aj[Ah][Ag],Ae)){Ak=true;
break
}}}if(Ak){Ah++
}else{break
}}if(Aj[Ah]){Aj[Ah].push(Ae)
}else{Aj[Ah]=[Ae]
}}return Aj
}function S(Ae,Ad,Af){Ae.unbind("mouseover").mouseover(function(Aj){var Ai=Aj.target,Ak,Ah,Ag;
while(Ai!=this){Ak=Ai;
Ai=Ai.parentNode
}if((Ah=Ak._fci)!==T){Ak._fci=T;
Ag=Ad[Ah];
Af(Ag.event,Ag.element,Ag);
AN(Aj.target).trigger(Aj)
}Aj.stopPropagation()
})
}function AO(Af,Ag,Ad){for(var Ae=0,Ah;
Ae<Af.length;
Ae++){Ah=AN(Af[Ae]);
Ah.width(Math.max(0,Ag-F(Ah,Ad)))
}}function u(Ag,Ad,Ae){for(var Af=0,Ah;
Af<Ag.length;
Af++){Ah=AN(Ag[Af]);
Ah.height(Math.max(0,Ad-a(Ah,Ae)))
}}function F(Ae,Ad){return AB(Ae)+N(Ae)+(Ad?AA(Ae):0)
}function AB(Ad){return(parseFloat(AN.curCSS(Ad[0],"paddingLeft",true))||0)+(parseFloat(AN.curCSS(Ad[0],"paddingRight",true))||0)
}function AA(Ad){return(parseFloat(AN.curCSS(Ad[0],"marginLeft",true))||0)+(parseFloat(AN.curCSS(Ad[0],"marginRight",true))||0)
}function N(Ad){return(parseFloat(AN.curCSS(Ad[0],"borderLeftWidth",true))||0)+(parseFloat(AN.curCSS(Ad[0],"borderRightWidth",true))||0)
}function a(Ae,Ad){return U(Ae)+AK(Ae)+(Ad?I(Ae):0)
}function U(Ad){return(parseFloat(AN.curCSS(Ad[0],"paddingTop",true))||0)+(parseFloat(AN.curCSS(Ad[0],"paddingBottom",true))||0)
}function I(Ad){return(parseFloat(AN.curCSS(Ad[0],"marginTop",true))||0)+(parseFloat(AN.curCSS(Ad[0],"marginBottom",true))||0)
}function AK(Ad){return(parseFloat(AN.curCSS(Ad[0],"borderTopWidth",true))||0)+(parseFloat(AN.curCSS(Ad[0],"borderBottomWidth",true))||0)
}function e(Ae,Ad){Ad=(typeof Ad=="number"?Ad+"px":Ad);
Ae.each(function(Ag,Af){Af.style.cssText+=";min-height:"+Ad+";_height:"+Ad
})
}function AL(){}function s(Ae,Ad){return Ae-Ad
}function AM(Ad){return Math.max.apply(Math,Ad)
}function w(Ad){return(Ad<10?"0":"")+Ad
}function Z(Ah,Ad){if(Ah[Ad]!==T){return Ah[Ad]
}var Ag=Ad.split(/(?=[A-Z])/),Af=Ag.length-1,Ae;
for(;
Af>=0;
Af--){Ae=Ah[Ag[Af].toLowerCase()];
if(Ae!==T){return Ae
}}return Ah[""]
}function AY(Ad){return Ad.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")
}function c(Ad){return Ad.id+"/"+Ad.className+"/"+Ad.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")
}function Ac(Ad){Ad.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false
})
}function C(Ad){Ad.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")
}function g(Ad,Ae){Ad.each(function(Af,Ag){Ag.className=Ag.className.replace(/^fc-\w*/,"fc-"+l[Ae.getDay()])
})
}function m(Ae,Af){var Ad=Ae.source||{};
var Ak=Ae.color;
var Ai=Ad.color;
var Ah=Af("eventColor");
var Al=Ae.backgroundColor||Ak||Ad.backgroundColor||Ai||Af("eventBackgroundColor")||Ah;
var Ag=Ae.borderColor||Ak||Ad.borderColor||Ai||Af("eventBorderColor")||Ah;
var Am=Ae.textColor||Ad.textColor||Af("eventTextColor");
var Aj=[];
if(Al){Aj.push("background-color:"+Al)
}if(Ag){Aj.push("border-color:"+Ag)
}if(Am){Aj.push("color:"+Am)
}return Aj.join(";")
}function d(Ag,Ah,Ae){if(AN.isFunction(Ag)){Ag=[Ag]
}if(Ag){var Af;
var Ad;
for(Af=0;
Af<Ag.length;
Af++){Ad=Ag[Af].apply(Ah,Ae)||Ad
}return Ad
}}function Ab(){for(var Ad=0;
Ad<arguments.length;
Ad++){if(arguments[Ad]!==T){return arguments[Ad]
}}}z.month=y;
function y(Ag,Aj){var Af=this;
Af.render=Ah;
W.call(Af,Ag,Aj,"month");
var Ae=Af.opt;
var Ad=Af.renderBasic;
var Ai=Aj.formatDate;
function Ah(An,Ar){if(Ar){M(An,Ar);
An.setDate(1)
}var Al=i(An,true);
Al.setDate(1);
var Ao=M(i(Al),1);
var As=i(Al);
var Ap=i(Ao);
var Ak=Ae("firstDay");
var Am=Ae("weekends")?0:1;
if(Am){Aa(As);
Aa(Ap,-1,true)
}AV(As,-((As.getDay()-Math.max(Ak,Am)+7)%7));
AV(Ap,(7-Ap.getDay()+Math.max(Ak,Am))%7);
var Aq=Math.round((Ap-As)/(AP*7));
if(Ae("weekMode")=="fixed"){AV(Ap,(6-Aq)*7);
Aq=6
}Af.title=Ai(Al,Ae("titleFormat"));
Af.start=Al;
Af.end=Ao;
Af.visStart=As;
Af.visEnd=Ap;
Ad(6,Aq,Am?5:7,true)
}}z.basicWeek=AU;
function AU(Ah,Aj){var Ag=this;
Ag.render=Ai;
W.call(Ag,Ah,Aj,"basicWeek");
var Af=Ag.opt;
var Ae=Ag.renderBasic;
var Ad=Aj.formatDates;
function Ai(Ao,Aq){if(Aq){AV(Ao,Aq*7)
}var Ap=AV(i(Ao),-((Ao.getDay()-Af("firstDay")+7)%7));
var Am=AV(i(Ap),7);
var Al=i(Ap);
var Ak=i(Am);
var An=Af("weekends");
if(!An){Aa(Al);
Aa(Ak,-1,true)
}Ag.title=Ad(Al,AV(i(Ak),-1),Af("titleFormat"));
Ag.start=Ap;
Ag.end=Am;
Ag.visStart=Al;
Ag.visEnd=Ak;
Ae(1,1,An?7:5,false)
}}z.basicDay=f;
function f(Aj,Ai){var Ap=this;
Ap.render=Ae;
W.call(Ap,Aj,Ai,"basicDay");
var Af=Ap.opt;
var Ag=Ap.renderBasic;
var Ao=Ai.formatDate;
var An=function(Ar,Aq){return Ar.options.calendarPlugin.getText(Ar.options.calendarDiv,Aq)
};
var Am=1000*60*60*24;
var Ak=14;
var Ah=AN("<div/>").addClass("events-container").appendTo(Aj);
var Al=function(Av,Ay,At){AN(".events-list",Ah).remove();
var As=AN(".more-container",Aj).addClass("hidden");
var Ar=AN(".no-events-message",Aj);
if(Av.length){Ar.addClass("hidden");
var Aw=[];
AN.each(Av,function(A2,A1){AN.each(A1.expandedDates,function(A4,A3){Ai.normalizeEvent(A3);
if(A4==A1.expandedDates.length-1&&!A1.allDay){A3.showLastIndicator=true
}Aw.push(A3)
})
});
AN.each(Aw,function(A1,A2){Av.push(A2)
});
Av.sort(function(A1,A2){return A1.start.getTime()-A2.start.getTime()
});
Av=AN.grep(Av,function(A1){return A1.start>=Ay
});
var Au=AN("<ul/>").addClass("events-list");
var Aq={};
var Ax=Ai.options.calendarDiv;
var A0=Ai.options.calendarPlugin;
AN.each(Av,function(A5,A2){var A1=Ao(A2.start,"yyyyMMdd");
var A4=Aq[A1]||AN("<li/>").addClass("event-group");
Aq[A1]=A4;
var A3=A0.getSubCalendar(Ax,A2.subCalendarId);
AN("<div/>").addClass("event").html(AJS.template(AN("script[title='event-details-template-"+A0.getParameter(Ax,"elementIdSuffix")+"']")[0].text).fillHtml({eventClassName:AN("<span/>").text((A2.className[0]||"")+(A0.getSubCalendar(Ax,A2.subCalendarId).eventInviteesSupported?" with-invites":"")).html(),eventIconLinkClass:A2.iconLink?"event-icon-withlink":"",eventIconLink:A2.iconLink||"#",additionalEventIconLinkClasses:A2.person?"userLogoLink":"",eventPerson:A2.person||"",eventIconUrl:AN("<a/>").attr("href",A2.iconUrl).attr("href"),eventTimeClass:A2.allDay?"allDayEvent":"",allDayText:AN("<span/>").text(Ai.options.allDayText).html(),eventDate:AN("<span/>").text(A2.confluenceFormattedStartDate).html(),indicatorClass:A2.showLastIndicator?"last-of-multiday":"",eventStartTime:AN("<span/>").text(A2.localizedStartTime).html(),eventEndTime:AN("<span/>").text(A2.localizedEndTime).html(),eventSubCalendarColor:A2.textColor,eventTitle:AN("<span/>").text(A2.title).html(),additionalSubCalendarNameClass:"true"!==A0.getParameter(Ax,"showSubCalendarPreviewLinks")?"hidden":"",subCalendarPreviewLink:AJS.format("{0}/calendar/previewcalendar.action?subCalendarId={1}",A0.getParameter(Ax,"baseUrl"),encodeURIComponent(A3.subscriptionId||A3.id)),subCalendarName:AN("<span/>").text(A3.name).html(),issueKey:AN("<span/>").text(A2.extraProperties?A2.extraProperties.issueKey||"":"").html(),issueSummary:AN("<span/>").text(A2.extraProperties?A2.extraProperties.issueSummary||"":"").html(),projectName:AN("<span/>").text(A2.extraProperties?A2.extraProperties.projectName||"":"").html(),versionNumber:AN("<span/>").text(A2.extraProperties?A2.extraProperties.versionNumber||"":"").html(),eventDescription:AN("<span/>").append(A2.description||"").html(),eventUrl:A2.url?AN("<a/>").attr("href",A2.url).attr("href"):"#",eventUrlAlias:A2.url?(A2.urlAlias||A2.url):"",inviteesHtml:(function(){var A8=A0.getSubCalendar(Ax,A2.subCalendarId);
var A7=A8.subscriptionType||A8.type;
if(A2.invitees&&(A7!=="people"||A2.invitees.length>1)){var A6=AN(document.createElement("ul"));
AN.each(A2.invitees,function(BA,A9){AN(document.createElement("li")).append(AN(document.createElement("img")).addClass("invitee-avatar").attr({src:A9.avatarIconUrl,title:A9.displayName})).appendTo(A6)
});
return AN(document.createElement("div")).append(A6).html()
}return null
})()||"",eventExtraPropertiesRenderered:(function(){if(A2.extraPropertiesTemplate){return AJS.template(AN("script[title='"+A2.extraPropertiesTemplate+"-"+A0.getParameter(Ax,"elementIdSuffix")+"']")[0].text).fillHtml(A2.extraProperties||{}).toString()
}return""
})()}).toString()).appendTo(A4)
});
var Az=[];
AN.each(Aq,function(A2,A1){Az.push(A1)
});
Az.sort(function(A1,A2){return A1.data("groupDate")-A2.data("groupDate")
});
AN.each(Az,function(A2,A1){A1.appendTo(Au);
if(A2===0){A1.addClass("event-group-first")
}});
AN(".event-group",Au).each(function(){AN(".event:first",this).addClass("first-event")
});
As.before(Au);
AN(".event-details .event-description",Au).ThreeDots({max_rows:3});
AN("div[threedots]",Au).each(function(){AN(this).attr("title",AN(this).attr("threedots"))
});
if(A0.getParameter(Ax,"hideListViewMoreButton")!=="true"){As.removeClass("hidden")
}if(AJS&&AJS.Confluence&&AJS.Confluence.Binder&&AJS.Confluence.Binder.userHover&&AN.isFunction(AJS.Confluence.Binder.userHover)){AJS.Confluence.Binder.userHover()
}}else{Ar.text(AJS.format(An(Ai,"calendar3.noevents"),Ao(Ay,"MMM dd"),Ao(new Date(At.getTime()-Am),"MMM dd"))).removeClass("hidden")
}AN("span",As).text("")
};
var Ad=function(At,Aw,Aq){var Ar=AN(".more-container",Aj).addClass("more-container-loading");
var As=Ai.options.calendarPlugin;
var Av=Ai.options.calendarDiv;
var Au=Ap.visStart;
AN.ajax({cache:false,converters:{"text json":function(Ax){return Ax
}},data:{subCalendarIds:As.getEnabledSubCalendarIds(Av),userTimeZoneId:As.getParameter(Av,"userTimeZoneId"),start:Ao(Au,"u"),daysMore:At},dataFilter:function(Ax){var Ay=AN.parseJSON(Ax||"[]");
AN.each(Ay,function(Az,A0){Ai.normalizeEvent(A0)
});
return Ay
},dataType:"json",error:function(Ax,Az,Ay){if(Aw){Aw(Ax,Az,Ay)
}},success:function(Ax){Al(Ax,Au,new Date(Au.getTime()+(At*Am)));
if(Ap.daysMore){AN("span",Ar.removeClass("more-container-loading")).text(AJS.format(An(Ai,"calendar3.showingeventstill"),Ao(new Date(Au.getTime()+Am*(At-1)),"dd-MMM-yyyy")))
}if(Aq){Aq()
}},type:"GET",url:As.getCalendarServiceBaseUrl(Av,"/events/multiplexed.json")})
};
AN("<div/>").addClass("more-container").append(AN("<input type='button'/>").attr("value",An(Ai,"more.word.capitalised")).click(function(){if(Ap.daysMore){Ap.daysMore=Ap.daysMore+Ak
}else{Ap.daysMore=Ak*2
}Ad(Ap.daysMore);
return false
})).append(AN("<span/>")).append(AN("<img/>").attr("src",AN("#confluence-context-path").attr("content")+"/images/icons/wait.gif").addClass("more-events-spinner")).appendTo(Ah);
AN("<div/>").addClass("no-events-message").text(An(Ai,"calendar3.loading")).appendTo(Aj);
Ap.renderEvents=function(As){Aj.css("MozUserSelect","text").attr("unselectable","off").unbind("selectstart.ui");
if(!Ap.daysMore){var Aq=new Date(Ap.visStart.getTime()+Am*Ak);
Al((function(Ay,Ax,Aw){var Au=[];
var Av=function(Az){if(Az.allDay){return(Az.start>=Ax&&Az.start<Aw)||(Az.start<Ax&&Az.end>=Ax)||(Az.start>=Aw&&Az.start<Aw)
}else{return(Az.start>=Ax&&Az.start<Aw)||(Az.start<Ax&&Az.end>Ax)||(Az.start>=Aw&&Az.start<Aw)
}};
AN.each(Ay,function(A0,Az){if(Av(Az)){Au.push(Az)
}});
return Au
})(As,Ap.visStart,Aq),Ap.visStart,Aq)
}else{var Ar=function(Au){Ai.options.calendarPlugin.setSubCalendarSpinnerIconVisible(Ai.options.calendarDiv,Au)
};
Ar(true);
var At="error-view-render";
Ad(Ap.daysMore,function(Au,Aw,Av){Ar(false);
Ai.options.calendarPlugin.showAjaxError(Ai.options.calendarDiv,Au,Aw,Av,At)
},function(){Ar(false);
Ai.options.calendarPlugin.setGenericErrors(Ai.options.calendarDiv,null,At)
})
}};
function Ae(Aq,Ar){if(Ar){AV(Aq,Ar);
if(!Af("weekends")){Aa(Aq,Ar<0?-1:1)
}}Ap.title=Ao(Aq,Af("titleFormat"));
Ap.start=Ap.visStart=i(Aq,true);
Ap.end=Ap.visEnd=AV(i(Ap.start),1);
Ag(1,1,1,false)
}}AE({weekMode:"fixed"});
function W(At,BJ,Am){var BI=this;
BI.renderBasic=BB;
BI.setHeight=BG;
BI.setWidth=BQ;
BI.renderDayOverlay=A6;
BI.defaultSelectionEnd=A5;
BI.renderSelection=BK;
BI.clearSelection=Ad;
BI.reportDayClick=Ar;
BI.dragStart=Af;
BI.dragStop=An;
BI.defaultEventEnd=BX;
BI.getHoverListener=function(){return Ag
};
BI.colContentLeft=BF;
BI.colContentRight=BC;
BI.dayOfWeekCol=A1;
BI.dateCell=BD;
BI.cellDate=BW;
BI.cellIsAllDay=function(){return true
};
BI.allDayRow=Aq;
BI.allDayBounds=BN;
BI.getRowCnt=function(){return Az
};
BI.getColCnt=function(){return Ai
};
BI.getColWidth=function(){return A2
};
BI.getDaySegmentContainer=function(){return Ap
};
AW.call(BI,At,BJ,Am);
A.call(BI);
AH.call(BI);
AG.call(BI);
var Aw=BI.opt;
var A8=BI.trigger;
var A4=BI.clearEvents;
var BT=BI.renderOverlay;
var Al=BI.clearOverlays;
var BE=BI.daySelectionMousedown;
var BH=BJ.formatDate;
var As;
var Ao;
var A0;
var Ak;
var Au;
var A3;
var BA;
var Ap;
var BU;
var BZ;
var A2;
var Az,Ai;
var BM;
var Ag;
var BO;
var BL,BY,BV;
var Ay;
var Av;
var Ba;
var Aj;
Ac(At.addClass("fc-grid"));
function BB(Bc,Bd,Bf,Bb){Az=Bd;
Ai=Bf;
BR();
var Be=!A0;
if(Be){A7(Bc,Bb)
}else{A4()
}Ae(Be)
}function BR(){BL=Aw("isRTL");
if(BL){BY=-1;
BV=Ai-1
}else{BY=1;
BV=0
}Ay=Aw("firstDay");
Av=Aw("weekends")?0:1;
Ba=Aw("theme")?"ui":"fc";
Aj=Aw("columnFormat")
}function A7(Bh,Be){var Bg;
var Bf=Ba+"-widget-header";
var Bc=Ba+"-widget-content";
var Bd,Bb;
var Bi;
Bg="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>";
for(Bd=0;
Bd<Ai;
Bd++){Bg+="<th class='fc- "+Bf+"'/>"
}Bg+="</tr></thead><tbody>";
for(Bd=0;
Bd<Bh;
Bd++){Bg+="<tr class='fc-week"+Bd+"'>";
for(Bb=0;
Bb<Ai;
Bb++){Bg+="<td class='fc- "+Bc+" fc-day"+(Bd*Ai+Bb)+"'><div>"+(Be?"<div class='fc-day-number'/>":"")+"<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>"
}Bg+="</tr>"
}Bg+="</tbody></table>";
Bi=AN(Bg).appendTo(At);
As=Bi.find("thead");
Ao=As.find("th");
A0=Bi.find("tbody");
Ak=A0.find("tr");
Au=A0.find("td");
A3=Au.filter(":first-child");
BA=Ak.eq(0).find("div.fc-day-content div");
C(As.add(As.find("tr")));
C(Ak);
Ak.eq(0).addClass("fc-first");
Ah(Au);
Ap=AN("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(At)
}function Ae(Bh){var Be=Bh||Az==1;
var Bf=BI.start.getMonth();
var Bc=B(new Date());
var Bb;
var Bd;
var Bg;
if(Be){Ao.each(function(Bi,Bj){Bb=AN(Bj);
Bd=A9(Bi);
Bb.html(BH(Bd,Aj));
g(Bb,Bd)
})
}Au.each(function(Bi,Bj){Bb=AN(Bj);
Bd=A9(Bi);
if(Bd.getMonth()==Bf){Bb.removeClass("fc-other-month")
}else{Bb.addClass("fc-other-month")
}if(+Bd==+Bc){Bb.addClass(Ba+"-state-highlight fc-today")
}else{Bb.removeClass(Ba+"-state-highlight fc-today")
}Bb.find("div.fc-day-number").text(Bd.getDate());
if(Be){g(Bb,Bd)
}});
Ak.each(function(Bi,Bj){Bg=AN(Bj);
if(Bi<Az){Bg.show();
if(Bi==Az-1){Bg.addClass("fc-last")
}else{Bg.removeClass("fc-last")
}}else{Bg.hide()
}})
}function BG(Bc){BZ=Bc;
var Bf=BZ-As.height();
var Be;
var Bd;
var Bb;
if(Aw("weekMode")=="variable"){Be=Bd=Math.floor(Bf/(Az==1?2:6))
}else{Be=Math.floor(Bf/Az);
Bd=Bf-Be*(Az-1)
}A3.each(function(Bg,Bh){if(Bg<Az){Bb=AN(Bh);
e(Bb.find("> div"),(Bg==Az-1?Bd:Be)-a(Bb))
}})
}function BQ(Bb){BU=Bb;
BO.clear();
A2=Math.floor(BU/Ai);
AO(Ao.slice(0,-1),A2)
}function Ah(Bb){Bb.click(BS).mousedown(BE)
}function BS(Bd){if(!Aw("selectable")){var Bc=parseInt(this.className.match(/fc\-day(\d+)/)[1]);
var Bb=A9(Bc);
A8("dayClick",this,Bb,true,Bd)
}}function A6(Bg,Bk,Be){if(Be){BM.build()
}var Bb=i(BI.visStart);
var Bh=AV(i(Bb),Ai);
for(var Bd=0;
Bd<Az;
Bd++){var Bf=new Date(Math.max(Bb,Bg));
var Bj=new Date(Math.min(Bh,Bk));
if(Bf<Bj){var Bc,Bi;
if(BL){Bc=AS(Bj,Bb)*BY+BV+1;
Bi=AS(Bf,Bb)*BY+BV+1
}else{Bc=AS(Bf,Bb);
Bi=AS(Bj,Bb)
}Ah(BP(Bd,Bc,Bd,Bi-1))
}AV(Bb,7);
AV(Bh,7)
}}function BP(Be,Bf,Bc,Bd){var Bb=BM.rect(Be,Bf,Bc,Bd,At);
return BT(Bb,At)
}function A5(Bb,Bc){return i(Bb)
}function BK(Bb,Bd,Bc){A6(Bb,AV(i(Bd),1),true)
}function Ad(){Al()
}function Ar(Bd,Bf,Be){var Bb=BD(Bd);
var Bc=Au[Bb.row*Ai+Bb.col];
A8("dayClick",Bc,Bd,Bf,Be)
}function Af(Bd,Bb,Bc){Ag.start(function(Be){Al();
if(Be){BP(Be.row,Be.col,Be.row,Be.col)
}},Bb)
}function An(Bf,Bc,Bd){var Bb=Ag.stop();
Al();
if(Bb){var Be=BW(Bb);
A8("drop",Bf,Be,true,Bc,Bd)
}}function BX(Bb){return i(Bb.start)
}BM=new k(function(Bb,Be){var Bd,Bf,Bc;
Ao.each(function(Bh,Bg){Bd=AN(Bg);
Bf=Bd.offset().left;
if(Bh){Bc[1]=Bf
}Bc=[Bf];
Be[Bh]=Bc
});
Bc[1]=Bf+Bd.outerWidth();
Ak.each(function(Bh,Bg){if(Bh<Az){Bd=AN(Bg);
Bf=Bd.offset().top;
if(Bh){Bc[1]=Bf
}Bc=[Bf];
Bb[Bh]=Bc
}});
Bc[1]=Bf+Bd.outerHeight()
});
Ag=new AJ(BM);
BO=new J(function(Bb){return BA.eq(Bb)
});
function BF(Bb){return BO.left(Bb)
}function BC(Bb){return BO.right(Bb)
}function BD(Bb){return{row:Math.floor(AS(Bb,BI.visStart)/7),col:A1(Bb.getDay())}
}function BW(Bb){return Ax(Bb.row,Bb.col)
}function Ax(Bc,Bb){return AV(i(BI.visStart),Bc*7+Bb*BY+BV)
}function A9(Bb){return Ax(Math.floor(Bb/Ai),Bb%Ai)
}function A1(Bb){return((Bb-Math.max(Ay,Av)+Ai)%Ai)*BY+BV
}function Aq(Bb){return Ak.eq(Bb)
}function BN(Bb){return{left:0,right:BU}
}}function AG(){var Ao=this;
Ao.renderEvents=Aj;
Ao.compileDaySegs=An;
Ao.clearEvents=Am;
Ao.bindDaySeg=Ai;
t.call(Ao);
var Af=Ao.opt;
var Aq=Ao.trigger;
var Au=Ao.isEventDraggable;
var Aw=Ao.isEventResizable;
var Av=Ao.reportEvents;
var Az=Ao.reportEventClear;
var Ae=Ao.eventElementHandlers;
var Ax=Ao.showEvents;
var Ad=Ao.hideEvents;
var As=Ao.eventDrop;
var A0=Ao.getDaySegmentContainer;
var Ay=Ao.getHoverListener;
var Al=Ao.renderDayOverlay;
var Ar=Ao.clearOverlays;
var Ah=Ao.getRowCnt;
var At=Ao.getColCnt;
var Ap=Ao.renderDaySegs;
var Ak=Ao.resizableDayEvent;
function Aj(A2,A1){Av(A2);
Ap(An(A2),A1)
}function Am(){Az();
A0().empty()
}function An(BC){var A9=Ah(),BB=At(),A3=i(Ao.visStart),A1=AV(i(A3),BB),BA=AN.map(BC,AI),A8,BD,A7,A2,A5,A6,A4=[];
for(A8=0;
A8<A9;
A8++){BD=AC(x(BC,BA,A3,A1));
for(A7=0;
A7<BD.length;
A7++){A2=BD[A7];
for(A5=0;
A5<A2.length;
A5++){A6=A2[A5];
A6.row=A8;
A6.level=A7;
A4.push(A6)
}}AV(A3,7);
AV(A1,7)
}return A4
}function Ai(A3,A2,A1){if(Au(A3)){Ag(A3,A2)
}if(A1.isEnd&&Aw(A3)){Ak(A3,A2,A1)
}Ae(A3,A2)
}function Ag(A4,A3){var A2=Ay();
var A1;
A3.draggable({zIndex:9,delay:50,opacity:Af("dragOpacity"),revertDuration:Af("dragRevertDuration"),start:function(A5,A6){Aq("eventDragStart",A3,A4,A5,A6);
Ad(A4,A3);
A2.start(function(A8,A7,A9,BA){A3.draggable("option","revert",!A8||!A9&&!BA);
Ar();
if(A8){A1=A9*7+BA*(Af("isRTL")?-1:1);
Al(AV(i(A4.start),A1),AV(AI(A4),A1))
}else{A1=0
}},A5,"drag")
},stop:function(A5,A6){A2.stop();
Ar();
Aq("eventDragStop",A3,A4,A5,A6);
if(A1){As(this,A4,A1,0,A4.allDay,A5,A6)
}else{A3.css("filter","");
Ax(A4,A3)
}}})
}}z.agendaWeek=E;
function E(Ah,Aj){var Ag=this;
Ag.render=Ai;
b.call(Ag,Ah,Aj,"agendaWeek");
var Af=Ag.opt;
var Ae=Ag.renderAgenda;
var Ad=Aj.formatDates;
function Ai(Ao,Aq){if(Aq){AV(Ao,Aq*7)
}var Ap=AV(i(Ao),-((Ao.getDay()-Af("firstDay")+7)%7));
var Am=AV(i(Ap),7);
var Al=i(Ap);
var Ak=i(Am);
var An=Af("weekends");
if(!An){Aa(Al);
Aa(Ak,-1,true)
}Ag.title=Ad(Al,AV(i(Ak),-1),Af("titleFormat"));
Ag.start=Ap;
Ag.end=Am;
Ag.visStart=Al;
Ag.visEnd=Ak;
Ae(An?7:5)
}}z.agendaDay=AQ;
function AQ(Ag,Aj){var Af=this;
Af.render=Ah;
b.call(Af,Ag,Aj,"agendaDay");
var Ae=Af.opt;
var Ad=Af.renderAgenda;
var Ai=Aj.formatDate;
function Ah(Al,An){if(An){AV(Al,An);
if(!Ae("weekends")){Aa(Al,An<0?-1:1)
}}var Am=i(Al,true);
var Ak=AV(i(Am),1);
Af.title=Ai(Al,Ae("titleFormat"));
Af.start=Af.visStart=Am;
Af.end=Af.visEnd=Ak;
Ad(1)
}}AE({allDaySlot:true,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0,maxTime:24});
function b(B0,Av,A8){var A4=this;
A4.renderAgenda=Ap;
A4.setWidth=BJ;
A4.setHeight=BF;
A4.beforeHide=BD;
A4.afterShow=Br;
A4.defaultEventEnd=Bl;
A4.timePosition=B3;
A4.dayOfWeekCol=Aq;
A4.dateCell=Bw;
A4.cellDate=Ah;
A4.cellIsAllDay=Bv;
A4.allDayRow=BY;
A4.allDayBounds=BN;
A4.getHoverListener=function(){return Bz
};
A4.colContentLeft=B4;
A4.colContentRight=Am;
A4.getDaySegmentContainer=function(){return A0
};
A4.getSlotSegmentContainer=function(){return Ak
};
A4.getMinMinute=function(){return BB
};
A4.getMaxMinute=function(){return Af
};
A4.getBodyContent=function(){return BX
};
A4.getRowCnt=function(){return 1
};
A4.getColCnt=function(){return Ba
};
A4.getColWidth=function(){return An
};
A4.getSlotHeight=function(){return Bb
};
A4.defaultSelectionEnd=BI;
A4.renderDayOverlay=Ai;
A4.renderSelection=Bu;
A4.clearSelection=Bo;
A4.reportDayClick=A3;
A4.dragStart=Ao;
A4.dragStop=B1;
AW.call(A4,B0,Av,A8);
A.call(A4);
AH.call(A4);
p.call(A4);
var BW=A4.opt;
var BZ=A4.trigger;
var BV=A4.clearEvents;
var BM=A4.renderOverlay;
var Ag=A4.clearOverlays;
var BO=A4.reportSelection;
var Bs=A4.unselect;
var BS=A4.daySelectionMousedown;
var Aw=A4.slotSegHtml;
var A1=Av.formatDate;
var Bj;
var Bx;
var Bn;
var Bm;
var A7;
var Aj;
var Bk;
var Bh;
var B2;
var A0;
var By;
var Bq;
var BK;
var BX;
var Ak;
var Ar;
var Bg;
var BC;
var A2;
var Al;
var BP;
var Be;
var BG;
var An;
var BT;
var Bb;
var Ad;
var Ba;
var Bf;
var Bc;
var Bz;
var BQ;
var A9={};
var BL;
var BE;
var BU;
var Ae,Ay,Ax;
var BB,Af;
var At;
Ac(B0.addClass("fc-agenda"));
function Ap(B5){Ba=B5;
Bd();
if(!Bj){A6()
}else{BV()
}Au()
}function Bd(){BL=BW("theme")?"ui":"fc";
BU=BW("weekends")?0:1;
BE=BW("firstDay");
if(Ae=BW("isRTL")){Ay=-1;
Ax=Ba-1
}else{Ay=1;
Ax=0
}BB=AZ(BW("minTime"));
Af=AZ(BW("maxTime"));
At=BW("columnFormat")
}function A6(){var CA=BL+"-widget-header";
var B5=BL+"-widget-content";
var B9;
var B8;
var CC;
var CB;
var B7;
var B6=BW("slotMinutes")%15==0;
B9="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr><th class='fc-agenda-axis "+CA+"'>&nbsp;</th>";
for(B8=0;
B8<Ba;
B8++){B9+="<th class='fc- fc-col"+B8+" "+CA+"'/>"
}B9+="<th class='fc-agenda-gutter "+CA+"'>&nbsp;</th></tr></thead><tbody><tr><th class='fc-agenda-axis "+CA+"'>&nbsp;</th>";
for(B8=0;
B8<Ba;
B8++){B9+="<td class='fc- fc-col"+B8+" "+B5+"'><div><div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>"
}B9+="<td class='fc-agenda-gutter "+B5+"'>&nbsp;</td></tr></tbody></table>";
Bj=AN(B9).appendTo(B0);
Bx=Bj.find("thead");
Bn=Bx.find("th").slice(1,-1);
Bm=Bj.find("tbody");
A7=Bm.find("td").slice(0,-1);
Aj=A7.find("div.fc-day-content div");
Bk=A7.eq(0);
Bh=Bk.find("> div");
C(Bx.add(Bx.find("tr")));
C(Bm.add(Bm.find("tr")));
BC=Bx.find("th:first");
A2=Bj.find(".fc-agenda-gutter");
B2=AN("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(B0);
if(BW("allDaySlot")){A0=AN("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(B2);
B9="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+CA+" fc-agenda-axis'>"+BW("allDayText")+"</th><td><div class='fc-day-content'><div style='position:relative'/></div></td><th class='"+CA+" fc-agenda-gutter'>&nbsp;</th></tr></table>";
By=AN(B9).appendTo(B2);
Bq=By.find("tr");
BH(Bq.find("td"));
BC=BC.add(By.find("th:first"));
A2=A2.add(By.find("th.fc-agenda-gutter"));
B2.append("<div class='fc-agenda-divider "+CA+"'><div class='fc-agenda-divider-inner'/></div>")
}else{A0=AN([])
}BK=AN("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(B2);
BX=AN("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(BK);
Ak=AN("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(BX);
B9="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>";
CC=D();
CB=G(i(CC),Af);
G(CC,BB);
Bf=0;
for(B8=0;
CC<CB;
B8++){B7=CC.getMinutes();
B9+="<tr class='fc-slot"+B8+" "+(!B7?"":"fc-minor")+"'><th class='fc-agenda-axis "+CA+"'>"+((!B6||!B7)?A1(CC,BW("axisFormat")):"&nbsp;")+"</th><td class='"+B5+"'><div style='position:relative'>&nbsp;</div></td></tr>";
G(CC,BW("slotMinutes"));
Bf++
}B9+="</tbody></table>";
Ar=AN(B9).appendTo(BX);
Bg=Ar.find("div:first");
Bp(Ar.find("td"));
BC=BC.add(Ar.find("th:first"))
}function Au(){var B8;
var B5;
var B9;
var B7;
var B6=B(new Date());
for(B8=0;
B8<Ba;
B8++){B7=BR(B8);
B5=Bn.eq(B8);
B5.html(A1(B7,At));
B9=A7.eq(B8);
if(+B7==+B6){B9.addClass(BL+"-state-highlight fc-today")
}else{B9.removeClass(BL+"-state-highlight fc-today")
}g(B5.add(B9),B7)
}}function BF(B5,B6){if(B5===T){B5=Be
}Be=B5;
A9={};
var B8=Bm.position().top;
var B7=BK.position().top;
var B9=Math.min(B5-B8,Ar.height()+B7+1);
Bh.height(B9-a(Bk));
B2.css("top",B8);
BK.height(B9-B7-1);
Bb=Bg.height()+1;
if(B6){BA()
}}function BJ(B6){BP=B6;
BQ.clear();
BG=0;
AO(BC.width("").each(function(B7,B8){BG=Math.max(BG,AN(B8).outerWidth())
}),BG);
var B5=BK[0].clientWidth;
BT=BK.width()-B5;
if(BT){AO(A2,BT);
A2.show().prev().removeClass("fc-last")
}else{A2.hide().prev().addClass("fc-last")
}An=Math.floor((B5-BG)/Ba);
AO(Bn.slice(0,-1),An)
}function BA(){var B8=D();
var B6=i(B8);
B6.setHours(BW("firstHour"));
var B7=B3(B8,B6)+1;
function B5(){BK.scrollTop(B7)
}B5();
setTimeout(B5,0)
}function BD(){Ad=BK.scrollTop()
}function Br(){BK.scrollTop(Ad)
}function BH(B5){B5.click(Bi).mousedown(BS)
}function Bp(B5){B5.click(Bi).mousedown(As)
}function Bi(B9){if(!BW("selectable")){var B7=Math.min(Ba-1,Math.floor((B9.pageX-Bj.offset().left-BG)/An));
var B6=BR(B7);
var CA=this.parentNode.className.match(/fc-slot(\d+)/);
if(CA){var B8=parseInt(CA[1])*BW("slotMinutes");
var B5=Math.floor(B8/60);
B6.setHours(B5);
B6.setMinutes(B8%60+BB);
BZ("dayClick",A7[B7],B6,false,B9)
}else{BZ("dayClick",A7[B7],B6,true,B9)
}}}function Ai(B5,CA,B7){if(B7){Bc.build()
}var B6=i(A4.visStart);
var B9,B8;
if(Ae){B9=AS(CA,B6)*Ay+Ax+1;
B8=AS(B5,B6)*Ay+Ax+1
}else{B9=AS(B5,B6);
B8=AS(CA,B6)
}B9=Math.max(0,B9);
B8=Math.min(Ba,B8);
if(B9<B8){BH(Az(0,B9,0,B8-1))
}}function Az(B8,B9,B6,B7){var B5=Bc.rect(B8,B9,B6,B7,B2);
return BM(B5,B2)
}function A5(CA,CF){var CB=i(A4.visStart);
var B6=AV(i(CB),1);
for(var B8=0;
B8<Ba;
B8++){var B9=new Date(Math.max(CB,CA));
var CE=new Date(Math.min(B6,CF));
if(B9<CE){var B7=B8*Ay+Ax;
var CD=Bc.rect(0,B7,0,B7,BX);
var CC=B3(CB,B9);
var B5=B3(CB,CE);
CD.top=CC;
CD.height=B5-CC;
Bp(BM(CD,BX))
}AV(CB,1);
AV(B6,1)
}}Bc=new k(function(CD,CB){var B9,B6,B5;
Bn.each(function(CG,CF){B9=AN(CF);
B6=B9.offset().left;
if(CG){B5[1]=B6
}B5=[B6];
CB[CG]=B5
});
B5[1]=B6+B9.outerWidth();
if(BW("allDaySlot")){B9=Bq;
B6=B9.offset().top;
CD[0]=[B6,B6+B9.outerHeight()]
}var CC=BX.offset().top;
var CE=BK.offset().top;
var B8=CE+BK.outerHeight();
function CA(CF){return Math.max(CE,Math.min(B8,CF))
}for(var B7=0;
B7<Bf;
B7++){CD.push([CA(CC+Bb*B7),CA(CC+Bb*(B7+1))])
}});
Bz=new AJ(Bc);
BQ=new J(function(B5){return Aj.eq(B5)
});
function B4(B5){return BQ.left(B5)
}function Am(B5){return BQ.right(B5)
}function Bw(B5){return{row:Math.floor(AS(B5,A4.visStart)/7),col:Aq(B5.getDay())}
}function Ah(B5){var B7=BR(B5.col);
var B6=B5.row;
if(BW("allDaySlot")){B6--
}if(B6>=0){G(B7,BB+B6*BW("slotMinutes"))
}return B7
}function BR(B5){return AV(i(A4.visStart),B5*Ay+Ax)
}function Bv(B5){return BW("allDaySlot")&&!B5.row
}function Aq(B5){return((B5-Math.max(BE,BU)+Ba)%Ba)*Ay+Ax
}function B3(B6,CA){B6=i(B6,true);
if(CA<G(i(B6),BB)){return 0
}if(CA>=G(i(B6),Af)){return Ar.height()
}var B5=BW("slotMinutes"),B9=CA.getHours()*60+CA.getMinutes()-BB,B8=Math.floor(B9/B5),B7=A9[B8];
if(B7===T){B7=A9[B8]=Ar.find("tr:eq("+B8+") td div")[0].offsetTop
}return Math.max(0,Math.round(B7-1+Bb*((B9%B5)/B5)))
}function BN(){return{left:BG,right:BP-BT}
}function BY(B5){return Bq
}function Bl(B5){var B6=i(B5.start);
if(B5.allDay){return B6
}return G(B6,BW("defaultEventMinutes"))
}function BI(B5,B6){if(B6){return i(B5)
}return G(i(B5),BW("slotMinutes"))
}function Bu(B5,B7,B6){if(B6){if(BW("allDaySlot")){Ai(B5,AV(i(B7),1),true)
}}else{Bt(B5,B7)
}}function Bt(B5,CB){var B9=BW("selectHelper");
Bc.build();
if(B9){var B7=AS(B5,A4.visStart)*Ay+Ax;
if(B7>=0&&B7<Ba){var B8=Bc.rect(0,B7,0,B7,BX);
var CA=B3(B5,B5);
var B6=B3(B5,CB);
if(B6>CA){B8.top=CA;
B8.height=B6-CA;
B8.left+=2;
B8.width-=5;
if(AN.isFunction(B9)){var CC=B9(B5,CB);
if(CC){B8.position="absolute";
B8.zIndex=8;
Al=AN(CC).css(B8).appendTo(BX)
}}else{B8.isStart=true;
B8.isEnd=true;
Al=AN(Aw({title:"",start:B5,end:CB,className:["fc-select-helper"],editable:false},B8));
Al.css("opacity",BW("dragOpacity"))
}if(Al){Bp(Al);
BX.append(Al);
AO(Al,B8.width,true);
u(Al,B8.height,true)
}}}}else{A5(B5,CB)
}}function Bo(){Ag();
if(Al){Al.remove();
Al=null
}}function As(B5){if(B5.which==1&&BW("selectable")){Bs(B5);
var B6;
Bz.start(function(B8,B7){Bo();
if(B8&&B8.col==B7.col&&!Bv(B8)){var CA=Ah(B7);
var B9=Ah(B8);
B6=[CA,G(i(CA),BW("slotMinutes")),B9,G(i(B9),BW("slotMinutes"))].sort(s);
Bt(B6[0],B6[3])
}else{B6=null
}},B5);
AN(document).one("mouseup",function(B7){Bz.stop();
if(B6){if(+B6[0]==+B6[1]){A3(B6[0],false,B7)
}BO(B6[0],B6[3],false,B7)
}})
}}function A3(B5,B7,B6){BZ("dayClick",A7[Aq(B5.getDay())],B5,B7,B6)
}function Ao(B7,B5,B6){Bz.start(function(B8){Ag();
if(B8){if(Bv(B8)){Az(B8.row,B8.col,B8.row,B8.col)
}else{var CA=Ah(B8);
var B9=G(i(CA),BW("defaultEventMinutes"));
A5(CA,B9)
}}},B5)
}function B1(B8,B6,B7){var B5=Bz.stop();
Ag();
if(B5){BZ("drop",B8,Ah(B5),Bv(B5),B6,B7)
}}}function p(){var BD=this;
BD.renderEvents=Aj;
BD.compileDaySegs=Ae;
BD.clearEvents=Az;
BD.slotSegHtml=A0;
BD.bindDaySeg=Ax;
t.call(BD);
var As=BD.opt;
var A1=BD.trigger;
var Ah=BD.isEventDraggable;
var BI=BD.isEventResizable;
var BJ=BD.eventEnd;
var An=BD.reportEvents;
var BM=BD.reportEventClear;
var A4=BD.eventElementHandlers;
var A9=BD.setHeight;
var Ai=BD.getDaySegmentContainer;
var BL=BD.getSlotSegmentContainer;
var Ag=BD.getHoverListener;
var Af=BD.getMaxMinute;
var A6=BD.getMinMinute;
var Am=BD.timePosition;
var A8=BD.colContentLeft;
var A7=BD.colContentRight;
var BB=BD.renderDaySegs;
var A5=BD.resizableDayEvent;
var BA=BD.getColCnt;
var At=BD.getColWidth;
var Ad=BD.getSlotHeight;
var Ay=BD.getBodyContent;
var Aq=BD.reportEventElement;
var Ak=BD.showEvents;
var Ar=BD.hideEvents;
var BG=BD.eventDrop;
var Av=BD.eventResize;
var A2=BD.renderDayOverlay;
var Al=BD.clearOverlays;
var BE=BD.calendar;
var BC=BE.formatDate;
var Au=BE.formatDates;
function Aj(BR,BP){An(BR);
var BQ,BO=BR.length,BS=[],BN=[];
for(BQ=0;
BQ<BO;
BQ++){if(BR[BQ].allDay){BS.push(BR[BQ])
}else{BN.push(BR[BQ])
}}if(As("allDaySlot")){BB(Ae(BS),BP);
A9()
}Ao(Aw(BN),BP)
}function Az(){BM();
Ai().empty();
BL().empty()
}function Ae(BR){var BT=AC(x(BR,AN.map(BR,AI),BD.visStart,BD.visEnd)),BQ,BS=BT.length,BU,BP,BO,BN=[];
for(BQ=0;
BQ<BS;
BQ++){BU=BT[BQ];
for(BP=0;
BP<BU.length;
BP++){BO=BU[BP];
BO.row=0;
BO.level=BQ;
BN.push(BO)
}}return BN
}function Aw(BZ){var BY=BA(),BW=A6(),BQ=Af(),BX=G(i(BD.visStart),BW),BU=AN.map(BZ,BK),BV,BP,BT,BN,BR,BS,BO=[];
for(BV=0;
BV<BY;
BV++){BP=AC(x(BZ,BU,BX,G(i(BX),BQ-BW)));
Y(BP);
for(BT=0;
BT<BP.length;
BT++){BN=BP[BT];
for(BR=0;
BR<BN.length;
BR++){BS=BN[BR];
BS.col=BV;
BS.level=BT;
BO.push(BS)
}}AV(BX,1,true)
}return BO
}function BK(BN){if(BN.end){return i(BN.end)
}else{return G(i(BN.start),As("defaultEventMinutes"))
}}function Ao(Bd,Be){var Bj,Bm=Bd.length,Bl,Bh,Bn,BZ,BW,BV,BP,BX,BU,Bg,BN,BQ,BY="",Bo,Bk,BS,BO={},Br={},Bq,Bp,BT,Bb,Bi=BL(),BR,Bc,Ba,Bf=BA();
if(BR=As("isRTL")){Bc=-1;
Ba=Bf-1
}else{Bc=1;
Ba=0
}for(Bj=0;
Bj<Bm;
Bj++){Bl=Bd[Bj];
Bh=Bl.event;
BZ=Am(Bl.start,Bl.start);
BW=Am(Bl.start,Bl.end);
BV=Bl.col;
BP=Bl.level;
BX=Bl.forward||0;
BU=A8(BV*Bc+Ba);
Bg=A7(BV*Bc+Ba)-BU;
Bg=Math.min(Bg-6,Bg*0.95);
if(BP){BN=Bg/(BP+BX+1)
}else{if(BX){BN=((Bg/(BX+1))-(12/2))*2
}else{BN=Bg
}}BQ=BU+(Bg/(BP+BX+1)*BP)*Bc+(BR?Bg-BN:0);
Bl.top=BZ;
Bl.left=BQ;
Bl.outerWidth=BN;
Bl.outerHeight=BW-BZ;
BY+=A0(Bh,Bl)
}Bi[0].innerHTML=BY;
Bo=Bi.children();
for(Bj=0;
Bj<Bm;
Bj++){Bl=Bd[Bj];
Bh=Bl.event;
Bk=AN(Bo[Bj]);
BS=A1("eventRender",Bh,Bh,Bk);
if(BS===false){Bk.remove()
}else{if(BS&&BS!==true){Bk.remove();
Bk=AN(BS).css({position:"absolute",top:Bl.top,left:Bl.left}).appendTo(Bi)
}Bl.element=Bk;
if(Bh._id===Be){BF(Bh,Bk,Bl)
}else{Bk[0]._fci=Bj
}Aq(Bh,Bk)
}}S(Bi,Bd,BF);
for(Bj=0;
Bj<Bm;
Bj++){Bl=Bd[Bj];
if(Bk=Bl.element){Bp=BO[Bq=Bl.key=c(Bk[0])];
Bl.vsides=Bp===T?(BO[Bq]=a(Bk,true)):Bp;
Bp=Br[Bq];
Bl.hsides=Bp===T?(Br[Bq]=F(Bk,true)):Bp;
BT=Bk.find("div.fc-event-content");
if(BT.length){Bl.contentTop=BT[0].offsetTop
}}}for(Bj=0;
Bj<Bm;
Bj++){Bl=Bd[Bj];
if(Bk=Bl.element){Bk[0].style.width=Math.max(0,Bl.outerWidth-Bl.hsides)+"px";
Bb=Math.max(0,Bl.outerHeight-Bl.vsides);
Bk[0].style.height=Bb+"px";
Bh=Bl.event;
if(Bl.contentTop!==T&&Bb-Bl.contentTop<10){Bk.find("div.fc-event-time").text(BC(Bh.start,As("timeFormat"))+" - "+Bh.title);
Bk.find("div.fc-event-title").remove()
}A1("eventAfterRender",Bh,Bh,Bk)
}}}function A0(BS,BN){var BR="<";
var BP=BS.url;
var BO=m(BS,As);
var BT=(BO?" style='"+BO+"'":"");
var BQ=["fc-event","fc-event-skin","fc-event-vert"];
if(Ah(BS)){BQ.push("fc-event-draggable")
}if(BN.isStart){BQ.push("fc-corner-top")
}if(BN.isEnd){BQ.push("fc-corner-bottom")
}BQ=BQ.concat(BS.className);
if(BS.source){BQ=BQ.concat(BS.source.className||[])
}if(BP){BR+="a href='"+AY(BS.url)+"'"
}else{BR+="div"
}BR+=" class='"+BQ.join(" ")+"' style='position:absolute;z-index:8;top:"+BN.top+"px;left:"+BN.left+"px;"+BO+"'><div class='fc-event-inner fc-event-skin'"+BT+"><div class='fc-event-head fc-event-skin'"+BT+"><div class='fc-event-time'>"+AY(Au(BS.start,BS.end,As("timeFormat")))+"</div></div><div class='fc-event-content'><div class='fc-event-title'>"+AY(BS.title)+"</div></div><div class='fc-event-bg'></div></div>";
if(BN.isEnd&&BI(BS)){BR+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"
}BR+="</"+(BP?"a":"div")+">";
return BR
}function Ax(BP,BO,BN){if(Ah(BP)){Ap(BP,BO,BN.isStart)
}if(BN.isEnd&&BI(BP)){A5(BP,BO,BN)
}A4(BP,BO)
}function BF(BP,BO,BN){var BQ=BO.find("div.fc-event-time");
if(Ah(BP)){A3(BP,BO,BQ)
}if(BN.isEnd&&BI(BP)){BH(BP,BO,BQ)
}A4(BP,BO)
}function Ap(BO,BW,BN){var BX;
var BV;
var BZ=true;
var BR;
var BP=As("isRTL")?-1:1;
var BQ=Ag();
var BS=At();
var BY=Ad();
var BU=A6();
BW.draggable({zIndex:9,opacity:As("dragOpacity","month"),revertDuration:As("dragRevertDuration"),start:function(Ba,Bb){A1("eventDragStart",BW,BO,Ba,Bb);
Ar(BO,BW);
BX=BW.width();
BQ.start(function(Bd,Bc,Be,Bf){Al();
if(Bd){BV=false;
BR=Bf*BP;
if(!Bd.row){A2(AV(i(BO.start),BR),AV(AI(BO),BR));
BT()
}else{if(BN){if(BZ){BW.width(BS-10);
u(BW,BY*Math.round((BO.end?((BO.end-BO.start)/q):As("defaultEventMinutes"))/As("slotMinutes")));
BW.draggable("option","grid",[BS,1]);
BZ=false
}}else{BV=true
}}BV=BV||(BZ&&!BR)
}else{BT();
BV=true
}BW.draggable("option","revert",BV)
},Ba,"drag")
},stop:function(Bb,Bc){BQ.stop();
Al();
A1("eventDragStop",BW,BO,Bb,Bc);
if(BV){BT();
BW.css("filter","");
Ak(BO,BW)
}else{var Ba=0;
if(!BZ){Ba=Math.round((BW.offset().top-Ay().offset().top)/BY)*As("slotMinutes")+BU-(BO.start.getHours()*60+BO.start.getMinutes())
}BG(this,BO,BR,Ba,BZ,Bb,Bc)
}}});
function BT(){if(!BZ){BW.width(BX).height("").draggable("option","grid",null);
BZ=true
}}}function A3(BN,BX,BY){var BR;
var Bb=false;
var BS;
var BW;
var BU;
var BO=As("isRTL")?-1:1;
var BQ=Ag();
var BZ=BA();
var BT=At();
var Ba=Ad();
BX.draggable({zIndex:9,scroll:false,grid:[BT,Ba],axis:BZ==1?"y":false,opacity:As("dragOpacity"),revertDuration:As("dragRevertDuration"),start:function(Bc,Bd){A1("eventDragStart",BX,BN,Bc,Bd);
Ar(BN,BX);
BR=BX.position();
BW=BU=0;
BQ.start(function(Bf,Be,Bg,Bh){BX.draggable("option","revert",!Bf);
Al();
if(Bf){BS=Bh*BO;
if(As("allDaySlot")&&!Bf.row){if(!Bb){Bb=true;
BY.hide();
BX.draggable("option","grid",null)
}A2(AV(i(BN.start),BS),AV(AI(BN),BS))
}else{BV()
}}},Bc,"drag")
},drag:function(Bc,Bd){BW=Math.round((Bd.position.top-BR.top)/Ba)*As("slotMinutes");
if(BW!=BU){if(!Bb){BP(BW)
}BU=BW
}},stop:function(Bd,Be){var Bc=BQ.stop();
Al();
A1("eventDragStop",BX,BN,Bd,Be);
if(Bc&&(BS||BW||Bb)){BG(this,BN,BS,Bb?0:BW,Bb,Bd,Be)
}else{BV();
BX.css("filter","");
BX.css(BR);
BP(0);
Ak(BN,BX)
}}});
function BP(Bd){var Bc=G(i(BN.start),Bd);
var Be;
if(BN.end){Be=G(i(BN.end),Bd)
}BY.text(Au(Bc,Be,As("timeFormat")))
}function BV(){if(Bb){BY.css("display","");
BX.draggable("option","grid",[BT,Ba]);
Bb=false
}}}function BH(BP,BO,BR){var BS,BN;
var BQ=Ad();
BO.resizable({handles:{s:"div.ui-resizable-s"},grid:BQ,start:function(BT,BU){BS=BN=0;
Ar(BP,BO);
BO.css("z-index",9);
A1("eventResizeStart",this,BP,BT,BU)
},resize:function(BT,BU){BS=Math.round((Math.max(BQ,BO.height())-BU.originalSize.height)/BQ);
if(BS!=BN){BR.text(Au(BP.start,(!BS&&!BP.end)?null:G(BJ(BP),As("slotMinutes")*BS),As("timeFormat")));
BN=BS
}},stop:function(BT,BU){A1("eventResizeStop",this,BP,BT,BU);
if(BS){Av(this,BP,0,As("slotMinutes")*BS,BT,BU)
}else{BO.css("z-index",8);
Ak(BP,BO)
}}})
}}function Y(Ah){var Af,Ae,Ad,Aj,Ai,Ag;
for(Af=Ah.length-1;
Af>0;
Af--){Aj=Ah[Af];
for(Ae=0;
Ae<Aj.length;
Ae++){Ai=Aj[Ae];
for(Ad=0;
Ad<Ah[Af-1].length;
Ad++){Ag=Ah[Af-1][Ad];
if(j(Ai,Ag)){Ag.forward=Math.max(Ag.forward||0,(Ai.forward||0)+1)
}}}}}function AW(Ah,Ao,At){var An=this;
An.element=Ah;
An.calendar=Ao;
An.name=At;
An.opt=Af;
An.trigger=Ap;
An.isEventDraggable=As;
An.isEventResizable=Aw;
An.reportEvents=Au;
An.eventEnd=Ax;
An.reportEventElement=Av;
An.reportEventClear=A3;
An.eventElementHandlers=Ae;
An.showEvents=A0;
An.hideEvents=Ad;
An.eventDrop=Ar;
An.eventResize=Ag;
var A4=An.defaultEventEnd;
var Am=Ao.normalizeEvent;
var Al=Ao.reportEventChange;
var Ay={};
var A2=[];
var Ak={};
var Ai=Ao.options;
function Af(A7,A5){var A6=Ai[A7];
if(typeof A6=="object"){return Z(A6,A5||At)
}return A6
}function Ap(A5,A6){return Ao.trigger.apply(Ao,[A5,A6||An].concat(Array.prototype.slice.call(arguments,2),[An]))
}function As(A5){return Az(A5)&&!Af("disableDragging")
}function Aw(A5){return Az(A5)&&!Af("disableResizing")
}function Az(A5){return Ab(A5.editable,(A5.source||{}).editable,Af("editable"))
}function Au(A7){Ay={};
var A6,A5=A7.length,A8;
for(A6=0;
A6<A5;
A6++){A8=A7[A6];
if(Ay[A8._id]){Ay[A8._id].push(A8)
}else{Ay[A8._id]=[A8]
}}}function Ax(A5){return A5.end?i(A5.end):A4(A5)
}function Av(A6,A5){A2.push(A5);
if(Ak[A6._id]){Ak[A6._id].push(A5)
}else{Ak[A6._id]=[A5]
}}function A3(){A2=[];
Ak={}
}function Ae(A6,A5){A5.click(function(A7){if(!A5.hasClass("ui-draggable-dragging")&&!A5.hasClass("ui-resizable-resizing")){return Ap("eventClick",this,A6,A7)
}}).hover(function(A7){Ap("eventMouseover",this,A6,A7)
},function(A7){Ap("eventMouseout",this,A6,A7)
})
}function A0(A6,A5){Aq(A6,A5,"show")
}function Ad(A6,A5){Aq(A6,A5,"hide")
}function Aq(A8,A7,BA){var A9=Ak[A8._id],A6,A5=A9.length;
for(A6=0;
A6<A5;
A6++){if(!A7||A9[A6][0]!=A7[0]){A9[A6][BA]()
}}}function Ar(A8,A6,A7,A9,BC,BB,BA){var BD=A6.allDay;
var A5=A6._id;
A1(Ay[A5],A7,A9,BC);
Ap("eventDrop",A8,A6,A7,A9,BC,function(){A1(Ay[A5],-A7,-A9,BD);
Al(A5)
},BB,BA);
Al(A5)
}function Ag(BB,A9,A6,A5,A8,BA){var A7=A9._id;
Aj(Ay[A7],A6,A5);
Ap("eventResize",BB,A9,A6,A5,function(){Aj(Ay[A7],-A6,-A5);
Al(A7)
},A8,BA);
Al(A7)
}function A1(A9,A7,A6,BA){A6=A6||0;
for(var BB,A5=A9.length,A8=0;
A8<A5;
A8++){BB=A9[A8];
if(BA!==T){BB.allDay=BA
}G(AV(BB.start,A7,true),A6);
if(BB.end){BB.end=G(AV(BB.end,A7,true),A6)
}Am(BB,Ai)
}}function Aj(A9,A7,A6){A6=A6||0;
for(var BA,A5=A9.length,A8=0;
A8<A5;
A8++){BA=A9[A8];
BA.end=G(AV(Ax(BA),A7,true),A6);
Am(BA,Ai)
}}}function t(){var A6=this;
A6.renderDaySegs=A5;
A6.resizableDayEvent=Az;
var Ao=A6.opt;
var Av=A6.trigger;
var Af=A6.isEventDraggable;
var BB=A6.isEventResizable;
var BC=A6.eventEnd;
var Am=A6.reportEventElement;
var Ai=A6.showEvents;
var An=A6.hideEvents;
var Ar=A6.eventResize;
var BF=A6.getRowCnt;
var A4=A6.getColCnt;
var Ap=A6.getColWidth;
var Ak=A6.allDayRow;
var A9=A6.allDayBounds;
var A2=A6.colContentLeft;
var A0=A6.colContentRight;
var At=A6.dayOfWeekCol;
var A1=A6.dateCell;
var Ae=A6.compileDaySegs;
var Ag=A6.getDaySegmentContainer;
var Au=A6.bindDaySeg;
var Aq=A6.calendar.formatDates;
var Aw=A6.renderDayOverlay;
var Aj=A6.clearOverlays;
var Ad=A6.clearSelection;
function A5(BI,BH){var BG=Ag();
var BO;
var BN=BF();
var BT=A4();
var BM=0;
var BS;
var BR;
var BP;
var BL;
var BU=BI.length;
var BK;
var BQ;
var BJ;
BG[0].innerHTML=Ax(BI);
Ay(BI,BG.children());
A8(BI);
A3(BI,BG,BH);
BE(BI);
Ah(BI);
A7(BI);
BO=As();
for(BS=0;
BS<BN;
BS++){BR=0;
BP=[];
for(BL=0;
BL<BT;
BL++){BP[BL]=0
}while(BM<BU&&(BK=BI[BM]).row==BS){BQ=AM(BP.slice(BK.startCol,BK.endCol));
BK.top=BQ;
BQ+=BK.outerHeight;
for(BJ=BK.startCol;
BJ<BK.endCol;
BJ++){BP[BJ]=BQ
}BM++
}BO[BS].height(AM(BP))
}BD(BI,Al(BO))
}function BA(BJ,BI,BN){var BM=AN("<div/>");
var BG;
var BH=Ag();
var BL;
var BO=BJ.length;
var BK;
BM[0].innerHTML=Ax(BJ);
BG=BM.children();
BH.append(BG);
Ay(BJ,BG);
BE(BJ);
Ah(BJ);
A7(BJ);
BD(BJ,Al(As()));
BG=[];
for(BL=0;
BL<BO;
BL++){BK=BJ[BL].element;
if(BK){if(BJ[BL].row===BI){BK.css("top",BN)
}BG.push(BK[0])
}}return AN(BG)
}function Ax(BL){var BS=Ao("isRTL");
var BQ;
var BW=BL.length;
var BP;
var BJ;
var BK;
var BN;
var BG=A9();
var BO=BG.left;
var BI=BG.right;
var BU;
var BH;
var BM;
var BV;
var BT;
var BR="";
for(BQ=0;
BQ<BW;
BQ++){BP=BL[BQ];
BJ=BP.event;
BN=["fc-event","fc-event-skin","fc-event-hori"];
if(Af(BJ)){BN.push("fc-event-draggable")
}if(BS){if(BP.isStart){BN.push("fc-corner-right")
}if(BP.isEnd){BN.push("fc-corner-left")
}BU=At(BP.end.getDay()-1);
BH=At(BP.start.getDay());
BM=BP.isEnd?A2(BU):BO;
BV=BP.isStart?A0(BH):BI
}else{if(BP.isStart){BN.push("fc-corner-left")
}if(BP.isEnd){BN.push("fc-corner-right")
}BU=At(BP.start.getDay());
BH=At(BP.end.getDay()-1);
BM=BP.isStart?A2(BU):BO;
BV=BP.isEnd?A0(BH):BI
}BN=BN.concat(BJ.className);
if(BJ.source){BN=BN.concat(BJ.source.className||[])
}BK=BJ.url;
BT=m(BJ,Ao);
if(BK){BR+="<a href='"+AY(BK)+"'"
}else{BR+="<div"
}BR+=" class='"+BN.join(" ")+"' style='position:absolute;z-index:8;left:"+BM+"px;"+BT+"'><div class='fc-event-inner fc-event-skin'"+(BT?" style='"+BT+"'":"")+">";
if(!BJ.allDay&&BP.isStart){BR+="<span class='fc-event-time'>"+AY(Aq(BJ.start,BJ.end,Ao("timeFormat")))+"</span>"
}BR+="<span class='fc-event-title'>"+AY(BJ.title)+"</span></div>";
if(BP.isEnd&&BB(BJ)){BR+="<div class='ui-resizable-handle ui-resizable-"+(BS?"w":"e")+"'>&nbsp;&nbsp;&nbsp;</div>"
}BR+="</"+(BK?"a":"div")+">";
BP.left=BM;
BP.outerWidth=BV-BM;
BP.startCol=BU;
BP.endCol=BH+1
}return BR
}function Ay(BH,BM){var BK;
var BN=BH.length;
var BG;
var BL;
var BJ;
var BI;
for(BK=0;
BK<BN;
BK++){BG=BH[BK];
BL=BG.event;
BJ=AN(BM[BK]);
BI=Av("eventRender",BL,BL,BJ);
if(BI===false){BJ.remove()
}else{if(BI&&BI!==true){BI=AN(BI).css({position:"absolute",left:BG.left});
BJ.replaceWith(BI);
BJ=BI
}BG.element=BJ
}}}function A8(BH){var BJ;
var BK=BH.length;
var BG;
var BI;
for(BJ=0;
BJ<BK;
BJ++){BG=BH[BJ];
BI=BG.element;
if(BI){Am(BG.event,BI)
}}}function A3(BH,BM,BI){var BK;
var BN=BH.length;
var BG;
var BJ;
var BL;
for(BK=0;
BK<BN;
BK++){BG=BH[BK];
BJ=BG.element;
if(BJ){BL=BG.event;
if(BL._id===BI){Au(BL,BJ,BG)
}else{BJ[0]._fci=BK
}}}S(BM,BH,Au)
}function BE(BH){var BL;
var BM=BH.length;
var BG;
var BK;
var BJ,BN;
var BI={};
for(BL=0;
BL<BM;
BL++){BG=BH[BL];
BK=BG.element;
if(BK){BJ=BG.key=c(BK[0]);
BN=BI[BJ];
if(BN===T){BN=BI[BJ]=F(BK,true)
}BG.hsides=BN
}}}function Ah(BH){var BJ;
var BK=BH.length;
var BG;
var BI;
for(BJ=0;
BJ<BK;
BJ++){BG=BH[BJ];
BI=BG.element;
if(BI){BI[0].style.width=Math.max(0,BG.outerWidth-BG.hsides)+"px"
}}}function A7(BH){var BK;
var BM=BH.length;
var BG;
var BJ;
var BI,BN;
var BL={};
for(BK=0;
BK<BM;
BK++){BG=BH[BK];
BJ=BG.element;
if(BJ){BI=BG.key;
BN=BL[BI];
if(BN===T){BN=BL[BI]=I(BJ)
}BG.outerHeight=BJ[0].offsetHeight+BN
}}}function As(){var BG;
var BI=BF();
var BH=[];
for(BG=0;
BG<BI;
BG++){BH[BG]=Ak(BG).find("td:first div.fc-day-content > div")
}return BH
}function Al(BH){var BG;
var BJ=BH.length;
var BI=[];
for(BG=0;
BG<BJ;
BG++){BI[BG]=BH[BG][0].offsetTop
}return BI
}function BD(BH,BM){var BJ;
var BL=BH.length;
var BG;
var BI;
var BK;
for(BJ=0;
BJ<BL;
BJ++){BG=BH[BJ];
BI=BG.element;
if(BI){BI[0].style.top=BM[BG.row]+(BG.top||0)+"px";
BK=BG.event;
Av("eventAfterRender",BK,BK,BI)
}}}function Az(BI,BH,BG){var BL=Ao("isRTL");
var BK=BL?"w":"e";
var BJ=BH.find("div.ui-resizable-"+BK);
var BM=false;
Ac(BH);
BH.mousedown(function(BN){BN.preventDefault()
}).click(function(BN){if(BM){BN.preventDefault();
BN.stopImmediatePropagation()
}});
BJ.mousedown(function(BW){if(BW.which!=1){return 
}BM=true;
var BR=A6.getHoverListener();
var BV=BF();
var BX=A4();
var BP=BL?-1:1;
var BO=BL?BX-1:0;
var BQ=BH.css("top");
var BS;
var BN;
var BU=AN.extend({},BI);
var BY=A1(BI.start);
Ad();
AN("body").css("cursor",BK+"-resize").one("mouseup",BT);
Av("eventResizeStart",this,BI,BW);
BR.start(function(Ba,BZ){if(Ba){var Bd=Math.max(BY.row,Ba.row);
var Be=Ba.col;
if(BV==1){Bd=0
}if(Bd==BY.row){if(BL){Be=Math.min(BY.col,Be)
}else{Be=Math.max(BY.col,Be)
}}BS=(Bd*7+Be*BP+BO)-(BZ.row*7+BZ.col*BP+BO);
var Bc=AV(BC(BI),BS,true);
if(BS){BU.end=Bc;
var Bb=BN;
BN=BA(Ae([BU]),BG.row,BQ);
BN.find("*").css("cursor",BK+"-resize");
if(Bb){Bb.remove()
}An(BI)
}else{if(BN){Ai(BI);
BN.remove();
BN=null
}}Aj();
Aw(BI.start,AV(i(Bc),1))
}},BW);
function BT(BZ){Av("eventResizeStop",this,BI,BZ);
AN("body").css("cursor","");
BR.stop();
Aj();
if(BS){Ar(this,BI,BS,0,BZ)
}setTimeout(function(){BM=false
},0)
}})
}}function AH(){var An=this;
An.select=Al;
An.unselect=Ah;
An.reportSelection=Ad;
An.daySelectionMousedown=Ak;
var Af=An.opt;
var Ag=An.trigger;
var Ai=An.defaultSelectionEnd;
var Ae=An.renderSelection;
var Am=An.clearSelection;
var Aj=false;
if(Af("selectable")&&Af("unselectAuto")){AN(document).mousedown(function(Ao){var Ap=Af("unselectCancel");
if(Ap){if(AN(Ao.target).parents(Ap).length){return 
}}Ah(Ao)
})
}function Al(Ao,Aq,Ap){Ah();
if(!Aq){Aq=Ai(Ao,Ap)
}Ae(Ao,Aq,Ap);
Ad(Ao,Aq,Ap)
}function Ah(Ao){if(Aj){Aj=false;
Am();
Ag("unselect",null,Ao)
}}function Ad(Ao,Ar,Aq,Ap){Aj=true;
Ag("select",null,Ao,Ar,Aq,Ap)
}function Ak(Ar){var Au=An.cellDate;
var Ap=An.cellIsAllDay;
var Ao=An.getHoverListener();
var As=An.reportDayClick;
if(Ar.which==1&&Af("selectable")){Ah(Ar);
var Aq=this;
var At;
Ao.start(function(Aw,Av){Am();
if(Aw&&Ap(Aw)){At=[Au(Av),Au(Aw)].sort(s);
Ae(At[0],At[1],true)
}else{At=null
}},Ar);
AN(document).one("mouseup",function(Av){Ao.stop();
if(At){if(+At[0]==+At[1]){As(At[0],true,Av)
}Ad(At[0],At[1],true,Av)
}})
}}}function A(){var Ag=this;
Ag.renderOverlay=Ae;
Ag.clearOverlays=Ad;
var Af=[];
var Ah=[];
function Ae(Aj,Ai){var Ak=Ah.shift();
if(!Ak){Ak=AN("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>")
}if(Ak[0].parentNode!=Ai[0]){Ak.appendTo(Ai)
}Af.push(Ak.css(Aj).show());
return Ak
}function Ad(){var Ai;
while(Ai=Af.shift()){Ah.push(Ai.hide().unbind())
}}}function k(Ad){var Ae=this;
var Af;
var Ag;
Ae.build=function(){Af=[];
Ag=[];
Ad(Af,Ag)
};
Ae.cell=function(Ah,An){var Am=Af.length;
var Ai=Ag.length;
var Aj,Ak=-1,Al=-1;
for(Aj=0;
Aj<Am;
Aj++){if(An>=Af[Aj][0]&&An<Af[Aj][1]){Ak=Aj;
break
}}for(Aj=0;
Aj<Ai;
Aj++){if(Ah>=Ag[Aj][0]&&Ah<Ag[Aj][1]){Al=Aj;
break
}}return(Ak>=0&&Al>=0)?{row:Ak,col:Al}:null
};
Ae.rect=function(Ak,Am,Ai,Aj,Al){var Ah=Al.offset();
return{top:Af[Ak][0]-Ah.top,left:Ag[Am][0]-Ah.left,width:Ag[Aj][1]-Ag[Am][0],height:Af[Ai][1]-Af[Ak][0]}
}
}function AJ(Ai){var Ag=this;
var Ah;
var Aj;
var Ae;
var Ad;
Ag.start=function(Ak,Al,Am){Aj=Ak;
Ae=Ad=null;
Ai.build();
Af(Al);
Ah=Am||"mousemove";
AN(document).bind(Ah,Af)
};
function Af(Ak){var Al=Ai.cell(Ak.pageX,Ak.pageY);
if(!Al!=!Ad||Al&&(Al.row!=Ad.row||Al.col!=Ad.col)){if(Al){if(!Ae){Ae=Al
}Aj(Al,Ae,Al.row-Ae.row,Al.col-Ae.col)
}else{Aj(Al,Ae)
}Ad=Al
}}Ag.stop=function(){AN(document).unbind(Ah,Af);
return Ad
}
}function J(Ae){var Ad=this,Af={},Ai={},Ah={};
function Ag(Aj){return Af[Aj]=Af[Aj]||Ae(Aj)
}Ad.left=function(Aj){return Ai[Aj]=Ai[Aj]===T?Ag(Aj).position().left:Ai[Aj]
};
Ad.right=function(Aj){return Ah[Aj]=Ah[Aj]===T?Ad.left(Aj)+Ag(Aj).width():Ah[Aj]
};
Ad.clear=function(){Af={};
Ai={};
Ah={}
}
}})(jQuery);
(function(F){F.ui=F.ui||{};
var C=/left|center|right/,E="center",D=/top|center|bottom/,G="center",A=F.fn.position,B=F.fn.offset;
F.fn.position=function(I){if(!I||!I.of){return A.apply(this,arguments)
}I=F.extend({},I);
var L=F(I.of),N=(I.collision||"flip").split(" "),M=I.offset?I.offset.split(" "):[0,0],K,H,J;
if(I.of.nodeType===9){K=L.width();
H=L.height();
J={top:0,left:0}
}else{if(I.of.scrollTo&&I.of.document){K=L.width();
H=L.height();
J={top:L.scrollTop(),left:L.scrollLeft()}
}else{if(I.of.preventDefault){I.at="left top";
K=H=0;
J={top:I.of.pageY,left:I.of.pageX}
}else{K=L.outerWidth();
H=L.outerHeight();
J=L.offset()
}}}F.each(["my","at"],function(){var O=(I[this]||"").split(" ");
if(O.length===1){O=C.test(O[0])?O.concat([G]):D.test(O[0])?[E].concat(O):[E,G]
}O[0]=C.test(O[0])?O[0]:E;
O[1]=D.test(O[1])?O[1]:G;
I[this]=O
});
if(N.length===1){N[1]=N[0]
}M[0]=parseInt(M[0],10)||0;
if(M.length===1){M[1]=M[0]
}M[1]=parseInt(M[1],10)||0;
if(I.at[0]==="right"){J.left+=K
}else{if(I.at[0]===E){J.left+=K/2
}}if(I.at[1]==="bottom"){J.top+=H
}else{if(I.at[1]===G){J.top+=H/2
}}J.left+=M[0];
J.top+=M[1];
return this.each(function(){var R=F(this),Q=R.outerWidth(),P=R.outerHeight(),O=F.extend({},J);
if(I.my[0]==="right"){O.left-=Q
}else{if(I.my[0]===E){O.left-=Q/2
}}if(I.my[1]==="bottom"){O.top-=P
}else{if(I.my[1]===G){O.top-=P/2
}}O.left=parseInt(O.left);
O.top=parseInt(O.top);
F.each(["left","top"],function(T,S){if(F.ui.position[N[T]]){F.ui.position[N[T]][S](O,{targetWidth:K,targetHeight:H,elemWidth:Q,elemHeight:P,offset:M,my:I.my,at:I.at})
}});
if(F.fn.bgiframe){R.bgiframe()
}R.offset(F.extend(O,{using:I.using}))
})
};
F.ui.position={fit:{left:function(H,I){var K=F(window),J=H.left+I.elemWidth-K.width()-K.scrollLeft();
H.left=J>0?H.left-J:Math.max(0,H.left)
},top:function(H,I){var K=F(window),J=H.top+I.elemHeight-K.height()-K.scrollTop();
H.top=J>0?H.top-J:Math.max(0,H.top)
}},flip:{left:function(I,J){if(J.at[0]==="center"){return 
}var L=F(window),K=I.left+J.elemWidth-L.width()-L.scrollLeft(),H=J.my[0]==="left"?-J.elemWidth:J.my[0]==="right"?J.elemWidth:0,M=-2*J.offset[0];
I.left+=I.left<0?H+J.targetWidth+M:K>0?H-J.targetWidth+M:0
},top:function(I,K){if(K.at[1]==="center"){return 
}var M=F(window),L=I.top+K.elemHeight-M.height()-M.scrollTop(),H=K.my[1]==="top"?-K.elemHeight:K.my[1]==="bottom"?K.elemHeight:0,J=K.at[1]==="top"?K.targetHeight:-K.targetHeight,N=-2*K.offset[1];
I.top+=I.top<0?H+K.targetHeight+N:L>0?H+J+N:0
}}};
if(!F.offset.setOffset){F.offset.setOffset=function(L,I){if(/static/.test(F.curCSS(L,"position"))){L.style.position="relative"
}var K=F(L),N=K.offset(),H=parseInt(F.curCSS(L,"top",true),10)||0,M=parseInt(F.curCSS(L,"left",true),10)||0,J={top:(I.top-N.top)+H,left:(I.left-N.left)+M};
if("using" in I){I.using.call(L,J)
}else{K.css(J)
}};
F.fn.offset=function(H){var I=this[0];
if(!I||!I.ownerDocument){return null
}if(H){return this.each(function(){F.offset.setOffset(this,H)
})
}return B.call(this)
}
}}(jQuery));
(function(A){A.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var B=this,C=this.element[0].ownerDocument;
this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(D){var E=A.ui.keyCode;
switch(D.keyCode){case E.PAGE_UP:B._move("previousPage",D);
break;
case E.PAGE_DOWN:B._move("nextPage",D);
break;
case E.UP:B._move("previous",D);
D.preventDefault();
break;
case E.DOWN:B._move("next",D);
D.preventDefault();
break;
case E.ENTER:if(B.menu.active){D.preventDefault()
}case E.TAB:if(!B.menu.active){return 
}B.menu.select(D);
break;
case E.ESCAPE:B.element.val(B.term);
B.close(D);
break;
case E.LEFT:case E.RIGHT:case E.SHIFT:case E.CONTROL:case E.ALT:break;
default:clearTimeout(B.searching);
B.searching=setTimeout(function(){B.search(null,D)
},B.options.delay);
break
}}).bind("focus.autocomplete",function(){B.selectedItem=null;
B.previous=B.element.val()
}).bind("blur.autocomplete",function(D){clearTimeout(B.searching);
B.closing=setTimeout(function(){B.close(D);
B._change(D)
},150)
});
this._initSource();
this.response=function(){return B._response.apply(B,arguments)
};
this.menu=A("<ul></ul>").addClass("ui-autocomplete").appendTo("body",C).menu({focus:function(E,F){var D=F.item.data("item.autocomplete");
if(false!==B._trigger("focus",null,{item:D})){if(/^key/.test(E.originalEvent.type)){B.element.val(D.value)
}}},selected:function(F,G){var E=G.item.data("item.autocomplete");
if(false!==B._trigger("select",F,{item:E})){B.element.val(E.value)
}B.close(F);
var D=B.previous;
if(B.element[0]!==C.activeElement){B.element.focus();
B.previous=D
}B.selectedItem=E
},blur:function(D,E){if(B.menu.element.is(":visible")){B.element.val(B.term)
}}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
if(A.fn.bgiframe){this.menu.element.bgiframe()
}},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
this.menu.element.remove();
A.Widget.prototype.destroy.call(this)
},_setOption:function(B){A.Widget.prototype._setOption.apply(this,arguments);
if(B==="source"){this._initSource()
}},_initSource:function(){var C,B;
if(A.isArray(this.options.source)){C=this.options.source;
this.source=function(E,D){D(A.ui.autocomplete.filter(C,E.term))
}
}else{if(typeof this.options.source==="string"){B=this.options.source;
this.source=function(E,D){A.getJSON(B,E,D)
}
}else{this.source=this.options.source
}}},search:function(C,B){C=C!=null?C:this.element.val();
if(C.length<this.options.minLength){return this.close(B)
}clearTimeout(this.closing);
if(this._trigger("search")===false){return 
}return this._search(C)
},_search:function(B){this.term=this.element.addClass("ui-autocomplete-loading").val();
this.source({term:B},this.response)
},_response:function(B){if(B.length){B=this._normalize(B);
this._suggest(B);
this._trigger("open")
}else{this.close()
}this.element.removeClass("ui-autocomplete-loading")
},close:function(B){clearTimeout(this.closing);
if(this.menu.element.is(":visible")){this._trigger("close",B);
this.menu.element.hide();
this.menu.deactivate()
}},_change:function(B){if(this.previous!==this.element.val()){this._trigger("change",B,{item:this.selectedItem})
}},_normalize:function(B){if(B.length&&B[0].label&&B[0].value){return B
}return A.map(B,function(C){if(typeof C==="string"){return{label:C,value:C}
}return A.extend({label:C.label||C.value,value:C.value||C.label},C)
})
},_suggest:function(B){var C=this.menu.element.empty().zIndex(this.element.zIndex()+1),D,E;
this._renderMenu(C,B);
this.menu.deactivate();
this.menu.refresh();
this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});
D=C.width("").width();
E=this.element.width();
C.width(Math.max(D,E))
},_renderMenu:function(D,C){var B=this;
A.each(C,function(E,F){B._renderItem(D,F)
})
},_renderItem:function(B,C){return A("<li></li>").data("item.autocomplete",C).append("<a>"+C.label+"</a>").appendTo(B)
},_move:function(C,B){if(!this.menu.element.is(":visible")){this.search(null,B);
return 
}if(this.menu.first()&&/^previous/.test(C)||this.menu.last()&&/^next/.test(C)){this.element.val(this.term);
this.menu.deactivate();
return 
}this.menu[C](B)
},widget:function(){return this.menu.element
}});
A.extend(A.ui.autocomplete,{escapeRegex:function(B){return B.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")
},filter:function(D,B){var C=new RegExp(A.ui.autocomplete.escapeRegex(B),"i");
return A.grep(D,function(E){return C.test(E.label||E.value||E)
})
}})
}(jQuery));
(function(A){A.widget("ui.menu",{_create:function(){var B=this;
this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(C){if(!A(C.target).closest(".ui-menu-item a").length){return 
}C.preventDefault();
B.select(C)
});
this.refresh()
},refresh:function(){var C=this;
var B=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");
B.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(D){C.activate(D,A(this).parent())
}).mouseleave(function(){C.deactivate()
})
},activate:function(E,D){this.deactivate();
if(this.hasScroll()){var F=D.offset().top-this.element.offset().top,B=this.element.attr("scrollTop"),C=this.element.height();
if(F<0){this.element.attr("scrollTop",B+F)
}else{if(F>C){this.element.attr("scrollTop",B+F-C+D.height())
}}}this.active=D.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();
this._trigger("focus",E,{item:D})
},deactivate:function(){if(!this.active){return 
}this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
this._trigger("blur");
this.active=null
},next:function(B){this.move("next",".ui-menu-item:first",B)
},previous:function(B){this.move("prev",".ui-menu-item:last",B)
},first:function(){return this.active&&!this.active.prev().length
},last:function(){return this.active&&!this.active.next().length
},move:function(E,D,C){if(!this.active){this.activate(C,this.element.children(D));
return 
}var B=this.active[E+"All"](".ui-menu-item").eq(0);
if(B.length){this.activate(C,B)
}else{this.activate(C,this.element.children(D))
}},nextPage:function(D){if(this.hasScroll()){if(!this.active||this.last()){this.activate(D,this.element.children(":first"));
return 
}var E=this.active.offset().top,C=this.element.height(),B=this.element.children("li").filter(function(){var F=A(this).offset().top-E-C+A(this).height();
return F<10&&F>-10
});
if(!B.length){B=this.element.children(":last")
}this.activate(D,B)
}else{this.activate(D,this.element.children(!this.active||this.last()?":first":":last"))
}},previousPage:function(C){if(this.hasScroll()){if(!this.active||this.first()){this.activate(C,this.element.children(":last"));
return 
}var D=this.active.offset().top,B=this.element.height();
result=this.element.children("li").filter(function(){var E=A(this).offset().top-D+B-A(this).height();
return E<10&&E>-10
});
if(!result.length){result=this.element.children(":first")
}this.activate(C,result)
}else{this.activate(C,this.element.children(!this.active||this.first()?":last":":first"))
}},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")
},select:function(B){this._trigger("selected",B,{item:this.active})
}})
}(jQuery));
(function($,undefined){$.extend($.ui,{datepicker:{version:"1.8.11"}});
var PROP_NAME="datepicker";
var dpuuid=new Date().getTime();
function Datepicker(){this.debug=false;
this._curInst=null;
this._keyEvent=false;
this._disabledInputs=[];
this._datepickerShowing=false;
this._inDialog=false;
this._mainDivId="ui-datepicker-div";
this._inlineClass="ui-datepicker-inline";
this._appendClass="ui-datepicker-append";
this._triggerClass="ui-datepicker-trigger";
this._dialogClass="ui-datepicker-dialog";
this._disableClass="ui-datepicker-disabled";
this._unselectableClass="ui-datepicker-unselectable";
this._currentClass="ui-datepicker-current-day";
this._dayOverClass="ui-datepicker-days-cell-over";
this.regional=[];
this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};
this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};
$.extend(this._defaults,this.regional[""]);
this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')
}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)
}},_widgetDatepicker:function(){return this.dpDiv
},setDefaults:function(settings){extendRemove(this._defaults,settings||{});
return this
},_attachDatepicker:function(target,settings){var inlineSettings=null;
for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);
if(attrValue){inlineSettings=inlineSettings||{};
try{inlineSettings[attrName]=eval(attrValue)
}catch(err){inlineSettings[attrName]=attrValue
}}}var nodeName=target.nodeName.toLowerCase();
var inline=(nodeName=="div"||nodeName=="span");
if(!target.id){this.uuid+=1;
target.id="dp"+this.uuid
}var inst=this._newInst($(target),inline);
inst.settings=$.extend({},settings||{},inlineSettings||{});
if(nodeName=="input"){this._connectDatepicker(target,inst)
}else{if(inline){this._inlineDatepicker(target,inst)
}}},_newInst:function(target,inline){var id=target[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");
return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}
},_connectDatepicker:function(target,inst){var input=$(target);
inst.append=$([]);
inst.trigger=$([]);
if(input.hasClass(this.markerClassName)){return 
}this._attachments(input,inst);
input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value
}).bind("getData.datepicker",function(event,key){return this._get(inst,key)
});
this._autoSize(inst);
$.data(target,PROP_NAME,inst)
},_attachments:function(input,inst){var appendText=this._get(inst,"appendText");
var isRTL=this._get(inst,"isRTL");
if(inst.append){inst.append.remove()
}if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");
input[isRTL?"before":"after"](inst.append)
}input.unbind("focus",this._showDatepicker);
if(inst.trigger){inst.trigger.remove()
}var showOn=this._get(inst,"showOn");
if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)
}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");
var buttonImage=this._get(inst,"buttonImage");
inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));
input[isRTL?"before":"after"](inst.trigger);
inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==input[0]){$.datepicker._hideDatepicker()
}else{$.datepicker._showDatepicker(input[0])
}return false
})
}},_autoSize:function(inst){if(this._get(inst,"autoSize")&&!inst.inline){var date=new Date(2009,12-1,20);
var dateFormat=this._get(inst,"dateFormat");
if(dateFormat.match(/[DM]/)){var findMax=function(names){var max=0;
var maxI=0;
for(var i=0;
i<names.length;
i++){if(names[i].length>max){max=names[i].length;
maxI=i
}}return maxI
};
date.setMonth(findMax(this._get(inst,(dateFormat.match(/MM/)?"monthNames":"monthNamesShort"))));
date.setDate(findMax(this._get(inst,(dateFormat.match(/DD/)?"dayNames":"dayNamesShort")))+20-date.getDay())
}inst.input.attr("size",this._formatDate(inst,date).length)
}},_inlineDatepicker:function(target,inst){var divSpan=$(target);
if(divSpan.hasClass(this.markerClassName)){return 
}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value
}).bind("getData.datepicker",function(event,key){return this._get(inst,key)
});
$.data(target,PROP_NAME,inst);
this._setDate(inst,this._getDefaultDate(inst),true);
this._updateDatepicker(inst);
this._updateAlternate(inst);
inst.dpDiv.show()
},_dialogDatepicker:function(input,date,onSelect,settings,pos){var inst=this._dialogInst;
if(!inst){this.uuid+=1;
var id="dp"+this.uuid;
this._dialogInput=$('<input type="text" id="'+id+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
this._dialogInput.keydown(this._doKeyDown);
$("body").append(this._dialogInput);
inst=this._dialogInst=this._newInst(this._dialogInput,false);
inst.settings={};
$.data(this._dialogInput[0],PROP_NAME,inst)
}extendRemove(inst.settings,settings||{});
date=(date&&date.constructor==Date?this._formatDate(inst,date):date);
this._dialogInput.val(date);
this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);
if(!this._pos){var browserWidth=document.documentElement.clientWidth;
var browserHeight=document.documentElement.clientHeight;
var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;
var scrollY=document.documentElement.scrollTop||document.body.scrollTop;
this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]
}this._dialogInput.css("left",(this._pos[0]+20)+"px").css("top",this._pos[1]+"px");
inst.settings.onSelect=onSelect;
this._inDialog=true;
this.dpDiv.addClass(this._dialogClass);
this._showDatepicker(this._dialogInput[0]);
if($.blockUI){$.blockUI(this.dpDiv)
}$.data(this._dialogInput[0],PROP_NAME,inst);
return this
},_destroyDatepicker:function(target){var $target=$(target);
var inst=$.data(target,PROP_NAME);
if(!$target.hasClass(this.markerClassName)){return 
}var nodeName=target.nodeName.toLowerCase();
$.removeData(target,PROP_NAME);
if(nodeName=="input"){inst.append.remove();
inst.trigger.remove();
$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)
}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()
}}},_enableDatepicker:function(target){var $target=$(target);
var inst=$.data(target,PROP_NAME);
if(!$target.hasClass(this.markerClassName)){return 
}var nodeName=target.nodeName.toLowerCase();
if(nodeName=="input"){target.disabled=false;
inst.trigger.filter("button").each(function(){this.disabled=false
}).end().filter("img").css({opacity:"1.0",cursor:""})
}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);
inline.children().removeClass("ui-state-disabled")
}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)
})
},_disableDatepicker:function(target){var $target=$(target);
var inst=$.data(target,PROP_NAME);
if(!$target.hasClass(this.markerClassName)){return 
}var nodeName=target.nodeName.toLowerCase();
if(nodeName=="input"){target.disabled=true;
inst.trigger.filter("button").each(function(){this.disabled=true
}).end().filter("img").css({opacity:"0.5",cursor:"default"})
}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);
inline.children().addClass("ui-state-disabled")
}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)
});
this._disabledInputs[this._disabledInputs.length]=target
},_isDisabledDatepicker:function(target){if(!target){return false
}for(var i=0;
i<this._disabledInputs.length;
i++){if(this._disabledInputs[i]==target){return true
}}return false
},_getInst:function(target){try{return $.data(target,PROP_NAME)
}catch(err){throw"Missing instance data for this datepicker"
}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);
if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))
}var settings=name||{};
if(typeof name=="string"){settings={};
settings[name]=value
}if(inst){if(this._curInst==inst){this._hideDatepicker()
}var date=this._getDateDatepicker(target,true);
var minDate=this._getMinMaxDate(inst,"min");
var maxDate=this._getMinMaxDate(inst,"max");
extendRemove(inst.settings,settings);
if(minDate!==null&&settings.dateFormat!==undefined&&settings.minDate===undefined){inst.settings.minDate=this._formatDate(inst,minDate)
}if(maxDate!==null&&settings.dateFormat!==undefined&&settings.maxDate===undefined){inst.settings.maxDate=this._formatDate(inst,maxDate)
}this._attachments($(target),inst);
this._autoSize(inst);
this._setDateDatepicker(target,date);
this._updateDatepicker(inst)
}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)
},_refreshDatepicker:function(target){var inst=this._getInst(target);
if(inst){this._updateDatepicker(inst)
}},_setDateDatepicker:function(target,date){var inst=this._getInst(target);
if(inst){this._setDate(inst,date);
this._updateDatepicker(inst);
this._updateAlternate(inst)
}},_getDateDatepicker:function(target,noDefault){var inst=this._getInst(target);
if(inst&&!inst.inline){this._setDateFromField(inst,noDefault)
}return(inst?this._getDate(inst):null)
},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);
var handled=true;
var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");
inst._keyEvent=true;
if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker();
handled=false;
break;
case 13:var sel=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",inst.dpDiv);
if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])
}else{$.datepicker._hideDatepicker()
}return false;
break;
case 27:$.datepicker._hideDatepicker();
break;
case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");
break;
case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");
break;
case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)
}handled=event.ctrlKey||event.metaKey;
break;
case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)
}handled=event.ctrlKey||event.metaKey;
break;
case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")
}handled=event.ctrlKey||event.metaKey;
if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")
}break;
case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")
}handled=event.ctrlKey||event.metaKey;
break;
case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")
}handled=event.ctrlKey||event.metaKey;
if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")
}break;
case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")
}handled=event.ctrlKey||event.metaKey;
break;
default:handled=false
}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)
}else{handled=false
}}if(handled){event.preventDefault();
event.stopPropagation()
}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);
if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));
var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);
return event.ctrlKey||event.metaKey||(chr<" "||!chars||chars.indexOf(chr)>-1)
}},_doKeyUp:function(event){var inst=$.datepicker._getInst(event.target);
if(inst.input.val()!=inst.lastVal){try{var date=$.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),(inst.input?inst.input.val():null),$.datepicker._getFormatConfig(inst));
if(date){$.datepicker._setDateFromField(inst);
$.datepicker._updateAlternate(inst);
$.datepicker._updateDatepicker(inst)
}}catch(event){$.datepicker.log(event)
}}return true
},_showDatepicker:function(input){input=input.target||input;
if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]
}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return 
}var inst=$.datepicker._getInst(input);
if($.datepicker._curInst&&$.datepicker._curInst!=inst){$.datepicker._curInst.dpDiv.stop(true,true)
}var beforeShow=$.datepicker._get(inst,"beforeShow");
extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));
inst.lastVal=null;
$.datepicker._lastInput=input;
$.datepicker._setDateFromField(inst);
if($.datepicker._inDialog){input.value=""
}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);
$.datepicker._pos[1]+=input.offsetHeight
}var isFixed=false;
$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";
return !isFixed
});
if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;
$.datepicker._pos[1]-=document.documentElement.scrollTop
}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};
$.datepicker._pos=null;
inst.dpDiv.empty();
inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});
$.datepicker._updateDatepicker(inst);
offset=$.datepicker._checkOffset(inst,offset,isFixed);
inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});
if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim");
var duration=$.datepicker._get(inst,"duration");
var postProcess=function(){$.datepicker._datepickerShowing=true;
var cover=inst.dpDiv.find("iframe.ui-datepicker-cover");
if(!!cover.length){var borders=$.datepicker._getBorders(inst.dpDiv);
cover.css({left:-borders[0],top:-borders[1],width:inst.dpDiv.outerWidth(),height:inst.dpDiv.outerHeight()})
}};
inst.dpDiv.zIndex($(input).zIndex()+1);
if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)
}else{inst.dpDiv[showAnim||"show"]((showAnim?duration:null),postProcess)
}if(!showAnim||!duration){postProcess()
}if(inst.input.is(":visible")&&!inst.input.is(":disabled")){inst.input.focus()
}$.datepicker._curInst=inst
}},_updateDatepicker:function(inst){var self=this;
var borders=$.datepicker._getBorders(inst.dpDiv);
inst.dpDiv.empty().append(this._generateHTML(inst));
var cover=inst.dpDiv.find("iframe.ui-datepicker-cover");
if(!!cover.length){cover.css({left:-borders[0],top:-borders[1],width:inst.dpDiv.outerWidth(),height:inst.dpDiv.outerHeight()})
}inst.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");
if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")
}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")
}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
$(this).addClass("ui-state-hover");
if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")
}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")
}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();
var numMonths=this._getNumberOfMonths(inst);
var cols=numMonths[1];
var width=17;
if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")
}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")
}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");
inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
if(inst==$.datepicker._curInst&&$.datepicker._datepickerShowing&&inst.input&&inst.input.is(":visible")&&!inst.input.is(":disabled")&&inst.input[0]!=document.activeElement){inst.input.focus()
}if(inst.yearshtml){var origyearshtml=inst.yearshtml;
setTimeout(function(){if(origyearshtml===inst.yearshtml){inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml)
}origyearshtml=inst.yearshtml=null
},0)
}},_getBorders:function(elem){var convert=function(value){return{thin:1,medium:2,thick:3}[value]||value
};
return[parseFloat(convert(elem.css("border-left-width"))),parseFloat(convert(elem.css("border-top-width")))]
},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();
var dpHeight=inst.dpDiv.outerHeight();
var inputWidth=inst.input?inst.input.outerWidth():0;
var inputHeight=inst.input?inst.input.outerHeight():0;
var viewWidth=document.documentElement.clientWidth+$(document).scrollLeft();
var viewHeight=document.documentElement.clientHeight+$(document).scrollTop();
offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);
offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;
offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;
offset.left-=Math.min(offset.left,(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0);
offset.top-=Math.min(offset.top,(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(dpHeight+inputHeight):0);
return offset
},_findPos:function(obj){var inst=this._getInst(obj);
var isRTL=this._get(inst,"isRTL");
while(obj&&(obj.type=="hidden"||obj.nodeType!=1||$.expr.filters.hidden(obj))){obj=obj[isRTL?"previousSibling":"nextSibling"]
}var position=$(obj).offset();
return[position.left,position.top]
},_hideDatepicker:function(input){var inst=this._curInst;
if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return 
}if(this._datepickerShowing){var showAnim=this._get(inst,"showAnim");
var duration=this._get(inst,"duration");
var postProcess=function(){$.datepicker._tidyDialog(inst);
this._curInst=null
};
if($.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)
}else{inst.dpDiv[(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide"))]((showAnim?duration:null),postProcess)
}if(!showAnim){postProcess()
}var onClose=this._get(inst,"onClose");
if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])
}this._datepickerShowing=false;
this._lastInput=null;
if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});
if($.blockUI){$.unblockUI();
$("body").append(this.dpDiv)
}}this._inDialog=false
}},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
},_checkExternalClick:function(event){if(!$.datepicker._curInst){return 
}var $target=$(event.target);
if($target[0].id!=$.datepicker._mainDivId&&$target.parents("#"+$.datepicker._mainDivId).length==0&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker()
}},_adjustDate:function(id,offset,period){var target=$(id);
var inst=this._getInst(target[0]);
if(this._isDisabledDatepicker(target[0])){return 
}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);
this._updateDatepicker(inst)
},_gotoToday:function(id){var target=$(id);
var inst=this._getInst(target[0]);
if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;
inst.drawMonth=inst.selectedMonth=inst.currentMonth;
inst.drawYear=inst.selectedYear=inst.currentYear
}else{var date=new Date();
inst.selectedDay=date.getDate();
inst.drawMonth=inst.selectedMonth=date.getMonth();
inst.drawYear=inst.selectedYear=date.getFullYear()
}this._notifyChange(inst);
this._adjustDate(target)
},_selectMonthYear:function(id,select,period){var target=$(id);
var inst=this._getInst(target[0]);
inst._selectingMonthYear=false;
inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);
this._notifyChange(inst);
this._adjustDate(target)
},_clickMonthYear:function(id){var target=$(id);
var inst=this._getInst(target[0]);
if(inst.input&&inst._selectingMonthYear){setTimeout(function(){inst.input.focus()
},0)
}inst._selectingMonthYear=!inst._selectingMonthYear
},_selectDay:function(id,month,year,td){var target=$(id);
if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return 
}var inst=this._getInst(target[0]);
inst.selectedDay=inst.currentDay=$("a",td).html();
inst.selectedMonth=inst.currentMonth=month;
inst.selectedYear=inst.currentYear=year;
this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))
},_clearDate:function(id){var target=$(id);
var inst=this._getInst(target[0]);
this._selectDate(target,"")
},_selectDate:function(id,dateStr){var target=$(id);
var inst=this._getInst(target[0]);
dateStr=(dateStr!=null?dateStr:this._formatDate(inst));
if(inst.input){inst.input.val(dateStr)
}this._updateAlternate(inst);
var onSelect=this._get(inst,"onSelect");
if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])
}else{if(inst.input){inst.input.trigger("change")
}}if(inst.inline){this._updateDatepicker(inst)
}else{this._hideDatepicker();
this._lastInput=inst.input[0];
if(typeof (inst.input[0])!="object"){inst.input.focus()
}this._lastInput=null
}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");
if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");
var date=this._getDate(inst);
var dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));
$(altField).each(function(){$(this).val(dateStr)
})
}},noWeekends:function(date){var day=date.getDay();
return[(day>0&&day<6),""]
},iso8601Week:function(date){var checkDate=new Date(date.getTime());
checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));
var time=checkDate.getTime();
checkDate.setMonth(0);
checkDate.setDate(1);
return Math.floor(Math.round((time-checkDate)/86400000)/7)+1
},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"
}value=(typeof value=="object"?value.toString():value+"");
if(value==""){return null
}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;
shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));
var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;
var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;
var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;
var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;
var year=-1;
var month=-1;
var day=-1;
var doy=-1;
var literal=false;
var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);
if(matches){iFormat++
}return matches
};
var getNumber=function(match){var isDoubled=lookAhead(match);
var size=(match=="@"?14:(match=="!"?20:(match=="y"&&isDoubled?4:(match=="o"?3:2))));
var digits=new RegExp("^\\d{1,"+size+"}");
var num=value.substring(iValue).match(digits);
if(!num){throw"Missing number at position "+iValue
}iValue+=num[0].length;
return parseInt(num[0],10)
};
var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);
for(var i=0;
i<names.length;
i++){if(value.substr(iValue,names[i].length).toLowerCase()==names[i].toLowerCase()){iValue+=names[i].length;
return i+1
}}throw"Unknown name at position "+iValue
};
var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue
}iValue++
};
var iValue=0;
for(var iFormat=0;
iFormat<format.length;
iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false
}else{checkLiteral()
}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");
break;
case"D":getName("D",dayNamesShort,dayNames);
break;
case"o":doy=getNumber("o");
break;
case"m":month=getNumber("m");
break;
case"M":month=getName("M",monthNamesShort,monthNames);
break;
case"y":year=getNumber("y");
break;
case"@":var date=new Date(getNumber("@"));
year=date.getFullYear();
month=date.getMonth()+1;
day=date.getDate();
break;
case"!":var date=new Date((getNumber("!")-this._ticksTo1970)/10000);
year=date.getFullYear();
month=date.getMonth()+1;
day=date.getDate();
break;
case"'":if(lookAhead("'")){checkLiteral()
}else{literal=true
}break;
default:checkLiteral()
}}}if(year==-1){year=new Date().getFullYear()
}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)
}}if(doy>-1){month=1;
day=doy;
do{var dim=this._getDaysInMonth(year,month-1);
if(day<=dim){break
}month++;
day-=dim
}while(true)
}var date=this._daylightSavingAdjust(new Date(year,month-1,day));
if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"
}return date
},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(((1970-1)*365+Math.floor(1970/4)-Math.floor(1970/100)+Math.floor(1970/400))*24*60*60*10000000),formatDate:function(format,date,settings){if(!date){return""
}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;
var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;
var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;
var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;
var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);
if(matches){iFormat++
}return matches
};
var formatNumber=function(match,value,len){var num=""+value;
if(lookAhead(match)){while(num.length<len){num="0"+num
}}return num
};
var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])
};
var output="";
var literal=false;
if(date){for(var iFormat=0;
iFormat<format.length;
iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false
}else{output+=format.charAt(iFormat)
}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);
break;
case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);
break;
case"o":output+=formatNumber("o",(date.getTime()-new Date(date.getFullYear(),0,0).getTime())/86400000,3);
break;
case"m":output+=formatNumber("m",date.getMonth()+1,2);
break;
case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);
break;
case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);
break;
case"@":output+=date.getTime();
break;
case"!":output+=date.getTime()*10000+this._ticksTo1970;
break;
case"'":if(lookAhead("'")){output+="'"
}else{literal=true
}break;
default:output+=format.charAt(iFormat)
}}}}return output
},_possibleChars:function(format){var chars="";
var literal=false;
var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);
if(matches){iFormat++
}return matches
};
for(var iFormat=0;
iFormat<format.length;
iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false
}else{chars+=format.charAt(iFormat)
}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";
break;
case"D":case"M":return null;
case"'":if(lookAhead("'")){chars+="'"
}else{literal=true
}break;
default:chars+=format.charAt(iFormat)
}}}return chars
},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]
},_setDateFromField:function(inst,noDefault){if(inst.input.val()==inst.lastVal){return 
}var dateFormat=this._get(inst,"dateFormat");
var dates=inst.lastVal=inst.input?inst.input.val():null;
var date,defaultDate;
date=defaultDate=this._getDefaultDate(inst);
var settings=this._getFormatConfig(inst);
try{date=this.parseDate(dateFormat,dates,settings)||defaultDate
}catch(event){this.log(event);
dates=(noDefault?"":dates)
}inst.selectedDay=date.getDate();
inst.drawMonth=inst.selectedMonth=date.getMonth();
inst.drawYear=inst.selectedYear=date.getFullYear();
inst.currentDay=(dates?date.getDate():0);
inst.currentMonth=(dates?date.getMonth():0);
inst.currentYear=(dates?date.getFullYear():0);
this._adjustInstDate(inst)
},_getDefaultDate:function(inst){return this._restrictMinMax(inst,this._determineDate(inst,this._get(inst,"defaultDate"),new Date()))
},_determineDate:function(inst,date,defaultDate){var offsetNumeric=function(offset){var date=new Date();
date.setDate(date.getDate()+offset);
return date
};
var offsetString=function(offset){try{return $.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),offset,$.datepicker._getFormatConfig(inst))
}catch(e){}var date=(offset.toLowerCase().match(/^c/)?$.datepicker._getDate(inst):null)||new Date();
var year=date.getFullYear();
var month=date.getMonth();
var day=date.getDate();
var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
var matches=pattern.exec(offset);
while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);
break;
case"w":case"W":day+=parseInt(matches[1],10)*7;
break;
case"m":case"M":month+=parseInt(matches[1],10);
day=Math.min(day,$.datepicker._getDaysInMonth(year,month));
break;
case"y":case"Y":year+=parseInt(matches[1],10);
day=Math.min(day,$.datepicker._getDaysInMonth(year,month));
break
}matches=pattern.exec(offset)
}return new Date(year,month,day)
};
var newDate=(date==null||date===""?defaultDate:(typeof date=="string"?offsetString(date):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):new Date(date.getTime()))));
newDate=(newDate&&newDate.toString()=="Invalid Date"?defaultDate:newDate);
if(newDate){newDate.setHours(0);
newDate.setMinutes(0);
newDate.setSeconds(0);
newDate.setMilliseconds(0)
}return this._daylightSavingAdjust(newDate)
},_daylightSavingAdjust:function(date){if(!date){return null
}date.setHours(date.getHours()>12?date.getHours()+2:0);
return date
},_setDate:function(inst,date,noChange){var clear=!date;
var origMonth=inst.selectedMonth;
var origYear=inst.selectedYear;
var newDate=this._restrictMinMax(inst,this._determineDate(inst,date,new Date()));
inst.selectedDay=inst.currentDay=newDate.getDate();
inst.drawMonth=inst.selectedMonth=inst.currentMonth=newDate.getMonth();
inst.drawYear=inst.selectedYear=inst.currentYear=newDate.getFullYear();
if((origMonth!=inst.selectedMonth||origYear!=inst.selectedYear)&&!noChange){this._notifyChange(inst)
}this._adjustInstDate(inst);
if(inst.input){inst.input.val(clear?"":this._formatDate(inst))
}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
return startDate
},_generateHTML:function(inst){var today=new Date();
today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));
var isRTL=this._get(inst,"isRTL");
var showButtonPanel=this._get(inst,"showButtonPanel");
var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");
var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");
var numMonths=this._getNumberOfMonths(inst);
var showCurrentAtPos=this._get(inst,"showCurrentAtPos");
var stepMonths=this._get(inst,"stepMonths");
var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);
var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
var minDate=this._getMinMaxDate(inst,"min");
var maxDate=this._getMinMaxDate(inst,"max");
var drawMonth=inst.drawMonth-showCurrentAtPos;
var drawYear=inst.drawYear;
if(drawMonth<0){drawMonth+=12;
drawYear--
}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-(numMonths[0]*numMonths[1])+1,maxDate.getDate()));
maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);
while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;
if(drawMonth<0){drawMonth=11;
drawYear--
}}}inst.drawMonth=drawMonth;
inst.drawYear=drawYear;
var prevText=this._get(inst,"prevText");
prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));
var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));
var nextText=this._get(inst,"nextText");
nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));
var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));
var currentText=this._get(inst,"currentText");
var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);
currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));
var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");
var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";
var firstDay=parseInt(this._get(inst,"firstDay"),10);
firstDay=(isNaN(firstDay)?0:firstDay);
var showWeek=this._get(inst,"showWeek");
var dayNames=this._get(inst,"dayNames");
var dayNamesShort=this._get(inst,"dayNamesShort");
var dayNamesMin=this._get(inst,"dayNamesMin");
var monthNames=this._get(inst,"monthNames");
var monthNamesShort=this._get(inst,"monthNamesShort");
var beforeShowDay=this._get(inst,"beforeShowDay");
var showOtherMonths=this._get(inst,"showOtherMonths");
var selectOtherMonths=this._get(inst,"selectOtherMonths");
var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;
var defaultDate=this._getDefaultDate(inst);
var html="";
for(var row=0;
row<numMonths[0];
row++){var group="";
for(var col=0;
col<numMonths[1];
col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));
var cornerClass=" ui-corner-all";
var calender="";
if(isMultiMonth){calender+='<div class="ui-datepicker-group';
if(numMonths[1]>1){switch(col){case 0:calender+=" ui-datepicker-group-first";
cornerClass=" ui-corner-"+(isRTL?"right":"left");
break;
case numMonths[1]-1:calender+=" ui-datepicker-group-last";
cornerClass=" ui-corner-"+(isRTL?"left":"right");
break;
default:calender+=" ui-datepicker-group-middle";
cornerClass="";
break
}}calender+='">'
}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';
var thead=(showWeek?'<th class="ui-datepicker-week-col">'+this._get(inst,"weekHeader")+"</th>":"");
for(var dow=0;
dow<7;
dow++){var day=(dow+firstDay)%7;
thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"
}calender+=thead+"</tr></thead><tbody>";
var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);
if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)
}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;
var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));
var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));
for(var dRow=0;
dRow<numRows;
dRow++){calender+="<tr>";
var tbody=(!showWeek?"":'<td class="ui-datepicker-week-col">'+this._get(inst,"calculateWeek")(printDate)+"</td>");
for(var dow=0;
dow<7;
dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);
var otherMonth=(printDate.getMonth()!=drawMonth);
var unselectable=(otherMonth&&!selectOtherMonths)||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);
tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()==currentDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+inst.id+"',"+printDate.getMonth()+","+printDate.getFullYear()+', this);return false;"')+">"+(otherMonth&&!showOtherMonths?"&#xa0;":(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()==currentDate.getTime()?" ui-state-active":"")+(otherMonth?" ui-priority-secondary":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";
printDate.setDate(printDate.getDate()+1);
printDate=this._daylightSavingAdjust(printDate)
}calender+=tbody+"</tr>"
}drawMonth++;
if(drawMonth>11){drawMonth=0;
drawYear++
}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");
group+=calender
}html+=group
}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");
inst._keyEvent=false;
return html
},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var changeMonth=this._get(inst,"changeMonth");
var changeYear=this._get(inst,"changeYear");
var showMonthAfterYear=this._get(inst,"showMonthAfterYear");
var html='<div class="ui-datepicker-title">';
var monthHtml="";
if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span>"
}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);
var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);
monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+inst.id+"', this, 'M');\" onclick=\"DP_jQuery_"+dpuuid+".datepicker._clickMonthYear('#"+inst.id+"');\">";
for(var month=0;
month<12;
month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"
}}monthHtml+="</select>"
}if(!showMonthAfterYear){html+=monthHtml+(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")
}inst.yearshtml="";
if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"
}else{var years=this._get(inst,"yearRange").split(":");
var thisYear=new Date().getFullYear();
var determineYear=function(value){var year=(value.match(/c[+-].*/)?drawYear+parseInt(value.substring(1),10):(value.match(/[+-].*/)?thisYear+parseInt(value,10):parseInt(value,10)));
return(isNaN(year)?thisYear:year)
};
var year=determineYear(years[0]);
var endYear=Math.max(year,determineYear(years[1]||""));
year=(minDate?Math.max(year,minDate.getFullYear()):year);
endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);
inst.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+dpuuid+".datepicker._clickMonthYear('#"+inst.id+"');\">";
for(;
year<=endYear;
year++){inst.yearshtml+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"
}inst.yearshtml+="</select>";
if(!$.browser.mozilla){html+=inst.yearshtml;
inst.yearshtml=null
}else{html+='<select class="ui-datepicker-year"><option value="'+drawYear+'" selected="selected">'+drawYear+"</option></select>"
}}html+=this._get(inst,"yearSuffix");
if(showMonthAfterYear){html+=(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")+monthHtml
}html+="</div>";
return html
},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);
var month=inst.drawMonth+(period=="M"?offset:0);
var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);
var date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));
inst.selectedDay=date.getDate();
inst.drawMonth=inst.selectedMonth=date.getMonth();
inst.drawYear=inst.selectedYear=date.getFullYear();
if(period=="M"||period=="Y"){this._notifyChange(inst)
}},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");
var maxDate=this._getMinMaxDate(inst,"max");
var newDate=(minDate&&date<minDate?minDate:date);
newDate=(maxDate&&newDate>maxDate?maxDate:newDate);
return newDate
},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");
if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])
}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");
return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))
},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null)
},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate()
},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()
},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);
var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));
if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))
}return this._isInRange(inst,date)
},_isInRange:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");
var maxDate=this._getMinMaxDate(inst,"max");
return((!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime()))
},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");
shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));
return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}
},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;
inst.currentMonth=inst.selectedMonth;
inst.currentYear=inst.selectedYear
}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))
}});
function extendRemove(target,props){$.extend(target,props);
for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]
}}return target
}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))
}$.fn.datepicker=function(options){if(!this.length){return this
}if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);
$.datepicker.initialized=true
}var otherArgs=Array.prototype.slice.call(arguments,1);
if(typeof options=="string"&&(options=="isDisabled"||options=="getDate"||options=="widget")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))
}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))
}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)
})
};
$.datepicker=new Datepicker();
$.datepicker.initialized=false;
$.datepicker.uuid=new Date().getTime();
$.datepicker.version="1.8.11";
window["DP_jQuery_"+dpuuid]=$
})(jQuery);
(function(E){E.fn.ThreeDots=function(H){var G=this;
if((typeof H=="object")||(H==undefined)){E.fn.ThreeDots.the_selected=this;
var G=E.fn.ThreeDots.update(H)
}return G
};
E.fn.ThreeDots.update=function(U){var K,T=null;
var M,J,S,Q,O;
var L,I;
var R,H,N;
if((typeof U=="object")||(U==undefined)){E.fn.ThreeDots.c_settings=E.extend({},E.fn.ThreeDots.settings,U);
var P=E.fn.ThreeDots.c_settings.max_rows;
if(P<1){return E.fn.ThreeDots.the_selected
}var G=false;
jQuery.each(E.fn.ThreeDots.c_settings.valid_delimiters,function(V,W){if(((new String(W)).length==1)){G=true
}});
if(G==false){return E.fn.ThreeDots.the_selected
}E.fn.ThreeDots.the_selected.each(function(){K=E(this);
if(E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).length==0){return true
}L=E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).get(0);
var Y=A(K,true);
var X=E(L).text();
D(K,L,Y);
var V=E(L).text();
if((H=E(K).attr("threedots"))!=undefined){E(L).text(H);
E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).remove()
}R=E(L).text();
if(R.length<=0){R=""
}E(K).attr("threedots",X);
if(A(K,Y)>P){curr_ellipsis=E(K).append('<span style="white-space:nowrap" class="'+E.fn.ThreeDots.c_settings.e_span_class+'">'+E.fn.ThreeDots.c_settings.ellipsis_string+"</span>");
while(A(K,Y)>P){I=B(E(L).text());
E(L).text(I.updated_string);
T=I.word;
N=I.del;
if(N==null){break
}}if(T!=null){var W=C(K,Y);
if((A(K,Y)<=P-1)||(W)||(!E.fn.ThreeDots.c_settings.whole_word)){R=E(L).text();
if(I.del!=null){E(L).text(R+N)
}if(A(K,Y)>P){E(L).text(R)
}else{E(L).text(E(L).text()+T);
if((A(K,Y)>P+1)||(!E.fn.ThreeDots.c_settings.whole_word)||(V==T)||W){while((A(K,Y)>P)){if(E(L).text().length>0){E(L).text(E(L).text().substr(0,E(L).text().length-1))
}else{break
}}}}}}}if(X==E(E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).get(0)).text()){E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).remove()
}else{if((E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class)).length>0){if(E.fn.ThreeDots.c_settings.alt_text_t){E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).attr("title",X)
}if(E.fn.ThreeDots.c_settings.alt_text_e){E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).attr("title",X)
}}}})
}return E.fn.ThreeDots.the_selected
};
E.fn.ThreeDots.settings={valid_delimiters:[" ",",","."],ellipsis_string:"...",max_rows:2,text_span_class:"ellipsis_text",e_span_class:"threedots_ellipsis",whole_word:true,allow_dangle:false,alt_text_e:false,alt_text_t:false};
function C(K,H){if(E.fn.ThreeDots.c_settings.allow_dangle==true){return false
}var L=E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).get(0);
var G=E(L).css("display");
var I=A(K,H);
E(L).css("display","none");
var J=A(K,H);
E(L).css("display",G);
if(I>J){return true
}else{return false
}}function A(I,J){var G=typeof J;
if((G=="object")||(G==undefined)){return E(I).height()/J.lh
}else{if(G=="boolean"){var H=F(E(I));
return{lh:H}
}}}function B(K){var J;
var I=E.fn.ThreeDots.c_settings.valid_delimiters;
K=jQuery.trim(K);
var G=-1;
var H=null;
var L=null;
jQuery.each(I,function(M,O){if(((new String(O)).length!=1)||(O==null)){return false
}var N=K.lastIndexOf(O);
if(N!=-1){if(N>G){G=N;
H=K.substring(G+1);
L=O
}}});
if(G>0){return{updated_string:jQuery.trim(K.substring(0,G)),word:H,del:L}
}else{return{updated_string:"",word:jQuery.trim(K),del:null}
}}function F(H){E(H).append("<div id='temp_ellipsis_div' style='position:absolute; visibility:hidden'>H</div>");
var G=E("#temp_ellipsis_div").height();
E("#temp_ellipsis_div").remove();
return G
}function D(K,L,M){var Q=E(L).text();
var I=Q;
var O=E.fn.ThreeDots.c_settings.max_rows;
var H,G,N,R,J;
var P;
if(A(K,M)<=O){return 
}else{P=0;
curr_length=I.length;
curr_middle=Math.floor((curr_length-P)/2);
H=Q.substring(P,P+curr_middle);
G=Q.substring(P+curr_middle);
while(curr_middle!=0){E(L).text(H);
if(A(K,M)<=(O)){J=Math.floor(G.length/2);
N=G.substring(0,J);
P=H.length;
I=H+N;
curr_length=I.length;
E(L).text(I)
}else{I=H;
curr_length=I.length
}curr_middle=Math.floor((curr_length-P)/2);
H=Q.substring(0,P+curr_middle);
G=Q.substring(P+curr_middle)
}}}})(jQuery);
jQuery(function($){var CalendarPlugin={i18nMessages:null,dialogSequence:0,ERROR_CLASS_EVENT_UPDATE:"error-event-update",ERROR_CLASS_EVENT_DELETE:"error-event-delete",ERROR_CLASS_SUB_CALENDAR_LIST:"error-subcalendar-refresh",ERROR_CLASS_SUB_CALENDAR_DELETE:"error-subcalendar-delete",ERROR_CLASS_SUB_CALENDAR_UPDATE:"error-subcalendar-update",ERROR_CLASS_SUB_CALENDAR_WATCH:"error-subcalendar-watch",ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS:"error-subcalendar-list-events-",ERROR_CLASS_SUB_CALENDAR_TOGGLE_EVENTS:"error-subcalendar-toggle-events-",ERROR_CLASS_CONFIG_UPDATE:"error-config-update",ERROR_CLASS_PRIVATE_URL:"error-private-url",ERROR_CLASS_RESET_PRIVATE_URLS:"error-reset-private-urls",SUB_CALENDAR_TYPE_ORDER:{},PREF_LAST_ALL_DAY_USED:"pref-all-day-event-default",init:function(calendarDiv){$.each(window.TeamCalendars.subcalendar,function(type,subCalendarTypeHandler){CalendarPlugin.SUB_CALENDAR_TYPE_ORDER[subCalendarTypeHandler.getTypeName(CalendarPlugin,calendarDiv)]=subCalendarTypeHandler.getWeight()
});
var eventDropOrResizeCallback=function(_calendarDiv,event,dayDelta,minuteDelta,allDay,revertFunc){if(!event.end&&!allDay){event.end=new Date(event.start.getTime()+(1000*60*60*2))
}CalendarPlugin.setProcessingEvent(_calendarDiv,true);
CalendarPlugin.setSuppressEventToolTip(calendarDiv,true);
CalendarPlugin.updateEvent(_calendarDiv,(function(){var data={subCalendarId:event.subCalendarId,uid:event.id,originalStartDate:event.originalStart||"",what:event.title,url:event.url,dragAndDropUpdate:true,start:$.fullCalendar.formatDate(event.start,"ddMMyyyyHHmm"),end:$.fullCalendar.formatDate(event.end||event.start,"ddMMyyyyHHmm"),allDayEvent:allDay,where:event.where,description:event.description,freq:event.recur?event.recur.freq:"",byday:event.recur?event.recur.byDay:"",interval:event.recur?event.recur.interval:"",until:event.recur?event.recur.localizedUntil||"":"",recurrenceId:event.recurId||"",editAllInRecurrenceSeries:"false"};
if(CalendarPlugin.getSubCalendar(calendarDiv,event.subCalendarId).eventInviteesSupported){data.person=$.map(event.invitees||[],function(invitee){return invitee.id
})
}return data
})(),function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(_calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_EVENT_UPDATE);
revertFunc();
CalendarPlugin.setSuppressEventToolTip(_calendarDiv,false);
CalendarPlugin.setProcessingEvent(_calendarDiv,false)
},function(responseEntity){if(responseEntity.success){CalendarPlugin.setGenericErrors(_calendarDiv,null,CalendarPlugin.ERROR_CLASS_EVENT_UPDATE);
var updatedEvent=responseEntity.event;
$.each(CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("clientEvents",event.id),function(eventIdx,event){event.localizedStartDate=updatedEvent.localizedStartDate;
event.localizedStartTime=updatedEvent.localizedStartTime;
event.localizedEndDate=updatedEvent.localizedEndDate;
event.localizedEndTime=updatedEvent.localizedEndTime;
event.recurId=updatedEvent.recurId;
event.invitees=updatedEvent.invitees;
event.iconUrl=updatedEvent.iconUrl;
event.confluenceFormattedStartDate=updatedEvent.confluenceFormattedStartDate;
event.expandedDates=updatedEvent.expandedDates
})
}else{CalendarPlugin.setGenericErrors(_calendarDiv,CalendarPlugin.getText(_calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_EVENT_UPDATE);
revertFunc()
}CalendarPlugin.setSuppressEventToolTip(_calendarDiv,false);
CalendarPlugin.setProcessingEvent(_calendarDiv,false)
})
};
var fullCalendarOptions={calendarDiv:calendarDiv,calendarPlugin:CalendarPlugin,AJS:AJS,defaultView:CalendarPlugin.getParameter(calendarDiv,"defaultView")||"month",year:parseInt(CalendarPlugin.getParameter(calendarDiv,"startingYear")),month:parseInt(CalendarPlugin.getParameter(calendarDiv,"startingMonth")),date:parseInt(CalendarPlugin.getParameter(calendarDiv,"startingDay")),header:false,firstDay:CalendarPlugin.getParameter(calendarDiv,"firstDayOfWeek"),viewDisplay:function(view){CalendarPlugin.hideInlineAuiDialogs();
if(view.name==="basicDay"){CalendarPlugin.getCalendarPanel(calendarDiv).addClass("borderless")
}else{CalendarPlugin.getCalendarPanel(calendarDiv).removeClass("borderless")
}if(CalendarPlugin.isCalendarInEditMode(calendarDiv)){var lastSelectedView=calendarDiv.data("lastSelectedView");
if(!lastSelectedView){calendarDiv.data("lastSelectedView",view.name)
}else{if(view.name!==lastSelectedView){calendarDiv.data("lastSelectedView",view.name);
$.ajax({cache:false,data:{view:view.name},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE)
},success:function(){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE)
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/view.json")})
}}}},allDayText:CalendarPlugin.getText(calendarDiv,"calendar3.allday"),firstHour:8,columnFormat:{week:"ddd d"},titleFormat:{week:"MMMM"},buttonText:{today:CalendarPlugin.getText(calendarDiv,"calendar3.button.today"),month:CalendarPlugin.getText(calendarDiv,"calendar3.button.month"),week:CalendarPlugin.getText(calendarDiv,"calendar3.button.week"),day:CalendarPlugin.getText(calendarDiv,"calendar3.button.list")},monthNames:[CalendarPlugin.getText(calendarDiv,"calendar3.month.long.january"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.february"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.march"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.april"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.may"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.june"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.july"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.august"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.september"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.october"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.november"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.december")],monthNamesShort:[CalendarPlugin.getText(calendarDiv,"calendar3.month.short.january"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.february"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.march"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.april"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.may"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.june"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.july"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.august"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.september"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.october"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.november"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.december")],dayNames:[CalendarPlugin.getText(calendarDiv,"calendar3.day.long.sunday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.monday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.tuesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.wednesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.thursday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.friday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.saturday")],dayNamesShort:[CalendarPlugin.getText(calendarDiv,"calendar3.day.short.sunday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.monday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.tuesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.wednesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.thursday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.friday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.saturday")],dayClick:function(date,allDay,jsEvent){if($(".event-details-container:visible").length===0){if(CalendarPlugin.getSubCalendarsWhichEventsUpdatable(calendarDiv).length){CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,{start:date,localizedStartTime:allDay?CalendarPlugin.getDefaultStartTime(calendarDiv):null,localizedEndTime:allDay?CalendarPlugin.getDefaultEndTime(calendarDiv):null,allDay:(function(){if(CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("getView").name==="month"){return(calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED)||allDay.toString())==="true"
}return allDay
})()})
}}else{jsEvent.stopPropagation();
CalendarPlugin.hideInlineAuiDialogs()
}},eventClick:function(event,jsEvent){CalendarPlugin.setEventTooltipVisible(calendarDiv);
if(jsEvent.shiftKey){if(CalendarPlugin.isEventEditable(calendarDiv,event)){CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,event)
}return false
}if((jsEvent.ctrlKey||jsEvent.metaKey)&&event.url){window.location=event.url;
return false
}CalendarPlugin.getEventDetailsDialog(calendarDiv,event,jsEvent).show(jsEvent);
return false
},eventRender:function(event,eventDiv,view){eventDiv.mousemove(function(jsEvent){eventDiv.data("mouseCoords",{pageX:jsEvent.pageX,pageY:jsEvent.pageY})
}).hover(function(){setTimeout(function(){var mouseCoords=eventDiv.data("mouseCoords");
if(!CalendarPlugin.isEventToolTipSuppressed(calendarDiv)&&mouseCoords){CalendarPlugin.setEventTooltipVisible(calendarDiv,event,mouseCoords,true)
}},5000)
},function(){eventDiv.removeData("mouseCoords");
CalendarPlugin.setEventTooltipVisible(calendarDiv);
CalendarPlugin.setSuppressEventToolTip(calendarDiv,false)
});
$(".fc-event-time, .fc-event-title",eventDiv).css("color",eventDiv.css("color"));
if("agendaWeek"===view.name){eventDiv.parent().addClass(event.allDay?"fc-agenda-head":"fc-agenda-body");
if(!event.allDay){$(".fc-event-inner",eventDiv).css({"border-right-color":event.secondaryBorderColor||event.borderColor,"border-bottom-color":event.secondaryBorderColor||event.borderColor,"border-left-color":event.secondaryBorderColor||event.borderColor})
}}if("month"===view.name){$(".fc-event-title",eventDiv).text(event.shortTitle||event.title)
}},eventDrop:function(event,dayDelta,minuteDelta,allDay,revertFunc){if(CalendarPlugin.isEventEditable(calendarDiv,event)&&!CalendarPlugin.isProcessingEvent(calendarDiv)){eventDropOrResizeCallback(calendarDiv,event,dayDelta,minuteDelta,allDay,revertFunc)
}else{revertFunc()
}},eventDragStart:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,true);
CalendarPlugin.setEventTooltipVisible(calendarDiv);
CalendarPlugin.hideInlineAuiDialogs()
},eventDragEnd:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,false)
},eventResize:function(event,dayDelta,minuteDelta,revertFunc){if(CalendarPlugin.isEventEditable(calendarDiv,event)&&!CalendarPlugin.isProcessingEvent(calendarDiv)){eventDropOrResizeCallback(calendarDiv,event,dayDelta,minuteDelta,event.allDay,revertFunc)
}else{revertFunc()
}},eventResizeStart:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,true);
CalendarPlugin.setEventTooltipVisible(calendarDiv);
CalendarPlugin.hideInlineAuiDialogs()
},eventResizeStop:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,false)
},loading:function(isLoading){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,isLoading)
},selectable:true,selectHelper:true,select:function(startDate,endDate,allDay,jsEvent){if(!$(".event-details-container:visible").length&&CalendarPlugin.getSubCalendarsWhichEventsUpdatable(calendarDiv).length){CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,{start:startDate,end:endDate,localizedStartTime:allDay?CalendarPlugin.getDefaultStartTime(calendarDiv):null,localizedEndTime:allDay?CalendarPlugin.getDefaultEndTime(calendarDiv):null,allDay:(function(){if(CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("getView").name==="month"){return(calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED)||allDay.toString())==="true"
}return allDay
})()})
}else{if(jsEvent){jsEvent.stopPropagation()
}CalendarPlugin.hideInlineAuiDialogs()
}}};
if(CalendarPlugin.getParameter(calendarDiv,"width")){calendarDiv.parent().css("width",CalendarPlugin.getParameter(calendarDiv,"width")+"px")
}if(CalendarPlugin.getParameter(calendarDiv,"height")){fullCalendarOptions.height=parseInt(CalendarPlugin.getParameter(calendarDiv,"height"))
}else{fullCalendarOptions.aspectRatio=1.9
}this.getCalendarPanel(calendarDiv).fullCalendar(fullCalendarOptions);
this.initCalendarDiv(calendarDiv)
},hideInlineAuiDialogs:function(){$("body").trigger("click")
},isEventToolTipSuppressed:function(calendarDiv){return calendarDiv.data("shouldSuppressEventToolTip")
},setSuppressEventToolTip:function(calendarDiv,shouldSuppressEventToolTip){calendarDiv.data("shouldSuppressEventToolTip",shouldSuppressEventToolTip)
},setEventTooltipVisible:function(calendarDiv,event,jsEvent,visible){if(visible&&(this.isEventEditable(calendarDiv,event)||event.url)){var toolTip=$(".event-tooltip",calendarDiv).length?$(".event-tooltip",calendarDiv):$(document.createElement("div")).addClass("event-tooltip").appendTo(calendarDiv);
$("p",toolTip).remove();
if(this.isEventEditable(calendarDiv,event)){toolTip.append($(document.createElement("p")).text(CalendarPlugin.getText(calendarDiv,"calendar3.shiftclickeventotedit.tooltip")))
}if(event.url){toolTip.append($(document.createElement("p")).addClass("follow-hint").text(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.ctrlclicktofollowlink.tooltip"),event.url)))
}toolTip.css({left:jsEvent.pageX+"px",top:(jsEvent.pageY+5)+"px"}).show()
}else{$(".event-tooltip",calendarDiv).hide()
}},getText:function(calendarDiv,i18nKey){return this.getI18nMessages(calendarDiv)[i18nKey]
},getI18nMessages:function(calendarDiv){if(!this.i18nMessages){this.i18nMessages={};
$("fieldset.i18n-messages input",calendarDiv).each(function(){CalendarPlugin.i18nMessages[this.name]=this.value
})
}return this.i18nMessages
},getParameter:function(calendarDiv,configKey){return this.getParameters(calendarDiv)[configKey]
},getParameters:function(calendarDiv){if(!calendarDiv.data("parameters")){var parameters={};
$("fieldset.parameters input",calendarDiv).each(function(){if(parameters[this.name]){if($.isArray(parameters[this.name])){parameters[this.name].push(this.value)
}else{parameters[this.name]=[parameters[this.name],this.value]
}}else{parameters[this.name]=this.value
}});
calendarDiv.data("parameters",parameters)
}return calendarDiv.data("parameters")
},setParameter:function(calendarDiv,configKey,value){calendarDiv.removeData("parameters");
var paramsFieldset=$("fieldset.parameters",calendarDiv);
$("input[name='"+configKey+"']",paramsFieldset).remove();
if($.isArray(value)){$.each(value,function(idx,aValue){$("<input type='hidden'/>").attr("name",configKey).val(aValue).appendTo(paramsFieldset)
})
}else{$("<input type='hidden'/>").attr("name",configKey).val(value).appendTo(paramsFieldset)
}},getCalendarPanel:function(calendarDiv){return $(".calendar-panel .calendar",calendarDiv)
},setEventEditDialogVisible:function(calendarDiv,visible,event){var eventDialog=calendarDiv.data("eventEditDialog")||this.createEventEditDialog(calendarDiv);
calendarDiv.data("eventEditDialog",eventDialog);
if(visible){var currentPanel=eventDialog.getCurrentPanel();
currentPanel.page.header.text(event.title||CalendarPlugin.getText(calendarDiv,"calendar3.heading.createevent"));
currentPanel.button.text(event.title||CalendarPlugin.getText(calendarDiv,"calendar3.heading.createevent"));
var dialogContent=currentPanel.body;
var eventCalendarSelect=this.getEventEditDialogSelect(dialogContent,"calendar").unbind("change");
var optGroups={};
var optGroupsArray=[];
var selectedSubCalendarId=$("option:selected",eventCalendarSelect).val();
eventCalendarSelect.children().remove();
$.each(CalendarPlugin.getSubCalendarsWhichEventsUpdatable(calendarDiv),function(_subCalendarIdx,_aSubCalendar){optGroups[_aSubCalendar.typeName]=optGroups[_aSubCalendar.typeName]||$(document.createElement("optgroup")).attr("label",_aSubCalendar.typeName);
optGroups[_aSubCalendar.typeName].append($(document.createElement("option")).attr("value",_aSubCalendar.id).text(_aSubCalendar.name))
});
$.each(optGroups,function(optGroupName,optGroup){optGroupsArray.push(optGroup)
});
optGroupsArray.sort(function(optGroupLeft,optGroupRight){return CalendarPlugin.SUB_CALENDAR_TYPE_ORDER[optGroupLeft.attr("label")]-CalendarPlugin.SUB_CALENDAR_TYPE_ORDER[optGroupRight.attr("label")]
});
$.each(optGroupsArray,function(idx,optGroup){optGroup.appendTo(eventCalendarSelect)
});
$("option",eventCalendarSelect).each(function(){var anOption=$(this);
if(anOption.val()===(event.subCalendarId||selectedSubCalendarId)){anOption.attr("selected","selected");
return false
}});
eventCalendarSelect.change(function(){var subCalendar=CalendarPlugin.getSubCalendar(calendarDiv,$("option:selected",this).val());
var subCalendarType=subCalendar.subscriptionType||subCalendar.type;
var eventSubCalendarType=(function(){if(event.id){var eventSubCalendar=CalendarPlugin.getSubCalendar(calendarDiv,event.subCalendarId);
return eventSubCalendar.subscriptionType||eventSubCalendar.type
}return""
})();
$(".event-type",dialogContent).removeClass().addClass("event-type subcalendar-"+subCalendarType+(subCalendar.eventInviteesSupported?" with-invites":""));
var inviteeList=$(".invitees",dialogContent).empty().removeClass("boxed").addClass("hidden");
if(event.id&&subCalendar.eventInviteesSupported){$.each(event.invitees||[],function(inviteeIdx,invitee){if(inviteeIdx==3){inviteeList.addClass("boxed")
}$(document.createElement("li")).addClass("invitee").attr("title",invitee.displayName+" ("+invitee.id+")").append($(document.createElement("div")).addClass("invitee-left").append($(document.createElement("img")).attr("src",invitee.avatarIconUrl)).append($(document.createElement("span")).addClass("invitee-name-display").text(invitee.displayName).append($(document.createElement("span")).addClass("user-name").text("("+invitee.id+")")))).append($(document.createElement("div")).addClass("invitee-right").append($(document.createElement("a")).addClass("delete-invitee").attr("title",CalendarPlugin.getText(calendarDiv,"delete.name")).click(function(){$(this).closest("li").remove();
if(!$("li",inviteeList).length){inviteeList.addClass("hidden")
}CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
}))).append($(document.createElement("div")).addClass("clear")).data("entity",{id:invitee.id,displayName:invitee.displayName}).appendTo(inviteeList)
});
if(event.invitees&&event.invitees.length){inviteeList.removeClass("hidden")
}}CalendarPlugin.getEventEditDialogField(dialogContent,"who").val("");
CalendarPlugin.getEventEditDialogField(dialogContent,"what").val(event.id&&subCalendarType==="people"&&subCalendarType!==eventSubCalendarType?"":event.title||"");
$("."+(subCalendarType==="people"?"who":"what")+"-error",dialogContent).empty();
var startTimeField=CalendarPlugin.getEventEditDialogField(dialogContent,"startTime");
var endTimeField=CalendarPlugin.getEventEditDialogField(dialogContent,"endTime");
if(event.allDay){startTimeField.val("").addClass("hidden");
endTimeField.val("").addClass("hidden");
CalendarPlugin.getEventEditDialogField(dialogContent,"allDayEvent").attr("checked","checked")
}else{startTimeField.val(event.localizedStartTime||function(){CalendarPlugin.formatDate(calendarDiv,event.start,"time",function(value){startTimeField.val(value)
});
return CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")
}).removeClass("hidden");
endTimeField.val(event.localizedEndTime||function(){CalendarPlugin.formatDate(calendarDiv,event.end||new Date(event.start.getTime()+3600000),"time",function(value){endTimeField.val(value)
});
return CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")
}).removeClass("hidden");
CalendarPlugin.getEventEditDialogField(dialogContent,"allDayEvent").removeAttr("checked","checked")
}CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
}).trigger("change");
this.getEventEditDialogField(dialogContent,"uid").val(event.id||"");
this.getEventEditDialogField(dialogContent,"originalStartDate").val(event.originalStart||"");
this.getEventEditDialogField(dialogContent,"originalSubCalendarId").val(event.subCalendarId||"");
var startDateField=this.getEventEditDialogField(dialogContent,"startDate");
startDateField.datepicker("option","defaultDate",event.start);
startDateField.datepicker("setDate",event.start);
startDateField.val(event.localizedStartDate||function(){CalendarPlugin.formatDate(calendarDiv,event.start,"date",function(value){startDateField.val(value)
});
return CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")
});
var endDateField=this.getEventEditDialogField(dialogContent,"endDate");
endDateField.datepicker("option","defaultDate",event.end||event.start);
endDateField.datepicker("setDate",event.end||event.start);
endDateField.val(event.localizedEndDate||function(){CalendarPlugin.formatDate(calendarDiv,event.end||event.start,"date",function(value){endDateField.val(value)
});
return CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")
});
this.getEventEditDialogField(dialogContent,"recurrenceId").val(event.recurId||"");
var freqInput=this.getEventEditDialogField(dialogContent,"freq").val("");
var byDayInput=this.getEventEditDialogField(dialogContent,"byday").val("");
var freqSelect=this.getEventEditDialogSelect(dialogContent,"freq-select");
var intervalInput=this.getEventEditDialogField(dialogContent,"interval").val("1").attr("readonly","readonly");
var intervalContainer=intervalInput.closest(".interval-container");
$("option",freqSelect.attr("disabled","disabled")).removeAttr("selected");
var editThisInstanceOnly=this.getEventEditDialogField(dialogContent,"editthisinstanceonly");
var editThisInstanceOnlyContainer=editThisInstanceOnly.closest(".edit-this-instance-only-container");
var recurEndsContainer=$(".recur-ends",dialogContent);
var recurEndRadioButtons=this.getEventEditDialogField(dialogContent,"recur-end").removeAttr("checked").attr("disabled","disabled");
var recurUntilInput=this.getEventEditDialogField(dialogContent,"until").attr("disabled","disabled").attr("readonly","readonly").val("");
recurUntilInput.datepicker("disable");
if(event.recur){eventCalendarSelect.attr("disabled","disabled");
editThisInstanceOnlyContainer.removeClass("hidden");
editThisInstanceOnly.attr("checked","checked");
var freq=event.recur.freq;
var byDay=event.recur.byDay;
var interval=event.recur.interval;
recurEndsContainer.removeClass("hidden");
freqInput.val(freq||"");
byDayInput.val(byDay||"");
if(byDay){$("option[value='WEEKLY-BYDAY']",freqSelect).attr("selected","selected");
intervalContainer.addClass("hidden")
}else{$("option[value='"+freq+"']",freqSelect).attr("selected","selected");
intervalContainer.removeClass("hidden");
intervalInput.val(interval||"1")
}var repeatUntil=event.recur.until;
if(repeatUntil){$(recurEndRadioButtons[1]).attr("checked","checked");
recurUntilInput.removeAttr("disabled");
var repeatUntilDate=$.fullCalendar.parseDate(repeatUntil);
recurUntilInput.datepicker("setDate",repeatUntilDate);
recurUntilInput.datepicker("option","defaultDate",repeatUntilDate);
recurUntilInput.val(event.recur.localizedUntil||function(){CalendarPlugin.formatDate(calendarDiv,repeatUntilDate,"date",function(value){recurUntilInput.val(value)
});
return CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")
})
}else{$(recurEndRadioButtons[0]).attr("checked","checked")
}}else{eventCalendarSelect.removeAttr("disabled");
editThisInstanceOnlyContainer.addClass("hidden");
$("option:first",freqSelect.removeAttr("disabled")).attr("selected","selected");
intervalContainer.addClass("hidden");
recurEndsContainer.addClass("hidden");
$(recurEndRadioButtons[0]).attr("checked","checked")
}this.getEventEditDialogField(dialogContent,"where").val(event.where||"");
this.getEventEditDialogField(dialogContent,"url").val(event.url||"");
$(".url-suggestions",dialogContent).addClass("hidden").find(".aui-dropdown").empty();
this.getEventEditDialogTextArea(dialogContent,"description").val($(document.createElement("div")).html(event.description||"").text()||"");
this.getEventEditDialogField(dialogContent,"one-line-description").val($(document.createElement("div")).html(event.description||"").text()||"");
if(event.id){$(".delete-event",dialogContent).removeClass("hidden")
}else{$(".delete-event",dialogContent).addClass("hidden")
}CalendarPlugin.setFieldErrors(dialogContent,null);
CalendarPlugin.showDialogInUpdatedHeight(eventDialog);
$(".invitee-left",dialogContent).ThreeDots({max_rows:1,text_span_class:"invitee-name-display",whole_word:false});
$("input[name='what']:visible, input[name='who']:visible",dialogContent).focus()
}else{eventDialog.hide()
}},createEventEditDialog:function(calendarDiv){var eventDialog=new AJS.Dialog(580,550);
eventDialog.addHeader("");
eventDialog.addPanel("",AJS.template.load("event-edit-template-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"calendar-dialog-panel");
var dialogContent=eventDialog.getCurrentPanel().body;
var inviteeList=$(".invitees",dialogContent);
$("input[name='who']",dialogContent).bind("selected.autocomplete-user",function(e,selection){var selectedUserName=selection.content.username;
var userAlreadyAdded=$(".invitee",inviteeList).filter(function(){return $(this).data("entity").id===selectedUserName
}).length>0;
if(!userAlreadyAdded){if($("li",inviteeList).length==3){inviteeList.addClass("boxed")
}inviteeList.prepend($(document.createElement("li")).addClass("invitee").attr("title",selection.content.title+" ("+selectedUserName+")").append($(document.createElement("div")).addClass("invitee-left").append($(document.createElement("img")).attr("src",selection.content.thumbnailLink.href)).append($(document.createElement("span")).addClass("invitee-name-display").text(selection.content.title).append($(document.createElement("span")).addClass("user-name").text("("+selectedUserName+")")))).append($(document.createElement("div")).addClass("invitee-right").append($(document.createElement("a")).addClass("delete-invitee").attr("title",CalendarPlugin.getText(calendarDiv,"delete.name")).click(function(){$(this).closest("li").remove();
if(!$("li",inviteeList).length){inviteeList.addClass("hidden")
}CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
}))).append($(document.createElement("div")).addClass("clear")).data("entity",{id:selectedUserName,displayName:selection.content.title})).removeClass("hidden");
CalendarPlugin.showDialogInUpdatedHeight(eventDialog);
$(".invitee-left",inviteeList).filter(function(){return !$(this).attr("threedots")
}).ThreeDots({max_rows:1,text_span_class:"invitee-name-display",whole_word:false})
}$(this).val("").focus();
var whoErrorDiv=$(".who-error",dialogContent);
if(whoErrorDiv.children().length){whoErrorDiv.empty();
CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
}});
$(".datepicker-field",dialogContent).each(function(){var datePicker=$(this);
datePicker.datepicker({dateFormat:"yymmdd",dayNames:[CalendarPlugin.getText(calendarDiv,"calendar3.day.long.sunday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.monday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.tuesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.wednesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.thursday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.friday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.long.saturday")],dayNamesMin:[CalendarPlugin.getText(calendarDiv,"calendar3.day.short.sunday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.monday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.tuesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.wednesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.thursday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.friday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.saturday")],dayNamesShort:[CalendarPlugin.getText(calendarDiv,"calendar3.day.short.sunday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.monday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.tuesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.wednesday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.thursday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.friday"),CalendarPlugin.getText(calendarDiv,"calendar3.day.short.saturday")],firstDay:CalendarPlugin.getParameter(calendarDiv,"firstDayOfWeek"),monthNames:[CalendarPlugin.getText(calendarDiv,"calendar3.month.long.january"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.february"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.march"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.april"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.may"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.june"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.july"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.august"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.september"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.october"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.november"),CalendarPlugin.getText(calendarDiv,"calendar3.month.long.december")],monthNamesShort:[CalendarPlugin.getText(calendarDiv,"calendar3.month.short.january"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.february"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.march"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.april"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.may"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.june"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.july"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.august"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.september"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.october"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.november"),CalendarPlugin.getText(calendarDiv,"calendar3.month.short.december")],beforeShow:function(input){var datePicker=$(input);
datePicker.data("currentDate",datePicker.datepicker("getDate"))
},onSelect:function(dateText){var selectedDate=$.datepicker.parseDate("yymmdd",dateText);
if(datePicker.hasClass("start")){var endDatePicker=$(".end",dialogContent);
var oldStartDate=datePicker.data("currentDate");
var newEndDate=new Date(endDatePicker.datepicker("getDate").getTime()-(oldStartDate.getTime()-selectedDate.getTime()));
endDatePicker.datepicker("option","defaultDate",newEndDate);
endDatePicker.datepicker("setDate",newEndDate);
CalendarPlugin.formatDate(calendarDiv,newEndDate,"date",function(formattedDate){endDatePicker.val(formattedDate)
})
}datePicker.val(CalendarPlugin.getText(calendarDiv,"calendar3.formattingdate")).datepicker("option","defaultDate",selectedDate);
CalendarPlugin.formatDate(calendarDiv,selectedDate,"date",function(formattedDate){datePicker.val(formattedDate)
})
},showAnim:""})
});
var timeSuggestions=this.getParameter(calendarDiv,"timeSuggestion");
this.makeAutoCompleteSearch(calendarDiv,$("input[name='url']",dialogContent),{type:["page","blogpost"]},$(".url-suggestions",dialogContent),function(searchField,suggestionLink){searchField.val(suggestionLink.attr("href"))
});
var startTimeField=$("input[name='startTime']",dialogContent).autocomplete({source:timeSuggestions,minLength:2});
startTimeField.addClass("hidden");
var endTimeField=$("input[name='endTime']",dialogContent).autocomplete({source:timeSuggestions,minLength:2});
endTimeField.addClass("hidden");
$("input[name='allDayEvent']",dialogContent).click(function(){if(this.checked){startTimeField.addClass("hidden");
endTimeField.addClass("hidden")
}else{startTimeField.removeClass("hidden");
endTimeField.removeClass("hidden");
if(!startTimeField.val()){startTimeField.val(CalendarPlugin.getDefaultStartTime(calendarDiv))
}if(!endTimeField.val()){endTimeField.val(CalendarPlugin.getDefaultEndTime(calendarDiv))
}}});
var subCalendarSelect=$("select[name='calendar']",dialogContent);
var freqSelect=$("select[name='freq-select']",dialogContent);
var intervalInput=$("input[name='interval']",dialogContent);
var recurEndsContainer=$(".recur-ends",dialogContent);
var recurEndNever=$(".recur-ends-never",recurEndsContainer);
var recurEndUntil=$(".recur-ends-until",recurEndsContainer);
var untilInput=$("input[name='until']",recurEndsContainer);
$("input[name='editthisinstanceonly']",dialogContent).click(function(){if($(this).is(":checked")){subCalendarSelect.attr("disabled","disabled");
freqSelect.attr("disabled","disabled");
intervalInput.attr("readonly","readonly");
recurEndNever.attr("disabled","disabled");
recurEndUntil.attr("disabled","disabled");
untilInput.attr("readonly","readonly").datepicker("disable")
}else{subCalendarSelect.removeAttr("disabled");
freqSelect.removeAttr("disabled");
intervalInput.removeAttr("readonly");
if($("option:selected",freqSelect).val()){recurEndNever.removeAttr("disabled");
recurEndUntil.removeAttr("disabled");
if(recurEndUntil.is(":checked")){untilInput.removeAttr("readonly").datepicker("enable")
}else{untilInput.datepicker("disable")
}}}});
freqSelect.change(function(){var selectedFreq=$("option:selected",this).val();
var freqInput=$("input[name='freq']",dialogContent);
var byDayInput=$("input[name='byday']",dialogContent);
var intervalSelectContainer=$(".interval-container",dialogContent);
if(selectedFreq){if(selectedFreq==="WEEKLY-BYDAY"){intervalInput.attr("readonly","readonly").val("1");
intervalSelectContainer.addClass("hidden");
freqInput.val("WEEKLY");
byDayInput.val("MO,TU,WE,TH,FR")
}else{intervalInput.removeAttr("readonly").val("1");
intervalSelectContainer.removeClass("hidden");
freqInput.val(selectedFreq);
byDayInput.val("")
}recurEndsContainer.removeClass("hidden");
recurEndNever.removeAttr("disabled");
if(recurEndUntil.removeAttr("disabled").is(":checked")){untilInput.removeAttr("disabled").removeAttr("readonly")
}}else{intervalInput.val("1");
intervalSelectContainer.addClass("hidden");
recurEndsContainer.addClass("hidden");
recurEndNever.attr("disabled","disabled");
recurEndUntil.attr("disabled","disabled");
untilInput.val("").attr("disabled","disabled").attr("readonly","readonly");
freqInput.val("");
byDayInput.val("")
}intervalInput.trigger("keydown");
CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
});
intervalInput.keydown(function(){setTimeout(function(){var selectedFreq=$("option:selected",freqSelect).val();
var intervalSpan=$(".interval-label",dialogContent);
var interval=$.trim(intervalInput.val());
if(/^[1-9]\d*$/.test(interval)||interval==="0"){if(selectedFreq==="DAILY"){intervalSpan.text(CalendarPlugin.getText(calendarDiv,"calendar3.repeat.interval.day"+(parseInt(interval)<=1?"":"s")))
}else{if(selectedFreq==="WEEKLY"){intervalSpan.text(CalendarPlugin.getText(calendarDiv,"calendar3.repeat.interval.week"+(parseInt(interval)<=1?"":"s")))
}else{if(selectedFreq==="MONTHLY"){intervalSpan.text(CalendarPlugin.getText(calendarDiv,"calendar3.repeat.interval.month"+(parseInt(interval)<=1?"":"s")))
}else{if(selectedFreq==="YEARLY"){intervalSpan.text(CalendarPlugin.getText(calendarDiv,"calendar3.repeat.interval.year"+(parseInt(interval)<=1?"":"s")))
}}}}}else{intervalSpan.text("")
}},300)
});
$(".recur-ends-never",dialogContent).click(function(){untilInput.val("").attr("disabled","disabled").attr("readonly","readonly").datepicker("disable")
});
$(".recur-ends-until",dialogContent).click(function(){untilInput.removeAttr("disabled","disabled").removeAttr("readonly").datepicker("enable")
});
$("a.cancel-event-edit",dialogContent).click(function(){eventDialog.hide();
return false
});
$(".delete-event",dialogContent).removeClass("hidden").click(function(){if(!CalendarPlugin.isProcessingEvent(calendarDiv)){CalendarPlugin.setProcessingEvent(calendarDiv,true);
var subCalendarId=$("option:selected",CalendarPlugin.getEventEditDialogSelect(dialogContent,"calendar")).val();
if(subCalendarId){var deleteParams={subCalendarId:subCalendarId,uid:CalendarPlugin.getEventEditDialogField(dialogContent,"uid").val()};
var deleteThisInstanceOnly=CalendarPlugin.getEventEditDialogField(dialogContent,"editthisinstanceonly").is(":checked");
if(deleteThisInstanceOnly){var eventRecurrenceId=CalendarPlugin.getEventEditDialogField(dialogContent,"recurrenceId").val();
if(eventRecurrenceId){deleteParams.recurrenceId=eventRecurrenceId
}deleteParams.originalStart=CalendarPlugin.getEventEditDialogField(dialogContent,"originalStartDate").val()
}CalendarPlugin.deleteEvent(calendarDiv,deleteParams,function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_EVENT_DELETE);
CalendarPlugin.setProcessingEvent(calendarDiv,false)
},function(responseEntity){if(responseEntity.success){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_EVENT_DELETE);
if(deleteThisInstanceOnly){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("removeEvents",[deleteParams.uid])
}else{CalendarPlugin.reloadSubCalendar(calendarDiv,subCalendarId)
}eventDialog.hide()
}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_EVENT_DELETE)
}CalendarPlugin.setProcessingEvent(calendarDiv,false)
})
}}return false
});
var eventEditForm=$("form[name='event-edit']",dialogContent);
eventEditForm.submit(function(){if(CalendarPlugin.isProcessingEvent(calendarDiv)){return false
}CalendarPlugin.setProcessingEvent(calendarDiv,true);
var originalSubCalendarId=CalendarPlugin.getEventEditDialogField(dialogContent,"originalSubCalendarId").val();
var subCalendarId=$("option:selected",CalendarPlugin.getEventEditDialogSelect(dialogContent,"calendar")).val();
var uid=CalendarPlugin.getEventEditDialogField(dialogContent,"uid").val();
var allDayEvent=CalendarPlugin.getEventEditDialogField(dialogContent,"allDayEvent").is(":checked");
if(!uid){calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED,allDayEvent.toString())
}var until=CalendarPlugin.getEventEditDialogField(dialogContent,"until");
CalendarPlugin.updateEvent(calendarDiv,(function(){var data={originalSubCalendarId:originalSubCalendarId,subCalendarId:subCalendarId,uid:uid,originalStartDate:CalendarPlugin.getEventEditDialogField(dialogContent,"originalStartDate").val(),what:CalendarPlugin.getEventEditDialogField(dialogContent,"what").val(),url:CalendarPlugin.getEventEditDialogField(dialogContent,"url").val(),startDate:CalendarPlugin.getEventEditDialogField(dialogContent,"startDate").val(),startTime:CalendarPlugin.getEventEditDialogField(dialogContent,"startTime").val(),endDate:CalendarPlugin.getEventEditDialogField(dialogContent,"endDate").val(),endTime:CalendarPlugin.getEventEditDialogField(dialogContent,"endTime").val(),allDayEvent:allDayEvent,where:CalendarPlugin.getEventEditDialogField(dialogContent,"where").val(),description:CalendarPlugin.getEventEditDialogField(dialogContent,"one-line-description").is(":visible")?CalendarPlugin.getEventEditDialogField(dialogContent,"one-line-description").val():CalendarPlugin.getEventEditDialogTextArea(dialogContent,"description").val(),freq:CalendarPlugin.getEventEditDialogField(dialogContent,"freq").val(),byday:CalendarPlugin.getEventEditDialogField(dialogContent,"byday").val(),interval:CalendarPlugin.getEventEditDialogField(dialogContent,"interval").val()||"",repeatEnds:until.attr("readonly")||until.attr("disabled")?"false":"true",until:until.val(),recurrenceId:CalendarPlugin.getEventEditDialogField(dialogContent,"recurrenceId").val(),editAllInRecurrenceSeries:CalendarPlugin.getEventEditDialogField(dialogContent,"editthisinstanceonly").is(":checked")?"false":"true"};
var invitees=$(".invitee",dialogContent);
if(CalendarPlugin.getSubCalendar(calendarDiv,subCalendarId).eventInviteesSupported){if(invitees.length){data.person=$.map(invitees,function(invitee){return $(invitee).data("entity").id
})
}}if($(".event-type",dialogContent).hasClass("subcalendar-people")){data.what=invitees.length?$.map(invitees,function(invitee){return $(invitee).data("entity").displayName
}).join(", "):""
}return data
})(),function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("unselect");
CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_EVENT_UPDATE);
CalendarPlugin.setProcessingEvent(calendarDiv,false)
},function(responseEntity){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("unselect");
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_EVENT_UPDATE);
if(responseEntity.success){CalendarPlugin.setFieldErrors(dialogContent,null);
CalendarPlugin.reloadSubCalendar(calendarDiv,originalSubCalendarId&&originalSubCalendarId!==subCalendarId?[subCalendarId,originalSubCalendarId]:subCalendarId);
eventDialog.hide()
}else{CalendarPlugin.setFieldErrors(dialogContent,responseEntity.fieldErrors);
CalendarPlugin.showDialogInUpdatedHeight(eventDialog)
}CalendarPlugin.setProcessingEvent(calendarDiv,false)
});
return false
});
$("a.save-event",dialogContent).click(function(){eventEditForm.submit();
return false
});
return eventDialog
},getDefaultStartTime:function(calendarDiv){return this.getParameter(calendarDiv,"timeSuggestion")[16]
},getDefaultEndTime:function(calendarDiv){return this.getParameter(calendarDiv,"timeSuggestion")[18]
},reloadSubCalendar:function(calendarDiv,subCalendarIds){var _subCalendarIds=typeof subCalendarIds==="string"?[subCalendarIds]:subCalendarIds;
var subCalendarItems=$(".sub-calendar-names .subcalendar-item",calendarDiv);
$.each(_subCalendarIds,function(subCalendarIdIdx,subCalendarId){subCalendarItems.each(function(){var subCalendarItem=$(this);
if(subCalendarItem.data("subCalendar").id===subCalendarId){if(subCalendarItem.hasClass("subcalendar-disabled")){subCalendarItem.removeClass("subcalendar-disabled")
}else{CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendarId)
}CalendarPlugin.addSubCalendarEventSource(calendarDiv,subCalendarId)
}})
})
},makeAutoCompleteSearch:function(calendarDiv,searchField,searchOptions,suggestionsContainer,suggestionClickHandler,resultFilter){searchField.keydown(function(event){var selectedSuggestion=$("li.active",suggestionsContainer);
if(27==event.keyCode){if(!suggestionsContainer.hasClass("hidden")){suggestionsContainer.addClass("hidden");
return false
}}if(38==event.keyCode){if(!suggestionsContainer.hasClass("hidden")){if(selectedSuggestion.length){if(selectedSuggestion.prev().length){selectedSuggestion.removeClass("active").prev().addClass("active")
}}else{$(".aui-dropdown li:last",suggestionsContainer).addClass("active")
}return false
}}if(40==event.keyCode){if(!suggestionsContainer.hasClass("hidden")){if(selectedSuggestion.length){if(selectedSuggestion.next().length){selectedSuggestion.removeClass("active").next().addClass("active")
}}else{$(".aui-dropdown li:first",suggestionsContainer).addClass("active")
}return false
}return false
}if(13==event.keyCode){if(!suggestionsContainer.hasClass("hidden")){$(".aui-dropdown li.active a",suggestionsContainer).trigger("click");
return false
}}if($.trim(searchField.val())){setTimeout(function(){if(!$.trim(searchField.val())){suggestionsContainer.addClass("hidden");
return 
}$.ajax({cache:false,data:$.extend({search:"name",spacekey:"",query:searchField.val()},searchOptions),dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){if(XMLHttpRequest.status!==400){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown)
}},success:function(searchResult){var suggestionList=$(document.createElement("ol"));
var getHtmlLink=function(_result){return result.id?CalendarPlugin.getParameter(calendarDiv,"baseUrl")+"/pages/viewpage.action?pageId="+encodeURIComponent(_result.id):"#"
};
for(var groupIdx=0;
groupIdx<searchResult.group.length;
++groupIdx){var theGroup=searchResult.group[groupIdx];
if(theGroup.result){for(var resultIdx=0;
resultIdx<theGroup.result.length;
++resultIdx){var result=theGroup.result[resultIdx];
if(resultFilter&&!resultFilter(result)){continue
}var suggestion=$(document.createElement("li")).mouseover(function(){$("li.active",suggestionsContainer).removeClass("active");
$(this).addClass("active")
});
if(result.thumbnailLink){$(document.createElement("img")).attr("src",result.thumbnailLink.href).appendTo(suggestion)
}if(result.link&&result.link.length){$(document.createElement("span")).attr("title",result.title||(result.space?" "+result.space.name:"")).text(result.title).appendTo($(document.createElement("a")).data("result",result).attr("href",getHtmlLink(result)||"").addClass(result.type?"content-type-"+result.type:"").click(function(){if(suggestionClickHandler){suggestionClickHandler(searchField,$(this))
}suggestionsContainer.addClass("hidden");
return false
}).appendTo(suggestion))
}suggestion.appendTo(suggestionList)
}}}if(suggestionList.children().length){$("li",suggestionList).each(function(index){if(index>4){$(this).remove()
}});
$(".aui-dropdown",suggestionsContainer).empty().append(suggestionList);
suggestionsContainer.removeClass("hidden").dropDown("Standard")
}else{suggestionsContainer.addClass("hidden")
}},url:CalendarPlugin.getParameter(calendarDiv,"baseUrl")+"/rest/prototype/1/search.json"})
},300)
}})
},isProcessingEvent:function(calendarDiv){return calendarDiv.data("processingEvent")
},setProcessingEvent:function(calendarDiv,processing){calendarDiv.data("processingEvent",processing)
},getEventEditDialogField:function(dialogContent,fieldName){return $("input[name='"+fieldName+"']",dialogContent)
},getEventEditDialogSelect:function(dialogContent,fieldName){return $("select[name='"+fieldName+"']",dialogContent)
},getEventEditDialogTextArea:function(dialogContent,fieldName){return $("textarea[name='"+fieldName+"']",dialogContent)
},showAjaxError:function(calendarDiv,XMLHttpRequest,textStatus,errorThrown,errorClass){CalendarPlugin.setGenericErrors(calendarDiv,("application/json"===XMLHttpRequest.getResponseHeader("Content-Type")?eval("("+XMLHttpRequest.responseText+")"):(errorThrown||textStatus||XMLHttpRequest.responseText||CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"))),errorClass)
},showRestrictedCalendarsWarning:function(calendarDiv){$(".restricted-calendars-warning",calendarDiv).removeClass("hidden")
},deleteEvent:function(calendarDiv,params,errorCallback,successCallback){$.ajax({cache:false,data:params,dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){if(errorCallback){errorCallback(XMLHttpRequest,textStatus,errorThrown)
}},success:function(responseEntity){if(successCallback){successCallback(responseEntity)
}},type:"DELETE",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/events.json")})
},getCalendarServiceBaseUrl:function(calendarDiv,relativePath){return CalendarPlugin.getParameter(calendarDiv,"baseUrl")+"/rest/calendar-services/1.0/calendar"+relativePath
},getSubCalendars:function(calendarDiv,filterFunction){var subCalendars=calendarDiv.data("subCalendars")||[];
if(filterFunction){var filteredSubCalendars=[];
$.each(subCalendars,function(index,aSubCalendar){if(filterFunction(aSubCalendar)){filteredSubCalendars.push(aSubCalendar)
}});
return filteredSubCalendars
}return subCalendars
},isSubCalendarUpdatable:function(calendarDiv,aSubCalendar){return this.isCalendarInEditMode(calendarDiv)&&aSubCalendar.editable
},isSubCalendarDeletable:function(calendarDiv,aSubCalendar){return this.isCalendarInEditMode(calendarDiv)&&aSubCalendar.deletable
},isSubCalendarSubscribable:function(aSubCalendar){return !(aSubCalendar.type==="jira"||aSubCalendar.subscriptionType==="jira")
},isSubCalendarAdministratable:function(calendarDiv,aSubCalendar){return this.isCalendarInEditMode(calendarDiv)&&aSubCalendar.administrable
},isSubCalendarEventsUpdatable:function(calendarDiv,aSubCalendar){return this.isCalendarInEditMode(calendarDiv)&&aSubCalendar.eventsEditable
},doesSubCalendarHaveRestrictions:function(subCalendar){return subCalendar.usersPermittedToView.length||subCalendar.groupsPermittedToView.length||subCalendar.usersPermittedToEdit.length||subCalendar.groupsPermittedToEdit.length
},getSubCalendarsWhichEventsUpdatable:function(calendarDiv){return this.getSubCalendars(calendarDiv,function(aSubCalendar){return CalendarPlugin.isSubCalendarEventsUpdatable(calendarDiv,aSubCalendar)
})
},getSubCalendar:function(calendarDiv,subCalendarId){var subCalendars=this.getSubCalendars(calendarDiv,function(_aSubCalendar){return _aSubCalendar.id===subCalendarId
});
return subCalendars.length?subCalendars[0]:null
},setSubCalendars:function(calendarDiv,subCalendars){calendarDiv.data("subCalendars",$.isArray(subCalendars)?subCalendars:(subCalendars?[subCalendars]:null))
},initSubCalendarPanel:function(calendarDiv){var showAddEventDialog=function(_calendarDiv){CalendarPlugin.setEventEditDialogVisible(_calendarDiv,true,{start:new Date(),localizedStartTime:CalendarPlugin.getDefaultStartTime(_calendarDiv),localizedEndTime:CalendarPlugin.getDefaultEndTime(_calendarDiv),allDay:(_calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED)||"true")==="true"})
};
$("#add-event-link").click(function(){showAddEventDialog(calendarDiv);
return false
});
$(".toolbar-group-addevent .trigger-addevent",calendarDiv).click(function(){showAddEventDialog(calendarDiv);
return false
});
this.setSubCalendarSpinnerIconVisible(calendarDiv,true);
var createSubCalendarMenu=$("#add-calendar-menu");
$(".menu-item-create-new",createSubCalendarMenu).click(function(){CalendarPlugin.getSubCalendarCreationWizardDialog(calendarDiv,{height:410}).show()
});
$(".menu-item-existing-confluence",createSubCalendarMenu).click(function(){var subCalendarDialog=CalendarPlugin.getSubCalendarSubscribeDialog(calendarDiv,{heading:CalendarPlugin.getText(calendarDiv,"calendar3.searchcalendar"),showSearch:true});
subCalendarDialog.show();
$("textarea[name='query']",subCalendarDialog.getCurrentPanel().body).val("").focus()
});
$(".menu-item-by-url",createSubCalendarMenu).click(function(){var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"subscription");
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialog.getCurrentPanel().body).focus()
});
$(".menu-item-import",createSubCalendarMenu).click(function(){var subCalendarDialog=CalendarPlugin.getSubCalendarImportDialog(calendarDiv);
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialog.getCurrentPanel()).focus()
});
createSubCalendarMenu.dropDown("Standard",{alignment:"left"});
this.refreshCachedSubCalendars(calendarDiv,function(subCalendars){if("true"===CalendarPlugin.getParameter(calendarDiv,"showHiddenSubCalendars")&&$.isArray(subCalendars)){$.each(subCalendars,function(subCalendarIdx,subCalendar){subCalendar.eventsHidden=false
})
}CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
if(CalendarPlugin.isCalendarInEditMode(calendarDiv)){var popupDialogForFirstUses=function(){calendarDiv.unbind("calendar-plugin.resized",popupDialogForFirstUses);
if("true"===CalendarPlugin.getParameter(calendarDiv,"showCreateCalendarWizard")){CalendarPlugin.getSubCalendarCreationWizardDialog(calendarDiv,{name:"emptyCreateCalendarWizard",showSubscribeToWebCalendarMessage:true,height:480,heading:CalendarPlugin.getText(calendarDiv,"calendar3.welcometoconfluencecalendars"),id:"create-calendar-first-time"}).show()
}else{if("true"===CalendarPlugin.getParameter(calendarDiv,"showPopularSubCalendarsDialog")){CalendarPlugin.getSubCalendarSubscribeDialog(calendarDiv,{heading:CalendarPlugin.getText(calendarDiv,"calendar3.welcometoconfluencecalendars")}).show()
}}};
calendarDiv.bind("calendar-plugin.resized",popupDialogForFirstUses)
}},function(){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false)
})
},refreshCachedSubCalendars:function(calendarDiv,successCallback,errorCallback){var requestData={};
if(CalendarPlugin.getParameter(calendarDiv,"include")){requestData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:requestData,dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST);
if(errorCallback){errorCallback(XMLHttpRequest,textStatus,errorThrown)
}},success:function(responseEntity){if(responseEntity.success){CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
if(successCallback){successCallback(responseEntity.payload)
}CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST)
}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST)
}},type:"GET",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars.json")})
},mergeSubCalendarObjectsToArray:function(arrayWithSubCalendarObject){if(arrayWithSubCalendarObject&&$.isArray(arrayWithSubCalendarObject)){$.each(arrayWithSubCalendarObject,function(idx,arrayElement){$.extend(arrayElement,arrayElement.subCalendar);
delete arrayElement.subCalendar
})
}return arrayWithSubCalendarObject
},setGenericErrors:function(container,message,errorClass){var errorPanel=$(".calendar-error",container);
var _errorClass=errorClass||"general";
var errorMessagesList=$("ul.error-messages",errorPanel);
var errorMessageItem=$("li."+errorClass,errorMessagesList);
if(message){if(!errorMessageItem.length){errorMessageItem=$(document.createElement("li")).addClass(_errorClass).appendTo(errorMessagesList)
}if($.isArray(message)){if(message.length>1){var subMessagesList=$(document.createElement("ul"));
$.each(message,function(index,value){$(document.createElement("li")).text(value).appendTo(subMessagesList)
});
subMessagesList.appendTo(errorMessageItem)
}else{errorMessageItem.text(message[0])
}}else{if($.isPlainObject(message)){var theMessage=message.message||"";
if(message["status-code"]){errorMessageItem.text(message["status-code"]+" - "+theMessage)
}else{errorMessageItem.text(theMessage)
}}else{errorMessageItem.text(message)
}}}else{errorMessageItem.remove()
}if(errorMessagesList.children().length){errorMessagesList.removeClass("hidden");
errorPanel.removeClass("hidden")
}else{errorMessagesList.addClass("hidden");
errorPanel.addClass("hidden")
}},setFieldErrors:function(container,fieldErrors){$("div.error",container).empty();
if(!fieldErrors){return 
}var _fieldErrors=$.isArray(fieldErrors)?fieldErrors:[fieldErrors];
if($.isArray(fieldErrors)){for(var fieldErrorIndex=0;
fieldErrorIndex<_fieldErrors.length;
++fieldErrorIndex){var fieldName=_fieldErrors[fieldErrorIndex].field;
var _errorMessages=$.isArray(_fieldErrors[fieldErrorIndex].errorMessages)?_fieldErrors[fieldErrorIndex].errorMessages:[_fieldErrors[fieldErrorIndex].errorMessages];
if(fieldName&&_errorMessages){var errorDiv=$("div."+fieldName+"-error");
for(var errorMsgIndex=0;
errorMsgIndex<_errorMessages.length;
++errorMsgIndex){$(document.createElement("div")).text(_errorMessages[errorMsgIndex]).appendTo(errorDiv)
}}}}},getEnabledSubCalendarIds:function(calendarDiv){var subCalendarNamesDiv=$("div.sub-calendar-names",calendarDiv);
var enabledSubCalendarIds=[];
$(".subcalendar-item",subCalendarNamesDiv).each(function(){var subCalendarItem=$(this);
if(!subCalendarItem.hasClass("subcalendar-disabled")){enabledSubCalendarIds.push(subCalendarItem.data("subCalendar").id)
}});
return enabledSubCalendarIds
},updateAvailableSubCalendarsInSubCalendarPanel:function(calendarDiv){var subCalendarNamesDiv=$("div.sub-calendar-names",calendarDiv);
var disabledSubCalendars=[];
$(".subcalendar-disabled",subCalendarNamesDiv).each(function(){disabledSubCalendars.push($(this).data("subCalendar").id)
});
subCalendarNamesDiv.empty();
if(this.getSubCalendarsWhichEventsUpdatable(calendarDiv).length){$("#add-event-menu").removeClass("hidden");
$(".toolbar-group-addevent",calendarDiv).removeClass("hidden")
}else{$("#add-event-menu").addClass("hidden");
$(".toolbar-group-addevent",calendarDiv).addClass("hidden")
}if("true"==CalendarPlugin.getParameter(calendarDiv,"readOnly")){$("#add-calendar-menu").addClass("hidden")
}else{$("#add-calendar-menu").removeClass("hidden")
}var subCalendars=this.getSubCalendars(calendarDiv);
if(!subCalendars.length){$(document.createElement("div")).addClass("no-subcalendars-msg").text(this.getText(calendarDiv,"calendar3.havenotcreatedorsubscribedtosubcalendars")).appendTo(subCalendarNamesDiv)
}var subCalendarsLists={};
var showSubCalendarEdit=function(_subCalendar){var subCalendarEditDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,_subCalendar);
var dialogContent=subCalendarEditDialog.getCurrentPanel().body;
CalendarPlugin.setFieldErrors(dialogContent,null);
CalendarPlugin.showDialogInUpdatedHeight(subCalendarEditDialog);
$("input[name='name']",dialogContent).focus()
};
$.each(subCalendars,function(idx,subCalendar){var subCalendarEntry=$(document.createElement("div")).addClass("subcalendar-item").data("subCalendar",subCalendar).append($(document.createElement("div")).addClass("subcalendar-info").append($(document.createElement("div")).addClass("subcalendar-name").append($(document.createElement("span")).addClass("ellipsis_text").text(subCalendar.name)).click(function(jsEvent){if(jsEvent.shiftKey){CalendarPlugin.showDialogInUpdatedHeight(CalendarPlugin.getSubCalendarEditDialog(calendarDiv,subCalendar));
return false
}})).append($(document.createElement("div")).addClass("clear")).click(function(){var setSubCalendarEventsHidden=function(_subCalendarId,hidden){$.ajax({cache:false,data:{subCalendarId:_subCalendarId},dataType:"json",type:hidden?"PUT":"DELETE",error:function(jqXHR,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,jqXHR,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_TOGGLE_EVENTS+CalendarPlugin.getStringAsHex(_subCalendarId))
},success:function(){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_TOGGLE_EVENTS+CalendarPlugin.getStringAsHex(_subCalendarId))
},url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/events/hidden.json")})
};
if(subCalendarEntry.hasClass("subcalendar-disabled")){subCalendarEntry.removeClass("subcalendar-disabled just-disabled");
CalendarPlugin.addSubCalendarEventSource(calendarDiv,subCalendar.id);
setSubCalendarEventsHidden(subCalendar.id,false)
}else{subCalendarEntry.addClass("subcalendar-disabled just-disabled");
CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendar.id);
setSubCalendarEventsHidden(subCalendar.id,true)
}}).mouseout(function(){subCalendarEntry.removeClass("just-disabled")
})).append(AJS.template.load("subcalendar-dropdown-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString()).append($(document.createElement("div")).addClass("clear"));
$(".subcalendar-dropdown-menu .aui-dd-parent",subCalendarEntry).addClass(subCalendar.color);
if($.inArray(subCalendar.id,disabledSubCalendars)!==-1||subCalendar.eventsHidden){subCalendarEntry.addClass("subcalendar-disabled")
}else{CalendarPlugin.addSubCalendarEventSource(calendarDiv,subCalendar.id)
}if(CalendarPlugin.isSubCalendarEventsUpdatable(calendarDiv,subCalendar)){$(".subcalendar-addevent",subCalendarEntry).click(function(jsEvent){CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,{start:new Date(),localizedStartTime:CalendarPlugin.getDefaultStartTime(calendarDiv),localizedEndTime:CalendarPlugin.getDefaultEndTime(calendarDiv),allDay:(calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED)||"true")==="true",subCalendarId:subCalendar.id});
jsEvent.preventDefault()
})
}else{$(".subcalendar-addevent",subCalendarEntry).closest("li").remove()
}$(CalendarPlugin.isSubCalendarUpdatable(calendarDiv,subCalendar)?".subcalendar-view":".subcalendar-edit",subCalendarEntry).closest("li").remove();
$(".subcalendar-edit, .subcalendar-view",subCalendarEntry).click(function(jsEvent){showSubCalendarEdit(subCalendar);
jsEvent.preventDefault()
});
if(CalendarPlugin.isSubCalendarAdministratable(calendarDiv,subCalendar)){$(".subcalendar-restrict",subCalendarEntry).click(function(){CalendarPlugin.getSubCalendarRestrictionsDialog(calendarDiv,subCalendar).show()
})
}else{$(".subcalendar-restrict",subCalendarEntry).closest("li").remove()
}$(".subcalendar-icalexport",subCalendarEntry).attr("href",CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/export/subcalendar/"+encodeURIComponent(subCalendar.id)+".ics")+"?os_authType=basic");
if(subCalendar.watchable){if(subCalendar.watchedViaContent){subCalendarEntry.addClass("watching-via-content")
}else{if(subCalendar.watched){subCalendarEntry.addClass("watched")
}else{subCalendarEntry.addClass("not-watched")
}}$(".subcalendar-watch",subCalendarEntry).click(function(jsEvent){$.ajax({cache:false,data:{subCalendarId:subCalendar.id},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_WATCH+CalendarPlugin.getStringAsHex(subCalendar.id))
},success:function(){subCalendarEntry.addClass("watched").removeClass("not-watched")
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/subcalendars/watch.json")});
jsEvent.preventDefault()
});
$(".subcalendar-unwatch",subCalendarEntry).click(function(jsEvent){$.ajax({cache:false,data:{subCalendarId:subCalendar.id},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_WATCH+CalendarPlugin.getStringAsHex(subCalendar.id))
},success:function(){subCalendarEntry.addClass("not-watched").removeClass("watched")
},type:"DELETE",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/subcalendars/watch.json")});
jsEvent.preventDefault()
})
}if(subCalendar.reloadable){$(".subcalendar-reload",subCalendarEntry).click(function(jsEvent){if(!CalendarPlugin.isSubCalendarEventsUpdatable(calendarDiv,subCalendar)){$.ajax({cache:false,data:{subCalendarId:subCalendar.id},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendar.id))
},success:function(responseEntity){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendar.id));
if(responseEntity.success){CalendarPlugin.reloadSubCalendar(calendarDiv,subCalendar.id)
}},type:"POST",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars/admin/refresh.json")})
}else{CalendarPlugin.reloadSubCalendar(calendarDiv,subCalendar.id)
}var disabledColorBoxClass=subCalendar.color+"-disabled";
$("."+disabledColorBoxClass,subCalendarEntry.removeClass("subcalendar-disabled")).removeClass(disabledColorBoxClass);
jsEvent.preventDefault()
})
}else{$(".subcalendar-reload",subCalendarEntry).closest("li").remove()
}if(CalendarPlugin.isSubCalendarUpdatable(calendarDiv,subCalendar)){$(".subcalendar-unsubscribe",subCalendarEntry).click(function(jsEvent){if(!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
if(subCalendar.subscriptionId){CalendarPlugin._deleteSubCalendarInternal(calendarDiv,subCalendar.id,function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},function(responseEntity){if(responseEntity.success){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendar.id));
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE);
CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendar.id);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv)
}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE)
}CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
})
}else{$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:(function(){var ajaxData={subCalendarId:subCalendar.id};
if(CalendarPlugin.getParameter(calendarDiv,"include")){ajaxData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}return ajaxData
})(),dataType:"json",dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},error:function(jqXHR,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,jqXHR,textStatus,errorThrown);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},success:function(responseEntity){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendar.id);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},type:"DELETE",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/subcalendars.json")})
}}jsEvent.preventDefault()
})
}else{$(".subcalendar-unsubscribe",subCalendarEntry).closest("li").remove()
}if(CalendarPlugin.isSubCalendarDeletable(calendarDiv,subCalendar)){$(".subcalendar-delete",subCalendarEntry).click(function(jsEvent){CalendarPlugin.deleteSubCalendar(calendarDiv,subCalendar);
jsEvent.preventDefault()
})
}else{$(".subcalendar-delete",subCalendarEntry).closest("li").remove()
}$(".subcalendar-share",subCalendarEntry).click(function(jsEvent){var shareDialog=CalendarPlugin.getSubCalendarShareDialog(calendarDiv,subCalendar);
shareDialog.show();
$(".share-address-field",shareDialog.getCurrentPanel().body).focus().select();
jsEvent.preventDefault()
});
if(CalendarPlugin.isSubCalendarSubscribable(subCalendar)){$(".subcalendar-subscribe",subCalendarEntry).click(function(jsEvent){CalendarPlugin.getSubCalendarIcalAddressDialog(calendarDiv,subCalendar).show();
jsEvent.preventDefault()
})
}else{$(".subcalendar-subscribe",subCalendarEntry).closest("li").remove()
}if(CalendarPlugin.isSubCalendarUpdatable(calendarDiv,subCalendar)){$(".color-cell",subCalendarEntry).each(function(){var colorCell=$(this);
colorCell.click(function(){if(!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:(function(){var ajaxData={subCalendarId:subCalendar.id,color:colorCell.attr("data-color")};
if(CalendarPlugin.getParameter(calendarDiv,"include")){ajaxData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}return ajaxData
})(),dataType:"json",dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},success:function(responseEntity){var subCalendarEntry=colorCell.closest(".subcalendar-item");
var addSubCalendarSource=colorCell.closest(".subcalendar-item").hasClass("subcalendar-disabled");
if(addSubCalendarSource){subCalendarEntry.removeClass("subcalendar-disabled")
}CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendar.id);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},type:"POST",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars/color.json")})
}})
})
}else{$(".color-grid",subCalendarEntry).remove()
}$(".subcalendar-dropdown-menu",subCalendarEntry).dropDown("Standard",{alignment:"right"});
subCalendarsLists[subCalendar.typeName]=(subCalendarsLists[subCalendar.typeName]||$(document.createElement("div")).data("list-name",subCalendar.typeName)).append(subCalendarEntry)
});
var subCalendarsListsArray=[];
$.each(subCalendarsLists,function(listName,listElement){subCalendarsListsArray.push(listElement)
});
subCalendarsListsArray.sort(function(leftList,rightList){return CalendarPlugin.SUB_CALENDAR_TYPE_ORDER[leftList.data("list-name")]-CalendarPlugin.SUB_CALENDAR_TYPE_ORDER[rightList.data("list-name")]
});
$.each(subCalendarsListsArray,function(listElementIdx,listElement){var subCalendarEntriesArray=$.map($(".subcalendar-item",listElement),function(subCalendarEntry){return subCalendarEntry
});
subCalendarEntriesArray.sort(function(leftEntry,rightEntry){var leftName=($(".subcalendar-name",leftEntry).text()||"").toLowerCase();
var rightName=($(".subcalendar-name",rightEntry).text()||"").toLowerCase();
return leftName<rightName?-1:(leftName>rightName?1:0)
});
$.each(subCalendarEntriesArray,function(entryIdx,entry){var anEntry=$(entry);
anEntry.appendTo(anEntry.parent())
});
subCalendarNamesDiv.append($(document.createElement("div")).addClass("subcalendar-type-name").text(listElement.data("list-name"))).append(listElement).append($(document.createElement("div")).addClass("subcalendar-type-spacing"))
});
$(".subcalendar-name",subCalendarNamesDiv).each(function(){var subCalendarNameDiv=$(this);
subCalendarNameDiv.attr("title",$(".ellipsis_text",subCalendarNameDiv).text()).ThreeDots({max_rows:1})
})
},getSubCalendarImportDialog:function(calendarDiv){var subCalendarImportDialog=calendarDiv.data("subCalendarImportDialog")||this.createSubCalendarImportDialog(calendarDiv);
this.populateSubCalendarImportForm(calendarDiv,subCalendarImportDialog);
calendarDiv.data("subCalendarImportDialog",subCalendarImportDialog);
return subCalendarImportDialog
},populateSubCalendarImportForm:function(calendarDiv,subCalendarImportDialog){var dialogContent=subCalendarImportDialog.getCurrentPanel().body;
$("input[name='name'], textarea[name='description'], input[name='spaceKey'], input[name='spaceKeyAutocomplete']",dialogContent).val("");
$("input[name='color']",dialogContent).val(this.getNextUnusedSubCalendarColor(calendarDiv));
$(".error",dialogContent).empty()
},createSubCalendarImportDialog:function(calendarDiv){var subCalendarImportDialog=new AJS.Dialog(512,350);
subCalendarImportDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.importsubcal"));
subCalendarImportDialog.addPanel("",AJS.template.load("subcalendar-import-template-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"calendar-dialog-panel");
var dialogContent=subCalendarImportDialog.getCurrentPanel().body;
var subCalendarImportForm=$(".sub-calendar-import-form",dialogContent);
$("input[name='spaceKeyAutocomplete']",subCalendarImportForm).bind("selected.autocomplete-content",function(e,selection){$("input[name='spaceKey']",subCalendarImportForm).val(selection.content.key);
$(this).val(selection.content.name)
});
$(".subcalendar-cancel",subCalendarImportForm).click(function(){subCalendarImportDialog.hide();
return false
});
var loadingIcon=$(".loading-icon",subCalendarImportForm);
var importControls=$(".buttons-container input, .buttons-container a",subCalendarImportForm);
var uploadIframe=$(".subcalendar-import-result",subCalendarImportForm).load(function(){if($(this).data("activated")){var iframeDocument=this.contentWindow||this.contentDocument;
iframeDocument=iframeDocument.document?iframeDocument.document:iframeDocument;
if(!$(".import-successful",iframeDocument).length){var fieldErrors=[];
$(".field-errors input",iframeDocument).each(function(){fieldErrors.push({field:this.name,errorMessages:[this.value]})
});
if(fieldErrors.length){CalendarPlugin.setFieldErrors(subCalendarImportForm,fieldErrors);
CalendarPlugin.showDialogInUpdatedHeight(subCalendarImportDialog)
}var errorMessages=[];
$(".action-error",iframeDocument).each(function(){errorMessages.push($(this).text())
});
if(errorMessages.length){CalendarPlugin.setGenericErrors(calendarDiv,errorMessages,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE)
}}else{subCalendarImportDialog.hide();
CalendarPlugin.refreshCachedSubCalendars(calendarDiv,function(){CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
if(CalendarPlugin.getParameter(calendarDiv,"showCalendarDiscoveryDialog")==="true"){CalendarPlugin.getSubCalendarFeatureDiscoveryDialog(calendarDiv,CalendarPlugin.getSubCalendar(calendarDiv,$(".subcalendar-id",iframeDocument).text())).show()
}},function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE)
})
}importControls.removeClass("hidden");
loadingIcon.addClass("hidden");
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
}});
$(".back-button",subCalendarImportForm).click(function(){subCalendarImportDialog.hide();
CalendarPlugin.getSubCalendarCreationWizardDialog(calendarDiv).show();
return false
});
subCalendarImportForm.submit(function(){CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
loadingIcon.removeClass("hidden");
importControls.addClass("hidden");
uploadIframe.data("activated",true)
});
return subCalendarImportDialog
},getSubCalendarSubscribeDialog:function(calendarDiv,options){var searchSubCalendars=function(dialog,data,urlPath,noResultsFunction,resultsRenderedFunction){var resultsContainer=$(".results",dialog.getCurrentPanel().body);
$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:data,dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity.payload
},dataType:"json",error:function(){if(noResultsFunction){noResultsFunction(data,resultsContainer)
}},success:function(searchResults){resultsContainer.empty();
if(searchResults&&searchResults.length){var resultsTable=$(document.createElement("table")).append($(document.createElement("thead")).append($(document.createElement("tr")).append($(document.createElement("th")).addClass("subcalendar-checkbox")).append($(document.createElement("th")).addClass("subcalendar-type").text("T")).append($(document.createElement("th")).addClass("subcalendar-name").text(CalendarPlugin.getText(calendarDiv,"calendar3.calendar"))).append($(document.createElement("th")).addClass("subcalendar-description").text(CalendarPlugin.getText(calendarDiv,"description.name"))).append($(document.createElement("th")).addClass("subcalendar-space").text(CalendarPlugin.getText(calendarDiv,"calendar3.space"))).append($(document.createElement("th")).addClass("subcalendar-subscribercount").text(CalendarPlugin.getText(calendarDiv,"calendar3.subscribercount"))))).addClass("confluenceTable");
var resultsBody=$(document.createElement("tbody")).appendTo(resultsTable);
$.each(searchResults,function(index,searchResult){resultsBody.append($(document.createElement("tr")).append($(document.createElement("td")).addClass("confluenceTd").append($(document.createElement("input")).attr("type","checkbox").addClass("subcalendar-select"))).append($(document.createElement("td")).addClass("subcalendar-"+searchResult.type).attr("title",searchResult.typeName)).append($(document.createElement("td")).addClass("confluenceTd subcalendar-name").append($(document.createElement("div")).addClass("ellipsedColumn").append($(document.createElement("span")).addClass("ellipsis_text").text(searchResult.name)))).append($(document.createElement("td")).addClass("confluenceTd subcalendar-description").append($(document.createElement("div")).addClass("ellipsedColumn").append($(document.createElement("span")).addClass("ellipsis_text").text(searchResult.description||"")))).append($(document.createElement("td")).addClass("confluenceTd subcalendar-space").append($(document.createElement("div")).addClass("ellipsedColumn").append($(document.createElement("span")).addClass("ellipsis_text").text(searchResult.spaceName||"")))).append($(document.createElement("td")).addClass("confluenceTd").append($(document.createElement("div")).addClass("ellipsedColumn").append($(document.createElement("span")).addClass("ellipsis_text").text(searchResult.subscriberCount.toString())))).click(function(){var tableRow=$(this);
var removeSelection=tableRow.hasClass("active");
if(removeSelection){tableRow.removeClass("active");
$(".subcalendar-select",tableRow).removeAttr("checked")
}else{tableRow.addClass("active");
$(".subcalendar-select",tableRow).attr("checked","checked")
}var allUnwatchable=true;
var selectedRows=$("tr.active",resultsBody);
selectedRows.each(function(){if($(this).data("subCalendar").watchable){allUnwatchable=false;
return false
}});
if(!selectedRows.length||allUnwatchable){$(".watch-selected-subcalendars").removeAttr("checked").attr("disabled","disabled")
}else{if(!allUnwatchable&&!removeSelection){$(".watch-selected-subcalendars").attr("checked","checked").removeAttr("disabled")
}}}).data("subCalendar",searchResult))
});
resultsContainer.append(resultsTable);
$(".ellipsedColumn",resultsTable).each(function(){var calDesc=$(this);
var calDescText=calDesc.text();
calDesc.attr("title",calDescText).ThreeDots({max_rows:1})
});
if(resultsRenderedFunction){resultsRenderedFunction(searchResults)
}}else{if(noResultsFunction){noResultsFunction(data,resultsContainer)
}}},url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,urlPath)})
};
var subCalendarSubscribeDialog=calendarDiv.data("subCalendarSubscribeDialog")||(function(){var subscribeDialog=new AJS.Dialog(800,400);
subscribeDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.searchcalendars"));
subscribeDialog.addPanel("",AJS.template.load("create-subcalendar-subscription-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString(),"subscribe-to-subcalendars-panel");
var dialogBody=subscribeDialog.getCurrentPanel().body;
$(".create-your-subcalendar",dialogBody).click(function(){subscribeDialog.hide();
var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"local");
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialog.getCurrentPanel().body).focus();
return false
});
var searchContainer=$(".search",dialogBody);
$("textarea[name='query']",searchContainer).keydown(function(){var queryInput=$(this);
var currentQuery=queryInput.val();
setTimeout(function(){var actualQuery=queryInput.val();
if(actualQuery&&actualQuery!==currentQuery){searchContainer.addClass("searching");
searchSubCalendars(subscribeDialog,{term:actualQuery,limit:10,showSubscriberCount:true},"/search/subcalendars.json",function(data,resultsContainer){searchContainer.removeClass("searching");
$(".subscribe-to-subcalendar-button, .watch-selected-subcalendars").attr("disabled","disabled");
resultsContainer.empty().append($(document.createElement("span")).addClass("no-subcalendars-found").text(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.nosubcalfound"),data.term)))
},function(){searchContainer.removeClass("searching");
$(".subscribe-to-subcalendar-button").removeAttr("disabled")
})
}},300)
}).focus(function(){var queryInput=$(this);
if(queryInput.hasClass("blank-search")){queryInput.removeClass("blank-search").val("")
}}).blur(function(){var queryInput=$(this);
if(!$.trim(queryInput.val())){queryInput.addClass("blank-search").val(CalendarPlugin.getText(calendarDiv,"search.name"))
}});
if(subscribeDialog.addHelpText&&$.isFunction(subscribeDialog.addHelpText)){subscribeDialog.addHelpText($(document.createElement("span")).addClass("show-popular").html(CalendarPlugin.getText(calendarDiv,"calendar3.showpopularcalendars")));
$("span.show-popular a",subscribeDialog.getCurrentPanel().page.buttonpanel).unbind("click").click(function(){subscribeDialog.hide();
CalendarPlugin.getSubCalendarSubscribeDialog(calendarDiv,{heading:CalendarPlugin.getText(calendarDiv,"calendar3.popularcalendars")}).show();
return false
});
subscribeDialog.addHelpText($(document.createElement("span")).addClass("show-search").html(CalendarPlugin.getText(calendarDiv,"calendar3.showsearchcalendars")));
$("span.show-search a",subscribeDialog.getCurrentPanel().page.buttonpanel).unbind("click").click(function(){subscribeDialog.hide();
CalendarPlugin.getSubCalendarSubscribeDialog(calendarDiv,{heading:CalendarPlugin.getText(calendarDiv,"calendar3.searchcalendar"),showSearch:true}).show();
return false
})
}var buttonPanel=$(".dialog-button-panel",subscribeDialog.popup.element);
var watchCheckBox=$(document.createElement("input")).attr({type:"checkbox",name:"watch"}).addClass("watch-selected-subcalendars").appendTo(buttonPanel);
$(document.createElement("span")).addClass("watch-select-subcalendars-label").text(CalendarPlugin.getText(calendarDiv,"calendar3.watchselectedcalendars")).appendTo(buttonPanel);
subscribeDialog.addButton(CalendarPlugin.getText(calendarDiv,"add.word"),function(){var selectedSubCalendars=$("tr.active",dialogBody);
if(selectedSubCalendars.length&&!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:(function(){var requestData={color:CalendarPlugin.getNextUnusedSubCalendarColor(calendarDiv),watchSubCalendars:watchCheckBox.is(":checked")};
var subCalendarIds=[];
selectedSubCalendars.each(function(){subCalendarIds.push($(this).data("subCalendar").id)
});
requestData.subCalendarIds=subCalendarIds;
if(CalendarPlugin.getParameter(calendarDiv,"include")){requestData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}return requestData
})(),dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST);
subscribeDialog.hide();
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},success:function(responseEntity){if(responseEntity.success){CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST)
}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST)
}subscribeDialog.hide();
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars/subscribe.json")})
}else{subscribeDialog.hide()
}},"subscribe-to-subcalendar-button");
subscribeDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){subscribeDialog.hide()
});
return subscribeDialog
})();
calendarDiv.data("subCalendarSubscribeDialog",subCalendarSubscribeDialog);
var dialogPanel=subCalendarSubscribeDialog.getCurrentPanel();
var mergedOptions=$.extend({heading:CalendarPlugin.getText(calendarDiv,"calendar3.searchcalendars")},options);
var header=dialogPanel.page.header;
header.empty().text(mergedOptions.heading);
if(mergedOptions.showSearch){header.removeClass("welcome-heading-with-logo")
}else{header.addClass("welcome-heading-with-logo")
}var dialogBody=dialogPanel.body;
$(".results",dialogBody).empty();
$(".mode",dialogBody).removeClass().addClass("mode"+(mergedOptions.showSearch?"":" new-user"));
var watchSubCalendarsCheckbox=$(".watch-selected-subcalendars").attr("disabled","disabled");
if(CalendarPlugin.getParameter(calendarDiv,"autowatch")==="true"){watchSubCalendarsCheckbox.attr("checked","checked")
}else{watchSubCalendarsCheckbox.removeAttr("checked")
}var addButton=$(".subscribe-to-subcalendar-button, .watch-selected-subcalendars").attr("disabled","disabled");
if(mergedOptions.showSearch){$("input[name='query']",dialogBody).val("");
$(".dialog-tip .show-popular",dialogPanel.page.buttonpanel).removeClass("hidden");
$(".dialog-tip .show-search",dialogPanel.page.buttonpanel).addClass("hidden")
}else{var preamble=$(".preamble",dialogBody).addClass("loading");
var hideSpinner=function(){preamble.removeClass("loading")
};
searchSubCalendars(subCalendarSubscribeDialog,{limit:10},"/search/subcalendars/popular",hideSpinner,function(){hideSpinner();
addButton.removeAttr("disabled")
});
$(".dialog-tip .show-popular",dialogPanel.page.buttonpanel).addClass("hidden");
$(".dialog-tip .show-search",dialogPanel.page.buttonpanel).removeClass("hidden")
}return subCalendarSubscribeDialog
},getSubCalendarEditDialog:function(calendarDiv,subCalendar){var subCalendarTypeHandler=TeamCalendars.subcalendar[(typeof subCalendar==="string")?subCalendar:subCalendar.type];
var editForm;
var subCalendarEditDialog=(function(){var editDialog=new AJS.Dialog(521,350);
editForm=subCalendarTypeHandler.initializeForm(CalendarPlugin,calendarDiv,editDialog);
editForm.submit(function(){if(CalendarPlugin.isProcessingSubCalendar(calendarDiv)){return false
}CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
subCalendarTypeHandler.onSubmitStart(CalendarPlugin,calendarDiv,editDialog);
var requestData=subCalendarTypeHandler.getFormDataAsAjaxData(CalendarPlugin,calendarDiv,editDialog);
if(CalendarPlugin.getParameter(calendarDiv,"include")){requestData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}var subCalendarId=requestData.subCalendarId;
$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:requestData,dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
subCalendarTypeHandler.onSubmitEnd(CalendarPlugin,calendarDiv,editDialog);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},success:function(responseEntity){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
if(responseEntity.success){CalendarPlugin.setFieldErrors(editForm,null);
if(requestData.include){$(".calendar-warning",calendarDiv).removeClass("hidden")
}var subCalendarEdited=subCalendarId;
if(subCalendarEdited){CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.reloadSubCalendar(calendarDiv,subCalendarId)
}else{subCalendarId=(function(_existingSubCalendars,_newSubCalendars){if(_existingSubCalendars&&_existingSubCalendars.length){var newSubCalendarId="";
$.each(_newSubCalendars,function(newSubCalendarIdx,newSubCalendar){var foundExistingInNewSet=false;
$.each(_existingSubCalendars,function(existingSubCalendarIdx,existingSubCalendar){if(existingSubCalendar.id===newSubCalendar.id){foundExistingInNewSet=true;
return false
}});
if(!foundExistingInNewSet){newSubCalendarId=newSubCalendar.id;
return false
}});
return newSubCalendarId
}else{return _newSubCalendars[0].id
}})(CalendarPlugin.getSubCalendars(calendarDiv),responseEntity.payload);
$("input[name='subCalendarId']",editForm).val(subCalendarId);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload)
}CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
subCalendarTypeHandler.onSubmitEnd(CalendarPlugin,calendarDiv,editDialog);
editDialog.hide();
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
if(!subCalendarEdited&&CalendarPlugin.getParameter(calendarDiv,"showCalendarDiscoveryDialog")==="true"){CalendarPlugin.getSubCalendarFeatureDiscoveryDialog(calendarDiv,CalendarPlugin.getSubCalendar(calendarDiv,subCalendarId)).show()
}}else{CalendarPlugin.setFieldErrors(editForm,responseEntity.fieldErrors);
subCalendarTypeHandler.onSubmitEnd(CalendarPlugin,calendarDiv,editDialog);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.showDialogInUpdatedHeight(editDialog)
}CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars.json")});
return false
});
return editDialog
})();
subCalendarTypeHandler.populateForm(CalendarPlugin,calendarDiv,subCalendarEditDialog,$.isPlainObject(subCalendar)?subCalendar:null);
return subCalendarEditDialog
},suppressMessage:function(calendarDiv,messageKey,successCallback){$.ajax({cache:false,data:{messageKey:messageKey},error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE)
},success:function(){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE);
if(successCallback&&$.isFunction(successCallback)){successCallback()
}},type:"DELETE",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/messagekey.json")})
},getNextUnusedSubCalendarColor:function(calendarDiv){var subCalendars=CalendarPlugin.getSubCalendars(calendarDiv);
var subCalendarColorClasses=CalendarPlugin.getParameter(calendarDiv,"subCalendarColorClass");
for(var colorClassIndex=0;
colorClassIndex<subCalendarColorClasses.length;
++colorClassIndex){var colorClass=subCalendarColorClasses[colorClassIndex];
var colorClassUsed=false;
for(var subCalendarIndex=0;
subCalendarIndex<subCalendars.length;
++subCalendarIndex){if(colorClass===subCalendars[subCalendarIndex].color){colorClassUsed=true;
break
}}if(!colorClassUsed){return colorClass
}}return subCalendars.length?subCalendarColorClasses[subCalendars.length%subCalendarColorClasses.length]:"subcalendar-blue"
},getSubCalendarCreationWizardDialog:function(calendarDiv,options){var mergedOptions=$.extend({},{name:"subCalendarCreateWizardDialog",showSubscribeToWebCalendarMessage:false,width:600,height:430,heading:this.getText(calendarDiv,"calendar3.wizard.subcalendar.create.heading"),id:"create-calendar"},options||{});
var subCalendarSubscriptionWizardDialog=calendarDiv.data(mergedOptions.name)||this.createSubCalendarCreationWizardDialog(calendarDiv,mergedOptions);
calendarDiv.data(mergedOptions.name,subCalendarSubscriptionWizardDialog);
return subCalendarSubscriptionWizardDialog
},createSubCalendarCreationWizardDialog:function(calendarDiv,options){var subCalendarCreationWizardDialog=new AJS.Dialog(options.width,options.height,options.id);
subCalendarCreationWizardDialog.addHeader(options.heading);
subCalendarCreationWizardDialog.addPanel(options.heading,AJS.template.load("create-subcalendar-wiz-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"create-calendar-panel");
var dialogContent=subCalendarCreationWizardDialog.getCurrentPanel().body;
if(options.showSubscribeToWebCalendarMessage){$(".no-subcalendars-message",dialogContent).removeClass("hidden").find(".subscribe-to-web-calendar").click(function(){subCalendarCreationWizardDialog.hide();
var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"subscription");
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
return false
})
}else{dialogContent=subCalendarCreationWizardDialog.getCurrentPanel().body
}$(".subcalendar-type-local",dialogContent).click(function(){subCalendarCreationWizardDialog.hide();
var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"local");
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialog.getCurrentPanel().body).focus()
});
$(".subcalendar-type-people",dialogContent).click(function(){subCalendarCreationWizardDialog.hide();
var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"people");
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialog.getCurrentPanel().body).focus()
});
$(".subcalendar-type-jira",dialogContent).click(function(){subCalendarCreationWizardDialog.hide();
if(CalendarPlugin.getParameter(calendarDiv,"hasJiraLink")==="true"){var subCalendarDialog=CalendarPlugin.getSubCalendarEditDialog(calendarDiv,"jira");
var subCalendarDialogPanel=subCalendarDialog.getCurrentPanel();
subCalendarDialogPanel.page.header.empty().text(CalendarPlugin.getText(calendarDiv,"calendar3.createjiracalendar"));
CalendarPlugin.showDialogInUpdatedHeight(subCalendarDialog);
$("input[name='name']",subCalendarDialogPanel.body).focus()
}else{var appLinksNotSetupDialog=new AJS.Dialog(512,200);
appLinksNotSetupDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.applinksnotsetup.title"));
appLinksNotSetupDialog.addPanel("",$(document.createElement("div")).append($(document.createElement("div")).text(CalendarPlugin.getText(calendarDiv,"calendar3.applinksnotsetup.desc"))).append($(document.createElement("br"))).append($(document.createElement("div")).html(CalendarPlugin.getParameter(calendarDiv,"currentUserSiteAdmin")==="true"?AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.applinksnotsetup.learnhowto"),CalendarPlugin.getText(calendarDiv,"calendar3.applinksnotsetup.learnhowto.url")):AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.applinksnotsetup.contactadmin"),CalendarPlugin.getParameter(calendarDiv,"baseUrl")))).html(),"applinks-not-setup");
appLinksNotSetupDialog.addButton(CalendarPlugin.getText(calendarDiv,"ok"),function(){appLinksNotSetupDialog.hide()
});
appLinksNotSetupDialog.show()
}});
subCalendarCreationWizardDialog.addLink(this.getText(calendarDiv,"close.name"),function(){subCalendarCreationWizardDialog.hide();
return false
});
return subCalendarCreationWizardDialog
},showDialogInUpdatedHeight:function(aDialog){if(!aDialog.getCurrentPanel().body.is(":visible")){aDialog.show()
}aDialog.updateHeight();
aDialog.popup.element.css("height","");
aDialog.popup.element.find("div.dialog-panel-body").css("height","");
aDialog.popup.element.find("form, div.buttons-container").css("margin-bottom","0");
aDialog.popup.changeSize(undefined,aDialog.popup.element.outerHeight());
aDialog.hide();
aDialog.show()
},setProcessingSubCalendar:function(calendarDiv,processing){calendarDiv.data("processingSubCalendar",processing)
},isProcessingSubCalendar:function(calendarDiv){return calendarDiv.data("processingSubCalendar")
},getDeleteSubCalendarConfirmationDialog:function(calendarDiv,subCalendarId){var deleteSubCalendarConfirmationDialog=calendarDiv.data("deleteSubCalendarConfirmationDialog")||this.createDeleteSubCalendarConfirmationDialog(calendarDiv);
calendarDiv.data("deleteSubCalendarConfirmationDialog",deleteSubCalendarConfirmationDialog);
$("input[name='subCalendarId']",deleteSubCalendarConfirmationDialog.getCurrentPanel().body).val(subCalendarId);
return deleteSubCalendarConfirmationDialog
},createDeleteSubCalendarConfirmationDialog:function(calendarDiv){var deleteConfirmationDialog=new AJS.Dialog(550,335);
deleteConfirmationDialog.addHeader(this.getText(calendarDiv,"calendar3.heading.confirmdeletesubcalendar"));
deleteConfirmationDialog.addPanel(this.getText(calendarDiv,"calendar3.heading.confirmdeletesubcalendar"),AJS.template.load("subcalendar-delete-confirmation-template-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"delete-subcalendar-confirmation-panel");
var dialogContent=deleteConfirmationDialog.getCurrentPanel().body;
$("form.sub-calendar-delete-confirm",dialogContent).submit(function(){return false
});
deleteConfirmationDialog.addButton(CalendarPlugin.getText(calendarDiv,"calendar3.deletecalendarbutton"),function(){if(!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
var subCalendarId=$("input[name='subCalendarId']",dialogContent).val();
CalendarPlugin._deleteSubCalendarInternal(calendarDiv,subCalendarId,function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE);
deleteConfirmationDialog.hide();
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},function(responseEntity){if(responseEntity.success){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendarId));
CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE);
CalendarPlugin.removeSubCalendarEventSource(calendarDiv,subCalendarId);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv)
}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE)
}deleteConfirmationDialog.hide();
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
})
}return false
});
deleteConfirmationDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){deleteConfirmationDialog.hide();
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
return false
});
return deleteConfirmationDialog
},deleteSubCalendar:function(calendarDiv,subCalendar){var subCalendarId=subCalendar.subscriptionId||subCalendar.id;
if(!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setProcessingSubCalendar(calendarDiv,true);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
$.ajax({cache:false,data:{subCalendarId:subCalendarId},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_DELETE);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false)
},success:function(responseEntity){var subCalendarEditDialog=calendarDiv.data("subCalendarEditFormDialog");
if(subCalendarEditDialog){subCalendarEditDialog.hide()
}var deleteSubCalendarConfirmationDialog=CalendarPlugin.getDeleteSubCalendarConfirmationDialog(calendarDiv,subCalendarId),dialogContent=deleteSubCalendarConfirmationDialog.getCurrentPanel().body,calendarToDeleteSpan=$(".calendar-to-delete",dialogContent);
calendarToDeleteSpan.removeAttr("ThreeDots").empty().append($(document.createElement("span")).addClass("ellipsis_text").text(subCalendar.name));
if(responseEntity.subscriptionCount){$(".subscriber-count",dialogContent).text(responseEntity.subscriptionCount.toString());
$(".has-subscribers-warning",dialogContent).removeClass("hidden")
}else{$(".has-subscribers-warning",dialogContent).addClass("hidden")
}CalendarPlugin.setProcessingSubCalendar(calendarDiv,false);
var escapeKeyListener=function(jsEvent){if(27===jsEvent.keyCode){CalendarPlugin.setProcessingSubCalendar(calendarDiv,false);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
$(document).unbind("keypress",escapeKeyListener)
}};
$(document).keypress(escapeKeyListener);
deleteSubCalendarConfirmationDialog.show();
calendarToDeleteSpan.ThreeDots()
},type:"GET",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars/links.json")})
}},_deleteSubCalendarInternal:function(calendarDiv,subCalendarId,errorCallback,successCallback){var requestData={subCalendarId:subCalendarId};
if(CalendarPlugin.getParameter(calendarDiv,"include")){requestData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:requestData,dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){if(errorCallback){errorCallback(XMLHttpRequest,textStatus,errorThrown)
}},success:function(responseEntity){if(successCallback){successCallback(responseEntity)
}},type:"DELETE",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars.json")})
},addSubCalendarEventSource:function(calendarDiv,subCalendarId){var visibleEventSources=calendarDiv.data("visibleEventSources")||{};
if(!visibleEventSources[subCalendarId]){visibleEventSources[subCalendarId]=this.getSubCalendarEventSource(calendarDiv,subCalendarId);
this.getCalendarPanel(calendarDiv).fullCalendar("addEventSource",visibleEventSources[subCalendarId]);
calendarDiv.data("visibleEventSources",visibleEventSources)
}},removeSubCalendarEventSource:function(calendarDiv,subCalendarId){var visibleEventSources=calendarDiv.data("visibleEventSources")||{};
if(visibleEventSources[subCalendarId]){this.getCalendarPanel(calendarDiv).fullCalendar("removeEventSource",visibleEventSources[subCalendarId]);
visibleEventSources[subCalendarId]=null;
calendarDiv.data("visibleEventSources",visibleEventSources)
}},isRequireOauth:function(XMLHttpRequest){var authHeader=XMLHttpRequest.getResponseHeader("WWW-Authenticate")||"";
var realmRegEx=/OAuth realm\=\"([^\"]+)\"/;
var matches=realmRegEx.exec(authHeader);
if(matches){return matches[1]
}else{return null
}},isHttpsServer:function(calendarDiv){return CalendarPlugin.getParameter(calendarDiv,"baseUrl").substring(5,0).toLowerCase()!="https"
},getSubCalendarEventSource:function(calendarDiv,subCalendarId){var eventSources=calendarDiv.data("eventSources")||{};
var getSubCalendarEventsRetrieveQueue=function(_calendarDiv,_subCalendarId){var retrieveEventsQueue=_calendarDiv.data("retrieveEventsQueue")||{};
if(!retrieveEventsQueue[_subCalendarId]){retrieveEventsQueue[_subCalendarId]=[]
}_calendarDiv.data("retrieveEventsQueue",retrieveEventsQueue);
return retrieveEventsQueue[_subCalendarId]
};
var eventSource=eventSources[subCalendarId]||function(startDate,endDate,reportEventsAndPopCallback){if(!(isNaN(startDate.getTime())||isNaN(endDate.getTime()))){var subCalendarEventsRetrieveQueue=getSubCalendarEventsRetrieveQueue(calendarDiv,subCalendarId);
for(var getEventsRequestIndex=0;
getEventsRequestIndex<subCalendarEventsRetrieveQueue.length;
++getEventsRequestIndex){var aRequest=subCalendarEventsRetrieveQueue.shift();
if(!aRequest.aborted&&aRequest.xhr.readyState!==4){try{aRequest.xhr.abort()
}catch(err){}aRequest.xhr.aborted=true
}}var xhr=$.ajax({cache:false,data:{subCalendarId:subCalendarId,userTimeZoneId:CalendarPlugin.getParameter(calendarDiv,"userTimeZoneId"),start:$.fullCalendar.formatDate(new Date(startDate.getTime()-(1000*60*60*24*30)),"u"),end:$.fullCalendar.formatDate(new Date(endDate.getTime()+(1000*60*60*24*30)),"u")},dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){if(CalendarPlugin.isRequireOauth(XMLHttpRequest)){var responseEntity=$.parseJSON(XMLHttpRequest.responseText);
var jiraOauthErrorsContainer=$(".jira-calendars-oauth-warnings",calendarDiv);
var oAuthApproveContainerClass="oauth-approve-"+subCalendarId;
var oAuthApproveMessageContainer=$("."+oAuthApproveContainerClass,jiraOauthErrorsContainer);
if(!oAuthApproveMessageContainer.length){oAuthApproveMessageContainer=$(document.createElement("div")).addClass(oAuthApproveContainerClass+" oauth-approve").html(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.oauth.loginapprovetoseeeventsof"),$(document.createElement("span")).text(CalendarPlugin.getText(calendarDiv,"calendar3.oauth.loginandauthorize")).html(),$(document.createElement("span")).text(responseEntity.subCalendarName).html())).appendTo(jiraOauthErrorsContainer).find(".approve-dance").click(function(){AppLinks.authenticateRemoteCredentials(responseEntity.oAuthUrl,function(){$("."+oAuthApproveContainerClass,jiraOauthErrorsContainer).remove();
CalendarPlugin.reloadSubCalendar(calendarDiv,subCalendarId)
},function(){alert(CalendarPlugin.getText(calendarDiv,"calendar3.oauth.trydancingagain"))
});
return false
})
}}else{if(XMLHttpRequest.status==403){CalendarPlugin.showRestrictedCalendarsWarning(calendarDiv)
}else{if(textStatus!=="abort"){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendarId))
}}}reportEventsAndPopCallback([])
},success:function(events,status){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_LIST_EVENTS+CalendarPlugin.getStringAsHex(subCalendarId));
reportEventsAndPopCallback((status==="success")?events:[])
},type:"GET",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/events.json")});
subCalendarEventsRetrieveQueue.push({xhr:xhr})
}};
eventSources[subCalendarId]=eventSource;
calendarDiv.data("eventSources",eventSources);
return eventSource
},isCalendarInEditMode:function(calendarDiv){return this.getParameter(calendarDiv,"readOnly")!=="true"
},isEventEditable:function(calendarDiv,event){return this.isCalendarInEditMode(calendarDiv)&&this.isSubCalendarEventsUpdatable(calendarDiv,this.getSubCalendar(calendarDiv,event.subCalendarId))&&event.editable
},getEventDetailsDialog:function(calendarDiv,event,jsEvent){var eventSubCalendar=CalendarPlugin.getSubCalendar(calendarDiv,event.subCalendarId);
var eventDetailsContainer=$(document.createElement("div")).addClass("event-details-container").html(AJS.template($("script[title='event-details-template-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")+"']")[0].text).fillHtml({eventClassName:$("<span/>").text((event.className[0]||"")+(CalendarPlugin.getSubCalendar(calendarDiv,event.subCalendarId).eventInviteesSupported?" with-invites":"")).html(),eventIconLinkClass:event.iconLink?"event-icon-withlink":"",eventIconLink:event.iconLink||"#",additionalEventIconLinkClasses:"",eventPerson:"",eventIconUrl:$("<a/>").attr("href",event.iconUrl).attr("href"),eventTimeClass:event.allDay?"allDayEvent":"",allDayText:$("<span/>").text(CalendarPlugin.getText(calendarDiv,"calendar3.allday")).html(),eventDate:$("<span/>").text($.fullCalendar.formatDate(event.start,"ddd dd/MM")).html(),indicatorClass:"",eventStartTime:$("<span/>").text(event.localizedStartTime).html(),eventEndTime:$("<span/>").text(event.localizedEndTime).html(),eventSubCalendarColor:event.textColor,eventTitle:$("<span/>").text(event.title).html(),additionalSubCalendarNameClass:"true"!==CalendarPlugin.getParameter(calendarDiv,"showSubCalendarPreviewLinks")?"hidden":"",subCalendarPreviewLink:AJS.format("{0}/calendar/previewcalendar.action?subCalendarId={1}",CalendarPlugin.getParameter(calendarDiv,"baseUrl"),encodeURIComponent(eventSubCalendar.subscriptionId||eventSubCalendar.id)),subCalendarName:$("<span/>").text(eventSubCalendar.name).html(),issueKey:$("<span/>").text(event.extraProperties?event.extraProperties.issueKey||"":"").html(),issueSummary:$("<span/>").text(event.extraProperties?event.extraProperties.issueSummary||"":"").html(),projectName:$("<span/>").text(event.extraProperties?event.extraProperties.projectName||"":"").html(),versionNumber:$("<span/>").text(event.extraProperties?event.extraProperties.versionNumber||"":"").html(),eventDescription:$("<span/>").append(event.description||"").html(),eventUrl:event.url?$("<a/>").attr("href",event.url).attr("href"):"#",eventUrlAlias:event.url?(event.urlAlias||event.url):"",inviteesHtml:(function(){var eventSubCalendar=CalendarPlugin.getSubCalendar(calendarDiv,event.subCalendarId);
var eventSubCalendarType=eventSubCalendar.subscriptionType||eventSubCalendar.type;
if(event.invitees&&(eventSubCalendarType!=="people"||event.invitees.length>1)){var inviteeList=$(document.createElement("ul"));
$.each(event.invitees,function(inviteeIdx,invitee){$(document.createElement("li")).append($(document.createElement("img")).addClass("invitee-avatar").attr({src:invitee.avatarIconUrl,title:invitee.displayName})).appendTo(inviteeList)
});
return $(document.createElement("div")).append(inviteeList).html()
}return null
})()||"",eventExtraPropertiesRenderered:(function(){if(event.extraPropertiesTemplate){return AJS.template($("script[title='"+event.extraPropertiesTemplate+"-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")+"']")[0].text).fillHtml(event.extraProperties||{}).toString()
}return""
})()}).toString());
var eventDisplayDialog=AJS.InlineDialog($(jsEvent.currentTarget),CalendarPlugin.dialogSequence++,function(contents,trigger,showPopup){eventDetailsContainer.appendTo(contents.empty());
showPopup()
},{hideDelay:0,noBind:true,isRelativeToMouse:true,showDelay:0,width:360,hideCallback:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,false)
},initCallback:function(){CalendarPlugin.setSuppressEventToolTip(calendarDiv,true)
}});
if(CalendarPlugin.isEventEditable(calendarDiv,event)){var editControls=$(".edit-controls",eventDetailsContainer).removeClass("hidden");
$(".event-edit",editControls).unbind("click").click(function(){eventDisplayDialog.hide();
CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,event);
return false
});
$(".event-delete",editControls).unbind("click").click(function(){CalendarPlugin.getEventDeleteConfirmationDialog(calendarDiv,event).show();
return false
})
}return eventDisplayDialog
},getEventDeleteConfirmationDialog:function(calendarDiv,anEvent){var confirmEventDeleteDialog;
var deleteEventFunction=function(options,_confirmEventDeleteDialog){if(!CalendarPlugin.isProcessingEvent(calendarDiv)){CalendarPlugin.setProcessingEvent(calendarDiv,true);
CalendarPlugin.deleteEvent(calendarDiv,options,function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_EVENT_DELETE);
_confirmEventDeleteDialog.hide();
CalendarPlugin.setProcessingEvent(calendarDiv,false)
},function(responseEntity){if(responseEntity.success){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_EVENT_DELETE);
if(options.singleInstance){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("removeEvents",[anEvent.id])
}else{CalendarPlugin.reloadSubCalendar(calendarDiv,anEvent.subCalendarId)
}}else{CalendarPlugin.setGenericErrors(calendarDiv,CalendarPlugin.getText(calendarDiv,"calendar3.error.unknown"),CalendarPlugin.ERROR_CLASS_EVENT_DELETE)
}_confirmEventDeleteDialog.hide();
CalendarPlugin.setProcessingEvent(calendarDiv,false)
});
return false
}};
if(anEvent.recur){confirmEventDeleteDialog=new AJS.Dialog(550,210);
confirmEventDeleteDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.heading.confirmdeleterecurringevent"));
confirmEventDeleteDialog.addPanel("",AJS.template.load("confirm-recurring-event-delete-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"delete-event-confirmation-panel");
var deleteDialogPanel=confirmEventDeleteDialog.getCurrentPanel().body;
$(".delete-this-instance-only",deleteDialogPanel).click(function(){deleteEventFunction({subCalendarId:anEvent.subCalendarId,uid:anEvent.id,recurrenceId:anEvent.recurId||"",originalStart:anEvent.originalStart||"",singleInstance:true},confirmEventDeleteDialog);
return false
});
$(".delete-future-instances-only",deleteDialogPanel).click(function(){deleteEventFunction({subCalendarId:anEvent.subCalendarId,uid:anEvent.id,recurUntil:$.fullCalendar.formatDate(anEvent.start,"yyyyMMdd")},confirmEventDeleteDialog);
return false
});
$(".delete-all-instances",deleteDialogPanel).click(function(){deleteEventFunction({subCalendarId:anEvent.subCalendarId,uid:anEvent.id},confirmEventDeleteDialog);
return false
});
confirmEventDeleteDialog.addLink(CalendarPlugin.getText(calendarDiv,"cancel.name"),function(){confirmEventDeleteDialog.hide();
return false
})
}else{confirmEventDeleteDialog=new AJS.Dialog(280,130);
confirmEventDeleteDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.heading.confirmdeleteevent"));
confirmEventDeleteDialog.addPanel("",AJS.template.load("confirm-event-delete-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"delete-event-confirmation-panel");
confirmEventDeleteDialog.addButton(CalendarPlugin.getText(calendarDiv,"yes.name"),function(){deleteEventFunction({subCalendarId:anEvent.subCalendarId,uid:anEvent.id},confirmEventDeleteDialog)
});
confirmEventDeleteDialog.addLink(CalendarPlugin.getText(calendarDiv,"cancel.name"),function(){confirmEventDeleteDialog.hide();
return false
})
}return confirmEventDeleteDialog
},updateEvent:function(calendarDiv,data,errorCallback,successCallback){data.userTimeZoneId=CalendarPlugin.getParameter(calendarDiv,"userTimeZoneId");
$.ajax({cache:false,data:data,dataType:"json",error:function(XMLHttpRequest,textStatus,errorThrown){if(errorCallback){errorCallback(XMLHttpRequest,textStatus,errorThrown)
}},success:function(responseEntity){if(successCallback){successCallback(responseEntity)
}},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/events.json")})
},setSubCalendarSpinnerIconVisible:function(calendarDiv,visible){var spinnerImage=$(".calendar-panel .right-controls .spinner",calendarDiv);
var loadingStackSize=(spinnerImage.data("loadingStackSize")||0)+(visible?1:-1);
if(loadingStackSize>0){spinnerImage.removeClass("invisible")
}else{spinnerImage.addClass("invisible")
}spinnerImage.data("loadingStackSize",loadingStackSize)
},addDocumentationThemeSplitterResizeListener:function(calendarDiv){$("#splitter").bind("resize",function(){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("render")
})
},addSidebarToggleListener:function(calendarDiv){$("#personal-info-sidebar").bind("toggled",function(){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("render")
})
},fixConfluenceHeaderDropDownMenusAppearingBelowCalendar:function(){if($.browser.msie){$("#header-menu-bar .ajs-menu-item, #navigation .ajs-menu-bar").each(function(){$(this).hover(function(){$(".ajs-drop-down",this).parents().each(function(){var aParent=$(this);
var position=aParent.css("position");
if(position&&position!=="auto"){aParent.addClass("ie7-dropdown-menu-z-index-workaround")
}})
},function(){$(".ajs-drop-down",this).parents().removeClass("ie7-dropdown-menu-z-index-workaround")
})
})
}},initCalendarToolbar:function(calendarDiv){var updateDateDisplay=function(_calendarDiv){$(".date-display",_calendarDiv).html(CalendarPlugin.getCalendarPanel(_calendarDiv).fullCalendar("getView").title)
};
updateDateDisplay(calendarDiv);
$(".feedback-form-trigger",calendarDiv).click(function(){var feedbackDialog=new AJS.Dialog(700,512);
feedbackDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.pluginfeedback"));
feedbackDialog.addPanel("","<div class='loading-message'></div><iframe src='https://atlassian.wufoo.com/forms/confluence-calendar-plugin-feedback/' frameborder='0'></iframe>","calendar-feedback-dialog-panel");
var feedbackDialogContent=feedbackDialog.getCurrentPanel().body;
var loadingMessageDiv=$(".loading-message",feedbackDialogContent).text(CalendarPlugin.getText(calendarDiv,"calendar3.loading"));
$("iframe",feedbackDialogContent).load(function(){loadingMessageDiv.remove()
});
feedbackDialog.addButton(CalendarPlugin.getText(calendarDiv,"close.name"),function(){feedbackDialog.hide();
return false
});
feedbackDialog.show();
return false
});
var highlightViewButton=function(_calendarDiv,viewButton){$(".change-view",_calendarDiv).each(function(){$(this).closest("li").removeClass("active")
});
viewButton.closest("li").addClass("active")
};
highlightViewButton(calendarDiv,$(".change-view-"+CalendarPlugin.getParameter(calendarDiv,"defaultView"),calendarDiv));
$(".change-view",calendarDiv).click(function(){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("changeView",$(this).attr("data-view-name"));
updateDateDisplay(calendarDiv);
highlightViewButton(calendarDiv,$(this));
return false
});
var todayButton=$(".today",calendarDiv);
todayButton.click(function(){var todayButtonListItem=$(this).closest("li");
if(!todayButtonListItem.hasClass("disabled")){var todayDate=new Date();
CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("gotoDate",todayDate.getFullYear(),todayDate.getMonth(),todayDate.getDate());
updateDateDisplay(calendarDiv);
todayButtonListItem.addClass("disabled")
}return false
});
$(".page-prev",calendarDiv).click(function(){var calendarPanel=CalendarPlugin.getCalendarPanel(calendarDiv);
delete calendarPanel.fullCalendar("getView").daysMore;
if(calendarPanel.fullCalendar("getView").name==="basicDay"){calendarPanel.fullCalendar("incrementDate",0,0,-14)
}else{calendarPanel.fullCalendar("prev")
}updateDateDisplay(calendarDiv);
todayButton.closest("li").removeClass("disabled");
return false
});
$(".page-next",calendarDiv).click(function(){var calendarPanel=CalendarPlugin.getCalendarPanel(calendarDiv);
delete calendarPanel.fullCalendar("getView").daysMore;
if(calendarPanel.fullCalendar("getView").name==="basicDay"){calendarPanel.fullCalendar("incrementDate",0,0,14)
}else{calendarPanel.fullCalendar("next")
}updateDateDisplay(calendarDiv);
todayButton.closest("li").removeClass("disabled");
return false
})
},getStringAsHex:function(aString){var hashString="";
if(aString){var stringLength=aString.length;
for(var charIndex=0;
charIndex<stringLength;
++charIndex){var hashStringOfChar=aString.charCodeAt(charIndex);
hashString+=hashStringOfChar.length>1?hashStringOfChar:"0"+hashStringOfChar
}}return hashString
},formatDate:function(calendarDiv,date,format,formattedCallback){if(formattedCallback){var dateString=$.fullCalendar.formatDate(date,"ddMMyyyyHHmm");
$.ajax({cache:false,data:{date:dateString},dataType:"json",error:function(){formattedCallback(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.error.failedtoformatdate"),dateString))
},success:function(formattedDate){formattedCallback(formattedDate[0])
},url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/util/format/"+format)})
}},initWhatsNew:function(calendarDiv){if(this.getParameter(calendarDiv,"showWhatsNew")==="true"){var whatsNewContainer=$(".calendar-whatsnew").removeClass("hidden");
whatsNewContainer.find("a").click(function(jsEvent){var newFeaturesDialog=AJS.InlineDialog($(this),CalendarPlugin.dialogSequence++,function(contents,trigger,showPopup){contents.empty().html(AJS.template.load("whatsnew-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString());
$(".dismiss",contents).click(function(){CalendarPlugin.suppressMessage(calendarDiv,"MESSAGE_KEY_PREFIX_WHATSNEW_"+CalendarPlugin.getParameter(calendarDiv,"pluginVersion"),function(){newFeaturesDialog.hide();
whatsNewContainer.addClass("hidden")
});
return false
});
showPopup()
},{offsetX:-100,width:300});
newFeaturesDialog.show(jsEvent);
return false
})
}},getSubCalendarRestrictionsDialog:function(calendarDiv,subCalendar){var restrictionsDialog=new AJS.Dialog(410,300);
restrictionsDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.restrictsubcalendar"));
restrictionsDialog.addPanel("",AJS.template.load("calendar-restrictions-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"setup-calendar-panel");
var restrictionsForm=$("form",restrictionsDialog.getCurrentPanel().body);
restrictionsForm.submit(function(){var getUserRestrictions=function(restrictionsGroup){return $.map($(".permitted-entity",restrictionsGroup),function(permittedEntity){var entity=$(permittedEntity).data("entity");
return $.isPlainObject(entity)?entity.name:null
})
};
var getGroupRestrictions=function(permissionsGroup){return $.map($(".permitted-entity",permissionsGroup),function(permittedEntity){var entity=$(permittedEntity).data("entity");
return typeof entity==="string"?entity:null
})
};
var requestData={subCalendarId:$("input[name='subCalendarId']",restrictionsForm).val()};
var viewRestrictionsGroup=$(".view-permissions",restrictionsForm);
if(viewRestrictionsGroup.length){requestData.updateUsersPermittedToView=true;
requestData.usersPermittedToView=getUserRestrictions(viewRestrictionsGroup);
if(!requestData.usersPermittedToView.length){delete requestData.usersPermittedToView
}requestData.updateGroupsPermittedToView=true;
requestData.groupsPermittedToView=getGroupRestrictions(viewRestrictionsGroup);
if(!requestData.groupsPermittedToView.length){delete requestData.groupsPermittedToView
}}var editRestrictionsGroup=$(".edit-permissions",restrictionsForm);
if(editRestrictionsGroup.length){requestData.updateUsersPermittedToEdit=true;
requestData.usersPermittedToEdit=getUserRestrictions(editRestrictionsGroup);
if(!requestData.usersPermittedToEdit.length){delete requestData.usersPermittedToEdit
}requestData.updateGroupsPermittedToEdit=true;
requestData.groupsPermittedToEdit=getGroupRestrictions(editRestrictionsGroup);
if(!requestData.groupsPermittedToEdit.length){delete requestData.groupsPermittedToEdit
}}if(CalendarPlugin.getParameter(calendarDiv,"include")){requestData.include=CalendarPlugin.getParameter(calendarDiv,"include")
}if(!CalendarPlugin.isProcessingSubCalendar(calendarDiv)){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
$.ajax({cache:false,converters:{"text json":function(jsonObject){return jsonObject
}},data:requestData,dataType:"json",dataFilter:function(data){var subCalendarsResponseEntity=$.parseJSON(data);
if(subCalendarsResponseEntity.success){CalendarPlugin.mergeSubCalendarObjectsToArray(subCalendarsResponseEntity.payload)
}return subCalendarsResponseEntity
},error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false)
},success:function(responseEntity){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_SUB_CALENDAR_UPDATE);
CalendarPlugin.setSubCalendars(calendarDiv,responseEntity.payload);
CalendarPlugin.updateAvailableSubCalendarsInSubCalendarPanel(calendarDiv);
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.setProcessingSubCalendar(calendarDiv,false);
restrictionsDialog.hide()
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendars/restrictions.json")})
}return false
});
$("input[name='subCalendarId']",restrictionsForm).val(subCalendar.id||"");
var showHideHint=function(restrictionGroup){var permissionsTable=$(".permission-table",restrictionGroup);
var permittedEntities=$(".permitted-entities",permissionsTable);
if($(".permitted-entity",permittedEntities).length){restrictionGroup.addClass("has-restrictions");
permissionsTable.removeClass("hidden")
}else{restrictionGroup.removeClass("has-restrictions");
permissionsTable.addClass("hidden")
}};
var getRestrictionGroup=function(restrictionsFieldGroup){return $("input[name='restriction-type']:checked",restrictionsFieldGroup).val()==="view"?$(".view-permissions",restrictionsFieldGroup):$(".edit-permissions",restrictionsFieldGroup)
};
var addUsersToPermissionFieldGroup=function(restrictionsFieldGroup,users,addUsersToOfList){var restrictionGroup=getRestrictionGroup(restrictionsFieldGroup);
var permittedEntities=$(".permitted-entities",restrictionGroup);
var isUserAdded=function(_userName){return $(".permitted-entity",permittedEntities).filter(function(){var permittedEntity=$(this).data("entity");
return $.isPlainObject(permittedEntity)&&permittedEntity.name===_userName
}).length
};
var usersArray;
if($.isPlainObject(users)){usersArray=[users]
}else{if($.isArray(users)){usersArray=users
}}if($.isArray(usersArray)){$.each(usersArray,function(userIdx,user){if(!isUserAdded(user.name)){var permittedEntity=$(document.createElement("tr")).addClass("permitted-entity").append($(document.createElement("td")).append($(document.createElement("img")).attr("src",user.avatarUrl)).append($(document.createElement("span")).text(user.fullName).append($(document.createElement("span")).addClass("user-name").text("("+user.name+")")))).append($(document.createElement("td")).addClass("delete-permitted-entity").append($(document.createElement("a")).addClass("remove").attr("href","#").attr("title",CalendarPlugin.getText(calendarDiv,"delete.name")).text(CalendarPlugin.getText(calendarDiv,"delete.name")).click(function(){$(this).closest("tr").remove();
showHideHint(restrictionGroup);
return false
}))).data("entity",user);
if(addUsersToOfList){permittedEntity.prependTo(permittedEntities)
}else{permittedEntities.append(permittedEntity)
}}});
$(".error",restrictionsFieldGroup).empty()
}showHideHint(restrictionGroup)
};
var addGroupsToPermissionFieldGroup=function(restrictionsFieldGroup,groupNames,validate,addGroupsToTopOfList){var restrictionGroup=getRestrictionGroup(restrictionsFieldGroup);
var permittedEntities=$(".permitted-entities",restrictionGroup);
var isGroupAdded=function(_groupName){return $(".permitted-entity",permittedEntities).filter(function(){var permittedEntity=$(this).data("entity");
return(typeof permittedEntity==="string")&&permittedEntity===_groupName
}).length
};
if(groupNames.length){var addGroupNames=function(groupNamesToBuild){$.each(groupNamesToBuild,function(groupNameIdx,groupName){groupName=$.trim(groupName);
if(groupName&&!isGroupAdded(groupName)){var permittedEntity=$(document.createElement("tr")).addClass("permitted-entity").append($(document.createElement("td")).append($(document.createElement("img")).attr("src",CalendarPlugin.getParameter(calendarDiv,"baseUrl")+"/images/icons/group_16.gif")).append($(document.createElement("span")).text(groupName))).append($(document.createElement("td")).addClass("delete-permitted-entity").append($(document.createElement("a")).addClass("remove").attr("href","#").attr("title",CalendarPlugin.getText(calendarDiv,"delete.name")).text(CalendarPlugin.getText(calendarDiv,"delete.name")).click(function(){$(this).closest("tr").remove();
showHideHint(restrictionGroup);
return false
}))).data("entity",groupName);
if(addGroupsToTopOfList){permittedEntity.prependTo(permittedEntities)
}else{permittedEntities.append(permittedEntity)
}}})
};
var errorContainer=$(".error",restrictionsFieldGroup);
if(validate){var validGroupNames;
var invalidGroupNames;
$.ajax({cache:false,data:{groupNames:$.map(groupNames,function(groupName){return $.trim(groupName)
})},dataType:"json",success:function(_validGroupNames){validGroupNames=_validGroupNames;
invalidGroupNames=$.map(groupNames,function(groupName){return $.inArray($.trim(groupName),validGroupNames)===-1?$.trim(groupName):null
});
addGroupNames(validGroupNames);
errorContainer.empty();
if(invalidGroupNames.length){errorContainer.text(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.error.invalidgroupnames"),invalidGroupNames.join(", ")))
}showHideHint(restrictionGroup)
},type:"GET",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/util/validate/group.json")})
}else{errorContainer.empty();
addGroupNames(groupNames);
showHideHint(restrictionGroup)
}}};
$(".field-group-permissions",restrictionsForm).each(function(){var restrictionsFieldGroup=$(this);
$(".permissions-details",restrictionsFieldGroup).each(function(permissionsFieldGroupIdx){var permissionsFieldGroup=$(this);
var userAutoCompleteInput=$(".autocomplete-user",restrictionsFieldGroup);
userAutoCompleteInput.bind("selected.autocomplete-user",function(e,selection){addUsersToPermissionFieldGroup(restrictionsFieldGroup,{name:selection.content.username,fullName:selection.content.title,avatarUrl:selection.content.thumbnailLink.href},true);
userAutoCompleteInput.val("")
}).focus(function(){if(userAutoCompleteInput.hasClass("with-hint")){userAutoCompleteInput.removeClass("with-hint").val("")
}}).blur(function(){if(!userAutoCompleteInput.val()){userAutoCompleteInput.addClass("with-hint").val(CalendarPlugin.getText(calendarDiv,"calendar3.restrict.enterusername"))
}}).keydown(function(jsEvent){if(jsEvent.keyCode===13&&!$(".autocomplete .aui-dropdown .active").length){setTimeout(function(){var userAutoCompleteInputValue=userAutoCompleteInput.val();
if(userAutoCompleteInputValue){addGroupsToPermissionFieldGroup(restrictionsFieldGroup,userAutoCompleteInputValue.split(","),true,true);
userAutoCompleteInput.val("")
}else{restrictionsForm.submit()
}},300);
$(".autocomplete .aui-dropdown .no-results").trigger("click");
return false
}});
$(".group-picker-trigger",permissionsFieldGroup).click(function(){var callbackName="Team_Calendars_group_picker_callback_"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")+"_"+permissionsFieldGroupIdx;
window[callbackName]=function(groupNames){addGroupsToPermissionFieldGroup(restrictionsFieldGroup,groupNames.split(","),false,true)
};
window.open(CalendarPlugin.getParameter(calendarDiv,"baseUrl")+"/spaces/opengrouppicker.action?key=ds&startIndex=0&actionName=dosearchgroups.action&onPopupSubmit="+encodeURIComponent(callbackName),callbackName,"dependent=1,height=512,width=384,resizable=1,status=0").focus();
return false
})
})
});
restrictionsDialog.addButton(CalendarPlugin.getText(calendarDiv,"ok"),function(){restrictionsForm.submit()
});
restrictionsDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){restrictionsDialog.hide();
return false
});
$(".field-group-permissions",restrictionsForm).each(function(){var restrictionsFieldGroup=$(this);
var viewRestrictionsRadio=$(".option-view-restrictions",restrictionsFieldGroup);
var editRestrictionsRadio=$(".option-edit-restrictions",restrictionsFieldGroup);
addUsersToPermissionFieldGroup(restrictionsFieldGroup,subCalendar.usersPermittedToEdit||[]);
addGroupsToPermissionFieldGroup(restrictionsFieldGroup,subCalendar.groupsPermittedToEdit||[]);
editRestrictionsRadio.removeAttr("checked");
viewRestrictionsRadio.attr("checked","checked");
addUsersToPermissionFieldGroup(restrictionsFieldGroup,subCalendar.usersPermittedToView||[]);
addGroupsToPermissionFieldGroup(restrictionsFieldGroup,subCalendar.groupsPermittedToView||[])
});
return restrictionsDialog
},getSubCalendarFeatureDiscoveryDialog:function(calendarDiv,subCalendar){var discoveryDialog=new AJS.Dialog(596,340);
discoveryDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.featurediscovery.title"));
discoveryDialog.addPanel("",AJS.template.load("calendar-feature-discovery-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"setup-calendar-panel");
var dialogBody=discoveryDialog.getCurrentPanel().body;
if(this.isSubCalendarSubscribable(subCalendar)){$(".subscribe",dialogBody).click(function(){discoveryDialog.hide();
var iCalAddrDialog=CalendarPlugin.getSubCalendarIcalAddressDialog(calendarDiv,subCalendar);
iCalAddrDialog.show();
$(".ical-address-field",iCalAddrDialog.getCurrentPanel().body).focus().select();
return false
})
}else{$(".subscribe",dialogBody).addClass("hidden")
}var addEventFeature=$(".add-event",dialogBody).click(function(){discoveryDialog.hide();
CalendarPlugin.setEventEditDialogVisible(calendarDiv,true,{start:new Date(),localizedStartTime:CalendarPlugin.getDefaultStartTime(calendarDiv),localizedEndTime:CalendarPlugin.getDefaultEndTime(calendarDiv),allDay:(calendarDiv.data(CalendarPlugin.PREF_LAST_ALL_DAY_USED)||"true")==="true",subCalendarId:subCalendar.id});
return false
});
if(!(subCalendar&&this.isSubCalendarEventsUpdatable(calendarDiv,subCalendar))){addEventFeature.addClass("hidden")
}var restrictFeature=$(".restrict",dialogBody).click(function(){discoveryDialog.hide();
CalendarPlugin.getSubCalendarRestrictionsDialog(calendarDiv,subCalendar).show();
return false
});
if(!(subCalendar&&this.isSubCalendarAdministratable(calendarDiv,subCalendar))){restrictFeature.addClass("hidden")
}$(".share",dialogBody).click(function(){discoveryDialog.hide();
var shareDialog=CalendarPlugin.getSubCalendarShareDialog(calendarDiv,subCalendar);
shareDialog.show();
$(".share-address-field",shareDialog.getCurrentPanel().body).focus().select();
return false
});
var features=$(".feature",dialogBody);
if(!features.filter(function(){return $(this).hasClass("hidden")
}).length){$(".subscribe",dialogBody).addClass("hidden")
}if(features.filter(function(){return !$(this).hasClass("hidden")
}).length===2){$("table",dialogBody).addClass("two-columns")
}if(features.filter(function(){return !$(this).hasClass("hidden")
}).length===1){$("table",dialogBody).addClass("one-column")
}discoveryDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){discoveryDialog.hide()
});
return discoveryDialog
},getSubCalendarShareDialog:function(calendarDiv,subCalendar){var shareDialog=new AJS.Dialog({width:512,height:150}),dialogBody,restrictionsLink;
shareDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.share.title"));
shareDialog.addPanel("",AJS.template.load("subcalendar-share-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString(),"calendar-share-dialog-panel");
shareDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){shareDialog.hide();
return false
});
dialogBody=shareDialog.getCurrentPanel().body;
restrictionsLink=$(".share-restrictions-link",dialogBody);
$(".share-address-field",shareDialog.getCurrentPanel().body).val(AJS.format("{0}/calendar/previewcalendar.action?subCalendarId={1}",CalendarPlugin.getParameter(calendarDiv,"baseUrl"),encodeURIComponent(subCalendar.subscriptionId||subCalendar.id)));
if(CalendarPlugin.doesSubCalendarHaveRestrictions(subCalendar)){if(CalendarPlugin.isSubCalendarAdministratable(calendarDiv,subCalendar)){restrictionsLink.click(function(){shareDialog.hide();
CalendarPlugin.getSubCalendarRestrictionsDialog(calendarDiv,subCalendar).show()
})
}else{restrictionsLink.addClass("hidden")
}}else{$(".description",dialogBody).addClass("hidden")
}return shareDialog
},getResetUrlsDialog:function(calendarDiv,subCalendar){var resetPrivateUrlsDialog=new AJS.Dialog({width:512,height:235,id:"calendar-reset-private-urls-dialog"}),closeDialog=function(){resetPrivateUrlsDialog.hide();
resetPrivateUrlsDialog.remove()
};
resetPrivateUrlsDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.privateurl.reset.title"));
resetPrivateUrlsDialog.addPanel("",AJS.template.load("subcalendar-private-url-reset-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString(),"calendar-private-url-reset-dialog-panel");
var resetPrivateUrlsDialogBody=resetPrivateUrlsDialog.getCurrentPanel().body;
resetPrivateUrlsDialog.addButton(CalendarPlugin.getText(calendarDiv,"calendar3.privateurl.reset.button.label"),function(){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
var resetProgress=$(".reset-progress",resetPrivateUrlsDialogBody).addClass("reset-in-progress");
var resetButton=$("#calendar-reset-private-urls-dialog .subcalendar-private-url-reset-button").attr("disabled","disabled");
$.ajax({cache:false,success:function(){resetProgress.removeClass("reset-in-progress").addClass("reset-done");
$("#calendar-reset-private-urls-dialog .reset-cancel").text(CalendarPlugin.getText(calendarDiv,"close.name"));
resetButton.removeAttr("disabled");
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false)
},type:"POST",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/privateurl/reset/"+encodeURIComponent(subCalendar.id)),error:function(XMLHttpRequest,textStatus,errorThrown){resetButton.removeAttr("disabled");
CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_RESET_PRIVATE_URLS)
}})
},"subcalendar-private-url-reset-button");
resetPrivateUrlsDialog.addLink(CalendarPlugin.getText(calendarDiv,"cancel.name"),function(){closeDialog();
return false
},"reset-cancel");
$(".calendar-title",resetPrivateUrlsDialogBody).text(subCalendar.name);
$(".subscribe-to-calendar",resetPrivateUrlsDialogBody).click(function(){closeDialog();
CalendarPlugin.getSubCalendarIcalAddressDialog(calendarDiv,subCalendar).show();
return false
});
return resetPrivateUrlsDialog
},getSubCalendarIcalAddressDialog:function(calendarDiv,subCalendar){var showGoogleButton=CalendarPlugin.isHttpsServer(calendarDiv),subscriptionDialog=new AJS.Dialog({width:512,height:showGoogleButton?364:271,id:"calendar-ical-subscription-dialog"}),closeDialog=function(){subscriptionDialog.hide();
subscriptionDialog.remove()
};
subscriptionDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.privateurl.title"));
subscriptionDialog.addPanel("",AJS.template.load("subcalendar-ical-subscription-"+CalendarPlugin.getParameter(calendarDiv,"elementIdSuffix")).toString(),"calendar-ical-subscription-dialog-panel");
subscriptionDialog.addLink(CalendarPlugin.getText(calendarDiv,"close.name"),function(){closeDialog();
return false
});
var subscriptionDialogBody=subscriptionDialog.getCurrentPanel().body;
$(".reset-subscription-url",subscriptionDialogBody).click(function(){closeDialog();
CalendarPlugin.getResetUrlsDialog(calendarDiv,subCalendar).show();
return false
});
if(!showGoogleButton){$(".subscribe-or",subscriptionDialogBody).remove();
$(".subscribe-google-calendar",subscriptionDialogBody).remove()
}CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,true);
$.ajax({cache:false,success:function(data){$(".ical-address-field",subscriptionDialogBody).val(data).focus().select();
if(showGoogleButton){$("a.subscribe-google-calendar",subscriptionDialogBody).attr({href:"https://www.google.com/calendar/render?cid="+encodeURIComponent(data),title:AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.privateurl.google.tooltip"),subCalendar.name)})
}CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false)
},error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.setSubCalendarSpinnerIconVisible(calendarDiv,false);
CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_PRIVATE_URL)
},type:"GET",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/subcalendar/privateurl/"+encodeURIComponent(subCalendar.id))});
return subscriptionDialog
},initCalendarDiv:function(calendarDiv){this.initCalendarToolbar(calendarDiv);
this.initSubCalendarPanel(calendarDiv);
this.addDocumentationThemeSplitterResizeListener(calendarDiv);
this.addSidebarToggleListener(calendarDiv);
this.fixConfluenceHeaderDropDownMenusAppearingBelowCalendar();
this.initWhatsNew(calendarDiv);
$(document).keydown(function(event){if(event.keyCode===27){CalendarPlugin.getCalendarPanel(calendarDiv).fullCalendar("unselect")
}});
var showCalendarWizard=function(){if("true"===CalendarPlugin.getParameter(calendarDiv,"showCreateCalendarWizard")){CalendarPlugin.getSubCalendarCreationWizardDialog(calendarDiv,{name:"emptyCreateCalendarWizard",showSubscribeToWebCalendarMessage:true,height:440,heading:CalendarPlugin.getText(calendarDiv,"calendar3.welcometoconfluencecalendars"),id:"create-calendar-first-time"}).show()
}else{if("true"===CalendarPlugin.getParameter(calendarDiv,"showPopularSubCalendarsDialog")){CalendarPlugin.getSubCalendarSubscribeDialog(calendarDiv,{heading:CalendarPlugin.getText(calendarDiv,"calendar3.welcometoconfluencecalendars")}).show()
}}};
if("true"===CalendarPlugin.getParameter(calendarDiv,"showTimeZoneSetupDialog")){var timeZoneSetupDialog=new AJS.Dialog(512,200);
timeZoneSetupDialog.addHeader(CalendarPlugin.getText(calendarDiv,"calendar3.setup.title"));
timeZoneSetupDialog.addPanel("",AJS.template.load("calendar-setup-"+this.getParameter(calendarDiv,"elementIdSuffix")).toString(),"setup-calendar-panel");
var dialogContent=timeZoneSetupDialog.getCurrentPanel().body;
var timeZoneDesc=$(".user-time-zone-desc",dialogContent).text(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.setup.timezonenotsetup"),CalendarPlugin.getParameter(calendarDiv,"userTimeZoneId")));
var userTimeZoneSelectContainer=$(".user-time-zone-select",dialogContent);
$("select",userTimeZoneSelectContainer.removeClass("hidden")).change(function(){userTimeZoneSelectContainer.addClass("loading");
var setTimeZoneButton=$(".set-timezone-button").attr("disabled","disabled");
var selectedOption=$("option:selected",this);
$.ajax({cache:false,data:{timeZoneId:selectedOption.val()},error:function(XMLHttpRequest,textStatus,errorThrown){CalendarPlugin.showAjaxError(calendarDiv,XMLHttpRequest,textStatus,errorThrown,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE);
setTimeZoneButton.removeAttr("disabled");
userTimeZoneSelectContainer.removeClass("loading")
},success:function(){CalendarPlugin.setGenericErrors(calendarDiv,null,CalendarPlugin.ERROR_CLASS_CONFIG_UPDATE);
CalendarPlugin.setParameter(calendarDiv,"userTimeZoneId",selectedOption.attr("data-joda-timezone-id"));
timeZoneDesc.text(AJS.format(CalendarPlugin.getText(calendarDiv,"calendar3.setup.timezonenotsetup"),CalendarPlugin.getParameter(calendarDiv,"userTimeZoneId")));
setTimeZoneButton.removeAttr("disabled");
userTimeZoneSelectContainer.removeClass("loading")
},type:"PUT",url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences/timezone.json")})
});
timeZoneSetupDialog.addButton(CalendarPlugin.getText(calendarDiv,"ok"),function(){timeZoneSetupDialog.hide();
showCalendarWizard()
},"set-timezone-button");
timeZoneSetupDialog.show();
CalendarPlugin.suppressMessage(calendarDiv,"MESSAGE_KEY_TIMEZONE_SETUP")
}else{showCalendarWizard()
}}};
$("div.plugin-calendar").each(function(){var calendarDiv=$(this);
if(!CalendarPlugin.getParameter(calendarDiv,"defaultView")){var calendarPanel=CalendarPlugin.getCalendarPanel(calendarDiv).text(CalendarPlugin.getText(calendarDiv,"calendar3.loading"));
$.ajax({cache:false,dataType:"json",error:function(){calendarPanel.empty();
CalendarPlugin.init(calendarDiv)
},success:function(userPreference){CalendarPlugin.setParameter(calendarDiv,"defaultView",userPreference.view==="agendaDay"?"basicDay":userPreference.view);
calendarPanel.empty();
CalendarPlugin.init(calendarDiv)
},url:CalendarPlugin.getCalendarServiceBaseUrl(calendarDiv,"/preferences.json")})
}else{CalendarPlugin.init(calendarDiv)
}});
$(document).keydown(function(jsEvent){var doNotPreventDefault=true;
$(".aui-inline-dialog:visible:first .event-details-container").each(function(){if(jsEvent.keyCode===8||jsEvent.keyCode===46){$(".event-delete",this).click();
doNotPreventDefault=false
}});
return doNotPreventDefault
})
});

