Index: /binary-improvements/webserver/css/style.css
===================================================================
--- /binary-improvements/webserver/css/style.css	(revision 178)
+++ /binary-improvements/webserver/css/style.css	(revision 179)
@@ -50,4 +50,5 @@
 	display:none;
 }
+
 .ui-dialog {
 	z-index:1011 !important;
@@ -57,2 +58,16 @@
 }
 
+.control-reloadtiles a,
+.control-reloadtiles a:hover {
+	padding: 1px 5px 1px 5px;
+	width: auto;
+}
+
+.control-coordinates {
+	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
+	background: #fff;
+	border-radius: 5px;
+	padding: 6px 10px 6px 6px;
+	color: #333;
+}
+
Index: /binary-improvements/webserver/index.html
===================================================================
--- /binary-improvements/webserver/index.html	(revision 178)
+++ /binary-improvements/webserver/index.html	(revision 179)
@@ -4,7 +4,4 @@
 	<meta charset="UTF-8">
 	<title>7dtd map browser</title>
-	
-	<!-- Own stylesheet -->
-	<link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
 
 	<!-- jQuery -->
@@ -32,10 +29,10 @@
 	<script type="text/javascript" src="leaflet/minimap/Control.MiniMap.js"></script>
 
+	<!-- Own stylesheet -->
+	<link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
+
 </head>
 <body>
 	<div id="map"></div>
-	<div id="info">
-		MouseCoords: <span id="pos"></span>
-	</div>
 	<div id="playerInventoryDialog" title="Player inventory">
 		Player: <span id="invPlayerName"></span>
Index: /binary-improvements/webserver/js/index.js
===================================================================
--- /binary-improvements/webserver/js/index.js	(revision 178)
+++ /binary-improvements/webserver/js/index.js	(revision 179)
@@ -60,4 +60,6 @@
 // ===============================================================================================
 // Map and basic tile layers
+
+var tileTime = new Date().getTime();
 
 var map = L.map('map', {
@@ -75,6 +77,6 @@
 	continuousWorld: true,
 	tms: true,
-	unloadInvisibleTiles: true,
-	time: function() { return new Date().getTime(); }
+	unloadInvisibleTiles: false,
+	time: function() { return tileTime; }
 });
 
@@ -86,6 +88,6 @@
 	continuousWorld: true,
 	tms: true,
-	unloadInvisibleTiles: true,
-	time: function() { return new Date().getTime(); }
+	unloadInvisibleTiles: false,
+	time: function() { return tileTime; }
 });
 
@@ -155,6 +157,102 @@
 
 
-// ===============================================================================================
-// Overlays
+
+// ===============================================================================================
+// Reload control
+
+L.Control.ReloadTiles = L.Control.extend({
+	options: {
+		position: 'bottomleft'
+	},
+
+	onAdd: function (map) {
+		var name = 'control-reloadtiles',
+		    container = L.DomUtil.create('div', name + ' leaflet-bar');
+
+		this._map = map;
+
+		this._reloadbutton = this._createButton(
+			"Reload tiles", "Reload tiles",
+			name + "-btn", container, this._reload, this);
+
+		return container;
+	},
+
+	onRemove: function (map) {
+	},
+
+	_reload: function (e) {
+		tileTime = new Date().getTime();
+		tileLayer.redraw();
+		tileLayerMiniMap.redraw();
+	},
+
+	_createButton: function (html, title, className, container, fn, context) {
+		var link = L.DomUtil.create('a', className, container);
+		link.innerHTML = html;
+		link.href = '#';
+		link.title = title;
+
+		var stop = L.DomEvent.stopPropagation;
+
+		L.DomEvent
+		    .on(link, 'click', stop)
+		    .on(link, 'mousedown', stop)
+		    .on(link, 'dblclick', stop)
+		    .on(link, 'click', L.DomEvent.preventDefault)
+		    .on(link, 'click', fn, context)
+		    .on(link, 'click', this._refocusOnMap, context);
+
+		return link;
+	}
+
+});
+
+new L.Control.ReloadTiles({
+}).addTo(map);
+
+
+// ===============================================================================================
+// Coordinates control
+//	<div id="info">
+//		MouseCoords: <span id="pos"></span>
+//	</div>
+
+L.Control.Coordinates = L.Control.extend({
+	options: {
+		position: 'bottomleft'
+	},
+
+	onAdd: function (map) {
+		var name = 'control-coordinates',
+		    container = L.DomUtil.create('div', name + ' leaflet-bar');
+		
+		container.innerHTML = "- N / - E"
+
+		this._map = map;
+		this._div = container;
+
+		map.on('mousemove', this._onMouseMove, this);
+
+		return container;
+	},
+
+	onRemove: function (map) {
+	},
+	
+	_onMouseMove: function (e) {
+		this._div.innerHTML = FormatCoord(e.latlng);
+	}
+
+
+});
+
+new L.Control.Coordinates({
+}).addTo(map);
+
+
+
+// ===============================================================================================
+// Overlays and controls
 
 var playersOnlineMarkerGroup = L.layerGroup();
@@ -183,12 +281,11 @@
 }).addTo(map);
 
-map.on('mousemove', function(e) {
-	L.DomUtil.get('pos').textContent = FormatCoord(e.latlng);
-});
+//map.on('mousemove', function(e) {
+//	L.DomUtil.get('pos').textContent = FormatCoord(e.latlng);
+//});
 
 var miniMap = new L.Control.MiniMap(tileLayerMiniMap, {
 	toggleDisplay: true
 }).addTo(map);
-
 
 
@@ -358,8 +455,25 @@
 	})
 	.always(function() {
-		window.setTimeout(updateClaimsEvent, 5000);
+		//updateClaimTimer = window.setTimeout(updateClaimsEvent, 3000);
 	});
 }
 
-window.setTimeout(updateClaimsEvent, 750);
-
+
+
+// ===============================================================================================
+// Layer events
+
+var updateClaimTimer;
+map.on('overlayadd', function(e) {
+	if (e.layer == landClaimsGroup) {
+		updateClaimsEvent();
+	}
+});
+
+map.on('overlayremove', function(e) {
+	if (e.layer == landClaimsGroup) {
+		//window.clearTimeout(updateClaimTimer);
+	}
+});
+
+
