#!/usr/bin/perl

require 'jcode.pl';
require 'setup.inc';

#---------------------------------------------------------------------------------------------------
# 送信データ取得
#---------------------------------------------------------------------------------------------------
	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;
		$value =~ s/</&lt;/g;
		$value =~ s/>/&gt;/g;
		$value =~ s/\t//g;
		$name =~ tr/+/ /;
		$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

		$form{$name} = $value;
		# メールアドレス取得
		#if($value =~ /@[a-z]/ && $value =~ /\./){$MAIL = $value;}
		if($name eq "E-mail") {
			$MAIL = $value;
		}
		$DATA = "$name\t$value\n";
		push(@NEW,$DATA);
	}

#---------------------------------------------------------------------------------------------------
# 必須チェック
#---------------------------------------------------------------------------------------------------
	if(!open(IN,"$g_ErrFile")){ $mes = "ファイルOPENエラーです。FileName=[ $g_ErrFile ]";}
	if($mes ne ""){&error;}
		@err = <IN>;
	close(IN);
	$MES = "";
	$MES .= "<table width=100% border=0 cellpadding=0 cellspacing=1 class=tbInfo>";
	foreach $CK (@NEW){
		chomp $CK;
		($NAME, $VALUE) = split(/\t/,$CK);

		foreach $ERR (@err){
			$ERR =~ s/\r//g;
			$ERR =~ s/\n//g;
			if($ERR ne ""){
				if($ERR eq $NAME && $VALUE eq ""){
					$MES .= "<tr><td><span class=fcR>[<B> $ERR </B>]　の項目が未入力です。</span></td></tr>\n";
					$mes = $MES;
				}
			}
		}
	}
	# メールアドレスチェック
	unless($MAIL=~/^[\w\-+\.]+\@[\w\-+\.]+$/i) {
		$MES .= "<tr><td><span class=fcR>[<B> E-mail </B>]　の項目が間違っています。正しいメールアドレスを入力してください。</span></td></tr>\n";
		$mes = $MES;
	}
	if($mes ne ""){
		$mes .="<tr><td class=cell_submit><input type=\"button\" value=\"　戻　る　\" onclick=\"JavaScript:history.back();\"></td></tr>";
		$mes .="</table>";
		&error;
	}

	if($form{'check'} eq "" && $g_Kakunin == 1) {
#---------------------------------------------------------------------------------------------------
# 確認画面
#---------------------------------------------------------------------------------------------------
		print "Content-type:text/html\n\n";
		foreach $CK (@NEW){
			chomp $CK;
			($NAME,$VALUE) = split(/\t/,$CK);
			if($NAME eq "submit") {
				next;
			}
			$strhtml .= "<tr><th>" .$NAME. "</th><td><span color=" .$g_DataTextColor. ">"  .$VALUE. "</span></td></tr>";
			$strvalue .= '<input type="hidden" name="' .$NAME. '" value="' .$VALUE. '">';
		}
		if(!open(IN,"$g_ConfirmHtmlFile")){ $mes = "ファイルOPENエラーです。FileName=[ $g_ConfirmHtmlFile ]";}
			if($mes ne ""){&error;}
			@cnfile = <IN>;
		close(IN);
		foreach $FILELINE (@cnfile){
			if($FILELINE =~ /^(.*)<!--%(\w+)%-->(.*)$/) {
				$FILELINE = "";
				$FILELINE .= "<table width=100% border=0 cellpadding=0 cellspacing=1 class=tbInfo>";
				$FILELINE .= $strhtml;
				$FILELINE .= "<tr><td colspan=2 class=cell_submit><input type=\"button\" value=\"　戻　る　\" onclick=\"JavaScript:history.back();\">　<input type=\"button\" value=\"　送　信　\" onclick=\"document.frm.submit();\"></td></tr>";
				$FILELINE .= "</table>";
				$FILELINE .= "<form action=mail.cgi method=post name=frm>" .$strvalue. "<input type=hidden name=check value=1></form>";
			}
			print $FILELINE;
		}
	}
	else {
#---------------------------------------------------------------------------------------------------
# メール送信
#---------------------------------------------------------------------------------------------------
		foreach $lines (@NEW){
			($A,$B) = split(/\t/,$lines);
			if($A eq "check" || $A eq "submit") {
				next;
			}
			$ML_LINE = "$A ： $B\n";
			&jcode'convert(*ML_LINE,'sjis');
			$ML_DATA .= $ML_LINE;
		}
		if(!open(IN,"$g_ToMailFile")){$mes = 'メール用ファイルOPENエラーです。file=[ $g_ToMailFile ]';}
		if($mes ne ""){&error;}
			@m_file = <IN>;
		close(IN);
		foreach $M_FILE (@m_file){
			$M_FILE =~ s/<!--%CGI%-->/$ML_DATA/g;
			$MAILDATA .= $M_FILE;
		}
		if(!open(IN,"$g_FroMmailFile")){$mes = 'メール用ファイルOPENエラーです。file=[ $g_FroMmailFile ]';}
		if($mes ne ""){&error;}
			@m_file = <IN>;
		close(IN);
		foreach $M_FILE (@m_file){
			$M_FILE =~ s/<!--%CGI%-->/$ML_DATA/g;
			$FMAILDATA .= $M_FILE;
		}

		&jcode'convert(*g_SubjectK,'jis');
		&jcode'convert(*g_Subject,'jis');
		&jcode'convert(*MAILDATA,'jis');
		&jcode'convert(*FMAILDATA,'jis');
		if (open(OUT,"| $g_MailCmd -t")) {
			print OUT "To: $g_MailTo\n";
			print OUT "From: $MAIL\n";
			print OUT "Subject: $g_Subject\n";
			print OUT "\n\n";
			print OUT "$FMAILDATA\n";
			close(OUT);
		}
		if($MAIL ne "") {
			if (open(OUT,"| $g_MailCmd -t")) {
				print OUT "To: $MAIL\n";
				print OUT "From: $g_MailFrom\n";
				print OUT "Subject: $g_SubjectK\n";
				print OUT "\n\n";
				print OUT "$MAILDATA\n";
				close(OUT);
			}
		}
#---------------------------------------------------------------------------------------------------
# データベース
#---------------------------------------------------------------------------------------------------
		foreach $DATAS (@NEW){
			($dmy01,$dmy02) = split(/\t/,$DATAS);
			chomp $dmy02;
			if($dmy01 eq "check") {
				next;
			}
			$dmy02 =~ s/\r\n//g;
			push(@DATABASE,$dmy02);
		}

		$NEWDATA = join(',',@DATABASE);

		if(!open(OUT,">>$g_DataFile")){$mes = 'ファイル書きこみエラーです。FileName=[ $g_DataFile ]';}
		if($mes ne ""){&error;}
			print OUT "$NEWDATA\n";
		close(OUT);
#---------------------------------------------------------------------------------------------------
# 送信後
#---------------------------------------------------------------------------------------------------
		if($g_End == 1) {
			print "Content-type:text/html\n\n";
			foreach $CK (@NEW){
				chomp $CK;
				($NAME,$VALUE) = split(/\t/,$CK);
				if($NAME eq "check" || $NAME eq "submit") {
					next;
				}
				$strhtml .= "<tr><th>" .$NAME. "</th><td><span color=" .$g_DataTextColor. ">"  .$VALUE. "</span>&nbsp;</td></tr>";
			}
			if(!open(IN,"$g_EndHtmlFile")){ $mes = "ファイルOPENエラーです。FileName=[ $g_EndHtmlFile ]";}
				if($mes ne ""){&error;}
				@enfile = <IN>;
			close(IN);
			foreach $FILELINE (@enfile){
				if($FILELINE =~ /^(.*)<!--%(\w+)%-->(.*)$/) {
					$FILELINE = "";
					$FILELINE .= "<table width=100% border=0 cellpadding=0 cellspacing=1 class=tbInfo>";
					$FILELINE .= $strhtml;
					$FILELINE .= "<tr><td colspan=2 class=cell_submit><input type=\"button\" value=\"　戻　る　\" onclick=\"JavaScript:location.href='$g_ReturnUrl';\"></td></tr>";
					$FILELINE .= "</table>";
				}
				print $FILELINE;
			}
		}
		else {
			print "Location: $g_EndUrl\n\n";
		}
	}
	exit;
#---------------------------------------------------------------------------------------------------
# エラー関数
#---------------------------------------------------------------------------------------------------
sub error{
	print "Content-type:text/html\n\n";
	if(!open(IN,"$g_ErrorHtmlFile")){ print "ファイルOPENエラーです。FileName=[ $g_ErrorHtmlFile ]\n";}
		@erfile = <IN>;
	close(IN);

	foreach $ERFILES (@erfile){
		$ERFILES =~ s/<!--%CGI%-->/$mes/g;
		print $ERFILES;
	}
	exit;
}
