﻿
	//数値チェック用マッチングオブジェクト
	IsNumeric = new RegExp('[0-9]*');

	//Unicode 全角数字
	var ZenNumber = new Array("\uFF10","\uFF11","\uFF12","\uFF13","\uFF14",
					"\uFF15","\uFF16","\uFF17","\uFF18","\uFF19");
	var ColorValue = new Array('#0000ff','#0080ff','#00c0ff','#00ffff',
					'#00ffc0','#00ffa0','#00ff80','#00ff00',
					'#80ff00','#a0ff00','#c0ff00','#ffff00',
					'#ffc000','#ff8000','#ff0000','#000000');

	//フィールドパラメータ
	UseImgWidth = 48;		//CONST
	UseImgHeight = 48;		//CONST
	UseImgCount = 16;		//CONST
	Cnt_Max = 128;		//CONST 1次元配列に確保
	FarMove_Max = 48;		//CONST 上下最大揺動巾
	FarOmega_Max = 5;		//CONST 揺動最大角速度
	MoveVect_Max = 2;		//CONST 最大移動ベクトル
	Update_Interval = 250;	//CONST 描画更新間隔 mmSec
	DataReqCount = 120; 	//CONST データリクエスト間隔  Update_Interval*DataReqCount mmSec
	EmptyColorNo = 15;
	ImgPangIndex = UseImgCount;
	ImgInitIndex = ImgPangIndex+1;
	ImgTakaraIndex = ImgInitIndex+1;

	SoundFlag = false;
	ShowRuleFlag = true;

	ResPageCnt = 0;		//結果ページの表示枚数

	//状態パラメータの初期化
	L = 0;			//階層
	H = '';		//履歴
	C = ''; 		//選択
	startflag = 0;	//初期状態フラグ
	reqflag = '';	//要求種フラグ
	TimerCount = DataReqCount + 100;
	Updating = 0;		//更新中フラグ
	Browser = 0;			//ブラウザの判定  MOZ,NN6,IE5:0 IE4:1 NN4:2 

	APangQue = new Array();	//タイムアウト更新時に変更になった色の処理用キュー (index,colirNo) のセット
	ARestoreIndex = undefined;
	APangIndex = undefined;
	APangColor = undefined;
	StockRestoreID = undefined;
	StockRestoreColor = undefined;

	UpperObjTop = 100 + FarMove_Max/2;
	UpperObjWidth = 700;	//ADJUST
	UpperObjHeidht = 400;	//ADJUST
	Offset_X = 0;		//ADJUST
	Offset_Y = 0;		//ADJUST
	var wndX, wndY, oStage, oChallenge;
	TryStageFlag = false;
	oElms = new Array();
	oSelTD = new Array();

	CounterCount = new Array();

	//イメージオブジェクトの描画情報確保構造体
	//typedef struct DRAWINFO {
	//	int pntX;
	//	int pntY;
	//	int DirectX;
	//	int DirectY;
	//	int FarMoveWidth;
	//	int FarMoveFase;
	//	int ColorIndex;
	//} DrawInfo;
	Struct_Cnt = 9;
	DInfo = new Array(Struct_Cnt);	//処理用確保配列

	pntX = 0;
	pntY = 1;
	DirectX = 2;
	DirectY = 3;
	FarMoveWidth = 4;
	FarMoveFase = 5;
	FaseInc = 6;
	ColorIndex = 7;
	Alt = 8;

	OnlyMovement = 9999;
	ResultPageData = new Array();
	RefreshFlag = 0;

	//リクエスト送信
	function setData(data, FileName)
	{
		sendRequest(onloaded,data,'GET',FileName,true,true);
	}

	//受信時処理
	function onloaded(res)
	{
		//受信
		var data = res.responseText;

		if(PageID.indexOf('debug-d') >= 0) { alert(data); }

		//処理関数呼び出し
		DocUpdate2(data);
	}

	//ウインドウサイズ
	function GetWndSize() {
		if(document.all) {
			wndX = document.body.clientWidth;
			wndY = document.body.clientHeight;
		} else {
			wndX = window.innerWidth;
			wndY = window.innerHeight;
		}
		UpperObjWidth = wndX - UseImgWidth;
		var str = oElmT.style.height;
		var val = str.substr(0,str.indexOf("px"));
		UpperObjHeight = wndY - UseImgHeight - FarMove_Max/2 - val;
		if(UpperObjHeight < UseImgHeight) { UpperObjHeight = UseImgHeight; }
	}

	//データを取得し、画面更新
	function DocUpdate(addParam) {
		//データ要求URLを取得
		var sURL = 'cgi/takara.cgi';
		var sData = '&L='+L+'&C='+C+'&H='+H+'&PID='+PageID;
		if(addParam != '') {
			sData += '&T=1';
		}
		//データ要求リクエスト送信
		setData(sData, sURL);
	}
	function DocUpdate2(data) {
		//データ受信関数から受信後に呼び出される処理関数

		//# データ型式： バッククオート区切り
		//# ResultFlg`TryStageFlg`TodayLastFlg`L`H
		//		`ColorData`ResultData`挑戦回数;ランキング `TextStr
		//# ResultFlag=(0：データのみ要求、1；クリックによる要求→NEXT、2：クリックによる要求→Result)
		//# ResultData="AtariFlag,AtariID-1,AtariID-2,$ENV{'REMOTE_ADDR'},$AKind"

		var strArray = new Array();
		var strAtari = new Array();

		strArray = data.split('`');
		
		if(strArray[4]) {
			L = strArray[3];
			H = strArray[4];
		} else {
			L = 0;
			H = '';
		}
		C = '';
		var DataKinds = strArray[0];
		var ColorData = strArray[5];
		var CounterData = strArray[8];

		if(strArray[1] == 1) { 
			TryStageFlag = true; 
		} else {  
			TryStageFlag = false; 
		}

		var argv = new Array();

		if(DataKinds==2) {
			ResultPageData[1] = strArray[2];
			ResultPageData[2] = '';
			ResultPageData[3] = '';
			ResultPageData[4] = window;
			ResultPageData[9] = CounterData;

			if(strArray[6] == '') {
				//規定回数オーバー
				ResultPageData[0] = '';
				ResultPageData[5] = '';
				ResultPageData[6] = '';
				ResultPageData[7] = '';
				ResultPageData[8] = '';
			} else {
				strAtari = strArray[6].split(',');
				ResultPageData[0] = strAtari[0];
				ResultPageData[5] = strAtari[1];
				ResultPageData[6] = strAtari[2];
				ResultPageData[7] = strAtari[3];
				ResultPageData[8] = strAtari[4];

			}
			ResPageCnt++;	//表示枚数のインクリ
			document.getElementById('chk').innerHTML
					= '<span style="font-size:16px:font-weight:bold;">'
					+ ResPageCnt + '</span> <span style="font-size:12px;">'
					+ '（結果表示枚数）</span>';
			showModelessDialog('ResultDlg.html',ResultPageData,
						'dialogwidth:500px;dialogheight:650px;');
		}

		//挑戦回数の表示
		if(strArray[7]) {
			var strCh = strArray[7].split(';');
			if(strCh[0]) {
				var ChCnt=strCh[0].split('-');
				var rest= ChCnt[1] - ChCnt[0];
				var tdycnt = '<table align="right"><tr><td align="right" nowrap'
					+' style="margin-right:5px;font-size:14px;"'
					+'>接続 IP アドレス</td><td nowrap style="font-size:14px;">'
					+ ResultPageData[7] +'</td></tr><tr><td align='
					+'"right" nowrap style="margin-right:5px;font-size:14px;">'
					+'本日挑戦回数</td><td nowrap style="font-size:14px;">'
					+ ChCnt[0] +'回（残り '+ rest +'回）</td></tr></table>';
				oElmChall.innerHTML = tdycnt;
			}
			if(strCh[1]) {
				var RankArray = strCh[1].split('-');

				oeRankToday1.innerHTML = RankArray[0];
				oeRankToday2.innerHTML = RankArray[1];
				oeRankToday3.innerHTML = RankArray[2];
				oeRankTotal1.innerHTML = RankArray[3];
				oeRankTotal2.innerHTML = RankArray[4];
				oeRankTotal3.innerHTML = RankArray[5];
			}
		}

		//宝捜しオブジェクトの描画
		DrawObject(ColorData, DataKinds, CounterData);

	}

	//宝捜しオブジェクトの描画
	function DrawObject(data, kinds, CountData) {
		var n;
		if(startflag == 0) {
			startflag = 2;

			//描画情報構造体の作成
			DrawInfo = new Array(Cnt_Max);
			for(n=0;n<Cnt_Max;n++) {
				DrawInfo[n] = new Array(Struct_Cnt);
				//描画情報構造体の設定
				CreateDrawInfo(n);
			}
			startflag = 1;
		}
		//全てのイメージを更新する
		if(startflag == 1) {
			//img タグの Elements を取得
			//全てのimgタグ要素を処理
			var Elm, index;

			//data=='' なら、処理用キューのチェックおよび処理値のセット
			if(data == '') {
				//Restore Index
				if (StockRestoreID != undefined) {
					ARestoreIndex = StockRestoreID;
					APangColor = StockRestoreColor;
				} else {
					ARestoreIndex = undefined;
					APangColor = undefined;
				}

				//Change Pang Index
				var qIndex = APangQue.pop();
				if(qIndex != undefined) {
					APangIndex = qIndex;
					StockRestoreColor = APangQue.pop();
					StockRestoreID = qIndex;
				} else {
					APangIndex = undefined;
					StockRestoreID = undefined;
					StockRestoreColor = undefined;
				}
			}

			if(data != '') {
				var n;
				var StageText='<p align="center"><strong>';
				if(H != '') {
					StageText += 'エリア  '+H+'　　';
				}
				if(TryStageFlag) {
					StageText +='<span style="color:#ff0000;">'
						+'チャレンジステージ</span></strong></p>';
				} else {
					StageText +='地域を選択せよ ('
						+ConvertZenNumber(parseInt(L)+1)+')</strong></p>';
				}
				oStage.innerHTML=StageText;

				if(CountData!='' && CountData!=null && CountData!=undefined) {
					var CountArray = CountData.split(",");
					for(n=0;n<CountArray.length;n++) {
						CounterCount[n]=CountArray[n];
					}
					fnCounterRefresh();
				}
			
				//チャレンジステージなら風船移動更新、違うなら地図選択
				if(TryStageFlag) {
					oSelector.style.visibility = "hidden";
					for(n=0;n<oElms.length;n++) {
						oSelTD[n].style.visibility="hidden";
						oElms[n].style.visibility="visible";
					}
					//背景の更新
					var oBgimg = document.getElementById('bgimg');
					oBgimg.src="image/background2.gif";
					oBgimg.style.filter="Alpha(opacity=50)";
				} else {
					oSelector.style.visibility = "visible";
					for(n=0;n<oElms.length;n++) {
						oSelTD[n].style.visibility="visible";
						oElms[n].style.visibility="hidden";
					}
					//背景の更新
					var oBgimg = document.getElementById('bgimg');
					oBgimg.src="image/bgmap"+(parseInt(L)+1)+".jpg";
					if(L==0) {oBgimg.style.filter="";}
					else {oBgimg.style.filter="Alpha(opacity=50)";};

					//セレクターの描画
					MakeSelector(data);
				}
			}

			//風船移動更新
			if(TryStageFlag) {
				for(n=0;n<oElms.length;n++) {
					ImgUpdate(oElms[n], n, data, kinds);
				}
			}
		}
	}

	function CreateDrawInfo(index) {
		//乱数を使用して描画情報を作成
		DInfo = DrawInfo[index];
		DInfo[pntX] = Math.random() * UpperObjWidth;
		DInfo[pntY] = Math.random() * UpperObjHeight + UpperObjTop;
		var value1 = BothRandom(MoveVect_Max);
		var value2 = BothRandom(MoveVect_Max);
		DInfo[DirectY] = value1 / 2;
		var sign = (value1 * value2 < 0) ? -1: 1;
		DInfo[DirectX] = value2 + sign * value1;
		DInfo[FarMoveWidth] = Math.random() * FarMove_Max;
		DInfo[FarMoveFase] = BothRandom(180);
		DInfo[FaseInc] = BothRandom(FarOmega_Max);
		DInfo[ColorIndex] = ImgInitIndex;
		DInfo[Alt] = 'No'+index;
	}
	function BothRandom(XaxVal) {
		return((Math.random() * 2 - 1) * XaxVal);
	}

	function MoveTarget(index, flag) {
		var pnt, Direct, ULimit, LLimit;
		DInfo = DrawInfo[index];
var InValidFlag = (DInfo[ColorIndex] == EmptyColorNo);
		if(flag == 'F') {
if(InValidFlag) { return(DInfo[FarMoveWidth]); }
			DInfo[FarMoveFase] += DInfo[FaseInc];
			if(180 < DInfo[FarMoveFase]) { 
				DInfo[FarMoveFase] -= 360; 
			} else if(DInfo[FarMoveFase] < -180) {
				DInfo[FarMoveFase] += 360;
			}
			var valsin = Math.sin(DInfo[FarMoveFase] * Math.PI / 180);
			return(Math.floor(DInfo[FarMoveWidth] * valsin));
		} else {
if(InValidFlag) { 
	if(flag == 'X') {
		return(DInfo[pntX]); 
	} else {
		return(UpperObjHeight + UseImgHeight/4);
	}
}
			if(flag == 'X') {
				pnt=pntX;	
				Direct=DirectX;
				ULimit = UpperObjWidth;
				LLimit = 0;
			} else {
				pnt=pntY;	
				Direct=DirectY;
				ULimit = UpperObjHeight;
				LLimit = UpperObjTop;
			}
			DInfo[pnt] += DInfo[Direct];
			if(DInfo[pnt] < LLimit) {
				DInfo[pnt] = Math.abs(DInfo[pnt]);
				DInfo[Direct] *= -1;
			} else if(ULimit < DInfo[pnt]){
				DInfo[pnt] -= 2 * (DInfo[pnt] - ULimit);
				DInfo[Direct] *= -1;
			}
			return(DInfo[pnt]);
		} 	
	}

	function ChangeImg(elm, DInfo, CIndex, index) {
		DInfo[ColorIndex] = CIndex;
		var imgind = index % (UseImgCount-1);
		if(CIndex!=0) { 
			elm.src = imgopened[imgind].src;
		} else {
			elm.src = imgv[imgind].src;
		}
		if(CIndex == EmptyColorNo) {
			elm.style.filter="";
			elm.style.zIndex=-3;
		} else {
			elm.style.filter="";
			elm.style.zIndex=1;
		}
	}

	function ImgUpdate(elm, index, data, kinds) {
		DInfo = DrawInfo[index];
		//移動先の算出
		var NewX = MoveTarget(index, 'X');
		var NewY = MoveTarget(index, 'Y') + MoveTarget(index, 'F');
		elm.style.left = NewX;
		elm.style.top = NewY;
		if(data != '') {
		//カラー変更のチェック
			var CIndex = GetColorNo(index, data);
			if(CIndex != DInfo[ColorIndex]) {
				if(kinds==0 && RefreshFlag==0
						&& (DInfo[ColorIndex] != ImgInitIndex) ) {
					//タイムアウト更新→処理キューに保存
					APangQue.push(CIndex, index);
				} else {
//					ChangeImg(elm, DInfo, CIndex, index);
				}
			}
			ChangeImg(elm, DInfo, CIndex, index);
		} else {
			if(APangIndex == index) {
				ChangeImg(elm, DInfo, ImgPangIndex, index);
				APangIndex = undefined;
			}
			if(ARestoreIndex == index) {
				ChangeImg(elm, DInfo, APangColor, index);
				ARestoreIndex = undefined;
				APangColor = undefined;
			}
		}
		RefreshFlag==0;
	}
	function MakeSelector(ColorData) {
		//テーブルサイズの決定
		oSelector.style.left = Math.floor(wndX * 0.05);
		oSelector.style.top = 100;
		oSelector.style.width = Math.floor(wndX * 0.9);
		oSelector.style.height = wndY-230;
		oSelector.style.visibility = "visible";

		//カラーデータの設定
		var n,CIndex;
		for(n=0;n<Cnt_Max;n++) {
			CIndex = GetColorNo(n, ColorData);
			DrawInfo[n][ColorIndex] = CIndex;
			oSelTD[n].style.borderColor=ColorValue[CIndex];
			oSelTD[n].style.visibility = "visible";

			//*********** 謎のステージ処理 Start *************//
			//oSelTD[n].style.backgroundColor='';
			if(CIndex == 0xf) {
				oSelTD[n].style.backgroundColor=ColorValue[CIndex];
				oSelTD[n].innerHTML = '<h6><a href="cgi/BBS/sympleBBS.cgi?page=0">'
							+ 'な<br />ぞ</a></h6>';
			} else {
				oSelTD[n].style.backgroundColor='';
				oSelTD[n].innerHTML = n;
			}
			//*********** 謎のステージ処理 End *************//
		}
	}

	// 16進数 カラーデータ を数値に変換
	function GetColorNo(Id, DataStr) {
		var value;
		if(DataStr == null) { return(EmptyColorNo); }
		if(DataStr.length <= Id) { return(0); }
		var HEX = '0x' + DataStr.substr(Id,1);
		return(parseInt(HEX));
	}
	//数値を全角数字文字列に変換
	function ConvertZenNumber(value) {
		var n, code, ans='';
		var valstr = value + "";
		for(n=0;n<valstr.length;n++) {
			code=valstr.charCodeAt(n);
			if(0x30 <= code && code <= 0x39) {
				 ans += ZenNumber[code - 0x30];
			}
		}
		return(ans);
	}

	//ページリサイズ時に実行する関数
	function fnOnResize() {
		//状態パラメータの初期化
		L = 0;			//階層
		H = '';		//履歴
		C = ''; 		//選択

		//ページ読み込み完了時と同じ処理
		fnOnLoad();

		TimerCount = DataReqCount;
	}

	//ページ読み込み完了時に実行する関数
	function fnOnLoad() {
		//ブラウザの判別
		if (document.getElementById) { Browser = 0; }
		else if(document.all) { Browser = 1; }
		else if(document.layers) { Browser = 2; }

		oElmT=document.getElementById('message');
		oElmD=document.getElementById('divmes');
		oElmD1=document.getElementById('divmes1');

		//宝オブジェクトサイズを決定	
		GetWndSize();

		//背景画像の位置指定
		var oBgimg = document.getElementById('bgimg');
		oBgimg.style.top=0;
		oBgimg.style.left=0;
		oBgimg.style.width=wndX;
		oBgimg.style.height=wndY;
		oBgimg.style.visibility="visible";

		var mmarg = 110;		//mess テーブルの食い込み許容幅

		//メッセージテーブルの位置を指定
		var str = oElmT.style.height;
		var val = str.substr(0,str.indexOf("px"));
		var pos = wndY-val;
		oElmT.style.top=pos;

		str = oElmT.style.width;
		var mxval = str.substr(0,str.indexOf("px"));
		var mxpos = (wndX - mxval)/2;
		oElmT.style.left=mxpos;		//ランキングテーブル,BBS リンクテーブル,と重ならないように調整

		oElmT.style.visibility = "visible";

		//BBS リンクテーブルの位置を指定
		var oELink = document.getElementById('link');

		str = oELink.style.height;
		val = str.substr(0,str.indexOf("px"));
		pos = wndY-val;
		oELink.style.top=pos;

		str = oELink.style.width;
		val = str.substr(0,str.indexOf("px"));
		pos = wndX - val;
		var xlim = parseInt(mxpos) + parseInt(mxval) - parseInt(mmarg);
		if(pos < xlim) { pos = xlim; }
		oELink.style.left=pos;

		oELink.style.visibility = "visible";

		//ランキングテーブルの位置を指定
		var oERank = document.getElementById('rank');

		str = oERank.style.height;
		val = str.substr(0,str.indexOf("px"));
		pos = wndY-val;
		oERank.style.top=pos;

		str = oERank.style.width;
		val = str.substr(0,str.indexOf("px"));
		pos = parseInt(mxpos) + parseInt(mmarg) - parseInt(val);
		if(pos > 0) { pos = 0; }
		oERank.style.left=pos;

		oERank.style.visibility = "visible";
		
		oeRankToday1 = document.getElementById('today1');
		oeRankToday2 = document.getElementById('today2');
		oeRankToday3 = document.getElementById('today3');
		oeRankTotal1 = document.getElementById('total1');
		oeRankTotal2 = document.getElementById('total2');
		oeRankTotal3 = document.getElementById('total3');


		//挑戦回数表示用エレメントの取得
		oElmChall = document.getElementById('todaycount');

		if(!startflag) {
		
			fnShowRule();

			oStage = document.getElementById('stage');

			//必要な画像をダウンロード
			imgv = new Array();
			imgopened = new Array();
			for(n=0;n<UseImgCount;n++) {
				imgv[n] = new Image();
				imgv[n].src = 'image/takara48-'+n+'.gif';
				imgopened[n] = new Image();
				imgopened[n].src = 'image/opened48-'+n+'.gif';
			}
			imgv[ImgPangIndex] = new Image();
			imgv[ImgPangIndex].src = 'image/panng!.gif';

			//img の Elements を配列に取得
			for(n=0;n<Cnt_Max;n++) {
				oElms[n] = document.getElementById('ID'+n);
				oSelTD[n] = document.getElementById('TD'+n);
			}
			oSelector = document.getElementById('selector');

			//データを取得し、画面更新
			fnOnTimer();

		}

		//セレクトテーブルリサイズ
		oSelector.style.left = Math.floor(wndX * 0.05);
		oSelector.style.top = 100;
		oSelector.style.width = Math.floor(wndX * 0.9);
		oSelector.style.height = wndY-230;

	}
	

	function fnOnTimer() {
		if(!Updating) {
			Updating = 1;
			if(DataReqCount <= ++TimerCount) {
				//データを取得し、画面更新
				//#タイムアウト更新時には引数に T=1 を含む
				DocUpdate('T=1');
				TimerCount = 0;
			} else {		
				//画面更新のみ
				DrawObject('', OnlyMovement,'');
			}
			Updating = 0;
		}
		//描画完了。新にタイマーの設定を行う
		timerID = setTimeout("fnOnTimer();", Update_Interval);
//status = TimerCount;
	}

	function ClickImage(NameID) {
		//画像がクリックされたときのイベント処理
		C = NameID;
		
		if(ShowRuleFlag) { fnHideRule(); }
	
		if(DrawInfo[C][ColorIndex]== 0xF) { return false; }
		if(DrawInfo[C][ColorIndex]== ImgPangIndex) { return false; }

		//タイムアウト処理用キューのクリア
		while (APangQue.pop() != undefined);
		APangIndex = undefined;
		APangColor = undefined;

		var Elm = oElms[C];
		Elm.src = imgv[ImgPangIndex].src;
		DrawInfo[C][ColorIndex] = ImgPangIndex;

		DocUpdate('');
	}

	function tdclick(index) {
		C = index;

		if(ShowRuleFlag) { fnHideRule(); }

		if(DrawInfo[C][ColorIndex]== 0xF) { return false; }

		//タイムアウト処理用キューのクリア
		while (APangQue.pop() != undefined);
		APangIndex = undefined;
		APangColor = undefined;

		var Elm = oSelTD[C];
		Elm.style.backgroundColor = "#ff0000";
		Elm.style.filter = "";
		DrawInfo[C][ColorIndex] = ImgPangIndex;

		DocUpdate('');

	}
	function tdover(index) {
		var Elm = oSelTD[index];
		Elm.style.backgroundColor=Elm.style.borderColor;
//alert(Elm.style.borderColor);
	}
	function tdout(index) {
		var Elm = oSelTD[index];
		//*********** 謎のステージ処理 Start *************//
		if(Elm.style.borderColor != ColorValue[0xf]) {
			Elm.style.backgroundColor='';
		}
		//*********** 謎のステージ処理 End *************//
	}

	
	function SetMessHTML() {
	    var MessHTML;
	    if(ShowRuleFlag) {
		MessHTML = '<table height="100%" width="100%" style="border-width:0px;z-index:-1;">'
			+ '<tr><td height="100%" width="100%" style="border-width:0px;'
			+ 'padding-left:30px;padding-right:30px;line-height:150%;font-size:14px;">'
			+ 'おはよう！<br />'
			+ '<strong>「 <span style="color:#ff0000">ミッション ポッシブル</span> '
			+ 'お宝を Get せよ！」 は、登録不用、メルマガ等の受信義務など一切無い、極めて単純な'
			+ '懸賞ゲームである</strong>。矩形で分割された領域を選択し、浮遊物体のとぶ <span style='
			+ '"color:#ff0000;"><strong><nobr>チャレンジステージ</nobr></strong></span> '
			+ 'まで進もう。領域 および 浮遊物体 には番号が振られており、ここで選んだらクジ番号確定だ。'
			+ 'サーバーにアクセスして結果が表示される。<nobr>一度開けられたクジは</nobr'
			+ '><strong>消滅</strong>する。引き続ければ必ず当たるのが特徴だ。'
			+ '<br /><br />ただし、抽選結果は<span style="color:#ff0000;"><strong>'
			+ 'ポップアップ表示</strong></span>されるので、この<strong>ブロックを解除</strong>'
			+ 'する必要がある点、同一IPアドレスからのチャレンジは１日あたり<strong>'
			+ '１００回</strong>までとなっている点に注意する必要がある。'
			+ '領域の色がその領域に残されたクジの数のヒントになるだろう。'
			+ '<br /><br />そこで君の使命だが、このゲームにチャレンジし、<span style='
			+ '"color:#ff0000;font-size:16px;"><strong>お宝を引き当てること</strong>'
			+ '</span> にある。<br /><br />'
			+ '例よって君もしくは君のメンバーが、このゲームによって何らかのトラブルに'
			+ '巻き込まれたとしても、当局は一切関知しないから、そのつもりで。'
			+ '<br /><br /><strong>成功を祈る</strong>。<br /><br />'
			+ 'なお、<strong>この指令文は自動的に消滅する</strong>・・・ <br />'
			+ '<br /><br />しっ・・・　<strong>しません (^^;</strong>　　　　'
			+ '<button onclick="fnHideRule()">'
			+ 'ここを押して下さい</button></span><div id="counter"></div></td></tr></table>';
	    } else {
		MessHTML = '<div align="center" style="z-index:-3;">'
			+ '<button onclick="fnBeforeStage()"><span style='
			+ '"font-size:13px;font-weight:bold;">'
			+ '1ステージ戻る</span></button>'
			+ '<button onclick="fnShowRule()"><span style='
			+ '"font-size:13px;font-weight:bold;"><span style="color:#ff0000">'
			+ '指令文</span> を表示</span></button>'
			+ '<button onclick="fnTopPage()"><span style='
			+ '"font-size:13px;font-weight:bold;">トップページ</span>'
			+ '</div>';
	    }
	   return(MessHTML);
	}


	function fnMessageRefresh() {
//		var oElmT=document.getElementById('message');
//		var oElmD=document.getElementById('divmes');
//		var oElmD1=document.getElementById('divmes1');
		if(ShowRuleFlag) {
			oElmT.style.backgroundColor="#ffffcc";
			oElmT.style.zIndex="-1";
			oElmT.border=1;
			oElmD.style.overflowY="scroll";
			oElmD.style.height="110px";

			oElmD.innerHTML = SetMessHTML();
			oElmD1.innerHTML = '';
		} else {
			oElmT.style.backgroundColor="";
			oElmT.style.zIndex="-3";
			oElmT.border=0;
			oElmD.style.overflowY="hidden";
			oElmD.style.height="70px";

			oElmD.innerHTML = '';
			oElmD1.innerHTML = SetMessHTML();
		}			
	}
	function fnShowRule() {
		ShowRuleFlag = true;
		fnMessageRefresh();
	}
	function fnTopPage() {
		location.href = 'index.html';
	}
	function fnBeforeStage() {
		if(--L <= 0) { 
			L = 0;
			H = '';
		} else {
			var hstr = H.split(':');
			var n;
			H='';
			for(n=0;n<L;n++) {
				if(n!=0) {H += ':';}
				H += hstr[n];
			}
		}
		TryStageFlag = false;
		C = '';
		TimerCount = DataReqCount;
//alert('L='+L+'  H='+H);
	}
	function fnHideRule() {
		ShowRuleFlag = false;
		fnMessageRefresh();
		fnCounterRefresh()
	}
	function fnSetSound() {
		if(SoundFlag) {SoundFlag=false;} else {SoundFlag=true;}
		fnMessageRefresh();	
		fnCounterRefresh();
	}
	function fnCounterRefresh() {
		var txt = '<div align="center">'
			+ '<span style="font-weight:bold;">'
			+ '<span style="font-size:24px;">'
			+ '残りクジ：<span style="color:#ff0000;">' + CounterCount[1]
			+ '</span>本</span><br /><span style="font-size:16px;">';
		for(n=0;n<(CounterCount.length-2)/2;n++) {
			if(n==2) { 
				txt += '</span><br /><span style="font-size:12px;">';
			}
			txt += '　<nobr>' + ConvertZenNumber(n+1) + '等：'
				+ ConvertZenNumber(CounterCount[n*2+2]) 
				+ '本（残り<span style="color:#ff0000;">'
				+ ConvertZenNumber(CounterCount[n*2+3])
				+ '</span>本)　</nobr>';
		}
		txt += '</span></span></div>';
		if(!ShowRuleFlag) {
//			oElmD.innerHTML = txt;
			document.getElementById('divmes').innerHTML = txt;
		}
	}
	
	function fnOnUnload() {
		if(ResPageCnt > 0) {
			alert('ページが閉じられようとしています。\n' +
				'このメッセージを閉じる前に結果を確認して下さい。\n' +
				'残された結果ページは自動的に消滅します。');
		}
	}

