if(!window.fetch){var req=new XMLHttpRequest();req.open('GET','https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch',false);req.send();eval(req.responseText);}
if(!window.Promise){var req=new XMLHttpRequest();req.open('GET','https://cdn.polyfill.io/v2/polyfill.min.js?features=Promise',false);req.send();eval(req.responseText);}
var RuchWidget=function(el,opts,jquery){this.env={baseLink:'https://ruch-osm.sysadvisors.pl/',isSandbox:0,isCodFilter:0,isPointTypeFilter:0,};if(opts.loadCb)this.loadCb=opts.loadCb;if(opts.selectCb)this.selectCb=opts.selectCb;if(opts.initialAddress)this.initialAddress=opts.initialAddress;if(opts.sandbox)this.sandbox=opts.sandbox;if(opts.baseLink)this.base=opts.baseLink;if(opts.showCodFilter)this.showCodFilter=opts.showCodFilter;if(opts.showPointTypeFilter)this.showPointTypeFilter=opts.showPointTypeFilter;if(opts.readyCb)this.readyCb=opts.readyCb;if(typeof opts.animation!=='undefined')this.animation=opts.animation;this.base=(this.base)?this.base:this.env['baseLink'];this.url=this.base+'api.php';this.el=null;this.allpts=[];this.pts=null;this.pts_ind=null;this.apkt=-1;this.tune=false;this.map=null;this.provider=null;this.searchMark=null;this.listMax=500;this.listLen=30;this.laDegKm=111.2;this.loDegKm=68.5;this.maxDist=12;this.maxTested=20;this.testedShow=5;this.icons={};this.icons_b={};this.type_i=['R','P','U','A'];this.type_png={'R':'marker-icon-orlen.png','P':'marker-icon-orlen.png','U':'marker-icon-orlen.png','A':'marker-icon-orlen.png'};this.type_txt={'R':'Kiosk/Salonik','P':'Punkt partnerski','U':'Punkt partnerski','A':'Orlen Paczka'};this.type_filter={'PSD':'Punkt Sprzedaży Detalicznej','PSP':'Punkt Sprzedaży Prasy','PPP':'Punkt pozaprasowy','APM':'APM'};this.methods=null;this.prices={};this.markerClusters=null;this.mks=[];this.mks_i={};this.tested=[];this.selected=null;this.type=['R','P','U','A'];this.type_st=['R','P','U','A'];this.type_api=[];this.ptmap={};this.map_y=500;this.state=0;this.filtering=false;this.txt_error='Wystąpił błąd wczytywania listy punktów. Odśwież stronę aby spróbować ponownie.';this.txt_zoomin='Przybliż mapę, aby wyświetlić listę punktów';this.txt_select='Wybierz ten punkt';this.txt_search='Wpisz miasto lub kod';this.pr='id-'+Math.floor(new Date().valueOf()*Math.random())+'-';this.showCodFilter=(this.showCodFilter)?this.showCodFilter:this.env['isCodFilter'];this.showPointTypeFilter=(this.showPointTypeFilter)?this.showPointTypeFilter:this.env['isPointTypeFilter'];this.cod=0;this.selectedType='';this.loadCb=(this.loadCb)?this.loadCb:null;this.readyCb=(this.readyCb)?this.readyCb:null;this.selectCb=(this.selectCb)?this.selectCb:null;this.initialAddress=(this.initialAddress)?this.initialAddress:'';this.animation=(this.animation)?this.animation:400;this.sandbox=(this.sandbox)?this.sandbox:this.env['isSandbox'];if(typeof(jquery)!=='undefined')this.jq=jquery;else
if(typeof($)!=='undefined')this.jq=$;if(typeof(this.jq)==='undefined'){alert('Niedostępna biblioteka JQuery');return;}
if(this.el!=null)return false;this.el=el;};RuchWidget.prototype.constructor=RuchWidget;RuchWidget.prototype.init=function(){this.jq('#'+this.el).hide();var r1='
';this.jq(r1).appendTo(this.jq('#'+this.el));var r2='Pokaż wszystkie ';var r3='
';this.jq('#'+this.pr+'ruch_widget').html(' '+r2+r3+'');this.jq('#'+this.pr+'ruch_widget').on('click',function(event){event.stopPropagation();});this.jq('#'+this.pr+'ruch_widget_map').height(this.map_y);this.showButtons();if(typeof LRW!=='undefined')this.init2();else{var _this=this;this.jq.ajax({success:function(){_this.init2();},error:function(jqXHR,textStatus,errorThrown){console.log('status='+textStatus+", error="+errorThrown);alert('Błąd wczytywania bibliotek');},url:this.base+'leaflet/bundle.js',dataType:"script"});}
this.hideElement();};RuchWidget.prototype.init2=function(){this.map=LRW.map(this.pr+'ruch_widget_map',{center:[52.229823,21.011721],zoom:13,dragging:true,tap:false,touchZoom:true});LRW.tileLayer('https://ruch-osm.sysadvisors.pl/{z}/{x}/{y}.png',{attribution:'© OpenStreetMap contributors',maxZoom:17}).addTo(this.map);var _this=this;this.jq('#'+this.pr+'ruch_widget_lok_link').click(function(){_this.getLocation(_this);});this.jq('#'+this.pr+'ruch_widget_all_link').click(function(){_this.buttonAll();});this.markerClusters=LRW.markerClusterGroup({showCoverageOnHover:false,chunkedLoading:true});if(this.loadCb)this.loadCb();this.loadPts();var OpenStreetMapProvider=window.GeoSearch.OpenStreetMapProvider;this.provider=new OpenStreetMapProvider({params:{'accept-language':'pl','countrycodes':'pl'}});this.jq('#'+this.pr+'ruch_widget_but_s').click(function(event){event.preventDefault();_this.search();});this.jq('#'+this.pr+'ruch_widget_inp').keypress(function(event){if(event.which==13){var selectedAddressId=_this.jq('.suggestion_wrapper > .selected').attr('id');if(selectedAddressId)
{selectedAddressIndex=selectedAddressId.slice(-1);_this.rewriteSuggestionsToSearchInput(selectedAddressIndex);}else{_this.search();return false;}}});this.suggestionVisibility();this.suggestionNavigation();this.jq('#'+this.pr+'ruch_widget_but_all').click(function(event){event.preventDefault();if(!_this.filtering)return false;_this.reload();return false;});this.jq('#'+this.pr+'ruch_widget_filter_f1').change(function(event){event.preventDefault();_this.showWidget(parseInt(_this.jq('#'+_this.pr+'ruch_widget_filter_f1').val()),_this.prices,_this.methods,0);return false;});this.jq('#'+this.pr+'ruch_widget_filter_f2').change(function(event){event.preventDefault();_this.setPointType(_this.jq('#'+_this.pr+'ruch_widget_filter_f2').val());return false;});};RuchWidget.prototype.suggestionVisibility=function(){var _this=this;_this.jq('.suggestion_wrapper').hide();this.jq('#'+this.pr+'ruch_widget').click(function(event){if(_this.jq(event.target).closest('#'+_this.pr+'ruch_widget_inp ,#'+_this.pr+'suggestion_wrapper').length==0){_this.jq('.suggestion_wrapper').hide();}});this.jq(document).click(function(evt){_this.jq('.suggestion_wrapper').hide();})
this.jq('#'+this.pr+'ruch_widget_inp').on('input',function(){if(event.which!=13){var userInput=_this.jq('#'+_this.pr+'ruch_widget_inp').val();fittingPktResoult=[];if(userInput.length>2)
{fittingPktResoult=_this.checkAddressInPkt(userInput);_this.createSugetionContainer(fittingPktResoult,userInput);}
if(fittingPktResoult.length>0)
{_this.jq('.suggestion_wrapper').show();}else{_this.jq('.suggestion_wrapper').hide();}}});}
RuchWidget.prototype.suggestionEvent=function(){suggestionCount=this.jq('.suggestion_wrapper').find('div').length;var _this=this;for(let i=0;i0){liSelected.removeClass('selected');if(direction){next=liSelected.next();}else{next=liSelected.prev();}
if(next.length>0){next.addClass('selected');}else{if(direction){suggestionWrapper.children(":first").addClass('selected');}else{suggestionWrapper.children(":last").addClass('selected');}}}else{suggestionWrapper.children(":first").addClass('selected');}}
RuchWidget.prototype.rewriteSuggestionsToSearchInput=function(suggestionIndex){var suggestionAddress=this.jq('#'+this.pr+'suggestion_container_'+suggestionIndex+' p').html();suggestionAddress=suggestionAddress.replaceAll('','');suggestionAddress=suggestionAddress.replaceAll(' ','');this.jq('#'+this.pr+'ruch_widget_inp').val(suggestionAddress);this.search();};RuchWidget.prototype.checkAddressInPkt=function(userInput){var preparedUserInput=this.prepareStringToSearch(userInput);var fittingPkt=[];if(preparedUserInput=='')
{return fittingPkt;}
var wordArray=preparedUserInput.split(' ');this.allpts.forEach((pkt)=>{var fit=true;for(let word of wordArray){if(pkt.a_al.toLowerCase().includes(word))
{continue;}
if(pkt.a_c.toLowerCase().includes(word))
{continue;}
if(pkt.a_pc.toLowerCase().includes(word))
{continue;}
fit=false;break;}
if(fit)
{fittingPkt.push(pkt);}});return fittingPkt;}
RuchWidget.prototype.createSugetionContainer=function(fittingPkt,userInput){var suggestion_html='';for(let i=0;i'+highlightAddress+'
';}
this.jq('.suggestion_wrapper').html(suggestion_html);this.suggestionEvent();}
RuchWidget.prototype.sugetionHighLight=function(stringToHighLight,userInput){var preparedUserInput=this.prepareStringToSearch(userInput);var wordArray=preparedUserInput.split(' ');var indexLenghtArray=[];for(let word of wordArray){if(word&&word!=''){indexArray=this.getAllIndexesOfSubstring(stringToHighLight,word);indexLenghtArray.push({indexArray:indexArray,wordLength:word.length})}}
highlightText=userInput;if(indexLenghtArray.length){charIndexArray=this.suggestionLetterIndexToHighlight(stringToHighLight,indexLenghtArray);highlightText=this.suggestionLetterHighlight(stringToHighLight,charIndexArray);}
return highlightText;}
RuchWidget.prototype.getAllIndexesOfSubstring=function(searchString,subString){lowerCaseSearchString=searchString.toLowerCase();var indexArray=[];i=0
do{substringIndex=lowerCaseSearchString.indexOf(subString,i);if(substringIndex!=-1)
{indexArray.push(substringIndex);}
i=substringIndex+1;}while(substringIndex!=-1);return indexArray;}
RuchWidget.prototype.suggestionLetterIndexToHighlight=function(stringToHighLight,indexLenghtArray){charArray=Array(stringToHighLight.length);for(let i=0;i{for(let i=0;i'+stringToHighLight[i]+'';}else{highlightText=highlightText+stringToHighLight[i];}}
return highlightText;}
RuchWidget.prototype.prepareStringToSearch=function(value){var str=value.trimStart();str=str.trimEnd();str=str.replace(/\s\s+/g,' ');str=str.replaceAll(',','');str=str.replaceAll('.','');str=str.toLowerCase();return str;}
RuchWidget.prototype.init3=function(resp){if(resp.error){this.state=9;}
else{this.state=2;this.allpts=resp.pts;this.ptmap=resp.pt;this.map.addLayer(this.markerClusters);LRW.Icon.Default.prototype.options.iconUrl='marker-icon.png';LRW.Icon.Default.prototype.options.shadowSize=[0,0];LRW.Icon.Default.prototype.options.iconRetinaUrl='marker-icon.png';LRW.Icon.Default.prototype.options.shadowUrl='marker-icon.png';for(var i=0;iWszystkie');for(var i=0;i'+(this.type_filter[this.ptmap[key][j]]?this.type_filter[this.ptmap[key][j]]:this.ptmap[key][j])+'')}}
this.jq('#'+this.pr+'ruch_widget_filter_f2 option[value="'+this.selectedType+'"]').attr('selected','selected');this.jq('#'+this.pr+'ruch_widget_filter_f2').val(this.selectedType);ptsAux=[];if(this.type_api.includes(this.selectedType))ptsAux=this.allpts.filter((p)=>{return p.r===this.selectedType})
else ptsAux=this.allpts;j=0;for(var i=0;ithis.listMax){this.jq('#'+this.pr+'ruch_widget_panel_div').html(this.txt_zoomin);return;}
var html=mk._popup.getContent();var dist='';var id=this.jq(html).find('button').attr('id');var t=id.split("_");var p=this.pts[t[1]];var p2=LRW.latLng(p.la,p.lo);var b=null;if(p1&&p2)dist=' Od szukanego punktu: '+(Math.ceil(p1.distanceTo(p2).toFixed(0)/100)/10)+' km';else dist='';if(this.apkt!=t[1])b=''+this.txt_select+' ';else b='Odbieram tutaj
';var txt='';var d=c.distanceTo(p2)
l.push({d:d,txt:txt});}}
l.sort(function(a,b){return a.d-b.d;});var l1=[];var m=l.length;if(m>this.listLen)m=this.listLen;for(var i=0;i-1)
{_this.genPopup(oldApkt);}
_this.loadList();_this.select(pkt);if(_this.filtering)_this.reload();}});this.jq('.ruch_widget_ldiv').click(function(){var p=_this.id2pkt(_this.jq(this).attr('id'));_this.map.setView([p.la,p.lo],15);});this.jq('.ruch_widget_ldiv').mouseenter(function(){var p=_this.id2pkt(_this.jq(this).attr('id'));var t=_this.jq(this).attr('id').split("_");_this.mks_i[t[1]].setIcon(_this.icons_b[p.t]);});this.jq('.ruch_widget_ldiv').mouseleave(function(){var p=_this.id2pkt(_this.jq(this).attr('id'));var t=_this.jq(this).attr('id').split("_");_this.mks_i[t[1]].setIcon(_this.icons[p.t]);});};RuchWidget.prototype.showPts=function(){if(this.state==9){this.jq('#'+this.pr+'ruch_widget_panel_div').html(this.txt_error);return;}
this.mks=[];this.mks_i={};this.pts_ind=new Object();this.jq('#'+this.pr+'loading-smmap').show();for(var i=0;iWybierz ten punkt';if(this.prices[p.t]!=null)b+='Koszt dostawy do punktu: '+this.prices[p.t]+' zł ';}
else{b='Koszt dostawy do punktu: '+this.prices[p.t]+' zł ';}
var popup='';var m;if(this.mks_i[i])m=this.mks_i[i];else{m=LRW.marker([p.la,p.lo],{icon:this.icons[p.t]});this.mks.push(m);this.mks_i[i]=m;}
m.bindPopup(popup);};RuchWidget.prototype.popopen=function(popup){this.loadList();var p1=popup.getLatLng();if(p1&&this.searchMark)this.jq('.ruch_widget_distance').html('Od szukanego punktu: '+(Math.ceil(this.searchMark.getLatLng().distanceTo(p1).toFixed(0)/100)/10)+' km');var _this=this;this.jq('.ruch_widget_p').click(function(){var id=_this.jq(this).attr('id');var pkt=_this.id2pkt(id);if(_this.testSelected(pkt)){_this.jq(this).hide();_this.jq('#'+_this.pr+id+'_b').show();var t=id.split("_");var oldApkt=_this.apkt;_this.apkt=t[1];_this.genPopup(t[1]);if(oldApkt>-1)
{_this.genPopup(oldApkt);}
_this.loadList();_this.select(pkt);if(_this.filtering)_this.reload();}});};RuchWidget.prototype.popclose=function(e){this.loadList();};RuchWidget.prototype.select=function(pkt){this.selected=pkt;if(this.selectCb!=null){if(pkt!=null)pkt.m=this.methods[pkt.t];this.selectCb(pkt);}};RuchWidget.prototype.testSelected=function(pkt){this.testPts([pkt.id]);if(this.tested.length>0)return true;var np=[];var j=0;var max=this.maxDist*this.maxDist;for(var i=0;ithis.maxTested)l=this.maxTested;var tp=[];j=0;for(var i=0;i0){b1='Wybierz inny ';b2='Wybierz ten ';html='';}
else{b2='Wybierz ';html='';}
LRW.popup().setLatLng([pkt.la,pkt.lo]).setContent(html).openOn(this.map);var _this=this;this.jq('.ruch_widget_p').click(function(){var id=_this.jq(this).attr('id');var pkt=_this.id2pkt(id);_this.map.closePopup();var t=id.split("_");_this.apkt=t[1];_this.genPopup(t[1]);_this.loadList();_this.select(pkt);});this.jq('.ruch_widget_f').click(function(){_this.map.closePopup();_this.pts=[];var j=0;var l=_this.tested.length;if(l>_this.testedShow)l=_this.testedShow;var la=0;var lo=0;for(var i=0;imaxLo)maxLo=p.lo;if(p.lamaxLa)maxLa=p.la;}
_this.map.fitBounds([[minLa,minLo],[maxLa,maxLo]]);_this.jq('#'+_this.pr+'searchBar').hide();_this.jq('.ruch_widget_filter').hide();_this.jq('#'+_this.pr+'ruch_widget_but_all').show();});return false;};RuchWidget.prototype.cmp=function(a,b){if(a[0]>b[0])return 1;if(b[0]>a[0])return-1;return 0;};RuchWidget.prototype.testPts=function(ids){this.jq('#'+this.pr+'loading-smmap').show();var d={a:'t','s':this.sandbox,'ids':ids};var _this=this;this.jq.ajax({success:function(data){if(data.error==0)_this.tested=data.tested;else _this.tested=ids;},async:false,type:'POST',url:this.url,dataType:"json",data:JSON.stringify(d),complete:function(){_this.jq('#'+_this.pr+'loading-smmap').hide();}}).fail(function(){this.tested=ids;});};RuchWidget.prototype.id2pkt=function(pid){var t=pid.split("_");return this.pts[t[1]];};RuchWidget.prototype.loadPts=function(){var d={a:'f','s':this.sandbox};this.state=1;var _this=this;this.jq.ajax({success:function(resp){_this.init3(resp);},type:'POST',url:this.url,dataType:"json",data:JSON.stringify(d),complete:function(){_this.jq('#'+_this.pr+'loading-smmap').hide();}}).fail(function(){this.state=9;});};RuchWidget.prototype.search=function(){var _this=this;if(_this.searchMark!=null)_this.searchMark.remove(_this.map);var v=this.jq('#'+this.pr+'ruch_widget_inp').val();var foundPktWithAddress=_this.searchValueCompatibilityWithPktAddress(v);if(!foundPktWithAddress)
{_this.osmSearch(v);}};RuchWidget.prototype.searchValueCompatibilityWithPktAddress=function(searchString){var _this=this;var fittingPktResoult=_this.checkAddressInPkt(searchString);var preparedUserInput=_this.prepareStringToSearch(searchString);for(var i=0;i';s+=''+this.type_t[t]+' ';if(n%3==0)s+='';n++;}}
if(n%3!=0)s+='';s+='';return s;};RuchWidget.prototype.buttonAll=function(i){for(var i=1;i<=9;i++){var t=this.type_i[i-1];if(this.type_st.indexOf(t)==-1)this.toggleType(t);}
this.showButtons();this.markerClusters.clearLayers();this.showPts();};RuchWidget.prototype.showButtons=function(){for(var i=1;i<=9;i++){var t=this.type_i[i-1];if(this.type_st.indexOf(t)!=-1){this.jq('#'+this.pr+'ruch_widget_but_f'+i).addClass('ruch_widget_p1');this.jq('#'+this.pr+'ruch_widget_but_f'+i).removeClass('ruch_widget_p2');}else{this.jq('#'+this.pr+'ruch_widget_but_f'+i).addClass('ruch_widget_p2');this.jq('#'+this.pr+'ruch_widget_but_f'+i).removeClass('ruch_widget_p1');}}};RuchWidget.prototype.getLocation=function(_this){if(navigator.geolocation){navigator.geolocation.getCurrentPosition(function(p){if(_this.searchMark!=null)_this.searchMark.remove(_this.map);var m=LRW.marker([p.coords.latitude,p.coords.longitude]).addTo(_this.map);_this.searchMark=m;_this.tune=true;_this.map.setView([p.coords.latitude,p.coords.longitude],15);});}else{alert('Funkcja nie obsługiwana przez przeglądarkę');}};RuchWidget.prototype.tuneZoom=function(){var l=0;var b=this.map.getBounds();for(var i=0;i0)return true;if(z<8)return true;this.map.zoomOut(1);return false;};