#!/usr/bin/perl
#
#  2003/08/26制作 作った人 SHIGEYUKI ASHIHARA
#  2004/03/02 ver1.50　画像の表示位置切り替え、文字数制限に関するバグ修正
#  2004/09/15 ver1.70  画像の位置切り替えの不具合修正・テキスト表示位置切り替え機能追加
#  2004/09/27 ver1.71  記事間のスペーサーの表示修正,アップロードされるファイルのパスに
#                      .が含まれる場合に画像がアップロードできない不具合の修正
#
# 使用上の注意
#
# 1. カンマ区切りのデータ foo,bar,... のみ処理可能. "foo","bar",... 形式は編集できない.
# 2. データに<>",を扱っているファイルの編集はできない.
# 3. 編集するファイルは、他からのアクセスができないようにしてから作業すること.
# 4. サーバ上のデータはこまめにローカルバックアップをすること.
#------------------------------------------------------------------------------
##### 設置方法 ################################################################
###
### new_stand/ [755] -- lib/ [777] ---- cgi-lib.pl [644]
###        |                  |-- jcode.pl [644]
###        |                  |-- imgsize.pl [644]
###        |                  |-- mimew.pl [644]
###        |                  |-- no.txt 連番用ファイル [666]
###        |                  |-- master.csv 記事保存用ファイル [666]
###        |                  |-- backup.dat バックアップ用ファイル [666]
###        |
###        |- new_stand.cgi ＣＧＩ本体 [755]
###        |- upload.cgi アップロード用CGI [755]
###        |- pop.cgi [755]
###        |
###        |----- photo/ [777] 画像の最終的な置き場所。
###        |        |- index.html [644] アクセス禁止用のダミーファイル
###        |
###        |----- photo_tmp/ [777] 画像の一時的な置き場。
###        |        |- index.html [644] アクセス禁止用のダミーファイル
###        |
###        |----- image/ [755] ボタン等のCGIが使用する画像の置き場。
###        |        |- index.html [644] アクセス禁止用のダミーファイル
###        |
###        |- index.html [644] アクセス禁止用のダミーファイル
###        |- reference.html [644] リファレンス
###
##############################################################################


#●編集対象となるファイル
$file = "./lib/master.csv";

#●バックアップ用ファイル
$backup = './lib/backup.dat';

#●連番作成・及びファイルロック用ファイル
$base = './lib';				#データ格納ディレクトリ
$nofile = "$base/no.txt";			#最新書込み番号
$lockfile = "$base/lock";			#ロック
$sysimg = "image/";			# システム画像格納ティレクトリ


#●このファイルの名前
$url = './new_stand.cgi';

#●アップロード用ディレクトリ
$upload_dir = "./photo2";  # 画像を最終的に置く場所
$upload_tmp = "./photo_tmp";  # 画像を一時的に置く場所

#●オプションファイル
$options = "$base/option.txt";
$lockfile = "$base/lock";	#ロック

#●項目名
@table = (

	'連番',
	'日付',
	'新着情報',
	'画像',
	'表示・非表示1',
	'表示・非表示2',
	'表示位置',
	'表示位置2',
	'リンク',
	'ターゲット'
);

# 画像ファイル（許可する拡張子:全て半角小文字で登録）
@iconft = ('jpg','jpeg','gif');

#### require 呼び出されるファイル
#●日本語コード変換ライブラリ
require './lib/jcode.pl';


#-----表示に関する設定項目---------------------------------------------------


#●１画面に表示する行数
$count = 1;

#●表示順 (0:正順/古い順 1:逆順/新着順) .. 新規記録はこれに関係なくデータの後ろに追加される
$rev = 1;

#●画像変換ライブラリ
require './lib/imgsize.pl';

$lockmode = 1; ## ファイルロックをかける為のフラグ 変更不要 ##

sub crypt {
	@salt = ('a' .. 'z','A' .. 'Z','0' .. '9');
	srand;
	$salt = "$salt[int(rand($#salt))]$salt[int(rand($#salt))]";
	return crypt($_[0],$salt);
}

sub decrypt {
	$salt = $_[1] =~ /^\$1\$(.*)\$/ && $1 || substr($_[1],0,2);
	if (crypt($_[0],$salt) eq $_[1] || crypt($_[0],'$1$' . $salt) eq $_[1]) {return 1;}
	return 0;
}

#----------------------------------------------------------------------------

#### オプションファイル作成 ####

open IN,"$options";
$opdata = <IN>;
close IN;

if(!$opdata) {
	$PASSWORD = &crypt('seisaku');
	if (mkdir($lockfile,0755)) {$lockmode = 1; rmdir($lockfile);}
	chmod(0666,$options);
	open OUT,">$options";
	print OUT "$PASSWORD,新着情報,1,新着情報,#000000,4,title.gif,#cceeff,#000000,3,#ffffff,wall.gif,top,left,0,0,#666666,2,1,次の記事へ,前の記事へ,2,#999999,next.gif,back.gif,1000,400,200,1,1,1,0,0";
	close OUT;
}

#### オプションファイルからデータ取得 ####

open IN,"$options";
($PASSWORD,$html_title,$midashi,$top_title,$top_color,$top_size,$top_img,$datebg,$datecol,$datesize,$bodybg,$wall,$tmb,$lcr,$repeat,$fixed,$doccol,$docsize,$nxbk,$pnext,$pprev,$psize,$pcolor,$pnext_img,$pprev_img,$text_limit,$width,$photo_width,$tags,$step,$column,$wall_vis,$date_vis) = split(/,/,<IN>);
close IN;


## 画像サイズ変更用パラメータ サムネイル用
$hikisuu2 = 'static_width'; #引数２
$hikisuu3 = $photo_width;
$hikisuu4 = $photo_height;
$hikisuu5 = '0';


##### バックアップ日付用 #####
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
@wday_array = ('日','月','火','水','木','金','土');
$date_now = sprintf("%04d年%01d月%01d日(%s)%02d時%02d分%02d秒",$year +1900,$mon +1,$mday,$wday_array[$wday],$hour,$min,$sec);
##### バックアップ日付用 ココまで#####

$nyear = $year +1900;
$nmon = sprintf("%02d", $mon + 1);
$nday = sprintf("%02d", $mday);
#$today = $nyear."年".$nmon."月".$nday."日";
$today = $nyear.".".$nmon.".".$nday;

##### CSVからのデータ呼び出し #####
if ($file eq '') { &error("File Not Found","編集するファイルが指定されていません."); }
if (!-e "$file") { &error("File Not Found","$fileが見つかりません."); }

if (!open(IN,"$file")) { &error("File Not Open","$fileを開くことができません."); }
@BASE_ORG = <IN>;
close(IN);

@check = grep(/[<>"]/,@BASE_ORG);
if (@check) { &error("Don't edit","&lt;&gt;&quot;が含まれているデータがあるので編集できません."); }

if ($rev) { @BASE_ORG = reverse @BASE_ORG; }
##### CSVからのデータ呼び出し ココまで#####


if ($ENV{'REQUEST_METHOD'} eq "POST") { 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/<//g;
	$value =~ s/>//g;
	$value =~ s/"//g;
	$value =~ s/\n//g;
	$value =~ s/\r//g;
	$value =~ s/\,//g;

	$FORM{$name} = $value;
	
}

#### モードにより表示するものとしないものを分ける #####

foreach $line (@BASE_ORG) {
    &jcode'convert(*line,'sjis');
    @list = split(/\,/,$line);
	foreach(@list){
		$_ =~ s/\n//g;
	}
    if ($FORM{'mode'} eq ''){
#       chop($list[5]);
       if("$list[5]" eq "on") {
          &jcode'convert(*line,'sjis'); 
          push(@BASE,$line);
       }
    }elsif($FORM{'mode'} eq 'ADMIN2') {
          &jcode'convert(*line,'sjis'); 
          push(@BASE,$line);
    }
}

#### モードにより表示するものとしないものを分ける ココまで#####




######  アクションの決定 ######


if($FORM{'mode'} eq 'ADMIN') { &pass; }
elsif($FORM{'mode'} eq 'CONFIG' || $FORM{'mode'} eq 'CONFIG2') { &config; }
elsif($FORM{'mode'} eq 'ENTRY') { &entry; }
elsif($FORM{'mode'} eq 'NEW') { &edit; }
elsif($FORM{'mode'} eq 'EDIT') { &edit; }
elsif($FORM{'mode'} eq 'DEL') { &del; }

elsif(!$FORM{'mode'} || $FORM{'mode'} eq 'ADMIN2') { &itiran; }

exit;

sub itiran {

	$cr_pass = $FORM{'pass'};
	$mat = &decrypt($cr_pass,$PASSWORD);

	if($FORM{'mode'} eq 'ADMIN2' and !$mat){
		&error('パスワードが違います。');
	}
	print "Content-type: text/html\n\n";
	print <<"EOF";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=SHIFT_JIS">
<title>$html_title</title>
<script language="JavaScript">
<!--
function PageBack(){ history.back(); }
function message(){
	f = confirm("削除実行してよろしいですか？");
	return f;
}
//-->
</script>
<!-- ********************************************************* -->
<!-- ********************************************************* -->
<!-- ********************************************************* -->
<style>
<!--
.News{line-height:130%; border-bottom:1px dotted #555555; padding:0px 0px 0px 0px; margin:
0px;background-repeat: no-repeat;background-position: left 9px;display:block;}
.News a{ text-decoration: none;color: #FFFFFF;}
.News a hover{ text-decoration: underline;color: #FFFFFF;}
a:link {color: #FFFFFF; text-decoration: none;}
a:visited {color: #FFFFFF;}
a:hover {color: #FFFFFF; text-decoration: underline;}
a:active {color: #FFFFFF;}

.News-img-right{ margin-left:2px;}
.News-img-left{ margin-right:2px;}

//-->
</style>
<!-- ********************************************************* -->
<!-- ********************************************************* -->
<!-- ********************************************************* -->
</head>
EOF
	print "<body style=\"background:";
	if($wall ne '' && $wall_vis eq '0'){
		print "url($sysimg$wall) $tmb $lcr";
		if($repeat == 1){ print " no-repeat";}
		if($fixed == 1){ print " fixed";}
	}
	print " $bodybg;\" topmargin=\"0\" marginheight=\"0\" leftmargin=\"0\" marginwidth=\"0\">\n";

	$g_width = $width * $column;

	print <<"EOF";
<table border="0" cellspacing="0" cellpadding="0" width="$g_width">
<tr><td>
EOF

####### ページ数の計算 ######

	$BASE2 = $#BASE + 1;
	$c = $FORM{'c'};
	if (!$c) { $c = 0; }
	if (!$step) { $step=50; }
	$st = $c;
	$en = $c + $step;
	$c_next = $c + $step;
	$c_back = $c - $step;
	if ($en > $BASE2) { $en = $BASE2; }

####### ページ数の計算 ココまで ######



#######   メイン表示ルーチン #######

	if($midashi == '1'){
		print "<div align=\"center\" style=\"margin-bottom:0px;\"><img src=\"$sysimg$top_img\" alt=\"$top_title\"></div>";
	}elsif($midashi == '2'){
		print "<div align=\"center\" style=\"margin-bottom:0px;\"><font size=\"$top_size\" color=\"$top_color\"><b>$top_title</b></font></div>";
	}
	print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"6px\"><tr><td></td></tr></table>\n";

	if($FORM{'mode'} eq 'ADMIN2'){
		print "<div style=\"padding-top:10px;\"><b><font size=3><br>【DVD】 更新管理プログラム</font></b><br><br><br></div>\n";
		print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$g_width\">\n";
		print "<tr>\n";
		print "<td>\n";
		print "<form action=\"".$url."\" method=\"post\" style=\"margin:0px\">\n";
		print "<input type=\"hidden\" name=\"c\" value=\"0\">\n";
		print "<input type=\"hidden\" name=\"mode\" value=\"NEW\">\n";
		print "<input type=\"hidden\" name=\"pass\" value=\"".$FORM{'pass'}."\">\n";
		print "<input type=\"submit\" value=\"-新規登録-\"><br><br><br>\n";
		print "</form>\n";
		print "</td>\n";
		print "<td align=\"right\">\n";
		print "<font size=\"2\"><a href=\"$url?mode=CONFIG&pass=$FORM{'pass'}\" target=\"hyoji\">表\示設定&gt;&gt;</a></font>\n";
		print "</td>\n";
		print "</table>\n";
	}
	print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"main\">\n";

	$t_width = $width;

	for ($c = $st; $c <$en; $c++) {
		$BASE[$c] =~ s/\n//g;
		(@item) = split(/\,/,$BASE[$c],$#table +1);
		$item[2] =~ s/&quot;/"/g;
		$item[2] =~ s/__COMMA__/,/g;
		if($tags == 0){
			$item[2] =~ s/__BR__//g;
			$item[2] =~ s/&lt;/</g;
			$item[2] =~ s/&gt;/>/g;
		}elsif($tags == 1){
			$item[2] =~ s/&lt;/</g;
			$item[2] =~ s/&gt;/>/g;
			$item[2] =~ s/&/&amp;/g;
			$item[2] =~ s/</&lt;/g;
			$item[2] =~ s/>/&gt;/g;
			$item[2] =~ s/__BR__/<br>/g;
		}
		if($c % $column == 0){
			print "<tr class=\"submain\">\n";
		}
		print "<td valign=\"top\" width=\"$t_width\">\n";
		print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$t_width\">\n";
		print "<tr class=\"article\">\n";
		print "<td class=\"News\">\n";

#ポップアップのサイズ設定
		&imgsize("$upload_dir/$item[3]", $hikisuu2, $hikisuu3, $hikisuu4, $hikisuu5);
## ポップアップの横サイズ
		if($IMGSIZE{'width'} <= $photo_width){
			$width_tmp =  " width=\"".$IMGSIZE{'width'}."px\"";
		}else{
			$width_tmp =  " width=\"".$IMGSIZE{'out_width'}."px\"";
		}
## ポップアップの縦サイズ
		if($IMGSIZE{'height'} <= $photo_height){
			$height_tmp =  " height=\"".$IMGSIZE{'height'}."px\"";
		}else{
##$height_tmp =  " height="."90px";
			$height_tmp =  " height=\"".$IMGSIZE{'out_height'}."px\"";
		}
		$spacer_width = $t_width - $IMGSIZE{'width'} -1;
# ポップアップのサイズ設定 ここまで
# 2007/09/25 変更
		if ($item[4] eq "on") {
			$imagetag = "<a href=\"#\" onclick=\"window.open('./pop.cgi?no=$item[0]','new','scrollbars=no, width=$IMGSIZE{'width'}, height=$IMGSIZE{'height'}');\" ><img src=\"$upload_dir/$item[3]\" $width_tmp border=\"0\" class=\"News-img-$item[6]\"></a>";
		} else {
			$imagetag = "";
		}
		if ($item[5] eq "on") {
			if($item[8] ne '') {
				$texttag = "<a href=\"$item[8]\" target=\"_$item[9]\"><font size=\"$docsize\" color=\"$doccol\">$item[2]</font></a>";
			} else {
				$texttag = "<font size=\"$docsize\" color=\"$doccol\">$item[2]</font>";
			}
		} else {
			$texttag = "";
		}
		print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$t_width\">\n";
		print "<tr>\n";
		if($date_vis eq "0"){
			print "<td style=\"padding: 2px 4px;\" bgcolor=\"$datebg\" width=\"80\" valign=\"top\"><font size=\"$datesize\" color=\"$datecol\">$item[1]</font></td>";
		}
		if ($item[7] eq 'under') {
			$innertd = "<td valign=\"top\">$imagetag<br>$texttag</td>";
		} elsif ($item[6] eq 'right') {
			$innertd = "<td>$texttag</td><td valign=\"top\">$imagetag</td>";
		} else {
			if ($imagetag eq '') {
				$innertd = "<td valign=\"top\">$imagetag</td><td>$texttag</td>";
			} else {
				$innertd = "<td $width_tmp  valign=\"top\">$imagetag</td><td>$texttag</td>";
			}
		}
		print $innertd;
		print "</tr></table>\n";
		print "</td></tr>\n";
		print "<tr><td>\n";
		print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td height=\"3px\"></td></tr></table>\n";
		print "</td></tr>\n";
		print "<tr><td>\n";
		print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$t_width\">\n";
		print "<tr>\n";
		print "<td valign=\"top\"><img src=\"./image/spacer.gif\" height=\"1\" width=\"$spacer_width\"></td>\n";
		print "<td valign=\"top\"><img src=\"./image/spacer.gif\" height=\"1\" width=\"1\"></td>\n";
		print "</tr>\n";
		print "</table>\n";
		print "</td>\n";
		print "</tr>\n";
		#print "</tr></table>\n";
		#print "</td>\n";
		#print "</tr>\n";

##### 修正・削除ボタン #####
		if($FORM{'mode'} eq 'ADMIN2'){ ## 修正ボタンと削除ボタン
			print "<tr class=\"control\">\n";
			print "<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">\n";
			print "<tr><td align=\"left\" width=\"12px\">\n<form action=\"$url\" method=\"post\" style=\"margin:0px\">\n";
			print "<input type=\"submit\" value=\"-修正-\"><br><br><br>\n";
			print "<input type=\"hidden\" name=\"mode\" value=\"EDIT\">\n";
			print "<input type=\"hidden\" name=\"serial\" value=\"$c\">\n";
			print "<input type=\"hidden\" name=\"c\" value=\"$c\">\n";
			print "<input type=\"hidden\" name=\"pass\" value=\"$FORM{'pass'}\">\n";
			print "</form>\n";
			print "</td>";
			print "<td><form action=\"$url\" method=\"post\" style=\"margin:0px\">\n";
			print "<input type=\"submit\" value=\"-削除-\" onClick=\"message(); return f\"><br><br><br>\n";
			print "<input type=\"hidden\" name=\"mode\" value=\"DEL\">\n";
			print "<input type=\"hidden\" name=\"serial\" value=\"$c\">\n";
			print "<input type=\"hidden\" name=\"c\" value=\"$c\">\n";
			print "<input type=\"hidden\" name=\"del_gazou\" value=\"$item[3]\">\n";
			print "<input type=\"hidden\" name=\"pass\" value=\"$FORM{'pass'}\">\n";
			print "</form>\n";
			print "</td>\n";
			print "<td align=\"right\">";
			print "<font size=\"2\"><a href=\"reference.html\" target=\"ref\">使い方</a></font>\n";
			print "</td>\n";
			print "</tr>\n";
			print "</table></td>\n";
			print "</tr>\n";
		}
		print "<tr class=\"spacer\"><td height=\"0px\" valign=\"top\"></td></tr>\n";
		print "</table>\n";
		print "</td>";
		if($column>1){
			print "<td>&nbsp;&nbsp;&nbsp;</td>";
		}
		$t_c = $c + 1;
# 行末の場合のみ</tr>表示
		if ($t_c % $column == 0) {
			print "</tr>\n";
		}
	}

	print "</table>\n";
	print "</td></tr>\n";
	#print "</table>\n";
	print "<tr>\n";
	print "<td>\n";
	print "<table width=\"$g_width\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	print "<tr><td height=\"12px\"></td></tr>\n";
	print "<tr><td align=\"right\">\n";
	&backnext;
	print "</td></tr>\n";
	if($FORM{'mode'} ne 'ADMIN2'){ 
		print "<tr><td align=\"right\">\n";
		print "\n";
		print "</td></tr>\n";
	}
		
	if($FORM{'mode'} eq 'ADMIN2'){ 
		print "<tr><td colspan=2>\n";
		print "<div align=\"right\" style=\"padding:20px 0px;\"><font size=\"2\"><a href=$url?mode=>一覧&gt;&gt;</a></font></div>\n";
		print "</td></tr>\n";
	}
	print "</table>\n";
####### メイン表示ルーチン ココまで #######

## 著作権表示 削除不可
##print <<"EOF";
#<table border=0 width="80%"><td align="right" style="font-size:12px;">
#<a href="" target="_blank">designed by</a>
#</td></table>
#EOF
	print "</body></html>\n";

exit;
}

sub backnext {

	local (@backnext) = @_;
	
	$kosuu = ($BASE2 / $step);
	$amari = ($BASE2 % $step);
	$amari2 = $amari / $step;
	if( $amari2 >= '0.5'){
		$kosuu = int($kosuu + 0.5);
	}elsif($amari2=='0'){
		$kosuu = ($BASE2 / $step);
	}elsif($amari2 < '0.5'){
		$kosuu = int($kosuu);	
		$kosuu = $kosuu +1;
	}

	$kosuu2 = $kosuu;
	
	if($kosuu > 10){
		$kosuu = 10;
	}

	$ichi = ($st/$step);
	$ichi = int($ichi);

	if($ichi < 4){
		$kaishi = 1;
		$c = 0;
		$c2 = 0;
	}elsif($ichi >= 4 ){
	 if($kosuu<10){
	    $kaishi = 1;
	    $c = 0;
	    $c2 = 0;
	  }else{
	    $kaishi = $ichi - 3;
	    $kosuu =  $ichi + 6;
	    $c2 = ($kaishi - 1) * $step;
	  }
	}

	$st2 = $st+1;


	if($kosuu2 > 1){ ##/*  ページ数が０のときは何も表示しない */

	    print "<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
	    print "<tr>\n";
	    
	if ($st > 0) {

	 	if($FORM{'mode'} eq 'ADMIN2'){
	 	  $li2  = "mode=ADMIN2&pass=".$FORM{'pass'}."&c=".$c_back;
		  print "<td valign=bottom align=center><A HREF=\"$url?$li2\" style=text-decoration:none>";
		  	if($nxbk == '0'){
		  		print "<font size=\"$psize\" color=\"$pcolor\">$pprev &nbsp;</font>";
		  	}else{
		  		print "<img src=\"$sysimg$pprev_img\" border=0 alt=\"$pprev\">&nbsp;";
		  	}
		  print "</A></td>\n";
		}else{
		  $li2  = "mode=&c=".$c_back;
		  print "<td valign=bottom align=center><A HREF=\"$url?$li2\" style=text-decoration:none>";
		  	if($nxbk == '0'){
		  		print "<font size=\"$psize\" color=\"$pcolor\">$pprev &nbsp;</font>";
		  	}else{
		  		print "<img src=\"$sysimg$pprev_img\" border=0 alt=\"$pprev\">&nbsp;";
		  	}
		  print "</A></td>\n";
		}
	}

	  if ($BASE2 > $st + $step ) {
	    if($FORM{'mode'} eq 'ADMIN2'){
	         $li2  = "mode=ADMIN2&pass=".$FORM{'pass'}."&c=".$c_next;
   		print "<td valign=bottom align=center><A HREF=\"$url?$li2\" style=text-decoration:none>";
   			if($nxbk == '0'){
   				print "<font size=\"$psize\" color=\"$pcolor\">&nbsp; $pnext</font>";
			}else{
				print "&nbsp;<img src=\"$sysimg$pnext_img\" border=0 alt=\"$pnext\">";
			}
		print "</A></td>\n";
	    }else{
		$li2  = "mode=&c=".$c_next;
   		print "<td valign=bottom align=center><A HREF=\"$url?$li2\" style=text-decoration:none>";
   			if($nxbk == '0'){
   				print "<font size=\"$psize\" color=\"$pcolor\">&nbsp; $pnext</font>";
			}else{
				print "&nbsp;<img src=\"$sysimg$pnext_img\" border=0 alt=\"$pnext\">";
			}
		print "</A></td>\n";
             }
	 }

	print "</tr></table>";
	}
}

##### パスワード入力フォーム #####

sub pass {

print "Content-type: text/html\n\n";
	print <<"EOF";
	<HTML>
	<HEAD>
	<meta http-equiv="Content-type" content="text/html; charset=SHIFT_JIS">
	<TITLE>$html_title</TITLE>
	</HEAD>
	<BODY>
	<center>
	<table border="0" cellspacing="0" cellpadding="0" height="100%" width=$width>
	<tr><td align="center">
	<font size=2 color=red>パスワードを入力してください。</font>
	<form action="$url" method=post>
	<input type=password name=pass><br>
	<input type=submit value="認証"><input type=reset value="リセット">
	<input type=hidden name=mode value="ADMIN2">
	</form>
	<h3>[<A HREF="JavaScript:history.back()">前の画面</A>]</h3>
	</td></tr>
	</table>
	</center>
	</BODY></HTML>
EOF
exit;
}

##### 新規登録・修正フォーム #####

sub edit {

	## セレクトボックス選択時時のデータ ##
	$FORM{'c'} = $FORM{'serial'};
	if($FORM{'serial'} eq 'new'){
		$FORM{'mode'} = 'NEW';
	}
	## ここまで ##

	if($FORM{'mode'} eq 'NEW'){ $new_flg = 1; }
	
	if($FORM{'mode'} eq 'EDIT'){
		$line = $BASE_ORG[$FORM{'c'}];
		$line =~ s/\n//g;
		@items = split(/\,/,$line);
	}

	if($FORM{'mode'} eq 'NEW'){ $title = '新規登録'; }
	elsif($FORM{'mode'} eq 'EDIT'){ $title = '修正登録'; }
	print "Content-type: text/html\n\n";
	print <<"EOF";
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<SCRIPT language="JavaScript">
<!--
function PageBack(){ history.back(); }
function message() {
	f = confirm("削除実行してよろしいですか？");
	return f;
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<center>
<table border="0" cellspacing="0" cellpadding="0" width=$width>
<tr><td>
EOF

print <<"EOF";
<font size=2>$title</font>
<div align="right">
<form name="aa" action="$url" method="post" style="margin:0px;">
<input type="hidden" name="mode" value="EDIT">
<input type="hidden" name="pass" value="$FORM{'pass'}">
<select name="serial" style="width:200px;">
<option disabled>編集記事選択
<option value="new">新規投稿
EOF
	$rec=0;
	foreach(@BASE_ORG){
		@base = split(/,/,$_);
		print "<option value=\"$rec\">$base[0] . $base[1]\n";
		$rec++;
	}
print <<"EOF";
</select><input type="submit" value="選択">
</form></div>
	
<form action="./upload.cgi" method=POST enctype="multipart/form-data">

<table border=0 cellspacing="0" cellpadding="0">
<tr>
<th nowrap><font size=-2>編集フォーム</font></th>
</tr>
<tr><td height="12px"></td></tr>
<tr><td align="right">
画像 <input type="file" name="filename1" style="width:200px;">
<td><tr>
EOF
	foreach $num (0 .. $#table) {
		$size = 20;
		if ($table[$num] eq '') { $table[$num] = '(未定義)'; }
		
#### 入力欄はココから #####
		if($num == '0'){
			if($new_flg == 1){
				print <<"EOF";
<td nowrap><font size=-2 color=red>※連番：自動的に付けられます.</font></td>
<input type=hidden name="key$num" value="new">
</tr>
EOF
			}else{
				print <<"EOF";
<td nowrap><b>No. $items[$num]</b></td>
<input type=hidden name="key$num" value="$items[$num]">
</tr>
EOF
			}
		}elsif($num == '1'){
			if($new_flg == 1){
				print <<"EOF";
<td nowrap><br>
<input type=text name="key$num" value="$today" style="width:350px;"></td>
</tr>
EOF
			}else{
				print <<"EOF";
<td nowrap><input type=text name="key$num" value="$items[$num]" size=$size style="width:350px;"></td>
</tr>
EOF
			}
		}elsif($num == '2'){
			$items[2] =~ s/__BR__/\r\n/g;
			$items[2] =~ s/&lt;/</g;
			$items[2] =~ s/&gt;/>/g;
			$items[2] =~ s/&quot;/"/g;
			$items[2] =~ s/__COMMA__/,/g;
			print <<"EOF";
<td nowrap><textarea name="key$num" wrap=soft style="height:180px;width:350px;">$items[$num]</textarea><br><font size=-2 color=red>※全角$text_limit文字以内でお願いします.<br>また適宜改行してください.<br><br></font></td>
</tr>
EOF
		}elsif($num == '6'){
			if($items[$num] eq "right"){$ckd[1] = "checked";}
			else{$ckd[0] = "checked";}
			print <<"EOF";
<tr><td>
<font size="1">
<b>画像表\示位置</b><br>
<input type="radio" name="key$num" value="left" $ckd[0]>左側
<input type="radio" name="key$num" value="right" $ckd[1]>右側
</font>
</td>
</tr>
EOF
		}elsif($num == '7'){
			if($items[$num] eq "under"){$ckd2[1] = "checked";}
			else{$ckd2[0] = "checked";}
			print <<"EOF";
<tr><td>
<font size="1">
<b>テキスト表\示位置</b><br>
<input type="radio" name="key$num" value="side" $ckd2[0]>画像の横
<input type="radio" name="key$num" value="under" $ckd2[1]>画像の下
</font>
</td>
</tr>
EOF
		}elsif($num == '3'){
			if($new_flg == 1){
				print <<"EOF";
<td nowrap>　　　<font size=-2 color=red>※画像名は自動的に付けられます.</font></td>
<input type=hidden name="key$num" value="new">
</tr>
EOF
			}else{
				print <<"EOF";
<td nowrap>
$items[$num]</td>
<input type=hidden name="key$num" value="$items[$num]">
</tr>
EOF
			}
		}elsif($num == '4'){
			print "<td nowrap>";
			# 表示
			print "<input type=radio name=\"key$num\" value=\"on\"";
			if($items[$num] eq 'on' || $new_flg == 1){ print " checked "; }
			print "><font size=-2>画像\表\示</font>　";
			# 非表示
			print "<input type=radio name=\"key$num\" value=\"off\"";
			if($items[$num] eq 'off'){ print " checked "; }
			print "><font size=-2>画像\非\表\示</font>　";
			print "</td></tr>\n";

		}elsif($num == '5'){
			print "<td nowrap>";
			# 表示
			print "<input type=radio name=\"key$num\" value=\"on\"";
			if($items[$num] eq 'on' || $new_flg == 1){ print " checked "; }
			print "><font size=-2>記事\表\示</font>　";
			# 非表示
			print "<input type=radio name=\"key$num\" value=\"off\"";
			if($items[$num] eq 'off'){ print " checked "; }
				print "><font size=-2>記事\非\表\示</font>　";
				print "</td></tr>\n";
## 2007/09/25 テキストリンク追加 ##
		}elsif($num == '8'){
			print <<"EOF";
<td nowrap>
<font size="1"><b>本文のリンク先URL:</b></font><br><input type=text name="key$num" value="$items[$num]" style="width:350px;"></td>
</tr>
EOF
		}elsif($num == '9'){
			print "<td nowrap>";
			print "<font size=\"1\"><b>リンク先\表\示方法</b></font><br>\n";
			# blank
			print "<input type=radio name=\"key$num\" value=\"blank\"";
			if($items[$num] eq 'blank' || $new_flg == 1){ print " checked "; }
			print "><font size=-2>新しいウィンドウ</font>　\n";
			# self
			print "<input type=radio name=\"key$num\" value=\"top\"";
			if($items[$num] eq 'self'){ print " checked "; }
			print "><font size=-2>同じウィンドウ</font>　\n";
			print "</td></tr>\n";
		}else{
			print <<"EOF";
<td nowrap><input type=text name="key$num" value="$items[$num]" size=$size>
EOF
			print <<"EOF";
</td></tr>
EOF
		}
	} ## end foreach
	
	print <<"EOF";
</table>
<table border=0 cellspacing=0 cellpadding=0 width="100%"><td>
	<input type=hidden name="mode" value="$FORM{'mode'}">
	<input type=hidden name="serial" value="$FORM{'serial'}">
	<input type=hidden name="pass" value="$FORM{'pass'}">
	<input type="hidden" name="limit" value="$text_limit">
	<input type=submit value="登録する"><input type=reset value="リセット">
	</form>
</td><td align="right">
	<form action="$url" method=POST style="margin:0px;">
	<input type=submit value="削除" onClick="message(); return f">
	<input type=hidden name="mode" value="DEL">
	<input type=hidden name="serial" value="$FORM{'serial'}">
	<input type=hidden name="c" value="$FORM{'serial'}">
	<input type=hidden name="del_gazou" value="$items[$num]">
	<input type=hidden name="pass" value="$FORM{'pass'}">
	</form>
</td></table>
<font size=2>[<A HREF="JavaScript:history.back()">編集をやめる</A>]</font>
</td></tr>
</table>
</center>
</BODY></HTML>
EOF
	exit;
}
##### 新規登録・修正フォーム ココまで#####


##### 削除ルーチン #####
sub del {

        ## 画像を消します
  	unlink("$upload_dir/$FORM{'del_gazou'}");
        
        &lock;
        
	foreach $num (0 .. $#BASE_ORG) {
		if ($num == $FORM{'serial'}) { next; }
		push(@NEW,$BASE_ORG[$num]);
	}

	if ($rev) { @NEW = reverse @NEW; }

	if (!open(OUT,"> $file")) { &error("File Not Open","$fileを開くことができません."); }
	print OUT @NEW;
	close(OUT);

	if (!open(IN,"$file")) { &error("File Not Open","$fileを開くことができません."); }
	@BASE_ORG = <IN>;
	close(IN);

	####  バックアップ書き込み
	if (open(OUT,"> $backup")) {

		print OUT "-- $date_now ----------\n";
		print OUT @BASE_ORG;
		print OUT "\n";
		close(OUT);
	}

	if ($rev) { @BASE_ORG = reverse @BASE_ORG; }
	
	&unlock;
	
	print "Content-type: text/html\n\n";
	print <<"EOF";
	<HTML>
	<HEAD>
	<meta http-equiv="Content-type" content="text/html; charset=SHIFT_JIS">
	<TITLE>削除完了</TITLE>
	</HEAD>
	<BODY>
	<center>
	<table border="0" cellspacing="0" cellpadding="0" width=$width>
	<tr><td align=center valign=top>
	<font size=2>削除完了</font><br>
	<font size=2>[<A HREF="$url?mode=ADMIN2&pass=$FORM{'pass'}">リストへ戻る</A>]</font>
	</td></tr>
	</table>
	</BODY></HTML>
EOF
	exit;
}
##### 削除ルーチン ココまで #####



### コンフィグ ##################
sub config {

	 $cr_pass = $FORM{'pass'};
	 $mat = &decrypt($cr_pass,$PASSWORD);

        if($FORM{'mode'} eq 'CONFIG' and !$mat){

          &error('パスワードが違います。');

        }

	chmod(0666,$options);
	
	if($FORM{'mode'} eq 'CONFIG2'){
	push(@CONFIGS, $FORM{'PASSWORD'});
	push(@CONFIGS, $FORM{'html_title'});
	push(@CONFIGS, $FORM{'midashi'});
	push(@CONFIGS, $FORM{'top_title'});
	push(@CONFIGS, $FORM{'top_color'});
	push(@CONFIGS, $FORM{'top_size'});
	push(@CONFIGS, $FORM{'top_img'});
	push(@CONFIGS, $FORM{'datebg'});
	push(@CONFIGS, $FORM{'datecol'});
	push(@CONFIGS, $FORM{'datesize'});
	push(@CONFIGS, $FORM{'bodybg'});
	push(@CONFIGS, $FORM{'wall'});
	push(@CONFIGS, $FORM{'tmb'});
	push(@CONFIGS, $FORM{'lcr'});
	push(@CONFIGS, $FORM{'repeat'});
	push(@CONFIGS, $FORM{'fixed'});
	push(@CONFIGS, $FORM{'doccol'});
	push(@CONFIGS, $FORM{'docsize'});
	push(@CONFIGS, $FORM{'nxbk'});
	push(@CONFIGS, $FORM{'pnext'});
	push(@CONFIGS, $FORM{'pprev'});
	push(@CONFIGS, $FORM{'psize'});
	push(@CONFIGS, $FORM{'pcolor'});
	push(@CONFIGS, $FORM{'pnext_img'});
	push(@CONFIGS, $FORM{'pprev_img'});
	push(@CONFIGS, $FORM{'text_limit'});
	push(@CONFIGS, $FORM{'width'});
	push(@CONFIGS, $FORM{'photo_width'});
	push(@CONFIGS, $FORM{'tags'});
	push(@CONFIGS, $FORM{'step'});
	push(@CONFIGS, $FORM{'column'});
	push(@CONFIGS, $FORM{'wall_vis'});
	push(@CONFIGS, $FORM{'date_vis'});
	
	### タグと"とカンマを外す ###
	foreach $num (0 .. $#CONFIGS) {
		$CONFIGS[$num] =~ s/<//g; ## <
		$CONFIGS[$num] =~ s/>//g; ## >
		$CONFIGS[$num] =~ s/"//g; ## "
		$CONFIGS[$num] =~ s/,//g; ## ,
	}

	
	### パスワードの処理 ###
	if($FORM{'new_passwd'} eq ''){
		$CONFIGS[0] = $PASSWORD;
		}else{
		$CONFIGS[0] = &crypt($FORM{'new_passwd'});
	}



	### オプションファイル書き込み ###
	$config_line = join(',',@CONFIGS);
	&lock;
	open OUT,">$options";
	print OUT $config_line;
	close OUT;
	&unlock;

	}

	### オプションファイル読み込み ###

	open IN,"$options";
	($PASSWORD,$html_title,$midashi,$top_title,$top_color,$top_size,$top_img,$datebg,$datecol,$datesize,$bodybg,$wall,$tmb,$lcr,$repeat,$fixed,$doccol,$docsize,$nxbk,$pnext,$pprev,$psize,$pcolor,$pnext_img,$pprev_img,$text_limit,$width,$photo_width,$tags,$step,$column,$wall_vis,$date_vis) = split(/,/,<IN>);
	close IN;

#-- 表示部分 --#
print "Content-type: text/html\n\n";
print <<"EOF";

<html><head><title>表\示設定</title>

<style type="text/css"><!--
td {
	font-size:12px;}
.f {
	width:180px;}
// --></style>

</head><body>
<center>

<form action="$url" method="post" style="margin:0px;">
<table border=0 cellspacing=0 cellpadding=3 width="400px">
<tr><td colspan=2>
表\示設定
</td></tr>
<tr><td colspan=2 height="24px"></td></tr>
<tr><td width="214px">
<b>ページタイトル</b> <font style="font-size:10;">&lt;title&gt;タグの中身</font>
</td><td width="186px">
<input type="text" name="html_title" value="$html_title" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td colspan=2>
	<table border=0 cellspacing=0 cellpadding=0 width="400px">
	<tr><td rowspan=5 valign="top" width="58px"><b>見出し</b></td>
	<td><input type="radio" name="midashi" value=0
EOF

if($midashi == 0){
	print " checked";}

print <<"EOF";
	>非表\示</td></tr>
	<tr><td><input type="radio" name="midashi" value=1
EOF

if($midashi == 1){
	print " checked";}

print <<"EOF";
	>画像で表\示</td></tr>
	<tr><td style="padding-left:36px;">
		<table border=0 cellspacing=0 cellpadding=0>
		<td width="120px">画像のファイル名</td>
		<td><input type="text" name="top_img" value="$top_img" class="f"></td>
		</table>
	</td></tr>
	<tr><td><input type="radio" name="midashi" value=2
EOF

if($midashi == 2){
	print " checked";}

print <<"EOF";
	>テキストで表\示</td></tr>
	<tr><td style="padding-left:36px;">
		<table border=0 cellspacing=0 cellpadding=0>
		<tr><td width="120px">タイトルフレーズ</td>
		<td><input type="text" name="top_title" value="$top_title" class="f"></td></tr>
		<tr><td width="120px">文字色</td>
		<td><input type="text" name="top_color" value="$top_color" class="f"></td></tr>
		<tr><td width="120px">フォントサイズ(1-7)</td>
		<td><input type="text" name="top_size" value="$top_size" class="f"></td></tr>
		</table>
	</td></tr>
	</table>
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>背景色</b>
</td><td>
<input type="text" name="bodybg" value="$bodybg" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>


<tr><td>
<b>背景画像</b>
</td><td>
EOF

@wv_c = ('','');
if($wall_vis eq '0'){ $wv_c[0] = checked; }
else{ $wv_c[1] = checked; }

print <<"EOF";
<input type="radio" name="wall_vis" value="0" $wv_c[0]>表\示&nbsp;&nbsp;
<input type="radio" name="wall_vis" value="1" $wv_c[1]>非表\示

</td></tr>
<tr><td style="padding-left:48px;">
背景画像のファイル名
</td><td>
<input type="text" name="wall" value="$wall" class="f">
</td></tr>
<tr><td style="padding-left:48px;" colspan=2>
	<table border=0 cellspacing=0 cellpadding=0 width="100%">
	<tr><td width="130px">
	上下位置
	</td><td align="right">
	<input type="radio" name="tmb" value="top"
EOF

if($tmb eq top){
	print " checked";}

print <<"EOF";
	>上寄せ　
	<input type="radio" name="tmb" value="center"
EOF

if($tmb eq center){
	print " checked";}

print <<"EOF";
	>中央寄せ　
	<input type="radio" name="tmb" value="bottom"
EOF

if($tmb eq bottom){
	print " checked";}

print <<"EOF";
	>下寄せ　
	</td></tr>
	<tr><td width="130px">
	左右位置
	</td><td align="right">
	<input type="radio" name="lcr" value="left"
EOF

if($lcr eq left){
	print " checked";}

print <<"EOF";
	>左揃え　
	<input type="radio" name="lcr" value="center"
EOF

if($lcr eq center){
	print " checked";}

print <<"EOF";
	>中央揃え　
	<input type="radio" name="lcr" value="right"
EOF

if($lcr eq right){
	print " checked";}

print <<"EOF";
	>右揃え　
	</td></tr>
	<tr><td width="130px">
	背景の繰り返し
	</td><td align="right">
	<input type="radio" name="repeat" value="0"
EOF

if($repeat == 0){
	print " checked";}

print <<"EOF";
	>繰り返す　
	<input type="radio" name="repeat" value="1"
EOF

if($repeat == 1){
	print " checked";}

print <<"EOF";
	>繰り返さない　
	</td></tr>
	<tr><td width="130px">
	画像のスクロール固定
	</td><td align="right">
	<input type="radio" name="fixed" value="0"
EOF

if($fixed == 0){
	print " checked";}

print <<"EOF";
	>固定しない　
	<input type="radio" name="fixed" value="1"
EOF

if($fixed == 1){
	print " checked";}

print <<"EOF";
	>固定する　
	</td></tr>
	</table>
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>記事１件分の表\示領域の横幅(px)</b>
</td><td>
<input type="text" name="width" value="$width" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>ページあたりの表\示件数</b>
</td><td>
<input type="text" name="step" value="$step" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>表\示行数</b>
</td><td>
<input type="text" name="column" value="$column" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
	<table border=0 cellspacing=0 cellpadding=0>
	<tr><td rowspan=4 width="80px" valign="top" style="padding:4px 0px;"><b>日付部分</b></td>
	<td style="padding:4px 0px;">日付部分の表\示</td></tr>
	<td style="padding:4px 0px;">セルの背景色</td></tr>
	<tr><td style="padding:4px 0px;">文字色</td></tr>
	<tr><td style="padding:4px 0px;">文字サイズ(1-7)</td></tr>
	</table>
</td><td>
EOF
@dv_f = ('','');
if($date_vis eq '0'){
	$dv_f[0] = "checked";
}else{
	$dv_f[1] = "checked";
}

print <<"EOF";
<input type="radio" name="date_vis" value="0" $dv_f[0]>表\示&nbsp;&nbsp;
<input type="radio" name="date_vis" value="1" $dv_f[1]>非表\示<br>
<input type="text" name="datebg" value="$datebg" class="f"><br>
<input type="text" name="datecol" value="$datecol" class="f"><br>
<input type="text" name="datesize" value="$datesize" class="f"><br>
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td colspan=2>
	<table border=0 cellspacing=0 cellpadding=0 width="100%">
	<tr><td rowspan=4 width="80px" valign="top"><b>記事</b></td>
	<td>文字色</td>
	<td width="186px">
	<input type="text" name="doccol" value="$doccol" class="f"><br>
	</td></tr>
	<tr><td>文字サイズ(1-7)</td><td>
	<input type="text" name="docsize" value="$docsize" class="f"><br>
	</td></tr>
	<tr><td>文字数制限(全角)</td><td>
	<input type="text" name="text_limit" value="$text_limit" class="f"><br>
	</td></tr>
	<tr><td>タグの許可</td><td>
	<input type="radio" name="tags" value="0"
EOF

if($tags == 0){
	print " checked";}

print <<"EOF";
	>許可　
	<input type="radio" name="tags" value="1"
EOF

if($tags == 1){
	print " checked";}

print <<"EOF";
	>禁止　
	<br>
	</td></tr>
	</table>
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td colspan=2 style="padding-top:6px;"><b>ページ送り・戻り時のボタン</b></td></tr>
<tr><td colspan=2>
	<table border=0 cellspacing=0 cellpadding=0 width="100%">
	<tr><td rowspan=8 width="50px"></td>
	<td><input type="radio" name="nxbk" value=0
EOF

if($nxbk == 0){
	print " checked";}

print <<"EOF";
	>テキストリンクによる表\示</td>
	<td width="186px"></td></tr>
	<tr><td style="padding-left:40px;">
	送り時のテキスト
	</td><td>
	<input type="text" name="pnext" value="$pnext" class="f"><br>
	</td></tr>
	<tr><td style="padding-left:40px;">
	戻り時のテキスト
	</td><td>
	<input type="text" name="pprev" value="$pprev" class="f"><br>
	</td></tr>
	<tr><td style="padding-left:40px;">
	文字色
	</td><td>
	<input type="text" name="pcolor" value="$pcolor" class="f"><br>
	</td></tr>
	<tr><td style="padding-left:40px;">
	文字サイズ(1-7)
	</td><td>
	<input type="text" name="psize" value="$psize" class="f"><br>
	</td></tr>
	<tr><td>
	<input type="radio" name="nxbk" value=1
EOF

if($nxbk == 1){
	print " checked";}

print <<"EOF";
	>画像ボタンによる表\示
	</td><td></td></tr>
	<tr><td style="padding-left:40px;">
	送り時の画像ファイル名
	</td><td>
	<input type="text" name="pnext_img" value="$pnext_img" class="f"><br>
	</td></tr>
	<tr><td style="padding-left:40px;">
	戻り時の画像ファイル名
	</td><td>
	<input type="text" name="pprev_img" value="$pprev_img" class="f"><br>
	</td></tr>
	</table>
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>添付画像の横幅(px)</b>
</td><td>
<input type="text" name="photo_width" value="$photo_width" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td>
<b>パスワード</b><font style="font-size:10px;">　※ 半角英数8文字まで</font>
</td><td>
<input type="text" name="new_passwd" value="" class="f">
</td></tr>

<tr><td colspan=2 height="1px" bgcolor="#999999"></td></tr>

<tr><td colspan=>
<input type="submit" value="決定"><input type="reset" value="リセット">
</td><td align="right">
<input type="button" value="閉じる" onclick="window.close();">
</td></tr>
<tr><td colspan=2 style="padding-top:12px;" align="right"><font size="2"><a href="reference.html" target="ref">使い方</a></font></td></tr>
<tr><td height="12px"></td></tr>
</table>
<input type=hidden name="pass" value="$FORM{'pass'}">
<input type="hidden" name="mode" value="CONFIG2">
</form>
</center>
</body></html>

EOF

exit;
}


#------------------------------#

sub error {

	local (@msg) = @_;
	local ($i);

	print "Content-type: text/html\n\n";
	print <<"EOF";
	<HTML>
	<HEAD>
	<meta http-equiv="Content-type" content="text/html; charset=SHIFT_JIS">
	<TITLE>ERROR</TITLE>
	<SCRIPT language="JavaScript">
	<!--
	function PageBack(){ history.back(); }
	//-->
	</SCRIPT>
	</HEAD>
	<BODY>
	<center>
	<table border="0" cellspacing="0" cellpadding="0" width=$width>
	<tr><td align=center valign="top">
	<font size=2 color=red>$_[0]</font>
EOF

	foreach $i (1 .. $#msg) { print "$msg[$i]<br>\n"; }

	print <<"EOF";
	<h3>[<A HREF="JavaScript:history.back()">前の画面</A>]</h3>
	</td></tr>
	</table>
	</BODY></HTML>
EOF
	exit;
}


##### ファイルロック用関数 #######
sub lock {
	if (!$lockmode) {return;}
	$retry = 3;
	if (-e $lockfile) {
		$locktime = (stat($lockfile))[9];
		if ($locktime < time - 60) {&unlock;}
	}
	while (!mkdir($lockfile,0755)) {
		if (--$retry < 0) {&error("busy!");}
		sleep(1);
	}
}

###
sub unlock {if ($lockmode) {rmdir($lockfile);}}

