{"version":3,"sources":["bootstrap-datepicker-custom.js"],"names":["factory","define","amd","exports","require","jQuery","$","undefined","UTCDate","Date","UTC","apply","arguments","UTCToday","today","getFullYear","getMonth","getDate","alias","method","this","extras","DateArray","get","i","slice","contains","d","val","valueOf","l","length","remove","splice","replace","new_array","isArray","clear","push","copy","a","extend","Datepicker","element","options","data","_process_options","dates","viewDate","o","defaultViewDate","focusDate","isInline","isInput","is","component","hasClass","find","hasInput","picker","DPGlobal","template","_check_template","templates","leftArrow","html","rightArrow","_buildEvents","_attachEvents","addClass","appendTo","rtl","viewMode","startView","calendarWeeks","attr","parseInt","_allow_update","setStartDate","_o","startDate","setEndDate","endDate","setDaysOfWeekDisabled","daysOfWeekDisabled","setDaysOfWeekHighlighted","daysOfWeekHighlighted","setDatesDisabled","datesDisabled","fillDow","fillMonths","update","showMode","show","prototype","constructor","_resolveViewName","view","default_value","tmp","match","ex","opts","lang","language","split","defaults","minViewMode","maxViewMode","Math","min","max","multidate","Number","multidateSeparator","String","weekStart","weekEnd","format","parseFormat","Infinity","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","map","plc","orientation","toLowerCase","_plc","grep","word","test","x","y","year","month","day","_events","_secondaryEvents","_applyEvents","evs","el","ch","ev","on","_unapplyEvents","off","events","keyup","proxy","e","inArray","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","changeYear changeMonth","date","window","resize","place","document","mousedown","hide","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","trigger","type","ix","formatDate","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","detach","forceParse","setValue","destroy","datepicker","evt","dateString","originalEvent","clipboardData","types","getData","setDate","preventDefault","utc","getTime","getTimezoneOffset","local","_zero_utc_time","getUTCFullYear","getUTCMonth","getUTCDate","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","args","setUTCDates","setUTCDate","formatted","getFormattedDate","join","getStartDate","updateNavArrows","getEndDate","calendarWidth","outerWidth","calendarHeight","outerHeight","windowWidth","width","scrollTop","parentsZindex","offset","parents","each","itemZIndex","css","zIndex","zIndexOffset","parent","height","left","top","removeClass","yorient","right","oldDates","fromArgs","dateWithinRange","fill","change","dowCnt","daysMin","append","localDate","monthsShort","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","getUTCDay","_fill_yearsView","selector","cssClass","factor","step","currentYear","startYear","endYear","callback","steps","startStep","endStep","thisYear","classes","tooltip","before","text","noop","enabled","concat","startMonth","endMonth","todaytxt","cleartxt","titleFormat","isNaN","toggle","todayBtn","clearBtn","title","prevMonth","getDaysInMonth","nextMonth","setUTCFullYear","clsName","ws","th","yth","calWeek","beforeShowDay","unique","empty","monthsTitle","months","end","eq","beforeShowMonth","that","moDate","prop","beforeShowYear","beforeShowDecade","beforeShowCentury","visibility","dir","monthChanged","yearChanged","stopPropagation","navArrow","closest","modes","navStep","moveMonth","moveYear","_setDate","index","setUTCMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","abs","moveAvailableDate","fn","weekOfDateIsDisabled","date2","date1","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","datepickerPlugin","call","dateUpdated","pickers","updateDates","opts_from_el","prefix","out","RegExp","re_lower","_","key","opts_from_locale","locale_opts","k","updateRanges","p","updating","dp","j","old","option","internal_return","Array","shift","$this","elopts","locopts","toArray","Error","Constructor","en","days","daysShort","navFnc","isLeapYear","validParts","nonpunctuation","toValue","toDisplay","separators","parts","assumeNearby","part","part_re","fn_map","m","w","dateAliases","yesterday","tomorrow","exec","applyNearbyYear","threshold","filtered","parsed","setters_order","setters_map","yyyy","v","yy","fparts","match_part","cnt","_date","s","D","DD","M","MM","toString","substring","dd","mm","seps","headTemplate","contTemplate","footTemplate","noConflict","version"],"mappings":"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","file":"bootstrap-datepicker-custom.min.js","sourcesContent":["/*!\n * Datepicker for Bootstrap v1.6.0 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */(function(factory){\n if (typeof define === \"function\" && define.amd) {\n define([\"jquery\"], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(function($, undefined){\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction isUTCEquals(date1, date2) {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t);\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\tfunction isValidDate(d) {\n\t\treturn d && !isNaN(d.getTime());\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.length = 0;\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis._process_options(options);\n\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = this.o.defaultViewDate;\n\t\tthis.focusDate = null;\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\n\t\t// Checking templates and inserting\n\t\tif (this._check_template(this.o.templates.leftArrow)) {\n\t\t\tthis.picker.find('.prev').html(this.o.templates.leftArrow);\n\t\t}\n\t\tif (this._check_template(this.o.templates.rightArrow)) {\n\t\t\tthis.picker.find('.next').html(this.o.templates.rightArrow);\n\t\t}\n\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\t\tthis.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);\n\t\tthis.setDatesDisabled(this.o.datesDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_resolveViewName: function(view, default_value){\n\t\t\tif (view === 0 || view === 'days' || view === 'month') {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (view === 1 || view === 'months' || view === 'year') {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (view === 2 || view === 'years' || view === 'decade') {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (view === 3 || view === 'decades' || view === 'century') {\n\t\t\t\treturn 3;\n\t\t\t}\n\t\t\tif (view === 4 || view === 'centuries' || view === 'millennium') {\n\t\t\t\treturn 4;\n\t\t\t}\n\t\t\treturn default_value === undefined ? false : default_value;\n\t\t},\n\n\t\t_check_template: function(tmp){\n\t\t\ttry {\n\t\t\t\t// If empty\n\t\t\t\tif (tmp === undefined || tmp === \"\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// If no html, everything ok\n\t\t\t\tif ((tmp.match(/[<>]/g) || []).length <= 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Checking if html is fine\n\t\t\t\tvar jDom = $(tmp);\n\t\t\t\treturn jDom.length > 0;\n\t\t\t}\n\t\t\tcatch (ex) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\t// Retrieve view index from any aliases\n\t\t\to.startView = this._resolveViewName(o.startView, 0);\n\t\t\to.minViewMode = this._resolveViewName(o.minViewMode, 0);\n\t\t\to.maxViewMode = this._resolveViewName(o.maxViewMode, 4);\n\n\t\t\t// Check that the start view is between min and max\n\t\t\to.startView = Math.min(o.startView, o.maxViewMode);\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = (o.weekStart + 6) % 7;\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted||[];\n\t\t\tif (!$.isArray(o.daysOfWeekHighlighted))\n\t\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted.split(/[,\\s]*/);\n\t\t\to.daysOfWeekHighlighted = $.map(o.daysOfWeekHighlighted, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\tvar datesDisabled = [];\n\t\t\t\tdatesDisabled.push(DPGlobal.parseDate(o.datesDisabled, format, o.language, o.assumeNearbyYear));\n\t\t\t\to.datesDisabled = datesDisabled;\n\t\t\t}\n\t\t\to.datesDisabled = $.map(o.datesDisabled,function(d){\n\t\t\t\treturn DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn /^auto|left|right|top|bottom$/.test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^left|right$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^top|bottom$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t\tif (o.defaultViewDate) {\n\t\t\t\tvar year = o.defaultViewDate.year || new Date().getFullYear();\n\t\t\t\tvar month = o.defaultViewDate.month || 0;\n\t\t\t\tvar day = o.defaultViewDate.day || 1;\n\t\t\t\to.defaultViewDate = UTCDate(year, month, day);\n\t\t\t} else {\n\t\t\t\to.defaultViewDate = UTCToday();\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n var events = {\n keyup: $.proxy(function(e){\n if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)\n this.update();\n }, this),\n keydown: $.proxy(this.keydown, this),\n paste: $.proxy(this.paste, this)\n };\n\n if (this.o.showOnFocus === true) {\n events.focus = $.proxy(this.show, this);\n }\n\n if (this.isInput) { // single input\n this._events = [\n [this.element, events]\n ];\n }\n else if (this.component && this.hasInput) { // component: input + button\n this._events = [\n // For components that are not readonly, allow keyboard nav\n [this.element.find('input'), events],\n [this.component, {\n click: $.proxy(this.show, this)\n }]\n ];\n }\n\t\t\telse if (this.element.is('div')){ // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tif (this.o.immediateUpdates) {\n\t\t\t\t// Trigger input updates immediately on changed year/month\n\t\t\t\tthis._events.push([this.element, {\n\t\t\t\t\t'changeYear changeMonth': $.proxy(function(e){\n\t\t\t\t\t\tthis.update(e.date);\n\t\t\t\t\t}, this)\n\t\t\t\t}]);\n\t\t\t}\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\tmousedown: $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.hasClass('datepicker-inline')\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n var element = this.component ? this.element.find('input') : this.element;\n\t\t\tif (element.attr('readonly') && this.o.enableOnReadonly === false)\n\t\t\t\treturn;\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo(this.o.container);\n\t\t\tthis.place();\n\t\t\tthis.picker.show();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t\tif ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n\t\t\t\t$(this.element).blur();\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn this;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t\treturn this;\n\t\t},\n\n\t\tdestroy: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tpaste: function(evt){\n\t\t\tvar dateString;\n\t\t\tif (evt.originalEvent.clipboardData && evt.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', evt.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = evt.originalEvent.clipboardData.getData('text/plain');\n\t\t\t}\n\t\t\telse if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\tevt.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\tvar selected_date = this.dates.get(-1);\n\t\t\tif (typeof selected_date !== 'undefined') {\n\t\t\t\treturn new Date(selected_date);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\tclearDates: function(){\n\t\t\tvar element;\n\t\t\tif (this.isInput) {\n\t\t\t\telement = this.element;\n\t\t\t} else if (this.component) {\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\n\t\t\tif (element) {\n\t\t\t\telement.val('');\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t\tthis._trigger('changeDate');\n\n\t\t\tif (this.o.autoclose) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\t\tremove: alias('destroy'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tgetStartDate: function(){\n\t\t\treturn this.o.startDate;\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tgetEndDate: function(){\n\t\t\treturn this.o.endDate;\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekHighlighted: function(daysOfWeekHighlighted){\n\t\t\tthis._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDatesDisabled: function(datesDisabled){\n\t\t\tthis._process_options({datesDisabled: datesDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\tcontainer = $(this.o.container),\n\t\t\t\twindowWidth = container.width(),\n\t\t\t\tscrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n\t\t\t\tappendOffset = container.offset();\n\n\t\t\tvar parentsZindex = [];\n\t\t\tthis.element.parents().each(function(){\n\t\t\t\tvar itemZIndex = $(this).css('z-index');\n\t\t\t\tif (itemZIndex !== 'auto' && itemZIndex !== 0) parentsZindex.push(parseInt(itemZIndex));\n\t\t\t});\n\t\t\tvar zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left,\n\t\t\t\ttop = offset.top;\n\n\t\t\tif (this.o.container !== 'body') {\n\t\t\t\ttop += scrollTop;\n\t\t\t}\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\tif (offset.left < 0) {\n\t\t\t\t\t// component is outside the window on the left side. Move it into visible range\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\t} else if (left + calendarWidth > windowWidth) {\n\t\t\t\t\t// the calendar passes the widow right edge. Align it to component right side\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\tleft += width - calendarWidth;\n\t\t\t\t} else {\n\t\t\t\t\t// Default to left\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + top - calendarHeight;\n\t\t\t\tyorient = top_overflow < 0 ? 'bottom' : 'top';\n\t\t\t}\n\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\t\t\telse\n\t\t\t\ttop += height;\n\n\t\t\tif (this.o.rtl) {\n\t\t\t\tvar right = windowWidth - (left + width);\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tright: right,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tleft: left,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn this;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\t!this.dateWithinRange(date) ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\telse\n\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t\tthis.element.change();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t});\n\t\t\t\thtml += ' ';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += ' -1)\n html += ' disabled';\n html += '\">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n var localDate = this._utc_to_local(this.viewDate);\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n var focused = localDate && localDate.getMonth() === i ? ' focused' : '';\n\t\t\t\thtml += '' + dates[this.o.language].monthsShort[i++]+'';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (!this.dateWithinRange(date) || this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){\n\t\t\t\tcls.push('highlighted');\n\t\t\t}\n\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t\tif (date.valueOf() === this.range[0]){\n cls.push('range-start');\n }\n if (date.valueOf() === this.range[this.range.length-1]){\n cls.push('range-end');\n }\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\t_fill_yearsView: function(selector, cssClass, factor, step, currentYear, startYear, endYear, callback){\n\t\t\tvar html, view, year, steps, startStep, endStep, thisYear, i, classes, tooltip, before;\n\n\t\t\thtml = '';\n\t\t\tview = this.picker.find(selector);\n\t\t\tyear = parseInt(currentYear / factor, 10) * factor;\n\t\t\tstartStep = parseInt(startYear / step, 10) * step;\n\t\t\tendStep = parseInt(endYear / step, 10) * step;\n\t\t\tsteps = $.map(this.dates, function(d){\n\t\t\t\treturn parseInt(d.getUTCFullYear() / step, 10) * step;\n\t\t\t});\n\n\t\t\tview.find('.datepicker-switch').text(year + '-' + (year + step * 9));\n\n\t\t\tthisYear = year - step;\n\t\t\tfor (i = -1; i < 11; i += 1) {\n\t\t\t\tclasses = [cssClass];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (i === -1) {\n\t\t\t\t\tclasses.push('old');\n\t\t\t\t} else if (i === 10) {\n\t\t\t\t\tclasses.push('new');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(thisYear, steps) !== -1) {\n\t\t\t\t\tclasses.push('active');\n\t\t\t\t}\n\t\t\t\tif (thisYear < startStep || thisYear > endStep) {\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t}\n if (thisYear === this.viewDate.getFullYear()) {\n\t\t\t\t classes.push('focused');\n }\n\n\t\t\t\tif (callback !== $.noop) {\n\t\t\t\t\tbefore = callback(new Date(thisYear, 0, 1));\n\t\t\t\t\tif (before === undefined) {\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\t} else if (typeof(before) === 'boolean') {\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\t} else if (typeof(before) === 'string') {\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\t}\n\t\t\t\t\tif (before.enabled === false) {\n\t\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t\t}\n\t\t\t\t\tif (before.classes) {\n\t\t\t\t\t\tclasses = classes.concat(before.classes.split(/\\s+/));\n\t\t\t\t\t}\n\t\t\t\t\tif (before.tooltip) {\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\thtml += '' + thisYear + '';\n\t\t\t\tthisYear += step;\n\t\t\t}\n\t\t\tview.find('td').html(html);\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttitleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n\t\t\t\ttooltip,\n\t\t\t\tbefore;\n\t\t\tif (isNaN(year) || isNaN(month))\n\t\t\t\treturn;\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t\t.text(DPGlobal.formatDate(d, titleFormat, this.o.language));\n\t\t\tthis.picker.find('tfoot .today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.picker.find('thead .datepicker-title')\n\t\t\t\t\t\t.text(this.o.title)\n\t\t\t\t\t\t.toggle(this.o.title !== '');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tif (prevMonth.getUTCFullYear() < 100){\n nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n }\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tbefore = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push(''+prevMonth.getUTCDate() + '');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t.text(this.o.maxViewMode < 2 ? monthsTitle : year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\tif (this.o.beforeShowMonth !== $.noop){\n\t\t\t\tvar that = this;\n\t\t\t\t$.each(months, function(i, month){\n var moDate = new Date(year, i, 1);\n var before = that.o.beforeShowMonth(moDate);\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false && !$(month).hasClass('disabled'))\n\t\t\t\t\t $(month).addClass('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t $(month).addClass(before.classes);\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t $(month).prop('title', before.tooltip);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Generating decade/years picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-years',\n\t\t\t\t'year',\n\t\t\t\t10,\n\t\t\t\t1,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowYear\n\t\t\t);\n\n\t\t\t// Generating century/decades picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-decades',\n\t\t\t\t'decade',\n\t\t\t\t100,\n\t\t\t\t10,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowDecade\n\t\t\t);\n\n\t\t\t// Generating millennium/centuries picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-centuries',\n\t\t\t\t'century',\n\t\t\t\t1000,\n\t\t\t\t100,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowCentury\n\t\t\t);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\tcase 3:\n\t\t\t\tcase 4:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tvar target, dir, day, year, month, monthChanged, yearChanged;\n\t\t\ttarget = $(e.target);\n\n\t\t\t// Clicked on the switch\n\t\t\tif (target.hasClass('datepicker-switch')){\n\t\t\t\tthis.showMode(1);\n\t\t\t}\n\n\t\t\t// Clicked on prev or next\n\t\t\tvar navArrow = target.closest('.prev, .next');\n\t\t\tif (navArrow.length > 0) {\n\t\t\t\tdir = DPGlobal.modes[this.viewMode].navStep * (navArrow.hasClass('prev') ? -1 : 1);\n\t\t\t\tif (this.viewMode === 0){\n\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t} else {\n\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\tif (this.viewMode === 1){\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.fill();\n\t\t\t}\n\n\t\t\t// Clicked on today button\n\t\t\tif (target.hasClass('today')){\n\t\t\t\tthis.showMode(-2);\n\t\t\t\tthis._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');\n\t\t\t}\n\n\t\t\t// Clicked on clear button\n\t\t\tif (target.hasClass('clear')){\n\t\t\t\tthis.clearDates();\n\t\t\t}\n\n\t\t\tif (!target.hasClass('disabled')){\n\t\t\t\t// Clicked on a day\n\t\t\t\tif (target.hasClass('day')){\n\t\t\t\t\tday = parseInt(target.text(), 10) || 1;\n\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\n\t\t\t\t\t// From last month\n\t\t\t\t\tif (target.hasClass('old')){\n\t\t\t\t\t\tif (month === 0) {\n\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\tyear = year - 1;\n\t\t\t\t\t\t\tmonthChanged = true;\n\t\t\t\t\t\t\tyearChanged = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmonth = month - 1;\n\t\t\t\t\t\t\tmonthChanged = true;\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n\n\t\t\t\t\t// From next month\n\t\t\t\t\tif (target.hasClass('new')) {\n\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\tyear = year + 1;\n\t\t\t\t\t\t\tmonthChanged = true;\n\t\t\t\t\t\t\tyearChanged = true;\n \t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmonth = month + 1;\n\t\t\t\t\t\t\tmonthChanged = true;\n \t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\tif (yearChanged) {\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\tif (monthChanged) {\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Clicked on a month\n\t\t\t\tif (target.hasClass('month')) {\n\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\tday = 1;\n\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\tthis.showMode();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t}\n\t\t\t\t\tthis.fill();\n\t\t\t\t}\n\n\t\t\t\t// Clicked on a year\n\t\t\t\tif (target.hasClass('year')\n\t\t\t\t\t\t|| target.hasClass('decade')\n\t\t\t\t\t\t|| target.hasClass('century')) {\n\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\n\t\t\t\t\tday = 1;\n\t\t\t\t\tmonth = 0;\n\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\n\t\t\t\t\tif (target.hasClass('year')){\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (target.hasClass('decade')){\n\t\t\t\t\t\tthis._trigger('changeDecade', this.viewDate);\n\t\t\t\t\t\tif (this.o.minViewMode === 3){\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (target.hasClass('century')){\n\t\t\t\t\t\tthis._trigger('changeCentury', this.viewDate);\n\t\t\t\t\t\tif (this.o.minViewMode === 4){\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\tthis.fill();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\n\t\t\tif (ix !== -1){\n\t\t\t\tif (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){\n\t\t\t\t\tthis.dates.remove(ix);\n\t\t\t\t}\n\t\t\t} else if (this.o.multidate === false) {\n\t\t\t\tthis.dates.clear();\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tif (!which || which !== 'view') {\n\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveDay: function(date, dir){\n\t\t\tvar newDate = new Date(date);\n\t\t\tnewDate.setUTCDate(date.getUTCDate() + dir);\n\n\t\t\treturn newDate;\n\t\t},\n\n\t\tmoveWeek: function(date, dir){\n\t\t\treturn this.moveDay(date, dir * 7);\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!isValidDate(date))\n\t\t\t\treturn this.o.defaultViewDate;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tmoveAvailableDate: function(date, dir, fn){\n\t\t\tdo {\n\t\t\t\tdate = this[fn](date, dir);\n\n\t\t\t\tif (!this.dateWithinRange(date))\n\t\t\t\t\treturn false;\n\n\t\t\t\tfn = 'moveDay';\n\t\t\t}\n\t\t\twhile (this.dateIsDisabled(date));\n\n\t\t\treturn date;\n\t\t},\n\n\t\tweekOfDateIsDisabled: function(date){\n\t\t\treturn $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n\t\t},\n\n\t\tdateIsDisabled: function(date){\n\t\t\treturn (\n\t\t\t\tthis.weekOfDateIsDisabled(date) ||\n\t\t\t\t$.grep(this.o.datesDisabled, function(d){\n\t\t\t\t\treturn isUTCEquals(date, d);\n\t\t\t\t}).length > 0\n\t\t\t);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (!this.picker.is(':visible')){\n\t\t\t\tif (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\t\te.stopPropagation();\n }\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 39: // right\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n if (this.viewMode === 0) {\n \t\t\t\t\tif (e.ctrlKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n \t\t\t\t\t}\n \t\t\t\t\telse if (e.shiftKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n \t\t\t\t\t}\n \t\t\t\t\telse if (e.keyCode === 37 || e.keyCode === 39){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n \t\t\t\t\t}\n \t\t\t\t\telse if (!this.weekOfDateIsDisabled(focusDate)){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n \t\t\t\t\t}\n } else if (this.viewMode === 1) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n } else if (this.viewMode === 2) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n }\n\t\t\t\t\tif (newViewDate){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tif (!this.o.forceParse)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tif (this.o.keyboardNavigation) {\n\t\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.children('div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-' + DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\tdatepickerPlugin.call($(this.inputs), options)\n\t\t\t.on('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker');\n\n\t\t\tif (typeof(dp) === \"undefined\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tj = i - 1,\n\t\t\t\tk = i + 1,\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[j]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (j >= 0 && new_date < this.dates[j]){\n\t\t\t\t\tthis.pickers[j--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[k]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (k < l && new_date > this.dates[k]){\n\t\t\t\t\tthis.pickers[k++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\tvar datepickerPlugin = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.hasClass('input-daterange') || opts.inputs){\n\t\t\t\t\t$.extend(opts, {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t});\n\t\t\t\t\tdata = new DateRangePicker(this, opts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata = new Datepicker(this, opts);\n\t\t\t\t}\n\t\t\t\t$this.data('datepicker', data);\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tinternal_return === undefined ||\n\t\t\tinternal_return instanceof Datepicker ||\n\t\t\tinternal_return instanceof DateRangePicker\n\t\t)\n\t\t\treturn this;\n\n\t\tif (this.length > 1)\n\t\t\tthrow new Error('Using only allowed for the collection of a single element (' + option + ' function)');\n\t\telse\n\t\t\treturn internal_return;\n\t};\n\t$.fn.datepicker = datepickerPlugin;\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tassumeNearbyYear: false,\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tbeforeShowMonth: $.noop,\n\t\tbeforeShowYear: $.noop,\n\t\tbeforeShowDecade: $.noop,\n\t\tbeforeShowCentury: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\ttoggleActive: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tdaysOfWeekHighlighted: [],\n\t\tdatesDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmaxViewMode: 4,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0,\n\t\tdisableTouchKeyboard: false,\n\t\tenableOnReadonly: true,\n\t\tshowOnFocus: true,\n\t\tzIndexOffset: 10,\n\t\tcontainer: 'body',\n\t\timmediateUpdates: false,\n\t\ttitle: '',\n\t\ttemplates: {\n\t\t\tleftArrow: '«',\n\t\t\trightArrow: '»'\n\t\t}\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\",\n\t\t\ttitleFormat: \"MM yyyy\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'decades',\n\t\t\t\tnavFnc: 'FullDecade',\n\t\t\t\tnavStep: 100\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'centuries',\n\t\t\t\tnavFnc: 'FullCentury',\n\t\t\t\tnavStep: 1000\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\u5e74\\u6708\\u65e5\\[-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\tif (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')\n return format;\n // IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language, assumeNearby){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toValue)\n return format.toValue(date, format, language);\n var part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tfn_map = {\n\t\t\t\t\td: 'moveDay',\n\t\t\t\t\tm: 'moveMonth',\n\t\t\t\t\tw: 'moveWeek',\n\t\t\t\t\ty: 'moveYear'\n\t\t\t\t},\n\t\t\t\tdateAliases = {\n\t\t\t\t\tyesterday: '-1d',\n\t\t\t\t\ttoday: '+0d',\n\t\t\t\t\ttomorrow: '+1d'\n\t\t\t\t},\n\t\t\t\tpart, dir, i, fn;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tfn = fn_map[part[2]];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n\t\t\t}\n\n\t\t\tif (typeof dateAliases[date] !== 'undefined') {\n\t\t\t\tdate = dateAliases[date];\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g);\n\n\t\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\t\tdate = new Date();\n\t\t\t\t \tfor (i=0; i < parts.length; i++){\n\t\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\t\tfn = fn_map[part[2]];\n\t\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t \t}\n\n\t\t\t \t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\n\t\t\tfunction applyNearbyYear(year, threshold){\n\t\t\t\tif (threshold === true)\n\t\t\t\t\tthreshold = 10;\n\n\t\t\t\t// if year is 2 digits or less, than the user most likely is trying to get a recent century\n\t\t\t\tif (year < 100){\n\t\t\t\t\tyear += 2000;\n\t\t\t\t\t// if the new year is more than threshold years in advance, use last century\n\t\t\t\t\tif (year > ((new Date()).getFullYear()+threshold)){\n\t\t\t\t\t\tyear -= 100;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn year;\n\t\t\t}\n\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCToday();\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m.toLowerCase() === p.toLowerCase();\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toDisplay)\n return format.toDisplay(date, format, language);\n var val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'«'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'»'+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\t/* DATEPICKER VERSION\n\t * =================== */\n\t$.fn.datepicker.version = '1.6.0';\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\tdatepickerPlugin.call($this, 'show');\n\t\t}\n\t);\n\t$(function(){\n\t\tdatepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n\t});\n\n}));\n"]}