From 1f678d5861a1a88772199278361dc05df624840b Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Thu, 29 Sep 2022 16:27:32 +0200
Subject: [PATCH] Just an example with radio buttons

---
 .../website/script/simstadt_openlayers.js     | 19 ++++++++++++++++++-
 .../regionchooser/website/style/style.css     |  4 ----
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
index faf211a..9c1da99 100644
--- a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
+++ b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
@@ -9,6 +9,22 @@ var regionChooser = (function(){
 		$("html").addClass("wait");
 	}
 
+    // Hash function
+const cyrb53 = (str, seed = 0) => {
+  let h1 = 0xdeadbeef ^ seed,
+    h2 = 0x41c6ce57 ^ seed;
+  for (let i = 0, ch; i < str.length; i++) {
+    ch = str.charCodeAt(i);
+    h1 = Math.imul(h1 ^ ch, 2654435761);
+    h2 = Math.imul(h2 ^ ch, 1597334677);
+  }
+  
+  h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
+  h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
+  
+  return 4294967296 * (2097151 & h2) + (h1 >>> 0);
+};
+
 	var osm_layer = new ol.layer.Tile({
 		source: new ol.source.OSM()
 	});
@@ -160,7 +176,8 @@ var regionChooser = (function(){
 			link += "<a href=\"#\" onclick=\"regionChooser.downloadRegionFrom" + feature["source"] + "(" + feature.getId()
 					+ ");return false;\">" + feature["name"] + "</a>";
 		} else {
-			link += feature['name'];
+            h = cyrb53(feature['name']);
+			link += '<input type="checkbox" id="check' + h+ '"><label for="check' + h + '">' +  feature['name'] + '</label>';
 		}
 
 		link += " (" + citygml_percentage + "%";
diff --git a/src/main/resources/eu/simstadt/regionchooser/website/style/style.css b/src/main/resources/eu/simstadt/regionchooser/website/style/style.css
index d47cf34..5e748cf 100644
--- a/src/main/resources/eu/simstadt/regionchooser/website/style/style.css
+++ b/src/main/resources/eu/simstadt/regionchooser/website/style/style.css
@@ -130,10 +130,6 @@ div#dataPanel li {
     line-height: 1;
 }
 
-div#side input{
-	width:90%;
-}
-
 div#side input.navi{
 	font-size:18px;
 	height:30px;
-- 
GitLab