// ------------------------------------------------------------
//  レンズ計算
//                              author : M.Takeuchi@SELCO
//    対応イメージセンサーサイズ：
//      1/2インチ  横6.4mm × 縦4.8mm
//      1/3インチ  横4.8mm × 縦3.6mm
//      1/4インチ  横3.6mm × 縦2.7mm
// ------------------------------------------------------------
// ロード時の初期設定
function iniLenscalc(){
	var itxt = new Array(0);
	var ival = new Array(0);

	/* イメージセンサーサイズ Table */
	xx = new Array(0);
	xx[0] = new Array("---","W","H");
	xx[1] = new Array("1/2","6.4","4.8");
	xx[2] = new Array("1/3","4.8","3.6");
	xx[3] = new Array("1/4","3.6","2.7");

	/* イメージセンサー選択項目 */
	itxt = new Array("1/2","1/3","1/4");
	ival = new Array("1/2","1/3","1/4");
	createSelection(document.f_lenscalcf.isize, ival, itxt);
	createSelection(document.f_lenscalcobj.isize, ival, itxt);
	/* 1/3インチを初期設定に */
	document.f_lenscalcf.isize.selectedIndex = 1;
	document.f_lenscalcobj.isize.selectedIndex = 1;
}
// レンズ計算処理F
function exeLenscalcF(form){
	var i, j;
	var isize, objlen, objhw, objsize;
	var isizeWmm, isizeHmm, isizeDmm;
	var isizemm, focal;

	/* form部品の値を取り込み */
	isize = form.isize.options[form.isize.selectedIndex].value;
	objlen = form.objlen.value;
	objhw = form.objhw.options[form.objhw.selectedIndex].value;
	objsize = form.objsize.value;

	/* イメージセンサーのサイズを取り込み */
	for (i = 0; i < xx.length; i++){
		if (isize == xx[i][0]){
			isizeWmm = xx[i][1];
			isizeHmm = xx[i][2];
		}
	}
	/* イメージセンサーの対角サイズ算出 */
	isizeDmm = Math.sqrt(Math.pow(isizeHmm,2) + Math.pow(isizeWmm,2))

	if (objhw == "H"){
		isizemm = isizeHmm;
	}else{
		isizemm = isizeWmm;
	}

	/* 焦点距離算出 */
	focal = (objlen * isizemm / objsize).toFixed(2);

	/* form部品に値を代入 */
	form.calcresultF.value = focal;
	form.anglew.value = anglecalc(focal, isizeWmm);	/* 水平画角 */
	form.angleh.value = anglecalc(focal, isizeHmm);	/* 垂直画角 */
	form.angled.value = anglecalc(focal, isizeDmm);	/* 対角画角 */

	/* form部品に値を代入（正しく計算できない場合） */
	if (isNaN(objlen) || objlen == 0){
		form.calcresultF.value = "";
		form.anglew.value = "";
		form.angleh.value = "";
		form.angled.value = "";
	}
	if (isNaN(objsize) || objsize == 0){
		form.calcresultF.value = "";
		form.anglew.value = "";
		form.angleh.value = "";
		form.angled.value = "";
	}
}
// レンズ計算処理OBJ
function exeLenscalcOBJ(form){
	var i;
	var isize, objlen, focal;
	var isizeWmm, isizeHmm, isizeDmm;

	/* form部品の値を取り込み */
	isize = form.isize.options[form.isize.selectedIndex].value;
	objlen = form.objlen.value;
	focal = form.focal.value;

	/* イメージセンサーのサイズを取り込み */
	for (i = 0; i < xx.length; i++){
		if (isize == xx[i][0]){
			isizeWmm = xx[i][1];
			isizeHmm = xx[i][2];
		}
	}
	/* イメージセンサーの対角サイズ算出 */
	isizeDmm = Math.sqrt(Math.pow(isizeHmm,2) + Math.pow(isizeWmm,2))

	/* form部品に値を代入 */
	form.calcresultW.value = (objlen * isizeWmm / focal).toFixed(2);
	form.calcresultH.value = (objlen * isizeHmm / focal).toFixed(2);
	form.anglew.value = anglecalc(focal, isizeWmm);	/* 水平画角 */
	form.angleh.value = anglecalc(focal, isizeHmm);	/* 垂直画角 */
	form.angled.value = anglecalc(focal, isizeDmm);	/* 対角画角 */

	/* form部品に値を代入（正しく計算できない場合） */
	if (isNaN(objlen) || objlen == 0){
		form.calcresultW.value = "";
		form.calcresultH.value = "";
		form.anglew.value = "";
		form.angleh.value = "";
		form.angled.value = "";
	}
	if (isNaN(focal) || focal == 0){
		form.calcresultW.value =  "";
		form.calcresultH.value =  "";
		form.anglew.value = "";
		form.angleh.value = "";
		form.angled.value = "";
	}
}
// 画角計算処理
function anglecalc(f,x){
	return(((180 / Math.PI) * 2 * Math.atan(x / (2 * f))).toFixed(2));
}

