',{build:function(){this.constructor.superclass.build.call(this);this._$element=$('.popover',this.getParentElement());this.applyElementOffset();this._$element.find('.close').on('click',$.proxy(this.onCloseClick,this));},clear:function(){this._$element.find('.close').off('click');this.constructor.superclass.clear.call(this);},onSublayoutSizeChange:function(){MyBalloonLayout.superclass.onSublayoutSizeChange.apply(this,arguments);if(!this._isElement(this._$element)){return;}
this.applyElementOffset();this.events.fire('shapechange');},applyElementOffset:function(){this._$element.css({left:-(this._$element[0].offsetWidth/2),top:-(this._$element[0].offsetHeight+this._$element.find('.arrow')[0].offsetHeight)});},onCloseClick:function(e){e.preventDefault();this.events.fire('userclose');},getShape:function(){if(!this._isElement(this._$element)){return MyBalloonLayout.superclass.getShape.call(this);}
var position=this._$element.position();return new ymaps.shape.Rectangle(new ymaps.geometry.pixel.Rectangle([[position.left,position.top],[position.left+this._$element[0].offsetWidth,position.top+this._$element[0].offsetHeight+this._$element.find('.arrow')[0].offsetHeight]]));},_isElement:function(element){return element&&element[0]&&element.find('.arrow')[0];}});var MyBalloonContentLayout=ymaps.templateLayoutFactory.createClass('
$[properties.balloonHeader]
'+'
$[properties.balloonContent]
');return[MyBalloonLayout,MyBalloonContentLayout]}
function BalloonClusterContentLayoutFactory(){var MyBalloonContentLayout=ymaps.templateLayoutFactory.createClass(['
','
','{% for geoObject in properties.geoObjects %}','{{geoObject.properties.number|pointshow|raw}}','{% endfor %}','
',' {% if properties.geoObjects.length>2 %} {% endif %}','
";return html;}
function getBalloonViewForPoint(number){var k=PickPointWidgetHost._findPointByNumber(number);if(k!==false)
return getCardViewForPoint(points[k]);else
return"Точка "+number+" не найдена";}
var returningWidgetResource={headerText:"Выберите удобную точку с опцией возврата",helpLinkUrl:"",helpLinkText:"Подробнее",popupText:"
Упакуйте товар во избежание повреждений при транспортировке.
Укажите свой номер мобильного телефона на упаковке.
",pointText:"Внимание! Возвращаемый товар должен быть упакован в любой подходящий пакет и тщательно закрыт, на упаковке обязательно укажите номер своего мобильного телефона для связи.",filterText:"
Упакуйте товар во избежание повреждений при транспортировке.
Укажите свой номер мобильного телефона на упаковке.
";return html;}}
var pointProperties={getPropertiesIconListAsHTML:function(pointObj){var services="";return services;}}
var ya_key="e6e6e3dc-fa5d-4deb-98d7-6150c8e5aa05";var qp=(new URLSearchParams(location.search));window.IS_MOSCOW_POSTAMAT=qp.has("ikn_c2c_clientpostamatlist")||qp.has("ikn_c2c_clientpostamatreturnlist");const Months=['Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря',];var PickPointWidgetHost=new function(){var eventMethod=window.addEventListener?"addEventListener":"attachEvent";var eventer=window[eventMethod];var messageEvent=eventMethod=="attachEvent"?"onmessage":"message";var ya_key_base64_escaped=escape(btoa(ya_key));var widgetId=null;var widgetProtocol=CDMPickpointProtocol;var PickPointGeocoderProvider={geocode:function(request,options){self.log("GeocodeProvider запрос: "+request.toString());var pass_options={apikey:ya_key};if(options){if(options.kind)pass_options.kind=options.kind;}
var options_string=$.param(pass_options);return new Promise(function(resolve,reject){$.ajax({url:"/select/geocode/"+"?"+options_string,data:JSON.stringify([{request:request}]),method:"POST",contentType:"application/json",dataType:"json",jsonp:false}).then(function(response){resolve({geoObjects:ymaps.geoQuery(response.result)});},function(err){self.warning("GeocodeProvider fallback");ymaps.geocode(request,pass_options).then(function(res){resolve(res);},function(err){reject(err);});});});}};this.geocode=function(query,options){options=options||{};options.provider=PickPointGeocoderProvider;return ymaps.geocode(query,options);}
this.getUrlParameter=function(sParam){function LookIn(sPageURL){var sURLVariables=sPageURL.split('&');for(var i=0;i=0){return self.countrylist[self.currentstate.country.index].citylist}else{self.error("Список стран пуст, нет точек удовлетворяющих начальным условиям.");return self._citylist_fallback;}}});this.msgorigin="*";this.mainmap=null;this.mainmap_cluster=null;this.mainmap_cluster_geoObjects=[];this.mainmap_searchobject=null;this.mainlist=null;this.mainmetro=null;this.searchFields=['Name','Number','Address','PostCode','OutDescription','InDescription'];this.params={};this.dynacmicFilterPredicates=null;this.currentstate={country:{index:0,name:""},city:{id:0,index:0,hasMetro:false,name:"",bounds:[]},searchq:"",searchMode:0,view:"",filterMetro:"",filter:null,filterSkipKeys:[],use_gps:self.getUrlParameter('usegps'),initialpoint:{number:"",promise:null},filteredPointsCount:0,};this.isPointPassPreconfig=function(p){if(!PickpointConstructorLegacy.isPointPassPreconfig(self,p))
return false;return p.Status!=3;}
this.getCurrentCityPointList=function(){if(self.currentstate.city.id=="0@0"){return self.getAllCountryPointList();}
var r=[];for(var k=self.getPointCount();k--;){if(self.getPoint(k).CitiId+"@"+self.getPoint(k).CitiOwnerId!=self.currentstate.city.id||!self.isPointPassFilter(self.getPoint(k),self.currentstate.filter))
continue;r.push(self.getPoint(k));}
return r.length?r:false;}
this.getPointCount=function(){return points.length;}
this.getPoint=function(index){return points[index];}
this.getAllPointList=function(){return points;}
this.getAllCountryPointList=function(){var r=[];for(var k=self.getPointCount();k--;){if(self.getPoint(k).CountryName!=self.currentstate.country.name||!self.isPointPassFilter(self.getPoint(k),self.currentstate.filter))continue;r.push(self.getPoint(k));}
return r.length?r:false;}
this.log=function(text){if(console&&console.log)
console.log("Pickpoint: ",text);}
this.error=function(text){if(console&&console.error)
console.error("Pickpoint: ",text);}
this.warning=function(text){if(console&&console.warn)
console.warn("Pickpoint: ",text);}
this._initmaps=function(){createYandexTemplateFilter();PickpointIconManager.warmup();function createDefaultMainMap(){var defname_last="Москва";var defname=self.params.city&&self.params.city!=""?self.params.city:defname_last;var id=0;var cid=false;if(self.countrylist.length==0){self.error("Pickpoint: Список доступных стран пуст!");self._createMainMap([55.76,37.64],"Москва");return;}
var country="Россия";var ctid=self.countrylist.findByName(country);if(ctid===false){ctid=0;country=self.countrylist[ctid].name;}
self.currentstate.country.index=ctid;self.currentstate.country.name=country;if((cid=self.citylist.findByRusName(defname))!==false){id=self.citylist.getCityByIndex(cid).id;}else if((cid=self.citylist.findByRusName(defname_last))!==false){defname=defname_last;id=self.citylist.getCityByIndex(cid).id;}else if(self.citylist.cities.length){defname=self.citylist.cities[0].name;id=self.citylist.cities[0].id;}else{self.error("нет городов для инициализации");return;}
self._createMainMap([55.76,37.64],defname);self.changeCity(id,true);showInitialPoint();}
function showInitialPoint(){if(self.currentstate.initialpoint.number){self.mapOpenBalloon(self.currentstate.initialpoint.number,true);self.showPointBox(self.currentstate.initialpoint.number);}else if(self.currentstate.initialpoint.promise){self.currentstate.initialpoint.promise.then(function(data){self.showPointBox(data);},function(){console.log("Начальная точка не найдена в АПИ");});}}
self.log("Определяем город...");ymaps.geolocation.get({provider:self.currentstate.use_gps=='auto'?'auto':'yandex',autoReverseGeocode:false,mapStateAutoApply:true}).then(function(result){var xy_location=result.geoObjects.position[0]+", "+result.geoObjects.position[1];return self.geocode(xy_location,{kind:"locality"});}).then(function(result){try{var mdp=result.geoObjects.get(0).properties.get('metaDataProperty.GeocoderMetaData');var country=mdp.AddressDetails&&mdp.AddressDetails.Country?mdp.AddressDetails.Country.CountryName:"Россия";var city=mdp.AddressDetails.Country.AddressLine.replace("Россия, ","");if(mdp.AddressDetails.Country.AdministrativeArea&&mdp.AddressDetails.Country.AdministrativeArea.Locality){city=mdp.AddressDetails.Country.AdministrativeArea.Locality.LocalityName;}else if(mdp.AddressDetails.Country.AdministrativeArea&&mdp.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea&&mdp.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality){city=mdp.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;}
var pos=result.geoObjects.get(0).geometry.getCoordinates();self.log("ваше положение по geoip '"+country+"' : '"+city+"'");var ctid=false;if(self.params.countryISO){self.log("Принудительная установка страны "+self.params.countryISO);ctid=self.countrylist.findByISO(self.params.countryISO);if(ctid!==false){country=self.countrylist[ctid].name;self.log("Успешно, выбрана страна: "+country);}else{self.log("ISO не найдена "+self.params.countryISO);}}
if(ctid===false)ctid=self.countrylist.findByName(country);if(ctid===false){self.warning("К сожалению такой страны нет в базе: "+country);ctid=self.countrylist.findByName("Россия");if(ctid===false){if(self.countrylist.length>0){ctid=0;country=self.countrylist[ctid].name;}else{self.error("что-то пошло не так, список городов пуст");return false;}}else{country=self.countrylist[ctid].name;}}
self.log("Страна: "+country);$(".countryselect input").attr("placeholder",country);self.currentstate.country.index=ctid;self.currentstate.country.name=country;if(self.params.city&&self.params.city!=""){self.log("Принудительная установка города "+self.params.city);city=self.params.city;}
var cid=self.citylist.findByName(city);if(cid!==false){self._createMainMap(pos,city);self.changeCity(self.citylist.getCityByIndex(cid).id,true);showInitialPoint();if(self.currentstate.use_gps=='auto')
self.mainmap.geoObjects.add(result.geoObjects);}else{createDefaultMainMap();self.warning("К сожалению, города "+city+" нет в базе");}}catch(e){self.error("Ошибка геолокации");self.error(e);createDefaultMainMap();}},function(){createDefaultMainMap();self.log("Не удалось определить местоположение по IP через сервис Yandex");});}
this._createMainMap=function(default_pos,city_name){self.changeView('map');if(self.mainmap instanceof ymaps.Map)self.mainmap.destroy();self.mainmap=new ymaps.Map('mainmap',{center:default_pos,zoom:10,controls:["zoomControl"]});self.mainmap.events.add('boundschange',function(e){});self.mainmap.geoObjects.events.add('balloonopen',function(e){var point_number=e.get('target').properties.get('number');if(point_number){self.setCurrentCityByPointNumber(point_number);}});$('.cityselect>div>input').attr('placeholder',city_name);self.createPoints();}
this._onmessage=function(e){let data=e[e.message?"message":"data"];if(CDMPickpointProtocol.isMessage(data)){widgetProtocol=CDMPickpointProtocol;}else if(CDMPickpointProtocolMLevi21.isMessage(data)){widgetProtocol=CDMPickpointProtocolMLevi21;}else{return;}
let message=widgetProtocol.parse(data);switch(message.action){case"init":self.msgorigin=e.origin&&e.origin!="null"?e.origin:"*";self.params=message.data.params;with(self.currentstate){filter=PostamatsFilters;}
if(widgetProtocol.hasOwnProperty("setInstance")&&message.instanceId){widgetProtocol.setInstance(message.instanceId);}
self.init_widget();break;case"refreshBounds":ymaps.ready(function(){var c=self.currentstate.city;if(c&&c.bounds){if(self.mainmap)self.mainmap.setBounds([[c.bounds[0],c.bounds[1]],[c.bounds[2],c.bounds[3]]],{checkZoomRange:true});}});break;case"filter":ymaps.ready(function(){self.log("Фильтрация точек виджета");if(typeof points!=="undefined"){self.dynacmicFilterPredicates=message.data.predicates;self.createPoints();self.mainlist=new PickPointViewList(self);if(self.currentstate.view==='list'){self.changeView('list',true);}
self._sendrawmsg(widgetProtocol.build("filter",{filteredPointsCount:self.currentstate.filteredPointsCount}));}})
break;}}
this._sendrawmsg=function(rawdata){window.parent.postMessage(rawdata,self.msgorigin);}
this._buildCityList=function(){this.countrylist.length=0;for(var k=self.getPointCount();k--;){var ci=this.countrylist.findByName(self.getPoint(k).CountryName);if(ci===false){var cobj=self.getPoint(k);ci=this.countrylist.addCountry(cobj.CountryName,cobj["CountryIso"]?cobj.CountryIso:false);};this.countrylist[ci].citylist.process(self.getPoint(k),self.currentstate.filter);}
this.countrylist.sort(function(a,b){var predefined=['Россия'];ai=predefined.indexOf(a.name);bi=predefined.indexOf(b.name);if(ai>=0&&bi<0)return-1;else if(ai<0&&bi>=0)return 1;else if(ai>=0&&bi>=0)return(ai==bi)?0:(ai>bi?1:-1);else
return((a.name==b.name)?0:((a.name>b.name)?1:-1));});for(var i=0;iul');clb.mCustomScrollbar('destroy');clb.empty();for(var i=0;i"+cl[i].name+"");}
UIX.comboboxBehavior('.combobox[target="citylistblock"]','#citylistblock');}
this._drawCountryList=function(){var cl=self.countrylist;var clb=$('#countrylistblock>ul');clb.mCustomScrollbar('destroy');clb.empty();for(var i=0;i"+cl[i].name+"");}
UIX.comboboxBehavior('.combobox[target="countrylistblock"]','#countrylistblock');}
this._buildMetroList=function(){var city=self.citylist.getCityByIndex(self.currentstate.city.index);var clb=$('#metrolistblock>ul');$('.metroselect>div>input').val("");clb.mCustomScrollbar('destroy');clb.html('');var cl=city.metroList.stations;clb.append("
";i++;}
fb.append(html);}
this.updateFilterUICounters=function(){var c=self.citylist.getCityByIndex(self.currentstate.city.index);var fb=$('.flagbox');for(var key in c.filterStats){fb.find("span[key=\""+key+"\"]").text(c.filterKeyStats[key]);for(var i=0;i=0){var point=self.getPoint(pid);var city_id=self.citylist.findByName(point.CitiName);if(city_id>=0){var city=self.citylist.getCityByIndex(city_id);self.changeCity(city.id,false,true);}}}
this.changeCity=function(id,fastmove,onfly){var index=self.citylist.findById(id);var c=self.citylist.getCityByIndex(index);$("#searchbox").val("");self.currentstate.searchq="";self.currentstate.searchMode=0;self.currentstate.filterMetro="";self.currentstate.city.id=id;self.currentstate.city.index=index;self.currentstate.city.name=c.name;self.currentstate.city.hasMetro=c.hasMetro;self.currentstate.city.bounds=c.bounds?c.bounds:[];$(".cityselect>div>input").attr("placeholder",c.name);if(self.currentstate.city.hasMetro){self._buildMetroList();$('.metroselect').show();}else{$('.metroselect').hide();}
if(!onfly){if(!fastmove)
if(c.id==0){self.mainmap.setBounds([[c.bounds[0],c.bounds[1]],[c.bounds[2],c.bounds[3]]],{checkZoomRange:true,duration:1000});}else{self.mainmap.setZoom(5,{duration:1000}).then(function(){self.mainmap.panTo([c.latitude,c.longitude],{flying:1,duration:1000}).then(function(){self.mainmap.setBounds([[c.bounds[0],c.bounds[1]],[c.bounds[2],c.bounds[3]]],{checkZoomRange:true,duration:2000});});});}
else{self.mainmap.setBounds([[c.bounds[0],c.bounds[1]],[c.bounds[2],c.bounds[3]]],{checkZoomRange:true});}}
if(self.currentstate.view=='list'){self.changeView('list');}
if(self.currentstate.view=='metro'){if(!c.hasMetro)
self.changeView('map');else
self.changeView('metro');}else
self.changeView();self.updateFilterUICounters();}
this.rebuildPointsByFilterUI=function(){self.createPoints();if(self.currentstate.view!='map'){self.changeView(self.currentstate.view,true);}}
this.showPointBox=function(numberOrObject){var form=$('#PointInfoForm');function __processTextField(dompath,value){var f=form.find(dompath);var fv=form.find(dompath+">span");if(value!=undefined&&value!=""){fv.html(value);f.show();}else
f.hide();}
var p=false,number=false;if(typeof numberOrObject==="string"){var k=self._findPointByNumber(numberOrObject);p=(k!==false)?self.getPoint(k):false;number=numberOrObject;}else{p=numberOrObject;number=numberOrObject.Number;}
if(p!==false){if(self.IN_POSTAMATS){var state={number:number};var title=p.Name;var url='/postamats/'+p.Number+'/';window.parent.history.replaceState(state,title,url);}
var payways_mass=[];if(p.Cash==1)
payways_mass.push("наличные ");if(p.Card==1)
payways_mass.push("карты ");if(p.Card==0&&p.Cash==0)payways_mass.push("выдача только оплаченных заказов");payways_mass.push("онлайн оплата на сайте PickPoint или в мобильном приложении.");var payways=payways_mass.join(", ");var original_w=400;var original_h=400;var img_prefix_thumb=self.URL_BASE+"thumbs/cache/cut/134/109/";var img_prefix_original="//e-solution.pickpoint.ru/api/";var title=p.Number+": "+p.Name;with(form.find(".title")){removeClass("titlespace1 titlespace2 titlespace3");text(title);attr("title",title);if(title.length<37)
addClass("titlespace1");else if(title.length<49)
addClass("titlespace2");else
addClass("titlespace3");}
form.find(".imageblock>div.imagelist>a").remove();var imagelist=form.find(".imageblock>div.imagelist");var minimap_thumb="//enterprise.static-maps.yandex.ru/1.x/?l=map&key="+ya_key_base64_escaped+"&lang=ru-RU&ll="+p.Longitude+"%2C"+p.Latitude+"&z="+17+"&size="+2*134+","+2*109;var minimap_original="//enterprise.static-maps.yandex.ru/1.x/?l=map&key="+ya_key_base64_escaped+"&lang=ru-RU&ll="+p.Longitude+"%2C"+p.Latitude+"&z="+17+"&size="+original_w+","+original_h;var minimap_icon=PickpointIconManager.getIconPropertiesForPoint(p);if(!minimap_icon.image)minimap_icon=PickpointIconManager.getIconFallback(p);var minimap_l=minimap_icon.offsetx,minimap_t=minimap_icon.offsety;imagelist.append(""+""+"");for(var i=0;i<=1;i++){if(p["File"+i.toString()]==undefined||p["File"+i.toString()]=="")
continue;var purl=(p.hasOwnProperty("isQIWI")&&p.isQIWI?"":img_prefix_thumb)+p["File"+i.toString()];var ourl=(p.hasOwnProperty("isQIWI")&&p.isQIWI?"":img_prefix_original)+p["File"+i.toString()];var img=new Image();img.setAttribute("original",ourl);img.onload=function(){imagelist.prepend("");};img.src=purl;}
if(p["isQIWI"]){var qiwi_pic_o1=self.URL_BASE+"design/inpost.jpg";imagelist.prepend("");}
var work_date=form.find('.work_date');work_date.removeClass("work_date--active");work_date.html("");if(p.WorkDateException&&p.WorkDateException.length){let work_date_html="
Внимание!
";p.WorkDateException.forEach((date)=>{let md=moment(date,"DD.MM.YYYY");if(Math.abs(moment().diff(md,'days'))>14){return;}
let parts=date.split("."),dateStr=parseInt(parts[0])+" "+Months[parseInt(parts[1])-1].toLowerCase();work_date_html+="
"+dateStr+" - выходной день
";});work_date.addClass("work_date--active");work_date.html(work_date_html);}
var hint_small=form.find('.hint_small');hint_small.removeClass("hint_small--house");hint_small.html("");if(p.RstHouse){hint_small.html("Доступен только для жителей дома");hint_small.addClass("hint_small--house");}
var hint=form.find('.hint');hint.removeClass('hintYellow hintGreen hintRed');hint.show();switch(p.Status){case 1:hint.addClass('hintRed').html("Дата открытия точки "+p.DateOfOpen+"");break;case 2:hint.addClass('hintGreen').html("Гарантированные сроки доставки");break;case 3:case 4:if(p.TypeTitle=="ПВЗ"){hint.addClass('hintRed').html("Внимание!Доставка в данный ПВЗ временно не доступна.");}else{hint.addClass('hintRed').html("Внимание!В данном постамате нет свободных ячеек.");}
break;case 5:hint.addClass('hintYellow').html("Внимание!Срок доставки может быть увеличен");break;default:hint.hide();break;}
if(p._freezer){hint.addClass('hintNavy').html("С холодильником");}
if(p['TemporarilyClosed']==1){hint.addClass('hintRed').html("Временное закрытие");}
__processTextField(".address",p.Address);__processTextField(".worktime",p.WorkTimeSMS);__processTextField(".howtogo",p.OutDescription);__processTextField(".location",p.InDescription);__processTextField(".payways",payways);var rwd_text="";if(self.params.returningWidgetDesciption){var rwd_text=returningWidgetResource.pointText;var rwd_link=returningWidgetResource.getHtmlLink();rwd_text="
"+rwd_text+"
"+rwd_link+"
";}
__processTextField(".returning",rwd_text);__processTextField(".services",pointProperties.getPropertiesIconListAsHTML(p));if(p.Metro!=undefined&&p.Metro!=""){form.find(".nearmetro>span").text("Поиск...").attr('pid',p.Id).attr('posLat',p.Latitude).attr('posLong',p.Longitude);metroRecalc('#PointInfoForm',true);}else{form.find(".nearmetro").hide();}
with(form.find(".content_scroll")){mCustomScrollbar('destroy');mCustomScrollbar();}
form.find(".select").attr('onclick',"PickPointWidgetHost.doSelect(\""+p.Number+"\"); return false;");form.show();form.find(".linkbtn").attr("href","http://pickpoint.ru/postamats/"+p.Number+"/").find('.arrow_box').hide();form.find(".printbtn").unbind('click').bind('click',function(){function addslashes(str){return(str+'').replace(/[\\"']/g,'\\$&').replace(/\u0000/g,'\\0');}
function _input_hidden(name,value){return"";}
var pi=$('#print');var pic=pi.contents();var html="";pic.find('body').html(html).find('#form_print').submit();});}}
this.changeView=function(to,force){hideItemPoplist();var q=$('#searchbox').val();if(q==""&&self.currentstate.searchq!=q){self.currentstate.searchq=q;force=true;}
var actionRequired=to!=undefined;to=to||self.currentstate.view;$('.overlaytab').show();if(self.currentstate.view=='metro'){$('#mainmetro_panel').hide();$('#switchcontrols').removeClass('switchcontrols_pos2').addClass('switchcontrols_pos1');}
self.currentstate.view=to;var names=["Карта","Метро","Список"];$('.ppwgt_box .overlaytab').removeClass('otmap otmetro otlist');$('.ppwgt_box .centerpanel-inner').removeClass('rightpanel');var hasMetro=false;switch(to){case"map":$('#mainmap').show();if(self.mainmap)
self.mainmap.container.fitToViewport();$('#mainmetro,#mainlist').hide();if(hasMetro){$('.ppwgt_box .ot2').addClass("otlist").text(names[2]);$('.ppwgt_box .ot1').addClass("otmetro").text(names[1]);$('.ppwgt_box .ot2').show();}else{$('.ppwgt_box .ot2').hide();$('.ppwgt_box .ot1').addClass("otlist").text(names[2]);}
break;case"list":$('#mainlist').show();$('#mainmetro,#mainmap').hide();if(hasMetro){$('.ppwgt_box .ot1').addClass("otmetro").text(names[1]);$('.ppwgt_box .ot2').addClass("otmap").text(names[0]);$('.ppwgt_box .ot2').show();}else{$('.ppwgt_box .ot2').hide();$('.ppwgt_box .ot1').addClass("otmap").text(names[0]);}
if(actionRequired){self.mainlist.display($('#mainlist'),force);}
break;case"metro":$('#mainmetro_panel').show();$('#switchcontrols').removeClass('switchcontrols_pos1').addClass('switchcontrols_pos2');$('#mainmetro').show();$('#mainmap,#mainlist').hide();$('.ppwgt_box .ot2').addClass("otmap").text(names[0]);$('.ppwgt_box .ot1').addClass("otlist").text(names[2]);$('.ppwgt_box .centerpanel-inner').addClass('rightpanel');if(actionRequired)
self.mainmetro.display($('#mainmetro'),$('#mainmetro_panel'));break;}}
this.showReturningTooltip=function(){$("#TooltipWindow>div.content").html(returningWidgetResource.getHtmlPopup());$("#TooltipWindow").show();}
this.doSelect=function(number){function sendPoint(p,params){var zone=params&¶ms.zone?params.zone:null,coeff=params&¶ms.coeff?params.coeff:null,delivery_min=params&¶ms.delivery_min?params.delivery_min:null,delivery_max=params&¶ms.delivery_max?params.delivery_max:null,delivery_mode=params&¶ms.delivery_mode?params.delivery_mode:null,zones=params&¶ms.zones?params.zones:null;self._sendrawmsg(widgetProtocol.build("select",{id:p.Number,address:p.PostCode+", "+p.Region+", "+p.CitiName+", "+p.Address,shortaddress:p.Address,name:p.Name+" "+p.Number,nameStrict:p.Name,cityname:p.CitiName,postcode:p.PostCode,region:p.Region,country:p.CountryName,longitude:p.Longitude,latitude:p.Latitude,maxsize:p.MaxSize,maxweight:p.MaxWeight,house:p.House,card:p.Card,cash:p.Cash,bdid:p.Id,zone:zone,coeff:coeff,delivery_min:delivery_min,delivery_max:delivery_max,delivery_mode:delivery_mode,zones:zones,cityid:p.CitiId,cityownerid:p.CitiOwnerId,status:p.status,typetitle:p.TypeTitle}));}
if(self.params.returningWidgetDesciption){self.showReturningTooltip();return;}
var p=self.getPoint(self._findPointByNumber(number));if(self.params.fromcity!==undefined&&self.params.fromcity!=""){var ajaxdata={city:self.params.fromcity,p:number};if(self.params.ikn){ajaxdata.ikn=self.params.ikn;}
$.ajax({type:"POST",url:"zone_ajax.php",data:ajaxdata,success:function(data){var err=data.err?data.err:null;if(err!=""&&console&&console.warning)
console.warning('Проблемы с возвратом тарифной зоны: ',err);sendPoint(p,data);},dataType:"json"});}else{sendPoint(p);}
self.mainmap.balloon.close();$('#PointInfoForm').hide();}
this.moveToPoint=function(number){var p=this._findPointByNumber(number);if(p!==false){p=self.getPoint(p);this.changeView('map');if(self.mainmap.geoObjects.getLength()&&(self.mainmap.geoObjects.get(0)instanceof ymaps.Clusterer)){var go=self.mainmap.geoObjects.get(0).getGeoObjects();var l=go.length;for(var i=0;i=0)
self.currentstate.filterSkipKeys.splice(self.currentstate.filterSkipKeys.indexOf(key),1);});$('.flag_set input[type=checkbox]').each(function(){var val=$(this).is(":checked")?1:0;var key=$(this).attr('key');var index=$(this).attr('index');self.currentstate.filter[key][index][1]=val;});}
this.isPointPassSearch=function(p,q){if(self.currentstate.searchMode==1)
return true;var fs=self.searchFields;var lq=q.toLowerCase();for(var f=0;f=0)
return true;}
return false;}
this.searchPossibility=function(q){var list=self.getCurrentCityPointList();for(var i=0;i9){var i=self.citylist.findNearByCoords(coords[0],coords[1],zoom);if(i>0){var c=self.citylist.getCityByIndex(i);if(c.id!=self.currentstate.city.id){$('.cityselect>div>input').attr('placeholder',c.name);self.changeCity(c.id,false,true);}}}},countryBoxChange:function(e){var i=$(e).attr('index');if(i==self.currentstate.country.index)return;self.currentstate.country.index=i;self.currentstate.country.name=self.countrylist[i].name;self._drawCityList();if(self.citylist.cities.length){self.rebuildPointsByFilterUI();self.changeCity(self.citylist.cities[0].id,true);}},cityBoxChange:function(e){var i=$(e).attr('sid');self.changeCity(i);},metroBoxChange:function(e){var i=$(e).attr('sid');if(i==""){$('div[target=metrolistblock] input').attr("placeholder","Метро").val("");self.currentstate.filterMetro="";self.mainlist.display($('#mainlist'),true);return;}
self.currentstate.filterMetro=i;if(self.currentstate.view=='metro'){var panel=$('#mainmetro_panel');hideItemPoplist();panel.find('.metro_stations input').prop('checked',false);panel.find('.metro_station_checkbox[hint="'+i+'"]').prop('checked',true).change();}else if(self.currentstate.view=='list'){self.mainlist.display($('#mainlist'),true);}else if(self.currentstate.view=='map'){var metroname=", метро "+i;var metroGeocoder=self.geocode(self.currentstate.city.name+metroname);metroGeocoder.then(function(res){if(res.geoObjects.getLength()){var o=res.geoObjects.get(0);var c=o.geometry.getCoordinates();if(self.mainmap_searchobject){self.mainmap.geoObjects.remove(self.mainmap_searchobject);}
o.options.set('preset','islands#darkOrangeDotIcon');self.mainmap_searchobject=o;self.mainmap.geoObjects.add(o);self.mainmap.panTo(c).then(function(){self.mainmap.setZoom(15,{checkZoomRange:true});});}})}}}
this.inIframe=function(){try{return window.self!==window.top;}catch(e){return true;}}
this.isSiteMode=function(){return self.params.sitemode;}
this.isPointDisabledSelection=function(){return this.isSiteMode()||(self.params&&self.params.noselect);}
this.init_widget=function(){if(self.params.hasCustomPoints){if(self.params.data_points){points=self.params.data_points;self.log("Предоставлены точки "+self.params.data_points.length+" шт.");}else{return self.error("Точки должны быть предоставлены при инициализации");}
if(self.params.data_metro){metrostations=self.params.data_metro;}else{return self.error("Метро должно быть предоставлено при инициализации");}
if(self.params.data_metrocity){metrocitylist=self.params.data_metrocity;}else{return self.error("Метро и города должны быть предоставлены при инициализации");}
self.log("Инициализация с предоставлеными точками...")}
metroStationsInit();if(self.params.navigation){self.IN_POSTAMATS=true;}
var tcnt=self.truncatePoints();if(!self.inIframe()||self.isSiteMode()){self.log("pts trunc cnt: "+tcnt);}
if(self.isPointDisabledSelection()){$("#PointInfoForm .select").hide();}
if(self.params.theme){if(!(new PickpointThemeClass(self.params.theme)).apply())self.error("Ошибка инициализации начальной темы");}
if(self.params.returningWidgetDesciption){if(self.params.returningWidgetDesciption.filterText)returningWidgetResource.filterText=self.params.returningWidgetDesciption.filterText;if(self.params.returningWidgetDesciption.pointText)returningWidgetResource.pointText=self.params.returningWidgetDesciption.pointText;if(self.params.returningWidgetDesciption.popupText)returningWidgetResource.popupText=self.params.returningWidgetDesciption.popupText;if(self.params.returningWidgetDesciption.helpLinkText)returningWidgetResource.helpLinkText=self.params.returningWidgetDesciption.helpLinkText;if(self.params.returningWidgetDesciption.helpLinkUrl)returningWidgetResource.helpLinkUrl=self.params.returningWidgetDesciption.helpLinkUrl;}
$(function(){if(self.params.minMapHeight){var minMapHeight=parseFloat(self.params.minMapHeight);if(minMapHeight>self.MIN_MAP_HEIGHT_CONSTRAINT){self.log("Установлен минимальный размер высоты карты: "+self.params.minMapHeight.toString());$(".ppwgt_box #mainmap, .ppwgt_box #mainmetro, .ppwgt_box #mainlist").css({minHeight:(minMapHeight-1).toString()+"px"});$(".ppwgt_box .body").css({minHeight:(minMapHeight+74).toString()+"px"});if(minMapHeight<566){$("#PointInfoForm").css({height:(minMapHeight+74).toString()+"px"});$("#PointInfoForm .content_scroll").css({maxHeight:(minMapHeight+74-146).toString()+"px"});}}else{self.warning("Минимальный размер карты не может быть меньше "+self.MIN_MAP_HEIGHT_CONSTRAINT);}}
if(self.params.returningWidgetDesciption){var rwd_filtertext=returningWidgetResource.filterText;var rwd_link=returningWidgetResource.getHtmlLink();$('.ppwgt_box > .layer > .header > h1').text(returningWidgetResource.headerText);$(".flagbox").append("
"+$("#filter-virtual-returning").html()+"
"+rwd_filtertext+"
"+rwd_link+"
"+"
");}
if(self.params.hideCloseButton){$(".ppwgt_box .closex").hide();}
if(self.params.hideFilterPanel){$("#flexleftpanel").hide();}
if(self.params.limitcities){self.params.limitcities=self.params.limitcities.map(function(value){return value.toLowerCase();});}
if(!self.isSiteMode()||self.params.disableFilters){var pf_data=self.currentstate.filter;for(var key in pf_data){for(var k=0;kspan').click(function(){self.searchStart();});$(window).resize(function(){if(self.mainmap)self.mainmap.container.fitToViewport();self.resizeParentIFrame();});$('#loading').hide();self.resizeParentIFrame();var postamat_name=self.params.postamat_name?self.params.postamat_name:self.getUrlParameter('postamat_name');if(postamat_name){var k=self._findPointByNumber(postamat_name);if(k!==false){self.currentstate.initialpoint.number=postamat_name;self.params.city=self.getPoint(k).CitiName;}else{if(self.IN_POSTAMATS){self.currentstate.initialpoint.promise=$.ajax({type:'POST',url:'//e-solution.pickpoint.ru/api/getptinfo',data:JSON.stringify({'PTNumber':postamat_name}),contentType:"application/json",dataType:'json'});}else{self.log("Точка "+postamat_name+" не найдена!");}}}
ymaps.ready(self._initmaps);});};eventer(messageEvent,self._onmessage,false);if(!self.inIframe()){self._onmessage({origin:location.protocol+"//pickpoint.ru",message:widgetProtocol.build("init",{params:{}})});self.log("observer mode enabled");}else{try{let IFrameVisible=false;const options={threshold:0.1};const callback=([bodyElement])=>{if(bodyElement.isIntersecting){IFrameVisible=true;}};const observer=new window.IntersectionObserver(callback,options);const bodyElement=document.querySelector('body');observer.observe(bodyElement);let visibilityHackTimer=setInterval(function(){if(!self.mainmap)return;const zoom=self.mainmap.getZoom();if(!zoom&&!IFrameVisible){clearInterval(visibilityHackTimer);self.mainmap.setZoom(10);console.log("Fix ZOOM for visibility");}},50);}catch(e){self.log("Visibility hack is not installed");self.error(e);}}};