<?php
	// # ************************************************ # //
	// #  〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜    # //
	// #  Copyright (c) 2005-2007 All rights reserved     # //
	// #  eSynapse co.,ltd. <support@esynapse.co.jp>      # //
	// #  Head Office:                                    # //
	// #  1-8-18 Minami-horie, Nishi-ku, Osaka,           # //
	// #  550-0015, JAPAN                                 # //
	// #  Tokyo Office:                                   # //
	// #  10-3F, Ichiban-chou, Chiyoda-ku, Tokyo,         # //
	// #  102-0082, JAPAN                                 # //
	// #  〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜    # //
	// # ************************************************ # //

	mb_internal_encoding('EUC-JP');
	mb_language('ja');

	//define('SYS_DIR','/home/tostem/config/libs/');
	define('SYS_DIR',dirname(__FILE__).'/../../config/libs/');

	require_once(SYS_DIR.'blogconfig.php');
	require_once(SYS_DIR.'util.php');
	require_once(SYS_DIR.'cartconfig.php');
	require_once(SYS_DIR.'errorcheck.php');
	require_once('../blog-utl.php');
	// cmsの場合は利用不可
	if ( $config_lims_mode == 'cms' ) exit();

	// ---------------
	// session起動
	// ---------------
	require_once(SYS_DIR.'session.php');

	//pg_session_gc(); // 保持セッションの掃除(2時間に設定している)

	// カートサーバーから来たセッションIDを保存しておく。
	if ( $_GET['cartsid'] ) {
		$_SESSION['fromcart']['cartsid'] = $_GET['cartsid'];
		$_SESSION['fromcart']['blogid'] = $_GET['post_blogdir'];
	}

	// ユーザーIDの取得は、セッションから取得出来た場合は、
	// そのセッションが非公開でも表示可能

	//methodから取得
	$post_cmd = trim($_GET['post_cmd']) ? trim($_GET['post_cmd']) : trim($_POST['post_cmd']);
	$post_blogdir = intval($_GET['post_blogdir']) ? intval($_GET['post_blogdir']) : intval($_POST['post_blogdir']) ;
	$post_eid = intval($_GET['post_eid']) ? intval($_GET['post_eid']) : intval($_POST['post_eid']) ;
	$post_calendardate = trim($_GET['post_calendardate']);
	$post_partyid = intval($_GET['post_partyid']);
	$page = intval($_GET['page']) ? intval($_GET['page']) : intval($_POST['page']);
	$com_cmd = $_GET['com_cmd'] ? $_GET['com_cmd'] : $_POST['com_cmd'];

	if ( !$page ) $page = 1;


	//-------------------------
	// デバイス判定
	//-------------------------
	// 2016.9.16 Responsive版残分対応
	//require_once(SYS_DIR.'devicecheck.php');
	$isPC = false;
	$respCHECK = true;	// Responsive版対応フラグ(強制設定)


	// -------------------------------------------------------------------------- //
	//                               共通ルーチン                                 //
	// -------------------------------------------------------------------------- //

	// --------------------------------------------------------------------
	// ブログの公開・非公開設定を確認する。(非公開の場合はポータルへ戻る)
	// --------------------------------------------------------------------
	if ( $post_blogdir ) {
		$q = pg_query($db,"select is_open,status,is_limit from usr where id = $post_blogdir;");
		$row = pg_fetch_array($q);

		// -----------------------------------------------------
		// statusが2(ページ閲覧禁止)以上の場合はポータルへ戻る
		// -----------------------------------------------------
		if ( $row['status'] >= 2 ) {
			redirectPortalTop();
		}

		// 拒否条件
		// ブログが非公開 and セッションが無い時 and $post_blogdirとセッションIDが異なる時。
		if ( !(( $post_blogdir == $_SESSION['uid'] ) || $row['is_open']) ) {
			redirectPortalTop();
		}
	}

	// -------------------
	// usr_settingを取得
	// ------------------
	$q_uset = pg_query($db,"select * from usr_setting where usr_id = $post_blogdir");
	$uset = pg_fetch_array($q_uset);

	// 無い場合はリダイレクト
	if ( !pg_num_rows($q_uset) ) {
		redirectPortalTop();
	}

	// ---------------
	// smarty設定
	// ---------------
	define('SMARTY_DIR',$config_smarty_libs."/");
	require(SMARTY_DIR.'Smarty.class.php');

	$s = new Smarty;
	$s->template_dir = $config_smarty_templates."/$uset[skin_type]/";
	$s->compile_dir = $config_smarty_templates_c."/$uset[skin_type]/";
	$s->config_dir = $config_smarty_config_dir."/$uset[skin_type]/";
	$s->cache_dir = $config_smarty_cache_dir."/$uset[skin_type]/";


	//$s->debugging = TRUE;

	// SHOP名の表示
	$s->assign("config_shop_name",$config_shop_name);
	$s->assign("config_sys_surl",$config_sys_surl);
	$s->assign("cconfig_cart_url",$cconfig_cart_url); // cart URL
	$s->assign("config_sys_url",$config_sys_url); // sys URL
	$s->assign("config_lims_mode",$config_lims_mode); // limsのモード
	$s->assign("config_use_bmail",$config_use_bmail); // bmail機能
	$s->assign("config_sys_url2",$config_sys_url); // sys URL

	// ********************************************************************************
	// ブログアクセス制限関係ここから
	// ********************************************************************************

	if ( $row['is_limit'] ) {
		// セッションidは"bid"
		// 保持セッションの掃除(2時間に設定している。)
		// require_once(SYS_DIR.'blog_session.php');
		// pg_session_gc2();


		// -------------------------------------------------------------------------------
		// is_limitが1で$_SESSION[is_blog_login] == 1でない場合はパスワード入力画面表示
		// -------------------------------------------------------------------------------
		if ( $_POST['cmd'] == 'bloglogincheck' ) {
			$login_id = trim($_POST['login_id']);
			$passwd = trim($_POST['passwd']);

			require_once(SYS_DIR.'errorcheck.php');

			// エラーチェックを行う
			$error = checkBlogAnonLogin();
			if ( $error['have_error'] ) {

				$bs = new Smarty;
				$bs->template_dir = $config_smarty_templates."/portal/";
				$bs->compile_dir = $config_smarty_templates_c."/portal/";

				$bs->assign("config_sys_surl",$config_sys_surl);
				$bs->assign("blogid",$post_blogdir);
				$bs->assign("error",$error);
				$bs->display("bloglogin.html");
				exit();
			}

			// ログイン成功した場合はページにジャンプ
			$_SESSION['is_blog_login'] = 1;
			$_SESSION['blog_login_blogid'] = $post_blogdir;
			print "<META HTTP-EQUIV=refresh content=0;URL=$config_sys_url/$post_blogdir/>";
			exit();
		}

		// -------------------------------------------------------------------------------
		// is_limitが1で ( $_SESSION[is_blog_login] == 1 ||
		// $_SESSION[blog_login_blogid] ) でない時はパスワード入力画面表示
		// or
		// blog_login_blogidが違う時もパスワード画面出力。
		// $post_blogdir != $_SESSION[blog_login_blogid]の時
		// -------------------------------------------------------------------------------
		// 基本的に1ページ1ログインIDしか登録させない。
		// アクセス制限がかかっている場合はチェック。
		if (  $row['is_limit'] ) {
			if ( ( !$_SESSION['is_blog_login'] || !$_SESSION['blog_login_blogid'] ) || ( $post_blogdir != $_SESSION['blog_login_blogid'] ) ) {

				$bs = new Smarty;
				$bs->template_dir = $config_smarty_templates."/portal/";
				$bs->compile_dir = $config_smarty_templates_c."/portal/";

				// -----------------
				// login画面の表示
				// -----------------
				$bs->assign("config_sys_surl",$config_sys_surl);
				$bs->assign("blogid",$post_blogdir);
				$bs->display("bloglogin.html");
				return;
			}
		}
	}
	// **********************************************************************************
	// アクセス制限関係ここまで
	// **********************************************************************************

	// --------------------------
	// アクセスリスト
	// --------------------------
	if ( $config_use_accessdb == 1 ) {
		require_once(SYS_DIR.'access_kaiseki.php');
		analyzePortalAccess();
	}

	// ---------------
	// post_cmdの出力
	// ---------------
	$post_info = array();
	$post_info['cmd'] = $post_cmd;
	$post_info['config_sys_url'] = $config_sys_url;
	$post_info['eid'] = $_GET['post_eid'];
	$s->assign("post_info",$post_info);

	//------------
	// カウンター
	//------------
	// 2012.07.13 カウントアップを行っているが、集計データがどこからも使用されていないのでコメントアウト
	//blogCounter($db,$post_blogdir);


	// ----------------------------------------------------------------------------------------- //
	//                                   ブログパーツ出力                                        						 //
	// ----------------------------------------------------------------------------------------- //
	// スキンの検索
	$skin_q = pg_query($db,"select * from skin where id = $uset[skin_id]");
	$skin = pg_fetch_array($skin_q);
	$s->assign("skin_setting",$skin);

	// 共通でusr情報のクエリを取っておく。
	$usr_info_q = pg_query($db,"select * from usr where id = $post_blogdir");
	$usr = pg_fetch_array($usr_info_q);

	// 事前にstrip/specialcharsを行う。
	$usr = db2web($usr,array('pict','url'));
	$usr['url'] = stripslashes($usr['url']);
	$usr[etc] = preg_replace('/&lt;br&gt;/','<br>',$usr[etc]);
	$usr[adr] = $usr[adr1].$usr[adr2];

	// usrの出力
	$s->assign("usr",$usr);

	// usr_settingの出力
	$s->assign("usr_setting",$uset);

	// QRのURL送信文字列を作成する
	// print "NAME = ".$usr[name];
	// RSSは何もしない(テンプレート参照)
	$qrmailto = mb_convert_encoding('[cellphone_email_address]','SJIS','auto');
	$user_name = mb_convert_encoding($usr['name'],'SJIS','auto');
	$user_name = str_replace( array("&amp;","&quot;","&#039;","&lt;","&gt;"), array("&",'"',"'","<",">"), $user_name);
	$qrsubject = urlencode($user_name);
	$qrbody = $config_sys_url.'/m/'.$usr['id'].'/';
	$qrlink = "mailto:$qrmailto".'?'."subject=$qrsubject".'&'."body=$qrbody";
	$s->assign("qrlink",$qrlink);

	// -------------------------------------------------------------------------- //
	// TOSTEM 加盟店ページ                                                        								  //
	// -------------------------------------------------------------------------- //
	$order = $_GET['order'];
	$s->assign("post_cmd",$post_cmd);

	switch ($post_cmd){
		case 'inquiryrfp'://お問合せ見積もり依頼//
			$respCHECK = true;	// Responsive版対応フラグ
			$CENTER_HTML = Page_Inquiry($post_blogdir);
			$InquiryCheck = 'InquiryForm'; // お問合せページフラグ(常時SSL対応)
			blogHeader($CENTER_HTML, "");
			exit;
			break;
	}

	/**
	* お問い合わせ一覧
	*/
	function Page_Inquiry($post_blogdir){
		global $db, $uset, $post_eid, $_GET, $p_subparty_id, $config_sys_url;
		global $config_lims_mode, $config_smarty_templates, $config_smarty_templates_c, $config_smarty_config_dir, $config_smarty_cache_dir;
		global $isPC, $respCHECK; // 2015.5.19 Responsive版対応

		$tm = new Smarty;
		$tm->template_dir = $config_smarty_templates."/$uset[skin_type]/";
		$tm->compile_dir = $config_smarty_templates_c."/$uset[skin_type]/";
		$tm->config_dir = $config_smarty_config_dir."/$uset[skin_type]/";
		$tm->cache_dir = $config_smarty_cache_dir."/$uset[skin_type]/";
		$tm->caching = 0;
		$tm->cache_lifetime = 0; //キャッシュ時間（秒）

		global $s;
		$inq_cmd = $_GET['inq_cmd'] ? $_GET['inq_cmd'] : $_POST['inq_cmd'];
		$post_cmd = $_POST['post_cmd'];
		$tm->assign("post_cmd",$post_cmd);
		$s->assign("inq_cmd",$inq_cmd);  // 2013.08.08 問合せフォームの状況確認のために追加
		//$readfile = "blog_inquiry.html";
		// 2015.5.19 Responsive版対応
		if(!$isPC and $respCHECK){
			$TEMPLATE = "resp_blog_inquiry.html";
		}else{
			$TEMPLATE = "blog_inquiry.html";
		}

		//確認画面
		if($inq_cmd == 'conf_inquiry'){
			//エラーがなければ確認画面に遷移
			if(!BlogCheckInquiry($post_blogdir, $inq_cmd, $tm)){
				//$readfile = "blog_conf_inquiry.html";
				// 2015.5.19 Responsive版対応
				if(!$isPC and $respCHECK){
					$TEMPLATE = "resp_blog_conf_inquiry.html";
				}else{
					$TEMPLATE = "blog_conf_inquiry.html";
				}
			}
		//確認画面から修正ボタン押下
		}elseif($inq_cmd == 'modify_inquiry'){
			BlogCheckInquiry($post_blogdir, $inq_cmd, $tm);
		//送信ボタン押下
		}elseif($inq_cmd == 'fin_inquiry'){
			BlogCheckInquiry($post_blogdir, $inq_cmd, $tm);
			//$readfile = "blog_fin_inquiry.html";
			// 2015.5.19 Responsive版対応
			if(!$isPC and $respCHECK){
				$TEMPLATE = "resp_blog_fin_inquiry.html";
			}else{
				$TEMPLATE = "blog_fin_inquiry.html";
			}
			session_unregister('inq2_tel');
		}elseif($inq_cmd == 'index' || $inq_cmd == 'reset_inquiry'){
			session_unregister('inq');
		}

		$tm->assign("usrid", $post_blogdir);
		$tm->assign("config_sys_url", $config_sys_url);

		$HTML = $tm->fetch($TEMPLATE);
		return $HTML;
	}


	// -----------------------------------------------
	// お問合せ･見積依頼の入力値の保存とチェック
	// 画面右メニューに表示するサブメニューの名前リストを取得
	// 引数 : $usrid, $inq_cmd
	// 戻り値 : $have_error
	// 2012.03.30 XSS対応(郵便番号、電話番号)
	// 2012.11.29 キャンペーン対応(ご住所入力必須化)
	// 2013.02.28 キャンペーン終了(ご住所入力非必須化)
	// --------------------------------------------------
	function BlogCheckInquiry( $usrid, $inq_cmd, &$tm){
		global $s,$db;
		$inq = array();
		//	確認画面
		switch($inq_cmd){
			case 'conf_inquiry':
				$inq['uname'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['uname']))));
				$inq['unamefri'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['unamefri']))));
				$inq['zip'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['zip']))));
				$inq['adr'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['adr']))));
				$inq['tel'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['tel']))));
				$inq['mailadr'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['mailadr']))));
				$inq['mailadr_conf'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['mailadr_conf']))));
				$inq['content'] = htmlspecialchars(stripslashes(trim(strip_tags($_REQUEST['content']))));
				$inq['accept'] = intval($_REQUEST['accept']);
				$inq['inq_type'] = $_REQUEST['type'];
				$error = array();
				if(!$inq['uname']) $error['err_inq_uname'] = '※お名前が入力されていません。入力お願いします。<br />';
				if(!$inq['unamefri']){
					$error['err_inq_unamefri'] = '※ふりがなが入力されていません。入力お願いします。<br />';
				}elseif(c_HIRAGANA_AND_DIGIT($inq['unamefri'],1)){
					$error['error_inq_unamefri_not_hira'] = 'ふりがなはひらがなで入力してください。<br>';
				}
				//	ご住所入力チェック(キャンペーン時のみ有効)
				//if(!$inq['adr']) $error['err_inq_adr'] = '※ご住所が入力されていません。入力お願いします。<br />';
				//	電話番号は桁数、数字チェック
				if(!$inq['tel']){
					$error['err_inq_tel'] = '※連絡先電話番号が入力されていません。入力お願いします。<br />';
				}elseif(cc_TELNO($inq['tel'],1)){
					$error['err_inq_not_int'] = '※連絡先電話番号は半角数字で入力してください。<br />';//数値チェック
				}
				//	メールアドレスは半角英数、形式チェック
				if(!$inq['mailadr']){
					$error['err_inq_mailadr'] = '※メールアドレスが入力されていません。入力お願いします。<br />';
				}elseif( cc_EMAIL($inq['mailadr'],1) ){
					$error['err_inq_mail_invalid'] = '※メールアドレスの形式が正しくありません。<br />';
				}
				if(!$inq['mailadr_conf']){
					$error['err_inq_mailadr_conf'] = '※メールアドレス(確認用)が入力されていません。入力お願いします。<br />';
				}elseif(cc_EMAIL ( $inq['mailadr_conf'],1)){
					$error['err_inq_mail_conf_invalid'] = '※メールアドレス(確認用)の形式が正しくありません。<br />';
				}
				if ($inq['mailadr'] != $inq['mailadr_conf']){
					$error['err_inq_not_conf'] = '※メールアドレスが違います。<br>';
				}
				if(!$inq['content']) $error['err_inq_content'] = '※お問合せ・資料請求・見積依頼が入力されていません。入力お願いします。<br />';
				if(!$inq['accept']) $error['err_inq_accept'] = 1;
				if(count($error)) $have_error = 1;

				$_SESSION['inq'] = $inq;

				$tm->assign("error",$error);
				$tm->assign("have_error",$have_error);
				break;

			case 'modify_inquiry'://	修正ボタン押下
				$inq = $_SESSION['inq'];
				break;

			case 'fin_inquiry': //	送信ボタン押下
				$inq = $_SESSION['inq'];
				$inq2_tel=$inq['tel'];
				if( $inq['uname'] && $inq['unamefri'] && $inq['tel'] && $inq['mailadr'] && $inq['content']){
					$inq['usr_id'] = $usrid;
					$inq['create_on'] = strftime('%Y-%m-%d %T');
					$inq['modify_on'] = strftime('%Y-%m-%d %T');
					$inq['status'] = 0;
					if( $inq['inq_type'] == 1){
						$inq['content'] = '【資料請求】'.$inq['content'];
					}elseif( $inq['inq_type'] == 2){
						$inq['content'] = '【お問合せ・見積依頼】'.$inq['content'];
					}
			 		//ユーザー情報
					$result = pg_query($db,"select * from usr Where id =  $usrid ;");
					$mail = pg_fetch_array($result);
					$mail_name = "inquiry";

					BlogSendMailToUserInquiry($inq, $mail, $mail_name);//メール送信

					//	DB登録に不要な情報なので削除
					unset($inq['accept']);
					unset($inq['inq_type']);
					unset($inq['mailadr_conf']);
					if(!pg_insert($db,'inquiry',$inq))
					{
						$tm->assign("insert_error",1);
						print_r($inq);
					}
					session_unregister('inq');
					// 2009.05.19 電話番号をfin_inquiry2.htmlに渡すため
					$_SESSION['inq2_tel'] = $inq2_tel;
					$tm->assign("inq2_tel",$inq2_tel);
					return;
				}else{
					header("Location: http://".$_SERVER['HTTP_HOST']."/blog.php?post_cmd=index&post_blogdir=".$usrid);
					exit;
				}
			break;
		}
		$inq['content2'] = nl2br($inq['content']);
		$tm->assign("inq",$inq);
		return $have_error;
	}


	// -------------------------------
	// 会員登録メールの送信
	// 引数 : $mail_data(配列)
	// 戻り値 :
	// -------------------------------
	function BlogSendMailToUserInquiry ($inq, $mail, $mail_name) {
		global $db,$config_use_mail_daemon,$config_sys_url;
		mb_internal_encoding('EUC-JP');
		mb_language('ja');

		$mail[s_url] = $config_sys_url;
		$mail[shopname] = $config_shop_name;

		// mail_templateよりテンプレート取得。
		$result = pg_query($db,"select * from mail_template where filename = '$mail_name' ;");
		$row = pg_fetch_array($result);

		// is_useが0の場合は送信しない。
		if ( !$row['is_use']  ) {
			return;
		}

		$row['subject'] = stripslashes($row['subject']);
		$row['content'] = stripslashes($row['content']);

		// evalで評価する。
		eval ("\$mail_subject = \"$row[subject]\";");
        eval ("\$mail_content = \"$row[content]\";");

		// メールを送信する。

		// この方式だと文字化けする可能性がある。
		// subjectとcontentはstripslashesを行う。
		$mail_subject = stripslashes($mail_subject);

		$subject = mb_convert_kana($mail_subject, "KV", "EUC-JP");
		$content = mb_convert_encoding($mail_content, 'JIS', 'auto');
		$from = $row['mail_from'];
		$to = $mail['access_mail'];
		$extra = "From : $from\r\n";
		// メーラーデーモンがsendmailで、$row['return_mail_add']が設定されている場合は、
		// オプションを設定して送信する。
		// mb_send_mail($to,$subject,$content,$extra);
        if ( $row['return_mail_add'] ) {
            mb_send_mail($to, $subject, $content, $extra, '-f'.$row['return_mail_add']);
        } else {
			// 設定されていない場合は、通常送信
            mb_send_mail($to, $subject, $content, $extra);
        }

	}

?>
