#####  INCM plug-in for HideNet
 ####                                Ver0.40 　2004/03/26 by GETWILD'74

package HideNet;

# モジュールのパス設定
$_=$0; s/[^\\]+$//; s/data\\.*$/Plugins\\/;
# モジュールの読み込み
require ($_.'INCM_MODULE.PM');

#####  フォルダプロパティの設定  ###########################################

$Dialog= <<"#[/IniDIALOG]";
#[IniDIALOG]
 #URL=1\nUPURL=1\nNAME=1\nEMAIL=1\nHP=1\nKEY=1
 #USER=1\nPASS=1\nPARAM1=1\nPARAM2=1
 #_URL=掲示板のアドレス(URL)(&A):
 #_UPURL=書き込み先のアドレス(URL)
 #_NAME=名前:
 #_EMAIL=メールアドレス:
 #_HP=ホームページ(URL)
 #_KEY=削除キー
 #_USER=User
 #_PASS=Pass
 #_PARAM1=
 #_PARAM2=
 #L000=L,,----- 掲示板の情報 -----
 #L001=TS,L_BBS_Name,掲示板の種類
 #L002=TS,L_BBS_Ver,掲示板のバージョン
 #L003=L,,----- ログイン設定 -----
 #L004=TS,L_ID,ログインID
 #L005=TS,L_Pass,ログインパスワード
 #L006=L,,----- 巡回指定および未読ポインタ -----
 #L007=C,L_Room1,会議室1
 #L008=TS,L_Point1,巡回ページ数
 #L009=C,L_Room2,会議室2
 #L010=TS,L_Point2,巡回ページ数
 #L011=C,L_Room3,会議室3
 #L012=TS,L_Point3,巡回ページ数
 #L013=C,L_Room4,会議室4
 #L014=TS,L_Point4,巡回ページ数
 #L015=C,L_Room5,会議室5
 #L016=TS,L_Point5,巡回ページ数
 #L017=C,L_Room6,会議室6
 #L018=TS,L_Point6,巡回ページ数
 #L019=C,L_Room7,会議室7
 #L020=TS,L_Point7,巡回ページ数
 #L021=C,L_Room8,会議室8
 #L022=TS,L_Point8,巡回ページ数
 #L023=C,L_Room9,会議室9
 #L024=TS,L_Point9,巡回ページ数
 #L025=C,L_Room10,会議室10
 #L026=TS,L_Point10,巡回ページ数
 #L027=L,,----- プラグインデバッグ用設定 -----
 #L028=C,DEBUG=1,動作ログを保存する
 #L029=.
#[/IniDIALOG]

#####  接続/その他の初期設定　##############################################

# INCM_MODULEクラスのインスタンス生成(生成時に初期化も行う)
if ($INCM = new INCM_MODULE) {

	# 巡回処理
	$INCM->Main;

}
exit;

#####  フォルダプロパティの定義  ###########################################
sub SetProperty {
	my ($BBS_Name, $BBS_Ver) = @_;
	my %Property;

	# フォルダプロパティ書き換え用の定義
	# 秀シリーズサポートフォーラム
	if ($BBS_Name eq 'hidesoft') {
		$Property{PARAM1} = 1;
		$Property{PARAM2} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L003} = 1;
		$Property{L004} = 1;
		$Property{L005} = 1;
		$Property{L006} = 1;
		$Property{L007} = 'サイトー企画へのご意見';
		$Property{L008} = 1;
		$Property{L009} = '秀丸エディタ 情報交換';
		$Property{L010} = 1;
		$Property{L011} = '秀Term 情報交換';
		$Property{L012} = 1;
		$Property{L013} = '秀丸エディタ マクロ作者会議室';
		$Property{L014} = 1;
		$Property{L015} = '秀Caps/秀見え/その他秀シリーズ会議室';
		$Property{L016} = 1;
		$Property{L017} = '秀Term スクリプト作者会議室';
		$Property{L018} = 1;
		$Property{L019} = '横取り丸関連ソフト 会議室';
		$Property{L020} = 1;
		$Property{L021} = '鶴亀メール 情報交換';
		$Property{L022} = 1;
		$Property{L023} = '秀丸本の出版企画';
		$Property{L024} = 1;
		$Property{L025} = '秀丸Ｑ＆Ａ集 会議室';
		$Property{L026} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;

	# カノープスサポートフォーラム
	} elsif ($BBS_Name eq 'Canopus') {
		$Property{PARAM1} = 1;
		$Property{PARAM2} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L003} = 1;
		$Property{L004} = 1;
		$Property{L005} = 1;
		$Property{L006} = 1;
		$Property{L007} = 'グラフィックス';
		$Property{L008} = 1;
		$Property{L009} = 'DV/ビデオ編集';
		$Property{L010} = 1;
		$Property{L011} = 'オーディオ/パーツ';
		$Property{L012} = 1;
		$Property{L013} = 'ノンサポートソフトウェア';
		$Property{L014} = 1;
		$Property{L015} = 'ユーザーフォーラム';
		$Property{L016} = 1;
		$Property{L017} = 'TV/MPEG/DVD';
		$Property{L018} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;

	# 秀丸エディタβ版＆鶴亀メール常連さんフォーラム
	} elsif ($BBS_Name eq 'turukame') {
		$Property{PARAM1} = 1;
		$Property{PARAM2} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L003} = 1;
		$Property{L004} = 1;
		$Property{L005} = 1;
		$Property{L006} = 1;
		$Property{L007} = '鶴亀メール・バグ関係';
		$Property{L008} = 1;
		$Property{L009} = '鶴亀メール・要望関係／問い合わせ窓口';
		$Property{L010} = 1;
		$Property{L011} = '秀丸エディタβ版';
		$Property{L012} = 1;
		$Property{L013} = '公開マクロ サポート会議室（秀丸エディタ関連）';
		$Property{L014} = 1;
		$Property{L015} = '公開マクロ サポート会議室（鶴亀メール関連）';
		$Property{L016} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;

	# ETC
	} else {
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;
	}

	# 掲示板ごとのフォルダプロパティ定義の連想配列リファレンスを返す
	return \%Property;
}

#####  掲示板自動判別  #####################################################
sub AutoSelect {
	my %AutoHOST;
	my %AutoURL;
	my %AutoHTML;

	# URLから判断するための定義
	$AutoURL{'hidesoft'}			= sub {
		my $STR = shift;
		if ($STR =~ m#^http://www.maruo.co.jp/hidesoft/#s) {
			return 'hidesoft', 1;
		}
	};
	$AutoURL{'Canopus'}			= sub {
		my $STR = shift;
		if ($STR =~ m#^http://www.maruo.co.jp/Canopus/#s) {
			return 'Canopus', 1;
		}
	};
	$AutoURL{'turukame'}			= sub {
		my $STR = shift;
		if ($STR =~ m#^http://www.maruo.co.jp/turukame/#s) {
			return 'turukame', 1;
		}
	};

	# 自動判別定義を返す
	return ( HTML => \%AutoHTML, URL => \%AutoURL );
}

#####  掲示板毎の設定  #####################################################
sub SetBBSdef {
	my ($BBS_Name, $BBS_Ver) = @_;
	my (%Basic, %CMT, %Reg, %Prm);
	$CMT{Head}{Parent}{Method} = 'LIB';
	$CMT{Head}{Parent}{URL} = 'Read';
	$CMT{Head}{Mode} = 'ALL';
	($CMT{Head}{Child}{Method}, $CMT{Head}{Child}{URL}) = ('LIB', 'Read');
	@{$Prm{Type}} = ('Topic1', 'Topic2', 'Date');
	$Prm{Main}{Found} = 'Date';
	%{$Reg{Main}{Date}} = (Value => 'AUTO', No => 4);
	$Prm{Pages}{Main}{Method} = 'GET';
	$Basic{Http}{Cookie} = 'HIDENET=MAILADDRESS='.$INCM->GetParam('ID', 'L').'&PASSWORD='.$INCM->GetParam('Pass', 'L');

# スクリプト種別ごとの解析用定義
	# 秀シリーズサポートフォーラム
	if ($BBS_Name eq 'hidesoft') {
		$CMT{Head}{Parent}{Type} = 'Fix';
		$CMT{Head}{Child}{Type}  = 'Fix';
		$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix} = '';
		$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Sub => TITLE, '
				 .'Mes => CONTENT,Icon => CHARACTERNO';
		$CMT{Head}{Child}{FixCMT} .= ', Res => n';
		$CMT{Head}{Parent}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/hidesoft/ACTION=council.asp?c=nw&i=$CmtNo";';
		$CMT{Head}{Child}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/hidesoft/ACTION=council.asp?c=rw&i=$CmtNo";';

		if ($INCM->GetParam('Room1', 'L')) {
			%{$CMT{Files}{'001'}{Title}} = (Value => '01-サイトー企画へのご意見', Mode => 'Fix');
			$CMT{Files}{'001'}{Point} = $INCM->GetParam('Point1', 'L');
		}
		if ($INCM->GetParam('Room2', 'L')) {
			%{$CMT{Files}{'002'}{Title}} = (Value => '02-秀丸エディタ 情報交換', Mode => 'Fix');
			$CMT{Files}{'002'}{Point} = $INCM->GetParam('Point2', 'L');
		}
		if ($INCM->GetParam('Room3', 'L')) {
			%{$CMT{Files}{'003'}{Title}} = (Value => '03-秀Term 情報交換', Mode => 'Fix');
			$CMT{Files}{'003'}{Point} = $INCM->GetParam('Point3', 'L');
		}
		if ($INCM->GetParam('Room4', 'L')) {
			%{$CMT{Files}{'004'}{Title}} = (Value => '04-秀丸エディタ マクロ作者会議室', Mode => 'Fix');
			$CMT{Files}{'004'}{Point} = $INCM->GetParam('Point4', 'L');
		}
		if ($INCM->GetParam('Room5', 'L')) {
			%{$CMT{Files}{'005'}{Title}} = (Value => '05-秀Caps/秀見え/その他秀シリーズ会議室', Mode => 'Fix');
			$CMT{Files}{'005'}{Point} = $INCM->GetParam('Point5', 'L');
		}
		if ($INCM->GetParam('Room6', 'L')) {
			%{$CMT{Files}{'006'}{Title}} = (Value => '06-秀Term スクリプト作者会議室', Mode => 'Fix');
			$CMT{Files}{'006'}{Point} = $INCM->GetParam('Point6', 'L');
		}
		if ($INCM->GetParam('Room7', 'L')) {
			%{$CMT{Files}{'007'}{Title}} = (Value => '07-横取り丸関連ソフト 会議室', Mode => 'Fix');
			$CMT{Files}{'007'}{Point} = $INCM->GetParam('Point7', 'L');
		}
		if ($INCM->GetParam('Room8', 'L')) {
			%{$CMT{Files}{'008'}{Title}} = (Value => '08-鶴亀メール 情報交換', Mode => 'Fix');
			$CMT{Files}{'008'}{Point} = $INCM->GetParam('Point8', 'L');
		}
		if ($INCM->GetParam('Room9', 'L')) {
			%{$CMT{Files}{'009'}{Title}} = (Value => '09-秀丸本の出版企画', Mode => 'Fix');
			$CMT{Files}{'009'}{Point} = $INCM->GetParam('Point9', 'L');
		}
		if ($INCM->GetParam('Room10', 'L')) {
			%{$CMT{Files}{'010'}{Title}} = (Value => '10-秀丸Ｑ＆Ａ集 会議室', Mode => 'Fix');
			$CMT{Files}{'010'}{Point} = $INCM->GetParam('Point10', 'L');
		}

		$Basic{Topic1}{EvalUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; $Uri =~ s#/hidesoft/t(\d{4})#/hidesoft/$No/t$1#; $Uri';
		%{$Prm{Pages}{Topic1}{NextPage}} = (Found => '<A HREF="\d*/?(t\d{4}\.html)">\d{4}', Type => 'Anchor', Match => 1);
		%{$Prm{Pages}{Topic1}{NextPage}{GetAction}} = (Type => 'Uri');
		$Prm{Topic1}{Step} = "\n";
		$Prm{Topic1}{StepTop} = '</TR>';
		$Prm{Topic1}{StepBottom} = '</TABLE>';
		$Prm{Topic1}{Uri} = '\'/hidesoft/council.asp?c=mp&i=\'.($DATA->GetRound(\'CMT\', \'No\') - 1).\'&m=3\'';
		$Prm{Topic1}{Found} = 'List';
		%{$Reg{Topic1}{List}} = (Value => '<A HREF="\d*/?(t\d{4}\.html)">', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic1}{InfoMes} = '#FixTitle# GetMonth#Page#:';

		$Basic{Topic2}{EvalUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; $Uri =~ s#/hidesoft/t(\d{4})#/hidesoft/$No/t$1#; $Uri';
		$Prm{Topic2}{List} = 'Topic1';
		$Prm{Topic2}{Step} = "\n";
		$Prm{Topic2}{StepTop} = '</FORM>';
		$Prm{Topic2}{StepBottom} = '<HR>';
		$Prm{Topic2}{Found} = 'List';
		%{$Reg{Topic2}{List}} = (Value => '^<IMG SRC="[\.\/]+_image/[^>]+> <A HREF="(.*?\.html)[^"]*"', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic2}{ReadPoint} = 'None';
		$Prm{Topic2}{InfoMes} = '#FixTitle# GetTree#Page#:';

		$Prm{Main}{ReadPoint} = 'None';
		$Prm{Main}{BaseUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; \'/hidesoft/\'.$No.\'/\'';
		$Prm{Main}{List} = 'Topic2';
		$Prm{Main}{Step} = '<!-- HIDENET_ENDMSG -->';
		$Prm{Main}{StepTop} = '<!-- HIDENET_BOARD';
		$Prm{Main}{InfoMes} = '#FixTitle# Reading#Page#:';
		%{$Reg{Main}{Num}}     = (Value => '<!-- HIDENET_MSG hidesoft.\d+.(\d+).\d+.\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{ResNum}}  = (Value => '<!-- HIDENET_MSG hidesoft.\d+.\d+.(\d+).\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{Name}}    = (Value => '<!-- HIDENET_MSG hidesoft.\d+.\d+.\d+.\".*?\".\"(.*?)\"', Match => 1, No => 2, Opt => 'm');
		%{$Reg{Main}{Title}}   = (Value => '<!-- HIDENET_MSG hidesoft.\d+.\d+.\d+.\"(.*?)\".\".*?\"', Match => 1, No => 3, Opt => 'm');
		%{$Reg{Main}{Comment}} = (Value => '\d+ -->(.*?)<!-- HIDENET_ENDMSG -->', Match => 1, No => 5);

	# カノープスサポートフォーラム
	} elsif ($BBS_Name eq 'Canopus') {
		$CMT{Head}{Parent}{Type} = 'Fix';
		$CMT{Head}{Child}{Type}  = 'Fix';
		$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix} = '';
		$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Sub => TITLE, '
				 .'Mes => CONTENT,Icon => CHARACTERNO';
		$CMT{Head}{Child}{FixCMT} .= ', Res => n';
		$CMT{Head}{Parent}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/Canopus/ACTION=council.asp?c=nw&i=$CmtNo";';
		$CMT{Head}{Child}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/Canopus/ACTION=council.asp?c=rw&i=$CmtNo";';

		if ($INCM->GetParam('Room1', 'L')) {
			%{$CMT{Files}{'001'}{Title}} = (Value => '01-グラフィックス', Mode => 'Fix');
			$CMT{Files}{'001'}{Point} = $INCM->GetParam('Point1', 'L');
		}
		if ($INCM->GetParam('Room2', 'L')) {
			%{$CMT{Files}{'002'}{Title}} = (Value => '02-DV/ビデオ編集', Mode => 'Fix');
			$CMT{Files}{'002'}{Point} = $INCM->GetParam('Point2', 'L');
		}
		if ($INCM->GetParam('Room3', 'L')) {
			%{$CMT{Files}{'003'}{Title}} = (Value => '03-オーディオ/パーツ', Mode => 'Fix');
			$CMT{Files}{'003'}{Point} = $INCM->GetParam('Point3', 'L');
		}
		if ($INCM->GetParam('Room4', 'L')) {
			%{$CMT{Files}{'004'}{Title}} = (Value => '04-ノンサポートソフトウェア', Mode => 'Fix');
			$CMT{Files}{'004'}{Point} = $INCM->GetParam('Point4', 'L');
		}
		if ($INCM->GetParam('Room5', 'L')) {
			%{$CMT{Files}{'005'}{Title}} = (Value => '05-ユーザーフォーラム', Mode => 'Fix');
			$CMT{Files}{'005'}{Point} = $INCM->GetParam('Point5', 'L');
		}
		if ($INCM->GetParam('Room6', 'L')) {
			%{$CMT{Files}{'006'}{Title}} = (Value => '06-TV/MPEG/DVD', Mode => 'Fix');
			$CMT{Files}{'006'}{Point} = $INCM->GetParam('Point6', 'L');
		}

		$Basic{Topic1}{EvalUri} = 'my $No = substr($DATA->GetRound(\'CMT\', \'No\'),2,1); $Uri =~ s#/Canopus/thr#/Canopus/$No/thr#; $Uri';
		%{$Prm{Pages}{Topic1}{NextPage}} = (Found => '<A HREF="(\d*/?thr\.asp\?p=t\d{4}\.html)">\d{4}', Type => 'Anchor', Match => 1);
		%{$Prm{Pages}{Topic1}{NextPage}{GetAction}} = (Type => 'Uri');
		$Prm{Topic1}{Step} = "\n";
		$Prm{Topic1}{StepTop} = '</TR>';
		$Prm{Topic1}{StepBottom} = '</TABLE>';
		$Prm{Topic1}{Uri} = '\'/Canopus/council.asp?c=mp&i=\'.(substr($DATA->GetRound(\'CMT\', \'No\'),2,1) - 1).\'&m=3\'';
		$Prm{Topic1}{Found} = 'List';
		%{$Reg{Topic1}{List}} = (Value => '<A HREF="(\d*/?thr\.asp\?p=t\d{4}\.html)">', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic1}{InfoMes} = '#FixTitle# GetMonth#Page#:';

		$Basic{Topic2}{EvalUri} = 'my $No = substr($DATA->GetRound(\'CMT\', \'No\'),2,1); $Uri =~ s#/Canopus/thr#/Canopus/$No/thr#; $Uri';
		$Prm{Topic2}{List} = 'Topic1';
		$Prm{Topic2}{Step} = "\n";
		$Prm{Topic2}{StepTop} = '</FORM>';
		$Prm{Topic2}{StepBottom} = '<HR>';
		$Prm{Topic2}{Found} = 'List';
		%{$Reg{Topic2}{List}} = (Value => '^<IMG SRC="[\.\/]+_image/[^>]+> <A HREF="(.*?\.html)[^"]*"', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic2}{ReadPoint} = 'None';
		$Prm{Topic2}{InfoMes} = '#FixTitle# GetTree#Page#:';

		$Prm{Main}{ReadPoint} = 'None';
		$Prm{Main}{BaseUri} = '\'/Canopus/\'.substr($DATA->GetRound(\'CMT\', \'No\'),2,1).\'/\'';
		$Prm{Main}{List} = 'Topic2';
		$Prm{Main}{Step} = '<!-- HIDENET_ENDMSG -->';
		$Prm{Main}{StepTop} = '<!-- HIDENET_BOARD';
		$Prm{Main}{InfoMes} = '#FixTitle# Reading#Page#:';
		%{$Reg{Main}{Num}}     = (Value => '<!-- HIDENET_MSG Canopus.\d+.(\d+).\d+.\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{ResNum}}  = (Value => '<!-- HIDENET_MSG Canopus.\d+.\d+.(\d+).\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{Name}}    = (Value => '<!-- HIDENET_MSG Canopus.\d+.\d+.\d+.\".*?\".\"(.*?)\"', Match => 1, No => 2, Opt => 'm');
		%{$Reg{Main}{Title}}   = (Value => '<!-- HIDENET_MSG Canopus.\d+.\d+.\d+.\"(.*?)\".\".*?\"', Match => 1, No => 3, Opt => 'm');
		%{$Reg{Main}{Comment}} = (Value => '\d+ -->(.*?)<!-- HIDENET_ENDMSG -->', Match => 1, No => 5);

	# 秀丸エディタβ版＆鶴亀メール常連さんフォーラム
	} elsif ($BBS_Name eq 'turukame') {
		$CMT{Head}{Parent}{Type} = 'Fix';
		$CMT{Head}{Child}{Type}  = 'Fix';
		$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix} = '';
		$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Sub => TITLE, '
				 .'Mes => CONTENT,Icon => CHARACTERNO';
		$CMT{Head}{Child}{FixCMT} .= ', Res => n';
		$CMT{Head}{Parent}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/turukame/ACTION=council.asp?c=nw&i=$CmtNo";';
		$CMT{Head}{Child}{URL} = 'my $CmtNo = $DATA->GetRound(\'CMT\', \'No\'); $CmtNo--; my $U = "/turukame/ACTION=council.asp?c=rw&i=$CmtNo";';

		if ($INCM->GetParam('Room1', 'L')) {
			%{$CMT{Files}{'001'}{Title}} = (Value => '01-鶴亀メール・バグ関係', Mode => 'Fix');
			$CMT{Files}{'001'}{Point} = $INCM->GetParam('Point1', 'L');
		}
		if ($INCM->GetParam('Room2', 'L')) {
			%{$CMT{Files}{'002'}{Title}} = (Value => '02-鶴亀メール・要望関係／問い合わせ窓口', Mode => 'Fix');
			$CMT{Files}{'002'}{Point} = $INCM->GetParam('Point2', 'L');
		}
		if ($INCM->GetParam('Room3', 'L')) {
			%{$CMT{Files}{'003'}{Title}} = (Value => '03-秀丸エディタβ版', Mode => 'Fix');
			$CMT{Files}{'003'}{Point} = $INCM->GetParam('Point3', 'L');
		}
		if ($INCM->GetParam('Room4', 'L')) {
			%{$CMT{Files}{'004'}{Title}} = (Value => '04-公開マクロ サポート会議室（秀丸エディタ関連）', Mode => 'Fix');
			$CMT{Files}{'004'}{Point} = $INCM->GetParam('Point4', 'L');
		}
		if ($INCM->GetParam('Room5', 'L')) {
			%{$CMT{Files}{'005'}{Title}} = (Value => '05-公開マクロ サポート会議室（鶴亀メール関連）', Mode => 'Fix');
			$CMT{Files}{'005'}{Point} = $INCM->GetParam('Point5', 'L');
		}

		$Basic{Topic1}{EvalUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; $Uri =~ s#/turukame/t(\d{4})#/turukame/$No/t$1#; $Uri';
		%{$Prm{Pages}{Topic1}{NextPage}} = (Found => '<A HREF="\d*/?(t\d{4}\.html)">\d{4}', Type => 'Anchor', Match => 1);
		%{$Prm{Pages}{Topic1}{NextPage}{GetAction}} = (Type => 'Uri');
		$Prm{Topic1}{Step} = "\n";
		$Prm{Topic1}{StepTop} = '</TR>';
		$Prm{Topic1}{StepBottom} = '</TABLE>';
		$Prm{Topic1}{Uri} = '\'/turukame/council.asp?c=mp&i=\'.($DATA->GetRound(\'CMT\', \'No\') - 1).\'&m=3\'';
		$Prm{Topic1}{Found} = 'List';
		%{$Reg{Topic1}{List}} = (Value => '<A HREF="\d*/?(t\d{4}\.html)">', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic1}{InfoMes} = '#FixTitle# GetMonth#Page#:';

		$Basic{Topic2}{EvalUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; $Uri =~ s#/turukame/t(\d{4})#/turukame/$No/t$1#; $Uri';
		$Prm{Topic2}{List} = 'Topic1';
		$Prm{Topic2}{Step} = "\n";
		$Prm{Topic2}{StepTop} = '</FORM>';
		$Prm{Topic2}{StepBottom} = '<HR>';
		$Prm{Topic2}{Found} = 'List';
		%{$Reg{Topic2}{List}} = (Value => '^<IMG SRC="[\.\/]+_image/[^>]+> <A HREF="(.*?\.html)[^"]*"', Match => 1, No => 1, Opt => 'm');
		$Prm{Topic2}{ReadPoint} = 'None';
		$Prm{Topic2}{InfoMes} = '#FixTitle# GetTree#Page#:';

		$Prm{Main}{ReadPoint} = 'None';
		$Prm{Main}{BaseUri} = 'my $No = $DATA->GetRound(\'CMT\', \'No\'); $No++; $No--; \'/turukame/\'.$No.\'/\'';
		$Prm{Main}{List} = 'Topic2';
		$Prm{Main}{Step} = '<!-- HIDENET_ENDMSG -->';
		$Prm{Main}{StepTop} = '<!-- HIDENET_BOARD';
		$Prm{Main}{InfoMes} = '#FixTitle# Reading#Page#:';
		%{$Reg{Main}{Num}}     = (Value => '<!-- HIDENET_MSG turukame.\d+.(\d+).\d+.\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{ResNum}}  = (Value => '<!-- HIDENET_MSG turukame.\d+.\d+.(\d+).\".*?\".\".*?\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{Name}}    = (Value => '<!-- HIDENET_MSG turukame.\d+.\d+.\d+.\".*?\".\"(.*?)\"', Match => 1, No => 2, Opt => 'm');
		%{$Reg{Main}{Title}}   = (Value => '<!-- HIDENET_MSG turukame.\d+.\d+.\d+.\"(.*?)\".\".*?\"', Match => 1, No => 3, Opt => 'm');
		%{$Reg{Main}{Comment}} = (Value => '\d+ -->(.*?)<!-- HIDENET_ENDMSG -->', Match => 1, No => 5);

	}

	# 解析用定義を返す
	return ( Basic => \%Basic, CMT => \%CMT, Reg => \%Reg, Prm => \%Prm);
}

1;
