#!/usr/bin/perl
#BEGIN{ $| = 1; print "Content-type: text/html\n\n"; open(STDERR, ">&STDOUT"); }
######################################################################
#     CMS Ver 2.0 2007-10-15
#     Copyright(C) DIGITAL-FACTORY (naka@digital-factory.jp)
######################################################################

###< Define Section >#################################################
#■システム設定
	use Jcode;
	$| = 1;
	$MY_SCRIPT = 'index.cgi';
	$pview_admin = 5;
	$pview = 100;
#■ログファイル
	$logfile = './CMS/data/data.cgi';
#■登録フォーム
	$Display_Form = "tmpl_index.html";
	$category = './CMS/data/category.txt';
	$PAYMENTDATA = './CMS/data/flag.txt';
	$INSTADATA = './instagram/cache/instagram.html';

###< Program Section >################################################
#  メイン処理
######################################################################

	# ソート処理用配列に格納 @DATABASE
	open(IN,"$category");
	while (<IN>) {
		($no,$entrydate,$entrytime,$b001,$b002,$b003,$b004,$b005,$b006,$b007,$b008,$b009,$b010,$b011,$b012,$b013,$b014,$b015,$b016,$b017,$b018,$b019,$b020,$b021,$b022,$b023,$b024,$b025,$b026,$b027,$b028,$b029,$b030,$b031,$b032,$b033,$b034,$b035,$b036,$b037,$b038,$b039,$b040,$b041,$b042,$b043,$b044,$b045,$b046,$b047,$b048,$b049,$b050,$b051,$b052,$b053,$b054,$b055,$b056,$b057,$b058,$b059,$b060,$b061,$b062,$b063,$b064,$b065,$b066,$b067,$b068,$b069,$b070,$b071,$b072,$b073,$b074,$b075,$b076,$b077,$b078,$b079,$b080,$b081,$b082,$b083,$b084,$b085,$b086,$b087,$b088,$b089,$b090,$b091,$b092,$b093,$b094,$b095,$b096,$b097,$b098,$b099,$b100,$b101,$b102,$b103,$b104,$b105,$b106,$b107,$b108,$b109,$b110,$b111,$b112,$b113,$b114,$b115,$b116,$b117,$b118,$b119,$b120) = split(/\t/);
		$_="$no\t$entrydate\t$entrytime\t$b001\t$b002\t$b003\t$b004\t$b005\t$b006\t$b007\t$b008\t$b009\t$b010\t$b011\t$b012\t$b013\t$b014\t$b015\t$b016\t$b017\t$b018\t$b019\t$b020\t$b021\t$b022\t$b023\t$b024\t$b025\t$b026\t$b027\t$b028\t$b029\t$b030\t$b031\t$b032\t$b033\t$b034\t$b035\t$b036\t$b037\t$b038\t$b039\t$b040\t$b041\t$b042\t$b043\t$b044\t$b045\t$b046\t$b047\t$b048\t$b049\t$b050\t$b051\t$b052\t$b053\t$b054\t$b055\t$b056\t$b057\t$b058\t$b059\t$b060\t$b061\t$b062\t$b063\t$b064\t$b065\t$b066\t$b067\t$b068\t$b069\t$b070\t$b071\t$b072\t$b073\t$b074\t$b075\t$b076\t$b077\t$b078\t$b079\t$b080\t$b081\t$b082\t$b083\t$b084\t$b085\t$b086\t$b087\t$b088\t$b089\t$b090\t$b091\t$b092\t$b093\t$b094\t$b095\t$b096\t$b097\t$b098\t$b099\t$b100\t$b101\t$b102\t$b103\t$b104\t$b105\t$b106\t$b107\t$b108\t$b109\t$b110\t$b111\t$b112\t$b113\t$b114\t$b115\t$b116\t$b117\t$b118\t$b119\t$b120\t\n";
		$CAT{$no} = $b001;
		next;
	}
	close(IN);
	open(AUTONUM,"$PAYMENTDATA");
	flock(AUTONUM,2);
		$data = <AUTONUM>;
	flock(AUTONUM,8);
	close(AUTONUM);

	($sroom,$mroom,$froom,$mon,$tue,$wed,$thu,$fri,$sat,$now,$now2) = split(/\t/,$data);
	Jcode::convert(\$sroom,'utf8','euc');
	Jcode::convert(\$mroom,'utf8','euc');
	Jcode::convert(\$froom,'utf8','euc');
	Jcode::convert(\$mon,'utf8','euc');
	Jcode::convert(\$tue,'utf8','euc');
	Jcode::convert(\$wed,'utf8','euc');
	Jcode::convert(\$thu,'utf8','euc');
	Jcode::convert(\$fri,'utf8','euc');
	Jcode::convert(\$sat,'utf8','euc');
	Jcode::convert(\$now,'utf8','euc');
	Jcode::convert(\$now2,'utf8','euc');

	open(AUTONUM,"$INSTADATA");
	flock(AUTONUM,2);
	{
    local $/;
    $insta = <AUTONUM>;
	}
	flock(AUTONUM,8);
	close(AUTONUM);
	Jcode::convert(\$insta,'utf8','euc');

	&Find_Data;

	exit;
######################################################################
#  検索処理  #
######################################################################
sub Find_Data {

	$i = 0;$count = 0;
	$page = $PRM{'page'};
	if($page eq ""){
		$page = 0;
	}

	$products_list .=<<_PRODUCTS_LIST_;
_PRODUCTS_LIST_

	$color_count = 0;
	$max = '0';

	# ソート処理用配列に格納 @DATABASE
	open(IN,"$logfile") || &error("Open Error : $logfile");
	while (<IN>) {
		($no,$entrydate,$entrytime,$filename1,$filename2,$filename3,$filename4,$filename5,$FORM{'b001'},$FORM{'b002'},$FORM{'b003'},$FORM{'b004'},$FORM{'b005'},$FORM{'b006'},$FORM{'b007'},$FORM{'b008'},$FORM{'b009'},$FORM{'b010'},$FORM{'b011'},$FORM{'b012'},$FORM{'b013'},$FORM{'b014'},$FORM{'b015'},$FORM{'b016'},$FORM{'b017'},$FORM{'b018'},$FORM{'b019'},$FORM{'b020'},$FORM{'b021'},$FORM{'b022'},$FORM{'b023'},$FORM{'b024'},$FORM{'b025'},$FORM{'b026'},$FORM{'b027'},$FORM{'b028'},$FORM{'b029'},$FORM{'b030'}) = split(/\t/);
		if($FORM{'b006'}){
			$_="$no\t$entrydate\t$entrytime\t$filename1\t$filename2\t$filename3\t$filename4\t$filename5\t$FORM{'b001'}\t$FORM{'b002'}\t$FORM{'b003'}\t$FORM{'b004'}\t$FORM{'b005'}\t$FORM{'b006'}\t$FORM{'b007'}\t$FORM{'b008'}\t$FORM{'b009'}\t$FORM{'b010'}\t$FORM{'b011'}\t$FORM{'b012'}\t$FORM{'b013'}\t$FORM{'b014'}\t$FORM{'b015'}\t$FORM{'b016'}\t$FORM{'b017'}\t$FORM{'b018'}\t$FORM{'b019'}\t$FORM{'b020'}\t$FORM{'b021'}\t$FORM{'b022'}\t$FORM{'b023'}\t$FORM{'b024'}\t$FORM{'b025'}\t$FORM{'b026'}\t$FORM{'b027'}\t$FORM{'b028'}\t$FORM{'b029'}\t$FORM{'b030'}\t\n";
			# リスト表示項目とキー項目のみ配列にPUSH
	#		$_="$no\t$entrydate\t$entrytime\t$filename1\t$filename2\t$filename3\t$filename4\t$filename5\t$FORM{'b001'}\t$FORM{'b002'}\t$FORM{'b003'}\t$FORM{'b004'}\t$FORM{'b005'}\t$FORM{'b006'}\t$FORM{'b007'}\t$FORM{'b008'}\t$FORM{'b009'}\t$FORM{'b010'}\t$FORM{'b011'}\t$FORM{'b012'}\t$FORM{'b013'}\t$FORM{'b014'}\t$FORM{'b015'}\t$FORM{'b016'}\t$FORM{'b017'}\t$FORM{'b018'}\t$FORM{'b019'}\t$FORM{'b020'}\t$FORM{'b021'}\t$FORM{'b022'}\t$FORM{'b023'}\t$FORM{'b024'}\t$FORM{'b025'}\t$FORM{'b026'}\t$FORM{'b027'}\t\n";
	
			push(@DATABASE,$_);
			next;
		}
	}
	close(IN);

	foreach $DATABASE (@DATABASE) {
		($no,$entrydate,$entrytime,$filename1,$filename2,$filename3,$filename4,$filename5,$FORM{'b001'},$FORM{'b002'},$FORM{'b003'},$FORM{'b004'},$FORM{'b005'},$FORM{'b006'},$FORM{'b007'},$FORM{'b008'},$FORM{'b009'},$FORM{'b010'},$FORM{'b011'},$FORM{'b012'},$FORM{'b013'},$FORM{'b014'},$FORM{'b015'},$FORM{'b016'},$FORM{'b017'},$FORM{'b018'},$FORM{'b019'},$FORM{'b020'},$FORM{'b021'},$FORM{'b022'},$FORM{'b023'},$FORM{'b024'},$FORM{'b025'},$FORM{'b026'},$FORM{'b027'},$FORM{'b028'},$FORM{'b029'},$FORM{'b030'}) = split(/\t/,$DATABASE);

		# キーワード入力時
		$flag=0;
		if($PRM{'mon'}){
			if($PRM{'mon'} =~m/(\d\d\d\d)(\d\d)/){
				if(($FORM{'b001'} eq $1) && ($FORM{'b002'} eq $2)){
					$flag++;
				}
			}
		}
		if($PRM{'dat'}){
			if($PRM{'dat'} =~m/(\d\d\d\d)(\d\d)(\d\d)/){
				if(($FORM{'b001'} eq $1) && ($FORM{'b002'} eq $2) && ($FORM{'b003'} eq $3)){
					$flag++;
				}
			}
		}
		if($PRM{'cat'}){
			if($PRM{'cat'} eq $FORM{'b004'}){
					$flag++;
			}
		}
		if($PRM{'grp'}){
			if($PRM{'grp'} eq $FORM{'b007'}){
					$flag++;
			}
		}
		if($PRM{'word'}){
			foreach $word (@word) {
				if (index("$FORM{'b001'}$FORM{'b002'}$FORM{'b003'}$FORM{'b004'}$FORM{'b005'}$FORM{'b007'}$FORM{'b008'}$FORM{'b009'}$FORM{'b011'}$FORM{'b013'}$FORM{'b014'}$FORM{'b016'}$FORM{'b020'}",$word) >= 0){
					$flag++;
				}
			}
		}

		if(!$PRM{'dat'}){$flag++;}
		if(!$PRM{'mon'}){$flag++;}
		if(!$PRM{'cat'}){$flag++;}
		if(!$PRM{'grp'}){$flag++;}
		if(!$PRM{'word'}){$flag++;}

		if ($flag < 5) { next; }
		push(@DATA2BASE,$DATABASE);
		$max++;
	}

	if(!@DATA2BASE){ @DATA2BASE = @DATABASE };

	@tmp1 = @tmp2 = @tmp3 = ();
	foreach $DATA2BASE (@DATA2BASE) {
		($no,$entrydate,$entrytime,$filename1,$filename2,$filename3,$filename4,$filename5,$FORM{'b001'},$FORM{'b002'},$FORM{'b003'},$FORM{'b004'},$FORM{'b005'},$FORM{'b006'},$FORM{'b007'},$FORM{'b008'},$FORM{'b009'},$FORM{'b010'},$FORM{'b011'},$FORM{'b012'},$FORM{'b013'},$FORM{'b014'},$FORM{'b015'},$FORM{'b016'},$FORM{'b017'},$FORM{'b018'},$FORM{'b019'},$FORM{'b020'},$FORM{'b021'},$FORM{'b022'},$FORM{'b023'},$FORM{'b024'},$FORM{'b025'},$FORM{'b026'},$FORM{'b027'},$FORM{'b028'},$FORM{'b029'},$FORM{'b030'}) = split(/\t/,$DATA2BASE);

		push(@tmp1, $FORM{'b001'});
		push(@tmp2, $FORM{'b002'});
		push(@tmp3, $FORM{'b003'});
	}
	@DATA2BASE = @DATA2BASE[sort { $tmp1[$b] cmp $tmp1[$a] or
						 $tmp2[$b] cmp $tmp2[$a] or
						 $tmp3[$b] cmp $tmp3[$a] } 0 .. $#tmp1];

	$cnt2 = 0;
	foreach $DATA2BASE (@DATA2BASE) {
		($no,$entrydate,$entrytime,$filename1,$filename2,$filename3,$filename4,$filename5,$FORM{'b001'},$FORM{'b002'},$FORM{'b003'},$FORM{'b004'},$FORM{'b005'},$FORM{'b006'},$FORM{'b007'},$FORM{'b008'},$FORM{'b009'},$FORM{'b010'},$FORM{'b011'},$FORM{'b012'},$FORM{'b013'},$FORM{'b014'},$FORM{'b015'},$FORM{'b016'},$FORM{'b017'},$FORM{'b018'},$FORM{'b019'},$FORM{'b020'},$FORM{'b021'},$FORM{'b022'},$FORM{'b023'},$FORM{'b024'},$FORM{'b025'},$FORM{'b026'},$FORM{'b027'},$FORM{'b028'},$FORM{'b029'},$FORM{'b030'}) = split(/\t/,$DATA2BASE);

		$i++;
		$color_count++ ;
		if ($i < $page + 1) { next; }
		if ($i > $page + $pview) { last; }
		$CMS_DIR_NEWS = './CMS/';
		$html_name = sprintf("%05d",$no) . '.html';
		if($FORM{'b008'} && !$filename1){
			if($FORM{'b007'}){
				$link_tag = "<a href=\"$FORM{'b007'}\" target=_blank>";
				$link_end = "</a>";
			}else{
				$link_tag = "<a href=\"$CMS_DIR_NEWS$html_name\">";
				$link_end = "</a>";
			}
		}elsif(!$FORM{'b008'} && !$filename1){
			if($FORM{'b007'}){
				$link_tag = "<a href=\"$FORM{'b007'}\" target=_blank>";
				$link_end = "</a>";
			}else{
				$link_tag = "";
				$link_end = "";
			}
		}elsif(!$FORM{'b008'} && $filename1){
			$link_tag = "<a href=\"./CMS/data/img/$filename1\" target=_blank>";
			$link_end = "</a>";
		}

		if ($FORM{'b004'} eq '2'){
			$CMS_CONTENTS .= <<"__PRODUCTS_LIST__";
<dl class="clearfix">
	<dd class="newsDate">$FORM{'b001'}.$FORM{'b002'}.$FORM{'b003'}</dd>
	<dt class="newsCate newsCate$FORM{'b004'}">$CAT{$FORM{'b004'}}</dt>
	<dd class="newsTtl">$link_tag$FORM{'b005'}$link_end</dd>
</dl>
__PRODUCTS_LIST__
		}else{
			$CMS_CONTENTS .= <<"__PRODUCTS_LIST__";
<dl class="clearfix">
	<dd class="newsDate">$FORM{'b001'}.$FORM{'b002'}.$FORM{'b003'}</dd>
	<dt class="newsCate newsCate$FORM{'b004'}">$CAT{$FORM{'b004'}}</dt>
	<dd class="newsTtl">$link_tag$FORM{'b005'}$link_end</dd>
</dl>
__PRODUCTS_LIST__
		}
	}

	Jcode::convert(\$CMS_CONTENTS,'utf8','euc');

	print "Content-Type: text/html\n\n";
	open(HTML,"$Display_Form") || die "Can't Open HTML:$Display_Form $!\n";
	while (<HTML>) {
		s/(\$[\w\d\{\}\[\]\']+)/$1/eeg;
		print;
	}
	close(HTML);

	exit;
}

