/*! bootstrap-calendar - v0.2.4 - 2014-07-01 - https://github.com/Serhioromano/bootstrap-calendar */ "use strict";Date.prototype.getWeek=function(){var t=new Date(this.getFullYear(),0,1);return Math.ceil(((this.getTime()-t.getTime())/864e5+t.getDay()+1)/7)},Date.prototype.getMonthFormatted=function(){var t=this.getMonth()+1;return 10>t?"0"+t:t},Date.prototype.getDateFormatted=function(){var t=this.getDate();return 10>t?"0"+t:t},String.prototype.format||(String.prototype.format=function(){var t=arguments;return this.replace(/{(\d+)}/g,function(e,a){return"undefined"!=typeof t[a]?t[a]:e})}),String.prototype.formatNum||(String.prototype.formatNum=function(t){for(var e=""+this;e.length"),function(t,a){var d,h=null;if(d=/^(\d\d)-(\d\d)$/.exec(a))h=new Date(i,parseInt(d[2],10)-1,parseInt(d[1],10));else if(d=/^(\d\d)-(\d\d)-(\d\d\d\d)$/.exec(a))parseInt(d[3],10)==i&&(h=new Date(i,parseInt(d[2],10)-1,parseInt(d[1],10)));else if(d=/^easter(([+\-])(\d+))?$/.exec(a))h=r(i,d[1]?parseInt(d[1],10):0);else if(d=/^(\d\d)([+\-])([1-5])\*([0-6])$/.exec(a)){var p=parseInt(d[1],10)-1,c=d[2],u=parseInt(d[3]),m=parseInt(d[4]);switch(c){case"+":for(var y=new Date(i,p,-6);y.getDay()!=m;)y=new Date(y.getFullYear(),y.getMonth(),y.getDate()+1);h=new Date(y.getFullYear(),y.getMonth(),y.getDate()+7*u);break;case"-":for(var y=new Date(i,p+1,7);y.getDay()!=m;)y=new Date(y.getFullYear(),y.getMonth(),y.getDate()-1);h=new Date(y.getFullYear(),y.getMonth(),y.getDate()-7*u)}}if(!h)return n("Unknown holiday: "+e),l=!0,!1;switch(t){case 0:o=h;break;case 1:if(h.getTime()<=o.getTime())return n("Unknown holiday: "+e),l=!0,!1;s=h;break;default:return n("Unknown holiday: "+e),l=!0,!1}}),!l){var d=[];if(s)for(var p=new Date(o.getTime());p.getTime()<=s.getTime();p.setDate(p.getDate()+1))d.push(new Date(p.getTime()));else d.push(o);h.push({name:a,days:d})}}),o.cache[s]=h,o.cache[s]}function n(e){"object"==t.type(window.console)&&"function"==t.type(window.console.warn)&&window.console.warn("[Bootstrap-Calendar] "+e)}function i(e,a){return this.options=t.extend(!0,{position:{start:new Date,end:new Date}},l,e),this.setLanguage(this.options.language),this.context=a,a.css("width",this.options.width).addClass("cal-context"),this.view(),this}function s(e,a,o,n){e.stopPropagation();var a=t(a),i=a.closest(".cal-cell"),s=i.closest(".cal-before-eventlist"),r=i.data("cal-row");a.fadeOut("fast"),o.slideUp("fast",function(){var e=t(".events-list",i);o.html(n.options.templates["events-list"]({cal:n,events:n.getEventsBetween(parseInt(e.data("cal-start")),parseInt(e.data("cal-end")))})),s.after(o),n.activecell=t("[data-cal-date]",i).text(),t("#cal-slide-tick").addClass("tick"+r).show(),o.slideDown("fast",function(){t("body").one("click",function(){o.slideUp("fast"),n.activecell=0})})}),setTimeout(function(){t("a.event-item").mouseenter(function(){t('a[data-event-id="'+t(this).data("event-id")+'"]').closest(".cal-cell1").addClass("day-highlight dh-"+t(this).data("event-class"))}),t("a.event-item").mouseleave(function(){t("div.cal-cell1").removeClass("day-highlight dh-"+t(this).data("event-class"))}),n._update_modal()},400)}function r(t,e){var a=t%19,o=Math.floor(t/100),n=t%100,i=Math.floor(o/4),s=o%4,r=Math.floor((o+8)/25),l=Math.floor((o-r+1)/3),d=(19*a+o-i-l+15)%30,h=Math.floor(n/4),p=n%4,c=(32+2*s+2*h-d-p)%7,u=Math.floor((a+11*d+22*c)/451),m=d+c+7*u+114,y=Math.floor(m/31)-1,f=m%31+1;return new Date(t,y,f+(e?e:0),0,0,0)}var l={width:"100%",view:"month",day:"now",time_start:"06:00",time_end:"22:00",time_split:"30",events_source:"",tmpl_path:"tmpls/",tmpl_cache:!0,classes:{months:{inmonth:"cal-day-inmonth",outmonth:"cal-day-outmonth",saturday:"cal-day-weekend",sunday:"cal-day-weekend",holidays:"cal-day-holiday",today:"cal-day-today"},week:{workday:"cal-day-workday",saturday:"cal-day-weekend",sunday:"cal-day-weekend",holidays:"cal-day-holiday",today:"cal-day-today"}},modal:null,modal_type:"iframe",modal_title:null,views:{year:{slide_events:1,enable:1},month:{slide_events:1,enable:1},week:{enable:1},day:{enable:1}},merge_holidays:!1,onAfterEventsLoad:function(){},onBeforeEventsLoad:function(t){t()},onAfterViewLoad:function(){},onAfterModalShown:function(){},onAfterModalHidden:function(){},events:[],templates:{year:"",month:"",week:"",day:""},stop_cycling:!1},d={first_day:2,holidays:{"01-01":"New Year's Day","01+3*1":"Birthday of Dr. Martin Luther King, Jr.","02+3*1":"Washington's Birthday","05-1*1":"Memorial Day","04-07":"Independence Day","09+1*1":"Labor Day","10+2*1":"Columbus Day","11-11":"Veterans Day","11+4*4":"Thanksgiving Day","25-12":"Christmas"}},h={error_noview:"Calendar: View {0} not found",error_dateformat:'Calendar: Wrong date format {0}. Should be either "now" or "yyyy-mm-dd"',error_loadurl:"Calendar: Event URL is not set",error_where:'Calendar: Wrong navigation direction {0}. Can be only "next" or "prev" or "today"',error_timedevide:"Calendar: Time split parameter should divide 60 without decimals. Something like 10, 15, 30",no_events_in_day:"No events in this day.",title_year:"{0}",title_month:"{0} {1}",title_week:"week {0} of {1}",title_day:"{0} {1} {2}, {3}",week:"Week {0}",all_day:"All day",time:"Time",events:"Events",before_time:"Ends before timeline",after_time:"Starts after timeline",m0:"January",m1:"February",m2:"March",m3:"April",m4:"May",m5:"June",m6:"July",m7:"August",m8:"September",m9:"October",m10:"November",m11:"December",ms0:"Jan",ms1:"Feb",ms2:"Mar",ms3:"Apr",ms4:"May",ms5:"Jun",ms6:"Jul",ms7:"Aug",ms8:"Sep",ms9:"Oct",ms10:"Nov",ms11:"Dec",d0:"Sunday",d1:"Monday",d2:"Tuesday",d3:"Wednesday",d4:"Thursday",d5:"Friday",d6:"Saturday"},p="";try{"object"==t.type(window.jstz)&&"function"==t.type(jstz.determine)&&(p=jstz.determine().name(),"string"!==t.type(p)&&(p=""))}catch(c){}o.cache={},i.prototype.setOptions=function(e){t.extend(this.options,e),"language"in e&&this.setLanguage(e.language),"modal"in e&&this._update_modal()},i.prototype.setLanguage=function(e){window.calendar_languages&&e in window.calendar_languages?(this.locale=t.extend(!0,{},h,calendar_languages[e]),this.options.language=e):(this.locale=h,delete this.options.language)},i.prototype._render=function(){this.context.html(""),this._loadTemplate(this.options.view),this.stop_cycling=!1;var t={};t.cal=this,t.day=1,t.days_name=1==a(this,"first_day")?[this.locale.d1,this.locale.d2,this.locale.d3,this.locale.d4,this.locale.d5,this.locale.d6,this.locale.d0]:[this.locale.d0,this.locale.d1,this.locale.d2,this.locale.d3,this.locale.d4,this.locale.d5,this.locale.d6];var e=parseInt(this.options.position.start.getTime()),o=parseInt(this.options.position.end.getTime());switch(t.events=this.getEventsBetween(e,o),this.options.view){case"month":break;case"week":this._calculate_hour_minutes(t);break;case"day":this._calculate_hour_minutes(t)}t.start=new Date(this.options.position.start.getTime()),t.lang=this.locale,this.context.append(this.options.templates[this.options.view](t)),this._update()},i.prototype._calculate_hour_minutes=function(e){var a=this,o=parseInt(this.options.time_split),i=60/o,s=Math.min(i,1);(i>=1&&i%1!=0||1>i&&1440/o%1!=0)&&t.error(this.locale.error_timedevide);var r=this.options.time_start.split(":"),l=this.options.time_end.split(":");e.hours=(parseInt(l[0])-parseInt(r[0]))*s;var d=e.hours*i-parseInt(r[1])/o,h=6e4*o,p=new Date(this.options.position.start.getTime());p.setHours(r[0]),p.setMinutes(r[1]);var c=new Date(this.options.position.end.getTime());c.setHours(l[0]),c.setMinutes(l[1]),e.all_day=[],e.by_hour=[],e.after_time=[],e.before_time=[],t.each(e.events,function(t,o){var i=new Date(parseInt(o.start)),s=new Date(parseInt(o.end));if(o.start_hour=i.getHours().toString().formatNum(2)+":"+i.getMinutes().toString().formatNum(2),o.end_hour=s.getHours().toString().formatNum(2)+":"+s.getMinutes().toString().formatNum(2),o.startc.getTime()&&(n(1),o.end_hour=s.getDate()+" "+a.locale["ms"+s.getMonth()]+" "+o.end_hour),o.startc.getTime())return void e.all_day.push(o);if(o.endc.getTime())return void e.after_time.push(o);var r=p.getTime()-o.start;o.top=r>=0?0:Math.abs(r)/h;var l=Math.abs(d-o.top),u=(o.end-o.start)/h;r>=0&&(u=(o.end-p.getTime())/h),o.lines=u,u>l&&(o.lines=l),e.by_hour.push(o)})},i.prototype._hour_min=function(t){var e=this.options.time_start.split(":"),a=parseInt(this.options.time_split),o=60/a;return 0==t?o-parseInt(e[1])/a:o},i.prototype._hour=function(t,e){var a=this.options.time_start.split(":"),o=parseInt(this.options.time_split),n=""+(parseInt(a[0])+t*Math.max(o/60,1)),i=""+(o*e+(0==t?parseInt(a[1]):0));return n.formatNum(2)+":"+i.formatNum(2)},i.prototype._week=function(){this._loadTemplate("week-days");var e={},o=parseInt(this.options.position.start.getTime()),n=parseInt(this.options.position.end.getTime()),i=[],s=this,r=a(this,"first_day");return t.each(this.getEventsBetween(o,n),function(t,e){e.start_day=new Date(parseInt(e.start)).getDay(),1==r&&(e.start_day=(e.start_day+6)%7),e.days=e.end-e.start<=864e5?1:(e.end-e.start)/864e5,e.start7&&(e.days=7-e.start_day),i.push(e)}),e.events=i,e.cal=this,s.options.templates["week-days"](e)},i.prototype._month=function(t){this._loadTemplate("year-month");var e={cal:this},a=t+1;e.data_day=this.options.position.start.getFullYear()+"-"+(10>a?"0"+a:a)+"-01",e.month_name=this.locale["m"+t];var o=new Date(this.options.position.start.getFullYear(),t,1,0,0,0);return e.start=parseInt(o.getTime()),e.end=parseInt(new Date(this.options.position.start.getFullYear(),t+1,1,0,0,0).getTime()),e.events=this.getEventsBetween(e.start,e.end),this.options.templates["year-month"](e)},i.prototype._day=function(e,o){this._loadTemplate("month-day");var n={tooltip:"",cal:this},i=this.options.classes.months.outmonth,s=this.options.position.start.getDay();2==a(this,"first_day")?s++:s=0==s?7:s,o=o-s+1;var r=new Date(this.options.position.start.getFullYear(),this.options.position.start.getMonth(),o,0,0,0);o>0&&(i=this.options.classes.months.inmonth);var l=new Date(this.options.position.end.getTime()-1).getDate();if(o+1>l&&(this.stop_cycling=!0),o>l&&(o-=l,i=this.options.classes.months.outmonth),i=t.trim(i+" "+this._getDayClass("months",r)),0>=o){var d=new Date(this.options.position.start.getFullYear(),this.options.position.start.getMonth(),0).getDate();o=d-Math.abs(o),i+=" cal-month-first-row"}var h=this._getHoliday(r);return h!==!1&&(n.tooltip=h),n.data_day=r.getFullYear()+"-"+r.getMonthFormatted()+"-"+(10>o?"0"+o:o),n.cls=i,n.day=o,n.start=parseInt(r.getTime()),n.end=parseInt(n.start+864e5),n.events=this.getEventsBetween(n.start,n.end),this.options.templates["month-day"](n)},i.prototype._getHoliday=function(e){var a=!1;return t.each(o(this,e.getFullYear()),function(){var o=!1;return t.each(this.days,function(){return this.toDateString()==e.toDateString()?(o=!0,!1):void 0}),o?(a=this.name,!1):void 0}),a},i.prototype._getHolidayName=function(t){var e=this._getHoliday(t);return e===!1?"":e},i.prototype._getDayClass=function(t,e){var a=this,o=function(e,o){var n;n=a.options.classes&&t in a.options.classes&&e in a.options.classes[t]?a.options.classes[t][e]:"","string"==typeof n&&n.length&&o.push(n)},n=[];e.toDateString()==(new Date).toDateString()&&o("today",n);var i=this._getHoliday(e);switch(i!==!1&&o("holidays",n),e.getDay()){case 0:o("sunday",n);break;case 6:o("saturday",n)}return o(e.toDateString(),n),n.join(" ")},i.prototype.view=function(t){if(t){if(!this.options.views[t].enable)return;this.options.view=t}this._init_position(),this._loadEvents(),this._render(),this.options.onAfterViewLoad.call(this,this.options.view)},i.prototype.navigate=function(e,a){var o=t.extend({},this.options.position);if("next"==e)switch(this.options.view){case"year":o.start.setFullYear(this.options.position.start.getFullYear()+1);break;case"month":o.start.setMonth(this.options.position.start.getMonth()+1);break;case"week":o.start.setDate(this.options.position.start.getDate()+7);break;case"day":o.start.setDate(this.options.position.start.getDate()+1)}else if("prev"==e)switch(this.options.view){case"year":o.start.setFullYear(this.options.position.start.getFullYear()-1);break;case"month":o.start.setMonth(this.options.position.start.getMonth()-1);break;case"week":o.start.setDate(this.options.position.start.getDate()-7);break;case"day":o.start.setDate(this.options.position.start.getDate()-1)}else"today"==e?o.start.setTime((new Date).getTime()):t.error(this.locale.error_where.format(e));this.options.day=o.start.getFullYear()+"-"+o.start.getMonthFormatted()+"-"+o.start.getDateFormatted(),this.view(),_.isFunction(a)&&a()},i.prototype._init_position=function(){var e,o,n;if("now"==this.options.day){var i=new Date;e=i.getFullYear(),o=i.getMonth(),n=i.getDate()}else if(this.options.day.match(/^\d{4}-\d{2}-\d{2}$/g)){var s=this.options.day.split("-");e=parseInt(s[0],10),o=parseInt(s[1],10)-1,n=parseInt(s[2],10)}else t.error(this.locale.error_dateformat.format(this.options.day));switch(this.options.view){case"year":this.options.position.start.setTime(new Date(e,0,1).getTime()),this.options.position.end.setTime(new Date(e+1,0,1).getTime());break;case"month":this.options.position.start.setTime(new Date(e,o,1).getTime()),this.options.position.end.setTime(new Date(e,o+1,1).getTime());break;case"day":this.options.position.start.setTime(new Date(e,o,n).getTime()),this.options.position.end.setTime(new Date(e,o,n+1).getTime());break;case"week":var r,l=new Date(e,o,n);r=1==a(this,"first_day")?l.getDate()-(l.getDay()+6)%7:l.getDate()-l.getDay(),this.options.position.start.setTime(new Date(e,o,r).getTime()),this.options.position.end.setTime(new Date(e,o,r+7).getTime());break;default:t.error(this.locale.error_noview.format(this.options.view))}return this},i.prototype.getTitle=function(){var t=this.options.position.start;switch(this.options.view){case"year":return this.locale.title_year.format(t.getFullYear());case"month":return this.locale.title_month.format(this.locale["m"+t.getMonth()],t.getFullYear());case"week":return this.locale.title_week.format(t.getWeek(),t.getFullYear());case"day":return this.locale.title_day.format(this.locale["d"+t.getDay()],t.getDate(),this.locale["m"+t.getMonth()],t.getFullYear())}},i.prototype.isToday=function(){var t=(new Date).getTime();return t>this.options.position.start&&ts?"0"+s:s,a.html(e.locale.week.format(n.getWeek())),a.attr("data-cal-week",o+s).show().appendTo(i)}).on("mouseleave",function(){a.hide()}),a.click(function(){e.options.day=t(this).data("cal-week"),e.view("week")}),t("a.event").mouseenter(function(){t('a[data-event-id="'+t(this).data("event-id")+'"]').closest(".cal-cell1").addClass("day-highlight dh-"+t(this).data("event-class"))}),t("a.event").mouseleave(function(){t("div.cal-cell1").removeClass("day-highlight dh-"+t(this).data("event-class"))})},i.prototype._update_month_year=function(){if(this.options.views[this.options.view].slide_events){var e=this,a=t(document.createElement("div")).attr("id","cal-day-tick").html('');t(".cal-month-day, .cal-year-box .span3").on("mouseenter",function(){0!=t(".events-list",this).length&&t(this).children("[data-cal-date]").text()!=e.activecell&&a.show().appendTo(this)}).on("mouseleave",function(){a.hide()}).on("click",function(n){0!=t(".events-list",this).length&&t(this).children("[data-cal-date]").text()!=e.activecell&&s(n,a,o,e)});var o=t(document.createElement("div")).attr("id","cal-slide-box");o.hide().click(function(t){t.stopPropagation()}),this._loadTemplate("events-list"),a.click(function(a){s(a,t(this),o,e)})}},i.prototype.getEventsBetween=function(e,a){var o=[];return t.each(this.options.events,function(){if(null==this.start)return!0;var t=this.end||this.start;parseInt(this.start)=e&&o.push(this)}),o},t.fn.calendar=function(t){return new i(t,this)}}(jQuery);