﻿function totalCheck(form1){
	if(!checkNull(form1.answer,    '回答'))   return false;
	if(!isanswer(form1.answer,   '回答'))   return false;
  return true;
}

// 空白チェック
function checkNull(obj,msg){
  if(obj.value==''){
    alert(msg+'の入力は必須です');
    obj.focus();
    return false;
  }
  return true;
}

s_allowed='0123456789';            //    半角数字(ここに入っていない文字があったらエラー)。
s_allowed_zen='０１２３４５６７８９';    //    全角数字(上の文字列と対応するように並べる事)。
s_error='数字以外は入力出来ません！';    //    不正文字のエラーメッセージ。

function isanswer() {
    s_len=0;
    i=document.forms[0].answer.value;
    j='';
    //    全角文字を一文字と認識する環境。
    if ('あ'.length==1) {
        while (i!='') {
            k=i.substring(0,1);
            i=i.substring(1,i.length);
            //    全角数字なら半角に変換する。
            m=s_allowed_zen.indexOf(k); if (m>-1) k=s_allowed.substring(m,m+1);
            //    正しい数字か？
            if (s_allowed.indexOf(k)<0) { window.alert(s_error); return(false); }
            j+=k; ++s_len;
            }
        }
    //    全角文字を一文字と認識しない環境。
    else {
        while (i!='') {
            k=i.substring(0,1);
            i=i.substring(1,i.length);
            //    半角数字なら問題無い。
            if (s_allowed.indexOf(k)>-1) { j+=k; ++s_len; continue; }
            //    全角数字か調べ、そうなら半角に変換する。
            //    文字が残っていなければエラー。
            if (i=='') { window.alert(s_error); return(false); }
            //    もう一文字取り出す。
            k+=i.substring(0,1);
            i=i.substring(1,i.length);
            m=s_allowed_zen.indexOf(k);
            //    変換出来なかったらエラー。
            if (m<0 || (m & 1)!=0) { window.alert(s_error); return(false); }
            m>>=1;
            k=s_allowed.substring(m,m+1);
            j+=k; ++s_len;
            }
        }
    document.forms[0].answer.value=j;    //    半角化された文字列をフォームに与える。
    //    正常終了。
    return(true);
}