+ handleResize();
+ }
+
+ function toggleData() {
+ if (map.dataLayer.visibility) {
+ <%= remote_function :url => { :controller => 'browse', :action => 'start' } %>
+ } else {
+ closeSidebar();
+ }
+ }
+
+ function getPosition() {
+ return getMapCenter();
+ }
+
+ function setPosition(lat, lon, zoom) {
+ var centre = new OpenLayers.LonLat(lon, lat);
+
+ setMapCenter(centre, zoom);
+
+ if (marker)
+ removeMarkerFromMap(marker);
+
+ marker = addMarkerToMap(centre, getArrowIcon());
+ }
+
+ function updateLocation() {
+ var lonlat = getMapCenter();
+ var zoom = map.getZoom();
+ var layers = getMapLayers();
+ var extents = getMapExtent();
+
+ updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top);
+
+ document.cookie = "_osm_location=" + lonlat.lon + "|" + lonlat.lat + "|" + zoom + "|" + layers;
+ }
+
+ function resizeContent() {
+ var content = $("content");
+ var rightMargin = parseInt(getStyle(content, "right"));
+ var bottomMargin = parseInt(getStyle(content, "bottom"));
+
+ content.style.width = document.documentElement.clientWidth - content.offsetLeft - rightMargin;
+ content.style.height = document.documentElement.clientHeight - content.offsetTop - bottomMargin;
+ }
+
+ function resizeMap() {
+ var centre = map.getCenter();
+ var zoom = map.getZoom();
+ var sidebar_width = $("sidebar").offsetWidth;
+
+ if (sidebar_width > 0) {
+ sidebar_width = sidebar_width + 5
+ }
+
+ $("map").style.left = (sidebar_width) + "px";
+ $("map").style.width = ($("content").offsetWidth - sidebar_width) + "px";
+ $("map").style.height = ($("content").offsetHeight - 2) + "px";
+
+ map.setCenter(centre, zoom);
+ }
+
+ function handleResize() {
+ if (brokenContentSize) {
+ resizeContent();
+ }
+
+ resizeMap();
+ }
+
+ mapInit();
+
+ window.onload = handleResize;
+ window.onresize = handleResize;
+
+ <% if params['action'] == 'export' %>
+ <%= remote_function :url => { :controller => 'export', :action => 'start' } %>
+ <% end %>
+// -->
+</script>