#!/Perl64/bin/perl
#       ↑あなたが加入しているプロバイダの｢perl｣言語が使用できる
#         パスを指定します。一般的に｢#!/usr/local/bin/perl｣で大丈夫

#=======================================================================================
#				netnavi Version 2.1
#=======================================================================================
#日本語コード変換モジュール
require '../jcode.pl';

#あなたのホームページのアドレス
$homepage = 'http://www.g-call.com/index.html';

#キーワード検索フォームを設置したアドレス
$searchform = 'http://www.g-call.com/cgi/navi_rate_010201/index_area.htm';

#登録変更フォームを設置したアドレス
$registform = 'http://wwwg-call.com/cgi/navi_rate_010201/regist.htm';

#１ページに表示する件数
$pagevew = 100;

#データファイルの名前
$datafile = 'navi.txt';
#=======================================================================================
#			初期設定が必要なのはここまでです。
#=======================================================================================
if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'});
} else { $QUERY_DATA = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$QUERY_DATA);
foreach $pair (@pairs) {
	($name, $value) = split(/=/, $pair);
	$value =~ tr/+/ /;
	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
	$value =~ s/</&lt;/g;
	$value =~ s/>/&gt;/g;
	$value =~ s/\n//g;
	$value =~ s/\,//g;
	&jcode'convert(*value,'sjis');
	$QUERY{$name} = $value;
}
$ENV{'TZ'} = "JST-9";
@DATE = localtime(time);
$DATE[5] += 1900;
if ($DATE[4] == 0) { $DATE[4] = 12; $DATE[5]--; }
$DATE[4] = sprintf("%02d",$DATE[4]);
$DATE[3] = sprintf("%02d",$DATE[3]);
$DATE[2] = sprintf("%02d",$DATE[2]);
$DATE[1] = sprintf("%02d",$DATE[1]);
$DATE = "$DATE[5]/$DATE[4]/$DATE[3] $DATE[2]:$DATE[1]";

print "Content-type: text/html\n\n";
print "<html><head>\n";
print "<meta http-equiv=Content-Type content=text/html; charset=x-sjis>\n";
print "<title>検索結果</title></head>\n";
print "<link rel=\"stylesheet\" href=\"/css/japanese.css\">\n";
print "</head>\n";
print "<body bgcolor=#FFFFFF>\n";
print "<br><br><div class=\"text18p\"><font color=\"#0a50a1\"><b>G-Call&nbsp;国際電話料金&nbsp;&nbsp;&nbsp;-固定電話発信</font></b></div>\n";
print "<div class=\"doc16\">２００５年５月１日現在</div><br>\n";

&data_read;
$keyflag = 1;
if ($QUERY{'key'} eq 'new') {
	$keyflag = 3;
	@DATA = reverse(@DATA);
	foreach $line (@DATA) {
		($da,$co,$na,$em,$HP,$ti,$sub,$com,$ge,$key,$ken,$tiku,$tl,$rn,$op) = split(/\,/,$line);
		if ($da ge $DATE) { push(@MATCH,$line); }
	}
} elsif ($QUERY{'genre'} ne "") {
	$keyflag = 2;
	foreach $line (@DATA) {
		($da,$co,$na,$em,$HP,$ti,$sub,$com,$ge,$key,$ken,$tiku,$tl,$rn,$op) = split(/\,/,$line);
		if ($em eq $QUERY{'genre'}) { push(@MATCH,$line); }
	}
} else {
	if ($QUERY{'key'} eq '') { $keyflag = 0; &error(bad_string); }
	$rkey = $QUERY{'key'};
	$rkey =~ tr/[A-Z]/[a-z]/;
	$rkey =~ s/　/ /g;
	@KEY = split(/ /,$rkey);
	$keycount = @KEY;
	foreach $mline (@DATA) {
		$line = $mline;
		$line =~ tr/[A-Z]/[a-z]/;
		if ($QUERY{'mode'} eq "or") {
			$match = 0;
			foreach $key (@KEY) {
				if (index($line,$key) >= 0) { $match = 1; last; }
			}
		} else {
			$match = 1;
			foreach $key (@KEY) {
				if (!(index($line,$key) >= 0)) { $match = 0; last; }
			}
		}
		if ($match) { push(@MATCH,$mline); }
	}
}
$key = $QUERY{'key'};
$genre = $QUERY{'genre'};
$count = @MATCH;
$max = $count - 1;
if ($count > 0) {
	if ($QUERY{'start'} < 1) {
		$page_start = 0;
	} else { $page_start = $QUERY{'start'}; }
	$page_end = $page_start + ($pagevew - 1);
	if ($page_end > $max) { $page_end = $max; }
	if ($QUERY{'key'} eq "new") {
		print "<p align=left><font size=2>過去１ヶ月以内の新着情報は、$count件です。</font><br>\n";
	} elsif ($QUERY{'genre'} ne "") {
		"<p align=left><font size=2>$genreに現在登録されているのは$count件です。</font><br>\n";
	} else {
		print "<p align=left><font size=2>キーワード[$key]で$count件の該当が有りました。</font><br>\n";
	}
	print $page_start + 1, " 番から ", $page_end + 1, " 番まで表\示しています。</p>\n";
	print "<hr width=\"650\" align=\"left\">\n";
	print "<blockquote>\n";
	print "<dl>\n";


print "<div class=\"doc16\">G-Call４桁番号は、ご登録後にお知らせします。</div>\n";
print "<div class=\"text14p\">・２４時間同一料金です。&nbsp;・料金計算は６秒単位です（円）&nbsp;・G-Call通話料以外はかかりません。</div><br>\n";

print "<table border=1>";
	print "<tr>";
	print "<td align=\"center\"><div class=\"doc16\"><font color=\"#0a50a1\">国名</font></div></td>\n";
	print "<td align=\"center\"><div class=\"doc16\"><font color=\"#0a50a1\">Country Name</font></div></td>\n";
	print "<td align=\"center\"><div class=\"doc16\"><font color=\"#0a50a1\">国番号</font></div></td>\n";
	print "<td align=\"center\"><div class=\"doc16\"><font color=\"#0a50a1\">００＊＊発信料金</font></div><div class=\"doc16\"><font color=\"#0a50a1\">固定電話から</font></div></td></tr>\n";


	foreach ($page_start .. $page_end) {
		$line = $MATCH[$_];
		($da,$co,$na,$em,$HP,$ti,$sub,$com,$ge,$key,$ken,$tiku,$tl,$rn,$op) = split(/\,/,$line);
		$tiku =~ s/\n//g;
		
		print "<tr>";
		print "<td><div class=\"doc16\">$ti</div></td>\n";
		print "<td><div class=\"doc16\">$sub</div></td>\n";
		print "<td align=\"center\"><div class=\"doc16\">$HP</div></td>\n";
		print "<td align=right><div class=\"doc16\">$rn</div></td></tr>\n";

	}
		print "<tr>\n";
		print "<td colspan=\"4\" align=\"right\"><font size=\"2\">（非課税）</td></tr>\n";
		print "</table>";

	print "</dl>\n";
	print "</blockquote>\n";
	if ($max ne $page_end) {
		$page_start = $page_end + 1;
		if ($QUERY{'genre'} ne "") {
			print "<p>[ <a href=\"search.cgi?start=$page_start\&genre=$QUERY{'genre'}\">次の$pagevew件</a> ]</p>\n";
		} else {
			print "<p>[ <a href=\"search.cgi?start=$page_start\&key=$QUERY{'key'}\">次の$pagevew件</a> ]</p>\n";
		}
		if ($keyflag == 1) {
			print "<div align=center><center>\n";
			print "<table border=0><tr><td align=center>\n";
			print "<form action=search.cgi method=POST>\n";
				print "スペースで区切り、キーワードを追加して絞り込み検索ができます。<br>\n";
				print "<input type=text size=40 name=key value=\"$QUERY{'key'}\">　<input type=submit value=検索>\n";
			print "</form>\n";
			print "</td></tr></table>\n";
			print "</center></div>\n";
		}
	}
	print "<hr width=\"650\" align=\"left\">\n";
} else {
	if ($QUERY{'key'} eq "new") {
		print "<p align=left><font size=4>過去１ヶ月以内の新着情報は有りません。</font></p>\n";
	} elsif ($QUERY{'genre'} ne "") {
		"<p align=left><font size=4>$genreに現在登録されていません。</font></p>\n";
	} else {
		print "<p align=left><font size=4>キーワード[$key]で該当が有りません。</font></p>\n";
	}
	print "<hr>\n";
}
if ($keyflag == 1) {
	$searchkey = $QUERY{'key'};
	$searchkey =~ s/　/ /g;
	$searchkey =~ s/ /+/g;
	print "<p align=center><font size=2>同一キーワードで検索<br>\n";
	print "| <a href=http://search.yahoo.co.jp/bin/searchm?r=msn\&p=$searchkey>Yahoo Japan</a> |\n";
	print "| <a href=http://search.netplaza.biglobe.or.jp/cgi-bin/search-yahoo.cgi?key=$searchkey>NETPLAZA</a> |\n";
	print "| <a href=http://www.infoseek.co.jp/Titles?qt=$searchkey>infoseek</a> |\n";
	print "| <a href=http://www.acara.com/shallot/cgi-bin/ExtSearch3?KEY=$searchkey>あちゃらNavi</a> |\n";
	print "| <a href=http://navi.ntt.co.jp/cgi-bin/ntt-dir-tret.msn?condition=AND\&keyword=$searchkey>NTT DIRECTRY</a> |\n";
	print "</font></p>\n";
}
print "</body></html>\n";
exit;

#=======================================================================================
sub data_read {
	if (open(DB,"$datafile")) {
		@DATA = <DB>;
		close(DB);
	}
}
#=======================================================================================
sub error {
	$error = $_[0];
	if ($error eq "bad_file")	{ $msg = 'ファイルのオープン、入出力に失敗しました。'; }
	elsif ($error eq "bad_name")	{ $msg = 'ニックネームが記入されていません。'; }
	elsif ($error eq "bad_comment")	{ $msg = 'コメントが記入されていません。'; }
	elsif ($error eq "bad_data")	{ $msg = 'すべての項目を入力してください。'; }
	elsif ($error eq "bad_email")	{ $msg = 'メールアドレスが不正です。'; }
	elsif ($error eq "bad_code")	{ $msg = '訂正／削除するコードが見つからないか、<br>パスワードが一致しません。'; }
	elsif ($error eq "bad_pass")	{ $msg = 'パスワードが一致しません。'; }
	elsif ($error eq "bad_save")	{ $msg = '混雑していて送信に失敗しました。<br>時間をおいて再度送信して下さい。'; }
	elsif ($error eq "send_mail")	{ $msg = 'sendmailをオープンできません。'; }
	elsif ($error eq "bad_url")	{ $msg = 'ＵＲＬを入力してください。'; }
	elsif ($error eq "not_url")	{ $msg = '指定のＵＲＬで登録されていません。'; }
	elsif ($error eq "bad_string")	{ $msg = 'キーワードを入力してください。'; }
	else { $msg = '原因不明のエラーで処理を継続できません。'; }
	print "<p>　</p><p>　</p><p>　</p><center><font size=6><b>ＥＲＲＯＲ</b></font><p>　</p><p>　</p>\n";
	print "<table border=5 width =70%><tr>\n";
		print "<td align=center><center><p>　</p><p>　</p>\n";
		print "<font size=6><b><i>$msg</i></b></font><p>　</p><p>　</p></td>\n";
	print "</tr></table>\n";
	print "</center></body></html>\n";
	exit;
}
