window.name="sub";

var NUM=10;               // 問題数

var shuffle=0;           // 問題の順番をランダムに 1:する、0:しない

var kaisetsu_type=1;     // 0:解説なし, 1:解説一覧のみ, 2:各問いに解説ボタンあり



var refresh=0;           // 試行ごとに refresh する:1 しない:0

var gokaku=40;           // 合格点（次の問題に進める）

var page_fwd=0;          // 1:合格点に達したら次に進む  0:何もしない

var nextfile=".html";       // 次のページのファイル名



// 変数初期化

var flg_kWin0=false;     // 結果window 開いているか

var flg_kWin1=false;     // 解説window

var flg_kWin2=false;     // 解説一覧window

var flg_try=false;       // 採点ボタンを押したか





// １次元配列作成

function MakeArray(n){

	this.length=n;

}



// ２次元配列作成

function DIM(dimx,dimy){

	var i;

	var myArray = new Array(dimy);

	for (i=0; i<=dimx; i++) myArray[i] = new Array(dimx);

	return myArray;

}



var q=new MakeArray(NUM);  // 問題文データ配列

var s=new MakeArray(2);    // 選択肢データ配列

var v=new MakeArray(NUM);  // 選択肢値　正解=1  不正解=0 

var c=new MakeArray(NUM);  // 選択したかどうかのチェック

var kd=new MakeArray(NUM); // 解説カードデータ配列





// 問題データ  s[]:選択肢, q[]:問題文, v[]:答え(1 or 0)

s[1]="YES";

s[2]="NO　";



q[1]="日本の血友病患者は約5,000人である。";

v[1]="1";

kd[1]="平成20年度の血液凝固異常症全国調査によると、およそ5,000人（血友病Ａが4,100人、血友病Ｂが900人）と報告されています。";


q[2]="血友病Ｂでは生まれつき凝固因子のなかの第IX因子が欠乏している。";

v[2]="1";

kd[2]="血友病Bでは第IX因子が欠乏しています。";



q[3]="インヒビターができると、それまでより止血が難しくなることがある。";

v[3]="1";

kd[3]="インヒビターとは輸注された凝固因子を体が異物とみなし、それを体から取り除こうとする物質（抗体）です。インヒビターができると輸注された凝固因子を中和して効果をなくしてしまいます。必ずしも出血の頻度が多くなるというわけではありませんが、一度出血すると、止血が難しくなるケースが多くあります。製剤の効き目が悪いと感じたときは、主治医に連絡しましょう。また、病院へ定期受診しインヒビターのチェックを日ごろから行ってくださいね。";



q[4]="鼻血がでたら必ず凝固因子製剤を注射する。";

v[4]="0";

kd[4]="凝固因子の補充は通常必要ありません。まずは、脱脂綿などを丸めたものを鼻につめて、鼻の両脇をしっかりとつまんでください。血液を飲み込むと気分が悪くなることがあるので、吐き出すようにしましょう。出血がひどいときや繰り返しおきるときは補充療法が必要になるときもあります。";



q[5]="関節内出血を繰り返すと関節の動きが悪くなりやすい。";

v[5]="1";

kd[5]="血友病性関節症とは関節内出血によっておきる慢性的な変化のことです。出血を繰り返すときは、定期補充療法などで再出血の悪循環を断ち切ることが重要です。また、日頃から定期的にレントゲン検査を行い関節の状態を評価しておくことも大切です。";



q[6]="首の周りの出血は製剤を投与せずに様子をみてもよい。";

v[6]="0";

kd[6]="首やのどの周りの出血は気管を圧迫し、窒息の危険があります。病院にすぐ連絡し適切な補充療法を行ってください。入院治療が必要なこともあります。";



q[7]="出血を防ぐためなるべく歯磨きをしないほうが良い。";

v[7]="0";

kd[7]="歯肉出血をこわがり歯磨きをしっかり行わないでいると、虫歯や歯槽膿漏になりやすく、むしろ出血しやすくなります。";


q[8]="血友病性関節症にはリハビリの処置も必要である。";

v[8]="1";

kd[8]="出血の急性期は安静が必要ですが、長期間に渡って関節を動かさないと周囲の筋力が弱くなり、返って出血しやすくなってしまいます。このような状態にならないように、出血が治まったあとに症状に合わせてリハビリテーションを行います。";



q[9]="凝固因子製剤の注射中に副作用（吐き気、発疹、かゆみ、呼吸困難など）がみられたら、すぐに注射を中止して病院に連絡する。";

v[9]="1";

kd[9]="すぐに病院に連絡をし、対処方法の指示を受けてください。こんなときのためにも家庭治療を行うときは電話をそばに置いておきましょう。";



q[10]="毎週同じ曜日に定期的に凝固因子製剤を投与しているので、輸注記録はつけなくてもよい。";

v[10]="0";

kd[10]="輸注記録は病院のカルテと同じくらい重要なものです。出血の経過や家庭内在庫状況も記録し、病院に定期的に提出してください。月に１回まとめて書いたりしないでくださいね！";






// n までの整数をランダムに発生  戻り値 x[]

function ransu(n) {
	var k=1, l,  bingo;
	var x=new MakeArray(NUM);



	x[k] = Math.floor(n * Math.random())+1;
	k++;
	while ( k<=n ) {
    	x[k] = Math.floor(n * Math.random())+1;
	    bingo = 0;
	    for (l=1; l<k; l++) {  // すでに同じ数字がないかチェック
	        if ( x[k] == x[l] ) { bingo=1; break; }
	    }
	    if (bingo==0) k++;  	// 同じ数字がなければ k++
	}
	return x;
}





// 正解数カウント用配列 a[] 初期化

var a=new MakeArray(NUM);
for (i=1;i<=NUM;i++) { a[i]=0; }



// radio button が押されたかどうかチェック用配列 c[] 初期化

for (i=1;i<=NUM;i++) {
    c[i] = false;
}



// radio button が選択されたときの処理

function radio1(parts) { c[1]=true; a[1]=parts.value; }
function radio2(parts) { c[2]=true; a[2]=parts.value; }
function radio3(parts) { c[3]=true; a[3]=parts.value; }
function radio4(parts) { c[4]=true; a[4]=parts.value; }
function radio5(parts) { c[5]=true; a[5]=parts.value; }
function radio6(parts) { c[6]=true; a[6]=parts.value; }
function radio7(parts) { c[7]=true; a[7]=parts.value; }
function radio8(parts) { c[8]=true; a[8]=parts.value; }
function radio9(parts) { c[9]=true; a[9]=parts.value; }
function radio10(parts) { c[10]=true; a[10]=parts.value; }

// 採点ボタンが押されたときの処理（結果window）

function kekka(f){

    // refresh モードのときはズルなし

    if (flg_try && refresh) { 

       result = confirm('はじめからやり直さないと採点できません。やり直しますか？');

       if (result) {

          location.reload();

          return;

       } else  return;

    }



    // 未回答の問題があったら確認する

    var kaito=0;
    for (i=1;i<=NUM;i++) { kaito += c[i]; }
    if (kaito != NUM) {
        result=confirm("まだ回答していない問題があります。このまま採点しますか？");
        if (!result) return;
    }



    // 結果データ処理
    var data="", seikai=0 ,j, i, yy, score;
    flg_try = true;
    data += "<html><head><title>結果</title></head>";
    data += "<body bgcolor=white text=black>";
    data += "<font size=4><b>採点結果です</b></font>";
    data += "<br><br><table border=1 cellspacing=0 cellpadding=5><tr>";
    for(i=1;i<=NUM;i++){
        j=x[i];
        data += "<td width=80 align=center bgcolor=#E6E6E6>問"+i;
        if (!c[j]) {
            data += "<td width=40 align=center bgcolor=white>　</font>";
        } else {
            if (a[j]==1) {
                data += "<td width=40 align=center bgcolor=white><font color=blue><b>○</b></font>";
            } else {
                data += "<td width=40 align=center bgcolor=white><font color=red><b>×</b></font>";
            }
        }
        if (i%5==0) {data += "<tr>";}
        seikai=seikai+eval(a[j]);      // 正解数をカウント
    }
    data += "</table><br>  <table><tr><td width=360><font color=green>";
    score = Math.floor(100*seikai/NUM+0.5);
    if (score != 100) data += NUM+"問中 "+seikai+"問正解";
    if (score == 100) data += "全問正解";
    data += "</font><br>"; 
	if (score < gokaku) data += "<font color=green> 解説もご覧になり再度トライしてみてください！</font>";
     if (score >= gokaku && score < 90) data += "<font color=green> もう少しです！解説も参考に、もう一度トライしてみてください。 </font>";
    if (score >= 90 && score < 100) data += "<font color=green> 満点まであと少し！他のテストも突破めざしぜひトライしてください！ </font>";
    if (score == 100) data += "<font color=red> 全問正解です！！他のテストも突破めざしぜひトライしてください！</font>";

    data += "<td width=120 nowrap><font size=7 color=red>" + score + "</font><font size=3 color=#000000>点</font>";
    data += "</table>";
    data += "<center><form>";

    if (score < gokaku && !refresh || score>=gokaku && !page_fwd) data += "<input type=button value='閉じる' onClick='window.close();'>";

    if (score < gokaku && refresh) data += " <input type=button onClick='window.opener.document.location.reload();' value='やり直し'>";

    if (score >= gokaku && page_fwd) data += "<input type=button onClick=window.opener.document.location='" + nextfile + "' value='次に進む'>";

    data += "</form></center></body></html>";



    flg_kWin0=1;
    yy=220+30*(Math.floor(NUM/5-0.1));
    kWin0=window.open("","kekkaWin","width=480,height=" + yy + ",toolbar=0,menubar=0,resizable=1,location=0,directories=0,status=0");

    kWin0.focus();
    kWin0.document.open();
    kWin0.document.write(data);
    kWin0.document.close();

}





// 解説一覧ボタンを押したときの処理

function kaisetsu_view() {
    flg_kWin1=1;
    var data="";
    data += "<html><head><title>解説一覧</title></head>";
    data += "<body bgcolor=#FFFFFF text=black>";
    data += "<dl>";

    for(i=1;i<=NUM;i++) {
        j = x[i];
        data += "<dt style='border-bottom:1px solid #E6E6E6;margin:0 0 20px 0;'><table cellpadding=3 align=left><td style='width:40px;border-top:1px solid #B6B6B6;border-left:1px solid #B6B6B6;border-right:2px solid #B6B6B6;border-bottom:2px solid #B6B6B6;background-color:#E6E6E6;font-size:12px;' align=center> 問" + i + "</table>";

        data += "<table><tr><td style='font-size:12px;'>" + kd[j] + "</table><p>";
    }

    data += "</dl><div align=center><input type=button value='閉じる' onClick='window.close();'></div></body></html>";
    kWin1 = window.open("","kWin1","width=500,height=400,scrollbars=1,resizable=1,directoies=0");
    kWin1.focus();
    kWin1.document.open();
    kWin1.document.write(data);
    kWin1.document.close();
}


// Unload したとき sub windowを閉じる

function byebye(){
    if (flg_kWin0 && !kWin0.closed) kWin0.close();
    if (flg_kWin1 && !kWin1.closed) kWin1.close(); 
    if (flg_kWin2 && !kWin2.closed) kWin2.close();
}



