#!/usr/bin/perl

#chdir("/sftpgrp/cntst/contest/");
require "./common/perl/common.pl";

use CGI;

use Encode;
use POSIX qw();
use Mail::Sendmail;

use strict qw(vars);

use lib "./perl-modules/";


if(!$ENV{HTTPS}){
	my $url = $ENV{SCRIPT_URI};
	$url =~ s@http@https@gi;
	print "Location:$url\n\n";
	exit;
}

my $q = new CGI();
my $file = $q->param('file');
my %pm = new CGI()->Vars;

my $TITLE = qq{お問い合わせ};

print "Content-type:text/html;charset=utf-8\n\n";


if($pm{mode} =~ /submit|check/){

	my @error = &valiation();

	if(@error){
		&error_page(@error);
	} elsif($pm{mode} eq "check"){
		&check_page();
	} elsif($pm{mode} eq "submit"){

		my $y = POSIX::strftime("%Y",localtime);

#		my $num = sprintf "%04d",counter("./dat/count_${y}.txt");
		&_sendmail_admin();
		&_sendmail_user();
		&done_redirect();
	}
} elsif($pm{mode} eq "done"){
	&done_page();
} else {
	main();
}

sub _sendmail_user{

#	my $num = shift;
	my $date = POSIX::strftime("%Y/%m/%d %H:%M:%S",localtime);
	my $host = gethostbyaddr(pack("C4",split(/\./,$ENV{REMOTE_ADDR})),2) || $ENV{REMOTE_ADDR};

	my $body = <<"BODY";
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
　　　　　　　　◆ お問合せ完了自動返信メール ◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

この度は、第10回全国学生英語プレゼンテーションコンテストへのお問合せ
ありがとうございました。以下の内容で受付ました。

ご入力いただきましたEメールアドレスに、改めて事務局よりご連絡させ
ていただきます。ご返信には多少お時間を頂戴する場合もございます。
また内容によっては回答出来かねる場合もございますので、予めご了承
くださいませ。


■お問合せ・ご質問内容：
$pm{message}

■お名前：
$pm{jname1} $pm{jname2}
■メール：
$pm{mail}
■電話：
$pm{tel}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 第10回全国学生英語プレゼンテーションコンテスト
 HP  http://www.kandagaigo.ac.jp/contest/
 Facebook https://www.facebook.com/English.Presentation.Contest
 Instagram https://www.instagram.com/english_precon/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 お問い合わせ先：
 全国学生英語プレゼンテーションコンテスト事務局
 〒101-8525東京都千代田区内神田2-13-13
 神田外語グループ内
 メール：contest\@kandagaigo.ac.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 本コンテストにご応募されていないにも関わらず、このメールを受信された
 場合は、他の方が間違ってメールアドレスを登録された可能性がありますの
 で、このメールを破棄していただくようお願いいたします。
BODY

	my $message = parseBody($body);
#	my $subject = qq{【お問合せ受付けました】 T${num}};
	my $subject = qq{【お問合せ受付けました】};
	my $from = encode("MIME-Header-ISO_2022_JP", '英語プレゼンテーションコンテスト事務局');

	my %mail = (
		"Content-Type" => 'text/plain; charset="utf-8"',
		From           => ($from . ' <contest@kandagaigo.ac.jp>'),
		To             => $pm{mail},
		Subject        => encode("MIME-Header-ISO_2022_JP", $subject),
		"Content-Transfer-Encoding" => "7bit",
		Encoding       => '7bit',
		Message        => $message,
	);

	sendmail(%mail);

}


sub _sendmail_admin{

#	my $num = shift;
	my $date = POSIX::strftime("%Y/%m/%d %H:%M:%S",localtime);
	my $host = gethostbyaddr(pack("C4",split(/\./,$ENV{REMOTE_ADDR})),2) || $ENV{REMOTE_ADDR};

	my $body = <<"BODY";
$date
---------------------------------------------
* Message:
$pm{message}
---------------------------------------------
* Contact Information
Name : $pm{jname1} $pm{jname2}
Tel  : $pm{tel}
Mail : $pm{mail}

---------------------------------------------
$host($ENV{REMOTE_ADDR})
$ENV{HTTP_USER_AGENT}
BODY

	my $message = parseBody($body);
#	my $subject = qq{[precon/お問い合わせ] T${num}};
	my $subject = qq{[precon/お問い合わせ]};

	my %mail = (
		"Content-Type" => 'text/plain; charset="utf-8"',
		From           => $pm{mail},
		To             => 'contest@kandagaigo.ac.jp',
#		Bcc            => 'yano@satoru.net',
		Subject        => encode("MIME-Header-ISO_2022_JP", $subject),
		"Content-Transfer-Encoding" => "7bit",
		Encoding       => '7bit',
		Message        => $message,
	);

	sendmail(%mail);

}


sub valiation{

	my @error;

#	push @error,qq{名前が空白です。};

	return @error;
}


sub error_page{

print <<"EOM";
@{[&header()]}
<div id="contents">
<div class="intro">
<p>応募内容の記載に間違い、記入漏れがあります。<br />以下「戻る」ボタンより$TITLEに戻り、記入内容をご確認ください。</p>
</div>
<form action="$ENV{SCRIPT_URI}" method="post">
@{[
map { qq{<input id=$_ type=hidden name=$_ value="$pm{$_}">} } grep {!/mode/} keys %pm
]}
<div class="appform">
<div class="submit">
<input type="image" src="files/img/common/btn_return_off.gif" onmouseover="this.src='files/img/common/btn_return_on.gif'" onmouseout="this.src='files/img/common/btn_return_off.gif'" alt="戻る" name="submit"/>
</div>
</div>
</div><!-- contents -->
@{[footer()]}
EOM

}

sub done_redirect{

print <<"EOM";
<html>
<meta http-equiv="refresh" content="0;URL=?mode=done"> 
</html>
EOM
}

sub done_page{

print <<"EOM";
@{[&header()]}

<div id="contents" class="l-inner">

<div class="page-lead">
  <p>お問い合わせありがとうございました。<br>近日中に事務局よりご連絡致しますので、今しばらくおまちください。</p>
</div>

</div><!-- //#contents -->


@{[footer()]}

EOM

}

sub check_page{

my $md5 = shift;

print <<"EOM";
@{[&header(qq{以下の内容でお問い合わせを受け付けます。<br>
「送信する」のボタンをクリックする前に、送信内容をご確認ください。})]}

  <form action="?" method="post" name="preconForm" id="preconForm">
<input type=hidden name=mode value="submit">
@{[map { qq{<input id=$_ type=hidden name=$_ value="$pm{$_}">} } grep {!/mode/} keys %pm]}

    <div class="appform">
      <table border="0" cellspacing="0" cellpadding="0">

        <!-- 160425 C4 -->
        <!-- th の中の span.eng を削除 -->
        <tr>
          <th valign="top" class="first">お名前</th>
          <td>$pm{jname1} $pm{jname2}</td>
        </tr>
        <tr>
          <th valign="top">メールアドレス</th>
          <td>$pm{mail}</td>
        </tr>
        <tr>
          <th valign="top">電話番号</th>
          <td>$pm{tel}</td>
        </tr>
        <tr>
          <th valign="top" class="last">お問い合わせ・<br />ご質問内容</th>
          <td>@{[parseHTML($pm{message})]}</td>
        </tr>
        <!-- //160425 C4 -->

      </table>

      <!-- 160425 C4 -->
      <ul class="actionList cf">
        <li class="backLink"><a href="javascript:void(0);" class="back-button"><span class="button-label">戻る</span></a></li>
        <li class="main">
          <button type="submit" name="submit" value="送信する" class="form-button submit-button"><span class="button-label"><span class="en">SUBMIT</span><span class="ja">送信する</span></span></button>
        </li>
      </ul>
      <!-- //160425 C4 -->

    </div>
  </form>



<script>
var is_done = 0;
@{[
<<'SCRIPT'
$(function(){
	$(".back-button").click(function(e){
		e.preventDefault();
		$("[name=mode]").val("edit");
		$("[name=submit]").trigger("click");
	})


});
SCRIPT
]}
</script>

@{[footer()]}
EOM


}




sub header{
	my $header = join "",cat("./common/template/header.tmpl");
	my $tracking = join "",cat("./common/template/tracking.tmpl");

#$tracking

	my $content = <<"EOM";
$header
<body id="contact" class="page-form">
<div id="page">
@{[cat("./common/template/header_navi.tmpl")]}
<div id="contents" class="l-inner">
  <header id="subpage-header">
    <h1 class="page-title">
      <span class="en">CONTACT</span><span class="ja">お問い合わせ</span>
    </h1>
  </header><!-- //#subpage-header -->
EOM

  $content =~ s@\$TITLE@お問い合わせ@gi;
	return $content;

}

 sub main {

print <<"EOM";
@{[&header()]}
<script language="javascript" type="text/javascript" src="./common/js/jquery.validate.v3.js"></script>
<script language="javascript" type="text/javascript" src="./common/js/messages_ja.js"></script>
<script language="javascript" type="text/javascript" src="lib/main.js"></script>
@{[main_form()]}
@{[footer()]}
EOM

}

sub main_form{

return <<"EOM";
  <form method="POST" action="?" name="form0">

    <div class="appform" id="contactForm">
      <table border="0" cellspacing="10" cellpadding="0">

        <!-- 160425 C4 -->
        <!-- 各tr にクラスを追加-->
        <!-- 各th の中の span.eng を削除 -->
        <!-- 各th の中の span.required の位置を変更 -->

        <!-- Bumon -->

        <!-- Name/Japanese -->
        <tr class="name">
          <th valign="top" class="first">お名前<span class="required">必須</span></th>
          <td>

            <!-- tableに.profileを追加、trに.jnameを追加 -->
            <table border="0" cellspacing="0" cellpadding="0" class="profile">
              <tr class="jname">
                <th>姓 / Last Name</th>
                <td><input name="jname1" value="$pm{jname1}" placeholder="山田" class="text w200" /><label for="jname1" generated="true" class="error" style="display:none;">必須</label>
                </td>
                <th>名 / First Name</th>
                <td><input name="jname2" value="$pm{jname2}"  placeholder="太郎" class="text w200" />
                </td>
              </tr>
            </table>

          </td>
        </tr>



        <!-- Contact -->
        <tr class="contact">
          <th valign="top">メールアドレス<span class="required">必須</span></th>
          <td>
            <input type="email" name="mail" value="$pm{mail}" size="30" class="text w300" />
          </td>
        </tr>


        <tr class="contact">
          <th valign="top">電話番号</th>
          <td>
            <input type=tel id="tel" name="tel" value="$pm{tel}" class="text w300" />
          </td>
        </tr>


        <!-- Message -->
        <tr class="message">
          <th valign="top" class="last">お問い合わせ・<br />ご質問内容<span class="required">必須</span></th>
          <td>
            <textarea id="message" rows="10" name="message">$pm{message}</textarea><br>
          </td>
        </tr>

        <!-- //160425 C4 -->

      </table>

      <!-- 160425 C4 -->
      <ul class="actionList cf">
        <li class="main">
          <button type="submit" name="submit" value="確認する" class="form-button confirm-button"><span class="button-label"><span class="en">CONFIRM</span><span class="ja">確認する</span></span></button>
        </li>
      </ul>
      <!-- //160425 C4 -->
  </div>
 <input type="hidden" name="mode" value="check">
</form>
EOM

}



sub footer{

return <<"EOM";
	</div><!-- //#contents -->
<div id="pagetop-nav"><a href="#page">PAGE TOP</a></div>

@{[cat("./common/footer_credit.html")]}

@{[cat("./common/template/footer.tmpl")]}
EOM


}




=test

DROP DATABASE kanda2012_precon;
CREATE DATABASE kanda2012_precon charset "utf8";
use kanda2012_precon;

DROP TABLE OUBO_DATA;

CREATE TABLE OUBO_DATA(

	num int AUTO_INCREMENT,

	group_type varchar(255),
	name varchar(255),
	sex varchar(32),
	school varchar(30),
	pref varchar(30),
	address TEXT,
	tel varchar(255),
	mail varchar(255),
	group_info TEXT,
	group_leader_name varchar(100),
	theme varchar(32),
	message TEXT,

	file varchar(255),

	filename varchar(255),
	filetype varchar(255),
	filesize varchar(32),
	filekaku varchar(32),
	filehash varchar(128),

	fileinfo TEXT,

	youtube_upload_status varchar(32),
	youtube_url varchar(128),
	youtube_vid varchar(32),
	youtube_upload_updated DATETIME,
	youtube_done BOOLEAN default false,

	youtube_status varchar(32),
	youtube_status_check_url varchar(255),
	youtube_response TEXT,

	dump TEXT,

	is_deleted BOOLEAN default false,
	is_hyoka BOOLEAN default false,

	md5 varchar(64),

	created DATETIME,
	date DATE,
	created_time int(11),

	ip varchar(16),
	host varchar(100),
	ua TEXT,


	PRIMARY KEY(num)

) charset "utf8";


ALTER TABLE OUBO_DATA ADD youtube_done BOOLEAN default false;
ALTER TABLE OUBO_DATA ADD youtube_vid varchar(32);

ALTER TABLE OUBO_DATA ADD youtube_status varchar(32);
ALTER TABLE OUBO_DATA ADD youtube_status_check_url varchar(255);
ALTER TABLE OUBO_DATA ADD youtube_response TEXT;


=cut
