<!doctype html>
<html>
<head>
<title>Bellows Browser Example</title>
<style>
form{
	clear: both;
}
form:after{
	display: block;
	content: " ";
}
label{
	width: 150px;
	display: inline-block;
}
form > div {
	width: 400px;
	float: left;
	margin: 20px 0;
}
img{
	width: 100%;
	height: auto;
	border: 1px solid #000;
}
button{
	margin: 10px 20px;
}
input{
	margin-top: 10px;
}
</style>
</head>
<body>
<h1>
	Bellows Pattern Generator
</h1>
<div>
	<a href="https://github.com/sixteenmillimeter/bellows">View Source</a>
</div>
<form onsubmit="return false;">
	<div>
		<div>
			<label for="backOW">Back Outer Width</label>
			<input name="backOW" type="number" value="50" /> mm
		</div>
		<div>
			<label for="backIW">Back Inner Width</label>
			<input name="backIW" type="number" value="40" /> mm
		</div>
		<div>
			<label for="backOH">Back Outer Height</label>
			<input name="backOH" type="number" value="50" /> mm
		</div>
		<div>
			<label for="backIH">Back Inner Height</label>
			<input name="backIH" type="number" value="40" /> mm
		</div>
	</div>
	<div>
		<div>
			<label for="frontOW">Front Outer Width</label>
			<input name="frontOW" type="number" value="50" /> mm
		</div>
		<div>
			<label for="frontIW">Front Inner Width</label>
			<input name="frontIW" type="number" value="40" /> mm
		</div>
		<div>
			<label for="frontOH">Front Outer Height</label>
			<input name="frontOH" type="number" value="50" /> mm
		</div>
		<div>
			<label for="frontIH">Front Inner Height</label>
			<input name="frontIH" type="number" value="40" /> mm
		</div>
		<div>
			<label for="fold">Fold Section</label>
			<input name="fold" type="number" value="5" /> mm
		</div>
	</div>
	<div>
		<div>
			<label for="pageW">Sheet Width</label>
			<input name="pageW" type="number" value="8.5" /> in
		</div>
		<div>
			<label for="pageH">Sheet Height</label>
			<input name="pageH" type="number" value="11" /> in
		</div>
		<div>
			<label for="dpi">DPI</label>
			<input name="dpi" type="number" value="300" />
		</div>
		<div>
			<label for="maxLength">Maximum Length</label>
			<input name="maxLength" type="number" value="200" /> mm
		</div>
		<div>
			<label for="parts">Seperate Parts</label>
			<input name="parts" type="number" value="1" min="1" max="4" /> 1, 2, or 4
		</div>
		<div>
			<label for="align">Adjust Alignment</label>
			<input name="align" type="number" value="0" min="0" />
		</div>
	</div>
</form>
<div>
	<button id="refresh" onclick="refresh();">Refresh</button>
	<button id="download" onclick="download();">Download</button>
</div>
<img id="img" />
<!--<script src="../src/bellows.js"></script>-->
<script src="../src/bellows.js"></script>
<script>
	'use script'
	const $ = function (select) {
		return document.querySelector(`[name="${select}"]`)
	}
	let B
	function refresh () {

		const IN = 25.4
		const DPI = $('dpi').value
		const MM = DPI / IN

		const pageW = Math.round($('pageW').value * DPI);
		const pageH = Math.round($('pageH').value * DPI);

		const backOW = Math.round($('backOW').value * MM);
		const backIW = Math.round($('backIW').value * MM);

		const backOH = Math.round($('backOH').value * MM);
		const backIH = Math.round($('backIH').value * MM);

		const frontOW = Math.round($('frontOW').value * MM);
		const frontIW = Math.round($('frontIW').value * MM);
		
		const frontOH = Math.round($('frontOH').value * MM);
		const frontIH = Math.round($('frontIH').value * MM);

		const maxLength = Math.round($('maxLength').value * MM);
		const fold = Math.round($('fold').value * MM);

		const align = Math.round($('align').value);
		let parts = Math.round($('parts').value);

		if (parts === 3 || parts > 4) {
			parts = 1
		}

		B = bellows(
			{
				dpi : DPI,

				pageW : pageW,
				pageH : pageH,

				backOW : backOW,
				backIW : backIW,
				backOH : backOH,
				backIH : backIH,
				frontOW : frontOW,
				frontIW : frontIW,
				frontOH : frontOH,
				frontIH : frontIH,
				fold : fold,

				maxLength : maxLength,
				parts : parts,
				align : align
			}
		);
		document.getElementById('img').setAttribute('src', B);
	}
	function download () {
		const a  = document.createElement('a');
	    a.href = B;
	    a.download = 'bellows.png';

	    a.click();
	}
	refresh()
</script>
</body>
</html