#####  INCM plug-in for CJ-Club (http://www.cj-c.com/)
 ####                                Ver0.70 　2004/01/01 by GETWILD'74

package CJ_Club;

# モジュールのパス設定
$_=$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_OldLog,過去ログ番号
 #L005=L,,----- ＢＢＳ等の各種パラメータ -----
 #L006=P,L_COLOR,記事色.
 #L007=P,L_COLOR2,枠線色.
 #L008=L,,↓各種入力項目
 #L009=TS,L_Opt2,記事内容.
 #L010=L,,↓アイコン指定
 #L011=TS,L_ICON,選択アイコン.
 #L012=L,,----- 添付ファイルのダウンロード -----
 #L013=C,L_FileDown,ダウンロードする.
 #L014=L,,----- フォーム上の各種設定 -----
 #L015=L,,  -- メッセージモード --
 #L016=R,L_Opt1=0,通常.
 #L017=R,L_Opt1=1,図表\.
 #L018=L,,  -- アップロードファイル --
 #L019=F,L_File,送信するファイル選択.
 #L020=L,,----- 正規表\現解析の設定 -----
 #L021=L,,  -- 記事全般 --
 #L022=TS,L_PrmMain:HeadBody,記事ヘッダと本文の区切り.
 #L023=TS,L_PrmMain:Found,記事と判断する部分.
 #L024=TS,L_PrmMain:PassFound,無条件に記事とする正規表\現.
 #L025=L,,  -- 記事情報(親記事) --
 #L026=TS,L_RegMain:Num,記事番号.
 #L027=TS,L_RegMain:ResNum,レス元記事番号.
 #L028=TS,L_RegMain:Title,題名.
 #L029=TS,L_RegMain:Name,発言者名.
 #L030=TS,L_RegMain:Date,記事の日付書式.
 #L031=TS,L_RegMain:Url,ＵＲＬ.
 #L032=TS,L_RegMain:Mail,メールアドレス.
 #L033=TS,L_RegMain:Comment,本文.
 #L034=TS,L_RegMain:Attachment,添付ファイル.
 #L035=L,,  -- 記事情報(子記事) --
 #L036=TS,L_RegMain:NumC,記事番号.
 #L037=TS,L_RegMain:ResNumC,レス元記事番号.
 #L038=TS,L_RegMain:TitleC,題名.
 #L039=TS,L_RegMain:NameC,発言者名.
 #L040=TS,L_RegMain:DateC,記事の日付書式.
 #L041=TS,L_RegMain:UrlC,ＵＲＬ.
 #L042=TS,L_RegMain:MailC,メールアドレス.
 #L043=TS,L_RegMain:CommentC,本文.
 #L044=TS,L_RegMain:AttachmentC,添付ファイル.
 #L045=L,,  -- スレッド解析 --
 #L046=TS,L_PrmMain:Root,親記事判定.
 #L047=TS,L_PrmMain:Split,記事の切り分け.
 #L048=L,,  -- ツリー解析 --
 #L049=TS,L_PrmTopic1:Found,記事と判断する部分.
 #L050=TS,L_RegTopic1:Num,記事番号.
 #L051=TS,L_RegTopic1:ResNum,レス元記事番号.
 #L052=TS,L_RegTopic1:List,記事のURLリスト.
 #L053=TS,L_RegMain:PullList,URLリストの取出方法.
 #L054=TS,L_PrmTopic1:Step,記事区切り.
 #L055=TS,L_PrmTopic1:StepTop,ページ頭読み飛ばし.
 #L056=TS,L_PrmTopic1:StepBottom,ページ末尾読み飛ばし.
 #L057=TS,L_PrmPages:Topic1:NextPage,ページめくり.
 #L058=TS,L_PrmTopic1:Fram,フレームの引数.
 #L059=TS,L_PrmTopic1:Mode,CGIモードの引数.
 #L060=L,,  -- 記事の読込定義 --
 #L061=TS,L_PrmMain:Step,記事の区切り.
 #L062=TS,L_PrmMain:StepTop,ページ頭読み飛ばし.
 #L063=TS,L_PrmMain:StepBottom,ページ末尾読み飛ばし.
 #L064=TS,L_PrmPages:Main:NextPage,ページめくり.
 #L065=TS,L_PrmMain:Fram,フレームの引数.
 #L066=TS,L_PrmMain:Mode,CGIモードの引数.
 #L067=L,,----- プラグインデバッグ用設定 -----
 #L068=C,DEBUG=1,動作ログを保存する
 #L069=.
#[/IniDIALOG]

#####  初期化と巡回  #######################################################

# INCM_MODULEクラスのインスタンス生成(生成時に初期化も行う)
if ($INCM = new INCM_MODULE) {

	# 巡回処理
	$INCM->Main;

}
exit;

#####  フォルダプロパティの定義  ###########################################
sub SetProperty {
	my ($BBS_Name, $BBS_Ver) = @_;
	my %Property;

	# フォルダプロパティ書き換え用の定義
	# Child Tree
	if ($BBS_Name eq 'Child Tree') {
		$Property{PARAM1} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L003} = 1;
		$Property{L004} = 1;
		$Property{L005} = 1;
		$Property{L006} = 1;
		$Property{L007} = 1;
		$Property{L008} = 1;
		$Property{L009} = 1;
		$Property{L010} = 1;
		$Property{L011} = 1;
		$Property{L012} = 1;
		$Property{L013} = 1;
		$Property{L014} = 1;
		$Property{L015} = 1;
		$Property{L016} = 1;
		$Property{L017} = 1;
		$Property{L018} = 1;
		$Property{L019} = 1;
		$Property{L020} = 1;
		$Property{L021} = 1;
		$Property{L022} = 1;
		$Property{L023} = 1;
		$Property{L024} = 1;
		$Property{L025} = 1;
		$Property{L026} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;
		$Property{L030} = 1;
		$Property{L031} = 1;
		$Property{L032} = 1;
		$Property{L033} = 1;
		$Property{L034} = 1;
		$Property{L048} = 1;
		$Property{L049} = 1;
		$Property{L050} = 1;
		$Property{L051} = 1;
		$Property{L052} = 1;
		$Property{L053} = 1;
		$Property{L054} = 1;
		$Property{L055} = 1;
		$Property{L056} = 1;
		$Property{L057} = 1;
		$Property{L058} = 1;
		$Property{L059} = 1;
		$Property{L060} = 1;
		$Property{L061} = 1;
		$Property{L062} = 1;
		$Property{L063} = 1;
		$Property{L064} = 1;
		$Property{L065} = 1;
		$Property{L066} = 1;
		$Property{L067} = 1;
		$Property{L068} = 1;
		$Property{L069} = 1;

	# Child Forum
	} elsif ($BBS_Name eq 'Child Forum') {
		$Property{PARAM1} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L020} = 1;
		$Property{L021} = 1;
		$Property{L022} = 1;
		$Property{L023} = 1;
		$Property{L024} = 1;
		$Property{L025} = 1;
		$Property{L026} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;
		$Property{L030} = 1;
		$Property{L031} = 1;
		$Property{L032} = 1;
		$Property{L033} = 1;
		$Property{L034} = 1;
		$Property{L045} = 1;
		$Property{L046} = 1;
		$Property{L047} = 1;
		$Property{L048} = 1;
		$Property{L049} = 1;
		$Property{L050} = 1;
		$Property{L051} = 1;
		$Property{L052} = 1;
		$Property{L053} = 1;
		$Property{L054} = 1;
		$Property{L055} = 1;
		$Property{L056} = 1;
		$Property{L057} = 1;
		$Property{L058} = 1;
		$Property{L059} = 1;
		$Property{L060} = 1;
		$Property{L061} = 1;
		$Property{L062} = 1;
		$Property{L063} = 1;
		$Property{L064} = 1;
		$Property{L065} = 1;
		$Property{L066} = 1;
		$Property{L067} = 1;
		$Property{L068} = 1;
		$Property{L069} = 1;

	# I-BOARD/2001
	} elsif ($BBS_Name =~ /I-BOARD2001_/) {
		$Property{PARAM1} = 1;
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L020} = 1;
		$Property{L021} = 1;
		$Property{L022} = 1;
		$Property{L023} = 1;
		$Property{L024} = 1;
		$Property{L025} = 1;
		$Property{L026} = 1;
		$Property{L027} = 1;
		$Property{L028} = 1;
		$Property{L029} = 1;
		$Property{L030} = 1;
		$Property{L031} = 1;
		$Property{L032} = 1;
		$Property{L033} = 1;
		$Property{L034} = 1;
		$Property{L035} = 1;
		$Property{L036} = 1;
		$Property{L037} = 1;
		$Property{L038} = 1;
		$Property{L039} = 1;
		$Property{L040} = 1;
		$Property{L041} = 1;
		$Property{L042} = 1;
		$Property{L043} = 1;
		$Property{L044} = 1;
		$Property{L045} = 1;
		$Property{L046} = 1;
		$Property{L047} = 1;
		$Property{L060} = 1;
		$Property{L061} = 1;
		$Property{L062} = 1;
		$Property{L063} = 1;
		$Property{L064} = 1;
		$Property{L065} = 1;
		$Property{L066} = 1;
		$Property{L067} = 1;
		$Property{L068} = 1;
		$Property{L069} = 1;

	# ETC
	} else {
		$Property{L000} = 1;
		$Property{L001} = 1;
		$Property{L002} = 1;
		$Property{L067} = 1;
		$Property{L068} = 1;
		$Property{L069} = 1;
	}

	# 掲示板ごとのフォルダプロパティ定義の連想配列リファレンスを返す
	return \%Property;
}

#####  掲示板自動判別  #####################################################
sub AutoSelect {
	my %AutoHOST;
	my %AutoURL;
	my %AutoHTML;

	# HTMLから判断するための定義
	$AutoHTML{'ChildTree'}			= sub {
		my $STR = shift;
		return if($Class->{BbsTemp} =~ /I-BOARD2001_/);
		if ($STR =~ /<!--Child Tree v([\d\.]+)-->/s) {
			$Class->{BbsTemp} = 'Child Tree'; $Class->{VerTemp} = $1;
		} elsif ($STR =~ /<\/head>/i) {
			return $Class->{BbsTemp}, $Class->{VerTemp};
		}
	};
	$AutoHTML{'ChildForum'}			= sub {
		my $STR = shift;
		return if($Class->{BbsTemp} =~ /I-BOARD2001_/);
		if ($STR =~ /<!--Child Forum v([\d\.]+)-->/s) {
			$Class->{BbsTemp} = 'Child Forum'; $Class->{VerTemp} = $1;
		} elsif ($STR =~ /<\/head>/i) {
			return $Class->{BbsTemp}, $Class->{VerTemp};
		}
	};
	$AutoHTML{'I-BOARD2001'}			= sub {
		my $STR = shift;
		if ($STR =~ /<!--I-BOARD\/2001 v([\d\.]+)-->/s) {
			$Class->{BbsTemp} = 'I-BOARD2001_'; $Class->{VerTemp} = $1;
		} elsif ($STR =~ /<center><a name="\d+"><\/a>/i) {
			return $Class->{BbsTemp}.'Simple', $Class->{VerTemp};
		} elsif ($STR =~ /<a name="\d+"><hr width="90%" color="[^"]+" size=1><\/a>/i) {
			return $Class->{BbsTemp}.'Fukidasi1', $Class->{VerTemp};
		} elsif ($STR =~ /<center><a name="\d+"><hr width="90%" color="[^"]+"><\/a>/i) {
			$Class->{Check} = 1;
		} elsif ($Class->{Check} && $STR =~ /<table width="85%" bgcolor=/i) {
			$Class->{Type1} = 1;
		} elsif ($Class->{Check} && $STR =~ /<table border=0 cellspacing=0 cellpadding=0>/i) {
			$Class->{Type2} = 1;
		} elsif ($Class->{Type1} && $STR =~ /<td rowspan=3 width="10%"><\/td>/i) {
			return $Class->{BbsTemp}.'Normal', $Class->{VerTemp};
		} elsif ($Class->{Type1} && $STR =~ /<font color="[^"]+">■\d+\)/i) {
			return $Class->{BbsTemp}.'Lineres', $Class->{VerTemp};
		} elsif ($Class->{Type2} && $STR =~ /<table width="100%">/i) {
			return $Class->{BbsTemp}.'Fukidasi2', $Class->{VerTemp};
		} elsif ($Class->{Type2} && $STR =~ /<font color="[^"]+">■\d+\)/i) {
			return $Class->{BbsTemp}.'Fukidasi3', $Class->{VerTemp};
		} elsif ($STR =~ /<\/html>/i) {
			return $Class->{BbsTemp}, $Class->{VerTemp};
		} else {
			return;
		}
	};

	# 自動判別定義を返す
	return ( HTML => \%AutoHTML, URL => \%AutoURL );
}

#####  掲示板毎の設定  #####################################################
sub SetBBSdef {
	my ($BBS_Name, $BBS_Ver) = @_;
	my (%Basic, %CMT, %Reg, %Prm);
	$CMT{Files}{'001'}{Title}{Mode} = 'AUTO';
	$CMT{Head}{Parent}{Method} = 'POST';
	$CMT{Head}{Parent}{URL} = 'Read';
	$CMT{Head}{Mode} = 'ALL';
	($CMT{Head}{Child}{Method}, $CMT{Head}{Child}{URL}) = ('POST', 'Read');
	@{$Prm{Type}} = ('Date');
	$Prm{Main}{Found} = 'Date';
	%{$Reg{Main}{Date}} = (Value => 'AUTO', No => 4);
	$Prm{Pages}{Main}{Method} = 'GET';

# スクリプト種別ごとの解析用定義
	# Child Tree
	if ($BBS_Name eq 'Child Tree') {
		$Prm{Main}{Step} = '</select>';
		$Prm{Main}{StepTop} = '<hr';
		$CMT{Head}{Parent}{Type} = 'Fix';
		$CMT{Head}{Child}{Type}  = 'Dynamic';
		$CMT{Head}{Child}{Dynamic} = 'Num:kiji, TreeNo:type, eval(MainSpace + 15):space';
		$CMT{Head}{Parent}{Fix} = 'mode=wri&kiji=0&space=0&type=0';
		$CMT{Head}{Child}{Fix} = 'mode=wri';
		$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Name => name, Mail => email, Sub => d_may, '
				 .'Mes => comment, HP => url, Key => delkey';

		%{$Prm{Pages}{Topic1}{NextPage}} = (Found => '<a href="[^\?]+\?(page=\d+[^"]+)">次のツリ\x81\x5b\d+＞</a>', Type => 'Anchor', Match => 1);

		$CMT{Files}{'001'}{Title}{Cut} = '\[All Tree[^\]]*\]';
		@{$Prm{Type}} = ('Topic1', 'Date');
		$Prm{Topic1}{ReadPoint} = 'None';
		$Prm{Main}{ReadPoint} = 'None';
		$Prm{Topic1}{Step}   = '</td>';
		$Prm{Topic1}{Found} = 'List';
		$Prm{Main}{Found} = 'Title';
		%{$Reg{Topic1}{TreeNo}}    = (Value => '\n<a href=\"[^\?]+\?.*?mode=all\&n[au]mber=0*(\d+)[^\"]*\">(<img|[^<]+?)', Match => 1, No => 2);
		%{$Reg{Topic1}{List}} = (Value => '\n<a href=\"[^\?]+\?(.*?mode=all\&n[au]mber=0*\d+[^\"]*)\">(<img|[^<]+?)', Match => 1, No => 1, Opt => 'm');
		$Prm{Main}{List} = 'Topic1';
		$Prm{Main}{PullList} = 'Shift';
		%{$Reg{Main}{TreeNo}}  = (SetParse => 1);
		%{$Reg{Main}{Num}}    = (Value => '<font color=[^>]+>\[(\d+)\]<\/font>', Match => 1, No => 1);
		%{$Reg{Main}{ResNum}} = (Value => '>▲\[ (\d+) \]<', Match => 1, No => 1);
		%{$Reg{Main}{Name}}   = (Value => '□投稿者\/ (<a href[^>]+>)?([^ <]+)( |<\/a>)', Match => 2, No => 2, Opt => 'm');
		%{$Reg{Main}{Mail}}   = (Value => '□投稿者\/ <a href="mailto:([^"]+)">[^ <]+<\/a>', Match => 1, No => 3);
		%{$Reg{Main}{Title}}  = (Value => '<b>(.*?)<\/b>', Match => 1, No => 3);
		%{$Reg{Main}{Url}} = (Value => '<a href="([^"]+)" target=_blank>[^<]+</a>', Match => 1, No => 3);

		if ($BBS_Ver >= 8.4) { #v8.4 v8.5
			$Prm{Topic1}{StepTop}   = 'nowrap>';
			$Prm{Main}{StepTop} = '</td></tr></table><br>';
			$Prm{Main}{HeadBody} = '</small>';
			%{$Reg{Main}{Num}} = (Value => '<font color=[^>]+>■(\d+)<\/font>', Match => 1, No => 1);
			%{$Reg{Main}{Title}} = (Value => '<b><font color=#[^>]+>(.*?)</font></b>', Match => 1, No => 3);
			%{$Reg{Main}{Mail}} = (Value => '<a href="mailto:([^"]+)">＠</a>', Match => 1, No => 3);
			%{$Reg{Main}{Url}} = (Value => '<br><a href="([^"]+)" target=_blank>[^<]+</a>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '(.*)<div align=right>', Match => 1, No => 5);
			%{$Reg{Main}{Space}}   = (Value => '<a href="[^\?]+\?.*?mode=one&namber=\d+&type=\d+&space=(\d+)&no=\d+">返信</a>', Match => 1, No => 4, Str => 'Body');
		} elsif ($BBS_Ver >= 5.0 && $BBS_Ver < 8.4) { #v5.2 v5.8 v5.9 v6.2 v6.4 v7.4v7.5 v7.7
			$Prm{Main}{StepTop} = '<a name';
			$Prm{Main}{HeadBody} = '</small>';
			%{$Reg{Main}{Title}}   = (Value => '\n([^<]+)<\/font><\/th><\/tr>', Match => 1, No => 3);
			%{$Reg{Main}{Title}}   = (Value => '<font[^>]+>([^<]+)<\/font><\/th><\/tr>', Match => 1, No => 3) if ($BBS_Ver >=6);
			%{$Reg{Main}{Comment}} = (Value => '(.*)<div align=right>', Match => 1, No => 5);
			%{$Reg{Main}{Space}}   = (Value => '<a href="[^\?]+\?.*?mode=one&n[ua]mber=\d+&type=\d+&space=(\d+)&no=\d+">.*?(返信|コメント)</a>', Match => 1, No => 4, Str => 'Body');
		} else { # v3.3 v4.4 v4.3
			$Prm{Main}{Step} = '</div></td></tr></table><br>';
			$Prm{Main}{HeadBody} = '<blockquote>';
			$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix} = 'mode=msg';
			$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Name => name, Mail => email, Sub => subj, '
						 .'Mes => comment, HP => url, Key => pwd';
			%{$Reg{Main}{Num}} = (Value => '>NO\.(\d+)<', Match => 1, No => 1);
			%{$Reg{Main}{ResNum}}  = (Value => '>▲\[ (\d+) \]<', Match => 1, No => 2, Opt => 'm');
			%{$Reg{Main}{Title}}   = (Value => '<font[^>]+>\n?([^<]+)<\/font><\/th><\/tr><\/table>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '(.*?)<\/blockquote>', Match => 1, No => 5);
			%{$Reg{Main}{Space}}   = (Value => '<a href="[^\?]+\?.*?mode=one&n[ua]mber=\d+&type=\d+&space=(\d+)"><b>この記事に(返信|コメント)</b></a>', Match => 1, No => 4, Str => 'Body');
		}
		if ($INCM->GetParam('OldLog', 'L')) {
			if ($INCM->GetParam('OldLog', 'L') =~ /^(.*?)-(.*?)$/) { $ls = $1; $le = $2; }
			else { $ls = $le = $INCM->GetParam('OldLog', 'L'); }
			my @Uri;
			my $BaseUri = $INCM->GetParam('Uri');
			$BaseUri =~ s/[^\/]+\.cgi/srch.cgi/;
			$BaseUri .= '?no=0' if ($BaseUri !~ /\.cgi\?/);
			for (my $i = $ls; $i <= $le; $i++) {
				push (@Uri, $BaseUri.'&mode=dl&logs='.$i.'.txt');
			}
			$Basic{TreeList} = \@Uri;
			$Basic{HttpStep} = '</div></td></tr></table><br>';
			$Basic{HttpStepTop} = '<hr ';
			$Prm{HeadBody} = undef;
			$Reg{Num}     = '<font color=[^>]+>No\.(\d+)\/,1,1,m';
			$Reg{ResNum}  = '<div align=right>記事No\.(\d+) のレス,1,1';
			$Reg{Title}   = '<font color=[^>]+>No\.\d+\/([^<]+)<\/font><\/th><\/tr>,1,3';
			$Reg{Name}    = '■投稿者\/ (<a href[^>]+>)?([^ <]+)( |<\/a>),2,2';
			$Reg{Comment} = '</small>(.*?)</table>,1,5';
		}

	# Child Forum
	} elsif ($BBS_Name eq 'Child Forum') {
		$Prm{Main}{Step} = '</table>';
		$Prm{Main}{StepTop} = '<hr';
		$CMT{Head}{Mode} = 'Head&Parent';
		$CMT{Head}{Parent}{Type} = 'Fix';
		$CMT{Head}{Child}{Type}  = 'Dynamic';
		$CMT{Head}{Child}{Dynamic} = 'ResNum:kiji, ResNum:type';
		$CMT{Head}{Child}{Fix} = 'mode=wri';
		$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix}.'&no=new';
		$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = '';

		%{$Prm{Pages}{Topic1}{NextPage}} = (Found => '<input type=submit value="次のトピック\d+">', Type => 'Form', Step => '</form>');

		@{$Prm{Type}}    = ('Topic1','Thread');
		$Prm{Main}{Root}    = '■親(トピック|スレッド)/<a href=';
		$Prm{Topic1}{Found} = 'Num';
		$Prm{Topic1}{Step} = '</tr>';
		$Prm{Topic1}{StepTop} = '</td></tr></table><hr width=70% size=5>';
		$Prm{Topic1}{StepBottom} = '</center>';
		%{$Reg{Topic1}{Num}}    = (Value => '\n<a href=\"[^\?]+\?.*?mode=all\&n[au]mber=0*(\d+)[^\"]*\"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Topic1}{List}} = (Value => '\n<a href="[^\?]+\?([^"]+)">', Match => 1, No => 2);
		$Prm{Main}{List} = 'Topic1';
		$Prm{Main}{PullList} = 'Shift';
		%{$Reg{Main}{Num}}     = (Value => '<font color=[^>]+>\[(\d+)\]<\/font>', Match => 1, No => 1);
		%{$Reg{Main}{Name}}    = (Value => '□投稿者\/ (<a href[^>]+>)?([^ <]+)( |<\/a>)', Match => 2, No => 2);
		%{$Reg{Main}{Title}}   = (Value => "\n".'<font color=[^>]+>(.*?)</font></b>', Match => 1, No => 3);
		%{$Reg{Main}{Mail}}    = (Value => '□投稿者\/ <a href="mailto:([^"]+)"', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{Url}}     = (Value => '□U R L/ <a href="([^"]+)" target="_top">', Match => 1, No => 4);

		if ($BBS_Ver >= 0.0) { #v3.0
			$CMT{Head}{Parent}{Fix} = $CMT{Head}{Child}{Fix} = 'mode=wri';
			$CMT{Head}{Parent}{FixCMT} = $CMT{Head}{Child}{FixCMT} = 'Name => name, Mail => email, Sub => d_may, '
					 .'Mes => comment, HP => url, Key => delkey';
			$Prm{Main}{HeadBody} = '</small>';
			%{$Reg{Main}{Comment}} = (Value => '(.*)', Match => 1, No => 5);
		} else { # 
		}

	# I-BOARD/2001
	} elsif ($BBS_Name =~ /^I-BOARD2001_/) { # v2.1
		$CMT{Files}{'001'}{Title}{Cut} = ' \[Page:\d+\]';
		$Prm{Main}{ReadPoint} = 'None';
		%{$Prm{Pages}{Main}{NextPage}} = (Found => '<a href="\.\/ibbs\.cgi\?(no=\d+&page=\d+)">次の\d+スレッド＞<\/a>', Type => 'Anchor', Match => 1);
		$Prm{Main}{StepTop} = '</td></tr></table><br>';
		$Prm{Main}{Step} = '</div>';
		@{$Prm{Type}}    = ('Thread');
		$Prm{Main}{Found} = 'Date';
		$Prm{Main}{Root}    = '<td valign="top" width="10%" nowrap>親記事<br>';
		%{$Reg{Main}{Num}}     = (Value => '<td nowrap width="1%">■(\d+)</td>', Match => 1, No => 1);
		%{$Reg{Main}{Name}}    = (Value => '□投稿者\/ <b>([^ <]+)</b>', Match => 1, No => 2);
		%{$Reg{Main}{Title}}   = (Value => "\t\t".'<td bgcolor=[^>]+><font color=[^>]+><b>　(.*?)</b>', Match => 1, No => 3);
		%{$Reg{Main}{Mail}}    = (Value => '<a href="mailto:([^"]+)">＠<\/a>', Match => 1, No => 1, Opt => 'm');
		%{$Reg{Main}{Url}}     = (Value => '<br><a href="([^"]+)" target="_blank">.*?</a></td>', Match => 1, No => 4);
		%{$Reg{Main}{Comment}} = (Value => '<!--c-->(.*?)</td>', Match => 1, No => 5);

		if ($BBS_Name =~ /^I-BOARD2001_Normal/) {

		} elsif ($BBS_Name =~ /^I-BOARD2001_Lineres/) {
			$Prm{Main}{Step} = '<hr';
			%{$Reg{Main}{NumC}}     = (Value => '<font color=[^>]+>■(\d+)\)', Match => 1, No => 1, Opt => 'm');
			%{$Reg{Main}{NameC}}    = (Value => '\) (.*?) =\&gt; ', Match => 1, No => 2);
			%{$Reg{Main}{CommentC}} = (Value => '<!--c-->(.*?) <small>', Match => 1, No => 5);

		} elsif ($BBS_Name =~ /^I-BOARD2001_Fukidasi1/) {
			$Prm{Main}{Root}    = '<td>親記事<ul>';
			%{$Reg{Main}{Num}}     = (Value => '<td bgcolor=[^>]+><span style=[^>]+>■(\d+)　</span>', Match => 1, No => 1);
			%{$Reg{Main}{Name}}    = (Value => '<td>□投稿者\/ (.*?) <', Match => 1, No => 2);
			%{$Reg{Main}{Title}}   = (Value => "\t\t\t\t".'<font color=[^>]+><b>　(.*?)</b></font>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '<!--c-->(.*?)</ul>', Match => 1, No => 5);

		} elsif ($BBS_Name =~ /^I-BOARD2001_Fukidasi2/) {
			$Prm{Main}{Root}    = '<td valign="top" width="10%">親記事<br>';
			%{$Reg{Main}{Num}}     = (Value => '<td[^>]+><span style=[^>]+>■(\d+)　</span>', Match => 1, No => 1);
			%{$Reg{Main}{Name}}    = (Value => '<td colspan=\d>□投稿者\/ (.*?) <', Match => 1, No => 2);
			%{$Reg{Main}{Title}}   = (Value => "\t\t\t\t".'<font color=[^>]+><b>　(.*?)</b></font>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '<!--c-->(.*?)</font>', Match => 1, No => 5);

		} elsif ($BBS_Name =~ /^I-BOARD2001_Fukidasi3/) {
			$Prm{Main}{Step} = '<hr';
			$Prm{Main}{Root}    = '<td valign="top" width="10%">親記事<br>';
			%{$Reg{Main}{Num}}     = (Value => '<td[^>]+><span style=[^>]+>■(\d+)　</span>', Match => 1, No => 1);
			%{$Reg{Main}{Name}}    = (Value => '<td colspan=\d>□投稿者\/ (.*?) <', Match => 1, No => 2);
			%{$Reg{Main}{Title}}   = (Value => "\t\t\t\t".'<font color=[^>]+><b>　(.*?)</b></font>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '<!--c-->(.*?)</font>', Match => 1, No => 5);
			%{$Reg{Main}{NumC}}     = (Value => '<font color=[^>]+>■(\d+)\)', Match => 1, No => 1, Opt => 'm');
			%{$Reg{Main}{NameC}}    = (Value => '\) (.*?) =\&gt; ', Match => 1, No => 2);
			%{$Reg{Main}{CommentC}} = (Value => '<!--c-->(.*?) <small>', Match => 1, No => 5);

		} elsif ($BBS_Name =~ /^I-BOARD2001_Simple/) {
			$Prm{Main}{Step} = '<center>';
			$Prm{Main}{StepTop} = '</td></tr></table><';
			@{$Prm{Type}}    = ('Date');
			%{$Prm{Pages}{Main}{NextPage}} = (Found => '<a href="\.\/ibbs\.cgi\?(no=\d+&page=\d+)">&gt;&gt;<\/a>', Type => 'Anchor', Match => 1);
			%{$Reg{Main}{Num}}     = (Value => '<td[^>]+><span style=[^>]+>■(\d+)　</span>', Match => 1, No => 1);
			%{$Reg{Main}{Name}}    = (Value => '<td colspan=\d>□投稿者\/ (.*?) <', Match => 1, No => 2);
			%{$Reg{Main}{Title}}   = (Value => "\t\t\t\t".'<font color=[^>]+><b>　(.*?)</b></font>', Match => 1, No => 3);
			%{$Reg{Main}{Comment}} = (Value => '<!--c-->(.*?)</font>', Match => 1, No => 5);
		}

	}

	# 解析用定義を返す
	return ( Basic => \%Basic, CMT => \%CMT, Reg => \%Reg, Prm => \%Prm);
}

1;
