<?php
	//	バージョン情報
	define( "VER", "1.00");
	
	//	初期設定
	define( "SPLITER", "<>");					//	データの区切り文字
	//define( "PRIORITY_FILE", "priority.php");	//	優先スレッドファイル
	define( "THREAD_FILE", "thread.php");		//	スレッドの順位を保存するファイル
	
	define( "THREAD_DATA_FORM", "iID<>sFileName<>sDay<>sTime<>sTitle<>iRes<>etc");
	define( "LOG_DATA_FORM"   , "iID<>sDay<>sTime<>sName<>sMail<>sMsg<>sIP<>sAgent<>etc");
	define( "TOPLINK_DATA_FORM", "iID<>sURL<>sTitle<>etc");
	
	//	初期設定
	require("./init.php");
	//	関数定義
	require("./function.php");
	
	 // 各種変数の取得
	if( !ini_get('register_globals'))
	{
		$aTypeList = array('GET','POST','COOKIE','SESSION','SERVER');
		foreach( $aTypeList as $sType)
		{
			if( @count(${'HTTP_' . $sType . '_VARS'}) > 0)
			{
				extract(${'HTTP_' . $sType . '_VARS'}, EXTR_OVERWRITE);
			}
		}
	}
	
	
	//	HTMLヘッダー部分表示関数
	function EchoHeader()
	{
		$sResult = "<html><head><title>" . PAGE_TITLE . "</title>\n";
		$sResult .= "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">";
		$sResult .= "<STYLE type=\"text/css\">\n";
		$sResult .= "<!--\n";
		$sResult .= ".disp { display:none;}\n";
		$sResult .= "a:link    {text-decoration:underline; color:#0000FF; }\n";
//		$sResult .= "a:visited {text-decoration:none; color:#0000FF; }\n";
//		$sResult .= "a:active  {text-decoration:none; color:#0000FF; }\n";
		$sResult .= "a:hover   {text-decoration:underline; color:#0000FF; }\n";
//		$sResult .= "input { border-color:DDDDDD; background-color:FFFFFF; color:000000;}\n";
		$sResult .= "--></STYLE>\n";
		$sResult .= "<SCRIPT type=\"text/javascript\" src=\"chk.js\"></SCRIPT>";
		$sResult .= "<BASE TARGET=\"" . HYPER_LINK_TARGET . "\"></head>\n";
		$sResult .= "<body bgcolor=#EEEEEE text=#000000 link=#0000FF vlink=#0000FF alink=#0000FF leftMargin=0 topMargin=3 MARGINHEIGHT=3 MARGINWIDTH=0><SMALL>\n";
		$sResult .= "<div class=disp>";
				$sResult .= "<form method=POST action=\"./index.php?mode=send&num=0&hide=on\" onSubmit=\"RegistChk(this)\"><input type=hidden name=\"jschk\" value=\"999\">";
				$sResult .= "<input type=submit value=\"書き込む\">";
				$sResult .= " 名前：<INPUT TYPE=text name=sName maxlength=20 SIZE=20 value=\"" . $Like_2ch . "\"> E-mail：<INPUT TYPE=text NAME=sMail maxlength=50 SIZE=20><BR>";
				$sResult .= "<textarea rows=5 cols=64 wrap=OFF name=sMsg></textarea></form>";
		$sResult .= "</div>";
		$sResult .= "<BLOCKQUOTE><BR><H2><a name=\"#top\">" . PAGE_TITLE . "</a></H2>\n";
		
		$sResult .= EchoTopLink() . "<BR>";
		
		return( $sResult);
	}
	
	//	HTMLフッター部分表示関数
	function EchoFooter()
	{
		$sResult  = "<HR SIZE=1>\n";
		$sResult .= "<div align=right>[ Suteki-BBS(PHP Edition) ver" . VER . " ";
		$sResult .= "Copyright(C) woodtail@<A HREF=\"http://www.suteki-f.net/\">素敵工房</A> ]<BR></div>\n";
		$sResult .= "</BLOCKQUOTE></BODY></HTML>\n";
		
		return( $sResult);
	}
	
	// HTMLトップのリンク欄
	function EchoTopLink()
	{
		global $fAdmin, $gShowAdminCheck;
		
		$sResult = EchoLinkSite();

		if( $gShowAdminCheck == 1){
			if( $fAdmin == 0){	$sResult .= "　　<FONT SIZE=-1>[ <a href=\"./index.php?mode=adlogon\">管理者モード</a> ]</FONT>\n";	}
			else{	$sResult .= "　　<FONT SIZE=-1>[ <a href=\"./index.php?mode=adlogoff\">Logoff</a> ]</FONT>\n";	}
		}
		
		return( $sResult);
	}
	
	//	新規スレ作成フォーム
	function EchoNewThreadForm()
	{
		global $Like_2ch;
		
		@$aTempLog = GetFileLog( ATENTION_TXT);
		
		$sResult  = "<BR>[<a href=\"./\">TOPに戻る</a>]<HR SIZE=1><b>新規スレッド作成</b><BR>\n";
		
		for( $i=0; $i<sizeof( $aTempLog); $i++){
			$sResult .= $aTempLog[ $i];
		}
		
		$sResult .= "<form action=\"index.php\" method=\"POST\" onSubmit=\"return RegistChk(this)\"><input type=hidden name=\"jschk\" value=\"999\"><input type=hidden name=mode value=treg>\n";
		$sResult .= "<table><tr><td><small>スレッドタイトル</small></td><td><input type=text maxlength=40 size=40 name=sTitle>(必須)</td></tr>\n";
		$sResult .= "<tr><td><BR></td></tr><tr><td><small><div align=right>名前</div></small></td><td><input type=text name=sName maxlength=20 SIZE=20 value=\"" . $Like_2ch . "\">(必須)</td></tr>\n";
		$sResult .= "<tr><td><small><div align=right>E-Mail</div></small></td><td><input type=text name=sMail maxlength=50 SIZE=20></td></tr>\n";
		$sResult .= "<tr><td><small><div align=right>コメント<BR>(必須)</div></small></td><td><textarea rows=5 cols=64 wrap=OFF name=sMsg></textarea></td></tr>\n";
		$sResult .= "<tr><td></td><td><input type=submit value=\"書き込む\"></td></tr>\n";
		$sResult .= "</table></form>\n";
		
		return( $sResult);
	}
	
	//	閲覧者入室パスワード入力フォーム
	function EchoJoinForm()
	{
		$sResult  = "<BR>[<a href=\"./\">TOPに戻る</a>]<HR SIZE=1><form action=\"./index.php\" method=\"POST\"><input type=hidden name=mode value=join>\n";
		$sResult .= "<B>閲覧者入室パスワードを入れてください。</B>";
		$sResult .= "<table><tr><td><input type=password maxlength=40 size=40 name=sPass></td></tr>\n";
		$sResult .= "<tr><td><input type=submit value=\"入室\"></td></tr>\n";
		$sResult .= "</table></form>\n";
		
		return( $sResult);
	}
	
	//	管理者入室パスワード入力フォーム
	function EchoAdminForm()
	{
		$sResult  = "<BR>[<a href=\"./\">TOPに戻る</a>]<HR SIZE=1><form action=\"./index.php\" method=\"POST\"><input type=hidden name=mode value=admin>\n";
		$sResult .= "<B>！管理者入室パスワードを入れてください。！</B>";
		$sResult .= "<table><tr><td><input type=password maxlength=40 size=40 name=sPass></td></tr>\n";
		$sResult .= "<tr><td><input type=submit value=\"入室\"></td></tr>\n";
		$sResult .= "</table></form>\n";
		
		return( $sResult);
	}
	
	//	スレタイ内容変更フォーム (管理者用)
	function EchoTitleModifyForm( $sTemp)
	{
		global $Link_2ch;
		$cTitle = new ThreadLog;
		
		$cTitle->sProtLine = $sTemp;
		$cTitle->GetLine();
		
		$sResult  = "<BR>[<a href=\"./\">TOPに戻る</a>]<HR SIZE=1><dl>\n";
		$sResult .= "<font color=red size=+1><b>" . $cTitle->sTitle . "</b></font> 【 " . $cTitle->iRes . " 】<BR>\n";
		$sResult .= "<dd>スレッドタイトル編集<form method=POST action=\"./index.php\">\n";
		$sResult .= "<input type=hidden name=mode value=\"titlereg\">\n";
		$sResult .= "<input type=hidden name=num value=" . $cTitle->iID . ">\n";
		$sResult .= "<input type=submit value=\"変更\">\n";
		$sResult .= "<input type=hidden name=iID value=" . $cTitle->iID . ">\n";
		$sResult .= "<input type=hidden name=sFileName value=" . $cTitle->sFileName . ">\n";
		$sResult .= "<input type=hidden name=sDay value=" . $cTitle->sDay . ">\n";
		$sResult .= "<input type=hidden name=sTime value=" . $cTitle->sTime . ">\n";
		$sResult .= "<input type=hidden name=iRes value=" . $cTitle->iRes . ">\n";
		$sResult .= "<input type=hidden name=etc value=\"" . $cTitle->etc . "\">\n";
		$sResult .= "<input type=text maxlength=40 size=40 name=sTitle value=\"" . $cTitle->sTitle . "\"></form></dd></dl>\n";
		
		return( $sResult);
	}
	
	//	発言内容変更フォーム (管理者用)
	function EchoModifyForm( $sTemp, $sThreadTemp)
	{
		global $Link_2ch;
		$cTemp = new Base;
		$cTitle = new ThreadLog;
		
		$cTemp->sProtLine = $sTemp;
		$cTemp->GetLine();
		
		$cTitle->sProtLine = $sThreadTemp;
		$cTitle->GetLine();
		
		$cTemp->sMsg = ereg_replace( "<BR>", "\n", $cTemp->sMsg);
		
		$sResult  = "<BR>[<a href=\"./\">TOPに戻る</a>]<HR SIZE=1><dl>\n";
		$sResult .= "<font color=red size=+1><b>" . $cTitle->sTitle . "</b></font> 【 " . $cTitle->iRes . " 】<BR>\n";
		$sResult .= "<dd>Res No." . ($cTemp->iID + 1) . "　書き込み内容編集<form method=POST action=\"./index.php\">\n";
		$sResult .= "<input type=hidden name=mode value=\"modreg\">\n";
		$sResult .= "<input type=hidden name=num value=" . $cTitle->iID . ">\n";
		$sResult .= "<input type=hidden name=point value=" . $cTemp->iID . ">\n";
		$sResult .= "<input type=submit value=\"変更\">\n";
		$sResult .= " 名前：<INPUT TYPE=text name=sName maxlength=20 SIZE=20 value=\"" . $cTemp->sName . "\"> E-mail：<INPUT TYPE=text NAME=sMail maxlength=50 SIZE=20 value=\"" . $cTemp->sMail . "\"><BR>";
		$sResult .= "<textarea rows=5 cols=64 wrap=OFF name=sMsg>" . $cTemp->sMsg . "</textarea></form></dd></dl>";
		
		return( $sResult);
	}
	
	//	スレのログ数が指定数を超えた時の表示関数
	function EchoOverLog()
	{
		$sResult  = "<FONT COLOR=RED><b>発言件数が " . VIEW_LOG_MAX . "件に達しました。このスレにはもう発言できません<BR>同じ内容を扱う新しいスレッドを作成してください。</b></FONT><BR><BR>";
		//	$sResult .= EchoNewThreadForm();
		$sResult .= "<a href=\"index.php?mode=new\">新規スレを作成</a><BR><BR>";
		
		return( $sResult);
	}
	
	//	トップリンク表示関数
	function EchoLinkSite()
	{
		$cTemp = new TopLink;
		
		$sResult = "";
		@$aTempLog = GetFileLog( TOPLINK_FILE);
		
		for( $i=0; $i<sizeof( $aTempLog); $i++)
		{
			$cTemp->sProtLine = $aTempLog[ $i];
			$cTemp->GetLine();
			
			if( $cTemp->sURL == ""){
				$sResult .= $cTemp->sTitle . "\n";
			}else{
				$sResult .= "[ <A HREF=\"" . $cTemp->sURL . "\">" . $cTemp->sTitle . "</A> ] \n";
			}
		}
		
		return( $sResult);
	}
	
	
	//	ログ中に「>>xx」があった場合その記事Noに対してモードonlyでリンクをつける
	function EchoLinkLog( $sTemp, $iID)
	{
		$sTemp = EchoLogForcus( $sTemp);
		$sResult = eregi_replace( "((&gt;){1,2})([0-9]+)","<A HREF=\"./index.php?mode=only&num=" . $iID . "&start=\\3\">\\1\\3</A>", $sTemp);
		
		return( $sResult);
	}
	
	//	ログ中に「>」があった場合、それ以降の文字の色を変える。（リターン出現で元に戻る
	function EchoLogForcus( $sTemp)
	{
		//$sResult = eregi_replace( "(&gt;){1,2}(.+<BR>)?", "<FONT COLOR=#000077>\\1\\2</FONT>", $sTemp);
		$sResult = eregi_replace( "((<BR>)|^)((&gt;|＞){1,2}([^<]|<A|</|<BR>&gt;)+)", "<FONT COLOR=#6666aa>\\1\\3</FONT>", $sTemp);
		
		return( $sResult);
	}
	
	//	スレッドを読み込んだとき非表示設定な物を取り除く。
	function DelThread( $aTemp)
	{
		global $fAdmin;
		
		$iCount = 0;
		$cThreadTemp = new ThreadLog;
		
		if( $fAdmin == 0){
//			$aTestTemp = aCmpLog( "etc", 0, $aTemp);
			
			for( $i=0; $i<sizeof( $aTemp); $i++){
				$cThreadTemp->sProtLine = $aTemp[ $i];
				$cThreadTemp->GetLine();
				
				if( $cThreadTemp->etc == 0){
					$aThreadTemp[ $iCount] = $aTemp[ $i];
					$iCount++;
				}
				
//				echo ">>" . $aTemp[ $i] . "==>" . $cThreadTemp->etc . "<BR>";
			}
		}else{
			$aThreadTemp = $aTemp;
		}
		
		return( $aThreadTemp);
	}
	
	//	HTMLログ一つ整形君 $sTemp=ログ 1行
	function EncodingLine( $sTemp, $iID)
	{
		global $fAdmin; 
		
		$cTemp = new Base;
		
		$cTemp->sProtLine = $sTemp;
		$cTemp->GetLine();
		
		if( $fAdmin == 1){
			$cTemp->sMsg = sEncodeURL( $cTemp->sMsg);
			
			if( $cTemp->sMail == ""){
				if( $cTemp->etc == 1){
					$sResult  = "<dt><font color=red>" . ($cTemp->iID+1) . " ： <b>" . $cTemp->sName . "</b> ： " . $cTemp->sDay . " " . $cTemp->sTime . "</font>";
				}else{
					$sResult  = "<dt>" . ($cTemp->iID+1) . " ： <b>" . $cTemp->sName . "</b> ： " . $cTemp->sDay . " " . $cTemp->sTime;
				}
				$sResult .= "<!--" . $cTemp->sAgent . " // " . $cTemp->sIP . "-->";
			}else{
				$sResult  = "<dt>" . ($cTemp->iID+1) . " ： <b><a href=\"mailto:" . $cTemp->sMail . "\">" . $cTemp->sName . "</a></b> ： " . $cTemp->sDay . " " . $cTemp->sTime . "<!--" . $cTemp->sAgent . " // " . $cTemp->sIP . "-->";
			}
			
			if( ( $cTemp->iID == 0) or ( $cTemp->iID == ( VIEW_LOG_MAX - 1))){
				$sResult .= " [ <a href=\"./index.php?mode=msgmod&num=" . $iID . "&point=" . $cTemp->iID . "\">編集する</a> ] ";
			}else{
				if( $cTemp->etc == 0){
					$sResult .= " [ <a href=\"./index.php?mode=msgdel&num=" . $iID . "&point=" . $cTemp->iID . "\">削除する</a> ]";
				}elseif( $cTemp->etc == 1){
					$sResult .= " [ <a href=\"./index.php?mode=msgdel&num=" . $iID . "&point=" . $cTemp->iID . "\"><b>表示する</b></a> ]";
				}
				$sResult .= "[ <a href=\"./index.php?mode=msgmod&num=" . $iID . "&point=" . $cTemp->iID . "\">編集する</a> ] ";
			}
			
			$sResult .= "</dt><dd>" . EchoLinkLog( $cTemp->sMsg, $iID) . "</dd><BR><BR>\n";
		}else{
			if( $cTemp->etc == 1){
//				$sResult  = "<dt>" . ($cTemp->iID+1) . " ： <b>---</b> ： xxxx/xx/xx/(xxx) xx:xx";
//				$sResult .= "</dt><dd><BR><b>---　この書き込みは削除されました。　---</b></dd><BR><BR>\n";
			}else{
				$cTemp->sMsg = sEncodeURL( $cTemp->sMsg);
				
				if( $cTemp->sMail == ""){
					$sResult  = "<dt>" . ($cTemp->iID+1) . " ： <b>" . $cTemp->sName . "</b> ： " . $cTemp->sDay . " " . $cTemp->sTime;
					$sResult .= "<!--" . $cTemp->sAgent . " // " . $cTemp->sIP . "-->";
				}else{
					$sResult  = "<dt>" . ($cTemp->iID+1) . " ： <b><a href=\"mailto:" . $cTemp->sMail . "\">" . $cTemp->sName . "</a></b> ： " . $cTemp->sDay . " " . $cTemp->sTime . "<!--" . $cTemp->sAgent . " // " . $cTemp->sIP . "-->";
				}
				
				$sResult .= "</dt><dd>" . EchoLinkLog( $cTemp->sMsg, $iID) . "</dd><BR><BR>\n";
			}
		}
		return( $sResult);
	}
	
	
	//	HTMLログ部分整形関数 $sTemp=対象スレッドのデータ	$iView=表示するログ数	$iNum=表示番号。	$iViewMode=0以外でこの値の位置から表示
	function EchoLog( $sTemp, $iView, $iNum, $iViewMode)
	{
		global $fAdmin, $mode, $Like_2ch;
		
		$cTemp = new Base;
		$cTitle = new ThreadLog;
		
		$cTitle->sProtLine = $sTemp;
		$cTitle->GetLine();
		
		if( file_exists( $cTitle->sFileName . ".php"))
		{
			@$aTempLog = GetFileLog( $cTitle->sFileName . ".php");
			
		//	$sResult  = "<HR SIZE=1></BLOCKQUOTE><a name=\"" . ( $iNum + 1) . "\"></a><BLOCKQUOTE><dl>\n";
			$sResult  = "<HR SIZE=1><dl>\n";
			$sResult .= "<font color=red size=+1><b><a name=\"" . ( $iNum + 1) . "\">" . $cTitle->sTitle . "</a></b></font> 【 " . $cTitle->iRes . " 】";
			
			if( $fAdmin == 1)
			{
				$sResult .= "　[ <a href=\"./index.php?mode=titlemod&num=" . $cTitle->iID . "\">編集する</a> ] ";
				if( $cTitle->etc == 0){
					$sResult .= "[ <a href=\"./index.php?mode=thredel&num=" . $cTitle->iID . "\">非表示にする</a> ]";
				}else{
					$sResult .= "[ <a href=\"./index.php?mode=thredel&num=" . $cTitle->iID . "\"><B>閲覧可能にする</B></a> ]";
				}
			}
			
			if( !CmpStr( "normal", $mode)){
				$sResult .= "<BR>";
			}else{
				$sResult .= "<BR><div align=right><a href=\"#top\">■TOPに戻る</a></div>\n";
			}
			
			if( $iViewMode == "")
			{

				if( !CmpStr( "only", $mode)){

					$sResult .=  EncodingLine( $aTempLog[ 0], $cTitle->iID);

					$sDumy = array_shift( $aTempLog);

					

					$iStart = sizeof( $aTempLog) - $iView;

					$iEnd = sizeof( $aTempLog);

				}else{

					$sResult .=  EncodingLine( $aTempLog[ 0], $cTitle->iID);

				}

				if( $iStart < 0){	$iStart = 0;	}

			}else{

				$iStart = $iViewMode;

				$iEnd = $iViewMode + $iView;

				

				if( !CmpStr( "only", $mode)){

					if( $iViewMode != 0){

						$sResult .=  EncodingLine( $aTempLog[ 0], $cTitle->iID);

					}

				}

				

				if( $iEnd > sizeof( $aTempLog)){

					$iEnd = sizeof( $aTempLog);

				}

				

				if( $iStart > sizeof( $aTempLog)){

					//	開始位置範囲外

					$iStart = sizeof( $aTempLog) - $iView;

					$sDumy = array_shift( $aTempLog);

				}

			}

			

			for( $i=$iStart; $i<$iEnd; $i++){

				$sResult .=  EncodingLine( $aTempLog[ $i], $cTitle->iID);

			}

			

			if( $cTitle->iRes >= VIEW_LOG_MAX){

				$sResult .= EchoMenu( $sTemp, VIEW_LOG_SINGLE, 1) . "</dl>" . EchoOverLog();

			}else{

				$sResult .= "<dd><form method=POST action=\"./index.php?mode=send&num=" . $cTitle->iID . "\" onSubmit=\"RegistChk(this)\"><input type=hidden name=\"jschk\" value=\"999\">";
				$sResult .= "<input type=submit value=\"書き込む\">";
				$sResult .= " 名前：<INPUT TYPE=text name=sName maxlength=20 SIZE=20 value=\"" . $Like_2ch . "\"> E-mail：<INPUT TYPE=text NAME=sMail maxlength=50 SIZE=20><BR>";
				$sResult .= "<textarea rows=5 cols=64 wrap=OFF name=sMsg></textarea>";
				
				if( CmpStr( "normal", $mode)){
					$sResult .= EchoMenu( $sTemp, VIEW_LOG_SINGLE, 1) . "</form></dd></dl>";
				}else{
					$sResult .= "</form></dd></dl>";
				}
			}

		}

		else	//	対象のスレッドデータの無い場合

		{

			$sResult  = "<HR SIZE=1><dl>\n";

			$sResult .= "<font color=red size=+1><b><a name=\"" . ( $iNum + 1) . "\">" . $cTitle->sTitle . "</a></b></font> 【 " . $cTitle->iRes . " 】";

			

			if( $fAdmin == 1)

			{

				$sResult .= "　[ <a href=\"./index.php?mode=titlemod&num=" . $cTitle->iID . "\">編集する</a> ] ";

				if( $cTitle->etc == 0){

					$sResult .= "[ <a href=\"./index.php?mode=thredel&num=" . $cTitle->iID . "\">非表示にする</a> ]";

				}else{

					$sResult .= "[ <a href=\"./index.php?mode=thredel&num=" . $cTitle->iID . "\"><B>閲覧可能にする</B></a> ]";

				}

			}

			

			if( !CmpStr( "normal", $mode)){

				$sResult .= "<BR>";

			}else{

				$sResult .= "<BR><div align=right><a href=\"#top\">■TOPに戻る</a></div>\n";

			}

			

			$sResult .= "<font color=red><b>このスレッドはデータが無いか破損している恐れがあります。</b></font></dl>";

		}

		return( $sResult);

	}

	

	//	HTMLスレッド部分表示関数

	function EchoThread( $aTemp)

	{

		global $gThread, $gShowThread;		//	レスも表示するスレッド数,,表示するスレッドの数

		

		$cTemp = new ThreadLog;

		$sResult = "<HR SIZE=1>\n";

		

		if( $gShowThread > sizeof( $aTemp)){

			$iEnd = sizeof( $aTemp);

		}else{

			$iEnd = $gShowThread;

		}

		

		if( SHOW_LAST_UPDATE ){

			$sResult .= "最終更新日時 : " . date( "Y\/m\/d\ H\:i", filemtime( THREAD_FILE)) . "<BR>";

		}

		

		for( $i=0; $i<$iEnd; $i++){

			$cTemp->sProtLine = $aTemp[ $i];

			$cTemp->GetLine();

			if( $i < $gThread){

				if( $cTemp->etc == 1){

					$sResult .= "<a href=\"./index.php?mode=single&num=" . $cTemp->iID . "\"><font color=red>" . trim($i+1) . ":</font></a> <a href=\"#" . trim($i+1) . "\"><font color=red>" . $cTemp->sTitle . " (" . $cTemp->iRes . ")</font></a>　\n";

				}else{

					$sResult .= "<a href=\"./index.php?mode=single&num=" . $cTemp->iID . "\">" . trim($i+1) . ":</a> <a href=\"#" . trim($i+1) . "\">" . $cTemp->sTitle . " (" . $cTemp->iRes . ")</a>　\n";

				}

			}else{

//				$sResult .= "<a href=\"./index.php?mode=single&num=" . $cTemp->iID . "\">" . trim($i+1) . ": " . $cTemp->sTitle . " (" . $cTemp->iRes . ")</a>　\n";

				$sResult .= "<a href=\"./index.php?mode=single&num=" . $cTemp->iID . "\"><font color=\"#000088\">" . trim($i+1) . ": " . $cTemp->sTitle . " (" . $cTemp->iRes . ")</font></a>　\n";

			}

		}

		

//		if( !($gShowThread > sizeof( $aTemp))){

			$sResult .= "<BR><div align=right><a href=\"./index.php?mode=thread\"><b>スレッド一覧</b></a></div>";

//		}else{

//			$sResult .= "<BR><BR>";

//		}

		

		$sResult .= "<a href=\"index.php?mode=new\">新規スレを作成</a>";

		

		return( $sResult);

	}

	

	//	スレッド単独表示時とかの表示メニュー

	function EchoMenu( $sTemp, $iView, $etc)

	{

		$cThreadTemp = new ThreadLog;

		

		$cThreadTemp->sProtLine = $sTemp;

		$cThreadTemp->GetLine();

		

		if( $etc == 1){

			$sResult  = "<BR><a href=\"#top\">TOPに戻る</a> ";

		}else{

			$sResult  = "<BR><a href=\"./\">TOPに戻る</a> ";

		}

		

		$sResult .= "<a href=\"./index.php?mode=all&num=" . $cThreadTemp->iID . "\">全部読む</a> ";

		

		$iPage = (int)(($cThreadTemp->iRes - 1) / $iView);

		for( $i=0; $i<$iPage+1; $i++){

			if( (($i+1) * $iView) > $cThreadTemp->iRes){

				$iEnd = $cThreadTemp->iRes;

			}else{

				$iEnd = ($i+1) * $iView;

			}

			$iStart = $i * $iView;

			//	$sResult .= "<a href=\"./index.php?mode=single&num=" . $cThreadTemp->iID . "&start=" . $iStart . "\">" . ( $iStart+1) . "-" . $iEnd . "</a> ";

			$sResult .= "<a href=\"./index.php?mode=single&num=" . $cThreadTemp->iID . "&start=" . $iStart . "\">" . ( $iStart+1) . "-</a> ";

		}

		

		if( $cThreadTemp->iRes < $iView){

			$sResult .= "<a href=\"./index.php?mode=single&num=" . $cThreadTemp->iID . "\">最新" . $cThreadTemp->iRes . "</a>";

		}else{

			$sResult .= "<a href=\"./index.php?mode=single&num=" . $cThreadTemp->iID . "\">最新" . $iView . "</a>";

		}

		

		$sResult .= "　<FONT COLOR=\"#EEEEEE\">スレッド名：" . $cThreadTemp->sTitle . "</FONT>\n";

		

		return( $sResult);

	}

	

	//	クラス定義

	Class Base		//	データの基本形、メンバ関数。これを継承したりして作っても可。

	{	

		/*	"iID<>sDay<>sTime<>sName<>sMail<>sMsg<>sIP<>sAgent<>etc"	*/

		

		var $sProtLine;			// これに通常のデータを代入すれ。

		var $aFormName;

		var $iFormSize;

		

		function Base()		//	コンストラクタ〜ん

		{

			@$this->aFormName = aSplitStr( LOG_DATA_FORM, SPLITER);			// これを可変変数で使うのじゃ ex: $this->{$aFormName[ int]} = STR

			$this->iFormSize = sizeof( $this->aFormName);				// 一応データの数も返せるようにします

		}

		

		function GetLine()		//		$sProtLineの1行を分解して可変変数に代入。

		{

			@$aTemp = aSplitStr( $this->sProtLine, SPLITER);

			

			for( $i=0; $i < $this->iFormSize; $i++){

				$this->{ $this->aFormName[ $i]} = $aTemp[ $i];

			}

		}

		

		function FormMarge()		//	SPLITERで、メンバー変数を繋いじゃいます。

		{

			for( $i=0; $i < $this->iFormSize; $i++){

				$aTemp[ $i] = $this->{ $this->aFormName[ $i]};

			}

			//	$sResult = sMargeStr( $aTemp, SPLITER);

			$sResult = implode( SPLITER, $aTemp);

			

			return( $sResult);

		}

	}

	

	

	Class ThreadLog extends Base

	{

		function ThreadLog()		//	コンストラクタ

		{

			@$this->aFormName = aSplitStr( THREAD_DATA_FORM, SPLITER);

			$this->iFormSize = sizeof( $this->aFormName);

		}

	}

	

	Class TopLink extends Base

	{

		function TopLink()		//	コンストラクタ

		{

			@$this->aFormName = aSplitStr( TOPLINK_DATA_FORM, SPLITER);

			$this->iFormSize = sizeof( $this->aFormName);

		}

	}

	

	/* --- メイン処理 -------------------------------------------------------- */
	
	if( $_GET["mode"] != null){
		$mode = $_GET["mode"];
		$num = $_GET["num"];
		$start = $_GET["start"];
		$point = $_GET["point"];
	}else{
		$mode = $_POST["mode"];
		$num = $_POST["num"];
		$start = $_POST["start"];
		$point = $_POST["point"];
	}
	
	$sName = $_POST["sName"];
	$sMsg = $_POST["sMsg"];
	$sMail = $_POST["sMail"];
	
	//$hide = $_POST["hide"];
	$jschk = $_POST["jschk"];
	$sPass = $_POST["sPass"];
	
	$cTemp = new Base;
	$cThreadTemp = new ThreadLog;
	
	$fErr = TRUE;							//	何らかのエラーフラグ
	$sErrlog = "";							//	何らかのメッセージ
	$fJoin = 0;				//	Memberか否か。
	$fAdmin = 0;			//	管理者権限
	
	$sShowLog = "";
	
	$gAgent = SetAgent();
//	if( $gAgent == 1){
//		$mode = "i" . $mode;
//	}
	
	$Like_2ch_admin_pass = $_COOKIE["Like_2ch_admin_pass"];
	$Like_2ch_pass       = $_COOKIE["Like_2ch_pass"];
	
	if( CmpStr( ADMIN_PASS, $Like_2ch_admin_pass)){	$fAdmin = 1;	$fJoin = 1;	}
	
	if( $gPassUse == 1){
		if( CmpStr( MEMBER_COOKIE, $Like_2ch_pass)){	$fJoin = 1;	}
	}else{
		$fJoin = 1;
	}
	
	//	管理者のチェック
	if( $fAdmin == 0){
		if( CmpStr( "admin", $mode))
		{
			if( CmpStr( $sPass, ADMIN_PASS))
			{
				//	今日のおやつはクッキーですよ（取り合えず賞味期限は1時間）
				setcookie( "Like_2ch_admin_pass", ADMIN_PASS, time() + (ADMIN_TIME));
				$Like_2ch_admin_pass = ADMIN_PASS;
				$mode = "normal";
				$fjoin = 1;
				$fAdmin = 1;
			}else{
				$sShowLog = "<BR><HR SIZE=1><FONT COLOR=RED>パスワードが違います。もう一度入力してください。</FONT><BR>\n";
				$mode = "adlogon";
			}
		}
		
		if( CmpStr( "adlogon", $mode)){
			$sShowLog .= EchoAdminForm();
		}
		
		if( CmpStr( "adlogoff", $mode)){	$mode = "normal";	}
	}else{
		if( CmpStr( "adlogoff", $mode))
		{
			setcookie( "Like_2ch_admin_pass", ADMIN_PASS, time() - (3600));
			$mode = "normal";
			$fAdmin = 0;
			//$fJoin = 1;
		}
	}
	
	//	閲覧者のチェック
	if( $fJoin == 0){
		if( CmpStr( "join", $mode))
		{
			if( CmpStr( $sPass, MEMBER_PASS))
			{
				//	明日もおやつはクッキーですよ
				setcookie( "Like_2ch_pass", MEMBER_COOKIE, time() + (MEMBER_TIME));
				$Like_2ch_pass = MEMBER_COOKIE;
				$mode = "normal";
				$fJoin = 1;
			}else{
				$sShowLog = "<BR><HR SIZE=1><FONT COLOR=RED>パスワードが違います。もっかい。<BR>パスワードを忘れた場合、管理者に聞きましょう。</FONT><BR>\n";
				$mode = "";
			}
		}
		
		if( $mode == ""){
			$sShowLog .= EchoJoinForm();
		}
	}
	
	
	$gHead = EchoHeader();
	$gFoot = EchoFooter();
	
	if( $fJoin == 1){		//	表示モードの入れ子
	
	if( $view == ""){
		$gViewLog = VIEW_LOG_MAIN;
	}else{
		$gViewLog = $view;
	}
	
	if( $mode == ""){	$mode = "normal";	}
	
	//	スレッドが何も無いときの処理
	if( CmpStr( "normal", $mode) or CmpStr( "thread", $mode) or CmpStr( "all", $mode) or CmpStr( "single", $mode) or CmpStr( "only", $mode)){
		if( !file_exists( THREAD_FILE)){
			$mode = "nothing";
			WriteLog( "", THREAD_FILE);
		}else{
			@$aTemp = GetFileLog( THREAD_FILE);
			if( $aTemp[0] == ""){
				$mode = "nothing";
			}
		}
	}
	
	//	スレッド一覧表示
	if( CmpStr( "thread", $mode))
	{
		@$aTemp = DelThread( GetFileLog( THREAD_FILE));
		
		$sShowLog .= "<BR><a href=\"./\">TOPに戻る</a><BR><HR SIZE=1>\n";
		
		for( $i=0; $i<sizeof( $aTemp); $i++){
			$cThreadTemp->sProtLine = $aTemp[ $i];
			$cThreadTemp->GetLine();
			
			$sTemp = "";
			
			if( ( $i!=0) &&(( $i%10)==0)){
				$sShowLog .= "<BR>";
			}
			
			if( $fAdmin == 1){
				if( $cThreadTemp->etc == 0){
					$sTemp .= "[ <a href=\"./index.php?mode=thredel&num=" . $cThreadTemp->iID . "\">非表示化</a> ]";
				}else{
					$sTemp .= "[　<a href=\"./index.php?mode=thredel&num=" . $cThreadTemp->iID . "\"><FONT COLOR=RED>表示化</FONT></a>　]";
				}
			}
			
			if( SHOW_THREAD_UPDATE ){
				if( file_exists( $cThreadTemp->sFileName . ".php")){
					$sTemp .= " [" . date( "Y\/m\/d - H\:i", filemtime( $cThreadTemp->sFileName . ".php")) . "] ";
				}else{
					$sTemp .= " [ - -- unknow -- - ] ";
				}
			}
			
			$sShowLog .= ($i+1) . $sTemp . " <a href=\"index.php?mode=single&num=" . $cThreadTemp->iID . "\">" . $cThreadTemp->sTitle . " (" . $cThreadTemp->iRes . ")</a><BR>\n";
		}
	}
	
	//	スレッド全部表示
	if( CmpStr( "all", $mode))
	{
		if( $view == ""){
			$gViewLog = VIEW_LOG_SINGLE;
		}else{
			$gViewLog = $view;
		}
		
		@$aTemp = GetFileLog( THREAD_FILE);
		$sTemp = aCmpLog( "iID", $num, $aTemp);
		$cThreadTemp->sProtLine = $sTemp[ 0];
		$cThreadTemp->GetLine();
		
		if( $cThreadTemp->etc == 1){
			$sShowLog .= "<HR SIZE=1><BR><b>そんなスレッドはありません。</b><BR><BR>\n";
		}else{
			//	ログ全部表示
			$sShowLog .= EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0) . EchoLog( $cThreadTemp->sProtLine, $cThreadTemp->iRes, 0, 0) . EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0);
		}
	}
	
	//	スレッド単独表示
	if( CmpStr( "single", $mode))
	{

		if( $view == ""){

			$gViewLog = VIEW_LOG_SINGLE;

		}else{

			$gViewLog = $view;

		}

		

		@$aTemp = GetFileLog( THREAD_FILE);

		$sTemp = aCmpLog( "iID", $num, $aTemp);

		$cThreadTemp->sProtLine = $sTemp[ 0];

		$cThreadTemp->GetLine();

		

		

		if( $cThreadTemp->etc == 1){

			$sShowLog .= "<HR SIZE=1><BR><b>そんなスレッドはありません。</b><BR><BR>\n";

		}else{

			//	指定範囲のログ表示

			$sShowLog .= EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0) . EchoLog( $cThreadTemp->sProtLine, $gViewLog, 0, $start) . EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0);

		}

	}

	

	//	スレッド内記事一件表示

	if( CmpStr( "only", $mode))

	{

		if( $view == ""){

			$gViewLog = VIEW_LOG_SINGLE;

		}else{

			$gViewLog = $view;

		}

		

		@$aTemp = GetFileLog( THREAD_FILE);

		$sTemp = aCmpLog( "iID", $num, $aTemp);

		$cThreadTemp->sProtLine = $sTemp[ 0];

		$cThreadTemp->GetLine();

		

		$start = $start - 1;

		if( $start < 0){ $start = 0; }

		

		if( $cThreadTemp->etc == 1){

			$sShowLog .= "<HR SIZE=1><BR><b>そんなスレッドはありません。</b><BR><BR>\n";

		}else{

			//	指定範囲のログ表示

			$sShowLog .= EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0) . EchoLog( $cThreadTemp->sProtLine, 1, 0, $start) . EchoMenu( $cThreadTemp->sProtLine, $gViewLog, 0);

		}

	}

	

	

	//	レスつけ。

	if( CmpStr( "send", $mode))

	{

		//	名前チェック

		if( $sName == ""){

			if( UNKNOW_NAME_STAT == 0){

				$sName = UNKNOW_NAME_VALUE;

			}else{

				$sErrlog .= " 名前 ";

				$fErr = FALSE;

			}

		}

		

		//	コメントチェック

		if( $sMsg == ""){

			$sErrlog .= " メッセージ ";

			$fErr = FALSE;

		}

		

		//	入力メッセージ量チェック

		if( REG_LOG_MAX != 0){

			if( strlen( $sMsg) > REG_LOG_MAX){

				//	ここに書き込み量が多すぎたらエラーを吐く処理。

			}

		}


		if ( !(preg_match( "/(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/", $sMsg))){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}
		
		
		if( eregi( "on", $hide)){
			$fErr = FALSE;
			exit;
		}
/*		
		if( eregi( ".info", $sMsg)){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}
		
		if( eregi( "href=", $sMsg)){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}
		
		if( eregi( "ymra", $sMsg)){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}
*/		
		if( eregi( "url=", $sMsg)){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}
		
		
		

		if( !($fErr)){

			$mode = "normal";

			$sShowLog = "<BR><FONT COLOR=RED><B>" . $sErrlog . "が未記入です。<BR>もう一度入力して下さい。</B></FONT><BR>";

		}else{

			//iID<>sFileName<>sDay<>sTime<>sTitle<>iRes<>etc

			@$aTemp = GetFileLog( THREAD_FILE);

			

			$sTemp = aCmpLog( "iID", $num, $aTemp);

			$cThreadTemp->sProtLine = $sTemp[ 0];

			$cThreadTemp->GetLine();

			

			if( $sTemp == ""){

				$sShowLog .= "<HR SIZE=1><BR><b>そんなスレッドはありません。</b><BR><BR>\n";

			}else{

			

			

			

			if( $cThreadTemp->iRes >= VIEW_LOG_MAX){

				$sShowLog = "<HR SIZE=1>" . EchoOverLog();

			}else{

				$cThreadTemp->iRes++;

				$sTempFileName = $cThreadTemp->sFileName;

				

				//	クッキーを食べましょう

				setcookie( "Like_2ch", "$sName", time() + (USER_TIME));

				if( $gPassUse == 1){	setcookie( "Like_2ch_pass", MEMBER_COOKIE, time() + (MEMBER_TIME));	}

				

				//	新規書き込み時（名前変更時）の初回クッキー対策

				//$Like_2ch = "$sName";

				

				$sTemp = $cThreadTemp->FormMarge() . "\r\n";

				

				/* ここにsageの処理及び、レスがついたスレッドを一番上に。 */

				//	sageならスレッド順位を変えない。

				

				$fSageTemp = 0;

				if( SAGE_TYPE == "YES"){

					if( strtolower( $sMail) == "sage"){	$fSageTemp = 1;	}

				}elseif( SAGE_TYPE == "ADMIN"){

					if( $fAdmin == 1){

						$fSageTemp = 1;

					}else{

						if( strtolower( $sMail) == "sage"){	$fSageTemp = 1;	}

					}

				}elseif( SAGE_TYPE == "ADMIN_UP"){

					$fSageTemp = 1;

					if( $fAdmin == 1){

						$fSageTemp = 0;

					}

				}else{

					$fSageTemp = 0;

				}

				

				if( $fSageTemp == 1){

					if( sizeof( $aTemp) == 1){

						//	$aResultTemp = array_merge( $sTemp, $aTemp[ 0]);

						$aResultTemp = $sTemp;

					}else{

						for( $i=0; $i<sizeof( $aTemp); $i++){

							$cThreadTemp->sProtLine = $aTemp[ $i];

							$cThreadTemp->GetLine();

							

							if( $cThreadTemp->iID == $num){

								$aResultTemp[ $i] = $sTemp;

							}else{

								$aResultTemp[ $i] = $aTemp[ $i];

							}

						}

					}

				}else{

					

					if( sizeof( $aTemp) == 1){

						//	$aResultTemp = array_merge( $sTemp, $aTemp[ 0]);

						$aResultTemp = $sTemp;

					}else{

						for( $i=0,$j=0; $i<sizeof( $aTemp); $i++){

							$cThreadTemp->sProtLine = $aTemp[ $i];

							$cThreadTemp->GetLine();

							

							if( $cThreadTemp->iID == $num){

								

							}else{

								$aResultTemp[ $j] = $aTemp[ $i];

								$j++;

							}

						}

						$aResultTemp = array_merge( (array)$sTemp, (array)$aResultTemp);

					}

				}

				

				if( !WriteLog( $aResultTemp, THREAD_FILE)){
					echo "File Open Error! Try Again later";
					exit;
				}

				

				//	iID<>sDay<>sTime<>sName<>sMail<>sMsg<>sIP<>sAgent<>etc

				@$aTemp = GetFileLog( $sTempFileName . ".php");

				

				$iID = sizeof( $aTemp);

				$sDay  = date("Y")."/".date("m")."/".date("d")."(".date("D").")";

				$sTime = date("H").":".date("i");

				$sIP = getenv("REMOTE_ADDR");

				$sAgent = getenv("HTTP_USER_AGENT");

				$etc = 0;

				

				for( $i=0; $i<$cTemp->iFormSize; $i++){

					$cTemp->{$cTemp->aFormName[$i]} = sEncodeStr( ${$cTemp->aFormName[$i]});

				}

				$sTemp = $cTemp->FormMarge() . "\r\n";

				

				$aTemp = array_merge( (array)$aTemp, (array)$sTemp);

				

				if( !WriteLog( $aTemp, $sTempFileName . ".php")){
					echo "File Open Error! Try Again later";
					exit;
				}

				

				$mode = "addcomplate";

			}

			

			}

			

		}

	}

	

	//	新規スレ登録

	if( CmpStr( "treg", $mode))

	{
	
//	echo $_POST["jschk"];
		if( $_POST["jschk"] != 1){
			$fErr = FALSE;
//	echo $_POST["jschk"];
			exit;
		}
		
		
		//	タイトルチェック

		if( $sTitle == ""){

			$sErrlog .= " スレッドタイトル ";

			$fErr = FALSE;

		}

		

		//	名前チェック

		if( $sName == ""){

			$sErrlog .= " 名前 ";

			$fErr = FALSE;

		}

		

		//	コメントチェック

		if( $sMsg == ""){

			$sErrlog .= " メッセージ ";

			$fErr = FALSE;

		}

		

		//	入力メッセージ量チェック

		if( REG_LOG_MAX != 0){

			if( strlen( $sMsg) > REG_LOG_MAX){

				//	ここに書き込み量が多すぎたらエラーを吐く処理。

			}

		}

		if ( !(preg_match( "/(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/", $sMsg))){
			echo "good bye :p";
			$fErr = FALSE;
			exit;
		}

		

		if( !($fErr)){

			$sErrlog = "<BR><FONT COLOR=RED><B>" . $sErrlog . "が未記入です。<BR>もう一度入力して下さい。</B></FONT><BR>";

			$mode = "new";

		}else{

			

			$sIP = getenv("REMOTE_ADDR");

			$sAgent = getenv("HTTP_USER_AGENT");

			

			$sDay  = date("Y")."/".date("m")."/".date("d")."(".date("D").")";

			$sTime = date("H").":".date("i");

			

			$sTitle = sEncodeStr( $sTitle);

			

			//	クッキーを食べましょう

			setcookie( "Like_2ch", "$sName", time() + (USER_TIME));

			if( $gPassUse == 1){	setcookie( "Like_2ch_pass", MEMBER_COOKIE, time() + (MEMBER_TIME));	}

			

			//	新規書き込み時（名前変更時）の初回クッキー対策

			//$Like_2ch = "$sName";

			

			

			//iID<>sFileName<>sDay<>sTime<>sTitle<>iRes<>etc

			@$aTemp = GetFileLog( THREAD_FILE);

			

			$sFileName = str_pad( trim( sizeof( $aTemp)), 5, "0", STR_PAD_LEFT);

			

			$sTemp  = trim( sizeof( $aTemp)) . "<>" . $sFileName . "<>";

			$sTemp .= $sDay . "<>" . $sTime . "<>" . $sTitle . "<>1<>0\r\n";

			if( sizeof( $aTemp) != 0){

				@$aTemp = aInsertLine( $sTemp, $aTemp, -1);

			}else{

				$aTemp = $sTemp;

			}

			if( !WriteLog( $aTemp, THREAD_FILE)){
				echo "File Open Error! Try Again later";
				exit;
			}

			

			//iID<>sDay<>sTime<>sName<>sMail<>sMsg<>sIP<>sAgent<>etc

			$iID = 0;

			

			for( $i=0; $i<$cTemp->iFormSize; $i++){

				$cTemp->{$cTemp->aFormName[$i]} = sEncodeStr( ${$cTemp->aFormName[$i]});

			}

			$sTemp = $cTemp->FormMarge() . "\r\n";

			

			//echo $sTemp;

			

			if( !WriteLog( $sTemp, $sFileName . ".php")){
				echo "File Open Error! Try Again later";
				exit;
			}

			

			

			$mode = "addcomplate";

		}

	}

	

	//	発言内容変更(登録)

	if( CmpStr( "modreg", $mode))

	{

		if( $fAdmin == 1 )

		{

			//	名前チェック

			if( $sName == ""){

				$sErrlog .= " 名前 ";

				$fErr = FALSE;

			}

			

			//	コメントチェック

			if( $sMsg == ""){

				$sErrlog .= " メッセージ ";

				$fErr = FALSE;

			}

			

			if( !($fErr)){

				$sErrlog = "<BR><FONT COLOR=RED><B>" . $sErrlog . "が未記入です。<BR>もう一度入力して下さい。</B></FONT><BR>";

				$mode = "msgmod";

			}else{

				@$aTemp = GetFileLog( THREAD_FILE);

				

				$sTemp = aCmpLog( "iID", $num, $aTemp);

				$cThreadTemp->sProtLine = $sTemp[ 0];

				$cThreadTemp->GetLine();

				

				@$aTempLog = GetFileLog( $cThreadTemp->sFileName . ".php");

				

				$cTemp->sProtLine = $aTempLog[ $point];

				$cTemp->GetLine();

				

				//	iID<>sDay<>sTime<>sName<>sMail<>sMsg<>sIP<>sAgent<>etc

				@$aTemp = GetFileLog( $sTempFileName . ".php");

				

				$iID   = $cTemp->iID;

				$sDay  = date("Y")."/".date("m")."/".date("d")."(".date("D").")";

				$sTime = date("H").":".date("i");

				$sIP   = getenv("REMOTE_ADDR");

				$sAgent = getenv("HTTP_USER_AGENT");

				$etc =  $cTemp->etc;

				

				for( $i=0; $i<$cTemp->iFormSize; $i++){

					$cTemp->{$cTemp->aFormName[$i]} = sEncodeStr( ${$cTemp->aFormName[$i]});

				}

				$sTemp = $cTemp->FormMarge() . "\r\n";

				

				$aTempLog[ $point] = $sTemp;

				

				if( !WriteLog( $aTempLog, $cThreadTemp->sFileName . ".php")){
					echo "File Open Error! Try Again later";
					exit;
				}

				

				$mode = "addcomplate";

			}

		}

	}

	

	//	発言内容変更

	if( CmpStr( "msgmod", $mode))
	{
		if( $fAdmin == 1)
		{
			@$aTemp = GetFileLog( THREAD_FILE);
			
			$sTemp = aCmpLog( "iID", $num, $aTemp);
			$cThreadTemp->sProtLine = $sTemp[ 0];
			$cThreadTemp->GetLine();
			
			@$aTempLog = GetFileLog( $cThreadTemp->sFileName . ".php");
			
			$cTemp->sProtLine = $aTempLog[ $point];
			$cTemp->GetLine();
			
			$sShowLog = $sErrlog . EchoModifyForm( $cTemp->sProtLine, $cThreadTemp->sProtLine);
			
		}
	}
	

	//	発言削除（1件）

	if( CmpStr( "msgdel", $mode))

	{

		if( $fAdmin == 1 )

		{

			@$aTemp = GetFileLog( THREAD_FILE);

			

			$sTemp = aCmpLog( "iID", $num, $aTemp);

			$cThreadTemp->sProtLine = $sTemp[ 0];

			$cThreadTemp->GetLine();

			

			@$aTempLog = GetFileLog( $cThreadTemp->sFileName . ".php");

			

			$cTemp->sProtLine = $aTempLog[ $point];

			$cTemp->GetLine();

			

			$cTemp->etc = abs( $cTemp->etc - 1);

				

//			for( $i=0; $i<$cTemp->iFormSize; $i++){

//				$cTemp->{$cTemp->aFormName[$i]} = ${$cTemp->aFormName[$i]};

//				$cTemp->{$cTemp->aFormName[$i]} = sEncodeStr( ${$cTemp->aFormName[$i]});

//			}

			$sTemp = $cTemp->FormMarge() . "\r\n";

			

			$aTempLog[ $point] = $sTemp;

			

			if( !WriteLog( $aTempLog, $cThreadTemp->sFileName . ".php")){
				echo "File Open Error! Try Again later";
				exit;
			}

			

			$mode = "addcomplate";

		}

	}

	

	//	スレッドあぼーん機能（不可視状態設定）

	if( CmpStr( "thredel", $mode))

	{

		if( $fAdmin == 1)

		{

			@$aTemp = GetFileLog( THREAD_FILE);

			

			$sTemp = aCmpLog( "iID", $num, $aTemp);

			$cThreadTemp->sProtLine = $sTemp[ 0];

			

			for( $i=0; $i<sizeof( $aTemp); $i++){

				if( $cThreadTemp->sProtLine == $aTemp[ $i]){

					$iAbonePoint = $i;

				}

			}

			

			$cThreadTemp->GetLine();

			$cThreadTemp->etc = abs( $cThreadTemp->etc - 1);

			

			$aTemp[ $iAbonePoint] = $cThreadTemp->FormMarge() . "\r\n";

			

			if( !WriteLog( $aTemp, THREAD_FILE)){
				echo "File Open Error! Try Again later";
				exit;
			}

			

			$mode = "addcomplate";

		}

	}

	

	//	スレタイ編集登録

	if( CmpStr( "titlereg", $mode))

	{

		if( $fAdmin == 1)

		{

			//	名前チェック

			if( $sTitle == ""){

				$sErrlog .= " スレッドタイトル ";

				$fErr = FALSE;

			}

			

			if( !($fErr)){

				$sErrlog = "<BR><FONT COLOR=RED><B>" . $sErrlog . "が未記入です。<BR>もう一度入力して下さい。</B></FONT><BR>";

				$mode = "titlemod";

			}else{

				@$aTemp = GetFileLog( THREAD_FILE);

				

				$sTemp = aCmpLog( "iID", $num, $aTemp);

				$cThreadTemp->sProtLine = $sTemp[ 0];

				$cThreadTemp->GetLine();

				

				for( $i=0; $i<sizeof( $aTemp); $i++){

					if( $cThreadTemp->sProtLine == $aTemp[ $i]){

						$iAbonePoint = $i;

					}

				}

				

				$iID   = $iID;

				$sFileName = $sFileName;

				$sDay  = date("Y")."/".date("m")."/".date("d")."(".date("D").")";

				$sTime = date("H").":".date("i");

				$iRes  = $iRes;

				$etc   = $etc;

				

				for( $i=0; $i<$cThreadTemp->iFormSize; $i++){

					$cThreadTemp->{$cThreadTemp->aFormName[$i]} = sEncodeStr( ${$cThreadTemp->aFormName[$i]});

				}

				$sTemp = $cThreadTemp->FormMarge() . "\r\n";

				

				$aTemp[ $iAbonePoint] = $sTemp;

				

				if( !WriteLog( $aTemp, THREAD_FILE)){
					echo "File Open Error! Try Again later";
					exit;
				}

				

				$mode = "addcomplate";

			}

		}

	}

	

	//	スレタイ編集機能

	if( CmpStr( "titlemod", $mode))

	{

		if( $fAdmin == 1)

		{

			@$aTemp = GetFileLog( THREAD_FILE);

			

			$sTemp = aCmpLog( "iID", $num, $aTemp);

			$cThreadTemp->sProtLine = $sTemp[ 0];

			//$cThreadTemp->GetLine();

			

			$sShowLog = EchoTitleModifyForm( $cThreadTemp->sProtLine, "");

		}

		

	}

	

	//	登録確認画面

	if( CmpStr( "addcomplate", $mode))

	{

		$sShowLog = "<HR SIZE=1>書き込みが終了しました。<BR>[<a href=\"./\">Return to Top</a>]\n";

	}

	

	//	新規スレ作成モード

	if( CmpStr( "new", $mode))

	{

		$sShowLog = $sErrlog . EchoNewThreadForm();

	}

	

	//	通常表示モード

	if( CmpStr( "normal", $mode))

	{

		@$aTemp = DelThread( GetFileLog( THREAD_FILE));

		$sShowLog .= EchoThread( $aTemp);

		

		if( $gThread > sizeof( $aTemp)){

			$iEnd = sizeof( $aTemp);

		}else{

			$iEnd = $gThread;

		}

		

		for( $i=0; $i<$iEnd; $i++){

			$cThreadTemp->sProtLine = $aTemp[ $i];

			$cThreadTemp->GetLine();

			

			$sShowLog .= EchoLog( $cThreadTemp->sProtLine, $gViewLog, $i, 0);

		}

	}

	

	if( CmpStr( "nothing", $mode))

	{

		$sShowLog = "<HR SIZE=1><a href=\"index.php?mode=new\">新規スレを作成</a><BR><BR><FONT COLOR=RED>スレッドが一つもありません。スレッドを作成して下さい。</FONT><BR>\n";

	}

	

	}		//	表示モードの入れ子（閉）

	

	EchoLine( $gHead);				//	HTMLヘッダー表示

	EchoLine( $sShowLog);			//	メイン部分

	EchoLine( $gFoot);				//	HTMLフッター表示

	

?>