#!/usr/bin/perl

#------------------------------------------------------------------------------------------------
# 定数の設定
#------------------------------------------------------------------------------------------------
# デバッグモード 1=debug_mode, 0=nomal_mode
$debug = 1;

# ライブラリの読み込み
require '../lib/jcode.pl';
require '../lib/fs_html.pl';
require '../lib/fs_function.pl';

#------------------------------------------------------------------------------------------------
# 自分自身のファイル名を抽出し、$fs_program_name に代入
# (グローバル変数、ボタンが押された時に呼ばれるプログラム名)
# (基本名 'fs_017.cgi')
#------------------------------------------------------------------------------------------------
# $_ : 文字列操作用特殊変数
# $0 : 実行中の Perl プログラム名が代入されている特殊変数
# $, : m/パターン/ の結果、マッチした部分より後ろの文字列が代入されている
$_ = $0;
while(m/\//){$_ = $';}
$fs_program_name = './' . $_;

# 管理者用 cgi
# html で動作するのでルートが /cgi-bin になる。
$fs_program_adm = './adm/fs_url_adm_v006.cgi';

#------------------------------------------------------------------------------------------------
# 本プログラムの ホームページ
$fs_backurl = $fs_program_name;

# 自宅の場合
# $fs_homeurl = '/index.html';

# 祖師谷ハムエンジニアリングの場合
$fs_homeurl = 'http://wikiwiki.jp/soshigaya/';

#------------------------------------------------------------------------------------------------
# URL データのファイル名
# Perl で動作するのでルートは /www になる。
$fs_DFName = './adm/data/data.txt';


#------------------------------------------------------------------------------------------------
# グローバル変数、トップタイトル
$fs_top_taitle = 'Link';

# グローバル変数、トップタイトルの文字の高さ。英文字の時=7, 日本語の時=6
$fs_top_taitle_size = 6;

# グローバル変数、エラーメッセージの文字の高さ。英文字の時=7, 日本語の時=6
$fs_err_msg_size = 4;

#------------------------------------------------------------------------------------------------
# 汎用的変数
# POST/ GET
#$method = 'POST';
$method = 'GET';

# 漢字コード（'sjis' 'euc' 'jis' )
$kanjicode  = 'euc';

# テーブルの高さ
# 今回はこの変数を利用しない。
# $fs_td_height = 25;

# 色
$fs_bg_color = '#ffffcc';
$fs_taitl_color = '#248200';

# 擬似的なスペース 現状利用していない。fs_SpaceTD_html を利用している。
$fs_space = '<FONT COLOR=$fs_bg_color>_</FONT>';


# ファイルロック機能の on/off
$uselock = 1;

# DOCTYPE 宣言 , Content-type 宣言
$doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
$contenttype = "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=EUC-JP\">";

#------------------------------------------------------------------------------------------------
# HTML言語の宣言
#------------------------------------------------------------------------------------------------
print "Content-type: text/html\n";
print "\n";

#------------------------------------------------------------------------------------------------
# html からパラメータを取り込む
#------------------------------------------------------------------------------------------------
&init_form($kanjicode);

$fs_menu = $form{'fs_menu'};
$f0  = $form{'f0'};
$f1  = $form{'f1'};
$f2  = $form{'f2'};
$f3  = $form{'f3'};
$f4  = $form{'f4'};
$f5  = $form{'f5'};
$f6  = $form{'f6'};
$f7  = $form{'f7'};
$f8  = $form{'f8'};
$f9  = $form{'f9'};

if(open (FP, "<./fs_url_staff.dat")){
	$tmp = <FP>;
	close(FP);
}
@tmp = split(/\t/, $tmp);
$staff_flg   = $tmp[0];
$staff_ip    = $tmp[1];
$staff_env   = $ENV{'REMOTE_ADDR'};
$staff       = 0;
$fs_bg_color = '#ffffcc';
if ($staff_ip eq $staff_env){
	if ($staff_flg == 1){
		$staff = 1;
		$fs_bg_color = '#ffdddd';
	}
}


#=========================================================================================
# メインルーチン main
# <Top>
#-----------------------------------------------------------------------------------------
if    ($fs_menu eq 'Search')  {&fs_list_html;}
elsif ($fs_menu eq 'Help')    {&fs_help_html;}
elsif ($fs_menu eq 'Staff')   {&fs_staff_html;}
elsif ($fs_menu eq 'Normal')  {&fs_normal_html;}
elsif ($f8 eq 'root')         {&fs_staffpasswd_html;}
else                          {&fs_search_html;} # 該当が無い場合(一番最初に実行される)

#=========================================================================================
# StaffOn/ StaffOff
sub fs_normal_html{
	if(open (FP, ">./fs_url_staff.dat")){
		print FP "0" . "\t" . $staff_ip;
		close(FP);
		$staff = 0;
		$fs_bg_color = '#ffffcc';
		}
	&fs_search_html;
}

sub fs_staff_html{

	&fs_general_html2;

	# フォーム宣言
	print "<FORM ACTION=$fs_program_name METHOD=$method>\n";
	print "<INPUT TYPE=password NAME=f8 SIZE=40>\n";
	print "<br>";
	print "<INPUT TYPE=password NAME=f9 SIZE=40>\n";
	print "<p>\n";
	print "<INPUT TYPE=submit NAME=fs_menu VALUE=Enter>\n";
}

sub fs_staffpasswd_html{
	if ($f9 eq 'manager0') {
		if(open (FP, ">./fs_url_staff.dat")){
			print FP "1" . "\t" . $staff_env;
			close(FP);
			$staff = 1;
			$fs_bg_color = '#ffdddd';
		}
		&fs_search_html;
	}
	else {
	$staff = 0;
	$fs_bg_color = '#ffffcc';
	&fs_search_html;
	}

}


#=========================================================================================
# サーチ html
# <serch> <top>
#-----------------------------------------------------------------------------------------
sub fs_search_html{

	&fs_general_html1;

	&fs_search_html_sub1;

	# フォーム宣言
	print "<FORM ACTION=$fs_program_name METHOD=$method>\n";

	# テーブルの宣言
	#print "<TABLE WIDTH=80% BGCOLOR=$fs_bg_color>\n";
	print "<TABLE BORDER BGCOLOR=$fs_bg_color>\n";

	print "<TR>\n";
	print "<TD COLSPAN=2>\n";
	print "<INPUT TYPE=text NAME=f0 SIZE=40>\n";
	print "<INPUT TYPE=submit NAME=fs_menu VALUE=Search>\n";
	print "</TD>\n";
	print "</TR>\n";

	print "<TR>\n";
	print "<TD>\n";
	print "<SELECT NAME=f1><OPTION CHECKD>Company\n";
	print "<OPTION>URL\n";
	print "<OPTION>Date\n";
	print "<OPTION>Note\n";
	print "</SELECT>\n";
	print "  Category\n";
	print "</TD>\n";

	print "<TD ALIGN=right>\n";
	print "<INPUT TYPE=submit NAME=fs_menu VALUE=Help>\n";
	print "</TD>\n";

	print "</TR>\n";

	print "</TABLE>\n";

	print "<p>\n";

	if ($staff == 1) {print "<INPUT TYPE=submit NAME=fs_menu VALUE=Normal>\n";}
	else{print "<INPUT TYPE=submit NAME=fs_menu VALUE=Staff>\n";}

	print "</FORM>\n";

	print "<P>\n";

	# フォーム http://xxx.co.jp/ の宣言
	print "<FORM ACTION=$fs_homeurl METHOD=$method>\n";
	print "<INPUT TYPE=submit VALUE=Return>\n";
	print "</FORM>\n";

	&fs_end_html;

}

sub fs_search_html_sub1{
	my(@a);
	# テーブルの宣言
	#print "<TABLE WIDTH=80% BGCOLOR=$fs_bg_color>\n";
	#print "<TABLE BORDER BGCOLOR=$fs_bg_color>\n";
	print "<TABLE>\n";
	@a = ('A' .. 'L'); &fs_search_html_sub2(@a);
	@a = ('M' .. 'X'); &fs_search_html_sub2(@a);
	@a = ('Y', 'Z', '0' .. '9'); &fs_search_html_sub2(@a);
	print "</TABLE>\n";
}

sub fs_search_html_sub2{
	local(@a) = @_;
	my($a);

	print "<TR>\n";

	foreach $a(@a){
		# フォーム宣言
		print "<FORM ACTION=$fs_program_name METHOD=$method>\n";

		print "<TD ALIGN=center>\n";

		print "<INPUT TYPE=hidden NAME=fs_menu VALUE=Search>\n";
		print "<INPUT TYPE=hidden NAME=f0 VALUE=^$a>\n";
		print "<INPUT TYPE=hidden NAME=f1 VALUE=Company>\n";
		print '<INPUT TYPE=submit NAME=f2 VALUE=" '. "$a" . ' ">' . "\n";

		print "</TD>\n";

		print "</FORM>\n";

	}
	print "</TR>\n";
}

#=========================================================================================
# 一覧表示 html (サーチキーを元に検索結果を一覧表示する。)
# <List>
#-----------------------------------------------------------------------------------------
sub fs_list_html{

	&fs_general_html2;

	# テーブルの宣言
	print "<TABLE WIDTH=80% BORDER BGCOLOR=$fs_bg_color>\n";

	#--------------------------------------------------------------------
	# 検索ルーチン
	# 検索キーワード。: $f0 = 'bb'; 
	# 検索カテゴリー  : $f1 = ''  ;  Cmpany, HomePage, Date, Note

	# ローカル変数の宣言。local より my の方がよりローカル変数になる。
	my($sa); # ファイルから一行読んだ文字列が代入。
	my(@sb); # $a を区切り文字でスプリットした代入先の配列。
	my($sn); # n番目の検索の為の変数。
	my($sc); # 検索文字が代入される。
	my(@sd); # 検索文字で引っかかった行の配列。戻り値。
	my(@sg); # 検索で引っかかった Company, HomePage, Date, Note
	my($si); # $i++ で利用。
	my($sx); # New コマンドで追加するため、最下行+1 を代入する。
	$d = ();

	# 検索カテゴリーを見つけ、変数n を設定する。
	# /....../i の 'i' は大文字と小文字を区別しないで検索する。
	if    ($f1 =~ /Company/i)  {$sn = 0;}
	elsif ($f1 =~ /HomePage/i) {$sn = 2;}
	elsif ($f1 =~ /Date/i)     {$sn = 3;}
	elsif ($f1 =~ /Note/i)     {$sn = 4;}
	else                       {$sn = 999;}

	# 検索キーワードの変数 $f0 に何も無い時、$f0 に '.' を代入。
	# $f0='' の時、全ての行が検索に引っかかる仕組み。
	# 
	if ($f0 eq '') {$f0 = '.';}

	# 検索するファイルをオープン
	open(RFILE, $fs_DFName) || die "Can not Open: $!\n";

	# ファイルからキーワードが見つかった行を変数 @d (ローカル配列) に push する。
	$si = 0;
	$sx = 0; # 最下行+1 を求める為に利用する。
	while (<RFILE>) {
		# まずは、最下行+1 を求める為に変数 $sx に 1 を加算する。
		$sx++;

		# ファイルから一行読み、変数 $sa に代入。
		$sa = $_;

		# とりあえず、$a をプリントしてみる。（デバッグ)
		# print 'とりあえず $sa = ' . "$sa\n";

		# ファイルから読んだ一行の先頭が '#' の時、以下の処理を omit
		if (/^\#/) {
			$si++;
			# print "先頭が # なので以下の処理を省略する。\n"; 
			next;
		}

		# 再度 $a をプリントしてみる。(デバッグ)
		# print '再度 $sa をプリント $sa = ' . "$sa\n";

		# split文。これで区切り文字 ' ]=[ ' をスプリットする。
		@sb = split(/ +\]=\[+ /, $sa);

		# 試験的に 二番目の配列をプリントしてみる。(デバッグ)
		# print "$sb[1]\n\n";

		if    ($sn == 0) {$sc = $sb[0] . ' ' . $sb[1];}
		elsif ($sn == 2) {$sc = $sb[2];}
		elsif ($sn == 3) {$sc = $sb[3];}
		elsif ($sn == 4) {$sc = $sb[4];}
		else             {$sc = $sa;}

		# 検索キーワードと検索される文字列をとりあえず表示 (デバッグ)
		# print "検索キーワード = $f0\n";
		# print "検索する文字列 = $sc\n";

		# 検索キーワードが見つかったら、配列@dの最後にその行を追加する。
		# $f0 に検索したいキーワードが代入されている。
		if ($sc =~ /$f0/i) {
			$tmp = $si . ' ]=[ ' . $sa;
			push(@sd, $tmp);
		}
		$si++;

	}
	# 検索結果の表示してみる。(デバッグ)
	# print '結果[0] = ' . "@sd[0]\n";
	# print '結果[1] = ' . "@sd[1]\n";
	# print '結果[2] = ' . "@sd[2]\n";

	close (RFILE);

	# 検索ルーチン終了
	#---------------------------------------------------------------------------

	# 表の一番上の一行目の表示
	print "<TR>\n";
	print "<TH></TH>\n";
	print "<TH>Company</TH>\n";
	print "<TH>会社</TH>\n";
	print "<TH>Home Page</TH>\n";
	print "<TH>Edit</TH>\n";
	print "<TH>Date</TH>\n"; 
	print "<TH>Note</TH>\n"; 
	print "</TR>\n";

	# いよいよ検索結果の表示
	# @sd をスカラー変数に代入するとその配列の要素数が代入されいる。
	for($i = 0; $i < @sd; $i++){

		# 検索でひっかかった行を項目別に split する。
		# @sg[0] = ファイルの上から何行目か。一番上の行が 0行目。
		# @sg[1] = Company
		# @sg[2] = 会社
		# @sg[3] = HomePage
		# @sg[4] = Date
		# @sg[5] = Note
		undef @sg;
		@sg = split(/ +\]=\[+ /, @sd[$i]);

		# 先頭行の宣言
		print "<TR>\n";

		# 行番号設定
		print "<TD ALIGN=right>$i</TD>\n";

		# Company
		$a = @sg[1];
		if($a eq ''){
			print "<TD ALIGN=center>-</TD>\n";
		}else{
			print "<TD ALIGN=center>$a</TD>\n";
		}


		# 会社
		$a = @sg[2];
		if($a eq ''){
			print "<TD ALIGN=center>-</TD>\n";
		}else{
			print "<TD ALIGN=center>$a</TD>\n";
		}

		# ホームページボタン設定
		$a = @sg[3];
		$a =~ s/ //;
		if($a eq ''){
			print "<TD ALIGN=center>-</TD>\n";
		}else{
			# print "<FORM ACTION=$a METHOD=$method>\n"; # FORM 開始宣言
			# print "<TD ALIGN=center><INPUT TYPE=submit VALUE=HomePage></TD>\n";
			# print "</FORM>\n"; # FORM 終了宣言
			print "<TD ALIGN=center><A HREF=$a>HomePage</A></TD>\n";
		}

		# Edit
		# fs_menu = Edit, Add
		# f0      = 行番号 (絶対値)
		if ($staff == 1)  {
			print "<FORM ACTION=$fs_program_adm METHOD=$method>\n"; # FORM 開始宣言
			print "<TD ALIGN=center><INPUT TYPE=submit VALUE=Edit></TD>\n";
			print "<INPUT TYPE=hidden NAME=fs_menu VALUE=Edit>\n";
			print "<INPUT TYPE=hidden NAME=f0      VALUE=$sg[0]>\n";
			print "</FORM>\n"; # FORM 終了宣言
		}
		else{
			print "<td>　</td>\n";
		}

		# Date
		$a = @sg[4];
		if($a eq ''){
			print "<TD ALIGN=center>-</TD>\n";
		}else{
			print "<TD ALIGN=center>$a</TD>\n";
		}

		# 備考設定
		$a = @sg[5];
		$a =~ s/\n//;
		if($a eq ''){
			print "<TD ALIGN=center>-</TD>\n";
		}else{
			print "<TD ALIGN=left>$a</TD>\n";
		}

		print "</TR>\n"; # 行終了宣言

	}

	#----------------------------------------------------------------------------
	# 追加ボタンの行
	#----------------------------------------------------------------------------
	# 先頭行の宣言
	print "<TR>\n";

	# 行番号設定
	print "<TD ALIGN=right>$i</TD>\n";
	
	# Company
	print "<TD ALIGN=center>　</TD>\n";

	# 会社
	print "<TD ALIGN=center>　</TD>\n";

	# HomePage
	print "<TD ALIGN=center>　</TD>\n";

	# Add
	# fs_menu = Edit, Add
	# f0      = 行番号 (絶対値)
	if ($staff == 1){
		print "<FORM ACTION=$fs_program_adm METHOD=$method>\n"; # FORM 開始宣言
		print "<TD ALIGN=center><INPUT TYPE=submit VALUE=New></TD>\n";
		print "<INPUT TYPE=hidden NAME=fs_menu VALUE=New>\n";
		# $sx には最下行+1 が代入されいている。
		print "<INPUT TYPE=hidden NAME=f0      VALUE=$sx>\n";
		print "</FORM>\n"; # FORM 終了宣言
	}
	else{
		print "<td>　</td>\n";
	}

	# Date
	print "<TD ALIGN=center>　</TD>\n";

	# Note
	print "<TD ALIGN=center>　</TD>\n";

	# 行終了宣言
	print "</TABLE>\n";

	&fs_final_html;
}

#============================================================================================
# ヘルプ
# <Help>
#--------------------------------------------------------------------------------------------
sub fs_help_html{
	&fs_general_html2;

	print "<TABLE WIDTH=80% BGCOLOR=$fs_bg_color>\n";

	print "<TR><TD><HR></TD></TR>\n";

	print "<TR><TH ALIGN=left>\n";
	print "とりあえず、全てリストに出力する\n";
	print "</TH></TR>\n";

	print "<TR><TD ALIGN=left>\n";
	print 'テキスト入力フィールドに何も入れずに "Search" ボタンを押す。'."\n";
	print "</TD></TR>\n";
	
	print "<TR><TD ALIGN=left>\n";
	print "すると、現状登録されているデバイスメーカの全リストが表示される。\n";
	print "</TD></TR>\n";

	print "<TR><TD ALIGN=left>\n";
	print 'この時、"HomePage" の';
	print "ボタンを押すとそのデバイスメーカのホームページにジャンプする。\n";
	print "</TD></TR>\n";

	print "<TR><TD><HR></TD></TR>\n";

	print "<TR><TH ALIGN=left>\n";
	print 'デバイスメーカ "NEC" だけリストさせる'."\n";
	print "</TH></TR>\n";

	print "<TR><TD ALIGN=left>\n";
	print '"Category" のプルダウンメニューを "Company" に設定し、テキスト入力フィールドに "NEC" を入れる。'."\n";
	print '"Search" ボタンを押すと、デバイスメーカが NEC に関わるリストが表示される。'."\n";
	print "</TD></TR>\n";

	print "<TR><TD ALIGN=left>\n";
	print '条件: 検索文字列は半角英文字と半角数字だけ有効です。全角文字を入れても何もヒットしません。'."\n";
	print "</TD></TR>\n";

	print "<TR><TD><HR></TD></TR>\n";

	print "<TR><TH ALIGN=left>\n";
	print '"T" で始まるデバイスメーカのリストを出力する'."\n";
	print "</TH></TR>\n";

	print "<TR><TD ALIGN=left>\n";
	print '"Category" のプルダウンメニューを "Company" に設定し、テキスト入力フィールドに "^T" を入れる。'."\n";
	print '"Search" ボタンを押すと、先頭文字が "T" であるデバイスメーカのリストが出力される。'."\n";
	print "</TD></TR>\n";

	print "<TR><TD><HR></TD></TR>\n";

	print "</TABLE>\n";

	print "<BR>\n";

	&fs_final_html;
}



#=========================================================================================
# 本プログラムが使用する関数郡
#--------------------------------------------------------------------------------------
# 日時を割り出す関数 i.e. 29 Jan 2001 08:59:00
sub fs_Time{
	my($a);
	my($sec, $min, $hour, $day, $mon, $year) = localtime(time);

	my(%manth) = (0, "Jan", 1, "Feb", 2, "Mar", 3, "Apr", 4, "May", 5, "Jun",
		6, "Jul", 7, "Aug", 8, "Sep", 9, "Oct", 10, "Nov", 11, "Dec");
	$year = 1900 + $year;

	$a = $day.' '.$manth{"$mon"}.' '.$year.' '.$hour.':'.$min.':'.$sec;

	return($a);
}

#--------------------------------------------------------------------------------------
# エラーをログに記録する関数
# 利用を禁止する。(パーミッションの設定が複雑な為)
sub fs_ErrLog{
	# my($a) = @_;
	# my($b) = &fs_Time;
	# open(FERR, ">> $fs_ErrorFName");
	# print FERR "$b $a\n";
	# close(FERR);
}

#--------------------------------------------------------------------------------------
# 擬似的に空の表を作る
sub fs_SpaceTD_html{
	print "<TD ALIGN=left><FONT COLOR=$fs_bg_color>_</FONT></TD>\n";
}


#=========================================================================================
# html 一般的な関数
#=========================================================================================
# 表示 ノーマルモード with カウンター付
#-----------------------------------------------------------------------------------------
sub fs_general_html1{
	my(%zk, $z, $k);

	&fs_head_html; # この行だけ実行すれば html 未定義に関連するエラーが出ない
	
	if ($staff == 1) {&fs_top_taitle_staff_html;}
	else {&fs_top_taitle_html;}

	&fs_count_pulus;

	&fs_taitle_html("デバイスメーカのホームページ");

	print "<CENTER>\n";

}

sub fs_general_html2{
	my(%zk, $z, $k);

	&fs_head_html; # この行だけ実行すれば html 未定義に関連するエラーが出ない
	
	if ($staff == 1) {&fs_top_taitle_staff_html;}
	else {&fs_top_taitle_html;}

	&fs_count;

	&fs_taitle_html("デバイスメーカのホームページ");

	print "<CENTER>\n";

}

#-----------------------------------------------------------------------------------------
# 戻るボタンの表示と /CENTER /BODY /HTML の宣言
#-----------------------------------------------------------------------------------------
sub fs_final_html{

	#----------------------------------------------------------------------------
	# 戻るボタンの設定
	# http://xxx.co.jp/fs_calculate/fs_calculate.cgi に戻るルーチン

	# フォーム http://xxx.co.jp/cgi-bin/fs_pcbdb/fs_pcbdb.cgi の宣言
	print "<FORM ACTION=$fs_backurl METHOD=$method>\n";
	print "<INPUT TYPE=submit VALUE=Return>\n";
	print "</FORM>\n";

	# html の終端ルーチン
	&fs_end_html;

}

#-----------------------------------------------------------------------------------------
# HTML の終端
#-----------------------------------------------------------------------------------------
sub fs_end_html{
	print "</CENTER>\n";
	print "</BODY>\n";
	print "</HTML>\n";
}


#=========================================================================================
#-----------------------------------------------------------------------------------------
# メインパネルの表示
#-----------------------------------------------------------------------------------------
sub root_panel_html{
	&fs_head_html;
	&fs_top_taitle_html;
	&fs_taitle_html("Calculate");

	print "<BODY>\n";
	print "<CENTER>\n";

	print "</TABLE>\n";
	print "</FORM>\n";

	# http://xxx.co.jp/fs_calculate.cgi に戻るルーチン
	print "<BR><HR><BR>\n";
	print "<FORM ACTION=$fs_backurl METHOD=$method>\n";
	print "<INPUT TYPE=submit VALUE=戻る>\n";
	print "</FORM>\n";

	# html の終端ルーチン
	&fs_end_html;

}

#-----------------------------------------------------------------------------------------
# General なサブルーチン general_function
#-----------------------------------------------------------------------------------------
# エラールーチン
# 引数が一つ必要 (エラーメッセージ)
sub fs_error_html{
	local($msg) =@_;
	&fs_head_html;

	print "<BODY BGCOLOR=$fs_bg_color LINK=#0000FF VLINK=#800080 ALINK=#FF00FF>\n";
	print "<BR>\n";

	print "<FONT SIZE=$fs_err_msg_size>ERROR: $msg</FONT>\n";
	print "</BODY>\n";
}

# html の初期設定
sub fs_content_type{
	print "Content-type: text/html\n";
    print "\n";
    print "$doctype\n";
}

# html の初期設定
sub fs_head_html{
	#print "Content-type: text/html\n";
    #print "\n";
    print "$doctype\n";
    print "<HTML>\n";
    print "<HEAD>\n";
    print "$contenttype\n";
    print "<TITLE>$fs_top_title</TITLE>\n";
    print "</HEAD>\n";
}

# トップタイトル表示(normal mode)
sub fs_top_taitle_html{
	print "<BODY BGCOLOR=$fs_bg_color LINK=#0000FF VLINK=#800080 ALINK=#FF00FF>\n";
	print "<BR>\n";
	print "<CENTER>\n";
	print "<FONT SIZE=$fs_top_taitle_size>\n";
	print "<FONT COLOR=$fs_taitl_color>$fs_top_taitle</FONT>\n";
	print "</FONT>\n";
	print "</CENTER>\n";
	print "<BR>\n";
}

# トップタイトル表示(staff mode)
sub fs_top_taitle_staff_html{
	print "<BODY BGCOLOR=#ffdddd LINK=#0000FF VLINK=#800080 ALINK=#FF00FF>\n";
	print "<BR>\n";
	print "<CENTER>\n";
	print "<FONT SIZE=$fs_top_taitle_size>\n";
	print "<FONT COLOR=$fs_taitl_color>$fs_top_taitle</FONT>\n";
	print "</FONT>\n";
	print "</CENTER>\n";
	print "<BR>\n";
}

# セクションタイトル表示
sub fs_taitle_html{
	local($taitle) = @_;
	print "<CENTER>\n";

	if ($staff == 0){
		print "<TABLE BORDER=1 CELLPADDING=4 cellspacing=0 BGCOLOR=#FFFFdd>\n";
	}
	else{
		print "<TABLE BORDER=1 CELLPADDING=4 cellspacing=0 BGCOLOR=#FFeeee>\n";
	}


		
	print "<TD ALIGN=center >$taitle</TD>";
	print "<TR>\n";
	print "</TABLE>\n";
	print "</CENTER>\n";
	print "<BR>\n";
}

# アクセスカウント表示
sub fs_count_pulus{
        local $FName = './fs_url_count.dat';
        local $count = 0;

        if(open (FP, "+<$FName")){
        flock(FP, 2);
        $count = <FP>;
        $count++;
        seek(FP, 0, 0);
        truncate(FP, 0);
        print FP $count;
        flock(FP, 8);
        close(FP);
        }

        local @count = ();
        $count = sprintf("%05d", $count);

        print "<center>\n";
        foreach (0.. length("$count")-1) {
                local $img = substr($count, $_, 1);
                local $a = " ../lib/${img}.gif";
                print "<img src=$a>";
        }
        print "</center>\n";
        print "<p>\n";
}

# アクセスカウント表示
sub fs_count{
        local $FName = './fs_url_count.dat';
        local $count = 0;

        if(open (FP, "<$FName")){
                flock(FP, 2);
                $count = <FP>;
                flock(FP, 8);
                close(FP);
        }

        local @count = ();
        $count = sprintf("%05d", $count);

        print "<center>\n";
        foreach (0.. length("$count")-1) {
                local $img = substr($count, $_, 1);
                local $a = " ../lib/${img}.gif";
                print "<img src=$a>";
        }
        print "</center>\n";
        print "<p>\n";
}
