function aPak(a, b, c){
	this.Pos	= a;
	this.Word	= b;
	this.Mean	= c;
}
function makeHLanswer(){
	var i = 0;
	this[i++] = new aPak("A1:", "<ruby><rb>十年一日</rb><rp>(</rp><rt>ジュウネンイチジツ</rt><rp>)</rp></ruby>", "in the same old rut");
	this[i++] = new aPak("A3:", "<ruby><rb>静物画</rb><rp>(</rp><rt>セイブツガ</rt><rp>)</rp></ruby>", "still life");
	this[i++] = new aPak("A5:", "<ruby><rb>気道</rb><rp>(</rp><rt>キドウ</rt><rp>)</rp></ruby>", "airway");
	this[i++] = new aPak("A7:", "<ruby><rb>中心人物</rb><rp>(</rp><rt>チュウシンジンブツ</rt><rp>)</rp></ruby>", "pivotal player");
	this[i++] = new aPak("B6:", "<ruby><rb>義軍</rb><rp>(</rp><rt>ギグン</rt><rp>)</rp></ruby>", "voluntary army [=<ruby><rb>義勇軍</rb><rp>(</rp><rt>ギユウグン</rt><rp>)</rp></ruby>]");
	this[i++] = new aPak("C4:", "<ruby><rb>廊下</rb><rp>(</rp><rt>ロウカ</rt><rp>)</rp></ruby>", "hallway");
	this[i++] = new aPak("D2:", "<ruby><rb>光学</rb><rp>(</rp><rt>コウガク</rt><rp>)</rp></ruby>", "optics");
	this[i++] = new aPak("D5:", "<ruby><rb>流行作家</rb><rp>(</rp><rt>リュウコウサッカ</rt><rp>)</rp></ruby>", "popular writer");
	this[i++] = new aPak("E3:", "<ruby><rb><a href='javascript:fnShowRichMbox(0);' title='Click to view an Extended Description.'>派出所</a></rb><rp>(</rp><rt>ハシュツショ</rt><rp>)</rp></ruby>", "police booth [=<ruby><rb>交番</rb><rp>(</rp><rt>コウバン</rt><rp>)</rp></ruby>]");
	this[i++] = new aPak("F1:", "<ruby><rb>食事</rb><rp>(</rp><rt>ショクジ</rt><rp>)</rp></ruby>", "meal [スル<ruby><rb><MY:DEF TipID='M03' onmousedown='fnSetReading();' title='Click to view extended descripton for スル動詞'>動詞</MY:DEF></rb><rp>(</rp><rt>ドウシ</rt><rp>)</rp></ruby>]");
	this[i++] = new aPak("F7:", "<ruby><rb><a href='javascript:fnShowRichMbox(2);' title='Click to view an Extended Description.'>歯科</a></rb><rp>(</rp><rt>シカ</rt><rp>)</rp></ruby>", "dental surgery");
	this[i++] = new aPak("4K:", "<span style='color:red;'><ruby><rb>年中行事</rb><rp>(</rp><rt>????</rt><rp>)</rp></ruby></span>", "? ? ? ?");
	this.length = i;
}
function makeVLanswer(){
	var i = 0;
	this[i++] = new aPak("A3:", "<ruby><rb>静電気</rb><rp>(</rp><rt>セイデンキ</rt><rp>)</rp></ruby>", "static electricity");
	this[i++] = new aPak("B1:", "<ruby><rb>年代物</rb><rp>(</rp><rt>ネンダイもの</rt><rp>)</rp></ruby>", "vintage");
	this[i++] = new aPak("B5:", "<ruby><rb>道義心</rb><rp>(</rp><rt>ドウギシン</rt><rp>)</rp></ruby>", "moral sense");
	this[i++] = new aPak("C3:", "<ruby><rb><a href='javascript:fnShowRichMbox(3);' title='Click to view an Extended Description.'>画廊</a></rb><rp>(</rp><rt>ガロウ</rt><rp>)</rp></ruby>", "picture gallery");
	this[i++] = new aPak("C6:", "<ruby><rb>軍人</rb><rp>(</rp><rt>グンジン</rt><rp>)</rp></ruby>", "soldier");
	this[i++] = new aPak("D1:", "<ruby><rb>日光</rb><rp>(</rp><rt>ニッコウ</rt><rp>)</rp></ruby>", "sunlight");
	this[i++] = new aPak("D4:", "<ruby><rb>下流</rb><rp>(</rp><rt>カリュウ</rt><rp>)</rp></ruby>", "downstream [⇔<ruby><rb>上流</rb><rp>(</rp><rt>ジョウリュウ</rt><rp>)</rp></ruby>]");
	this[i++] = new aPak("E2:", "<ruby><rb>学派</rb><rp>(</rp><rt>ガクハ</rt><rp>)</rp></ruby>", "school // school of thought // sect");
	this[i++] = new aPak("E5:", "<ruby><rb><a href='javascript:fnShowRichMbox(4);' title='Click to view an Extended Description.'>行政</a></rb><rp>(</rp><rt>ギョウセイ</rt><rp>)</rp></ruby>", "administration");
	this[i++] = new aPak("F3:", "<ruby><rb>出世作</rb><rp>(</rp><rt>シュッセサク</rt><rp>)</rp></ruby>", "breakthrough work product");
	this[i++] = new aPak("G1:", "<ruby><rb><a href='javascript:fnShowRichMbox(1);' title='Click to view an Extended Description.'>事務所</a></rb><rp>(</rp><rt>ジムショ</rt><rp>)</rp></ruby>", "business office");
	this[i++] = new aPak("G5:", "<ruby><rb>家庭科</rb><rp>(</rp><rt>カテイカ</rt><rp>)</rp></ruby>", "home economics");
	this.length = i;
}
function fnAddHorizentalMeans(){
	var	HANS = new makeHLanswer();
	var	oList = document.createElement( "UL" );
	var	oLI;
	oList.style.listStyleImage = "url(rombul2a.gif)";
	for (var i=0; i<HANS.length; i++){
		oLI = document.createElement( "LI" );
		oLI.innerHTML = HANS[i].Pos + HANS[i].Word + " = " + HANS[i].Mean;
		oList.appendChild( oLI );
	}
	with(oAnswerTableH){
		appendChild( oList );
	}
}
function fnAddVerticalMeans(){
	var	VANS = new makeVLanswer();
	var	oList = document.createElement( "UL" );
	var	oLI;
	oList.style.listStyleImage = "url(rombul2a.gif)";
	for (var i=0; i<VANS.length; i++){
		oLI = document.createElement( "LI" );
		oLI.innerHTML = VANS[i].Pos + VANS[i].Word + " = " + VANS[i].Mean;
		oList.appendChild( oLI );
	}
	with(oAnswerTableV){
		appendChild( oList );
	}
}
function fnShowAllAnswers(){
	fnAddHorizentalMeans();
	fnAddVerticalMeans();
	oInstruct.style.display = "none";
	oHeadLine.style.left = 470;
	oCaps.innerText = "Interactive Kanji Crossword & 4-Kanji Idiom Game; Word Reading & Meanings";
	oAnswerTableH.style.display = "";
	with(oAnswerTableV.style){
		left = oAnswerTableH.offsetLeft + oAnswerTableH.offsetWidth + 15;
		display = "";
	}
}

var gbGameStart = false;
var gdGameInterval;
var	gdGameStartTime;
var	gdGameEndTime;
var	gdGameElapsteTime;
var	gdHH;
var	gdMM;
var	gdSS;
var	gdMS;

function fnElapsteTimer( bTimerFlag ){
	if (!gbGameStart){
		gbGameStart = true;
		gdGameStartTime = new Date();
		gdGameInterval = setInterval("fnElapsteTimer( true )", 1);
	} else {
		if ( !bTimerFlag ){
			clearInterval( gdGameInterval );
		}

		gdGameEndTime = new Date();

		gdGameElapsteTime = gdGameEndTime.getTime() - gdGameStartTime.getTime();
      	gdHH = Math.floor(gdGameElapsteTime/(60 * 60 * 1000));

      	gdGameElapsteTime = gdGameElapsteTime - (gdHH * 60 * 60 * 1000);
      	gdMM = Math.floor(gdGameElapsteTime/(60 * 1000));

      	gdGameElapsteTime = gdGameElapsteTime - (gdMM * 60 * 1000);
      	gdSS = Math.floor(gdGameElapsteTime/1000);

      	gdMS = gdGameElapsteTime % 1000;

      	gdHH = ((gdHH < 10) ? ("0" + gdHH) : gdHH);
      	gdMM = ((gdMM < 10) ? ("0" + gdMM) : gdMM);
      	gdSS = ((gdSS < 10) ? ("0" + gdSS) : gdSS);
      	if (gdMS < 10){
			gdMS = "00" + gdMS;
		} else if (gdMS < 100){
			gdMS = "0" + gdMS;
		}
      	oElpTimer.value = gdHH + ":" + gdMM + ":" + gdSS + ":" + gdMS;
	}
}
