{"version":3,"file":"ip.plugins.bundle.js","mappings":"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","sources":["webpack://industrienspension/./IP.Mockup/js/plugins/1.jquery.datepicker.picker.js","webpack://industrienspension/./IP.Mockup/js/plugins/2.jquery.datepicker.picker.date.js","webpack://industrienspension/./IP.Mockup/js/plugins/3.jquery.datepicker.picker.time.js","webpack://industrienspension/./IP.Mockup/js/plugins/4.jquery.datepicker.legacy.js","webpack://industrienspension/./IP.Mockup/js/plugins/5.jquery.datepicker.da_DK.js","webpack://industrienspension/./IP.Mockup/js/plugins/IP.ScrollEvent.js","webpack://industrienspension/./IP.Mockup/js/plugins/IP.Validation.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.alertify.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.cookieconsent.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.fancybox.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.hash.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.headroom.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.metadata.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.placeholder.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.rangeslider.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.responsive-tables.js","webpack://industrienspension/./IP.Mockup/js/plugins/jquery.tools.js","webpack://industrienspension/./IP.Mockup/js/plugins/z.7.cleaver.js","webpack://industrienspension/./IP.Mockup/js/plugins/z.8.bootstrap-datepicker.js","webpack://industrienspension/./IP.Mockup/js/plugins/z.9.bootstrap-datepicker-range.js"],"sourcesContent":["/*!\r\n * pickadate.js v3.5.5, 2015/02/08\r\n * By Amsul, http://amsul.ca\r\n * Hosted on http://amsul.github.io/pickadate.js\r\n * Licensed under MIT\r\n * \r\n * Tilrettet af Csh pga. problemer med piletaster\r\n * line 29 -> https://github.com/amsul/pickadate.js/issues/634\r\n */ \r\n\r\n(function (factory) {\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd)\r\n define('picker', ['jquery'], factory)\r\n\r\n // Node.js/browserify.\r\n else if (typeof exports == 'object')\r\n module.exports = factory(require('jquery'))\r\n\r\n // Browser globals.\r\n else this.Picker = factory(jQuery)\r\n\r\n}(function ($) {\r\n\r\n var $window = $(window)\r\n var $document = $(document)\r\n var $html = $(document.documentElement)\r\n var supportsTransitions = function () { return document.body.style.transition != null; } //RETTET HER AF CSH.. ser kommentar øverst\r\n\r\n\r\n /**\r\n * The picker constructor that creates a blank picker.\r\n */\r\n function PickerConstructor(ELEMENT, NAME, COMPONENT, OPTIONS) {\r\n\r\n // If there’s no element, return the picker constructor.\r\n if (!ELEMENT) return PickerConstructor\r\n\r\n\r\n var\r\n IS_DEFAULT_THEME = false,\r\n\r\n\r\n // The state of the picker.\r\n STATE = {\r\n id: ELEMENT.id || 'P' + Math.abs(~~(Math.random() * new Date()))\r\n },\r\n\r\n\r\n // Merge the defaults and options passed.\r\n SETTINGS = COMPONENT ? $.extend(true, {}, COMPONENT.defaults, OPTIONS) : OPTIONS || {},\r\n\r\n\r\n // Merge the default classes with the settings classes.\r\n CLASSES = $.extend({}, PickerConstructor.klasses(), SETTINGS.klass),\r\n\r\n\r\n // The element node wrapper into a jQuery object.\r\n $ELEMENT = $(ELEMENT),\r\n\r\n\r\n // Pseudo picker constructor.\r\n PickerInstance = function () {\r\n return this.start()\r\n },\r\n\r\n\r\n // The picker prototype.\r\n P = PickerInstance.prototype = {\r\n\r\n constructor: PickerInstance,\r\n\r\n $node: $ELEMENT,\r\n\r\n\r\n /**\r\n * Initialize everything\r\n */\r\n start: function () {\r\n\r\n // If it’s already started, do nothing.\r\n if (STATE && STATE.start) return P\r\n\r\n\r\n // Update the picker states.\r\n STATE.methods = {}\r\n STATE.start = true\r\n STATE.open = false\r\n STATE.type = ELEMENT.type\r\n\r\n\r\n // Confirm focus state, convert into text input to remove UA stylings,\r\n // and set as readonly to prevent keyboard popup.\r\n ELEMENT.autofocus = ELEMENT == getActiveElement()\r\n ELEMENT.readOnly = !SETTINGS.editable\r\n ELEMENT.id = ELEMENT.id || STATE.id\r\n if (ELEMENT.type != 'text') {\r\n ELEMENT.type = 'text'\r\n }\r\n\r\n\r\n // Create a new picker component with the settings.\r\n P.component = new COMPONENT(P, SETTINGS)\r\n\r\n\r\n // Create the picker root and then prepare it.\r\n P.$root = $('
')\r\n prepareElementRoot()\r\n\r\n\r\n // Create the picker holder and then prepare it.\r\n P.$holder = $(createWrappedComponent()).appendTo(P.$root)\r\n prepareElementHolder()\r\n\r\n\r\n // If there’s a format for the hidden input element, create the element.\r\n if (SETTINGS.formatSubmit) {\r\n prepareElementHidden()\r\n }\r\n\r\n\r\n // Prepare the input element.\r\n prepareElement()\r\n\r\n\r\n // Insert the hidden input as specified in the settings.\r\n if (SETTINGS.containerHidden) $(SETTINGS.containerHidden).append(P._hidden)\r\n else $ELEMENT.after(P._hidden)\r\n\r\n\r\n // Insert the root as specified in the settings.\r\n if (SETTINGS.container) $(SETTINGS.container).append(P.$root)\r\n else $ELEMENT.after(P.$root)\r\n\r\n\r\n // Bind the default component and settings events.\r\n P.on({\r\n start: P.component.onStart,\r\n render: P.component.onRender,\r\n stop: P.component.onStop,\r\n open: P.component.onOpen,\r\n close: P.component.onClose,\r\n set: P.component.onSet\r\n }).on({\r\n start: SETTINGS.onStart,\r\n render: SETTINGS.onRender,\r\n stop: SETTINGS.onStop,\r\n open: SETTINGS.onOpen,\r\n close: SETTINGS.onClose,\r\n set: SETTINGS.onSet\r\n })\r\n\r\n\r\n // Once we’re all set, check the theme in use.\r\n IS_DEFAULT_THEME = isUsingDefaultTheme(P.$holder[0])\r\n\r\n\r\n // If the element has autofocus, open the picker.\r\n if (ELEMENT.autofocus) {\r\n P.open()\r\n }\r\n\r\n\r\n // Trigger queued the “start” and “render” events.\r\n return P.trigger('start').trigger('render')\r\n }, //start\r\n\r\n\r\n /**\r\n * Render a new picker\r\n */\r\n render: function (entireComponent) {\r\n\r\n // Insert a new component holder in the root or box.\r\n if (entireComponent) {\r\n P.$holder = createWrappedComponent()\r\n P.$root.html(P.$holder)\r\n }\r\n else P.$root.find('.' + CLASSES.box).html(P.component.nodes(STATE.open))\r\n\r\n // Trigger the queued “render” events.\r\n return P.trigger('render')\r\n }, //render\r\n\r\n\r\n /**\r\n * Destroy everything\r\n */\r\n stop: function () {\r\n\r\n // If it’s already stopped, do nothing.\r\n if (!STATE.start) return P\r\n\r\n // Then close the picker.\r\n P.close()\r\n\r\n // Remove the hidden field.\r\n if (P._hidden) {\r\n P._hidden.parentNode.removeChild(P._hidden)\r\n }\r\n\r\n // Remove the root.\r\n P.$root.remove()\r\n\r\n // Remove the input class, remove the stored data, and unbind\r\n // the events (after a tick for IE - see `P.close`).\r\n $ELEMENT.removeClass(CLASSES.input).removeData(NAME)\r\n setTimeout(function () {\r\n $ELEMENT.off('.' + STATE.id)\r\n }, 0)\r\n\r\n // Restore the element state\r\n ELEMENT.type = STATE.type\r\n ELEMENT.readOnly = false\r\n\r\n // Trigger the queued “stop” events.\r\n P.trigger('stop')\r\n\r\n // Reset the picker states.\r\n STATE.methods = {}\r\n STATE.start = false\r\n\r\n return P\r\n }, //stop\r\n\r\n\r\n /**\r\n * Open up the picker\r\n */\r\n open: function (dontGiveFocus) {\r\n\r\n // If it’s already open, do nothing.\r\n if (STATE.open) return P\r\n\r\n // Add the “active” class.\r\n $ELEMENT.addClass(CLASSES.active)\r\n aria(ELEMENT, 'expanded', true)\r\n\r\n // * A Firefox bug, when `html` has `overflow:hidden`, results in\r\n // killing transitions :(. So add the “opened” state on the next tick.\r\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289\r\n setTimeout(function () {\r\n\r\n // Add the “opened” class to the picker root.\r\n P.$root.addClass(CLASSES.opened)\r\n aria(P.$root[0], 'hidden', false)\r\n\r\n }, 0)\r\n\r\n // If we have to give focus, bind the element and doc events.\r\n if (dontGiveFocus !== false) {\r\n\r\n // Set it as open.\r\n STATE.open = true\r\n\r\n // Prevent the page from scrolling.\r\n if (IS_DEFAULT_THEME) {\r\n $html.\r\n css('overflow', 'hidden').\r\n css('padding-right', '+=' + getScrollbarWidth())\r\n }\r\n\r\n // Pass focus to the root element’s jQuery object.\r\n focusPickerOnceOpened()\r\n\r\n // Bind the document events.\r\n $document.on('click.' + STATE.id + ' focusin.' + STATE.id, function (event) {\r\n\r\n var target = event.target\r\n\r\n // If the target of the event is not the element, close the picker picker.\r\n // * Don’t worry about clicks or focusins on the root because those don’t bubble up.\r\n // Also, for Firefox, a click on an `option` element bubbles up directly\r\n // to the doc. So make sure the target wasn't the doc.\r\n // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling,\r\n // which causes the picker to unexpectedly close when right-clicking it. So make\r\n // sure the event wasn’t a right-click.\r\n if (target != ELEMENT && target != document && event.which != 3) {\r\n\r\n // If the target was the holder that covers the screen,\r\n // keep the element focused to maintain tabindex.\r\n P.close(target === P.$holder[0])\r\n }\r\n\r\n }).on('keydown.' + STATE.id, function (event) {\r\n\r\n var\r\n // Get the keycode.\r\n keycode = event.keyCode,\r\n\r\n // Translate that to a selection change.\r\n keycodeToMove = P.component.key[keycode],\r\n\r\n // Grab the target.\r\n target = event.target\r\n\r\n\r\n // On escape, close the picker and give focus.\r\n if (keycode == 27) {\r\n P.close(true)\r\n }\r\n\r\n\r\n // Check if there is a key movement or “enter” keypress on the element.\r\n else if (target == P.$holder[0] && (keycodeToMove || keycode == 13)) {\r\n\r\n // Prevent the default action to stop page movement.\r\n event.preventDefault()\r\n\r\n // Trigger the key movement action.\r\n if (keycodeToMove) {\r\n PickerConstructor._.trigger(P.component.key.go, P, [PickerConstructor._.trigger(keycodeToMove)])\r\n }\r\n\r\n // On “enter”, if the highlighted item isn’t disabled, set the value and close.\r\n else if (!P.$root.find('.' + CLASSES.highlighted).hasClass(CLASSES.disabled)) {\r\n P.set('select', P.component.item.highlight)\r\n if (SETTINGS.closeOnSelect) {\r\n P.close(true)\r\n }\r\n }\r\n }\r\n\r\n\r\n // If the target is within the root and “enter” is pressed,\r\n // prevent the default action and trigger a click on the target instead.\r\n else if ($.contains(P.$root[0], target) && keycode == 13) {\r\n event.preventDefault()\r\n target.click()\r\n }\r\n })\r\n }\r\n\r\n // Trigger the queued “open” events.\r\n return P.trigger('open')\r\n }, //open\r\n\r\n\r\n /**\r\n * Close the picker\r\n */\r\n close: function (giveFocus) {\r\n\r\n // If we need to give focus, do it before changing states.\r\n if (giveFocus) {\r\n if (SETTINGS.editable) {\r\n ELEMENT.focus()\r\n }\r\n else {\r\n // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :|\r\n // The focus is triggered *after* the close has completed - causing it\r\n // to open again. So unbind and rebind the event at the next tick.\r\n P.$holder.off('focus.toOpen').focus()\r\n setTimeout(function () {\r\n P.$holder.on('focus.toOpen', handleFocusToOpenEvent)\r\n }, 0)\r\n }\r\n }\r\n\r\n // Remove the “active” class.\r\n $ELEMENT.removeClass(CLASSES.active)\r\n aria(ELEMENT, 'expanded', false)\r\n\r\n // * A Firefox bug, when `html` has `overflow:hidden`, results in\r\n // killing transitions :(. So remove the “opened” state on the next tick.\r\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289\r\n setTimeout(function () {\r\n\r\n // Remove the “opened” and “focused” class from the picker root.\r\n P.$root.removeClass(CLASSES.opened + ' ' + CLASSES.focused)\r\n aria(P.$root[0], 'hidden', true)\r\n\r\n }, 0)\r\n\r\n // If it’s already closed, do nothing more.\r\n if (!STATE.open) return P\r\n\r\n // Set it as closed.\r\n STATE.open = false\r\n\r\n // Allow the page to scroll.\r\n if (IS_DEFAULT_THEME) {\r\n $html.\r\n css('overflow', '').\r\n css('padding-right', '-=' + getScrollbarWidth())\r\n }\r\n\r\n // Unbind the document events.\r\n $document.off('.' + STATE.id)\r\n\r\n // Trigger the queued “close” events.\r\n return P.trigger('close')\r\n }, //close\r\n\r\n\r\n /**\r\n * Clear the values\r\n */\r\n clear: function (options) {\r\n return P.set('clear', null, options)\r\n }, //clear\r\n\r\n\r\n /**\r\n * Set something\r\n */\r\n set: function (thing, value, options) {\r\n\r\n var thingItem, thingValue,\r\n thingIsObject = $.isPlainObject(thing),\r\n thingObject = thingIsObject ? thing : {}\r\n\r\n // Make sure we have usable options.\r\n options = thingIsObject && $.isPlainObject(value) ? value : options || {}\r\n\r\n if (thing) {\r\n\r\n // If the thing isn’t an object, make it one.\r\n if (!thingIsObject) {\r\n thingObject[thing] = value\r\n }\r\n\r\n // Go through the things of items to set.\r\n for (thingItem in thingObject) {\r\n\r\n // Grab the value of the thing.\r\n thingValue = thingObject[thingItem]\r\n\r\n // First, if the item exists and there’s a value, set it.\r\n if (thingItem in P.component.item) {\r\n if (thingValue === undefined) thingValue = null\r\n P.component.set(thingItem, thingValue, options)\r\n }\r\n\r\n // Then, check to update the element value and broadcast a change.\r\n if (thingItem == 'select' || thingItem == 'clear') {\r\n $ELEMENT.\r\n val(thingItem == 'clear' ? '' : P.get(thingItem, SETTINGS.format)).\r\n trigger('change')\r\n }\r\n }\r\n\r\n // Render a new picker.\r\n P.render()\r\n }\r\n\r\n // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`.\r\n return options.muted ? P : P.trigger('set', thingObject)\r\n }, //set\r\n\r\n\r\n /**\r\n * Get something\r\n */\r\n get: function (thing, format) {\r\n\r\n // Make sure there’s something to get.\r\n thing = thing || 'value'\r\n\r\n // If a picker state exists, return that.\r\n if (STATE[thing] != null) {\r\n return STATE[thing]\r\n }\r\n\r\n // Return the submission value, if that.\r\n if (thing == 'valueSubmit') {\r\n if (P._hidden) {\r\n return P._hidden.value\r\n }\r\n thing = 'value'\r\n }\r\n\r\n // Return the value, if that.\r\n if (thing == 'value') {\r\n return ELEMENT.value\r\n }\r\n\r\n // Check if a component item exists, return that.\r\n if (thing in P.component.item) {\r\n if (typeof format == 'string') {\r\n var thingValue = P.component.get(thing)\r\n return thingValue ?\r\n PickerConstructor._.trigger(\r\n P.component.formats.toString,\r\n P.component,\r\n [format, thingValue]\r\n ) : ''\r\n }\r\n return P.component.get(thing)\r\n }\r\n }, //get\r\n\r\n\r\n\r\n /**\r\n * Bind events on the things.\r\n */\r\n on: function (thing, method, internal) {\r\n\r\n var thingName, thingMethod,\r\n thingIsObject = $.isPlainObject(thing),\r\n thingObject = thingIsObject ? thing : {}\r\n\r\n if (thing) {\r\n\r\n // If the thing isn’t an object, make it one.\r\n if (!thingIsObject) {\r\n thingObject[thing] = method\r\n }\r\n\r\n // Go through the things to bind to.\r\n for (thingName in thingObject) {\r\n\r\n // Grab the method of the thing.\r\n thingMethod = thingObject[thingName]\r\n\r\n // If it was an internal binding, prefix it.\r\n if (internal) {\r\n thingName = '_' + thingName\r\n }\r\n\r\n // Make sure the thing methods collection exists.\r\n STATE.methods[thingName] = STATE.methods[thingName] || []\r\n\r\n // Add the method to the relative method collection.\r\n STATE.methods[thingName].push(thingMethod)\r\n }\r\n }\r\n\r\n return P\r\n }, //on\r\n\r\n\r\n\r\n /**\r\n * Unbind events on the things.\r\n */\r\n off: function () {\r\n var i, thingName,\r\n names = arguments;\r\n for (i = 0, namesCount = names.length; i < namesCount; i += 1) {\r\n thingName = names[i]\r\n if (thingName in STATE.methods) {\r\n delete STATE.methods[thingName]\r\n }\r\n }\r\n return P\r\n },\r\n\r\n\r\n /**\r\n * Fire off method events.\r\n */\r\n trigger: function (name, data) {\r\n var _trigger = function (name) {\r\n var methodList = STATE.methods[name]\r\n if (methodList) {\r\n methodList.map(function (method) {\r\n PickerConstructor._.trigger(method, P, [data])\r\n })\r\n }\r\n }\r\n _trigger('_' + name)\r\n _trigger(name)\r\n return P\r\n } //trigger\r\n } //PickerInstance.prototype\r\n\r\n\r\n /**\r\n * Wrap the picker holder components together.\r\n */\r\n function createWrappedComponent() {\r\n\r\n // Create a picker wrapper holder\r\n return PickerConstructor._.node('div',\r\n\r\n // Create a picker wrapper node\r\n PickerConstructor._.node('div',\r\n\r\n // Create a picker frame\r\n PickerConstructor._.node('div',\r\n\r\n // Create a picker box node\r\n PickerConstructor._.node('div',\r\n\r\n // Create the components nodes.\r\n P.component.nodes(STATE.open),\r\n\r\n // The picker box class\r\n CLASSES.box\r\n ),\r\n\r\n // Picker wrap class\r\n CLASSES.wrap\r\n ),\r\n\r\n // Picker frame class\r\n CLASSES.frame\r\n ),\r\n\r\n // Picker holder class\r\n CLASSES.holder,\r\n\r\n 'tabindex=\"-1\"'\r\n ) //endreturn\r\n } //createWrappedComponent\r\n\r\n\r\n\r\n /**\r\n * Prepare the input element with all bindings.\r\n */\r\n function prepareElement() {\r\n\r\n $ELEMENT.\r\n\r\n // Store the picker data by component name.\r\n data(NAME, P).\r\n\r\n // Add the “input” class name.\r\n addClass(CLASSES.input).\r\n\r\n // If there’s a `data-value`, update the value of the element.\r\n val($ELEMENT.data('value') ?\r\n P.get('select', SETTINGS.format) :\r\n ELEMENT.value\r\n )\r\n\r\n\r\n // Only bind keydown events if the element isn’t editable.\r\n if (!SETTINGS.editable) {\r\n\r\n $ELEMENT.\r\n\r\n // On focus/click, open the picker.\r\n on('focus.' + STATE.id + ' click.' + STATE.id, function (event) {\r\n event.preventDefault()\r\n P.open()\r\n }).\r\n\r\n // Handle keyboard event based on the picker being opened or not.\r\n on('keydown.' + STATE.id, handleKeydownEvent)\r\n }\r\n\r\n\r\n // Update the aria attributes.\r\n aria(ELEMENT, {\r\n haspopup: true,\r\n expanded: false,\r\n readonly: false,\r\n owns: ELEMENT.id + '_root'\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Prepare the root picker element with all bindings.\r\n */\r\n function prepareElementRoot() {\r\n aria(P.$root[0], 'hidden', true)\r\n }\r\n\r\n\r\n /**\r\n * Prepare the holder picker element with all bindings.\r\n */\r\n function prepareElementHolder() {\r\n\r\n P.$holder.\r\n\r\n on({\r\n\r\n // For iOS8.\r\n keydown: handleKeydownEvent,\r\n\r\n 'focus.toOpen': handleFocusToOpenEvent,\r\n\r\n blur: function () {\r\n // Remove the “target” class.\r\n $ELEMENT.removeClass(CLASSES.target)\r\n },\r\n\r\n // When something within the holder is focused, stop from bubbling\r\n // to the doc and remove the “focused” state from the root.\r\n focusin: function (event) {\r\n P.$root.removeClass(CLASSES.focused)\r\n event.stopPropagation()\r\n },\r\n\r\n // When something within the holder is clicked, stop it\r\n // from bubbling to the doc.\r\n 'mousedown click': function (event) {\r\n\r\n var target = event.target\r\n\r\n // Make sure the target isn’t the root holder so it can bubble up.\r\n if (target != P.$holder[0]) {\r\n\r\n event.stopPropagation()\r\n\r\n // * For mousedown events, cancel the default action in order to\r\n // prevent cases where focus is shifted onto external elements\r\n // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120).\r\n // Also, for Firefox, don’t prevent action on the `option` element.\r\n if (event.type == 'mousedown' && !$(target).is('input, select, textarea, button, option')) {\r\n\r\n event.preventDefault()\r\n\r\n // Re-focus onto the holder so that users can click away\r\n // from elements focused within the picker.\r\n P.$holder[0].focus()\r\n }\r\n }\r\n }\r\n\r\n }).\r\n\r\n // If there’s a click on an actionable element, carry out the actions.\r\n on('click', '[data-pick], [data-nav], [data-clear], [data-close]', function () {\r\n\r\n var $target = $(this),\r\n targetData = $target.data(),\r\n targetDisabled = $target.hasClass(CLASSES.navDisabled) || $target.hasClass(CLASSES.disabled),\r\n\r\n // * For IE, non-focusable elements can be active elements as well\r\n // (http://stackoverflow.com/a/2684561).\r\n activeElement = getActiveElement()\r\n activeElement = activeElement && (activeElement.type || activeElement.href)\r\n\r\n // If it’s disabled or nothing inside is actively focused, re-focus the element.\r\n if (targetDisabled || activeElement && !$.contains(P.$root[0], activeElement)) {\r\n P.$holder[0].focus()\r\n }\r\n\r\n // If something is superficially changed, update the `highlight` based on the `nav`.\r\n if (!targetDisabled && targetData.nav) {\r\n P.set('highlight', P.component.item.highlight, { nav: targetData.nav })\r\n }\r\n\r\n // If something is picked, set `select` then close with focus.\r\n else if (!targetDisabled && 'pick' in targetData) {\r\n P.set('select', targetData.pick)\r\n if (SETTINGS.closeOnSelect) {\r\n P.close(true)\r\n }\r\n }\r\n\r\n // If a “clear” button is pressed, empty the values and close with focus.\r\n else if (targetData.clear) {\r\n P.clear()\r\n if (SETTINGS.closeOnClear) {\r\n P.close(true)\r\n }\r\n }\r\n\r\n else if (targetData.close) {\r\n P.close(true)\r\n }\r\n\r\n }) //P.$holder\r\n\r\n }\r\n\r\n\r\n /**\r\n * Prepare the hidden input element along with all bindings.\r\n */\r\n function prepareElementHidden() {\r\n\r\n var name\r\n\r\n if (SETTINGS.hiddenName === true) {\r\n name = ELEMENT.name\r\n ELEMENT.name = ''\r\n }\r\n else {\r\n name = [\r\n typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '',\r\n typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit'\r\n ]\r\n name = name[0] + ELEMENT.name + name[1]\r\n }\r\n\r\n P._hidden = $(\r\n ''\r\n )[0]\r\n\r\n $ELEMENT.\r\n\r\n // If the value changes, update the hidden input with the correct format.\r\n on('change.' + STATE.id, function () {\r\n P._hidden.value = ELEMENT.value ?\r\n P.get('select', SETTINGS.formatSubmit) :\r\n ''\r\n })\r\n }\r\n\r\n\r\n // Wait for transitions to end before focusing the holder. Otherwise, while\r\n // using the `container` option, the view jumps to the container.\r\n function focusPickerOnceOpened() {\r\n\r\n if (IS_DEFAULT_THEME && supportsTransitions) {\r\n P.$holder.find('.' + CLASSES.frame).one('transitionend', function () {\r\n P.$holder[0].focus()\r\n })\r\n }\r\n else {\r\n P.$holder[0].focus()\r\n }\r\n }\r\n\r\n\r\n function handleFocusToOpenEvent(event) {\r\n\r\n // Stop the event from propagating to the doc.\r\n event.stopPropagation()\r\n\r\n // Add the “target” class.\r\n $ELEMENT.addClass(CLASSES.target)\r\n\r\n // Add the “focused” class to the root.\r\n P.$root.addClass(CLASSES.focused)\r\n\r\n // And then finally open the picker.\r\n P.open()\r\n }\r\n\r\n\r\n // For iOS8.\r\n function handleKeydownEvent(event) {\r\n\r\n var keycode = event.keyCode,\r\n\r\n // Check if one of the delete keys was pressed.\r\n isKeycodeDelete = /^(8|46)$/.test(keycode)\r\n\r\n // For some reason IE clears the input value on “escape”.\r\n if (keycode == 27) {\r\n P.close(true)\r\n return false\r\n }\r\n\r\n // Check if `space` or `delete` was pressed or the picker is closed with a key movement.\r\n if (keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode]) {\r\n\r\n // Prevent it from moving the page and bubbling to doc.\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n // If `delete` was pressed, clear the values and close the picker.\r\n // Otherwise open the picker.\r\n if (isKeycodeDelete) { P.clear().close() }\r\n else { P.open() }\r\n }\r\n }\r\n\r\n\r\n // Return a new picker instance.\r\n return new PickerInstance()\r\n } //PickerConstructor\r\n\r\n\r\n\r\n /**\r\n * The default classes and prefix to use for the HTML classes.\r\n */\r\n PickerConstructor.klasses = function (prefix) {\r\n prefix = prefix || 'picker'\r\n return {\r\n\r\n picker: prefix,\r\n opened: prefix + '--opened',\r\n focused: prefix + '--focused',\r\n\r\n input: prefix + '__input',\r\n active: prefix + '__input--active',\r\n target: prefix + '__input--target',\r\n\r\n holder: prefix + '__holder',\r\n\r\n frame: prefix + '__frame',\r\n wrap: prefix + '__wrap',\r\n\r\n box: prefix + '__box'\r\n }\r\n } //PickerConstructor.klasses\r\n\r\n\r\n\r\n /**\r\n * Check if the default theme is being used.\r\n */\r\n function isUsingDefaultTheme(element) {\r\n\r\n var theme,\r\n prop = 'position'\r\n\r\n // For IE.\r\n if (element.currentStyle) {\r\n theme = element.currentStyle[prop]\r\n }\r\n\r\n // For normal browsers.\r\n else if (window.getComputedStyle) {\r\n theme = getComputedStyle(element)[prop]\r\n }\r\n\r\n return theme == 'fixed'\r\n }\r\n\r\n\r\n\r\n /**\r\n * Get the width of the browser’s scrollbar.\r\n * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js\r\n */\r\n function getScrollbarWidth() {\r\n\r\n if ($html.height() <= $window.height()) {\r\n return 0\r\n }\r\n\r\n var $outer = $('').\r\n appendTo('body')\r\n\r\n // Get the width without scrollbars.\r\n var widthWithoutScroll = $outer[0].offsetWidth\r\n\r\n // Force adding scrollbars.\r\n $outer.css('overflow', 'scroll')\r\n\r\n // Add the inner div.\r\n var $inner = $('').appendTo($outer)\r\n\r\n // Get the width with scrollbars.\r\n var widthWithScroll = $inner[0].offsetWidth\r\n\r\n // Remove the divs.\r\n $outer.remove()\r\n\r\n // Return the difference between the widths.\r\n return widthWithoutScroll - widthWithScroll\r\n }\r\n\r\n\r\n\r\n /**\r\n * PickerConstructor helper methods.\r\n */\r\n PickerConstructor._ = {\r\n\r\n /**\r\n * Create a group of nodes. Expects:\r\n * `\r\n {\r\n min: {Integer},\r\n max: {Integer},\r\n i: {Integer},\r\n node: {String},\r\n item: {Function}\r\n }\r\n * `\r\n */\r\n group: function (groupObject) {\r\n\r\n var\r\n // Scope for the looped object\r\n loopObjectScope,\r\n\r\n // Create the nodes list\r\n nodesList = '',\r\n\r\n // The counter starts from the `min`\r\n counter = PickerConstructor._.trigger(groupObject.min, groupObject)\r\n\r\n\r\n // Loop from the `min` to `max`, incrementing by `i`\r\n for (; counter <= PickerConstructor._.trigger(groupObject.max, groupObject, [counter]) ; counter += groupObject.i) {\r\n\r\n // Trigger the `item` function within scope of the object\r\n loopObjectScope = PickerConstructor._.trigger(groupObject.item, groupObject, [counter])\r\n\r\n // Splice the subgroup and create nodes out of the sub nodes\r\n nodesList += PickerConstructor._.node(\r\n groupObject.node,\r\n loopObjectScope[0], // the node\r\n loopObjectScope[1], // the classes\r\n loopObjectScope[2] // the attributes\r\n )\r\n }\r\n\r\n // Return the list of nodes\r\n return nodesList\r\n }, //group\r\n\r\n\r\n /**\r\n * Create a dom node string\r\n */\r\n node: function (wrapper, item, klass, attribute) {\r\n\r\n // If the item is false-y, just return an empty string\r\n if (!item) return ''\r\n\r\n // If the item is an array, do a join\r\n item = $.isArray(item) ? item.join('') : item\r\n\r\n // Check for the class\r\n klass = klass ? ' class=\"' + klass + '\"' : ''\r\n\r\n // Check for any attributes\r\n attribute = attribute ? ' ' + attribute : ''\r\n\r\n // Return the wrapped item\r\n return '<' + wrapper + klass + attribute + '>' + item + '' + wrapper + '>'\r\n }, //node\r\n\r\n\r\n /**\r\n * Lead numbers below 10 with a zero.\r\n */\r\n lead: function (number) {\r\n return (number < 10 ? '0' : '') + number\r\n },\r\n\r\n\r\n /**\r\n * Trigger a function otherwise return the value.\r\n */\r\n trigger: function (callback, scope, args) {\r\n return typeof callback == 'function' ? callback.apply(scope, args || []) : callback\r\n },\r\n\r\n\r\n /**\r\n * If the second character is a digit, length is 2 otherwise 1.\r\n */\r\n digits: function (string) {\r\n return (/\\d/).test(string[1]) ? 2 : 1\r\n },\r\n\r\n\r\n /**\r\n * Tell if something is a date object.\r\n */\r\n isDate: function (value) {\r\n return {}.toString.call(value).indexOf('Date') > -1 && this.isInteger(value.getDate())\r\n },\r\n\r\n\r\n /**\r\n * Tell if something is an integer.\r\n */\r\n isInteger: function (value) {\r\n return {}.toString.call(value).indexOf('Number') > -1 && value % 1 === 0\r\n },\r\n\r\n\r\n /**\r\n * Create ARIA attribute strings.\r\n */\r\n ariaAttr: ariaAttr\r\n } //PickerConstructor._\r\n\r\n\r\n\r\n /**\r\n * Extend the picker with a component and defaults.\r\n */\r\n PickerConstructor.extend = function (name, Component) {\r\n\r\n // Extend jQuery.\r\n $.fn[name] = function (options, action) {\r\n\r\n // Grab the component data.\r\n var componentData = this.data(name)\r\n\r\n // If the picker is requested, return the data object.\r\n if (options == 'picker') {\r\n return componentData\r\n }\r\n\r\n // If the component data exists and `options` is a string, carry out the action.\r\n if (componentData && typeof options == 'string') {\r\n return PickerConstructor._.trigger(componentData[options], componentData, [action])\r\n }\r\n\r\n // Otherwise go through each matched element and if the component\r\n // doesn’t exist, create a new picker using `this` element\r\n // and merging the defaults and options with a deep copy.\r\n return this.each(function () {\r\n var $this = $(this)\r\n if (!$this.data(name)) {\r\n new PickerConstructor(this, name, Component, options)\r\n }\r\n })\r\n }\r\n\r\n // Set the defaults.\r\n $.fn[name].defaults = Component.defaults\r\n } //PickerConstructor.extend\r\n\r\n\r\n\r\n function aria(element, attribute, value) {\r\n if ($.isPlainObject(attribute)) {\r\n for (var key in attribute) {\r\n ariaSet(element, key, attribute[key])\r\n }\r\n }\r\n else {\r\n ariaSet(element, attribute, value)\r\n }\r\n }\r\n function ariaSet(element, attribute, value) {\r\n element.setAttribute(\r\n (attribute == 'role' ? '' : 'aria-') + attribute,\r\n value\r\n )\r\n }\r\n function ariaAttr(attribute, data) {\r\n if (!$.isPlainObject(attribute)) {\r\n attribute = { attribute: data }\r\n }\r\n data = ''\r\n for (var key in attribute) {\r\n var attr = (key == 'role' ? '' : 'aria-') + key,\r\n attrVal = attribute[key]\r\n data += attrVal == null ? '' : attr + '=\"' + attribute[key] + '\"'\r\n }\r\n return data\r\n }\r\n\r\n // IE8 bug throws an error for activeElements within iframes.\r\n function getActiveElement() {\r\n try {\r\n return document.activeElement\r\n } catch (err) { }\r\n }\r\n\r\n\r\n\r\n // Expose the picker constructor.\r\n return PickerConstructor\r\n\r\n\r\n}));\r\n\r\n\r\n\r\n","/*!\n * Date picker for pickadate.js v3.5.5\n * http://amsul.github.io/pickadate.js/date.htm\n */\n\n(function (factory) {\n\n // AMD.\n if (typeof define == 'function' && define.amd)\n define(['picker', 'jquery'], factory)\n\n // Node.js/browserify.\n else if (typeof exports == 'object')\n module.exports = factory(require('./picker.js'), require('jquery'))\n\n // Browser globals.\n else factory(Picker, jQuery)\r\n\n}(function (Picker, $) {\n\n\n /**\n * Globals and constants\n */\n var DAYS_IN_WEEK = 7,\n WEEKS_IN_CALENDAR = 6,\n _ = Picker._\n\n\n\n /**\n * The date picker constructor\n */\n function DatePicker(picker, settings) {\r\n\n var calendar = this,\n element = picker.$node[0],\n elementValue = element.value,\n elementDataValue = picker.$node.data('value'),\n valueString = elementDataValue || elementValue,\n formatString = elementDataValue ? settings.formatSubmit : settings.format,\n isRTL = function () {\r\n\n return element.currentStyle ?\n\n // For IE.\n element.currentStyle.direction == 'rtl' :\n\n // For normal browsers.\n getComputedStyle(picker.$root[0]).direction == 'rtl'\r\n }\n\n calendar.settings = settings\n calendar.$node = picker.$node\n\n // The queue of methods that will be used to build item objects.\n calendar.queue = {\r\n min: 'measure create',\n max: 'measure create',\n now: 'now create',\n select: 'parse create validate',\n highlight: 'parse navigate create validate',\n view: 'parse create validate viewset',\n disable: 'deactivate',\n enable: 'activate'\r\n }\n\n // The component's item object.\n calendar.item = {}\n\n calendar.item.clear = null\n calendar.item.disable = (settings.disable || []).slice(0)\n calendar.item.enable = -(function (collectionDisabled) {\r\n return collectionDisabled[0] === true ? collectionDisabled.shift() : -1\r\n })(calendar.item.disable)\n\n calendar.\n set('min', settings.min).\n set('max', settings.max).\n set('now')\n\n // When there’s a value, set the `select`, which in turn\n // also sets the `highlight` and `view`.\n if (valueString) {\r\n calendar.set('select', valueString, {\r\n format: formatString,\n defaultValue: true\r\n })\r\n }\n\n // If there’s no value, default to highlighting “today”.\n else {\r\n calendar.\n set('select', null).\n set('highlight', calendar.item.now)\r\n }\n\n\n // The keycode to movement mapping.\n calendar.key = {\r\n 40: 7, // Down\n 38: -7, // Up\n 39: function () { return isRTL() ? -1 : 1 }, // Right\n 37: function () { return isRTL() ? 1 : -1 }, // Left\n go: function (timeChange) {\r\n var highlightedObject = calendar.item.highlight,\n targetDate = new Date(highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange)\n calendar.set(\n 'highlight',\n targetDate,\n { interval: timeChange }\n )\n this.render()\r\n }\r\n }\n\n\n // Bind some picker events.\n picker.\n on('render', function () {\r\n picker.$root.find('.' + settings.klass.selectMonth).on('change', function () {\r\n var value = this.value\n if (value) {\r\n picker.set('highlight', [picker.get('view').year, value, picker.get('highlight').date])\n picker.$root.find('.' + settings.klass.selectMonth).trigger('focus')\r\n }\r\n })\n picker.$root.find('.' + settings.klass.selectYear).on('change', function () {\r\n var value = this.value\n if (value) {\r\n picker.set('highlight', [value, picker.get('view').month, picker.get('highlight').date])\n picker.$root.find('.' + settings.klass.selectYear).trigger('focus')\r\n }\r\n })\r\n }, 1).\n on('open', function () {\r\n var includeToday = ''\n if (calendar.disabled(calendar.get('now'))) {\r\n includeToday = ':not(.' + settings.klass.buttonToday + ')'\r\n }\n picker.$root.find('button' + includeToday + ', select').attr('disabled', false)\r\n }, 1).\n on('close', function () {\r\n picker.$root.find('button, select').attr('disabled', true)\r\n }, 1)\r\n\n } //DatePicker\n\n\n /**\n * Set a datepicker item object.\n */\n DatePicker.prototype.set = function (type, value, options) {\r\n\n var calendar = this,\n calendarItem = calendar.item\n\n // If the value is `null` just set it immediately.\n if (value === null) {\r\n if (type == 'clear') type = 'select'\n calendarItem[type] = value\n return calendar\r\n }\n\n // Otherwise go through the queue of methods, and invoke the functions.\n // Update this as the time unit, and set the final value as this item.\n // * In the case of `enable`, keep the queue but set `disable` instead.\n // And in the case of `flip`, keep the queue but set `enable` instead.\n calendarItem[(type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type)] = calendar.queue[type].split(' ').map(function (method) {\r\n value = calendar[method](type, value, options)\n return value\r\n }).pop()\n\n // Check if we need to cascade through more updates.\n if (type == 'select') {\r\n calendar.set('highlight', calendarItem.select, options)\r\n }\n else if (type == 'highlight') {\r\n calendar.set('view', calendarItem.highlight, options)\r\n }\n else if (type.match(/^(flip|min|max|disable|enable)$/)) {\r\n if (calendarItem.select && calendar.disabled(calendarItem.select)) {\r\n calendar.set('select', calendarItem.select, options)\r\n }\n if (calendarItem.highlight && calendar.disabled(calendarItem.highlight)) {\r\n calendar.set('highlight', calendarItem.highlight, options)\r\n }\r\n }\n\n return calendar\r\n } //DatePicker.prototype.set\n\n\n /**\n * Get a datepicker item object.\n */\n DatePicker.prototype.get = function (type) {\r\n return this.item[type]\r\n } //DatePicker.prototype.get\n\n\n /**\n * Create a picker date object.\n */\n DatePicker.prototype.create = function (type, value, options) {\r\n\n var isInfiniteValue,\n calendar = this\n\n // If there’s no value, use the type as the value.\n value = value === undefined ? type : value\n\n\n // If it’s infinity, update the value.\n if (value == -Infinity || value == Infinity) {\r\n isInfiniteValue = value\r\n }\n\n // If it’s an object, use the native date object.\n else if ($.isPlainObject(value) && _.isInteger(value.pick)) {\r\n value = value.obj\r\n }\n\n // If it’s an array, convert it into a date and make sure\n // that it’s a valid date – otherwise default to today.\n else if ($.isArray(value)) {\r\n value = new Date(value[0], value[1], value[2])\n value = _.isDate(value) ? value : calendar.create().obj\r\n }\n\n // If it’s a number or date object, make a normalized date.\n else if (_.isInteger(value) || _.isDate(value)) {\r\n value = calendar.normalize(new Date(value), options)\r\n }\n\n // If it’s a literal true or any other case, set it to now.\n else /*if ( value === true )*/ {\r\n value = calendar.now(type, value, options)\r\n }\n\n // Return the compiled object.\n return {\r\n year: isInfiniteValue || value.getFullYear(),\n month: isInfiniteValue || value.getMonth(),\n date: isInfiniteValue || value.getDate(),\n day: isInfiniteValue || value.getDay(),\n obj: isInfiniteValue || value,\n pick: isInfiniteValue || value.getTime()\r\n }\r\n } //DatePicker.prototype.create\n\n\n /**\n * Create a range limit object using an array, date object,\n * literal “true”, or integer relative to another time.\n */\n DatePicker.prototype.createRange = function (from, to) {\r\n\n var calendar = this,\n createDate = function (date) {\r\n if (date === true || $.isArray(date) || _.isDate(date)) {\r\n return calendar.create(date)\r\n }\n return date\r\n }\n\n // Create objects if possible.\n if (!_.isInteger(from)) {\r\n from = createDate(from)\r\n }\n if (!_.isInteger(to)) {\r\n to = createDate(to)\r\n }\n\n // Create relative dates.\n if (_.isInteger(from) && $.isPlainObject(to)) {\r\n from = [to.year, to.month, to.date + from];\r\n }\n else if (_.isInteger(to) && $.isPlainObject(from)) {\r\n to = [from.year, from.month, from.date + to];\r\n }\n\n return {\r\n from: createDate(from),\n to: createDate(to)\r\n }\r\n } //DatePicker.prototype.createRange\n\n\n /**\n * Check if a date unit falls within a date range object.\n */\n DatePicker.prototype.withinRange = function (range, dateUnit) {\r\n range = this.createRange(range.from, range.to)\n return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick\r\n }\n\n\n /**\n * Check if two date range objects overlap.\n */\n DatePicker.prototype.overlapRanges = function (one, two) {\r\n\n var calendar = this\n\n // Convert the ranges into comparable dates.\n one = calendar.createRange(one.from, one.to)\n two = calendar.createRange(two.from, two.to)\n\n return calendar.withinRange(one, two.from) || calendar.withinRange(one, two.to) ||\n calendar.withinRange(two, one.from) || calendar.withinRange(two, one.to)\r\n }\n\n\n /**\n * Get the date today.\n */\n DatePicker.prototype.now = function (type, value, options) {\r\n value = new Date()\n if (options && options.rel) {\r\n value.setDate(value.getDate() + options.rel)\r\n }\n return this.normalize(value, options)\r\n }\n\n\n /**\n * Navigate to next/prev month.\n */\n DatePicker.prototype.navigate = function (type, value, options) {\r\n\n var targetDateObject,\n targetYear,\n targetMonth,\n targetDate,\n isTargetArray = $.isArray(value),\n isTargetObject = $.isPlainObject(value),\n viewsetObject = this.item.view/*,\n safety = 100*/\n\n\n if (isTargetArray || isTargetObject) {\r\n\n if (isTargetObject) {\r\n targetYear = value.year\n targetMonth = value.month\n targetDate = value.date\r\n }\n else {\r\n targetYear = +value[0]\n targetMonth = +value[1]\n targetDate = +value[2]\r\n }\n\n // If we’re navigating months but the view is in a different\n // month, navigate to the view’s year and month.\n if (options && options.nav && viewsetObject && viewsetObject.month !== targetMonth) {\r\n targetYear = viewsetObject.year\n targetMonth = viewsetObject.month\r\n }\n\n // Figure out the expected target year and month.\n targetDateObject = new Date(targetYear, targetMonth + (options && options.nav ? options.nav : 0), 1)\n targetYear = targetDateObject.getFullYear()\n targetMonth = targetDateObject.getMonth()\n\n // If the month we’re going to doesn’t have enough days,\n // keep decreasing the date until we reach the month’s last date.\n while ( /*safety &&*/ new Date(targetYear, targetMonth, targetDate).getMonth() !== targetMonth) {\r\n targetDate -= 1\n /*safety -= 1\n if ( !safety ) {\n throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.'\n }*/\r\n }\n\n value = [targetYear, targetMonth, targetDate]\r\n }\n\n return value\r\n } //DatePicker.prototype.navigate\n\n\n /**\n * Normalize a date by setting the hours to midnight.\n */\n DatePicker.prototype.normalize = function (value/*, options*/) {\r\n value.setHours(0, 0, 0, 0)\n return value\r\n }\n\n\n /**\n * Measure the range of dates.\n */\n DatePicker.prototype.measure = function (type, value/*, options*/) {\r\n\n var calendar = this\n\n // If it’s anything false-y, remove the limits.\n if (!value) {\r\n value = type == 'min' ? -Infinity : Infinity\r\n }\n\n // If it’s a string, parse it.\n else if (typeof value == 'string') {\r\n value = calendar.parse(type, value)\r\n }\n\n // If it's an integer, get a date relative to today.\n else if (_.isInteger(value)) {\r\n value = calendar.now(type, value, { rel: value })\r\n }\n\n return value\r\n } ///DatePicker.prototype.measure\n\n\n /**\n * Create a viewset object based on navigation.\n */\n DatePicker.prototype.viewset = function (type, dateObject/*, options*/) {\r\n return this.create([dateObject.year, dateObject.month, 1])\r\n }\n\n\n /**\n * Validate a date as enabled and shift if needed.\n */\n DatePicker.prototype.validate = function (type, dateObject, options) {\r\n\n var calendar = this,\n\n // Keep a reference to the original date.\n originalDateObject = dateObject,\n\n // Make sure we have an interval.\n interval = options && options.interval ? options.interval : 1,\n\n // Check if the calendar enabled dates are inverted.\n isFlippedBase = calendar.item.enable === -1,\n\n // Check if we have any enabled dates after/before now.\n hasEnabledBeforeTarget, hasEnabledAfterTarget,\n\n // The min & max limits.\n minLimitObject = calendar.item.min,\n maxLimitObject = calendar.item.max,\n\n // Check if we’ve reached the limit during shifting.\n reachedMin, reachedMax,\n\n // Check if the calendar is inverted and at least one weekday is enabled.\n hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter(function (value) {\n\n // If there’s a date, check where it is relative to the target.\n if ($.isArray(value)) {\r\n var dateTime = calendar.create(value).pick\n if (dateTime < dateObject.pick) hasEnabledBeforeTarget = true\n else if (dateTime > dateObject.pick) hasEnabledAfterTarget = true\r\n }\n\n // Return only integers for enabled weekdays.\n return _.isInteger(value)\r\n }).length/*,\n\n safety = 100*/\n\n\n\n // Cases to validate for:\n // [1] Not inverted and date disabled.\n // [2] Inverted and some dates enabled.\n // [3] Not inverted and out of range.\n //\n // Cases to **not** validate for:\n // • Navigating months.\n // • Not inverted and date enabled.\n // • Inverted and all dates disabled.\n // • ..and anything else.\n if (!options || (!options.nav && !options.defaultValue)) if (\n /* 1 */ (!isFlippedBase && calendar.disabled(dateObject)) ||\n /* 2 */ (isFlippedBase && calendar.disabled(dateObject) && (hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget)) ||\n /* 3 */ (!isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick))\n ) {\n\n\n // When inverted, flip the direction if there aren’t any enabled weekdays\n // and there are no enabled dates in the direction of the interval.\n if (isFlippedBase && !hasEnabledWeekdays && ((!hasEnabledAfterTarget && interval > 0) || (!hasEnabledBeforeTarget && interval < 0))) {\r\n interval *= -1\r\n }\n\n\n // Keep looping until we reach an enabled date.\n while ( /*safety &&*/ calendar.disabled(dateObject)) {\n\n /*safety -= 1\n if ( !safety ) {\n throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.'\n }*/\n\n\n // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval.\n if (Math.abs(interval) > 1 && (dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month)) {\r\n dateObject = originalDateObject\n interval = interval > 0 ? 1 : -1\r\n }\n\n\n // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit.\n if (dateObject.pick <= minLimitObject.pick) {\r\n reachedMin = true\n interval = 1\n dateObject = calendar.create([\n minLimitObject.year,\n minLimitObject.month,\n minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1)\n ])\r\n }\n else if (dateObject.pick >= maxLimitObject.pick) {\r\n reachedMax = true\n interval = -1\n dateObject = calendar.create([\n maxLimitObject.year,\n maxLimitObject.month,\n maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1)\n ])\r\n }\n\n\n // If we’ve reached both limits, just break out of the loop.\n if (reachedMin && reachedMax) {\r\n break\r\n }\n\n\n // Finally, create the shifted date using the interval and keep looping.\n dateObject = calendar.create([dateObject.year, dateObject.month, dateObject.date + interval])\r\n }\r\n\n } //endif\n\n\n // Return the date object settled on.\n return dateObject\r\n } //DatePicker.prototype.validate\n\n\n /**\n * Check if a date is disabled.\n */\n DatePicker.prototype.disabled = function (dateToVerify) {\r\n\n var\n calendar = this,\n\n // Filter through the disabled dates to check if this is one.\n isDisabledMatch = calendar.item.disable.filter(function (dateToDisable) {\n\n // If the date is a number, match the weekday with 0index and `firstDay` check.\n if (_.isInteger(dateToDisable)) {\r\n return dateToVerify.day === (calendar.settings.firstDay ? dateToDisable : dateToDisable - 1) % 7\r\n }\n\n // If it’s an array or a native JS date, create and match the exact date.\n if ($.isArray(dateToDisable) || _.isDate(dateToDisable)) {\r\n return dateToVerify.pick === calendar.create(dateToDisable).pick\r\n }\n\n // If it’s an object, match a date within the “from” and “to” range.\n if ($.isPlainObject(dateToDisable)) {\r\n return calendar.withinRange(dateToDisable, dateToVerify)\r\n }\r\n })\n\n // If this date matches a disabled date, confirm it’s not inverted.\n isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function (dateToDisable) {\r\n return $.isArray(dateToDisable) && dateToDisable[3] == 'inverted' ||\n $.isPlainObject(dateToDisable) && dateToDisable.inverted\r\n }).length\n\n // Check the calendar “enabled” flag and respectively flip the\n // disabled state. Then also check if it’s beyond the min/max limits.\n return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch ||\n dateToVerify.pick < calendar.item.min.pick ||\n dateToVerify.pick > calendar.item.max.pick\r\n\n } //DatePicker.prototype.disabled\n\n\n /**\n * Parse a string into a usable type.\n */\n DatePicker.prototype.parse = function (type, value, options) {\r\n\n var calendar = this,\n parsingObject = {}\n\n // If it’s already parsed, we’re good.\n if (!value || typeof value != 'string') {\r\n return value\r\n }\n\n // We need a `.format` to parse the value with.\n if (!(options && options.format)) {\r\n options = options || {}\n options.format = calendar.settings.format\r\n }\n\n // Convert the format into an array and then map through it.\n calendar.formats.toArray(options.format).map(function (label) {\r\n\n var\n // Grab the formatting label.\n formattingLabel = calendar.formats[label],\n\n // The format length is from the formatting label function or the\n // label length without the escaping exclamation (!) mark.\n formatLength = formattingLabel ? _.trigger(formattingLabel, calendar, [value, parsingObject]) : label.replace(/^!/, '').length\n\n // If there's a format label, split the value up to the format length.\n // Then add it to the parsing object with appropriate label.\n if (formattingLabel) {\r\n parsingObject[label] = value.substr(0, formatLength)\r\n }\n\n // Update the value as the substring from format length to end.\n value = value.substr(formatLength)\r\n })\n\n // Compensate for month 0index.\n return [\n parsingObject.yyyy || parsingObject.yy,\n +(parsingObject.mm || parsingObject.m) - 1,\n parsingObject.dd || parsingObject.d\n ]\r\n } //DatePicker.prototype.parse\n\n\n /**\n * Various formats to display the object in.\n */\n DatePicker.prototype.formats = (function () {\n\n // Return the length of the first word in a collection.\n function getWordLengthFromCollection(string, collection, dateObject) {\n\n // Grab the first word from the string.\n // Regex pattern from http://stackoverflow.com/q/150033\n var word = string.match(/[^\\x00-\\x7F]+|\\w+/)[0]\n\n // If there's no month index, add it to the date object\n if (!dateObject.mm && !dateObject.m) {\r\n dateObject.m = collection.indexOf(word) + 1\r\n }\n\n // Return the length of the word.\n return word.length\r\n }\n\n // Get the length of the first word in a string.\n function getFirstWordLength(string) {\r\n return string.match(/\\w+/)[0].length\r\n }\n\n return {\r\n\n d: function (string, dateObject) {\n\n // If there's string, then get the digits length.\n // Otherwise return the selected date.\n return string ? _.digits(string) : dateObject.date\r\n },\n dd: function (string, dateObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise return the selected date with a leading zero.\n return string ? 2 : _.lead(dateObject.date)\r\n },\n ddd: function (string, dateObject) {\n\n // If there's a string, then get the length of the first word.\n // Otherwise return the short selected weekday.\n return string ? getFirstWordLength(string) : this.settings.weekdaysShort[dateObject.day]\r\n },\n dddd: function (string, dateObject) {\n\n // If there's a string, then get the length of the first word.\n // Otherwise return the full selected weekday.\n return string ? getFirstWordLength(string) : this.settings.weekdaysFull[dateObject.day]\r\n },\n m: function (string, dateObject) {\n\n // If there's a string, then get the length of the digits\n // Otherwise return the selected month with 0index compensation.\n return string ? _.digits(string) : dateObject.month + 1\r\n },\n mm: function (string, dateObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise return the selected month with 0index and leading zero.\n return string ? 2 : _.lead(dateObject.month + 1)\r\n },\n mmm: function (string, dateObject) {\r\n\n var collection = this.settings.monthsShort\n\n // If there's a string, get length of the relevant month from the short\n // months collection. Otherwise return the selected month from that collection.\n return string ? getWordLengthFromCollection(string, collection, dateObject) : collection[dateObject.month]\r\n },\n mmmm: function (string, dateObject) {\r\n\n var collection = this.settings.monthsFull\n\n // If there's a string, get length of the relevant month from the full\n // months collection. Otherwise return the selected month from that collection.\n return string ? getWordLengthFromCollection(string, collection, dateObject) : collection[dateObject.month]\r\n },\n yy: function (string, dateObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise return the selected year by slicing out the first 2 digits.\n return string ? 2 : ('' + dateObject.year).slice(2)\r\n },\n yyyy: function (string, dateObject) {\n\n // If there's a string, then the length is always 4.\n // Otherwise return the selected year.\n return string ? 4 : dateObject.year\r\n },\n\n // Create an array by splitting the formatting string passed.\n toArray: function (formatString) { return formatString.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g) },\n\n // Format an object into a string using the formatting options.\n toString: function (formatString, itemObject) {\r\n var calendar = this\n return calendar.formats.toArray(formatString).map(function (label) {\r\n return _.trigger(calendar.formats[label], calendar, [0, itemObject]) || label.replace(/^!/, '')\r\n }).join('')\r\n }\r\n }\r\n })() //DatePicker.prototype.formats\n\n\n\n\n /**\n * Check if two date units are the exact.\n */\n DatePicker.prototype.isDateExact = function (one, two) {\r\n\n var calendar = this\n\n // When we’re working with weekdays, do a direct comparison.\n if (\n (_.isInteger(one) && _.isInteger(two)) ||\n (typeof one == 'boolean' && typeof two == 'boolean')\n ) {\r\n return one === two\r\n }\n\n // When we’re working with date representations, compare the “pick” value.\n if (\n (_.isDate(one) || $.isArray(one)) &&\n (_.isDate(two) || $.isArray(two))\n ) {\r\n return calendar.create(one).pick === calendar.create(two).pick\r\n }\n\n // When we’re working with range objects, compare the “from” and “to”.\n if ($.isPlainObject(one) && $.isPlainObject(two)) {\r\n return calendar.isDateExact(one.from, two.from) && calendar.isDateExact(one.to, two.to)\r\n }\n\n return false\r\n }\n\n\n /**\n * Check if two date units overlap.\n */\n DatePicker.prototype.isDateOverlap = function (one, two) {\r\n\n var calendar = this,\n firstDay = calendar.settings.firstDay ? 1 : 0\n\n // When we’re working with a weekday index, compare the days.\n if (_.isInteger(one) && (_.isDate(two) || $.isArray(two))) {\r\n one = one % 7 + firstDay\n return one === calendar.create(two).day + 1\r\n }\n if (_.isInteger(two) && (_.isDate(one) || $.isArray(one))) {\r\n two = two % 7 + firstDay\n return two === calendar.create(one).day + 1\r\n }\n\n // When we’re working with range objects, check if the ranges overlap.\n if ($.isPlainObject(one) && $.isPlainObject(two)) {\r\n return calendar.overlapRanges(one, two)\r\n }\n\n return false\r\n }\n\n\n /**\n * Flip the “enabled” state.\n */\n DatePicker.prototype.flipEnable = function (val) {\r\n var itemObject = this.item\n itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1)\r\n }\n\n\n /**\n * Mark a collection of dates as “disabled”.\n */\n DatePicker.prototype.deactivate = function (type, datesToDisable) {\r\n\n var calendar = this,\n disabledItems = calendar.item.disable.slice(0)\n\n\n // If we’re flipping, that’s all we need to do.\n if (datesToDisable == 'flip') {\r\n calendar.flipEnable()\r\n }\n\n else if (datesToDisable === false) {\r\n calendar.flipEnable(1)\n disabledItems = []\r\n }\n\n else if (datesToDisable === true) {\r\n calendar.flipEnable(-1)\n disabledItems = []\r\n }\n\n // Otherwise go through the dates to disable.\n else {\r\n\n datesToDisable.map(function (unitToDisable) {\r\n\n var matchFound\n\n // When we have disabled items, check for matches.\n // If something is matched, immediately break out.\n for (var index = 0; index < disabledItems.length; index += 1) {\r\n if (calendar.isDateExact(unitToDisable, disabledItems[index])) {\r\n matchFound = true\n break\r\n }\r\n }\n\n // If nothing was found, add the validated unit to the collection.\n if (!matchFound) {\r\n if (\n _.isInteger(unitToDisable) ||\n _.isDate(unitToDisable) ||\n $.isArray(unitToDisable) ||\n ($.isPlainObject(unitToDisable) && unitToDisable.from && unitToDisable.to)\n ) {\r\n disabledItems.push(unitToDisable)\r\n }\r\n }\r\n })\r\n }\n\n // Return the updated collection.\n return disabledItems\r\n } //DatePicker.prototype.deactivate\n\n\n /**\n * Mark a collection of dates as “enabled”.\n */\n DatePicker.prototype.activate = function (type, datesToEnable) {\r\n\n var calendar = this,\n disabledItems = calendar.item.disable,\n disabledItemsCount = disabledItems.length\n\n // If we’re flipping, that’s all we need to do.\n if (datesToEnable == 'flip') {\r\n calendar.flipEnable()\r\n }\n\n else if (datesToEnable === true) {\r\n calendar.flipEnable(1)\n disabledItems = []\r\n }\n\n else if (datesToEnable === false) {\r\n calendar.flipEnable(-1)\n disabledItems = []\r\n }\n\n // Otherwise go through the disabled dates.\n else {\r\n\n datesToEnable.map(function (unitToEnable) {\r\n\n var matchFound,\n disabledUnit,\n index,\n isExactRange\n\n // Go through the disabled items and try to find a match.\n for (index = 0; index < disabledItemsCount; index += 1) {\r\n\n disabledUnit = disabledItems[index]\n\n // When an exact match is found, remove it from the collection.\n if (calendar.isDateExact(disabledUnit, unitToEnable)) {\r\n matchFound = disabledItems[index] = null\n isExactRange = true\n break\r\n }\n\n // When an overlapped match is found, add the “inverted” state to it.\n else if (calendar.isDateOverlap(disabledUnit, unitToEnable)) {\r\n if ($.isPlainObject(unitToEnable)) {\r\n unitToEnable.inverted = true\n matchFound = unitToEnable\r\n }\n else if ($.isArray(unitToEnable)) {\r\n matchFound = unitToEnable\n if (!matchFound[3]) matchFound.push('inverted')\r\n }\n else if (_.isDate(unitToEnable)) {\r\n matchFound = [unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted']\r\n }\n break\r\n }\r\n }\n\n // If a match was found, remove a previous duplicate entry.\n if (matchFound) for (index = 0; index < disabledItemsCount; index += 1) {\r\n if (calendar.isDateExact(disabledItems[index], unitToEnable)) {\r\n disabledItems[index] = null\n break\r\n }\r\n }\n\n // In the event that we’re dealing with an exact range of dates,\n // make sure there are no “inverted” dates because of it.\n if (isExactRange) for (index = 0; index < disabledItemsCount; index += 1) {\r\n if (calendar.isDateOverlap(disabledItems[index], unitToEnable)) {\r\n disabledItems[index] = null\n break\r\n }\r\n }\n\n // If something is still matched, add it into the collection.\n if (matchFound) {\r\n disabledItems.push(matchFound)\r\n }\r\n })\r\n }\n\n // Return the updated collection.\n return disabledItems.filter(function (val) { return val != null })\r\n } //DatePicker.prototype.activate\n\n\n /**\n * Create a string for the nodes in the picker.\n */\n DatePicker.prototype.nodes = function (isOpen) {\r\n\n var\n calendar = this,\n settings = calendar.settings,\n calendarItem = calendar.item,\n nowObject = calendarItem.now,\n selectedObject = calendarItem.select,\n highlightedObject = calendarItem.highlight,\n viewsetObject = calendarItem.view,\n disabledCollection = calendarItem.disable,\n minLimitObject = calendarItem.min,\n maxLimitObject = calendarItem.max,\n\n\n // Create the calendar table head using a copy of weekday labels collection.\n // * We do a copy so we don't mutate the original array.\n tableHead = (function (collection, fullCollection) {\n\n // If the first day should be Monday, move Sunday to the end.\n if (settings.firstDay) {\r\n collection.push(collection.shift())\n fullCollection.push(fullCollection.shift())\r\n }\n\n // Create and return the table head group.\n return _.node(\n 'thead',\n _.node(\n 'tr',\n _.group({\r\n min: 0,\n max: DAYS_IN_WEEK - 1,\n i: 1,\n node: 'th',\n item: function (counter) {\r\n return [\n collection[counter],\n settings.klass.weekdays,\n 'scope=col title=\"' + fullCollection[counter] + '\"'\n ]\r\n }\r\n })\n )\n ) //endreturn\n })((settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysShort).slice(0), settings.weekdaysFull.slice(0)), //tableHead\n\n\n // Create the nav for next/prev month.\n createMonthNav = function (next) {\n\n // Otherwise, return the created month tag.\n return _.node(\n 'div',\n ' ',\n settings.klass['nav' + (next ? 'Next' : 'Prev')] + (\n\n // If the focused month is outside the range, disabled the button.\n (next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month) ||\n (!next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month) ?\n ' ' + settings.klass.navDisabled : ''\n ),\n 'data-nav=' + (next || -1) + ' ' +\n _.ariaAttr({\r\n role: 'button',\n controls: calendar.$node[0].id + '_table'\r\n }) + ' ' +\n 'title=\"' + (next ? settings.labelMonthNext : settings.labelMonthPrev) + '\"'\n ) //endreturn\n }, //createMonthNav\n\n\n // Create the month label.\n createMonthLabel = function () {\r\n\n var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull\n\n // If there are months to select, add a dropdown menu.\n if (settings.selectMonths) {\r\n\n return _.node('select',\n _.group({\r\n min: 0,\n max: 11,\n i: 1,\n node: 'option',\n item: function (loopedMonth) {\r\n\n return [\n\n // The looped month and no classes.\n monthsCollection[loopedMonth], 0,\n\n // Set the value and selected index.\n 'value=' + loopedMonth +\n (viewsetObject.month == loopedMonth ? ' selected' : '') +\n (\n (\n (viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month) ||\n (viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month)\n ) ?\n ' disabled' : ''\n )\n ]\r\n }\r\n }),\n settings.klass.selectMonth,\n (isOpen ? '' : 'disabled') + ' ' +\n _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +\n 'title=\"' + settings.labelMonthSelect + '\"'\n )\r\n }\n\n // If there's a need for a month selector\n return _.node('div', monthsCollection[viewsetObject.month], settings.klass.month)\r\n }, //createMonthLabel\n\n\n // Create the year label.\n createYearLabel = function () {\r\n\n var focusedYear = viewsetObject.year,\n\n // If years selector is set to a literal \"true\", set it to 5. Otherwise\n // divide in half to get half before and half after focused year.\n numberYears = settings.selectYears === true ? 5 : ~~(settings.selectYears / 2)\n\n // If there are years to select, add a dropdown menu.\n if (numberYears) {\r\n\n var\n minYear = minLimitObject.year,\n maxYear = maxLimitObject.year,\n lowestYear = focusedYear - numberYears,\n highestYear = focusedYear + numberYears\n\n // If the min year is greater than the lowest year, increase the highest year\n // by the difference and set the lowest year to the min year.\n if (minYear > lowestYear) {\r\n highestYear += minYear - lowestYear\n lowestYear = minYear\r\n }\n\n // If the max year is less than the highest year, decrease the lowest year\n // by the lower of the two: available and needed years. Then set the\n // highest year to the max year.\n if (maxYear < highestYear) {\r\n\n var availableYears = lowestYear - minYear,\n neededYears = highestYear - maxYear\n\n lowestYear -= availableYears > neededYears ? neededYears : availableYears\n highestYear = maxYear\r\n }\n\n return _.node('select',\n _.group({\r\n min: lowestYear,\n max: highestYear,\n i: 1,\n node: 'option',\n item: function (loopedYear) {\r\n return [\n\n // The looped year and no classes.\n loopedYear, 0,\n\n // Set the value and selected index.\n 'value=' + loopedYear + (focusedYear == loopedYear ? ' selected' : '')\n ]\r\n }\r\n }),\n settings.klass.selectYear,\n (isOpen ? '' : 'disabled') + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +\n 'title=\"' + settings.labelYearSelect + '\"'\n )\r\n }\n\n // Otherwise just return the year focused\n return _.node('div', focusedYear, settings.klass.year)\r\n } //createYearLabel\n\n\n // Create and return the entire calendar.\n return _.node(\n 'div',\n (settings.selectYears ? createYearLabel() + createMonthLabel() : createMonthLabel() + createYearLabel()) +\n createMonthNav() + createMonthNav(1),\n settings.klass.header\n ) + _.node(\n 'table',\n tableHead +\n _.node(\n 'tbody',\n _.group({\r\n min: 0,\n max: WEEKS_IN_CALENDAR - 1,\n i: 1,\n node: 'tr',\n item: function (rowCounter) {\n\n // If Monday is the first day and the month starts on Sunday, shift the date back a week.\n var shiftDateBy = settings.firstDay && calendar.create([viewsetObject.year, viewsetObject.month, 1]).day === 0 ? -7 : 0\n\n return [\n _.group({\r\n min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index\n max: function () {\r\n return this.min + DAYS_IN_WEEK - 1\r\n },\n i: 1,\n node: 'td',\n item: function (targetDate) {\n\n // Convert the time date from a relative date to a target date.\n targetDate = calendar.create([viewsetObject.year, viewsetObject.month, targetDate + (settings.firstDay ? 1 : 0)])\n\n var isSelected = selectedObject && selectedObject.pick == targetDate.pick,\n isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick,\n isDisabled = disabledCollection && calendar.disabled(targetDate) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick,\n formattedDate = _.trigger(calendar.formats.toString, calendar, [settings.format, targetDate])\n\n return [\n _.node(\n 'div',\n targetDate.date,\n (function (klasses) {\n\n // Add the `infocus` or `outfocus` classes based on month in view.\n klasses.push(viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus)\n\n // Add the `today` class if needed.\n if (nowObject.pick == targetDate.pick) {\r\n klasses.push(settings.klass.now)\r\n }\n\n // Add the `selected` class if something's selected and the time matches.\n if (isSelected) {\r\n klasses.push(settings.klass.selected)\r\n }\n\n // Add the `highlighted` class if something's highlighted and the time matches.\n if (isHighlighted) {\r\n klasses.push(settings.klass.highlighted)\r\n }\n\n // Add the `disabled` class if something's disabled and the object matches.\n if (isDisabled) {\r\n klasses.push(settings.klass.disabled)\r\n }\n\n return klasses.join(' ')\r\n })([settings.klass.day]),\n 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({\r\n role: 'gridcell',\n label: formattedDate,\n selected: isSelected && calendar.$node.val() === formattedDate ? true : null,\n activedescendant: isHighlighted ? true : null,\n disabled: isDisabled ? true : null\r\n })\n ),\n '',\n _.ariaAttr({ role: 'presentation' })\n ] //endreturn\n }\r\n })\n ] //endreturn\n }\r\n })\n ),\n settings.klass.table,\n 'id=\"' + calendar.$node[0].id + '_table' + '\" ' + _.ariaAttr({\r\n role: 'grid',\n controls: calendar.$node[0].id,\n readonly: true\r\n })\n ) +\n\n // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”.\n _.node(\n 'div',\n _.node('button', settings.today, settings.klass.buttonToday,\n 'type=button data-pick=' + nowObject.pick +\n (isOpen && !calendar.disabled(nowObject) ? '' : ' disabled') + ' ' +\n _.ariaAttr({ controls: calendar.$node[0].id })) +\n _.node('button', settings.clear, settings.klass.buttonClear,\n 'type=button data-clear=1' +\n (isOpen ? '' : ' disabled') + ' ' +\n _.ariaAttr({ controls: calendar.$node[0].id })) +\n _.node('button', settings.close, settings.klass.buttonClose,\n 'type=button data-close=true ' +\n (isOpen ? '' : ' disabled') + ' ' +\n _.ariaAttr({ controls: calendar.$node[0].id })),\n settings.klass.footer\n ) //endreturn\n } //DatePicker.prototype.nodes\n\n\n\n\n /**\n * The date picker defaults.\n */\n DatePicker.defaults = (function (prefix) {\r\n\n return {\n\n // The title label to use for the month nav buttons\n labelMonthNext: 'Next month',\n labelMonthPrev: 'Previous month',\n\n // The title label to use for the dropdown selectors\n labelMonthSelect: 'Select a month',\n labelYearSelect: 'Select a year',\n\n // Months and weekdays\n monthsFull: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdaysFull: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\n // Today and clear\n today: 'Today',\n clear: 'Clear',\n close: 'Close',\n\n // Picker close behavior\n closeOnSelect: true,\n closeOnClear: true,\n\n // The format to show on the `input` element\n format: 'd mmmm, yyyy',\n\n // Classes\n klass: {\r\n\n table: prefix + 'table',\n\n header: prefix + 'header',\n\n navPrev: prefix + 'nav--prev',\n navNext: prefix + 'nav--next',\n navDisabled: prefix + 'nav--disabled',\n\n month: prefix + 'month',\n year: prefix + 'year',\n\n selectMonth: prefix + 'select--month',\n selectYear: prefix + 'select--year',\n\n weekdays: prefix + 'weekday',\n\n day: prefix + 'day',\n disabled: prefix + 'day--disabled',\n selected: prefix + 'day--selected',\n highlighted: prefix + 'day--highlighted',\n now: prefix + 'day--today',\n infocus: prefix + 'day--infocus',\n outfocus: prefix + 'day--outfocus',\n\n footer: prefix + 'footer',\n\n buttonClear: prefix + 'button--clear',\n buttonToday: prefix + 'button--today',\n buttonClose: prefix + 'button--close'\r\n }\r\n }\r\n })(Picker.klasses().picker + '__')\n\n\n\n\n\n /**\n * Extend the picker to add the date picker.\n */\n Picker.extend('pickadate', DatePicker)\r\n\n\n}));\n\n\n\n","/*!\n * Time picker for pickadate.js v3.5.5\n * http://amsul.github.io/pickadate.js/time.htm\n */\n\n(function (factory) {\n\n // AMD.\n if (typeof define == 'function' && define.amd)\n define(['picker', 'jquery'], factory)\n\n // Node.js/browserify.\n else if (typeof exports == 'object')\n module.exports = factory(require('./picker.js'), require('jquery'))\n\n // Browser globals.\n else factory(Picker, jQuery)\r\n\n}(function (Picker, $) {\n\n\n /**\n * Globals and constants\n */\n var HOURS_IN_DAY = 24,\n MINUTES_IN_HOUR = 60,\n HOURS_TO_NOON = 12,\n MINUTES_IN_DAY = HOURS_IN_DAY * MINUTES_IN_HOUR,\n _ = Picker._\n\n\n\n /**\n * The time picker constructor\n */\n function TimePicker(picker, settings) {\r\n\n var clock = this,\n elementValue = picker.$node[0].value,\n elementDataValue = picker.$node.data('value'),\n valueString = elementDataValue || elementValue,\n formatString = elementDataValue ? settings.formatSubmit : settings.format\n\n clock.settings = settings\n clock.$node = picker.$node\n\n // The queue of methods that will be used to build item objects.\n clock.queue = {\r\n interval: 'i',\n min: 'measure create',\n max: 'measure create',\n now: 'now create',\n select: 'parse create validate',\n highlight: 'parse create validate',\n view: 'parse create validate',\n disable: 'deactivate',\n enable: 'activate'\r\n }\n\n // The component's item object.\n clock.item = {}\n\n clock.item.clear = null\n clock.item.interval = settings.interval || 30\n clock.item.disable = (settings.disable || []).slice(0)\n clock.item.enable = -(function (collectionDisabled) {\r\n return collectionDisabled[0] === true ? collectionDisabled.shift() : -1\r\n })(clock.item.disable)\n\n clock.\n set('min', settings.min).\n set('max', settings.max).\n set('now')\n\n // When there’s a value, set the `select`, which in turn\n // also sets the `highlight` and `view`.\n if (valueString) {\r\n clock.set('select', valueString, {\r\n format: formatString\r\n })\r\n }\n\n // If there’s no value, default to highlighting “today”.\n else {\r\n clock.\n set('select', null).\n set('highlight', clock.item.now)\r\n }\n\n // The keycode to movement mapping.\n clock.key = {\r\n 40: 1, // Down\n 38: -1, // Up\n 39: 1, // Right\n 37: -1, // Left\n go: function (timeChange) {\r\n clock.set(\n 'highlight',\n clock.item.highlight.pick + timeChange * clock.item.interval,\n { interval: timeChange * clock.item.interval }\n )\n this.render()\r\n }\r\n }\n\n\n // Bind some picker events.\n picker.\n on('render', function () {\r\n var $pickerHolder = picker.$root.children(),\n $viewset = $pickerHolder.find('.' + settings.klass.viewset),\n vendors = function (prop) {\r\n return ['webkit', 'moz', 'ms', 'o', ''].map(function (vendor) {\r\n return (vendor ? '-' + vendor + '-' : '') + prop\r\n })\r\n },\n animations = function ($el, state) {\r\n vendors('transform').map(function (prop) {\r\n $el.css(prop, state)\r\n })\n vendors('transition').map(function (prop) {\r\n $el.css(prop, state)\r\n })\r\n }\n if ($viewset.length) {\r\n animations($pickerHolder, 'none')\n $pickerHolder[0].scrollTop = ~~$viewset.position().top - ($viewset[0].clientHeight * 2)\n animations($pickerHolder, '')\r\n }\r\n }, 1).\n on('open', function () {\r\n picker.$root.find('button').attr('disabled', false)\r\n }, 1).\n on('close', function () {\r\n picker.$root.find('button').attr('disabled', true)\r\n }, 1)\r\n\n } //TimePicker\n\n\n /**\n * Set a timepicker item object.\n */\n TimePicker.prototype.set = function (type, value, options) {\r\n\n var clock = this,\n clockItem = clock.item\n\n // If the value is `null` just set it immediately.\n if (value === null) {\r\n if (type == 'clear') type = 'select'\n clockItem[type] = value\n return clock\r\n }\n\n // Otherwise go through the queue of methods, and invoke the functions.\n // Update this as the time unit, and set the final value as this item.\n // * In the case of `enable`, keep the queue but set `disable` instead.\n // And in the case of `flip`, keep the queue but set `enable` instead.\n clockItem[(type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type)] = clock.queue[type].split(' ').map(function (method) {\r\n value = clock[method](type, value, options)\n return value\r\n }).pop()\n\n // Check if we need to cascade through more updates.\n if (type == 'select') {\r\n clock.set('highlight', clockItem.select, options)\r\n }\n else if (type == 'highlight') {\r\n clock.set('view', clockItem.highlight, options)\r\n }\n else if (type == 'interval') {\r\n clock.\n set('min', clockItem.min, options).\n set('max', clockItem.max, options)\r\n }\n else if (type.match(/^(flip|min|max|disable|enable)$/)) {\r\n if (clockItem.select && clock.disabled(clockItem.select)) {\r\n clock.set('select', value, options)\r\n }\n if (clockItem.highlight && clock.disabled(clockItem.highlight)) {\r\n clock.set('highlight', value, options)\r\n }\n if (type == 'min') {\r\n clock.set('max', clockItem.max, options)\r\n }\r\n }\n\n return clock\r\n } //TimePicker.prototype.set\n\n\n /**\n * Get a timepicker item object.\n */\n TimePicker.prototype.get = function (type) {\r\n return this.item[type]\r\n } //TimePicker.prototype.get\n\n\n /**\n * Create a picker time object.\n */\n TimePicker.prototype.create = function (type, value, options) {\r\n\n var clock = this\n\n // If there’s no value, use the type as the value.\n value = value === undefined ? type : value\n\n // If it’s a date object, convert it into an array.\n if (_.isDate(value)) {\r\n value = [value.getHours(), value.getMinutes()]\r\n }\n\n // If it’s an object, use the “pick” value.\n if ($.isPlainObject(value) && _.isInteger(value.pick)) {\r\n value = value.pick\r\n }\n\n // If it’s an array, convert it into minutes.\n else if ($.isArray(value)) {\r\n value = +value[0] * MINUTES_IN_HOUR + (+value[1])\r\n }\n\n // If no valid value is passed, set it to “now”.\n else if (!_.isInteger(value)) {\r\n value = clock.now(type, value, options)\r\n }\n\n // If we’re setting the max, make sure it’s greater than the min.\n if (type == 'max' && value < clock.item.min.pick) {\r\n value += MINUTES_IN_DAY\r\n }\n\n // If the value doesn’t fall directly on the interval,\n // add one interval to indicate it as “passed”.\n if (type != 'min' && type != 'max' && (value - clock.item.min.pick) % clock.item.interval !== 0) {\r\n value += clock.item.interval\r\n }\n\n // Normalize it into a “reachable” interval.\n value = clock.normalize(type, value, options)\n\n // Return the compiled object.\n return {\n\n // Divide to get hours from minutes.\n hour: ~~(HOURS_IN_DAY + value / MINUTES_IN_HOUR) % HOURS_IN_DAY,\n\n // The remainder is the minutes.\n mins: (MINUTES_IN_HOUR + value % MINUTES_IN_HOUR) % MINUTES_IN_HOUR,\n\n // The time in total minutes.\n time: (MINUTES_IN_DAY + value) % MINUTES_IN_DAY,\n\n // Reference to the “relative” value to pick.\n pick: value % MINUTES_IN_DAY\r\n }\r\n } //TimePicker.prototype.create\n\n\n /**\n * Create a range limit object using an array, date object,\n * literal “true”, or integer relative to another time.\n */\n TimePicker.prototype.createRange = function (from, to) {\r\n\n var clock = this,\n createTime = function (time) {\r\n if (time === true || $.isArray(time) || _.isDate(time)) {\r\n return clock.create(time)\r\n }\n return time\r\n }\n\n // Create objects if possible.\n if (!_.isInteger(from)) {\r\n from = createTime(from)\r\n }\n if (!_.isInteger(to)) {\r\n to = createTime(to)\r\n }\n\n // Create relative times.\n if (_.isInteger(from) && $.isPlainObject(to)) {\r\n from = [to.hour, to.mins + (from * clock.settings.interval)];\r\n }\n else if (_.isInteger(to) && $.isPlainObject(from)) {\r\n to = [from.hour, from.mins + (to * clock.settings.interval)];\r\n }\n\n return {\r\n from: createTime(from),\n to: createTime(to)\r\n }\r\n } //TimePicker.prototype.createRange\n\n\n /**\n * Check if a time unit falls within a time range object.\n */\n TimePicker.prototype.withinRange = function (range, timeUnit) {\r\n range = this.createRange(range.from, range.to)\n return timeUnit.pick >= range.from.pick && timeUnit.pick <= range.to.pick\r\n }\n\n\n /**\n * Check if two time range objects overlap.\n */\n TimePicker.prototype.overlapRanges = function (one, two) {\r\n\n var clock = this\n\n // Convert the ranges into comparable times.\n one = clock.createRange(one.from, one.to)\n two = clock.createRange(two.from, two.to)\n\n return clock.withinRange(one, two.from) || clock.withinRange(one, two.to) ||\n clock.withinRange(two, one.from) || clock.withinRange(two, one.to)\r\n }\n\n\n /**\n * Get the time relative to now.\n */\n TimePicker.prototype.now = function (type, value/*, options*/) {\r\n\n var interval = this.item.interval,\n date = new Date(),\n nowMinutes = date.getHours() * MINUTES_IN_HOUR + date.getMinutes(),\n isValueInteger = _.isInteger(value),\n isBelowInterval\n\n // Make sure “now” falls within the interval range.\n nowMinutes -= nowMinutes % interval\n\n // Check if the difference is less than the interval itself.\n isBelowInterval = value < 0 && interval * value + nowMinutes <= -interval\n\n // Add an interval because the time has “passed”.\n nowMinutes += type == 'min' && isBelowInterval ? 0 : interval\n\n // If the value is a number, adjust by that many intervals.\n if (isValueInteger) {\r\n nowMinutes += interval * (\n isBelowInterval && type != 'max' ?\n value + 1 :\n value\n )\r\n }\n\n // Return the final calculation.\n return nowMinutes\r\n } //TimePicker.prototype.now\n\n\n /**\n * Normalize minutes to be “reachable” based on the min and interval.\n */\n TimePicker.prototype.normalize = function (type, value/*, options*/) {\r\n\n var interval = this.item.interval,\n minTime = this.item.min && this.item.min.pick || 0\n\n // If setting min time, don’t shift anything.\n // Otherwise get the value and min difference and then\n // normalize the difference with the interval.\n value -= type == 'min' ? 0 : (value - minTime) % interval\n\n // Return the adjusted value.\n return value\r\n } //TimePicker.prototype.normalize\n\n\n /**\n * Measure the range of minutes.\n */\n TimePicker.prototype.measure = function (type, value, options) {\r\n\n var clock = this\n\n // If it’s anything false-y, set it to the default.\n if (!value) {\r\n value = type == 'min' ? [0, 0] : [HOURS_IN_DAY - 1, MINUTES_IN_HOUR - 1]\r\n }\n\n // If it’s a string, parse it.\n if (typeof value == 'string') {\r\n value = clock.parse(type, value)\r\n }\n\n // If it’s a literal true, or an integer, make it relative to now.\n else if (value === true || _.isInteger(value)) {\r\n value = clock.now(type, value, options)\r\n }\n\n // If it’s an object already, just normalize it.\n else if ($.isPlainObject(value) && _.isInteger(value.pick)) {\r\n value = clock.normalize(type, value.pick, options)\r\n }\n\n return value\r\n } ///TimePicker.prototype.measure\n\n\n /**\n * Validate an object as enabled.\n */\n TimePicker.prototype.validate = function (type, timeObject, options) {\r\n\n var clock = this,\n interval = options && options.interval ? options.interval : clock.item.interval\n\n // Check if the object is disabled.\n if (clock.disabled(timeObject)) {\n\n // Shift with the interval until we reach an enabled time.\n timeObject = clock.shift(timeObject, interval)\r\n }\n\n // Scope the object into range.\n timeObject = clock.scope(timeObject)\n\n // Do a second check to see if we landed on a disabled min/max.\n // In that case, shift using the opposite interval as before.\n if (clock.disabled(timeObject)) {\r\n timeObject = clock.shift(timeObject, interval * -1)\r\n }\n\n // Return the final object.\n return timeObject\r\n } //TimePicker.prototype.validate\n\n\n /**\n * Check if an object is disabled.\n */\n TimePicker.prototype.disabled = function (timeToVerify) {\r\n\n var clock = this,\n\n // Filter through the disabled times to check if this is one.\n isDisabledMatch = clock.item.disable.filter(function (timeToDisable) {\n\n // If the time is a number, match the hours.\n if (_.isInteger(timeToDisable)) {\r\n return timeToVerify.hour == timeToDisable\r\n }\n\n // If it’s an array, create the object and match the times.\n if ($.isArray(timeToDisable) || _.isDate(timeToDisable)) {\r\n return timeToVerify.pick == clock.create(timeToDisable).pick\r\n }\n\n // If it’s an object, match a time within the “from” and “to” range.\n if ($.isPlainObject(timeToDisable)) {\r\n return clock.withinRange(timeToDisable, timeToVerify)\r\n }\r\n })\n\n // If this time matches a disabled time, confirm it’s not inverted.\n isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function (timeToDisable) {\r\n return $.isArray(timeToDisable) && timeToDisable[2] == 'inverted' ||\n $.isPlainObject(timeToDisable) && timeToDisable.inverted\r\n }).length\n\n // If the clock is \"enabled\" flag is flipped, flip the condition.\n return clock.item.enable === -1 ? !isDisabledMatch : isDisabledMatch ||\n timeToVerify.pick < clock.item.min.pick ||\n timeToVerify.pick > clock.item.max.pick\r\n } //TimePicker.prototype.disabled\n\n\n /**\n * Shift an object by an interval until we reach an enabled object.\n */\n TimePicker.prototype.shift = function (timeObject, interval) {\r\n\n var clock = this,\n minLimit = clock.item.min.pick,\n maxLimit = clock.item.max.pick/*,\n safety = 1000*/\n\n interval = interval || clock.item.interval\n\n // Keep looping as long as the time is disabled.\n while ( /*safety &&*/ clock.disabled(timeObject)) {\n\n /*safety -= 1\n if ( !safety ) {\n throw 'Fell into an infinite loop while shifting to ' + timeObject.hour + ':' + timeObject.mins + '.'\n }*/\n\n // Increase/decrease the time by the interval and keep looping.\n timeObject = clock.create(timeObject.pick += interval)\n\n // If we've looped beyond the limits, break out of the loop.\n if (timeObject.pick <= minLimit || timeObject.pick >= maxLimit) {\r\n break\r\n }\r\n }\n\n // Return the final object.\n return timeObject\r\n } //TimePicker.prototype.shift\n\n\n /**\n * Scope an object to be within range of min and max.\n */\n TimePicker.prototype.scope = function (timeObject) {\r\n var minLimit = this.item.min.pick,\n maxLimit = this.item.max.pick\n return this.create(timeObject.pick > maxLimit ? maxLimit : timeObject.pick < minLimit ? minLimit : timeObject)\r\n } //TimePicker.prototype.scope\n\n\n /**\n * Parse a string into a usable type.\n */\n TimePicker.prototype.parse = function (type, value, options) {\r\n\n var hour, minutes, isPM, item, parseValue,\n clock = this,\n parsingObject = {}\n\n // If it’s already parsed, we’re good.\n if (!value || typeof value != 'string') {\r\n return value\r\n }\n\n // We need a `.format` to parse the value with.\n if (!(options && options.format)) {\r\n options = options || {}\n options.format = clock.settings.format\r\n }\n\n // Convert the format into an array and then map through it.\n clock.formats.toArray(options.format).map(function (label) {\r\n\n var\n substring,\n\n // Grab the formatting label.\n formattingLabel = clock.formats[label],\n\n // The format length is from the formatting label function or the\n // label length without the escaping exclamation (!) mark.\n formatLength = formattingLabel ?\n _.trigger(formattingLabel, clock, [value, parsingObject]) :\n label.replace(/^!/, '').length\n\n // If there's a format label, split the value up to the format length.\n // Then add it to the parsing object with appropriate label.\n if (formattingLabel) {\r\n substring = value.substr(0, formatLength)\n parsingObject[label] = substring.match(/^\\d+$/) ? +substring : substring\r\n }\n\n // Update the time value as the substring from format length to end.\n value = value.substr(formatLength)\r\n })\n\n // Grab the hour and minutes from the parsing object.\n for (item in parsingObject) {\r\n parseValue = parsingObject[item]\n if (_.isInteger(parseValue)) {\r\n if (item.match(/^(h|hh)$/i)) {\r\n hour = parseValue\n if (item == 'h' || item == 'hh') {\r\n hour %= 12\r\n }\r\n }\n else if (item == 'i') {\r\n minutes = parseValue\r\n }\r\n }\n else if (item.match(/^a$/i) && parseValue.match(/^p/i) && ('h' in parsingObject || 'hh' in parsingObject)) {\r\n isPM = true\r\n }\r\n }\n\n // Calculate it in minutes and return.\n return (isPM ? hour + 12 : hour) * MINUTES_IN_HOUR + minutes\r\n } //TimePicker.prototype.parse\n\n\n /**\n * Various formats to display the object in.\n */\n TimePicker.prototype.formats = {\r\n\n h: function (string, timeObject) {\n\n // If there's string, then get the digits length.\n // Otherwise return the selected hour in \"standard\" format.\n return string ? _.digits(string) : timeObject.hour % HOURS_TO_NOON || HOURS_TO_NOON\r\n },\n hh: function (string, timeObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise return the selected hour in \"standard\" format with a leading zero.\n return string ? 2 : _.lead(timeObject.hour % HOURS_TO_NOON || HOURS_TO_NOON)\r\n },\n H: function (string, timeObject) {\n\n // If there's string, then get the digits length.\n // Otherwise return the selected hour in \"military\" format as a string.\n return string ? _.digits(string) : '' + (timeObject.hour % 24)\r\n },\n HH: function (string, timeObject) {\n\n // If there's string, then get the digits length.\n // Otherwise return the selected hour in \"military\" format with a leading zero.\n return string ? _.digits(string) : _.lead(timeObject.hour % 24)\r\n },\n i: function (string, timeObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise return the selected minutes.\n return string ? 2 : _.lead(timeObject.mins)\r\n },\n a: function (string, timeObject) {\n\n // If there's a string, then the length is always 4.\n // Otherwise check if it's more than \"noon\" and return either am/pm.\n return string ? 4 : MINUTES_IN_DAY / 2 > timeObject.time % MINUTES_IN_DAY ? 'a.m.' : 'p.m.'\r\n },\n A: function (string, timeObject) {\n\n // If there's a string, then the length is always 2.\n // Otherwise check if it's more than \"noon\" and return either am/pm.\n return string ? 2 : MINUTES_IN_DAY / 2 > timeObject.time % MINUTES_IN_DAY ? 'AM' : 'PM'\r\n },\n\n // Create an array by splitting the formatting string passed.\n toArray: function (formatString) { return formatString.split(/(h{1,2}|H{1,2}|i|a|A|!.)/g) },\n\n // Format an object into a string using the formatting options.\n toString: function (formatString, itemObject) {\r\n var clock = this\n return clock.formats.toArray(formatString).map(function (label) {\r\n return _.trigger(clock.formats[label], clock, [0, itemObject]) || label.replace(/^!/, '')\r\n }).join('')\r\n }\r\n } //TimePicker.prototype.formats\n\n\n\n\n /**\n * Check if two time units are the exact.\n */\n TimePicker.prototype.isTimeExact = function (one, two) {\r\n\n var clock = this\n\n // When we’re working with minutes, do a direct comparison.\n if (\n (_.isInteger(one) && _.isInteger(two)) ||\n (typeof one == 'boolean' && typeof two == 'boolean')\n ) {\r\n return one === two\r\n }\n\n // When we’re working with time representations, compare the “pick” value.\n if (\n (_.isDate(one) || $.isArray(one)) &&\n (_.isDate(two) || $.isArray(two))\n ) {\r\n return clock.create(one).pick === clock.create(two).pick\r\n }\n\n // When we’re working with range objects, compare the “from” and “to”.\n if ($.isPlainObject(one) && $.isPlainObject(two)) {\r\n return clock.isTimeExact(one.from, two.from) && clock.isTimeExact(one.to, two.to)\r\n }\n\n return false\r\n }\n\n\n /**\n * Check if two time units overlap.\n */\n TimePicker.prototype.isTimeOverlap = function (one, two) {\r\n\n var clock = this\n\n // When we’re working with an integer, compare the hours.\n if (_.isInteger(one) && (_.isDate(two) || $.isArray(two))) {\r\n return one === clock.create(two).hour\r\n }\n if (_.isInteger(two) && (_.isDate(one) || $.isArray(one))) {\r\n return two === clock.create(one).hour\r\n }\n\n // When we’re working with range objects, check if the ranges overlap.\n if ($.isPlainObject(one) && $.isPlainObject(two)) {\r\n return clock.overlapRanges(one, two)\r\n }\n\n return false\r\n }\n\n\n /**\n * Flip the “enabled” state.\n */\n TimePicker.prototype.flipEnable = function (val) {\r\n var itemObject = this.item\n itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1)\r\n }\n\n\n /**\n * Mark a collection of times as “disabled”.\n */\n TimePicker.prototype.deactivate = function (type, timesToDisable) {\r\n\n var clock = this,\n disabledItems = clock.item.disable.slice(0)\n\n\n // If we’re flipping, that’s all we need to do.\n if (timesToDisable == 'flip') {\r\n clock.flipEnable()\r\n }\n\n else if (timesToDisable === false) {\r\n clock.flipEnable(1)\n disabledItems = []\r\n }\n\n else if (timesToDisable === true) {\r\n clock.flipEnable(-1)\n disabledItems = []\r\n }\n\n // Otherwise go through the times to disable.\n else {\r\n\n timesToDisable.map(function (unitToDisable) {\r\n\n var matchFound\n\n // When we have disabled items, check for matches.\n // If something is matched, immediately break out.\n for (var index = 0; index < disabledItems.length; index += 1) {\r\n if (clock.isTimeExact(unitToDisable, disabledItems[index])) {\r\n matchFound = true\n break\r\n }\r\n }\n\n // If nothing was found, add the validated unit to the collection.\n if (!matchFound) {\r\n if (\n _.isInteger(unitToDisable) ||\n _.isDate(unitToDisable) ||\n $.isArray(unitToDisable) ||\n ($.isPlainObject(unitToDisable) && unitToDisable.from && unitToDisable.to)\n ) {\r\n disabledItems.push(unitToDisable)\r\n }\r\n }\r\n })\r\n }\n\n // Return the updated collection.\n return disabledItems\r\n } //TimePicker.prototype.deactivate\n\n\n /**\n * Mark a collection of times as “enabled”.\n */\n TimePicker.prototype.activate = function (type, timesToEnable) {\r\n\n var clock = this,\n disabledItems = clock.item.disable,\n disabledItemsCount = disabledItems.length\n\n // If we’re flipping, that’s all we need to do.\n if (timesToEnable == 'flip') {\r\n clock.flipEnable()\r\n }\n\n else if (timesToEnable === true) {\r\n clock.flipEnable(1)\n disabledItems = []\r\n }\n\n else if (timesToEnable === false) {\r\n clock.flipEnable(-1)\n disabledItems = []\r\n }\n\n // Otherwise go through the disabled times.\n else {\r\n\n timesToEnable.map(function (unitToEnable) {\r\n\n var matchFound,\n disabledUnit,\n index,\n isRangeMatched\n\n // Go through the disabled items and try to find a match.\n for (index = 0; index < disabledItemsCount; index += 1) {\r\n\n disabledUnit = disabledItems[index]\n\n // When an exact match is found, remove it from the collection.\n if (clock.isTimeExact(disabledUnit, unitToEnable)) {\r\n matchFound = disabledItems[index] = null\n isRangeMatched = true\n break\r\n }\n\n // When an overlapped match is found, add the “inverted” state to it.\n else if (clock.isTimeOverlap(disabledUnit, unitToEnable)) {\r\n if ($.isPlainObject(unitToEnable)) {\r\n unitToEnable.inverted = true\n matchFound = unitToEnable\r\n }\n else if ($.isArray(unitToEnable)) {\r\n matchFound = unitToEnable\n if (!matchFound[2]) matchFound.push('inverted')\r\n }\n else if (_.isDate(unitToEnable)) {\r\n matchFound = [unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted']\r\n }\n break\r\n }\r\n }\n\n // If a match was found, remove a previous duplicate entry.\n if (matchFound) for (index = 0; index < disabledItemsCount; index += 1) {\r\n if (clock.isTimeExact(disabledItems[index], unitToEnable)) {\r\n disabledItems[index] = null\n break\r\n }\r\n }\n\n // In the event that we’re dealing with an overlap of range times,\n // make sure there are no “inverted” times because of it.\n if (isRangeMatched) for (index = 0; index < disabledItemsCount; index += 1) {\r\n if (clock.isTimeOverlap(disabledItems[index], unitToEnable)) {\r\n disabledItems[index] = null\n break\r\n }\r\n }\n\n // If something is still matched, add it into the collection.\n if (matchFound) {\r\n disabledItems.push(matchFound)\r\n }\r\n })\r\n }\n\n // Return the updated collection.\n return disabledItems.filter(function (val) { return val != null })\r\n } //TimePicker.prototype.activate\n\n\n /**\n * The division to use for the range intervals.\n */\n TimePicker.prototype.i = function (type, value/*, options*/) {\r\n return _.isInteger(value) && value > 0 ? value : this.item.interval\r\n }\n\n\n /**\n * Create a string for the nodes in the picker.\n */\n TimePicker.prototype.nodes = function (isOpen) {\r\n\n var\n clock = this,\n settings = clock.settings,\n selectedObject = clock.item.select,\n highlightedObject = clock.item.highlight,\n viewsetObject = clock.item.view,\n disabledCollection = clock.item.disable\n\n return _.node(\n 'ul',\n _.group({\r\n min: clock.item.min.pick,\n max: clock.item.max.pick,\n i: clock.item.interval,\n node: 'li',\n item: function (loopedTime) {\r\n loopedTime = clock.create(loopedTime)\n var timeMinutes = loopedTime.pick,\n isSelected = selectedObject && selectedObject.pick == timeMinutes,\n isHighlighted = highlightedObject && highlightedObject.pick == timeMinutes,\n isDisabled = disabledCollection && clock.disabled(loopedTime),\n formattedTime = _.trigger(clock.formats.toString, clock, [settings.format, loopedTime])\n return [\n _.trigger(clock.formats.toString, clock, [_.trigger(settings.formatLabel, clock, [loopedTime]) || settings.format, loopedTime]),\n (function (klasses) {\r\n\n if (isSelected) {\r\n klasses.push(settings.klass.selected)\r\n }\n\n if (isHighlighted) {\r\n klasses.push(settings.klass.highlighted)\r\n }\n\n if (viewsetObject && viewsetObject.pick == timeMinutes) {\r\n klasses.push(settings.klass.viewset)\r\n }\n\n if (isDisabled) {\r\n klasses.push(settings.klass.disabled)\r\n }\n\n return klasses.join(' ')\r\n })([settings.klass.listItem]),\n 'data-pick=' + loopedTime.pick + ' ' + _.ariaAttr({\r\n role: 'option',\n label: formattedTime,\n selected: isSelected && clock.$node.val() === formattedTime ? true : null,\n activedescendant: isHighlighted ? true : null,\n disabled: isDisabled ? true : null\r\n })\n ]\r\n }\r\n }) +\n\n // * For Firefox forms to submit, make sure to set the button’s `type` attribute as “button”.\n _.node(\n 'li',\n _.node(\n 'button',\n settings.clear,\n settings.klass.buttonClear,\n 'type=button data-clear=1' + (isOpen ? '' : ' disabled') + ' ' +\n _.ariaAttr({ controls: clock.$node[0].id })\n ),\n '', _.ariaAttr({ role: 'presentation' })\n ),\n settings.klass.list,\n _.ariaAttr({ role: 'listbox', controls: clock.$node[0].id })\n )\r\n } //TimePicker.prototype.nodes\n\n\n\n\n\n\n\n /**\n * Extend the picker to add the component with the defaults.\n */\n TimePicker.defaults = (function (prefix) {\r\n\n return {\n\n // Clear\n clear: 'Clear',\n\n // The format to show on the `input` element\n format: 'h:i A',\n\n // The interval between each time\n interval: 30,\n\n // Picker close behavior\n closeOnSelect: true,\n closeOnClear: true,\n\n // Classes\n klass: {\r\n\n picker: prefix + ' ' + prefix + '--time',\n holder: prefix + '__holder',\n\n list: prefix + '__list',\n listItem: prefix + '__list-item',\n\n disabled: prefix + '__list-item--disabled',\n selected: prefix + '__list-item--selected',\n highlighted: prefix + '__list-item--highlighted',\n viewset: prefix + '__list-item--viewset',\n now: prefix + '__list-item--now',\n\n buttonClear: prefix + '__button--clear'\r\n }\r\n }\r\n })(Picker.klasses().picker)\n\n\n\n\n\n /**\n * Extend the picker to add the time picker.\n */\n Picker.extend('pickatime', TimePicker)\r\n\n\n}));\n\n\n\n","\n/*jshint\n asi: true,\n unused: true,\n boss: true,\n loopfunc: true,\n eqnull: true\n */\n\n\n/*!\n * Legacy browser support\n */\n\n\n// Map array support\nif (![].map) {\r\n Array.prototype.map = function (callback, self) {\r\n var array = this, len = array.length, newArray = new Array(len)\n for (var i = 0; i < len; i++) {\r\n if (i in array) {\r\n newArray[i] = callback.call(self, array[i], i, array)\r\n }\r\n }\n return newArray\r\n }\r\n}\n\n\n// Filter array support\nif (![].filter) {\r\n Array.prototype.filter = function (callback) {\r\n if (this == null) throw new TypeError()\n var t = Object(this), len = t.length >>> 0\n if (typeof callback != 'function') throw new TypeError()\n var newArray = [], thisp = arguments[1]\n for (var i = 0; i < len; i++) {\r\n if (i in t) {\r\n var val = t[i]\n if (callback.call(thisp, val, i, t)) newArray.push(val)\r\n }\r\n }\n return newArray\r\n }\r\n}\n\n\n// Index of array support\nif (![].indexOf) {\r\n Array.prototype.indexOf = function (searchElement) {\r\n if (this == null) throw new TypeError()\n var t = Object(this), len = t.length >>> 0\n if (len === 0) return -1\n var n = 0\n if (arguments.length > 1) {\r\n n = Number(arguments[1])\n if (n != n) {\r\n n = 0\r\n }\n else if (n !== 0 && n != Infinity && n != -Infinity) {\r\n n = (n > 0 || -1) * Math.floor(Math.abs(n))\r\n }\r\n }\n if (n >= len) return -1\n var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0)\n for (; k < len; k++) {\r\n if (k in t && t[k] === searchElement) return k\r\n }\n return -1\r\n }\r\n}\n\n\n/*!\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven LevithanThe requested content cannot be loaded.
Please try again later.
This is a p
\r\n * @before $.metadata.setType(\"class\")\r\n * @after $(\"#one\").metadata().item_id == 1; $(\"#one\").metadata().item_label == \"Label\"\r\n * @desc Reads metadata from the class attribute\r\n * \r\n * @exampleThis is a p
\r\n * @before $.metadata.setType(\"attr\", \"data\")\r\n * @after $(\"#one\").metadata().item_id == 1; $(\"#one\").metadata().item_label == \"Label\"\r\n * @desc Reads metadata from a \"data\" attribute\r\n * \r\n * @exampleThis is a p
\r\n * @before $.metadata.setType(\"elem\", \"script\")\r\n * @after $(\"#one\").metadata().item_id == 1; $(\"#one\").metadata().item_label == \"Label\"\r\n * @desc Reads metadata from a nested script element\r\n * \r\n * @param String type The encoding type\r\n * @param String name The name of the attribute to be used to get metadata (optional)\r\n * @cat Plugins/Metadata\r\n * @descr Sets the type of encoding to be used when loading metadata for the first time\r\n * @type undefined\r\n * @see metadata()\r\n */\r\n\r\n(function($) {\r\n\r\n$.extend({\r\n\tmetadata : {\r\n\t\tdefaults : {\r\n\t\t\ttype: 'class',\r\n\t\t\tname: 'metadata',\r\n\t\t\tcre: /({.*})/,\r\n\t\t\tsingle: 'metadata'\r\n\t\t},\r\n\t\tsetType: function( type, name ){\r\n\t\t\tthis.defaults.type = type;\r\n\t\t\tthis.defaults.name = name;\r\n\t\t},\r\n\t\tget: function( elem, opts ){\r\n\t\t\tvar settings = $.extend({},this.defaults,opts);\r\n\t\t\t// check for empty string in single property\r\n\t\t\tif ( !settings.single.length ) settings.single = 'metadata';\r\n\t\t\t\r\n\t\t\tvar data = $.data(elem, settings.single);\r\n\t\t\t// returned cached data if it already exists\r\n\t\t\tif ( data ) return data;\r\n\t\t\t\r\n\t\t\tdata = \"{}\";\r\n\t\t\t\r\n\t\t\tif ( settings.type == \"class\" ) {\r\n\t\t\t\tvar m = settings.cre.exec( elem.className );\r\n\t\t\t\tif ( m )\r\n\t\t\t\t\tdata = m[1];\r\n\t\t\t} else if ( settings.type == \"elem\" ) {\r\n\t\t\t\tif( !elem.getElementsByTagName )\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\tvar e = elem.getElementsByTagName(settings.name);\r\n\t\t\t\tif ( e.length )\r\n\t\t\t\t\tdata = $.trim(e[0].innerHTML);\r\n\t\t\t} else if ( elem.getAttribute != undefined ) {\r\n\t\t\t\tvar attr = elem.getAttribute( settings.name );\r\n\t\t\t\tif ( attr )\r\n\t\t\t\t\tdata = attr;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ( data.indexOf( '{' ) <0 )\r\n\t\t\tdata = \"{\" + data + \"}\";\r\n\t\t\t\r\n\t\t\tdata = eval(\"(\" + data + \")\");\r\n\t\t\t\r\n\t\t\t$.data( elem, settings.single, data );\r\n\t\t\treturn data;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Returns the metadata object for the first member of the jQuery object.\r\n *\r\n * @name metadata\r\n * @descr Returns element's metadata object\r\n * @param Object opts An object contianing settings to override the defaults\r\n * @type jQuery\r\n * @cat Plugins/Metadata\r\n */\r\n$.fn.metadata = function( opts ){\r\n\treturn $.metadata.get( this[0], opts );\r\n};\r\n\r\n})(jQuery);","// https://github.com/mathiasbynens/jquery-placeholder\r\n\r\n/* HTML5 Placeholder jQuery Plugin - v2.1.1\r\n * Copyright (c)2015 Mathias Bynens\r\n * 2015-03-11\r\n */\r\n!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof module&&module.exports?require(\"jquery\"):jQuery)}(function(a){function b(b){var c={},d=/^jQuery\\d+$/;return a.each(b.attributes,function(a,b){b.specified&&!d.test(b.name)&&(c[b.name]=b.value)}),c}function c(b,c){var d=this,f=a(d);if(d.value==f.attr(\"placeholder\")&&f.hasClass(m.customClass))if(f.data(\"placeholder-password\")){if(f=f.hide().nextAll('input[type=\"password\"]:first').show().attr(\"id\",f.removeAttr(\"id\").data(\"placeholder-id\")),b===!0)return f[0].value=c;f.focus()}else d.value=\"\",f.removeClass(m.customClass),d==e()&&d.select()}function d(){var d,e=this,f=a(e),g=this.id;if(\"\"===e.value){if(\"password\"===e.type){if(!f.data(\"placeholder-textinput\")){try{d=f.clone().attr({type:\"text\"})}catch(h){d=a(\"\").attr(a.extend(b(this),{type:\"text\"}))}d.removeAttr(\"name\").data({\"placeholder-password\":f,\"placeholder-id\":g}).bind(\"focus.placeholder\",c),f.data({\"placeholder-textinput\":d,\"placeholder-id\":g}).before(d)}f=f.removeAttr(\"id\").hide().prevAll('input[type=\"text\"]:first').attr(\"id\",g).show()}f.addClass(m.customClass),f[0].value=f.attr(\"placeholder\")}else f.removeClass(m.customClass)}function e(){try{return document.activeElement}catch(a){}}var f,g,h=\"[object OperaMini]\"==Object.prototype.toString.call(window.operamini),i=\"placeholder\"in document.createElement(\"input\")&&!h,j=\"placeholder\"in document.createElement(\"textarea\")&&!h,k=a.valHooks,l=a.propHooks;if(i&&j)g=a.fn.placeholder=function(){return this},g.input=g.textarea=!0;else{var m={};g=a.fn.placeholder=function(b){var e={customClass:\"placeholder\"};m=a.extend({},e,b);var f=this;return f.filter((i?\"textarea\":\":input\")+\"[placeholder]\").not(\".\"+m.customClass).bind({\"focus.placeholder\":c,\"blur.placeholder\":d}).data(\"placeholder-enabled\",!0).trigger(\"blur.placeholder\"),f},g.input=i,g.textarea=j,f={get:function(b){var c=a(b),d=c.data(\"placeholder-password\");return d?d[0].value:c.data(\"placeholder-enabled\")&&c.hasClass(m.customClass)?\"\":b.value},set:function(b,f){var g=a(b),h=g.data(\"placeholder-password\");return h?h[0].value=f:g.data(\"placeholder-enabled\")?(\"\"===f?(b.value=f,b!=e()&&d.call(b)):g.hasClass(m.customClass)?c.call(b,!0,f)||(b.value=f):b.value=f,g):b.value=f}},i||(k.input=f,l.value=f),j||(k.textarea=f,l.value=f),a(function(){a(document).delegate(\"form\",\"submit.placeholder\",function(){var b=a(\".\"+m.customClass,this).each(c);setTimeout(function(){b.each(d)},10)})}),a(window).bind(\"beforeunload.placeholder\",function(){a(\".\"+m.customClass).each(function(){this.value=\"\"})})}});\r\n\r\n\r\n\r\n","/*! rangeslider.js - v0.3.7 | (c) 2014 @andreruffert | MIT license | https://github.com/andreruffert/rangeslider.js */\r\n(function(factory) {\r\n 'use strict';\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], factory);\r\n }\r\n else if (typeof exports === 'object') {\r\n // CommonJS\r\n factory(require('jquery'));\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function($) {\r\n 'use strict';\r\n\r\n /**\r\n * Range feature detection\r\n * @return {Boolean}\r\n */\r\n function supportsRange() {\r\n var input = document.createElement('input');\r\n input.setAttribute('type', 'range');\r\n return input.type !== 'text';\r\n }\r\n\r\n var pluginName = 'rangeslider',\r\n pluginInstances = [],\r\n pluginIdentifier = 0,\r\n inputrange = supportsRange(),\r\n defaults = {\r\n polyfill: true,\r\n rangeClass: 'rangeslider',\r\n disabledClass: 'rangeslider--disabled',\r\n fillClass: 'rangeslider__fill',\r\n handleClass: 'rangeslider__handle',\r\n startEvent: ['mousedown', 'touchstart', 'pointerdown'],\r\n moveEvent: ['mousemove', 'touchmove', 'pointermove'],\r\n endEvent: ['mouseup', 'touchend', 'pointerup']\r\n };\r\n\r\n /**\r\n * Delays a function for the given number of milliseconds, and then calls\r\n * it with the arguments supplied.\r\n *\r\n * @param {Function} fn [description]\r\n * @param {Number} wait [description]\r\n * @return {Function}\r\n */\r\n function delay(fn, wait) {\r\n var args = Array.prototype.slice.call(arguments, 2);\r\n return setTimeout(function(){ return fn.apply(null, args); }, wait);\r\n }\r\n\r\n /**\r\n * Returns a debounced function that will make sure the given\r\n * function is not triggered too much.\r\n *\r\n * @param {Function} fn Function to debounce.\r\n * @param {Number} debounceDuration OPTIONAL. The amount of time in milliseconds for which we will debounce the function. (defaults to 100ms)\r\n * @return {Function}\r\n */\r\n function debounce(fn, debounceDuration) {\r\n debounceDuration = debounceDuration || 100;\r\n return function() {\r\n if (!fn.debouncing) {\r\n var args = Array.prototype.slice.apply(arguments);\r\n fn.lastReturnVal = fn.apply(window, args);\r\n fn.debouncing = true;\r\n }\r\n clearTimeout(fn.debounceTimeout);\r\n fn.debounceTimeout = setTimeout(function(){\r\n fn.debouncing = false;\r\n }, debounceDuration);\r\n return fn.lastReturnVal;\r\n };\r\n }\r\n\r\n /**\r\n * Check if a `element` is visible in the DOM\r\n *\r\n * @param {Element} element\r\n * @return {Boolean}\r\n */\r\n function isHidden(element) {\r\n if (element.offsetWidth !== 0 || element.offsetHeight !== 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Get hidden parentNodes of an `element`\r\n *\r\n * @param {Element} element\r\n * @return {[type]}\r\n */\r\n function getHiddenParentNodes(element) {\r\n var parents = [],\r\n node = element.parentNode;\r\n\r\n while (node != null && isHidden(node)) {\r\n parents.push(node);\r\n node = node.parentNode;\r\n }\r\n return parents;\r\n }\r\n\r\n /**\r\n * Returns dimensions for an element even if it is not visible in the DOM.\r\n *\r\n * @param {Element} element\r\n * @param {String} key (e.g. offsetWidth �)\r\n * @return {Number}\r\n */\r\n function getDimension(element, key) {\r\n var hiddenParentNodes = getHiddenParentNodes(element),\r\n hiddenParentNodesLength = hiddenParentNodes.length,\r\n displayProperty = [],\r\n dimension = element[key];\r\n\r\n if (hiddenParentNodesLength) {\r\n for (var i = 0; i < hiddenParentNodesLength; i++) {\r\n // Cache the display property to restore it later.\r\n displayProperty[i] = hiddenParentNodes[i].style.display;\r\n\r\n hiddenParentNodes[i].style.display = 'block';\r\n hiddenParentNodes[i].style.height = '0';\r\n hiddenParentNodes[i].style.overflow = 'hidden';\r\n hiddenParentNodes[i].style.visibility = 'hidden';\r\n }\r\n\r\n dimension = element[key];\r\n\r\n for (var j = 0; j < hiddenParentNodesLength; j++) {\r\n hiddenParentNodes[j].style.display = displayProperty[j];\r\n hiddenParentNodes[j].style.height = '';\r\n hiddenParentNodes[j].style.overflow = '';\r\n hiddenParentNodes[j].style.visibility = '';\r\n }\r\n }\r\n return dimension;\r\n }\r\n\r\n /**\r\n * Plugin\r\n * @param {String} element\r\n * @param {Object} options\r\n */\r\n function Plugin(element, options) {\r\n this.$window = $(window);\r\n this.$document = $(document);\r\n this.$element = $(element);\r\n this.options = $.extend( {}, defaults, options );\r\n this._defaults = defaults;\r\n this._name = pluginName;\r\n this.startEvent = this.options.startEvent.join('.' + pluginName + ' ') + '.' + pluginName;\r\n this.moveEvent = this.options.moveEvent.join('.' + pluginName + ' ') + '.' + pluginName;\r\n this.endEvent = this.options.endEvent.join('.' + pluginName + ' ') + '.' + pluginName;\r\n this.polyfill = this.options.polyfill;\r\n this.onInit = this.options.onInit;\r\n this.onSlide = this.options.onSlide;\r\n this.onSlideEnd = this.options.onSlideEnd;\r\n\r\n // Plugin should only be used as a polyfill\r\n if (this.polyfill) {\r\n // Input range support?\r\n if (inputrange) { return false; }\r\n }\r\n\r\n this.identifier = 'js-' + pluginName + '-' +(pluginIdentifier++);\r\n this.min = parseFloat(this.$element[0].getAttribute('min') || 0);\r\n this.max = parseFloat(this.$element[0].getAttribute('max') || 100);\r\n this.value = parseFloat(this.$element[0].value || this.min + (this.max-this.min)/2);\r\n this.step = parseFloat(this.$element[0].getAttribute('step') || 1);\r\n this.toFixed = (this.step + '').replace('.', '').length - 1;\r\n this.$fill = $('');\r\n this.$handle = $('');\r\n this.$range = $('').insertAfter(this.$element).prepend(this.$fill, this.$handle);\r\n\r\n // visually hide the input\r\n this.$element.css({\r\n 'position': 'absolute',\r\n 'width': '1px',\r\n 'height': '1px',\r\n 'overflow': 'hidden',\r\n 'opacity': '0'\r\n });\r\n\r\n // Store context\r\n this.handleDown = $.proxy(this.handleDown, this);\r\n this.handleMove = $.proxy(this.handleMove, this);\r\n this.handleEnd = $.proxy(this.handleEnd, this);\r\n\r\n this.init();\r\n\r\n // Attach Events\r\n var _this = this;\r\n this.$window.on('resize' + '.' + pluginName, debounce(function() {\r\n // Simulate resizeEnd event.\r\n delay(function() { _this.update(); }, 300);\r\n }, 20));\r\n\r\n this.$document.on(this.startEvent, '#' + this.identifier + ':not(.' + this.options.disabledClass + ')', this.handleDown);\r\n\r\n // Listen to programmatic value changes\r\n this.$element.on('change' + '.' + pluginName, function(e, data) {\r\n if (data && data.origin === pluginName) {\r\n return;\r\n }\r\n\r\n var value = e.target.value,\r\n pos = _this.getPositionFromValue(value);\r\n _this.setPosition(pos);\r\n });\r\n }\r\n\r\n Plugin.prototype.init = function() {\r\n if (this.onInit && typeof this.onInit === 'function') {\r\n this.onInit();\r\n }\r\n this.update();\r\n };\r\n\r\n Plugin.prototype.update = function() {\r\n this.handleWidth = getDimension(this.$handle[0], 'offsetWidth');\r\n this.rangeWidth = getDimension(this.$range[0], 'offsetWidth');\r\n this.maxHandleX = this.rangeWidth - this.handleWidth;\r\n this.grabX = this.handleWidth / 2;\r\n this.position = this.getPositionFromValue(this.value);\r\n\r\n // Consider disabled state\r\n if (this.$element[0].disabled) {\r\n this.$range.addClass(this.options.disabledClass);\r\n } else {\r\n this.$range.removeClass(this.options.disabledClass);\r\n }\r\n\r\n this.setPosition(this.position);\r\n };\r\n\r\n Plugin.prototype.handleDown = function(e) {\r\n e.preventDefault();\r\n this.$document.on(this.moveEvent, this.handleMove);\r\n this.$document.on(this.endEvent, this.handleEnd);\r\n\r\n // If we click on the handle don't set the new position\r\n if ((' ' + e.target.className + ' ').replace(/[\\n\\t]/g, ' ').indexOf(this.options.handleClass) > -1) {\r\n return;\r\n }\r\n\r\n var posX = this.getRelativePosition(e),\r\n rangeX = this.$range[0].getBoundingClientRect().left,\r\n handleX = this.getPositionFromNode(this.$handle[0]) - rangeX;\r\n\r\n this.setPosition(posX - this.grabX);\r\n\r\n if (posX >= handleX && posX < handleX + this.handleWidth) {\r\n this.grabX = posX - handleX;\r\n }\r\n };\r\n\r\n Plugin.prototype.handleMove = function(e) {\r\n e.preventDefault();\r\n var posX = this.getRelativePosition(e);\r\n this.setPosition(posX - this.grabX);\r\n };\r\n\r\n Plugin.prototype.handleEnd = function(e) {\r\n e.preventDefault();\r\n this.$document.off(this.moveEvent, this.handleMove);\r\n this.$document.off(this.endEvent, this.handleEnd);\r\n\r\n if (this.onSlideEnd && typeof this.onSlideEnd === 'function') {\r\n this.onSlideEnd(this.position, this.value);\r\n }\r\n };\r\n\r\n Plugin.prototype.cap = function(pos, min, max) {\r\n if (pos < min) { return min; }\r\n if (pos > max) { return max; }\r\n return pos;\r\n };\r\n\r\n Plugin.prototype.setPosition = function(pos) {\r\n var value, left;\r\n\r\n // Snapping steps\r\n value = this.getValueFromPosition(this.cap(pos, 0, this.maxHandleX));\r\n left = this.getPositionFromValue(value);\r\n\r\n // Update ui\r\n this.$fill[0].style.width = (left + this.grabX) + 'px';\r\n this.$handle[0].style.left = left + 'px';\r\n this.setValue(value);\r\n\r\n // Update globals\r\n this.position = left;\r\n this.value = value;\r\n\r\n if (this.onSlide && typeof this.onSlide === 'function') {\r\n this.onSlide(left, value);\r\n }\r\n };\r\n\r\n // Returns element position relative to the parent\r\n Plugin.prototype.getPositionFromNode = function(node) {\r\n var i = 0;\r\n while (node !== null) {\r\n i += node.offsetLeft;\r\n node = node.offsetParent;\r\n }\r\n return i;\r\n };\r\n\r\n Plugin.prototype.getRelativePosition = function(e) {\r\n // Get the offset left relative to the viewport\r\n var rangeX = this.$range[0].getBoundingClientRect().left,\r\n pageX = 0;\r\n\r\n if (typeof e.pageX !== 'undefined') {\r\n pageX = e.pageX;\r\n }\r\n else if (typeof e.originalEvent.clientX !== 'undefined') {\r\n pageX = e.originalEvent.clientX;\r\n }\r\n else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0].clientX !== 'undefined') {\r\n pageX = e.originalEvent.touches[0].clientX;\r\n }\r\n else if(e.currentPoint && typeof e.currentPoint.x !== 'undefined') {\r\n pageX = e.currentPoint.x;\r\n }\r\n\r\n return pageX - rangeX;\r\n };\r\n\r\n Plugin.prototype.getPositionFromValue = function(value) {\r\n var percentage, pos;\r\n percentage = (value - this.min)/(this.max - this.min);\r\n pos = percentage * this.maxHandleX;\r\n return pos;\r\n };\r\n\r\n Plugin.prototype.getValueFromPosition = function(pos) {\r\n var percentage, value;\r\n percentage = ((pos) / (this.maxHandleX || 1));\r\n value = this.step * Math.round(percentage * (this.max - this.min) / this.step) + this.min;\r\n return Number((value).toFixed(this.toFixed));\r\n };\r\n\r\n Plugin.prototype.setValue = function(value) {\r\n if (value !== this.value) {\r\n this.$element.val(value).trigger('change', {origin: pluginName});\r\n }\r\n };\r\n\r\n Plugin.prototype.destroy = function() {\r\n this.$document.off(this.startEvent, '#' + this.identifier, this.handleDown);\r\n this.$element\r\n .off('.' + pluginName)\r\n .removeAttr('style')\r\n .removeData('plugin_' + pluginName);\r\n\r\n // Remove the generated markup\r\n if (this.$range && this.$range.length) {\r\n this.$range[0].parentNode.removeChild(this.$range[0]);\r\n }\r\n\r\n // Remove global events if there isn't any instance anymore.\r\n pluginInstances.splice(pluginInstances.indexOf(this.$element[0]),1);\r\n if (!pluginInstances.length) {\r\n this.$window.off('.' + pluginName);\r\n }\r\n };\r\n\r\n // A really lightweight plugin wrapper around the constructor,\r\n // preventing against multiple instantiations\r\n $.fn[pluginName] = function(options) {\r\n return this.each(function() {\r\n var $this = $(this),\r\n data = $this.data('plugin_' + pluginName);\r\n\r\n // Create a new instance.\r\n if (!data) {\r\n $this.data('plugin_' + pluginName, (data = new Plugin(this, options)));\r\n pluginInstances.push(this);\r\n }\r\n\r\n // Make it possible to access methods from public.\r\n // e.g `$element.rangeslider('method');`\r\n if (typeof options === 'string') {\r\n data[options]();\r\n }\r\n });\r\n };\r\n\r\n}));","$(document).ready(function() {\n var switched = false;\n var updateTables = function() {\n if (($(window).width() < 767) && !switched ){\n switched = true;\n $(\".table-sticky .table\").each(function(i, element) {\n splitTable($(element));\n });\n return true;\n }\n else if (switched && ($(window).width() > 767)) {\n switched = false;\n $(\".table-sticky .table\").each(function(i, element) {\n unsplitTable($(element));\n });\n }\n };\n \n $(window).on('load', updateTables);\n $(window).on(\"redraw\",function(){switched=false;updateTables();}); // An event to listen for\n $(window).on(\"resize\", updateTables);\n \n\t\n\tfunction splitTable(original)\n\t{\n var columnCount = original.find(\"thead th\").length; // Count columns used to add a dynamic class\n\t\toriginal.wrap(\"\");\n\t\t\n\t\tvar copy = original.clone();\n\t\tcopy.find(\"td:not(:first-child), th:not(:first-child)\").css(\"display\", \"none\");\n\t\tcopy.removeClass(\"responsive\");\n\t\t\n\t\toriginal.closest(\".table-wrapper\").append(copy);\n\t\tcopy.wrap(\"\");\n\t\toriginal.wrap(\"\");\n\n setCellHeights(original, copy);\n\t}\n\t\n\tfunction unsplitTable(original) {\n original.closest(\".table-wrapper\").find(\".pinned\").remove();\n original.unwrap();\n original.unwrap();\n\t}\n\n function setCellHeights(original, copy) {\n var tr = original.find('tr'),\n tr_copy = copy.find('tr'),\n heights = [];\n\n tr.each(function (index) {\n var self = $(this),\n tx = self.find('th, td');\n\n tx.each(function () {\n var height = $(this).outerHeight(true);\n heights[index] = heights[index] || 0;\n if (height > heights[index]) heights[index] = height;\n });\n\n });\n\n tr_copy.each(function (index) {\n $(this).height(heights[index]);\n });\n }\n\n});\n","/*!\r\n * jQuery Tools dev - The missing UI library for the Web\r\n * \r\n * scrollable/scrollable.js\r\n * scrollable/scrollable.autoscroll.js\r\n * scrollable/scrollable.navigator.js\r\n * tabs/tabs.js\r\n * tabs/tabs.slideshow.js\r\n * toolbox/toolbox.history.js\r\n * http://flowplayer.org/tools/\r\n */\r\n(function(a){a.tools=a.tools||{version:\"dev\"},a.tools.scrollable={conf:{activeClass:\"active\",circular:!1,clonedClass:\"cloned\",disabledClass:\"disabled\",easing:\"swing\",initialIndex:0,item:\"> *\",items:\".items\",keyboard:!0,mousewheel:!1,next:\".next\",prev:\".prev\",size:1,speed:400,vertical:!1,touch:!0,wheelSpeed:0}};function b(a,b){var c=parseInt(a.css(b),10);if(c)return c;var d=a[0].currentStyle;return d&&d.width&&parseInt(d.width,10)}function c(b,c){var d=a(c);return d.length<2?d:b.parent().find(c)}var d;function e(b,e){var f=this,g=b.add(f),h=b.children(),i=0,j=e.vertical;d||(d=f),h.length>1&&(h=a(e.items,b)),e.size>1&&(e.circular=!1),a.extend(f,{getConf:function(){return e},getIndex:function(){return i},getSize:function(){return f.getItems().size()},getNaviButtons:function(){return n.add(o)},getRoot:function(){return b},getItemWrap:function(){return h},getItems:function(){return h.find(e.item).not(\".\"+e.clonedClass)},move:function(a,b){return f.seekTo(i+a,b)},next:function(a){return f.move(e.size,a)},prev:function(a){return f.move(-e.size,a)},begin:function(a){return f.seekTo(0,a)},end:function(a){return f.seekTo(f.getSize()-1,a)},focus:function(){d=f;return f},addItem:function(b){b=a(b),e.circular?(h.children().last().before(b),h.children().first().replaceWith(b.clone().addClass(e.clonedClass))):(h.append(b),o.removeClass(\"disabled\")),g.trigger(\"onAddItem\",[b]);return f},seekTo:function(b,c,k){b.jquery||(b*=1);if(e.circular&&b===0&&i==-1&&c!==0)return f;if(!e.circular&&b<0||b>f.getSize()||b<-1)return f;var l=b;b.jquery?b=f.getItems().index(b):l=f.getItems().eq(b);var m=a.Event(\"onBeforeSeek\");if(!k){g.trigger(m,[b,c]);if(m.isDefaultPrevented()||!l.length)return f}var n=j?{top:-l.position().top}:{left:-l.position().left};i=b,d=f,c===undefined&&(c=e.speed),h.animate(n,c,e.easing,k||function(){g.trigger(\"onSeek\",[b])});return f}}),a.each([\"onBeforeSeek\",\"onSeek\",\"onAddItem\"],function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]),f[c]=function(b){b&&a(f).bind(c,b);return f}});if(e.circular){var k=f.getItems().slice(-1).clone().prependTo(h),l=f.getItems().eq(1).clone().appendTo(h);k.add(l).addClass(e.clonedClass),f.onBeforeSeek(function(a,b,c){if(!a.isDefaultPrevented()){if(b==-1){f.seekTo(k,c,function(){f.end(0)});return a.preventDefault()}b==f.getSize()&&f.seekTo(l,c,function(){f.begin(0)})}});var m=b.parents().add(b).filter(function(){if(a(this).css(\"display\")===\"none\")return!0});m.length?(m.show(),f.seekTo(0,0,function(){}),m.hide()):f.seekTo(0,0,function(){})}var n=c(b,e.prev).click(function(a){a.stopPropagation(),f.prev()}),o=c(b,e.next).click(function(a){a.stopPropagation(),f.next()});e.circular||(f.onBeforeSeek(function(a,b){setTimeout(function(){a.isDefaultPrevented()||(n.toggleClass(e.disabledClass,b<=0),o.toggleClass(e.disabledClass,b>=f.getSize()-1))},1)}),e.initialIndex||n.addClass(e.disabledClass)),f.getSize()<2&&n.add(o).addClass(e.disabledClass),e.mousewheel&&a.fn.mousewheel&&b.mousewheel(function(a,b){if(e.mousewheel){f.move(b<0?1:-1,e.wheelSpeed||50);return!1}});if(e.touch){var p={};h[0].ontouchstart=function(a){var b=a.touches[0];p.x=b.clientX,p.y=b.clientY},h[0].ontouchmove=function(a){if(a.touches.length==1&&!h.is(\":animated\")){var b=a.touches[0],c=p.x-b.clientX,d=p.y-b.clientY;f[j&&d>0||!j&&c>0?\"next\":\"prev\"](),a.preventDefault()}}}e.keyboard&&a(document).bind(\"keydown.scrollable\",function(b){if(!(!e.keyboard||b.altKey||b.ctrlKey||b.metaKey||a(b.target).is(\":input\"))){if(e.keyboard!=\"static\"&&d!=f)return;var c=b.keyCode;if(j&&(c==38||c==40)){f.move(c==38?-1:1);return b.preventDefault()}if(!j&&(c==37||c==39)){f.move(c==37?-1:1);return b.preventDefault()}}}),e.initialIndex&&f.seekTo(e.initialIndex,0,function(){})}a.fn.scrollable=function(b){var c=this.data(\"scrollable\");if(c)return c;b=a.extend({},a.tools.scrollable.conf,b),this.each(function(){c=new e(a(this),b),a(this).data(\"scrollable\",c)});return b.api?c:this}})(jQuery);\r\n(function($) { var t=$.tools.scrollable;t.autoscroll={conf:{autoplay:true,interval:3e3,autopause:true}};$.fn.autoscroll=function(a){if(typeof a==\"number\"){a={interval:a}}var b=$.extend({},t.autoscroll.conf,a),c;this.each(function(){function g(){if(e)clearTimeout(e);e=setTimeout(function(){a.next()},b.interval)}var a=$(this).data(\"scrollable\"),d=a.getRoot(),e,f=false;if(a){c=a}a.play=function(){if(e){return}f=false;d.bind(\"onSeek\",g);g()};a.pause=function(){e=clearTimeout(e);d.unbind(\"onSeek\",g)};a.resume=function(){f||a.play()};a.stop=function(){f=true;a.pause()};if(b.autopause){d.add(a.getNaviButtons()).hover(a.pause,a.resume)}if(b.autoplay){a.play()}});return b.api?c:this} })(jQuery);\t\t\r\n(function(a){var b=a.tools.scrollable;b.navigator={conf:{navi:\".navi\",naviItem:null,activeClass:\"active\",indexed:!1,idPrefix:null,history:!1}};function c(b,c){var d=a(c);return d.length<2?d:b.parent().find(c)}a.fn.navigator=function(d){typeof d==\"string\"&&(d={navi:d}),d=a.extend({},b.navigator.conf,d);var e;this.each(function(){var b=a(this).data(\"scrollable\"),f=d.navi.jquery?d.navi:c(b.getRoot(),d.navi),g=b.getNaviButtons(),h=d.activeClass,i=d.history&&history.pushState,j=b.getConf().size;b&&(e=b),b.getNaviButtons=function(){return g.add(f)},i&&(history.pushState({i:0}),a(window).bind(\"popstate\",function(a){var c=a.originalEvent.state;c&&b.seekTo(c.i)}));function k(a,c,d){b.seekTo(c),d.preventDefault(),i&&history.pushState({i:c})}function l(){return f.find(d.naviItem||\"> *\")}function m(b){var c=a(\"<\"+(d.naviItem||\"a\")+\"/>\").click(function(c){k(a(this),b,c)});b===0&&c.addClass(h),d.indexed&&c.text(b+1),d.idPrefix&&c.attr(\"id\",d.idPrefix+b);return c.appendTo(f)}l().length?l().each(function(b){a(this).click(function(c){k(a(this),b,c)})}):a.each(b.getItems(),function(a){a%j==0&&m(a)}),b.onBeforeSeek(function(a,b){setTimeout(function(){if(!a.isDefaultPrevented()){var c=b/j,d=l().eq(c);d.length&&l().removeClass(h).eq(c).addClass(h)}},1)}),b.onAddItem(function(a,c){var d=b.getItems().index(c);d%j==0&&m(d)})});return d.api?e:this}})(jQuery);\r\n(function(a){a.tools=a.tools||{version:\"v1.2.6\"},a.tools.tabs={conf:{tabs:\"a\",current:\"current\",onBeforeClick:null,onClick:null,effect:\"default\",initialIndex:0,event:\"click\",rotate:!1,slideUpSpeed:400,slideDownSpeed:400,history:!1},addEffect:function(a,c){b[a]=c}};var b={\"default\":function(a,b){this.getPanes().hide().eq(a).show(),b.call()},fade:function(a,b){var c=this.getConf(),d=c.fadeOutSpeed,e=this.getPanes();d?e.fadeOut(d):e.hide(),e.eq(a).fadeIn(c.fadeInSpeed,b)},slide:function(a,b){var c=this.getConf();this.getPanes().slideUp(c.slideUpSpeed),this.getPanes().eq(a).slideDown(c.slideDownSpeed,b)},ajax:function(a,b){this.getPanes().eq(0).load(this.getTabs().eq(a).attr(\"href\"),b)}},c,d;a.tools.tabs.addEffect(\"horizontal\",function(b,e){if(!c){var f=this.getPanes().eq(b),g=this.getCurrentPane();d||(d=this.getPanes().eq(0).width()),c=!0,f.show(),g.animate({width:0},{step:function(a){f.css(\"width\",d-a)},complete:function(){a(this).hide(),e.call(),c=!1}}),g.length||(e.call(),c=!1)}});function e(c,d,e){var f=this,g=c.add(this),h=c.find(e.tabs),i=d.jquery?d:c.children(d),j;h.length||(h=c.children()),i.length||(i=c.parent().find(d)),i.length||(i=a(d)),a.extend(this,{click:function(c,d){var i=h.eq(c);typeof c==\"string\"&&c.replace(\"#\",\"\")&&(i=h.filter(\"[href*=\"+c.replace(\"#\",\"\")+\"]\"),c=Math.max(h.index(i),0));if(e.rotate){var k=h.length-1;if(c<0)return f.click(k,d);if(c>k)return f.click(0,d)}if(!i.length){if(j>=0)return f;c=e.initialIndex,i=h.eq(c)}if(c===j)return f;d=d||a.Event(),d.type=\"onBeforeClick\",g.trigger(d,[c]);if(!d.isDefaultPrevented()){b[e.effect].call(f,c,function(){j=c,d.type=\"onClick\",g.trigger(d,[c])}),h.removeClass(e.current),i.addClass(e.current);return f}},getConf:function(){return e},getTabs:function(){return h},getPanes:function(){return i},getCurrentPane:function(){return i.eq(j)},getCurrentTab:function(){return h.eq(j)},getIndex:function(){return j},next:function(){return f.click(j+1)},prev:function(){return f.click(j-1)},destroy:function(){h.unbind(e.event).removeClass(e.current),i.find(\"a[href^='#']\").unbind(\"click.T\");return f}}),a.each(\"onBeforeClick,onClick\".split(\",\"),function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]),f[c]=function(b){b&&a(f).bind(c,b);return f}}),e.history&&a.fn.history&&(a.tools.history.init(h),e.event=\"history\"),h.each(function(b){a(this).bind(e.event,function(a){f.click(b,a);return a.preventDefault()})}),i.find(\"a[href^='#']\").bind(\"click.T\",function(b){f.click(a(this).attr(\"href\"),b)}),location.hash&&e.tabs==\"a\"&&c.find(\"[href=\"+location.hash+\"]\").length?f.click(location.hash):(e.initialIndex===0||e.initialIndex>0)&&f.click(e.initialIndex)}a.fn.tabs=function(b,c){var d=this.data(\"tabs\");d&&(d.destroy(),this.removeData(\"tabs\")),a.isFunction(c)&&(c={onBeforeClick:c}),c=a.extend({},a.tools.tabs.conf,c),this.each(function(){d=new e(a(this),b,c),a(this).data(\"tabs\",d)});return c.api?d:this}})(jQuery);\r\n(function(a){var b;b=a.tools.tabs.slideshow={conf:{next:\".forward\",prev:\".backward\",disabledClass:\"disabled\",autoplay:!1,autopause:!0,interval:3e3,clickable:!0,api:!1}};function c(b,c){var d=this,e=b.add(this),f=b.data(\"tabs\"),g,h=!0;function i(c){var d=a(c);return d.length<2?d:b.parent().find(c)}var j=i(c.next).click(function(){f.next()}),k=i(c.prev).click(function(){f.prev()});function l(){g=setTimeout(function(){f.next()},c.interval)}a.extend(d,{getTabs:function(){return f},getConf:function(){return c},play:function(){if(g)return d;var b=a.Event(\"onBeforePlay\");e.trigger(b);if(b.isDefaultPrevented())return d;h=!1,e.trigger(\"onPlay\"),e.bind(\"onClick\",l),l();return d},pause:function(){if(!g)return d;var b=a.Event(\"onBeforePause\");e.trigger(b);if(b.isDefaultPrevented())return d;g=clearTimeout(g),e.trigger(\"onPause\"),e.unbind(\"onClick\",l);return d},resume:function(){h||d.play()},stop:function(){d.pause(),h=!0}}),a.each(\"onBeforePlay,onPlay,onBeforePause,onPause\".split(\",\"),function(b,e){a.isFunction(c[e])&&a(d).bind(e,c[e]),d[e]=function(b){return a(d).bind(e,b)}}),c.autopause&&f.getTabs().add(j).add(k).add(f.getPanes()).hover(d.pause,d.resume),c.autoplay&&d.play(),c.clickable&&f.getPanes().click(function(){f.next()});if(!f.getConf().rotate){var m=c.disabledClass;f.getIndex()||k.addClass(m),f.onBeforeClick(function(a,b){k.toggleClass(m,!b),j.toggleClass(m,b==f.getTabs().length-1)})}}a.fn.slideshow=function(d){var e=this.data(\"slideshow\");if(e)return e;d=a.extend({},b.conf,d),this.each(function(){e=new c(a(this),d),a(this).data(\"slideshow\",e)});return d.api?e:this}})(jQuery);\r\n(function(a){var b,c,d,e;a.tools=a.tools||{version:\"dev\"},a.tools.history={init:function(g){e||(a.browser.msie&&a.browser.version<\"8\"?c||(c=a(\"\").attr(\"src\",\"javascript:false;\").hide().get(0),a(\"body\").prepend(c),setInterval(function(){var d=c.contentWindow.document,e=d.location.hash;b!==e&&a(window).trigger(\"hash\",e)},100),f(location.hash||\"#\")):setInterval(function(){var c=location.hash;c!==b&&a(window).trigger(\"hash\",c)},100),d=d?d.add(g):g,g.click(function(b){var d=a(this).attr(\"href\");c&&f(d);if(d.slice(0,1)!=\"#\"){location.href=\"#\"+d;return b.preventDefault()}}),e=!0)}};function f(a){if(a){var b=c.contentWindow.document;b.open().close(),b.location.hash=a}}a(window).bind(\"hash\",function(c,e){e?d.filter(function(){var b=a(this).attr(\"href\");return b==e||b==e.replace(\"#\",\"\")}).trigger(\"history\",[e]):d.eq(0).trigger(\"history\",[e]),b=e}),a.fn.history=function(b){a.tools.history.init(this);return this.bind(\"history\",b)}})(jQuery);","(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory();\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"Cleave\"] = factory();\r\n\telse\r\n\t\troot[\"Cleave\"] = factory();\r\n})(this, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId])\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\texports: {},\r\n/******/ \t\t\tid: moduleId,\r\n/******/ \t\t\tloaded: false\r\n/******/ \t\t};\r\n\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.loaded = true;\r\n\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n\r\n\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\r\n\r\n\t/**\r\n\t * Construct a new Cleave instance by passing the configuration object\r\n\t *\r\n\t * @param {String | HTMLElement} element\r\n\t * @param {Object} opts\r\n\t */\r\n\tvar Cleave = function (element, opts) {\r\n\t var owner = this;\r\n\r\n\t if (typeof element === 'string') {\r\n\t owner.element = document.querySelector(element);\r\n\t } else {\r\n\t owner.element = ((typeof element.length !== 'undefined') && element.length > 0) ? element[0] : element;\r\n\t }\r\n\r\n\t if (!owner.element) {\r\n\t throw new Error('[cleave.js] Please check the element');\r\n\t }\r\n\r\n\t opts.initValue = owner.element.value;\r\n\r\n\t owner.properties = Cleave.DefaultProperties.assign({}, opts);\r\n\r\n\t owner.init();\r\n\t};\r\n\r\n\tCleave.prototype = {\r\n\t init: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t // no need to use this lib\r\n\t if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\r\n\t owner.onInput(pps.initValue);\r\n\r\n\t return;\r\n\t }\r\n\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\r\n\t owner.isAndroid = Cleave.Util.isAndroid();\r\n\t owner.lastInputValue = '';\r\n\r\n\t owner.onChangeListener = owner.onChange.bind(owner);\r\n\t owner.onKeyDownListener = owner.onKeyDown.bind(owner);\r\n\t owner.onFocusListener = owner.onFocus.bind(owner);\r\n\t owner.onCutListener = owner.onCut.bind(owner);\r\n\t owner.onCopyListener = owner.onCopy.bind(owner);\r\n\r\n\t owner.element.addEventListener('input', owner.onChangeListener);\r\n\t owner.element.addEventListener('keydown', owner.onKeyDownListener);\r\n\t owner.element.addEventListener('focus', owner.onFocusListener);\r\n\t owner.element.addEventListener('cut', owner.onCutListener);\r\n\t owner.element.addEventListener('copy', owner.onCopyListener);\r\n\r\n\r\n\t owner.initPhoneFormatter();\r\n\t owner.initDateFormatter();\r\n\t owner.initTimeFormatter();\r\n\t owner.initNumeralFormatter();\r\n\r\n\t // avoid touch input field if value is null\r\n\t // otherwise Firefox will add red box-shadow for \r\n\t if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\r\n\t owner.onInput(pps.initValue);\r\n\t }\r\n\t },\r\n\r\n\t initNumeralFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.numeral) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.numeralFormatter = new Cleave.NumeralFormatter(\r\n\t pps.numeralDecimalMark,\r\n\t pps.numeralIntegerScale,\r\n\t pps.numeralDecimalScale,\r\n\t pps.numeralThousandsGroupStyle,\r\n\t pps.numeralPositiveOnly,\r\n\t pps.stripLeadingZeroes,\r\n\t pps.delimiter\r\n\t );\r\n\t },\r\n\r\n\t initTimeFormatter: function() {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.time) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern);\r\n\t pps.blocks = pps.timeFormatter.getBlocks();\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\t },\r\n\r\n\t initDateFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.date) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);\r\n\t pps.blocks = pps.dateFormatter.getBlocks();\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\t },\r\n\r\n\t initPhoneFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.phone) {\r\n\t return;\r\n\t }\r\n\r\n\t // Cleave.AsYouTypeFormatter should be provided by\r\n\t // external google closure lib\r\n\t try {\r\n\t pps.phoneFormatter = new Cleave.PhoneFormatter(\r\n\t new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\r\n\t pps.delimiter\r\n\t );\r\n\t } catch (ex) {\r\n\t throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\r\n\t }\r\n\t },\r\n\r\n\t onKeyDown: function (event) {\r\n\t var owner = this, pps = owner.properties,\r\n\t charCode = event.which || event.keyCode,\r\n\t Util = Cleave.Util,\r\n\t currentValue = owner.element.value;\r\n\r\n\t if (charCode === 229\r\n\t && Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)\r\n\t ) {\r\n\t charCode = 8;\r\n\t }\r\n\r\n\t owner.lastInputValue = currentValue;\r\n\r\n\t // hit backspace when last character is delimiter\r\n\t if (charCode === 8 && Util.isDelimiter(currentValue.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\r\n\t pps.backspace = true;\r\n\r\n\t return;\r\n\t }\r\n\r\n\t pps.backspace = false;\r\n\t },\r\n\r\n\t onChange: function () {\r\n\t this.onInput(this.element.value);\r\n\t },\r\n\r\n\t onFocus: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\r\n\t },\r\n\r\n\t onCut: function (e) {\r\n\t this.copyClipboardData(e);\r\n\t this.onInput('');\r\n\t },\r\n\r\n\t onCopy: function (e) {\r\n\t this.copyClipboardData(e);\r\n\t },\r\n\r\n\t copyClipboardData: function (e) {\r\n\t var owner = this,\r\n\t pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t inputValue = owner.element.value,\r\n\t textToCopy = '';\r\n\r\n\t if (!pps.copyDelimiter) {\r\n\t textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\r\n\t } else {\r\n\t textToCopy = inputValue;\r\n\t }\r\n\r\n\t try {\r\n\t if (e.clipboardData) {\r\n\t e.clipboardData.setData('Text', textToCopy);\r\n\t } else {\r\n\t window.clipboardData.setData('Text', textToCopy);\r\n\t }\r\n\r\n\t e.preventDefault();\r\n\t } catch (ex) {\r\n\t // empty\r\n\t }\r\n\t },\r\n\r\n\t onInput: function (value) {\r\n\t var owner = this, pps = owner.properties,\r\n\t Util = Cleave.Util;\r\n\r\n\t // case 1: delete one more character \"4\"\r\n\t // 1234*| -> hit backspace -> 123|\r\n\t // case 2: last character is not delimiter which is:\r\n\t // 12|34* -> hit backspace -> 1|34*\r\n\t // note: no need to apply this for numeral mode\r\n\t if (!pps.numeral && pps.backspace && !Util.isDelimiter(value.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\r\n\t value = Util.headStr(value, value.length - pps.delimiterLength);\r\n\t }\r\n\r\n\t // phone formatter\r\n\t if (pps.phone) {\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\r\n\t } else {\r\n\t pps.result = pps.phoneFormatter.format(value);\r\n\t }\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\r\n\t // numeral formatter\r\n\t if (pps.numeral) {\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t pps.result = pps.prefix + pps.numeralFormatter.format(value);\r\n\t } else {\r\n\t pps.result = pps.numeralFormatter.format(value);\r\n\t }\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\r\n\t // date\r\n\t if (pps.date) {\r\n\t value = pps.dateFormatter.getValidatedDate(value);\r\n\t }\r\n\r\n\t // time\r\n\t if (pps.time) {\r\n\t value = pps.timeFormatter.getValidatedTime(value);\r\n\t }\r\n\r\n\t // strip delimiters\r\n\t value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\r\n\r\n\t // strip prefix\r\n\t value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result);\r\n\r\n\t // strip non-numeric characters\r\n\t value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\r\n\r\n\t // convert case\r\n\t value = pps.uppercase ? value.toUpperCase() : value;\r\n\t value = pps.lowercase ? value.toLowerCase() : value;\r\n\r\n\t // prefix\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t value = pps.prefix + value;\r\n\r\n\t // no blocks specified, no need to do formatting\r\n\t if (pps.blocksLength === 0) {\r\n\t pps.result = value;\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\t }\r\n\r\n\t // update credit card props\r\n\t if (pps.creditCard) {\r\n\t owner.updateCreditCardPropsByValue(value);\r\n\t }\r\n\r\n\t // strip over length characters\r\n\t value = Util.headStr(value, pps.maxLength);\r\n\r\n\t // apply blocks\r\n\t pps.result = Util.getFormattedValue(\r\n\t value,\r\n\t pps.blocks, pps.blocksLength,\r\n\t pps.delimiter, pps.delimiters, pps.delimiterLazyShow\r\n\t );\r\n\r\n\t owner.updateValueState();\r\n\t },\r\n\r\n\t updateCreditCardPropsByValue: function (value) {\r\n\t var owner = this, pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t creditCardInfo;\r\n\r\n\t // At least one of the first 4 characters has changed\r\n\t if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\r\n\t return;\r\n\t }\r\n\r\n\t creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\r\n\r\n\t pps.blocks = creditCardInfo.blocks;\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Util.getMaxLength(pps.blocks);\r\n\r\n\t // credit card type changed\r\n\t if (pps.creditCardType !== creditCardInfo.type) {\r\n\t pps.creditCardType = creditCardInfo.type;\r\n\r\n\t pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\r\n\t }\r\n\t },\r\n\r\n\t updateValueState: function () {\r\n\t var owner = this,\r\n\t Util = Cleave.Util,\r\n\t pps = owner.properties;\r\n\r\n\t if (!owner.element) {\r\n\t return;\r\n\t }\r\n\r\n\t var endPos = owner.element.selectionEnd;\r\n\t var oldValue = owner.element.value;\r\n\t var newValue = pps.result;\r\n\r\n\t endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\r\n\r\n\t // fix Android browser type=\"text\" input field\r\n\t // cursor not jumping issue\r\n\t if (owner.isAndroid) {\r\n\t window.setTimeout(function () {\r\n\t owner.element.value = newValue;\r\n\t Util.setSelection(owner.element, endPos, pps.document, false);\r\n\t owner.callOnValueChanged();\r\n\t }, 1);\r\n\r\n\t return;\r\n\t }\r\n\r\n\t owner.element.value = newValue;\r\n\t Util.setSelection(owner.element, endPos, pps.document, false);\r\n\t owner.callOnValueChanged();\r\n\t },\r\n\r\n\t callOnValueChanged: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t pps.onValueChanged.call(owner, {\r\n\t target: {\r\n\t value: pps.result,\r\n\t rawValue: owner.getRawValue()\r\n\t }\r\n\t });\r\n\t },\r\n\r\n\t setPhoneRegionCode: function (phoneRegionCode) {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t pps.phoneRegionCode = phoneRegionCode;\r\n\t owner.initPhoneFormatter();\r\n\t owner.onChange();\r\n\t },\r\n\r\n\t setRawValue: function (value) {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t value = value !== undefined && value !== null ? value.toString() : '';\r\n\r\n\t if (pps.numeral) {\r\n\t value = value.replace('.', pps.numeralDecimalMark);\r\n\t }\r\n\r\n\t pps.backspace = false;\r\n\r\n\t owner.element.value = value;\r\n\t owner.onInput(value);\r\n\t },\r\n\r\n\t getRawValue: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t rawValue = owner.element.value;\r\n\r\n\t if (pps.rawValueTrimPrefix) {\r\n\t rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result);\r\n\t }\r\n\r\n\t if (pps.numeral) {\r\n\t rawValue = pps.numeralFormatter.getRawValue(rawValue);\r\n\t } else {\r\n\t rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\r\n\t }\r\n\r\n\t return rawValue;\r\n\t },\r\n\r\n\t getISOFormatDate: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\r\n\t },\r\n\r\n\t getFormattedValue: function () {\r\n\t return this.element.value;\r\n\t },\r\n\r\n\t destroy: function () {\r\n\t var owner = this;\r\n\r\n\t owner.element.removeEventListener('input', owner.onChangeListener);\r\n\t owner.element.removeEventListener('keydown', owner.onKeyDownListener);\r\n\t owner.element.removeEventListener('focus', owner.onFocusListener);\r\n\t owner.element.removeEventListener('cut', owner.onCutListener);\r\n\t owner.element.removeEventListener('copy', owner.onCopyListener);\r\n\t },\r\n\r\n\t toString: function () {\r\n\t return '[Cleave Object]';\r\n\t }\r\n\t};\r\n\r\n\tCleave.NumeralFormatter = __webpack_require__(1);\r\n\tCleave.DateFormatter = __webpack_require__(2);\r\n\tCleave.TimeFormatter = __webpack_require__(3);\r\n\tCleave.PhoneFormatter = __webpack_require__(4);\r\n\tCleave.CreditCardDetector = __webpack_require__(5);\r\n\tCleave.Util = __webpack_require__(6);\r\n\tCleave.DefaultProperties = __webpack_require__(7);\r\n\r\n\t// for angular directive\r\n\t((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;\r\n\r\n\t// CommonJS\r\n\tmodule.exports = Cleave;\r\n\r\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar NumeralFormatter = function (numeralDecimalMark,\r\n\t numeralIntegerScale,\r\n\t numeralDecimalScale,\r\n\t numeralThousandsGroupStyle,\r\n\t numeralPositiveOnly,\r\n\t stripLeadingZeroes,\r\n\t delimiter) {\r\n\t var owner = this;\r\n\r\n\t owner.numeralDecimalMark = numeralDecimalMark || '.';\r\n\t owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\r\n\t owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\r\n\t owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\r\n\t owner.numeralPositiveOnly = !!numeralPositiveOnly;\r\n\t owner.stripLeadingZeroes = stripLeadingZeroes !== false;\r\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\r\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\r\n\t};\r\n\r\n\tNumeralFormatter.groupStyle = {\r\n\t thousand: 'thousand',\r\n\t lakh: 'lakh',\r\n\t wan: 'wan',\r\n\t none: 'none' \r\n\t};\r\n\r\n\tNumeralFormatter.prototype = {\r\n\t getRawValue: function (value) {\r\n\t return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\r\n\t },\r\n\r\n\t format: function (value) {\r\n\t var owner = this, parts, partInteger, partDecimal = '';\r\n\r\n\t // strip alphabet letters\r\n\t value = value.replace(/[A-Za-z]/g, '')\r\n\t // replace the first decimal mark with reserved placeholder\r\n\t .replace(owner.numeralDecimalMark, 'M')\r\n\r\n\t // strip non numeric letters except minus and \"M\"\r\n\t // this is to ensure prefix has been stripped\r\n\t .replace(/[^\\dM-]/g, '')\r\n\r\n\t // replace the leading minus with reserved placeholder\r\n\t .replace(/^\\-/, 'N')\r\n\r\n\t // strip the other minus sign (if present)\r\n\t .replace(/\\-/g, '')\r\n\r\n\t // replace the minus sign (if present)\r\n\t .replace('N', owner.numeralPositiveOnly ? '' : '-')\r\n\r\n\t // replace decimal mark\r\n\t .replace('M', owner.numeralDecimalMark);\r\n\r\n\t // strip any leading zeros\r\n\t if (owner.stripLeadingZeroes) {\r\n\t value = value.replace(/^(-)?0+(?=\\d)/, '$1');\r\n\t }\r\n\r\n\t partInteger = value;\r\n\r\n\t if (value.indexOf(owner.numeralDecimalMark) >= 0) {\r\n\t parts = value.split(owner.numeralDecimalMark);\r\n\t partInteger = parts[0];\r\n\t partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\r\n\t }\r\n\r\n\t if (owner.numeralIntegerScale > 0) {\r\n\t partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\r\n\t }\r\n\r\n\t switch (owner.numeralThousandsGroupStyle) {\r\n\t case NumeralFormatter.groupStyle.lakh:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\r\n\t case NumeralFormatter.groupStyle.wan:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\r\n\t case NumeralFormatter.groupStyle.thousand:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\t }\r\n\r\n\t return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = NumeralFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar DateFormatter = function (datePattern) {\r\n\t var owner = this;\r\n\r\n\t owner.date = [];\r\n\t owner.blocks = [];\r\n\t owner.datePattern = datePattern;\r\n\t owner.initBlocks();\r\n\t};\r\n\r\n\tDateFormatter.prototype = {\r\n\t initBlocks: function () {\r\n\t var owner = this;\r\n\t owner.datePattern.forEach(function (value) {\r\n\t if (value === 'Y') {\r\n\t owner.blocks.push(4);\r\n\t } else {\r\n\t owner.blocks.push(2);\r\n\t }\r\n\t });\r\n\t },\r\n\r\n\t getISOFormatDate: function () {\r\n\t var owner = this,\r\n\t date = owner.date;\r\n\r\n\t return date[2] ? (\r\n\t date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\r\n\t ) : '';\r\n\t },\r\n\r\n\t getBlocks: function () {\r\n\t return this.blocks;\r\n\t },\r\n\r\n\t getValidatedDate: function (value) {\r\n\t var owner = this, result = '';\r\n\r\n\t value = value.replace(/[^\\d]/g, '');\r\n\r\n\t owner.blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t sub0 = sub.slice(0, 1),\r\n\t rest = value.slice(length);\r\n\r\n\t switch (owner.datePattern[index]) {\r\n\t case 'd':\r\n\t if (sub === '00') {\r\n\t sub = '01';\r\n\t } else if (parseInt(sub0, 10) > 3) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 31) {\r\n\t sub = '31';\r\n\t }\r\n\r\n\t break;\r\n\r\n\t case 'm':\r\n\t if (sub === '00') {\r\n\t sub = '01';\r\n\t } else if (parseInt(sub0, 10) > 1) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 12) {\r\n\t sub = '12';\r\n\t }\r\n\r\n\t break;\r\n\t }\r\n\r\n\t result += sub;\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return this.getFixedDateString(result);\r\n\t },\r\n\r\n\t getFixedDateString: function (value) {\r\n\t var owner = this, datePattern = owner.datePattern, date = [],\r\n\t dayIndex = 0, monthIndex = 0, yearIndex = 0,\r\n\t dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\r\n\t day, month, year, fullYearDone = false;\r\n\r\n\t // mm-dd || dd-mm\r\n\t if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\r\n\t dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\r\n\t monthStartIndex = 2 - dayStartIndex;\r\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\r\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\r\n\r\n\t date = this.getFixedDate(day, month, 0);\r\n\t }\r\n\r\n\t // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\r\n\t if (value.length === 8) {\r\n\t datePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 'd':\r\n\t dayIndex = index;\r\n\t break;\r\n\t case 'm':\r\n\t monthIndex = index;\r\n\t break;\r\n\t default:\r\n\t yearIndex = index;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t yearStartIndex = yearIndex * 2;\r\n\t dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\r\n\t monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\r\n\r\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\r\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\r\n\t year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\r\n\r\n\t fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\r\n\r\n\t date = this.getFixedDate(day, month, year);\r\n\t }\r\n\r\n\t owner.date = date;\r\n\r\n\t return date.length === 0 ? value : datePattern.reduce(function (previous, current) {\r\n\t switch (current) {\r\n\t case 'd':\r\n\t return previous + owner.addLeadingZero(date[0]);\r\n\t case 'm':\r\n\t return previous + owner.addLeadingZero(date[1]);\r\n\t default:\r\n\t return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : '');\r\n\t }\r\n\t }, '');\r\n\t },\r\n\r\n\t getFixedDate: function (day, month, year) {\r\n\t day = Math.min(day, 31);\r\n\t month = Math.min(month, 12);\r\n\t year = parseInt((year || 0), 10);\r\n\r\n\t if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\r\n\t day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\r\n\t }\r\n\r\n\t return [day, month, year];\r\n\t },\r\n\r\n\t isLeapYear: function (year) {\r\n\t return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\r\n\t },\r\n\r\n\t addLeadingZero: function (number) {\r\n\t return (number < 10 ? '0' : '') + number;\r\n\t },\r\n\r\n\t addLeadingZeroForYear: function (number) {\r\n\t return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = DateFormatter;\r\n\r\n\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar TimeFormatter = function (timePattern) {\r\n\t var owner = this;\r\n\r\n\t owner.time = [];\r\n\t owner.blocks = [];\r\n\t owner.timePattern = timePattern;\r\n\t owner.initBlocks();\r\n\t};\r\n\r\n\tTimeFormatter.prototype = {\r\n\t initBlocks: function () {\r\n\t var owner = this;\r\n\t owner.timePattern.forEach(function () {\r\n\t owner.blocks.push(2);\r\n\t });\r\n\t },\r\n\r\n\t getISOFormatTime: function () {\r\n\t var owner = this,\r\n\t time = owner.time;\r\n\r\n\t return time[2] ? (\r\n\t owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\r\n\t ) : '';\r\n\t },\r\n\r\n\t getBlocks: function () {\r\n\t return this.blocks;\r\n\t },\r\n\r\n\t getValidatedTime: function (value) {\r\n\t var owner = this, result = '';\r\n\r\n\t value = value.replace(/[^\\d]/g, '');\r\n\r\n\t owner.blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t sub0 = sub.slice(0, 1),\r\n\t rest = value.slice(length);\r\n\r\n\t switch (owner.timePattern[index]) {\r\n\r\n\t case 'h':\r\n\t if (parseInt(sub0, 10) > 2) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 23) {\r\n\t sub = '23';\r\n\t }\r\n\r\n\t break;\r\n\r\n\t case 'm':\r\n\t case 's':\r\n\t if (parseInt(sub0, 10) > 5) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 60) {\r\n\t sub = '60';\r\n\t }\r\n\t break;\r\n\t }\r\n\r\n\t result += sub;\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return this.getFixedTimeString(result);\r\n\t },\r\n\r\n\t getFixedTimeString: function (value) {\r\n\t var owner = this, timePattern = owner.timePattern, time = [],\r\n\t secondIndex = 0, minuteIndex = 0, hourIndex = 0,\r\n\t secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\r\n\t second, minute, hour;\r\n\r\n\t if (value.length === 6) {\r\n\t timePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 's':\r\n\t secondIndex = index * 2;\r\n\t break;\r\n\t case 'm':\r\n\t minuteIndex = index * 2;\r\n\t break;\r\n\t case 'h':\r\n\t hourIndex = index * 2;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t hourStartIndex = hourIndex;\r\n\t minuteStartIndex = minuteIndex;\r\n\t secondStartIndex = secondIndex;\r\n\r\n\t second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\r\n\t minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\r\n\t hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\r\n\r\n\t time = this.getFixedTime(hour, minute, second);\r\n\t }\r\n\r\n\t if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\r\n\t timePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 'm':\r\n\t minuteIndex = index * 2;\r\n\t break;\r\n\t case 'h':\r\n\t hourIndex = index * 2;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t hourStartIndex = hourIndex;\r\n\t minuteStartIndex = minuteIndex;\r\n\r\n\t second = 0;\r\n\t minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\r\n\t hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\r\n\r\n\t time = this.getFixedTime(hour, minute, second);\r\n\t }\r\n\r\n\t owner.time = time;\r\n\r\n\t return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\r\n\t switch (current) {\r\n\t case 's':\r\n\t return previous + owner.addLeadingZero(time[2]);\r\n\t case 'm':\r\n\t return previous + owner.addLeadingZero(time[1]);\r\n\t case 'h':\r\n\t return previous + owner.addLeadingZero(time[0]);\r\n\t }\r\n\t }, '');\r\n\t },\r\n\r\n\t getFixedTime: function (hour, minute, second) {\r\n\t second = Math.min(parseInt(second || 0, 10), 60);\r\n\t minute = Math.min(minute, 60);\r\n\t hour = Math.min(hour, 60);\r\n\r\n\t return [hour, minute, second];\r\n\t },\r\n\r\n\t addLeadingZero: function (number) {\r\n\t return (number < 10 ? '0' : '') + number;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = TimeFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 4 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar PhoneFormatter = function (formatter, delimiter) {\r\n\t var owner = this;\r\n\r\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\r\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\r\n\r\n\t owner.formatter = formatter;\r\n\t};\r\n\r\n\tPhoneFormatter.prototype = {\r\n\t setFormatter: function (formatter) {\r\n\t this.formatter = formatter;\r\n\t },\r\n\r\n\t format: function (phoneNumber) {\r\n\t var owner = this;\r\n\r\n\t owner.formatter.clear();\r\n\r\n\t // only keep number and +\r\n\t phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\r\n\r\n\t // strip non-leading +\r\n\t phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\r\n\r\n\t // strip delimiter\r\n\t phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\r\n\r\n\t var result = '', current, validated = false;\r\n\r\n\t for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\r\n\t current = owner.formatter.inputDigit(phoneNumber.charAt(i));\r\n\r\n\t // has ()- or space inside\r\n\t if (/[\\s()-]/g.test(current)) {\r\n\t result = current;\r\n\r\n\t validated = true;\r\n\t } else {\r\n\t if (!validated) {\r\n\t result = current;\r\n\t }\r\n\t // else: over length input\r\n\t // it turns to invalid number again\r\n\t }\r\n\t }\r\n\r\n\t // strip ()\r\n\t // e.g. US: 7161234567 returns (716) 123-4567\r\n\t result = result.replace(/[()]/g, '');\r\n\t // replace library delimiter with user customized delimiter\r\n\t result = result.replace(/[\\s-]/g, owner.delimiter);\r\n\r\n\t return result;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = PhoneFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 5 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar CreditCardDetector = {\r\n\t blocks: {\r\n\t uatp: [4, 5, 6],\r\n\t amex: [4, 6, 5],\r\n\t diners: [4, 6, 4],\r\n\t discover: [4, 4, 4, 4],\r\n\t mastercard: [4, 4, 4, 4],\r\n\t dankort: [4, 4, 4, 4],\r\n\t instapayment: [4, 4, 4, 4],\r\n\t jcb15: [4, 6, 5],\r\n\t jcb: [4, 4, 4, 4],\r\n\t maestro: [4, 4, 4, 4],\r\n\t visa: [4, 4, 4, 4],\r\n\t mir: [4, 4, 4, 4],\r\n\t unionPay: [4, 4, 4, 4],\r\n\t general: [4, 4, 4, 4],\r\n\t generalStrict: [4, 4, 4, 7]\r\n\t },\r\n\r\n\t re: {\r\n\t // starts with 1; 15 digits, not starts with 1800 (jcb card)\r\n\t uatp: /^(?!1800)1\\d{0,14}/,\r\n\r\n\t // starts with 34/37; 15 digits\r\n\t amex: /^3[47]\\d{0,13}/,\r\n\r\n\t // starts with 6011/65/644-649; 16 digits\r\n\t discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\r\n\r\n\t // starts with 300-305/309 or 36/38/39; 14 digits\r\n\t diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\r\n\r\n\t // starts with 51-55/2221–2720; 16 digits\r\n\t mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 5019/4175/4571; 16 digits\r\n\t dankort: /^(5019|4175|4571)\\d{0,12}/,\r\n\r\n\t // starts with 637-639; 16 digits\r\n\t instapayment: /^63[7-9]\\d{0,13}/,\r\n\r\n\t // starts with 2131/1800; 15 digits\r\n\t jcb15: /^(?:2131|1800)\\d{0,11}/,\r\n\r\n\t // starts with 2131/1800/35; 16 digits\r\n\t jcb: /^(?:35\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 50/56-58/6304/67; 16 digits\r\n\t maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 22; 16 digits\r\n\t mir: /^220[0-4]\\d{0,12}/,\r\n\r\n\t // starts with 4; 16 digits\r\n\t visa: /^4\\d{0,15}/,\r\n\r\n\t // starts with 62; 16 digits\r\n\t unionPay: /^62\\d{0,14}/\r\n\t },\r\n\r\n\t getInfo: function (value, strictMode) {\r\n\t var blocks = CreditCardDetector.blocks,\r\n\t re = CreditCardDetector.re;\r\n\r\n\t // Some credit card can have up to 19 digits number.\r\n\t // Set strictMode to true will remove the 16 max-length restrain,\r\n\t // however, I never found any website validate card number like\r\n\t // this, hence probably you don't want to enable this option.\r\n\t strictMode = !!strictMode;\r\n\r\n\t for (var key in re) {\r\n\t if (re[key].test(value)) {\r\n\t var block;\r\n\r\n\t if (strictMode) {\r\n\t block = blocks.generalStrict;\r\n\t } else {\r\n\t block = blocks[key];\r\n\t }\r\n\r\n\t return {\r\n\t type: key,\r\n\t blocks: block\r\n\t };\r\n\t }\r\n\t }\r\n\r\n\t return {\r\n\t type: 'unknown',\r\n\t blocks: strictMode ? blocks.generalStrict : blocks.general\r\n\t };\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = CreditCardDetector;\r\n\r\n\r\n/***/ }),\r\n/* 6 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar Util = {\r\n\t noop: function () {\r\n\t },\r\n\r\n\t strip: function (value, re) {\r\n\t return value.replace(re, '');\r\n\t },\r\n\r\n\t isDelimiter: function (letter, delimiter, delimiters) {\r\n\t // single delimiter\r\n\t if (delimiters.length === 0) {\r\n\t return letter === delimiter;\r\n\t }\r\n\r\n\t // multiple delimiters\r\n\t return delimiters.some(function (current) {\r\n\t if (letter === current) {\r\n\t return true;\r\n\t }\r\n\t });\r\n\t },\r\n\r\n\t getDelimiterREByDelimiter: function (delimiter) {\r\n\t return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\r\n\t },\r\n\r\n\t getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\r\n\t // If cursor was at the end of value, just place it back.\r\n\t // Because new value could contain additional chars.\r\n\t if (oldValue.length === prevPos) {\r\n\t return newValue.length;\r\n\t }\r\n\r\n\t return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\r\n\t },\r\n\r\n\t getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\r\n\t var oldRawValue, newRawValue, lengthOffset;\r\n\r\n\t oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\r\n\t newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\r\n\t lengthOffset = oldRawValue.length - newRawValue.length;\r\n\r\n\t return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\r\n\t },\r\n\r\n\t stripDelimiters: function (value, delimiter, delimiters) {\r\n\t var owner = this;\r\n\r\n\t // single delimiter\r\n\t if (delimiters.length === 0) {\r\n\t var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\r\n\r\n\t return value.replace(delimiterRE, '');\r\n\t }\r\n\r\n\t // multiple delimiters\r\n\t delimiters.forEach(function (current) {\r\n\t value = value.replace(owner.getDelimiterREByDelimiter(current), '');\r\n\t });\r\n\r\n\t return value;\r\n\t },\r\n\r\n\t headStr: function (str, length) {\r\n\t return str.slice(0, length);\r\n\t },\r\n\r\n\t getMaxLength: function (blocks) {\r\n\t return blocks.reduce(function (previous, current) {\r\n\t return previous + current;\r\n\t }, 0);\r\n\t },\r\n\r\n\t // strip value by prefix length\r\n\t // for prefix: PRE\r\n\t // (PRE123, 3) -> 123\r\n\t // (PR123, 3) -> 23 this happens when user hits backspace in front of \"PRE\"\r\n\t getPrefixStrippedValue: function (value, prefix, prefixLength, prevValue) {\r\n\t if (value.slice(0, prefixLength) !== prefix) {\r\n\r\n\t // Check whether if it is a deletion\r\n\t if (value.length < prevValue.length) {\r\n\t value = value.length > prefixLength ? prevValue : prefix;\r\n\t } else {\r\n\t var diffIndex = this.getFirstDiffIndex(prefix, value.slice(0, prefixLength));\r\n\t value = prefix + value.slice(diffIndex, diffIndex + 1) + value.slice(prefixLength + 1);\r\n\t }\r\n\t }\r\n\r\n\t return value.slice(prefixLength);\r\n\t },\r\n\r\n\t getFirstDiffIndex: function (prev, current) {\r\n\t var index = 0;\r\n\r\n\t while (prev.charAt(index) === current.charAt(index)) {\r\n\t if (prev.charAt(index++) === '') {\r\n\t return -1;\r\n\t }\r\n\t }\r\n\r\n\t return index;\r\n\t },\r\n\r\n\t getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\r\n\t var result = '',\r\n\t multipleDelimiters = delimiters.length > 0,\r\n\t currentDelimiter;\r\n\r\n\t // no options, normal input\r\n\t if (blocksLength === 0) {\r\n\t return value;\r\n\t }\r\n\r\n\t blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t rest = value.slice(length);\r\n\r\n\t if (multipleDelimiters) {\r\n\t currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\r\n\t } else {\r\n\t currentDelimiter = delimiter;\r\n\t }\r\n\r\n\t if (delimiterLazyShow) {\r\n\t if (index > 0) {\r\n\t result += currentDelimiter;\r\n\t }\r\n\r\n\t result += sub;\r\n\t } else {\r\n\t result += sub;\r\n\r\n\t if (sub.length === length && index < blocksLength - 1) {\r\n\t result += currentDelimiter;\r\n\t }\r\n\t }\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return result;\r\n\t },\r\n\r\n\t // move cursor to the end\r\n\t // the first time user focuses on an input with prefix\r\n\t fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\r\n\t if (!el) {\r\n\t return;\r\n\t }\r\n\r\n\t var val = el.value,\r\n\t appendix = delimiter || (delimiters[0] || ' ');\r\n\r\n\t if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) {\r\n\t return;\r\n\t }\r\n\r\n\t var len = val.length * 2;\r\n\r\n\t // set timeout to avoid blink\r\n\t setTimeout(function () {\r\n\t el.setSelectionRange(len, len);\r\n\t }, 1);\r\n\t },\r\n\r\n\t setSelection: function (element, position, doc) {\r\n\t if (element !== this.getActiveElement(doc)) {\r\n\t return;\r\n\t }\r\n\r\n\t // cursor is already in the end\r\n\t if (element && element.value.length <= position) {\r\n\t return;\r\n\t }\r\n\r\n\t if (element.createTextRange) {\r\n\t var range = element.createTextRange();\r\n\r\n\t range.move('character', position);\r\n\t range.select();\r\n\t } else {\r\n\t try {\r\n\t element.setSelectionRange(position, position);\r\n\t } catch (e) {\r\n\t // eslint-disable-next-line\r\n\t console.warn('The input element type does not support selection');\r\n\t }\r\n\t }\r\n\t },\r\n\t \r\n\t getActiveElement: function(parent) {\r\n\t var activeElement = parent.activeElement;\r\n\t if (activeElement && activeElement.shadowRoot) {\r\n\t return this.getActiveElement(activeElement.shadowRoot);\r\n\t }\r\n\t return activeElement;\r\n\t },\r\n\r\n\t isAndroid: function () {\r\n\t return navigator && /android/i.test(navigator.userAgent);\r\n\t },\r\n\r\n\t // On Android chrome, the keyup and keydown events\r\n\t // always return key code 229 as a composition that\r\n\t // buffers the user’s keystrokes\r\n\t // see https://github.com/nosir/cleave.js/issues/147\r\n\t isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\r\n\t if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\r\n\t return false;\r\n\t }\r\n\r\n\t return currentInputValue === lastInputValue.slice(0, -1);\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = Util;\r\n\r\n\r\n/***/ }),\r\n/* 7 */\r\n/***/ (function(module, exports) {\r\n\r\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\r\n\r\n\t/**\r\n\t * Props Assignment\r\n\t *\r\n\t * Separate this, so react module can share the usage\r\n\t */\r\n\tvar DefaultProperties = {\r\n\t // Maybe change to object-assign\r\n\t // for now just keep it as simple\r\n\t assign: function (target, opts) {\r\n\t target = target || {};\r\n\t opts = opts || {};\r\n\r\n\t // credit card\r\n\t target.creditCard = !!opts.creditCard;\r\n\t target.creditCardStrictMode = !!opts.creditCardStrictMode;\r\n\t target.creditCardType = '';\r\n\t target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\r\n\r\n\t // phone\r\n\t target.phone = !!opts.phone;\r\n\t target.phoneRegionCode = opts.phoneRegionCode || 'AU';\r\n\t target.phoneFormatter = {};\r\n\r\n\t // time\r\n\t target.time = !!opts.time;\r\n\t target.timePattern = opts.timePattern || ['h', 'm', 's'];\r\n\t target.timeFormatter = {};\r\n\r\n\t // date\r\n\t target.date = !!opts.date;\r\n\t target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\r\n\t target.dateFormatter = {};\r\n\r\n\t // numeral\r\n\t target.numeral = !!opts.numeral;\r\n\t target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\r\n\t target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\r\n\t target.numeralDecimalMark = opts.numeralDecimalMark || '.';\r\n\t target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\r\n\t target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\r\n\t target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\r\n\r\n\t // others\r\n\t target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\r\n\r\n\t target.uppercase = !!opts.uppercase;\r\n\t target.lowercase = !!opts.lowercase;\r\n\r\n\t target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\r\n\t target.noImmediatePrefix = !!opts.noImmediatePrefix;\r\n\t target.prefixLength = target.prefix.length;\r\n\t target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\r\n\t target.copyDelimiter = !!opts.copyDelimiter;\r\n\r\n\t target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\r\n\r\n\t target.delimiter =\r\n\t (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\r\n\t (opts.date ? '/' :\r\n\t (opts.time ? ':' :\r\n\t (opts.numeral ? ',' :\r\n\t (opts.phone ? ' ' :\r\n\t ' '))));\r\n\t target.delimiterLength = target.delimiter.length;\r\n\t target.delimiterLazyShow = !!opts.delimiterLazyShow;\r\n\t target.delimiters = opts.delimiters || [];\r\n\r\n\t target.blocks = opts.blocks || [];\r\n\t target.blocksLength = target.blocks.length;\r\n\r\n\t target.root = (typeof global === 'object' && global) ? global : window;\r\n\t target.document = opts.document || target.root.document;\r\n\r\n\t target.maxLength = 0;\r\n\r\n\t target.backspace = false;\r\n\t target.result = '';\r\n\r\n\t target.onValueChanged = opts.onValueChanged || (function () {});\r\n\r\n\t return target;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = DefaultProperties;\r\n\r\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\r\n\r\n/***/ })\r\n/******/ ])\r\n});\r\n;","/*!\n * Datepicker for Bootstrap v1.8.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\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, .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_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t} 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.prop('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 = '