function clickmedal(medalnum){
	if(changeFlag && click>0){
		for(i=13;i<=66;i++) erasecheck[i]=0;
	}
	if(changeFlag && omote[medalnum]>0 && click>0){
		if(checkb()) medalID=setInterval("changemedal("+medalnum+")",10);
		else {
			eval("document.images["+medalnum+"].src=img"+(ura[medalnum]*3-2)+".src;");
			x=omote[medalnum];
			omote[medalnum]=ura[medalnum];
			ura[medalnum]=x;
			click--;
			outputLAYER("stepnum","<font size=5pt "+clickcolor+">"+click+"<font>");
			fallmedal();
		}
	}
	else{
		if(click<=0) alert("終了です");
	}
}

function clickall(){
	if(changeFlag && loadFlag){
		outputLAYER("chain","<table border=3 cellspacing=0 bordercolor=ffffff><tr><td bgcolor=008800><font size=6pt>記憶中...</font></td></tr></table>")
		moveLAYER("chain",30,30);
		medalID=setInterval("changeall()",50);
	}
}

function changeall(){
	changecount++;
	if(changecount%20==0) outputLAYER("chain","<table border=3 cellspacing=0 bordercolor=ffffff><tr><td bgcolor=008800><font size=6pt>記憶中..."+(6-changecount*50/1000)+"</font></td></tr></table>")
	if(changecount==2) {
		changeFlag=false;
		if(!checkb()) changecount=6;
	}
	if(changecount<=3){
		for(i=13;i<=66;i++){
			if(omote[i]>0) eval("document.images["+i+"].src=img"+(omote[i]*3-3+changecount)+".src;");
		}
	}
	if(changecount>3 && changecount<=6){
		for(i=13;i<=66;i++){
			if(omote[i]>0) eval("document.images["+i+"].src=img"+(ura[i]*3+4-changecount)+".src;");
		}
	}
	if(changecount>100 && changecount<=103){
		if(!checkb()) changecount=106;
		else{
			for(i=13;i<=66;i++){
				if(omote[i]>0) eval("document.images["+i+"].src=img"+(ura[i]*3-3+changecount-100)+".src;");
			}
		}
	}
	if(changecount>103 && changecount<=106){
		for(i=13;i<=66;i++){
			if(omote[i]>0) eval("document.images["+i+"].src=img"+(omote[i]*3+4-changecount+100)+".src;");
		}
	}
	if(changecount==107){
		clearInterval(medalID);
		changecount=1;
		moveLAYER("chain",-100,-100);
		changeFlag=true;
	}
}

function changemedal(medalnum){
	changecount++;
	if(changecount==2) changeFlag=false;
	if(changecount<=3) eval("document.images["+medalnum+"].src=img"+(omote[medalnum]*3-3+changecount)+".src;");
	if(changecount>3 && changecount<=6) eval("document.images["+medalnum+"].src=img"+(ura[medalnum]*3+4-changecount)+".src;");
	if(changecount==7){
		clearInterval(medalID);
		changecount=1;
		//表と裏の入れ替え
		x=omote[medalnum];
		omote[medalnum]=ura[medalnum];
		ura[medalnum]=x;
		click--;
		outputLAYER("stepnum","<font size=5pt "+clickcolor+">"+click+"<font>");
		fallmedal();
	}
}

function check(){
	var erasenum=0;
	goldnum=0;
	for(i=13;i<=66;i++){
		erasecheck[i]=0;
		if(i>=19){//上メダルが同じ色か？
			if(omote[i]==omote[i-6] && omote[i]!=0) erasecheck[i]++;
		}
		if(i%6!=1){//左メダルが同じ色か？
			if(omote[i]==omote[i-1] && omote[i]!=0) erasecheck[i]++;
		}
		if(i%6!=0){//右メダルが同じ色か？
			if(omote[i]==omote[i+1] && omote[i]!=0) erasecheck[i]++;
		}
		if(i<=60){//下メダルが同じ色か？
			if(omote[i]==omote[i+6] && omote[i]!=0) erasecheck[i]++;
		}
	}
	for(i=13;i<=66;i++){
		if(i>=19){
			if(omote[i]==omote[i-6] && erasecheck[i]==1 && erasecheck[i-6]>=2) erasecheck[i]=2;
		}
		if(i%6!=1){
			if(omote[i]==omote[i-1] && erasecheck[i]==1 && erasecheck[i-1]>=2) erasecheck[i]=2;
		}
		if(i%6!=0){
			if(omote[i]==omote[i+1] && erasecheck[i]==1 && erasecheck[i+1]>=2) erasecheck[i]=2;
		}
		if(i<=60){
			if(omote[i]==omote[i+6] && erasecheck[i]==1 && erasecheck[i+6]>=2) erasecheck[i]=2;
		}
		if(erasecheck[i]>=2 && omote[i]==1) goldnum++;
	}
	//消去時のアクション
	for(i=13;i<=66;i++){
		if(erasecheck[i]>=2) erasenum++;
	}
	if(erasenum>0){
		//得点計算
		rensa++;
		score=score+erasenum*(goldnum+1)*rensa*100;
		erase=erase-erasenum;
		outputLAYER("erasenum","<font size=5pt>"+erase+"<font>");
		medalID=setInterval("erasemedal()",100);
	}
	else{
		rensa=0;
		changeFlag=true;
		if(erase==0){
			outputLAYER("chain","<font size=10pt color=00ffff><b>Clear!</b></font>")
			moveLAYER("chain",40,230);
			clearFlag[selectstage]="Clear!";
			clearfn(); //成功処理へ
			cookiefn();
		}
		if(click==0 && erase>0) alert("失敗です\nやりなおすときは、もう一度「選択」を押してください");
	}
}

function clearfn(){
	//正解数の集計
	var clearnum=0;
	for(i=1;i<=26;i++){
		if(clearFlag[i]=="Clear!") clearnum++;
	}
	msg='<form name="conpane2"><select name="mysel"><option>ステージを選んでください';
	for(i=1;i<=10;i++){
		if(i==selectstage) msg+='<option selected>stage'+i+" "+clearFlag[i];
		else msg+='<option>stage'+i+" "+clearFlag[i];
	}
	if(clearnum>7){
		for(i=11;i<=20;i++){
			if(i==selectstage) msg+='<option selected>stage'+i+" "+clearFlag[i];
			else msg+='<option>stage'+i+" "+clearFlag[i];
		}
	}
	if(clearnum>17){
		for(i=21;i<=25;i++){
			if(i==selectstage) msg+='<option selected>stage'+i+" "+clearFlag[i];
			else msg+='<option>stage'+i+" "+clearFlag[i];
		}
	}
	msg+='</select><input type=button value="選択" onClick="stagecheck();"></form>'
	outputLAYER("select",msg);
	if(clearnum==25){
		excellent=confirm("全問正解、おめでとう！\n名前を登録しますか？");
		if(excellent){
			clearFlag[26]="Clear!";
			plname=prompt("あなたの名前を入力してください","ななしのごんべえ");
			plkansou=prompt("ひとこと感想でも書いてください","");
			document.entry.plname.value=plname;
			document.entry.kansou.value=plkansou;
			playDate=new Date();
			document.entry.pltime.value=playDate.getTime();
			document.entry.gamename.value="magical medal puzzle 3 (toukou) "+navigator.userAgent;
			document.entry.submit();
		}
	}
	if(clearnum==26){
		alert("あなたはすでに全問正解して名前を登録しています。");
	}
}

function cookiefn(){
	//クッキー関連の処理
	if(document.cookieform.cookiecheck.checked){
		var myDate=new Date();
		var day=30;
		pswd=0;
		for(i=1;i<=26;i++){
			if(clearFlag[i]=="Clear!") pswd+=Math.pow(2,i-1);
		}
		myDate.setTime(myDate.getTime()+(day*24*60*60*1000));
		document.cookie="medalpswd3="+pswd+";expires="+myDate.toGMTString();
	}
}

function deletefn(){
	if(loadFlag){
		really=confirm("データを初期化します。本当によろしいですか？");
		if(really){
			var myDate=new Date();
			var day=30;
			pswd=0;
			document.cookie="medalpswd3="+pswd+";expires="+myDate.toGMTString();
			//正解数の集計
			var clearnum=0;
			for(i=1;i<=25;i++){
				if(clearFlag[i]=="Clear!") clearnum++;
			}
			if(clearnum==0){
				clearFlag[26]="";
			}
			for(i=1;i<=25;i++) clearFlag[i]="";
			clearfn();
		}
	}
}

function erasemedal(){
	changecount++;
	if(changecount==2) changeFlag=false;
	if(changecount<8 && changecount%2==1){
		for(i=13;i<=66;i++){
			if(erasecheck[i]>=2){
				document.images[i].src=imgnull.src;
			}
		}
		changeFlag=false;
	}
	if(changecount<8 && changecount%2==0){
		for(i=13;i<=66;i++){
			if(erasecheck[i]>=2 && omote[i]>0) eval("document.images["+i+"].src=img"+(omote[i]*3-2)+".src;");
		}
	}
	if(changecount>=8){
		clearInterval(medalID);
		changecount=1;
		for(i=13;i<=66;i++){
			if(erasecheck[i]>=2){
				omote[i]=0;
				ura[i]=0;
			}
			erasecheck[i]=0;
		}
		fallmedal();
	}
}

function fallmedal(){
	if(checkb()) medalID=setInterval("fallall()",50);
	else{
		var i,j;
		for(j=1;j<=9;j++){
			for(i=13;i<=60;i++){
				if(omote[i+6]==0){
					document.images[i+6].src=document.images[i].src;
					omote[i+6]=omote[i];
					ura[i+6]=ura[i];
					document.images[i].src=imgnull.src;
					omote[i]=0;
					ura[i]=0;
				}
			}
		}
		check();
	}
}

function fallall(){
	changecount++;
	fallFlag=false;
	for(i=13;i<=60;i++){
		if(omote[i+6]==0 && omote[i]>0){
			document.images[i+6].src=document.images[i].src;
			omote[i+6]=omote[i];
			ura[i+6]=ura[i];
			document.images[i].src=imgnull.src;
			omote[i]=0;
			ura[i]=0;
			fallFlag=true;
		}
	}
	if(!fallFlag || changecount>8){
		clearInterval(medalID);
		changecount=1;
		check();
	}
}
