////////////////////////////////////////////////////////////
//	グローバル変数

var g_aImage=new Array();
var g_aMap  =new Array();

var g_fGame;
var g_cStroke;
var g_StartTime;

////////////////////////////////////////////////////////////
//	画像キャッシュ

g_aImage[1]=new Image(); g_aImage[1].src="etc/image01.png";
g_aImage[2]=new Image(); g_aImage[2].src="etc/image02.png";

////////////////////////////////////////////////////////////
//	再描画

function redraw()
{
	for(var i=0;i<25;i++)
	{
		var s;

		//	ID 文字列作成
		s="00" + String(i);
		s=s.substring(s.length-2,s.length)
		s="panel" + s;

		//	描画
		if(g_aMap[i]==0)
		{
			document.getElementById(s).src=g_aImage[2].src;
		}
		else
		{
			document.getElementById(s).src=g_aImage[1].src;
		}
	}
}

////////////////////////////////////////////////////////////
//	全消去

function clear()
{
	for(var i=0;i<25;i++) g_aMap[i]=1;
}

////////////////////////////////////////////////////////////
//	パネル返し

function turn(no)
{
	g_aMap[no]=(g_aMap[no]==0)? 1: 0;

	if(no/5!=0) g_aMap[no-5]=(g_aMap[no-5]==0)? 1: 0;
	if(no/5!=4) g_aMap[no+5]=(g_aMap[no+5]==0)? 1: 0;
	if(no%5!=0) g_aMap[no-1]=(g_aMap[no-1]==0)? 1: 0;
	if(no%5!=4) g_aMap[no+1]=(g_aMap[no+1]==0)? 1: 0;
}

////////////////////////////////////////////////////////////
//	ゲーム開始

function start(mix)
{
	//	全消去
	clear();

	//	かき混ぜ
	for(var i=0;i<mix;i++)
		turn(Math.floor(Math.random()*25));

	//	再描画
	redraw();

	//	ゲーム開始
	g_fGame=true;
	g_cStroke=0;
	g_StartTime=(new Date()).getTime();
}

////////////////////////////////////////////////////////////
//	ゲーム終了

function end()
{
	var EndTime=(new Date()).getTime();

	//	終了判定
	for(var i=0;i<25;i++)
	{
		if(g_aMap[i]==0) return;
	}

	//	終了処理
	g_fGame=false;
	alert("Complete !!\n" +
		"Stroke: " + String(g_cStroke) + " 手\n" +
		"Time: " + String(Math.floor(
			(EndTime-g_StartTime)/100)/10) + " 秒");
}

////////////////////////////////////////////////////////////
//	リセット

function reset()
{
	//	リセット
	g_fGame=false;

	//	全消去
	clear();

	//	再描画
	redraw();
}

////////////////////////////////////////////////////////////
//	パネルを押す

function push(no)
{
	if(!g_fGame) return;

	//	パネル返し
	turn(no);

	//	手数カウント
	g_cStroke++;

	//	再描画
	redraw();

	//	終了判定
	end();
}

////////////////////////////////////////////////////////////

