var map = new Array(112);
var map1 = new Array(112);
var ck = new Array(112);
var cp = new Array(72);
var timerID = "";
var timerOn = 0;
var r = new Array(4);
r[0] = 8;
r[1] = 1;
r[2] = -8;
r[3] = -1;
pdname = "images/"
var pname = new Array(20);
pname[0] = "p.gif";
pname[1] = "ps.gif";
pname[2] = "po.gif";
pname[11] = "pi.gif";
pname[12] = "pw.gif";
pname[13] = "pr.gif";
pname[14] = "pb.gif";
pname[15] = "py.gif";
pname[16] = "pg.gif";
pname[17] = "pp.gif";
pname[18] = "del.gif";
var pclr = 0;
var re = 1;
var enco ="012345678";
var nurl = document.URL.split("?");
var nurl2 = "http://www.inosendo.com/puyo/rensim/field.cgi";
var nurl3 = "http://www.inosendo.com/puyo/rensim/image.php";
var purl = "";
var s3_type = 0;		/* 連鎖ボーナスのタイプ */
var tsu_or_fever = 0;	/* 通(0)かフィーバー(1)か */

/* 長連ボーナス */
var s1_bonus = new Array(2);
s1_bonus[0] = new Array(0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 10);
s1_bonus[1] = new Array(0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 8);
/* 多色消しボーナス */
var s2_bonus = new Array(2);
s2_bonus[0] = new Array(0, 3, 6, 12, 24);
s2_bonus[1] = new Array(0, 2, 4, 8, 16);
/* 連鎖ボーナス */
var type = new Array(33);
var s3_bonus = new Array(33);
type[0] = "ぷよぷよ通";
s3_bonus[0] = new Array(0, 8, 16, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480, 512);
type[1] = "アミティ・通常時";
s3_bonus[1] = new Array(0, 8, 16, 22, 33, 67, 111, 167, 223, 279, 349, 419, 489, 559, 629, 699, 699, 699, 699);
type[2] = "アミティ・フィーバー時";
s3_bonus[2] = new Array(0, 6, 12, 15, 20, 33, 55, 83, 111, 167, 195, 201, 239, 279, 307, 307, 307, 307, 307);
type[3] = "ラフィーナ・通常時";
s3_bonus[3] = new Array(0, 7, 16, 23, 35, 74, 125, 191, 259, 330, 419, 512, 617, 699, 699, 699, 699, 699, 699);
type[4] = "ラフィーナ・フィーバー時";
s3_bonus[4] = new Array(0, 6, 11, 13, 19, 32, 53, 80, 107, 163, 191, 197, 235, 277, 306, 306, 306, 306, 306);
type[5] = "アコール先生・通常時";
s3_bonus[5] = new Array(0, 7, 16, 23, 35, 74, 125, 191, 259, 330, 419, 512, 617, 699, 699, 699, 699, 699, 699);
type[6] = "アコール先生・フィーバー時";
s3_bonus[6] = new Array(0, 6, 12, 14, 20, 32, 53, 79, 104, 156, 181, 186, 219, 254, 278, 278, 278, 278, 278);
type[7] = "クルーク・通常時";
s3_bonus[7] = new Array(0, 7, 16, 23, 37, 76, 131, 201, 274, 349, 446, 545, 661, 699, 699, 699, 699, 699, 699);
type[8] = "クルーク・フィーバー時";
s3_bonus[8] = new Array(0, 6, 11, 13, 18, 30, 50, 75, 100, 151, 176, 181, 210, 251, 277, 277, 277, 277, 277);
type[9] = "リデル・通常時";
s3_bonus[9] = new Array(0, 9, 18, 24, 37, 74, 123, 184, 246, 307, 384, 461, 538, 615, 692, 699, 699, 699, 699);
type[10] = "リデル・フィーバー時";
s3_bonus[10] = new Array(0, 5, 9, 12, 16, 26, 44, 67, 89, 134, 156, 160, 191, 223, 246, 246, 246, 246, 246);
type[11] = "タルタル・通常時";
s3_bonus[11] = new Array(0, 9, 17, 23, 34, 67, 110, 164, 216, 268, 332, 394, 450, 509, 566, 622, 699, 699, 699);
type[12] = "タルタル・フィーバー時";
s3_bonus[12] = new Array(0, 6, 12, 14, 20, 32, 53, 79, 104, 156, 181, 186, 219, 254, 278, 278, 278, 278, 278);
type[13] = "おしゃれコウベ・通常時";
s3_bonus[13] = new Array(0, 7, 15, 20, 31, 63, 107, 160, 216, 271, 341, 411, 485, 557, 629, 699, 699, 699, 699);
type[14] = "おしゃれコウベ・フィーバー時";
s3_bonus[14] = new Array(0, 7, 13, 17, 23, 38, 64, 97, 130, 197, 230, 237, 283, 333, 368, 368, 368, 368, 368);
type[15] = "どんぐりガエル・通常時";
s3_bonus[15] = new Array(0, 9, 17, 23, 34, 67, 110, 164, 216, 268, 332, 394, 450, 509, 566, 622, 699, 699, 699);
type[16] = "どんぐりガエル・フィーバー時";
s3_bonus[16] = new Array(0, 6, 12, 14, 20, 32, 53, 79, 104, 156, 181, 186, 219, 254, 278, 278, 278, 278, 278);
type[17] = "こづれフランケン・通常時";
s3_bonus[17] = new Array(0, 9, 17, 22, 32, 63, 104, 154, 202, 249, 306, 361, 406, 456, 503, 549, 699, 699, 699);
type[18] = "こづれフランケン・フィーバー時";
s3_bonus[18] = new Array(0, 7, 13, 15, 20, 32, 52, 76, 101, 149, 171, 174, 202, 232, 251, 251, 251, 251, 251);
type[19] = "おにおん・通常時";
s3_bonus[19] = new Array(0, 7, 15, 20, 31, 63, 107, 160, 216, 271, 341, 411, 485, 557, 629, 699, 699, 699, 699);
type[20] = "おにおん・フィーバー時";
s3_bonus[20] = new Array(0, 8, 14, 17, 23, 37, 60, 90, 119, 177, 205, 210, 247, 285, 310, 310, 310, 310, 310);
type[21] = "さかな王子・通常時";
s3_bonus[21] = new Array(0, 7, 15, 20, 31, 63, 107, 160, 216, 271, 341, 411, 485, 557, 629, 699, 699, 699, 699);
type[22] = "さかな王子・フィーバー時";
s3_bonus[22] = new Array(0, 6, 13, 16, 23, 38, 65, 99, 133, 202, 240, 243, 299, 355, 395, 395, 395, 395, 395);
type[23] = "ユウちゃん・通常時";
s3_bonus[23] = new Array(0, 7, 16, 21, 32, 67, 113, 171, 231, 291, 367, 445, 529, 610, 692, 699, 699, 699, 699);
type[24] = "ユウちゃん・フィーバー時";
s3_bonus[24] = new Array(0, 6, 13, 16, 22, 37, 62, 93, 126, 191, 225, 233, 279, 330, 366, 366, 366, 366, 366);
type[25] = "ほほうどり・通常時";
s3_bonus[25] = new Array(0, 7, 15, 20, 30, 60, 100, 151, 201, 251, 314, 377, 440, 503, 566, 629, 699, 699, 699);
type[26] = "ほほうどり・フィーバー時";
s3_bonus[26] = new Array(0, 8, 15, 18, 25, 40, 67, 100, 134, 201, 237, 242, 286, 335, 370, 370, 370, 370, 370);
type[27] = "アルル・通常時";
s3_bonus[27] = new Array(0, 8, 16, 23, 34, 70, 118, 177, 238, 299, 376, 453, 534, 613, 692, 699, 699, 699, 699);
type[28] = "アルル・フィーバー時";
s3_bonus[28] = new Array(0, 6, 12, 14, 20, 32, 53, 79, 104, 156, 181, 186, 219, 254, 278, 278, 278, 278, 278);
type[29] = "ポポイ・通常時";
s3_bonus[29] = new Array(0, 7, 15, 20, 30, 60, 100, 151, 201, 251, 314, 377, 440, 503, 566, 629, 699, 699, 699);
type[30] = "ポポイ・フィーバー時";
s3_bonus[30] = new Array(0, 8, 15, 18, 25, 40, 67, 100, 134, 201, 237, 242, 286, 335, 370, 370, 370, 370, 370);
type[31] = "カーバンクル・通常時";
s3_bonus[31] = new Array(0, 8, 16, 23, 34, 70, 118, 177, 238, 299, 376, 453, 534, 613, 692, 699, 699, 699, 699);
type[32] = "カーバンクル・フィーバー時";
s3_bonus[32] = new Array(0, 6, 11, 13, 19, 32, 53, 80, 107, 163, 191, 197, 235, 277, 306, 306, 306, 306, 306);



function init(){
	encode();

	document.write("<TABLE BORDER ALIGN=\"LEFT\"><TR><TD>");
	document.write("<img src=\"images/p.gif\" width=\"16\" height=\"16\" BORDER=\"0\">");
	for(x = 1; x < 7; x++){
		document.write("<A HREF=\"JavaScript:putpuyo(");
		document.write(x);
		document.write(")\" OnMouseOver=\"putpuyo1(");
		document.write(x);
		document.write(")\" OnMouseOut=\"putpuyo2(");
		document.write(x);
		document.write(")\"><img src=\"");
		document.write(filename(x , 0));
		document.write("\" width=\"16\" height=\"16\" BORDER=\"0\"></A>");
	}
	document.write("<img src=\"images/p.gif\" width=\"16\" height=\"16\" BORDER=\"0\">");
	document.write("<BR>\n");
	for(y = 1; y < 13; y++){
		document.write("<img src=\"images/pw.gif\" width=\"16\" height=\"16\" BORDER=\"0\">");
		for(x = 1; x < 7; x++){
			cf = x + y * 8
			document.write("<A HREF=\"JavaScript:putpuyo(");
			document.write(cf);
			document.write(")\" OnMouseOver=\"putpuyo1(");
			document.write(cf);
			document.write(")\" OnMouseOut=\"putpuyo2(");
			document.write(cf);
			document.write(")\"><img src=\"");
			document.write(filename(x , y));
			document.write("\" width=\"16\" height=\"16\" BORDER=\"0\"></A>");
		}
		document.write("<img src=\"images/pw.gif\" width=\"16\" height=\"16\" BORDER=\"0\"><BR>\n");
	}
	for(x = 0; x < 8; x++){
		document.write("<img src=\"images/pw.gif\" width=\"16\" height=\"16\" BORDER=\"0\">");
	}
	document.write("</TD><TD><TABLE BORDER=\"2\" ALIGN=\"LEFT\"><TR><TD><img src=\"images/p.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></TD></TR></TABLE><FORM><INPUT TYPE=\"checkbox\">Ins.<BR CLEAR=\"ALL\">");

	document.write("<A HREF=\"JavaScript:changecolor(0)\"><img src=\"images/p.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(18)\"><img src=\"images/del.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(2)\"><img src=\"images/po.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(12)\"><img src=\"images/pw.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(11)\"><img src=\"images/pi.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A><BR>\n"
		+ "<A HREF=\"JavaScript:changecolor(13)\"><img src=\"images/pr.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(14)\"><img src=\"images/pb.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(15)\"><img src=\"images/py.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(16)\"><img src=\"images/pg.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A>"
		+ "<A HREF=\"JavaScript:changecolor(17)\"><img src=\"images/pp.gif\" width=\"16\" height=\"16\" BORDER=\"0\"></A><BR>\n"
		+ "<INPUT TYPE=\"text\" SIZE=3 MAXLENGTH=2 VALUE=\"0\">連鎖<INPUT TYPE=\"text\" SIZE=8 MAXLENGTH=6 VALUE=\"0\">点<BR>\n"
		+ "<INPUT TYPE=\"button\" VALUE=\"発火前\" onClick=\"remap()\"><INPUT TYPE=\"button\" VALUE=\" 進む \" onClick=\"rensa(0)\"><INPUT TYPE=\"button\" VALUE=\"AUTO/STOP\" onClick=\"auto()\"><BR>\n"
		+ "<SELECT onChange=\"changetype(this)\">");
	for(i = 0; i < 33; i++){
		document.write("<OPTION VALUE = " + i + ">" + type[i] + "</OPTION>");
	}
	document.write("</SELECT><BR>\n"
		+ "<SELECT onChange=\"makemap(this)\">"
		+ "<OPTION VALUE = 0>--clear--</OPTION>"
		+ "<OPTION VALUE = 1>ＵＲＬ</OPTION>"
		+ "<OPTION VALUE = 2>階段３連鎖</OPTION>"
		+ "<OPTION VALUE = 3>階段４連鎖</OPTION>"
		+ "<OPTION VALUE = 4>階段５連鎖</OPTION>"
		+ "<OPTION VALUE = 5>階段６連鎖</OPTION>"
		+ "<OPTION VALUE = 6>階段７連鎖</OPTION>"
		+ "<OPTION VALUE = 7>階段８連鎖</OPTION>"
		+ "<OPTION VALUE = 8>階段９連鎖</OPTION>"
		+ "<OPTION VALUE = 9>階段１０連鎖</OPTION>"
		+ "<OPTION VALUE = 10>階段１１連鎖</OPTION>"
		+ "<OPTION VALUE = 11>階段１２連鎖</OPTION>"
		+ "<OPTION VALUE = 12>階段１３連鎖</OPTION>"
		+ "<OPTION VALUE = 13>階段１４連鎖</OPTION>"
		+ "<OPTION VALUE = 14>階段１５連鎖</OPTION>"
		+ "<OPTION VALUE = 15>挟み込み３連鎖</OPTION>"
		+ "<OPTION VALUE = 16>挟み込み４連鎖</OPTION>"
		+ "<OPTION VALUE = 17>挟み込み５連鎖</OPTION>"
		+ "<OPTION VALUE = 18>挟み込み６連鎖</OPTION>"
		+ "<OPTION VALUE = 19>挟み込み７連鎖</OPTION>"
		+ "<OPTION VALUE = 20>挟み込み８連鎖</OPTION>"
		+ "<OPTION VALUE = 21>挟み込み９連鎖</OPTION>"
		+ "<OPTION VALUE = 22>挟み込み１０連鎖</OPTION>"
		+ "<OPTION VALUE = 23>挟み込み１１連鎖</OPTION>"
		+ "<OPTION VALUE = 24>挟み込み１２連鎖</OPTION>"
		+ "<OPTION VALUE = 25>挟み込み１３連鎖</OPTION>"
		+ "<OPTION VALUE = 26>挟み込み１４連鎖</OPTION>"
		+ "<OPTION VALUE = 27>挟み込み１５連鎖</OPTION>"
		+ "<OPTION VALUE = 28>平積み３連鎖</OPTION>"
		+ "<OPTION VALUE = 29>平積み４連鎖</OPTION>"
		+ "<OPTION VALUE = 30>平積み５連鎖</OPTION>"
		+ "<OPTION VALUE = 31>平積み６連鎖</OPTION>"
		+ "<OPTION VALUE = 32>平積み７連鎖</OPTION>"
		+ "<OPTION VALUE = 33>平積み８連鎖</OPTION>"
		+ "<OPTION VALUE = 34>平積み９連鎖</OPTION>"
		+ "<OPTION VALUE = 35>平積み１０連鎖</OPTION>"
		+ "<OPTION VALUE = 36>平積み１１連鎖</OPTION>"
		+ "<OPTION VALUE = 37>平積み１２連鎖</OPTION>"
		+ "<OPTION VALUE = 38>平積み１３連鎖</OPTION>"
		+ "<OPTION VALUE = 39>平積み１４連鎖</OPTION>"
		+ "<OPTION VALUE = 40>平積み１５連鎖</OPTION>"
		+ "<OPTION VALUE = 41>座布団３連鎖</OPTION>"
		+ "<OPTION VALUE = 42>座布団４連鎖</OPTION>"
		+ "<OPTION VALUE = 43>座布団５連鎖</OPTION>"
		+ "<OPTION VALUE = 44>座布団６連鎖</OPTION>"
		+ "<OPTION VALUE = 45>座布団７連鎖</OPTION>"
		+ "<OPTION VALUE = 46>座布団８連鎖</OPTION>"
		+ "<OPTION VALUE = 47>座布団９連鎖</OPTION>"
		+ "<OPTION VALUE = 48>座布団１０連鎖</OPTION>"
		+ "<OPTION VALUE = 49>座布団１１連鎖</OPTION>"
		+ "<OPTION VALUE = 50>座布団１２連鎖</OPTION>"
		+ "<OPTION VALUE = 51>座布団１３連鎖</OPTION>"
		+ "<OPTION VALUE = 52>座布団１４連鎖</OPTION>"
		+ "<OPTION VALUE = 53>座布団１５連鎖</OPTION>"
		+ "</SELECT><font size=\"2\"> （↑得点計算）</font><BR>\n"
		+ "<INPUT TYPE=\"button\" VALUE=\"ＵＲＬ\" onClick=\"writeurl()\"><font size=\"2\"> （↑フィールド図）</font><br>");
	document.write("<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
	document.write("<TR><TD ALIGN=\"RIGHT\">");
	document.write("参照URL：");
	document.write("</TD><TD>");
	document.write("<INPUT TYPE=\"text\" SIZE=25 id=\"ref_url\"><br>");
	document.write("</TD></TR>");
	document.write("<TR><TD ALIGN=\"RIGHT\">");
	document.write("挿入タグ：");
	document.write("</TD><TD>");
	document.write("<INPUT TYPE=\"text\" SIZE=25>");
	document.write("</TD></TR>");
	document.write("</FORM></TD></TR></TABLE>");
	document.write("</TD></TR></TABLE>");
	readmap();
}

function arrnum(n){
	this.length = n;
	for(i = 0; i < n; i++){
     		this[i]=0;
	}
}

function changecolor(c){
	pclr=c;
	document.images[112].src = pdname + pname[pclr];
}

function rensa(s){

	cn = eval(document.forms[0].elements[1].value);
	sc = eval(document.forms[0].elements[2].value);

	stopauto();
	if (re == 1) pictmap();

	if (soatmap(s) == 0) erasemap(s);

	document.forms[0].elements[1].value = cn;
	document.forms[0].elements[2].value = sc;
}

function putpuyo(n){
	if (pclr == 18) {
		for(i = n; i > 7; i = i - 8) map[i] = map[i - 8];
		map[n % 8] = 0;
	} else {
		if (document.forms[0].elements[0].checked){
			for(i = (n % 8); i < n; i = i + 8) map[i] = map[i + 8];
		}
		map[n] = pclr;
	}
	putpuyo2(n);
	re = 1;
}

function putpuyo1(n){
	if (pclr == 18) {
		for(i = n; i > 7; i = i - 8) document.images[i].src = pdname + pname[map[i - 8]];
		document.images[n % 8].src = pdname + pname[0];
	} else {
		if (document.forms[0].elements[0].checked){
			for(i = (n % 8); i < n; i = i + 8) document.images[i].src = pdname + pname[map[i + 8]];
		}
		document.images[n].src = pdname + pname[pclr];
	}
}

function putpuyo2(n){
	for(i = (n % 8); i <= n; i = i + 8) document.images[i].src = pdname + pname[map[i]];
}

function erasemap(s){
	ck = new arrnum(112);		// 各マスをチェックしたか
	sa = new arrnum(5);			// ある色のぷよが消えたか
	s1 = 0;						// 長連ボーナス
	s2 = 0;						// 多色消しボーナス
	s3 = 0;						// 連鎖ボーナス
	s4 = 0;						// 消えたぷよの数
	for(x = 1; x < 7; x++){
		for(y = 1; y < 13; y++){
			cf = x + y * 8;
			if((map[cf] > 12) && (ck[cf] == 0)){
				cl = 0; ch = 0;	cc = map[cf];
				cp[0] = cf;
				ck[cf] = 1;
				while (cl <= ch){
					for(z = 0; z < 4; z++){
						cf = cp[cl] + r[z];
						if((cf > 8) && (map[cf]==cc) && (ck[cf]==0)){
							ch++;
							cp[ch] = cf;
							ck[cf] = 2;
						}
					}
					cl++;
				}
				if(ch >= 3){
					// ぷよ消去
					for(i = 0; i <= ch; i++){
						map[cp[i]] = 1;
						document.images[cp[i]].src = pdname + pname[1];
						// おじゃまぷよ消去
						for(z = 0; z < 4; z++){
							cf = cp[i] + r[z];
							if((cf > 8) && (map[cf] > 1) && (map[cf] < 11)){
								map[cf]--;
								document.images[cf].src = pdname + pname[map[cf]];
							}
						}
					}
					// 消えたぷよの数
					s4 = s4 + ch + 1;
					// 長連ボーナス
					if(ch > 10){
						s1 += s1_bonus[tsu_or_fever][10];
					} else {
						s1 += s1_bonus[tsu_or_fever][ch];
					}
					// ある色のぷよが消えたか
					sa[cc - 13] = 1;
				}
			}
		}
	}
	// 多色消しボーナス
	s2 = sa[0] + sa[1] + sa[2] + sa[3] + sa[4] - 1;
	if(s2 > 4){
		s2 = s2_bonus[tsu_or_fever][4];
	} else if(s2 >= 0){
		s2 = s2_bonus[tsu_or_fever][s2];
	} else {
		s2 = -1;
	}
	// ぷよが消えたかチェック
	if (s2 >= 0) cn = cn + 1;
	else cn = 0;
	// 連鎖ボーナス
	if(cn > 19){
		s3 = s3_bonus[s3_type][18];
	} else if(cn > 0){
		s3 = s3_bonus[s3_type][cn - 1];
	} else {
		s3 = 0;
	}
	// 得点計算
	sb = (s1 + s2 + s3) * s4 * 10;
	if (sb == 0) sb = s4 * 10;
	sc = sc + sb;
	if (s == 1 && cn > 0){
		timerID = setTimeout("rensa(1)",500);
		timerOn = 1;
	}
}

function writeurl(){
	stopauto();
	pd = nurl[0] + "??";
	pd2 = "<iframe frameborder=\"0\" width=\"128\" height=\"224\" src=\"" + nurl2 + "?code=";
	pm = "";
	s = 0;
	for (y = 0; y < 13; y++){
		for (x = 1; x < 7; x = x + 1){
			puyo = map[x + y * 8];
			if (puyo == 13)      py = 4;
			else if (puyo == 14) py = 5;
			else if (puyo == 15) py = 6;
			else if (puyo == 16) py = 7;
			else if (puyo == 17) py = 8;
			else if (puyo == 2)  py = 1;
			else if (puyo == 12) py = 2;
			else if (puyo == 11) py = 3;
			else                 py = 0;
			pm = enco.charAt(py);
			if (s == 0){
				if (py == 0) pm = "";
				else s = 1;
			}
			pd = pd + pm;
			pd2 = pd2 + pm;
		}
	}
	pd2 = pd2 + "\"></iframe>";
	document.forms[0].elements[9].value = pd;
	document.forms[0].elements[10].value = pd2;

    var api = 'http://api.bit.ly/v3/shorten?login=inosendo&apiKey=R_530d528c80575e8ac2687f2fe7fe9239&format=json&callback=getBitLy&longUrl='+pd;
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = api;
    document.body.appendChild(script);
}

function getBitLy(json){
	document.forms[0].elements[9].value = json.data.url;
}

function createimage(){
	var rensim_image_url = nurl3 + "?code=";
	pm = "";
	s = 0;
	for (y = 0; y < 13; y++){
		for (x = 1; x < 7; x = x + 1){
			puyo = map[x + y * 8];
			if (puyo == 13)      py = 4;
			else if (puyo == 14) py = 5;
			else if (puyo == 15) py = 6;
			else if (puyo == 16) py = 7;
			else if (puyo == 17) py = 8;
			else if (puyo == 2)  py = 1;
			else if (puyo == 12) py = 2;
			else if (puyo == 11) py = 3;
			else                 py = 0;
			pm = enco.charAt(py);
			if (s == 0){
				if (py == 0) pm = "";
				else s = 1;
			}
			rensim_image_url = rensim_image_url + pm;
		}
	}
	var rensim_image = document.getElementById('rensim_image');
	rensim_image.src = rensim_image_url;
}

function filename(x,y){
	stopauto();
	pd = purl.charAt(x + y * 6 - 1);
	if (pd == "4") puyo = 13;
	else if (pd == "5") puyo = 14;
	else if (pd == "6") puyo = 15;
	else if (pd == "7") puyo = 16;
	else if (pd == "8") puyo = 17;
	else if (pd == "1") puyo = 2;
	else if (pd == "2") puyo = 12;
	else if (pd == "3") puyo = 11;
	else puyo = 0;
	map[x + y * 8] = puyo;
	map1[x + y * 8] = puyo;
	return pdname + pname[puyo];
}

function changetype(tp){
	s3_type = tp.options[tp.selectedIndex].value;
	if(s3_type == 0){
		tsu_or_fever = 0;
	} else {
		tsu_or_fever = 1;
	}
}

function makemap(md){
	stopauto();
	m = md.options[md.selectedIndex].value;
	document.forms[0].elements[1].value = 0;
	document.forms[0].elements[2].value = 0;
	if      (m == "0")  pm = "..............................................................................";
	else if (m == "1")  pm = purl;
	else if (m == "2")  pm = "000000000000000000000000000000000000000000000000000000005450006540006540006540";
	else if (m == "3")  pm = "000000000000000000000000000000000000000000000000006400045750064570064570064570";
	else if (m == "4")  pm = "000000000000000000000000000000000000000000000000005740074670057460057467757467";
	else if (m == "5")  pm = "000000000000000000000000000000000000000000000000040676075466067547067547067547";
	else if (m == "6")  pm = "000000000000000000000000000000500000600000500000560000574640657464657464657464";
	else if (m == "7")  pm = "000000000000000000000000000000500000700000500000570646565766756574756574756574";
	else if (m == "8")  pm = "000000000000000000000000400000500000650000560000566474574644657467657467657467";
	else if (m == "9")  pm = "000000000000000000500000600000560000560000677660567454574644657465657465657465";
	else if (m == "10") pm = "000000000000000000500000600000567000567005676665567454574644657465657465657465";
	else if (m == "11") pm = "000000000000000000500005600007547005447077575557547676574566657457657457657457";
	else if (m == "12") pm = "000000000000000007500006600045567044567055676665567454574644657465657465657465";
	else if (m == "13") pm = "000000000006000004500006700456576445566556774446576575565457756547756547756545";
	else if (m == "14") pm = "000000000070700055400454547774764557764774645554764767746577574656574656574656";
	else if (m == "15") pm = "000000000000000000000000000000000000000000000600000500005700005500066700065770";
	else if (m == "16") pm = "000000000000000000000000000000000000000000000000006000005740005540066770065744";
	else if (m == "17") pm = "000000000000000000000000000000000000000004000004000006005746005544066776065746";
	else if (m == "18") pm = "000000000000000000000000000000000000000005000007000006047546047744664556647546";
	else if (m == "19") pm = "000000000000000000000000600000500000500005500005600006647546647744554556547546";
	else if (m == "20") pm = "000000000000000000000000000000600000700000660000765406757456757755665446657456";
	else if (m == "21") pm = "000000000000000000000000000000660000460000655700465607474657474455667667674657";
	else if (m == "22") pm = "000000000000000000000000000000665000465004657704465747457457457755665447657457";
	else if (m == "23") pm = "000000000000000000000000000000665700767705655445765747757467757766665447657467";
	else if (m == "24") pm = "000000000000000000000000000005665704767755655445765747757467757766665447657467";
	else if (m == "25") pm = "000000000000000005000004000065445766747755455445745747754657754455445667454657";
	else if (m == "26") pm = "000000000004000045000054700055664744744755667445764747757467757766665447657467";
	else if (m == "27") pm = "000000000044000076005557574477665744767766755446665747757457757755665447657457";
	else if (m == "28") pm = "000000000000000000000000000000000000000000000000000004000004000477005544005477";
	else if (m == "29") pm = "000000000000000000000000000000000000000000000000000000000000045477666544555477";
	else if (m == "30") pm = "000000000000000000000000000000000000700000600000600004600004775477766544655477";
	else if (m == "31") pm = "000000000000000000000000000000000000000000600000450000556000445766466577655766";
	else if (m == "32") pm = "000000000000000000000000000000000000400000750000566000556500775477744544455477";
	else if (m == "33") pm = "000000000000000000000000000000000000760000447000775500447540665477677544755477";
	else if (m == "34") pm = "000000000000000000000000000000460000460000776650665544776654445477466544655477";
	else if (m == "35") pm = "000000000000000000000000000007640006640006554577445667554556665477644544455477";
	else if (m == "36") pm = "000000000000000000000004600007406005564055547577775447557554445477466544655477";
	else if (m == "37") pm = "000000000000000000000074000066460077460766776577665447776554445477466544655477";
	else if (m == "38") pm = "000000000000000000000054000566074455474566667655776445667664445477477544755477";
	else if (m == "39") pm = "000000000000000000065046066455675544675455447544775664447556665477677544755477";
	else if (m == "40") pm = "000000600054750057640664445655666566775655556566665446556554775477766544655477";
	else if (m == "41") pm = "000000000000000000000000000000000000000000500000400000700000555000777450444550";
	else if (m == "42") pm = "000000000000000000000000000000700000400000500000600000555000666000555470444770";
	else if (m == "43") pm = "000000000000000000500000400000700000600000500000444000555000666000777450444550";
	else if (m == "44") pm = "000000600000500000400000600000700000400000555000444000777000666000444560555660";
	else if (m == "45") pm = "000000400000700000700000600000400000700000666000777000444000666060775650444550";
	else if (m == "46") pm = "000000600000500000500000600000700000400000555000444000777007666057557575666775";
	else if (m == "47") pm = "000000400000700000700000600000400000700000666005777004444055666545775454444554";
	else if (m == "48") pm = "000000400000700000700000600005700004400005555006444066777655666545775454444554";
	else if (m == "49") pm = "000000400000700000700005400004500076700075666055777577555766444646775454444554";
	else if (m == "50") pm = "000000400000700000700000600000506006405576666567444677555755666545775454444554";
	else if (m == "51") pm = "000000400000700000700000600007565504757774666547777477555755666545775454444554";
	else if (m == "52") pm = "000000400000700000700645600664460546755446666567777677444755666545775454444554";
	else if (m == "53") pm = "000000500077400055740066750655660576755776666564777644555455666545775454444554";
	else if (m == "54") pm = "";
	for(y = 0; y < 13; y++){
		for(x = 0; x < 6; x++){
			pd = pm.charAt(x + y * 6);
			if (pd == "4") puyo = 13;
			else if (pd == "5") puyo = 14;
			else if (pd == "6") puyo = 15;
			else if (pd == "7") puyo = 16;
			else if (pd == "8") puyo = 17;
			else if (pd == "1") puyo = 2;
			else if (pd == "2") puyo = 12;
			else if (pd == "3") puyo = 11;
			else puyo = 0;
			map[x + y * 8 + 1] = puyo;
			document.images[x + y * 8 + 1].src = pdname + pname[puyo];
		}
	}
	re = 1;
}

function encode(){
	if (nurl.length > 2){
		for (i = 0;i < nurl[2].length;i++){
			n = enco.indexOf(nurl[2].charAt(i),0);
			purl = purl + enco.charAt(n, 0);
		}
	}
	if (nurl.length > 1) purl = purl + nurl[1];
	while(purl.length < 78) purl = "0" + purl;
}

function readmap(){
	for(y = 0; y < 104; y = y + 8){
		map[y] = 12; map[y + 7] = 12;
		for(x = 1; x < 7; x++){
			cf = x + y;
			pd = document.images[cf].src;
			pda = pd.split("/");
			pd = pda[pda.length - 1];
			puyo = 0;
			while(pd != pname[puyo]){
				puyo++;
			}
			map[cf] = puyo;
		}
	}
	for(y = 104; y < 112; y++) map[y] = 12;
	re = 1;
}

function remap(){
	stopauto();
	for(y = 0; y < 104; y = y + 8){
		for(x = 1; x < 7; x++){
			cf = x + y;
			map[cf] = map1[cf];
			document.images[cf].src = pdname + pname[map[cf]];

		}
	}
	document.forms[0].elements[1].value = 0;
	document.forms[0].elements[2].value = 0;
	re = 0;
}

function pictmap(){
	for(y = 0; y < 104; y = y + 8){
		for(x = 1; x < 7; x++){
			cf = x + y;
			map1[cf] = map[cf];
		}
	}
	re = 0;
}

function soatmap(s){
	f = 0;
	for(x = 1; x < 7; x++){
		dy = 0;
		for(y = 12; y >= 0; y--){
			cf = x + y * 8;
			if (map[cf] < 2) {
				map[cf] = 0;
				document.images[cf].src = pdname + pname[0];
				dy++;
			} else if (map[cf] == 12){
				dy = 0;
			} else if (dy > 0){
				puyo = map[cf];
				map[cf + dy * 8] = puyo;
				map[cf] = 0;
				document.images[cf + dy * 8].src = pdname + pname[puyo];
				document.images[cf].src = pdname + pname[0];
				f = 1;
			}
		}
	}
	if (s == 1 && f == 1){
		timerID = setTimeout("rensa(1)",500);
		timerOn = 1;
	}
	return f;
}

function auto(){
	if (timerOn == 1) stopauto();
	else rensa(1);
}

function stopauto(){
	clearTimeout(timerID);
	timerOn = 0;
}

