{"version":3,"file":"apartment-maps.min.js","names":["ils","ApartmentMaps","geocoder","map","neighborhoodMap","bounds","infoBox","markers","initializeMap","globalThis","loaded","google","maps","LatLngBounds","Geocoder","Map","document","getElementById","codeAddress","residenceAddress","officeAddress","$","getScript","ws_wsid","data","textStatus","jqxhr","travelTimeWidget","walkscore","TravelTimeWidget","origin","residenceLat","residenceLong","show","mode","TravelTime","Mode","DRIVE","event","addListener","hide","trackGoogleMapsEvent","MapsGACategories","DynamicMaps","e","console","error","loadDynamicDirectionsMap","loadDynamicMap","viewModel","DirectionsMapContents","googleMapsApiLoaded","loadApartmentMapScripts","mapTimeout","setTimeout","clearTimeout","initializeNeighborhoodMap","neighborhoodMapLoaded","center","mapCenter","zoom","mapBounds","decodedCoords","geometry","encoding","decodePath","neighborhoodArea","Coords","polygon","Polygon","paths","strokeColor","brandColorPrimary","strokeOpacity","strokeWeight","fillColor","fillOpacity","setMap","j","length","extend","AddPolygonEvents","InfoBox","content","Name","toUpperCase","boxStyle","fontSize","fontFamily","textShadow","color","disableAutoPan","pixelOffset","Size","XOffset","YOffset","position","getCenter","closeBoxURL","enableEventPropagation","open","fitBounds","setVisible","getZoom","createMarker","latlng","imageForRetina","MarkerImage","imageDomain","Marker","icon","initializeStaticMap","location","googleMapsLat","googleMapsLong","markerImageParam","encodeURIComponent","window","isMobile","breakpoint","mapUrl","googleMapsKey","imageDivElement","join","googleStaticCommunityMapLoaded","StaticMaps","clickTimeout","on","setMapsImage","loadDynamicNeighborhoodMap","NeighborhoodMapContents","initializeStaticNeighborhoodMap","coords","closingCoords","lat","lng","i","coord","push","coordsParam","imageTag","replace","neighborhoodName","googleStaticNeighborhoodMapLoaded","loadApartmentStaticMapScripts","staticMapsTimeout","counter","setMapZoom","maxZoomLevel","setZoom","recursiveTimeout","address","residence","LatLng","mapZoomTimeout","officeLat","officeLong","geocode","results","status","GeocoderStatus","OK","this","setOptions"],"sources":["apartment-maps.js"],"mappings":"AAAA,IAAIA,KACJ,SAAWA,GACP,IAAIC,GACJ,SAAWA,GACP,IAAIC,EACAC,EACAC,EAEAC,EACAC,EAFAC,EAAU,GAGd,SAASC,IACL,IAAIC,WAAWC,OAEf,IACIL,EAAS,IAAIM,OAAOC,KAAKC,aACzBX,EAAW,IAAIS,OAAOC,KAAKE,SAC3BX,EAAM,IAAIQ,OAAOC,KAAKG,IAAIC,SAASC,eAAe,eAClDC,EAAYT,WAAWU,kBAAkB,GACP,MAA5BV,WAAWW,eAAqD,IAA5BX,WAAWW,eACjDF,EAAYT,WAAWW,eAAe,GAC1CX,WAAWC,QAAS,EACpBW,EAAEC,UAAU,iEAAiEb,WAAWc,WAAW,SAAUC,EAAMC,EAAYC,GAC3HzB,EAAc0B,iBAAmB,IAAIC,UAAUC,iBAAiB,CAC5D1B,IAAKA,EACL2B,OAAQ,GAAGrB,WAAWsB,gBAAgBtB,WAAWuB,gBACjDC,MAAM,EACNC,KAAMN,UAAUO,WAAWC,KAAKC,OAExC,IACA1B,OAAOC,KAAK0B,MAAMC,YAAYpC,EAAK,QAAQ,WACvCkB,EAAE,gBAAgBmB,MACtB,IACAxC,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBC,YAAa,OAAQ,qBAAsB,EAK7F,CAFA,MAAOC,GACHC,QAAQC,MAAMF,EAClB,CACJ,CAuCA,SAASG,IAYL,SAASC,IACLhD,EAAIiD,UAAUC,sBAAsB,IACpC7B,EAAE,gBAAgBY,OAClBzB,GACJ,CAfKR,EAAImD,qBAAwBxC,OAS7BqC,IARAhD,EAAIoD,yBAAwB,KACxB,MAAMC,EAAaC,YAAW,KAC1BN,IACAO,aAAaF,EAAW,GACzB,IAAI,GAWnB,CAuEA,SAASG,IACL,IAAI/C,WAAWgD,sBAEf,IACIrD,EAAkB,IAAIO,OAAOC,KAAKG,IAAIC,SAASC,eAAe,oBAAqB,CAC/EyC,OAAQ1D,EAAI2D,UACZC,KAAM,KAEV,IAAIC,EAAY,IAAIlD,OAAOC,KAAKC,aAChC,MAAMiD,EAAgBnD,OAAOC,KAAKmD,SAASC,SAASC,WAAWxD,WAAWyD,iBAAiBC,QACrFC,EAAU,IAAIzD,OAAOC,KAAKyD,QAAQ,CACpCC,MAAOR,EACPS,YAAaC,kBACbC,cAAe,GACfC,aAAc,EACdC,UAAW,OACXC,YAAa,KAEjBR,EAAQS,OAAOzE,GACf,IAAK,IAAI0E,EAAI,EAAGA,EAAIhB,EAAciB,OAAQD,IACtCjB,EAAUmB,OAAOlB,EAAcgB,IAEnCG,EAAiBb,IACjB9D,EAAU,IAAI4E,QAAQ,CAClBC,QAAS1E,WAAWyD,iBAAiBkB,KAAKC,cAC1CC,SAAU,CACNC,SAAU,OACVC,WAAY,eACZC,WAAY,eACZC,MAAOlB,mBAEXmB,gBAAgB,EAChBC,YAAa,IAAIjF,OAAOC,KAAKiF,KAAKpF,WAAWyD,iBAAiB4B,QAASrF,WAAWyD,iBAAiB6B,SACnGC,SAAUnC,EAAUoC,YACpBC,YAAa,GACbC,wBAAwB,KAEpBC,KAAKhG,GACbA,EAAgBiG,UAAUxC,GAC1BlD,OAAOC,KAAK0B,MAAMC,YAAYnC,EAAiB,gBAAgB,WAC3DkD,YAAW,WACPhD,EAAQgG,WAAWlG,EAAgBmG,WAAa,GACpD,GAAG,IACP,IACA9F,WAAWgD,uBAAwB,EACnCzD,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBC,YAAa,OAAQ,uBAAwB,EAK/F,CAFA,MAAOC,GACHC,QAAQC,MAAMF,EAClB,CACJ,CAEA,SAAS4D,EAAaC,GAClB,IAAIC,EAAiB,IAAI/F,OAAOC,KAAK+F,YAAYC,YAAc,qBAAsB,KAAM,KAAM,KAAM,IAAIjG,OAAOC,KAAKiF,KAAK,GAAI,KAEhI,OADa,IAAIlF,OAAOC,KAAKiG,OAAO,CAAEb,SAAUS,EAAQtG,IAAKA,EAAK2G,KAAMJ,GAE5E,CAvLAzG,EAAcO,cAAgBA,EAqC9BP,EAAc8G,oBApCd,YAEI,WACI,IAAIC,EAEAA,EADAhH,EAAIiH,eAAsC,GAArBjH,EAAIiH,eAAsBjH,EAAIkH,gBAAwC,GAAtBlH,EAAIkH,eAC9D,GAAGlH,EAAIiH,iBAAiBjH,EAAIkH,iBAG5BzG,WAAWU,iBAE1B,MACMgG,EAAmB,QADJC,mBAAmB,GAAGC,OAAOL,SAASlF,mCACVkF,IAC3CM,EAAsC,UAA3B7G,WAAW8G,aAEtBC,EAAS,uDAAwDF,EAAW,MAAQ,SAAWA,EAAW,MAAQ,iBAAkBH,SAAwBnH,EAAIyH,gBAMhKC,EALc,CAChB,sBAAuBJ,EAAW,OAAS,yBAC3C,mHAAkHE,wCAClH,UAEgCG,KAAK,IACzC3H,EAAIiD,UAAUC,sBAAsBwE,GACpC1H,EAAI4H,gCAAiC,EACrCvG,EAAE,gBAAgBmB,OAClBxC,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBmF,WAAY,OAAQ,qBAAsB,GAExF,IAAIC,EAAexE,YAAW,KAC1BjC,EAAE,0BAA0B0G,GAAG,SAAS,KACpC/H,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBmF,WAAY,QAAS,qBAAsB,GAEzF9E,GAA0B,IAE9BQ,aAAauE,EAAa,GAC3B,IACP,CAjCAE,EAkCJ,EAoBA/H,EAAc8C,yBAA2BA,EAazC9C,EAAcgI,2BAZd,WACIjI,EAAIoD,yBAAwB,KACxB,MAAMC,EAAaC,YAAW,KAM9BtD,EAAIiD,UAAUiF,wBAAwB,IACtC1E,IALID,aAAaF,EAAW,GACzB,IAAI,GAMf,EAyDApD,EAAckI,gCAvDd,WAYI,SAASH,IAEL,MAAMlE,EAAgBnD,OAAOC,KAAKmD,SAASC,SAASC,WAAWxD,WAAWyD,iBAAiBC,QAC3F,IAAIiE,EAAS,GAEb,MAAMC,EAAgB,GAAIvE,EAAc,GAAGwE,MAAQ,QAAexE,EAAc,GAAGyE,MAAQ,OAE3F,IAAK,IAAIC,EAAI,EAAGA,EAAI1E,EAAciB,OAAQyD,IAAK,CAC3C,IAAIC,EAAQ,GAAG3E,EAAc0E,GAAGF,SAASxE,EAAc0E,GAAGD,QAC1DH,EAAOM,KAAKD,EAChB,CAEAL,EAAOM,KAAKL,GAEZ,MAAMM,EAAcP,EAAOT,KAAK,KAU1BiB,EAAW,0CADF,oEAFGxB,mBAAmB,kBAAkB5C,kBAAkBqE,QAAQ,IAAK,2BAA2BF,YAEb3I,EAAIyH,8CACRzH,EAAI8I,4BAA6BrI,WAAW8G,aAA2B,qBAEvKvH,EAAIiD,UAAUiF,wBAAwBU,GAEtC5I,EAAI+I,mCAAoC,EAExC/I,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBmF,WAAY,OAAQ,uBAAwB,GAE1F,IAAIC,EAAexE,YAAW,KAC1BjC,EAAE,4BAA4B0G,GAAG,SAAS,KAEtC/H,EAAIyC,qBAAqBzC,EAAI0C,iBAAiBmF,WAAY,QAAS,uBAAwB,EAAE,IAIjGtE,aAAauE,EAAa,GAC3B,IACP,CApDK9H,EAAImD,oBASL6E,IARAhI,EAAIgJ,+BAA8B,KAC9B,IAAIC,EAAoB3F,YAAW,KAC/B0E,IACAzE,aAAa0F,EAAkB,GAChC,IAAI,GAgDnB,EAsDAhJ,EAAcuD,0BAA4BA,EAM1CvD,EAAcuG,aAAeA,EAC7B,IAAI0C,EAAU,EACd,SAASC,EAAWC,GAGhB,IAFIjJ,EAAIoG,UAAY6C,GAChBjJ,EAAIkJ,QAAQD,GACTF,EAAU,GAAK/I,EAAIoG,WAAa6C,GAAc,CACjDF,IACA,IAAII,EAAmBhG,YAAW,KAC9B6F,EAAWC,GACX7F,aAAa+F,EAAiB,GAC/B,IACP,CACJ,CAEA,SAASpI,EAAYqI,EAASC,GAC1B,GAAIA,GAAwC,GAA3B/I,WAAWsB,cAAiD,GAA5BtB,WAAWuB,cAAoB,CAC5E,IAAIyE,EAAS,IAAI9F,OAAOC,KAAK6I,OAAOhJ,WAAWsB,aAActB,WAAWuB,eACxEzB,EAAQA,EAAQwE,QAAUyB,EAAaC,GACvCpG,EAAO2E,OAAOzE,EAAQA,EAAQwE,OAAS,GAAGiB,UAC1C7F,EAAIkG,UAAUhG,GACd,IAAIqJ,EAAiBpG,YAAW,KAC5B6F,EAAW,IACX5F,aAAamG,EAAe,GAC7B,IACP,MACK,GAAKF,GAAqC,GAAxB/I,WAAWkJ,WAA2C,GAAzBlJ,WAAWmJ,WAU3C,IAAXL,GAAiBrJ,GACtBA,EAAS2J,QAAQ,CAAEN,QAAWA,IAAW,SAAUO,EAASC,GACxD,GAAIA,GAAUpJ,OAAOC,KAAKoJ,eAAeC,GAAI,CACzC1J,EAAQA,EAAQwE,QAAUyB,EAAasD,EAAQ,GAAG/F,SAASiD,UAC3D3G,EAAO2E,OAAOzE,EAAQA,EAAQwE,OAAS,GAAGiB,UAC1C7F,EAAIkG,UAAUhG,GACd,IAAIqJ,EAAiBpG,YAAW,KAC5B6F,EAAW,IACX5F,aAAamG,EAAe,GAC7B,IACP,CACJ,QArB4E,CACxEjD,EAAS,IAAI9F,OAAOC,KAAK6I,OAAOhJ,WAAWkJ,UAAWlJ,WAAWmJ,YACrErJ,EAAQA,EAAQwE,QAAUyB,EAAaC,GACvCpG,EAAO2E,OAAOzE,EAAQA,EAAQwE,OAAS,GAAGiB,UAC1C7F,EAAIkG,UAAUhG,GACd,IAAIqJ,EAAiBpG,YAAW,KAC5B6F,EAAW,IACX5F,aAAamG,EAAe,GAC7B,IACP,CAcJ,CAEA,SAASzE,EAAiBb,GACtBzD,OAAOC,KAAK0B,MAAMC,YAAY6B,EAAS,aAAa,WAChD8F,KAAKC,WAAW,CAAEvF,YAAa,MACnC,IACAjE,OAAOC,KAAK0B,MAAMC,YAAY6B,EAAS,YAAY,WAC/C8F,KAAKC,WAAW,CAAEvF,YAAa,MACnC,GACJ,CA5CA3E,EAAckJ,WAAaA,EAoC3BlJ,EAAciB,YAAcA,EAS5BjB,EAAcgF,iBAAmBA,CACpC,CAvRD,CAuRGhF,EAAgBD,EAAIC,gBAAkBD,EAAIC,cAAgB,CAAC,GACjE,CA1RD,CA0RGD,MAAQA,IAAM,CAAC","sourcesContent":["var ils;\n(function (ils) {\n let ApartmentMaps;\n (function (ApartmentMaps) {\n var geocoder;\n var map;\n var neighborhoodMap;\n var markers = [];\n var bounds;\n var infoBox;\n function initializeMap() {\n if (globalThis.loaded)\n return;\n try {\n bounds = new google.maps.LatLngBounds();\n geocoder = new google.maps.Geocoder();\n map = new google.maps.Map(document.getElementById(\"map_canvas\"));\n codeAddress(globalThis.residenceAddress, true);\n if (!(globalThis.officeAddress == null || globalThis.officeAddress == ''))\n codeAddress(globalThis.officeAddress, false);\n globalThis.loaded = true;\n $.getScript(`https://apicdn.walkscore.com/api/v1/traveltime_widget/js?wsid=${globalThis.ws_wsid}`, function (data, textStatus, jqxhr) {\n ApartmentMaps.travelTimeWidget = new walkscore.TravelTimeWidget({\n map: map,\n origin: `${globalThis.residenceLat},${globalThis.residenceLong}`,\n show: false,\n mode: walkscore.TravelTime.Mode.DRIVE\n });\n });\n google.maps.event.addListener(map, \"idle\", function () {\n $(\".map-loading\").hide();\n });\n ils.trackGoogleMapsEvent(ils.MapsGACategories.DynamicMaps, 'load', 'CDP Directions Map', 7);\n //ga('send', 'event', ils.MapsGACategories.DynamicMaps, 'load', 'CDP Directions Map', 7);\n }\n catch (e) {\n console.error(e);\n }\n }\n ApartmentMaps.initializeMap = initializeMap;\n function initializeStaticMap() {\n setMapsImage();\n function setMapsImage() {\n let location;\n if (ils.googleMapsLat && ils.googleMapsLat != 0 && ils.googleMapsLong && ils.googleMapsLong != 0) {\n location = `${ils.googleMapsLat},${ils.googleMapsLong}`;\n }\n else {\n location = globalThis.residenceAddress;\n }\n const encodedImage = encodeURIComponent(`${window.location.origin}/img/map-marker-62.png`);\n const markerImageParam = `icon:${encodedImage}|${location}`;\n const isMobile = globalThis.breakpoint() == 'mobile';\n // Create the map URL and the img tag\n const mapUrl = `https://maps.googleapis.com/maps/api/staticmap?size=${(isMobile ? '375' : '425')}x${(isMobile ? '375' : '425')}&markers=${markerImageParam}&key=${ils.googleMapsKey}`;\n const imgDivParts = [\n `
`,\n `\t
 
`,\n '
'\n ];\n const imageDivElement = imgDivParts.join('');\n ils.viewModel.DirectionsMapContents(imageDivElement);\n ils.googleStaticCommunityMapLoaded = true;\n $(\".map-loading\").hide();\n ils.trackGoogleMapsEvent(ils.MapsGACategories.StaticMaps, 'load', 'CDP Directions Map', 2);\n //ga('send', 'event', ils.MapsGACategories.StaticMaps, 'load', 'CDP Directions Map', 2);\n var clickTimeout = setTimeout(() => {\n $(\"#static-directions-map\").on('click', () => {\n ils.trackGoogleMapsEvent(ils.MapsGACategories.StaticMaps, 'click', 'CDP Directions Map', 2);\n //ga('send', 'event', 'DirectionsMap', 'click', window.location.pathname);\n loadDynamicDirectionsMap();\n });\n clearTimeout(clickTimeout);\n }, 150);\n }\n }\n ApartmentMaps.initializeStaticMap = initializeStaticMap;\n function loadDynamicDirectionsMap() {\n if (!ils.googleMapsApiLoaded || !google) {\n ils.loadApartmentMapScripts(() => {\n const mapTimeout = setTimeout(() => {\n loadDynamicMap();\n clearTimeout(mapTimeout);\n }, 100);\n });\n }\n else {\n loadDynamicMap();\n }\n function loadDynamicMap() {\n ils.viewModel.DirectionsMapContents('');\n $(\".map-loading\").show();\n initializeMap();\n }\n }\n ApartmentMaps.loadDynamicDirectionsMap = loadDynamicDirectionsMap;\n function loadDynamicNeighborhoodMap() {\n ils.loadApartmentMapScripts(() => {\n const mapTimeout = setTimeout(() => {\n loadDynamicMapForNeighborhood();\n clearTimeout(mapTimeout);\n }, 100);\n });\n function loadDynamicMapForNeighborhood() {\n ils.viewModel.NeighborhoodMapContents('');\n initializeNeighborhoodMap();\n }\n }\n ApartmentMaps.loadDynamicNeighborhoodMap = loadDynamicNeighborhoodMap;\n function initializeStaticNeighborhoodMap() {\n if (!ils.googleMapsApiLoaded) {\n ils.loadApartmentStaticMapScripts(() => {\n var staticMapsTimeout = setTimeout(() => {\n setMapsImage();\n clearTimeout(staticMapsTimeout);\n }, 150);\n });\n }\n else {\n setMapsImage();\n }\n function setMapsImage() {\n // Decode the encoded google maps path\n const decodedCoords = google.maps.geometry.encoding.decodePath(globalThis.neighborhoodArea.Coords);\n let coords = [];\n // We need to manually close the polygon shape so we get the coordinates of the first point and add a small decimal value to it so it's not the exact same\n const closingCoords = `${(decodedCoords[0].lat() + 0.0000001)},${(decodedCoords[0].lng() + 0.0000001)}`;\n // Iterate through the decoded coordinates and add them to the coords array we declared above\n for (let i = 0; i < decodedCoords.length; i++) {\n let coord = `${decodedCoords[i].lat()},${decodedCoords[i].lng()}`;\n coords.push(coord);\n }\n // Add the closing coordinates point to our array so we close the polygon shape\n coords.push(closingCoords);\n // Convert it to a string\n const coordsParam = coords.join('|');\n ////////////////////////////////////////\n // The commented out method below is a way to pass in the raw encoded path. The problem is that these paths are missing the closing coordinates so \n // we have to manually add one\n //\tconst pathParam = encodeURIComponent(`weight:2|color:${globalThis.brandColorPrimary}|fillcolor:#fff|enc:${globalThis.neighborhoodArea.Coords}`);\n ////////////////////////////////////////\n // Create the \"path\" parameter we will use in the map img src URL. We need to URL encode it to make it valid for a URL\n const pathParam = encodeURIComponent(`weight:3|color:${brandColorPrimary.replace(\"#\", \"0x\")}ff|fillcolor:0xfff|${coordsParam}`);\n // Create the map URL and the img tag\n const mapUrl = `https://maps.googleapis.com/maps/api/staticmap?size=450x400&path=${pathParam}&key=${ils.googleMapsKey}`;\n const imageTag = `\"Neighborhood`;\n // Insert the img tag using Knockout\n ils.viewModel.NeighborhoodMapContents(imageTag);\n // set our tracking variable to indicate this is loaded so we don't execute this logic again for this page\n ils.googleStaticNeighborhoodMapLoaded = true;\n // Send an event to google analytics so we can track our usage of static maps and where we use it\n ils.trackGoogleMapsEvent(ils.MapsGACategories.StaticMaps, 'load', 'CDP Neighborhood Map', 2);\n //ga('send', 'event', ils.MapsGACategories.StaticMaps, 'load', 'CDP Neighborhood Map', 2);\n var clickTimeout = setTimeout(() => {\n $(\"#static-neighborhood-map\").on('click', () => {\n // Log a click event to Google Analytics\n ils.trackGoogleMapsEvent(ils.MapsGACategories.StaticMaps, 'click', 'CDP Neighborhood Map', 2);\n //ga('send', 'event', 'NeighborhoodMap', 'click', window.location.pathname);\n //loadDynamicNeighborhoodMap();\n });\n clearTimeout(clickTimeout);\n }, 150);\n }\n }\n ApartmentMaps.initializeStaticNeighborhoodMap = initializeStaticNeighborhoodMap;\n function initializeNeighborhoodMap() {\n if (globalThis.neighborhoodMapLoaded)\n return;\n try {\n neighborhoodMap = new google.maps.Map(document.getElementById(\"neighborhood-map\"), {\n center: ils.mapCenter,\n zoom: 13\n });\n var mapBounds = new google.maps.LatLngBounds();\n const decodedCoords = google.maps.geometry.encoding.decodePath(globalThis.neighborhoodArea.Coords);\n const polygon = new google.maps.Polygon({\n paths: decodedCoords,\n strokeColor: brandColorPrimary,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: '#fff',\n fillOpacity: 0.2\n });\n polygon.setMap(neighborhoodMap);\n for (let j = 0; j < decodedCoords.length; j++) {\n mapBounds.extend(decodedCoords[j]);\n }\n AddPolygonEvents(polygon);\n infoBox = new InfoBox({\n content: globalThis.neighborhoodArea.Name.toUpperCase(),\n boxStyle: {\n fontSize: \"12pt\",\n fontFamily: 'Raleway-Bold',\n textShadow: '0 0 2px #fff',\n color: brandColorPrimary\n },\n disableAutoPan: true,\n pixelOffset: new google.maps.Size(globalThis.neighborhoodArea.XOffset, globalThis.neighborhoodArea.YOffset),\n position: mapBounds.getCenter(),\n closeBoxURL: \"\",\n enableEventPropagation: true\n });\n infoBox.open(neighborhoodMap);\n neighborhoodMap.fitBounds(mapBounds);\n google.maps.event.addListener(neighborhoodMap, 'zoom_changed', function () {\n setTimeout(function () {\n infoBox.setVisible(neighborhoodMap.getZoom() >= 10);\n }, 200);\n });\n globalThis.neighborhoodMapLoaded = true;\n ils.trackGoogleMapsEvent(ils.MapsGACategories.DynamicMaps, 'load', 'CDP Neighborhood Map', 7);\n //ga('send', 'event', ils.MapsGACategories.DynamicMaps, 'load', 'CDP Neighborhood Map', 7);\n }\n catch (e) {\n console.error(e);\n }\n }\n ApartmentMaps.initializeNeighborhoodMap = initializeNeighborhoodMap;\n function createMarker(latlng) {\n var imageForRetina = new google.maps.MarkerImage(imageDomain + 'img/map-marker.png', null, null, null, new google.maps.Size(38, 61));\n var marker = new google.maps.Marker({ position: latlng, map: map, icon: imageForRetina });\n return marker;\n }\n ApartmentMaps.createMarker = createMarker;\n let counter = 0;\n function setMapZoom(maxZoomLevel) {\n if (map.getZoom() > maxZoomLevel)\n map.setZoom(maxZoomLevel);\n while (counter < 4 && map.getZoom() != maxZoomLevel) {\n counter++;\n let recursiveTimeout = setTimeout(() => {\n setMapZoom(maxZoomLevel);\n clearTimeout(recursiveTimeout);\n }, 1000);\n }\n }\n ApartmentMaps.setMapZoom = setMapZoom;\n function codeAddress(address, residence) {\n if (residence && globalThis.residenceLat != 0 && globalThis.residenceLong != 0) {\n var latlng = new google.maps.LatLng(globalThis.residenceLat, globalThis.residenceLong);\n markers[markers.length] = createMarker(latlng);\n bounds.extend(markers[markers.length - 1].position);\n map.fitBounds(bounds);\n let mapZoomTimeout = setTimeout(() => {\n setMapZoom(17);\n clearTimeout(mapZoomTimeout);\n }, 100);\n }\n else if (!residence && globalThis.officeLat != 0 && globalThis.officeLong != 0) {\n var latlng = new google.maps.LatLng(globalThis.officeLat, globalThis.officeLong);\n markers[markers.length] = createMarker(latlng);\n bounds.extend(markers[markers.length - 1].position);\n map.fitBounds(bounds);\n let mapZoomTimeout = setTimeout(() => {\n setMapZoom(17);\n clearTimeout(mapZoomTimeout);\n }, 100);\n }\n else if (address != \"\" && geocoder) {\n geocoder.geocode({ 'address': address }, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n markers[markers.length] = createMarker(results[0].geometry.location);\n bounds.extend(markers[markers.length - 1].position);\n map.fitBounds(bounds);\n let mapZoomTimeout = setTimeout(() => {\n setMapZoom(17);\n clearTimeout(mapZoomTimeout);\n }, 100);\n }\n });\n }\n }\n ApartmentMaps.codeAddress = codeAddress;\n function AddPolygonEvents(polygon) {\n google.maps.event.addListener(polygon, \"mouseover\", function () {\n this.setOptions({ fillOpacity: \".2\" });\n });\n google.maps.event.addListener(polygon, \"mouseout\", function () {\n this.setOptions({ fillOpacity: \".5\" });\n });\n }\n ApartmentMaps.AddPolygonEvents = AddPolygonEvents;\n })(ApartmentMaps = ils.ApartmentMaps || (ils.ApartmentMaps = {}));\n})(ils || (ils = {}));\n"]}