(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==='object'){factory(require('jquery'))}else{factory(jQuery)}}(function($,undefined){function UTCDate(){return new Date(Date.UTC.apply(Date,arguments))}function UTCToday(){var today=new Date();return UTCDate(today.getFullYear(),today.getMonth(),today.getDate())}function isUTCEquals(date1,date2){return(date1.getUTCFullYear()===date2.getUTCFullYear()&&date1.getUTCMonth()===date2.getUTCMonth()&&date1.getUTCDate()===date2.getUTCDate())}function alias(method){return function(){return this[method].apply(this,arguments)}}function isValidDate(d){return d&&!isNaN(d.getTime())}var DateArray=(function(){var extras={get:function(i){return this.slice(i)[0]},contains:function(d){var val=d&&d.valueOf();for(var i=0,l=this.length;iwindowWidth){this.picker.addClass('datepicker-orient-right');left+=width-calendarWidth}else{this.picker.addClass('datepicker-orient-left')}}var yorient=this.o.orientation.y,top_overflow;if(yorient==='auto'){top_overflow=-scrollTop+top-calendarHeight;yorient=top_overflow<0?'bottom':'top'}this.picker.addClass('datepicker-orient-'+yorient);if(yorient==='top')top-=calendarHeight+parseInt(this.picker.css('padding-top'));else top+=height;if(this.o.rtl){var right=windowWidth-(left+width);this.picker.css({top:top,right:right,zIndex:zIndex})}else{this.picker.css({top:top,left:left,zIndex:zIndex})}return this},_allow_update:true,update:function(){if(!this._allow_update)return this;var oldDates=this.dates.copy(),dates=[],fromArgs=false;if(arguments.length){$.each(arguments,$.proxy(function(i,date){if(date instanceof Date)date=this._local_to_utc(date);dates.push(date)},this));fromArgs=true}else{dates=this.isInput?this.element.val():this.element.data('date')||this.element.find('input').val();if(dates&&this.o.multidate)dates=dates.split(this.o.multidateSeparator);else dates=[dates];delete this.element.data().date}dates=$.map(dates,$.proxy(function(date){return DPGlobal.parseDate(date,this.o.format,this.o.language)},this));dates=$.grep(dates,$.proxy(function(date){return(!this.dateWithinRange(date)||!date)},this),true);this.dates.replace(dates);if(this.dates.length)this.viewDate=new Date(this.dates.get(-1));else if(this.viewDatethis.o.endDate)this.viewDate=new Date(this.o.endDate);else this.viewDate=this.o.defaultViewDate;if(fromArgs){this.setValue()}else if(dates.length){if(String(oldDates)!==String(this.dates))this._trigger('changeDate')}if(!this.dates.length&&oldDates.length)this._trigger('clearDate');this.fill();this.element.change();return this},fillDow:function(){var dowCnt=this.o.weekStart,html='';if(this.o.calendarWeeks){this.picker.find('.datepicker-days .datepicker-switch').attr('colspan',function(i,val){return parseInt(val)+1});html+=' '}while(dowCnt'+dates[this.o.language].daysMin[(dowCnt++)%7]+''}html+='';this.picker.find('.datepicker-days thead').append(html)},fillMonths:function(){var html='',i=0;while(i<12){html+=''+dates[this.o.language].monthsShort[i++]+''}this.picker.find('.datepicker-months td').html(html)},setRange:function(range){if(!range||!range.length)delete this.range;else this.range=$.map(range,function(d){return d.valueOf()});this.fill()},getClassNames:function(date){var cls=[],year=this.viewDate.getUTCFullYear(),month=this.viewDate.getUTCMonth(),today=new Date();if(date.getUTCFullYear()year||(date.getUTCFullYear()===year&&date.getUTCMonth()>month)){cls.push('new')}if(this.focusDate&&date.valueOf()===this.focusDate.valueOf())cls.push('focused');if(this.o.todayHighlight&&date.getUTCFullYear()===today.getFullYear()&&date.getUTCMonth()===today.getMonth()&&date.getUTCDate()===today.getDate()){cls.push('today')}if(this.dates.contains(date)!==-1)cls.push('active');if(!this.dateWithinRange(date)||this.dateIsDisabled(date)){cls.push('disabled')}if($.inArray(date.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1){cls.push('highlighted')}if(this.range){if(date>this.range[0]&&date');if(this.o.calendarWeeks){var ws=new Date(+prevMonth+(this.o.weekStart-prevMonth.getUTCDay()-7)%7*864e5),th=new Date(Number(ws)+(7+4-ws.getUTCDay())%7*864e5),yth=new Date(Number(yth=UTCDate(th.getUTCFullYear(),0,1))+(7+4-yth.getUTCDay())%7*864e5),calWeek=(th-yth)/864e5/7+1;html.push(''+calWeek+'')}}clsName=this.getClassNames(prevMonth);clsName.push('day');if(this.o.beforeShowDay!==$.noop){var before=this.o.beforeShowDay(this._utc_to_local(prevMonth));if(before===undefined)before={};else if(typeof(before)==='boolean')before={enabled:before};else if(typeof(before)==='string')before={classes:before};if(before.enabled===false)clsName.push('disabled');if(before.classes)clsName=clsName.concat(before.classes.split(/\s+/));if(before.tooltip)tooltip=before.tooltip}clsName=$.unique(clsName);html.push(''+prevMonth.getUTCDate()+'');tooltip=null;if(prevMonth.getUTCDay()===this.o.weekEnd){html.push('')}prevMonth.setUTCDate(prevMonth.getUTCDate()+1)}this.picker.find('.datepicker-days tbody').empty().append(html.join(''));var monthsTitle=dates[this.o.language].monthsTitle||dates['en'].monthsTitle||'Months';var months=this.picker.find('.datepicker-months').find('.datepicker-switch').text(this.o.maxViewMode<2?monthsTitle:year).end().find('span').removeClass('active');$.each(this.dates,function(i,d){if(d.getUTCFullYear()===year)months.eq(d.getUTCMonth()).addClass('active')});if(yearendYear){months.addClass('disabled')}if(year===startYear){months.slice(0,startMonth).addClass('disabled')}if(year===endYear){months.slice(endMonth+1).addClass('disabled')}if(this.o.beforeShowMonth!==$.noop){var that=this;$.each(months,function(i,month){if(!$(month).hasClass('disabled')){var moDate=new Date(year,i,1);var before=that.o.beforeShowMonth(moDate);if(before===false)$(month).addClass('disabled')}})}html='';year=parseInt(year/10,10)*10;var yearCont=this.picker.find('.datepicker-years').find('.datepicker-switch').text(year+'-'+(year+9)).end().find('td');year-=1;var years=$.map(this.dates,function(d){return d.getUTCFullYear()}),classes;for(var i=-1;i<11;i++){classes=['year'];tooltip=null;if(i===-1)classes.push('old');else if(i===10)classes.push('new');if($.inArray(year,years)!==-1)classes.push('active');if(yearendYear)classes.push('disabled');if(this.o.beforeShowYear!==$.noop){var yrBefore=this.o.beforeShowYear(new Date(year,0,1));if(yrBefore===undefined)yrBefore={};else if(typeof(yrBefore)==='boolean')yrBefore={enabled:yrBefore};else if(typeof(yrBefore)==='string')yrBefore={classes:yrBefore};if(yrBefore.enabled===false)classes.push('disabled');if(yrBefore.classes)classes=classes.concat(yrBefore.classes.split(/\s+/));if(yrBefore.tooltip)tooltip=yrBefore.tooltip}html+=''+year+'';year+=1}yearCont.html(html)},updateNavArrows:function(){if(!this._allow_update)return;var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth();switch(this.viewMode){case 0:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()&&month<=this.o.startDate.getUTCMonth()){this.picker.find('.prev').css({visibility:'hidden'})}else{this.picker.find('.prev').css({visibility:'visible'})}if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()&&month>=this.o.endDate.getUTCMonth()){this.picker.find('.next').css({visibility:'hidden'})}else{this.picker.find('.next').css({visibility:'visible'})}break;case 1:case 2:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.prev').css({visibility:'hidden'})}else{this.picker.find('.prev').css({visibility:'visible'})}if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.next').css({visibility:'hidden'})}else{this.picker.find('.next').css({visibility:'visible'})}break}},click:function(e){e.preventDefault();e.stopPropagation();var target=$(e.target).closest('span, td, th'),year,month,day;if(target.length===1){switch(target[0].nodeName.toLowerCase()){case'th':switch(target[0].className){case'datepicker-switch':this.showMode(1);break;case'prev':case'next':var dir=DPGlobal.modes[this.viewMode].navStep*(target[0].className==='prev'?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,dir);this._trigger('changeMonth',this.viewDate);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,dir);if(this.viewMode===1)this._trigger('changeYear',this.viewDate);break}this.fill();break;case'today':this.showMode(-2);var which=this.o.todayBtn==='linked'?null:'view';this._setDate(UTCToday(),which);break;case'clear':this.clearDates();break}break;case'span':if(!target.hasClass('disabled')){this.viewDate.setUTCDate(1);if(target.hasClass('month')){day=1;month=target.parent().find('span').index(target);year=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(month);this._trigger('changeMonth',this.viewDate);if(this.o.minViewMode===1){this._setDate(UTCDate(year,month,day));this.showMode()}else{this.showMode(-1)}}else{day=1;month=0;year=parseInt(target.text(),10)||0;this.viewDate.setUTCFullYear(year);this._trigger('changeYear',this.viewDate);if(this.o.minViewMode===2){this._setDate(UTCDate(year,month,day))}this.showMode(-1)}this.fill()}break;case'td':if(target.hasClass('day')&&!target.hasClass('disabled')){day=parseInt(target.text(),10)||1;year=this.viewDate.getUTCFullYear();month=this.viewDate.getUTCMonth();if(target.hasClass('old')){if(month===0){month=11;year-=1}else{month-=1}}else if(target.hasClass('new')){if(month===11){month=0;year+=1}else{month+=1}}this._setDate(UTCDate(year,month,day))}break}}if(this.picker.is(':visible')&&this._focused_from){$(this._focused_from).focus()}delete this._focused_from},_toggle_multidate:function(date){var ix=this.dates.contains(date);if(!date){this.dates.clear()}if(ix!==-1){if(this.o.multidate===true||this.o.multidate>1||this.o.toggleActive){this.dates.remove(ix)}}else if(this.o.multidate===false){this.dates.clear();this.dates.push(date)}else{this.dates.push(date)}if(typeof this.o.multidate==='number')while(this.dates.length>this.o.multidate)this.dates.remove(0)},_setDate:function(date,which){if(!which||which==='date')this._toggle_multidate(date&&new Date(date));if(!which||which==='view')this.viewDate=date&&new Date(date);this.fill();this.setValue();if(!which||which!=='view'){this._trigger('changeDate')}var element;if(this.isInput){element=this.element}else if(this.component){element=this.element.find('input')}if(element){element.change()}if(this.o.autoclose&&(!which||which==='date')){this.hide()}},moveDay:function(date,dir){var newDate=new Date(date);newDate.setUTCDate(date.getUTCDate()+dir);return newDate},moveWeek:function(date,dir){return this.moveDay(date,dir*7)},moveMonth:function(date,dir){if(!isValidDate(date))return this.o.defaultViewDate;if(!dir)return date;var new_date=new Date(date.valueOf()),day=new_date.getUTCDate(),month=new_date.getUTCMonth(),mag=Math.abs(dir),new_month,test;dir=dir>0?1:-1;if(mag===1){test=dir===-1?function(){return new_date.getUTCMonth()===month}:function(){return new_date.getUTCMonth()!==new_month};new_month=month+dir;new_date.setUTCMonth(new_month);if(new_month<0||new_month>11)new_month=(new_month+12)%12}else{for(var i=0;i0)},dateWithinRange:function(date){return date>=this.o.startDate&&date<=this.o.endDate},keydown:function(e){if(!this.picker.is(':visible')){if(e.keyCode===40||e.keyCode===27){this.show();e.stopPropagation()}return}var dateChanged=false,dir,newViewDate,focusDate=this.focusDate||this.viewDate;switch(e.keyCode){case 27:if(this.focusDate){this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill()}else this.hide();e.preventDefault();e.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||this.o.daysOfWeekDisabled.length===7)break;dir=e.keyCode===37||e.keyCode===38?-1:1;if(e.ctrlKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveYear');if(newViewDate)this._trigger('changeYear',this.viewDate)}else if(e.shiftKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveMonth');if(newViewDate)this._trigger('changeMonth',this.viewDate)}else if(e.keyCode===37||e.keyCode===39){newViewDate=this.moveAvailableDate(focusDate,dir,'moveDay')}else if(!this.weekOfDateIsDisabled(focusDate)){newViewDate=this.moveAvailableDate(focusDate,dir,'moveWeek')}if(newViewDate){this.focusDate=this.viewDate=newViewDate;this.setValue();this.fill();e.preventDefault()}break;case 13:if(!this.o.forceParse)break;focusDate=this.focusDate||this.dates.get(-1)||this.viewDate;if(this.o.keyboardNavigation){this._toggle_multidate(focusDate);dateChanged=true}this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.setValue();this.fill();if(this.picker.is(':visible')){e.preventDefault();e.stopPropagation();if(this.o.autoclose)this.hide()}break;case 9:this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill();this.hide();break}if(dateChanged){if(this.dates.length)this._trigger('changeDate');else this._trigger('clearDate');var element;if(this.isInput){element=this.element}else if(this.component){element=this.element.find('input')}if(element){element.change()}}},showMode:function(dir){if(dir){this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+dir))}var mydiv='.datepicker-'+DPGlobal.modes[this.viewMode].clsName;this.picker.children('div').hide();var $days=this.picker.children('div').filter(mydiv);if($days.length>0){$days[0].style.display='block'}this.updateNavArrows()}};var DateRangePicker=function(element,options){$(element).data('datepicker',this);this.element=$(element);this.inputs=$.map(options.inputs,function(i){return i.jquery?i[0]:i});delete options.inputs;datepickerPlugin.call($(this.inputs),options).on('changeDate',$.proxy(this.dateUpdated,this));this.pickers=$.map(this.inputs,function(i){return $(i).data('datepicker')});this.updateDates()};DateRangePicker.prototype={updateDates:function(){this.dates=$.map(this.pickers,function(i){return i.getUTCDate()});this.updateRanges()},updateRanges:function(){var range=$.map(this.dates,function(d){return d.valueOf()});$.each(this.pickers,function(i,p){p.setRange(range)})},dateUpdated:function(e){if(this.updating)return;this.updating=true;var dp=$(e.target).data('datepicker');if(typeof(dp)==="undefined"){return}var new_date=dp.getUTCDate(),i=$.inArray(e.target,this.inputs),j=i-1,k=i+1,l=this.inputs.length;if(i===-1)return;$.each(this.pickers,function(i,p){if(!p.getUTCDate())p.setUTCDate(new_date)});if(new_date=0&&new_datethis.dates[k]){while(kthis.dates[k]){this.pickers[k++].setUTCDate(new_date)}}this.updateDates();delete this.updating},remove:function(){$.map(this.pickers,function(p){p.remove()});delete this.element.data().datepicker}};function opts_from_el(el,prefix){var data=$(el).data(),out={},inkey,replace=new RegExp('^'+prefix.toLowerCase()+'([A-Z])');prefix=new RegExp('^'+prefix.toLowerCase());function re_lower(_,a){return a.toLowerCase()}for(var key in data)if(prefix.test(key)){inkey=key.replace(replace,re_lower);out[inkey]=data[key]}return out}function opts_from_locale(lang){var out={};if(!dates[lang]){lang=lang.split('-')[0];if(!dates[lang])return}var d=dates[lang];$.each(locale_opts,function(i,k){if(k in d)out[k]=d[k]});return out}var old=$.fn.datepicker;var datepickerPlugin=function(option){var args=Array.apply(null,arguments);args.shift();var internal_return;this.each(function(){var $this=$(this),data=$this.data('datepicker'),options=typeof option==='object'&&option;if(!data){var elopts=opts_from_el(this,'date'),xopts=$.extend({},defaults,elopts,options),locopts=opts_from_locale(xopts.language),opts=$.extend({},defaults,locopts,elopts,options);if($this.hasClass('input-daterange')||opts.inputs){$.extend(opts,{inputs:opts.inputs||$this.find('input').toArray()});data=new DateRangePicker(this,opts)}else{data=new Datepicker(this,opts)}$this.data('datepicker',data)}if(typeof option==='string'&&typeof data[option]==='function'){internal_return=data[option].apply(data,args)}});if(internal_return===undefined||internal_return instanceof Datepicker||internal_return instanceof DateRangePicker)return this;if(this.length>1)throw new Error('Using only allowed for the collection of a single element ('+option+' function)');else return internal_return};$.fn.datepicker=datepickerPlugin;var defaults=$.fn.datepicker.defaults={autoclose:false,beforeShowDay:$.noop,beforeShowMonth:$.noop,beforeShowYear:$.noop,calendarWeeks:false,clearBtn:false,toggleActive:false,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:Infinity,forceParse:true,format:'mm/dd/yyyy',keyboardNavigation:true,language:'en',minViewMode:0,maxViewMode:2,multidate:false,multidateSeparator:',',orientation:"auto",rtl:false,startDate:-Infinity,startView:0,todayBtn:false,todayHighlight:false,weekStart:0,disableTouchKeyboard:false,enableOnReadonly:true,showOnFocus:true,zIndexOffset:10,container:'body',immediateUpdates:false,title:''};var locale_opts=$.fn.datepicker.locale_opts=['format','rtl','weekStart'];$.fn.datepicker.Constructor=Datepicker;var dates=$.fn.datepicker.dates={en:finecms_datepicker_lang};var DPGlobal={modes:[{clsName:'days',navFnc:'Month',navStep:1},{clsName:'months',navFnc:'FullYear',navStep:1},{clsName:'years',navFnc:'FullYear',navStep:10}],isLeapYear:function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0))},getDaysInMonth:function(year,month){return[31,(DPGlobal.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(format){if(typeof format.toValue==='function'&&typeof format.toDisplay==='function')return format;var separators=format.replace(this.validParts,'\0').split('\0'),parts=format.match(this.validParts);if(!separators||!separators.length||!parts||parts.length===0){throw new Error("Invalid date format.");}return{separators:separators,parts:parts}},parseDate:function(date,format,language){if(!date)return undefined;if(date instanceof Date)return date;if(typeof format==='string')format=DPGlobal.parseFormat(format);if(format.toValue)return format.toValue(date,format,language);var part_re=/([\-+]\d+)([dmwy])/,parts=date.match(/([\-+]\d+)([dmwy])/g),fn_map={d:'moveDay',m:'moveMonth',w:'moveWeek',y:'moveYear'},part,dir,i,fn;if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){date=new Date();for(i=0;i',contTemplate:'',footTemplate:''};DPGlobal.template='
'+DPGlobal.headTemplate+''+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'
'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'
';$.fn.datepicker.DPGlobal=DPGlobal;$.fn.datepicker.noConflict=function(){$.fn.datepicker=old;return this};$.fn.datepicker.version='1.5.1';$(document).on('focus.datepicker.data-api click.datepicker.data-api','[data-provide="datepicker"]',function(e){var $this=$(this);if($this.data('datepicker'))return;e.preventDefault();datepickerPlugin.call($this,'show')});$(function(){datepickerPlugin.call($('[data-provide="datepicker-inline"]'))})}));