#!/usr/bin/perl
#--NetShopOwner-CGI-version:5.0.0.0--

;#
;# register1.cgi
;# [PC]会員登録画面
;# (C) 2012 株式会社ジャストシステム
;#
;# last modified YYYY/MM/DD
;#

use strict;
use uselib;
use defnsopath_shop;
use NsoVersionPC 1.00;
use Design::TemplRegister1;
use Lib::SiteStatus;

&ReadParse();
my %in    = %main::in;
my %incfn = %main::incfn;
my %inct  = %main::inct;

# インスタンス定義
my $objConfigSystem = Config::NsoSystem->newShop();
my $objConfigMaster = Config::NsoMaster->new();
my $NsoMisc       = NsoMisc->new();

# コンフィグレーションのキャッシュ
my %ConfigSystem = $objConfigSystem->cache_config();
my %ConfigMaster = $objConfigMaster->cache_config();

my $status_err;

FUNC:{
	my $func = $in{func} || 'main';
	my %function = (
		main       => \&main,
	);
	&check_member_function();
	&check_closing();
	if ($function{$func}){
		$function{$func}->();
	}else{
		&main();
	}
}
exit();

;#
;# 開店・閉店状態検査
;#
sub check_closing {
	my $SiteStatus = Lib::SiteStatus->new({ ConfigSystem=>\%ConfigSystem });
	$SiteStatus->CheckClosing();
}

;#
;# 会員機能使用有無検査
;#
sub check_member_function {
	# 会員機能使用有無フラグ
	my $adm_member_master_member_useflg = $ConfigMaster{adm_member_master}{member}{UseFlag};
	# 会員機能未使用の場合、トップページへリダイレクト
	if ($adm_member_master_member_useflg ne 1){
		# SSL状況に応じてURLを置換する
		my $RegisterURL = $NsoMisc->getChangedURL({url=>$ConfigSystem{base_href}{docroot}, key=>'StaticPage'});
		# トップページへリダイレクト
		print $NsoMisc->redirect($RegisterURL);
	}
}

;#
;# メイン処理
;#
sub main {
	# エラーメッセージを取得
	$status_err = &error_message( $in{ErrorStatus} );
	# システムテンプレートクラスのインスタンス生成
	my $TemplRegister1 = Design::TemplRegister1->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster, KickBack=>$in{KickBack}, status_err=>$status_err, Query=>\%in });
	
	# テンプレート置換処理の実行
	my $contents = $TemplRegister1->RelpaceSystemTempl();
	
	print $NsoMisc->print_header();
	print $contents;
	
	exit();
}

;#
;# エラーメッセージ取得処理
;#
sub error_message {

	my %ErrorMessageHash = (
		database_msg101		=> qq(※データベース接続中にエラーが発生しました。(エラーコード：101)<br>お手数ですが、ショップ運営者へお問い合わせください。<br>),
		database_msg102		=> qq(※データベース接続中にエラーが発生しました。(エラーコード：102)<br>お手数ですが、ショップ運営者へお問い合わせください。<br>),
		database_msg103		=> qq(※データベース接続中にエラーが発生しました。(エラーコード：103)<br>お手数ですが、ショップ運営者へお問い合わせください。<br>),
		same_member_msg		=> qq(※このメールアドレスはすでに登録されています。<br>),
	);
	my $error_code = shift @_;
	return ( exists $ErrorMessageHash{$error_code} )? $ErrorMessageHash{$error_code}: qq();
}





















