var validchars = "0123456789.";

function isvalid(c) { // charチェック--数字と小数点のみ
   if (validchars.indexOf(c) != -1) return true;
   return false;
}

function value_check(fform) { // 入力文字列のチェック
	var emsg = "\入\力\は\半\角\数\値\と\し\て\く\だ\さ\い\。\n\不\正\な\入\力\を\消\去\し\ま\す\。";
	var emsg2 = "\小\数\点\が\不\正\に\入\力\さ\れ\て\い\ま\す\。";
	var tstr = fform.value;
	var counter = 0;

	for (i=0;i<tstr.length;i++) {
		if(tstr.charAt(i) == '.'){
			counter++;
			if(counter > 1){
				alert(emsg2);
				fform.value = "";
				fform.focus();
				return false; 
			}
								
		}
		if ( isvalid(tstr.charAt(i)) ) continue;
         	alert(emsg);
		fform.value="";// 不正な入力をクリアし、フォーカスを与える
		fform.focus();
         	return false; }
}

///　メイン関数
function calc(){
	var emsg_n="\必\須\項\目\が\入\力\さ\れ\て\い\ま\せ\ん\。";
	var emsg_n2="\数\値\が\適\切\で\は\あ\り\ま\せ\ん\。";
	var weight=Number(document.cal_bmi.weight.value);
	var height=Number(document.cal_bmi.height.value);
	var bmi;
	var hyoujun;
	var sa;
	var buf= "";

	///必須入力チェック
	if(height == ""){
		alert(emsg_n);
		height.focus();
		}
	if(height < 50 || height > 250){
		alert(emsg_n2);
		height.focus();
		}
	if(weight == ""){
		alert(emsg_n);
		weight.focus();
		}
	if(weight < 10 || weight > 300){
		alert(emsg_n2);
		weight.focus();
		}

	///計算
	bmi = weight / height / height * 10000;
	bmi = Math.round(bmi * 100) / 100;
	hyoujun = height * height * 22 / 10000;
	hyoujun = Math.round(hyoujun * 100) / 100;
	sa = weight - hyoujun;
	sa = Math.round(sa * 100) / 100;
	document.cal_bmi.bmi.value = bmi;
	document.cal_bmi.hyoujun.value = hyoujun;
	document.cal_bmi.sa.value = sa;


}
