#!/usr/bin/perl
require 'cgi-lib0303.pl';
require 'jcode.pl';
require 'sub-lib.pl';
#use Pg;
$|=1;

#===========================================================#
#	hotsearch01.pl	HOTCAKE商品検索
#	
#	2000/08/08 	By T.Murakami 初版
#
#===========================================================#

# 変数セット
$SearchHTML = "./search.html";	# 検索

#===========================================================#
# メイン処理
#===========================================================#
	
	# メンテナンスフラグチェック
	&CheckMaintenanceFlg();
	
	# データベースへ接続
	&DBConnect();

	# 検索ルＨＴＭＬ表示
	&DisplayHTML();

#===========================================================#
# メイン終了
#===========================================================#


# サブルーチン
#-----------------------------------------------------------
# ジャンルＨＴＭＬ表示サブルーチン
#
sub DisplayHTML {

	# MIMEヘッダー出力
	print &PrintHeader;
	# ファイルオープン
    open SearchHTML, "<$SearchHTML";			# 商品一覧(サムネイル)ＨＴＭＬオープン
	while ( <SearchHTML> ) {
		&jcode::convert( *_, 'sjis' );

		# 大分類 表示
		if (/<!--#Bunrui1#-->/) {
			s/<!--#Bunrui1#-->//g;
			&SetBunrui1();
		}
		# 小分類 表示
		if (/<!--#Bunrui2#-->/) {
			s/<!--#Bunrui2#-->//;
			&SetBunrui2();
		}
		print $_;
	}
	close SearchHTML;							# ジャンルＨＴＭＬクローズ
}


#-----------------------------------------------------------
# 大分類セット
#
sub SetBunrui1
{
	# テーブルから情報取得
	$strSQL_Sel = "select *
				   from bunrui1_tbl";

	my $sth = $conn->prepare("$strSQL_Sel");
	$sth->execute();

=pod
	$result = $conn->exec("$strSQL_Sel");
	$tmpCount = $result->ntuples;
=cut

	print "<SELECT name=\"Bunrui1\">\n";
	print "<OPTION value=\"NoSelect\" selected>指定しない\n";
	
	while ( @row = $sth->fetchrow_array ) {
#	for($i=0;$i<$tmpCount;$i++){

		$db_Bunrui1 = $row[0];		# 商品名
		&jcode::convert( *db_Bunrui1, 'sjis' );
		
		print "<OPTION value=\"$db_Bunrui1\">$db_Bunrui1\n";
	}
	
	print "</SELECT>";
}


#-----------------------------------------------------------
# 小分類セット
#
sub SetBunrui2
{
	# テーブルから情報取得
	$strSQL_Sel = "select distinct bunrui2
				   from bunrui2_tbl";

	my $sth = $conn->prepare("$strSQL_Sel");
	$sth->execute();

=pod
	$result = $conn->exec("$strSQL_Sel");
	$tmpCount = $result->ntuples;
=cut

	print "<SELECT name=\"Bunrui2\">\n";
	print "<OPTION value=\"NoSelect\" selected>指定しない\n";

	while ( @row = $sth->fetchrow_array ) {
#	for($i=0;$i<$tmpCount;$i++){
		$db_Bunrui2 = $row[0];		# 商品名
		&jcode::convert( *db_Bunrui2, 'sjis' );
		print "<OPTION value=\"$db_Bunrui2\">$db_Bunrui2\n";
	}
	print "</SELECT>\n";
}


__END__




#-----------------------------------------------------------
# ジャンルＨＴＭＬ表示サブルーチン
#
sub FielExistCheck{
	# ジャンルＨＴＭＬ存在チェック
	if( !(-e $SearchHTML) ){
		&CgiDie( "\$SearchHTML not found. ");
	}
}

#-----------------------------------------------------------
# 登録件数取得サブルーチン
#
sub GetRegistCount{

	$RegistCount = 0;
	
	# SQL文発行
	$strSQL_Sel = "select shohinname 
				    from hanyo_tbl
				     where bunrui1 = '$CategoryName_euc'
				     and bunrui2 = '$GenreName_euc'";
	$result = $conn->exec("$strSQL_Sel");
	$tmpCount = $result->ntuples;

	$ID = "";
	$RegistCount = 0;
	for($i=0;$i<$tmpCount;$i++){
		$db_ID = $result->getvalue($i,0);
		if ( $db_ID ne $ID ) {
			$ID = $db_ID;
			$RegistCount++;
		}
	}

	return $RegistCount;
}


#-----------------------------------------------------------
# ジャンルＨＴＭＬ表示サブルーチン
#
sub SetTableItem{

	$ID = "";
	$Cnt = 0;
	$OneceFlg = 0;

	# テーブルから情報取得
	$strSQL_Sel = "select han.*, cat.*
				   from hanyo_tbl as han, catchcopy_tbl as cat
				   where han.bunrui1 = '$CategoryName_euc'
				    and han.bunrui2 = '$GenreName_euc'
				    and han.shohinname = cat.shohinname
				    order by han.seqno,han.variation1,han.variation2";
#				    order by han.seqno,han.variation1,han.variation2";
#				   where ( 0 < stock )
	$result = $conn->exec("$strSQL_Sel");
	$tmpCount = $result->ntuples;

	$ID = "";
	$RegistCount = 0;
	for($i=0;$i<$tmpCount;$i++){

		$db_ID = $result->getvalue($i,0);		# 商品名
		$db_Kakaku = $result->getvalue($i,3);	# 価格
		$db_Vari1 = $result->getvalue($i,4);	# バリエーション１
		$db_Vari2 = $result->getvalue($i,5);	# バリエーション２
		$db_Gif = $result->getvalue($i,10);		# Gifファイル名
		$db_GifPath = $result->getvalue($i,11);	# Gifファイルパス
		$db_HanyoID = $result->getvalue($i,14);	# 汎用ID
		$db_Catcopy = $result->getvalue($i,17);	# キャッチコピー
		&jcode::convert( *db_ID, 'sjis' );
		&jcode::convert( *db_Kakaku, 'sjis' );
		&jcode::convert( *db_Vari1, 'sjis' );
		&jcode::convert( *db_Vari2, 'sjis' );
		&jcode::convert( *db_Gif, 'sjis' );
		&jcode::convert( *db_GifPath, 'sjis' );
		&jcode::convert( *db_HanyoID, 'sjis' );
		&jcode::convert( *db_Catcopy, 'sjis' );
		
		# 商品名が同一の場合 バリエーションのプルダウン設定----------------------------
		if ( $StartCnt < $Cnt and $Cnt <= $EndCnt ) {
			if ( $ID eq $db_ID ) {
				# バリエーション存在チェック
				&CheckVariation();
				print "<OPTION value=\"$db_HanyoID\">$PullDownOption\n";
			}
		}

		# 重複(バリエーションがある場合)する商品名から最初の１件を表示------------------
		if ( $ID ne $db_ID ) {

			# 商品テーブル表示
			$Cnt++;
			if ( $Cnt > $EndCnt ) {
				$_ = "";
				last;
			}

			# $NextViewCntの件数だけ表示する
			if ( $StartCnt < $Cnt and $Cnt <= $EndCnt ) {
				if( $OneceFlg > 0 ){
					# バリエーションプルダウン表示
					&PrintTableDetail2();
				}
				$OneceFlg++;
				
				# サムネイルのパス
				$SamuneilPath = sprintf("%s%s",$db_GifPath, $db_Gif);
				if ( !(-e $SamuneilPath) || $db_Gif eq "" ) {			# サムネイル画像が無い場合Default画像設定
					$SamuneilPath = "$DefaultIMGS";
				}
				$SamuneilPath = "../seihininfo/image-s/$db_Gif";
				
				# キャッチコピー取得
				@CatchCopyStr = split( /,/,$db_Catcopy ); # , で分割
				
				# 製品名取得
				$SeihinName = $db_ID;
				
				# 商品名、キャッチコピー、サムネイル表示
				&PrintTableDetail1();
			}
		}
		$ID = $db_ID;
	}

	# バリエーションプルダウン表示
	&PrintTableDetail2();
}

#-----------------------------------------------------------
# 商品名、キャッチコピー、サムネイル表示
#
sub PrintTableDetail1{

	print "<form  method=\"post\" action=\"./hotcake04.pl\">","\n";
	print "<TR>","\n";
	print "<TD vAlign=top width=85><IMG src=\"$SamuneilPath\" width=80 height=80 border=0></TD>","\n";
	print "<TD vAlign=top width=515><B>$SeihinName</B><BR>","\n";
	print "<FONT size=-1>","\n";

	# キャッチコピー表示
	foreach $Str ( @CatchCopyStr ) {
		print "$Str";
	}
	print "</FONT><BR>","\n";
	print "<SELECT name=\"HanyoID\">","\n";
	
	# バリエーション存在チェック
	&CheckVariation();
	print "<OPTION selected value=\"$db_HanyoID\">$PullDownOption\n";
}

#-----------------------------------------------------------
# バリエーションプルダウン表示
#
sub PrintTableDetail2{

	# バリエーションのプルダウン設定終了
	print "</OPTION></SELECT>","\n";
	print "<input type=\"submit\" value=\"詳細\">","\n";
	print "</TD>","\n";
	print "</TR><!--hr-->","\n";
	print "<TR>","\n";
	print "<TD colSpan=2 vAlign=top>","\n";
	print "<HR>","\n";
	print "</TD></TR><!--data end--><!--data start-->","\n";

	# 商品情報をセット/表示する
	&SetHiddenItem();
	
	print "</form>","\n";
}

#-----------------------------------------------------------
# 表示コントロール設定サブルーチン
#
sub SetViewControl{

	# 前の10点
	if ( 1 < $ViewCnt ) {
		$href = "hotcake03.pl?Category=$CategoryName&Genre=$GenreName&ViewCnt=$BackViewCnt";
		$SetBack =  "<a href=\"$href\">前の$MaxViewCnt点</a>";
	}

	# 11-20 ( 表示件数 Form To )
	$Tmp_StartCnt = $StartCnt +1 ;
	$Tmp_EndCnt = $EndCnt;
	if ( $RegistMaxCount < $EndCnt ) {
		$Tmp_EndCnt = $RegistMaxCount;
	}
	$View = "$Tmp_StartCnt-$Tmp_EndCnt";

	# 次の10点
	if ( $RegistMaxCount > $EndCnt ) {
		$href = "hotcake03.pl?Category=$CategoryName&Genre=$GenreName&ViewCnt=$NextViewCnt";
		$SetNext = "<a href=\"$href\">次の$WkNextCnt点</a>";
	}
}

#-----------------------------------------------------------
# バリエーションチェック
#
sub CheckVariation{

	if( $db_Vari1 ne "" and $db_Vari2 ne "" ){
		$PullDownOption = "$db_Vari1：$db_Vari2：\\$db_Kakaku";
	}
	else{
		if( $db_Vari1 ne "" ){
			$PullDownOption = "$db_Vari1：\\$db_Kakaku";
		}
		if( $db_Vari2 ne "" ){
			$PullDownOption = "$db_Vari2：\\$db_Kakaku";
		}
		if( $db_Vari1 eq "" and $db_Vari2 eq "" ){
			$PullDownOption = "\\$db_Kakaku";
		}
	}
}

#-----------------------------------------------------------
# HiddenItem設定
#
sub SetHiddenItem{

	print "<input type=hidden name=CategoryName value=\"$CategoryName\">\n";	# 大分類
	print "<input type=hidden name=GenreName value=\"$GenreName\">\n";			# 小分類
	print "<input type=hidden name=ViewCnt value=\"$ViewCnt\">\n";				# ViewCount
}

__END__
