Calculate XEN Max Term

by jarosciak

HTML

<HTML>
<head>
	<title>Calculate XEN Max Term</title>
	<script>
		const MAX_TERM_START = 8640000, TERM_AMPLIFIER_THRESHOLD = 5000, TERM_AMPLIFIER = 15, SECONDS_IN_DAY = 86400, MAX_TERM_END = 8640000000;
window.addEventListener("load", _calculateMaxTerm);
		// Function to calculate max term
		function _calculateMaxTerm(globalRank) {
			let maxTerm;

			if (globalRank > TERM_AMPLIFIER_THRESHOLD) {
				let delta = Math.log2(globalRank) * TERM_AMPLIFIER;
				let newMax = MAX_TERM_START + delta * SECONDS_IN_DAY;
				maxTerm = Math.floor(Math.min(newMax, MAX_TERM_END) / SECONDS_IN_DAY);
			} else {
				maxTerm = Math.floor(MAX_TERM_START / SECONDS_IN_DAY);
			}

			return maxTerm;
		}
    
    
    function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

function abbreviateNumber(num,digits) {
    let units = [' Thousand', ' Million', ' Billion', ' Trillion', ' Quadrillion', ' Quintillion', ' Sextillion', ' Yotta'];
    let floor = Math.floor(Math.abs(num).toString().length / 3);
    let value=+(num / Math.pow(1000, floor))
    return value.toFixed(value > 1?digits:2) + units[floor - 1];

}

	</script>
</head>

<body>
	<h1>Calculate XEN Max Term</h1>

	<div>
		<label>Global Rank:</label><br>
		<input type="range" min="0" max="10000000000000" step="1000" id="globalRankInput" value="5000">
		<input type="number" value="5000" min="0" max="10000000000000" step="1000" id="globalRankNumberInput">
	</div>

	<div>
		<label>Max Term:</label>
		<output id="maxTermOutput"></output>
	</div>

	<script>
		let globalRankInput = document.getElementById("globalRankInput");
		let globalRankNumberInput = document.getElementById("globalRankNumberInput");
		
		// Update value in input box when slider is moved
		globalRankInput.addEventListener("input", function() {
			globalRankNumberInput.value = globalRankInput.value;
		});
		
		globalRankNumberInput.addEventListener("input",...