diff --git a/webv4/root/index.xjs b/webv4/root/index.xjs
index 08fe3fa1bc62b95803eb8a0fc8d7d124cdea3ad0..cf4714de447dabcc522a18877b086e0843674cb1 100644
--- a/webv4/root/index.xjs
+++ b/webv4/root/index.xjs
@@ -41,6 +41,13 @@
 <!DOCTYPE html>
 <html lang="en">
 	<head>
+		<style type="text/css">
+			.hidden { display:none; }
+		</style>
+		<script src="./js/jquery.min.js"></script>
+		<script type="text/javascript">
+			jQuery('html').addClass('hidden');
+		</script>
 		<meta charset="utf-8">
 		<meta http-equiv="X-UA-Compatible" content="IE=edge">
 		<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -57,7 +64,6 @@
 
 	<body>
 
-		<script src="./js/jquery.min.js"></script>
 		<script src="./bootstrap/js/bootstrap.min.js"></script>
 		<script src="./js/common.js"></script>
 
diff --git a/webv4/root/js/common.js b/webv4/root/js/common.js
index dbe189a38fdcbca81e31acd4de4980d64fb0f7e7..226431920f00301486623f603a1030f8a67cfd02 100644
--- a/webv4/root/js/common.js
+++ b/webv4/root/js/common.js
@@ -62,21 +62,21 @@ function scrollUp() {
 }
 
 function sendTelegram(alias) {
-    function send_tg(evt) {
-        if (typeof evt !== 'undefined') evt.preventDefault();
+	function send_tg(evt) {
+		if (typeof evt !== 'undefined') evt.preventDefault();
 		v4_post('./api/system.ssjs', { call: 'send-telegram', user: alias, telegram: $('#telegram').val() });
-        $('#popUpModal').modal('hide');
-    }
+		$('#popUpModal').modal('hide');
+	}
 	$('#popUpModalTitle').html('Send a telegram to ' + alias);
 	$('#popUpModalBody').html(
-        '<form id="send-telegram-form">'
+		'<form id="send-telegram-form">'
 		+ '<input type="text" class="form-control" placeholder="My message" name="telegram" id="telegram">'
-        + '<input type="submit" value="submit" class="hidden">'
-        + '</form>'
+		+ '<input type="submit" value="submit" class="hidden">'
+		+ '</form>'
 	);
-    $('#send-telegram-form').submit(send_tg);
+	$('#send-telegram-form').submit(send_tg);
 	$('#popUpModalActionButton').click(send_tg);
-    $('#popUpModalActionButton').show();
+	$('#popUpModalActionButton').show();
 	$('#popUpModal').modal('show');
 }
 
@@ -91,8 +91,40 @@ function registerEventListener(scope, callback, params) {
 	};
 }
 
-window.onload =	function () {
+document.addEventListener("DOMContentLoaded", function(){
+	// originally based on dark-mode-switch by Christian Oliff
+	var darkSwitch = document.getElementById("darkSwitch");
+	if (darkSwitch) {
+		initTheme();
+		darkSwitch.addEventListener("change", function(event) {
+			resetTheme();
+		});
+		function initTheme() {
+			var darkThemeSelected =
+				localStorage.getItem("darkSwitch") !== null &&
+				localStorage.getItem("darkSwitch") === "dark";
+			darkSwitch.checked = darkThemeSelected;
+			if (darkThemeSelected) {
+				jQuery("body").addClass("dark")
+			} else {
+				jQuery("body").removeClass("dark");
+			}
+		}
+		function resetTheme() {
+			if (darkSwitch.checked) {
+				jQuery("body").addClass("dark");
+				localStorage.setItem("darkSwitch", "dark");
+			} else {
+				jQuery("body").removeClass("dark");
+				localStorage.removeItem("darkSwitch");
+			}
+		}
+	}
+
+	jQuery('html').removeClass('hidden');
+});
 
+window.onload =	function () {
 	$('#button-logout').click(logout);
 	$('#button-login').click(login);
 	$('#form-login').submit(login);
@@ -112,20 +144,20 @@ window.onload =	function () {
 	if ($('#button-logout').length > 0) {
 
 		registerEventListener('mail', function (e) {
-            const data = JSON.parse(e.data);
-            if (typeof data.count != 'number') return;
-            $('#badge-unread-mail').text(data.count < 1 ? '' : data.count);
-            $('#badge-unread-mail-inner').text(data.count < 1 ? '' : data.count);
+			const data = JSON.parse(e.data);
+			if (typeof data.count != 'number') return;
+			$('#badge-unread-mail').text(data.count < 1 ? '' : data.count);
+			$('#badge-unread-mail-inner').text(data.count < 1 ? '' : data.count);
 		});
-		
+
 		registerEventListener('telegram', function (e) {
-            const tg = JSON.parse(e.data).replace(/\1./g, '').replace(
-                /\r?\n/g, '<br>'
-            );
-            $('#popUpModalTitle').html('New telegram(s) received');
-            $('#popUpModalBody').append(tg);
-            $('#popUpModalActionButton').hide();
-            $('#popUpModal').modal('show');
+			const tg = JSON.parse(e.data).replace(/\1./g, '').replace(
+				/\r?\n/g, '<br>'
+			);
+			$('#popUpModalTitle').html('New telegram(s) received');
+			$('#popUpModalBody').append(tg);
+			$('#popUpModalActionButton').hide();
+			$('#popUpModal').modal('show');
 		});
 
 	}
@@ -134,37 +166,8 @@ window.onload =	function () {
 		return a + (i == 0 ? '?' : '&') + _sbbs_events[c].qs;
 	}, '');
 
-    const es = new EventSource('/api/events.ssjs' + qs);
-    Object.keys(_sbbs_events).forEach(function (e) {
-        es.addEventListener(e, _sbbs_events[e].callback);
-    });
-
-	// originally based on dark-mode-switch by Christian Oliff
-	var darkSwitch = document.getElementById("darkSwitch");
-	if (darkSwitch) {
-		initTheme();
-		darkSwitch.addEventListener("change", function(event) {
-			resetTheme();
-		});
-		function initTheme() {
-			var darkThemeSelected =
-				localStorage.getItem("darkSwitch") !== null &&
-				localStorage.getItem("darkSwitch") === "dark";
-			darkSwitch.checked = darkThemeSelected;
-			if (darkThemeSelected) {
-				jQuery("body").addClass("dark")
-			} else {
-				jQuery("body").removeClass("dark");
-			}
-		}
-		function resetTheme() {
-			if (darkSwitch.checked) {
-				jQuery("body").addClass("dark");
-				localStorage.setItem("darkSwitch", "dark");
-			} else {
-				jQuery("body").removeClass("dark");
-				localStorage.removeItem("darkSwitch");
-			}
-		}
-	}
+	const es = new EventSource('/api/events.ssjs' + qs);
+	Object.keys(_sbbs_events).forEach(function (e) {
+		es.addEventListener(e, _sbbs_events[e].callback);
+	});
 }