########追加########
# IIS対策
if ($ENV{'SERVER_SOFTWARE'} =~ /IIS/i) {
	local($chdir) = $0;
	$chdir =~ s/[^\\]*$//;
	chdir($chdir);
}
########追加########
#print "$ENV{'SERVER_PROTOCOL'} 200 OK\n" if($ENV{'PERLXS'}eq"PerlIS");
# 実用サイトリンク集　作成日2003/08/11
#============#
#  基本設定  #
#============#
require './jcode.pl';							# 文字コードライブラリ取り込み
$title = "オホーツクWeb ～ 実用リンクサイト";	# タイトル名
$script = "search-jitsu.pl";					# スクリプト名
$style_file = "/ow-blue.css";			# スタイルシート
$backimg = "../../img/st07_bg.gif"; 			# 背景画像ファイル
$titleimg = "../../img/ptitle-jitsu-link.gif";	# ページタイトル画像ファイル
$subtitleimg = "../../img/ow-ptitle-b.gif"; 	# ページタイトル画像ファイル
$logdir = "datafile";							# ログファイルを置くディレクトリ
$home = "http://www.okhotsk.or.jp/okindex.shtml";	# 戻り先 (絶対パスなら http://から)
$method = 'POST';								# methodの形式 (POST or GET)
$newtime = 0;									# NEWアイコンの表示日数
$p_view = 200;									# 登録内容の１ページ当りの表示数
$prtnum = 4;									# 内容表示時の列数

# 以下は分類（ジャンル）の指定です。変数のカギ括弧内は 0 から連番で続ける
$parts[0] = "新聞社・新聞広告";
$parts[1] = "テレビ局・マスコミ";
$parts[2] = "生活情報";
$parts[3] = "観光地域気象情報";
$parts[4] = "医療";
$parts[5] = "行政情報";

# サブカテゴリ (半角スペースで区切る）
$subpt[0] = "道内新聞 全国新聞 産業・工業 金融 建設・住宅 農業・水産・食品 医療・福祉・環境・健康 物流・海事 教育 印刷 スポーツ \芸\能\";
$subpt[1] = "キーテレビ局 公共放送 NTV系列局 TBS系列局 CX系列局 テレビ朝日系列局 TX系列局 独立系U局";
$subpt[2] = "冠婚葬祭 法律情報 ショッピング・通販情報 エステティック ファッション 化粧 書籍";
$subpt[3] = "観光・旅・地域 乗物 気象 地震";
$subpt[4] = "医療 健康 病院 病気 妊娠・保育 アレルギー 薬";
$subpt[5] = "国 自治体";

$bground = "";			# 壁紙（http://から記述）
$bgcolor = "#FFFFFF";		# 背景色
$text    = "#000000";		# 文字色
$link    = "#0000FF";		# リンク色（未訪問）
$vlink   = "#0000FF";		# リンク色（既訪問）
$alink   = "#DD0000";		# リンク色（訪問中）

# NEWアイコン
$newgif = "./new.gif";
$new_w = '16';		# 　〃　横サイズ
$new_h = '7';		# 　〃　縦サイズ

# お薦めアイコン
$recom  = './recom.gif';
$rec_w = '16';		# 　〃　横サイズ
$rec_h = '16';		# 　〃　縦サイズ

#------------#
# メイン処理 #
#------------#
&decode;
if ($mode eq 'part') { &part_view; }
&html_view;
exit;

#------------#
#  初期画面  #
#------------#
sub html_view {
	&header;
	print "<table border=\"0\" width=\"630\" cellspacing=\"0\" cellpadding=\"2\">\n";
	$i = 0; $j = 0; $w = 0;	
	foreach (0 .. $#parts) {
		@SUB = split(/\s+/, $subpt[$_]);
		if (!$w) {print "<tr>";}
		if ($w <= 1) {
			print "<td valign=\"top\" colspan=\"2\">\n";
			print "<div align=\"left\">";
			print "<table width=\"310\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"#000033\">\n";
			print "<tr>\n";
			print "<td bgcolor=\"#C7E2FC\"><font color=\"#FF0066\">\&nbsp;▼ </font>";
			print "<font color=\"#FF0066\" size=\"2\"><a href=\"./cgi-bin/search-jitsu/$script?mode=part&part=$_\">";
			print "$parts[$_]</a></font></td>\n";
			print "</tr>\n";
			print "<tr>\n";
			print "<td bgcolor=\"#FFFFFF\" valign=\"top\" height=\"45\">";
			$k=0;
			foreach $x (@SUB) {
				print "<a href=\"./cgi-bin/search-jitsu/$script?mode=part&part=$_&subpt=$k\">[$x]</a> \n";
				$k++;
			}
			print "</td></tr></table></div></td>\n";
		}
		else {
			print "<td colspan=\"2\">　</td>\n";
		}
		$i++; $w++;
		if ($i > $#parts || $w == 2) {
			print "</tr>";
			$w = 0;
		}
	}
	print "</table></center></body></html>";
	exit;

#######################################################################
#<!-- 著作権表\示：削除改変禁止 -->
#- <a href="http://www.kent-web.com/" target="_top">Net Cruiser</a> -
#######################################################################
}

#----------------------------#
#  分類（カテゴリー）を表示  #
#----------------------------#
sub part_view {
	# サブカテゴリを取得
	@SUB = split(/\s+/, $subpt[$FORM{'part'}]);
	&header;
	
	#タイトル部分
	print "<table width=\"760\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#000033\">\n";
	print "<tr><td align=\"center\" bgcolor=\"#0099FF\">\n";
	print "<table width=\"750\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\"><tr>\n";
	print "<td><img src=\"$titleimg\" width=\"350\" height=\"50\"></td>\n";
	print "<td>　</td>\n";
	print "<td valign=\"bottom\"><div align=\"right\"><img src=\"$subtitleimg\" width=\"193\" height=\"40\"></div></td>\n";
	print "</tr></table>\n</td></tr>\n<tr><td align=\"center\" bgcolor=\"#FFFFFF\">\n";

	#見出しのリンク作成
	print "<table width=100% bgcolor=\"#D0F0FF\" cellspacing=3 cellpadding=0><tr>\n";
	print "<td>&nbsp;<a href=\"../../jitsulist.shtml\">実用リンクへ戻る</a> &gt; ";
	if ($FORM{'subpt'} ne "") {
		print "<a href=\"$scrpt?mode=part&part=$FORM{'part'}\">$parts[$FORM{'part'}]</a> ";
		print "&gt; $SUB[$FORM{'subpt'}] \n";
	}
	else {
		print "$parts[$FORM{'part'}] </td>\n";
	}
	print "<td><div align=\"right\"><a href=\"$home\">HOMEへ戻る &gt;</a></div></td>";
	print "</tr></table>\n";
	print "</td></tr>\n";
	print "<tr><td align=\"center\" bgcolor=\"#FFFFFF\"><br>\n";
	print "<b><font size=\"4\"><font color=\"#FF0066\" >■ </font>$parts[$FORM{'part'}]<font color=\"#FF0066\" > ■</font></font></b><br><br>";

	#大分類クリック時
	if ($FORM{'subpt'} eq '') {
		$k=0;
		foreach $x (@SUB) {
			$logfile = "$logdir\/$FORM{'part'}\.dat";
			open(IN,"$logfile") || &error("ファイルが開けません。 : $logfile");

			print "<table width=\"700\" bgcolor=\"#333366\" cellspacing=\"1\" cellpadding=\"0\">\n";
		print "<tr><td bgcolor=\"#ffffff\" align=\"center\">\n<table width=\"100\%\" bgcolor=\"#C7E2FC\" cellspacing=\"3\" cellpadding=\"0\"><tr>\n";
		print "<td><font color=\"#FF0066\" size=\"3\">▼ </font><font size=\"3\">$x</font></td></tr></table>\n";
		print "<table border=\"0\" width=\"680\" cellspacing=\"1\" cellpadding=\"1\">\n";
		
		$i=0; $j=0;	$w=0;
			while ($_ = <IN>) {
				local($no,$pt,$subpt,$sub,$hp,$name,$email,$pw,$msg,$dt,$ts,$rec,$axs) = split(/<>/, $_);
				if ($k == $subpt) {
					if ($FORM{'subpt'} ne "" && $FORM{'subpt'} ne "$subpt") { next; }
					$i++;
					if (!$w) {print "<tr>\n";}
					if ($w <= $prtnum - 1) {
						#結果を表示
						print "<td valign=\"top\" width=\"5\"><font color=\"#FFAA00\">■</font></td>\n";
						print "<td valign=\"top\" width=\"165\"><a href=\"$hp\" target=\"_blank\">$sub</a>";
						# アイコンを表示
						$times = time; &icons;
						print "</td>\n";
					} else {
						print "<td width=\"5\">　</td><td width=\"165\">　</td>\n";
					}
					$w++;
					if ($w == $prtnum) {
						print "</tr>";
						$w = 0;
					}
				}
			}
			if ($i != 0 && $i < $prtnum) {
			foreach ($w .. $prtnum - 1){
				print "<td width=\"5\">　</td><td width=\"165\">　</td>\n";
			} 
			print "</tr>\n";
			}
			$wk1 = $i / $prtnum; $wk2 = int($i / $prtnum);
			if ($i > $prtnum && ($wk1 - $wk2) != 0) { print"</tr>\n"; }
			if ($i == 0) { print "<tr><td>※現在登録されていません。</td></tr>\n"; }
			print "</table></td></tr></table>";
			print "<table width=660 cellspacing=0 cellpadding=0><tr><td align=right><a href=\"\#top\">top▲</a></td></tr></table>\n";
			$k++;
		}
	}

	#中分類クリック時
	else {
		$logfile = "$logdir\/$FORM{'part'}\.dat";
		open(IN,"$logfile") || &error("ファイルが開けません。 : $logfile");

		print "<table width=\"700\" bgcolor=\"#333366\" cellspacing=\"1\" cellpadding=\"0\">\n";
		print "<tr><td bgcolor=\"#ffffff\" align=\"center\">\n";
		print "<table width=\"100\%\" bgcolor=\"#C7E2FC\" cellspacing=\"3\" cellpadding=\"0\"><tr>\n";
		print "<td><font color=\"#FF0066\" size=\"3\">▼ </font><font size=\"3\">$SUB[$FORM{'subpt'}]</font></td>\n";
		print "</tr></table>\n";
		print "<table border=\"0\" width=\"680\" cellspacing=\"1\" cellpadding=\"1\">\n";
		
		$i=0; $j=0;	$w=0;
		while ($_ = <IN>) {
			local($no,$pt,$subpt,$sub,$hp,$name,$email,$pw,$msg,$dt,$ts,$rec,$axs) = split(/<>/, $_);
			if ($FORM{'subpt'} ne "" && $FORM{'subpt'} ne "$subpt") { next; }
			$i++;
			if (!$w) {print "<tr>\n";}
			if ($w <= $prtnum - 1) {
				#結果を表示
				print "<td valign=\"top\" width=\"5\"><font color=\"#FFAA00\">■</font></td>\n";
				print "<td valign=\"top\" width=\"165\"><a href=\"$hp\" target=\"_blank\">$sub</a>";
				# アイコンを表示
				$times = time; &icons;
				print "</td>\n";
			} else {
				print "<td width=\"5\">　</td><td width=\"165\">　</td>\n";
			}
			$w++;
			if ($w == $prtnum) {
				print "</tr>\n";
				$w = 0;
			}
		}
		if ($i != 0 && $i < $prtnum) {
			foreach ($w .. $prtnum - 1){
				print "<td width=\"5\">　</td><td width=\"165\">　</td>\n";
			} 
			print "</tr>\n";
		}
		$wk1 = $i / $prtnum; $wk2 = int($i / $prtnum);
		if ($i > $prtnum && ($wk1 - $wk2) != 0) { print"</tr>\n"; }
		if ($i == 0) { print "<tr><td>※現在登録されていません。</td></tr>\n"; }
		print "</table></td></tr></table>";
		print "<table width=660 cellspacing=0 cellpadding=0><tr><td align=right><a href=\"\#top\">top▲</a></td></tr></table>\n";
	}
	print "※ご覧になりたい項目をクリックすると別画面で表\示されます。<br>";
	print "<br></td></tr>\n";
	close(IN);

	#著作権を表示
	print "<tr><td align=\"center\" bgcolor=\"#0099FF\"><font color=\"#FFFFFF\">";
	print "Copyright &copy; 2003 System Supply Co.,Ltd All Rights Reserved.</font></td></tr>\n";
	print "</td></tr></table>\n";

	# 改頁処理
	#if ($page eq '') { $page = 1; }
	#$next_line = $page + $p_view;
	#$back_line = $page - $p_view;
	#print "<table><tr>\n";
	# 前頁処理
	#if ($back_line > 0) {
	#	print "<td><form method=\"$method\" action=\"$script\">\n";
	#	print "<input type=hidden name=page value=\"$back_line\">\n";
	#	print "<input type=hidden name=mode value=\"part\">\n";
	#	print "<input type=hidden name=part value=\"$FORM{'part'}\">\n";
	#	print "<input type=hidden name=subpt value=\"$FORM{'subpt'}\">\n";
	#	print "<input type=submit value=\"前の$p_view件\">\n";
	#	print "</form></td>\n";
	#}
	# 次頁処理
	#if ($next_line <= $i) {
	#	print "<td><form method=\"$method\" action=\"$script\">\n";
	#	print "<input type=hidden name=page value=\"$next_line\">\n";
	#	print "<input type=hidden name=mode value=\"part\">\n";
	#	print "<input type=hidden name=part value=\"$FORM{'part'}\">\n";
	#	print "<input type=hidden name=subpt value=\"$FORM{'subpt'}\">\n";
	#	print "<input type=submit value=\"次の$p_view件\">\n";
	#	print "</form></td>\n";
	#}

	print "</tr></table>\n</center>\n</body></html>\n";
	exit;
}

#----------------#
#  デコード処理  #
#----------------#
sub decode {
	if ($ENV{'REQUEST_METHOD'} eq "POST") {
		if ($ENV{'CONTENT_LENGTH'} > 51200) { &error("投稿量が大きすぎます"); }
		read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
	} else { $buffer = $ENV{'QUERY_STRING'}; }

	@pairs = split(/&/, $buffer);
	foreach $pair (@pairs) {
		($name, $value) = split(/=/, $pair);
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

		# 文字コード変換
		&jcode'convert(*value,'sjis');

		# タグ処理
		$value =~ s/\"/&quot;/g;
		$value =~ s/</&lt;/g;
		$value =~ s/>/&gt;/g;

		# 改行処理
		if ($name eq "msg") {
			$value =~ s/\r\n/<br>/g;
			$value =~ s/\r/<br>/g;
			$value =~ s/\n/<br>/g;
		} else {
			$value =~ s/\r//g;
			$value =~ s/\n//g;
		}

		# 削除／推奨マーク処理
		if ($name eq 'del') { push(@delete,$value); }
		elsif ($name eq 'rec') { push(@recs,$value); }

		$FORM{$name} = $value;
	}
	$mode  = $FORM{'mode'};
	$page  = $FORM{'page'};
}

#----------------#
#  HTMLのヘッダ  #
#----------------#
sub header {
	print "Content-type: text/html\n\n";
	print <<"EOM";
<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
<title>$title</title>
<link rel="stylesheet" type="text/css" href="$style_file">
</head>
<body bgcolor="$bgcolor" background=\"$backimg\" leftmargin="0" topmargin="10" marginwidth="0" marginheight="10" text="$text" link="$link" vlink="$vlink" alink="$alink">
<center>
EOM
}

#--------------#
#  エラー処理  #
#--------------#
sub error {
	if ($_[1] eq "lock" && -e $lockfile) { unlink($lockfile); }

	&header;
	print "<center><hr width='75%'><P><h3>ERROR !</h3>\n";
	print "<P><font color=red><B>$_[0]</B></font>\n";
	print "<P><hr width='75%'></center>\n";
	print "</body></html>\n";
	exit;
}

#----------------------------#
#  アイコンの定義および表示  #
#----------------------------#
sub icons {
	if ($_[0] eq 'rank') {
		if ($times - $ts{$_} < $newtime*24*60*60) {
	  	  print " <img src=\"$newgif\" width=\"$new_w\" height=\"$new_h\">";
		}
		if ($rec{$_} == 1) {
	  	  print " <img src=\"$recom\" width=\"$rec_w\" height=\"$rec_h\">";
		}
	}
	else {
		if ($times - $ts < $newtime*24*60*60) {
	  	  print " <img src=\"$newgif\" width=\"$new_w\" height=\"$new_h\">";
		}
		if ($rec == 1) {
	  	  print " <img src=\"$recom\" width=\"$rec_w\" height=\"$rec_h\">";
		}
	}
}

#--------------#
#  時間の取得  #
#--------------#
sub get_time {
	$ENV{'TZ'} = "JST-9"; # タイムゾーンを日本時間へ
	$times = time;
	($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy,$dmy) = localtime($times);
	@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

	# 日時のフォーマット
	$date = sprintf("%04d\/%02d\/%02d(%s) %02d\:%02d",
			$year+1900,$mon+1,$mday,$week[$wday],$hour,$min);
}
