#!/usr/bin/perl

;# WebDiary v1.05 <FreeSoft> for UNIX/perl5
;# (c)rescue.ne.jp
;# Scripts Found at: http://www.rescue.ne.jp/

# [History]
# 1999/01/25 v1.00 初版
# 1999/02/01 v1.01 2月のデフォルト表示トラブルを修正
# 1999/02/20 v1.02 通算日数計算のバグ修正1
# 1999/02/22 v1.03 通算日数計算のバグ修正2
# 1999/03/02 v1.04 chop;→s/\n//g;
# 2000/02/27 v1.05 １日が日曜日だと色が平日色になってしまうバグの修正

#--------------------------------------------------------------------------------
# 設置環境に合わせて必ず設定する事項

$master = '$1$ff$QTkTggVFO/Etgo6b903sT.'; #記録用パスワードを暗号化したもの(添付のcrypt.cgiで作成)
#$master = 'h1o73Ggt68e3M'; #記録用パスワードを暗号化したもの(添付のcrypt.cgiで作成)

$data_dir = './data/'; #データ記録フォルダ(777)
#$image_dir = './images/'; #画像記録フォルダ(777)
#$image_url = './images/'; #画像記録フォルダをURLで指定
$image_dir = '/usr/home/jvtac532/www/htdocs/calendar/images/'; #画像記録フォルダ(777)
$image_url = '/calendar/images/'; #画像記録フォルダをURLで指定

#$modoru = '../../../'; #戻るページ
$modoru = '../../'; #戻るページ
$modoru_name = '【トップページへ】'; #戻るページ名

require './jcode.pl'; #日本語コード変換ライブラリ
require "./cgi-lib217.pl"; #マルチパート対応ＣＧＩライブラリ

$title = 'JVTAカレンダー'; #タイトルバー
$title2 = '<BR><IMG src=/calendar/images/ttl_calender.gif><BR><BR>'; #表題
$body = '<BODY BGCOLOR=#ffffff TEXT=#000000 LINK=#330099 VLINK=#330099 topmargin=0>'; #<BODY>設定

$freespace = <<'EOF';

日本映像翻訳アカデミーのイベントなど、
今後の予定を掲載しています。


EOF

($lsec,$lmin,$lhour,$lmday,$lmon,$lyear,$lwday,$lyday,$lisdst) = localtime(time); #時刻調整

$bCOLOR = "#FFFFFF"; #セル内の背景色
$mCOLOR = "#000000"; #セル内の文字色

$BLANKc = "#FFFFFF"; #空白セルの色

$PANELc = "#A0A0A0"; #操作パネルの背景
$PANELm = "#FFFFFF"; #操作パネル内の文字色

$mSUNc = "#FF8080"; #曜日帯の色(日曜日)
$mCELLc = "#999999"; #曜日帯の色
$mSATc = "#5959FF"; #曜日帯の色(土曜日)

$SUNc = "#000000"; #日付の色(日曜日)
$CELLc = "#000000"; #日付の色
$SATc = "#000000"; #日付の色(土曜日)

$nowCOLOR = "#900000"; #日付の色(本日)
$nowBKINK = 1; #本日を点滅 1:させる 0:させない 

$MARKc = "#009b00"; #イベントのセル色(優先)
$MARKa = "#FF8040"; #開校予定などのセル色
$MARKh = "#FF8080"; #祝祭日のセル色

$Mcolor = "#FFFFFF"; #イベントの文字色
$Acolor = "#FFFFFF"; #開校予定などの文字色
$Hcolor = "#000000"; #祝祭日の文字色

$gazomarkc = "#FFFF00"; #画像があるマーク(*)の色

$WIDTH = '100%'; #カレンダーサイズ

$dSIZE = '+1'; #日付サイズ
$mSIZE = '-1'; #見出しサイズ

$page = 10; #データ削除１画面の表示件数

#曜日バーの書式
@wday_array = (

	'<FONT COLOR=#FFFFFFF>SUN</FONT>',
	'<FONT COLOR=#FFFFFF>MON</FONT>',
	'<FONT COLOR=#FFFFFF>TUE</FONT>',
	'<FONT COLOR=#FFFFFF>WED</FONT>',
	'<FONT COLOR=#FFFFFF>THU</FONT>',
	'<FONT COLOR=#FFFFFF>FRI</FONT>',
	'<FONT COLOR=#FFFFFF>SAT</FONT>'
);

sub holiset {

#春分/秋分日の簡易計算式(1980年〜2099年に適用)
$haru = sprintf("3/%d",int(20.8431 +0.242194*($nyear -1980) -int(($nyear -1980)/4)));
$aki = sprintf("9/%d",int(23.2488 +0.242194*($nyear -1980) -int(($nyear -1980)/4)));

#成人の日(1月の第2月曜日/2000年〜適用)
#
# ex. &getjin(西暦,月,週,曜日)
#     曜日 0:日 1:月 2:火 3:水 4:木 5:金 6:土
#
$seijin = sprintf("1/%d",&getjin($nyear,1,2,1));

#体育の日(10月の第2月曜日/2000年〜適用)
$taiiku = sprintf("10/%d",&getjin($nyear,10,2,1));

#祝祭日の設定
%holiday = (

	"1/1",	'元日',
	$seijin,'成人の日',
	"2/11",	'建国記念の日',
	$haru,	'春分の日',
	"4/29",	'昭和の日',
	"5/3",	'憲法記念日',
	"5/4",	'みどりの日',
	"5/5",	'こどもの日',
        "7/20",	'海の日',
	"9/20",	'敬老の日',
	$aki,	'秋分の日',
	$taiiku,'体育の日',
	"11/3",	'文化の日',
	"11/23",'勤労感謝の日',
	"12/23",'天皇誕生日'

); }

#----------------------------------------------------------------------以上初期設定-------

$lyear += 1900;
$lmonth = $lmon + 1;
$days[4] = $days[6] = $days[9] = $days[11] = 30;
$days[1] = $days[3] = $days[5] = $days[7] = $days[8] = $days[10] = $days[12] = 31;

$MEMO{'now'} = sprintf("%04d\/%02d\/%02d",$lyear,$lmonth,$lmday);

#クッキー解析

$cookies = $ENV{'HTTP_COOKIE'};

@pairs = split(/;/,$cookies);
foreach $pair (@pairs) {

	($name, $value) = split(/=/, $pair);
	$name =~ s/ //g;
	$DUMMY{$name} = $value;
}

@pairs = split(/,/,$DUMMY{'SafeCookie'});
foreach $pair (@pairs) {

	($name, $value) = split(/:/, $pair);
	$COOKIE{$name} = $value;
}

if ($ENV{'QUERY_STRING'} eq 'shade') { &shade; }
elsif ($ENV{'CONTENT_TYPE'} ne 'application/x-www-form-urlencoded') { $ret = &ReadParse; }

if ($ret == 0 && $ENV{'CONTENT_TYPE'} ne 'application/x-www-form-urlencoded') {

	if ($lmonth == 2) { ($wday) = &getwday($lyear,$lmonth,$lmday); }
	$in{'to'} = $days[$lmonth];

	$day = 1; $to = $days[$lmonth];

	$in{'year'} = $lyear;
	$in{'month'} = $lmonth;
	$in{'day'} = 1;

	&HTML($lyear,$lmonth,$day,$to);
}
elsif ($in{'action'} eq 'edit' || $ENV{'CONTENT_TYPE'} eq 'application/x-www-form-urlencoded') {

	if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); }
	else { $buffer = $ENV{'QUERY_STRING'}; }

	@pairs = split(/&/,$buffer);
	foreach $pair (@pairs) {

		($name,$value) = split(/=/,$pair);
		$ins{$name} = $value;
		$value =~ tr/+/ /;
		$value =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;

		$value =~ s/<!--(.|\n)*-->//g;
		$value =~ s/\r\n/\r/g;
		$value =~ s/\n/\r/g;

		if ($name eq 'anidata') {

			($key,$val) = split(/\t/,$value);
			$ANIDATA{$key} = $value;
		}
		else { $value =~ s/\t//g; }

		if ($name eq 'ani_rm') { push(@RM,$value); }
		elsif ($name eq 'data_rm') { push(@DAT,$value); }

		if ($name eq 'pwd') { $value =~ s/\;//g; $value =~ s/\://g; $value =~ s/\,//g; }

		$in{$name} = $value;
	}

	if ($in{'action'} eq 'edit') { &edit; exit; }
	elsif ($in{'action'} eq 'edit_rm') { &edit_rm; &edit; exit; }

	&anniversary_reg;
	&anniversary;
}
else {

	#2月ならその年の日数を調査する
	if ($in{'month'} == 2) { ($wday) = &getwday($in{'year'},$in{'month'},$in{'day'}); }
	elsif ($lmonth == 2) { ($wday) = &getwday($lyear,$lmonth,$lmday); }

	if ($in{'action'} eq 'regf') { &regform($in{'date'}); }
	elsif ($in{'action'} eq 'view') { &view($in{'date'}); }
	elsif ($in{'action'} eq 'anniversary') { &anniversary($in{'date'}); }
	elsif ($in{'action'} eq 'reg') {

		foreach (@in) { 

			($fname) = $_ =~ /\bfilename="([^"]*)"/i;
			($fname) = $_ =~ /\bfilename=([^\s:;]+)/i unless defined $fname;
			($name) = $_ =~ /\bname="([^"]+)"/i;
			($name) = $_ =~ /\bname=([^\s:;]+)/i unless defined $name;

			if ($fname ne '') {

				$fname = reverse("$fname");
				($fname) = split(/\\|\/|\:/,$fname);
				$fname = reverse("$fname");
				($fn,$ext) = split(/\./,$fname);

				$in{'filename'} = "$in{'date'}\.$ext";
				$in{'file'} = $in{$name};
			}
			elsif (/\bfilename=/i) { $in{'file'} = ""; }
			else {
				$value = $in{$name};
				&jcode'convert(*value,'sjis');

				$value =~ s/<!--(.|\n)*-->//g;
				$value =~ s/\r\n/\r/g;
				$value =~ s/\n/\r/g;

				if ($name eq 'anidata') {

					($key,$val) = split(/\t/,$value);
					$ANIDATA{$key} = $value;
				}
				else { $value =~ s/\t//g; }

				if ($name eq 'ani_rm') { push(@RM,$value); }
				if ($name eq 'pwd') { $value =~ s/\;//g; $value =~ s/\://g; $value =~ s/\,//g; }

				$in{$name} = $value;
			}
		}

		&reg;
		&HTML($in{'year'},$in{'month'},$in{'day'},$in{'to'});
	}
	else {
		if ($in{'kikan'} ne '' && $in{'to'} eq '') { &error('表示期間の入力ミスです','1〜100日間の範囲内で入力してください.'); }

		if ($in{'to'} == 0) { $in{'to'} = $days[$in{'month'}]; }
		elsif ($in{'to'} < 1 || $in{'to'} > 100) { &error('表示期間の入力ミスです','1〜100日間の範囲内で入力してください.'); }

		if ($in{'year'} < 1873) { &error('西暦の入力ミスです','日本では1873年1月1日以降グレゴリオ暦を採用していますので、それ以降を指定してください.'); }
		if ($in{'year'} > 2100) { &error('西暦の入力ミスです','21世紀内までにしておきましょう.'); }
		if ($in{'month'} < 1 || $in{'month'} > 12) { &error('月の入力ミスです','1〜12の範囲内で入力してください.'); }
		if ($in{'day'} < 1 || $in{'day'} > $days[$in{'month'}]) { &error('日の入力ミスです',"$in{'year'}年$in{'month'}月は、1〜$days[$in{'month'}]日の範囲内で入力してください."); }

		&HTML($in{'year'},$in{'month'},$in{'day'},$in{'to'});
	}
}

exit;

sub HTML {

local ($nyear,$nmonth,$nday,$to) = @_;

$file = 'anniversary.dat';
if (open(DB,"$data_dir$file")) {

	while (<DB>) { s/\n//g; ($key,$val) = split(/\t/); $ANI{$key} = $val; }
	close(DB);
}

&holiset;

#前月の最終日が祝祭日かどうかを確認する
$mmonth = $nmonth - 1;
if ($mmonth == 0) { $mmonth = 12; }
elsif ($mmonth == 2) { ($wday) = &getwday($nyear,$mmonth,1); }
$mday = $days[$mmonth];
$today = "$nmonth\/$nday";
$misoka = "$mmonth\/$mday";
if ($holiday{$misoka} ne '' && $holiday{$today} eq '') { $furikae = 1; } else { $furikae = 0; }

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<style type="text/css"> 
a:link { text-decoration:none; }
a:visited { text-decoration:none; }
</style>
</HEAD>
$body
$title2
EOF

print "$freespace<P>";

$head = "
<DIV ALIGN=RIGHT><FONT SIZE=-1>※ リンクされている見出し文には詳細内容があります.</FONT></DIV>
<TABLE BORDER=3 CELLPADDING=5 CELLSPACING=2 WIDTH=\"$WIDTH\">
<TR>
<TH BGCOLOR=$mSUNc>$wday_array[0]</TH>
<TH BGCOLOR=$mCELLc>$wday_array[1]</TH>
<TH BGCOLOR=$mCELLc>$wday_array[2]</TH>
<TH BGCOLOR=$mCELLc>$wday_array[3]</TH>
<TH BGCOLOR=$mCELLc>$wday_array[4]</TH>
<TH BGCOLOR=$mCELLc>$wday_array[5]</TH>
<TH BGCOLOR=$mSATc>$wday_array[6]</TH>
</TR>
";

foreach (1 .. $to) {

	$COLOR = $CELLc;

	if (!$f) {

		($wday) = &getwday($nyear,$nmonth,$nday);

		if ($ret == 0 || ( $in{'day'} eq '1' && $in{'to'} == $days[$in{'month'}] )) {

			$bef_y = $in{'year'};
			$bef_m = $in{'month'} - 1;
			if ($bef_m < 1) { $bef_y--; $bef_m = 12; }

			print <<"EOF";
			<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0>
			<TR>
			<FORM METHOD=GET ACTION="diary.cgi">
			<INPUT TYPE=HIDDEN NAME="year" VALUE="$bef_y">
			<INPUT TYPE=HIDDEN NAME="month" VALUE="$bef_m">
			<INPUT TYPE=HIDDEN NAME="day" VALUE="1">
			<TD><INPUT TYPE=SUBMIT NAME="mon" VALUE="←$bef_m月"></TD>
			</FORM>
			<TD><FONT SIZE=+2><STRONG>$nyear年$nmonth月</STRONG></FONT></TD>
EOF

			$next_y = $in{'year'};
			$next_m = $in{'month'} + 1;
			if ($next_m > 12) { $next_y++; $next_m = 1; }

			print <<"EOF";
			<FORM METHOD=GET ACTION="diary.cgi">
			<INPUT TYPE=HIDDEN NAME="year" VALUE="$next_y">
			<INPUT TYPE=HIDDEN NAME="month" VALUE="$next_m">
			<INPUT TYPE=HIDDEN NAME="day" VALUE="1">
			<TD><INPUT TYPE=SUBMIT NAME="mon" VALUE="$next_m月→"></TD>
			</FORM>
			</TR>
			</TABLE><P>
EOF

		}
		else { print "<FONT SIZE=+2><STRONG>$nyear年$nmonth月</STRONG></FONT><P>\n"; }

		print $head;
		print "<TR>\n";

		#ブランクを埋める
		if ($wday != 0) { foreach (1 .. $wday) { print "<TD BGCOLOR=$BLANKc>　</TD>\n"; } }
		$f = 1;
	}
	elsif ($wday == 0) { print "<TR>\n"; }

	if ($wday == 0) { $COLOR = $SUNc; }
	elsif ($wday == 6) { $COLOR = $SATc; }

	$target = $target2 = sprintf("%04d\/%02d\/%02d",$nyear,$nmonth,$nday);
	$target2 =~ s/\///g;
	$BLINKs = $BLINKe = "";

	if ($MEMO{'now'} eq $target) {

		$COLOR = $nowCOLOR;
		if ($nowBKINK == 1 ) { $BLINKs = "<BLINK>"; $BLINKe = "</BLINK>"; }
	}

	@MIDASHI = ();
	$s = 5;
	$DATA{'mark'} = $DATA{'filename'} = $gazo = '';

	if (open(DIARY,"$data_dir$target2\.dia")) {

		while (<DIARY>) {

			s/\n//g;
			($key,$val) = split(/\t/);
			if ($key =~ /midashi/ && $val ne '') { $s--; push(@MIDASHI,"・$val<BR>\n"); }
			else { $DATA{$key} = $val; }
		}
		close(DIARY);
	}

	$kCOLOR = $bCOLOR; $Hday = $animes = "";
	$holiday_check = sprintf("%01d\/%01d",$nmonth,$nday);

	#1999年以前の成人の日と体育の日の判定
	if ($nyear < 2000) {

		undef $holiday{$seijin};
		undef $holiday{$taiiku};
		$holiday{'1/15'} = '成人の日';
		$holiday{'10/10'} = '体育の日';
	}

	#祝祭日のセル処理(優先度低)
	if ($furikae || $holiday{$holiday_check} ne '') {

		if ($furikae && $holiday{$holiday_check} ne '') { $furikae = 0; }
		if ($furikae) { $holiday{$holiday_check} = '振替休日'; $furikae = 0; }

		$kCOLOR = $MARKh;
		$Hday = "<FONT COLOR=\"$Hcolor\">$holiday{$holiday_check}</FONT><BR>";

		if ($wday == 0) { $furikae = 1; }
	}

	#開校予定などセル処理(優先度中)
	if ($ANI{$target2} ne '') { $kCOLOR = $MARKa; $animes = "<FONT COLOR=\"$Acolor\">$ANI{$target2}</FONT><BR>"; }

	#イベントのセル処理(優先度高)
	$mCOLORm = $mCOLOR;
	if ($DATA{'mark'} == 1) { $kCOLOR = $MARKc; $mCOLORm = $Mcolor; }

	if ($DATA{'filename'} ne '') { $gazo = "<FONT COLOR=\"$gazomarkc\">*</FONT>"; } else { $gazo = ''; }

	print <<"EOF";
	<TD BGCOLOR=$kCOLOR VALIGN=TOP>
	<DIV ALIGN=RIGHT VALIGN=BOTTOM>
	<A HREF="diary.cgi?action=regf&date=$target2&year=$in{'year'}&month=$in{'month'}&day=$in{'day'}&to=$in{'to'}"><IMG SRC="diary.cgi?shade" ALT="登録" BORDER=0></A>$gazo
	<FONT SIZE="$dSIZE" ALIGN=LEFT COLOR="$COLOR"><STRONG>$BLINKs$nday$BLINKe</STRONG></FONT></DIV>
EOF
	if (($s != 5) && ($DATA{'naiyou'} ne '' || $DATA{'filename'} ne '')) {

		print <<"EOF";
		<FONT SIZE="$mSIZE" COLOR=$mCOLORm>
		$Hday
		$animes
		<A HREF="diary.cgi?action=view&date=$target2&year=$in{'year'}&month=$in{'month'}&day=$in{'day'}&to=$in{'to'}">@MIDASHI</A>
		</FONT>
EOF
	}
	else {
		print <<"EOF";
		<FONT SIZE="$mSIZE" COLOR=$mCOLORm>
		$Hday
		$animes
		@MIDASHI
		</FONT>
EOF
	}

	print <<"EOF";
	</TD>
EOF

	#次の日

	$nday++;
	$wday++;
	if ($wday > 6) { print "</TR>\n"; $wday = 0; }

	#月が変わったら別表組み
	if ($nday > $days[$nmonth]) {

		$nday = 1;
		$nmonth++;

		if ($wday != 0) {

			#ブランクを埋める
			foreach (1 .. (7 - $wday)) { print "<TD BGCOLOR=$BLANKc>　</TD>\n"; }
			print "</TR></TABLE><P>\n";
		}
		else { print "</TR></TABLE><P>\n"; }

		&ss($nmonth -1);
		$f = 0;

		#年越し処理
		if ($nmonth > 12) {

			$nmonth = 1;
			$nyear++;
		}
	}
}

if ($in{'kikan'} ne '') {

	if ($wday != 0 && $ret != 0) {

		#ブランクを埋める
		foreach (1 .. (7 - $wday)) { print "<TD BGCOLOR=$BLANKc>　</TD>\n"; }
		print "</TR></TABLE>\n";
	}
	else { print "</TR></TABLE><P>\n"; }

	&ss($nmonth);
}

sub ss {

	if ($nyear < 1980) { $m = '※ 1979年以前は春分/秋分日簡易計算法で算出した日と合致しない可能性があります.<BR>'; }
	if ($_[0] == 3) { print '<DIV ALIGN=RIGHT><FONT SIZE=-1>' . "$m\n" . '※ 春分の日は前年の2/1付の官報で正式発表されます.</FONT></DIV>'; }
	if ($_[0] == 9) { print '<DIV ALIGN=RIGHT><FONT SIZE=-1>' . "$m\n" . '※ 秋分の日は前年の2/1付の官報で正式発表されます.</FONT></DIV>'; }

}

print <<"EOF";
<P>
<FONT COLOR=$MARKc>■</FONT>イベント
 <FONT COLOR=$MARKa>■</FONT>開校スケジュールなど
 <FONT COLOR=$MARKh>■</FONT>祝祭日
 <FONT COLOR=\"$gazomarkc\">*</FONT>画像付き
<BR><DIV align=center><FONT SIZE=-1><B><A href=http://www.jvtacademy.com/>【 JVTA HOME 】</A></B></FONT></DIV>
<P>
EOF

print <<"EOF";
<TABLE BORDER=2 CELLPADDING=4 CELLSPACING=2>
<TR>
<FORM METHOD=GET ACTION="diary.cgi">
<TD BGCOLOR=$PANELc><INPUT TYPE=TEXT NAME="year" VALUE="$in{'year'}" SIZE=5><FONT COLOR=$PANELm>年</FONT>
<SELECT NAME="month" SIZE=1>
EOF

$SELECTEDm[$in{'month'}] = 'SELECTED';
foreach (1..12) { print "<OPTION VALUE=\"$_\" $SELECTEDm[$_]>$_</OPTION>\n"; }

print <<"EOF";
</SELECT><FONT COLOR=$PANELm>月</FONT>
<INPUT TYPE=HIDDEN NAME="day" VALUE="1">
<INPUT TYPE=SUBMIT NAME="mon" VALUE="指定"></TD>
</FORM>
<FORM METHOD=GET ACTION="diary.cgi">
<TD BGCOLOR=$PANELc><INPUT TYPE=TEXT NAME="year" VALUE="$in{'year'}" SIZE=5><FONT COLOR=$PANELm>年</FONT>
<SELECT NAME="month" SIZE=1>
EOF

$SELECTEDm[$in{'month'}] = 'SELECTED';
foreach (1..12) { print "<OPTION VALUE=\"$_\" $SELECTEDm[$_]>$_</OPTION>\n"; }

print <<"EOF";
</SELECT><FONT COLOR=$PANELm>月</FONT>
<SELECT NAME="day" SIZE=1>
EOF

$SELECTEDd[1] = 'SELECTED';
foreach (1..31) { print "<OPTION VALUE=\"$_\" $SELECTEDd[$_]>$_</OPTION>\n"; }

print <<"EOF";
</SELECT><FONT COLOR=$PANELm>日から</FONT>
<INPUT TYPE=TEXT NAME="to" VALUE="" SIZE=3><FONT COLOR=$PANELm>日間</FONT>
<INPUT TYPE=SUBMIT NAME="kikan" VALUE="期間"></TD>
</FORM>
<FORM METHOD=GET ACTION="diary.cgi">
<INPUT TYPE=HIDDEN NAME="year" VALUE="$lyear">
<INPUT TYPE=HIDDEN NAME="month" VALUE="$lmonth">
<INPUT TYPE=HIDDEN NAME="day" VALUE="1">
<TD BGCOLOR=$PANELc><INPUT TYPE=SUBMIT VALUE="今月"></TD>
</FORM>
</TR></TABLE>
<P>
<BR>
<FONT SIZE=-1>
</FONT><P>
</BODY>
</HTML>
EOF

}

sub view {

($yyyy,$mm,$dd) = $_[0] =~ /(\d\d\d\d)(\d\d)(\d\d)/i;
$fdate = sprintf("%04d年%01d月%01d日",$yyyy,$mm,$dd);

if (open(DIARY,"$data_dir$_[0]\.dia")) {

	while (<DIARY>) {

		s/\n//g;
		($key,$val) = split(/\t/);
		$DATA{$key} = $val;
		if ($DATA{$key} =~ /midashi/ && $DATA{$key} ne '') { push(@MIDASHI,"$DATA{$key}"); }
	}
	close(DIARY);
}
else { &error('エラー','データが見つからないか開けませんでした.'); }

if ($DATA{'naiyou'} eq '' && $DATA{'filename'} eq '') { &error('内容記録はありません','このデータは見出しのみとなっています.'); }
if ($DATA{'filename'} ne '' && -e "$image_dir$DATA{'filename'}") { $IMG = "<IMG ALIGN=LEFT HSPACE=10 SRC=\"$image_url$DATA{'filename'}\" ALT=\"$DATA{'filename'}\">"; } else { $IMG = ""; }

if ($DATA{'way'} == 1) {

	$DATA{'naiyou'} =~ s/</&lt;/g;
	$DATA{'naiyou'} =~ s/>/&gt;/g;
	$DATA{'naiyou'} =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"$1\:$2\" target=\"_blank\">$1\:$2<\/a>/ig;
	$DATA{'naiyou'} =~ s/&lt;/</g;
	$DATA{'naiyou'} =~ s/&gt;/>/g;
	$DATA{'naiyou'} =~ s/\r/<BR>/g;
}

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
//-->
</SCRIPT>
</HEAD>
$body
<H1>$fdate<HR NOSHADE></H1>
EOF

if (@MIDASHI) {

	foreach (@MIDASHI) {

		print <<"EOF";
		<TABLE BORDER=5 CELLPADDING=3 CELLSPACING=2>
		<TR>
		<TD><FONT SIZE=+1>$_</FONT></TD>
		</TR>
		</TABLE>
		<P>
EOF
	}
}

print <<"EOF";
$IMG
$DATA{'naiyou'}
<BR CLEAR=ALL>
<P>
<HR NOSHADE>
[<A HREF="JavaScript:history.back()">戻る</A>]
</BODY>
</HTML>
EOF

}

#２月の日数および曜日判定
sub getwday {

local ($year,$month,$day) = @_;
local ($base,$i);

#うるう年の判定
$days[2] = 28;
unless ($year % 4) { $days[2] = 29; }
unless ($year % 100) { $days[2] = 28; }
unless ($year % 400) { $days[2] = 29; }

#基本年からの通算日数(該当前年まで)
#$base = (($year - 1) * 365) + (($year - 1) / 4) - (($year - 1) / 100) + (($year - 1) / 400);
$base = (($year - 1) * 365) + int(($year - 1) / 4) - int(($year - 1) / 100) + int(($year - 1) / 400);

#そこへ該当年の日数を加算
$i = $month;
while ( --$i ) { $base += $days[$i]; }

#１週間７日で除算した余りが曜日
return ($base + $day) % 7;

}

#何年($year)何月($month)の第何($num)何曜日($w)が何日になるのか？
sub getjin {

local ($year,$month,$num,$w) = @_;

@rescue = (5,4,3,2,1,0,6,5,4,3,2,1,0);
($wday) = &getwday($year,$month,1);
return $num * 7 - $rescue[($w - $wday)+6];

}

sub regform {

($yyyy,$mm,$dd) = $_[0] =~ /(\d\d\d\d)(\d\d)(\d\d)/i;
$fdate = sprintf("%04d年%01d月%01d日",$yyyy,$mm,$dd);

if (open(DIARY,"$data_dir$_[0]\.dia")) {

	while (<DIARY>) { s/\n//g; ($key,$val) = split(/\t/); $DATA{$key} = $val; }
	close(DIARY);
}

if ($DATA{'filename'} ne '' && -e "$image_dir$DATA{'filename'}") { $IMG = "<IMG SRC=\"$image_url$DATA{'filename'}\" ALT=\"$DATA{'filename'}\"><P>"; } else { $IMG = ""; }

if ($DATA{'mark'} eq '') { $DATA{'mark'} = 0; }
$CHECKED[$DATA{'mark'}] = 'CHECKED';

if ($DATA{'way'} eq '') { $DATA{'way'} = 1; }
$CHECKEDy[$DATA{'way'}] = 'CHECKED';

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
//-->
</SCRIPT>
</HEAD>
$body
<H2>$fdate</H2>
<FORM METHOD=POST ACTION="diary.cgi" ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN NAME="action" VALUE="reg">
<INPUT TYPE=HIDDEN NAME="year" VALUE="$in{'year'}">
<INPUT TYPE=HIDDEN NAME="month" VALUE="$in{'month'}">
<INPUT TYPE=HIDDEN NAME="day" VALUE="$in{'day'}">
<INPUT TYPE=HIDDEN NAME="to" VALUE="$in{'to'}">
<INPUT TYPE=HIDDEN NAME="date" VALUE="$in{'date'}">

<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=2>
<TR>
	<TD BGCOLOR=$bCOLOR COLSPAN=2><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>イベント</STRONG></FONT> <FONT COLOR=$mCOLOR><INPUT TYPE=RADIO NAME="mark" VALUE="1" $CHECKED[1]>する <INPUT TYPE=RADIO NAME="mark" VALUE="0" $CHECKED[0]>しない</FONT></TD>
</TR>
<TR>
	<TD BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>見出し</STRONG></FONT><BR>
	・<INPUT NAME="midashi1" SIZE=21 MAXLENGTH=20 VALUE="$DATA{'midashi1'}"><BR>
	・<INPUT NAME="midashi2" SIZE=21 MAXLENGTH=20 VALUE="$DATA{'midashi2'}"><BR>
	・<INPUT NAME="midashi3" SIZE=21 MAXLENGTH=20 VALUE="$DATA{'midashi3'}"><BR>
	・<INPUT NAME="midashi4" SIZE=21 MAXLENGTH=20 VALUE="$DATA{'midashi4'}"><BR>
	・<INPUT NAME="midashi5" SIZE=21 MAXLENGTH=20 VALUE="$DATA{'midashi5'}">
	</TD>
	<TD BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>内容</STRONG></FONT><BR>
	<FONT COLOR=$mCOLOR>記録形式 <INPUT TYPE=RADIO NAME="way" VALUE="1" $CHECKEDy[1]>テキスト <INPUT TYPE=RADIO NAME="way" VALUE="0" $CHECKEDy[0]>ＨＴＭＬ</FONT><BR>
	<TEXTAREA NAME="naiyou" COLS=60 ROWS=10 WRAP=OFF>$DATA{'naiyou'}</TEXTAREA>
	</TD>
</TR>
<TR>
	<TD BGCOLOR=$bCOLOR COLSPAN=2>
EOF

if ($DATA{'filename'} ne '') {

	$msg = '変更';

	print <<"EOF";
	<FONT COLOR=$mCOLOR>画像の取り扱い <INPUT TYPE=RADIO NAME="imgdel" VALUE="0" CHECKED>このまま <INPUT TYPE=RADIO NAME="imgdel" VALUE="1">削除</FONT><P>
	<INPUT TYPE=HIDDEN NAME="filen" VALUE="$DATA{'filename'}">
	$IMG<P>
EOF

}

print <<"EOF";
	<FONT SIZE=+1 COLOR=$mCOLOR><STRONG>$msgアップロード画像</STRONG></FONT> <INPUT TYPE=FILE NAME="IMG" SIZE=50></TD>
</TR>
<TR>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>パスワード</STRONG></FONT> <INPUT TYPE=PASSWORD NAME="pwd" VALUE="$COOKIE{'pwd'}" SIZE=10></TD>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="      登録/変更/削除      "><INPUT TYPE=RESET VALUE="RESET">
	<INPUT TYPE=CHECKBOX NAME="file_remove" VALUE="1"><FONT COLOR=$mCOLOR>削除</FONT>
	</TD>
</TR>
</TABLE>
</FORM>
[<A HREF="JavaScript:history.back()">戻る</A>]
</BODY>
</HTML>
EOF

}

sub anniversary {

$file = 'anniversary.dat';
if (open(DB,"$data_dir$file")) {

	while (<DB>) { s/\n//g; ($key,$val) = split(/\t/); $DATA{$key} = $val; }
	close(DB);
}

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
//-->
</SCRIPT>
</HEAD>
$body
<H2>開校予定などの設定</H2>
<FORM METHOD=POST ACTION="diary.cgi" ENCTYPE="application/x-www-form-urlencoded">
<INPUT TYPE=HIDDEN NAME="action" VALUE="anniversary_reg">
<INPUT TYPE=HIDDEN NAME="year" VALUE="$in{'year'}">
<INPUT TYPE=HIDDEN NAME="month" VALUE="$in{'month'}">
<INPUT TYPE=HIDDEN NAME="day" VALUE="$in{'day'}">
<INPUT TYPE=HIDDEN NAME="to" VALUE="$in{'to'}">
<INPUT TYPE=HIDDEN NAME="date" VALUE="$in{'date'}">

<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=2>
<TR>
	<TH BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR>日付</FONT></TH>
	<TH BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR>名称</FONT></TH>
</TR>
EOF

foreach $key (sort keys %DATA) {

	($yyyy,$mm,$dd) = $key =~ /(\d\d\d\d)(\d\d)(\d\d)/i;
	$fdate = sprintf("%04d年%01d月%01d日",$yyyy,$mm,$dd);

	print <<"EOF";
	<TR>
	<TD BGCOLOR=$PANELc>
	<INPUT TYPE=HIDDEN NAME="anidata" VALUE="$key\t$DATA{$key}">
	<INPUT TYPE=CHECKBOX NAME="ani_rm" VALUE="$key"><FONT COLOR=$mCOLOR>削除</FONT>
	<FONT COLOR=$PANELm>$fdate</FONT>
	</TD>
	<TD BGCOLOR=$PANELc>
	<FONT COLOR=$PANELm>$DATA{$key}</FONT>
	</TD>
	</TR>
EOF
}

print <<"EOF";
<TR>
	<TD BGCOLOR=$PANELc>
	<INPUT TYPE=TEXT NAME="yy" VALUE="$lyear" SIZE=5><FONT COLOR=$PANELm>年</FONT>
	<SELECT NAME="mm" SIZE=1>
EOF

foreach (1..12) { print "<OPTION VALUE=\"$_\">$_</OPTION>\n"; }

print <<"EOF";
	</SELECT><FONT COLOR=$PANELm>月</FONT>
	<SELECT NAME="dd" SIZE=1>
EOF

foreach (1..31) { print "<OPTION VALUE=\"$_\">$_</OPTION>\n"; }

print <<"EOF";
	</SELECT><FONT COLOR=$PANELm>日</FONT>
	</TD>
	<TD BGCOLOR=$PANELc><FONT SIZE=+1 COLOR=$mCOLOR><INPUT TYPE=TEXT NAME="cols" VALUE="" SIZE=21 MAXLENGTH=20></TD>
</TR>
<TR>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>パスワード</STRONG></FONT> <INPUT TYPE=PASSWORD NAME="pwd" VALUE="$COOKIE{'pwd'}" SIZE=10></TD>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="      追加/削除      "><INPUT TYPE=RESET VALUE="RESET">
	</TD>
</TR>
</TABLE>
</FORM>
[<A HREF="JavaScript:history.back()">戻る</A>]
 [<A HREF="./diary.cgi">今月画面へ</A>]
</BODY>
</HTML>
EOF

}

sub anniversary_reg {

if ($master =~ /^\$1\$/) { $salt = 3; } else { $salt = 0; }
if ($in{'pwd'} eq '') { &error('入力ミス','記録用パスワードを入力してください.'); }
if (crypt($in{'pwd'}, substr($master,$salt,2)) ne $master) { &error('認証ミス','パスワードが合いません.'); }

if ($in{'year'} < 1873) { &error('西暦の入力ミスです','日本では1873年1月1日以降グレゴリオ暦を採用していますので、それ以降を指定してください.'); }
if ($in{'year'} > 2099) { &error('西暦の入力ミスです','2099年までの範囲で指定してください.'); }

if ($in{'mm'} == 2) { ($wday) = &getwday($in{'yy'},$in{'mm'},$in{'dd'}); }
if ($in{'dd'} > $days[$in{'mm'}]) { &error('日付の入力ミスです',"$in{'yy'}年$in{'mm'}月は1〜$days[$in{'mm'}]日までの範囲で指定してください."); }

$in{'mm'} = sprintf("%02d",$in{'mm'});
$in{'dd'} = sprintf("%02d",$in{'dd'});
$yymmdd = $in{'yy'} . $in{'mm'} . $in{'dd'};

$ANI_RM = join '|',@RM;

$file = 'anniversary.dat';
if (!open(DB,"> $data_dir$file")) { &error('エラー','データが記録できません.'); }

while (($key,$val) = each %ANIDATA) {

	if ($ANI_RM ne '' && $key =~ /$ANI_RM/) { next; }
	print DB "$val\n";
}

if ($in{'cols'} ne '') { print DB "$yymmdd\t$in{'cols'}\n"; }
close(DB);
chmod (0666,"$data_dir$file");

($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60);
$y0="Sunday"; $y1="Monday"; $y2="Tuesday"; $y3="Wednesday"; $y4="Thursday"; $y5="Friday"; $y6="Saturday";
@youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6);

$m0="Jan"; $m1="Feb"; $m2="Mar"; $m3="Apr"; $m4="May"; $m5="Jun";
$m6="Jul"; $m7="Aug"; $m8="Sep"; $m9="Oct"; $m10="Nov"; $m11="Dec";
@monthg = ($m0,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$m9,$m10,$m11);

$date_gmt = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT",$youbi[$wdayg],$mdayg,$monthg[$mong],$yearg +1900,$hourg,$ming,$secg);
print "Set-Cookie: SafeCookie=pwd\:$in{'pwd'}; expires=$date_gmt\n";

}

sub reg {

if ($master =~ /^\$1\$/) { $salt = 3; } else { $salt = 0; }
if ($in{'pwd'} eq '') { &error('入力ミス','記録用パスワードを入力してください.'); }
if (crypt($in{'pwd'}, substr($master,$salt,2)) ne $master) { &error('認証ミス','パスワードが合いません.'); }

if ($in{'file_remove'} eq '1') {

	unlink("$data_dir$in{'date'}\.dia");
	if (-e "$image_dir$in{'filen'}") { unlink("$image_dir$in{'filen'}"); }
	return;
}

if ($in{'midashi1'} eq '' && $in{'midashi2'} eq '' && $in{'midashi3'} eq '' && $in{'midashi4'} eq '' && $in{'midashi5'} eq '') { &error('入力ミス','カレンダーに表示する見出しを記入してください.'); }
if ($in{'imgdel'} eq '1') { unlink("$image_dir$in{'filen'}"); }

if ($in{'imgdel'} eq '0') { $in{'filename'} = $in{'filen'}; }
elsif ($in{'filename'} ne '') {

	if (!open(UU,"> $image_dir$in{'filename'}")) { &error('エラー','画像が記録できません.'); }
	print UU $in{'file'};
	close(UU);
	chmod (0666,"$image_dir$in{'date'}\.dia");
}

if (!open(DB,"> $data_dir$in{'date'}\.dia")) { &error('エラー','データが記録できません.'); }
print DB "mark\t$in{'mark'}\n";
print DB "midashi1\t$in{'midashi1'}\n";
print DB "midashi2\t$in{'midashi2'}\n";
print DB "midashi3\t$in{'midashi3'}\n";
print DB "midashi4\t$in{'midashi4'}\n";
print DB "midashi5\t$in{'midashi5'}\n";
print DB "naiyou\t$in{'naiyou'}\n";
print DB "filename\t$in{'filename'}\n";
print DB "way\t$in{'way'}\n";
close(DB);
chmod (0666,"$data_dir$in{'date'}\.dia");

($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60);
$y0="Sunday"; $y1="Monday"; $y2="Tuesday"; $y3="Wednesday"; $y4="Thursday"; $y5="Friday"; $y6="Saturday";
@youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6);

$m0="Jan"; $m1="Feb"; $m2="Mar"; $m3="Apr"; $m4="May"; $m5="Jun";
$m6="Jul"; $m7="Aug"; $m8="Sep"; $m9="Oct"; $m10="Nov"; $m11="Dec";
@monthg = ($m0,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$m9,$m10,$m11);

$date_gmt = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT",$youbi[$wdayg],$mdayg,$monthg[$mong],$yearg +1900,$hourg,$ming,$secg);
print "Set-Cookie: SafeCookie=pwd\:$in{'pwd'}; expires=$date_gmt\n";

}

sub shade {

@array = (
"47","49","46","38","39","61","01",
"00","01","00","80","01","00","00",
"00","00","ff","ff","ff","21","f9",
"04","01","00","00","01","00","2c",
"00","00","00","00","01","00","01",
"00","40","02","02","4c","01","00",
"3b");

print "Content-type: image/gif\n\n";
foreach (@array) { $data = pack('C*',hex($_)); print $data; }
exit;

}

sub error {

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
//-->
</SCRIPT>
</HEAD>
$body
<h1>$_[0]</h1>
<h3>$_[1]</h3>
[<A HREF="JavaScript:history.back()">戻る</A>]
</BODY>
</HTML>
EOF

exit;

}

sub edit {

chdir("$data_dir");
$ls = `ls *.dia`;
@BASE = split(/\s+/,$ls);

if ($in{'FF'} eq '') { $FF = 0; } else { $FF = $in{'FF'}; }
$TO = $FF + $page - 1;
if ($TO > $#BASE) { $TO = $#BASE; }
$hit = 0;
$next_num = '';

foreach $num ($FF .. $#BASE) {

	($value) = &read_data($BASE[$num]);
	if ($value eq '') { next; }

	($fn,$m1,$m2,$m3,$m4,$m5) = split(/\t/,$value);
	($fn,$d) = split(/\./,$fn);

	if ($hit == $page) { $next_num = $num; last; }
	else { push(@NEW,"$fn\t$m1\t$m2\t$m3\t$m4\t$m5"); $hit++; }
}

print <<"EOF";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
//-->
</SCRIPT>
</HEAD>
$body
<H2>記録データの削除</H2>
<FORM METHOD=POST ACTION="diary.cgi" ENCTYPE="application/x-www-form-urlencoded">
<INPUT TYPE=HIDDEN NAME="action" VALUE="edit_rm">
<INPUT TYPE=HIDDEN NAME="year" VALUE="$in{'year'}">
<INPUT TYPE=HIDDEN NAME="month" VALUE="$in{'month'}">
<INPUT TYPE=HIDDEN NAME="day" VALUE="$in{'day'}">
<INPUT TYPE=HIDDEN NAME="to" VALUE="$in{'to'}">
<INPUT TYPE=HIDDEN NAME="date" VALUE="$in{'date'}">
<INPUT TYPE=HIDDEN NAME="FF" VALUE="$FF">

<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=2>
<TR>
	<TH BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR>ファイル名</FONT></TH>
	<TH BGCOLOR=$bCOLOR><FONT SIZE=+1 COLOR=$mCOLOR>見出し</FONT></TH>
</TR>
EOF

foreach $value (@NEW) {

	($fn,$m[1],$m[2],$m[3],$m[4],$m[5]) = split(/\t/,$value);
	($yyyy,$mm,$dd) = $fn =~ /(\d\d\d\d)(\d\d)(\d\d)/i;
	$fdate = sprintf("%04d年%01d月%01d日",$yyyy,$mm,$dd);

	@msg = ();
	foreach (1..5) {

		if ($m[$_] ne '') { push(@msg,"<LI>$m[$_]\n"); }
	}

	print <<"EOF";
	<TR>
	<TD BGCOLOR=$PANELc>
	<INPUT TYPE=CHECKBOX NAME="data_rm" VALUE="$fn"><FONT COLOR=$mCOLOR>削除</FONT>
	<FONT COLOR=$PANELm>$fdate</FONT>
	</TD>
	<TD BGCOLOR=$PANELc>
	<FONT COLOR=$PANELm><UL>@msg</UL></FONT>
	</TD>
	</TR>
EOF
}

print <<"EOF";
<TR>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><FONT SIZE=+1 COLOR=$mCOLOR><STRONG>パスワード</STRONG></FONT> <INPUT TYPE=PASSWORD NAME="pwd" VALUE="$COOKIE{'pwd'}" SIZE=10></TD>
	<TD BGCOLOR=$bCOLOR ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="      削除      "><INPUT TYPE=RESET VALUE="RESET">
	</TD>
</TR>
</TABLE>
EOF

if ($next_num ne '') {

	while (($key,$val) = each %ins) {

		if ($key ne 'FF') { $buf = "$buf&$key=$val"; }
	}

	print "<h3>↓<a href=\"diary.cgi?$buf&FF=$next_num\">次の$page件</a></h3>\n";
}

print <<"EOF";
</FORM>
<P><HR>
[<A HREF="JavaScript:history.back()">戻る</A>]
 [<A HREF="./diary.cgi">今月画面へ</A>]
</BODY>
</HTML>
EOF

}


sub edit_rm {

if ($master =~ /^\$1\$/) { $salt = 3; } else { $salt = 0; }
if ($in{'pwd'} eq '') { &error('入力ミス','記録用パスワードを入力してください.'); }
if (crypt($in{'pwd'}, substr($master,$salt,2)) ne $master) { &error('認証ミス','パスワードが合いません.'); }

foreach $fn (@DAT) {

	$fn .= '.dia';
	&read_data("$data_dir$fn");

	unlink("$data_dir$fn");
	if (-e "$image_dir$SS{'filename'}") { unlink("$image_dir$SS{'filename'}"); }
}

}

sub read_data {

	if (open(DB,$_[0])) {

		while (<DB>) { s/\n//g; ($key,$val) = split(/\t/); $SS{$key} = $val; }
		close(DB);
	}
	else { return ""; }

	return "$_[0]\t$SS{'midashi1'}\t$SS{'midashi2'}\t$SS{'midashi3'}\t$SS{'midashi4'}\t$SS{'midashi5'}";
}
