; /* Start:"a:4:{s:4:"full";s:79:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/script.js?16914097072688";s:6:"source";s:64:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
BX.ready(function() {
var popupContent = BX('DPD_pvz_popup');
popupContent.style.display = 'block';
var popup = new BX.PopupWindow('DPD_pvz_popup_window', null, {
content: popupContent,
closeIcon: {
right: "20px",
top: "10px"
},
zIndex: 0,
offsetLeft: 0,
offsetTop: 0,
draggable: {
restrict: false
},
width: Math.min(900, window.innerWidth - 80),
});
BX.bindDelegate(document, 'click', {className: 'DPD_openTerminalSelect'}, function(event) {
var componentNode = BX('DPD_pvz');
var componentParams = eval('('+ this.dataset.componentParams +')');
var componentResult = eval('('+ this.dataset.componentResult +')');
var terminalCode = BX('IPOLH_DPD_TERMINAL').value;
popup.show();
componentNode.DpdPickupMap.liveReload(componentParams, componentResult);
componentNode.DpdPickupMap.highlightTerminal({code: terminalCode, highlightIcon: true});
saveTerminalInfo(terminalCode);
return BX.PreventDefault(event)
});
BX.addCustomEvent(BX('DPD_pvz'), 'dpdPickup:selectTerminal', function (terminalCode, needUpdate) {
document.querySelectorAll('#IPOLH_DPD_TERMINAL').forEach((element) => element.value = terminalCode);
saveTerminalInfo(terminalCode);
if (needUpdate !== false) {
(typeof window.submitForm == "function") && setTimeout(submitForm, 500);
(typeof window.submitFormProxy == "function") && setTimeout(submitFormProxy, 500);
popup.close();
}
});
function saveTerminalInfo(terminalCode)
{
var componentNode = BX('DPD_pvz')
var terminalFieldId = BX('IPOLH_DPD_TERMINAL_FIELD_ID').value;
var terminalFieldCode = BX('IPOLH_DPD_TERMINAL_FIELD_CODE').value;
var terminalInfo = componentNode.querySelector('.DPD_terminalSelect[data-terminal-code="'+ terminalCode +'"]');
var terminalName = terminalInfo ? terminalInfo.getAttribute('data-terminal-addr') +' ('+ terminalCode +')' : '';
var terminalAddr = terminalInfo ? terminalInfo.getAttribute('data-terminal-addr'): '';
if (terminalAddr){
var addr = document.getElementById('IPOLH_DPD_TERMINAL_ADDR');
addr.innerText = terminalAddr;
}
var f1 = document.querySelector('*[name="ORDER_PROP_'+ terminalFieldId +'"]');
var f2 = document.querySelector('*[name="ORDER_PROP_'+ terminalFieldCode +'"]');
if (f1) {
f1.value = terminalName;
f1.setAttribute('readonly', 'readonly')
f1.style.backgroundColor = '#eee';
}
if (f2) {
f2.value = terminalName;
f2.setAttribute('readonly', 'readonly')
f2.style.backgroundColor = '#eee';
}
}
});
/* End */
;
; /* Start:"a:4:{s:4:"full";s:113:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/bitrix/map.yandex.view/dpd.pickup/script.js?15884447701505";s:6:"source";s:98:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/bitrix/map.yandex.view/dpd.pickup/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
if (!window.BX_YMapAddPlacemarkDPD)
{
window.BX_YMapAddPlacemarkDPD = function(map, arPlacemark)
{
if (null == map)
return false;
if(!arPlacemark.LAT || !arPlacemark.LON)
return false;
var props = {};
if (null != arPlacemark.TEXT && arPlacemark.TEXT.length > 0) {
props.hintContent = arPlacemark.TITLE;
props.balloonContent = arPlacemark.TEXT;
}
var obPlacemark = new ymaps.Placemark(
[arPlacemark.LAT, arPlacemark.LON],
props,
{
balloonCloseButton: true,
iconLayout: 'default#image',
iconImageHref: '/bitrix/images/ipol.dpd/pickup_locationmarker.png',
iconImageSize: [53, 53],
iconImageOffset: [-25, -53]
}
);
map.geoObjects.add(obPlacemark);
return obPlacemark;
}
}
if (!window.BX_YMapAddPolylineDPD)
{
window.BX_YMapAddPolylineDPD = function(map, arPolyline)
{
if (null == map)
return false;
if (null != arPolyline.POINTS && arPolyline.POINTS.length > 1)
{
var arPoints = [];
for (var i = 0, len = arPolyline.POINTS.length; i < len; i++)
{
arPoints.push([arPolyline.POINTS[i].LAT, arPolyline.POINTS[i].LON]);
}
}
else
{
return false;
}
var obParams = {clickable: true};
if (null != arPolyline.STYLE)
{
obParams.strokeColor = arPolyline.STYLE.strokeColor;
obParams.strokeWidth = arPolyline.STYLE.strokeWidth;
}
var obPolyline = new ymaps.Polyline(
arPoints, {balloonContent: arPolyline.TITLE}, obParams
);
map.geoObjects.add(obPolyline);
return obPolyline;
}
}
/* End */
;
; /* Start:"a:4:{s:4:"full";s:77:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/map.js?163578697811286";s:6:"source";s:61:"/bitrix/components/ipol/ipol.dpdPickup/templates/order/map.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
function DpdPickupMap(map, arObjects)
{
if (this === window) {
return new DpdPickupMap(map, arObjects);
}
this.map = map;
this.placemarks = arObjects.PLACEMARKS;
this.containerNode = BX('DPD_pvz');
this.terminalsNode = BX('DPD_wrapper');
this.maskNode = BX('DPD_mask');
this.init();
// TODO: циклическая ссылка
this.containerNode.DpdPickupMap = this;
}
DpdPickupMap.prototype.init = function()
{
this._bindDomEvents();
this._bindMapEvents();
this.setCenterMap();
this.map.controls.get('zoomControl').options.set('position', {left: this.getZoomMargin(10).left, top: 110});
}
DpdPickupMap.prototype.setCenterMap = function (x, y, callback)
{
this.map.container.fitToViewport();
if (x != window.undef && y != window.undef) {
return this.map.setCenter([x, y]);
}
if (this.placemarks.length < 1) {
return false;
}
if (this.placemarks.length > 1) {
var bounds = this.map.geoObjects.getBounds();
return this.map.setBounds(bounds, {
zoomMargin: [this.getZoomMargin().top, 0, 0, this.getZoomMargin().left]
});
}
return this.map.setCenter(this.placemarks[0].geometry.getCoordinates());
}
DpdPickupMap.prototype.getZoomMargin = function(offset)
{
if (window.innerWidth > 919) {
return {left: 260, top: 0};
}
return {left: 0 + (offset || 0), top: 100};
}
DpdPickupMap.prototype.selectCity = function(cityId)
{
this.sendRequest('set_city', {city_id: cityId}, this._bind('doReload'));
}
DpdPickupMap.prototype.selectTerminal = function(code)
{
BX.onCustomEvent(this.containerNode, 'dpdPickup:selectTerminal', [code]);
// this.sendRequest('set_terminal', {terminal_code: code}, this._bind(function(arResult) {
// }));
}
DpdPickupMap.prototype.highlightTerminal = function(parms)
{
var nodes = this.containerNode.querySelectorAll('.DPD_terminalSelect');
var node = parms.code
? this.containerNode.querySelector('.DPD_terminalSelect[data-terminal-code="'+ parms.code +'"]')
: nodes.item(parms.index);
if (!node) {
return false;
}
[].forEach.call(nodes, function(node) {
BX.removeClass(node, 'DPD_chosen');
});
BX.addClass(node, 'DPD_chosen');
index = parms.index || [].indexOf.call(nodes, node);
if (!this.placemarks[index].balloon.isOpen()
&& (!!parms.openBalloon) !== false
) {
this.placemarks[index].balloon.open();
}
if ((!!parms.openBalloon) !== false || 1 == 1) {
this.sendRequest('get_terminal_data', {
terminal_code: node.dataset.terminalCode
}, this._bind(function(data) {
this.placemarks[index].properties.set('balloonContent', data.TEXT);
}), true);
}
if (!!parms.highlightIcon) {
this.placemarks[index].options.set('iconImageHref', '/bitrix/images/ipol.dpd/pickup_locationmarker_highlighted.png');
}
}
DpdPickupMap.prototype.resetTerminals = function(arPlacemarks)
{
this.showLoading();
this.clearTerminals();
var terminalTypes = ['all'];
for (var i in arPlacemarks)
{
var arPlacemark = arPlacemarks[i];
var obPlacemark = BX_YMapAddPlacemarkDPD(this.map, arPlacemark);
var node = BX.create('p', {
attrs: {
'data-terminal-code': arPlacemark['CODE'],
'data-terminal-type': arPlacemark['TYPE'],
'data-terminal-addr': arPlacemark['ADDR']
},
props: {
className: 'DPD_terminalSelect',
},
text: arPlacemark['TITLE']
});
if (!obPlacemark) {
continue;
}
this.terminalsNode.appendChild(node);
this.placemarks.push(obPlacemark);
if (arPlacemark.TYPE && terminalTypes.indexOf(arPlacemark.TYPE) == -1) {
terminalTypes.push(arPlacemark.TYPE);
}
}
this.containerNode.querySelector('#DPD_modController').className = terminalTypes.length > 2 ? '' : 'dpd-hidden';
[].forEach.call(this.containerNode.querySelectorAll('.DPD_mC_block'), function(node) {
if (terminalTypes.indexOf(node.dataset.type) != -1) {
BX.removeClass(node, 'dpd-hidden');
} else {
BX.addClass(node, 'dpd-hidden');
}
});
this._bindMapEvents();
this.showByType('all');
this.setCenterMap();
this.hideLoading();
}
DpdPickupMap.prototype.clearTerminals = function()
{
if (this.map.geoObjects.removeAll != window.undefined) {
this.map.geoObjects.removeAll();
} else {
for (var i = 0; i < this.map.geoObjects.length; i++) {
this.map.geoObjects.remove(this.map.geoObjects[i]);
}
}
BX.cleanNode(this.terminalsNode);
this.placemarks = [];
}
DpdPickupMap.prototype.reload = function(componentParms, callback)
{
this
.setComponentParams(componentParms)
.sendRequest('reload', {}, this._bind('doReload'));
}
DpdPickupMap.prototype.liveReload = function(componentParms, componentResult)
{
this
.setComponentParams(componentParms)
.doReload(componentResult)
;
}
DpdPickupMap.prototype.doReload = function(arResult)
{
var node;
(node = BX('DPD_cityName')) && (node.innerHTML = arResult.CITY_NAME);
this.resetTerminals(arResult.PLACEMARKS);
this.setTariff(arResult.TARIFFS.COURIER, 'c');
this.setTariff(arResult.TARIFFS.PICKUP, 'p');
}
DpdPickupMap.prototype.setTariff = function(tariff, prefix)
{
var node;
(node = this.containerNode.querySelector('#DPD_'+ prefix +'Price'))
&& (node.innerHTML = BX.message('IPOLH_DPD_PICKUP_COST_TEXT').replace('#PRICE#', tariff.COST));
(node = this.containerNode.querySelector('#DPD_'+ prefix +'Date'))
&& (node.innerHTML = BX.message('IPOLH_DPD_PICKUP_PERIOD_TEXT').replace('#DAYS#', tariff.DAYS));
}
DpdPickupMap.prototype.sendRequest = function(action, parms, callback)
{
this._ajaxRequest && this._ajaxRequest.abort();
this.showLoading();
return this._ajaxRequest = BX.ajax({
timeout: 60,
method: 'POST',
url: '/bitrix/components/ipol/ipol.dpdPickup/ajax.php',
data: Object.assign({}, parms, {
AJAX_CALL : 'Y',
ACTION : action,
COMPONENT_PARAMS : this.getComponentParams(),
COMPONENT_TEMP : this.getComponentTemplate(),
bitrix_sessid : BX.bitrix_sessid()
}),
dataType: 'json',
onsuccess: this._bind(function(response) {
try {
if (response.status != 'ok') {
alert(response.data);
} else {
callback(response.data);
}
this.hideLoading();
} catch (e) {
console.log(e);
}
})
});
}
DpdPickupMap.prototype.getComponentParams = function()
{
try {
return eval('('+ this.containerNode.dataset.componentParams +')');
} catch(e) {
console.log(e);
return {};
}
}
DpdPickupMap.prototype.setComponentParams = function(parms)
{
this.containerNode.dataset.componentParams = BX.type.isString(parms) ? parms : JSON.stringify(parms);
return this;
}
DpdPickupMap.prototype.getComponentTemplate = function () {
return this.containerNode.dataset.componentTemplate;
}
DpdPickupMap.prototype.setComponentTemplate = function (template) {
this.containerNode.dataset.componentTemplate = template;
return this;
}
DpdPickupMap.prototype.showByType = function(showedType)
{
var items = this.containerNode.querySelectorAll('.DPD_terminalSelect');
for (var i = 0; i < items.length; i++) {
var isShow = showedType == 'all' || showedType == items[i].dataset.terminalType;
items[i].style.display = isShow ? 'block' : 'none';
this.placemarks[i] && this.placemarks[i].options.set('visible', isShow);
}
BX.removeClass(this.containerNode.querySelector('.DPD_mC_block.active'), 'active');
BX.addClass(this.containerNode.querySelector('.DPD_mC_block[data-type="'+ showedType +'"]'), 'active');
}
//////////////////////////////////////////////////////////////////////////////////////
DpdPickupMap.prototype.onSelectCity = function(e)
{
var cityId = e.target.dataset.cityId;
this.selectCity(cityId);
return false;
}
DpdPickupMap.prototype.onClickTerminal = function(e)
{
var parms = {openBalloon: !!e.target};
if (e.target) {
parms.code = e.target.dataset.terminalCode;
} else {
parms.index = this.placemarks.indexOf(e.get('target'));
}
this.highlightTerminal(parms);
[].forEach.call(this.containerNode.querySelectorAll('.arrow'), function(node) {
BX.removeClass(node, 'up');
});
[].forEach.call(this.containerNode.querySelectorAll('#DPD_wrapper'), function(node) {
BX.removeClass(node, 'show');
});
return false;
}
DpdPickupMap.prototype.onSelectTerminal = function(e)
{
var code = e.target.dataset.terminalCode;
this.selectTerminal(code);
}
DpdPickupMap.prototype.onSearchCity = function(e)
{
var text = BX.util.trim(e.target.value.toLowerCase());
var items = this.containerNode.querySelectorAll('.DPD_citySelect');
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (item.textContent.toLowerCase().indexOf(text) != -1) {
item.style.display = 'block';
} else {
item.style.display = 'none';
}
}
}
DpdPickupMap.prototype.onSwitchShowedType = function(e)
{
var showedType = e.target.dataset.type;
this.showByType(showedType);
return false;
}
DpdPickupMap.prototype.onToggleList = function(e) {
var arrow = this.containerNode.querySelectorAll('.DPD_arrow');
var list = this.containerNode.querySelectorAll('#DPD_wrapper');
[].forEach.call(arrow, function(node) {
BX.toggleClass(node, ['up', 'down']);
});
[].forEach.call(list, function(node) {
BX.toggleClass(node, ['show', 'hide']);
});
return false;
}
////////////////////////////////////////////////////////////////////////////////////////
DpdPickupMap.prototype._bind = function(callback)
{
var self = this;
callback = (typeof callback == 'function')
? callback
: this[callback]
;
return function () {
return callback.apply(self, arguments);
}
}
DpdPickupMap.prototype._bindDomEvents = function()
{
BX.bindDelegate(this.containerNode, 'click', {className: 'DPD_citySelect'}, this._bind('onSelectCity'));
BX.bindDelegate(this.containerNode, 'click', {className: 'DPD_terminalSelect'}, this._bind('onClickTerminal'));
BX.bindDelegate(this.containerNode, 'click', {className: 'DPD_button'}, this._bind('onSelectTerminal'));
BX.bindDelegate(this.containerNode, 'click', {className: 'DPD_mC_block'}, this._bind('onSwitchShowedType'));
BX.bindDelegate(this.containerNode, 'click', {className: 'DPD_arrow'}, this._bind('onToggleList'));
BX.bindDelegate(this.containerNode, 'keyup', {id: 'DPD_citySearcher'}, this._bind('onSearchCity'));
}
DpdPickupMap.prototype._bindMapEvents = function()
{
for (var i = 0; i < this.placemarks.length; i++) {
this.placemarks[i] && this.placemarks[i].events.add('click', this._bind('onClickTerminal'));
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
DpdPickupMap.prototype.showLoading = function()
{
this._loading && this.hideLoading();
this._loading = BX.showWait(this.containerNode);
this.maskNode.style.display = 'block';
}
DpdPickupMap.prototype.hideLoading = function()
{
BX.closeWait(this._loading);
this._loading = false;
this.maskNode.style.display = 'none';
}
/* End */
;
; /* Start:"a:4:{s:4:"full";s:111:"/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/script.min.js?171964375233132";s:6:"source";s:91:"/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
var DwBasket={};$(function(){let m={order:"DwBasketOrder",basket:"DwBasket",personType:"personSelect",personTypeModules:"personTypeModules",storesSwitch:"storeSelect",storesContainer:"storeSelectContainer",orderForm:"orderForm",orderFormActive:"orderForm.active",budgetContainer:"payFromBudget",budget:"budgetSwitch",quantityField:"qty",extraService:"extraServiceSwitch",extraServiceItem:"extraServicesItem",extraServiceItems:"extraServiceItems",extraServiceItemSum:"extraServiceItemSum",extraServiceItemContainer:"extraServicesItemContainer",delivery:"deliverySelect",deliverySum:"deliverySum",deliveryProps:"deliveryProps",deliveryDescription:"deliveryDescription",deliveryPeriod:"deliveryPeriod",deliveryPeriodDescription:"deliveryPeriodDescription",deliveryModulesContainer:"deliveryModulesContainer",deliveryModulesContainerDesc:"deliveryModulesContainerDesc",paysystem:"paySelect",paysystemProps:"payProps",locationField:"location",locationSwitchLink:"locationSwitchLink",locationSwitchContainer:"locationSwitchContainer",couponButton:"couponActivate",couponField:"couponField",confirmForm:"confirmForm",confirmSend:"confirmSend",confirmField:"confirmCode",confirmTimer:"confirmTimer",confirmReplay:"confirmReplay",confirmErrors:"confirmErrors",confirmErrorItem:"confirmErrorItem",confirmSubstrate:"confirmSubstrate",remove:"delete",minus:"minus",plus:"plus",productItemList:"productList",productItem:"parent",productPrice:"priceContainer",productDiscount:"discountContainer",propertyItem:"propItem",dropDownSelected:"dropDownSelected",clearAll:"clearAllBasketItems",giftContainer:"giftContainer",dropDownItems:"dropDownItems",dropDownItem:"dropDownItem",minPayment:"minimumPayment",orderComment:"orderComment",fastBuy:"fastBayContainer",dropDownActive:"selected",dropDownOpened:"opened",countItems:"countItems",orderAreas:"orderAreas",orderMove:"orderMove",basketSum:"basketSum",goToOrder:"goToOrder",orderSum:"orderSum",propActive:"active",propHidden:"hidden",dropDown:"dropDown",errorWindowClose:"basketErrorClose",errorWindowMessage:"errorMessage",errorWindow:"basketError",error:"error",orderMake:"orderMake"},s={maxQuantity:"error1",orderErrors:"error2",couponError:"error3"};var c=0,p=0,f={},v={calculate:{},binding:{keypress:{},keydown:{},mouseup:{},change:{},submit:{},input:{},click:{},focus:{},keyup:{},blur:{}},event:{},tools:{},commit:{basket:{},location:{}},flags:{location:{open:!1},dropDown:{open:!1}},check:{},price:{},ajax:{},push:{},pull:{}};v.binding.click.stop=function(e){return e.stopImmediatePropagation()},v.binding.click.closeout=function(e){!0===v.flags.location.open&&v.tools.resetLocation(e),!0===v.flags.dropDown.open&&v.tools.closeDropDown()},v.binding.click.openDropDown=function(e){var t=$(this).siblings("."+m.dropDownItems);t.find("."+m.dropDownItem);return t.hasClass(m.dropDownOpened)?v.tools.closeDropDown():(t.addClass(m.dropDownOpened),v.flags.dropDown.open=!0),e.preventDefault()},v.binding.click.selectDropDown=function(e){var t=$(this),o=t.parents("."+m.dropDown),r=o.find("."+m.dropDownItem),n=o.find("."+m.dropDownSelected),i=o.find("select"),a=t.data("value"),s=t.hasClass(m.dropDownActive);o.data("trigger-id");return r.removeClass(m.dropDownActive),t.addClass(m.dropDownActive),n.html(t.html()),o.find("."+m.dropDownItems).removeClass(m.dropDownOpened),v.flags.dropDown.open=!1,0==s&&(void 0!==i&&0