{"version":3,"file":"cart.bundle.js","mappings":"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","sources":["webpack://4tochki/./webpack/bundles/cart/index.js","webpack://4tochki/./webpack/src/modules/deliveryCart/index.js","webpack://4tochki/./webpack/src/modules/fitMap2/datepicker/bootstrap-datepicker.js","webpack://4tochki/./webpack/src/modules/fitMap2/templateList.js","webpack://4tochki/./webpack/src/modules/fitMap2/templateListItem.js","webpack://4tochki/./webpack/src/modules/fitMap2/fitMapList.js","webpack://4tochki/./webpack/src/modules/fitMap2/index.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/baloonTemplate.js","webpack://4tochki/./webpack/src/modules/order/index.js","webpack://4tochki/./webpack/src/modules/paymentCart/index.js","webpack://4tochki/./webpack/src/modules/tableSteps/index.js","webpack://4tochki/./webpack/src/modules/tableCart/index.js","webpack://4tochki/./node_modules/bootstrap/js/dist/collapse.js","webpack://4tochki/./node_modules/bootstrap/js/dist/tab.js"],"sourcesContent":["import './index.scss';\n\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\n\nimport Tab from 'bootstrap/js/dist/tab';\nimport {tableCart} from 'modules/tableCart';\nimport {deliveryCart} from 'modules/deliveryCart';\nimport {order} from 'modules/order';\nimport {paymentCart} from 'modules/paymentCart';\n\n$(function() {\n tableCart.init();\n deliveryCart.init();\n order.init();\n paymentCart.init();\n});\n","import {config} from 'core/config';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\nimport {order} from 'modules/order';\nimport {paymentCart} from 'modules/paymentCart';\nimport {fitMap} from 'modules/fitMap2';\n\nexport const deliveryCart = {\n config: {\n 'street': '.delivery-address input#userStreet',\n 'house': '.delivery-address input#userHouse',\n 'comment': 'textarea[name=delivery_tk_comment]',\n 'building': '.delivery-address input#userBuild',\n 'deliveryId': 'input[name=deliveryId]:checked',\n 'deliveryPointId': 'input[name=delivery_point_id]',\n 'deliveryPointPayments': 'input[name=devivery_point_payments]',\n 'deliveryTvzPoint': 'input[name=delivery_tvz_point]',\n 'deliveryTvzAddress': 'input[name=delivery_tvz_address]',\n 'deliveryTKGUID': 'input[name=delivery_tk_guid]',\n 'ownWarehouseId': 'input[name=ownWarehouseId]',\n 'selectedDelivery': 'input[name=deliveryId][checked]',\n 'deliveryTVZmapIframe': '#delivery_tvz_map_iframe',\n 'deliveryWithoutPostfactPayment':['17', '18'],\n 'deliveryDate': 'input[name=date-radio]:checked',\n },\n init: function() {\n this.bindEvent();\n },\n bindEvent: function() {\n const deliveryCart = this;\n $(document).on('change','.delivery-address input', function () {\n deliveryCart.getDeliveryDates();\n });\n\n $(document).on('change','input[name=deliveryId]', function () {\n deliveryCart.getDeliveryDates();\n });\n\n $(document).on('change','input[name=devivery_point_payments]', function () {\n $('#deliveryId1').attr('data_payments',$(this).val());\n paymentCart.checkPaymentRules();\n });\n\n $(document).on('change','input[name=date-radio]', function () {\n order.calc();\n });\n\n $(document).on('change', 'input[name=delivery_tvz_point]', function() {\n order.collect();\n order.save();\n });\n\n $(document).on('change','.paidDelivery', function () {\n const cost = $(this).attr('cost');\n const name = $(this).attr('outname');\n $('.paidDeliveryInGoods .deliveryName').html(name);\n $('.paidDeliveryInGoods .cost').html(cost);\n if (cost > 0 || $(this).val()==18) {\n $('.paidDeliveryInGoods').removeClass('d-none');\n $('.quickOrder').addClass('d-none');\n $('.personal-data-info').addClass('d-none');\n } else if ($(this).val()==17) {\n $('.quickOrder').addClass('d-none');\n $('.personal-data-info').addClass('d-none');\n } else {\n $('.paidDeliveryInGoods').addClass('d-none');\n $('.quickOrder').removeClass('d-none');\n $('.personal-data-info').removeClass('d-none');\n }\n var deliveryId = $('input[name=deliveryId]:checked').val();\n if(deliveryId && deliveryCart.config.deliveryWithoutPostfactPayment.includes(deliveryId)){\n $('.tksto').removeClass('d-none');\n $('#tableStep3 .tab-pane.active label').first().trigger('click');\n }else{\n $('.tksto').addClass('d-none');\n }\n if(deliveryId != 5){\n $('.paymentInfo__content').hide();\n }\n paymentCart.checkPaymentRules();\n order.calc();\n });\n if($(deliveryCart.config.selectedDelivery).val() == 2 ||$(deliveryCart.config.selectedDelivery).val() == 6 ||$(deliveryCart.config.selectedDelivery).val() == 13){\n deliveryCart.getDeliveryDates();\n }\n\n\n $(document).ready(function () {\n // $('input[name=deliveryId]').prop('checked', false);\n if($('input[name=deliveryId]').length === 1 && !$('input[name=deliveryId]').prop('checked')){\n $('input[name=deliveryId]').prop('checked', true);\n $('input[name=deliveryId]').trigger('change');\n }\n var deliveryId = $('input[name=deliveryId]:checked').val();\n if(deliveryId && deliveryCart.config.deliveryWithoutPostfactPayment.includes(deliveryId)){\n $('.tksto').removeClass('d-none');\n }\n if(deliveryId != 5){\n $('.paymentInfo__content').hide();\n }\n if(deliveryId != 1){\n paymentCart.checkPaymentRules();\n }\n });\n deliveryCart.getDeliveryDates();\n },\n recalc: function(answer){\n var selected = $('input[name=deliveryId]:checked').val();\n if(selected == 18) {\n try{\n var msg=$.parseJSON(answer);\n let cost = msg.deliveryCost;\n if(cost<1){\n cost = 0;\n }\n $('.paidDeliveryInGoods .cost').html(cost);\n $('#deliveryId18').attr('cost', cost);\n $('.tvz-cost').html(cost);\n order.foldSumms();\n } catch (e){}\n }\n },\n getDeliveryDates: function(){\n $('.deliveryDateTimeSelectRegion').html('...');\n var userStreet = $(deliveryCart.config.street).val();\n var userHouse = $(deliveryCart.config.house).val();\n var userBuild = $(deliveryCart.config.building).val();\n var deliveryId = $(deliveryCart.config.deliveryId).val();\n const params = {regionDelivery:'1',deliveryId:deliveryId,userStreet:userStreet,userBuild:userBuild,userHouse:userHouse};\n if(deliveryId == 17){\n fitMap.init();\n $(fitMap.config.block).show();\n }\n if(deliveryId && !deliveryCart.config.deliveryWithoutPostfactPayment.includes(deliveryId) && !$('#pills-online-tab').length) {\n $(fitMap.config.block).hide();\n }\n setTimeout(function(){\n if(!($(paymentCart.config.paymentId).parents('label').is(':visible'))){\n $('.tab-pane.active label:visible').first().trigger('click');\n $('.tab-pane.active label:visible').first().find('input').prop('checked', true);\n setTimeout(function() {\n order.collect();\n order.save();\n },500);\n }\n },500);\n if(userStreet){\n $.when(config.doRequest(\"/Orders/getDeliveryTimes\", params, 'html','POST')).done(function(answer) {\n $('.deliveryDateTimeSelectRegion').html(answer);\n });\n }\n },\n};\n","/*!\n * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)\n *\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n\n(function(factory){\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(function($, undefined){\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction isUTCEquals(date1, date2) {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t);\n\t}\n\tfunction alias(method, deprecationMsg){\n\t\treturn function(){\n\t\t\tif (deprecationMsg !== undefined) {\n\t\t\t\t$.fn.datepicker.deprecated(deprecationMsg);\n\t\t\t}\n\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\tfunction isValidDate(d) {\n\t\treturn d && !isNaN(d.getTime());\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n // Use date arithmetic to allow dates with different times to match\n if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.length = 0;\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\t$.data(element, 'datepicker', this);\n\n\t\tthis._events = [];\n\t\tthis._secondaryEvents = [];\n\n\t\tthis._process_options(options);\n\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = this.o.defaultViewDate;\n\t\tthis.focusDate = null;\n\n\t\tthis.element = $(element);\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.inputField = this.isInput ? this.element : this.element.find('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\t\tthis.isInline = !this.component && this.element.is('div');\n\n\t\tthis.picker = $(DPGlobal.template);\n\n\t\t// Checking templates and inserting\n\t\tif (this._check_template(this.o.templates.leftArrow)) {\n\t\t\tthis.picker.find('.prev').html(this.o.templates.leftArrow);\n\t\t}\n\n\t\tif (this._check_template(this.o.templates.rightArrow)) {\n\t\t\tthis.picker.find('.next').html(this.o.templates.rightArrow);\n\t\t}\n\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tif (this.o.calendarWeeks) {\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\treturn Number(val) + 1;\n\t\t\t\t});\n\t\t}\n\n\t\tthis._process_options({\n\t\t\tstartDate: this._o.startDate,\n\t\t\tendDate: this._o.endDate,\n\t\t\tdaysOfWeekDisabled: this.o.daysOfWeekDisabled,\n\t\t\tdaysOfWeekHighlighted: this.o.daysOfWeekHighlighted,\n\t\t\tdatesDisabled: this.o.datesDisabled\n\t\t});\n\n\t\tthis._allow_update = false;\n\t\tthis.setViewMode(this.o.startView);\n\t\tthis._allow_update = true;\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis.update();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_resolveViewName: function(view){\n\t\t\t$.each(DPGlobal.viewModes, function(i, viewMode){\n\t\t\t\tif (view === i || $.inArray(view, viewMode.names) !== -1){\n\t\t\t\t\tview = i;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn view;\n\t\t},\n\n\t\t_resolveDaysOfWeek: function(daysOfWeek){\n\t\t\tif (!$.isArray(daysOfWeek))\n\t\t\t\tdaysOfWeek = daysOfWeek.split(/[,\\s]*/);\n\t\t\treturn $.map(daysOfWeek, Number);\n\t\t},\n\n\t\t_check_template: function(tmp){\n\t\t\ttry {\n\t\t\t\t// If empty\n\t\t\t\tif (tmp === undefined || tmp === \"\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// If no html, everything ok\n\t\t\t\tif ((tmp.match(/[<>]/g) || []).length <= 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Checking if html is fine\n\t\t\t\tvar jDom = $(tmp);\n\t\t\t\treturn jDom.length > 0;\n\t\t\t}\n\t\t\tcatch (ex) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\t// Retrieve view index from any aliases\n\t\t\to.startView = this._resolveViewName(o.startView);\n\t\t\to.minViewMode = this._resolveViewName(o.minViewMode);\n\t\t\to.maxViewMode = this._resolveViewName(o.maxViewMode);\n\n\t\t\t// Check view is between min and max\n\t\t\to.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = (o.weekStart + 6) % 7;\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);\n\t\t\to.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\to.datesDisabled = o.datesDisabled.split(',');\n\t\t\t}\n\t\t\to.datesDisabled = $.map(o.datesDisabled, function(d){\n\t\t\t\treturn DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn /^auto|left|right|top|bottom$/.test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^left|right$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^top|bottom$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t\tif (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {\n\t\t\t\to.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);\n\t\t\t} else if (o.defaultViewDate) {\n\t\t\t\tvar year = o.defaultViewDate.year || new Date().getFullYear();\n\t\t\t\tvar month = o.defaultViewDate.month || 0;\n\t\t\t\tvar day = o.defaultViewDate.day || 1;\n\t\t\t\to.defaultViewDate = UTCDate(year, month, day);\n\t\t\t} else {\n\t\t\t\to.defaultViewDate = UTCToday();\n\t\t\t}\n\t\t},\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t} else if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t} else if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n var events = {\n keyup: $.proxy(function(e){\n if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)\n this.update();\n }, this),\n keydown: $.proxy(this.keydown, this),\n paste: $.proxy(this.paste, this)\n };\n\n if (this.o.showOnFocus === true) {\n events.focus = $.proxy(this.show, this);\n }\n\n if (this.isInput) { // single input\n this._events = [\n [this.element, events]\n ];\n }\n // component: input + button\n else if (this.component && this.inputField.length) {\n this._events = [\n // For components that are not readonly, allow keyboard nav\n [this.inputField, events],\n [this.component, {\n click: $.proxy(this.show, this)\n }]\n ];\n }\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tif (this.o.immediateUpdates) {\n\t\t\t\t// Trigger input updates immediately on changed year/month\n\t\t\t\tthis._events.push([this.element, {\n\t\t\t\t\t'changeYear changeMonth': $.proxy(function(e){\n\t\t\t\t\t\tthis.update(e.date);\n\t\t\t\t\t}, this)\n\t\t\t\t}]);\n\t\t\t}\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[this.picker, '.prev, .next', {\n\t\t\t\t\tclick: $.proxy(this.navArrowsClick, this)\n\t\t\t\t}],\n\t\t\t\t[this.picker, '.day:not(.disabled)', {\n\t\t\t\t\tclick: $.proxy(this.dayCellClick, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length ||\n\t\t\t\t\t\t\tthis.isInline\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tviewMode: this.viewMode,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t} else if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (this.inputField.is(':disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false))\n\t\t\t\treturn;\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo(this.o.container);\n\t\t\tthis.place();\n\t\t\tthis.picker.show();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t\tif ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n\t\t\t\t$(this.element).blur();\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline || !this.picker.is(':visible'))\n\t\t\t\treturn this;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.setViewMode(this.o.startView);\n\n\t\t\tif (this.o.forceParse && this.inputField.val())\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t\treturn this;\n\t\t},\n\n\t\tdestroy: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tpaste: function(e){\n\t\t\tvar dateString;\n\t\t\tif (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = e.originalEvent.clipboardData.getData('text/plain');\n\t\t\t} else if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\te.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\tif (!utc) {\n\t\t\t\treturn utc;\n\t\t\t}\n\n\t\t\tvar local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));\n\n\t\t\tif (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {\n\t\t\t\tlocal = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));\n\t\t\t}\n\n\t\t\treturn local;\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\tvar selected_date = this.dates.get(-1);\n\t\t\tif (selected_date !== undefined) {\n\t\t\t\treturn new Date(selected_date);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\tclearDates: function(){\n\t\t\tthis.inputField.val('');\n\t\t\tthis.update();\n\t\t\tthis._trigger('changeDate');\n\n\t\t\tif (this.o.autoclose) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.setDates.apply(this, $.map(args, this._utc_to_local));\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tthis.inputField.val(formatted);\n\t\t\treturn this;\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tgetStartDate: function(){\n\t\t\treturn this.o.startDate;\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tgetEndDate: function(){\n\t\t\treturn this.o.endDate;\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekHighlighted: function(daysOfWeekHighlighted){\n\t\t\tthis._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDatesDisabled: function(datesDisabled){\n\t\t\tthis._process_options({datesDisabled: datesDisabled});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\tcontainer = $(this.o.container),\n\t\t\t\twindowWidth = container.width(),\n\t\t\t\tscrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n\t\t\t\tappendOffset = container.offset();\n\n\t\t\tvar parentsZindex = [0];\n\t\t\tthis.element.parents().each(function(){\n\t\t\t\tvar itemZIndex = $(this).css('z-index');\n\t\t\t\tif (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));\n\t\t\t});\n\t\t\tvar zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left - appendOffset.left;\n\t\t\tvar top = offset.top - appendOffset.top;\n\n\t\t\tif (this.o.container !== 'body') {\n\t\t\t\ttop += scrollTop;\n\t\t\t}\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\tif (offset.left < 0) {\n\t\t\t\t\t// component is outside the window on the left side. Move it into visible range\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\t} else if (left + calendarWidth > windowWidth) {\n\t\t\t\t\t// the calendar passes the widow right edge. Align it to component right side\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\tleft += width - calendarWidth;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.o.rtl) {\n\t\t\t\t\t\t// Default to right\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Default to left\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + top - calendarHeight;\n\t\t\t\tyorient = top_overflow < 0 ? 'bottom' : 'top';\n\t\t\t}\n\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\t\t\telse\n\t\t\t\ttop += height;\n\n\t\t\tif (this.o.rtl) {\n\t\t\t\tvar right = windowWidth - (left + width);\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tright: right,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tleft: left,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn this;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t} else {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.inputField.val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\t!this.dateWithinRange(date) ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.o.updateViewDate) {\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\t\telse\n\t\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\t\t\t}\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t\tthis.element.change();\n\t\t\t}\n\t\t\telse if (this.dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates) && fromArgs) {\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\tthis.element.change();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length) {\n\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tthis.element.change();\n\t\t\t}\n\n\t\t\tthis.fill();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n if (this.o.showWeekDays) {\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\thtml += ' ';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += '';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n }\n\t\t},\n\n\t\tfillMonths: function(){\n var localDate = this._utc_to_local(this.viewDate);\n\t\t\tvar html = '';\n\t\t\tvar focused;\n\t\t\tfor (var i = 0; i < 12; i++){\n\t\t\t\tfocused = localDate && localDate.getMonth() === i ? ' focused' : '';\n\t\t\t\thtml += '' + dates[this.o.language].monthsShort[i] + '';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = UTCToday();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t} else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with UTC today, not local today\n\t\t\tif (this.o.todayHighlight && isUTCEquals(date, today)) {\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (!this.dateWithinRange(date)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled', 'disabled-date');\n\t\t\t}\n\t\t\tif ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){\n\t\t\t\tcls.push('highlighted');\n\t\t\t}\n\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t\tif (date.valueOf() === this.range[0]){\n cls.push('range-start');\n }\n if (date.valueOf() === this.range[this.range.length-1]){\n cls.push('range-end');\n }\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\t_fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){\n\t\t\tvar html = '';\n\t\t\tvar step = factor / 10;\n\t\t\tvar view = this.picker.find(selector);\n\t\t\tvar startVal = Math.floor(year / factor) * factor;\n\t\t\tvar endVal = startVal + step * 9;\n\t\t\tvar focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;\n\t\t\tvar selected = $.map(this.dates, function(d){\n\t\t\t\treturn Math.floor(d.getUTCFullYear() / step) * step;\n\t\t\t});\n\n\t\t\tvar classes, tooltip, before;\n\t\t\tfor (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {\n\t\t\t\tclasses = [cssClass];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (currVal === startVal - step) {\n\t\t\t\t\tclasses.push('old');\n\t\t\t\t} else if (currVal === endVal + step) {\n\t\t\t\t\tclasses.push('new');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(currVal, selected) !== -1) {\n\t\t\t\t\tclasses.push('active');\n\t\t\t\t}\n\t\t\t\tif (currVal < startYear || currVal > endYear) {\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t}\n\t\t\t\tif (currVal === focusedVal) {\n\t\t\t\t classes.push('focused');\n }\n\n\t\t\t\tif (beforeFn !== $.noop) {\n\t\t\t\t\tbefore = beforeFn(new Date(currVal, 0, 1));\n\t\t\t\t\tif (before === undefined) {\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\t} else if (typeof before === 'boolean') {\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\t} else if (typeof before === 'string') {\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\t}\n\t\t\t\t\tif (before.enabled === false) {\n\t\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t\t}\n\t\t\t\t\tif (before.classes) {\n\t\t\t\t\t\tclasses = classes.concat(before.classes.split(/\\s+/));\n\t\t\t\t\t}\n\t\t\t\t\tif (before.tooltip) {\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\thtml += '' + currVal + '';\n\t\t\t}\n\n\t\t\tview.find('.datepicker-switch').text(startVal + '-' + endVal);\n\t\t\tview.find('td').html(html);\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n todayDate = UTCToday(),\n titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),\n\t\t\t\ttooltip,\n\t\t\t\tbefore;\n\t\t\tif (isNaN(year) || isNaN(month))\n\t\t\t\treturn;\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t\t.text(DPGlobal.formatDate(d, titleFormat, this.o.language));\n\t\t\tthis.picker.find('tfoot .today')\n\t\t\t\t\t\t.text(todaytxt)\n .css('display', titleBtnVisible ? 'table-cell' : 'none');\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.css('display', this.o.clearBtn === true ? 'table-cell' : 'none');\n\t\t\tthis.picker.find('thead .datepicker-title')\n\t\t\t\t\t\t.text(this.o.title)\n\t\t\t\t\t\t.css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month, 0),\n\t\t\t\tday = prevMonth.getUTCDate();\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tif (prevMonth.getUTCFullYear() < 100){\n nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n }\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar weekDay, clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tweekDay = prevMonth.getUTCDay();\n\t\t\t\tif (weekDay === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tvar content = prevMonth.getUTCDate();\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tbefore = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof before === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof before === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t\tif (before.content)\n\t\t\t\t\t\tcontent = before.content;\n\t\t\t\t}\n\n\t\t\t\t//Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)\n\t\t\t\t//Fallback to unique function for older jquery versions\n\t\t\t\tif ($.isFunction($.uniqueSort)) {\n\t\t\t\t\tclsName = $.uniqueSort(clsName);\n\t\t\t\t} else {\n\t\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\t}\n\n\t\t\t\thtml.push('' + content + '');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (weekDay === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate() + 1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').html(html.join(''));\n\n\t\t\tvar monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t.text(this.o.maxViewMode < 2 ? monthsTitle : year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('tbody span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\tif (this.o.beforeShowMonth !== $.noop){\n\t\t\t\tvar that = this;\n\t\t\t\t$.each(months, function(i, month){\n var moDate = new Date(year, i, 1);\n var before = that.o.beforeShowMonth(moDate);\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof before === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof before === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false && !$(month).hasClass('disabled'))\n\t\t\t\t\t $(month).addClass('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t $(month).addClass(before.classes);\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t $(month).prop('title', before.tooltip);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Generating decade/years picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-years',\n\t\t\t\t'year',\n\t\t\t\t10,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowYear\n\t\t\t);\n\n\t\t\t// Generating century/decades picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-decades',\n\t\t\t\t'decade',\n\t\t\t\t100,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowDecade\n\t\t\t);\n\n\t\t\t// Generating millennium/centuries picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-centuries',\n\t\t\t\t'century',\n\t\t\t\t1000,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowCentury\n\t\t\t);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\tprevIsDisabled,\n\t\t\t\tnextIsDisabled,\n\t\t\t\tfactor = 1;\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 4:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 3:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 2:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\tprevIsDisabled = Math.floor(year / factor) * factor <= startYear;\n\t\t\t\t\tnextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tprevIsDisabled = year <= startYear && month <= startMonth;\n\t\t\t\t\tnextIsDisabled = year >= endYear && month >= endMonth;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis.picker.find('.prev').toggleClass('disabled', prevIsDisabled);\n\t\t\tthis.picker.find('.next').toggleClass('disabled', nextIsDisabled);\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tvar target, dir, day, year, month;\n\t\t\ttarget = $(e.target);\n\n\t\t\t// Clicked on the switch\n\t\t\tif (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){\n\t\t\t\tthis.setViewMode(this.viewMode + 1);\n\t\t\t}\n\n\t\t\t// Clicked on today button\n\t\t\tif (target.hasClass('today') && !target.hasClass('day')){\n\t\t\t\tthis.setViewMode(0);\n\t\t\t\tthis._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');\n\t\t\t}\n\n\t\t\t// Clicked on clear button\n\t\t\tif (target.hasClass('clear')){\n\t\t\t\tthis.clearDates();\n\t\t\t}\n\n\t\t\tif (!target.hasClass('disabled')){\n\t\t\t\t// Clicked on a month, year, decade, century\n\t\t\t\tif (target.hasClass('month')\n\t\t\t\t\t\t|| target.hasClass('year')\n\t\t\t\t\t\t|| target.hasClass('decade')\n\t\t\t\t\t\t|| target.hasClass('century')) {\n\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\n\t\t\t\t\tday = 1;\n\t\t\t\t\tif (this.viewMode === 1){\n\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\tyear = Number(target.text());\n\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);\n\n\t\t\t\t\tif (this.viewMode === this.o.minViewMode){\n\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setViewMode(this.viewMode - 1);\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\tthis._focused_from.focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\tdayCellClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar timestamp = $target.data('date');\n\t\t\tvar date = new Date(timestamp);\n\n\t\t\tif (this.o.updateViewDate) {\n\t\t\t\tif (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {\n\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t}\n\n\t\t\t\tif (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {\n\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._setDate(date);\n\t\t},\n\n\t\t// Clicked on prev or next\n\t\tnavArrowsClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar dir = $target.hasClass('prev') ? -1 : 1;\n\t\t\tif (this.viewMode !== 0){\n\t\t\t\tdir *= DPGlobal.viewModes[this.viewMode].navStep * 12;\n\t\t\t}\n\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);\n\t\t\tthis.fill();\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\n\t\t\tif (ix !== -1){\n\t\t\t\tif (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){\n\t\t\t\t\tthis.dates.remove(ix);\n\t\t\t\t}\n\t\t\t} else if (this.o.multidate === false) {\n\t\t\t\tthis.dates.clear();\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif ((!which && this.o.updateViewDate) || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tif (!which || which !== 'view') {\n\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tthis.inputField.trigger('change');\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveDay: function(date, dir){\n\t\t\tvar newDate = new Date(date);\n\t\t\tnewDate.setUTCDate(date.getUTCDate() + dir);\n\n\t\t\treturn newDate;\n\t\t},\n\n\t\tmoveWeek: function(date, dir){\n\t\t\treturn this.moveDay(date, dir * 7);\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!isValidDate(date))\n\t\t\t\treturn this.o.defaultViewDate;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tmoveAvailableDate: function(date, dir, fn){\n\t\t\tdo {\n\t\t\t\tdate = this[fn](date, dir);\n\n\t\t\t\tif (!this.dateWithinRange(date))\n\t\t\t\t\treturn false;\n\n\t\t\t\tfn = 'moveDay';\n\t\t\t}\n\t\t\twhile (this.dateIsDisabled(date));\n\n\t\t\treturn date;\n\t\t},\n\n\t\tweekOfDateIsDisabled: function(date){\n\t\t\treturn $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n\t\t},\n\n\t\tdateIsDisabled: function(date){\n\t\t\treturn (\n\t\t\t\tthis.weekOfDateIsDisabled(date) ||\n\t\t\t\t$.grep(this.o.datesDisabled, function(d){\n\t\t\t\t\treturn isUTCEquals(date, d);\n\t\t\t\t}).length > 0\n\t\t\t);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (!this.picker.is(':visible')){\n\t\t\t\tif (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\t\te.stopPropagation();\n }\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 39: // right\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n if (this.viewMode === 0) {\n \t\t\t\t\tif (e.ctrlKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n \t\t\t\t\t} else if (e.shiftKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n \t\t\t\t\t} else if (e.keyCode === 37 || e.keyCode === 39){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n \t\t\t\t\t} else if (!this.weekOfDateIsDisabled(focusDate)){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n \t\t\t\t\t}\n } else if (this.viewMode === 1) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n } else if (this.viewMode === 2) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n }\n\t\t\t\t\tif (newViewDate){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tif (!this.o.forceParse)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tif (this.o.keyboardNavigation) {\n\t\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tthis.inputField.trigger('change');\n\t\t\t}\n\t\t},\n\n\t\tsetViewMode: function(viewMode){\n\t\t\tthis.viewMode = viewMode;\n\t\t\tthis.picker\n\t\t\t\t.children('div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n this._trigger('changeViewMode', new Date(this.viewDate));\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$.data(element, 'datepicker', this);\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\tthis.keepEmptyValues = options.keepEmptyValues;\n\t\tdelete options.keepEmptyValues;\n\n\t\tdatepickerPlugin.call($(this.inputs), options)\n\t\t\t.on('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $.data(i, 'datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tclearDates: function(){\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.clearDates();\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $.data(e.target, 'datepicker');\n\n\t\t\tif (dp === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\tkeep_empty_values = this.keepEmptyValues,\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tj = i - 1,\n\t\t\t\tk = i + 1,\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate() && (p === dp || !keep_empty_values))\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[j]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (j >= 0 && new_date < this.dates[j]){\n\t\t\t\t\tthis.pickers[j--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t} else if (new_date > this.dates[k]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (k < l && new_date > this.dates[k]){\n\t\t\t\t\tthis.pickers[k++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tdestroy: function(){\n\t\t\t$.map(this.pickers, function(p){ p.destroy(); });\n\t\t\t$(this.inputs).off('changeDate', this.dateUpdated);\n\t\t\tdelete this.element.data().datepicker;\n\t\t},\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\tvar datepickerPlugin = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.hasClass('input-daterange') || opts.inputs){\n\t\t\t\t\t$.extend(opts, {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t});\n\t\t\t\t\tdata = new DateRangePicker(this, opts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata = new Datepicker(this, opts);\n\t\t\t\t}\n\t\t\t\t$this.data('datepicker', data);\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tinternal_return === undefined ||\n\t\t\tinternal_return instanceof Datepicker ||\n\t\t\tinternal_return instanceof DateRangePicker\n\t\t)\n\t\t\treturn this;\n\n\t\tif (this.length > 1)\n\t\t\tthrow new Error('Using only allowed for the collection of a single element (' + option + ' function)');\n\t\telse\n\t\t\treturn internal_return;\n\t};\n\t$.fn.datepicker = datepickerPlugin;\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tassumeNearbyYear: false,\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tbeforeShowMonth: $.noop,\n\t\tbeforeShowYear: $.noop,\n\t\tbeforeShowDecade: $.noop,\n\t\tbeforeShowCentury: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\ttoggleActive: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tdaysOfWeekHighlighted: [],\n\t\tdatesDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeepEmptyValues: false,\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmaxViewMode: 4,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tupdateViewDate: true,\n\t\tweekStart: 0,\n\t\tdisableTouchKeyboard: false,\n\t\tenableOnReadonly: true,\n\t\tshowOnFocus: true,\n\t\tzIndexOffset: 10,\n\t\tcontainer: 'body',\n\t\timmediateUpdates: false,\n\t\ttitle: '',\n\t\ttemplates: {\n\t\t\tleftArrow: '«',\n\t\t\trightArrow: '»'\n\t\t},\n showWeekDays: true\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\",\n\t\t\ttitleFormat: \"MM yyyy\"\n\t\t},\n\t\tru: {\n\t\t\tdays: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"],\n\t\t\tdaysShort: [\"Вск\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\"],\n\t\t\tdaysMin: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n\t\t\tmonths: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"],\n\t\t\tmonthsShort: [\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\"],\n\t\t\ttoday: \"Сегодня\",\n\t\t\tclear: \"Очистить\",\n\t\t\tformat: \"dd.mm.yyyy\",\n\t\t\tweekStart: 1,\n\t\t\tmonthsTitle: \"Месяцы\"\n\t\t},\n\t};\n\n\tvar DPGlobal = {\n\t\tviewModes: [\n\t\t\t{\n\t\t\t\tnames: ['days', 'month'],\n\t\t\t\tclsName: 'days',\n\t\t\t\te: 'changeMonth'\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['months', 'year'],\n\t\t\t\tclsName: 'months',\n\t\t\t\te: 'changeYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['years', 'decade'],\n\t\t\t\tclsName: 'years',\n\t\t\t\te: 'changeDecade',\n\t\t\t\tnavStep: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['decades', 'century'],\n\t\t\t\tclsName: 'decades',\n\t\t\t\te: 'changeCentury',\n\t\t\t\tnavStep: 100\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['centuries', 'millennium'],\n\t\t\t\tclsName: 'centuries',\n\t\t\t\te: 'changeMillennium',\n\t\t\t\tnavStep: 1000\n\t\t\t}\n\t\t],\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\u5e74\\u6708\\u65e5\\[-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\tif (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')\n return format;\n // IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language, assumeNearby){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toValue)\n\t\t\t\treturn format.toValue(date, format, language);\n\t\t\tvar fn_map = {\n\t\t\t\t\td: 'moveDay',\n\t\t\t\t\tm: 'moveMonth',\n\t\t\t\t\tw: 'moveWeek',\n\t\t\t\t\ty: 'moveYear'\n\t\t\t\t},\n\t\t\t\tdateAliases = {\n\t\t\t\t\tyesterday: '-1d',\n\t\t\t\t\ttoday: '+0d',\n\t\t\t\t\ttomorrow: '+1d'\n\t\t\t\t},\n\t\t\t\tparts, part, dir, i, fn;\n\t\t\tif (date in dateAliases){\n\t\t\t\tdate = dateAliases[date];\n\t\t\t}\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/i.test(date)){\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/gi);\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = parts[i].match(/([\\-+]\\d+)([dmwy])/i);\n\t\t\t\t\tdir = Number(part[1]);\n\t\t\t\t\tfn = fn_map[part[2].toLowerCase()];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn Datepicker.prototype._zero_utc_time(date);\n\t\t\t}\n\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\n\t\t\tfunction applyNearbyYear(year, threshold){\n\t\t\t\tif (threshold === true)\n\t\t\t\t\tthreshold = 10;\n\n\t\t\t\t// if year is 2 digits or less, than the user most likely is trying to get a recent century\n\t\t\t\tif (year < 100){\n\t\t\t\t\tyear += 2000;\n\t\t\t\t\t// if the new year is more than threshold years in advance, use last century\n\t\t\t\t\tif (year > ((new Date()).getFullYear()+threshold)){\n\t\t\t\t\t\tyear -= 100;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn year;\n\t\t\t}\n\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['yy'] = setters_map['yyyy'];\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCToday();\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m.toLowerCase() === p.toLowerCase();\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toDisplay)\n return format.toDisplay(date, format, language);\n var val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+defaults.templates.leftArrow+''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+defaults.templates.rightArrow+''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\t/* DATEPICKER VERSION\n\t * =================== */\n\t$.fn.datepicker.version = '1.9.0';\n\n\t$.fn.datepicker.deprecated = function(msg){\n\t\tvar console = window.console;\n\t\tif (console && console.warn) {\n\t\t\tconsole.warn('DEPRECATED: ' + msg);\n\t\t}\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\tdatepickerPlugin.call($this, 'show');\n\t\t}\n\t);\n\t$(function(){\n\t\tdatepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n\t});\n\n}));\n","export const templateList = (data) =>\n ``;\n","export const templateListItem = (data) =>\n `
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
`;\n","import {config} from 'core/config';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\nimport {spinner} from 'modules/spinner';\nimport {templateListItem} from './templateListItem';\nimport {datepicker} from './datepicker/bootstrap-datepicker';\nimport {fitMap} from \"modules/fitMap2/index\";\nimport {order} from \"modules/order\";\nimport {paymentCart} from \"modules/paymentCart\";\n// import './datepicker/bootstrap-datepicker.ru.min.js';\n\nlet selectDateSto;\n\nexport const fitMapList = {\n config: {\n 'list': '.fitMap__list',\n 'listItem': '.fitMap__list-item',\n 'listItemInner': '.fitMap__list-item-inner',\n 'listItemActive': 'fitMap__list-item--active',\n 'formGroupTime': '.js-form-group-time',\n 'formGroupMark': '.js-form-group-mark',\n 'formGroupModel': '.js-form-group-model',\n 'listContainer': '.fitMap-container',\n 'listHideContainer': '.hide_fitMap__block',\n },\n init: function(html) {\n // $(fitMapList.config.list).html(html);\n $(fitMapList.config.list).html(`\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n
\n `);\n this.bindEvents();\n let days = 0;\n if (document.getElementById('onlyService').value !== '1') {\n days = $('#address').find(':selected').attr('data-fitMapDeliveryDays');\n }\n fitMapList.initCalendar(parseInt(days));\n $('.fitMap__address').text($('#address').find(':selected').attr('data-fitmapaddress'));\n },\n bindEvents: function() {\n $(document).on('click', '.js-fitMapItem', function() {\n $(fitMapList.config.listItem).removeClass(fitMapList.config.listItemActive);\n $(fitMapList.config.listItemInner).remove();\n $(this).parents(fitMapList.config.listItem).addClass(fitMapList.config.listItemActive);\n const pointId = $(this).parents(fitMapList.config.listItem).attr('data-fitmapid');\n fitMapList.appendForm(pointId);\n });\n $(document).on('click', '.fitMap__time .btn', function() {\n order.collect();\n order.save();\n });\n\n $(document).on('click', '#showFitMap', function() {\n $(fitMapList.config.listHideContainer).hide();\n $(fitMapList.config.listContainer).show();\n fitMap.normalizeZoom();\n return false;\n });\n\n $(document).on('change', 'select#address', function() {\n const id = $(this).find(':selected').val();\n const address = $(this).find(':selected').attr('data-fitmapaddress');\n let days = 0;\n if (document.getElementById('onlyService').value !== '1') {\n days = $('#address').find(':selected').attr('data-fitMapDeliveryDays');\n }\n fitMapList.initCalendar(parseInt(days));\n $('.fitMap__address').text(address);\n\n const selectedVal = selectDateSto;\n spinner.show($('.fitMap__time'));\n const selectedId = $('#address').find(':selected').attr('data-fitmapid');\n const timeBlock = $('.fitMap__time');\n let needDelivery = 'true';\n if (document.getElementById('onlyService').value === '1') {\n needDelivery = 'false';\n }\n $.when(config.doRequest('/orders/stotimeslist/', {'id': selectedId, 'date': selectedVal, 'needDelivery': needDelivery})).done(function(answer) {\n timeBlock.html('');\n if (answer.scheduleItems[0].availableTime.length > 0) {\n $.each(answer.scheduleItems[0].availableTime, function() {\n timeBlock.append(`\n `);\n });\n } else {\n timeBlock.append(`
Свободных часов для записи не найдено
`);\n }\n spinner.hide($('.fitMap__time'));\n });\n });\n\n $(document).on('change', 'select#date', function() {\n const selectedVal = $(this).find(':selected').val();\n if (!selectedVal || selectedVal === 'Дата') return;\n spinner.show($(this).parents(fitMapList.config.listItem));\n const selectedId = $(this).parents('.fitMap__list-item').attr('data-fitmapid');\n const dropdown = $('select#time');\n let needDelivery = 'true';\n if (document.getElementById('onlyService').value === '1') {\n needDelivery = 'false';\n }\n $.when(config.doRequest('/orders/stotimeslist/', {'id': selectedId, 'date': selectedVal, 'needDelivery': needDelivery})).done(function(answer) {\n dropdown.prop('disabled', false);\n dropdown.find('option:not(:first)').remove();\n let counter = 1;\n if (answer.scheduleItems[0].availableTime.length > 0) {\n $.each(answer.scheduleItems[0].availableTime, function() {\n dropdown.append(``);\n counter++;\n });\n } else {\n dropdown.append(`
Свободных часов для записи не найдено
`);\n }\n spinner.hide();\n $('select#date').prop('disabled', false);\n });\n });\n\n $(document).on('change', 'select#time', function() {\n const selected = $(this).find(':selected');\n if (!selected) return;\n $('.js-form-row-fio').show();\n\n const maskPhone = document.querySelector('.input-phone');\n const maskCarNumber = document.querySelector('.input-carnumber');\n if (maskPhone) {\n require(['imask'], function() {\n IMask(maskPhone, {\n mask: '+{7} (000) 000-00-00',\n lazy: false,\n });\n });\n }\n if (maskCarNumber) {\n require(['imask'], function() {\n IMask(maskCarNumber, {\n mask: /^[\\da-zа-я]+$/,\n lazy: true,\n });\n });\n }\n });\n\n $(document).on('submit', 'form#form-signup', function() {\n $('.fdatetime').html('');\n $('.fcarnumber').html('');\n const stoid = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapid');\n const stoaddress = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapaddress');\n const data = $(this).serialize();\n spinner.show($(this).parents(fitMapList.config.listItem));\n $.when(config.doRequest('/orders/registrationinsto', {'stoid': stoid, 'data': data})).done(function(answer) {\n if (answer.result) {\n const date = new Date(answer.tireFittingTime);\n const day = date.getDate().toString().padStart(2, '0');\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n const h = date.getHours();\n const m = date.getMinutes().toString().padStart(2, '0');\n const formatDatetime = day + '.' + month + '.' + year + ' ' + h + ':' + m;\n $('#tableStepShm').css('padding', '15px').html('Выбранная точка: '+stoaddress+'
Выбранное время: ' + formatDatetime + '
Стоимость услуг: ' + answer.serviceInfo.price + ' руб.
Отменить запись');\n } else {\n switch (answer.error) {\n case 'Время на запись занято. Попробуйте выбрать другое время':\n $('.fdatetime').html('Это время уже занято');\n break;\n case 'Неправильный гос. номер автомобиля':\n $('.fcarnumber').html('Неправильный номер автомобиля');\n break;\n default:\n $('.fdatetime').html('Произошла ошибка записи');\n }\n }\n spinner.hide();\n });\n return false;\n });\n\n $('.bsDatepicker').on('changeDate', function(e) {\n const selectedVal = e.format();\n selectDateSto = e.format();\n spinner.show($('.fitMap__time'));\n const selectedId = $('#address').find(':selected').attr('data-fitmapid');\n const timeBlock = $('.fitMap__time');\n let needDelivery = 'true';\n if (document.getElementById('onlyService').value === '1') {\n needDelivery = 'false';\n }\n $.when(config.doRequest('/orders/stotimeslist/', {'id': selectedId, 'date': selectedVal, 'needDelivery': needDelivery})).done(function(answer) {\n timeBlock.html('');\n if (answer.scheduleItems[0].availableTime.length > 0) {\n $.each(answer.scheduleItems[0].availableTime, function() {\n timeBlock.append(`\n `);\n });\n fitMapList.selectTimeSto();\n } else {\n timeBlock.append(`
Свободных часов для записи не найдено
`);\n }\n });\n });\n\n $(document).on('click', '.js-setSto', function() {\n document.querySelector('.fitMap__list').scrollIntoView();\n });\n },\n selectTimeSto: function() {\n if (document.getElementById('onlyService').value === '1' && document.querySelector('.initFitMap').value === '0') {\n const expDate = document.getElementById('selectedDateTime').value.split(' ');\n const d = Date.parse(expDate[0]);\n document.querySelector('.datepicker-days .active').classList.remove('active');\n document.querySelector('[data-date=\"' + d + '\"]').classList.add('active');\n document.querySelector('[data-time=\"' + expDate[1] + '\"]').classList.add('active');\n document.querySelector('.initFitMap').value = 1;\n }\n },\n appendForm: function(id) {\n if (id) {\n $(fitMapList.config.listItem).removeClass(fitMapList.config.listItemActive);\n $(fitMapList.config.listItemInner).remove();\n const item = document.querySelector(`.fitMap__list-item[data-fitmapid=\"${id}\"]`);\n item.classList.add(fitMapList.config.listItemActive);\n const topPos = item.offsetTop;\n document.querySelector('.fitMap__list').scrollTop = topPos;\n }\n if ($(`.${fitMapList.config.listItemActive} .fitMap__list-item-inner`).length == 0) {\n $(`.${fitMapList.config.listItemActive}`).append(templateListItem);\n }\n spinner.show($(this).parents(fitMapList.config.listItem));\n let shopListUrl = '/Orders/deliveryPoints/maxdays.php';\n if ($('.changeRegionId').length) {\n shopListUrl += '?region_id='+$('.changeRegionId').attr('newRegionId');\n }\n let needDelivery = 'true';\n if (document.getElementById('onlyService').value === '1') {\n needDelivery = 'false';\n }\n $.getJSON(shopListUrl, {'id': id, 'needDelivery': needDelivery}, function(json) {\n const dates = [];\n const date = new Date();\n for (let i = 0; i < 14; i++) {\n const tempDate = new Date();\n tempDate.setDate(date.getDate()+(i+json));\n const dd = tempDate.getDate().toString().padStart(2, '0');\n let mm = tempDate.getMonth() + 1;\n mm = mm.toString().padStart(2, '0');\n const yyyy = tempDate.getFullYear();\n const fRest = yyyy + '-' + mm + '-' + dd;\n const fChpu = dd + '.' + mm + '.' + yyyy;\n dates[i] = [fRest, fChpu];\n }\n const dropdown = $('select#date');\n dropdown.html('');\n $.each(dates, function(a, b) {\n dropdown.append('');\n });\n spinner.hide();\n });\n $('select#date').prop('disabled', false);\n },\n selectAddress: function(id) {\n const currentId = $('select#address').find(':selected').val();\n if (currentId != id) {\n $('select#address').val(id).trigger('change');\n }\n },\n initCalendar: function(days = 0, selector = '.bsDatepicker') {\n // SANDBOX - https://uxsolutions.github.io/bootstrap-datepicker/\n spinner.show($(selector));\n $(selector).datepicker('destroy');\n const iconArrowLeft = ``;\n const iconArrowRight = ``;\n const dates = [];\n const enableDays = [];\n const date = new Date();\n for (let i = 0; i < 14; i++) {\n const tempDate = new Date();\n tempDate.setDate(date.getDate() + (i + days));\n const dd = tempDate.getDate().toString().padStart(2, '0');\n let mm = tempDate.getMonth() + 1;\n mm = mm.toString().padStart(2, '0');\n const yyyy = tempDate.getFullYear();\n const fRest = yyyy + '-' + mm + '-' + dd;\n const fChpu = dd + '.' + mm + '.' + yyyy;\n dates[i] = [fRest, fChpu];\n enableDays[i] = yyyy + '-' + mm + '-' + dd;\n }\n $('.fitMap__time').html('');\n $(selector).datepicker({\n maxViewMode: 1,\n weekStart: 1,\n startDate: '+0d',\n templates: {\n leftArrow: iconArrowLeft,\n rightArrow: iconArrowRight,\n },\n beforeShowDay: function(d) {\n // console.log(enableDays[0]);\n if (enableDays.length > 0) {\n if (enableDays.indexOf(fitMapList.formatDate(d)) < 0) {\n $('.fitMap__clearTime').show();\n return {enabled: false};\n } else {\n return {enabled: true};\n }\n }\n },\n // todayHighlight: true,\n format: 'yyyy-mm-dd',\n language: 'ru',\n });\n\n // выставляем первую возможную дату\n if (document.getElementById('onlyService').value === '1' && document.querySelector('.initFitMap').value === '0') {\n const expDate = document.getElementById('selectedDateTime').value.split(' ');\n $(selector).datepicker('setDate', expDate[0]);\n } else {\n $(selector).datepicker('setDate', enableDays[0]);\n }\n $('#deliveryId17').attr('data_payments',$('.fitMapSelect #address').find('option:selected').attr('data-fitMapPayments')).trigger('change');\n paymentCart.checkPaymentRules();\n order.params.sto.amount = $('.fitMapSelect #address').find('option:selected').attr('data-fitMapAmount');\n order.params.sto.discount = $('.fitMapSelect #address').find('option:selected').attr('data-fitMapDiscount');\n order.calc();\n spinner.hide($(selector));\n },\n formatDate: function(d) {\n let day = String(d.getDate());\n if (day.length == 1) {\n day = '0' + day;\n };\n let month = String((d.getMonth() + 1));\n if (month.length == 1) {\n month = '0' + month;\n };\n return d.getFullYear() + '-' + month + '-' + day;\n },\n};\n","import './bootstrap-datepicker.scss';\nimport './index.scss';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\n\nimport Tab from 'bootstrap/js/dist/tab';\n\nimport {config} from 'core/config';\nimport {spinner} from 'modules/spinner';\nimport {templateList} from './templateList';\nimport {fitMapList} from './fitMapList';\nimport {baloonTemplate} from 'modules/fitMapPodbor/baloonTemplate';\nimport {paymentCart} from \"modules/paymentCart\";\n\nlet activePlacemark;\nlet myMap;\nexport const fitMap = {\n config: {\n 'container': '#tableStepShm',\n 'container0': '#tableStepShm0',\n 'postfactPayment': '.or-payment-btn-div:not([data-payformafiz=\"Предоплачено\"])',\n 'listItem': '.fitMap__list',\n 'block': '.fitMap__block',\n },\n init: function () {\n this.bindEvents();\n },\n bindEvents: function () {\n $(document).on('click', '.js-delete-shm', function () {\n $('#tableStepShm').css('padding', '0px').html('
');\n spinner.show($(fitMap.config.container));\n $.when(config.doRequest('/orders/deleteregistrationinsto')).done(function () {\n fitMap.initYandexMap();\n });\n });\n const fitMapButton = $(`button[href=\"${fitMap.config.container}\"]`);\n if ($(fitMap.config.container).hasClass('map-initialized')) {\n return;\n }\n spinner.show($(fitMap.config.container));\n if (typeof ymaps == 'undefined') {\n $.getScript('https://api-maps.yandex.ru/2.1/?apikey=607007ed-0904-4368-8445-809187c8313d&load=package.standard&lang=ru-RU', function () {\n if (typeof ymaps !== 'undefined') {\n fitMap.initYandexMap();\n }\n });\n } else {\n fitMap.initYandexMap();\n }\n $(fitMap.config.container).addClass('map-initialized');\n\n const maskCarNumber = document.querySelector('.input-carnumber');\n if (maskCarNumber) {\n require(['imask'], function () {\n IMask(maskCarNumber, {\n mask: /^[\\dAaBbEeKkMmHhOoPpCcTtXxYyАаВвЕеКкМмНнОоРрСсТтХхУу]+$/,\n lazy: true,\n });\n });\n }\n },\n initYandexMap: function () {\n ymaps.ready(function () {\n $.when(config.doRequest('/orders/stolistbyrest/')).done(function (data) {\n const points = data.stoList ? data.stoList : data.searchResult;\n myMap = new ymaps.Map('fitMap', {\n center: [55.751574, 37.573856],\n zoom: 9,\n }, {\n searchControlProvider: 'yandex#search',\n });\n\n const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(\n `
\n
от 0 ₽
\n
{{ properties.geoObjects.length }}
\n
`);\n const clusterer = new ymaps.Clusterer({\n clusterIcons: [\n {\n href: '',\n size: [100, 32],\n offset: [-50, -16],\n }],\n hasBalloon: false,\n clusterIconContent: null,\n clusterIconContentLayout: MyIconContentLayout,\n });\n\n clusterer.options.set({\n groupByCoordinates: false, // Специальный режим работы кластеризатора при котором кластеры образуются только из геобъектов с одинаковыми координатами.\n clusterDisableClickZoom: false, // запрещение масштабирования карты при щелчке по кластеру\n clusterBalloonMinHeight: 260,\n gridSize: 128, // Размер ячейки кластеризации в пикселях. Значение должно быть равно 2^n (в область 256 на 256 пикселей должно умещаться ровное количество ячеек).\n });\n\n $(document).on('change', 'select#address', function () {\n const id = $(this).find(':selected').val();\n const geoObjs = clusterer.getGeoObjects();\n geoObjs.forEach(function (elem) {\n if (elem.id == id) {\n if (activePlacemark) {\n if (activePlacemark === elem) {\n activePlacemark.options.unset('preset');\n } else {\n activePlacemark.options.set('iconColor', '#446DD7');\n activePlacemark = elem;\n }\n } else {\n activePlacemark = elem;\n }\n elem.options.set('iconColor', 'red');\n }\n });\n });\n\n const geoObjects = [];\n let listHtml = '';\n\n let counter = 0;\n let coords = {};\n for (let i = 0; i < points.length; i++) {\n let txtPrice = '';\n coords = points[i].coordinates ? points[i].coordinates.split(',') : points[i].geoData.coordinates.reverse();\n if (points[i].amount === 0) {\n txtPrice = 'бесплатно';\n } else {\n txtPrice = points[i].amount + ' ₽';\n }\n geoObjects[counter] = new ymaps.Placemark(coords, {\n iconCaption: txtPrice,\n price: points[i].amount,\n }, {\n iconColor: '#446DD7',\n });\n geoObjects[counter].id = points[i].id ? points[i].id : points[i].stoId;\n const pointsData = {\n name: points[i].name,\n address: points[i].address,\n id: points[i].id ? points[i].id : points[i].stoId,\n amount: points[i].amount,\n selected: points[i].selected,\n discount: points[i].discount ? points[i].discount : 0,\n deliveryDays: points[i].deliveryDays,\n payments: points[i].paymentTypeList,\n };\n listHtml += templateList(pointsData);\n counter += 1;\n }\n spinner.hide($(fitMap.config.container));\n fitMapList.init(listHtml);\n\n clusterer.add(geoObjects);\n clusterer.events.add('click', function (e) {\n const obj = e.get('target');\n if (!obj.properties.get('balloonContent')) {\n $.when(config.doRequest('/orders/pontInfo/', { 'stoid': obj.id, 'formating': true })).done(function (data) {\n data.shm = true;\n const content = baloonTemplate(data);\n obj.properties.set('balloonContent', content);\n obj.balloon.open();\n });\n }\n if (activePlacemark) {\n if (activePlacemark === obj) {\n activePlacemark.options.unset('preset');\n } else {\n activePlacemark.options.set('iconColor', '#446DD7');\n activePlacemark = obj;\n }\n } else {\n activePlacemark = obj;\n }\n obj.options.set('iconColor', 'red');\n if (obj.id !== undefined) {\n fitMapList.selectAddress(obj.id);\n $('#deliveryId17').attr('data_payments',$('.fitMapSelect #address').find('option:selected').attr('data-fitMapPayments')).trigger('change');\n paymentCart.checkPaymentRules();\n order.params.sto.amount = $('.fitMapSelect #address').find('option:selected').attr('data-fitMapAmount');\n order.params.sto.discount = 0;\n order.calc();\n }\n });\n\n myMap.events.add(['actionend'], function (e) {\n const clusters = clusterer.getClusters();\n window.test = clusters;\n clusters.forEach((element) => {\n const points = element.properties.get('geoObjects');\n const priceArray = [];\n points.forEach((e) => {\n priceArray.push(e.properties.get('price'));\n });\n const MyIconContentLayout2 = ymaps.templateLayoutFactory.createClass(\n `
\n
от ${Math.min(...priceArray)} ₽
\n
{{ properties.geoObjects.length }}
\n
`);\n element.options.set('clusterIconContentLayout', MyIconContentLayout2);\n });\n });\n myMap.geoObjects.add(clusterer);\n\n myMap.setBounds(clusterer.getBounds(), {\n checkZoomRange: true,\n }).then(function () {\n if (myMap.getZoom() > 15) myMap.setZoom(15);\n });\n\n // Блокировка \"зума\" при скроле поверх карты\n myMap.behaviors.disable('scrollZoom');\n });\n });\n },\n normalizeZoom: function () {\n myMap.setZoom(15);\n },\n hidePostfactPayments: function () {\n $(fitMap.config.postfactPayment).hide();\n $('#pills-infact-tab').hide();\n const onlineInstance = Tab.getOrCreateInstance(document.querySelector('#pills-online-tab'));\n onlineInstance.show();\n // $('#pills-online-tab').tab('show');\n $('label[data-id=\"5\"]').hide();\n $('#pills-online label').first().trigger('click');\n },\n showPostfactPayments: function () {\n $(fitMap.config.postfactPayment).show();\n\n $('#pills-infact-tab').show();\n $('#pills-infact-tab').addClass('active');\n $('#pills-infact').addClass('active');\n $('#pills-infact').addClass('show');\n const infactInstance = Tab.getOrCreateInstance(document.querySelector('#pills-infact-tab'));\n infactInstance.show();\n // $('#pills-infact-tab').tab('show');\n $('#pills-online-tab').removeClass('active');\n $('#pills-online').removeClass('active').removeClass('show');\n $('.paymentInfo__content').hide();\n $('label[data-id=\"5\"]').show();\n $('#pills-infact label').first().trigger('click');\n },\n};\n","export const baloonTemplate = (data) => {\n let bln = `${data.name}`;\n if (data.icon) {\n bln += `\n
\n
\n \n
\n
`;\n }\n if (data.actual_address) {\n bln += `${data.actual_address}`;\n\n if (data.phone) {\n bln += `тел: ${data.phone}`;\n }\n }\n if (data.workgrafic) {\n bln += `\n
\n
\n ${data.workgrafic}\n
\n
`;\n }\n\n if (data.paymentsInfo) {\n bln += `
\n Способы оплаты:\n `;\n for (const pointInfo in data.paymentsInfo) {\n bln += `
\n \n
`;\n }\n bln += `
`;\n }\n\n if (data.shm) {\n bln += `\n Выбрать\n `;\n }\n\n // ТОВАРИЩ, не забудь проверить карточку ШМ, т.к. шаблон балуна общий для самовывоза и ШМ\n return bln;\n};\n","import {config} from 'core/config';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\nimport {deliveryCart} from 'modules/deliveryCart';\nimport {paymentCart} from 'modules/paymentCart';\nimport {tableCart} from 'modules/tableCart';\nimport {spinner} from 'modules/spinner';\nimport Collapse from 'bootstrap/js/dist/collapse';\n\nexport const order = {\n config: {\n 'promoBlock': '.promo',\n 'cartItem': '.js-tableCart__item',\n 'paymentStep': '#tableStep3',\n 'paymentBtn': '.or-payment-btn-div',\n 'googleCaptcha': '#tableStepGoogle',\n 'finishOrder': '#finishOrder',\n 'finishQuickOrder': 'button.quickOrderBtn',\n 'finishPay': '#finishPay',\n 'urDiv': '#pills-option5',\n 'listItem': '.fitMap__list-item',\n 'listContainer': 'fitMap-container',\n 'testitem': 'input[data-mode=\"test\"]',\n 'usedBonus': '#totalUsedBonus',\n },\n timer: null,\n saveCounter: 0,\n maxSaveCounter: 5,\n scrollObj: false,\n params: {\n 'cityChange': 0,\n 'i_see_bonus_button': 0,\n 'personalData': 0,\n 'getYandexAddress': 0,\n 'delivery_point_id': 0,\n 'delivery_tvz_point': '',\n 'delivery_tvz_address': '',\n 'deliveryTKGUID': '',\n 'comment': '',\n 'ownWarehouseId': 0,\n 'pleaseDoNotClearOrder': 0,\n 'orderCaptcha': 0,\n 'activeTab': 'newClient',\n 'userType': 'fiz',\n 'userStreet': '',\n 'userHouse': '',\n 'userBuild': '',\n 'userFIO': '',\n 'userPhone': '',\n 'userEmail': '',\n 'deliveryId': '',\n 'deliveryDate': '',\n 'paymentId': '',\n 'useBonus': '',\n 'shortOrder': '',\n 'testmode': {},\n 'ur': {},\n 'goods': {},\n 'sto': {\n 'stoid': '',\n 'stoaddress': '',\n 'date': '',\n 'time': '',\n 'phone': '',\n 'carnumber': '',\n 'needsto': 0,\n 'amount': 0,\n 'discount': 0,\n },\n },\n init: function() {\n window.order = this;\n order.bindEvent();\n order.calc();\n },\n bindEvent: function() {\n $(document).on('click', '#useBonusButton', function() {\n if(confirm($('#bonusMessage').html())){\n $.ajax({\n url: \"/Orders/bonusStatus.php\",\n type: \"POST\",\n data: {\n flag: 1\n },\n dataType: \"json\",\n complete: function () {\n window.location.reload();\n }\n });\n }\n });\n $(document).on('click', '#cancelUseBonus', function() {\n if(confirm($('#cancelBonusMessage').html())){\n $.ajax({\n url: \"/Orders/bonusStatus.php\",\n type: \"POST\",\n data: {\n flag: 0\n },\n dataType: \"json\",\n complete: function () {\n window.location.reload();\n }\n });\n }\n });\n $(document).on('click', '#promo_submit', function() {\n let promoCode = $('#promo_code').val();\n if (!promoCode){\n alert('Вы не ввели промокод');\n return false;\n }\n $.when(config.doRequest('/Orders/addPromo', {'promo_code':promoCode}, 'json', 'GET')).done(function(res) {\n if (res.error) {\n $(order.config.promoBlock).find('.errorMessage').show().find('span').html(res.error);\n config.scroll($(order.config.promoBlock));\n } else if (res.answer) {\n alert(res.answer);\n window.location.reload();\n }\n }).fail(function(){\n $(order.config.promoBlock).find('.errorMessage').show().find('span').html('При оформлении промокода произошел сбой, обновите страницу и попробуйте еще раз.');\n config.scroll($(order.config.promoBlock));\n });\n });\n $(document).on('click', order.config.paymentBtn, function() {\n let radioId = $(this).data('id');\n if(radioId == 24){\n radioId = 20;\n }\n $(order.config.paymentBtn).removeClass('active');\n $(this).addClass('active');\n $('.paymentInfo__content .paymentInfo-tab').removeClass('active');\n $(`.paymentInfo__content #paymentInfo${radioId}`).addClass('active');\n $('.or-payment-btn').attr('checked', false);\n $(this).find('input').attr('checked', true);\n order.collect();\n order.save();\n });\n $(document).on('change', '.fitMapSelect #address', function() {\n order.params.sto.amount = $(this).find('option:selected').attr('data-fitMapAmount');\n order.params.sto.discount = $(this).find('option:selected').attr('data-fitMapDiscount');\n order.calc();\n });\n $(document).on('click', '[href=\"#tableStepShm0\"] , [href=\"#tableStepShm\"]', function() {\n order.calc();\n });\n $(document).on('click', order.config.finishQuickOrder, function() {\n spinner.show();\n $(this).blur();\n setTimeout(function() {\n if(!$(order.config.paymentStep).is(':visible')){\n $(order.config.finishOrder).trigger('click');\n $(order.config.finishQuickOrder).html('Обычный заказ');\n }else{\n $(order.config.finishQuickOrder).html('Быстрый заказ');\n $('.spinner-box-parent').removeClass('spinner-box-parent');\n $('.spinner-box').detach();\n }\n // spinner.hide();\n },400);\n });\n $(document).on('click', 'button.quickOrder', function() {\n\n });\n $(document).on('click', order.config.finishOrder, function() {\n order.scrollObj = false;\n order.collect();\n const A = $.Deferred();\n order.save(A, true);\n A.then(function() {\n order.validate(function(answer) {\n order.unMarkError();\n if (!answer.result) {\n console.log('validation false');\n $.each(answer.errors, function(selector, value) {\n order.markError(selector, value);\n });\n // развернуть шаг если он свернут\n if (!order.scrollObj.closest('.collapse').hasClass('show')) {\n const $myCollapse = order.scrollObj.closest('.collapse')[0];\n const bsCollapse = Collapse.getOrCreateInstance($myCollapse);\n bsCollapse.show();\n $myCollapse.addEventListener('shown.bs.collapse', function() {\n $myCollapse.scrollIntoView({block: 'center', behavior: 'smooth'});\n });\n } else {\n config.scroll(order.scrollObj);\n }\n } else {\n spinner.show();\n order.collect();\n const D = $.Deferred();\n const C = $.Deferred();\n order.save(D);\n D.then(function() {\n if (order.params.sto.needsto) {\n order.registrationInSto(C);\n } else {\n C.resolve();\n }\n C.then(function() {\n $.when(config.doRequest('/Orders/finishProcess', order.params, 'json', 'GET')).\n done(function(res) {\n if (res.error) {\n $.each(res.error, function(key, err) {\n if (err.type == 'good') {\n $(tableCart.config.goodItem).each(function() {\n if ($(this).attr('data-goodid') == err.id) {\n // $(this).find('.orderCount').val(err.maxCount);\n $(this).\n find('.errorMessage').\n show().\n find('span').\n html(err.message);\n config.scroll($(this));\n }\n });\n }\n });\n spinner.hide();\n order.calc();\n } else if (res.url) {\n window.location.href = res.url;\n }\n }).\n fail(function() {\n $(order.config.cartItem).\n find('.errorMessage').\n show().\n find('span').\n html(\n 'При оформлении заказа произошел сбой, обновите страницу и попробуйте еще раз.');\n config.scroll($(order.config.cartItem));\n spinner.hide();\n });\n });\n });\n }\n });\n });\n });\n $(document).on('click', order.config.finishPay, function() {\n const orderId = $('#orderId').val();\n const paymentId = $('label.or-payment-btn-div.active').attr('data-id');\n $.when(config.doRequest('/Orders/finishPay', {'orderId': orderId, 'paymentId': paymentId})).done(function(answer) {\n if (\n answer &&\n typeof answer.return.Error === 'undefined' &&\n typeof answer.return.PaylURL !== 'undefined' &&\n answer.return.PaylURL.length > 0\n ) {\n window.location.href = answer.return.PaylURL;\n } else {\n alert('Произошла ошибка оплаты');\n }\n });\n });\n },\n registrationInSto: function(C = null) {\n const stoid = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapid');\n const stoaddress = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapaddress');\n const date = $('.datepicker-days .active.day').attr('data-dateFormat');\n const time = $('.fitMap__time .btn.active span').html();\n const carnumber = $('.fitMap-container #carnumber').val();\n $.when(config.doRequest('/orders/registrationinsto', {'stoid': stoid, 'stoaddress': stoaddress, 'date': date, 'time': time, 'carnumber': carnumber})).done(function(answer) {\n if (answer['result'] === true) {\n order.saveSto(answer);\n } else {\n order.markError('carnumber', answer.error);\n config.scroll($('#carnumber'));\n spinner.hide();\n return;\n }\n if (C) {\n C.resolve();\n }\n });\n },\n saveSto: function(data) {\n $.when(config.doRequest('/orders/saveregistrationinsto', {'regStoData': order.params.sto, 'serviceCode': data['serviceInfo']['code'], 'rawRegStoData': data}, 'json', 'GET')).done(function(answer) {\n }).fail(function() {\n return;\n });\n },\n markError: function(selector, message) {\n if(selector === 'pagereload'){\n window.location.reload();\n return;\n }\n let obj = $('.'+selector);\n if (!obj.length) {\n obj = $('#'+selector);\n }\n if (obj.length) {\n const div = '
'+message+'
';\n if (!order.scrollObj || order.scrollObj.offset().top>obj.offset().top) {\n order.scrollObj = obj;\n }\n if (obj.attr('type') == 'radio') {\n obj.parents('.tableSteps__step-content').prepend(div);\n } else if (obj.attr('type') == 'checkbox') {\n obj.parent().after(div);\n } else {\n obj.after(div);\n }\n }\n },\n unMarkError: function() {\n $('.invalid-feedback').detach();\n },\n verifyCallback: function() {\n $('.after-google-captcha').removeClass('not-display');\n $.when(config.doRequest('/Orders/setCaptcha', {}, 'html', 'POST')).done(function(answer) {\n order.params.orderCaptcha = answer;\n window.order = null;\n // $(order.config.googleCaptcha).detach();\n });\n },\n calc: function() {\n let summ = order.foldSumms();\n\n order.collect();\n order.save();\n if (order.params.sto.needsto && order.params.sto.amount > 0) {\n let summsto = parseInt(order.params.sto.amount);\n if (order.params.sto.discount && order.params.sto.discount > 0) {\n summsto -= parseInt(order.params.sto.discount);\n }\n if (summsto<0) summsto = 0;\n summ += parseInt(summsto);\n $('.paidStoInGoods .totalSum .cost').html(order.params.sto.amount);\n $('.totalSumSpan').html(summ.toLocaleString('ru-RU'));\n $('.paidStoInGoods').show();\n $('.fitMap__amount').html(order.params.sto.amount + ' ₽');\n } else {\n $('.paidStoInGoods').hide();\n }\n },\n foldSumms: function(){\n let summ = 0;\n $(order.config.cartItem).each(function() {\n let cost = $(this).find('.table-cart_value').html();\n let count = $(this).find('.orderCount').val();\n cost = parseInt(cost.replace(/ /g, ''));\n count = parseInt(count.replace(/ /g, ''));\n const total = cost * count;\n $(this).find('.totalSumm').html(total.toLocaleString('ru-RU'));\n if (total) {\n summ += total;\n $('.totalSumSpan').html(summ.toLocaleString('ru-RU'));\n }\n });\n if ( $('.paidDeliveryInGoods').is(':visible')) {\n let dCost = Number($('.paidDeliveryInGoods .cost').html().replace(/[^\\d]/,''));\n summ += dCost;\n $('.totalSumSpan').html(summ.toLocaleString('ru-RU'));\n }\n if (order.params.useBonus) {\n const usedBonus = parseInt($(order.config.usedBonus).val());\n summ -= usedBonus;\n $('.totalSumSpan').html(summ.toLocaleString('ru-RU'));\n }\n return summ;\n },\n collect: function() {\n order.params.shortOrder = $(order.config.paymentStep).is(':visible')?0:1;\n order.params.userStreet = $(deliveryCart.config.street).val();\n order.params.userHouse = $(deliveryCart.config.house).val();\n order.params.userBuild = $(deliveryCart.config.building).val();\n order.params.deliveryId = $(deliveryCart.config.deliveryId).val();\n order.params.deliveryDate = $(deliveryCart.config.deliveryDate).val();\n order.params.delivery_point_id = $(deliveryCart.config.deliveryPointId).val();\n order.params.delivery_tvz_point = $(deliveryCart.config.deliveryTvzPoint).val();\n order.params.delivery_tvz_address = $(deliveryCart.config.deliveryTvzAddress).val();\n order.params.deliveryTKGUID = $(deliveryCart.config.deliveryTKGUID).val();\n order.params.comment = $(deliveryCart.config.comment).val();\n order.params.ownWarehouseId = $(deliveryCart.config.ownWarehouseId).val();\n if($(paymentCart.config.paymentId).parents('label').is(':visible')) {\n order.params.paymentId = $(paymentCart.config.paymentId).val();\n }else{\n order.params.paymentId = 0;\n }\n order.params.userFIO = $('#userFIO').val();\n order.params.useBonus = $('#useBonus_input').val();\n order.params.personalData = $('#personalData').prop('checked')?1:0;\n order.params.userPhone = $('#userPhone').val();\n order.params.userEmail = $('#userEmail').val();\n order.params.i_see_bonus_button = $('#useBonusButton').length;\n order.params.goods = {};\n order.params.testmode = {};\n if($(order.config.testitem).length){\n $(order.config.testitem).each(function() {\n if($(this).prop('checked')) {\n const mode = $(this).val();\n const testName = $(this).attr('name');\n order.params.testmode[testName] = mode;\n }\n });\n\n }\n $(tableCart.config.goodItem).each(function() {\n const goodid = $(this).data('goodid');\n const count =$(this).find('.orderCount').val();\n order.params.goods[goodid] = {'count': count};\n });\n order.params.ur = {};\n if ($(order.config.urDiv).hasClass('active')) {\n $(order.config.urDiv).find('input').each(function() {\n const name = $(this).attr('name');\n order.params.ur[name] = $(this).val();\n });\n }\n\n // 0 поменять на id ПОДЕЛИ\n if (parseInt(order.params.paymentId) === 5 || parseInt(order.params.paymentId) === 20 || parseInt(order.params.paymentId) === 24) {\n order.params.userType = 'ur';\n $('.paymentInfo__content').show();\n } else {\n $('.paymentInfo__content').hide();\n }\n if (order.params.deliveryId == 17) {\n order.params.sto.needsto = 1;\n order.params.sto.stoid = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapid');\n order.params.sto.stoaddress = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapaddress');\n order.params.sto.date = $('.datepicker-days .active.day').attr('data-dateFormat');\n order.params.sto.time = $('.fitMap__time .btn.active span').html();\n order.params.sto.carnumber = $('.fitMap-container #carnumber').val();\n } else {\n order.params.sto.needsto = 0;\n }\n },\n save: function(D = null, spinnerShow = null) {\n if($('.cart-empty').length > 0){\n return false;\n }\n clearTimeout(order.timer);\n order.timer = setTimeout(function() {\n order.saveCounter = 0;\n order.privateSave(D, spinnerShow);\n }, 300);\n },\n privateSave: function(D = null, spinnerShow = null) {\n if (order.saveCounter<= order.maxSaveCounter) {\n if(spinnerShow){\n if(!$('.spinner-box').length) {\n spinner.show();\n }\n }\n $.when(config.doRequest('/Orders/saveOrder', order.params, 'html', 'GET')).done(function(answer) {\n\n order.saveCounter = 0;\n deliveryCart.recalc(answer);\n if (D) {\n D.resolve();\n }\n }).fail(function() {\n order.saveCounter++;\n order.save();\n });\n }\n },\n validate: function(callback) {\n order.collect();\n $.when(config.doRequest('/Orders/validate', order.params, 'json', 'GET')).done(function(answer) {\n $('.spinner-box-parent').removeClass('spinner-box-parent');\n $('.spinner-box').detach();\n return callback(answer);\n });\n },\n};\n","import {config} from 'core/config';\nimport * as jQuery from 'jquery';\nimport {order} from 'modules/order';\nwindow.$ = jQuery;\nimport Tab from 'bootstrap/js/dist/tab';\n\nexport const paymentCart = {\n config: {\n 'paymentId': 'input[name=payType]:checked',\n 'payCash': '#option7, #option2',\n 'payBank': '#option8',\n 'onlinePayments': [3, 4, 5, 10, 11, 12, 13, 14, 17, 20, 21, 22],\n 'offlinePayments': [1, 2, 7, 8, 15, 18, 19, 23, 24, 25],\n },\n init: function() {\n paymentCart.bindEvent();\n },\n bindEvent: function() {\n $(document).on('click', '.onlineInfactTabs', function() {\n $(paymentCart.config.paymentId).parents('label').addClass('active');\n });\n },\n checkPaymentRules: function() {\n const truePayments = $('input[name=deliveryId]:checked').attr('data_payments');\n if (truePayments) {\n const truePaymentsIs = truePayments.split(',');\n $('.or-payment-btn-div').hide();\n paymentCart.hidePostfactPayments();\n let postfact = false;\n truePaymentsIs.forEach((element) => {\n const truePaymentId = parseInt(element, 10);\n if ($.inArray(truePaymentId, paymentCart.config.offlinePayments) !== -1) {\n postfact = true;\n }\n const maxCost = $(`#pills-tabContent label[data-id=\"${truePaymentId}\"]`).attr('data-maxCost');\n if(maxCost){\n let summ = order.foldSumms();\n if ($('#onlyService').val() === '1') {\n summ = $('#summService').val();\n }\n if(summ<=maxCost) {\n $(`#pills-tabContent label[data-id=\"${truePaymentId}\"]`).css('display', 'flex').removeClass('d-none');\n if(truePaymentId == 20 || truePaymentId == 24){\n if(typeof(CartWidget) !== 'undefined'){\n CartWidget.init({\n total: summ,\n minLimit: 300,\n maxLimit: 50000,\n selectorToInject: `#paymentInfo${truePaymentId}`,\n });\n }\n }\n }\n }else{\n $(`#pills-tabContent label[data-id=\"${truePaymentId}\"]`).css('display', 'flex').removeClass('d-none');\n }\n });\n if (postfact) {\n paymentCart.showPostfactPayments();\n }\n }\n\n const totalPayments = $('input[name=deliveryId]').attr('data_payments');\n if (totalPayments) {\n let summ = order.foldSumms();\n const totalPaymentsIs = totalPayments.split(',');\n totalPaymentsIs.forEach((element) => {\n var maxCost = $('#pills-tabContent label[data-id=\"' + element + '\"]').attr('data-maxCost');\n if(maxCost){\n if(summ<=maxCost) {\n $('.form-info').show();\n }else{\n var deliveryInfo = $('.form-info');\n deliveryInfo.each(function(){\n if($(this).html().indexOf('рассроч')>0){\n $(this).hide();\n }\n })\n }\n }\n });\n }\n },\n hidePostfactPayments: function() {\n $('#pills-infact-tab').hide();\n $('#pills-infact-tab').removeClass('active');\n $('#pills-online-tab').addClass('active');\n $('#pills-online').addClass('active').addClass('show');\n $('#pills-infact').removeClass('active').removeClass('show');\n if (document.querySelector('#pills-online-tab') !== null) {\n const onlineInstance = Tab.getOrCreateInstance(document.querySelector('#pills-online-tab'));\n onlineInstance.show();\n }\n },\n showPostfactPayments: function() {\n $('#pills-infact-tab').show();\n $('#pills-infact-tab').addClass('active');\n $('#pills-online-tab').removeClass('active');\n $('#pills-online').removeClass('active').removeClass('show');\n $('#pills-infact').addClass('active').addClass('show');\n if (document.querySelector('#pills-infact-tab') !== null) {\n const infactInstance = Tab.getOrCreateInstance(document.querySelector('#pills-infact-tab'));\n infactInstance.show();\n }\n },\n};\n","import './index.scss';\n\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\n\nimport Tab from 'bootstrap/js/dist/tab';\nimport Collapse from 'bootstrap/js/dist/collapse';\nimport {spinner} from 'modules/spinner';\nimport {deliveryCart} from 'modules/deliveryCart';\nimport {fitMap} from 'modules/fitMap2';\nimport {order} from 'modules/order';\nimport {paymentCart} from \"modules/paymentCart\";\n\nexport const tableSteps = {\n config: {\n 'deleteItem': '.js-tableCart__delete',\n 'cartItem': '.js-tableCart__item',\n },\n init: function() {\n this.formValidate();\n this.stepNum();\n this.bindEvents();\n if ('phoneMask' in window) window.phoneMask();\n },\n bindEvents: function() {\n const $$stepNumsFathers = document.querySelectorAll('.tableSteps__step-content, #quickOrder');\n $$stepNumsFathers.forEach((element) => {\n element.addEventListener('shown.bs.collapse', function() {\n tableSteps.stepNum();\n });\n });\n if (document.querySelector('#quickOrder')) {\n document.querySelector('#quickOrder').addEventListener('hidden.bs.collapse', function() {\n tableSteps.stepNum();\n });\n }\n $('input[name=\"deliveryId\"]').on('change', function() {\n if ($(this).hasClass('js-tableStep__openDelivery') && $(this).prop('checked', true)) {\n $('.js-tableStep__delivery').show();\n $('.js-tableStep__delivery_address').show();\n $('.js-tableStep__samovyvoz').hide(); \n } else {\n $('.js-tableStep__delivery').hide();\n $('.js-tableStep__delivery_address').hide();\n $('.js-tableStep__samovyvoz').show();\n }\n if ($(this).val() == 17) {\n $('.js-tableStep__delivery_address').hide();\n $('.js-tableStep__tvz').hide();\n $('.fitMap__block').show();\n $('.js-tableStep__samovyvoz').hide();\n } else if ($(this).val()==18) {\n $('.js-tableStep__delivery_address').hide();\n $('.js-tableStep__tvz').show();\n $('.fitMap__block').hide();\n $('.js-tableStep__samovyvoz').hide();\n if ($(deliveryCart.config.deliveryTVZmapIframe).attr('src') != $(deliveryCart.config.deliveryTVZmapIframe).attr('src2')) {\n const url = $(deliveryCart.config.deliveryTVZmapIframe).attr('src2');\n $(deliveryCart.config.deliveryTVZmapIframe).attr('src', url);\n }\n } else if ($(this).val()==19) {\n $('.js-tableStep__delivery_address').show();\n $('.js-tableStep__tvz').hide();\n $('.fitMap__block').hide();\n $('.js-tableStep__samovyvoz').hide();\n } else if (!deliveryCart.config.deliveryWithoutPostfactPayment.includes($(this).val())) {\n $('.fitMap__block').hide();\n $('.js-tableStep__tvz').hide();\n }\n tableSteps.stepNum();\n });\n\n // при загрузке страницы открываем ту вкладку, где активный способ оплаты\n if ($('.or-payment-btn-div').hasClass('active')) {\n const tabId = $('.or-payment-btn-div.active').parents('.tab-pane').attr('id');\n if($(`#${tabId}`).length && $(`#${tabId}-tab`).length){\n if(!$(`#${tabId}-tab`).hasClass('active')){\n $(`.onlineInfactTabs`).removeClass('active');\n $(`#pills-infact, #pills-online`).removeClass('active').removeClass('show');\n $(`#${tabId}`).addClass('active').addClass('show');\n $(`#${tabId}-tab`).addClass('active');\n const truePayments = $('input[name=deliveryId]:checked').attr('data_payments');\n if (truePayments) {\n const truePaymentsIs = truePayments.split(',');\n truePaymentsIs.forEach((element) => {\n const el = parseInt(element, 10);\n $('#pills-tabContent label[data-id=\"' + el + '\"]').css('display', 'flex').removeClass('d-none');\n });\n }\n }\n }\n }\n\n // при изменении вкладки с типом оплаты, сбрасывываем радио и скрываем блок с полями (такие есть у киви и оплата по счету)\n $('a[data-bs-toggle=\"pill\"]').on('shown.bs.tab', function() {\n if ($('.tab-pane.active .or-payment-btn-div.active').length === 0) {\n $('.paymentInfo__content .paymentInfo-tab').removeClass('active');\n $('.or-payment-btn-div').removeClass('active');\n $('.or-payment-btn').attr('checked', false);\n }\n });\n // мобилка (android) при работе с картой если был фокус на input убирает его\n const iframeMaps = document.querySelectorAll('.tableSteps iframe');\n const focusInputs = document.querySelectorAll('.tableSteps__step-content input:not([type=\"radio\"])');\n\n function removeFocus() {\n focusInputs.forEach(function(input) {\n if (document.activeElement === input) {\n input.blur();\n }\n });\n }\n\n iframeMaps.forEach(function(mapContainer) {\n mapContainer.onload = function() {\n const iframeMap = mapContainer.contentDocument || mapContainer.contentWindow.document;\n iframeMap.addEventListener('touchmove', function(event) {\n removeFocus();\n });\n iframeMap.addEventListener('touchstart', function(event) {\n removeFocus();\n });\n };\n });\n },\n formValidate: function() {\n window.addEventListener('load', function() {\n const forms = document.getElementsByClassName('needs-validation');\n const validation = Array.prototype.filter.call(forms, function(form) {\n form.addEventListener('submit', function(event) {\n if (form.checkValidity() === false) {\n event.preventDefault();\n event.stopPropagation();\n const firstInvalid = document.querySelector('.needs-validation [required]:invalid');\n const firstInvalidParent = firstInvalid.closest('.tableSteps__step-content.collapse:not(.show)');\n const stepId = firstInvalidParent ? firstInvalidParent.id : 0;\n // если шаг свернут - раскрыть\n if (stepId.length) {\n // $('#' + stepId).collapse('show').on('shown.bs.collapse', function() {\n // firstInvalid.scrollIntoView({block: 'center', behavior: 'smooth'});\n // });\n const $myCollapse = document.querySelector(`#${stepId}`);\n const bsCollapse = Collapse.getOrCreateInstance($myCollapse);\n bsCollapse.show();\n $myCollapse.addEventListener('shown.bs.collapse', function() {\n firstInvalid.scrollIntoView({block: 'center', behavior: 'smooth'});\n });\n } else {\n firstInvalid.scrollIntoView({block: 'center', behavior: 'smooth'});\n }\n } else {\n // форма валидна, показываем скролл и сабмитим\n spinner.show();\n }\n form.classList.add('was-validated');\n }, false);\n });\n }, false);\n },\n stepNum: function() {\n $('.tableSteps__step-num:visible').each(function(i) {\n $(this).text(i + 1);\n });\n },\n};\n","import './index.scss';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\nimport {tableSteps} from 'modules/tableSteps';\nimport {order} from 'modules/order';\nimport {config} from \"core/config\";\nimport {paymentCart} from \"modules/paymentCart\";\n\nexport const tableCart = {\n config: {\n 'deleteItem': '.js-tableCart__delete',\n 'cartItem': '.js-tableCart__item',\n 'goodItem': '.goodsRow',\n 'itemPlus': '.cart-incrementer',\n 'cartRecalc': '.cart-needRecalc',\n 'itemMinus': '.cart-decrementer',\n 'deliveryAvailability': '.deliveryAvailability',\n 'TKAvailability': '.TKAvailability',\n 'separateOrderButton': '.separateOrder',\n },\n init: function() {\n this.bindEvent();\n order.calc();\n tableSteps.init();\n },\n bindEvent: function() {\n $(tableCart.config.deleteItem).click(function() {\n $(this).parents(tableCart.config.cartItem).remove();\n order.calc();\n setTimeout(function(){window.location.reload();},1000);\n });\n $(tableCart.config.separateOrderButton).click(function() {\n var item = $(this).parents(tableCart.config.cartItem).data('goodid');\n $.when(config.doRequest(\"/Orders/separateOrder\", {id:item}, 'html','GET')).done(function(answer) {\n console.log(answer);\n setTimeout(function(){window.location.reload();},1000);\n });\n });\n\n $(tableCart.config.itemPlus).click(function() {\n tableCart.recountItem($(this),'+');\n });\n $(tableCart.config.cartRecalc).click(function() {\n tableCart.recountItem($(this),'=');\n });\n $(tableCart.config.itemMinus).click(function() {\n tableCart.recountItem($(this),'-');\n });\n $(`${tableCart.config.cartItem} .orderCount`).change(function() {\n tableCart.recountItem($(this),'0');\n });\n },\n recountItem: function(btn, crementer = '+'){\n const quantity = btn.parents(tableCart.config.cartItem).find('.orderCount');\n const TKAvailability = parseInt(btn.parents(tableCart.config.cartItem).find(tableCart.config.TKAvailability).val());\n const deliveryAvailability = parseInt(btn.parents(tableCart.config.cartItem).find(tableCart.config.deliveryAvailability).val());\n let val = parseInt(quantity.val());\n if(crementer === '+'){\n val ++;\n }else if(crementer === '-'){\n val--;\n }\n if(val>quantity.data('rest')){\n val = quantity.data('rest');\n }\n if(val deliveryAvailability){\n $('.deliveryTK').show();\n if($('.deliveryTK').length){\n $('.deliveryTK').first().find('input').trigger('click').trigger('change');\n }\n $('.deliveryStock').hide();\n }else if(val > TKAvailability){\n $('.deliveryTK').hide();\n if($('.deliveryTK').length){\n $('.deliveryStock').first().find('input').trigger('click').trigger('change');\n }\n $('.deliveryStock').show();\n }else{\n $('.deliveryTK').show();\n $('.deliveryStock').show();\n }\n paymentCart.checkPaymentRules();\n order.calc();\n order.save();\n },\n};\n","/*!\n * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/index.js')) :\n typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Index));\n})(this, (function (BaseComponent, EventHandler, SelectorEngine, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'collapse';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\n const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n const Default = {\n parent: null,\n toggle: true\n };\n const DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n index_js.reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = index_js.getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n });\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Collapse);\n\n return Collapse;\n\n}));\n//# sourceMappingURL=collapse.js.map\n","/*!\n * Bootstrap tab.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/index.js')) :\n typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Index));\n})(this, (function (BaseComponent, EventHandler, SelectorEngine, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'tab';\n const DATA_KEY = 'bs.tab';\n const EVENT_KEY = `.${DATA_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}`;\n const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\n const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`;\n const ARROW_LEFT_KEY = 'ArrowLeft';\n const ARROW_RIGHT_KEY = 'ArrowRight';\n const ARROW_UP_KEY = 'ArrowUp';\n const ARROW_DOWN_KEY = 'ArrowDown';\n const HOME_KEY = 'Home';\n const END_KEY = 'End';\n const CLASS_NAME_ACTIVE = 'active';\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_SHOW = 'show';\n const CLASS_DROPDOWN = 'dropdown';\n const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;\n const SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\n const SELECTOR_OUTER = '.nav-item, .list-group-item';\n const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // TODO: could only be `tab` in v6\n const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`;\n\n /**\n * Class definition\n */\n\n class Tab extends BaseComponent {\n constructor(element) {\n super(element);\n this._parent = this._element.closest(SELECTOR_TAB_PANEL);\n if (!this._parent) {\n return;\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren());\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n }\n\n // Getters\n static get NAME() {\n return NAME;\n }\n\n // Public\n show() {\n // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element;\n if (this._elemIsActive(innerElem)) {\n return;\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem();\n const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE, {\n relatedTarget: innerElem\n }) : null;\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, {\n relatedTarget: active\n });\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n this._deactivate(active, innerElem);\n this._activate(innerElem, active);\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return;\n }\n element.classList.add(CLASS_NAME_ACTIVE);\n this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW);\n return;\n }\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n this._toggleDropDown(element, true);\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n _deactivate(element, relatedElem) {\n if (!element) {\n return;\n }\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW);\n return;\n }\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n this._toggleDropDown(element, false);\n EventHandler.trigger(element, EVENT_HIDDEN, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {\n return;\n }\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault();\n const children = this._getChildren().filter(element => !index_js.isDisabled(element));\n let nextActiveElement;\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n nextActiveElement = index_js.getNextActiveElement(children, event.target, isNext, true);\n }\n if (nextActiveElement) {\n nextActiveElement.focus({\n preventScroll: true\n });\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n _getChildren() {\n // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);\n }\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null;\n }\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n for (const child of children) {\n this._setInitialAttributesOnChild(child);\n }\n }\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n const isActive = this._elemIsActive(child);\n const outerElem = this._getOuterElement(child);\n child.setAttribute('aria-selected', isActive);\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n this._setAttributeIfNotExists(child, 'role', 'tab');\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child);\n }\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child);\n if (!target) {\n return;\n }\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`);\n }\n }\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element);\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem);\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);\n outerElem.setAttribute('aria-expanded', open);\n }\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (index_js.isDisabled(this)) {\n return;\n }\n Tab.getOrCreateInstance(this).show();\n });\n\n /**\n * Initialize on focus\n */\n EventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element);\n }\n });\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Tab);\n\n return Tab;\n\n}));\n//# sourceMappingURL=tab.js.map\n"],"names":["window","$","jQuery","tableCart","deliveryCart","order","paymentCart","config","init","this","bindEvent","document","on","getDeliveryDates","attr","val","cost","name","html","removeClass","addClass","deliveryId","deliveryWithoutPostfactPayment","includes","first","trigger","hide","selectedDelivery","ready","length","prop","recalc","answer","parseJSON","deliveryCost","e","userStreet","street","userHouse","house","userBuild","building","params","regionDelivery","fitMap","show","setTimeout","parents","is","find","when","done","define","undefined","UTCDate","Date","UTC","apply","arguments","UTCToday","today","getFullYear","getMonth","getDate","isUTCEquals","date1","date2","getUTCFullYear","getUTCMonth","getUTCDate","alias","method","deprecationMsg","fn","datepicker","deprecated","isValidDate","d","isNaN","getTime","extras","DateArray","get","i","slice","contains","valueOf","l","remove","splice","replace","new_array","isArray","clear","push","copy","a","extend","Datepicker","element","options","data","_events","_secondaryEvents","_process_options","dates","viewDate","o","defaultViewDate","focusDate","isInput","inputField","component","hasClass","isInline","picker","DPGlobal","template","_check_template","templates","leftArrow","rightArrow","_buildEvents","_attachEvents","appendTo","rtl","calendarWeeks","Number","startDate","_o","endDate","daysOfWeekDisabled","daysOfWeekHighlighted","datesDisabled","_allow_update","setViewMode","startView","fillDow","fillMonths","update","prototype","constructor","_resolveViewName","view","each","viewModes","viewMode","inArray","names","_resolveDaysOfWeek","daysOfWeek","split","map","tmp","match","ex","opts","lang","language","defaults","minViewMode","maxViewMode","Math","max","min","multidate","multidateSeparator","String","weekStart","weekEnd","format","parseFormat","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","Infinity","plc","orientation","toLowerCase","_plc","grep","word","test","x","y","year","month","day","_applyEvents","evs","el","ch","ev","_unapplyEvents","off","events","keyup","proxy","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","date","navArrowsClick","dayCellClick","resize","place","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","type","ix","formatDate","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","detach","forceParse","setValue","destroy","dateString","originalEvent","clipboardData","types","getData","setDate","preventDefault","utc","local","getTimezoneOffset","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","args","setUTCDates","setUTCDate","formatted","getFormattedDate","join","getStartDate","setStartDate","updateNavArrows","getEndDate","setEndDate","setDaysOfWeekDisabled","setDaysOfWeekHighlighted","setDatesDisabled","calendarWidth","outerWidth","calendarHeight","outerHeight","visualPadding","windowWidth","width","scrollTop","appendOffset","offset","parentsZindex","itemZIndex","css","zIndex","zIndexOffset","parent","height","left","top","yorient","parseInt","right","oldDates","fromArgs","dateWithinRange","updateViewDate","change","fill","showWeekDays","dowCnt","daysMin","append","localDate","monthsShort","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","getUTCDay","_fill_yearsView","selector","cssClass","factor","startYear","endYear","beforeFn","classes","tooltip","before","step","startVal","floor","endVal","focusedVal","selected","currVal","noop","enabled","concat","text","startMonth","endMonth","todaytxt","cleartxt","titleFormat","todayDate","titleBtnVisible","todayBtn","weekOfDateIsDisabled","clearBtn","title","prevMonth","nextMonth","setUTCFullYear","weekDay","clsName","ws","th","yth","calWeek","content","beforeShowDay","isFunction","uniqueSort","unique","toString","monthsTitle","months","end","eq","beforeShowMonth","that","moDate","beforeShowYear","beforeShowDecade","beforeShowCentury","prevIsDisabled","nextIsDisabled","toggleClass","stopPropagation","_setDate","index","setUTCMonth","timestamp","currentTarget","dir","navStep","moveMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","abs","moveYear","moveAvailableDate","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","keepEmptyValues","datepickerPlugin","call","dateUpdated","pickers","updateDates","opts_from_el","prefix","out","RegExp","re_lower","_","key","opts_from_locale","locale_opts","k","updateRanges","p","updating","dp","keep_empty_values","j","old","option","internal_return","Array","shift","$this","elopts","locopts","toArray","Error","Constructor","en","days","daysShort","ru","validParts","nonpunctuation","toValue","toDisplay","separators","parts","assumeNearby","part","fn_map","m","w","dateAliases","yesterday","tomorrow","applyNearbyYear","threshold","filtered","parsed","setters_order","setters_map","yyyy","v","fparts","match_part","cnt","_date","s","D","DD","M","MM","yy","substring","dd","mm","seps","headTemplate","contTemplate","footTemplate","noConflict","version","msg","console","warn","templateList","id","amount","discount","address","deliveryDays","payments","templateListItem","selectDateSto","fitMapList","list","bindEvents","getElementById","value","initCalendar","listItem","listItemActive","listItemInner","pointId","appendForm","listHideContainer","listContainer","normalizeZoom","selectedVal","spinner","selectedId","timeBlock","needDelivery","scheduleItems","availableTime","dropdown","maskPhone","querySelector","maskCarNumber","require","IMask","mask","lazy","stoid","stoaddress","serialize","result","tireFittingTime","formatDatetime","padStart","getHours","getMinutes","serviceInfo","price","error","selectTimeSto","scrollIntoView","expDate","parse","classList","add","item","topPos","offsetTop","shopListUrl","getJSON","json","tempDate","fRest","fChpu","b","selectAddress","iconArrowLeft","iconArrowRight","enableDays","indexOf","activePlacemark","myMap","initYandexMap","ymaps","getScript","points","stoList","searchResult","Map","center","zoom","searchControlProvider","MyIconContentLayout","templateLayoutFactory","createClass","clusterer","Clusterer","clusterIcons","href","size","hasBalloon","clusterIconContent","clusterIconContentLayout","set","groupByCoordinates","clusterDisableClickZoom","clusterBalloonMinHeight","gridSize","getGeoObjects","forEach","elem","unset","geoObjects","listHtml","counter","coords","txtPrice","coordinates","geoData","reverse","Placemark","iconCaption","iconColor","stoId","pointsData","paymentTypeList","obj","properties","shm","baloonTemplate","balloon","open","sto","calc","clusters","getClusters","priceArray","MyIconContentLayout2","setBounds","getBounds","checkZoomRange","then","getZoom","setZoom","behaviors","disable","hidePostfactPayments","postfactPayment","Tab","showPostfactPayments","bln","icon","actual_address","phone","workgrafic","paymentsInfo","pointInfo","iconUrl","timer","saveCounter","maxSaveCounter","scrollObj","confirm","ajax","url","flag","dataType","complete","location","reload","promoCode","alert","res","promoBlock","fail","paymentBtn","radioId","collect","save","finishQuickOrder","paymentStep","finishOrder","A","Deferred","validate","unMarkError","C","needsto","registrationInSto","resolve","err","message","cartItem","log","errors","markError","closest","$myCollapse","Collapse","addEventListener","block","behavior","finishPay","orderId","paymentId","return","PaylURL","time","carnumber","saveSto","div","prepend","after","verifyCallback","orderCaptcha","summ","foldSumms","summsto","toLocaleString","count","total","dCost","useBonus","usedBonus","shortOrder","deliveryDate","delivery_point_id","delivery_tvz_point","delivery_tvz_address","deliveryTKGUID","comment","ownWarehouseId","userFIO","personalData","userPhone","userEmail","i_see_bonus_button","goods","testmode","testitem","mode","testName","goodid","ur","urDiv","userType","spinnerShow","clearTimeout","privateSave","callback","checkPaymentRules","truePayments","truePaymentsIs","postfact","truePaymentId","offlinePayments","maxCost","CartWidget","minLimit","maxLimit","selectorToInject","totalPayments","tableSteps","formValidate","stepNum","phoneMask","querySelectorAll","tabId","iframeMaps","focusInputs","removeFocus","input","activeElement","mapContainer","onload","iframeMap","contentDocument","contentWindow","forms","getElementsByClassName","form","checkValidity","firstInvalid","firstInvalidParent","stepId","deleteItem","separateOrderButton","itemPlus","recountItem","cartRecalc","itemMinus","btn","crementer","quantity","TKAvailability","deliveryAvailability","module","exports","BaseComponent","EventHandler","SelectorEngine","index_js","NAME","EVENT_KEY","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Default","toggle","DefaultType","super","_isTransitioning","_triggerArray","toggleList","getSelectorFromElement","filterElement","foundElement","_element","_initializeChildren","_config","_addAriaAndCollapsedClass","_isShown","activeChildren","_getFirstLevelChildren","getOrCreateInstance","defaultPrevented","activeInstance","dimension","_getDimension","style","scrollSize","toUpperCase","_queueCallback","getBoundingClientRect","reflow","getElementFromSelector","_configAfterMerge","Boolean","getElement","triggerArray","isOpen","setAttribute","static","TypeError","tagName","delegateTarget","getMultipleElementsFromSelector","defineJQueryPlugin","factory","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","_parent","_setInitialAttributes","_getChildren","_keydown","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","relatedTarget","_deactivate","_activate","relatedElem","getAttribute","removeAttribute","_toggleDropDown","isDisabled","nextActiveElement","isNext","getNextActiveElement","preventScroll","child","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","className","findOne","attribute","hasAttribute","matches","startsWith"],"sourceRoot":""}