#!/usr/bin/perl

#┌─────────────────────────────────
#│ Black Jack
#│ list.cgi - 2008/02/11
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────

BEGIN {
        use CGI::Carp qw(carpout fatalsToBrowser);
        carpout(STDOUT);
}

# 外部ファイル
require './init.cgi';

&parse_form;
&list_data;

#-------------------------------------------------
#  リスト表示
#-------------------------------------------------
sub list_data {
	my $page = $in{'page'};

	my ($i, @data);
	open(IN,"$logfile") || &error("Open Err: logfile");
	while(<IN>) {
		$i++;
		next if ($i < $page + 1);
		next if ($i > $page + $listlog);

		push(@data,$_);
	}
	close(IN);

	# ページ繰り越し
	my $next = $page + $listlog;
	my $back = $page - $listlog;

	my $pgbtn;
	if ($back >= 0 || $next < $i) {
		$pgbtn .= "| ";
		my ($x, $y) = (1, 0);
		while ($i > 0) {
			if ($page == $y) {
				$pgbtn .= qq{<b style="color:red">$x</b> |\n};
			} else {
				$pgbtn .= qq{<a href=\"$listcgi?page=$y\">$x</a> |\n};
			}
			$x++;
			$y += $listlog;
			$i -= $listlog;
		}
	}

	# アイコン
	my @icon = split(/\s+/, $ico_play);

	# 日付ファイル
	open(IN,"$dayfile");
	my $date = <IN>;
	close(IN);

	# 画面
	my ($flg, $loop);
	open(IN,"$tmpl_list") || &error("Open Err: template");
	print "Content-type: text/html\n\n";
	while(<IN>) {
		if (/<!-- list begin -->/) {
			$flg = 1;
			next;
		}
		if (/<!-- list end -->/) {
			$flg = 0;

			my ($i, $bef, $rank);
			foreach $data (@data) {
				my ($no,$name,$pt,$time,$ico) = split(/<>/, $data);

				$i++;

				# ランク
				if ($pt ne $bef) { $rank = $i; }
				$bef = $pt;

				$name = qq|<img src="$icourl/$icon[$ico]" alt="" align="top" hspace="4">$name|;

				my $tmp = $loop;
				$tmp =~ s/!rank!/$rank/;
				$tmp =~ s/!name!/$name/;
				$tmp =~ s/!score!/$pt/;
				$tmp =~ s/!date!/&chg_date($time)/e;

				print $tmp;
			}

			next;
		}
		if ($flg) {
			$loop .= $_;
			next;
		}
		s/!imgurl!/$imgurl/;
		s/!date!/$date/;
		s/!topurl!/$topurl/;
		s/!pagebtn!/$pgbtn/;

		print;
	}
	close(IN);

	exit;
}

