//
/* ------ 神経衰弱ゲーム スクリプト　Version 1.1.1 ------ */
/* ------ Copyright (c) 2001 YAMAARI ------ */
//

/*
このスクリプトはYAMAARIが作成しました．
商業目的でなければ転用可能ですが，
転載する時には，以下のURLへのリンクを張ることを義務とします．

タイトル===The Nest of YAMAARI
URL===http://yamaari.hp.infoseek.co.jp/

HTML文書に以下のコードを追加すると設定できます．
<a href="http://yamaari.hp.infoseek.co.jp/">The Nest of YAMAARI</a>

質問等はメールにてお受けいたします．
E-Mail===yamaari_web@infoseek.jp
*/

//Version 1.1での変更点
//バナー広告の入るページなど，他の画像と神経衰弱の共存を容易にできるよう改良
//設定方法：このファイルの59行目ImgCountに神経衰弱のはじめの画像の位置を指定する（一枚目なら1）．


/* ------ここから変数の宣言------ */
//画像の番号を記憶
Index = new Array(20);

//めくられた画像
SelectedImages = new Array(2);
SelectedImages[0] = -1;
SelectedImages[1] = -1;

//画像の確保
MyImages = new Array(10);
for ( i=0; i<10; i++ ){
	MyImages[i] = new Image();
	MyImages[i].src = "mel_images/image" + i +".jpg";
}
var DefaultImage;
DefaultImage = new Image();
DefaultImage.src = "mel_images/default.gif";

var Black;
Black = new Image();
Black.src = "mel_images/black.gif";

//”めくる”ボタンの有効チェック
BtnEnabled = new Array(20);
for (i=0; i<20; i++){
	BtnEnabled[i] = 1;
}

//Flash用の変数
var IntFlash = 0;

//HTMLページにおける１枚目の神経衰弱画像の位置を指定
var ImgCount = 1;


/* ------ここから関数------ */

//リセット
function Reset(){
	var MyInt1,MyInt2;
	for ( i=0; i<10; i++ ){
		Index[i] = i;
		Index[i + 10] = i;
		document.images[i + ImgCount - 1].src = DefaultImage.src;
		document.images[i + 10 + ImgCount - 1].src = DefaultImage.src;
	}
	for ( i=0; i<19; i++ ){
		MyInt1 = MyRnd(i, 19);
		MyInt2 = Index[i];
		Index[i] = Index[MyInt1];
		Index[MyInt1] = MyInt2;
	}
	SelectedImages[0] = -1;
	SelectedImages[1] = -1;
	for (i=0; i<20; i++){
		BtnEnabled[i] = 1;
	}
	IntFlash = 0;
	document.forms["mel"].elements[0].value = 0;
	document.forms["mel"].elements[1].value = 0;
	ShowMsg("1枚目をめくって下さい");
	window.alert("できるだけ少ない回数で，すべてめくろう．");
}

//乱数(Min以上Max以下)の発生
function MyRnd(Min, Max){
	var x = Math.random();
	if (x*((Max - Min)+1)+Min < 1){
		x = 0;
	} else{
		x = parseInt(x*((Max - Min)+1)+Min);
	}
	return x;
}

//テキストボックスへの書き込み禁止
function ShowAlert(objThis){
	objThis.blur();
}

//めくる
function Open(n){
	if (BtnEnabled[n] == 0){
		return;
	}
	if (SelectedImages[0] == -1){
		SelectedImages[0] = n;
		BtnEnabled[n] = 0;
		document.images[n + ImgCount - 1].src = MyImages[Index[n]].src;
		document.forms["mel"].elements[0].value = parseInt(document.forms["mel"].elements[0].value) + 1;
		ShowMsg("2枚目をめくって下さい");
		return;
	}
	if (SelectedImages[1] == -1){
		SelectedImages[1] = n;
		BtnEnabled[n] = 0;
		document.images[n + ImgCount - 1].src = MyImages[Index[n]].src;
		if (Index[SelectedImages[0]] == Index[SelectedImages[1]]){
			IntFlash = 0;
			document.forms["mel"].elements[1].value = parseInt(document.forms["mel"].elements[1].value) + 1;
			ShowMsg("正解です");
			if (document.forms["mel"].elements[1].value == 10){
				End()
				return;
			}
			Flash();
		} else{
			ShowMsg("不正解です");
			window.setTimeout("HideCard()", 1000);
		}
		return;
	}
	return;
}

//正解のとき画像を明滅
function Flash(){
	if (IntFlash >= 7){
		SelectedImages[0] = -1;
		SelectedImages[1] = -1;
		ShowMsg("1枚目をめくって下さい");
		IntFlash = 0;
	} else{
		if ((IntFlash % 2) == 0){
			document.images[SelectedImages[0] + ImgCount - 1].src = MyImages[Index[SelectedImages[0]]].src;
			document.images[SelectedImages[1] + ImgCount - 1].src = MyImages[Index[SelectedImages[1]]].src;
			IntFlash += 1;
			window.setTimeout("Flash()", 300);
		} else{
			document.images[SelectedImages[0] + ImgCount - 1].src = Black.src;
			document.images[SelectedImages[1] + ImgCount - 1].src = Black.src;
			IntFlash += 1;
			window.setTimeout("Flash()", 300);
		}
	}
}

//不正解のとき画像を隠す
function HideCard(){
	document.images[SelectedImages[0] + ImgCount - 1].src = DefaultImage.src;
	document.images[SelectedImages[1] + ImgCount - 1].src = DefaultImage.src;
	BtnEnabled[SelectedImages[0]] = 1;
	BtnEnabled[SelectedImages[1]] = 1;
	SelectedImages[0] = -1;
	SelectedImages[1] = -1;
	ShowMsg("1枚目をめくって下さい");
}

//メッセージを表示
function ShowMsg(Str){
	document.forms["mel"].info.value = Str;
}

//ゲームの終了
function End(){
	ShowMsg("すべてがめくられました");
	var Str = "";
	Str += "ゲームオーバー" + "\n";
	if (parseInt(document.forms["mel"].elements[0].value) <= 14){
		Str += "ランク：A\n超能力者かも";
	} else{
		if (parseInt(document.forms["mel"].elements[0].value) <= 17){
		Str += "ランク：B\n好成績です";
		} else {
			if (parseInt(document.forms["mel"].elements[0].value) <= 20){
				Str += "ランク：C\n今ひとつ";
			} else{
				Str += "ランク：D\nもう一度やってみよう";
			}
		}
	}
	window.alert(Str);
}
