<!DOCTYPE html>
<html>
	<head>
		<style>
			@media(prefers-color-scheme: dark) {
				body {
					background: black;
				}
			}
			
			div.everything {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				min-width: 95vw;
			}
			
			div.stream {
				display: flex;
				flex-direction: row;
			}
			div.stream > div#BLARF {
			}
			div.stream > div.chat {
				flex-grow: 1;
			}
			
			div#BLARF {
				position: relative;
				font-family: sans-serif;
				width: fit-content;
			}
			div#BLARF .MKVControls {
				position: absolute;
				bottom: 0.5%;
				left: 0%;
				margin-left: 0;
				right: 0%;
				width: 100%;
				color: white;
				font-size: 0.4cm;
				background: rgb(0, 0, 0);
				background: linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
			}
			div#BLARF .MKVControls > * {
				vertical-align: middle;
			}
			div#BLARF .MKVSpeaker {
				width: 1em;
				text-align: center;
				display: inline-block;
				cursor: pointer;
				font-size: 0.75cm;
			}
			div#BLARF > canvas {
				background: url(intermission.jpg) black;
				background-position: 0 30%;
				background-size: cover;
				width: 100%;
			}
			
			/* Pretty bad hack, but this way Converse.js can be unchanged */
			div.chatbox-title__text {
				text-indent: -99999px;
				line-height: 0 !important;
			}
			div.chatbox-title__text::after {
				content: "Chat";
				text-indent: 0px;
				display: block;
				line-height: initial;
			}
			
			@media(max-aspect-ratio: 1) {
				div.everything {
					top: 0;
					left: 0;
					transform: translate(0, 0);
				}
				div.stream {
					flex-direction: column;
				}
				div.stream > div.chat {
					min-height: 20vh;
				}
				converse-root {
					position: absolute !important;
					width: 100%;
					height: 100%;
					display: inline-block;
				}
			}
		</style>
		<link rel="stylesheet" type="text/css" media="screen" href="https://cdn.conversejs.org/10.1.4/dist/converse.min.css">
		<meta charset="UTF-8" />
		<title>MWSS Stream</title>
		<script>
			var STREAM_SOURCE_WS = "wss://iki.mid.net.ua/streamout/"
			
			var ENABLE_CHAT = true
			var CHAT_HOST_WS_URL = "wss://mid.net.ua/xmpp"
			var CHAT_HOST = "anon.mid.net.ua"
			var CHAT_MUC = "stream@muc.anon.mid.net.ua"
		</script>
	</head>
	<body>
		<div class="everything">
			<header></header>
			<div class="stream">
				<div class="feed">
					<div id="BLARF" data-target=""></div>
				</div>
				<div class="chat">
					<converse-root style="position: relative;"></converse-root>
				</div>
			</div>
			<footer></footer>
		</div>
		
		<script src="https://cdn.conversejs.org/10.1.4/dist/converse.min.js" charset="utf-8"></script>
		<script>
			document.querySelector("#BLARF").setAttribute("data-target", STREAM_SOURCE_WS)
			
			function randomHex(size) {
				return [...self.crypto.getRandomValues(new Uint8Array(size))].map(b=>b.toString(16).padStart(2, "0")).join("")
			}
			const un = 'lol' + randomHex(16)
			
			if(ENABLE_CHAT) {
				converse.initialize({
					view_mode: 'embedded',
					websocket_url: CHAT_HOST_WS_URL,
					login: 'anonymous',
					jid: un + '@' + CHAT_HOST,
					auto_login: true,
					password: 'lol',
					auto_join_rooms: [CHAT_MUC],
					show_message_avatar: false,
					show_controlbox_by_default: false,
					roster_groups: false,
					blacklisted_plugins: ['converse-controlbox', 'converse-fullscreen'],
					singleton: true,
					discover_connection_methods: false,
					keepalive: false,
					auto_reconnect: true,
					hide_muc_participants: true
				})
			} else {
				document.querySelector("div.everything .chat").style.display = "none"
			}
		</script>
		<script src="blarf.js"></script>
	</body>
</html>