L.Map.mergeOptions({zoomCss:true})
L.Map.ZoomCSS=L.Handler.extend({addHooks:function(){this._zoomCSS()
this._map.on("zoomend",this._zoomCSS,this)},removeHooks:function(){this._map.off("zoomend",this._zoomCSS,this)},_zoomCSS:function(e){const a="z"
var t=this._map,o=t.getZoom(),r=t.getContainer()
for(let e=0;e<24;e++)r.classList.remove(a+String(e))
if(o)r.classList.add(a+String(o))}})
L.Map.addInitHook("addHandler","zoomCss",L.Map.ZoomCSS)
var data_start="1940-03-08"
function humanDate(e){const a=/(\d\d\d\d)[ -\/](\d\d)[ -\/](\d\d)/i
const t=/(\d\d\d\d)[ -\/](\d\d)(.*)/i
const o=/(\d\d\d\d)(.*)/i
var r=""
var i=""
var n=""
if(10==e.length){r=e.replace(a,"$1")
i=e.replace(a,"$2")
i=mies_dop(i)
n=e.replace(a,"$3")
n=parseInt(n)
e=n+" "+i+" "+r}if(8==e.length||7==e.length){r=e.replace(t,"$1")
i=e.replace(t,"$2")
i=mies_nom(i)
e=i+" "+r}if(5==e.length||4==e.length){r=e.replace(o,"$1")
e=r}return e}function mies_dop(e){if(1==e)e="stycznia"
if(2==e)e="lutego"
if(3==e)e="marca"
if(4==e)e="kwietnia"
if(5==e)e="maja"
if(6==e)e="czerwca"
if(7==e)e="lipca"
if(8==e)e="sierpnia"
if(9==e)e="września"
if(10==e)e="października"
if(11==e)e="listopada"
if(12==e)e="grudnia"
return e}function mies_nom(e){if(1==e)e="styczeń"
if(2==e)e="luty"
if(3==e)e="marzec"
if(4==e)e="kwiecień"
if(5==e)e="maj"
if(6==e)e="czerwiec"
if(7==e)e="lipiec"
if(8==e)e="sierpień"
if(9==e)e="wrzesień"
if(10==e)e="październik"
if(11==e)e="listopad"
if(12==e)e="grudzień"
return e}var def_wybrane=document.querySelector("#map").dataset.wybrane
if("undefined"===typeof def_wybrane)var def_wybrane="Theater der Stadt Warschau (Teatr miasta Warszawy)"
var liczba_wybr=0
var bounds_KR=[[50.0769,19.915],[50.0427,19.9622]]
var bounds_WA=[[52.2988,20.9303],[52.1587,21.1301]]
var tmpBounds=[]
var tmpPos=[]
var pinezki="/uploads/filebase/mapy/geojson/jawne.json"
var opcje={minZoom:4,maxZoom:17,zoomSnap:1,fullscreenControl:true,fullscreenControlOptions:{position:"topleft",title:"Pokaż pełny ekran",titleCancel:"Opuść tryb pełnego ekranu"},spiderfyShapePositions:function(e,a){var t=35,o=65,r=o*(e-1),i=a.y-r/2,n=[],s
n.length=e
for(s=e-1;s>=0;s--)n[s]=new Point(a.x+t,i+o*s)
return n}}
var map=L.map("map",opcje)
var osobaIcon=L.icon({iconUrl:"/filebase/mapy/gfx/marker_icon.png",iconRetinaUrl:"/uploads/filebase/mapy/gfx/marker_icon_2x.png",shadowUrl:"/uploads/filebase/mapy/gfx/marker_shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]})
var teatrOldIcon=L.icon({iconUrl:"/uploads/filebase/mapy/gfx/marker_red.png",iconRetinaUrl:"/uploads/filebase/mapy/gfx/marker_red_2x.png",shadowUrl:"/uploads/filebase/mapy/gfx/marker_shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]})
var teatrIcon=L.divIcon({className:"teatr-icon",iconSize:[42,42]})
var wybraneIcon=L.divIcon({className:"wybrane-icon",iconSize:[32,32]})
var kzIcon=L.divIcon({className:"kz-icon",iconSize:[32,32]})
var ozIcon=L.divIcon({className:"oz-icon",iconSize:[32,32]})
var niepewneIc={color:"#ff00e0",fillOpacity:.001,dashArray:"5,5"}
var osm=L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OSM contributors',subdomains:["a","b","c"]}).addTo(map)
var warsawLayer=L.tileLayer("https://mapwarper.net/maps/tile/14003/{z}/{x}/{y}.png",{attribution:'| Stadtplan v. W. / polona.pl ',minZoom:11,zoom:17,center:[50.0622,19.9375]}).addTo(map)
var krakow=L.tileLayer("https://mapwarper.net/maps/tile/56053/{z}/{x}/{y}.png",{minZoom:12,zoom:17,center:[50.0623,19.9372]}).addTo(map)
var baseMaps={"Kraków (1943)":krakow,"Warszawa (1940)":warsawLayer,"Współczesna":osm}
var RzeszaLayer_style={color:"#f3ad10",fillOpacity:.05,dashArray:"5,5",weight:"3"}
var gettoWLayer_style={color:"#333",fillOpacity:.2,dashArray:"2,2",weight:"2"}
var GGLayer_style={color:"#333",fillOpacity:0,dashArray:"2,2",weight:"3"}
var World1914LayerStyle={color:"#444",weight:"5",opacity:.5,dashArray:"5,5",fillOpacity:.5,fillColor:"red"}
var gettoWLayer=new L.GeoJSON.AJAX("/uploads/filebase/mapy/getto_w_jjl.json",{name:"Obszar getta warszawskiego",style:gettoWLayer_style,onEachFeature:popUpElse})
gettoWLayer.addTo(map)
var GGLayer=new L.GeoJSON.AJAX("/uploads/filebase/mapy/geojson/Generalne_Gubernatorstwo.json",{name:"Generalne Gubernatorstwo",onEachFeature:obszary_gg})
var RzeszaLayer=new L.GeoJSON.AJAX("/uploads/filebase/mapy/geojson/wielkie_niemcy.json",{style:RzeszaLayer_style,onEachFeature:popUpElse})
var kzLayer=new L.GeoJSON.AJAX("/uploads/filebase/mapy/geojson/obozy_hitl.json",{name:"Obozy",onEachFeature:punkty_kz})
var tablicaPinezek=[]
var pinezkiLista=new L.GeoJSON.AJAX(pinezki,{name:"Lista pinezek",onEachFeature:pinezTab})
function pinezTab(e,a){if("Teatr Objazdowy GG"==e.properties["podmiot_nazwa"]){for(key in e.properties)tablicaPinezek.push(key+": "+e.properties[key])
return}}function popUp(e,a){var t=[]
if(e.properties){for(key in e.properties)t.push(key+": "+e.properties[key])
a.bindPopup(t.join(" "))}}function obszary_gg(e,a){var t=[]
var o=0
if("2"==e.properties["id"]){t.push("Generalne Gubernatorstwo "+" do 1941"+" ")
var r={color:"#333",fillOpacity:0,dashArray:"2,2",weight:"3"}
a.setStyle(gettoWLayer_style)
a.on({click:zmian})}else{t.push("Generalne Gubernatorstwo "+" "+"Terytorium włączone do GG po agresji Niemiec na ZSRR w 1941 jako Dystrykt Galicja ")
a.setStyle(gettoWLayer_style)
a.on({click:zmian})}function zmian(){a.setStyle(GGLayer_style)
if(o<1){a.bindTooltip(t.join(" "),{direction:"center",offset:[0,0],opacity:1,permanent:true,interactive:false,className:"gg"})
o+=1}else a.off("click")
console.log(o)}}function punkty_kz(e,a){var t=[]
if("Konzentrationslager"==e.properties["typ"]){var o=L.divIcon({className:"kz-icon",iconSize:[32,32]})
a.setIcon(o)
t.push("Obóz koncentracyjny "+""+e.properties["name"]+" "+"
"+e.properties["desc"])}else{var r=L.divIcon({className:"oz-icon",iconSize:[32,32]})
a.setIcon(r)
t.push("Obóz zagłady "+""+e.properties["name"]+" "+" "+e.properties["desc"])}a.bindPopup(t.join(" "),{})}function popUpElse(e,a){var t=[]
if(e.properties){for(key in e.properties){if("name"==key)t.push(""+e.properties[key]+" ")
if("description"==key||"desc"==key){var o=wisz(e.properties[key])
t.push(o)}if("NAME"==key)t.push(""+e.properties[key]+" ")}a.bindPopup(t.join(" "))}if(0==t.length)a.bindPopup(""+a.options.name+" ")}function wisz(e){const a=/ (pl\.)\s/i
e=e.replace(a," $1 ")
const t=/ (ul\.)\s/i
e=e.replace(t," $1 ")
const o=/ (\w)\s/i
e=e.replace(o," $1 ")
return e}var pajakFull=""
var markers=L.markerClusterGroup({showCoverageOnHover:false,spiderfyOnMaxZoom:true,zoomToBoundsOnClick:true,spiderfyDistanceMultiplier:1.8,maxClusterRadius:60,spiderLegPolylineOptions:{dashArray:"1,4",weight:2,color:"#8a469a",opacity:1},chunkedLoading:true})
var selection=L.markerClusterGroup({showCoverageOnHover:false,spiderfyOnMaxZoom:true,zoomToBoundsOnClick:true,spiderfyDistanceMultiplier:2.2,maxClusterRadius:15,spiderLegPolylineOptions:{dashArray:"2,6",weight:3,color:"red",opacity:1}})
var pinezkiLayer=new L.GeoJSON.AJAX(pinezki,{style:function(e){return e.properties&&e.properties.style},pointToLayer:function(e,a){var t=PinezkiPopUp(e)
var o=SelectedToolTip(e)
var r=e.properties.podmiot_nazwa
var i=findNext(e,r)
var n=L.marker(a,{id:e.properties.slug,data_start:e.properties.data_start,data_end:e.properties.data_end,alt:e.properties.miejsce_nazwa,icon:this[e.properties.typ+"Icon"],podmiot:e.properties.podmiot_nazwa,tags:[e.properties.podmiot_nazwa],next:i}).bindPopup(t).bindTooltip(e.properties.podmiot_nazwa,{direction:"bottom",offset:[0,7],permanent:true,opacity:.75,interactive:true,className:"leaflet-tooltip-own"}).openTooltip()
if(e.properties.miejsce_radius>0){var s=L.circle(a,{color:"#ff00e0",fillOpacity:.001,dashArray:"5,20",radius:e.properties.miejsce_radius})
var p=L.featureGroup([n,s])}else var p=L.featureGroup([n])
var l=L.marker(a,{icon:wybraneIcon,id:e.properties.slug,alt:e.properties.miejsce_nazwa,tags:[e.properties.podmiot_nazwa]}).bindTooltip(e.properties.podmiot_nazwa,{direction:"auto",offset:[0,0],opacity:1,permanent:true,interactive:true,className:"leaflet-tooltip-etp selected"}).openTooltip()
if(e.properties.podmiot_nazwa!=e.properties.miejsce_nazwa)l.bindPopup(o)
var c=L.circle(a,{color:"green",fillOpacity:1,radius:5})
var d=L.featureGroup([l])
if(e.properties.podmiot_nazwa!=def_wybrane)markers.addLayer(p)
else{selection.addLayer(d)
liczba_wybr+=1
tmpPos=a
tmpBounds=tmpPos.toBounds(1e3)
map.setView(tmpPos,13)
map.fitBounds(tmpBounds)}}})
map.addLayer(markers)
map.addLayer(selection)
var selKlik=""
selection.on("click",function(e){selKlik=e.layer
map.setView(selKlik._latlng,17)})
markers.on("clustercontextmenu",function(e){e.layer.spiderfy()})
markers.on("clustermouseover",function(e){if(e.layer._zoom<16)e.layer.spiderfy()})
markers.on("clusterclick",function(e){if(e.layer._zoom>16){console.log(e.layer._markers)
popUpText=""
for(feat in e.layer._markers)popUpText+=''+"'+e.layer._markers[feat].options.tags[0]+" "+humanDate(e.layer._markers[feat].options.data_start)+" – "+humanDate(e.layer._markers[feat].options.data_end)+" "+" "
popUpText+=" "
var a=L.popup().setLatLng([e.layer._cLatLng.lat,e.layer._cLatLng.lng]).setContent(popUpText).openOn(map)}})
selection.on("clusterclick",function(e){if(e.layer._zoom>16){console.log(e.layer._markers)
popUpText=""
for(feat in e.layer._markers)popUpText+=''+"'+e.layer._markers[feat].options.tags[0]+" "+humanDate(e.layer._markers[feat].options.data_start)+" – "+humanDate(e.layer._markers[feat].options.data_end)+" "+" "
popUpText+=" "
var a=L.popup().setLatLng([e.layer._cLatLng.lat,e.layer._cLatLng.lng]).setContent(popUpText).openOn(map)}})
function openPopUp(e,a){map.closePopup()
map.eachLayer(function(e){if(e._leaflet_id==a)e.spiderfy()})
map.eachLayer(function(a){if(a._leaflet_id==e)a.openPopup()})}function findNext(e,a){if("Teatr Objazdowy GG"==e.properties.podmiot_nazwa)console.log(e.properties.id+"PODMIOT "+e.properties.podmiot_nazwa+"data_start: "+e.properties.data_start)}function Tablica(e){elementTb=e.properties.podmiot_nazwa+": "+latlng
return elementTb}function PinezkiPopUp(e){var a=""
if(""==e.properties.data_end)var t=humanDate(e.properties.data_start)
else var t=humanDate(e.properties.data_start)+" – "+humanDate(e.properties.data_end)
if(e.properties.desc_short.length<=e.properties.opis.length)var o=e.properties.desc_short+" "
else var o=e.properties.opis+" "
if(""==e.properties.opis)var o=""
if(e.properties.miejsce_radius>0)var r='Pozycja przybliżona '
else var r=""
a=""+e.properties.podmiot_nazwa+''+t+" "+""+e.properties.miejsce_nazwa+" , "+e.properties.miasto+" "+o+' Więcej '+r
return a}function SelectedToolTip(e){var a=""
if(""==e.properties.data_end)var t=humanDate(e.properties.data_start)
else var t=humanDate(e.properties.data_start)+" — "+humanDate(e.properties.data_end)
if(""==e.properties.opis)var o=""
else var o=e.properties.opis+" "
if(e.properties.miejsce_radius>0)var r='Pozycja przybliżona '
else var r=""
var i=''
a=''+t+" "+''+''+e.properties.miejsce_nazwa+" , "+e.properties.miasto+" "+o+"
"
a=wisz(a)
a=i+a
return a}function goHome(){if(map._isFullscreen){map.toggleFullscreen()
document.body.scrollTop=document.documentElement.scrollTop=0}else document.body.scrollTop=document.documentElement.scrollTop=0}L.Control.Watermark=L.Control.extend({onAdd:function(e){var a=""
var t=document.querySelector("#map").offsetWidth
t/=2.5
if(t<250)a="220px"
else a=t+"px"
var o=L.DomUtil.create("img")
o.src="/uploads/filebase/mapy/gfx/jawne_logo.svg"
o.style.width=a
o.style.position="absolute"
o.style.bottom="9px"
o.style.right="-5px"
o.class="logo_etp"
o.alt="Teatry jawne w Generalnym Gubernatorstwie (1940–1945)"
o.title="Teatry jawne w Generalnym Gubernatorstwie (1940–1945)"
o.id="watermark"
return o},onRemove:function(e){}})
L.control.watermark=function(e){return new L.Control.Watermark(e)}
L.control.watermark({position:"bottomright"}).addTo(map)
if(def_wybrane)L.easyButton('☉ ',function(e,a){bnd_wybr=selection.getBounds()
a.fitBounds(bnd_wybr,{padding:[50,50]})},"➥ "+def_wybrane).addTo(map)
L.easyButton(' ',function(e,a){krakow.addTo(a)
a.fitBounds(bounds_KR,{padding:[-300,-300]})},"➥ KRAKÓW").addTo(map)
L.easyButton(' ',function(e,a){var t=warsawLayer
warsawLayer.addTo(a)
a.fitBounds(bounds_WA,{padding:[-200,-200]})},"➥ WARSZAWA").addTo(map)
L.easyButton(' ',function(e,a){var t=GGLayer
var o=[t.getBounds().getNorthEast(),t.getBounds().getSouthWest()]
t.addTo(a)
a.fitBounds(o,{padding:[50,50]})},"➥ GENERALNE GUBERNATORSTWO").addTo(map)
L.easyButton(' ',function(e,a){var t=markers
var o=[t.getBounds().getNorthEast(),t.getBounds().getSouthWest()]
var r=0
a.fitBounds(o,{padding:[50,50]})},"➥ WSZYSTKIE TEATRY").addTo(map)
document.querySelector(".leaflet-control-zoom-in").setAttribute("title","Powiększ")
document.querySelector(".leaflet-control-zoom-out").setAttribute("title","Pomniejsz")
document.querySelector(".leaflet-control-zoom-in").setAttribute("aria-label","Powiększ")
document.querySelector(".leaflet-control-zoom-out").setAttribute("aria-label","Pomniejsz")
document.querySelector(".fullscreen-icon").setAttribute("aria-label","Pełny ekran")
var orgpajak_full=markers.options.spiderLegPolylineOptions.weight
var orgszer=document.getElementById("watermark").clientWidth
map.on("enterFullscreen",function(){var e=window.screen.width
e=.25*parseInt(e)
markers.options.spiderLegPolylineOptions.weight=2.2*orgpajak_full
document.getElementById("watermark").style.width=e+"px"})
map.on("exitFullscreen",function(){document.getElementById("watermark").style.width=orgszer+"px"
markers.options.spiderLegPolylineOptions.weight=orgpajak_full})
L.control.scale({imperial:false,maxWidth:200}).addTo(map)
if(""==liczba_wybr)map.fitBounds(bounds_WA)
map.addControl(new L.Control.Layers({},{"Obszar Generalnego Gubernatorstwa":GGLayer,"Obszar getta warszawskiego":gettoWLayer,"Niemieckie obozy koncentracyjne i zagłady":kzLayer,"Groß Deutschland (1941–1944) ":RzeszaLayer,"Warszawa [1941]":warsawLayer,"Kraków [1942] ":krakow,"Ukryj/pokaż inne teatry":markers},{collapsed:true}))
function stylish(){const e=document.createElement("label")
const a=document.createTextNode("Historyczne granice")
var t="color: #70828e;font-weight:700"
e.style.cssText=t
e.appendChild(a)
const o=document.createElement("label")
const r=document.createTextNode("Plany miast")
o.style.cssText=t
o.appendChild(r)
const i=document.getElementsByClassName("leaflet-control-layers-overlays")[0]
const n=i.getElementsByTagName("label")[0]
const s=i.getElementsByTagName("label")[3]
i.insertBefore(e,n)
i.insertBefore(o,s)}