#-------------------------------------------------------------------------------
#
#						ショッピングバスケット
#
#						共通サブルーチン
#
# $Id: common.pl,v 1.25 2003/03/24 14:45:20 kousyou Exp $
#
#-------------------------------------------------------------------------------

$controlfile  = "./data/control.dat";                   # コントロールファイル

#
# コントロールファイル読み込み
#

sub controlread {

    $i = 0;

    open (IN,"$controlfile") || &error2("コントロールファイルが異常です。") ;

    while ($_ = <IN>) {

		( $d )  =   split( /\n/ , $_ ) ;

        if  ( $i ==  0 )  {  $VER         =  $d ;  }    # バージョン
        if  ( $i ==  1 )  {  $title       =  $d ;  }    # サービス名
        if  ( $i ==  2 )  {                     ;  }    #
        if  ( $i ==  3 )  {  $reload      =  $d ;  }    # このスクリプトのＵＲＬ(httpからフルパスで設定)
        if  ( $i ==  4 )  {  $thanks      =  $d ;  }    # ありがとうメッセージのＵＲＬ(httpからフルパスで設定)
        if  ( $i ==  5 )  {  $webform     =  $d ;  }    # WebFORMのURL
        if  ( $i ==  6 )  {  $admin       =  $d ;  }    # AdminのURL
        if  ( $i ==  7 )  {  $passwd      =  $d ;  }    # passwdのURL
        if  ( $i ==  8 )  {                     ;  }    #
        if  ( $i ==  9 )  {                     ;  }    #
        if  ( $i == 10 )  {                     ;  }    #
        if  ( $i == 11 )  {  $shouhinfile =  $d ;  }    # 商品設定ファイル
        if  ( $i == 12 )  {  $souryoufile =  $d ;  }    # 送料設定ファイル
        if  ( $i == 13 )  {  $chiikifile  =  $d ;  }    # 地域ファイル
        if  ( $i == 14 )  {  $mailfile    =  $d ;  }    # メールヘッダファイル
        if  ( $i == 15 )  {  $passfile    =  $d ;  }    # パスワードファイル
        if  ( $i == 16 )  {  $holidayfile =  $d ;  }    # 休日設定ファイル
        if  ( $i == 17 )  {                     ;  }    #
        if  ( $i == 18 )  {                     ;  }    #
        if  ( $i == 19 )  {  $furikomi    =  $d ;  }    # 振り込み確認に要する日数
        if  ( $i == 20 )  {  $taxrate     =  $d ;  }    # 消費税率(%) 算出しない場合は 0 と設定
        if  ( $i == 21 )  {  $PAGE        =  $d ;  }    # ページ内商品表示件数
        if  ( $i == 22 )  {  $chuumon     =  $d ;  }    # 最低注文金額
        if  ( $i == 23 )  {  $chuumon_max =  $d ;  }    # 最大注文金額
        if  ( $i == 24 )  {  $maxweight   =  $d ;  }    # 最大重量
        if  ( $i == 25 )  {  $timelug     =  $d ;  }    # タイムラグ
        if  ( $i == 26 )  {  $ryousyuu    =  $d ;  }    # 領収発行の質問
        if  ( $i == 27 )  {  $noshi       =  $d ;  }    # 「のし」の質問
        if  ( $i == 28 )  {  $maxday      =  $d ;  }    # 最大配達指定可能日数
        if  ( $i == 29 )  {                     ;  }    #
        if  ( $i == 30 )  {  $body        =  $d ;  }    # BODY設定
        if  ( $i == 31 )  {  $header      =  $d ;  }    # Header設定
        if  ( $i == 32 )  {  $bottom      =  $d ;  }    # Bottom設定
        if  ( $i == 33 )  {  $mailto      =  $d ;  }    # メール送信先
        if  ( $i == 34 )  {  $keitai      =  $d ;  }    # 携帯メール送信先

        $i++ ;
    }

    close (IN) ;

    $ver      = "<div align=\"right\"><a href=\"http://kago.sourceforge.jp/\" target=\"_new\">kago $VER</a></div>\n";                                 # バージョン

	if	( $timelug  eq "" )	{	$timelug	=	0 ;	}
	if	( $furikomi eq "" )	{	$furikomi	=	0 ; }

    return ;
} # ----------------------------------------------------------------------------

#
# 商品ファイル読み込み
#

sub shouhinread {

    $count			=	0 ;
	$flg_hinshitu	=	0 ;

    $in    =   open ( IN , "$shouhinfile" ) ;

    if  ( $in ) {

        while ($_ = <IN>) {

		    if  (!( $_ eq "\n" )) {

		        ( $code,$name,$img,$img2,$money,$weight,$counter,$cunit,$zaiko,$size,$sunit,$help,$hinshitu,$cool,$img3,$img4,$img5 )  =  split( /<>/ , $_ );

				$hinshitu	=~	tr/0-9//cd ;
				$cool		=~	tr/0-9//cd ;

				if	( $hinshitu eq '' )	{	$hinshitu		=	0 ;	}
				if	( $cool     eq '' )	{	$cool			=	0 ;	}

				if	( $hinshitu > 0   )	{	$flg_hinshitu	=	1 ;	}

       	        $CODE[$count]		=   $code ;			# 商品番号
	 	        $NAME[$count]		=   $name ;			# 商品名
		        $IMG[$count]		=   $img ;			# 画像パス
		        $IMG2[$count]		=   $img2 ;			# 画像パス
		        $MONEY[$count]		=   $money ;		# 金額
		        $WEIGHT[$count]		=   $weight ;	    # 重量
		        $COUNTER[$count]	=   $counter ;		# 入力方法
                $CUNIT[$count]		=   $cunit ;		# 数え方
                $ZAIKO[$count]    	=   $zaiko ;		# 在庫
                $SIZE[$count]		=   $size ;			# サイズ
	            $SUNIT[$count]		=   $sunit ;		# サイズ名称
	            $HELP[$count]		=   $help ;			# コメント
				$HINSHITU[$count]	=	$hinshitu ;		# 賞味期限
	            $COOL[$count]		=   $cool ;			# クール指定
	            $IMG3[$count]		=   $img3 ;			# 画像パス
	            $IMG4[$count]		=   $img4 ;			# 画像パス
	            $IMG5[$count]		=   $img5 ;			# 画像パス

		        $count++;
		    }
        }

        close (IN);
    }

    return ;
} # ----------------------------------------------------------------------------

#
# 送料コントロールファイル読み込み
#

sub souryouread {

    $i  =   0;

    $in =   open( IN , "$souryoufile" ) ;

    if  ( $in ) {

        while ($_ = <IN>) {

            ( $gyousya[$i] , $gyousyafile[$i] , $tesuuryou[$i] )  =  split( /<>/ , $_ ) ;

            $i++;
        }

        close(IN);
    }

    return ;
} # ----------------------------------------------------------------------------

#
#	休日設定ファイル読み込み
#

sub holidayread {

    $i			=   0;
	$flg_naiyou	=	0 ;

    $in =   open( IN , "$holidayfile" ) ;

    if  ( $in ) {

		( $mysec , $mymin , $myhour , $mydd , $mymm , $myyy )	=	localtime ( time ) ;
		$myyy	+=	1900 ;
		$mymm	+=	   1 ;
		$mydate	=	sprintf ( "%04d%02d%02d" , $myyy , $mymm , $mydd ) ;

        while ($_ = <IN>) {

            ( $yy1[$i] , $mm1[$i] , $dd1[$i] , $yy2[$i] , $mm2[$i] , $dd2[$i] , $naiyou[$i] )  =  split( /<>/ , $_ ) ;

			if	( $naiyou[$i] eq '0' ) {
				$syy	=	$yy1[$i] ;
				$eyy	=	$yy2[$i] ;

				if	( $syy eq '' ) {
					$syy	=	$myyy ;
				}

				if	( $eyy eq '' ) {
					if	( $mm1[$i] < $mm2[$i] ) {
						$eyy	=	$myyy	+	1 ;
					}
					else {
						$eyy	=	$myyy ;
					}
				}

				$sdate	=	sprintf ( "%04d%02d%02d" , $syy , $mm1[$i] , $dd1[$i] ) ;
				$edate	=	sprintf ( "%04d%02d%02d" , $eyy , $mm2[$i] , $dd2[$i] ) ;

				if	( $sdate le $mydate && $mydate le $edate ) {
					$flg_naiyou	=	$i ;				#	受注禁止フラグの設定
				}
			}

            $i++;
        }

        close(IN);
    }

	$count_holiday	=	$i ;								#	データ件数退避

    return ;
} # ----------------------------------------------------------------------------

#
#   パーミッション変更
#

sub sub_chmod {

    chmod   ( 0600 , $_[0] ) ;

    $in =   open  ( IN , $_[0] ) ;

    if  ( !$in ) {

        chmod   ( 0660 , $_[0] ) ;

        $in =   open  ( IN , $_[0] ) ;

        if  ( !$in ) {

            chmod   ( 0666 , $_[0] ) ;

            $in =   open  ( IN , $_[0] ) ;

            if  ( !$in ) {

                &error2 ( "パーミッションの変更に失敗しました。" , "$_[0]" ) ;
            }
        }
    }

    close   ( IN ) ;

    return ;
} # ----------------------------------------------------------------------------

#
#   システムエラー出力
#

sub error2 {

    print <<"EOF";
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>ショッピングバスケットエラー画面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
    <h1>$_[0]</h1>
    <h3>$_[1]</h3>

    <br><br>

    ブラウザの[戻る]ボタンを押して前の画面に移動してください。<br>
</body>
</html>

EOF

    exit;

} # ----------------------------------------------------------------------------

#
#   ＨＴＭＬ標準ヘッダー出力
#

sub head {

    print <<"EOF";
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>$title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
EOF

    return ;

} # ----------------------------------------------------------------------------

sub sjis { $msg = $_[0]; &jcode'convert(*msg, 'sjis'); }
sub  jis { $msg = $_[0]; &jcode'convert(*msg, 'jis') ; }
sub  euc { $msg = $_[0]; &jcode'convert(*msg, 'euc') ; }

1;
