function convert () {
	var inputValue = Number(document.forms['converter'].focallength.value);
	var resultMessage = '';

	if (inputValue) {
		var d35mm = Math.sqrt(Math.pow(36, 2) + Math.pow(24, 2));

		if (document.getElementById('image-size-x') && document.getElementById('image-size-y')) {
			var diagonal = Math.sqrt(Math.pow(document.getElementById('image-size-x').firstChild.nodeValue, 2) + Math.pow(document.getElementById('image-size-y').firstChild.nodeValue, 2));
			var magnification = diagonal / d35mm;
		}
		else if (document.getElementById('focal-length') && document.getElementById('focal-length-35mm')) {
			var cameraFocalLength = document.getElementById('focal-length').firstChild.nodeValue;
			var focalLength35mm = document.getElementById('focal-length-35mm').firstChild.nodeValue;
			var magnification = cameraFocalLength / focalLength35mm;
			var diagonal = cameraFocalLength / focalLength35mm * d35mm;
		}

		if (document.forms['converter'].unit.selectedIndex == 0) {
			var d = Math.round(Math.atan(diagonal / 2 / inputValue) * 2 * 180 / Math.PI);
			resultMessage = Math.round(inputValue / magnification) + 'mm相当' + ' 画角' + d + '°';
		}
		else {
			if (inputValue > 180) {
				alert('180以下の数値を半角数字で入力してください。');
			}
			else {
				var f = Math.round(getFocalLength(diagonal, inputValue));
				var f35mm = Math.round(getFocalLength(d35mm, inputValue));
				resultMessage = f + 'mm（' + f35mm + 'mm相当）';
			}
		}

		if (resultMessage) {
			document.getElementById('result').firstChild.nodeValue = resultMessage;
		}
	}
	else {
		alert('0より大きな数値を半角数字で入力してください。');
	}
}

function changeUnit (x) {
	var unitNode = document.getElementById('unit').firstChild;
	switch (x.selectedIndex) {
		case 0: unitNode.nodeValue = ('mm'); break;
		case 1: unitNode.nodeValue = ('°'); break;
	}
	document.forms['converter'].focallength.focus();
}

function getFocalLength (x, y) {
	return x / 2 / Math.tan(y / 2 * Math.PI / 180);
}

function autoFocus () {
	document.forms['converter'].focallength.focus();
}

