/************************************************************************
*	ＮＩＦＴＹ巡回設定情報の表示形式作成処理			*
*************************************************************************/
%CUT	{
	[str]
	case	(@nochar(str)>12,
		{Yes},{im(@SPP(@body(@getchar(str,1,9),,{,})|{,,,},12,1))},
		{No},{im(@SPP(str,12,1))}
		);
	};

%CUT2	{
	[str]
	case	(@nochar(str)>12,
		{Yes},{im(@body(@getchar(str,1,9),,{,})|{,,,})},
		{No},{im(str)}
		);
	};

%TIME	{
	[str]
	%str1	@body(str,{>},{,終わり});
	case	(@nochar(str1)>4,
		{Yes},{im(@getchar(str1,1,4)|{,,, })},
		{No},{im(@SPP(str1,8,1))}
		);
	};

/*	ホームパーティ ｽｲｯﾁ用ﾘｽﾄ作成	*/
%Mhp	{
	[nifty1]
	var	nifty	[256];
	nifty:=	@body(nifty1,{/});
	%a	@head(nifty,{/});
	%date	@getchar(a,1,4);
	%time	@TIME(a);
	nifty:=	@body(nifty,{/});
	%hp	@SPP(@head(nifty,{/}),8,1);
	im({HP     }|hp|{ }|date|{   }|time|{\n});
	};

/*	ＰＡＴＩＯ ｽｲｯﾁ用ﾘｽﾄ作成	*/
%Mpatio	{
	[nifty1]
	var	nifty	[256];
	nifty:=	@body(nifty1,{/});
	%a	@head(nifty,{/});
	%date	@getchar(a,1,4);
	%time	@TIME(a);
	nifty:=	@body(nifty,{/});
	%patio	@SPP(@head(nifty,{/}),8,1);
	%rtn	@nth(nifty,3,{/});
	case	(rtn={1},
		{Yes},{im({PATIO  }|patio|{ }|date|{   }|time|
			{                           1\n})},
		{No},{im({PATIO  }|patio|{ }|date|{   }|time|{ 1\n})}
		);
	};

/*	フォーラム ｽｲｯﾁ用ﾘｽﾄ作成	*/
%Mforum	{
	[nifty1]
	var	nifty	[256];
	nifty:=	@body(nifty1,{/});
	%a	@head(nifty,{/});
	%date	@getchar(a,1,4);
	%time	@TIME(a);
	nifty:=	@body(nifty,{/});
	%forum	@SPP(@head(nifty,{/}),8,1);
	nifty:=	@body(nifty,{/});
	%mes	@CUT(@head(nifty,{/}));
	nifty:=	@body(nifty,{/});
	%lib	@CUT(@head(nifty,{/}));
	nifty:=	@body(nifty,{/});
	%rtn	@CUT2(@head(nifty,{/}));
	im({FORUM  }|forum|{ }|date|{   }|time|{ }|
		mes|{ }|lib|{ }|rtn|{\n});
	};

/*	ＣＵＧ会議室 ｽｲｯﾁ用ﾘｽﾄ作成	*/
%Mcugmes{
	[nifty1]
	var	nifty	[256];
	nifty:=	@body(nifty1,{/});
	%a	@head(nifty,{/});
	%date	@getchar(a,1,4);
	%time	@TIME(a);
	nifty:=	@body(nifty,{/});
	%cugmes	@SPP(@head(nifty,{/}),8,1);
	nifty:=	@body(nifty,{/});
	%mes	@CUT(@head(nifty,{/}));
	nifty:=	@body(nifty,{/});
	%lib	@CUT(@head(nifty,{/}));
	nifty:=	@body(nifty,{/});
	%rtn	@CUT2(@head(nifty,{/}));
	im({CUG    }|cugmes|{ }|date|{   }|time|{ }|
		mes|{ }|lib|{ }|rtn|{\n});
	};

/*	再ログイン ｽｲｯﾁ用ﾘｽﾄ作成	*/
%Mrecon	{
	[nifty1]
	var	nifty	[256];
	nifty:=	@body(nifty1,{/});
	%a	@head(nifty,{/});
	%date	@getchar(a,1,4);
	%time	@TIME(a);
	nifty:=	@body(nifty,{/});
	%id	@head(nifty,{/});
	im({LOGIN  }|id|{ }|date|{   }|time|{\n});
	};

/*	NIFTY巡回制御文表示用試作ﾊﾟｲﾛｯﾄ	*/
%MakeDisp{
	var	line	[3];
	var	CtlLine	[256];
	var	Mode	[1];
	InactMemo;
	madd(memono+1,{});
	mclear(memono+1);
	madd(memono+1,
		{区分   巡回先   巡回日 巡回時刻 }|
		{会議室       ライブラリ   RTN会議室\n}|
		{------:--------:------:--------:}|
		{------------:------------:------------\n});
	line:=0;
	loop	({
		line:=line+1;
		CtlLine:={};
		CtlLine:=@body(@memo(memono,line,1),,CRLF);
		case	(CtlLine<>{},
			{Yes},
			{
			madd(memono+1,
				@case	(@head(CtlLine,{/}),
					{フォーラム},	{Mforum(CtlLine)},
					{ﾎｰﾑﾊﾟｰﾃｨ},	{Mhp(CtlLine)},
					{パティオ},	{Mpatio(CtlLine)},
					{CUG会議室},	{Mcugmes(CtlLine)},
					{再ログイン},	{Mrecon(CtlLine)},
					,		{im({  未定義}|CRLF)}
					)
				);
			im({Yes});
			},
			{No},{im({No})}
			);
		});
	};

/************************************************************************
*	巡回指定情報作成共通ルーチン					*
*************************************************************************/
/*	NIFTYでの処理実行日の指定	*/
%date	{
	select({実行する日を指定してください}|{  現在は }|@d2|{ です},
		Wtime4,{im(d1)},
		{ 毎  日 },{im({毎日})},{ 奇数日 },{im({奇数})},
		{ 偶数日 },{im({偶数})},{ 日  曜 },{im({日曜})},
		{ 月  曜 },{im({月曜})},{ 火  曜 },{im({火曜})},
		{ 水  曜 },{im({水曜})},{ 木  曜 },{im({木曜})},
		{ 金  曜 },{im({金曜})},{ 土  曜 },{im({土曜})},
		{毎月 1日},{im({01日})},{毎月05日},{im({05日})},
		{毎月10日},{im({10日})},{毎月15日},{im({15日})},
		{毎月20日},{im({20日})},{毎月25日},{im({25日})},
		{毎月30日},{im({30日})},
		{複数指定},{SNDMSG({nyuryo_f.snd});
				%dat @input({実行する日を指定してください\n}|
					{  ｶﾝﾏ｢,｣で区切って複数指定します\n}|
					{  例 奇,火,木,日,01,30},,
						@body(d1,{,},{,}));
				im({複数,}|dat|{,終わり})},
		{設定なし},{im({未定})});
	};

/*	実行日表示用	*/
%d2 	{
	case(	d1,
		{毎日},{im({毎  日})},{奇数},{im({奇数日})},
		{偶数},{im({偶数日})},{日曜},{im({日  曜})},
		{月曜},{im({月  曜})},{火曜},{im({火  曜})},
		{水曜},{im({水  曜})},{木曜},{im({木  曜})},
		{金曜},{im({金  曜})},{土曜},{im({土  曜})},
		{01日},{im({毎月 1日})},{05日},{im({毎月 5日})},
		{10日},{im({毎月10日})},{15日},{im({毎月15日})},
		{20日},{im({毎月20日})},{25日},{im({毎月25日})},
		{30日},{im({毎月30日})},{未定},{im({設定なし})},
		{未設定},{im({未設定})},,{im({複数指定})});
	};

/*	NIFTYでの処理実行時刻の指定	*/
%time	{
	select({実行する時刻を指定してください}|{  現在は }|@t2|{ です},
		Wtime4,{im(t1)},
		{  終   日  },	{im({終日,終わり})},
		{ 割引 時間 },	{im({割引,終わり})},
		{08:00-11:59},	{im({午前,終わり})},
		{12:00-17:59},	{im({午後,終わり})},
		{08:00-17:59},	{im({昼間,終わり})},
		{18:00-21:59},	{im({夜１,終わり})},
		{22:00-00:59},	{im({夜２,終わり})},
		{01:00-02:59},	{im({夜中,終わり})},
		{ 複数 指定 },	{var dat[100];
				time2;
				im(dat)},
		{ 設定 なし },{im({未定,終わり})});
	};

%time2	{
	display({現在の指定状況\n});
	CloseAllMemo;
	loop({
		SNDMSG({erande_f.snd});
		select(
		{実行時間帯を指定してください  複数指定},
		Wtime4,{dat:=t1},
		{ 割引 時間 },
		{dat:=dat|{割引,};display({  割引時間帯\n});im({Yes})},
		{08:00-11:59},
		{dat:=dat|{午前,};display({  08:00-11:59\n});im({Yes})},
		{12:00-17:59},
		{dat:=dat|{午後,};display({  12:00-17:59\n});im({Yes})},
		{08:00-17:59},
		{dat:=dat|{昼間,};display({  08:00-17:59\n});im({Yes})},
		{18:00-21:59},
		{dat:=dat|{夜１,};display({  18:00-21:59\n});im({Yes})},
		{22:00-00:59},
		{dat:=dat|{夜２,};display({  22:00-00:59\n});im({Yes})},
		{01:00-02:59},
		{dat:=dat|{夜中,};display({  01:00-02:59\n});im({Yes})},
		{ 指定 終了 },
		{dat:=dat|{終わり};im({No})}
		);
		});
	};

/*	実行時刻表示用	*/
%t2 	{
	case(t1,
		{終日,終わり},{im({終  日})},
		{割引,終わり},{im({割引時間})},
		{午前,終わり},{im({08:00-11:59})},
		{午後,終わり},{im({12:00-17:59})},
		{昼間,終わり},{im({08:00-17:59})},
		{夜１,終わり},{im({18:00-21:59})},
		{夜２,終わり},{im({22:00-00:59})},
		{夜中,終わり},{im({01:00-02:59})},
		{未定,終わり},{im({設定なし})},
		{未設定},{im({未設定})},
		,{im({複数指定})}
		);
	};

%dq	{%dh	@head(dt,{>});	case(dh,{},{im({毎日})},,{im(dh)})};

%tq	{
	%th	@head(@body(dt,d1|{>}),{>});
	case(th,{},{im({終日,終わり})},,{im(th)})
	};

%pick	{
	%nm	@nolmemo(memono);
	lnum:=	@xlinenum;
	%l	@case	(lnum<1,
			{Yes},{im(@memo(memono,1,1))},
			{No},
			{case	(lnum>nm,
				{Yes},{im(@memo(memono,nm,1))},
				{No},{im(@memo(memono,lnum,1))}
				);
			});
	line:=	@head(l,{\n});
	};

%et	{[str,chr] exist({,}|str|{,},{,}|chr|{,})};

%gd	{
	[str,chr]
	case	(str,chr,{im({})},,
		{
		%sc @head({,}|str|{,},{,}|chr|{,})|{,}|
			@tail({,}|str|{,},{,}|chr|{,});
		im(@getchar(sc,2,@nochar(sc)-2))
		});
	};

%mset	{
	case	(@et(mes,m),
		{Yes},{mes:=@gd(mes,m);mfix(m,{m},1)},
		{No},
		{
		case	(mes={}||mes={MES}||mes={mes}||mes={ALL}||mes={all},
			{Yes},{mes:=m},{No},{mes:=mes|{,}|m});
		case(rtn={ALL}||rtn={all},{Yes},{rtn:={}});
		case(@et(rtn,m),{Yes},{rtn:=@gd(rtn,m)});
		mfix(m,{m},);
		});
	};

%rset	{
	case	(@et(rtn,m),
		{Yes},{rtn:=@gd(rtn,m);mfix(m,{r},1)},
		{No},
		{
		case	(rtn={}||rtn={ALL}||rtn={all},
			{Yes},{rtn:=m},{No},{rtn:=rtn|{,}|m});
		case(mes={ALL}||mes={all},{Yes},{mes:={}});
		case(@et(mes,m),{Yes},{mes:=@gd(mes,m)});
		mfix(m,{r},);
		});
	};

%flag	{
	var pn[60];
	%pm	{
		[ml]
		%tx @getline(file,1,1);
		%tz @tail(file,{＞}|ml);
		file:=tx|{＞}|ml|{ #}|tz;
		};
	case(md=1||md=3,{Yes},
		{
		%fgmr	{[pt,mk]
			var mr[60];
			mr:=pt;
			pn:=pt;
			loop	({
				%ps @head(pn,{,});
				%pa	{
					%tt @head(file,{\n番号});
					%tx @body(tt,,{\n})|CRLF;
					%ty @case(@body(tt,,{MES}),
						{},{im({})},,{im({＞MES})});
					%tz CRLF|{番号}|
						@tail(file,{\n番号});
					file:=tx|ty|{ ALL}|mk|tz;
					};
				case(ps,{},{im({No})},
					{MES},{pm({MES})},{mes},{pm({MES})},
					{ALL},{pa},{all},{pa},,
					{
					%yp {\n}|@SPP(ps,2,)|{   };
					%tp @body(file,yp);
					case(tp,{},{mr:=@gd(mr,ps)},,
						{
						%tx @head(file,yp);
						%ty @getchar(tp,1,21);
						%tz @getchar(tp,23);
						file:=tx|yp|ty|mk|tz;
						});
					});
				pn:=@body(pn,{,});
				im(!(pn={}))
				});
			im(mr)
			};
		mes:=@fgmr(mes,{#});rtn:=@fgmr(rtn,{!})
		},,
		{
		pn:=lib;
		loop	({
			%ps @head(pn,{,});
			%pa	{
				%tx @getline(file,1,1);
				%tz @tail(file,{＞LIB});
				file:=tx|{＞LIB ALL}|tz;
				};
			case(ps,{},{im({No})},
				{LIB},{pm({LIB})},{lib},{pm({LIB})},
				{ALL},{pa},{all},{pa},
				,
				{
				%yp {\n  }|@SPP(ps,2,)|{  };
				%tp @body(file,yp);
				case(tp,{},{lib:=@gd(lib,ps)},,
					{
					%tx @head(file,yp);
					%ty @getchar(tp,1,20);
					%tz @getchar(tp,22);
					file:=tx|yp|ty|{#}|tz;
					});
				});
			pn:=@body(pn,{,});
			im(!(pn={}))
			});
		});
	};

%mfix	{
	[ps,type,mode]
	%pq	{
		%tt @head(file,{\n番号});
		%tx @body(tt,,{\n})|CRLF;
		%ty @case(@body(tt,,{MES}),{},{im({})},,{im({＞MES})});
		%tz CRLF|{番号}|@tail(file,{\n番号});
		case(ps,{ALL},{pa},{MES},{pm});
		};
	%pa	{
		%sz CRLF|{番号　発言}|@head(@body(sp,{番号　発言}),{＞LIB});
		case	(mode={},{Yes},
			{file:=tx|ty|{ ALL}|@bid|sz},{No},
			{
			file:=tx|ty|sz;
			var pr[60];
			pr:=@case(type,{m},{im(rtn)},{r},{im(mes)});
			loop	({
				%px @head(pr,{,});
				case	(px,{},{im({No})},,
					{
					case	(type,
						{m},{mfix(px,{r},)},
						{r},{mfix(px,{m},)});
					im({Yes})
					});
				pr:=@body(pr,{,});
				})
			})
		};
	%pm	{
		case	(mode={},{Yes},
			{
			case	(mes,{},{file:=tx|{＞MES #}|tz},,
				{
				%sz CRLF|{番号　発言}|
					@body(sp,{番号　発言},{＞LIB});
				file:=tx|{＞MES #}|sz;
				var pr[60];pr:=rtn;
				loop	({
					%px @head(pr,{,});
					case	(px,{},{im({No})},,
						{mfix(px,{r},);im({Yes})});
					pr:=@body(pr,{,});
					})
				})
			},{No},
			{
			%sz CRLF|{番号　発言}|@body(sp,{番号　発言},{＞LIB});
			file:=tx|{＞MES}|sz;
			})
		};
	%bid	{
		case(mode={},
			{No},{im({ })},
			{Yes},{case(type,{m},{im({#})},{r},{im({!})})})
		};
	case	(ps,
		{ALL},{pq},
		{MES},{pq},
		,
		{
		case	(type,{m},
			{
			%tt @head(file,{\n番号});
			%tx @body(tt,,{\n})|CRLF;
			%ty @case(@body(tt,,{MES}),
				{},{im({})},,{im({＞MES})});
			%tz CRLF|{番号}|@tail(file,{\n番号});
			file:=tx|ty|tz;
			});
		case	(@body(file,{室名\n})={},{No},
			{%yp {\n}|@SPP(ps,2,)|{   };
			%tx @head(file,yp);
			%ty @getchar(@tail(file,yp),1,21);
			%tz @getchar(@tail(file,yp),23);
			file:=tx|yp|ty|@bid|tz;
			});
		});
	};
%smes	{
	[md]
	var m[4];
	%n @getchar(line,1,2);%t { }|@getchar(line,28);
	case(@getchar(line,17,4),{)   },{m:=n+0},,{m:=0});
	%mp	{case(mes,{},{im({[未設定]})},,
			{case	(@nochar(mes)<45,
				{Yes},{im({ [}|mes|{]})},
				{No},{im({\nc  [}|mes|{]})})
			});
		};
	%rp	{case(rtn,{},{im({[未設定]})},,
			{case	(@nochar(rtn)<45,
				{Yes},{im({ [}|rtn|{]})},
				{No},{im({\nc  [}|rtn|{]})})
			});
		};
	case(m,0,
		{
		var ax [3];
		var az [3];
		%ALL	{
			case(az,
				{ALL},{im({会議室全巡回(ＲＴＮ)})},
				,
				{
				case(ax,{ALL},{im({会議室全巡回(未読発言)})},
				,{im({会議室名一覧表示})})
				});
			};
		ax:=	@case(mes={ALL}||mes={all},
				{Yes},{im({ALL})},{No},{im({MES})});
		az:=	@case(rtn={ALL}||rtn={all},
				{Yes},{im({ALL})},{No},{im({az})});
		%mx	@case(md,0,{im({})},
			 1,{im({s                 /会議室名一覧表示 \n})});
		loop	({
			footnote({会議室での処理を確認してください});
			SNDMSG({kaknin_f.snd});
			%a @plane(
				{c  会議室での処理を確認してください\n}|
				{c}|FT|{\nc\nc  設定内容\n}|
				{c   未読発言}|@mp|{\n}|
				{c    ＲＴＮ }|@rp|{\n}|
				{c  巡回内容   現在[}|@ALL|{]\n}|mx|
			{s  会議室全巡回   /未読発言/ ＲＴＮ \nc\n}|
				{s              / 設定 / 削除 / 取消 });
			%sax	@head(@getline(a,0+md,1),{\n});
			%saz	@head(@getline(a,1+md,1),{\n});
			%ok	@head(@getline(a,2+md,1),{\n});
			case(sax,{ 1},{ax:={MES};az:={az}});
			case(saz,{ 1},{ax:={ALL};az:={}}
				,{ 2},{ax:={};az:={ALL}});
			case(ok,{ 1},
				{
				case(ax,{MES},
					{case(rtn={ALL}||rtn={all}||md==0,
						{No},{mes:=ax;mfix({MES},,)})},
					{ALL},
					{mes:=ax;rtn:={};mfix({ALL},{m},)});
				case(az,{ALL},
					{mes:={};rtn:=az;mfix({ALL},{r},)});
				},
				{ 2},
				{
				case(ax,{MES},
					{case(md,1,{mes:={};rtn:={};
						mfix({MES},,1)})},
					{ALL},{mes:={};mfix({ALL},{m},1)});
				case(az,{ALL},{rtn:={};mfix({ALL},{r},1)});
				});
			im(ok==0);
			});
		},,
		{
		var rtx [2];
		rtx:=@case(@et(rtn,m),{No},{im(1)},{Yes},{im(2)});
		%ce {s              / 設定 / 取消 };
		%st {s              / 削除 / 取消 };
		%RTN {case(rtx,1,{im({未読発言})},2,{im({ ＲＴＮ })})};
		%CS	{
			case(rtx,
			1,{case(@et(mes,m),{Yes},{im(st)},,{im(ce)})},
			2,{case(@et(rtn,m),{Yes},{im(st)},,{im(ce)})});
			};
		loop	({
			footnote({会議室での処理を確認してください});
			SNDMSG({kaknin_f.snd});
			%a @plane(
				{c  会議室での処理を確認してください\n}|
				{c}|FT|{\nc  会議室}|n|t|{\nc\n}|
				{c  設定内容\n}|
				{c   未読発言}|@mp|{\n}|
				{c    ＲＴＮ }|@rp|{\n}|
				{c  巡回内容    現在[}|@RTN|{]\n}|
				{s            /未読発言/ ＲＴＮ \nc\n}|@CS);
			%srtn	@head(@getline(a,1,1),{\n});
			%ok	@head(@getline(a,2,1),{\n});
			case(srtn,{ 0},,,{rtx:=srtn+0});
			case(ok,{ 1},{case(rtx,1,{mset},2,{rset})});
			im(ok==0);
			});
		});
	};

%direct	{
	case(md=1||md=3,
		{Yes},
		{
		%dmr	{
			[nk]
			var pg[60];
			pg:=rtn;
			loop	({
				%pj @head(pg,{,});
				case(@et(mes,pj),{Yes},
					{
					case(nk,1,{rtn:=@gd(rtn,pj)},
						2,{mes:=@gd(mes,pj)})
					});
				pg:=@body(pg,{,});
				im(!(pg={}));
				});
			};
		%fa {会議室番号直接指定};footnote(fa);
		loop	({
			select({どちらの設定をしますか？},
				Wtime4,{im({Yes})},
				{未読発言},
				{
				footnote(fa|{ : 未読発言});
				mes:=@input({},{u},mes);dmr(1);
				},
				{ ＲＴＮ },
				{
				footnote(fa|{ : ＲＴＮ});
				rtn:=@input({},{u},rtn);dmr(2);
				});
			});
		case(md,3,{file:=@read(fl)},
			1,{file:=tg|{\n＞MES\n番号　発言}|
				@body(sp,{番号　発言},{＞LIB})}
			);
		},,
		{
		footnote({ライブラリ番号直接指定});
		lib:=@input({},{u},lib);
		file:=tg|{\n＞LIB\n番号　総数}|@body(sp,{番号　総数},{＞ ***});
		});
	flag;
	footnote({});
	im({Yes});
	};

%alldel	{
	case(md=1||md=3,
		{Yes},
		{
		footnote({会議室設定番号全削除});
		loop	({
			select({削除するものを指定してください},
				Wtime4,{im({Yes})},
				{  両方  },{mes:={};rtn:={}},
				{未読発言},{mes:={}},
				{ ＲＴＮ },{rtn:={}});
			});
		case(md,3,{file:=@read(fl)},
			1,{file:=tg|{\n＞MES\n番号　発言}|
				@body(sp,{番号　発言},{＞LIB})}
			);
		},,
		{
		footnote({ライブラリ設定番号削除});lib:={};
		file:=tg|{\n＞LIB\n番号　総数}|@body(sp,{番号　総数},{＞ ***});
		});
	flag;
	footnote({});
	im({Yes});
	};

%allmak	{
	case(md=1||md=3,
		{Yes},
		{
		%amp	{
			[nk]
			var nv[60];nv:=nk;
			var nl[3];nl:=1;
			%nj	@noline(file);
			loop	({
				%pl @getline(file,nl,1);
				%dx @getchar(pl,1,2)+0;
				case(@getchar(pl,17,4)={)   }&&!@et(nv,dx),
					{Yes},
					{
					case	(nv,{},{nv:=dx},,
						{nv:=nv|{,}|dx});
					});
				nl:=nl+1;
				im(nl!=nj)
				});
			im(nv);
			};
		%fa {会議室番号全マーク};footnote(fa);
		loop	({
			select({どちらを全マークしますか？},
				Wtime4,{im({Yes})},
				{未読発言},
				{
				footnote(fa|{ : 未読発言});
				mes:=@amp(mes);rtn:={};
				},
				{ ＲＴＮ },
				{
				footnote(fa|{ : ＲＴＮ});
				rtn:=@amp(rtn);mes:={};
				});
			});
		case(md,3,{file:=@read(fl)},
			1,{file:=tg|{\n＞MES\n番号　発言}|
				@body(sp,{番号　発言},{＞LIB})}
			);
		},,
		{
		footnote({ライブラリ番号全マーク});
		var nv[60];	nv:=lib;
		var nl[3];	nl:=1;
		loop	({
			%pl @getline(file,nl,1);
			%dx @getchar(pl,3,2)+0;
			case	(@getchar(pl,18,3)={)  }&&!@et(nv,dx),{Yes},
				{case	(nv,{},{nv:=dx},,{nv:=nv|{,}|dx})});
			nl:=nl+1;
			im(nl!=@noline(file));
			});
		lib:=nv;
		file:=tg|{\n＞LIB\n番号　総数}|@body(sp,{番号　総数},{＞ ***});
		});
	flag;
	footnote({});
	im({Yes});
	};

%mall	{
	case	(mes={ALL}||mes={all},{Yes},
		{mes:={};mfix({ALL},{m},1)},,
		{rtn:={};mes:={ALL};mfix({ALL},{m},)}
		);
	};

/************************************************************************
*	フォーラムの指定						*
*************************************************************************/
%setFORUM{
	[n]
	%lfix	{
		[ps,mode]
		%pa	{
			%tx @getline(file,1,1);
			%tz @body(@tail(file,{＞LIB}),{\n});
			case(ps,{ALL},
				{
				%sz {番号　総数}|
					@body(sp,{番号　総数},{＞ ***});
				case(mode={},
					{Yes},{file:=tx|{＞LIB ALL\n}|sz},
					{No}, {file:=tx|{＞LIB\n}|sz})
				},
				{LIB},
				{
				case(mode={},
					{No}, {file:=tx|{＞LIB\n}|tz},
					{Yes},{file:=tx|{＞LIB #\n}|tz})
				});
			};
		%bid	{case(mode={},{No},{im({ })},{Yes},{im({#})})};
		case(ps,{LIB},{pa},
			{ALL},{pa},
			,
			{
			case(@body(file,{＞LIB ALL})={},{No},
				{
				%tx @head(file,{＞LIB});
				%tz @body(@tail(file,{＞LIB}),{\n});
				file:=tx|{＞LIB\n}|tz;
				});
			case(@body(file,{ラリ名\n})={},{No},
				{
				%yp {\n  }|@SPP(ps,2,)|{  };
				%tx @head(file,yp);
				%ty @getchar(@tail(file,yp),1,20);
				%tz @getchar(@tail(file,yp),22);
				file:=tx|yp|ty|@bid|tz;
				});
			});
		};
	%dlfile	{
		var df	[64];
		%dldir	@case	(LOGmode={forum}&&!COMPRESS||LOGmode={mes},
				{Yes},{im(LOG2|forum|{\LIB\})},
				{No},{im(LOG2|{LIB\}|forum|{\})});
		df:=dldir|{LIB}|@ZERO(l,2)|{.LST};
		case	(@filechk(df),
			{Yes},{im(df)},
			{No},
			{
			df:=CATLOG|{\}|forum|{\LIB}|@ZERO(l,2)|{.TXT};
			case(@filechk(df),
				{Yes},{im(df)},
				{No},
				{
				footnote({  }|forum|@SPP(l,3,)|{番ライブラリ}|
				{のリストファイルがありません});
				wait(1);
				im({});
				});
			});
		};

	%smd	{
		[md]
		%fp	{[ft]
			case	(@nochar(ft)<57,{Yes},{FT:={  }|ft},{No},
				{case	(@nochar(ft)<59,{Yes},{FT:=ft},{No},
					{FT:=@head(ft,{＞    })|{＞  }|
						@tail(ft,{＞    })})
				});
			};
		%fl @sgn(forum);
		case	(@filechk(fl),
			{Yes},
			{
			%Select	{
				pick;
				case(lnum,1,{snex(1)},
					,{case(md,1,{smes(1)},-1,{slib})});
				im({Yes});
				};
			%mlcr	{
				pick;
				case(md,1,
				{
				case(lnum,1,{nset(2)},-1,,
					2,
					{
					case(mes={MES}||mes={mes},
						{Yes},
						{mes:={};mfix({MES},,1)},
						,
						{
						case(rtn={ALL}||rtn={all},
							{No},
							{mes:={MES};
							mfix({MES},,)});
						});
					},
					3,{mall},
					,{%m @getchar(line,1,2)+0;mset}
					);
				},
				-1,
				{
				case(lnum,1,{nset(3)},-1,,
					2,
					{
					case(@et(lib,{LIB}),
						{Yes},
						{
						lib:=@gd(lib,{LIB});
						lfix({LIB},1);
						},
						,
						{
						case(@et(lib,{lib}),
							{Yes},
							{
							lib:=@gd(lib,{lib})
							lfix({LIB},1);
							},
							,
							{bset;lfix({LIB},)});
						});
					},
					3,
					{
					case(lib={ALL}||lib={all},
						{Yes},
						{lib:={};lfix({ALL},1)},
						,
						{lib:={ALL};lfix({ALL},)}
						);
					},
					,
					{%l @getchar(line,3,2)+0;lset}
					);
				});
				im({Yes});
				};
			%rvcr	{
				pick;
				case(md,1,
				{
				case(lnum,1,{nset(2)},-1,,
					2,
					{
					case(mes={MES}||mes={mes},{Yes},
						{mes:={};mfix({MES},,1)},,
						{
						case(rtn={ALL}||rtn={all}||
							mes<>{},{No},
							{
							mes:={MES};
							mfix({MES},,);
							});
						});
					},
					3,
					{
					case(rtn={ALL}||rtn={all},{Yes},
						{rtn:={};mfix({ALL},{r},1)},,
						{mes:={};rtn:={ALL};
						mfix({ALL},{r},)});
					},
					,
					{%m @getchar(line,1,2)+0;rset}
					);
				},
				-1,
				{
				%l @getchar(line,3,2)+0;
				case(l>0,{Yes},
					{%lf @dlfile;case(lf,{},,,{refr(lf)})},
					{No},
					{
					footnote({カーソルをタイトル行}|
						{に置いてください});
					wait(1);
					});
				});
				im({Yes})
				};
			%refr	{
				[fj]
				InactMemo;
				%mq memono+1;
				case(@mlast>=mq,{Yes},{mclear(mq)});
				mread(fj,mq);
				mopen(mq,0,181,639,459,{r});
				loop	({
					SNDMSG({_erande_f.snd});
					footnote({戻る},{b});
					waitx();
					case	(@xtype,
						101,{im({No})},201,{im({No})},
						,{im({Yes})}
						);
					});
				DeleteMemo(mq);
				};
			%sp @read(fl);
			%tg @case(forum,{BEGIN},
				{im({＜練習・質問コーナー＞})},,
				{
				im(@head(sp,{\n},{＞    })|{＞    }|
				@tail(sp,{＞    },CRLF))
				});
			fp(tg);
			case(md,1,
				{file:=tg|{\n＞MES\n番号　発言}|
					@body(sp,{番号　発言},{＞LIB})},
				-1,
				{file:=tg|{\n＞LIB\n番号　総数}|
					@body(sp,{番号　総数},{＞ ***})});
			%memono	@mlast+1;flag;
			InactMemo;
			madd(memono,{});
			loop	({
				InactMemo;
				mclear(memono);
				madd(memono,file);
				mopen(memono,0,21,639,459,{r});
				case(lnum>0,{Yes},{curline(lnum)});
				SNDMSG({erande_f.snd});
				case(md,1,
					{
					footnote({終了選択    MRE RTN }|
					{直接全削全印LIB 看板},{b});
					},
					-1,
					{
					footnote({終了選択    LIB 参照}|
					{直接全削全印MES 看板},{b});
					});
				waitx();
				case	(@xtype,
					101,{im({No})},	201,{im({No})},
					102,{Select},	202,{Select},
					104,{mlcr},	204,{mlcr},
					105,{rvcr},	205,{rvcr},
					106,{direct},	206,{direct},
					107,{alldel},	207,{alldel},
					108,{allmak},	208,{allmak},
					109,	{
						DeleteMemo(memono);
						smd(md*(-1));im({No})
						},
					209,	{
						DeleteMemo(memono);
						smd(md*(-1));im({No})
						},
					110,{refr(fl);im({Yes})},
					210,{refr(fl);im({Yes})},
					memono,{Select},
					,{im({Yes})}
					);
				});
			DeleteMemo(memono);
			},
			{No},
			{case	(@filechk(LOG2|{myforum.log}),{Yes},
				{
				var lh[46];
				%spc	{[x]
					%nh	@nochar(x);
					case(@getchar(x,nh),{ },
						{im(@spc(@getchar(x,1,nh-1)))},
						,{im(x)})
					};
				%rf	@read(LOG2|{myforum.log});
				lh:=	@body(@head(@getchar(@tail(@body(rf,,
					{ }|forum|CRLF),{\n }),6),{ or}),,{ });
				case	(lh,{},{lh:=@body(@tail(@body(rf,,
					{ }|forum|{ or }),{\n }),{  })});
				%lb @tail(@read(LOG2|{myforum.log}),lh,{\n});
				case(lh,{},
					{
					SNDMSG({okasi_f.snd});
					footnote({MYFORUM.LOGに存在しない}|
					{フォーラムです。});wait(1);
					footnote({});
					FT:={       ＜  }|forum|{  ＞};
					}
				,,{fp({＜}|@spc(lh)|{＞   }|lb)})
				},
				{No},{FT:={       ＜  }|forum|{  ＞}}
				);
			snex(0);
			});
		};
	%lset	{
		case(lib={ALL}||lib={all},{Yes},{lib:={}});
		case(@et(lib,l),
			{Yes},{lib:=@gd(lib,l);lfix(l,1)},
			{No},{case(lib,{},{lib:=l},,{lib:=lib|{,}|l});lfix(l,)}
			);
		};
	%bset	{
		case	(lib={}||lib={ALL}||lib={all},
			{Yes},{lib:={LIB}},
			{No},
			{
			case(@et(lib,{LIB}) || @et(lib,{lib}),
				{No},{lib:={LIB}|{,}|lib});
			});
		};
	%slib	{
		var l[4];
		%n @getchar(line,3,2);
		%t { }|@getchar(line,28);
		case(@getchar(line,18,3),{)  },{l:=n+0},,{l:=0});
		%lp	{case(lib,{},{im({[未設定]})},,
				{case	(@nochar(lib)<45,
					{Yes},{im({  [}|lib|{]})},
					{No},{im({\nc  [}|lib|{]})});
				});
			};
		case(l,0,
		{
		var ax [3];
		%ALL	{case(ax,{LIB},{im({ライブラリ名一覧表示})},
				{ALL},{im({  ライブラリ全巡回  })})};
		ax:=	@case(lib={ALL}||lib={all},
				{Yes},{im({ALL})},{No},{im({LIB})});
		loop	({
			footnote({ライブラリでの処理を確認してください});
			SNDMSG({kaknin_f.snd});
			%a @plane(
				{c  ライブラリでの処理を確認してください\n}|
				{c}|FT|{\nc\n}|
				{c  設定内容}|@lp|{\n}|
				{c  巡回内容  現在[}|@ALL|{]\n}|
			{s       /ライブラリ名一覧表示/  ライブラリ全巡回  \n}|
				{c\n}|
				{s              / 設定 / 削除 / 取消 });
			%sax	@head(@getline(a,1,1),{\n});
			%ok	@head(@getline(a,2,1),{\n});
			case(sax,{ 1},{ax:={LIB}},{ 2},{ax:={ALL}});
			case(ok,{ 1},
				{
				case(ax,{ALL},{lib:=ax},{LIB},{bset});
				lfix(ax,);
				},
				{ 2},
				{
				case(ax,{ALL},{lib:={}},
					{LIB},
					{
					case(@et(lib,{LIB}),{Yes},
						{lib:=@gd(lib,{LIB})});
					case(@et(lib,{lib}),{Yes},
						{lib:=@gd(lib,{lib})});
					});
				lfix(ax,1);
				});
			im(ok==0);
			});
		},,
		{
		%ce {s              / 設定 / 取消 };
		%st {s              / 削除 / 取消 };
		loop	({
			footnote({ライブラリでの処理を確認してください});
			SNDMSG({kaknin_f.snd});
			%a @plane(
				{cライブラリでの処理を確認してください\n}|
				{c}|FT|{\nc  ライブラリ}|n|t|{\n}|
				{c\nc  設定内容}|@lp|{\n}|
				{c  巡回内容  [ 最新データ表示 ]\nc\n}|
			@case(@et(lib,l),{Yes},{im(st)},{No},{im(ce)})
				);
			%ok	@head(@getline(a,1,1),{\n});
			case(ok,{ 1},{lset});
			im(ok==0);
			});
		});
		};
	%nset	{
		[nw]
		case	(mes={}&&rtn<>{ALL}&&rtn<>{all},
			{Yes},
			{mes:={MES};case(nw=1||nw=2,{Yes},{mfix({MES},,)})});
		case	(lib,{},{lib:={LIB}},,
			{
			case(@exist(lib,{LIB}) || @exist(lib,{lib}),
				{No},{lib:={LIB}|{,}|lib});
			});
		case(nw=1||nw=3,{Yes},{lfix({LIB},)});
		};
	%snex	{
		[nw]
		%cr @case(nw,0,{im({作成})},1,{im({更新})});
		loop	({
			footnote({フォーラムでの処理を確認してください});
			SNDMSG({kaknin_f.snd});
			%a @plane(
				{cフォーラムでの処理を確認してください\n}|
				{c}|FT|{\nc\n}|
				{c  巡回内容  [ 看板ファイル}|cr|{ ]\nc\n}|
				{s                / 設定 / 削除 / 取消 });
			%ok	@head(@getline(a,1,1),{\n});
			case(ok,{ 1},	{nset(nw)},
				{ 2},	{
					case(mes={MES}||mes={mes},{Yes},
						{
						mes:={};
						case(nw,1,{mfix({MES},,1)})
						});
					case(@exist(lib,{LIB}),{Yes},
						{
						lib:=@gd(lib,{LIB});
						case(nw,1,{lfix({LIB},1)})
						},,
						{
						case(@exist(lib,{lib}),{Yes},
							{lib:=@gd(lib,{lib})});
						case(nw,1,{lfix({LIB},1)})
						});
					});
			im(ok==0);
			});
		};
	var forum [8];
	var mes [60];
	var lib [60];
	var rtn	[60];
	var ust2[2];
	var d1 [60];
	var t1 [100];
	var FT [58];
	%NIFTY1	@memo(memono,n,1);
	%dt	@head(@body(NIFTY1,{/}),{/});
	d1:=	@dq;
	t1:=	@tq;
	forum:=	@head(@body(NIFTY1,dt|{/}),{/});
	mes:=	@head(@body(NIFTY1,dt|{/}|forum|{/}),{/});
	lib:=	@head(@body(NIFTY1,forum|{/}|mes|{/}),{/});
	rtn:=	@head(@head(@body(NIFTY1,forum|{/}|mes|{/}|lib|{/}),{/}),CRLF);
	ust2:=	@head(@body(NIFTY1,forum|{/}|mes|{/}|lib|{/}|rtn|{/}),{/})+0;
	case(ust2,0,{ust2:={ 2}},,{ust2:={ }|ust2});
	loop	({
		footnote({巡回するフォーラムを設定してください});
		SNDMSG({nyuryo_f.snd});
		%a @plane(
			{c巡回するフォーラムを設定してください\n}|
			{t  フォーラム名          /xxxxxxxx\n}|
			{t  会議室番号            /\n}|
			{c    指定された会議室の未読を読みます\n}|
			{c    ｢MES｣とすると会議室名一覧が表示されます\n}|
			{t  ＲＴＮ取得会議室番号  /\n}|
			{c    指定された会議室の未読ﾀｲﾄﾙ一覧表を表示します\n}|
			{t  ライブラリ番号        /\n}|
			{c    指定されたﾗｲﾌﾞﾗﾘの最新のﾃﾞｰﾀ一覧を表示します\n}|
			{c    ｢LIB｣とするとﾗｲﾌﾞﾗﾘ一覧が表示されます\n}|
			{c    ｢ALL｣とすると全ての会議室､ﾗｲﾌﾞﾗﾘになります\n}|
			{c    全てｶﾝﾏ｢,｣で区切って複数指定可\n}|
			{r  UST2ｺﾏﾝﾄﾞ実行         /する/しない/するかも\n}|
			{s  検索     /フォーラム名/}|
				{巡回内容(MES)/巡回内容(LIB)\n}|
			{c  巡回日 }|@SPP(@d2,9,1)|{巡回時刻 }|@t2|{\n}|
			{s  変更     / 巡回日/巡回時刻\n}|
			{s                        / 設定 / 削除 / 取消 },
			forum,mes,rtn,lib,ust2);
		forum:=	@head(@getline(a,1,1),{\n});
		mes:=	@head(@getline(a,2,1),{\n});
		rtn:=	@head(@getline(a,3,1),{\n});
		lib:=	@head(@getline(a,4,1),{\n});
		ust2:=	@head(@getline(a,5,1),{\n});
		%ref	@head(@getline(a,6,1),{\n});
		%sel	@head(@getline(a,7,1),{\n});
		%ok	@head(@getline(a,8,1),{\n});
		case(ref,{ 1},
			{%f @sfrm;case(f,{},,,{forum:=f})},
			{ 2},
			{case(forum,{},
				{footnote({フォーラム名を指定してください});
				wait(1)},,{smd(1)})
			},
			{ 3},
			{case(forum,{},
				{footnote({フォーラム名を指定してください});
				wait(1)},,{smd(-1)})
			});
		case(sel,{ 1},{SNDMSG({erande_f.snd});d1:=@date},
			{ 2},{SNDMSG({erande_f.snd});t1:=@time});
		new:=NIFTY1;
		case(ok,{ 1},
			{
			case	(forum={}||(mes={}&&rtn={}&&lib={}),
				{No},
				{
				new:=	{フォーラム/}|d1|{>}|t1|{/}|forum|{/}|
					mes|{/}|lib|{/}|rtn|{/}|ust2+0|{/\n};
				im({No});
				},
				{Yes},
				{
				SNDMSG({okasi_f.snd});
				footnote({設定が不充分です});wait(1);
				im({Yes})
				})
			},
			{ 2},{new:={};im({No})},
			{ 3},{im({No})},
			,{im(!(ok={ 0}&&ref={ 0}&&sel={ 0}))/*右ｸﾘｯｸで終了*/}
			);
		});
	};

/************************************************************************
*	CUG 会議室の指定						*
*************************************************************************/
%setCUGMES{
	[n]
	%smd2	{
		%fl @sgn(cmes);
		case	(@filechk(fl),
			{Yes},
			{%sp @read(fl);
			case(cmes,{HIROBA},
				{FT:={＜メーテル広場＞     HIROBA\n}});
			file:=@read(fl);
			%Select	{pick;smes(0);im({Yes})};
			%mcr	{
				pick;
				%m @getchar(line,1,2)+0;
				case(m>0,{Yes},{mset},{No},
					{case(@body(line,{番号　}),{},,,{mall})
					});
				im({Yes})
				};
			%rcr	{
				pick;
				%m @getchar(line,1,2)+0;
				case(m>0,{Yes},{rset},
					{No},
					{
					case(@body(line,{番号　}),{},,,
					{
					case(rtn={ALL}||rtn={all},{Yes},
						{rtn:={};mfix({ALL},{r},1)},,
						{mes:={};rtn:={ALL};
						mfix({ALL},{r},)})
					})
					});
				im({Yes})
				};
			%memono	@mlast+1;%md 3;flag;
			InactMemo;
			madd(memono,{});
			loop	({
				InactMemo;
				mclear(memono);
				madd(memono,file);
				mopen(memono,0,21,639,459,{r});
				case(lnum>0,{Yes},{curline(lnum)});
				SNDMSG({erande_f.snd});
				footnote({終了選択    MRE RTN }|
					{直接全削全印},{b});
				waitx();
				case	(@xtype,
					101,{im({No})},	201,{im({No})},
					102,{Select},	202,{Select},
					104,{mcr},	204,{mcr},
					105,{rcr},	205,{rcr},
					106,{direct},	206,{direct},
					107,{alldel},	207,{alldel},
					108,{allmak},	208,{allmak},
					memono,{Select},
					,{im({Yes})}
					);
				});
			DeleteMemo(memono);
			},
			{No},{footnote({看板ファイルがありません});wait(1)}
			);
		};
	var cmes [8];
	var mes [60];
	var rtn	[60];
	var d1 [40];
	var t1 [100];
	var FT [58];
	%NIFTY1	@memo(memono,n,1);
	%dt	@head(@body(NIFTY1,{/}),{/});
	d1:=	@dq;
	t1:=	@tq;
	cmes:=	@head(@body(NIFTY1,dt|{/}),{/});
	mes:=	@head(@body(NIFTY1,dt|{/}|cmes|{/}),{/});
	rtn:=	@head(@head(@body(NIFTY1,dt|{/}|cmes|{/}|mes|{//}),{/}),CRLF);
	loop	({
		footnote({巡回するＣＵＧ会議室を設定してください});
		SNDMSG({nyuryo_f.snd});
		%a @plane(
			{c巡回するＣＵＧ会議室を設定してください\n}|
			{t  ＣＵＧ会議室名        /xxxxxxxx\n}|
			{t  会議室番号            /\n}|
			{c    指定された会議室の未読を読みます\n}|
			{t  ＲＴＮ取得会議室番号  /\n}|
			{c    指定された会議室の未読ﾀｲﾄﾙ一覧表を表示します\n}|
			{c    ｢ALL｣とすると全ての会議室になります\n}|
			{c    全てｶﾝﾏ｢,｣で区切って複数指定可\n}|
		/*	{s  検索     / 会議室名/会議室番号\n}|	*/
			{s  検索     / ﾒｰﾃﾙ広場/会議室番号\n}|
			{c  巡回日 }|@SPP(@d2,9,1)|{巡回時刻 }|@t2|{\n}|
			{s  変更     / 巡回日/巡回時刻\n}|
			{s                        / 設定 / 削除 / 取消 },
			cmes,mes,rtn);
		cmes:=	@head(@getline(a,1,1),{\n});
		mes:=	@head(@getline(a,2,1),{\n});
		rtn:=	@head(@getline(a,3,1),{\n});
		%ref	@head(@getline(a,4,1),{\n});
		%sel	@head(@getline(a,5,1),{\n});
		%ok	@head(@getline(a,6,1),{\n});
		case(ref,{ 1},
		/*	{%c @scug;case(c,{},,,{cmes:=c})},	*/
			{cmes:={HIROBA}},
			{ 2},
			{case(cmes,{},
				{footnote({CUG会議室名を指定してください});
				wait(1)},,{smd2})
			});
		case(sel,{ 1},{SNDMSG({erande_f.snd});d1:=@date},
			{ 2},{SNDMSG({erande_f.snd});t1:=@time});
		new:=NIFTY1;
		case(ok,{ 1},
			{
			case	(cmes={},
				{No},
				{
				new:=	{CUG会議室/}|d1|{>}|t1|{/}|
					cmes|{/}|mes|{//}|rtn|{/\n};
				im({No});
				},
				{Yes},
				{
				SNDMSG({okasi_f.snd});
				footnote({設定が不充分です});wait(1);
				im({Yes})
				})
			},
			{ 2},{new:={};im({No})},
			{ 3},{im({No})},
			,{im(!(ok={ 0}&&ref={ 0}&&sel={ 0}))/*右ｸﾘｯｸで終了*/}
			);
		});
	};

/************************************************************************
*	ホームパーティの指定						*
*************************************************************************/
%setHP	{
	[n]
	var	d1	[40];
	var	t1	[100];
	var	id	[8];
	var	pass	[8];
	%NIFTY1	@memo(memono,n,1);
	%dt	@head(@body(NIFTY1,{/}),{/});
	d1:=	@dq;
	t1:=	@tq;
	id:=	@head(@body(NIFTY1,dt|{/}),{/});
	%pwd1	@head(@body(NIFTY1,dt|{/}|id|{/}),{/});
	pass:=	@txlpd(pwd1);
	footnote({巡回するホームパーティを設定してください});
	loop	({
		SNDMSG({nyuryo_f.snd});
		%a @plane(
			{c巡回するホームパーティを設定してください\n}|
			{t  ＨＰのＩＤ            /xxxxxxxx\n}|
			{t  ＨＰのパスワード      /xxxxxxxx\n}|
			{s                        / 検索 \n}|
			{c  ※ここで入力するﾊﾟｽﾜｰﾄﾞに/(ｽﾗｯｼｭ)は}|
				{使用しないで下さい\n}|
			{c  巡回日   }|@d2|{\n}|
			{s          / 変更 \n}|
			{c  巡回時刻 }|@t2|{\n}|
			{s          / 変更 \n}|
			{s                        / 設定 / 削除 / 取消 },
			id,pass);
		id:=	@head(@getline(a,1,1),{\n});
		pass:=	@head(@getline(a,2,1),{\n});
		%search	@head(@getline(a,3,1),{\n});
		%sel	@head(@getline(a,4,1),{\n});
		%sel2	@head(@getline(a,5,1),{\n});
		%ok	@head(@getline(a,6,1),{\n});
		case	(search,
			{ 1},
			{
			%ipx	@IPS;
			%idh	@head(ipx,{pw;});
			%pw	@body(ipx,{pw;});
			case(idh={},{Yes},{},{No},{id:=idh});
			case(pw={},{Yes},{},{No},{pass:=pw});
			});
		case(sel==1,{Yes},{SNDMSG({erande_f.snd});d1:=@date});
		case(sel2==1,{Yes},{SNDMSG({erande_f.snd});t1:=@time});
		new:=NIFTY1;
		case(ok,{ 1},
			{
			case	(pass={},
				{No},
				{
				%pwd2	@case	(SHADOW,
						{Yes},
						{
						case	(pass={********},
							{No},
							{im(@txlpc(pass))},
							{Yes},
							{im(pwd1)}
							);
						},
						,{im(pass)}
						);
				new:=	{ﾎｰﾑﾊﾟｰﾃｨ/}|
					d1|{>}|t1|{/}|id|{/}|pwd2|{/\n};
				im({No});
				},
				{Yes},
				{
				SNDMSG({okasi_f.snd});
				footnote({設定が不充分です});wait(1);
				im({Yes})
				})
			},
			{ 2},{new:={};im({No})},
			{ 3},{im({No})},
			,{im(!(ok={ 0}&&sel={ 0}&&sel2={ 0}&&
				search={ 0}))/*右ｸﾘｯｸで終了*/	}
			);
		});
	};

/************************************************************************
*	パティオの指定							*
*************************************************************************/
%setPATIO{
	[n]
	var	d1	[40];
	var	t1	[100];
	var	id	[8];
	var	pass	[8];
	var	rtn	[1];
	%RTN	{case(rtn,
			{},{im({未読発言})},
			{1},{im({ ＲＴＮ })}
			)};
	%NIFTY1	@memo(memono,n,1);
	%dt	@head(@body(NIFTY1,{/}),{/});
	d1:=	@dq;
	t1:=	@tq;
	id:=	@head(@body(NIFTY1,dt|{/}),{/});
	%pwd1	@head(@body(NIFTY1,dt|{/}|id|{/}),{/});
	pass:=	@txlpd(pwd1);
	rtn:=	@head(@head(@body(NIFTY1,dt|{/}|id|{/}|pass|{/}),{/}),CRLF);
	loop	({
		footnote({巡回するパティオを設定してください});
		SNDMSG({nyuryo_f.snd});
		%a @plane(
			{c巡回するパティオを設定してください\n}|
			{t  パティオのＩＤ        /xxxxxxxx\n}|
			{t  パティオのパスワード  /xxxxxxxx\n}|
			{s                        / 検索 \n}|
			{c  ※ここで入力するﾊﾟｽﾜｰﾄﾞに/(ｽﾗｯｼｭ)は}|
				{使用しないで下さい\n}|
			{c  巡回内容   現在[}|@RTN|{]\n}|
			{s          /未読発言/ ＲＴＮ \n}|
			{c  巡回日   }|@d2|{\n}|
			{s          / 変更 \n}|
			{c  巡回時刻 }|@t2|{\n}|
			{s          / 変更 \n}|
			{s                        / 設定 / 削除 / 取消 },
			id,pass);
		id:=	@head(@getline(a,1,1),{\n});
		pass:=	@head(@getline(a,2,1),{\n});
		%search	@head(@getline(a,3,1),{\n});
		%srtn	@head(@getline(a,4,1),{\n});
		%sel	@head(@getline(a,5,1),{\n});
		%sel2	@head(@getline(a,6,1),{\n});
		%ok	@head(@getline(a,7,1),{\n});
		case	(search,
			{ 1},
			{
			%ipx	@IPS;
			%idh	@head(ipx,{pw;});
			%pw	@body(ipx,{pw;});
			case(idh={},{Yes},{},{No},{id:=idh});
			case(pw={},{Yes},{},{No},{pass:=pw});
			});
		case(sel==1,{Yes},{SNDMSG({erande_f.snd});d1:=@date});
		case(sel2==1,{Yes},{SNDMSG({erande_f.snd});t1:=@time});
		case(srtn,{ 1},{rtn:={}},{ 2},{rtn:={1}});
		new:=NIFTY1;
		case(ok,{ 1},
			{
			case	(pass={},
				{No},
				{
				%pwd2	@case	(SHADOW,
						{Yes},
						{
						case	(pass={********},
							{No},
							{im(@txlpc(pass))},
							{Yes},
							{im(pwd1)}
							);
						},
						,{im(pass)}
						);
				new:=	{パティオ/}|d1|{>}|t1|
					{/}|id|{/}|pwd2|{/}|rtn|{/\n};
				im({No});
				},
				{Yes},
				{
				SNDMSG({okasi_f.snd});
				footnote({設定が不充分です});wait(1);
				im({Yes})
				})
			},
			{ 2},{new:={};im({No})},
			{ 3},{im({No})},
			,{im(!(ok={ 0}&&sel={ 0}&&sel2={ 0}&&
				srtn={ 0}&&search={ 0}))/*右ｸﾘｯｸで終了*/}
			);
		});
	};

/************************************************************************
*	再ログイン処理の指定						*
*************************************************************************/
%setRECON{
	[n]
	var d1 [40];
	var t1 [100];
	var id [8];
	var pass [8];
	%NIFTY1	@memo(memono,n,1);
	%dt	@head(@body(NIFTY1,{/}),{/});
	d1:=	@dq;
	t1:=	@tq;
	id:=	@head(@body(NIFTY1,dt|{/}),{/});
	%pwd1	@head(@body(NIFTY1,dt|{/}|id|{/}),{/});
	pass:=	@txlpd(pwd1);
	loop	({
		footnote({再ログインの設定をしてください});
		SNDMSG({nyuryo_f.snd});
		%a @plane(
			{c再ログインの設定をしてください\n}|
			{t  再ログインＩＤ        /xxxxxxxx\n}|
			{t  パスワード            /xxxxxxxx\n}|
			{c  ※ここで入力するﾊﾟｽﾜｰﾄﾞに/(ｽﾗｯｼｭ)は}|
				{使用しないで下さい\n}|
			{c  実行日   }|@d2|{\n}|
			{s          / 変更 \n}|
			{c  実行時刻 }|@t2|{\n}|
			{s          / 変更 \n}|
			{s                        / 設定 / 削除 / 取消 },
			id,pass);
		id:=	@head(@getline(a,1,1),{\n});
		pass:=	@head(@getline(a,2,1),{\n});
		%sel	@head(@getline(a,3,1),{\n});
		%sel2	@head(@getline(a,4,1),{\n});
		%ok	@head(@getline(a,5,1),{\n});
		case(sel==1,{Yes},{SNDMSG({erande_f.snd});d1:=@date});
		case(sel2==1,{Yes},{SNDMSG({erande_f.snd});t1:=@time});
		new:=NIFTY1;
		case(ok,{ 1},
			{
			case	(id={}||pass={},
				{No},
				{
				%pwd2	@case	(SHADOW,
						{Yes},
						{
						case	(pass={********},
							{No},
							{im(@txlpc(pass))},
							{Yes},
							{im(pwd1)}
							);
						},
						,{im(pass)}
						);
				new:={再ログイン/}|d1|{>}|t1|{/}|
					id|{/}|pwd2|{/\n};
				im({No});
				},
				{Yes},
				{
				SNDMSG({okasi_f.snd});
				footnote({設定が不充分です});wait(1);
				im({Yes})
				})
			},
			{ 2},{new:={};im({No})},
			{ 3},{im({No})},
			,{im(!(ok={ 0}&&sel={ 0}&&sel2={ 0}))/*右ｸﾘｯｸで終了*/}
			);
		});
	};

/************************************************************************
*	ＮＩＦＴＹ巡回個別設定処理					*
*************************************************************************/
/*	巡回詳細情報変更処理	*/
%setNIF	{
	[m]
	%n	m-2;
	case	(n>0,
		{Yes},
		{
		var	new	[256];
		%old	@memo(memono,n,1);
		case	(@head(old,{/}),
			{フォーラム},	{setFORUM(n)},
			{ﾎｰﾑﾊﾟｰﾃｨ},	{setHP(n)},
			{パティオ},	{setPATIO(n)},
			{CUG会議室},	{setCUGMES(n)},
			{再ログイン},	{setRECON(n)},
			);
		updNIF1(old,new,n);
		},
		{No},{InactMemo;im({Yes})}
		);
	};

/*	巡回場所追加処理	*/
%addNIF	{
	var	new	[256];
	%n	@nolmemo(memono);
	SNDMSG({erande_f.snd});
	footnote({ＮＩＦＴＹで行う処理を指定してください});
	select({ＮＩＦＴＹで行う処理を指定してください},
		Wtime4,,
		{  フォーラム  },{setFORUM(n)},
		{ホームパーティ},{setHP(n)},
		{   パティオ   },{setPATIO(n)},
		{ ＣＵＧ会議室 },{setCUGMES(n)},
		{  再ログイン  },{setRECON(n)},
		{     終了     },
		);
	updNIF1({},new,n);
	};

%updNIF1{
	[old,new,n]
	CloseAllMemo;
	%m	@nolmemo(memono);
	case	(old={}&&new<>{},		/* 追加 */
		{Yes},
		{
		madd(memono,new);
		%new2	@head(new,CRLF);
		%new3	@case	(@head(new2,{/}),
				{フォーラム},	{Mforum(new2)},
				{ﾎｰﾑﾊﾟｰﾃｨ},	{Mhp(new2)},
				{パティオ},	{Mpatio(new2)},
				{CUG会議室},	{Mcugmes(new2)},
				{再ログイン},	{Mrecon(new2)},
				,		{im({  未定義}|CRLF)}
				);
		madd(memono+1,new3);
		mclear(memono+2);
		});
	case	(old<>{}&&new<>{}&&old<>new,	/* 変更 */
		{Yes},
		{
		mclear(memono+2);
		madd(memono+2,@memo(memono));
		mclear(memono);
		case(n>0,{Yes},{madd(memono,@memo(memono+2,1,n-1))});
		madd(memono,new);
		case(n<m,{Yes},{madd(memono,@memo(memono+2,n+1))});
		mclear(memono+2);
		madd(memono+2,@memo(memono+1));
		mclear(memono+1);
		%new2	@head(new,CRLF);
		%new3	@case	(@head(new2,{/}),
				{フォーラム},	{Mforum(new2)},
				{ﾎｰﾑﾊﾟｰﾃｨ},	{Mhp(new2)},
				{パティオ},	{Mpatio(new2)},
				{CUG会議室},	{Mcugmes(new2)},
				{再ログイン},	{Mrecon(new2)},
				,		{im({  未定義}|CRLF)}
				);
		case(n>0,{Yes},{madd(memono+1,@memo(memono+2,1,n+2-1))});
		madd(memono+1,new3);
		case(n<m,{Yes},{madd(memono+1,@memo(memono+2,n+2+1))});
		});
	case	(old<>{}&&new={},	/* 削除 */
		{Yes},
		{
		mclear(memono+2);
		madd(memono+2,@memo(memono));
		mclear(memono);
		case(n>0,{Yes},{madd(memono,@memo(memono+2,1,n-1))});
		case(n<m,{Yes},{madd(memono,@memo(memono+2,n+1))});
		mclear(memono+2);
		madd(memono+2,@memo(memono+1));
		mclear(memono+1);
		case(n>0,{Yes},{madd(memono+1,@memo(memono+2,1,n+2-1))});
		case(n<m,{Yes},{madd(memono+1,@memo(memono+2,n+2+1))});
		});
	};

/************************************************************************
*	設定情報のファイル保存・退避・復元・読込処理			*
*************************************************************************/
/*	設定情報をファイルに保存する	*/
%writeNIF{
	copfile(CDIR2|{fapxnif.ctl},CDIR2|{FAPXNIF.BAK});
	delfile(CDIR2|{fapxnif.ctl});
	mwrite(CDIR2|{fapxnif.ctl },memono);
	SETFILE2:={標準設定};
	};

/*	設定情報をもとに戻す	*/
%CANCEL	{
	InactMemo;
	SNDMSG({erande_f.snd});
	footnote({本当にもとに戻してもいいですか？});
	select({本当にもとに戻してもいいですか？},
		Wtime4,,
		{ Ｏ Ｋ },
		{
		case	(@filechk(CDIR2|{fapxnif.ctl}),
			{Yes},
			{
			NIFFILE:=CDIR2|{FAPXNIF.CTL};
			SETFILE2:={標準設定};
			madd(memono,{});
			mclear(memono);
			mread(NIFFILE,memono);
			MakeDisp;
			});
		},
		{ Ｎ Ｇ },);
	};

/*	情報を一時設定に戻す	*/
%RESTORE{
	InactMemo;
	case	(@filechk(TEMP2|{fapxnif.tmp}),
		{Yes},
		{
		SNDMSG({erande_f.snd});
		footnote({本当に戻してもいいですか？});
		select({本当に戻してもいいですか？},
			Wtime4,,
			{ Ｏ Ｋ },
			{
			NIFFILE:=TEMP2|{fapxnif.tmp};
			SETFILE2:={一時設定};
			InactMemo;
			madd(memono,{});
			mclear(memono);
			mread(NIFFILE,memono);
			MakeDisp;
			},
			{ Ｎ Ｇ },);
		});
	};

/*	設定情報をファイルに保存する	*/
%SAVE	{
	var	newfile	[64];
	InactMemo;
	SNDMSG({erande_f.snd});
	footnote({設定を保存するファイルを指定してください});
	newfile:=@filesel({CTL});
	case(newfile<>{},
		{Yes},
		{
		%newdir	@getcdir;
		case(@nochar(newdir)==3,
			{Yes},{newfile:=newdir|newfile},
			{No},{newfile:=newdir|{\}|newfile});
		delfile(newfile);
		mwrite(newfile,memono);
		});
	};

/*	巡回設定情報ファイルの読込・復元	*/
%LOAD	{
	var	newfile	[64];
	InactMemo;
	SNDMSG({erande_f.snd});
	footnote({設定を読み込むファイルを指定してください});
	newfile:=@filesel({CTL});
	case	(newfile<>{},
		{Yes},
		{
		%newdir	@getcdir;
		case	(@nochar(newdir)==3,
			{Yes},{newfile:=newdir|newfile},
			{No},{newfile:=newdir|{\}|newfile}
			);
		case	(@filechk(newfile),
			{Yes},
			{
			mclear(memono);
			mclear(memono+2);
			mread(newfile,memono);
			SETFILE2:=@tail(newfile,{\});
			MakeDisp;
			});
		});
	};

/*	巡回設定情報ファイル追加読込処理	*/
%FILECOPY{
	InactMemo;
	mopen(memono,0,21,639,459,{r});
	footnote({読み込むファイルを選択してください});
	%file	@filesel({CTL});
	case	(file={},
		{Yes},{InactMemo},
		{No},
		{
		InactMemo;
		madd(memono+1,{});
		mclear(memono+1);
		case(@filechk(file),{Yes},{mread(file,memono+1)});
		mopen(memono,0,21,639,240,{r});mclose(1);
		mopen(memono+1,0,241,639,459,{r} );
		select({このファイル内容を追加してもいいですか？},
			Wtime4,{InactMemo},
			{  Ｏ　Ｋ　},
			{
			InactMemo;
			madd(memono,@memo(memono+1));
			madd(memono+2,@memo(memono+1));
			MakeDisp;
			},
			{　Ｎ　Ｇ　},{InactMemo});
		});
	};

/*	手動編集	*/
%HANDEDIT{
	InactMemo;
	mclear(memono+2);
	madd(memono+2,@memo(memono));		/* memono+2 に退避 */
	mopen(memono,0,21,639,459,{w});
	loop	({
		footnote({終了取消            }|
			 {                    }|
			 {        },{b});
		waitx();
		case	(@xtype,
			101,{InactMemo;MakeDisp;im({No})},
			201,{InactMemo;MakeDisp;im({No})},
			102,
			{
			InactMemo;
			mclear(memono);
			madd(memono,@memo(memono+2));
			im({No});		/* memono+2 から復元 */
			},
			202,
			{
			InactMemo;
			mclear(memono);
			madd(memono,@memo(memono+2));
			im({No});		/* memono+2 から復元 */
			},
			,{im({Yes})}
			);
		});
	};

/*	順序変更	*/
%RENUM	{
	%MOVE0	{
		%n	@xlinenum;
		case	(@mcheck=m3 && n>2,
			{Yes},
			{
			InactMemo;
			madd(m0,@memo(m2,n-2,1));
			madd(m1,@memo(m3,n,1));

			%m	@nolmemo(m2);
			%a	@case(n-2>1,{Yes},{im(@memo(m2,1,n-2-1))},
					{No},{im({})}) |
				@case(n-2<m,{Yes},{im(@memo(m2,n-2+1))},
					{No},{im({})});
			mclear(m2);
			madd(m2,a);

			%m	@nolmemo(m3);
			%b	@memo(m3,1,n-1) |
				@case(n<m,{Yes},{im(@memo(m3,n+1))},
					{No},{im({})});
			mclear(m3);
			madd(m3,b);
			},
			,{InactMemo}
			);
		im({Yes});
		};

	%MOVE1	{
		%m0	memono;		%m1	memono+1;
		%m2	memono+2;	%m3	memono+3;
		MOVE0;
		};

	%MOVE2	{
		%m0	memono+2;	%m1	memono+3;
		%m2	memono;		%m3	memono+1;
		MOVE0;
		};

	%CANall	{
		InactMemo;
		mclear(memono);
		mclear(memono+1);
		mclear(memono+2);
		mclear(memono+3);
		madd(memono+2,@memo(memono+4));
		madd(memono+3,@memo(memono+5));
		madd(memono+1,@memo(memono+3,1,2));
		im({Yes});
		};

	InactMemo;
	mclear(memono+2);		/* 巡回設定情報の順序変更前ﾃﾞｰﾀ */
	madd(memono+2,@memo(memono));
	mclear(memono+3);		/* 巡回設定表示形式の順序変更前ﾃﾞｰﾀ */
	madd(memono+3,@memo(memono+1));
	mclear(memono+4);		/* 巡回設定情報の順序変更前ﾃﾞｰﾀ */
	madd(memono+4,@memo(memono));
	mclear(memono+5);		/* 巡回設定表示形式の順序変更前ﾃﾞｰﾀ */
	madd(memono+5,@memo(memono+1));
	mclear(memono);
	mclear(memono+1);
	madd(memono+1,@memo(memono+3,1,2));
	loop	({
		case(@mcheck!=0,{Yes},{mclose(1)});
		mopen(memono+3,0,21,639,239,{r});
		mclose(1);
		mopen(memono+1,0,240,639,459,{r});
		footnote({終了取消        指定}|
			 {戻す全戻            }|
			 {        },{b});
		waitx();
		case	(@xtype,
			101,{InactMemo;im({No})},
			201,{InactMemo;im({No})},
			102,
			{
			InactMemo;
			mclear(memono);		/* memono+4 から復元 */
			madd(memono,@memo(memono+4));
			mclear(memono+1);	/* memono+5 から復元 */
			madd(memono+1,@memo(memono+5));
			im({No});
			},
			202,
			{
			InactMemo;
			mclear(memono);		/* memono+4 から復元 */
			madd(memono,@memo(memono+4));
			mclear(memono+1);	/* memono+5 から復元 */
			madd(memono+1,@memo(memono+5));
			im({No});
			},
			105,{MOVE1},	205,{MOVE1},
			106,{MOVE2},	206,{MOVE2},
			107,{CANall},	207,{CANall},
			memono+3,{MOVE1},
			memono+1,{MOVE2},
			,{im({Yes})}
			);
		});
	};

/*	保存して終了する	*/
%EXIT	{
	footnote({設定をファイルに保存して終了します});
	SNDMSG({erande_f.snd});
	select	({ファイルに保存して終了します},
		,,
		{   保存して終了する   },
		{
		InactMemo;
		NIFFILE:=CDIR2|{fapxnif.ctl};
		SETFILE2:={標準設定};
		delfile(NIFFILE);
		mwrite(NIFFILE,memono);
		im({No});
		},
		{  取消して設定に戻る  },
		{InactMemo;im({Yes})}
		);
	};

/*	一時設定	*/
%TEMP	{
	InactMemo;
	NIFFILE:=TEMP2|{fapxnif.tmp};
	SETFILE2:={一時設定};
	delfile(NIFFILE);
	mwrite(NIFFILE,memono);
	case(@filechk(NIFFILE),{No},{write(NIFFILE,{})});
	im({No});
	};

/************************************************************************
*	NIFTY巡回設定メインループ					*
*************************************************************************/
%setNIFTY{
	[memono]
	var dest[170];
	InactMemo;
	madd(memono,{});
	mclear(memono);
	case	(@filechk(NIFFILE),		/* memono に設定情報を読込 */
		{Yes},{mread(NIFFILE,memono)});
	MakeDisp;
	madd(memono+2,{});
	mclear(memono+2);			/* memon+2 を確保 */
	madd(memono+3,{});
	mclear(memono+3);			/* memon+3 を確保 */
	loop	({
		mopen(memono+1,0,21,639,459,{r});
		footnote({保存一時撤回退避復元}|
			 {先設全消順変変更追加}|
			 {読込手動},{b});
		waitx();
		case(@xtype,
			101,{EXIT},		201,{EXIT},
			102,{TEMP},		202,{TEMP},
			103,{CANCEL;im({Yes})},	203,{CANCEL;im({Yes})},
			104,{SAVE;im({Yes})},	204,{SAVE;im({Yes})},
			105,{LOAD;im({Yes})},	205,{LOAD;im({Yes})},
			106,{RESTORE;im({Yes})},206,{RESTORE;im({Yes})},
			107,{InactMemo;mclear(memono);MakeDisp;im({Yes})},
			207,{InactMemo;mclear(memono);MakeDisp;im({Yes})},
			108,{RENUM;im({Yes})},	208,{RENUM;im({Yes})},
			109,
			{
			%xl @xlinenum;
			case(xl>0,{Yes},{setNIF(xl)});
			im({Yes})
			},
			209,
			{
			%xl @xlinenum;
			case(xl>0,{Yes},{setNIF(xl)});
			im({Yes})
			},
			110,{addNIF;im({Yes})},
			210,{addNIF;im({Yes})},
			111,{FILECOPY;im({Yes})},
			211,{FILECOPY;im({Yes})},
			112,{HANDEDIT;im({Yes})},
			212,{HANDEDIT;im({Yes})},
			memono+1,{setNIF(@xlinenum);im({Yes})},
			,{InactMemo;im({Yes})});
		});
	DeleteMemo(memono);	/* 使用したメモの削除 */
	};

/************************************************************************
*	NIFTY巡回設定メイン						*
*************************************************************************/
var	file	[1600];
var	lnum	[2];	/*カーソル行数*/
var	line	[80];	/*カーソル行の内容*/

%memono	@mlast+1;
case	(memono>4,
	{No},{setNIFTY(memono)},
	{Yes},
	{
	SNDMSG	({kaknin_f.snd});
	select	({メモ4-9の内容が消去されます  よろしいですか？},
		Wtime4,,
		{ は　い },{setNIFTY(4)},
		{ いいえ },);
	});
