+ }
+
+ function removeNewNoteMarker() {
+ removeHalo();
+ if (newNoteMarker) map.removeLayer(newNoteMarker);
+ newNoteMarker = null;
+ }
+
+ function moveNewNotMarkerToClick(e) {
+ if (newNoteMarker) newNoteMarker.setLatLng(e.latlng);
+ if (halo) halo.setLatLng(e.latlng);
+ content.find("textarea").focus();
+ }
+
+ function updateControls() {
+ const zoomedOut = addNoteButton.hasClass("disabled");
+ const withoutText = content.find("textarea").val() === "";
+
+ content.find("#new-note-zoom-warning").prop("hidden", !zoomedOut);
+ content.find("input[type=submit]").prop("disabled", zoomedOut || withoutText);
+ if (newNoteMarker) newNoteMarker.setOpacity(zoomedOut ? 0.5 : 0.9);
+ }
+
+ page.pushstate = page.popstate = function (path) {
+ OSM.loadSidebarContent(path, function () {
+ page.load(path);
+ });
+ };
+
+ page.load = function (path) {
+ addNoteButton.addClass("active");
+
+ map.addLayer(noteLayer);
+
+ const params = new URLSearchParams(path.substring(path.indexOf("?")));
+ var markerLatlng;
+
+ if (params.has("lat") && params.has("lon")) {
+ markerLatlng = L.latLng(params.get("lat"), params.get("lon"));
+ } else {
+ markerLatlng = map.getCenter();
+ }
+
+ map.panInside(markerLatlng, {
+ padding: [50, 50]
+ });
+
+ addNewNoteMarker(markerLatlng);