{"version":3,"sources":["webpack://ipfw/./node_modules/@nathanvda/cocoon/cocoon.js","webpack://ipfw/./node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js","webpack://ipfw/./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js","webpack://ipfw/./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack://ipfw/./node_modules/toastr/toastr.js","webpack://ipfw/./node_modules/turbolinks/dist/turbolinks.js"],"names":["$","cocoon_element_counter","create_new_id","newcontent_braced","newcontent_underscord","Date","getTime","id","jQuery","document","on","e","preventDefault","stopPropagation","$this","this","assoc","data","assocs","content","insertionMethod","insertionNode","insertionTraversal","count","parseInt","regexp_braced","RegExp","regexp_underscord","new_id","new_content","replace","new_contents","originalEvent","isNaN","Math","max","push","insertionNodeElem","console","warn","parent","getInsertionNodeElem","length","each","i","node","contentNode","before_insert","Event","trigger","isDefaultPrevented","wrapper_class","node_to_delete","closest","trigger_node","before_remove","timeout","setTimeout","hasClass","detach","prev","val","hide","obj","undefined","UTCDate","UTC","apply","arguments","UTCToday","today","getFullYear","getMonth","getDate","isUTCEquals","date1","date2","getUTCFullYear","getUTCMonth","getUTCDate","alias","method","deprecationMsg","fn","datepicker","deprecated","isValidDate","d","extras","DateArray","get","slice","contains","valueOf","l","remove","splice","new_array","isArray","clear","copy","a","extend","Datepicker","element","options","_events","_secondaryEvents","_process_options","dates","viewDate","o","defaultViewDate","focusDate","isInput","is","inputField","find","component","isInline","picker","DPGlobal","template","_check_template","templates","leftArrow","html","rightArrow","_buildEvents","_attachEvents","addClass","appendTo","rtl","calendarWeeks","attr","Number","startDate","_o","endDate","daysOfWeekDisabled","daysOfWeekHighlighted","datesDisabled","_allow_update","setViewMode","startView","fillDow","fillMonths","update","show","prototype","constructor","_resolveViewName","view","viewModes","viewMode","inArray","names","_resolveDaysOfWeek","daysOfWeek","split","map","tmp","match","ex","opts","lang","language","defaults","minViewMode","maxViewMode","min","multidate","multidateSeparator","String","weekStart","weekEnd","format","parseFormat","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","Infinity","plc","orientation","toLowerCase","_plc","grep","word","test","x","y","year","month","day","_applyEvents","evs","el","ch","ev","_unapplyEvents","off","events","keyup","proxy","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","date","navArrowsClick","dayCellClick","window","resize","place","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","type","ix","formatDate","prop","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","forceParse","setValue","destroy","dateString","clipboardData","types","getData","setDate","utc","local","getTimezoneOffset","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","args","setUTCDates","setUTCDate","formatted","getFormattedDate","join","getStartDate","setStartDate","updateNavArrows","getEndDate","setEndDate","setDaysOfWeekDisabled","setDaysOfWeekHighlighted","setDatesDisabled","calendarWidth","outerWidth","calendarHeight","outerHeight","visualPadding","windowWidth","width","scrollTop","appendOffset","offset","parentsZindex","parents","itemZIndex","css","zIndex","zIndexOffset","height","left","top","removeClass","yorient","right","oldDates","fromArgs","dateWithinRange","updateViewDate","change","fill","showWeekDays","dowCnt","daysMin","append","localDate","monthsShort","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","getUTCDay","_fill_yearsView","selector","cssClass","factor","startYear","endYear","beforeFn","classes","tooltip","before","step","startVal","floor","endVal","focusedVal","selected","currVal","noop","enabled","concat","text","startMonth","endMonth","todaytxt","cleartxt","titleFormat","todayDate","titleBtnVisible","todayBtn","weekOfDateIsDisabled","clearBtn","title","prevMonth","nextMonth","setUTCFullYear","weekDay","clsName","ws","th","yth","calWeek","beforeShowDay","isFunction","uniqueSort","unique","toString","monthsTitle","months","end","eq","beforeShowMonth","that","moDate","beforeShowYear","beforeShowDecade","beforeShowCentury","prevIsDisabled","nextIsDisabled","toggleClass","_setDate","index","setUTCMonth","timestamp","currentTarget","dir","navStep","moveMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","abs","moveYear","moveAvailableDate","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","keepEmptyValues","datepickerPlugin","call","dateUpdated","pickers","updateDates","opts_from_el","prefix","out","re_lower","_","key","opts_from_locale","locale_opts","k","updateRanges","p","updating","dp","keep_empty_values","j","old","option","internal_return","Array","shift","elopts","locopts","toArray","Error","Constructor","en","days","daysShort","validParts","nonpunctuation","toValue","toDisplay","separators","parts","assumeNearby","part","fn_map","m","w","dateAliases","yesterday","tomorrow","applyNearbyYear","threshold","filtered","parsed","setters_order","setters_map","yyyy","v","fparts","match_part","cnt","_date","s","D","DD","M","MM","yy","substring","dd","mm","seps","headTemplate","contTemplate","footTemplate","noConflict","version","msg","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","setData","value","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","result","defaultPrevented","Object","defineProperty","name","dispatchEvent","stopEverything","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","elements","disabled","checked","encodeURIComponent","formElements","form","allowAction","handleConfirm","answer","callback","message","getAttribute","confirm","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","action","style","display","body","isRemote","handleRemote","button","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","module","exports","$container","listener","previousToast","toastId","toastType","toastr","$toastElement","clearOptions","getOptions","getContainer","clearToast","toastsToClear","clearContainer","removeToast","optionsOverride","notify","iconClass","iconClasses","info","subscribe","warning","create","containerId","positionClass","createContainer","force","hideMethod","duration","hideDuration","easing","hideEasing","publish","preventDuplicates","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","progressBar","hideEta","maxHideTime","state","startTime","toastClass","suffix","escapeHtml","titleClass","setTitle","messageClass","setMessage","closeButton","closeClass","prepend","progressClass","newestOnTop","ariaValue","setAria","showMethod","showDuration","showEasing","onShown","timeOut","hideToast","parseFloat","setInterval","updateProgress","closeOnHover","hover","stickAround","delayedHideToast","onclick","tapToDismiss","cancelBubble","onCloseClick","debug","log","source","override","closeMethod","closeDuration","closeEasing","clearTimeout","onHidden","endTime","extendedTimeOut","stop","percentage","Turbolinks","supported","history","pushState","requestAnimationFrame","visit","t","r","controller","clearCache","setProgressBarDelay","n","copyObject","documentElement","nodeType","Node","ELEMENT_NODE","defer","throttle","dispatch","u","initEvent","uuid","random","Location","absoluteURL","hash","requestURL","anchor","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","progress","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","refresh","insertBefore","firstChild","opacity","trickleInterval","clearInterval","textContent","className","BrowserAdapter","showProgressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","attributes","__super__","hasOwnProperty","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","replaceChild","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","removeAttribute","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","scrollTo","updatePosition","pageXOffset","pageYOffset","position","scrollPositionChanged","SnapshotCache","size","keys","snapshots","has","read","touch","put","write","unshift","trim","Visit","performScroll","identifier","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","disable","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","altKey","nodeIsVisitable","currentScript","hasAttribute"],"mappings":"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","file":"js/283-c8b3dab976c656aac458.js","sourcesContent":["(function($) {\n\n var cocoon_element_counter = 0;\n\n var create_new_id = function() {\n return (new Date().getTime() + cocoon_element_counter++);\n }\n\n var newcontent_braced = function(id) {\n return '[' + id + ']$1';\n }\n\n var newcontent_underscord = function(id) {\n return '_' + id + '_$1';\n }\n\n var getInsertionNodeElem = function(insertionNode, insertionTraversal, $this){\n\n if (!insertionNode){\n return $this.parent();\n }\n\n if (typeof insertionNode == 'function'){\n if(insertionTraversal){\n console.warn('association-insertion-traversal is ignored, because association-insertion-node is given as a function.')\n }\n return insertionNode($this);\n }\n\n if(typeof insertionNode == 'string'){\n if (insertionTraversal){\n return $this[insertionTraversal](insertionNode);\n }else{\n return insertionNode == \"this\" ? $this : $(insertionNode);\n }\n }\n\n }\n\n $(document).on('click', '.add_fields', function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n var $this = $(this),\n assoc = $this.data('association'),\n assocs = $this.data('associations'),\n content = $this.data('association-insertion-template'),\n insertionMethod = $this.data('association-insertion-method') || $this.data('association-insertion-position') || 'before',\n insertionNode = $this.data('association-insertion-node'),\n insertionTraversal = $this.data('association-insertion-traversal'),\n count = parseInt($this.data('count'), 10),\n regexp_braced = new RegExp('\\\\[new_' + assoc + '\\\\](.*?\\\\s)', 'g'),\n regexp_underscord = new RegExp('_new_' + assoc + '_(\\\\w*)', 'g'),\n new_id = create_new_id(),\n new_content = content.replace(regexp_braced, newcontent_braced(new_id)),\n new_contents = [],\n originalEvent = e;\n\n\n if (new_content == content) {\n regexp_braced = new RegExp('\\\\[new_' + assocs + '\\\\](.*?\\\\s)', 'g');\n regexp_underscord = new RegExp('_new_' + assocs + '_(\\\\w*)', 'g');\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n }\n\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents = [new_content];\n\n count = (isNaN(count) ? 1 : Math.max(count, 1));\n count -= 1;\n\n while (count) {\n new_id = create_new_id();\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents.push(new_content);\n\n count -= 1;\n }\n\n var insertionNodeElem = getInsertionNodeElem(insertionNode, insertionTraversal, $this)\n\n if( !insertionNodeElem || (insertionNodeElem.length == 0) ){\n console.warn(\"Couldn't find the element to insert the template. Make sure your `data-association-insertion-*` on `link_to_add_association` is correct.\")\n }\n\n $.each(new_contents, function(i, node) {\n var contentNode = $(node);\n\n var before_insert = jQuery.Event('cocoon:before-insert');\n insertionNodeElem.trigger(before_insert, [contentNode, originalEvent]);\n\n if (!before_insert.isDefaultPrevented()) {\n // allow any of the jquery dom manipulation methods (after, before, append, prepend, etc)\n // to be called on the node. allows the insertion node to be the parent of the inserted\n // code and doesn't force it to be a sibling like after/before does. default: 'before'\n var addedContent = insertionNodeElem[insertionMethod](contentNode);\n\n insertionNodeElem.trigger('cocoon:after-insert', [contentNode,\n originalEvent]);\n }\n });\n });\n\n $(document).on('click', '.remove_fields.dynamic, .remove_fields.existing', function(e) {\n var $this = $(this),\n wrapper_class = $this.data('wrapper-class') || 'nested-fields',\n node_to_delete = $this.closest('.' + wrapper_class),\n trigger_node = node_to_delete.parent(),\n originalEvent = e;\n\n e.preventDefault();\n e.stopPropagation();\n\n var before_remove = jQuery.Event('cocoon:before-remove');\n trigger_node.trigger(before_remove, [node_to_delete, originalEvent]);\n\n if (!before_remove.isDefaultPrevented()) {\n var timeout = trigger_node.data('remove-timeout') || 0;\n\n setTimeout(function() {\n if ($this.hasClass('dynamic')) {\n node_to_delete.detach();\n } else {\n $this.prev(\"input[type=hidden]\").val(\"1\");\n node_to_delete.hide();\n }\n trigger_node.trigger('cocoon:after-remove', [node_to_delete,\n originalEvent]);\n }, timeout);\n }\n });\n\n\n $(document).on(\"ready page:load turbolinks:load\", function() {\n $('.remove_fields.existing.destroyed').each(function(i, obj) {\n var $this = $(this),\n wrapper_class = $this.data('wrapper-class') || 'nested-fields';\n\n $this.closest('.' + wrapper_class).hide();\n });\n });\n\n})(jQuery);\n\n\n","/*!\n * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)\n *\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n\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\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, deprecationMsg){\n\t\treturn function(){\n\t\t\tif (deprecationMsg !== undefined) {\n\t\t\t\t$.fn.datepicker.deprecated(deprecationMsg);\n\t\t\t}\n\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 // Use date arithmetic to allow dates with different times to match\n if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)\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$.data(element, 'datepicker', this);\n\n\t\tthis._events = [];\n\t\tthis._secondaryEvents = [];\n\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.isInput = this.element.is('input');\n\t\tthis.inputField = this.isInput ? this.element : this.element.find('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\t\tthis.isInline = !this.component && this.element.is('div');\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\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\tif (this.o.calendarWeeks) {\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\treturn Number(val) + 1;\n\t\t\t\t});\n\t\t}\n\n\t\tthis._process_options({\n\t\t\tstartDate: this._o.startDate,\n\t\t\tendDate: this._o.endDate,\n\t\t\tdaysOfWeekDisabled: this.o.daysOfWeekDisabled,\n\t\t\tdaysOfWeekHighlighted: this.o.daysOfWeekHighlighted,\n\t\t\tdatesDisabled: this.o.datesDisabled\n\t\t});\n\n\t\tthis._allow_update = false;\n\t\tthis.setViewMode(this.o.startView);\n\t\tthis._allow_update = true;\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis.update();\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){\n\t\t\t$.each(DPGlobal.viewModes, function(i, viewMode){\n\t\t\t\tif (view === i || $.inArray(view, viewMode.names) !== -1){\n\t\t\t\t\tview = i;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn view;\n\t\t},\n\n\t\t_resolveDaysOfWeek: function(daysOfWeek){\n\t\t\tif (!$.isArray(daysOfWeek))\n\t\t\t\tdaysOfWeek = daysOfWeek.split(/[,\\s]*/);\n\t\t\treturn $.map(daysOfWeek, Number);\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);\n\t\t\to.minViewMode = this._resolveViewName(o.minViewMode);\n\t\t\to.maxViewMode = this._resolveViewName(o.maxViewMode);\n\n\t\t\t// Check view is between min and max\n\t\t\to.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));\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 = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);\n\t\t\to.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\to.datesDisabled = o.datesDisabled.split(',');\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 instanceof Date || typeof o.defaultViewDate === 'string') {\n\t\t\t\to.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);\n\t\t\t} else if (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_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} else 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} else 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 // component: input + button\n else if (this.component && this.inputField.length) {\n this._events = [\n // For components that are not readonly, allow keyboard nav\n [this.inputField, events],\n [this.component, {\n click: $.proxy(this.show, this)\n }]\n ];\n }\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\tkeydown: $.proxy(this.keydown, 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[this.picker, '.prev, .next', {\n\t\t\t\t\tclick: $.proxy(this.navArrowsClick, this)\n\t\t\t\t}],\n\t\t\t\t[this.picker, '.day:not(.disabled)', {\n\t\t\t\t\tclick: $.proxy(this.dayCellClick, 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\t'mousedown touchstart': $.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.isInline\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\tviewMode: this.viewMode,\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} else 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\t\t\tif (this.inputField.is(':disabled') || (this.inputField.prop('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 || !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.setViewMode(this.o.startView);\n\n\t\t\tif (this.o.forceParse && this.inputField.val())\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(e){\n\t\t\tvar dateString;\n\t\t\tif (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = e.originalEvent.clipboardData.getData('text/plain');\n\t\t\t} else if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\te.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\tif (!utc) {\n\t\t\t\treturn utc;\n\t\t\t}\n\n\t\t\tvar local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));\n\n\t\t\tif (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {\n\t\t\t\tlocal = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));\n\t\t\t}\n\n\t\t\treturn local;\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 && UTCDate(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 (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\tthis.inputField.val('');\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\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.setDates.apply(this, $.map(args, this._utc_to_local));\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tthis.inputField.val(formatted);\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\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\treturn this;\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 = [0];\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' && Number(itemZIndex) !== 0) parentsZindex.push(Number(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 - appendOffset.left;\n\t\t\tvar top = offset.top - appendOffset.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\tif (this.o.rtl) {\n\t\t\t\t\t\t// Default to right\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Default to left\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\t}\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} else {\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.inputField.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.o.updateViewDate) {\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\t\telse\n\t\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\t\t\t}\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\tthis.element.change();\n\t\t\t}\n\t\t\telse if (this.dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates) && fromArgs) {\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\tthis.element.change();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length) {\n\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tthis.element.change();\n\t\t\t}\n\n\t\t\tthis.fill();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n if (this.o.showWeekDays) {\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\thtml += ' ';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += '';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n }\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\tvar focused;\n\t\t\tfor (var i = 0; i < 12; i++){\n\t\t\t\tfocused = 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 = UTCToday();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t} else 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 UTC today, not local today\n\t\t\tif (this.o.todayHighlight && isUTCEquals(date, today)) {\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)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled', 'disabled-date');\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, year, startYear, endYear, beforeFn){\n\t\t\tvar html = '';\n\t\t\tvar step = factor / 10;\n\t\t\tvar view = this.picker.find(selector);\n\t\t\tvar startVal = Math.floor(year / factor) * factor;\n\t\t\tvar endVal = startVal + step * 9;\n\t\t\tvar focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;\n\t\t\tvar selected = $.map(this.dates, function(d){\n\t\t\t\treturn Math.floor(d.getUTCFullYear() / step) * step;\n\t\t\t});\n\n\t\t\tvar classes, tooltip, before;\n\t\t\tfor (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {\n\t\t\t\tclasses = [cssClass];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (currVal === startVal - step) {\n\t\t\t\t\tclasses.push('old');\n\t\t\t\t} else if (currVal === endVal + step) {\n\t\t\t\t\tclasses.push('new');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(currVal, selected) !== -1) {\n\t\t\t\t\tclasses.push('active');\n\t\t\t\t}\n\t\t\t\tif (currVal < startYear || currVal > endYear) {\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t}\n\t\t\t\tif (currVal === focusedVal) {\n\t\t\t\t classes.push('focused');\n }\n\n\t\t\t\tif (beforeFn !== $.noop) {\n\t\t\t\t\tbefore = beforeFn(new Date(currVal, 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 += '' + currVal + '';\n\t\t\t}\n\n\t\t\tview.find('.datepicker-switch').text(startVal + '-' + endVal);\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 titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n todayDate = UTCToday(),\n titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),\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 .css('display', titleBtnVisible ? 'table-cell' : 'none');\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.css('display', this.o.clearBtn === true ? 'table-cell' : 'none');\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.css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month, 0),\n\t\t\t\tday = prevMonth.getUTCDate();\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 weekDay, clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tweekDay = prevMonth.getUTCDay();\n\t\t\t\tif (weekDay === 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 - weekDay - 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\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\tvar content = prevMonth.getUTCDate();\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\tif (before.content)\n\t\t\t\t\t\tcontent = before.content;\n\t\t\t\t}\n\n\t\t\t\t//Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)\n\t\t\t\t//Fallback to unique function for older jquery versions\n\t\t\t\tif ($.isFunction($.uniqueSort)) {\n\t\t\t\t\tclsName = $.uniqueSort(clsName);\n\t\t\t\t} else {\n\t\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\t}\n\n\t\t\t\thtml.push('' + content + '');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (weekDay === 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').html(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('tbody 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\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\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\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\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\tprevIsDisabled,\n\t\t\t\tnextIsDisabled,\n\t\t\t\tfactor = 1;\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 4:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 3:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 2:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\tprevIsDisabled = Math.floor(year / factor) * factor <= startYear;\n\t\t\t\t\tnextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tprevIsDisabled = year <= startYear && month <= startMonth;\n\t\t\t\t\tnextIsDisabled = year >= endYear && month >= endMonth;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis.picker.find('.prev').toggleClass('disabled', prevIsDisabled);\n\t\t\tthis.picker.find('.next').toggleClass('disabled', nextIsDisabled);\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;\n\t\t\ttarget = $(e.target);\n\n\t\t\t// Clicked on the switch\n\t\t\tif (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){\n\t\t\t\tthis.setViewMode(this.viewMode + 1);\n\t\t\t}\n\n\t\t\t// Clicked on today button\n\t\t\tif (target.hasClass('today') && !target.hasClass('day')){\n\t\t\t\tthis.setViewMode(0);\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 month, year, decade, century\n\t\t\t\tif (target.hasClass('month')\n\t\t\t\t\t\t|| 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\tif (this.viewMode === 1){\n\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\tyear = Number(target.text());\n\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);\n\n\t\t\t\t\tif (this.viewMode === this.o.minViewMode){\n\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setViewMode(this.viewMode - 1);\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\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\tthis._focused_from.focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\tdayCellClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar timestamp = $target.data('date');\n\t\t\tvar date = new Date(timestamp);\n\n\t\t\tif (this.o.updateViewDate) {\n\t\t\t\tif (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {\n\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t}\n\n\t\t\t\tif (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {\n\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._setDate(date);\n\t\t},\n\n\t\t// Clicked on prev or next\n\t\tnavArrowsClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar dir = $target.hasClass('prev') ? -1 : 1;\n\t\t\tif (this.viewMode !== 0){\n\t\t\t\tdir *= DPGlobal.viewModes[this.viewMode].navStep * 12;\n\t\t\t}\n\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);\n\t\t\tthis.fill();\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 && this.o.updateViewDate) || 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\tthis.inputField.trigger('change');\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\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} else 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} else 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} else 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\tthis.inputField.trigger('change');\n\t\t\t}\n\t\t},\n\n\t\tsetViewMode: function(viewMode){\n\t\t\tthis.viewMode = viewMode;\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.viewModes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n this._trigger('changeViewMode', new Date(this.viewDate));\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$.data(element, '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\tthis.keepEmptyValues = options.keepEmptyValues;\n\t\tdelete options.keepEmptyValues;\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 $.data(i, '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\tclearDates: function(){\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.clearDates();\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 = $.data(e.target, 'datepicker');\n\n\t\t\tif (dp === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\tkeep_empty_values = this.keepEmptyValues,\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() && (p === dp || !keep_empty_values))\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} else 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\tdestroy: function(){\n\t\t\t$.map(this.pickers, function(p){ p.destroy(); });\n\t\t\t$(this.inputs).off('changeDate', this.dateUpdated);\n\t\t\tdelete this.element.data().datepicker;\n\t\t},\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')\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\tkeepEmptyValues: false,\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\tupdateViewDate: true,\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 showWeekDays: true\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\tviewModes: [\n\t\t\t{\n\t\t\t\tnames: ['days', 'month'],\n\t\t\t\tclsName: 'days',\n\t\t\t\te: 'changeMonth'\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['months', 'year'],\n\t\t\t\tclsName: 'months',\n\t\t\t\te: 'changeYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['years', 'decade'],\n\t\t\t\tclsName: 'years',\n\t\t\t\te: 'changeDecade',\n\t\t\t\tnavStep: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['decades', 'century'],\n\t\t\t\tclsName: 'decades',\n\t\t\t\te: 'changeCentury',\n\t\t\t\tnavStep: 100\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['centuries', 'millennium'],\n\t\t\t\tclsName: 'centuries',\n\t\t\t\te: 'changeMillennium',\n\t\t\t\tnavStep: 1000\n\t\t\t}\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\t\t\t\treturn format.toValue(date, format, language);\n\t\t\tvar fn_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\tparts, part, dir, i, fn;\n\t\t\tif (date in dateAliases){\n\t\t\t\tdate = dateAliases[date];\n\t\t\t}\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/i.test(date)){\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/gi);\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = parts[i].match(/([\\-+]\\d+)([dmwy])/i);\n\t\t\t\t\tdir = Number(part[1]);\n\t\t\t\t\tfn = fn_map[part[2].toLowerCase()];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn Datepicker.prototype._zero_utc_time(date);\n\t\t\t}\n\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\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\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['yy'] = setters_map['yyyy'];\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''+defaults.templates.leftArrow+''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+defaults.templates.rightArrow+''+\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.9.0';\n\n\t$.fn.datepicker.deprecated = function(msg){\n\t\tvar console = window.console;\n\t\tif (console && console.warn) {\n\t\t\tconsole.warn('DEPRECATED: ' + msg);\n\t\t}\n\t};\n\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","/**\n * Japanese translation for bootstrap-datepicker\n * Norio Suzuki \n */\n;(function($){\n\t$.fn.datepicker.dates['ja'] = {\n\t\tdays: [\"日曜\", \"月曜\", \"火曜\", \"水曜\", \"木曜\", \"金曜\", \"土曜\"],\n\t\tdaysShort: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n\t\tdaysMin: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n\t\tmonths: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\tmonthsShort: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\ttoday: \"今日\",\n\t\tformat: \"yyyy/mm/dd\",\n\t\ttitleFormat: \"yyyy年mm月\",\n\t\tclear: \"クリア\"\n\t};\n}(jQuery));\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = confirm(message);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n }).call(this);\n (function() {\n var stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('
')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('
');\n var $titleElement = $('
');\n var $messageElement = $('
');\n var $progressElement = $('
');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n","/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function(){var t=this;(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame&&null!=window.addEventListener}(),visit:function(t,r){return e.controller.visit(t,r)},clearCache:function(){return e.controller.clearCache()},setProgressBarDelay:function(t){return e.controller.setProgressBarDelay(t)}}}).call(this)}).call(t);var e=t.Turbolinks;(function(){(function(){var t,r,n,o=[].slice;e.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},e.closest=function(e,r){return t.call(e,r)},t=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),e.defer=function(t){return setTimeout(t,1)},e.throttle=function(t){var e;return e=null,function(){var r;return r=1<=arguments.length?o.call(arguments,0):[],null!=e?e:e=requestAnimationFrame(function(n){return function(){return e=null,t.apply(n,r)}}(this))}},e.dispatch=function(t,e){var r,o,i,s,a,u;return a=null!=e?e:{},u=a.target,r=a.cancelable,o=a.data,i=document.createEvent(\"Events\"),i.initEvent(t,!0,r===!0),i.data=null!=o?o:{},i.cancelable&&!n&&(s=i.preventDefault,i.preventDefault=function(){return this.defaultPrevented||Object.defineProperty(this,\"defaultPrevented\",{get:function(){return!0}}),s.call(this)}),(null!=u?u:document).dispatchEvent(i),i},n=function(){var t;return t=document.createEvent(\"Events\"),t.initEvent(\"test\",!0,!0),t.preventDefault(),t.defaultPrevented}(),e.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),e.uuid=function(){var t,e,r;for(r=\"\",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?\"-\":15===t?\"4\":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){e.Location=function(){function t(t){var e,r;null==t&&(t=\"\"),r=document.createElement(\"a\"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split(\"/\",3).join(\"/\")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/))?e[1]:void 0)?t:\"/\"},t.prototype.getPathComponents=function(){return this.getPath().split(\"/\").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\\.[^.]*$/))?e[0]:void 0)?t:\"\"},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,\"/\")?t:t+\"/\"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=t(this.requestCanceled,this),this.requestTimedOut=t(this.requestTimedOut,this),this.requestFailed=t(this.requestFailed,this),this.requestLoaded=t(this.requestLoaded,this),this.requestProgressed=t(this.requestProgressed,this),this.url=e.Location.wrap(n).requestURL,this.referrer=e.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,\"function\"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader(\"Turbolinks-Location\")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return e.dispatch(\"turbolinks:request-start\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return e.dispatch(\"turbolinks:request-end\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open(\"GET\",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader(\"Accept\",\"text/html, application/xhtml+xml\"),this.xhr.setRequestHeader(\"Turbolinks-Referrer\",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),\"function\"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ProgressBar=function(){function e(){this.trickle=t(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,e.defaultCSS=\".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \"+r+\"ms ease-out, opacity \"+r/2+\"ms \"+r/2+\"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\",e.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},e.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},e.prototype.setValue=function(t){return this.value=t,this.refresh()},e.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},e.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},e.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},e.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},e.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},e.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},e.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},e.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+\"%\"}}(this))},e.prototype.createStylesheetElement=function(){var t;return t=document.createElement(\"style\"),t.type=\"text/css\",t.textContent=this.constructor.defaultCSS,t},e.prototype.createProgressElement=function(){var t;return t=document.createElement(\"div\"),t.className=\"turbolinks-progress-bar\",t},e}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=t(this.showProgressBar,this),this.progressBar=new e.ProgressBar}var n,o,i;return i=e.HttpRequest,n=i.NETWORK_FAILURE,o=i.TIMEOUT_FAILURE,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||\"restore\"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case o:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,this.controller.progressBarDelay)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.History=function(){function r(e){this.delegate=e,this.onPageLoad=t(this.onPageLoad,this),this.onPopState=t(this.onPopState,this)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"popstate\",this.onPopState,!1),addEventListener(\"load\",this.onPageLoad,!1),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"popstate\",this.onPopState,!1),removeEventListener(\"load\",this.onPageLoad,!1),this.started=!1):void 0},r.prototype.push=function(t,r){return t=e.Location.wrap(t),this.update(\"push\",t,r)},r.prototype.replace=function(t,r){return t=e.Location.wrap(t),this.update(\"replace\",t,r)},r.prototype.onPopState=function(t){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=t.state)?n.turbolinks:void 0)?(r=e.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},r.prototype.onPageLoad=function(t){return e.defer(function(t){return function(){return t.pageLoaded=!0}}(this))},r.prototype.shouldHandlePopState=function(){return this.pageIsLoaded()},r.prototype.pageIsLoaded=function(){return this.pageLoaded||\"complete\"===document.readyState},r.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+\"State\"](n,null,e)},r}()}.call(this),function(){e.HeadDetails=function(){function t(t){var e,r,n,s,a,u;for(this.elements={},n=0,a=t.length;a>n;n++)u=t[n],u.nodeType===Node.ELEMENT_NODE&&(s=u.outerHTML,r=null!=(e=this.elements)[s]?e[s]:e[s]={type:i(u),tracked:o(u),elements:[]},r.elements.push(u))}var e,r,n,o,i;return t.fromHeadElement=function(t){var e;return new this(null!=(e=null!=t?t.childNodes:void 0)?e:[])},t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join(\"\")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"script\",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"stylesheet\",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},t.prototype.getMetaValue=function(t){var e;return null!=(e=this.findMetaElementByName(t))?e.getAttribute(\"content\"):void 0},t.prototype.findMetaElementByName=function(t){var r,n,o,i;r=void 0,i=this.elements;for(o in i)n=i[o].elements,e(n[0],t)&&(r=n[0]);return r},i=function(t){return r(t)?\"script\":n(t)?\"stylesheet\":void 0},o=function(t){return\"reload\"===t.getAttribute(\"data-turbolinks-track\")},r=function(t){var e;return e=t.tagName.toLowerCase(),\"script\"===e},n=function(t){var e;return e=t.tagName.toLowerCase(),\"style\"===e||\"link\"===e&&\"stylesheet\"===t.getAttribute(\"rel\")},e=function(t,e){var r;return r=t.tagName.toLowerCase(),\"meta\"===r&&t.getAttribute(\"name\")===e},t}()}.call(this),function(){e.Snapshot=function(){function t(t,e){this.headDetails=t,this.bodyElement=e}return t.wrap=function(t){return t instanceof this?t:\"string\"==typeof t?this.fromHTMLString(t):this.fromHTMLElement(t)},t.fromHTMLString=function(t){var e;return e=document.createElement(\"html\"),e.innerHTML=t,this.fromHTMLElement(e)},t.fromHTMLElement=function(t){var r,n,o,i;return o=t.querySelector(\"head\"),r=null!=(i=t.querySelector(\"body\"))?i:document.createElement(\"body\"),n=e.HeadDetails.fromHeadElement(o),new this(n,r)},t.prototype.clone=function(){return new this.constructor(this.headDetails,this.bodyElement.cloneNode(!0))},t.prototype.getRootLocation=function(){var t,r;return r=null!=(t=this.getSetting(\"root\"))?t:\"/\",new e.Location(r)},t.prototype.getCacheControlValue=function(){return this.getSetting(\"cache-control\")},t.prototype.getElementForAnchor=function(t){try{return this.bodyElement.querySelector(\"[id='\"+t+\"'], a[name='\"+t+\"']\")}catch(e){}},t.prototype.getPermanentElements=function(){return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\")},t.prototype.getPermanentElementById=function(t){return this.bodyElement.querySelector(\"#\"+t+\"[data-turbolinks-permanent]\")},t.prototype.getPermanentElementsPresentInSnapshot=function(t){var e,r,n,o,i;for(o=this.getPermanentElements(),i=[],r=0,n=o.length;n>r;r++)e=o[r],t.getPermanentElementById(e.id)&&i.push(e);return i},t.prototype.findFirstAutofocusableElement=function(){return this.bodyElement.querySelector(\"[autofocus]\")},t.prototype.hasAnchor=function(t){return null!=this.getElementForAnchor(t)},t.prototype.isPreviewable=function(){return\"no-preview\"!==this.getCacheControlValue()},t.prototype.isCacheable=function(){return\"no-cache\"!==this.getCacheControlValue()},t.prototype.isVisitable=function(){return\"reload\"!==this.getSetting(\"visit-control\")},t.prototype.getSetting=function(t){return this.headDetails.getMetaValue(\"turbolinks-\"+t)},t}()}.call(this),function(){var t=[].slice;e.Renderer=function(){function e(){}var r;return e.render=function(){var e,r,n,o;return n=arguments[0],r=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,e,function(){}),o.delegate=n,o.render(r),o},e.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},e.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},e.prototype.createScriptElement=function(t){var e;return\"false\"===t.getAttribute(\"data-turbolinks-eval\")?t:(e=document.createElement(\"script\"),e.textContent=t.textContent,e.async=!1,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},e}()}.call(this),function(){var t,r,n=function(t,e){function r(){this.constructor=t}for(var n in e)o.call(e,n)&&(t[n]=e[n]);return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},o={}.hasOwnProperty;e.SnapshotRenderer=function(e){function o(t,e,r){this.currentSnapshot=t,this.newSnapshot=e,this.isPreview=r,this.currentHeadDetails=this.currentSnapshot.headDetails,this.newHeadDetails=this.newSnapshot.headDetails,this.currentBody=this.currentSnapshot.bodyElement,this.newBody=this.newSnapshot.bodyElement}return n(o,e),o.prototype.render=function(t){return this.shouldRender()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.isPreview||e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},o.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},o.prototype.replaceBody=function(){var t;return t=this.relocateCurrentBodyPermanentElements(),this.activateNewBodyScriptElements(),this.assignNewBody(),this.replacePlaceholderElementsWithClonedPermanentElements(t)},o.prototype.shouldRender=function(){return this.newSnapshot.isVisitable()&&this.trackedElementsAreIdentical()},o.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},o.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},o.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},o.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.relocateCurrentBodyPermanentElements=function(){var e,n,o,i,s,a,u;for(a=this.getCurrentBodyPermanentElements(),u=[],e=0,n=a.length;n>e;e++)i=a[e],s=t(i),o=this.newSnapshot.getPermanentElementById(i.id),r(i,s.element),r(o,i),u.push(s);return u},o.prototype.replacePlaceholderElementsWithClonedPermanentElements=function(t){var e,n,o,i,s,a,u;for(u=[],o=0,i=t.length;i>o;o++)a=t[o],n=a.element,s=a.permanentElement,e=s.cloneNode(!0),u.push(r(n,e));return u},o.prototype.activateNewBodyScriptElements=function(){var t,e,n,o,i,s;for(i=this.getNewBodyScriptElements(),s=[],e=0,o=i.length;o>e;e++)n=i[e],t=this.createScriptElement(n),s.push(r(n,t));return s},o.prototype.assignNewBody=function(){return document.body=this.newBody},o.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.newSnapshot.findFirstAutofocusableElement())?t.focus():void 0},o.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},o.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},o.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},o.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},o.prototype.getCurrentBodyPermanentElements=function(){return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot)},o.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll(\"script\")},o}(e.Renderer),t=function(t){var e;return e=document.createElement(\"meta\"),e.setAttribute(\"name\",\"turbolinks-permanent-placeholder\"),e.setAttribute(\"content\",t.id),{element:e,permanentElement:t}},r=function(t,e){var r;return(r=t.parentNode)?r.replaceChild(e,t):void 0}}.call(this),function(){var t=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;e.ErrorRenderer=function(e){function r(t){var e;e=document.createElement(\"html\"),e.innerHTML=t,this.newHead=e.querySelector(\"head\"),this.newBody=e.querySelector(\"body\")}return t(r,e),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceHeadAndBody(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceHeadAndBody=function(){var t,e;return e=document.head,t=document.body,e.parentNode.replaceChild(this.newHead,e),t.parentNode.replaceChild(this.newBody,t)},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll(\"script\")},r}(e.Renderer)}.call(this),function(){e.View=function(){function t(t){this.delegate=t,this.htmlElement=document.documentElement}return t.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},t.prototype.getElementForAnchor=function(t){return this.getSnapshot().getElementForAnchor(t)},t.prototype.getSnapshot=function(){return e.Snapshot.fromHTMLElement(this.htmlElement)},t.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,n,e):this.renderError(r,e)},t.prototype.markAsPreview=function(t){return t?this.htmlElement.setAttribute(\"data-turbolinks-preview\",\"\"):this.htmlElement.removeAttribute(\"data-turbolinks-preview\")},t.prototype.renderSnapshot=function(t,r,n){return e.SnapshotRenderer.render(this.delegate,n,this.getSnapshot(),e.Snapshot.wrap(t),r)},t.prototype.renderError=function(t,r){return e.ErrorRenderer.render(this.delegate,r,t)},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ScrollManager=function(){function r(r){this.delegate=r,this.onScroll=t(this.onScroll,this),this.onScroll=e.throttle(this.onScroll)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"scroll\",this.onScroll,!1),this.onScroll(),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"scroll\",this.onScroll,!1),this.started=!1):void 0},r.prototype.scrollToElement=function(t){return t.scrollIntoView()},r.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},r.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},r.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},r}()}.call(this),function(){e.SnapshotCache=function(){function t(t){this.size=t,this.keys=[],this.snapshots={}}var r;return t.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},t.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},t.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},t.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},t.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},t.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},t.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(t){return e.Location.wrap(t).toCacheKey()},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=t(this.performScroll,this),this.identifier=e.uuid(),this.location=e.Location.wrap(n),this.adapter=this.controller.adapter,this.state=\"initialized\",this.timingMetrics={}}var n;return r.prototype.start=function(){return\"initialized\"===this.state?(this.recordTimingMetric(\"visitStart\"),this.state=\"started\",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return\"started\"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state=\"canceled\"):void 0},r.prototype.complete=function(){var t;return\"started\"===this.state?(this.recordTimingMetric(\"visitEnd\"),this.state=\"completed\",\"function\"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return\"started\"===this.state?(this.state=\"failed\",\"function\"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?\"replace\":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new e.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||\"restore\"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),\"function\"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),\"function\"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),\"function\"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric(\"requestStart\"),\"function\"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(t,r){return this.response=t,null!=r&&(this.redirectedToLocation=e.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric(\"requestEnd\"),\"function\"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:(\"restore\"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return e.copyObject(this.timingMetrics)},n=function(t){switch(t){case\"replace\":return\"replaceHistoryWithLocationAndRestorationIdentifier\";case\"advance\":case\"restore\":return\"pushHistoryWithLocationAndRestorationIdentifier\"}},r.prototype.shouldIssueRequest=function(){return\"restore\"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Controller=function(){function r(){this.clickBubbled=t(this.clickBubbled,this),this.clickCaptured=t(this.clickCaptured,this),this.pageLoaded=t(this.pageLoaded,this),this.history=new e.History(this),this.view=new e.View(this),this.scrollManager=new e.ScrollManager(this),this.restorationData={},this.clearCache(),this.setProgressBarDelay(500)}return r.prototype.start=function(){return e.supported&&!this.started?(addEventListener(\"click\",this.clickCaptured,!0),addEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener(\"click\",this.clickCaptured,!0),removeEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new e.SnapshotCache(10)},r.prototype.visit=function(t,r){var n,o;return null==r&&(r={}),t=e.Location.wrap(t),this.applicationAllowsVisitingLocation(t)?this.locationIsVisitable(t)?(n=null!=(o=r.action)?o:\"advance\",this.adapter.visitProposedToLocationWithAction(t,n)):window.location=t:void 0},r.prototype.startVisitToLocationWithAction=function(t,r,n){var o;return e.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(t,r,{restorationData:o})):window.location=t},r.prototype.setProgressBarDelay=function(t){return this.progressBarDelay=t},r.prototype.startHistory=function(){return this.location=e.Location.wrap(window.location),this.restorationIdentifier=e.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(t,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(t,\"restore\",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=e.Location.wrap(t)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return null!=(e=this.cache.get(t))?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable();\n},r.prototype.cacheSnapshot=function(){var t,r;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),r=this.view.getSnapshot(),t=this.lastRenderedLocation,e.defer(function(e){return function(){return e.cache.put(t,r.clone())}}(this))):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=this.view.getElementForAnchor(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener(\"click\",this.clickBubbled,!1),addEventListener(\"click\",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(t,r){return e.dispatch(\"turbolinks:click\",{target:t,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(t){return e.dispatch(\"turbolinks:before-visit\",{data:{url:t.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(t){return e.dispatch(\"turbolinks:visit\",{data:{url:t.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return e.dispatch(\"turbolinks:before-cache\")},r.prototype.notifyApplicationBeforeRender=function(t){return e.dispatch(\"turbolinks:before-render\",{data:{newBody:t}})},r.prototype.notifyApplicationAfterRender=function(){return e.dispatch(\"turbolinks:render\")},r.prototype.notifyApplicationAfterPageLoad=function(t){return null==t&&(t={}),e.dispatch(\"turbolinks:load\",{data:{url:this.location.absoluteURL,timing:t}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(t,r,n){var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new e.Visit(this,t,r),u.restorationIdentifier=null!=a?a:e.uuid(),u.restorationData=e.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(t){return this.nodeIsVisitable(t)?e.closest(t,\"a[href]:not([target]):not([download])\"):void 0},r.prototype.getVisitableLocationForLink=function(t){var r;return r=new e.Location(t.getAttribute(\"href\")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute(\"data-turbolinks-action\"))?e:\"advance\"},r.prototype.nodeIsVisitable=function(t){var r;return(r=e.closest(t,\"[data-turbolinks]\"))?\"false\"!==r.getAttribute(\"data-turbolinks\"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){!function(){var t,e;if((t=e=document.currentScript)&&!e.hasAttribute(\"data-turbolinks-suppress-warning\"))for(;t=t.parentNode;)if(t===document.body)return console.warn(\"You are loading Turbolinks from a