<!DOCTYPE html>
<html>
	<head>
		<title>Podcast chapter converter</title>
		<style>
			#container {
				display: flex;
				align-items: center;
			}

			.hidden {
				display: none;
			}
		</style>
	</head>
	<body>
		<script src="/bundle.js"></script>
		<script>
			function convert() {
				output.value = window.encoders[to.value](
					shift_timestamps(
						window.parsers[from.value](input.value),
						parseInt(offset.value)
					)
				);
			}

			function download(data, filename, type) {
				var file = new Blob([data], { type: type });
				var a = document.createElement("a"),
					url = URL.createObjectURL(file);
				a.href = url;
				a.download = filename;
				document.body.appendChild(a);
				a.click();
				setTimeout(function () {
					document.body.removeChild(a);
					window.URL.revokeObjectURL(url);
				}, 0);
			}

			function download_output() {
				download(
					output.value,
					"chapters." + to.value,
					"application/json"
				);
			}

			function fromchange() {
				offset.value = 0;
				if (from.value == "youtube") {
					offset_container.classList.remove("hidden");
				} else {
					offset_container.classList.add("hidden");
				}
			}
		</script>
		<h1>Convert podcast chapters</h1>
		<div id="container">
			<div>
				<label>
					From:
					<select id="from" onchange="fromchange()">
						<option value="audacity">Audacity labels export</option>
						<option value="youtube">
							Youtube plaintext timestamps
						</option>
					</select>
				</label>
				<div id="offset_container" class="hidden">
					<label>
						Offset (to compensate for video intro not present on
						audio):<br />
						<input type="number" id="offset" size="6" />s
					</label>
				</div>
				<div>
					<textarea rows="40" cols="60" id="input"></textarea>
				</div>
			</div>
			<div>
				<button onClick="convert()">Convert→</button>
			</div>
			<div>
				<label>
					To:
					<select id="to" onchange="convert()">
						<option value="json">
							JSON Chapters (for Castapod)
						</option>
						<option value="youtube">
							Youtube plaintext timestamps
						</option>
					</select>
				</label>
				<button onclick="download_output()">download</button>
				<div>
					<textarea rows="40" cols="60" id="output"></textarea>
				</div>
			</div>
		</div>
		<script>
			fromchange();
		</script>
	</body>
</html>