<?php
/* ---------- ---------- ---------- ---------- *
                  Album Factory                
                                               
         利用規約を守ってご利用下さい。        
  http://www.coolandcool.net/pcg/notice.html   
                                               
          by CoolandCool (www.coolandcool.net) 
* ---------- ---------- ---------- ---------- */
$ver = "4.0";

mb_internal_encoding("SJIS");
mb_regex_encoding("SJIS");
include("setup.php");
require("exifReader.inc");
set_form();

	if ( mb_strpos($_REQUEST["id"], "::") !== FALSE ) {
		if ( $_REQUEST["from"] !== "" ) { $_REQUEST["id"] = $_REQUEST["from"]; } else {
			out_error("絞り込み表示時に管理機能へ移動することはできません。<br>一度「アルバム一覧」をクリックし、<br>投稿したいアルバムを選択してください。");
		}
	}


if ( !$_REQUEST["mode"] ) {
	out_head();
	print <<<EOD
<form action="admin.php" method="post">
<input type="hidden" name="id" value="{$_REQUEST["id"]}">
<input type="hidden" name="mode" value="edit">
<p align=center class="user_fontsize"><b>AlbumFacotry アルバム管理メニュー</b></p>
<table border=1 cellpadding=8 cellspacing=0 align=center>
<tr><td class="user_fontsize" align="center"><br><font size=2>アルバム管理用パスワードを入力して下さい。</font><br><br><hr size=1>パスワード：<input type="password" name="usrpass" size=14><br><br>
<input type="submit" value="   実行   ">

</td></tr></table></form><BR><BR><BR><BR><hr>
EOD;
	out_footer();
	exit;
}

else if ( $_REQUEST["mode"] == "admin" ) {
	out_head();
	print <<<EOD
<form action="admin.php" method="post">
<input type="hidden" name="mode" value="edit">
<p align=center class="user_fontsize"><b>AlbumFacotry 管理メニュー</b></p>
<table width=250 border=1 cellpadding=10 cellspacing=0 align=center>
<tr><td class="user_fontsize" align="center">
<p align=left>
<input type=radio name=mode value=new>新規アルバム作成<br>
<input type=radio name=mode value=user>ユーザー管理<br>
<!-- <input type=radio name=mode value=res><font color=#CCCCCC>コメント管理</font><br> -->
<!-- <input type=radio name=mode value=art><font color=#CCCCCC>記事管理</font><br> -->
<input type=radio name=mode value=view>アルバムの表示順設定<br>
<input type=radio name=mode value=sec>セキュリティ設定<BR>
<input type=radio name=mode value=auto>画像一括アップロード</p>
<hr size=1>パスワード：<input type="password" name="usrpass" size=10><br><br>
<input type="submit" value="   実行   ">
</td></tr></table></form><BR><BR><BR><BR><hr>
EOD;
	out_footer();
	exit;
}

if ( $_REQUEST["mode"] == "edit" or $_REQUEST["mode"] == "new" ) {
	
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	
	if ( $_REQUEST["mode"] == "new" ) {
		$page_title = "新規アルバム作成";
		$_REQUEST["id"] = "";
		if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
		$confg_val[13] = $admin["add1"];
		$confg_val[14] = $admin["add2"];
		$confg_val[15] = $admin["add3"];
		$confg_val[16] = $admin["add4"];
		$confg_val[18] = $max_width;
		$confg_val[19] = $max_height;
		$confg_val[20] = $view_width;
		$confg_val[21] = $view_height;
		$confg_val[23] = $i_width;
		$confg_val[24] = $i_height;
		foreach ( $admin["color"] as $val ) { $confg_val[7] .= $val . ","; }
		foreach ( $cat as $val ) { $confg_val[8] .= $val . ","; }
	}
	else {
		$flag = 0;
		$config = @file("_log/config.php") or die;
		array_shift($config);
		array_pop($config);
		foreach ( $config as $val ) {
			$confg_val = mb_split("\t", $val);
			if ( $_REQUEST["id"] == $confg_val[0] ) { $flag = 1; break; }
		}
		if ( !$flag ) { out_error("アルバムの指定がありません。"); }
		$page_title = "No.{$_REQUEST["id"]}のアルバムを管理<br><a href=admin.php?id={$_REQUEST["id"]}&mode=makei&usrpass={$_REQUEST["usrpass"]} target=_blank>サムネイル再生成</a> | <a href=\"auto.php?idd={$_REQUEST["id"]}\">画像自動投稿</a>";
		
		if ( $_REQUEST["usrpass"] != $password and $_REQUEST["usrpass"] != $confg_val[11] ) {
			out_error("パスワードがイっちゃってます。");
		}
		
		if ( !$confg_val[23] or $confg_val[23] == "\n" ) { $confg_val[23] = $i_width; }
		if ( !$confg_val[24] or $confg_val[24] == "\n" ) { $confg_val[24] = $i_height; }
	}
	
	$time = time();
	$str = "$time\t{$_SERVER["HTTP_REFERER"]}\t{$_SERVER["HTTP_USER_AGENT"]}\t{$_SERVER["REMOTE_ADDR"]}\t\n";
	$old_data = @file("./_log/accs_admin.php");
	$data = @fopen("./_log/accs_admin.php", "a+");
	@flock($data, LOCK_EX);
	if ( count($old_data) >= 400 ) {
		array_splice($old_data, 0, count($old_data) - 300 + 1);
		ftruncate($data, 0);
		foreach ( $old_data as $val ) {
			fputs($data, $val);
		}
	}
	fputs($data, $str);
	@flock($data, LOCK_UN);
	fclose($data);
	
	if ( $confg_val[1]  ) { $img = "<img src=$confg_val[1]>"; } else { $img = "<img src={$img_dir}/title_b.jpg>"; }
	if ( !$confg_val[1] ) { $img_op = " checked"; }
	
	$confg_val[4] = mb_ereg_replace("<br>", "\n", $confg_val[4]);
	out_head();
	print <<<EOD
<form action="admin.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="{$_REQUEST["id"]}">
<input type="hidden" name="mode" value="regist">
<input type="hidden" name="pass" value="{$_REQUEST["usrpass"]}">
<input type="hidden" name="type" value="{$_REQUEST["mode"]}">
<input type="hidden" name="view_sort" value="{$confg_val[22]}">
<p align="center" class="user_fontsize"><b>$page_title</b></p><BR>
<p align="center">{$img}</p>
<table border="1" align="center" width="460" cellpadding="4" cellspacing="0">
<tr class="user_fontsize"><td align="center" width="130">タイトル画像</td><td><input type="checkbox" name="defimg" value="on"{$img_op}>デフォルトの画像を使う<BR><input name="file" type="file" size="20"><BR><font size=2> 現在使われている画像が上に表示されています。アルバムのタイトルにご自身の画像を使うには「参照」ボタンをクリックして指定します。「デフォルトの画像を使う」をクリックすると、プログラムが用意した画像が使われるようになります。</font></td></tr>
<tr class="user_fontsize"><td align="center">アルバム名</td><td><input type="text" name="title" value="{$confg_val[3]}" size=30></td></tr>
<tr class="user_fontsize"><td align="center">コメント</td><td><textarea name="comment" rows="4" cols="35">{$confg_val[4]}</textarea></td></tr>
<tr class="user_fontsize"><td align="center">アルバムの色</td><td>
EOD;
	
	# 色選択表示
	if ( $admin["color"][1] == "" ) { # 一色だけの場合はカラー選択非表示。
		print "<input type=hidden name=\"color\" value=\"{$admin["color"][0]}\">";
	} else {
		foreach ( $admin["color"] as $key => $val ) {
			if ( $confg_val[6] == $val ) {
				print "<input name=\"color\" type=\"radio\" value=\"$val\" checked><font size=2 color=\"$val\">■</font>\n";
			} else {
				print "<input name=\"color\" type=\"radio\" value=\"$val\"><font size=2 color=\"$val\">■</font>\n";
			}
		}
	}
	
	$selname = array("撮影日時順（古→新）", "ポイント順", "新着コメント順", "コメント数順", "カテゴリ分類", "撮影日時逆順（新→古）", "新着写真順");
	$select = "<select name=\"sort\">";
	for ( $i = 0; $i <= 6; $i++ ) {
		if ( $i == $confg_val[12] ) { $op = " selected"; } else { $op = ""; }
		$select .= "<option value=\"{$i}\"{$op}>{$selname[$i]}";
	}
	$select .= "</select>";
	
	$op = "";
	$selname = array("プロテクトON", "プロテクト解除");
	$selectB = "<select name=\"protect\">";
	for ( $i = 0; $i <= 1; $i++ ) {
		if ( $i == $confg_val[17] ) { $op = " selected"; } else { $op = ""; }
		$selectB .= "<option value=\"{$i}\"{$op}>{$selname[$i]}";
	}
	$selectB .= "</select>";
	
	print <<<EOD
</td></tr>
<tr class="user_fontsize"><td align="center">投稿時選択色</td><td><input type="text" name="usercolor" value="{$confg_val[7]}" size=50><BR><font size=2>カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">カテゴリ</td><td><input type="text" name="usercat" value="{$confg_val[8]}" size=50><BR><font size=2>カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">画像表示方法</td><td>{$selectB}<BR><font size=2> プロテクトをONにすると画像を簡単に保存されにくくします。</font></td></tr>
<tr class="user_fontsize"><td align="center">保存画像サイズ</td><td>最大横サイズ：<input type="text" name="or_x" value="{$confg_val[18]}" size=8><BR>最大縦サイズ：<input type="text" name="or_y" value="{$confg_val[19]}" size=8><BR>
	サムネイル最大横サイズ：<input type="text" name="th_x" value="{$confg_val[20]}" size=8><BR>サムネイル最大縦サイズ：<input type="text" name="th_y" value="{$confg_val[21]}" size=8><BR>
	携帯表示最大横サイズ：<input type="text" name="i_x" value="{$confg_val[23]}" size=8><BR>携帯表示最大縦サイズ：<input type="text" name="i_y" value="{$confg_val[24]}" size=8>
		</td></tr>
<tr class="user_fontsize"><td align="center">公開設定</td><td>ID:<input type="text" name="usrid" value="{$confg_val[9]}" size=18><BR>パスワード:<input type="text" name="usrpass" value="{$confg_val[10]}" size=18><BR><font size=2> このアルバムを見るためのアクセスパスワードです。IDとパスワードを設定すると、以後アルバムを見るにはそれらの入力が必要となります。不要な場合は（アルバムを公開したい場合は）両方とも空欄にしておいて下さい。</font></td></tr>
<tr class="user_fontsize"><td align="center">アルバム管理<br>パスワード</td><td><input type="text" name="masterpass" value="{$confg_val[11]}" size=18><BR><font size=2> このアルバムの設定を変更するためのアルバム管理パスワードです。</font></td></tr>
<tr class="user_fontsize"><td align="center">初期表示順</td><td>{$select}<BR><font size=2> このアルバムの初期表示順です。</font></td></tr>
<tr class="user_fontsize"><td align="center">付記1選択肢</td><td><input type="text" name="add1" value="{$confg_val[13]}" size=50><BR><font size=2> カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">付記2選択肢</td><td><input type="text" name="add2" value="{$confg_val[14]}" size=50><BR><font size=2> カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">付記3選択肢</td><td><input type="text" name="add3" value="{$confg_val[15]}" size=50><BR><font size=2> カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">付記4選択肢</td><td><input type="text" name="add4" value="{$confg_val[16]}" size=50><BR><font size=2> カンマ区切りで指定。</font></td></tr>
<tr class="user_fontsize"><td align="center">投稿許可ユーザー</td><td>
EOD;

	$usr_data = @file("./_log/user.php");
	foreach ( $usr_data as $key => $vals ) {
		$flag = 0;
		$val = mb_split("\t", $vals);
		$perm_num = explode(",", $val[2]);
		foreach ( $perm_num as $num ) {
			if ( $_REQUEST["id"] and $num == $_REQUEST["id"] ) { $flag = 1; break; }
		}
		if ( $flag ) {
			print "<input type=\"checkbox\" name=\"per_{$key}\" value=\"on\" checked>{$val[0]}<BR>";
		} else { print "<input type=\"checkbox\" name=\"per_{$key}\" value=\"on\">{$val[0]}<BR>"; }
	}
	
	print <<<EOD
</td></tr></table>
<p align="center" class="user_fontsize"><input type="checkbox" name="del" value="on">削除する&nbsp;&nbsp;&nbsp;<input type="submit" value="    保存    "></p>
</form>
<hr>
EOD;
out_footer();
exit;
}

else if ( $_REQUEST["mode"] == "auto" ) {
	header("Location: ./auto.php?id={$_REQUEST["id"]}");
}
else if ( $_REQUEST["mode"] == "regist" ) {
	if ( !$_REQUEST["pass"] ) { out_error("パスワードを無くしちゃいました！"); }
	
	$new_id = 1;
	
	$config = @file("_log/config.php");
	if ( !$config ) { $config = array(); $new_id = 1; }
	array_shift($config);
	array_pop($config);
	foreach ( $config as $val ) {
		$confg_val = mb_split("\t", $val);
		if ( $_REQUEST["id"] == $confg_val[0] ) { $master = $val; }
		if ( $confg_val[0] >= $new_id ) { $new_id = $confg_val[0] + 1; }
	}
	$confg_val = mb_split("\t", $master);
	
	if ( $_REQUEST["type"] == "new" ) {
		$time = time();
		$_REQUEST["id"] = $new_id;
		if ( !$_REQUEST["masterpass"] ) { $_REQUEST["masterpass"] = make_name(8); }
		if ( $_REQUEST["pass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
		
		$out_data = <<<EOD
function RunAlbumFactory() {
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="AlbumFactory" align="left">\\n<param name="sameDomain" value="always" />\\n<param name="menu" value="false" />\\n<param name="quality" value="high" />\\n<param name="salign" value="lt" />\\n<param name=FlashVars value="afid={$new_id}">\\n<param name="bgcolor" value="#000000" />\\n<param name="movie" value="coolpics2.swf" />\\n<embed src="coolpics2.swf" menu="false" quality="high" bgcolor="#000000" width="100%" height="100%" name="AlbumFactory" salign="lt" align="left" FlashVars="afid={$new_id}" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" allowScriptAccess="sameDomain" />\\n</object>');
	}
EOD;
		$usr_file = @fopen("./_log/af{$new_id}.js", "a") or out_error("ファイルオープンエラー");
		flock($usr_file, LOCK_EX);
		ftruncate($usr_file, 0);
		fputs($usr_file, $out_data);
		flock($usr_file, LOCK_UN);
		fclose($usr_file);
		
	}
	else {
		if ( $_REQUEST["pass"] != $password and $_REQUEST["pass"] != $confg_val[11] ) {
			out_error("パスワードがイっちゃってます。");
		} else {
			$time = $confg_val[5];
		}
	}
	
	$usr_data = @file("./_log/user.php");
	$usr_file = @fopen("./_log/user.php", "a") or out_error("ファイルオープンエラー");
	flock($usr_file, LOCK_EX);
	ftruncate($usr_file, 0);
	foreach ( $usr_data as $key => $vals ) {
		$flag = 0;
		$val = mb_split("\t", $vals);
		$perm_num = explode(",", $val[2]);
		foreach ( $perm_num as $num ) {
			if ( $_REQUEST["id"] and $num == $_REQUEST["id"] ) { $flag = 1; break; }
		}
		
		
		if ( $_REQUEST["per_{$key}"] and !$flag ) { $val[2] .= "{$_REQUEST["id"]},"; }
		else if ( !$_REQUEST["per_{$key}"] and $flag ) { $val[2] = mb_ereg_replace("{$_REQUEST["id"]},", "", $val[2] ); }
		
		$newusr = "{$val[0]}\t{$val[1]}\t{$val[2]}\t\n";
		fputs($usr_file, $newusr);
	}
	flock($usr_file, LOCK_UN);
	fclose($usr_file);
	
	
	if ( $_REQUEST["del"] ) {
		# カウンターファイルを削除
		unlink("_cnt/{$_REQUEST["id"]}.txt");
		
		# 記事画像を削除
		$dir = dir("{$img_dir}/{$confg_val[2]}");
		if ( $dir ) {
			while( $file = $dir -> read() ) {
				if ( $file != '.' and $file != '..' ) {
					@unlink("{$img_dir}/{$confg_val[2]}/{$file}");
				}
			}
		}
		@rmdir("{$img_dir}/{$confg_val[2]}");
		
		$data = @file("./_log/{$_REQUEST["id"]}.php");
		if ( !$data ) { $data = array(); }
		foreach ( $data as $vals ) {
			$val = mb_split("\t", $vals);
			# 記事毎のカウントファイルを削除
			@unlink("./_log/{$val[0]}.php");
			# 記事毎のアクセスファイルを削除
			@unlink("./_log/acc_{$val[0]}.php");
			# 記事毎のレスファイルを削除
			@unlink("./_res/{$val[0]}.php");
			# FLASAH用記事単位データーファイルを削除
			@unlink("./_res/{$val[0]}d.php");
		}
		# 記事ファイルを削除
		@unlink("./_log/{$_REQUEST["id"]}.php");
		
		# FLASH用アルバム単位データーファイルを削除
		@unlink("./_log/{$_REQUEST["id"]}d.php");
		@unlink("./_log/{$_REQUEST["id"]}m.php");
		@unlink("./_log/af{$_REQUEST["id"]}.js");
		
		
		
		$upinfo = @file("_log/upinfo.php");
		if ( !$upinfo ) { $upinfo = array(); }
		$usr_file = @fopen("_log/upinfo.php", "a") or out_error("ファイルオープンエラー");
		flock($usr_file, LOCK_EX);
		ftruncate($usr_file, 0);
		foreach ( $upinfo as $val ) {
			$vals = mb_split("\t", $val);
			if ( $_REQUEST["id"] != $vals[1] ) { fputs($usr_file, $val); }
		}
		flock($usr_file, LOCK_UN);
		fclose($usr_file);
		
		
		
		
	}
	
	else { # 削除ではないとき
		
		if ( $_REQUEST["type"] == "new" ) {
			$dir_name = make_name(8);
			mkdir("{$img_dir}/{$dir_name}");
			chmod("{$img_dir}/{$dir_name}", 0777);
			
		}
		else {
			$dir_name = make_name(8);
			rename("{$img_dir}/{$confg_val[2]}", "{$img_dir}/{$dir_name}") or out_error("再試行してください。");
			
			$upinfo = @file("_log/upinfo.php");
			if ( !$upinfo ) { $upinfo = array(); }
			$usr_file = @fopen("_log/upinfo.php", "a") or out_error("ファイルオープンエラー");
			flock($usr_file, LOCK_EX);
			ftruncate($usr_file, 0);
			foreach ( $upinfo as $val ) {
				$str = mb_ereg_replace(trim($confg_val[2]), $dir_name, $val);
				fputs($usr_file, $str);
			}
			flock($usr_file, LOCK_UN);
			fclose($usr_file);
		}
		
		$usr_file = @fopen("./_log/{$_REQUEST["id"]}m.php", "a") or out_error("ファイルオープンエラー");
		flock($usr_file, LOCK_EX);
		ftruncate($usr_file, 0);
		fputs($usr_file, "mdir={$dir_name}&mdirlast=ok");
		flock($usr_file, LOCK_UN);
		fclose($usr_file);
	}
	
	
	$upinfo_data = @file("./_log/upinfo.php");
	$upinfo_data = array_reverse($upinfo_data);
	$info_img = "";
	$m = 1;
	foreach ( $upinfo_data as $val ) {
		$vals = split("\t",$val);
		if ( file_exists("{$vals[2]}/{$vals[0]}s.jpg") ) { $info_img .= "<a href=\"album.php?_v={$vals[0]}&id={$vals[1]}&mode=res_form\"><img src=\"{$master_url}{$vals[2]}/{$vals[0]}s.jpg\" border=0></a>{$info_tab}"; }
		else if ( file_exists("{$vals[2]}/{$vals[0]}m.jpg") ) { $info_img .= "<a href=\"album.php?_v={$vals[0]}&id={$vals[1]}&mode=res_form\"><img src=\"{$master_url}{$vals[2]}/{$vals[0]}m.jpg\" border=0></a>{$info_tab}"; }
		else { $info_img .= "<a href=\"album.php?_v={$vals[0]}&id={$vals[1]}&mode=res_form\"><img src=\"{$master_url}{$vals[2]}/{$vals[0]}{$add_name}.jpg\" border=0></a>{$info_tab}"; }
		
		$m++;
		if ( $m > $info_many ) { break; }
	}
	$whatsupjs = @fopen("./_log/upinfo.js", "a");
	flock($whatsupjs, LOCK_EX);
	ftruncate($whatsupjs, 0);
	fputs($whatsupjs, "document.write('{$info_img}')");
	flock($whatsupjs, LOCK_UN);
	fclose($whatsupjs);
	
	
	foreach ( $upinfo_data as $val ) {
		$vals = split("\t",$val);
		if ( file_exists("{$vals[2]}/{$vals[0]}s.jpg") ) { $md3 .= ",{$vals[2]}/{$vals[0]}s.jpg"; }
		else if ( file_exists("{$vals[2]}/{$vals[0]}m.jpg") ) { $md3 .= ",{$vals[2]}/{$vals[0]}m.jpg"; }
		else { $md3 .= ",{$vals[2]}/{$vals[0]}{$vals[15]}.jpg"; }
		$md1 .= ",{$vals[1]}";
		$md2 .= ",{$vals[0]}";
		$md4 .= ",{$vals[3]}";
		$md5 .= ",{$vals[4]}";
		$md6 .= ",{$vals[7]}";
		$md7 .= ",{$vals[8]}";
	}
	
	$whatsup = @fopen("./_log/upinfod.php", "a");
	flock($whatsup, LOCK_EX);
	ftruncate($whatsup, 0);
	fputs($whatsup, "mid={$md1}&imid={$md2}&img_url={$md3}&ititle={$md4}&iname={$md5}&dscr={$md6}&date={$md7}&last=ok");
	flock($whatsup, LOCK_UN);
	fclose($whatsup);
	
	
	
	# タイトル画像処理
	if ( !$_REQUEST["del"] and $_FILES["file"]["tmp_name"] ) {
		if ( !is_uploaded_file($_FILES["file"]["tmp_name"]) ) { out_error("エラーコード3"); }
		$img_file = $_FILES["file"]["tmp_name"][$i];
		list($width, $height, $type) = getimagesize($_FILES["file"]["tmp_name"]);
		if ( $type != 1 and $type != 2 and $type != 3 ) { out_error("エラーコード4 {type}"); }
		move_uploaded_file($_FILES["file"]["tmp_name"], "{$img_dir}/title{$_REQUEST[id]}.jpg");
		$titlimg = "{$img_dir}/title{$_REQUEST[id]}.jpg";
	}
	else if ( $_REQUEST["defimg"] ) { $titlimg = ""; @unlink("{$img_dir}/title{$_REQUEST[id]}.jpg"); }
	else { $titlimg = $confg_val[1]; }
	
	$new_data = "{$_REQUEST["id"]}\t{$titlimg}\t{$dir_name}\t{$_REQUEST["title"]}\t{$_REQUEST["comment"]}\t{$time}\t{$_REQUEST["color"]}\t{$_REQUEST["usercolor"]}\t{$_REQUEST["usercat"]}\t{$_REQUEST["usrid"]}\t{$_REQUEST["usrpass"]}\t{$_REQUEST["masterpass"]}\t{$_REQUEST["sort"]}\t{$_REQUEST["add1"]}\t{$_REQUEST["add2"]}\t{$_REQUEST["add3"]}\t{$_REQUEST["add4"]}\t{$_REQUEST["protect"]}\t{$_REQUEST["or_x"]}\t{$_REQUEST["or_y"]}\t{$_REQUEST["th_x"]}\t{$_REQUEST["th_y"]}\t{$_REQUEST["view_sort"]}\t{$_REQUEST["i_x"]}\t{$_REQUEST["i_y"]}\t\n";
	
	
	$new_config = array();
	if ( $_REQUEST["type"] == "new" ) { array_push($config, $new_data); }
	else {
		foreach ( $config as $value ) {
			$val = mb_split("\t", $value);
			if ( $val[0] == $_REQUEST["id"] ) {
				if ( !$_REQUEST["del"] ) { array_push($new_config, $new_data); }
			}
			else { array_push($new_config, $value); }
		}
		$config = $new_config;
	}
	
	#######################################################
	$file = @fopen("_log/config.php", "a") or out_error("ファイルオープンエラー");
	flock($file, LOCK_EX);
	ftruncate($file, 0);
	fputs($file, "<? php\n");
	foreach ( $config as $value ) {
		fputs($file, $value);
	}
	fputs($file, "php ?>\n");
	flock($file, LOCK_UN);
	fclose($file);
	
	if ( $_REQUEST["del"] ) { header("Location: ./album.php?mode=title"); } else {
	header("Location: ./album.php?id={$_REQUEST["id"]}"); }
	exit;
	
}

else if ( $_REQUEST["mode"] == "user" ) {
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	$usr_data = @file("./_log/user.php");
	
	if ( $_REQUEST["fin"] ) { $sp_mssg = "<p align=center class=\"user_fontsize\"><font color=red>登録しました。</font></p>"; }
	
	out_head();
	
	print <<<EOD
<form action="admin.php" method="post">
<input type="hidden" name="mode" value="usr_regist">
<input type="hidden" name="usrpass" value="{$_REQUEST["usrpass"]}">
<p align=center class="user_fontsize"><b>AlbumFacotry ユーザー編集メニュー</b></p>
$sp_mssg
<table border=1 cellpadding=8 cellspacing=0 align=center width=500>
<tr><td class="user_fontsize"><p><font size=2>AlbumFactoryで画像投稿を許可するユーザー名とパスワード（修正キー）を設定します。パスワード（修正キー）には<b>半角のアルファベットと数字</b>しか使えないので注意して下さい。一度に新規追加できるのは5名までです。新規で5名以上追加する場合は、一度登録してから再度登録を続けてください。ユーザーを削除したい場合は、ユーザー名だけを空欄にすれば削除されます。</p><hr size=1><p>
EOD;
	
		/*
	foreach ( $config as $val ) {
		$confg_val = mb_split("\t", $val);
		print "<a href=\"album.php?id={$confg_val[0]}\" target=_blank>{$confg_val[3]}</a><br>";
		
		foreach ( $usr_data as $vals ) {
			$usr_val  = mb_split("\t", $vals);
			$usr_nums = mb_split(",", $usr_val[2]);
			
			$flag = 0;
			foreach ( $usr_nums as $usr_nums_val ) {
				if ( $usr_nums_val == $confg_val[0] or $usr_nums_val == "all" ) {
					$flag = 1;
					break;
				}
			}
			if ( $flag ) { print "<input type=checkbox name=". $num . "_" . $al . " val=on checked>$usr_val[0]&nbsp;&nbsp;"; }
			else { print "<input type=checkbox name=". $num . "_" . $al . " val=on>$usr_val[0]&nbsp;&nbsp;&nbsp;"; }
		$num ++;
		}
		print "<BR><BR>";
	}
	*/
	
	for ($i = 1; $i < 6; $i++ ) { array_push($usr_data , "\n"); }
	
	$num = 0;
	foreach ( $usr_data as $vals ) {
		$val = mb_split("\t", $vals);
		print "ユーザー名:<input type=text name=\"usr" . $num . "\" value=\"" . $val[0] . "\">　";
		print "パスワード:<input type=text name=\"pas" . $num . "\" value=\"" . $val[1] . "\"><br>";
		$num ++;
	}
	
	print <<<EOD
</p><p align=center><input type="submit" value="   保存   "></p>
</td></tr></table></form><BR><BR><BR><BR><hr>
EOD;
	out_footer();
	exit;
}

else if ( $_REQUEST["mode"] == "usr_regist" ) {
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	$usr_data = @file("./_log/user.php");
	
	$max_usr = count($usr_data) + 5;
	$new = array();
	
	for ( $i = 0; $i < $max_usr; $i++ ) {
		if ( $_REQUEST["usr{$i}"] and $_REQUEST["pas{$i}"] ) {
			$dam = mb_split("\t", $usr_data[$i]);
			array_push($new, "{$_REQUEST["usr{$i}"]}\t{$_REQUEST["pas{$i}"]}\t$dam[2]\t\n");
		}
	}
	
	$usr_file = @fopen("./_log/user.php", "a") or out_error("ファイルオープンエラー");
	flock($usr_file, LOCK_EX);
	ftruncate($usr_file, 0);
	foreach ( $new as $val ) {
		fputs($usr_file, $val);
	}
	flock($usr_file, LOCK_UN);
	fclose($usr_file);
	header("Location: ./admin.php?mode=user&usrpass={$_REQUEST["usrpass"]}&fin=1");
	exit;
}

else if ( $_REQUEST["mode"] == "sec" ) {
	
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	$sec_data = @file("./_log/SeCuRiTy.php") or out_error("かなりヤバイ！！");
	$sec_data = mb_ereg_replace("<br>", "\n", $sec_data[0]);
	$sec_vals = mb_split("<>", $sec_data);
	if ( $sec_vals[5] ) { $jponlyflag = " checked"; }
	
	out_head();
	print <<<EOD
<form action="admin.php" method="post">
<input type="hidden" name="mode" value="sec_regist">
<input type="hidden" name="usrpass" value="{$_REQUEST["usrpass"]}">
<input type="hidden" name="deny5" value="{$sec_vals[4]}">
<p align=center class="user_fontsize"><b>AlbumFacotry セキュリティ設定メニュー</b></p>
<table border=1 cellpadding=8 cellspacing=0 align=center width=500>
<tr><td class="user_fontsize">
<p><input type="checkbox" name="jponly" value="on"{$jponlyflag}>日本語が無いコメントを禁止する</p>
	<hr size=1><p><font size=2>それぞれ改行で区切ってください。</p><p>
	アクセス禁止ユーザー名（完全一致時にアクセス禁止）<BR>
	<textarea name="deny1" cols="50" rows="4">{$sec_vals[0]}</textarea><BR><BR>
	アクセス禁止IPアドレス（部分一致時にアクセス禁止）<BR>
	<textarea name="deny2" cols="50" rows="4">{$sec_vals[1]}</textarea><BR><BR>
	投稿禁止語句（部分一致時に書き込み中断）<BR>
	<textarea name="deny3" cols="50" rows="4">{$sec_vals[2]}</textarea><BR><BR>
	連続閲覧禁止時間（この秒数内に5回の操作があると自動的に10日間のアクセス禁止）<BR>
	<input type="text" name="deny4" size="6" value="{$sec_vals[3]}">秒<BR>
</p><p align=center><input type="submit" value="   保存   "></p>
</td></tr></table></form><BR><BR><BR><BR><hr>
EOD;
	out_footer();
	exit;
}

else if ( $_REQUEST["mode"] == "sec_regist" ) {
	
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	
	$usr_file = @fopen("./_log/SeCuRiTy.php", "a") or out_error("ファイルオープンエラー");
	flock($usr_file, LOCK_EX);
	ftruncate($usr_file, 0);
	fputs($usr_file, "{$_REQUEST["deny1"]}<>{$_REQUEST["deny2"]}<>{$_REQUEST["deny3"]}<>{$_REQUEST["deny4"]}<>{$_REQUEST["deny5"]}<>{$_REQUEST["jponly"]}<>");
	flock($usr_file, LOCK_UN);
	fclose($usr_file);
	header("Location: ./album.php?mode=title");
	exit;
}

else if ( $_REQUEST["mode"] == "view" ) {
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	
	$config = @file("_log/config.php") or die;
	array_shift($config);
	array_pop($config);
	natcasesort ( $config );
	$config = array_reverse($config);
	
	out_head();
	
	print <<<EOD
<form action="admin.php" method="post">
<input type="hidden" name="mode" value="regist_viewsort">
<input type="hidden" name="usrpass" value="{$_REQUEST["usrpass"]}">
<p align="center" class="user_fontsize"><b>アルバム表示順設定</b></p>
<table border="1" align="center" width="460" cellpadding="4" cellspacing="0">
<tr class="user_fontsize"><td align="center">表示順</td><td align="center">アルバム名</td></tr>
EOD;
	
	foreach ( $config as $val ) {
		$confg_val = mb_split("\t", $val);
		print "<tr class=\"user_fontsize\"><td><input type=\"text\" name=\"id_{$confg_val[0]}\" value=\"{$confg_val[22]}\" size=\"4\"></td><td><a href=\"album.php?id={$confg_val[0]}\" target=\"_blank\">{$confg_val[3]}</a></td></tr>";
	}
	
	print <<<EOD
</table>
<p align="center"><input type="submit" value="    保存    "></p>
</form>
<hr>
EOD;
out_footer();
exit;
}

else if ( $_REQUEST["mode"] == "regist_viewsort" ) {
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	if ( $_REQUEST["usrpass"] != $password ) { out_error("パスワードがイっちゃってます。"); }
	
	$new = array();
	
	$config = @file("_log/config.php") or die;
	array_shift($config);
	array_pop($config);
	foreach ( $config as $val ) {
		$confg_val = mb_split("\t", $val);
		if ( $_REQUEST["id_{$confg_val[0]}"] ) {
			$new_data = "{$confg_val[0]}\t{$confg_val[1]}\t{$confg_val[2]}\t{$confg_val[3]}\t{$confg_val[4]}\t{$confg_val[5]}\t{$confg_val[6]}\t{$confg_val[7]}\t{$confg_val[8]}\t{$confg_val[9]}\t{$confg_val[10]}\t{$confg_val[11]}\t{$confg_val[12]}\t{$confg_val[13]}\t{$confg_val[14]}\t{$confg_val[15]}\t{$confg_val[16]}\t{$confg_val[17]}\t{$confg_val[18]}\t{$confg_val[19]}\t{$confg_val[20]}\t{$confg_val[21]}\t{$_REQUEST["id_{$confg_val[0]}"]}\t{$confg_val[23]}\t{$confg_val[24]}\t\n";
		} else {
			$new_data = $val;
		}
		array_push($new, $new_data);
	}
	
	########################################################
	$file = @fopen("_log/config.php", "a") or out_error("ファイルオープンエラー");
	flock($file, LOCK_EX);
	ftruncate($file, 0);
	fputs($file, "<? php\n");
	foreach ( $new as $value ) {
		fputs($file, $value);
	}
	fputs($file, "php ?>\n");
	flock($file, LOCK_UN);
	fclose($file);
	header("Location: ./album.php?mode=title");
	exit;
}

else if ( $_REQUEST["mode"] == "makei" ) {
	
	if ( !$_REQUEST["usrpass"] ) { out_error("パスワードを無くしちゃいました！"); }
	
	$config = @file("_log/config.php");
	if ( !$config ) { out_error("データーがありません。"); }
	array_shift($config);
	array_pop($config);
	foreach ( $config as $val ) {
		$confg_val = mb_split("\t", $val);
		if ( $_REQUEST["id"] == $confg_val[0] ) { $conf_flag = 1; break; }
	}
	
	if ( $_REQUEST["usrpass"] != $password and $_REQUEST["usrpass"] != $confg_val[11] ) {
		out_error("パスワードがイっちゃってます。");
	}
	
	
	$data = @file("./_log/{$_REQUEST["id"]}.php");
	natsort($data);
	
	if ( $_REQUEST["c"] >= count($data) ) {
		header("Location: ./album.php?id={$_REQUEST["id"]}");
	} else { $_REQUEST["c"]++; }
	
	if ( $confg_val[18] ) { $max_width   = $confg_val[18]; }
	if ( $confg_val[19] ) { $max_height  = $confg_val[19]; }
	if ( $confg_val[20] ) { $view_width  = $confg_val[20]; }
	if ( $confg_val[21] ) { $view_height = $confg_val[21]; }
	if ( $confg_val[23] and $confg_val[23] != "\n" ) { $i_width  = $confg_val[23]; }
	if ( $confg_val[24] and $confg_val[24] != "\n" ) { $i_height = $confg_val[24]; }
	
	
	
	if ( !$conf_flag ) { out_error("該当するデーターがありません。"); }
	
	$new_data = array();
	$folder = "{$img_dir}/{$confg_val[2]}/";
	if ( !$_REQUEST["num"] ) { $d_flag = 1; }
	
	foreach ( $data as $values ) {
		$value = mb_split("\t", $values);
		
		if ( $d_flag ) {
			$img_file = "{$folder}{$value[0]}{$value[28]}.jpg";
			list($width, $height, $type) = getimagesize($img_file);
			
			$src = imagecreatefromjpeg($img_file) or out_error("Jpgファイルの生成に失敗。");
			$dst = imagecreatetruecolor(30, 30);
			
			if ( $width > 150 and $height > 150 ) {
				$width1  = (int) ( $width / 2.5 );
				$height1 = (int) ( $height / 2.5 );
				
						if ( $width1 < $height1 ) { $cw = $height1; }
						else { $cw = $width1; }
				
						if ( $width > $height ) {
							$r_w = rand(-$width / 15, $width / 15);
							$r_h = rand(-$height / 20, $height / 20);
						} else {
							$r_w = rand(-$width / 20, $width / 20);
							$r_h = rand(-$height / 15, $height / 15);
						}
				
						imagecopyresampled ($dst, $src, 0, 0, ( $width - ((7/10)*$width)) + $r_w, ( $height - ((7/10)*$height)) + $r_h, 30, 30, $cw, $cw) or out_error("画像ファイルの縮小処理に失敗。");
				#	@imagefilter($dst, IMG_FILTER_CONTRAST, -20);
				#	@imagefilter($dst, IMG_FILTER_BRIGHTNESS, 10);
				imagejpeg ($dst, "{$folder}{$value[0]}i.jpg", 90);
				chmod("{$folder}{$value[0]}i.jpg", 0644);
			}
			else if ( $width > 30 or $height > 30 ) {
				
				if ( $width > $height ) { $s_w = ( $width - $height ) / 2; $s_h = 0; $width = $height; }
				else { $s_h = ( $height - $width ) / 2; $s_w = 0; $height = $width; }
				
				imagecopyresampled ($dst, $src, 0, 0, $s_w, $s_h, 30, 30, $width , $height) or out_error("画像ファイルの縮小処理に失敗。");
				#	@imagefilter($dst, IMG_FILTER_CONTRAST, -20);
				#	@imagefilter($dst, IMG_FILTER_BRIGHTNESS, 10);
				imagejpeg ($dst, "{$folder}{$value[0]}i.jpg", 90);
				chmod("{$folder}{$value[0]}i.jpg", 0644);
			} else {
				copy($img_file, "{$folder}{$value[0]}i.jpg");
				chmod("{$folder}{$value[0]}i.jpg", 0644);
			}
			
			@imagedestroy($dst); @imagedestroy($src);
			
			
			# if ( !file_exists("{$folder}{$value[0]}s.jpg") ) {
			
				# サムネイル画像生成処理
				$flag_resize = 0;
				if ( $width > $view_width or $height > $view_height ) {
					$flag_resize = 1;
					$rate_width  = $view_width  / $width;
					$rate_height = $view_height / $height;
					if ( $rate_width < $rate_height ) { $rate = $rate_width; }
					else { $rate = $rate_height; }
					$new_width  = (int) ( $width  * $rate );
					$new_height = (int) ( $height * $rate );
				}
				else { $new_width = $width; $new_height = $height; }
				
				if ( $flag_resize ) {
					$img_src = imagecreatefromjpeg("$img_file");
					
					$new_img = imagecreatetruecolor($new_width, $new_height);
					imagecopyresampled($new_img, $img_src, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
					imagejpeg($new_img, "{$folder}{$value[0]}s.jpg", 90);
					chmod("{$folder}{$value[0]}s.jpg", 0644);
					imagedestroy($new_img);
				} else {
					# copy($img_file, "{$folder}{$value[0]}s.jpg");
					# chmod("{$folder}{$value[0]}s.jpg", 0644);
				}
			# }
			
			
			# if ( !file_exists("{$folder}{$value[0]}m.jpg") ) {
				# ケータイ用表示画像
				$flag_resize = 0;
				if ( $width > $i_width or $height > $i_height ) {
					$flag_resize = 1;
					$rate_width  = $i_width  / $width;
					$rate_height = $i_height / $height;
					if ( $rate_width < $rate_height ) { $rate = $rate_width; }
					else { $rate = $rate_height; }
					$n_width  = (int) ( $width  * $rate );
					$n_height = (int) ( $height * $rate );
				}
				else { $n_width = $width; $n_height = $height; }
				
				if ( $flag_resize ) {
				    $img_src = imagecreatefromjpeg("$img_file");
					
					$new_img = imagecreatetruecolor($n_width, $n_height);
					imagecopyresampled($new_img, $img_src, 0, 0, 0, 0, $n_width, $n_height, $width, $height);
					imagejpeg($new_img, "{$folder}{$value[0]}m.jpg", 80);
					chmod("{$folder}{$value[0]}m.jpg", 0644);
					imagedestroy($new_img);
				} else {
					# copy($img_file, "{$folder}{$value[0]}m.jpg");
					# chmod("{$folder}{$value[0]}m.jpg", 0644);
				}
			# }
			
			$editdata = "{$value[0]}\t{$value[1]}\t{$value[2]}\t{$value[3]}\t{$value[4]}\t{$value[5]}\t{$value[6]}\t{$value[7]}\t{$new_width}\t{$new_height}\t{$value[10]}\t{$value[11]}\t{$value[12]}\t{$value[13]}\t{$value[14]}\t{$value[15]}\t{$value[16]}\t{$value[17]}\t{$value[18]}\t{$value[19]}\t{$value[20]}\t{$value[21]}\t{$value[22]}\t{$value[23]}\t{$value[24]}\t{$value[25]}\t{$value[26]}\t{$value[27]}\t{$value[28]}\t{$value[29]}\t{$value[30]}\t{$m_width}\t{$m_height}\t\n";
			array_push($new_data, $editdata);
			$now_num = $value[0];
			$d_flag = "";
		}
		else {
			array_push($new_data, $values);
		}
		
		if ( $_REQUEST["num"] and $value[0] == $_REQUEST["num"] ) { $d_flag = 1; }
	}
	
	
	
	$file = @fopen("_log/{$_REQUEST["id"]}.php", "a") or out_error("書き込みミスったくさい！");
	flock($file, LOCK_EX);
	ftruncate($file, 0);
	foreach ( $new_data as $value ) {
		fputs($file, $value);
	}
	flock($file, LOCK_UN);
	fclose($file);
	
	
	print <<<EOD
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="1;URL=admin.php?id={$_REQUEST["id"]}&mode=makei&num={$now_num}&c={$_REQUEST['c']}&usrpass={$_REQUEST["usrpass"]}">
<title>AlbumFactory 自動サムネイル画像生成</title>
</head><body bgcolor=#000000 text = #FFFFFF>
<BR><BR><BR><BR><center>アルバム「{$confg_val[3]}」のサムネイル画像を再生成中…。({$_REQUEST['c']})<BR><BR><br>このウインドウを閉じないで下さい。</center>
</body></html>
EOD;
exit;
}
else if ( $_REQUEST["mode"] == "repair" ) {
	
}


function out_head() {
	global $fontsize;
	print <<< EOD
<html>
<head>
<!-- 眉屈 -->
<Meta http-equiv="content-type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title>Album Factory</title>

<style type="text/css">
<!--
.font9pt { font-size: 9pt; }
.font10pt { font-size: 10pt; }
.font11pt { font-size: 11pt; }
.font12pt { font-size: 12pt; }
.user_fontsize { font-size: {$fontsize}pt; }
p { line-height: 1.3; }
-->
</style>

</head>
<body text=#1D5EE4 vLink=#0000ff aLink=#0000ff link=#0000ff bgColor=#E7E7E7 leftmargin=2 topmargin=2 marginwidth=2 marginheight=2 background=img/back3.gif>
<p align=left class="user_fontsize">[<a href=album.php?mode=title>戻る</a>]</p>
EOD;
}

function out_footer() {
	global $copy;
	print "\n<p align=\"center\">$copy</p>";
	print "</body></html>";
}

function make_name($m) {
	srand( (double)microtime() * time() );
	$add_words = NULL;
	$f_words = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789";
	$f_word = preg_split("//", $f_words, 0, PREG_SPLIT_NO_EMPTY);
	for( $i =0 ; $i < $m; $i++ ) {
		$add_words .= $f_word[array_rand($f_word, 1)];
	}
	return($add_words);
}

function out_error($mssg) {
	out_head();
	print <<<EOD
<table border=0 cellapding=3 cellspacing=2 align="center" width=400><tr><td class="font11pt">
<p align="center" style="background-color:#C71224; padding:2px;"><font color=#FFFFFF class="font11pt">ヤバイ！！</font></p>
<BR><BR><p align=center>$mssg</p><BR><BR><p align=center><a href="javascript:history.go(-1)">戻る</a></p><BR><BR><BR><BR><BR>
</td></tr></table>
<hr>
EOD;
	out_footer();
	exit;
}

function set_form() {
	foreach ($_REQUEST as $key => $val ) {
		if ( mb_strpos($val, "file") === FALSE ) {
			if ( get_magic_quotes_gpc() ) { $val = stripslashes($val); }
#			$val = htmlspecialchars($val, ENT_QUOTES);
			$val = mb_ereg_replace("\t", "&nsbp;&nsbp;&nsbp;&nsbp;", $val);
			$_REQUEST["$key"] = mb_ereg_replace("\r\n|\n|\r", "<br>", $val);
		}
	}
}
?>