1var AddressManager=function(){this.searchForm=null;this.positionSelect=null;this.groupSelect=null;this.organisationSelect=null;this.limitSelect=null;this.searchField=null;this.locationField=null;this.distanceSelect=null;this.locationAutoComplete=null;this.map=null;this.mapsMarker=[];this.mapBounds=null;this.mapsMarkerCluster=null;this.countryRestriction=[];this.searchFieldConcat='or';this.listUid=0;this.debug=!1;this.searchData={tx_addressmanager_jsonapi:{group:0,position:0,organisation:0,offset:0,limit:15,searchWord:'',customString:'',listUid:0,latitude:0.0,longitude:0.0,distance:0}};this.initialize=function(){var pluginWrapper=document.querySelector('.tx-address-manager');if(pluginWrapper){this.debug=pluginWrapper.dataset.debug==='1'} 2var listWrapper=document.querySelector('.address-list-wrapper');if(listWrapper){this.searchData.tx_addressmanager_jsonapi.offset=parseInt(listWrapper.getAttribute('data-address-list-offset'),10);this.searchData.tx_addressmanager_jsonapi.limit=parseInt(listWrapper.getAttribute('data-address-list-limit'),10)} 3this.searchForm=document.querySelector('.tx-address-manager #address-search-form');if(this.searchForm){this.searchForm.addEventListener('submit',function(e){e.preventDefault();address_manager.refreshData()});this.listUid=document.querySelector('.tx-address-manager #address-list-uid');if(this.listUid){address_manager.searchData.tx_addressmanager_jsonapi.listUid=parseInt(this.listUid.value,10)}} 4this.groupSelect=document.querySelectorAll('.tx-address-manager #address-group-select');if(this.groupSelect.length===1){var select=this.groupSelect[0];select.value='0';select.addEventListener('change',function(){var newValue=parseInt(this.value,10);var filterSelectNumber=parseInt(this.getAttribute('data-order'),10);if(newValue>0){if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.activateFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2);address_manager.activateFilterSelect(2)}}else{if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2)}} 5if(filterSelectNumber===0&&address_manager.searchFieldConcat==='or'){address_manager.unsetSearchField()} 6address_manager.searchData.tx_addressmanager_jsonapi.group=newValue;address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.refreshData()})} 7var positionSelect=document.querySelectorAll('.tx-address-manager #address-position-select');if(positionSelect.length===1){var select=positionSelect[0];select.value='0';select.addEventListener('change',function(){var newValue=parseInt(this.value,10);var filterSelectNumber=parseInt(this.getAttribute('data-order'),10);if(newValue>0){if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.activateFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2);address_manager.activateFilterSelect(2)}}else{if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2)}} 8if(filterSelectNumber===0&&address_manager.searchFieldConcat==='or'){address_manager.unsetSearchField()} 9address_manager.searchData.tx_addressmanager_jsonapi.position=newValue;address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.refreshData()})} 10var organisationSelect=document.querySelectorAll('.tx-address-manager #address-organisation-select');if(organisationSelect.length===1){var select=organisationSelect[0];select.value='0';select.addEventListener('change',function(){var newValue=parseInt(this.value,10);var filterSelectNumber=parseInt(this.getAttribute('data-order'),10);if(newValue>0){if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.activateFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2);address_manager.activateFilterSelect(2)}}else{if(filterSelectNumber===0){address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2)}else if(filterSelectNumber===1){address_manager.resetFilterSelect(2)}} 11if(filterSelectNumber===0&&address_manager.searchFieldConcat==='or'){address_manager.unsetSearchField()} 12address_manager.searchData.tx_addressmanager_jsonapi.organisation=newValue;address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.refreshData()})} 13var limitSelects=document.querySelectorAll('.tx-address-manager #address-limit-select');if(limitSelects.length===1){var select=limitSelects[0];select.addEventListener('change',function(){address_manager.searchData.tx_addressmanager_jsonapi.limit=parseInt(this.value,10);address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.refreshData()})} 14var searchFieldElements=document.querySelectorAll('.tx-address-manager #address-search-word');
14if(searchFieldElements.length===1){var searchField=searchFieldElements[0];searchField.value='';searchField.addEventListener('input',function(event){if(address_manager.searchFieldConcat==='or'){address_manager.resetFilterSelect(0);address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2)} 15address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.searchData.tx_addressmanager_jsonapi.searchWord=this.value;if(event.keyCode===13){var submitOnEnterElement=document.querySelector('[data-search-word-submit-on-enter]');if(submitOnEnterElement&&submitOnEnterElement.getAttribute('data-search-word-submit-on-enter')==='1'){address_manager.refreshData()}}})} 16var customStringFields=document.querySelectorAll('.tx-address-manager #address-custom-string');if(customStringFields.length===1){var customStringField=customStringFields[0];customStringField.value='';customStringField.addEventListener('input',function(){if(address_manager.searchFieldConcat==='or'){address_manager.resetFilterSelect(0);address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2)} 17address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.searchData.tx_addressmanager_jsonapi.customString=this.value})} 18this.locationField=document.querySelectorAll('.tx-address-manager #address-location-field');if(this.locationField.length===1){var latField=document.querySelector('.tx-address-manager #address-latitude-field');var lonField=document.querySelector('.tx-address-manager #address-longitude-field');address_manager.searchData.tx_addressmanager_jsonapi.latitude=latField.value;address_manager.searchData.tx_addressmanager_jsonapi.longitude=lonField.value;var options={componentRestrictions:{country:this.countryRestriction}};if(typeof google!=='undefined'){this.locationAutoComplete=new google.maps.places.Autocomplete(this.locationField[0],options);this.locationAutoComplete.addListener('place_changed',function(){var place=address_manager.locationAutoComplete.getPlace();if(place.geometry!==undefined){address_manager.searchData.tx_addressmanager_jsonapi.latitude=place.geometry.location.lat();address_manager.searchData.tx_addressmanager_jsonapi.longitude=place.geometry.location.lng()}else{address_manager.searchData.tx_addressmanager_jsonapi.latitude=0.0;address_manager.searchData.tx_addressmanager_jsonapi.longitude=0.0} 19document.getElementById('address-latitude-field').value=address_manager.searchData.tx_addressmanager_jsonapi.latitude;document.getElementById('address-longitude-field').value=address_manager.searchData.tx_addressmanager_jsonapi.longitude;address_manager.searchData.tx_addressmanager_jsonapi.offset=0});var locationEl=this.locationField[0];locationEl.addEventListener('keydown',function(event){if(locationEl.value===''){address_manager.searchData.tx_addressmanager_jsonapi.latitude=0.0;address_manager.searchData.tx_addressmanager_jsonapi.longitude=0.0} 20if(event.keyCode===13){locationEl.blur();var firstResult='';var firstItem=document.querySelector('.pac-container .pac-item');if(firstItem){var queryEl=firstItem.querySelector('.pac-item-query');var spans=firstItem.querySelectorAll('span');var query=queryEl?queryEl.textContent:'';var extra=spans[3]?spans[3].textContent:'';if(extra===''){firstResult=query}else{firstResult=query+', '+extra}} 21var geocoder=new google.maps.Geocoder();geocoder.geocode({address:firstResult},function(results,status){if(status===google.maps.GeocoderStatus.OK){var resultPlace=results[0];event.target.value=firstResult;if(resultPlace.geometry!==undefined){address_manager.searchData.tx_addressmanager_jsonapi.latitude=resultPlace.geometry.location.lat();address_manager.searchData.tx_addressmanager_jsonapi.longitude=resultPlace.geometry.location.lng()}else{address_manager.searchData.tx_addressmanager_jsonapi.latitude=0.0;address_manager.searchData.tx_addressmanager_jsonapi.longitude=0.0} 22document.getElementById('address-latitude-field').value=address_manager.searchData.tx_addressmanager_jsonapi.latitude;document.getElementById('address-longitude-field').value=address_manager.searchData.tx_addressmanager_jsonapi.longitude;address_manager.searchData.tx_addressmanager_jsonapi.offset=0}});var submitEl=document.querySelector('[data-location-submit-on-enter]');if(submitEl&&submitEl.getAttribute('data-location-submit-on-enter')==='1'){address_manager.refreshData()}}})}} 23var distanceSelects=document.querySelectorAll('.tx-address-manager #address-distance-select');if(distanceSelects.length===1){var distanceSelect=distanceSelects[0];address_manager.searchData.tx_addressmanager_jsonapi.distance=parseInt(distanceSelect.value,10);distanceSelect.addEventListener('change',function(){var selectedValue=this.options[this.selectedIndex].value;address_manager.searchData.tx_addressmanager_jsonapi.distance=parseInt(selectedValue,10);address_manager.searchData.tx_addressmanager_jsonapi.offset=0})} 24if(this.debug){console.log('json-params on init:',this.searchData.tx_addressmanager_jsonapi)} 25address_manager.resetFilterSelect(1);address_manager.resetFilterSelect(2);if(typeof google!=='undefined'){address_manager.initializeGoogleMap()} 26address_manager.refreshPagination();window.addEventListener('address_manager.result',address_manager.onResult);window.addEventListener('address_manager.no_result',address_manager.onNoResult);window.dispatchEvent(new CustomEvent('address_manager.after_initialize'));var reloadWithInitialValues=!1;var searchField=document.querySelector('.tx-address-manager #address-search-word');
26if(searchField){var searchFieldInitialValue=searchField.getAttribute('data-initial-value');if(searchFieldInitialValue!==''){searchField.value=searchFieldInitialValue;searchField.dispatchEvent(new Event('input'));reloadWithInitialValues=!0}} 27var customStringField=document.querySelector('.tx-address-manager #address-custom-string');if(customStringField){var customStringFieldInitialValue=customStringField.getAttribute('data-initial-value');if(customStringFieldInitialValue!==''){customStringField.value=customStringFieldInitialValue;customStringField.dispatchEvent(new Event('input'));reloadWithInitialValues=!0}} 28var groupSelect=document.querySelector('.tx-address-manager #address-group-select');if(groupSelect){var groupInitialValue=groupSelect.getAttribute('data-initial-value');if(groupInitialValue!==''){groupInitialValue=parseInt(groupInitialValue,10);if(groupInitialValue>0){groupSelect.value=groupInitialValue;groupSelect.dispatchEvent(new Event('change'));reloadWithInitialValues=!1}}} 29var searchForm=document.querySelector('.tx-address-manager #address-search-form');if(searchForm){if(reloadWithInitialValues||searchForm.dataset.reloadOnLoad==='1'){address_manager.refreshData()}}};this.unsetSearchField=function(){if(address_manager.searchField){address_manager.searchField.value=''} 30address_manager.searchData.tx_addressmanager_jsonapi.searchWord='';address_manager.searchData.tx_addressmanager_jsonapi.customString=''} 31this.initializeGoogleMap=function(){if(this.debug){console.log('initializeGoogleMap')} 32var mapWrapper=document.getElementById('address-list-map');if(mapWrapper){if(this.debug){console.log('initializeGoogleMap #address-list-map found:',mapWrapper)} 33var maxZoom=parseInt(mapWrapper.getAttribute('data-max-zoom'),10);if(this.debug){console.log('initializeGoogleMap data-max-zoom:',maxZoom)} 34var mapApiKey=mapWrapper.getAttribute('data-map-api-key');if(this.debug){console.log('initializeGoogleMap data-map-api-key:',mapApiKey)} 35var mapId=mapWrapper.getAttribute('data-map-id');if(!mapId){mapId=mapApiKey} 36if(this.debug){console.log('initializeGoogleMap data-map-id:',mapId)} 37var countryRestrictionString=mapWrapper.getAttribute('data-country-restriction');if(countryRestrictionString){var countryRestrictionArray=countryRestrictionString.split(',');for(var i=0;i<countryRestrictionArray.length;i++){this.countryRestriction.push(countryRestrictionArray[i].trim())}} 38if(this.debug){console.log('initializeGoogleMap data-country-restriction:',countryRestrictionString,'splitted',this.countryRestriction)} 39address_manager.mapBounds=new google.maps.LatLngBounds();address_manager.infoWindow=new google.maps.InfoWindow();var defaultLatitude=mapWrapper.getAttribute('data-default-latitude');if(this.debug){console.log('initializeGoogleMap data-default-latitude:',defaultLatitude)} 40if(!defaultLatitude){defaultLatitude=51.96066490000001}else{defaultLatitude=parseFloat(defaultLatitude)} 41var defaultLongitude=mapWrapper.getAttribute('data-default-longitude');if(this.debug){console.log('initializeGoogleMap data-default-longitude:',defaultLongitude)} 42if(!defaultLongitude){defaultLongitude=7.626134699999966}else{defaultLongitude=parseFloat(defaultLongitude)} 43if(this.debug){console.log('initializeGoogleMap using center latitude longitude:',defaultLatitude,defaultLongitude)} 44var latlng=new google.maps.LatLng(defaultLatitude,defaultLongitude);address_manager.map=new google.maps.Map(document.getElementById('address-list-map-canvas'),{mapId:mapId,mapTypeId:google.maps.MapTypeId.ROADMAP,center:latlng,disableDefaultUI:!1,navigationControl:!1,streetViewControl:!0,overviewMapControl:!0,overviewMapControlOptions:{opened:!0,position:google.maps.ControlPosition.BOTTOM_LEFT},zoomControl:!0,scrollwheel:!1,scaleControl:!0,zoom:12});var clusteringActive=parseInt(mapWrapper.getAttribute('data-clustering-active'),10);var clusteringImagePath=mapWrapper.getAttribute('data-clustering-image-path');if(this.debug){console.log('initializeGoogleMap data-clustering-active',clusteringActive);console.log('initializeGoogleMap data-clustering-image-path',clusteringImagePath)} 45var items=document.querySelectorAll('.address-list-item');
45if(this.debug){console.log('initializeGoogleMap items found',items.length)} 46if(items.length>0){items.forEach(function(item,key){var latitude=parseFloat(item.dataset.mapLatitude);var longitude=parseFloat(item.dataset.mapLongitude);latitude=address_manager.validateLatitude(latitude);longitude=address_manager.validateLongitude(longitude);var markerSvg=item.dataset.mapMarker;var markerLink=item.dataset.mapLink;var markerTooltip=item.dataset.mapTooltip;if(this.debug){console.log('initializeGoogleMap > item',key,'latitude',latitude,'longitude',longitude);console.log('initializeGoogleMap > item data-map-marker',markerSvg);console.log('initializeGoogleMap > item data-map-link',markerLink);console.log('initializeGoogleMap > item data-map-tooltip',markerTooltip)} 47if(latitude!==0&&longitude!==0&&!isNaN(latitude)&&!isNaN(longitude)){let tempLatLng=new google.maps.LatLng(latitude,longitude);address_manager.mapBounds.extend(tempLatLng);let tempMarker=address_manager.setAddressMarker(tempLatLng,markerTooltip,markerSvg);address_manager.mapsMarker.push(tempMarker)}});if(clusteringActive===1){const clusteringImagePath=mapWrapper.getAttribute('data-clustering-image-path').replace('m1.png','');const clusteringImageExtension=mapWrapper.getAttribute('data-clustering-image-extension');const clusteringMarkerWidth=mapWrapper.getAttribute('data-clustering-width');const clusteringMarkerHeight=mapWrapper.getAttribute('data-clustering-width');const clusteringMarkerTextSize=mapWrapper.getAttribute('data-clustering-text-size');const clusteringMarkerTextColor=mapWrapper.getAttribute('data-clustering-text-color');if(this.debug){console.log('initializeGoogleMap > item data-clustering-image-path',clusteringImagePath);console.log('initializeGoogleMap > item data-clustering-image-extension',clusteringImageExtension);console.log('initializeGoogleMap > item data-clustering-width',clusteringMarkerWidth);console.log('initializeGoogleMap > item data-clustering-width',clusteringMarkerHeight);console.log('initializeGoogleMap > item data-clustering-text-size',clusteringMarkerTextSize);console.log('initializeGoogleMap > item data-clustering-text-color',clusteringMarkerTextColor)} 48const customRenderer={render:({count,position})=>{const div=document.createElement("div");let image='';if(count<=5){image='m1.png'}else if(count<=10){image='m2.png'}else if(count<=25){image='m3.png'}else if(count<=50){image='m4.png'}else{image='m5.png'} 49let imageWithPath=address_manager.appendImageToPath(clusteringImagePath,image);if(address_manager.debug){console.log('initializeGoogleMap > item imageWithPath',imageWithPath)} 50div.className="custom-cluster";div.innerHTML=`<span>${count}</span>`;div.style.backgroundColor='transparent';div.style.backgroundSize=clusteringMarkerWidth+"px "+clusteringMarkerHeight+"px";div.style.backgroundImage="url('"+imageWithPath+"')";div.style.color=clusteringMarkerTextColor;div.style.padding="10px";div.style.textAlign="center";div.style.fontSize=clusteringMarkerTextSize+"px";div.style.width=clusteringMarkerWidth+"px";div.style.height=clusteringMarkerHeight+"px";div.style.display="flex";div.style.justifyContent="center";div.style.alignItems="center";return new google.maps.marker.AdvancedMarkerElement({position,content:div})}};address_manager.mapsMarkerCluster=new markerClusterer.MarkerClusterer({markers:address_manager.mapsMarker,map:address_manager.map,renderer:customRenderer})} 51address_manager.refreshMarkerCluster();address_manager.map.fitBounds(address_manager.mapBounds)}else{if(clusteringActive===1){address_manager.mapsMarkerCluster=new MarkerClusterer({markers:[],map:address_manager.map})}}}else if(this.debug){console.log('initializeGoogleMap #address-list-map not found:',mapWrapper)} 52var mapWrapper=document.getElementById('address-detail-map');if(mapWrapper){if(this.debug){console.log('initializeGoogleMap #address-detail-map found:',mapWrapper)} 53var zoom=parseInt(mapWrapper.dataset.zoom,10);var latitude=parseFloat(mapWrapper.dataset.latitude);var longitude=parseFloat(mapWrapper.dataset.longitude);var markerTooltip=mapWrapper.dataset.tooltip;var mapApiKey=mapWrapper.dataset.mapApiKey;var mapId=mapWrapper.dataset.mapId;if(!mapId){mapId=mapApiKey} 54var markerSvg=mapWrapper.dataset.mapMarker;if(this.debug){console.log('initializeGoogleMap > item','address-detail-map','latitude',latitude,'longitude',longitude);console.log('initializeGoogleMap > item data-zoom',zoom);console.log('initializeGoogleMap > item data-tooltip',markerTooltip);console.log('initializeGoogleMap data-map-api-key:',mapApiKey);console.log('initializeGoogleMap data-map-id:',mapId);console.log('initializeGoogleMap > item data-map-marker',markerSvg)} 55let tempLatLng=new google.maps.LatLng(latitude,longitude);address_manager.infoWindow=new google.maps.InfoWindow();address_manager.map=new google.maps.Map(mapWrapper,{zoom:zoom,center:tempLatLng,zoomControl:!0,scaleControl:!0,scrollwheel:!1,mapId:mapId,mapTypeId:google.maps.MapTypeId.ROADMAP});const tempMarker=address_manager.setAddressMarker(tempLatLng,markerTooltip,markerSvg)}else if(this.debug){console.log('initializeGoogleMap #address-detail-map found:',mapWrapper)}};this.appendImageToPath=function(clusteringImagePath,image){const[path,query]=clusteringImagePath.split('?',2);const cleanPath=path.replace(/\/+$/,'')+'/';return cleanPath+image+(query?'?'+query:'')} 56this.rebuildGoogleMap=function(){var mapWrapper=document.getElementById('address-list-map');if(mapWrapper){let circleActive=mapWrapper.dataset.circleActive==='1';if(circleActive){let circleLatLng=new google.maps.LatLng(document.getElementById('address-latitude-field').value,document.getElementById('address-longitude-field').value);let radius=parseInt(document.getElementById('address-distance-select').value,10);if(address_manager.mapCircle){address_manager.mapCircle.setMap(null)} 57address_manager.mapCircle=new google.maps.Circle({map:address_manager.map,center:circleLatLng,radius:radius*1000,strokeColor:mapWrapper.dataset.circleStrokeColor,strokeOpacity:0.8,strokeWeight:2,fillColor:mapWrapper.dataset.circleFillColor,fillOpacity:0.2,})} 58while(address_manager.mapsMarker.length){address_manager.mapsMarker.pop().setMap(null)} 59address_manager.mapBounds=new google.maps.LatLngBounds();var items=document.querySelectorAll('.address-list-item');for(var i=0;i<items.length;i++){var item=items[i];var latitude=parseFloat(item.dataset.mapLatitude);var longitude=parseFloat(item.dataset.mapLongitude);latitude=address_manager.validateLatitude(latitude);longitude=address_manager.validateLongitude(longitude);var markerSvg=item.dataset.mapMarker;var markerLink=item.dataset.mapLink;var markerTooltip=item.dataset.mapTooltip;if(this.debug){console.log('initializeGoogleMap > item',i,'latitude',latitude,'longitude',longitude);console.log('initializeGoogleMap > item data-map-marker',markerSvg);console.log('initializeGoogleMap > item data-map-link',markerLink);console.log('initializeGoogleMap > item data-map-tooltip',markerTooltip)} 60if(latitude!==0&&longitude!==0&&!isNaN(latitude)&&!isNaN(longitude)){let tempLatLng=new google.maps.LatLng(latitude,longitude);address_manager.mapBounds.extend(tempLatLng);let tempMarker=address_manager.setAddressMarker(tempLatLng,markerTooltip,markerSvg);address_manager.mapsMarker.push(tempMarker)}} 61address_manager.refreshMarkerCluster();setTimeout(function(){address_manager.map.setTilt(0);address_manager.map.setHeading(0);address_manager.map.fitBounds(address_manager.mapBounds,{padding:50});address_manager.checkMaxZoom()},500);address_manager.checkMaxZoom()}};this.checkMaxZoom=function(){const mapWrapper=document.getElementById('address-list-map');if(mapWrapper){var maxZoom=parseInt(mapWrapper.dataset.maxZoom,10);if(address_manager.map.getZoom()>maxZoom){address_manager.map.setZoom(maxZoom)}}}
62this.refreshMarkerCluster=function(){const mapWrapper=document.getElementById('address-list-map');if(mapWrapper){const clusteringActive=parseInt(mapWrapper.dataset.clusteringActive,10);if(clusteringActive===1){address_manager.mapsMarkerCluster.clearMarkers();address_manager.mapsMarkerCluster.addMarkers(address_manager.mapsMarker)}}};this.resetFilterSelect=function(number){var selector='.tx-address-manager select[data-order=\''+number+'\']';var selects=document.querySelectorAll(selector);for(var i=0;i<selects.length;i++){var select=selects[i];if(select.id!=='address-limit-select'){if(number>0){select.disabled=!0} 63select.value='0';var id=select.id.replace('address-','').replace('-select','');address_manager.searchData.tx_addressmanager_jsonapi[id]=0}}};this.resetAllData=function(){for(var i=0;i<4;i++){address_manager.resetFilterSelect(i)} 64var el=document.getElementById('address-search-word');if(el)el.value='';el=document.getElementById('address-custom-string');if(el)el.value='';el=document.getElementById('address-location-field');if(el)el.value='';el=document.getElementById('address-latitude-field');if(el)el.value='';el=document.getElementById('address-longitude-field');if(el)el.value='';address_manager.searchData.tx_addressmanager_jsonapi.searchWord='';address_manager.searchData.tx_addressmanager_jsonapi.customString='';address_manager.searchData.tx_addressmanager_jsonapi.latitude=0.0;address_manager.searchData.tx_addressmanager_jsonapi.longitude=0.0;address_manager.searchData.tx_addressmanager_jsonapi.offset=0;address_manager.refreshData()};this.activateFilterSelect=function(number){var selector='.tx-address-manager select[data-order=\''+number+'\']';var selects=document.querySelectorAll(selector);if(selects.length>0){for(var i=0;i<selects.length;i++){selects[i].value='0';selects[i].disabled=!1}}};this.toggleLoading=function(){document.querySelectorAll('.address-list').slideToggle(400);var loaders=document.querySelectorAll('.address-list-loading');if(loaders.length>0){var hiddenClass=loaders[0].getAttribute('data-hidden-class');for(var i=0;i<loaders.length;i++){var loader=loaders[i];if(loader.classList.contains(hiddenClass)){loader.classList.remove(hiddenClass)}else{loader.classList.add(hiddenClass)}}}};this.refreshData=function(){document.querySelectorAll('.address-list').slideUp(0);var url=address_manager.searchForm.getAttribute('action');var jsonApiQueryString=address_manager.objectToQueryString('tx_addressmanager_jsonapi',address_manager.searchData.tx_addressmanager_jsonapi);fetch(url,{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:new URLSearchParams(jsonApiQueryString)}).then(function(response){return response.json()}).then(function(result){document.querySelectorAll('.address-list').slideDown(400);if(result.list.items.length>0){var listEl=document.querySelector('.address-list');listEl.innerHTML='';for(var i=0;i<result.list.items.length;i++){var address=result.list.items[i];var html=decodeURIComponent(escape(atob(address.html)));listEl.insertAdjacentHTML('beforeend',html)} 65if(result.list.filterFieldSecond!==undefined&&result.list.filterFieldSecond.items!==undefined){var selects2=document.querySelector('select[data-order="1"]');if(selects2){const label=document.querySelector('select[data-order="1"] option[value="0"]').innerHTML;selects2.innerHTML='<option value="0">'+label+'</option>';Object.keys(result.list.filterFieldSecond.items).forEach(key=>{const{uid,title}=result.list.filterFieldSecond.items[key];const selected=parseInt(result.list.filterFieldSecond.selected,10)===parseInt(uid,10)?' selected="selected"':'';const option='<option value="'+uid+'"'+selected+'>'+title+'</option>';selects2.insertAdjacentHTML('beforeend',option)})}} 66if(result.list.filterFieldThird!==undefined){var selects3=document.querySelector('select[data-order="2"]');if(selects3){if(result.list.filterFieldThird.items!==undefined){selects3.removeAttribute('disabled');var label=document.querySelector('select[data-order="2"] option[value="0"]').innerHTML;selects3.innerHTML='<option value="0">'+label+'</option>';
66Object.keys(result.list.filterFieldThird.items).forEach(key=>{const{uid,title}=result.list.filterFieldThird.items[key];const selected=parseInt(result.list.filterFieldThird.selected,10)===parseInt(uid,10)?' selected="selected"':'';const option='<option value="'+uid+'"'+selected+'>'+title+'</option>';selects3.insertAdjacentHTML('beforeend',option)})}else{selects3.setAttribute('disabled','disabled')}}} 67window.dispatchEvent(new CustomEvent('address_manager.result',{detail:result}))}else{window.dispatchEvent(new CustomEvent('address_manager.no_result',{detail:result}))} 68document.querySelector('.address-list-wrapper').setAttribute('data-address-list-count',result.list.count);address_manager.rebuildGoogleMap();address_manager.refreshPagination()})};this.objectToQueryString=function(topKey,obj){const parts=[];for(const key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){const value=obj[key];parts.push(`${encodeURIComponent(topKey)}[${encodeURIComponent(key)}]=${encodeURIComponent(value)}`)}} 69return parts.join("&")};this.onResult=function(result){const map=document.querySelector('#address-list-map');if(map){document.querySelector('#address-list-map').slideDown(400)} 70const pagination=document.querySelector('.address-list-pagination');if(pagination){document.querySelector('.address-list-pagination').slideDown(400)}};this.onNoResult=function(result){var lists=document.querySelectorAll('.address-list');var alert='<div class="alert alert-info">Es wurden keine passenden Ansprechpartner gefunden</div>';for(var i=0;i<lists.length;i++){lists[i].innerHTML='<div class="address-list-no-results col-md-12">'+alert+'</div>'} 71const map=document.querySelector('#address-list-map');if(map){document.querySelector('#address-list-map').slideUp(400)} 72const pagination=document.querySelector('.address-list-pagination');if(pagination){document.querySelector('.address-list-pagination').slide
72Up(400)}};this.refreshPagination=function(){document.querySelectorAll('.address-list-pagination').forEach(function(pagination){var listWrapper=document.querySelector('.address-list-wrapper');var count=parseInt(listWrapper.dataset.addressListCount,10);var limit=address_manager.searchData.tx_addressmanager_jsonapi.limit;var offset=address_manager.searchData.tx_addressmanager_jsonapi.offset;var pageCount=Math.ceil(count/limit);var currentPageNo=(offset/limit)+1;if(this.debug){console.log('refreshPagination > count',count,'limit',limit,'offset',offset,'pageCount',pageCount,'currentPageNo',currentPageNo)} 73pagination.querySelectorAll('.page-item.clone').forEach(function(el){el.remove()});var paginationPrevious=pagination.querySelector('.page-item.previous');if(currentPageNo===1){paginationPrevious.classList.add('disabled')}else{paginationPrevious.classList.remove('disabled')} 74if(!paginationPrevious.classList.contains('initialized')){paginationPrevious.classList.add('initialized');paginationPrevious.addEventListener('click',function(e){var limit=address_manager.searchData.tx_addressmanager_jsonapi.limit;var offset=address_manager.searchData.tx_addressmanager_jsonapi.offset;offset-=limit;if(offset>=0){address_manager.searchData.tx_addressmanager_jsonapi.offset=offset;address_manager.refreshData()} 75e.preventDefault()})} 76var paginationNext=pagination.querySelector('.page-item.next');if(currentPageNo===pageCount){paginationNext.classList.add('disabled')}else{paginationNext.classList.remove('disabled')} 77if(!paginationNext.classList.contains('initialized')){paginationNext.classList.add('initialized');paginationNext.addEventListener('click',function(e){var count=parseInt(listWrapper.getAttribute('data-address-list-count'),10);var limit=address_manager.searchData.tx_addressmanager_jsonapi.limit;var offset=address_manager.searchData.tx_addressmanager_jsonapi.offset;offset+=limit;if(offset<count){address_manager.searchData.tx_addressmanager_jsonapi.offset=offset;address_manager.refreshData()} 78e.preventDefault()})} 79let pageNo=1;for(let i=0;i<count;i+=limit){const template=pagination.querySelector('.page-item.template');if(!template)continue;const pageItem=template.cloneNode(!0);pageItem.classList.remove('template');pageItem.classList.add('clone');pageItem.removeAttribute('style');const link=pageItem.querySelector('a');if(link){link.setAttribute('data-page-no',pageNo);link.textContent=pageNo} 80if(pageNo===currentPageNo){pageItem.classList.add('active')} 81template.parentNode.insertBefore(pageItem,template);pageNo++} 82pagination.querySelectorAll('.page-item.clone a').forEach(function(link){link.addEventListener('click',function(e){var pageNo=parseInt(this.getAttribute('data-page-no'),10);var limit=address_manager.searchData.tx_addressmanager_jsonapi.limit;address_manager.searchData.tx_addressmanager_jsonapi.offset=limit*(pageNo-1);address_manager.refreshData();e.preventDefault()})})})};this.setAddressMarker=function(latLng,tooltipHtml,markerSvg){let marker=new google.maps.marker.AdvancedMarkerElement({map:this.map,content:document.createRange().createContextualFragment(markerSvg),position:latLng});marker.addListener('mouseover',this.onAddressMarkerMouseover.bind(this,marker,tooltipHtml));marker.addListener('click',this.onAddressMarkerClick.bind(this,marker,tooltipHtml));return marker} 83this.onAddressMarkerMouseover=function(marker,tooltipHtml){this.infoWindow.setContent(tooltipHtml);this.infoWindow.open(this.map,marker)} 84this.onAddressMarkerClick=function(marker,tooltipHtml){this.infoWindow.setContent(tooltipHtml);this.infoWindow.open(this.map,marker)} 85this.validateLatitude=function(latitude){if(latitude>85||latitude<-85){latitude=0.0} 86return latitude};this.validateLongitude=function(longitude){if(longitude>180||longitude<-180){longitude=0.0} 87return longitude}};var address_manager=new AddressManager();document.addEventListener('DOMContentLoaded',function(){if(document.querySelector('#address-detail-map')||document.querySelector('#address-list-map')||document.querySelector('#address-location-field')){let counter=0;function waitForGoogleMaps(callback){if(typeof google!=="undefined"&&typeof google.maps!=="undefined"&&typeof google.maps.places!=="undefined"){callback()}else{counter++;if(counter>20){return} 88setTimeout(()=>waitForGoogleMaps(callback),100)}} 89waitForGoogleMaps(()=>{address_manager.initialize()})}else if(document.querySelector('.tx-address-manager')){address_manager.initialize()}});Element.prototype.slideUp=function(duration=400){this.style.transitionProperty='height, margin, padding';this.style.transitionDuration=duration+'ms';this.style.boxSizing='border-box';this.style.height=this.offsetHeight+'px';this.offsetHeight;this.style.overflow='hidden';this.style.height=0;this.style.paddingTop=0;this.style.paddingBottom=0;this.style.marginTop=0;this.style.marginBottom=0;window.setTimeout(()=>{this.style.display='none';this.style.removeProperty('height');this.style.removeProperty('padding-top');this.style.removeProperty('padding-bottom');this.style.removeProperty('margin-top');this.style.removeProperty('margin-bottom');this.style.removeProperty('overflow');this.style.removeProperty('transition-duration');this.style.removeProperty('transition-property')},duration)};NodeList.prototype.slideUp=function(duration){this.forEach(el=>el.slideUp(duration))};Element.prototype.slideDown=function(duration=400){this.style.removeProperty('display');let display=window.getComputedStyle(this).display;
89if(display==='none')display='block';this.style.display=display;let height=this.offsetHeight;this.style.overflow='hidden';this.style.height=0;this.style.paddingTop=0;this.style.paddingBottom=0;this.style.marginTop=0;this.style.marginBottom=0;this.offsetHeight;this.style.boxSizing='border-box';this.style.transitionProperty="height, margin, padding";this.style.transitionDuration=duration+'ms';this.style.height=height+'px';this.style.removeProperty('padding-top');this.style.removeProperty('padding-bottom');this.style.removeProperty('margin-top');this.style.removeProperty('margin-bottom');window.setTimeout(()=>{this.style.removeProperty('height');this.style.removeProperty('overflow');this.style.removeProperty('transition-duration');this.style.removeProperty('transition-property')},duration)};NodeList.prototype.slideDown=function(duration){this.forEach(el=>el.slideDown(duration))};Element.prototype.slideToggle=function(duration=400){if(window.getComputedStyle(this).display==='none'){return this.slideDown(duration)}else{return this.slideUp(duration)}};NodeList.prototype.slideToggle=function(duration){this.forEach(el=>el.slideToggle(duration))};const AddressManagerGetGeoLocation={eventType:'click',initialize:function(){if(document.querySelector('html.touch')){AddressManagerGetGeoLocation.eventType='touchend'} 90const getLocationButton=document.getElementById('get-location-button');if(getLocationButton){if(navigator.geolocation){getLocationButton.addEventListener(AddressManagerGetGeoLocation.eventType,function(){navigator.geolocation.getCurrentPosition(AddressManagerGetGeoLocation.processCurrentPosition,AddressManagerGetGeoLocation.processCurrentPositionError)})}else{getLocationButton.style.display='none'}}},processCurrentPosition:function(location){document.getElementById('address-latitude-field').value=location.coords.latitude;document.getElementById('address-longitude-field').value=location.coords.longitude;address_manager.searchData.tx_addressmanager_jsonapi.latitude=location.coords.latitude;address_manager.searchData.tx_addressmanager_jsonapi.longitude=location.coords.longitude;const locationButton=document.getElementById('get-location-button');document.getElementById('address-location-field').value=locationButton.getAttribute('data-location-text');document.getElementById('address-search-form').submit()},processCurrentPositionError:function(error){let message='';switch(error.code){case error.PERMISSION_DENIED:message="User denied the request for Geolocation.";break;case error.POSITION_UNAVAILABLE:message="Location information is unavailable.";break;case error.TIMEOUT:message="The request to get user location timed out.";break;case error.UNKNOWN_ERROR:message="An unknown error occurred.";break} 91alert(message)}};document.addEventListener('DOMContentLoaded',function(){AddressManagerGetGeoLocation.initialize()})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.