#!/usr/local/bin/perl
utime time(), time(), __FILE__;
############################################################
#
# 日記帳 version 0.34
# 動作確認：FreeBSD & perl5
#
############################################################

$mode = "1";					# 動作環境(0=Windows 1=Unix)

if ($mode == "0"){
	require "C:\\tsubakuro\\public_html\\diary\\jcode.pl";		# フルパス指定
	require "C:\\tsubakuro\\public_html\\diary\\cgi-lib.pl";	# フルパス指定
	require "C:\\tsubakuro\\public_html\\diary\\lib.pl";		# フルパス指定
	require "C:\\tsubakuro\\public_html\\diary\\diaryconf.cgi";	# フルパス指定
} else {
	require './jcode.pl';
	require './cgi-lib.pl';
	require './lib.pl';
	require './diaryconf.cgi';
}

$wording1 = '記帳されてありません。';
						# 初期値チェック
# 記帳表示日数
if ($reiterate <= 0){$reiterate = 1;}
if ($reiterate > $reiterate_max){$reiterate = $reiterate_max;}
# 日記表示縦サイズ
if ($diary_hsize < 1){$diary_hsize = 1;}
if ($diary_hsize > $diary_hsizemax){$diary_hsize = $diary_hsizemax;}
# 日記表示横サイズ
if ($diary_wsize < 450){$diary_wsize = 450;}
if ($diary_wsize > $diary_wsizemax){$diary_wsize = $diary_wsizemax;}

# WEBから送信されたフォームを読み込む
&getinputfromweb;

$query_year = $form{'year'};
$query_mon = $form{'mon'};
$query_day = $form{'day'};

($year,$mon,$day,$wday,$hour,$min,$sec) = &getdatetime(time,$jisa);

if ($query_year eq ""){$query_year = $year;}
if ($query_mon eq ""){$query_mon = $mon;}
if ($query_day eq ""){
	$query_day = $day;
} elsif ($query_day eq "99"){
	$query_day = &getgetumatu($query_year,$query_mon)
}

print "Content-type: text/html\n\n";

# イベントの取得
if (-e $eventfile) {
	if (open(DATA,"<$eventfile")){
			@eventlist = <DATA>;
			close(DATA);
	}
} else {
	open(OUT,">$eventfile") || &error("ERR001 WRITE ERROR : $eventfile","end",$diarycgi);
	print OUT "";
	close(OUT);
	chmod (0666,$eventfile);
	@eventlist = "";
}

$both = '';

# 画像ポップアップ
if ($form{'action'} eq 'picture') {
	&PopPictures;
# フレーム分割 あり
} elsif ($frameid == "1") {
	$both = '&framename=both';
	if ($form{'framename'} eq 'left') {
		&leftdisp;
	} elsif ($form{'framename'} eq 'right') {
		&rightdisp;
	} elsif ($form{'framename'} eq 'both') {
		&leftdisp;
		print "<SCRIPT Language=JavaScript>\n";
		print "</SCRIPT>\n";
	} else {
		&framedisp;
	}
# フレーム分割 なし
} elsif ($frameid == "0") {
	&diarydisp;
# カレンダー表示 なし
} else {
	&diary2disp;
}

exit 0;

##########################################################
# ヘッダーの展開
#
sub header
{
	print "<html>\n";
	print "<head>\n";
	if ($kanji_code eq "sjis") {
		print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n";
	} else {
		print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">\n";
	}
	print "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n";
	print "<meta http-equiv=\"Pragma\" content=\"no-cache\">\n";
	print "<meta http-equiv=\"imagetoolbar\" content=\"no\">\n";
	if ($form{'action'} eq 'picture') {
		print &style_css2;
		print &JavaScript2;
	} else {
		print &style_css;
		print &JavaScript;
	}
	print "<title>DAY FLASH $query_year年$query_mon月</title></head>\n";
}

##########################################################
# 標準表示（フレーム分割 あり）
sub framedisp
{
# ヘッダーの展開
	&header;
# bodyタグ
	print "<frameset cols=\"210,*\" frameborder=no border=0>\n";
	print "<frame src=$diarycgi?year=$query_year&mon=$query_mon&day=$query_day&framename=left name=left>\n";
	print "<frame src=$diarycgi?year=$query_year&mon=$query_mon&day=$query_day&framename=right name=right>\n";
	print "</frameset>\n";
	print "<noframes>\n";
	print "<body><br><center>\n";
	print "<p>フレームに対応していませんので、環境設定画面に於いてフレーム分割をしないを選択してください。</p>\n";
	print "<p>";
	print "";
	print "</p>\n";
	print "</center></body>\n";
	print "</noframes>\n";
	print "</html>\n";
}

##########################################################
# 左フレーム表示
sub leftdisp
{
# ヘッダーの展開
	&header;
# bodyタグ
	if ($backgif1) {
		$bgkey = "background=\"$imagedir$backgif1\" bgcolor=$h_bgcolor1 leftmargin=0";
	} else {
		$bgkey = "bgcolor=$h_bgcolor1 leftmargin=0";
	}
	print "<body $bgkey>\n";
	print "<br>\n";
	print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
	print "<tr>";
	print "<td width=\"30\">&nbsp;</td>";
	print "<td colspan=\"2\">";
# アイコンリンク
	&iconlink;
	print "</td>";
	print "</tr>";
	print "<tr>";
	print "<td colspan=\"3\" height=\"18\">&nbsp;</td>";
	print "</tr>";
	print "<tr>";
	print "<td width=\"30\">&nbsp;</td>";
	print "<td valign=\"top\" align=\"center\" width=\"142\">";
# カレンダー本体の作成
	&calendar(1);
	&message;
	&EventPrint;
	print "</td>";
	print "<td>&nbsp;</td>";
	print "</tr>";
	print "</table>\n";
	print "</body>\n";
	print "</html>\n";
}

##########################################################
# 右フレーム表示
sub rightdisp
{
# ヘッダーの展開
	&header;
# bodyタグ
	if ($backgif2) {
		$bgkey = "background=\"$imagedir$backgif2\" bgcolor=$h_bgcolor2 leftmargin=0";
	} else {
		$bgkey = "bgcolor=$h_bgcolor2 leftmargin=0";
	}
	print "<body $bgkey>\n";
	print "<a name=\"top\"></a>\n";
	print "<br>\n";
	print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
	print "<tr>";
# タイトル
	print "<th width=\"$wsize\" height=\"36\" valign=\"top\" align=\"center\">";
	&diarytitle;
	print "</th>";
	print "</tr>";
	print "<tr>";
# 日記本体の作成開始
	print "<td valign=\"top\" align=\"left\">";
# 四隅の編集
	&corners;
# 書き込み背景カラー設定
	&backcolor;
# 年月日の待避
	$next_year = $query_year;
	$next_mon  = $query_mon;
	$next_day  = $query_day;
	$no = 0;
# 表示条件（1=日記 0=全て）
	if ($diary_condition == "1"){
		&write_view($reiterate,1);
	} else {
# 記帳内容取得
		&Is_GetDate(1);
		&all_view($reiterate,1);
	}
	print "</td>";
	print "</tr>";
	print "</table>";
	print "</body>\n";
	print "</html>\n";
}

##########################################################
# 標準表示（フレーム分割 なし）
sub diarydisp
{
# ヘッダーの展開
	&header;
# bodyタグ
	if ($backgif) {
		$bgkey = "background=\"$imagedir$backgif\" bgcolor=$h_bgcolor";
	} else {
		$bgkey = "bgcolor=$h_bgcolor";
	}
	print "<body $bgkey>\n";
	print "<a name=\"top\"></a>\n";
# title
	print "<br>\n";
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
	print "<tr><td valign=\"top\">";
	print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">\n";
	print "<tr>";
	print "<td>&nbsp;</td>";
# アイコンリンク
	print "<td colspan=\"2\">\n";
	print "</td></tr>";
	print "<tr>";
	print "<td colspan=\"3\" height=\"10\">&nbsp;</td></tr>";
	print "<tr>";
	print "<td width=\"20\">&nbsp;</td>";
	print "<td valign=\"top\" align=\"center\" width=\"142\">\n";
# カレンダー本体の作成
	&calendar(1);
	&message;
	print "</td>\n";
	print "<td width=\"20\">&nbsp;</td></tr>\n";
	print "</table>\n";
	print "</td><td valign=\"top\">";
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
# タイトル
	print "<tr><th width=\"$wsize\" valign=\"top\" height=\"35\" align=\"center\">";
	&diarytitle;
	print "</th></tr>";
	print "<tr>";
	print "<td align=\"right\"><A href=\"$Old_DayFlash\" target=\"_blank\"><B>過去のDAY FLASHはこちら</B></A></td>";
	print "</tr>";
	print "<tr>";
# 日記本体の作成開始
	print "<td valign=\"top\" align=\"left\">\n";
# 四隅の編集
	&corners;
# 書き込み背景カラー設定
	&backcolor;
# 年月日の待避
	$next_year = $query_year;
	$next_mon  = $query_mon;
	$next_day  = $query_day;
	$no = 0;
# 表示条件（1=日記 0=全て）
	if ($diary_condition == "1"){
		&write_view($reiterate,1);
	} else {
# 記帳内容取得
		&Is_GetDate(1);
		&all_view($reiterate,1);
	}
# 日記制御
	$w_past = $diary_wsize + 36;
	print "</td>\n";
	print "</tr>\n";
	print "</table>\n";
	print "</td></tr>";
# 著作権表示
	print "</tr>\n";
	print "</table>\n";
	print "<br></body>\n";
	print "</html>\n";
}

##########################################################
# 標準表示（カレンダー表示 なし）
sub diary2disp
{
# ヘッダーの展開
	&header;
# bodyタグ
	if ($backgif) {
		$bgkey = "background=\"$imagedir$backgif\" bgcolor=$h_bgcolor";
	} else {
		$bgkey = "bgcolor=$h_bgcolor";
	}
	print "<body $bgkey>\n";
	print "<a name=\"top\"></a>\n";
	print "<br><center>\n";
	print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
	print "<tr>";
# アイコンリンク
	print "<td align=\"left\" valign=\"top\" height=\"25\">";
	&iconlink;
	print "</td>";
	print "<td align=\"right\" valign=\"top\">&nbsp;</td>";
	print "</tr>";
	print "<tr>";
# タイトル
	print "<th colspan=\"2\" width=\"$wsize\" height=\"36\" valign=\"top\" align=\"center\">";
	&diarytitle;
	print "</th>";
	print "</tr>";
	print "<tr>";
# 日記本体の作成開始
	print "<td colspan=\"2\" valign=\"top\" align=\"left\">";
# 四隅の編集
	&corners;
# 書き込み背景カラー設定
	&backcolor;
# 年月日の待避
	$next_year = $query_year;
	$next_mon  = $query_mon;
	$next_day  = $query_day;
	$no = 0;
# 表示条件（1=日記 0=全て）
	if ($diary_condition == "1"){
		&write_view($reiterate,1);
	} else {
# 記帳内容取得
		&Is_GetDate(1);
		&all_view($reiterate,1);
	}
# 日記制御
	$w_past = $diary_wsize + 36;
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
	print "<tr>\n";
	print "<td align=\"center\" valign=\"middle\" class=\"style-3\" width=\"$w_past\"><font color=\"$f_color\">the newest</font></a>&nbsp;|&nbsp;";
# 日記の表示 (1=昇順 0=降順)
	if ($screen == "1"){
		print "";
		print "<font color=\"$f_color\">the next</font></a></td>\n";
	} else {
		print "";
		print "<font color=\"$f_color\">the last</font></a></td>\n";
	}
	print "</tr>\n";
	print "</table>\n";
# 日記本体の作成終了
	print "</td>";
	print "</tr>";
	print "<tr>";
	print "<td align=\"left\" valign=\"middle\" height=\"40\">&nbsp;</td>";
# 著作権表示
	print "<td align=\"right\" valign=\"bottom\" class=\"copyright\" height=\"40\">";
	print "</td>";
	print "</tr>";
	print "</table>\n";
	print "<br></center></body>\n";
	print "</html>\n";
}

##########################################################
# アイコンリンク
sub iconlink
{
	if ($frameid eq "1") {
		$target = " target=\"_parent\"";
	} else {
		$target = "";
	}
	print "";
	print "";
	print "";
	print "";
	print "";
	print "";
	print "";
	print "";
	if ($use_del == "1"){
		print "";
		print "";
	}
	print "";
	print "</a>";
	if ($use_mail == "1"){
		print "";
		print "";
	}
}

##########################################################
# 左側カレンダー下のメッセージの設定
sub message
{
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"style-1\">";
	print "<tr><td>$message1</td></tr>";
	print "</table>\n";
}

##########################################################
# 書き込み背景カラー設定
sub backcolor
{
	if (-e "$imagedir$backpengif") {
		$backpen = "<td colspan=\"4\" bgcolor=\"$h_diary\" background=\"$imagedir$backpengif\" valign=\"top\" align=\"left\" height=\"$diary_hsize\" width=\"$diary_wsize\">";
	} else {
		$backpen = "<td colspan=\"4\" bgcolor=\"$h_diary\" valign=\"top\" align=\"left\" height=\"$diary_hsize\" width=\"$diary_wsize\">";
	}
}

##########################################################
# 記帳表示
sub Is_Screen
{
	print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
	print "<tr><td>\n";
	&screens($next_year,$next_mon,$next_day,$wtitlegif,$color_no,$next_diarydata,'0');
	print "</td></tr>";
	print "</table>\n";
}

##########################################################
# 検索期間内に記帳されていない
sub Is_NoScreen
{
	$hyouji = '表示';
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	print "<tr>\n";
	print "$upperleft";
	print "<td bgcolor=\"$h_diary\">";
	print "<span style=\"font-size:1px;\">&nbsp;</span></td>";
	print "$upperright";
	print "</tr><tr>\n";
	print "<td bgcolor=\"$h_diary\">";
	print "<span style=\"font-size:1px;\">&nbsp;</span></td>";
# 書き込み背景カラー設定
	if (-e "$imagedir$backpengif") {
		print "<td bgcolor=\"$h_diary\" background=\"$imagedir$backpengif\" valign=\"middle\" align=\"center\" height=\"$diary_hsize\" width=\"$diary_wsize\">";
	} else {
		print "<td bgcolor=\"$h_diary\" valign=\"middle\" align=\"center\" height=\"$diary_hsize\" width=\"$diary_wsize\">";
	}
# 日記の表示 (1=昇順 0=降順)
	if ($screen == "1"){
		print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
		print "<tr><th valign=\"top\" height=\"40\">";
		print "<font color=$err_color size=3>$wording1</font></th></tr>";
		print "<tr><th valign=\"top\">";
		print "<font color=$err_color>（$query_year/$query_mon/$query_day〜$last_year/$last_mon/$last_day - $reiterate日間の昇順$hyouji）</font>";
		print "</th></tr>";
		print "</table>\n";
	} else {
		print "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";
		print "<tr><th valign=\"top\" height=\"40\">";
		print "<font color=$err_color size=3>$wording1</font></th></tr>";
		print "<tr><th valign=\"top\">";
		print "<font color=$err_color>（$last_year/$last_mon/$last_day〜$query_year/$query_mon/$query_day - $reiterate日間の降順$hyouji）</font>";
		print "</th></tr>";
		print "</table>\n";
	}
	print "</td>\n";
	print "<td bgcolor=\"$h_diary\">";
	print "<span style=\"font-size:1px;\">&nbsp;</span></td>";
	print "</tr><tr>\n";
	print "$lowerleft";
	print "<td bgcolor=\"$h_diary\">";
	print "<span style=\"font-size:1px;\">&nbsp;</span></td>";
	print "$lowerright";
	print "</tr></table>\n";
}

############################################################
# イベントの展開
#
sub EventPrint
{
	$e_year = $year;
	$e_mon  = $mon;
	print "<br><table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\">\n";
	print "<tr><td align=\"center\" valign=\"top\" height=\"18\">$eventtitle</td></tr>";
	for $i (1..4) {
		$tamaend = &getgetumatu($e_year,$e_mon);
		for $e_day (1..$tamaend) {
			@holidaylist = &EventList($e_year);
			push(@holidaylist,@eventlist);
			$e_youbi = &getyoubi($e_year,$e_mon,$e_day);
			($flag1,$flag2,$event) = &MakeEvent($e_year,$e_mon,$e_day,$e_youbi,@holidaylist);
			if ($event) {
				print "<tr><td>・";
				print "<font color=\"$f_color\">$event($e_mon/$e_day)</font></a></td></tr>\n";
			}
		}
		$e_mon++;
		if ($e_mon > 12) {
			$e_year++;
			$e_mon = 1;
		}
	}
	print "</table>\n";
}

############################################################
# スクリーンの展開
#
sub PopPictures
{
# 設定
	$picture = $up_dir . $form{'picture'};
# 画像サイズの取得
	if (substr($picture, -4, 4) eq '.gif') {
		($wsize,$hsize) = &GifSize("$picture");
	} elsif (substr($picture, -4, 4) eq '.jpg') {
		($wsize,$hsize) = &JpegSize("$picture");
	} elsif (substr($picture, -4, 4) eq '.png') {
		($wsize,$hsize) = &PngSize("$picture");
	}
# ヘッダーの展開
	&header;
# bodyタグ
	if ($backgif) {
		$bgkey = "background=\"$imagedir$backgif\" bgcolor=$h_bgcolor";
	} else {
		$bgkey = "bgcolor=$h_bgcolor";
	}
	print "<body $bgkey>\n";
	print "<center>\n";
# 画像表示
	print <<"EOM";
	<table border=\"0\" width=\"$wsize\" height=\"$hsize\" cellpadding=\"0\" cellspacing=\"0\">
		<tr>
			<td align=\"center\"><img src=\"$picture\" width=\"$wsize\" height=\"$hsize\" border=\"0\" onClick=\"window.close()\" alt=\"クリックすると閉じます\"></td>
		</tr>
	</table>
EOM
	print "</center>\n";
	print "</body>\n";
	print "</html>\n";
}

