<!--//

//------------------------------------------------------------
//ツライチ計算式
//------------------------------------------------------------

//初期値設定
function Start()
{
	//初期値設定
	var in1 = "入力してください";
	var in2 = "入力してください";
	var in3 = "入力してください";
	var in4 = "入力してください";
	var out1 = "0";
	var out2 = "0";
	var out3 = "0";
	var out4 = "0";

	//表示
	document.frm.in1.value = in1;
	document.frm.in2.value = in2;
	document.frm.in3.value = in3;
	document.frm.in4.value = in4;

	outx1.innerText = out1; 
	outy1.innerText = out2;
	outx2.innerText = out3; 
	outy2.innerText = out4;

	//計算
    //cal();
	//フォーカス
	//document.frm.in1.focus();

}

//計算
function cal(){
	var outx,outy;
	var comx,comy;

	//値取得
	var get1,get2,get3,get4;

	//入力チェック 	数値、マイナスなし、小数点は１桁
	//現在のリム幅
	if(!MinusCheck(document.frm.in1)) return;
	if(!cmnChkNum(document.frm.in1, 10, 1, 1)) return;
	//交換リム幅
	if(!MinusCheck(document.frm.in2)) return;
	if(!cmnChkNum(document.frm.in2, 10, 1, 1)) return;

	//入力チェック  数値、マイナスあり、小数点はなし
	//現在のオフセット(ミリ）
	var def3 = document.frm.in3.value;
	if(cmnChkNull(def3)) {
		cmnShowErr('必須入力項目です', document.frm.in3);
		return;
	}
	//alert(def3);
	var in3_b = Math.abs(document.frm.in3.value);
	document.frm.in3.value = in3_b;
	if(!cmnChkNum(document.frm.in3, 10, 0, 1)) {
		document.frm.in3.value = def3;
		return;
	}
	document.frm.in3.value = def3;
	//交換オフセット(ミリ）
	var def4 = document.frm.in4.value;
	if(cmnChkNull(def4)) {
		cmnShowErr('必須入力項目です', document.frm.in4);
		return;
	}

	var in4_b = Math.abs(document.frm.in4.value);
	document.frm.in4.value = in4_b;
	if(!cmnChkNum(document.frm.in4, 10, 0, 1)) {
		document.frm.in4.value = def4;
		return;
	}
	document.frm.in4.value = def4;

	get1 = document.frm.in1.value;
	get2 = document.frm.in2.value;
	get3 = document.frm.in3.value;
	get4 = document.frm.in4.value;
	
	//値計算
	outx = ( get2 * 25.4 - get1 * 25.4 ) / 2 - ( get4 - get3 );
	outy = (get1 * 25.4 / 2 + parseFloat(get3)) - ( get2 * 25.4 / 2 + parseFloat(get4) );
	
	//表示
	//alert( outx + " : " +  outy);
	outx1.innerText = roundNum(outx,2); 
	outy1.innerText = roundNum(outy,2);
	
	if(outx == 0){
		comx = "0";  //　！！←0のときのフェンダー側(ミリ）コメントです
	}else{
		if(outx < 0 ) {
			comx = "内側に入る";
		}else{
			comx = "外側に出る";
		}
	}

	if(outy == 0){
		comy = "0";  //　！！←0のときのボディー側(ミリ）コメントです
	}else{
		if(outy < 0 ) {
			comy = "スプリングに近づく";
		}else{
			comy = "スプリングから離れる";
		}
	}
	//小数点第２位を四捨五入、小数点は１桁
	outx2.innerText = comx; 
	outy2.innerText = comy;

	document.frm.btn.focus();

}

/********************************************************************/
//　四捨五入
/********************************************************************/

function clearTxt(ob){
	if(ob.value == "入力してください"){
		ob.value = "";
		ob.focus();
	}
}


/********************************************************************/
//　四捨五入
/********************************************************************/
function roundNum(num,keta)	{
	var chKeta = Math.pow(10,keta)
	var tmp_num = num*chKeta
	var tmp_result = Math.round(tmp_num)
	var result = tmp_result/chKeta
	return result
}

/********************************************************************/
//　マイナス文字チェック
/********************************************************************/
function MinusCheck(obj){
	var s,s1;
	
	s = obj.value;
	//マイナス入力チェック
	var nn = s.indexOf("-");
	if(nn >= 0){
        //alert("数値の入力が不正です。\n" + obj.value);
        alert("数値の入力が不正です。\n");
		obj.focus();
        return false;
	}
	return true;

}

/********************************************************************/
/*	cmnChkNum(o1, n1, n2, f1)
	【機能】
		テキストボックスに入力された数値をチェックする
		負の数の入力は許可しない
		ゼロサプレスする
		結果が falseだった場合はエラーメッセージを表示し、 o1のオブジェクトへフォーカスを移動する
	【引数】
		o1	チェックするオブジェクト
		n1	入力可能桁数（整数部）
		n2	入力可能桁数（小数部）
		f2	必須入力判断
			(0...必須入力ではない 1...必須入力)
	【戻り値】
		入力値が条件に合った場合に true
		合わなかった場合は false
*/
/********************************************************************/
function cmnChkNum(o1, n1, n2, f1) {
	
	//alert("cmnChkNum");
	var NUMCHR = "0123456789";
	var s = o1.value;
	// 必須入力チェック
	if (cmnChkNull(s)) {
		if (f1 != 0) {
			cmnShowErr('数値を入力してください', o1);
			return(false);
		}
		return(true);
	}

/*
	// マイナス記号チェック
	var n = 1;
	if (s.substr(0, 1) == "-") {
		n = -1;
		s = substr(1);
	}
*/

	// 小数点チェック
	var nn = s.indexOf(".");
	if (s.lastIndexOf(".") != nn) {
		// 小数点が２つあった
		cmnShowErr('数値の入力が不正です', o1);
		return(false);
	}

	// 整数部・小数部に分解
	var ss1 = s;
	var ss2 = "";
	switch(nn) {
		case -1:
			// 小数点なし
			break;
		case s.length:
			// 最後に小数点
			ss1 = s.substr(0, s.length - 1);
			break;
		case 0:
			// 最初に小数点
			ss1 = "";
			ss2 = s.substr(1);
			break;
		default:
			// 途中に小数点
			var ss = s.split(".");
			ss1 = ss[0];
			ss2 = ss[1];
			break;
	}
	// 文字種チェック
	if (!cmnChkAllowedChr(ss1, NUMCHR)) {
		cmnShowErr('数値の入力が不正です', o1);
		return(false);
	}
	if (!cmnChkAllowedChr(ss2, NUMCHR)) {
		cmnShowErr('数値の入力が不正です', o1);
		return(false);
	}

	// 不要０の除去
	var b = false;
	for (i = 0; i < ss1.length; i++) {
		if (ss1.substr(i, 1) != "0") {
			b = true;
			ss1 = ss1.substr(i);
			break;
		}
	}
	if (!b) {
		ss1 = "0";
	}

	b = false;
	for (i = ss2.length; i > 0; i--) {
		var j = i - 1;
		if (ss2.substr(j, 1) != "0") {
			b = true;
			ss2 = ss2.substr(0, i);
			break;
		}
	}
	if (!b) {
		ss2 = "";
	}

	// 文字列長チェック
	if (ss1.length > n1 || ss2.length > n2) {
		var ss = "整数 " + n1 + "桁まで、小数";
		if (n2 > 0) {
			ss += " " + n2 + "桁まで";
		} else {
			ss += "なし";
		}
		ss += "で入力してください";
		cmnShowErr(ss, o1);
		return(false);
	}

	// フォーマット
	s = ss1;
	if (ss2 != "") {
		s += "." + ss2;
	}
	o1.value = s;

	return(true);
}

/********************************************************************/
/*	cmnChkNull(s1)
	【機能】
		文字列がnullかをチェックする
	【引数】
		s1	チェックする文字列
	【戻り値】
		s1が null、もしくは長さ０の文字列だった場合に true
		以外は false
*/
/********************************************************************/
function cmnChkNull(s1) {
	if (s1 == null || s1 == "") {
		return(true);
	}
	return(false);
}

/********************************************************************/
/*	cmnShowErr(s1, o1)
	【機能】
		エラーメッセージをダイアログで表示し、その項目にフォーカスを移動する
	【引数】
		s1	エラーメッセージ
		o1	項目
	【戻り値】
		なし
*/
/********************************************************************/
function cmnShowErr(s1, o1) {
	alert(s1);
	//alert(s1 + "\n :" + o1.value);
	
	//o1.focus();
}

/********************************************************************/
/*	cmnChkAllowedChr(s1, s2)
	【機能】
		s1の全ての文字が s2のどれかの文字に当てはまるかチェックする
	【引数】
		s1	チェックする文字列
		s2	許されている文字群
	【戻り値】
		全ての文字が当てはまった場合に true
		以外は false
*/
/********************************************************************/
function cmnChkAllowedChr(s1, s2) {
	for (i = 0; i < s1.length; i++) {
		var s = s1.substr(i, 1);
		if (s2.indexOf(s) < 0) {
			return(false);
		}
	}
	return true;
}


//-->
