-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathjquery.calendar.min.js
2 lines (2 loc) · 54.9 KB
/
jquery.calendar.min.js
1
2
/*! jQuery calendar 1.1.1 (c) github.com/teamdf/jquery-calendar | opensource.teamdf.com/license */
(function(e){"use strict";var t="cal";var n="1.1.1";var r="month";var s="week";var o={startdate:null,daystodisplay:null,startweek:null,startmonth:null,startyear:null,monthstodisplay:null,defaultcolor:"#255BA1",invalidcolor:"#888888",maskmonthlabel:"l",maskeventlabel:"g:i A",maskeventlabeldelimiter:"",maskeventlabelend:"",maskdatelabel:"D, jS",masktimelabel:{"00":"g:i <\\sp\\a\\n>A</\\sp\\a\\n>",noon:"\\N\\O\\O\\N"},resources:false,minwidth:130,minheight:null,overlapoffset:15,daytimestart:"00:00:00",daytimeend:"24:00:00",weekstart:1,dragincrement:"15 mins",gridincrement:"15 mins",creationsize:"15 mins",allowcreation:"both",allowmove:false,allowresize:false,allowselect:false,allowremove:false,allowoverlap:false,allownotesedit:false,allowhtml:false,easing:{eventupdate:"linear",eventremove:"linear",eventeditin:"linear",eventeditout:"linear",datechange:"linear"},eventcreate:e.noop,eventnotesedit:e.noop,eventremove:e.noop,eventselect:e.noop,eventmove:e.noop,eventresize:e.noop,eventdraw:e.noop,dayclick:e.noop,daydblclick:e.noop,onload:e.noop};var u={prevent:function(e){e.preventDefault()},scrollbarSize:function(){if(!u._scrollbarSize){var t=e(document.body),n=t.css({overflow:"hidden"}).width();n-=t.css({overflow:"scroll"}).width();if(!n)n=t.width()-t[0].clientWidth;t.css({overflow:""});u._scrollbarSize=n}return u._scrollbarSize},_scrollbarSize:false,selectrange:function(e,t){return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(e,t)}else if(this.createTextRange){var n=this.createTextRange();n.collapse(true);n.moveEnd("character",t);n.moveStart("character",e);n.select()}})},onscroll:function(n){var r=e(this),i=r.parent(".ui-"+t+"-container"),s=r.scrollLeft(),o=r.scrollTop(),u=i.data(t);if(u){i.find(".ui-"+t+"-timeline").scrollTop(o);i.find(".ui-"+t+"-dateline").scrollLeft(s);i.find(".ui-"+t+"-resourceline").scrollLeft(s)}},between:function(e,t,n){if(e instanceof Date){var r=e.getTime();return r>=t.getTime()&&r<=n.getTime()}else if(!isNaN(Number(e))){return e>=t&&e<=n}return false},inrange:function(e,t,n,r){return!(t.getTime()<n.getTime()||e.getTime()>r.getTime())},resource:function(e,t){var n=0;if(t.settings.resources!==false){for(var r in t.settings.resources){if(t.settings.resources.hasOwnProperty(r)){if(n==e){return{id:r,name:t.settings.resources[r]}}n++}}}return{id:null,name:null}},resourceIndex:function(t,n){var r=0;if(n.settings.resources!==false){if(e.isArray(n.settings.resources)){for(var i in n.settings.resources){if(n.settings.resources[i]==t){return r}r++}}else{for(var i in n.settings.resources){if(n.settings.resources.hasOwnProperty(i)){if(i==t){return r}r++}}}}return false},repetitions:function(n,r){var i=[],s,o,u,a,f,l,c;e:for(var h in r.repeat.rules.include){s=r.repeat.rules.include[h];o=r.begins>n.settings.startdate?r.begins:n.settings.startdate;u="until"in s?e[t].date(s.until):n.cache.enddate,a="interval"in s?+s.interval:1;if(r.begins>n.cache.enddate||u<=n.settings.startdate)continue;if("freq"in s){switch(s.freq){case"daily":f=a+" Day";break;case"weekly":f=a+" Week";break;case"monthly":f=a+" Month";break;case"yearly":f=a+" Year";break;default:continue e}l=r.begins.copy();if(r.begins<n.settings.startdate){l=l.incrementBy(f,Math.ceil(r.begins.getIncrementBetween(n.settings.startdate,f)))}else{l=l.incrementBy(f)}c=Math.ceil(l.getIncrementBetween(n.cache.enddate,f));for(var h=0;h<c;h++){i[l.getTime()]=l;l=l.incrementBy(f)}}}return i},overlaps:function(n,r,i){var s=e(this),o=s.data(t),u=[];if(o){var a=o.cache.events;for(var f in a){if(a.hasOwnProperty(f)&&a[f].begins<r&&a[f].ends>n&&a[f].resource===i){a[f].overlap={partial:true,inset:0,count:0,index:0,items:{},uid:f};u.push(a[f])}}if(u.length>1){var l=0;u.sort(function(e,t){return e.begins.getTime()-t.begins.getTime()});for(var c in u){if(u.hasOwnProperty(c)){u[c].overlap.index=l++;for(var h in u){if(c===h)continue;if(u.hasOwnProperty(h)&&!(u[c].overlap.uid in u[h].overlap.items)&&!(u[h].overlap.uid in u[c].overlap.items)&&u[c].begins<u[h].ends&&u[c].ends>u[h].begins&&u[c].resource===u[h].resource){u[c].overlap.items[u[h].overlap.uid]=u[h];u[h].overlap.items[u[c].overlap.uid]=u[c];u[c].overlap.count++;u[h].overlap.count++;if(u[c].begins.getTime()==u[h].begins.getTime()){u[c].overlap.partial=false;u[h].overlap.partial=false;u[h].overlap.inset=u[c].overlap.inset+1}else if(u[c].begins.getTime()<u[h].begins.getTime()){if(u[c].overlap.partial)u[h].overlap.inset++}else{if(u[h].overlap.partial)u[c].overlap.inset++}o.cache.events[u[c].overlap.uid]=u[c];o.cache.events[u[h].overlap.uid]=u[h]}}}}for(var f in u)u[f].elems.data(t,u[f])}s.data(t,o)}},errors:{eventParse:function(e,t){var n=new Error(e);n.type="EventParse";n.event=t;return n},icsParse:function(e,t,n){var r=new Error(e);r.type="ICSParse";r.line=t;r.value=n;return r}},parse:{_icalendar:{folds:/^\s(.*)$/,entry:/^([A-Za-z0-9-]+)((?:;[A-Za-z0-9-]+=(?:"[^"]+"|[^";:,]+)(?:,(?:"[^"]+"|[^";:,]+))*)*):(.*)$/,param:/;([A-Za-z0-9-]+)=((?:"[^"]+"|[^";:,]+)(?:,(?:"[^"]+"|[^";:,]+))*)/g,value:/,?("[^"]+"|[^";:,]+)/g,date:/^(\d{4})(\d\d)(\d\d)$/,time:/^(\d{4})(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)(Z?)$/,range:/^(\d{4})(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)(Z?)\/(\d{4})(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)(Z?)$/,offset:/^([+-])(\d\d)(\d\d)$/,duration:/^([+-])?P(\d+W)?(\d+D)?(T)?(\d+H)?(\d+M)?(\d+S)?$/,_rrule:function(e){var t=e.split(";"),n,r={};for(var i in t){n=t[i].split("=");r[n[0].toLowerCase()]=n[1].toLowerCase()}return r}},icalendar:function(n){var r=u.errors.icsParse,i=u.parse._icalendar,s="cal_begin",o=[],a=n.replace(/\r\n/g,"\n").split("\n"),f=null,l=null,c={repeat:{rules:{include:[],exclude:[]},dates:{include:[],exclude:[]}}};for(var h=a.length-1;h>0;h--){var p=i.folds.exec(a[h]);if(p){a[h-1]+=p[1];a[h]=""}}e.each(a,function(n,u){if(!u)return;switch(s){case"cal_begin":if(u.indexOf("BEGIN:VCALENDAR")==-1)throw new r("Expecting BEGIN:VCALENDAR but found '"+u+"' instead.",n,u);l={events:[]};s="cal_info";break;case"cal_info":if(u.indexOf("BEGIN:VEVENT")==0){f=e.extend(true,{},c);s="cal_event"}if(u.indexOf("END:VCALENDAR")==0){o.push(l);s="done"}if(s!=="cal_info")return;break;case"cal_event":if(u.indexOf("END:VEVENT")==0){l.events.push(f);s="cal_info"}if(s!=="cal_event")return;var a=i.entry.exec(u);if(!a){throw new r("Missing entry name.",n,u)}switch(a[1].toLowerCase()){case"uid":f.uid=a[3];break;case"dtstart":f.begins=e[t].date(a[3]);break;case"dtend":f.ends=e[t].date(a[3]);break;case"summary":f.title=a[3].replace(/\\([;,])/g,"$1").replace(/\\n/g,"\n");break;case"description":f.notes=a[3].replace(/\\([;,])/g,"$1").replace(/\\n/g,"\n");break;case"rrule":f.repeat.rules.include.push(i._rrule(a[3]));break;case"exrule":f.repeat.rules.exclude.push(i._rrule(a[3]));break;case"rdate":f.repeat.dates.include.push(e[t].date(a[3]));break;case"exdate":f.repeat.dates.exclude.push(e[t].date(a[3]));break}break}});if(s!=="done")throw new r("Unexpected end of file. Expecting END:VCALENDAR.",a.length,"");return o.length>0?o.pop():false}},event:{calculateElementCount:function(e){return Math.ceil(e.cache.begins.getDaysBetween(e.cache.ends,true))},update:function(n,r,i){var s=e(this),o=s.data(t),a=o&&o.calendar?o.calendar.data(t):false;if(a&&o){var f=o.elems;if("begins"in n)o.begins=e[t].date(n.begins);if("ends"in n)o.ends=e[t].date(n.ends);if("color"in n)o.colors=n.color?e[t].colors.generate(n.color):a.settings.defaultcolor;if("title"in n)o.title=n.title||null;if("notes"in n)o.notes=n.notes||"";if(o.ends<a.settings.startdate||o.begins>a.cache.enddate)return false;o.cache.ends=a.cache.enddate<o.ends?a.cache.enddate.addSeconds(-1):o.ends;o.cache.begins=a.settings.startdate>o.begins?a.settings.startdate.copy():o.begins;var l=a.settings.allowhtml?"html":"text";f.find("pre.details")[l](o.notes);f.find("p.title")[l](o.title||o.begins.format(a.settings.maskeventlabel)+(a.settings.maskeventlabelend!==""?a.settings.maskeventlabeldelimiter+o.ends.format(a.settings.maskeventlabelend):""));f.data(t,o);a.cache.events[o.uid]=o;o.calendar.data(t,a);u.draw[a.type].position.apply(f,[r,i]);return true}return false},edit:function(n){var r=n&&!e(this).is("div.ui-"+t+"-event")?e(this).parents("div.ui-"+t+"-event"):e(this),i=r.data(t),s=i&&i.calendar?i.calendar.data(t):false;if(s&&i){if(!s.settings.allownotesedit)return;var o=r.find("pre.details"),a=o.height();var f=s.settings.allowhtml?"html":"text";var l=e('<textarea class="details" />')[f](i.notes||"").css({boxShadow:"inset 0px 0px 6px "+i.colors.mainShadow}).on("mousedown."+t,function(e){e.stopPropagation()}).appendTo(r);if(r.height()<=30){var c=r.height()<=15?4:1,h=r.height()<=15?-1:0;r.unbind("dblclick."+t).stop(true,true);l.css({marginTop:h,left:c,right:c,height:a,border:"1px solid "+i.colors.mainSelected,borderTop:"none",borderTopLeftRadius:0,borderTopRightRadius:0,opacity:0,overflow:"hidden",zIndex:1}).animate({height:45,opacity:1},"fast",s.settings.easing.eventeditin,function(){e(this).css("overflow","scroll");o.detach();u.selectrange.apply(l,[i.notes.length||0,i.notes.length||0])})}else{o.detach();u.selectrange.apply(l,[i.notes.length||0,i.notes.length||0])}l.blur(function(){var n=i.notes!=e(this).val(),l=i.elems;i.notes=e(this).val();l.attr("title",i.notes||"");if(r.height()<=30){e(this).css("overflow","hidden");e(this).animate({height:a,opacity:0},125,s.settings.easing.eventeditout,function(){e(this).remove()})}else{e(this).remove()}l.append(o[f](i.notes||""));r.bind("dblclick."+t,u.event.edit);if(n){l.data(t,i);s.cache.events[i.uid]=i;i.calendar.data(t,s);s.settings.eventnotesedit.apply(i.calendar,[i.uid,i,l])}})}if(n){n.preventDefault();n.stopPropagation()}},select:function(n,r){var i=e(this),s=i.data(t),o=s&&s.calendar?s.calendar.data(t):false;if(o&&s){if(!o.settings.allowselect)return;if(n===undefined)n="fast";var a=s.calendar.find("div.ui-"+t+"-event.selected"),f=a.data(t);if(f&&f.uid===s.uid)return;var l=o.settings.eventselect.apply(s.calendar,[s.uid,s,i]);if(l===undefined||l){var c=s.elems;a.removeClass("selected");c.addClass("selected");u.draw[o.type].position.apply(c,[n,r]);u.draw[o.type].position.apply(a,[n,r])}}},remove:function(n,r,i){var s=n?e(this).closest("div.ui-"+t+"-event"):e(this),o=s.data(t),u=o&&o.calendar?o.calendar.data(t):false;if(u&&o){if(r===undefined)r="fast";if(!i)i=u.settings.easing.eventremove;var a=o.elems,f=u.settings.eventremove.apply(o.calendar,[o.uid,o,a,n]),l=function(){e(this).remove()};if(f===undefined||f){var c={width:0,height:0,fontSize:"0em",opacity:.1};delete u.cache.events[o.uid];o.calendar.data(t,u);switch(a.length){case 1:c.left="+="+s.width()/2;c.top="+="+s.height()/2;s.animate(c,r,i,l);break;case 2:var h=a.eq(0),p=a.eq(1),d=e.extend({},c),v=e.extend({},c);d.left="+="+a.eq(0).width();d.top=u.cache.dayHeight;v.top=0;h.delay(375).animate(d,r,i,l);p.animate(v,r,i,l);break;default:var m=0;a.each(function(){m+=e(this).width()});c.left=s.position().left+u.elements.container.scrollLeft()+m/2;c.top=u.cache.dayHeight/2;a.first().delay(375).animate(c,r,i,l);a.filter(":not(:first)").animate(c,r,i,l);break}}}if(n){n.preventDefault();n.stopPropagation()}}},drag:{start:function(n){var r=e(this),i=n&&!r.is("div.ui-"+t+"-event")?r.parents("div.ui-"+t+"-event"):r,s=null,o=i.data(t),a=o&&o.calendar?o.calendar.data(t):false;if(a&&o){var f={event:i,data:a,values:o,i:"cal_"+(new Date).getTime(),type:"resize"};u.drag[f.i]={started:false,startX:n.pageX,startY:n.pageY,lastX:n.pageX,lastY:n.pageY,deltaX:0,deltaY:0,incX:0,incY:0,obTime:o.begins.copy(),oeTime:o.ends.copy(),bTime:o.begins.roundToIncrement(a.settings.dragincrement),eTime:o.ends.roundToIncrement(a.settings.dragincrement)};i.stop(true,true);switch(true){case r.is(".ui-"+t+"-event"):f.lockBegins=Number(a.settings.startdate.format("Ymd"));f.lockEnds=Number(a.cache.enddate.format("Ymd"));f.lockDayBegins=Number(a.settings.daytimestart.replace(/[^0-9]/g,""));f.lockDayEnds=Number(a.settings.daytimeend.replace(/[^0-9]/g,""));f.type="move";e(document).bind("mousemove."+t,f,u.drag.move);break;case r.is(".resize-top"):f.lockDate=o.begins.format("Y-m-d");e(document).bind("mousemove."+t,f,u.drag.resizeB);break;case r.is(".resize-bottom"):f.lockDate=o.ends.format("Y-m-d");e(document).bind("mousemove."+t,f,u.drag.resizeE);break;default:delete u.drag[f.i];return true}e(document).bind("mouseup."+t,f,u.drag.end);n.stopPropagation()}},resizeB:function(n){var r=n.data.event,i=n.data.data,s=n.data.values,o=u.drag[n.data.i];o.deltaY=o.lastY-n.pageY;o.lastY=n.pageY;o.incY+=o.deltaY;if(o.deltaY==0)return true;if(!o.started&&(o.incY>5||o.incY<-5)){o.started=true;r.addClass("ui-dragging ui-resizing")}else if(o.started){var a=Math.round(o.incY/i.cache.dragHeight);if(a===0)return true;var f=o.bTime.incrementBy(i.settings.dragincrement,0-a);var l=f.format("Y-m-d");var c=f.format("H:i:s");if(l===n.data.lockDate||c!==i.settings.daytimestart){if(l!==n.data.lockDate){f=e[t].date(n.data.lockDate+" "+i.settings.daytimestart);a=Math.round(f.getIncrementBetween(s.begins,i.settings.dragincrement))}if(f>=s.ends){a=Math.round(s.ends.getIncrementBetween(s.begins,i.settings.dragincrement));f=s.ends.incrementBy(i.settings.dragincrement,-1).copy();e(document).unbind("mousemove."+t).bind("mousemove."+t,n.data,u.drag.resizeE)}o.incY-=a*i.cache.dragHeight;s.begins=o.bTime=f;s.cache.begins=i.settings.startdate>s.begins?i.settings.startdate.copy():s.begins;r.data(t,s);i.cache.events[s.uid]=s;s.calendar.data(t,i);u.draw[i.type].position.apply(s.elems)}}},resizeE:function(n){var r=n.data.event,i=n.data.data,s=n.data.values,o=u.drag[n.data.i];o.deltaY=o.lastY-n.pageY;o.lastY=n.pageY;o.incY+=o.deltaY;if(o.deltaY==0)return true;if(!o.started&&(o.incY>5||o.incY<-5)){o.started=true;r.addClass("ui-dragging ui-resizing")}else if(o.started){var a=Math.round(o.incY/i.cache.dragHeight);if(a===0)return true;var f=o.eTime.incrementBy(i.settings.dragincrement,0-a);var l=f.format("Y-m-d");var c=f.format("H:i:s");if(l===n.data.lockDate||c!==i.settings.daytimeend){if(l!==n.data.lockDate){f=e[t].date(n.data.lockDate+" "+i.settings.daytimeend);a=Math.round(f.getIncrementBetween(s.ends,i.settings.dragincrement))}if(f<=s.begins){a=Math.round(s.begins.getIncrementBetween(s.ends,i.settings.dragincrement));f=s.begins.incrementBy(i.settings.dragincrement,1).copy();e(document).unbind("mousemove."+t).bind("mousemove."+t,n.data,u.drag.resizeB)}o.incY-=a*i.cache.dragHeight;s.ends=o.eTime=f;s.cache.ends=i.cache.enddate<f?i.cache.enddate.addSeconds(-1):f;r.data(t,s);i.cache.events[s.uid]=s;s.calendar.data(t,i);u.draw[i.type].position.apply(s.elems)}}},move:function(e){var n=e.data.event,i=e.data.data,o=e.data.values,a=u.drag[e.data.i];a.deltaX=a.lastX-e.pageX;a.lastX=e.pageX;a.incX+=a.deltaX;a.deltaY=a.lastY-e.pageY;a.lastY=e.pageY;a.incY+=a.deltaY;if(!a.started&&(a.incY>5||a.incY<-5||a.incX>5||a.incY<-5)){a.started=true;n.addClass("ui-dragging")}else if(a.started){switch(i.type){case s:var f=Math.round(a.incY/i.cache.dragHeight);var l=Math.round(a.incX/i.cache.dayWidth);if(f===0&&l===0)return true;var c=a.bTime.addDays(0-l).incrementBy(i.settings.dragincrement,0-f);var h=a.eTime.addDays(0-l).incrementBy(i.settings.dragincrement,0-f);a.incY-=f*i.cache.dragHeight;a.incX-=l*i.cache.dayWidth;o.begins=a.bTime=c;o.ends=a.eTime=h;o.cache.ends=i.cache.enddate<h?i.cache.enddate.addSeconds(-1):h;o.cache.begins=i.settings.startdate>o.begins?i.settings.startdate.copy():o.begins;n.data(t,o);i.cache.events[o.uid]=o;o.calendar.data(t,i);u.draw[i.type].position.apply(o.elems);break;case r:n.css({left:"-="+a.deltaX,top:"-="+a.deltaY});break}}},end:function(n){var r=n.data.event,i=n.data.data,s=n.data.values;switch(n.data.type){case"resize":i.settings.eventresize.apply(s.calendar,[s.uid,s,r]);break;case"move":i.settings.eventmove.apply(s.calendar,[s.uid,s,r]);break}e(document).unbind("mousemove."+t).unbind("mouseup."+t);r.removeClass("ui-dragging ui-resizing");delete u.drag[n.data.i];u.draw[i.type].position.apply(s.elems)}},draw:{week:{cal:function(n){var r,i,s,o,a,f,l,c,h=e[t].date().format("Y-m-d");n.elements.timeblock.css({width:"100%",height:n.cache.incrementHeight});n.elements.timelabel.css({width:"100%",height:n.cache.incrementHeight});for(var p=0,d,v;p<n.cache.incrementsInDay;p++){s=n.settings.startdate.incrementBy(n.settings.gridincrement,p);v=s.format("H:i:s");d=s.format("i");r=n.elements.timeblock.clone(true);r.attr("time",v);r.attr("past",d);f=n.elements.timelabel.clone(true);f.attr("time",v);f.attr("past",d);if(v=="12:00:00"&&"noon"in n.settings.masktimelabel){f.find("p:first").html(s.format(n.settings.masktimelabel["noon"]))}else if(d in n.settings.masktimelabel){f.find("p:first").html(s.format(n.settings.masktimelabel[d]))}n.elements.dayblock.append(r);n.elements.timeline.append(f)}n.elements.dayblock.find("div.ui-"+t+"-time:first").css("border-top","0");n.elements.timeline.find("div.ui-"+t+"-label-time:first").html("");n.elements.dayblock.css({width:n.cache.resourceWidth,height:n.cache.dayHeight});n.elements.resourcelabel.css({width:n.cache.resourceWidth,height:"100%"});n.elements.datelabel.css({width:n.cache.dayWidth,height:"100%"});for(var p=0;p<n.settings.daystodisplay;p++){o=n.settings.startdate.addDays(p);c=o.format("Y-m-d");for(var m=0;m<n.cache.resourcecount;m++){i=n.elements.dayblock.clone(true).css("left",n.cache.dayWidth*p+n.cache.resourceWidth*m).attr({date:c,day:o.getDay(),resource:u.resource.apply(this,[m,n]).id});if(m<n.cache.resourcecount-1)i.addClass("ui-"+t+"-resource");if(c===h)i.addClass("ui-"+t+"-today");n.elements.container.append(i);if(n.settings.resources){a=n.elements.resourcelabel.clone(true).css("left",n.cache.dayWidth*p+n.cache.resourceWidth*m).attr({date:c,day:o.getDay(),resource:u.resource.apply(this,[m,n]).id}).find("p").html(u.resource.apply(this,[m,n]).name).end();n.elements.resourceline.append(a)}}l=n.elements.datelabel.clone(true).css("left",n.cache.dayWidth*p).attr({date:c,day:o.getDay()}).find("p").html(o.format(n.settings.maskdatelabel)).end();if(c===h)l.addClass("ui-"+t+"-today");n.elements.dateline.append(l)}n.elements.dateline.add(n.elements.resourceline).css({right:n.cache.scrollbarSize});var g=e(this);g.append(n.elements.timeline).append(n.elements.dateline).append(n.elements.datelinefill).append(n.elements.container);if(e.isArray(n.settings.resources)||typeof n.settings.resources=="object"){g.append(n.elements.resourceline).append(n.elements.resourcelinefill)}var y=n.cache.dayHeight/2-n.elements.container.height()/2;n.elements.container.scrollTop(y)},event:function(e,n){n.cache.ends=e.cache.enddate<n.ends?e.cache.enddate.addSeconds(-1):n.ends;n.cache.begins=e.settings.startdate>n.begins?e.settings.startdate.copy():n.begins;var r=u.event.calculateElementCount.apply(this,[n]),i,s;if(!("elems"in n)||n.elems.length<1){i=a.event.clone(true);if(!e.settings.allowremove)i.find("span.button-remove").hide();if(!e.settings.allowresize)i.find("p.resize-top, p.resize-bottom").hide();if(e.settings.allowmove){i.find("pre.details").bind("selectstart."+t,u.prevent)}else{i.unbind("mousedown."+t,u.drag.start)}var o=e.settings.allowhtml?"html":"text";i.attr("data-id",n.uid);i.find("pre.details")[o](n.notes);i.find("p.title")[o](n.title||n.begins.format(e.settings.maskeventlabel)+(e.settings.maskeventlabelend!==""?e.settings.maskeventlabeldelimiter+n.ends.format(e.settings.maskeventlabelend):""));s=i}else{s=n.elems.detach();if(s.length>r)s.slice(0,r);i=s.removeClass("begin end").addClass("mid").eq(0)}while(r>s.length)s=s.add(i.clone(true));if(e.settings.startdate<=n.begins)s.first().removeClass("mid").addClass("begin");if(e.cache.enddate>=n.ends)s.last().removeClass("mid").addClass("end");e.elements.container.append(s);n.elems=s;s.data(t,n);u.draw[e.type].position.apply(s)},position:function(n,r,i){var s=e(this),o=s.data(t),a=o&&o.calendar?o.calendar.data(t):false,i=i===undefined?true:i;if(a&&o){s.each(function(f,l){var c=e(l),h=e[t].date(o.begins.addDays(f),a.settings.daytimestart),p=e[t].date(o.begins.addDays(f),a.settings.daytimeend);if(i){var d=o.overlap.items;u.overlaps.apply(o.calendar,[h,p,o.resource]);o=c.data(t);for(var v in o.overlap.items){u.draw[a.type].position.apply(o.overlap.items[v].elems,[false,false,false])}for(var v in d){if(!(v in o.overlap.items)){u.draw[a.type].position.apply(d[v].elems,[false,false,true])}}}var m={top:f>0?0:a.cache.incrementHeight*e[t].date(o.cache.begins,a.settings.daytimestart).getIncrementBetween(o.cache.begins,a.settings.gridincrement),left:a.cache.dayWidth*(a.settings.startdate.getDaysBetween(o.cache.begins,true)+f)+a.cache.resourceWidth*o.resource,width:(o.resource!==null?a.cache.resourceWidth:a.cache.dayWidth)-1,height:Math.min(a.cache.dayHeight,a.cache.incrementHeight*(f<1?o.begins:h).getIncrementBetween(f==s.length-1?o.cache.ends:p,a.settings.gridincrement)),backgroundColor:c.hasClass("selected")?o.colors.mainSelected:o.colors.mainBackground,textShadow:o.colors.mainTextShadow+" 1px 1px 1px",color:o.colors.mainText};m.width-=a.settings.overlapoffset*o.overlap.count;m.left+=a.settings.overlapoffset*o.overlap.inset;var g={backgroundColor:o.colors.detailsBackground,textShadow:o.colors.detailsTextShadow+" 1px 1px 1px",color:o.colors.detailsText};if(m.height<=15){g.display="none";c.attr("title",o.notes||"").unbind("dblclick."+t).bind("dblclick."+t,u.event.edit)}else{g.display="block";c.removeAttr("title").unbind("dblclick."+t)}var y=a.settings.allowhtml?"html":"text";if(!o.title)c.find("p.title")[y](o.begins.format(a.settings.maskeventlabel)+(a.settings.maskeventlabelend!==""?a.settings.maskeventlabeldelimiter+o.ends.format(a.settings.maskeventlabelend):""));if(!n){c.css(m);c.find("pre.details").css(g)}else{c.stop(true,false).animate(m,n,r||a.settings.easing.eventupdate).find("pre.details").stop(true,false).animate(g,n,r||a.settings.easing.eventupdate).css("display",g.display);if(jQuery.ui===undefined){c.css({backgroundColor:m.backgroundColor,textShadow:m.textShadow,color:m.color});c.find("pre.details").css({backgroundColor:g.backgroundColor,textShadow:g.textShadow,color:g.color})}}})}}},month:{cal:function(n){var r,i,s,o,u,a=e[t].date().format("Y-m-d");n.elements.datelabel.css({width:n.cache.dayWidth,height:"100%"});n.elements.dayblock.css({width:n.cache.dayWidth,height:n.cache.dayHeight});for(var f=0;f<n.settings.daystodraw;f++){o=n.settings.startdate.addDays(f);u=o.format("Y-m-d");var l=n.settings.allowhtml?"html":"text";var i=n.elements.dayblock.clone(true).attr({date:u,day:o.getDay()}).css({left:n.cache.dayWidth*(f%7),top:n.cache.dayHeight*Math.floor(f/7)}).toggleClass("non-month",o.getMonth()+1!=n.settings.startmonth).find("p")[l](o.getDate()).end();if(u===a)i.addClass("ui-"+t+"-today");if(f<7){s=n.elements.datelabel.clone(true).attr({date:u,day:o.getDay()}).css("left",n.cache.dayWidth*f).find("p").html(o.format(n.settings.maskmonthlabel)).end();if(u===a)s.addClass("ui-"+t+"-today");n.elements.dateline.append(s)}n.elements.container.append(i)}var c=e(this);c.append(n.elements.dateline).append(n.elements.container)},event:function(e,n){n.cache.ends=e.cache.enddate<n.ends?e.cache.enddate.addSeconds(-1):n.ends;n.cache.begins=e.settings.startdate>n.begins?e.settings.startdate.copy():n.begins;var r=u.event.calculateElementCount.apply(this,[n]),i,s;if(!("elems"in n)||n.elems.length<1){i=a.event.clone(true);if(!e.settings.allowremove)i.find("span.button-remove").hide();if(!e.settings.allowmove)i.unbind("mousedown."+t,u.drag.start);i.find("p.resize-top, p.resize-bottom").hide();i.attr("data-id",n.uid);var o=e.settings.allowhtml?"html":"text";i.find("pre.details").text(n.notes);i.find("p.title")[o]("● "+(n.title||n.begins.format(e.settings.maskeventlabel)+(e.settings.maskeventlabelend!==""?e.settings.maskeventlabeldelimiter+n.ends.format(e.settings.maskeventlabelend):"")));i.attr("title",n.notes||"").unbind("dblclick."+t).bind("dblclick."+t,u.event.edit);s=i}else{s=n.elems.detach();if(s.length>r)s.slice(0,r);i=s.removeClass("begin end").addClass("mid").eq(0)}while(r>s.length)s=s.add(i.clone(true));if(e.settings.startdate<=n.begins)s.first().removeClass("mid").addClass("begin");if(e.cache.enddate>=n.ends)s.last().removeClass("mid").addClass("end");e.elements.container.append(s);n.elems=s;s.data(t,n);e.settings.eventdraw.apply(n.calendar,[n.uid,n,i]);u.draw[e.type].position.apply(s)},position:function(n,r,i){var s=e(this),o=s.data(t),a=o&&o.calendar?o.calendar.data(t):false,i=i===undefined?true:i;if(a&&o){s.each(function(f,l){var c=24*60*60*1e3;var h=Math.floor(Math.abs(a.settings.startdate.getTime()-o.begins.getTime())/c)+1;var p=e(l),d=p.hasClass("selected"),v=s.length>1,m=e[t].date(o.begins.addDays(f),a.settings.daytimestart),g=e[t].date(o.begins.addDays(f),a.settings.daytimeend);if(i){var y=o.overlap.items;u.overlaps.apply(o.calendar,[m,g,o.resource]);o=p.data(t);for(var b in o.overlap.items){u.draw[a.type].position.apply(o.overlap.items[b].elems,[false,false,false])}for(var b in y){if(!(b in o.overlap.items)){u.draw[a.type].position.apply(y[b].elems,[false,false,true])}}}var w={top:a.cache.dayHeight*Math.floor((h-1)/7)+2+18,left:a.cache.dayWidth*((h-1)%7)+(f>0?0:2),width:a.cache.dayWidth-(v&&f==0?2:4),height:a.cache.incrementHeight,backgroundColor:d?o.colors.mainSelected:"transparent",textShadow:d?o.colors.mainTextShadow+" 1px 1px 1px":"none",color:d?o.colors.mainText:o.colors.mainBackground};w.top+=14*o.overlap.index||0;p.attr("title",o.notes||"");if(d){if(l.style.removeAttribute){l.style.removeAttribute("background-image")}else{l.style.removeProperty("background-image")}p.find("span.button-remove").show();if(v&&f==0){p.find("span.button-remove").hide()}if(f>0){p.find("p.title").hide()}}else{l.style.backgroundImage="none";p.find("span.button-remove").hide();if(f>0){p.find("p.title").show()}}if(!n){p.css(w).find("pre.details").hide()}else{p.stop(true,false).animate(w,n,r||a.settings.easing.eventupdate).find("pre.details").hide();if(jQuery.ui===undefined){p.css({backgroundColor:w.backgroundColor,textShadow:w.textShadow,color:w.color})}}})}}}}};var a={event:e(['<div class="ui-'+t+'-event mid">','<p class="resize-top" />','<p class="title" />','<span class="button-remove" />','<pre class="details" />','<p class="footer" />','<p class="resize-bottom" />',"</div>"].join("")).bind("selectstart."+t,u.prevent).bind("mousedown."+t,u.event.select).bind("mousedown."+t,u.drag.start).find("p.resize-top, p.resize-bottom").bind("mousedown."+t,u.drag.start).end().find("pre.details").bind("dblclick."+t,u.event.edit).end().find("p").bind("selectstart."+t,u.prevent).end().find("span.button-remove").bind("click."+t,u.event.remove).end(),day:e('<div class="ui-'+t+'-date" date="" day="" />').bind("selectstart."+t,u.prevent),time:e('<div class="ui-'+t+'-time" time="" past="" />'),labels:{time:e('<div class="ui-'+t+'-label-time" time="" past="" ><p /></div>'),date:e('<div class="ui-'+t+'-label-date" date=""><p /><div class="delimiter" /></div>'),resource:e('<div class="ui-'+t+'-label-resource" date=""><p /><div class="delimiter" /></div>')},timeline:e('<div class="ui-'+t+'-timeline" />').bind("selectstart."+t,u.prevent),dateline:e('<div class="ui-'+t+'-dateline" />').bind("selectstart."+t,u.prevent),datelinefill:e('<div class="ui-'+t+'-dateline-fill" />'),resourceline:e('<div class="ui-'+t+'-resourceline" />'),resourcelinefill:e('<div class="ui-'+t+'-resourceline-fill" />'),container:e('<div class="ui-'+t+'-wrapper" />').bind("scroll."+t,u.onscroll)};var f={init:function(n){return e(this).each(function(){var i=e.extend({},o);if(n)e.extend(i,n);var l=e(this),c=l.data(t);if(!c){c={type:s,target:l,settings:i,elements:{},cache:{scrollbarSize:u.scrollbarSize(),enddate:undefined,incrementsInDay:undefined,incrementHeight:undefined,dragHeight:undefined,dayWidth:undefined,dayHeight:undefined,events:{},calendars:{}}};if(c.settings.startmonth===null&&c.settings.startyear===null&&c.settings.monthstodisplay===null){if(c.settings.startdate===null)c.settings.startdate=new Date;if(c.settings.daystodisplay===null)c.settings.daystodisplay=7}else{if(c.settings.startmonth===null)c.settings.startmonth=(new Date).getMonth()+1;if(c.settings.startyear===null)c.settings.startyear=(new Date).getFullYear();if(c.settings.monthstodisplay===null)c.settings.monthstodisplay=1;c.settings.startdate=e[t].date(c.settings.startyear+"-"+(Number(c.settings.startmonth)<10?"0":"")+Number(c.settings.startmonth)+"-01");c.cache.enddate=c.settings.startdate.addMonths(c.settings.monthstodisplay);c.settings.daystodisplay=c.settings.startdate.getDaysBetween(c.cache.enddate);c.type=r}c.settings.startdate=e[t].date(c.settings.startdate,c.settings.daytimestart);c.settings.defaultcolor=e[t].colors.generate(c.settings.defaultcolor);c.settings.invalidcolor=e[t].colors.generate(c.settings.invalidcolor);c.settings.minheight=Math.round(c.settings.minheight===null?e[t].incrementsIn(c.settings.gridincrement,"1 min"):c.settings.minheight);c.cache.enddate=c.settings.startdate.addDays(c.settings.daystodisplay);c.cache.incrementsInDay=c.settings.startdate.getIncrementBetween(e[t].date(c.settings.startdate,c.settings.daytimeend),c.settings.gridincrement);c.cache.incrementHeight=c.settings.minheight;c.cache.dragHeight=c.cache.incrementHeight/e[t].incrementsIn(c.settings.gridincrement,c.settings.dragincrement);c.cache.resourcecount=1;l.addClass("ui-"+t+" ui-"+t+"-container ui-"+t+"-"+c.type);c.elements.dateline=a.dateline.clone(true);c.elements.container=a.container.clone(true);c.elements.dayblock=a.day.clone(true);c.elements.datelabel=a.labels.date.clone(true);c.elements.resourcelabel=a.labels.resource.clone(true);switch(c.type){case r:var h=c.settings.startdate.getDay();var p=c.cache.enddate.addDays(1).getDay();var d=c.settings.weekstart-1;var v=d==0?6:d-1;c.settings.startdate=c.settings.startdate.addDays((d>h?d-7:d)-h);c.cache.enddate=c.cache.enddate.addDays(v-p+2);c.settings.daystodraw=c.settings.startdate.getDaysBetween(c.cache.enddate);c.cache.weekstodraw=c.settings.startdate.getWeeksBetween(c.cache.enddate);c.elements.dayblock.append("<p/>");c.cache.monthWidth=l.outerWidth()/c.settings.monthstodisplay;c.cache.dayWidth=c.cache.monthWidth/7;c.cache.dayHeight=(l.outerHeight()-22)/c.cache.weekstodraw;u.draw.month.cal.apply(this,[c]);break;case s:if(e.isArray(c.settings.resources)||typeof c.settings.resources=="object"){c.cache.resourcecount=0;for(var m in c.settings.resources){if(c.settings.resources.hasOwnProperty(m)){c.cache.resourcecount++}}l.addClass("ui-"+t+"-resources");c.elements.resourceline=a.resourceline.clone(true);c.elements.resourcelinefill=a.resourcelinefill.clone(true)}c.elements.datelinefill=a.datelinefill.clone(true);c.elements.timeline=a.timeline.clone(true);c.elements.timeblock=a.time.clone(true);c.elements.timelabel=a.labels.time.clone(true);var g=(l.outerWidth()-60)/(c.settings.daystodisplay*c.cache.resourcecount);c.cache.resourceWidth=Math.max(c.settings.minwidth,g);c.cache.dayWidth=c.cache.resourceWidth*c.cache.resourcecount;c.cache.dayHeight=c.cache.incrementHeight*c.cache.incrementsInDay;u.draw.week.cal.apply(this,[c]);break}l.data(t,c);if(!e.isArray(c.settings.calendars)){c.settings.calendars=[c.settings.events]}e(c.settings.calendars).each(function(){var t,n;if(e.isArray(this)){t=this}else if(typeof this=="string"){t=this}else if(e.isPlainObject(this)){t=this.events;n=this.color}if(e.isArray(t)){for(var r=0;r<t.length;r++){if(!("color"in t[r]))t[r].color=n;f.add.apply(l,[t[r]])}}else if(typeof t=="string"){e.ajax(t,{accepts:"text/calendar",dataType:"text",type:"get",crossDomain:true,data:{from:c.settings.datefrom,to:c.settings.dateto},success:function(t){var r=u.parse.icalendar.apply(l,[t]);console.log("Parsed: ",r);if(r&&"events"in r&&e.isArray(r.events)&&r.events.length>0){for(var i=0,s;i<r.events.length;i++){if(!("color"in r.events[i]))r.events[i].color=n;f.add.apply(l,[r.events[i]])}}}})}});c.settings.calendars=undefined;c.settings.events=undefined;c.settings.onload.apply(l)}})},events:function(){var n=e(this),r=n.data(t);if(r){return r.cache.events}return[]},event:function(n){var r=e(this),i=r.data(t);if(i&&n in i.cache.events){return i.cache.events[n]}return false},add:function(n,r){var i=e(this),s=i.data(t);if(s){if(!"uid"in n)throw u.errors.eventParse("Missing unique id (uid)",n);if(!"begins"in n)throw u.errors.eventParse("Missing start date/time (begins)",n);if(!"ends"in n)throw u.errors.eventParse("Missing end date/time (ends)",n);if(n.uid in s.cache.events)throw u.errors.eventParse("UID must be unique",n);var o=e[t].date(n.begins),a=e[t].date(n.ends);var l={elems:e([]),calendar:i,uid:n.uid,begins:o,ends:a,resource:s.settings.resources&&n.resource?u.resourceIndex.apply(this,[n.resource,s]):null,colors:n.color?e[t].colors.generate(n.color):s.settings.defaultcolor,title:n.title||null,notes:n.notes||"",repeat:{rules:{include:n.repeat&&n.repeat.rules&&n.repeat.rules.include?n.repeat.rules.include:[],exclude:n.repeat&&n.repeat.rules&&n.repeat.rules.exclude?n.repeat.rules.exclude:[]},dates:{include:n.repeat&&n.repeat.dates&&n.repeat.dates.include?n.repeat.dates.include:[],exclude:n.repeat&&n.repeat.dates&&n.repeat.dates.exclude?n.repeat.dates.exclude:[]}},cache:{},overlap:{inset:[],depth:[]}};if(l.resource===false)throw u.errors.eventParse("Invalid resource id (resource)",n);if(!(l.begins instanceof Date))throw u.errors.eventParse("Invalid start date/time (begins)",n);s.cache.events[l.uid]=l;i.data(t,s);if(e.isPlainObject(r)){l.cache.repeat=false;l.cache.repeats=r.uid}else{l.cache.repetitions=u.repetitions.apply(this,[s,l]);for(var c in l.cache.repetitions){r=e.extend(true,{},n);r.repeat=false;r.uid="--repeat--"+c+"|"+l.uid;r.begins=l.cache.repetitions[c];r.ends=l.cache.repetitions[c].addDays(l.begins.getDaysBetween(l.ends));f.add.apply(this,[r,n])}}if(u.inrange.apply(this,[o,a,s.settings.startdate,s.cache.enddate])){u.draw[s.type].event.apply(i,[s,l])}}return i},remove:function(n,r,i){var s=e(this),o,a=s.data(t);if(a&&n in a.cache.events){o=a.cache.events[n].elems;u.event.remove.apply(o,[null,r,i])}return s},clear:function(n,r){var s=e(this),o=null,a=s.data(t);if(n===undefined)n="fast";if(!r)r=a.settings.easing.eventremove;if(a){for(i in a.cache.events){o=a.cache.events[i].elems;u.event.remove.apply(o,[null,n,r])}a.cache.events=new Object}},update:function(n,r,i){var s=e(this),o,a=s.data(t);if(a){if(r===undefined)r="fast";if(e.isArray(n)){for(var f=0;f<n.length;f++){o=a.elements.container.find("div.ui-"+t+'-event[data-id="'+n[f].uid+'"]');if(o.length>0){u.event.update.apply(o,[n[f],r,i])}}}else{o=a.elements.container.find("div.ui-"+t+'-event[data-id="'+n.uid+'"]');if(o.length>0){u.event.update.apply(o,[n,r,i])}}}return s},select:function(n,r,i){var s=e(this),o=s.data(t);if(o){$event=o.elements.container.find("div.ui-"+t+'-event[data-id="'+n+'"]');if($event.length>0){u.event.select.apply($event,[r,i])}}return s},option:function(n,i){var o=e(this),a=o.data(t);if(a){if(typeof n=="undefined")return a.settings;if(typeof n=="object"){for(var l in n){if(n.hasOwnProperty(l)){f.option.apply(o,[l,n[l]])}}return o}if(!n in a.settings)return false;if(typeof i=="undefined"){return a.settings[n]}else{switch(n){case"allowremove":a.elements.container.find("div.ui-"+t+"-event span.button-remove").toggle(Boolean(i));break;case"allowresize":a.elements.container.find("p.resize-top, p.resize-bottom").toggle(Boolean(i));break;case"startdate":var c=e[t].date(i,a.settings.daytimestart),h=a.settings.startdate;a.settings.startdate=c;a.cache.enddate=c.addDays(a.settings.daystodisplay);o.data(t,a);var p,d;for(var v in a.cache.events){p=a.cache.events[v];if(!p.cache.repeats){for(var m in p.cache.repetitions){var d=p.cache.repetitions[m];delete a.cache.events[d.uid];o.data(t,a);if("elems"in d&&d.elems.length>0){d.elems.remove()}}p.cache.repetitions=u.repetitions.apply(this,[a,p]);for(var m in p.cache.repetitions){d=e.extend(true,{},p);d.repeat=false;d.uid="--repeat--"+m+"|"+p.uid;d.begins=p.cache.repetitions[m];d.ends=p.cache.repetitions[m].addDays(p.begins.getDaysBetween(p.ends));if(!(d.uid in a.cache.events)){f.add.apply(this,[d,p])}else{u.draw[a.type].event.apply(o,[a,d])}}if(!u.inrange.apply(this,[p.begins,p.ends,a.settings.startdate,a.cache.enddate])){if("elems"in p&&p.elems.length>0){p.elems.detach()}}else{u.draw[a.type].event.apply(o,[a,p])}}else{delete a.cache.events[p.uid];o.data(t,a);if("elems"in p&&p.elems.length>0){p.elems.remove()}else{u.draw[a.type].event.apply(o,[a,p])}}}var g=e("div.ui-"+t+"-date, div.ui-"+t+"-label-date",a.elements.container).removeClass("ui-"+t+"-today"),y=e[t].date().format("Y-m-d");switch(a.type){case r:e("div.ui-"+t+"-label-date",a.elements.dateline).removeClass("ui-"+t+"-today").each(function(n,r){var i=e(r),s=c.addDays(n),o=s.format("Y-m-d");i.attr({date:o});if(o===y)i.addClass("ui-"+t+"-today")});e("div.ui-"+t+"-date",a.elements.container).removeClass("ui-"+t+"-today").each(function(n,r){var i=e(r),s=c.addDays(n),o=s.format("Y-m-d");i.attr({date:o,day:s.getDay()}).find("p").html(s.format("j")).end();if(o===y)i.addClass("ui-"+t+"-today")});break;case s:e("div.ui-"+t+"-label-date",a.elements.dateline).removeClass("ui-"+t+"-today").each(function(n,r){var i=e(r),s=c.addDays(n),o=s.format("Y-m-d");g.eq(n).attr({date:o,day:s.getDay()});i.attr({date:o,day:s.getDay()}).find("p").html(s.format(a.settings.maskdatelabel)).end();if(o===y)i.add(g.eq(n)).addClass("ui-"+t+"-today")});e("div.ui-"+t+"-date",a.elements.container).removeClass("ui-"+t+"-today").each(function(n,r){var i=e(date),s=c.addDays(n),o=s.format("Y-m-d");i.attr({date:o,day:s.getDay()});if(o===y)i.addClass("ui-"+t+"-today")});break}return o;break;default:a.settings[n]=i;break}return o}}},version:function(){return t+" v"+n},destroy:function(){return this.each(function(){var n=e(this),r=n.data(t);if(r){for(var i=0;i<r.cache.events.length;i++){r.cache.events[i].elems.remove()}n.removeData(t);n.empty()}})}};e.fn[t]=function(n){if(f[n]){return f[n].apply(this,Array.prototype.slice.call(arguments,1))}else if(typeof n==="object"||!n){return f.init.apply(this,arguments)}else{e.error("Method "+n+" does not exist on jQuery."+t)}};e[t]={};e[t].colors={named:{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370D8",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#D87093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",reactorblue:"#0266A1",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},HexToRGB:function(n,r){return(r!==undefined?"rgba":"rgb")+"("+e[t].colors.HexToR(n)+", "+e[t].colors.HexToG(n)+", "+e[t].colors.HexToB(n)+(r!==undefined?", "+r+")":")")},HexToR:function(n){return parseInt(e[t].colors.cutHex(n).substring(0,2),16)},HexToG:function(n){return parseInt(e[t].colors.cutHex(n).substring(2,4),16)},HexToB:function(n){return parseInt(e[t].colors.cutHex(n).substring(4,6),16)},cutHex:function(n){return n.charAt(0)=="#"?e[t].colors.padHex(n.substring(1,7)):e[t].colors.padHex(n)},padHex:function(e){return e.length>3?e:e.substring(0,1)+e.substring(0,1)+e.substring(1,2)+e.substring(1,2)+e.substring(2,3)+e.substring(2,3)},HueToRGB:function(e,t,n){if(n<0)n+=1;if(n>1)n-=1;if(n<1/6)return e+(t-e)*6*n;if(n<1/2)return t;if(n<2/3)return e+(t-e)*(2/3-n)*6;return e},HSLToRGB:function(n,r,i,s,o){var u,a,f;n/=360;r/=100;i/=100;if(r==0){u=a=f=i}else{var l=i<.5?i*(1+r):i+r-i*r;var c=2*i-l;u=e[t].colors.HueToRGB(c,l,n+1/3);a=e[t].colors.HueToRGB(c,l,n);f=e[t].colors.HueToRGB(c,l,n-1/3)}var h=[Math.round(u*255),Math.round(a*255),Math.round(f*255)];if(o){if(s!==undefined){h[3]=s}return h}return(s!==undefined?"rgba":"rgb")+"("+h.join(", ")+(s!==undefined?", "+s+")":")")},RGBToHSL:function(e,t,n){e/=255,t/=255,n/=255;var r=Math.max(e,t,n),i=Math.min(e,t,n);var s,o,u=(r+i)/2;if(r==i){s=o=0}else{var a=r-i;o=u>.5?a/(2-r-i):a/(r+i);switch(r){case e:s=(t-n)/a+(t<n?6:0);break;case t:s=(n-e)/a+2;break;case n:s=(e-t)/a+4;break}s/=6}return[Math.round(s*360),Math.round(o*100),Math.round(u*100)]},brightness:function(e,t,n){return(e*299+t*587+n*114)/1e3},generate:function(n){function o(t,n,r){var i=e.extend([],t);i[1]=Math.max(0,i[1]+n/2);i[2]=Math.min(100,i[2]+n);if(r!==undefined)i[3]=r;return i}function u(t,n,r){var i=e.extend([],t);i[2]=Math.max(0,i[2]-n);if(r!==undefined)i[3]=r;return i}var r=10;if(n in e[t].colors.named){n=e[t].colors.named[n]}if(n.match(/^#?([0-9A-Fa-f]{3,6})$/)){var i=[e[t].colors.HexToR(n),e[t].colors.HexToG(n),e[t].colors.HexToB(n)];var s=e[t].colors.RGBToHSL(i[0],i[1],i[2])}else if(n.replace(/ /g,"").match(/([rR][gG][bB]\s*\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|([rR][gG][bB]\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\))/)){var i=n.replace(/[a-zA-Z\(\) ]/g,"").split(",");var s=e[t].colors.RGBToHSL(i[0],i[1],i[2])}else if(n.replace(/ /g,"").match(/([hH][sS][lL]\s*\(\s*([0-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|360)\s*,\s*(\d?\d%|100%)\s*,\s*(\d?\d%|100%)\s*\))/)){var s=n.replace(/[a-zA-Z\(\) %]/g,"").split(",")}else{throw new Error("Invalid Colour: could not parse "+n+" as a color.")}if(s[1]<r)s[1]+=r;if(s[1]>100-r)s[1]-=r;if(s[2]>100-r)s[2]-=r;if(s[2]<r)s[2]+=r;var a=e[t].colors.HSLToRGB.apply(this,o(s,r*5,.3));var f=e[t].colors.HSLToRGB.apply(this,o(s,r*3,.75));var l=e[t].colors.brightness.apply(this,e[t].colors.HSLToRGB(s[0],s[1],s[2],undefined,true))>125?"#333333":"#FFFFFF";return{original:n,mainBackground:e[t].colors.HSLToRGB.apply(this,s),mainTextShadow:a,mainShadow:f,mainText:l,mainSelected:e[t].colors.HSLToRGB.apply(this,u(s,r)),detailsBackground:e[t].colors.HSLToRGB.apply(this,o(s,r)),detailsTextShadow:a,detailsShadow:f,detailsText:l}}};e[t].lang={en:{short_month:Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),long_month:Array("January","February","March","April","May","June","July","August","September","October","November","December"),short_day:Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"),long_day:Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"),label_remove:"Remove",label_today:"Today"}};var l={d:function(){return(this.getDate()<10?"0":"")+this.getDate()},D:function(){return e[t].lang[this.lang].short_day[this.getDay()]},j:function(){return this.getDate()},l:function(){return e[t].lang[this.lang].long_day[this.getDay()]},N:function(){return this.getDay()+1},S:function(){return this.getDate()%10==1&&this.getDate()!=11?"st":this.getDate()%10==2&&this.getDate()!=12?"nd":this.getDate()%10==3&&this.getDate()!=13?"rd":"th"},w:function(){return this.getDay()},z:function(){if(window.console){console.error("Mask 'z' Not Yet Supported")}return"z"},W:function(){var e=new Date(this.getFullYear(),0,1);return Math.ceil(((this-e)/864e5+e.getDay()+1)/7)},F:function(){return e[t].lang[this.lang].long_month[this.getMonth()]},m:function(){return(this.getMonth()+1<10?"0":"")+(this.getMonth()+1)},M:function(){return e[t].lang[this.lang].short_month[this.getMonth()]},n:function(){return this.getMonth()+1},t:function(){return(new Date(new Date(this.getFullYear(),this.getMonth()+1,1)-1)).getDate()},L:function(){if(window.console){console.error("Mask 'L' Not Yet Supported")}return"L"},o:function(){if(window.console){console.error("Mask 'o' Not Yet Supported")}return"o"},Y:function(){return this.getFullYear()},y:function(){return(""+this.getFullYear()).substr(2)},a:function(){return this.getHours()<12?"am":"pm"},A:function(){return this.getHours()<12?"AM":"PM"},B:function(){if(window.console){console.error("Mask 'B' Not Yet Supported")}return"B"},g:function(){return this.getHours()==0?12:this.getHours()>12?this.getHours()-12:this.getHours()},G:function(){return this.getHours()},h:function(){return(this.getHours()<10||12<this.getHours()<22?"0":"")+(this.getHours()<10?this.getHours()+1:this.getHours()-12)},H:function(){return(this.getHours()<10?"0":"")+this.getHours()},i:function(){return(this.getMinutes()<10?"0":"")+this.getMinutes()},s:function(){return(this.getSeconds()<10?"0":"")+this.getSeconds()},e:function(){if(window.console){console.error("Mask 'e' Not Supported")}return"e"},I:function(){if(window.console){console.error("Mask 'I' Not Supported")}return"I"},O:function(){return this.toString().match(/GMT([+-][0-9]+) \(([a-zA-Z]+)\)/)[1]},P:function(){var e=this.toString().match(/GMT([+-][0-9]+) \(([a-zA-Z]+)\)/)[1].split("");e.splice(-2,0,":");return e.join("")},T:function(){return this.toString().match(/GMT([+-][0-9]+) \(([a-zA-Z]+)\)/)[2]},Z:function(){return this.getTimezoneOffset()*60},c:function(){return l.Y.apply(this)+"-"+l.m.apply(this)+"-"+l.d.apply(this)+"T"+l.H.apply(this)+":"+l.i.apply(this)+":"+l.s.apply(this)+l.P.apply(this)},C:function(){return l.c.apply(this).replace(l.P.apply(this),"")+"Z"},r:function(){return this.toString()},U:function(){return this.getTime()/1e3}};var c={d:function(){return(this.getUTCDate()<10?"0":"")+this.getUTCDate()},D:function(){return e[t].lang[this.lang].short_day[this.getUTCDay()]},j:function(){return this.getUTCDate()},l:function(){return e[t].lang[this.lang].long_day[this.getUTCDay()]},N:function(){return this.getUTCDay()+1},S:function(){return this.getUTCDate()%10==1&&this.getUTCDate()!=11?"st":this.getUTCDate()%10==2&&this.getUTCDate()!=12?"nd":this.getUTCDate()%10==3&&this.getUTCDate()!=13?"rd":"th"},w:function(){return this.getUTCDay()},z:l.z,W:function(){var e=new Date(this.getUTCFullYear(),0,1);return Math.ceil(((this-e)/864e5+e.getUTCDay()+1)/7)},F:function(){return e[t].lang[this.lang].long_month[this.getUTCMonth()]},m:function(){return(this.getUTCMonth()+1<10?"0":"")+(this.getUTCMonth()+1)},M:function(){return e[t].lang[this.lang].short_month[this.getUTCMonth()]},n:function(){return this.getUTCMonth()+1},t:function(){return(new Date(new Date(this.getUTCFullYear(),this.getUTCMonth()+1,1)-1)).getUTCDate()},L:l.L,o:l.o,Y:function(){return this.getUTCFullYear()},y:function(){return(""+this.getUTCFullYear()).substr(2)},a:function(){return this.getUTCHours()<12?"am":"pm"},A:function(){return this.getUTCHours()<12?"AM":"PM"},B:l.B,g:function(){return this.getUTCHours()==0?12:this.getUTCHours()>12?this.getUTCHours()-12:this.getUTCHours()},G:function(){return this.getUTCHours()},h:function(){return(this.getUTCHours()<10||12<this.getUTCHours()<22?"0":"")+(this.getUTCHours()<10?this.getUTCHours()+1:this.getUTCHours()-12)},H:function(){return(this.getUTCHours()<10?"0":"")+this.getUTCHours()},i:function(){return(this.getUTCMinutes()<10?"0":"")+this.getUTCMinutes()},s:function(){return(this.getUTCSeconds()<10?"0":"")+this.getUTCSeconds()},e:l.e,I:l.I,O:l.O,P:l.P,T:l.T,Z:l.Z,c:function(){return c.Y.apply(this)+"-"+c.m.apply(this)+"-"+c.d.apply(this)+"T"+c.H.apply(this)+":"+c.i.apply(this)+":"+c.s.apply(this)+c.P.apply(this)},C:function(){return c.c.apply(this).replace(c.P.apply(this),"")+"Z"},r:l.r,U:function(){return this.getUTCTime()/1e3}};e[t].format=function(e,t,n){var r="",i="";var s=n?c:l;for(var o=0;o<t.length;o++){i=t.charAt(o);if(i=="\\"&&s[t.charAt(o+1)]){r+=t.charAt(o+1);o++}else if(l[i]){r+=s[i].call(e)}else{r+=i}}return r};e[t].date=function(n,r,i){var s;var o;if(n instanceof Date){s=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),0));if(r!==undefined){var u=r.match(/[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}([Zz])?/)?true:r==""?true:false;if(u){var a,f,l;a=f=g=0;r=r.split(":");a=r[0];f=r[1];g=r[2];if((r[3]||"").toLowerCase()=="z"){s.setUTCHours(a);s.setUTCMinutes(f);s.setUTCSeconds(g)}else{s.setHours(a);s.setMinutes(f);s.setSeconds(g)}}}if("lang"in s)return s}else if(typeof n=="string"||n&&typeof n=="object"&&"toString"in n){if(n.toString()!==""){var c=n.toString().split(/[Tt ]/);if(r!==undefined){c[1]=!r?"":r}var h=0 in c?c[0]==""?null:c[0].match(/([0-9]{2,4})-?([0-9]{2})-?([0-9]{2})/):null;var p=1 in c?c[1]==""?null:c[1].match(/([0-9]{2}):?([0-9]{2}):?([0-9]{2})([Zz])?/):null;if(h===null){var d=new Date;h=["",d.getFullYear(),d.getMonth()+1,d.getDate()]}if(p===null)p=["",0,0,0];if(h&&p){var v=h[1],m=h[2]-1,l=h[3],a=p[1],f=p[2],g=p[3];if((p[4]||"").toLowerCase()=="z"){s=new Date(Date.UTC(v,m,l,a,f,g,0))}else{s=new Date(v,m,l,a,f,g)}}}}if(!(s instanceof Date)||isNaN(s))s=new Date;s.lang=i||"en";s.roundToDay=function(){return e[t].date(new Date(this.getUTCFullYear(),this.getUTCMonth(),this.getUTCDate(),0,0,0))};s.roundToMonth=function(){return e[t].date(new Date(this.getUTCFullYear(),this.getUTCMonth(),1,0,0,0))};s.getUTCTime=function(){return this.getTime()+this.getTimezoneOffset()*6e4};s.getYearsBetween=function(e,t){var n=this.getMonthsBetween(e);return Math.floor(n/12)};s.getMonthsBetween=function(e,t){var n=this.copy(),r=e.copy();var i=n.copy();i.setDate(1);i.setMonth(i.getMonth()+1);i.setDate(0);i=i.getDate();var s=r.copy();s.setDate(1);s.setMonth(s.getMonth()+1);s.setDate(0);s=s.getDate();if(t){n.setDate(1);r.setDate(1)}var o=n.getFullYear()*12+n.getMonth();var u=r.getFullYear()*12+r.getMonth();if(!t){o+=(n.getDate()+n.getHours()/24+n.getMinutes()/24/60-1)/i;u+=(r.getDate()+r.getHours()/24+n.getMinutes()/24/60-1)/s}return u-o};s.getWeeksBetween=function(e,t){var n=this.copy();var r=e.copy();if(t){n=n.addDays(1-n.getDay());n.setHours(0,0,0,0)}var i=n.getDaysBetween(r)/7;return t?Math.floor(i):i};s.getDaysBetween=function(e,t){var n=e.copy();if(t)n.setHours(this.getHours(),this.getMinutes(),this.getSeconds(),this.getMilliseconds());var r=(-this.getTimezoneOffset()/60- -n.getTimezoneOffset()/60)*36e5;var i=n.getTime()-this.getTime();return(i-r)/864e5};s.getHoursBetween=function(e,t){var n=e.copy();if(t)n.setMinutes(this.getMinutes(),this.getSeconds(),this.getMilliseconds());var r=(-this.getTimezoneOffset()/60- -n.getTimezoneOffset()/60)*36e5;var i=n.getTime()-this.getTime();return(i-r)/36e5};s.getMinutesBetween=function(e,t){var n=e.copy();if(t)n.setSeconds(this.getSeconds(),this.getMilliseconds());var r=(-this.getTimezoneOffset()/60- -n.getTimezoneOffset()/60)*36e5;var i=n.getTime()-this.getTime();return(i-r)/6e4};s.getSecondsBetween=function(e,t){return t?Math.round(this.getMinutesBetween(e)*60):this.getMinutesBetween(e)*60};s.addYears=function(e){var t=Math.floor(e);var n=Math.floor((e-t)*12);var r=this.copy();r.setFullYear(this.getFullYear()+t);r.setMonth(this.getMonth()+n);return r};s.addMonths=function(e){var t=Math.floor(e);var n=this.copy();n.setMonth(this.getMonth()+t);return n};s.addDays=function(e){var t=Math.floor(e);var n=Math.floor((e-t)*24);var r=Math.floor((e-t-n/24)*24*60);var i=Math.floor((e-t-n/24-r/24/60)*24*60*60);var s=this.copy();s.setDate(this.getDate()+t);s.setHours(this.getHours()+n);s.setMinutes(this.getMinutes()+r);s.setSeconds(this.getSeconds()+i);return s};s.addHours=function(e){var t=Math.floor(e);var n=Math.floor((e-t)*60);var r=Math.floor((e-t-n/60)*60*60);var i=this.copy();i.setHours(this.getHours()+t);i.setMinutes(this.getMinutes()+n);i.setSeconds(this.getSeconds()+r);return i};s.addMinutes=function(e){var t=Math.floor(e);var n=Math.floor((e-t)*60);var r=this.copy();r.setMinutes(this.getMinutes()+t);r.setSeconds(this.getSeconds()+n);return r};s.addSeconds=function(e){var t=Math.floor(e);var n=this.copy();n.setSeconds(this.getSeconds()+t);return n};s.copy=function(){return e[t].date(this.format("Y-m-d H:i:s"))};s.format=function(n){return e[t].format(this,n)};s.formatUTC=function(n){return e[t].format(this,n,true)};s.incrementBy=function(e,t){if(t!==undefined&&(isNaN(Number(t))||!(Number(t)!==0)))return this;if(!(typeof e=="string"||typeof e=="number")&&(e==null||e==undefined||e==false||!("toString"in e)))return this.copy();var n=e.split(" ");var r=Number(n[0]);var i=n[1]||"hour";if(t!==null&&t!==undefined&&t!==false&&!isNaN(t))r=r*t;if(r!==0){switch(i.toString().replace(/s$/,"").toLowerCase()){case"sec":case"second":return this.addMinutes(r/60);case"min":case"minute":return this.addMinutes(r);case"hour":return this.addHours(r);case"day":return this.addDays(r);case"week":return this.addDays(r*7);case"month":return this.addMonths(r);case"year":return this.addYears(r)}}return this.copy()};s.getIncrementBetween=function(e,t){if(!(e instanceof Date)||!t)return 0;var n=t.split(" ");var r=Number(n[0]);var i=n[1]||"hour";if(r!==0){switch(i.toString().replace(/s$/,"").toLowerCase()){case"sec":case"second":return this.getMinutesBetween(e)/60/r;case"min":case"minute":return this.getMinutesBetween(e)/r;case"hour":return this.getHoursBetween(e)/r;case"day":return this.getDaysBetween(e)/r;case"week":return this.getDaysBetween(e)/7/r;case"month":return this.getMonthsBetween(e)/r;case"year":return this.getYearsBetween(e)/r}}return Infinity};s.roundToIncrement=function(n){if(!(typeof n=="string"||typeof n=="number")&&(n==null||n==undefined||n==false||!("toString"in n)))return this.copy();var r=n.split(" ");var i=Number(r[0]);var s=r[1]||"hour";var o=this.getTime();if(i!==0){var u=0;switch(s.toString().replace(/s$/,"").toLowerCase()){case"sec":case"second":u=1e3*i;break;case"min":case"minute":u=6e4*i;break;case"hour":u=36e5*i;break;case"day":u=864e5*i;return e[t].date(new Date(Math.round((o+432e5)/u)*u)).addHours(-12);case"week":var a=this.getDay();var f=null;if(a<3){f=this.addDays(0-a)}else if(a>3){f=this.addDays(7-a)}else{f=this.addDays(this.getHours()>=12?7-a:0-a)}f.setHours(0,0,0,0);return f;break;case"month":var l=e[t].date(this.format("Y-m-01 00:00:00"));var c=l.getDaysBetween(l.addMonths(1))/2;if(this.getDate()>=c){return l.addMonths(1)}else{return l}break;case"year":var h=e[t].date(this.format("Y-01-01 00:00:00"));var c=h.getDaysBetween(h.addYears(1))/2;var p=h.getDaysBetween(this);if(p>=c){return h.addYears(1)}else{return h}break}return e[t].date(new Date(Math.round(o/u)*u))}return this};return s};e[t].incrementsIn=function(n,r){var i=e[t].date("1970-01-01 00:00:00");return i.getIncrementBetween(i.incrementBy(n),r)}})(jQuery)