#!/usr/local/bin/perl
#
# list maker for i system and piloweb
# 
# 2000/05/26 0.2 yar-3 caption
# 2000/05/26 0.1 yar-3 work with i system 0.7.3

$ver = "0.2 00/5/24 by yar-3";

require './config.ph';

if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
} else {
	$query_string = $ENV{'QUERY_STRING'};
}
@a = split(/&/, $query_string);
foreach $a (@a) {
	($name, $value) = split(/=/, $a);
	$value =~ tr/+/ /;
	$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
	$FORM{$name} = $value;
}

$tt = time;
($sec, $min, $hour, $mday, $mon, $year,
	$wday, $yday, $isdst) = localtime($tt);
$year += 1900;
$mon++;
if ($mon < 10 ) { $mon = "0$mon"; } #0suppress
if ($mday < 10 ) { $mday = "0$mday"; }
$today = "$year$mon$mday"; #19991231 format



# 引数
# startday 表示開始日
# endday 表示終了日
# direc 方向(0:昇順 1:降順)
# days 表示日数
$startday = $FORM{'startday'};
$endday = $FORM{'endday'};
$direc = $FORM{'direc'};
$days = $FORM{'days'};

if ($query_string eq "") { #引数なし
	&print_form; #設定用のformを表示
	exit 1;
}
if ($startday eq "" and $endday eq "" and $days ne "") { #最新を表示
	&print_list1;
	exit 1;
}


#
# sub routines
#
sub print_form {
	&html_header("i system list maker form"); #html header
print <<EOF;
<body>
<h1>i system list maker</h1>
<hr>
<ul>
<li>
最新n日分<br>
<form action="./list.cgi" method="get">
<input name="days" size=5 value="30">
日分
<select name="direc">
<option value="0">昇順
<option value="1">降順
</select>
<input type="submit" value="GO">
</form>
</ul>
EOF

	&html_footer;
}

sub print_list1 { #最新りすと
	my $d, $dd, $i, $j, @daylist;

        &html_header("[latest] i system list maker"); #html header
print <<EOF;
<body>
<h1>i system list maker</h1>
Latest $days days
<hr>
<ul>
EOF

	@daylist = reverse(&make_hnf_list);
	for ($i = 0 ; $i < $ days; $i++) {
		if ($direc == 1) {
			$j = $i;
		} else {
			$j = $days - $i - 1;
		}
		$daylist[$j] =~ /(\d{4})(\d{2})(\d{2})/;
		$d = "$1/$2/$3";
print <<EOF;
<li>
<a href="./?$daylist[$j]SALL">
$d
</a>
EOF
	}
print <<EOF;
<p>
<li>
<a href="./?$daylist[0]P">Plan</a>
<li>
<a href="./?$daylist[0]T">ToDo</a>
</ul>
EOF
	&html_footer;

}

sub html_header {
print <<EOF;
content-type: text/html

<html>
<head>
<title>
$_[0]
</title>
</head>
EOF
}


sub html_footer {
print <<EOF;
<hr>
i system
list maker for PiloWeb ver $ver
</body>
</html>
EOF
}

sub make_hnf_list {
#去年から来年までのhnfファイルのリストを作成する
foreach my $y ($year-1..$year+1) {
	opendir DIR, "$diarydir$y" || next;
	push(@ddays, (sort grep s/^d(\d+)\.hnf$/$1/, readdir DIR));
	closedir DIR;
}
return @ddays;
}