#!/usr/bin/perl

require 'jcode.pl';

#####################初期設定#######################

#スクリプトのファイル名
$self = "index.cgi";
#ログファイル名
$log = "logs.cgi";
#休日のログファイル名
$log2 = 'holiday.cgi';
#ログファイルの保存件数(スケジュールの保存数)
$savemax = "100";
#戻り先のＵＲＬ(http://〜)
$home = "../index.html";
#タイトル
$title = "iD Mobile ｲﾍﾞﾝﾄｽｹｼﾞｭｰﾙ";
#バックグラウンド(背景画像ある場合)
$background = "";
#背景色
$bgcolor = "#09090A";
#テキスト
$textcolor = "#FFFFFF";
#テキスト
$linkcolor = "#FF0000";
#テーブル色
$tcolor = "blue";
#テーブルのボーダー色(境界線の色)
$tborder = "#222222";
#禁止ワード
@kinshi = ('ばか','馬鹿','バカ','アホ','あほ','阿呆','はげ','ハゲ');
#入室禁止ＩＰアドレス,ＨＯＳＴ名(ＩＰがその都度変わる場合は上から三つ目までの数字を入力)(無い場合はnashiと入力空欄にはしない)
@deiri = ('nashi','nashi');
#マスターパス
$master_pas = '1111';
###################初期設定ここまで#################

#デコード処理$in{'引数'}
&decode;
#IPアドレスとホストを得る
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if($host eq '')
{
	$host = $addr;
}

#入室禁止処理
foreach $deiri(@deiri)
{
	if($host=~ /^$deiri/)
	{
		&error('管理者から入室禁止処置が取られています');
	}	
}
#引数の設定
if(($in{'mode'} eq '')||($in{'mode'} eq 'top'))
{
	$mode='top';
}
if($ENV{'REQUEST_METHOD'} eq 'POST')
{
	if($in{'mode'} eq 'write1')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'write1';
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'write2')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'write2';
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'kanri')
	{
		$mode = 'kanri';
	}elsif($in{'mode'} eq 'master')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'master';
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'master_chan')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'master_chan';
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'change1')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'change1';
			$edit_num = $in{'edit_num'};
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'change2')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'change2';
			$edit_num = $in{'edit_num'};
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'delete')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'delete';
			$edit_num = $in{'edit_num'};
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'master_kyu')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'master_kyu';
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'master_kyu_w')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'master_kyu_w';
			$write_month = $in{'write_month'};
			&jcode'tr(*write_month,"０-９","0-9");
			$write_day = $in{'write_day'};
			&jcode'tr(*write_day,"０-９","0-9");
			#年月日に数字以外だったらエラー
			if(($write_year=~/\D/)||($write_month=~/\D/)||($write_day=~/\D/))
			{
				&error('年月日に数字以外が入っています');
			}
			if(($write_month == 2)&&($write_day > 29))
			{
				&error('２月は２９日までしかありません');
			}
		}else
		{
			&error('不正なアクセスです');
		}
	}elsif($in{'mode'} eq 'master_kyu_d')
	{
		$edit_pas = $in{'masterpas'};
		if($edit_pas eq $master_pas)
		{
			$mode = 'master_kyu_d';
		}else
		{
			&error('不正なアクセスです');
		}
	}
}elsif($ENV{'REQUEST_METHOD'} eq 'GET')
{
	$year = $in{'year'};
	$month = $in{'month'};
	$kijiday = $in{'day'};
	if($in{'mode'} eq 'manual')
	{
		$mode = 'manual';
	}elsif($in{'mode'} eq 'hyouji')
	{
		$mode = 'hyouji';
	}
}
if(($mode eq 'write2')||($mode eq 'change2'))
{
	#書き込み修正の時の引数
	$write_year = $in{'write_year'};
	&jcode'tr(*write_year,"０-９","0-9");
	$write_month = $in{'write_month'};
	&jcode'tr(*write_month,"０-９","0-9");
	$write_day = $in{'write_day'};
	&jcode'tr(*write_day,"０-９","0-9");
	$subject = $in{'subject'};
	$subject = &changetagu($subject);
	$text = $in{'text'};
	$text=~s/\r//g;
	$text=~s/\n/<br>/g;
	#$text = &changetagu($text);
	#エラーチェック
	if(($write_year eq '')||($write_month eq '')||($write_day eq ''))
	{
		&error('年月日で入力していない項目があります');
	}
	#年月日に数字以外だったらエラー
	if(($write_year=~/\D/)||($write_month=~/\D/)||($write_day=~/\D/))
	{
		&error('年月日に数字以外が入っています');
	}
	if(($write_month == 2)&&($write_day > 29))
	{
		&error('２月は２９日までしかありません');
	}
	if($subject eq '')
	{
		&error('\予\定のタイトルが未入力です');
	}
	if($text eq '')
	{
		&error('\予\定の内容が未入力です');
	}
}
if($mode eq 'write2')
{
	open(LOG,"+<$log") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,2);
	@logs=<LOG>;
	if($logs[0])
	{
		@plus_num = split(/\t/,$logs[0]);
		$num = $plus_num[0] + 1;
	}else
	{
		$num = 1;
	}
	$write_data = $num."\t".$write_year."\t".$write_month."\t".$write_day."\t".$subject."\t".$text."\t".$host."\t".$addr."\n";
	unshift(@logs,$write_data);
	splice(@logs,$savemax);
	seek(LOG,0,0);
	truncate(LOG,tell(LOG));
	print LOG @logs;
	flock(LOG,8);
	close(LOG);
	$ok_text = '投稿が完了しました。';
	$mode = 'master';
}elsif($mode eq 'change2')
{
	#記事修正
	open(LOG,"+<$log") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	@logs = <LOG>;
	$change_data = $edit_num."\t".$write_year."\t".$write_month."\t".$write_day."\t".$subject."\t".$text."\t".$host."\t".$addr."\n";
	for($i=0;$i<@logs;$i++)
	{
		@change_logs = split(/\t/,$logs[$i]);
		if($change_logs[0] == $edit_num)
		{
			$logs[$i] = $change_data;
		}
	}
	seek(LOG,0,0);
	truncate(LOG,tell(LOG));
	print LOG @logs;
	flock(LOG,8);
	close(LOG);
	$ok_text = '記事を修正しました。';
	$mode = 'master';
}elsif($mode eq 'delete')
{
	#記事削除
	open(LOG,"+<$log") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	@logs = <LOG>;
	for($i=0;$i<@logs;$i++)
	{
		@delete_logs = split(/\t/,$logs[$i]);
		if($delete_logs[0] == $edit_num)
		{
			chomp($logs[$i]);
			$logs[$i] = '';
		}
	}
	seek(LOG,0,0);
	truncate(LOG,tell(LOG));
	print LOG @logs;
	flock(LOG,8);
	close(LOG);
	$ok_text = '記事を削除しました。';
	$mode = 'master';
}elsif($mode eq 'master_kyu_w')
{
	#休日書き込み
	open(LOG,">>$log2") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	print LOG $write_month."\t".$write_day."\t\n";
	flock(LOG,8);
	close(LOG);
	chmod(0666,$log2);
	$mode = 'master_kyu';
}elsif($mode eq 'master_kyu_d')
{
	#休日削除
	open(LOG,"+<$log2") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	@logs = <LOG>;
	for($i=0;$i<@logs;$i++)
	{
		if($in{"$i"} eq 'delete')
		{
			$logs[$i] = '';
		}
	}
	seek(LOG,0,0);
	truncate(LOG,tell(LOG));
	print LOG @logs;
	flock(LOG,8);
	close(LOG);
	chmod(0666,$log2);
	$mode = 'master_kyu';
}
#休日設定のLOG
open(LOG,"+<$log2");
flock(LOG,1);
@logs2 = <LOG>;
flock(LOG,8);
close(LOG);
for($i=0;$i<@logs2;$i++)
{
	#ハッシュで設定
	@spl_log2 = split(/\t/,$logs2[$i]);
	$shuku{"$spl_log2[0]\t$spl_log2[1]"} = "$spl_log2[0]\t$spl_log2[1]";
}
#ここから表示画面
print"content-type:text/html\n\n";
print<<"END";
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
 "http://www.wapforum.org/DTD/xhtml-mobile10.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift-jis">
<meta http-equiv="pragma" content="no-cache">
<title>$title</title>
</head>
<body background="$background" bgcolor="$bgcolor" text="$textcolor" link="$linkcolor" style="width: 240px;">
<div><img src="../convert.cgi?src=./images/schedule.jpg&amp;w=&amp;h=&amp;type=jpeg" alt="ｽｹｼﾞｭｰﾙ"></div>
<hr color="#FFFFFF" style="width:220px;" noshade>
END

#一番上のリンク先の設定
if($mode eq 'top'){
	print qq|<div align="center" style="font-size:9pt;padding:5px 0px;"><a href="$home"><font size="1">HOME</font></a></div>\n|;
	print qq|<hr color="#FFFFFF" style="width:220px;" noshade>\n|;
}else{
	print qq|<div align="center" style="padding:5px 0px;"><a href="$self?mode=top"><font size="1">トップに戻る</font></a></div>\n|;
	print qq|<hr color="#FFFFFF" style="width:220px;" noshade>\n|;
}

#カレンダー作成の設定
@youbi=('日','月','火','水','木','金','土');
@monthdays=(31,28,31,30,31,30,31,31,30,31,30,31);
if($month >= 1){
	($sec,$min,$hour,$mday,$mon,$tmpyear,$wday,$yday,$isdst)=localtime(time);
}
if($year < 1){
	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
	$year +=1900;
}

if((($year%4 ==0)&&($year%100 !=0))||($year%400 ==0)){
	$monthdays[1]=29;
}
if($month <1){
	$thismonthdays=$monthdays[$mon];
	$month=$mon+1;
}else{
	$thismonthdays=$monthdays[$month-1];
}
$day=1;
$startday=&getwday($year,$month,$day);
if($month==1){
	$backy=$year-1;
	$backm=12;
}else{
	$backy=$year;
	$backm=$month-1;
}
if($month==12){
	$nexty=$year+1;
	$nextm=1;
}else{
	$nexty=$year;
	$nextm=$month+1;
}
if($mode eq 'top')
{
	print qq|<table width="230" align="center" bgcolor="$bgcolor">\n|;
	print qq|<tr><td colspan="3" align=center>$year年$month月</td></tr>\n|;
	print qq|<tr>\n|;
	print qq|<td align=left style="font-size:9pt;"><a href="$self?year=$backy&month=$backm"><font size="1">$backm月</font></a></td>\n|;
	print qq|<td align=center style="font-size:9pt;"><a href="$self?mode=top"><font size="1">今月</font></a></td>\n|;
	print qq|<td align=right style="font-size:9pt;"><a href="$self?year=$nexty&month=$nextm"><font size="1">$nextm月</font></a></td>\n|;
	print qq|</tr>\n|;
	print qq|</table>\n\n|;
	print qq|<table width="230" border="1" align="center" bgcolor="#FFFFFF"><tr>\n|;
	for($i=0;$i<7;$i++)
	{
		print qq|<td align="center" style="font-size:9pt;"><font size="1" color="#000000">$youbi[$i]</font></td>\n|;
	}
	print qq|</tr>\n<tr>\n|;
	$col=0;
	for($i=0;$i<$startday;$i++)
	{
		print qq|<td></td>\n|;
		$col++;
	}

	for($i=1;$i<=$thismonthdays;$i++)
	{
		$shukujitsu = $shuku{"$month\t$i"};
		print qq|<td|;
		if(($i==$mday && $month==$mon+1))
		{
			if(($col eq '0')||($col eq '6'))
			{
				print qq| align="center" bgcolor="#FFCCCC" style="font-size:9pt;">|;
			}else
			{
				print qq| align="center" style="font-size:9pt;">|;
			}
		}elsif(($col eq '6')&&($shukujitsu eq ''))
		{
			print qq| align="center" bgcolor="#CCFFFF" style="font-size:9pt;">|;
		}elsif(($col eq '0')||($shukujitsu))
		{
			print qq| align="center" bgcolor="#FFCCCC" style="font-size:9pt;">|;
		}else{
			print qq| align="center" style="font-size:9pt;">|;
		}
		open(LOG,"<$log") || &error('ログファイルがオープン出来ませんでした');
		flock(LOG,1);
		while(<LOG>)
		{
			@hyo_log = split(/\t/,$_);
			if(($hyo_log[1] == $year)&&($hyo_log[2] == $month)&&($hyo_log[3] == $i))
			{
				$flag = 1;
				print qq|<a href="$self?mode=hyouji&year=$year&month=$month&day=$i"><font size="1">$i</font></a>|;
				last;
			}
		}
		flock(LOG,8);
		close(LOG);
		if($flag == 0)
		{
			print qq|<font size="1" color="#000000">$i</font>|;
		}
		$flag=0;
		if($i==$mday && $month==$mon+1)
		{
			print"";
		}
		print"</td>\n";
		$col++;

		if(($col ==7)&&($i>=$thismonthdays))
		{
			print"";
			$col=0;
		}
		elsif($col ==7)
		{
			print"</tr>\n<tr>\n";
			$col=0;
		}

#		elsif($col ==7)
#		{
#			print"</tr>\n<tr>\n";
#			$col=0;
#		}

	}

	print<<"END";
</tr>
</table>
<table width="230" align="center" bgcolor="$bgcolor">
 <tr>
  <td align=right style="font-size:9pt;"><a href="$self?year=$nexty&month=$nextm"><font size="1">$nextm月</font></a></td>
 </tr>
</table>
<div align="right">
 <form action="$self" method="POST">
  <input type="hidden" name="mode" value="kanri">
  <input type="submit" value="EDIT">
 </form>
</div>
END
}elsif($mode eq 'hyouji')
{
	#予定表示画面
	print<<"END";
<div style="font-size:xx-small;padding:5px;"><font size="1">$year/$month/$kijiday</font><br></div>
END
	open(LOG,"<$log") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	while(<LOG>)
	{
		@hyo_log = split(/\t/);
		if(($hyo_log[1] == $year)&&($hyo_log[2] == $month)&&($hyo_log[3] == $kijiday))
		{
			print<<"END";
<div style="padding:0px 5px 5px 5px;font-weight:bold;"><font color="#339966">■$hyo_log[4]</font></div>
<hr color="#FFFFFF" style="width:220px;" noshade>
<div style="padding:10px 5px;">$hyo_log[5]<br></div>
END
		}
	}
	flock(LOG,8);
	close(LOG);
	print<<"END";
<br>
END
}elsif($mode eq 'manual')
{
	print<<"END";
END
}elsif($mode eq 'kanri')
{
	#管理画面ＴＯＰ
	print<<"END";
<div align="center">
■管理者画面
<hr color="#FFFFFF" style="width:220px;" noshade>
*パスワードを入力<br>
<form action="$self" method="POST">
<input type="hidden" name="mode" value="master">
<input type="password" name="masterpas" istyle="4" mode="numeric" size="10"> <input type="submit" value="入力"></form>
</div>
END
}elsif($mode eq 'master')
{
	#マスター画面
	print<<"END";
<div align="center">
■管理者画面
<hr color="#FFFFFF" style="width:220px;" noshade>
<div style="color:#FF0000;">$ok_text</div>
*行う作業を選択<br>
<br>
<table width="100%">
<tr><td align="center">
<form action="$self" method="POST">
<input type="hidden" name="mode" value="write1">
<input type="hidden" name="masterpas" value="$edit_pas">
<input type="submit" value="新規登録"></form></td></tr>
<tr><td align="center"><br><form action="$self" method="POST">
<input type="hidden" name="mode" value="master_chan">
<input type="hidden" name="masterpas" value="$edit_pas">
<input type="submit" value="修正・削除"></form></td></tr>
<tr><td align="center"><br><form action="$self" method="POST">
<input type="hidden" name="mode" value="master_kyu">
<input type="hidden" name="masterpas" value="$edit_pas">
<input type="submit" value="休日設定"></form></td></tr>
</table>
<br>
END
}elsif($mode eq 'master_chan')
{
	#修正、削除画面
	$page = $in{'page'};
	if($page eq '')
	{
		$page = 0;
	}
	print<<"END";
<table width="100%">
<tr>
<td align="center">記事修正・削除画面
<hr color="#FFFFFF" style="width:220px;" noshade>
<div style="font-size:xx-small;"><font size="1" color="#FF0000">\予\定は\書\き込んだ順の逆に\表\示</font></div></td>
</tr>
</table>
<table width="100%" border="1">
END
	open(LOG,"<$log") || &error('ログファイルがオープン出来ませんでした');
	flock(LOG,1);
	while(<LOG>)
	{
		@hyo_log = split(/\t/,$_);
		$hyo_txt = substr($hyo_log[5],0,10)."...";
		print<<"END";
<tr>
<td><div style="font-size:xx-small;"><font size="1">$hyo_log[1]/$hyo_log[2]/$hyo_log[3]&nbsp;</font><br><font size="1">■$hyo_log[4]</font></div></td>
<td align="center">
<form action="$self" method="POST">
<input type="hidden" name="masterpas" value="$edit_pas">
<input type="hidden" name="edit_num" value="$hyo_log[0]">
<select name="mode">
<option value="change1">修正</option>
<option value="delete">削除</option>
</select>
<input type="submit" value="GO"></form>
</td>
</tr>
END
	}
	flock(LOG,8);
	close(LOG);
	print qq|</table>\n|;
}elsif(($mode eq 'write1')||($mode eq 'change1'))
{
	if($mode eq 'write1')
	{
		$edit_mode = 'write2';
		$wtitle = '予定書き込み画面';
		$button = '予定書き込み';
	}elsif($mode eq 'change1')
	{
		$edit_mode = 'change2';
		$wtitle = '予定修正画面';
		$button = '予定修正';
		$input_edit = qq|<input type="hidden" name="edit_num" value="$edit_num">|;
		open(LOG,"<$log") || &error('ログファイルをオープン出来ませんでした');
		flock(LOG,1);
		while(<LOG>)
		{
			@change_log = split(/\t/,$_);
			if($change_log[0] == $edit_num)
			{
				@clogs = split(/\t/,$_);
				$cyear = $clogs[1];
				$cmonth = $clogs[2];
				$cday = $clogs[3];
				$csubject = $clogs[4];
				$ctext = $clogs[5];
				$ctext=~s/<br>/\r/g;
			}
		}
		flock(LOG,8);
		close(LOG);
	}
	#\書\き込み修正入力画面
	print<<"END";
<form action="$self" method="POST">
<input type="hidden" name="mode" value="$edit_mode">
<input type="hidden" name="masterpas" value="$edit_pas">
$input_edit
<div align="center">■$wtitle</div>
<hr color="#FFFFFF" style="width:220px;" noshade>
<table width="100%">
	<tr>
	<td><select name="write_year"><option value="">年</option>
END
	for($i=0;$i<11;$i++)
	{
		$hyo_year = $year + $i;
		if($cyear eq $hyo_year)
		{
			$select = 'selected';
		}else
		{
			$select = '';
		}
		print qq|<option value="$hyo_year" $select>$hyo_year</option>\n|;
	}
	print<<"END";
	</select>　<select name="write_month"><option value="">月</option>
END
	for($i=0;$i<12;$i++)
	{
		$hyo_month = $i+1;
		if($cmonth eq $hyo_month)
		{
			$select = 'selected';
		}else
		{
			$select = '';
		}
		print qq|<option value="$hyo_month" $select>$hyo_month</option>\n|;
	}
	print<<"END";
	</select>　<select name="write_day"><option value="">日</option>
END
	for($i=0;$i<31;$i++)
	{
		$hyo_day = $i+1;
		if($cday eq $hyo_day)
		{
			$select = 'selected';
		}else
		{
			$select = '';
		}
		print qq|<option value="$hyo_day" $select>$hyo_day</option>|;
	}
	print<<"END";
	</select>
	<div style="font-size:xx-small;"><font size="1" color="#FF0000"><br>(*日付を間違えるとスケジュールに\表\示されません<br>2月や30日までしか無い月はご注意下さい)</font></div>
	<hr color="#FFFFFF" style="width:220px;" noshade></td></tr>
	<tr><td>□タイトル</td></tr>
	<tr><td><input type="text" name="subject" value="$csubject"></td></tr>
	<tr><td>□本文</td></tr>
	<tr><td><textarea name="text" rows="4">$ctext</textarea><br><font size="1" color="#FF0000">&lt;a href="**off.gif"&gt;特典&lt;/a&gt;　をコピーして本文に\貼\り\付\けてください。**は割引%など</font></td></tr>
	<tr><td align="center" colspan="2"><input type="submit" value="$button"></td></form></tr>
	</table>
END
}elsif($mode eq 'master_kyu')
{
	#休日設定画面
	@ltime = localtime(time);
	$cyear = $ltime[5] + 1900;
	$cmonth = $ltime[4] + 1;
	$cday = $ltime[3];
	print<<"END";
<div align="center">■管理者画面</div>
<hr color="#FFFFFF" style="width:220px;" noshade>
<form action="$self" method="POST"><input type="hidden" name="mode" value="master_kyu_w">
<input type="hidden" name="masterpas" value="$edit_pas">
<select name="write_month">
END
	for($i=0;$i<12;$i++)
	{
		$hyo_month = $i+1;
		if($cmonth eq $hyo_month)
		{
			$select = 'selected';
		}else
		{
			$select = '';
		}
		print qq|<option value="$hyo_month" $select>$hyo_month月</option>\n|;
	}
	print<<"END";
</select>&nbsp;<select name="write_day">
END
	for($i=0;$i<31;$i++)
	{
		$hyo_day = $i+1;
		if($cday eq $hyo_day)
		{
			$select = 'selected';
		}else
		{
			$select = '';
		}
		print qq|<option value="$hyo_day" $select>$hyo_day日</option>\n|;
	}
	print<<"END";
</select> <input type="submit" value="休日設定">
</form>
END
	$i = -1;
	open(LOG,"<$log2");
	flock(LOG,1);
	while(<LOG>)
	{
		$i++;
		if($i == 0)
		{
			print qq|<hr color="#FFFFFF" style="width:220px;" noshade>\n<form action="$self" method="POST">■休日設定一覧<br>\n
			<div style="font-size:xx-small;"><font size="1" color="#FF0000">(第○週目の○曜日といったものは反映されませんのでご注意ください)</font></div><hr color="#FFFFFF" style="width:220px;" noshade>|;
		}
		($month,$day) = split(/\t/,$_);
		print <<"END";

<table><tr><td>
<input type="checkbox" name="$i" value="delete"></td>
<td>&nbsp;$month月 $day日</td></tr></table>
END
	}
	flock(LOG,8);
	close(LOG);
	if($i != -1)
	{
		print<<"END";

<input type="hidden" name="mode" value="master_kyu_d">
<input type="hidden" name="masterpas" value="$edit_pas">
<input type="submit" value="チェックした項目を削除">
END
	}
	print<<"END";
</form>
END
}
print<<"END";
<hr color="#FFFFFF" style="width:220px;" noshade>
<div align="center" style="font-size:9pt;padding:10px 0px;"><font size="1">(C)iD cafe. All Rights Reserved.</font></div>
</body></html>
END
#デコード処理のサブルーチン
sub decode
{
	# 環境変数取得
	if ($ENV{'REQUEST_METHOD'} eq "POST")
	{
		read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
	}else 
	{
		$query = $ENV{'QUERY_STRING'};
	}
	@args = split(/&/, $query);
	foreach $i (@args) 
	{
		($name, $val) = split(/=/, $i);
		$val =~ tr/+/ /;
		$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack('C', hex($1))/eg;
		$in{$name} = $val;
	}
}
#エラーメッセージのサブルーチン
sub error
{
	my $error = $_[0];
	print"content-type:text/html\n\n";
	print<<"END";
	<html><head>
	<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
	</head>
	<body background="$background" bgcolor="$bgcolor" text="$textcolor" link="$linkcolor" style="width: 240px;"><center>
	エラーメッセージ<br>
	<font color="#FF0000">$error</font>
	</center></body></html>
END
	exit;
}
#カレンダー作成のためのサブルーチン
sub getwday
{
	local($year,$month,$day)=@_;
	if($month<3)
	{
		$year--;
		$month +=12;
	}
	return(($year + int($year/4) - int($year/100) + int($year/400)
	+int((13*$month+8)/5)+$day) %7);
}
#タグを無効化するサブルーチン
sub changetagu
{
	my($data) =@_;
	$data=~s/</&lt;/g;
	$data=~s/>/&gt;/g;
	$data=~s/\t//g;
	$data=~s/\r//g;
	$data=~s/\n//g;
	$data=~s/&lt;br&gt;/<br>/g;
	return $data;
}
