#!/usr/bin/perl
$|=1;

# Takemura
# 2003/12/06
# Ver1.2
# email 文字数制限解除
# Modifyed 2004/08/03 メール本文をJISコードへ変換処理追加
# ロボット検索パス追加
# 期間限定　全国大会申し込みフォーム作成

require "./jcode.pl";
require './mimew.pl';

#	use strict;
use CGI;

#/////////初期設定////////////
# 送信元メールアドレス
my $adminMail = 'jmc@amada.co.jp';
#my $adminMail = 'takemura@amada.co.jp';
# 送信先メールアドレス
$to = 'jmc@amada.co.jp';
#$to = 'takemura@amada.co.jp';
$bcc = 'takemura@amada.co.jp,yuko.yabe@amada.co.jp';
# メールパス
$mailPath = '/usr/sbin/sendmail -t';
#保存するファイル月数
$logNum = 12;
#ログファイル保存場所
$msgDir = './log/';
# カウンター用ファイル
$counterFile = './mailcount.dat';
#ロック用ファイル
$lockFile = 'lock/mailcount.lock';
#リトライ回数
$retry = 5;
# スタイルシートフォルダ名前
$styleName = './style/jmcbbs.css';
# 画像用フォルダ
$imageFolder = './images';
# スタイルシート
$css1 = "<link rel=\"stylesheet\" href=\"$styleName\" type=\"text/css\">";
#　投稿形式
$formMethod = "post";
# CGI名前
$cgiName = "mailpost.cgi";


#--------------初期設定開始--------------#

#///////////////////////////////////////#
#	HTML設定				#
#///////////////////////////////////////#

#フォームの処理
my $cgi = CGI::new();
my $cmd = $cgi->param('cmd');

my $title = $cgi->param('title');
if($title eq 3) {
	$mainTitle = "期間限定 全国大会申し込み";
} elsif($title eq 2) {
	$mainTitle = "お問い合わせ";
} else {
	$mainTitle = "資料請求";
}

my $comName = $cgi->param('comName');
my $name = $cgi->param('name');
my $nameFuri = $cgi->param('nameFuri');
my $equip = $cgi->param('equip');
my $officialTitle = $cgi->param('officialTitle');
my $comUrl = $cgi->param('comUrl');
my $zip = $cgi->param('zip');
my $adress = $cgi->param('adress');
my $wayContact = $cgi->param('wayContact');
my $contact = $cgi->param('contact');
my $question = $cgi->param('question');

my $mailBody = $cgi->param('mailBody');
my $sysDate = $cgi->param('sysDate');

#--------------初期設定終了--------------#

#////////////////// プログラム一覧///////////////#
# ヘッダー		&head()			#
# ページ上部		&pageBegin()		#
# メイン			&main()			#
# エラー			&error("メッセージ")	#
#						#
#----------------プログラム一覧終了--------------#

#///////////////////////////////////////#
#	分岐処理				#
#///////////////////////////////////////#

if($cmd eq 'check') {
	&check();
}

if($cmd eq 'mailPost') {
	&mailPost();
}

&main();

#///////////////////////////////////////#
#	メイン関数			#
#///////////////////////////////////////#
# main()
sub main{
# ヘッダー
	&head();

# ページ上部
	&pageBegin();

# 入力フォーム表示
	&form();

# フッター
	&footer();

	exit();
}
#-----------------メイン終了-------------#


#///////////////////////////////////////#
#	ヘッダー				#
#///////////////////////////////////////#
# head()

sub head{

print "Content-type: text/html\n";

}
#-------------head()終了-----------#

#///////////////////////////////////////#
#	ページ上部			#
#///////////////////////////////////////#
# pageBegin()

sub pageBegin {

	my $str;

if($title eq 3) {
	$str = "<DIV class=\"subtitle\"><A href=\"../index.htm\" target=\"_parent\">TOP</A>&gt;$mainTitle<BR>";
} elsif ($title eq 2) {
	$str = "<DIV class=\"subtitle\"><A href=\"../index.htm\" target=\"_parent\">TOP</A>&gt;$mainTitle<BR>";
} elsif ($title eq 1) {
	$str = "<DIV class=\"subtitle\"><A href=\"../index.htm\" target=\"_parent\">TOP</A>&gt;<A href=\"../about_jmc/jmc.htm\">JMCのすべて</A>&gt;<A href=\"../about_jmc/app.htm\">受講案内</A>&gt;$mainTitle<BR>";
} else {
	$str = "<DIV class=\"subtitle\"><A href=\"../index.htm\" target=\"_parent\">TOP</A>&gt;<A href=\"../schedule/sch_2004.htm\">開催期間</A>&gt;$mainTitle<BR>";	
}

#上部ＨＴＭＬ
#// HTML 出力 (ヒアドキュメント)
print << "EOM";

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META name="robots" content="noindex,nofollow">
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">	
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>$mainTitle</TITLE>
$css1
<script language="JavaScript" type="text/javascript">
<!--

function mailChk(chkVal, nullp){
	if (nullp == false && chkVal.length == 0) {
		return false;
	}
	if(!chkVal.match(/.*@.*\..*/i)){ 
		return false;
	}
	return true;
}

EOM


if($title <= 1) {

	print << "EOM";
function inputChk(myForm) {
	if (myForm.elements[0].value.length == 0) {
		alert('必須項目です　御社名の入力をお願いします ');
	        myForm.elements[0].focus();
	        return false;
	} 
	if (myForm.elements[1].value.length == 0) {
		alert('必須項目です　御名前の入力をお願いします ');
	        myForm.elements[1].focus();
	        return false;
	} 
	if (myForm.elements[2].value.length == 0) {
		alert('必須項目です　ふりがなの入力をお願いします ');
	        myForm.elements[2].focus();
	        return false;
	}
	if (myForm.elements[3].value.length == 0) {
		alert('必須項目です　業種の選択をお願いします ');
	        myForm.elements[3].focus();
	        return false;
	}
	if (myForm.elements[6].value.length == 0) {
		alert('必須項目です　郵便番号の入力をお願いします ');
	        myForm.elements[6].focus();
	        return false;
	}
	if (myForm.elements[7].value.length == 0) {
		alert('必須項目です　住所の入力をお願いします ');
	        myForm.elements[7].focus();
	        return false;
	} 
	if (myForm.elements[8].value.length == 0) {
		alert('必須項目です　連絡方法の選択をお願いします ');
	        myForm.elements[8].focus();
	        return false;
	}
	if (myForm.elements[9].value.length == 0) {
		alert('必須項目です　連絡先の入力をお願いします ');
	        myForm.elements[9].focus();
	        return false;
	}
	if (myForm.elements[10].value.length == 0) {
		alert('必須項目です　お問い合わせの入力をお願いします ');
	        myForm.elements[10].focus();
	        return false;
	}
	if (myForm.elements[8].value == "電子メール") {
		if (mailChk(myForm.elements[9].value, false) == false) {
                	alert('メールアドレスが不正です。');
                	myForm.elements[9].focus();
                	return false;
        	}
	}

	return true;
}
EOM
	} else {

	print << "EOM";
function inputChk(myForm) {
	if (myForm.elements[1].value.length == 0) {
		alert('必須項目です　御名前の入力をお願いします ');
	        myForm.elements[1].focus();
	        return false;
	} 
	if (myForm.elements[2].value.length == 0) {
		alert('必須項目です　ふりがなの入力をお願いします ');
	        myForm.elements[2].focus();
	        return false;
	}
	if (myForm.elements[3].value.length == 0) {
		alert('必須項目です　業種の選択をお願いします ');
	        myForm.elements[3].focus();
	        return false;
	}
	if (myForm.elements[8].value.length == 0) {
		alert('必須項目です　連絡方法の選択をお願いします ');
	        myForm.elements[8].focus();
	        return false;
	}
	if (myForm.elements[9].value.length == 0) {
		alert('必須項目です　連絡先の入力をお願いします ');
	        myForm.elements[9].focus();
	        return false;
	}
	if (myForm.elements[10].value.length == 0) {
		alert('必須項目です　お問い合わせの入力をお願いします ');
	        myForm.elements[10].focus();
	        return false;
	}
	if (myForm.elements[8].value == "電子メール") {
		if (mailChk(myForm.elements[9].value,false) == false) {
                	alert('メールアドレスが不正です。');
                	myForm.elements[9].focus();
                	return false;
        	}
	}

	return true;
}
EOM

}

print << "EOM";
// --></script>
</HEAD>
<BODY>
${str}
<HR>
</DIV>
EOM

	return;

}
#-------------pageBegn()終了-----------#


sub form{

# 入力フォーム表示
	my $str = <<"EOM";

<TABLE>
  <TBODY>
    <TR>
      <TD>
      <H1>$mainTitle フォーム</H1>
      </TD>
    </TR>
    <TR>
      <TD class="contents">アマダJMCのWebサイトをご覧いただきありがとうございます。<BR>お送りいただきました内容に関して、後日あらためて連絡させていただきます。その日、及び次の日が、休・祭日になる場合は、連絡が遅くなる場合があります。ご了承ください。</TD>
    </TR>
    <TR>
      <TD>&nbsp;</TD>
    </TR>
    <TR>
    </TR>
    <TR>
      <TD>
        <FORM method="$cgiMethod" action="mailpost.cgi" enctype="text/plain" onsubmit="return inputChk(this)">
        <TABLE border="1" class="table1" cellpadding="5" cellspacing="0">
        <TBODY>
          <TR>
            <TD align="center" width="110" class="line1"><SPAN class="p14">項　目</SPAN></TD>
            <TD align="center" class="line1"><SPAN class="p14">内　容</SPAN></TD>
            <TD align="center" class="line1"><SPAN class="p14">全角/半角　(例)</SPAN></TD>
          </TR>
          <TR>
EOM
	if($title <= 1) {
		$str .= "            <TD class=\"line1\"><B>*</B>御社名</TD>\n";
	} else {
		$str .= "            <TD class=\"line1\">御社名</TD>\n";
	}

	$str .= <<"EOM";
            <TD class="line1"><INPUT size="40" type="text" name="comName"></TD>
            <TD class="line1"><SPAN class="p14">全角</SPAN></TD>
          </TR>
          <TR>
            <TD class="line1"><SPAN class="p14"><B>*</B>御名前</SPAN></TD>
            <TD class="line1"><SPAN class="p14"><INPUT size="20" type="text" name="name"></SPAN></TD>
            <TD class="line1"><SPAN class="p14">全角</SPAN></TD>
          </TR>
          <TR>
            <TD class="line1"><B>*</B>ふりがな</TD>
            <TD class="line1"><INPUT size="20" type="text" name="nameFuri"></TD>
            <TD class="line1">全角</TD>
          </TR>
          <TR>
            <TD class="line1"><B>*</B>業　種</TD>
            <TD class="line1"><SELECT name="equip">
              <OPTION value="板金業界関連">板金業界関連</OPTION>
              <OPTION value="その他">その他</OPTION>
              <OPTION selected>---選択してください---</OPTION>
            </SELECT></TD>
            <TD class="line1">選択してください</TD>
          </TR>
          <TR>
            <TD class="line1"><SPAN class="p14">会社URL</SPAN></TD>
            <TD class="line1"><INPUT size="40" type="text" name="comUrl"></TD>
            <TD class="line1"><SPAN class="p14">半角英数　（除くhttp://</SPAN>）</TD>
          </TR>
          <TR>
            <TD class="line1">役職</TD>
            <TD class="line1"><INPUT size="20" type="text" name="officialTitle"></TD>
            <TD class="line1">全角　(ex. 代表取締役)</TD>
          </TR>
          <TR>
EOM

	if($title <= 1) {
		$str .= "            <TD class=\"line1\"><SPAN class=\"p14\"><B>*</B>郵便番号</SPAN></TD>\n";
	} else {
		$str .= "            <TD class=\"line1\"><SPAN class=\"p14\">郵便番号</SPAN></TD>\n";

	}

	$str .= <<"EOM";
            <TD class="line1"><INPUT size="10" type="text" maxlength="8" name="zip"></TD>
            <TD class="line1"><SPAN class="p14">半角　(ex. 253-1196)</SPAN></TD>
          </TR>
          <TR>
EOM
	if($title <= 1) {
		$str .= "            <TD class=\"line1\"><SPAN class=\"p14\"><B>*</B>住所</SPAN></TD>\n";
	} else {
		$str .= "            <TD class=\"line1\"><SPAN class=\"p14\">住所</SPAN></TD>\n";
	}

	$str .= <<"EOM";
            
            <TD class="line1"><SPAN class="p14"><TEXTAREA rows="2" cols="40" name="adress"></TEXTAREA></SPAN></TD>
            <TD class="line1"><SPAN class="p14">全角</SPAN></TD>
          </TR>
          <TR>
            <TD class="line1"><B>*</B>連絡方法<SPAN class="p14"></SPAN></TD>
            <TD class="line1"><SELECT name="wayContact">
              <OPTION value="電子メール">電子メール（除く 携帯電話）</OPTION>
              <OPTION value="電話">電話</OPTION>
              <OPTION value="FAX">FAX</OPTION>
              <OPTION selected> ---選択して下さい---</OPTION>
            </SELECT><SPAN class="p14"></SPAN></TD>
            <TD class="line1">選択してください<SPAN class="p14"></SPAN></TD>
          </TR>
          <TR>
            <TD class="line1"><SPAN class="p14"><B>*</B>連絡先</SPAN></TD>
            <TD class="line1"><SPAN class="p14"><INPUT size="40" type="text" name="contact"></SPAN></TD>
            <TD class="line1"><SPAN class="p14">半角英数<BR>電子メールの場合 (ex. xxx\@xxx.xxx)</SPAN><BR>
              <SPAN class="p14">電話の場合 (ex. XXXX-XX-XXXX)<BR>FAXの場合 (ex. XXXX-XX-XXXX)</SPAN></TD>
          </TR>
          <TR>
            <TD class="line1"><SPAN class="p14"><B>*</B>問い合わせ内容</SPAN></TD>
            <TD class="line1"><TEXTAREA rows="10" cols="50" name="question">$mainTitle </TEXTAREA></TD>
            <TD class="line1" valign="top">テキストボックス内に、ご質問を全角200文字以内でお書きください</TD>
          </TR>
        </TBODY>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD colspan="3"> 
        <TABLE>
        <TBODY>
        <TR>
          <TD colspan="3">&nbsp;</TD>
        </TR>
        <TR>
         <TD align="right"><INPUT type="submit" value="確認"></TD>
         <TD>&nbsp;</TD>
         <TD align="left"><INPUT type="reset"></TD>
        </TR>
        </TBODY>
        </TABLE>
         <INPUT type="HIDDEN" name="cmd" value="check">
         <INPUT type="HIDDEN" name="title" value="$title">
        </FORM>
      </TD>
    </TR>
</TBODY>
</TABLE>
<BR>

<!--注意事項-->
<CENTER>
<TABLE>
<TBODY>
	<TR align="left">
		<TD class="12p">■　<B>* は必須項目です。</B></TD>
	</TR>
</TBODY>
</TABLE>
</CENTER>
<BR>
<HR>
EOM
	print $str;

}
#-------------form()終了-----------#

#///////////////////////////////////////#
#	書き込み確認			#
#///////////////////////////////////////#
# check()

sub check{

# ヘッダー
	&head();

# タイトル表示
	&pageBegin();

#フォームデータ取得

#タグの除去
	&escapeTag();

#改行処理
	$adress =~ s/&lt;BR&gt;/<BR>/g;
	$question =~ s/&lt;BR&gt;/<BR>/g;



#表示
print <<"EOF";
<BR>
<CENTER>
<H3>$mainTitle 確認画面</H3>
</CENTER>	

<TABLE border="1" bgcolor="#ccccff" align="center" cellpadding="5">
<TR bgcolor="#eeffff">
 <TD>
 <TABLE>
  <TR><TD width="200" align="right"><SPAN class="midori">御社名：</SPAN></TD><TD>$comName</TD></TR>
  <TR><TD align="right"><SPAN class="midori">御名前：</SPAN></td><td>$name</TD></TR>
  <TR><TD align="right"><SPAN class="midori">ふりがな：</SPAN></TD><TD>$nameFuri</TD></TR>
  <TR><TD align="right"><SPAN class="midori">業種：</SPAN></TD><TD>$equip</TD></TR>
  <TR><TD align="right"><SPAN class="midori">会社ホームページ：</SPAN></TD><TD>$comUrl</TD></TR>
  <TR><TD align="right"><SPAN class="midori">役職：</SPAN></TD><TD>$officialTitle</TD</TR>
  <TR><TD align="right"><SPAN class="midori">郵便番号：</SPAN></TD><TD>$zip</TD</TR>
  <TR><TD align="right"><SPAN class="midori">住所：</SPAN></TD><TD>$adress</TD</TR>
  <TR><TD align="right"><SPAN class="midori">連絡方法：</SPAN></TD><TD>$wayContact</TD</TR>
  <TR><TD align="right"><SPAN class="midori">連絡先：</SPAN></TD><TD>$contact</TD</TR>
  <TR><TD align="right"><SPAN class="midori">問い合わせ内容：</SPAN></TD><TD>$question</TD</TR>
 </TABLE>
 </TD>
</TR>
</TABLE>
<BR>
<CENTER><p>以上の内容でよろしいですか。<BR>
EOF

#メールのBODY作成
	$mailBody .= "\n";
	$mailBody .= "${name} 様から ${mainTitle} の依頼を受けました。\n\n";	
	$mailBody .= "御社名：${comName}\n";
	$mailBody .= "御名前：${name}\n";
	$mailBody .= "ふりがな：${nameFuri}\n";
	$mailBody .= "業種：${equip}\n";
	$mailBody .= "会社ホームページ：http://${comUrl}\n";
	$mailBody .= "役職：${officialTitle}\n";
	$mailBody .= "郵便番号：${zip}\n";
	$mailBody .= "住所：${adress}\n";
	$mailBody .= "連絡方法：${wayContact}\n";
	$mailBody .= "連絡先：${contact}\n";
	$mailBody .= "問い合わせ内容：${question}";

	$mailBody =~ s/<BR>//g;

	$adress =~ s/<BR>//g;
	$question =~ s/<BR>//g;
	my @ltime = localtime(time);

	my $sysDate = sprintf("%04d\/%02d\/%02d %02d:%02d:%02d",
			$ltime[5]+1900,$ltime[4]+1,$ltime[3],$ltime[2],$ltime[1],$ltime[0]);

print <<"EOF";
<form method="$formMethod" action="$cgiName">
<INPUT type="hidden" name="cmd" value="mailPost">
<INPUT type="hidden" name="title" value="$title">
<INPUT type="hidden" name="mailBody" value="$mailBody">
<INPUT type="hidden" name="comName" value="$comName">
<INPUT type="hidden" name="name" value="$name">
<INPUT type="hidden" name="nameFuri" value="$nameFuri">
<INPUT type="hidden" name="equip" value="$equip">
<INPUT type="hidden" name="comUrl" value="$comUrl">
<INPUT type="hidden" name="officialTitle" value="$officialTitle">
<INPUT type="hidden" name="zip" value="$zip">
<INPUT type="hidden" name="adress" value="$adress">
<INPUT type="hidden" name="wayContact" value="$wayContact">
<INPUT type="hidden" name="contact" value="$contact">
<INPUT type="hidden" name="question" value="$question">
<INPUT type="hidden" name="sysDate" value="$sysDate">
<INPUT type=submit value="送信">

</FORM>
</CENTER>
<BR>
<HR>
EOF

	&footer();

	exit;
}
#-------------check()終了----------#

#///////////////////////////////////////#
#	タグの除去			#
#///////////////////////////////////////#
# escapeTag()

sub escapeTag {
	$comName =~ s/</&lt;/g; $comName =~ s/>/&gt;/g; $comName =~ s/"/&#148;/g; $comName =~ s/'/&#146;/g;
	$name =~ s/</&lt;/g; $name =~ s/>/&gt;/g; $name =~ s/"/&#148;/g; $name =~ s/'/&#146;/g;
	$nameFuri =~ s/</&lt;/g; $nameFuri =~ s/>/&gt;/g; $nameFuri =~ s/"/&#148;/g; $nameFuri =~ s/'/&#146;/g;
	$equip =~ s/</&lt;/g; $equip =~ s/>/&gt;/g; $equip =~ s/"/&#148;/g; $equip =~ s/'/&#146;/g;
	$comUrl =~ s/</&lt;/g; $comUrl =~ s/>/&gt;/g; $comUrl =~ s/"/&#148;/g; $comUrl =~ s/'/&#146;/g;
	$officalTitle =~ s/</&lt;/g; $officalTitle  =~ s/>/&gt;/g; $officalTitle  =~ s/"/&#148;/g;
	$officalTitle  =~ s/'/&#146;/g;
	$zip =~ s/</&lt;/g; $zip =~ s/>/&gt;/g; $zip =~ s/"/&#148;/g; $zip =~ s/'/&#146;/g;
	$adress =~ s/</&lt;/g; $adress =~ s/>/&gt;/g; $adress =~ s/"/&#148;/g; $adress =~ s/'/&#146;/g;
	$wayContact =~ s/</&lt;/g; $wayContact =~ s/>/&gt;/g; $wayContact =~ s/"/&#148;/g;
	$wayContact =~ s/'/&#146;/g;
	$contact =~ s/</&lt;/g; $contact =~ s/>/&gt;/g; $contact =~ s/"/&#148;/g; $contact =~ s/'/&#146;/g;

	$question =~ s/</&lt;/g; $comm =~ s/>/&gt;/g; $question =~ s/"/&#148;/g; $question =~ s/'/&#146;/g;
	#改行処理
	$adress =~ s/\r\n/<BR>/g;
	$adress  =~ s/\n/<BR>/g;
	$adress  =~ s/\r/<BR>/g;

	$question =~ s/\r\n/<BR>/g;
	$question  =~ s/\n/<BR>/g;
	$question  =~ s/\r/<BR>/g;

	return 1;
}
#-------------escapeTag()終了-----------#

#///////////////////////////////////////#
#	フッター				#
#///////////////////////////////////////#
# footer()
sub footer {

print << "END_OF_BODY";
<BR>
<TABLE>
    <TR>
      <TD class="cright"><CENTER>copyright 2004 AMADA JMC</CENTER></TD>
      <TD>&nbsp;</TD>
    </TR>
  </TBODY>
</TABLE>
</TD></TR></TABLE>
<BR>
</BODY>
</HTML>
END_OF_BODY

exit;
}
#-------------footer()終了--------------#

#///////////////////////////////////////#
#	ファイルのロック			#
#///////////////////////////////////////#
# lock()

sub lock {
	return;
	my $lockTime = time;
	#ロックがかかっている場合
	if(-e $lockFile) {
		#ロックファイルがオープンできなければエラー
		open(LOCK,"<$lockFile") || &error("ロックファイルオープンできませんでした：${lockFile}");
		my $tmpLocktime = <LOCK>;
		close(LOCK);
		#以前のロック時間が現在より180秒前だったらロック強制解除
		if(($lockTime - $tmpLocktime) > 180) {
			unlink($lockFile); 
		} else {
			my $i = 0;
			while($i < $retry) {
				sleep(5);
				unless(-e $lockFile) { last; }
				$i++
			}
			if($i == $retry) { &error("ロック解除できませんでした。トライ：${retry}回"); }
		}		
	}
	open(FP,">$lockFile") || &error("ファイルオープンできませんでした：${lockFile}");
	print FP $lockTime;
	close(FP);

	return;
}
#-------------lock()終了----------------#

#///////////////////////////////////////#
#	アンロック			#
#///////////////////////////////////////#
# unlock()

sub unlock {
	if(-e $lockFile) { unlink($lockFile); }

	return;
}
#------------unlock()終了----------------#

#///////////////////////////////////////#
#	エラー表示			#
#///////////////////////////////////////#
# errot($arg)

sub error{
	my($msg) = @_;		# エラーメッセージ取得
	&head();

	&pageBegin();

	print "<P><b><font size=\"3\" color=\"red\">$msg</font></b></p>";
	print "<P><b><font size=\"3\" color=\"red\">ブラウザの[戻る]をクリックし、戻って下さい。</font></b></p>";
	print "<br>";
	print "<hr>";
	print "<br>";
	&footer();
	exit;
}
#-------------error()終了---------------#

#///////////////////////////////////////#
#	2重投稿チェック			#
#	名前、IPアドレス、		#
#	投稿内容が同じならはじく		#
#///////////////////////////////////////#
#checkDoublePost()

sub checkDoublePost {

 	my ($l_date, $l_host, $l_name, $l_ques) = @_;
	my $rtn = 1;


	my @logFiles2 = &getLogFiles();
	if($#logFiles2 < 0) { return $rtn; }

	#ロック
	&lock();
	if(open(FILE, "<${msgDir}$logFiles2[$#logFiles2]")) {
		#flock(FILE,2);
		my @logs = ();
#二重投稿のチェック
		while(my $line = <FILE>) {
			chop($line);
			if($line =~ /^\s*$/) { next; }
			push(@logs,$line);
		}
		if($#logs > 0) {
			my @tmp = split(/\t/, $logs[$#logs]); 
			if(($l_date eq $tmp[1]) && ($l_host eq $tmp[2]) && ($l_name eq $tmp[4]) && ($l_ques eq $tmp[12])) {
				$rtn = 0;
			}
		}
		#flock(FILE, 8);
		close(FILE);
	}
	#ロック解除
	&unlock();

	return $rtn;
}
#----------checkDoublePost()終了--------#

# //////////////////////////////////////#
#	ファイル取得			#
#///////////////////////////////////////#
sub getLogFiles {
	my @tmpfiles = ();
	while (my $tmp = <${msgDir}*>) {
		$tmp =~ s/^${msgDir}//;
		push(@tmpfiles, $tmp); 
	}
	my %fileTime = ();

	#ロック
	&lock();
	foreach my $file (@tmpfiles) {
		if (open(FP1, "<${msgDir}${file}")) {
			#flock(FP1,2);
			my @logs = ();
			while(my $line = <FP1>) {
				my @tmp = split(/\t/, $line);
				if($tmp[1] !~ /^\d/){ next; }
				push(@logs, $tmp[1]);
			}
			$fileTime{$file} = pop(@logs);
			#flock(FP1,8);
			close(FP1);
		}
	}

	#ロック解除
	&unlock();
	my @sort_file = sort {
		($fileTime{$a} cmp $fileTime{$b}) || ($a <=> $b);
	} keys (%fileTime);

	return @sort_file;
}
#-----------getLogFiele()終了-----------#

#///////////////////////////////////////#
#	メール送信			#
#///////////////////////////////////////#
# mailPost()

sub mailPost {

	my $mailSubject = "";
	my $no = "";
	my @ltime = localtime(time);

	my $addr = $ENV{'REMOTE_ADDR'};
	my $fileName = sprintf("%04d%02d", $ltime[5]+1900,$ltime[4]+1).".dat";
	my $inputStr = "${sysDate}\t${addr}\t${comName}\t${name}\t${nameFuri}\t${equip}\t${officialTitle}";
	$inputStr   .= "\t${zip}\t${adress}\t${wayContact}\t${contact}\t${question}";

	if(&checkDoublePost($sysDate, $addr, $name, $question)) {
		my @logfiles = &getLogFiles();
		push(@logfiles, $fileName);
		my @newTmpLogs = reverse(@logfiles);

		my $count = 0;
		for(my $i = 0; $i < @newTmpLogs; $i++) {		#古いログの削除
			$count++;
			if($count > $logNum) { unlink("${msgDir}${newTmpLogs[$i]}");}
		}

		#ロック
		&lock();
		#$no = &countUp();
		$no = sprintf("%05d", &countUp());					#カウンター更新	
		$mailSubject = "${no}_${mainTitle}";
		$inputStr = "${no}\t${inputStr}";
# SJISファイルへコンバート
	&jcode'convert(*inputStr, 'sjis');

		if(open(FP,">>${msgDir}${fileName}")) {			#ファイル追記モードでオープン
			print FP "${inputStr}\n";
			close(FP);
		} else {
			#&error("ファイルオープンできませんでした：${msgDir}/${fileName}");
		}

		#ロック解除
		&unlock();
	} else {
		&error("既に送信されています。");
	}


#件名作成
	my $subject = jcode'jis($mailSubject);
	my $encSubject = &mimeencode($subject);

#JISへ変換
	my $body = jcode'jis($mailBody);

#書き込み

	if(open( SENDMAIL, "| $mailPath")) {
		print SENDMAIL <<"EOM";
From: $adminMail
To: $to
Bcc: $bcc
Subject: $encSubject
Errors-To: $adminMail
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=iso-2022-jp

$mailBody
EOM

		close(SENDMAIL);

	} else {
#何もしない
		&error("MAIL送信できませんでした。");
	}

	&head();

	&pageBegin();

	$str = <<"EOM";

<P><B>
<H3>ＪＭＣ事務局へ「${mainTitle}」のメール送信を完了しました。<BR>
受付番号：$no です。</H3>
</P>
<P>
お問い合わせは、受付番号を確認後、連絡お願いします。
</P>
<BR>
<HR>
EOM

	print $str;

	&footer();

	exit;

	
}
#------------mailPost()終了----------------#

#///////////////////////////////////////#
#	カウントアップ			#
#///////////////////////////////////////#
# $count = countUp() 

sub countUp {
	my $count;
	open(FP, "+<$counterFile") || &error("${counterFile}カウンター用ファイルオープンできませんでした");
	$count = <FP>;
	$count++;
	seek(FP, 0, 0);
	print FP $count;
	truncate(FP, tell($count));
	close(FP);

	return ($count);
}
#-------------getCookie()終了-----------#


exit;
1;
