# FILE: src-board-subs-17
# Less commonly used administrative interface forms
#-------------------------------------------------------------------------------
# DISCUS VERSION 3.10 COPYRIGHT NOTICE
#
# Discus 3.10 is copyright (c) 2000 by DiscusWare, LLC, all rights reserved.
# The use of Discus is governed by the Discus License Agreement which is
# available from the Discus WWW site at:
#    http://www.discusware.com/discus/license
#
# Pursuant to the Discus License Agreement, this copyright notice may not be
# removed or altered in any way.
#-------------------------------------------------------------------------------

#---SEPARATOR---#
#REQ:inverse_webtags

sub rename_topic_form {
	my ($oldname, $topic_number, $username, $description_source) = @_;
	&header;
	print "<HTML><HEAD><TITLE>Topic Properties</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff>$fs\n";
	print "<FONT SIZE=3><CENTER><B>Topic Properties</B></CENTER></FONT>\n";
	print "<HR>\n";
	print "<B><A HREF=\"$cgiurlm?username=$username&cmd=board_mgr\">Board Manager</A>: Topic Properties</A></B><HR>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<H4>Topic Name</H4><TABLE BORDER=1 WIDTH=100% BGCOLOR=ffffcc><TR><TD>$fs\n";
	print "To change the topic name, edit the topic name (or enter a new name) in the\n";
	print "text box below.\n";
	$oldtemp = $oldname;
	$oldname = &inverse_webtags($oldname, 1);
	$oldname =~ s/"/&quot;/g;
	if ($oldtemp ne $oldname) {
		print "<P><FONT COLOR=#ff0000>NOTE:</FONT> Any formatting tags you used in this topic's title\n";
		print "must be re-entered.\n";
	}
	print "<P><TABLE><TR><TD>$fs", "Name: </FONT><INPUT TYPE=text NAME=newname VALUE=\"";
	print $oldname;
	print "\" SIZE=50></TD></TR></TABLE><P>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Rename Topic\">\n";
	print "<INPUT TYPE=HIDDEN name=topic value=\"$topic_number\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username value=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action value=\"rename_a_topic\">\n";
	print "</TD></TR></TABLE>\n";
	print "</FORM>";
	print "<HR>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<H4>Topic Description</H4><TABLE BORDER=1 WIDTH=100% BGCOLOR=ffffcc><TR><TD>$fs\n";
	print "To change the description for this topic, which is displayed on the topics\n";
	print "page, edit the topic description (or enter a new description) in the\n";
	print "text box below.<P>\n";
	print "<TABLE><TR><TD><TEXTAREA NAME=message ROWS=5 COLS=50 WRAP=VIRTUAL>";
	print $description_source;
	print "</TEXTAREA></TD></TR></TABLE><P>\n";
	print "<INPUT TYPE=SUBMIT NAME=submit VALUE=\"Preview/Save Description\">\n";
	print "<INPUT TYPE=HIDDEN name=topic value=\"$topic_number\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username value=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action value=\"topic_description\">\n";
	print "</TD></TR></TABLE></FORM>\n";
	print "<HR>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<H4>META Tags</H4>\n";
	print "<INPUT NAME=action TYPE=hidden value=\"meta_tags_topic\">\n";
	print "<INPUT NAME=username TYPE=hidden value=\"$FORM{'username'}\">\n";
	print "<INPUT NAME=topic TYPE=hidden VALUE=$topic_number>\n";
	print "<TABLE BGCOLOR=ffffcc BORDER=1 WIDTH=100%><TR><TD>";
	print "$fs", "You can specify META tags, used by search engines when indexing\n";
	print "pages, for all pages in this topic using the text entry boxes below.\n";
	print "Do <I>not</I> use HTML or Discus formatting codes in your META tags.\n";
	print "To learn more about how to use META tags, consult your favorite search\n";
	print "engine.<P>\n";
	&get_page($topic_number, $topic_number);
	print "<TABLE>\n";
	print "<TR><TD>$fs", "Description:</TD><TD><INPUT SIZE=50 TYPE=TEXT NAME=DESCRIPTION ";
	print "VALUE=\"$meta_description\"";
	print "></TD></TR>\n";
	print "<TR><TD>$fs", "Key Words:</TD><TD><INPUT SIZE=50 TYPE=TEXT NAME=KEYWORDS ";
	print "VALUE=\"$meta_keywords\"";
	print "></TD></TR>\n";
	print "<TR><TD>$fs", "Robots:</TD><TD><INPUT SIZE=50 TYPE=TEXT NAME=ROBOTS ";
	print "VALUE=\"$meta_robots\"";
	print "></TD></TR>\n";
	print "</TABLE><P>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Save META Tags\">\n";
	print "</TD></TR></TABLE></FORM>\n";
	print "<HR>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<H4>Topic Display Properties</H4>\n";
	print "<INPUT NAME=action TYPE=hidden value=\"topic_display\">\n";
	print "<INPUT NAME=username TYPE=hidden value=\"$FORM{'username'}\">\n";
	print "<INPUT NAME=topic TYPE=hidden VALUE=$topic_number>\n";
	print "<TABLE BGCOLOR=ffffcc BORDER=1 WIDTH=100%><TR><TD>$fs";
	print "These options control how this topic is displayed on the topics page.\n";
	print "<P>\n";
	print "<B>Display Properties:</B><BR>\n";
	print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=hidden VALUE=0";
	print " CHECKED" if $DP{'hidden'} == 0;
	print "> Visible<BR>\n";
	print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=hidden VALUE=1";
	print " CHECKED" if $DP{'hidden'} == 1;
	print "> Hidden\n";
	print "<P>\n";
	print "<B>Folder Icon:</B><BR>\n";
	print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=icons VALUE=0";
	print " CHECKED" if $DP{'icons'} eq "0";
	print "> (No Icon)<BR>\n";
	print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=icons VALUE=1";
	print " CHECKED" if $DP{'icons'} == 1;
	print "> <IMG SRC=\"$html_url/icons/tree_n.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP><BR>\n";
	print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=icons VALUE=2";
	print " CHECKED" if $DP{'icons'} == 2;
	print "> <IMG SRC=\"$html_url/icons/tree_o.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP><BR>\n";
	if (-e "$message_dir/$topic_number-icon.gif") {
		print "&nbsp;&nbsp;&nbsp;<INPUT TYPE=RADIO NAME=icons VALUE=3";
		print " CHECKED" if $DP{'icons'} == 3;
		print "> <IMG SRC=\"$message_url/$topic_number-icon.gif\">";
		print "<BR>\n";
	}
	print "<P><INPUT TYPE=SUBMIT VALUE=\"Save Topic Display Properties\">\n";
	print "</TD></TR></TABLE></FORM>\n";
	print "</BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#

sub change_topic_group_form {
	my ($topics, $username) = @_;
	@topics = split(/,/, $topics);
	&header;
	print "<HTML><HEAD><TITLE>Change Topic Group</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff>\n";
	print "$fs<FONT SIZE=3><CENTER><B>Change Topic Group</B></CENTER></FONT>\n";
	print "<HR>\n";
	print "<B><A HREF=\"$cgiurlm?username=$username&cmd=board_mgr\">Board Manager</A>: Change Topic Group</A></B><HR>\n";
	print "<H3>Change Topic Group</H3>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<TABLE BORDER=1 BGCOLOR=ffffcc WIDTH=100%><TR><TD>$fs\n";
	print "The following topic";
	print "s have" if scalar(@topics) > 1;
	print " has" if scalar(@topics) == 1;
	print " been selected:<P><UL>\n";
	foreach $topic (@topics) {
		&extract("//$topic/$topic.$ext");
		print "<LI>$topic_name (\u$owner)\n";
	}
	print "</UL><P>Select New Group:&nbsp;&nbsp;&nbsp;";
	print "<SELECT NAME=\"group\">\n";
	open (GROUP, "$admin_dir/groups.txt");
	@group_input = <GROUP>;
	close (GROUP);
	undef @group_list;
	foreach $line (@group_input) {
		($group) = split(/:/, $line);
		if (! grep(/^$group$/, @group_list)) {
			push (@group_list, $group);
		}
	}
	foreach $group (sort @group_list) {
		chomp $group;
		next if $group eq "#";
		print "<OPTION VALUE=\"$group\">\u$group\n";
	}
	print "</SELECT>\n";
	print "<P>\n";
	if ($pro) {
		print "<INPUT TYPE=CHECKBOX NAME=smart VALUE=1 CHECKED> Update posting";
		print "/reading" if $pro;
		print " privileges as appropriate<P>\n";
	} else {
		print "<INPUT TYPE=HIDDEN NAME=smart VALUE=1>\n";
	}
	print "<INPUT TYPE=SUBMIT VALUE=\"Change Topic Group\">\n";
	print "<INPUT TYPE=HIDDEN name=topics value=\"$topics\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username value=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action value=\"change_topic_group\">\n";
	print "</TD></TR></TABLE>\n";
	print "</FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:page_manager_navbar
#REQ:inverse_webtags

sub rename_subtopic_form {
	my ($referer, $page_number, $username) = @_;
	&extract($referer);
	&error_message("Permissions Error", "Only the superuser may rename a topic! (Code 020901)") if $topic_number == $page_number;
	&extract("//$topic_number/$page_number.$ext");
	my ($oldname) = $me_name;
	&header;
	print "<HTML><HEAD><TITLE>Subtopic Properties</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff>$fs\n";
	print "<FONT SIZE=3><CENTER><B>Subtopic Properties</B></CENTER></FONT>\n";
	&page_manager_navbar($topic_number, $page_number, "Subtopic Properties");
	print "<FORM ACTION=\"$cgiurl1\" METHOD=POST>\n";
	print "<H4>Subtopic Name</H4>\n";
	print "<TABLE BGCOLOR=ffffcc BORDER=1 WIDTH=100%><TR><TD><TABLE>\n";
	$oldname = &inverse_webtags($oldname, 1);
	$oldname =~ s/"/&quot;/g;
	print "<TR><TD>$fs", "Name:</TD><TD><INPUT TYPE=text NAME=newname VALUE=\"$oldname\"";
	print " SIZE=50></TD></TR>\n";
	print "</TABLE><BR>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Rename Subtopic\">\n";
	print "<INPUT TYPE=HIDDEN name=subtopic value=\"$page_number\">\n";
	print "<INPUT TYPE=HIDDEN NAME=HTTP_REFERER value=\"$referer\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username value=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action value=\"rename_a_subtopic\">\n";
	print "</TD></TR></TABLE></FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:page_manager_navbar

sub rename_link_form {
	my ($referer, $linknum, $username) = @_;
	my ($file, $line, $topic, $page, $url, $target, $str);
	if ($referer =~ m|/(\d+)/(\d+)\.$ext|) {
		($topic, $page) = ($1, $2);
	} else {
		&error_message("Link Properties Error", "Could not extract requested page.");
	}
	my ($head, $color, $lm, $ann, $ann_src, $sublist, $about, $about_src, $message, $message_src, $description_src) = &get_page($topic,$page);
	@sublist = split(/\n/, $sublist);
	open (TREE, "$admin_dir/msg_index/$topic-tree.txt"); @TREE_STRUCTURE_FILE = <TREE>; close (TREE);
	($ll) = grep(/^(\d+)\t$topic\t$linknum\t/, @TREE_STRUCTURE_FILE);
	@c = split(/\t/, $ll);
	$c[5] =~ m|LINK:(.*)|; $target = $1;
	$url = &unescape($c[6]);
	$oldname = &unescape($c[4]);
	&header;
	print "<HTML><HEAD><TITLE>Link Properties</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff>$fs\n";
	print "<FONT SIZE=3><CENTER><B>Link Properties</B></CENTER></FONT>\n";
	&page_manager_navbar($topic, $page, "Link Properties");
	print "<FORM ACTION=\"$cgiurl1\" METHOD=POST>\n";
	print "<TABLE BGCOLOR=ffffcc BORDER=1 WIDTH=100%><TR><TD><TABLE>\n";
	$oldname = &remove_html($oldname, 1);
	$oldname =~ s/"/&quot;/g;
	print "<TR><TD>$fs", "Name:</TD><TD><INPUT TYPE=text NAME=newname SIZE=50 VALUE=\"$oldname\"></TD></TR>\n";
	print "<TR><TD>$fs", "URL:</TD><TD><INPUT TYPE=text NAME=url SIZE=50 VALUE=\"$url\"></TD></TR>\n";
	print "<TR><TD>$fs", "Frame:</TD><TD><SELECT NAME=\"frame\" SIZE=1>\n";
	print "<OPTION";
	print " SELECTED" if $target eq "_self";
	print " VALUE=\"_self\">Original Frame\n";
	print "<OPTION";
	print " SELECTED" if $target eq "Main";
	print " VALUE=\"Main\">Right Frame\n";
	print "<OPTION";
	print " SELECTED" if $target eq "_top";
	print " VALUE=\"_top\">Top - Replaces frameset\n";
	print "<OPTION";
	print " SELECTED" if $target eq "_parent";
	print " VALUE=\"_parent\">Parent Frame\n";
	print "<OPTION";
	print " SELECTED" if $target eq "_blank";
	print " VALUE=\"_blank\">New browser window\n";
	print "</SELECT></TD></TR></TABLE><P></FONT>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Save Properties\">\n";
	print "<INPUT TYPE=HIDDEN NAME=HTTP_REFERER value=\"$referer\">\n";
	print "<INPUT TYPE=HIDDEN NAME=link value=\"$linknum\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username value=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action value=\"rename_a_link\">\n";
	print "</TD></TR></TABLE></FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#

sub page_manager_navbar {
	my ($topic_number, $page_number, $closing_text) = @_;
	my ($head) = &get_page($topic_number, $page_number);
	my ($number, $name, @array, %level, $str, @head, $topic_name, $line);
	print "<HR>\n<B><A HREF=\"$cgiurlm?username=$username&action=mgr_1";
	print "&HTTP_REFERER=$page_referer\">Page Manager</A>:\n";
	@head = split(/\n/, $head);
	foreach $line (@head) {
		if ($line =~ m|<!--Level (\d+): (\d+)/(.*)-->|) {
			$level{$1} = "$2:$3";
		} elsif ($line =~ m|<!--Topic: (\d+)/(.*)-->|) {
			@array = ("$1:$2");
		}
	}
	foreach $key (sort by_number keys(%level)) {
		push (@array, $level{$key});
	}
	foreach $line (@array) {
		($number,$name) = split(/:/, $line, 2);
		print "<A HREF=\"$cgiurlm?username=$username&action=page_editor";
		print "&HTTP_REFERER=//$topic_number/$number.$ext\">";
		print "$name</A>:\n";
	}
	print "$closing_text</B>\n<HR>\n\n";
}

#---SEPARATOR---#

sub preview_admin_message {
	my ($message_source, $message_formatted, $username, $referer, $action, $mtitle, $hr) = @_;
	&header;
	print "<HTML><HEAD><TITLE>Preview of $mtitle</TITLE>\n";
	print "<SCRIPT LANGUAGE=\"JavaScript\">\n";
	print "<!--\n";
	print "function setStatus(msg) {\n";
	print "  window.status=msg\n";
	print "  return true\n";
	print "}\n";
	print "//-->\n";
	print "</SCRIPT></HEAD>\n";
	($bgcolor, $text, $link, $vlink, $alink, $face, $size, $img) = &extract_colorsonly;
	print "<BODY BGCOLOR=\"ffffff\" TEXT=\"000000\" LINK=\"$link\" ";
	print "VLINK=\"$vlink\" onLoad=\"window.defaultStatus='Preview of $mtitle'\">$fs\n";
	print "<FONT SIZE=3><CENTER><B>Preview of $mtitle</B></CENTER></FONT>\n<HR>\n";
	if ($mtitle eq "About Message" || $mtitle eq "Announcement") {
		my (@array) = ("$topic_number:$topic_name");
		foreach $key (sort by_number keys(%level_number)) {
			push (@array, "$level_number{$key}:$level_name{$key}");
		}
		print "<B><A HREF=\"$cgiurlm?username=$username&action=mgr_1";
		print "&HTTP_REFERER=$page_referer\" onMouseOver=\"return setStatus('";
		print "Return to topic selection screen')\"><FONT COLOR=#0000ff>Page Manager</FONT></A>:\n";
		foreach $line (@array) {
			($number,$name) = split(/:/, $line, 2);
			print "<A HREF=\"$cgiurlm?username=$username&action=page_editor";
			print "&HTTP_REFERER=//$topic_number/$number.$ext\" onMouseOver=\"return ";
			$str = &JavaScript_prepare($name);
			print "setStatus('Return to editing $str')\">";
			print "<FONT COLOR=#0000ff>$name</FONT>";
			print "</A>: \n";
		}
	} elsif ($mtitle eq "Main Message" || $mtitle eq "Title Message" || $mtitle eq "Topic Description") {
		print "<B><A HREF=\"$cgiurlm?username=$username&cmd=board_mgr\" onMouseOver=\"";
		print "return setStatus('Return to Board Manager')\"><FONT COLOR=#0000ff>Board Manager</FONT></A>:\n";
	} elsif ($mtitle eq "Welcome Message") {
		print "<B><A HREF=\"$cgiurlm?username=$username&cmd=options_mgr\" onMouseOver=\"";
		print "return setStatus('Return to Options Manager')\"><FONT COLOR=#0000ff>Options Manager</FONT></A>: ";
		print "<A HREF=\"$cgiurlm?username=$username&cmd=reg_configurator\" onMouseOver=\"";
		print "return setStatus('Return to Self Registration Configurator')\"><FONT COLOR=#0000ff>Self Registration Configurator</FONT></A>: ";
	}
	print "Preview of $mtitle</B>\n";
	print "<HR><P>\n";
	print "A preview of your message appears below.  If you used any ";
	print "formatting tags in your message, please check to see that your ";
	print "formatting is displayed correctly in the preview.<P>\n";
	print "<TABLE BORDER=1 WIDTH=100% HEIGHT=40%>\n";
	print "<TR><TD VALIGN=TOP BGCOLOR=\"$bgcolor\" BACKGROUND=\"$img\"><BASEFONT SIZE=$size><FONT COLOR=\"$text\" FACE=\"$face\" SIZE=\"$size\">$message_formatted</FONT>";
	print "</TD></TR></TABLE><P>\n";
	print "<HR><P><H3>Revise $mtitle</H3>\n";
	print "<TABLE BGCOLOR=ffffcc BORDER=1 WIDTH=100%><TR><TD>";
	print "<FORM ACTION=\"$cgiurl1\" METHOD=POST>\n" if ($mtitle eq "About Message" || $mtitle eq "Announcement");
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n" if ($mtitle eq "Main Message" || $mtitle eq "Topic Description" || $mtitle eq "Title Message");
	print "<FORM ACTION=\"$cgiurl\" METHOD=POST>\n" if ($mtitle eq "Welcome Message");
	if ($hr) {
		print "<INPUT TYPE=HIDDEN NAME=hr VALUE=1>\n";
	}
	print "<TABLE><TR><TD><TEXTAREA NAME=message ROWS=6 COLS=60 WRAP=VIRTUAL>";
	print "$message_source</TEXTAREA></TD></TR></TABLE><P>\n\n";
	print "<input type=hidden name=\"action\" value=\"$action\">\n";
	print "<input type=hidden name=\"username\" value=\"$username\">\n";
	print "<input type=submit name=submit value=\"Refresh Preview\">\n";
	print "<input type=submit name=submit value=\"Save Message\">\n" if $message_formatted !~ /<H3>FORMATTING/i;
	print "<input type=hidden name=\"HTTP_REFERER\" value=\"$referer\">\n" if $referer;
	print "</TD></TR></TABLE></FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:build_graphical_tree
#REQ:page_manager_navbar

sub move_message_form {
	my ($topic_number, $field, $form_move, $form_mark, $referer, $username, $click, $quick) = @_;
	$click = $referer if $click eq "";
	if ($click =~ m|(\d+)/(\d+)|) {
		$topic_click = $1; $page_click = $2;
		$page_expand = "$topic_click/$page_click";
		$click = $topic_click;
	}
	if ($field =~ /^(\d+)$/) {
		$tomove = $1;
		$plural = "";
	} else {
		$tomove = $form_mark;
		$plural = "s";
	}
	&header if $quick != 5;
	print "<HTML><HEAD><TITLE>Move Message$plural</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff ALINK=ffff00\">\n";
	print "$fs<FONT SIZE=3><CENTER><B>Move Message$plural</B></CENTER></FONT>\n";
	&page_manager_navbar($topic_number, $me_number, "Move Message$plural") if !$quick;
	print "<HR>\n" if $quick;
	print "Select a destination for the message$plural you wish to move by clicking on\n";
	print "the folder icon (<IMG SRC=\"$html_url/icons/tree_g.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP>)\n";
	print "next to the destination.  You may also move message$plural into a <A HREF=\"#new\">new subtopic</A>.\n";
	print "To expand other topics, click the + icon (<IMG SRC=\"$html_url/icons/tree_a.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP>) next to the topic name.\n";
	print "If you don't want to move the message$plural at this time, you can ";
	print "<A HREF=$cgiurlm?action=page_editor&username=$username&HTTP_REFERER=$referer#Messages>cancel this operation</A>.<HR>\n" if !$quick;
	$url = "$message_url/$topic_number/$me_number.$ext" if -e "$message_dir/$topic_number";
	$url = "$script_url/board-auth.$cgi_extension?file=/$topic_number/$me_number.$ext" if !-e "$message_dir/$topic_number";
	print "<A HREF=$url>cancel this operation</A>.<HR>\n" if $quick;
	print "<H3>Move Into Existing Subtopic</H3>\n";
	open (TOPFILE, "$message_dir/$board_topics_file");
	@topfile = <TOPFILE>;
	close (TOPFILE);
	$topic_numbers = "";
	$me_number_hold = $me_number; $topic_number_hold = $topic_number;
	foreach $line (@topfile) {
		if ($line =~ /<!-Top: (\d+)-!>/) {
			$num = $1;
			&extract("//$num/$num.$ext");
			if (&verify_owner($owner,$username)) {
				$topic_numbers .= "$num,";
			}
		}
	}
	&build_graphical_tree($username, $topic_numbers, "$topic_number_hold/$me_number_hold", "<A HREF=\"$cgiurl1?username=$FORM{\"username\"}&move=$tomove&HTTP_REFERER=$referer&action=move_message&click=", "", 0, $topic_number, "<A HREF=$cgiurl1?username=$username&SELECTION=moveall&MARK=$tomove&HTTP_REFERER=$referer&action=messages&click=", 0, $click, $page_expand) if !$quick;
	&build_graphical_tree($username, $topic_numbers, "$topic_number_hold/$me_number_hold", "<A HREF=\"$cgiurl1?username=$FORM{\"username\"}&move=$tomove&HTTP_REFERER=$referer&action=move_message&quick=1&click=", "", 0, $topic_number, "<A HREF=$cgiurl1?username=$username&SELECTION=moveall&MARK=$tomove&quick=1&HTTP_REFERER=$referer&action=messages&click=", 0, $click, $page_expand) if $quick;
	print "<HR>";
	print "<FORM ACTION=\"$cgiurl1\" METHOD=POST>\n";
	print "<A NAME=new><H3>Move Into New Subtopic</H3>\n";
	print "New Subtopic Name: </FONT><INPUT TYPE=TEXT NAME=newname SIZE=50 VALUE=\"\">\n";
	print "<BR><INPUT TYPE=CHECKBOX NAME=parm VALUE=1 CHECKED>$fs Include &quot;Add a Message&quot; box\n";
	print "<BR><BR>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Create and Move\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username VALUE=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=HTTP_REFERER VALUE=\"$referer\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action VALUE=move_message>\n";
	print "<INPUT TYPE=HIDDEN NAME=move VALUE=\"$tomove\">\n";
	print "<INPUT TYPE=HIDDEN NAME=quick VALUE=1>\n" if $quick;
	print "</FONT>\n";
	print "</BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:page_manager_navbar
#REQ:read_source
#REQ:remove_swearing
#REQ:inverse_webtags

sub edit_message_form {
	my ($topic_number, $page_number, $post_index, $source, $formatted, $username, $error_force, $quick) = @_;
	my ($head, $color, $lm, $ann, $ann_src, $sublist, $about, $about_src, $message, $message_src, $description_src) = &get_page($topic_number, $page_number);
	my ($flag, @file, $line);
	&error_message($L{FEATURE_NOT_SUPPORTED}, $L{FEATURE_NOT_SUPPORTED_DESCR}, 0, 1) if (!$pro && $quick);
	if ($formatted eq "") {
		@file = split(/\n/, $message); $flag = 0;
		foreach $line (@file) {
			if ($line =~ m|<!-Post: $post_index-!>|) {
				$flag = 1;
			} elsif ($line =~ m|<!-/Post: $post_index-!>|) {
				$flag = 0;
			} elsif ($flag == 1) {
				if ($line =~ m|<!-Text-!>(.*)<!-/Text-!>|) {
					$formatted = $1; last;
				}
			}
		}
	}
	if ($source eq "" && $GLOBAL_OPTIONS{'nosource'} == 0) {
		$source = &read_source($topic_number, $page_number, $post_index);
		$source = &inverse_webtags($formatted) if $source eq "";
	} elsif ($source eq "") {
		$source = &inverse_webtags($formatted);
	}
	$error_flag = 0;
	$error_flag = 1 if $source eq "";	
	&header;
	($bgcolor, $text, $link, $vlink, $alink, $face, $size, $img) = &extract_colorsonly;
	print "<HTML><HEAD><TITLE>Preview of Edited Message</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=\"ffffff\" TEXT=\"000000\" LINK=\"0000ff\" VLINK=\"800080\" ALINK=\"ffffff\">";
	print "$fs\n";
	print "<FONT SIZE=3><CENTER><B>Edit Message</B></CENTER></FONT>\n" if !$quick;
	print "<FONT SIZE=3><CENTER><B>Administration: Edit Message</B></CENTER></FONT>\n" if $quick;
	&page_manager_navbar($topic_number, $page_number, "Edit Message") if !$quick;
	print "<HR><I>You are able to edit this message because you are a moderator for this topic.</I><P>\n" if $quick;
	if ($error_flag == 1) {
		print "<FONT COLOR=#ff0000><B>Warning!</B>  The source for this message could not be\n";
		print "located in the message source file.  What appears below has special formatting\n";
		print "removed.</FONT><P>\n";
		$source = $formatted;
		$source =~ s%<IMG SRC="$message_url/\d+/(\d+)\.gif" ALT="([^"]+)".*?>%\\image_alreadyuploaded\{$1,$2\}%g;
		$source =~ s%<IMG SRC="$message_url/\d+/(\d+)\.jpg" ALT="([^"]+)".*?>%\\jpeg_alreadyuploaded\{$1,$2\}%g;
		$source =~ s%<!-Attachment: ([^!]+)-!>.*?<IMG SRC=.*?/([^/"]+)".*?ALT="([^"]+)">(.*?)<BR><A.*?<B>(.*?)</B></A> \((.*?) k\).*?<!-/Attachment-!>%\\attachment_alreadyuploaded\{$1,$4,$2,$6,$5,$3\}%g;
		$source =~ s/<BR>/\n/g;
		$source = &remove_html($source);
	}
	if (!$error_force) {
		print "A preview of this message appears below.  If any formatting tags were used in the ";
		print "message, please check to see that the formatting is displayed correctly in ";
		print "the preview.<BR><BR>\n";
		print "<TABLE BORDER=1 WIDTH=100% HEIGHT=30%>\n";
	}
	print "<TR><TD VALIGN=TOP BGCOLOR=$bgcolor BACKGROUND=\"$img\"><FONT COLOR=\"$text\" FACE=\"$face\" SIZE=\"$size\">" if !$error_force;
	if (!-e "$message_dir/$topic_number") {
		while ($formatted =~ m|<IMG SRC="$message_url/(\d+)/(\d+)\.(\w+)"([^>]*)>|) {
			$tn = $1; $pn = $2; $ex = $3;
			$formatted = join("", $`, "<img  src=\"$script_url/board-admin.$cgi_extension?action=show_secure_graphic&file=/$tn/$pn.$ex&HTTP_REFERER=//$topic_number/$page_number.$ext&username=$FORM{'username'}\"$4>", $');
		}
		while ($formatted =~ m|<!-Attachment: ([^!]+)-!><CENTER><TABLE BORDER=1><TR><TD><IMG SRC="$html_url/icons/mime_(\w+).gif" ALIGN=LEFT ALT="([^"]+)">(.*?)<BR><A HREF="$message_url/(\d+)/[^"]+"><B>([^<]+)</B></A> \(([^>]+)\)</TD></TR></TABLE></CENTER><!-/Attachment-!>|) {
			($file, $icon, $type, $descr, $topic, $fakefile, $size) = ($1, $2, $3, $4, $5, $6, $7);
			$formatted = join("", $`, "<CENTER><TABLE BORDER=1><TR><TD><IMG SRC=\"$html_url/icons/mime_$icon.gif\" ALIGN=LEFT>$descr<BR><A HREF=\"$script_url/board-auth.$cgi_extension?type=$type&file=/$topic/$file\"><B>$fakefile</B></A> ($size)</TD></TR></TABLE></CENTER>", $');
		}
	}	
	if ($GLOBAL_OPTIONS{'profanity'}) {
		($formatted) = &remove_swearing($formatted, 0, 1) if ($GLOBAL_OPTIONS{'profanity_detected'} == 1 || $GLOBAL_OPTIONS{'profanity_detected'} eq "");
		($x) = &remove_swearing($formatted, 0, 1) if $GLOBAL_OPTIONS{'profanity_detected'} == 2;
		if ($x ne "") {
			$formatted = "<H3>$L{PROFANITY_DETECTED}</H3>";
			$l = $L{PROFANITY_DETECTED_MESSAGE};
			$l =~ s/\%wordlist/$x/g;
			$formatted .= $l;
			$error_force = 1;
			print "</TD></TR></TABLE>\n";
		}
	}
	print $formatted;
	print "</TD></TR></TABLE>\n" if !$error_force;
	print "<HR>\n";
	$source =~ s/\s+$//; $source =~ s/^\s+//;
	$source = &unescape($source) if ($source !~ /\s/ && $FORM{'editing_flag'} == 0);
	$source =~ s/\s+$//; $source =~ s/^\s+//;
	if ($flag_edited == 1 || $FORM{'editing_flag'}) {
		$source =~ s/&/&amp;/g;
		$source =~ s/</&lt;/g;
		$source =~ s/>/&gt;/g;
		$source =~ s/"/&quot;/g;
	}
	print "<FORM ACTION=\"$cgiurl1\" METHOD=POST><TABLE BORDER=1 BGCOLOR=ffffcc WIDTH=100%><TR><TD>";
	print "<TABLE><TR><TD>";
	print "<TEXTAREA NAME=message ROWS=10 COLS=60 WRAP=VIRTUAL>";
	print "$source</TEXTAREA></TD></TR></TABLE><BR>\n";
	print "<input type=hidden name=\"action\" value=\"edit_message\">\n";
	print "<input type=hidden name=\"username\" value=\"$username\">\n";
	print "<input type=submit name=submit value=\"Refresh Preview\">\n";
	print "<input type=hidden name=postindex value=\"$post_index\">\n";
	print "<input type=submit name=submit value=\"Save Message\">\n" if !$error_force;
	print "<input type=hidden name=\"HTTP_REFERER\" value=\"//$topic_number/$page_number.$ext\">\n";
	print "<input type=hidden value=\"1\" name=\"editing_flag\">\n";
	print "<input type=hidden value=\"1\" name=\"quick\">\n" if $quick;
	print "<input type=hidden name=password value=\"$FORM{'password'}\">\n" if $FORM{'password'};
	if ($quick) {
		$urlpush = "$message_url/$topic_number/$me_number.$ext" if -e "$message_dir/$topic_number";
		$urlpush = "$script_url/board-auth.$cgi_extension?file=/$topic_number/$me_number.$ext" if !-e "$message_dir/$topic_number";
		print "<INPUT TYPE=BUTTON VALUE=\"Cancel Edit\" onClick=\"self.location = '$urlpush'\">\n";
	}	
	print "</TD></TR></TABLE>\n";
	print "</FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#

sub copy_user_form {
	my ($users, $group, $username) = @_;
	$pls = "";
	$pls = "s" if $users =~ /,/;
	&header;
	print "<HTML><HEAD><TITLE>Copy User$pls</TITLE></HEAD>\n";
	print '<BODY BGCOLOR="ffffff" TEXT="000000" LINK="0000FF" VLINK="0000FF" ';
	print "onLoad=\"window.defaultStatus = 'Copy User$pls'\">$fs\n";
	print "<FONT SIZE=3><CENTER><B>Copy User$pls</B></CENTER></FONT>\n";
	print "<HR>\n";
	print "<B><A HREF=$cgiurlm?cmd=user_mgr&username=$username>User Manager</A>:\n";
	print "<A HREF=$cgiurlm?cmd=user_mgr_2&username=$username&group=$group>Edit \u$group</A>:\n";
	print "Copy User$pls</B>\n";
	print "<HR><P>\n";
	print "<FORM ACTION=$cgiurl3 METHOD=POST>\n";
	print "<TABLE BGCOLOR=#ffffcc BORDER=1><TR><TD>$fs\n";	
	print "You have selected to copy ";
	print "a " if $pls ne "s";
	print "user$pls from the <B>\u$group</B> group\n";
	print "to another group.  Select the destination group from the following\n";
	print "list:<P>\n";
	print "<INPUT TYPE=HIDDEN NAME=action VALUE=copy_user>\n";
	print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username>\n";
	print "<INPUT TYPE=HIDDEN NAME=start VALUE=\"$FORM{'start'}\">\n";
	print "<INPUT TYPE=HIDDEN NAME=group VALUE=$group>\n";
	print "<INPUT TYPE=HIDDEN NAME=users VALUE=\"$users\">\n";
	print "Destination Group: <SELECT NAME=newgroup SIZE=1>\n";
	print "<OPTION VALUE=NONE>--- Select Destination Group ---\n";
	open (GRP, "$admin_dir/groups.txt"); @grp = <GRP>; close (GRP);
	foreach $line (@grp) {
		($grpname, $mods) = split(/:/, $line); @mods = split(/,/, $mods);
		next if $grpname eq $group;
		if (grep(/^$username$/, @mods)) {
			print "<OPTION VALUE=$grpname>\u$grpname\n";
		}
	}
	print "</SELECT><P>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Copy User$pls\">\n";
	print "</FONT></TD></TR></TABLE>\n";
	print "</FORM>\n";
	print "</BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:build_graphical_tree
#REQ:page_manager_navbar

sub move_subtopic_form {
	my ($topic_number_hold, $me_number_hold, $username, $plural, $quickflag, $ref, $click, $tomove) = @_;
	$click = "$topic_number_hold/$me_number_hold" if $click eq "";
	if ($click =~ m|(\d+)/(\d+)|) {
		$topic_click = $1; $page_click = $2;
		$page_expand = "$topic_click/$page_click";
		$click = $topic_click;
	}
	if ($tomove eq "***") {
		my ($head, $color, $lm, $ann, $ann_src, $sublist, $about, $about_src, $message, $message_src, $description_src) = &get_page($topic_number_hold, $me_number_hold);
		@subl = split(/\n/, $sublist);
		undef @tm;
		foreach $line (@subl) {
			if ($line =~ m|<!-Top: (\d+)-!>|) {
				push (@tm, $1);
			}
		}
		$tomove = join(",", @tm);
	}	
	&header if $quickflag != 592;
	print "<HTML><HEAD><TITLE>Move Subtopic$plural</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff ALINK=ffff00>\n";
	print "$fs<FONT SIZE=3><CENTER><B>Move Subtopic$plural</B></CENTER></FONT>\n";
	&page_manager_navbar($topic_number_hold, $me_number_hold, "Move Subtopic$plural") if $quickflag != 592;
	print "<HR>" if $quickflag == 592;
	print "Select a destination for the subtopic$plural you wish to move by clicking on the folder icon (";
	print "<IMG SRC=\"$html_url/icons/tree_g.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP>";
	print ") next to the destination.\n";
	print "To expand other topics and subtopics, click the + icon (<IMG SRC=\"$html_url/icons/tree_a.gif\" HEIGHT=16 WIDTH=20 ALIGN=TOP>) next to the topic name.\n";
	print "If you don't want to move the subtopic$plural at this time, you can ";
	print "<A HREF=$cgiurlm?action=page_editor&username=$username&HTTP_REFERER=//$topic_number_hold/$me_number_hold.$ext#Subtopics>cancel this operation</A>.<HR>\n" if $quickflag != 592;
	print "<A HREF=$message_url/$topic_number_hold/$me_number_hold.$ext>cancel this operation</A>.<HR>\n" if $quickflag == 592 && -e "$message_dir/$topic_number_hold";
	print "<A HREF=$script_url/board-auth.$cgi_extension?file=/$topic_number_hold/$me_number_hold.$ext>cancel this operation</A>.<HR>\n" if $quickflag == 592 && -e "$secdir/$topic_number_hold";
	open (TOPFILE, "$message_dir/$board_topics_file");
	@topfile = <TOPFILE>;
	close (TOPFILE);
	$topic_numbers = "";
	foreach $line (@topfile) {
		if ($line =~ /<!-Top: (\d+)-!>/) {
			$num = $1;
			&extract("//$num/$num.$ext");
			if (&verify_owner($owner,$username)) {
				$topic_numbers .= "$num,";
			}
		}
	}
	&build_graphical_tree ($username, $topic_numbers, "$topic_number_hold/$me_number_hold", "<A HREF=\"$cgiurl1?username=$username&move=$tomove&HTTP_REFERER=$ref&action=move_subtopic&click=", "", "1", $tomove, "<A HREF=$cgiurl1?username=$username&SELECTION=moveall&MARK=$tomove&HTTP_REFERER=$ref&action=subtopics&click=", 0, $click, $page_expand) if !$quickflag;
	&build_graphical_tree ($username, $topic_numbers, "$topic_number_hold/$me_number_hold", "<A HREF=\"$cgiurl1?username=$username&move=$tomove&HTTP_REFERER=$ref&action=move_subtopic&quick=1&click=", "", "1", $tomove, "<A HREF=$cgiurl1?username=$username&SELECTION=moveall&MARK=$tomove&HTTP_REFERER=$ref&action=subtopics&quick=1&click=", 0, $click, $page_expand) if $quickflag;
	print "</FONT></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:printuntil

sub preview_board_colors {
	($bgcolor,$text,$link,$vlink,$alink,$face,$size,$username,$image, $move_board) = @_;
	&header;
	&printuntil(1, 1, 0, "Preview Appearance", 1);
	print "<FONT SIZE=+1><CENTER><B>Preview Appearance</B></CENTER></FONT>\n";
	&printuntil (3, 7, 0, "", 0, 1);
	print "<HR>\n";
	print "<B><A HREF=\"$cgiurlm?cmd=board_mgr&username=$username\" onMouseOver=\"return setStatus('Return to Board Manager')\"><FONT COLOR=$link>Board Manager</FONT></A>: Preview Appearance</B><HR>\n";
	print "<FONT COLOR=\"$text\"><P>This is the color of normal text.</FONT><BR><BR>\n";
	print "<U><FONT COLOR=\"$link\">This is the color of an unvisited link.</FONT></U><BR><BR>\n";
	print "<U><FONT COLOR=\"$vlink\">This is the color of a visited link.</FONT></U><BR><BR>\n";
	print "<U><FONT COLOR=\"$alink\">This is the color of an active link.</FONT></U><BR><BR>\n";
	print "<FONT COLOR=\"$text\">(Note that the background of this page is the background color you have selected.  The horizontal rules on this page are identical to those that will be displayed on pages.)<BR><BR><FONT SIZE=-1>Also note that some text on the board is displayed as size -1 (one size smaller than the specified base font size).  This is a preview of that kind of text.</FONT></FONT>\n";
	print "<HR>\n";
	print "<FORM ACTION=\"$cgiurl2\" METHOD=POST>\n";
	print "<TABLE WIDTH=100% BGCOLOR=ffffcc BORDER=1>\n";
	print "<TR><TD>\n";
	print "<TABLE>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Background:</FONT></TD>\n";
	print "<TD><FONT COLOR=000000><INPUT NAME=bgcolor TYPE=TEXT SIZE=7 VALUE=\"$bgcolor\"></FONT></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Text:</FONT></TD>\n";
	print "<TD><FONT COLOR=000000><INPUT NAME=text TYPE=TEXT SIZE=7 VALUE=\"$text\"></FONT></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Link:</FONT></TD>\n";
	print "<TD><FONT COLOR=000000><INPUT NAME=link TYPE=TEXT SIZE=7 VALUE=\"$link\"></FONT></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Visited Link:</FONT></TD>\n";
	print "<TD><FONT COLOR=000000><INPUT NAME=vlink TYPE=TEXT SIZE=7 VALUE=\"$vlink\"></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Active Link:</FONT></TD>\n";
	print "<TD><FONT COLOR=000000><INPUT NAME=alink TYPE=TEXT SIZE=7 VALUE=\"$alink\"></FONT></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Font Face:</TD><TD><INPUT TYPE=text NAME=face SIZE=40 VALUE=\"$face\"></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Font Size:</TD><TD><INPUT TYPE=text NAME=size size=3 VALUE=$size></TD></TR>\n";
	print "<TR><TD>$fs<FONT COLOR=000000>Background Image:</TD><TD><INPUT TYPE=text NAME=image size=40 VALUE=$image></TD></TR>\n";
	print "</TABLE>\n<P>\n";
	&printuntil (9, 13, 0, "", 0, 1);
	print "<INPUT TYPE=submit name=submit VALUE=\"Refresh Preview\">\n";
	print "<INPUT TYPE=submit name=submit VALUE=\"Save Appearance\">\n";
	print "</FONT></TD></TR>\n";
	print "</TABLE>\n";
	print "<INPUT TYPE=hidden name=username value=\"$username\">\n";
	print "<INPUT TYPE=hidden name=action value=\"board_appearance\">\n";
	print "<INPUT TYPE=HIDDEN NAME=move_board VALUE=1>\n" if $move_board;
	print "</FORM>\n";
	&printuntil (15, 17, 0, "", 0, 1);
	exit(0);
}

#---SEPARATOR---#

sub profanity_editor {
	&header;
	print "<HTML><HEAD><TITLE>Profanity List Editor</TITLE>\n";
	print '<BODY BGCOLOR="ffffff" TEXT="000000" LINK="0000FF" VLINK="0000FF" ';
	print "onLoad=\"window.defaultStatus = 'Profanity List Editor'\">$fs\n";
	print "<FONT SIZE=3><CENTER><B>Profanity List Editor</B></CENTER></FONT>\n";
	print "<HR>\n";
	print "<B><A HREF=\"$cgiurlm?cmd=options_mgr&username=$superuser\" onMouseOver=\"";
	print "window.status = 'Return to the Options Manager'; return true\">Options Manager";
	print "</A>: Profanity List Editor</B>\n<HR>\n";	
	print "<FORM ACTION=$cgiurl METHOD=POST>\n";
	print "<INPUT NAME=action TYPE=HIDDEN VALUE=cuss_save>\n";
	print "<INPUT NAME=username TYPE=HIDDEN VALUE=$superuser>\n";
	print "<TABLE BGCOLOR=#ffffcc BORDER=1 WIDTH=100%><TR><TD>$fs";
	print "Using the box below, enter profanity/cuss words that are to be blocked out.\n";
	print "<B>Enter one word per line</B>.<P>\n";
	print "<TEXTAREA NAME=cusswords COLS=20 ROWS=6>";
	open (CUSS, "$admin_dir/cuss.txt"); @cuss = <CUSS>; close (CUSS);
	undef @word;
	foreach $line (@cuss) {
		if ($line =~ m|^!(.*)|) {
			$word = $1;
			$word =~ tr/a-zA-Z/b-zaB-ZA/;
			push (@word, $word);
		}
	}
	foreach $line (sort(@word)) {
		print "$line\n";
	}
	print "</TEXTAREA><P>\n";
	print "$fs<INPUT TYPE=SUBMIT VALUE=\"Save List\"></TD></TR></TABLE>\n";
	print "</FORM></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#
#REQ:page_manager_navbar
#REQ:build_graphical_tree

sub graphic_browser_select {
	my ($topic_number, $page_number, $username) = @_;
	&header;
	$topic_number_hold = $topic_number; $page_number_hold = $me_number;
	print "<HTML><HEAD><TITLE>Show All Subtopics</TITLE>\n";
	print "</HEAD><BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff ALINK=ff0000>$fs\n";
	print "<FONT SIZE=3><CENTER><B>Show All Subtopics</B></CENTER></FONT>\n";
	&page_manager_navbar($topic_number, $page_number, "Show All Subtopics");
	print "<B>Select a page to edit:</B><P>\n";
	open (TOPFILE, "$message_dir/$board_topics_file");
	@topfile = <TOPFILE>;
	close (TOPFILE);
	$topic_numbers = "";
	foreach $line (@topfile) {
		if ($line =~ /<!-Top: (\d+)-!>/) {
			$num = $1;
			&extract("//$num/$num.$ext");
			if (&verify_owner($owner,$username)) {
				$topic_numbers .= "$num,";
			}
		}
	}
	&build_graphical_tree($username, $topic_numbers, "$topic_number_hold/$page_number_hold", "", "<A HREF=\"$cgiurlm?username=$FORM{\"username\"}&action=page_editor&HTTP_REFERER=/", 0, 0, "<A HREF=$cgiurlm?username=$username&action=graphic_browser&HTTP_REFERER=", 0, "$topic_number_hold/$page_number_hold", "$topic_number_hold/$page_number_hold");
	print "</FONT></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#

sub first_pass {
	my ($username) = @_;
	&header;
	print "<HTML><HEAD><TITLE>Set password</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=ffffff TEXT=000000 LINK=0000ff VLINK=0000ff onLoad=\"document.pwform.pass1.focus()\">$fs\n";
	print "<FONT SIZE=3><CENTER><B>Set password</B></CENTER></FONT>\n<HR>\n";
	print "Welcome to your new Discus board!  You need to set the superuser's password using this form.<BR>\n";
	print "<FORM ACTION=\"$cgiurl\" METHOD=POST NAME=pwform>\n";
	print "<TABLE BORDER=1 WIDTH=100% BGCOLOR=ffffcc><TR><TD>\n";
	print "<TABLE><TR><TD>$fs", "New Password:</TD><TD><INPUT TYPE=PASSWORD SIZE=9 NAME=pass1></TD>\n";
	print "</TR><TR><TD>$fs", "Verify New Password:</TD><TD><INPUT TYPE=PASSWORD SIZE=9 NAME=pass2></TD></TR>\n";
	print "</TABLE>\n\n";
	print "<BR>\n";
	print "<INPUT TYPE=SUBMIT VALUE=\"Save Changed Password\">\n";
	print "<INPUT TYPE=HIDDEN NAME=username VALUE=\"$username\">\n";
	print "<INPUT TYPE=HIDDEN NAME=action VALUE=\"password\">\n";
	print "<INPUT TYPE=HIDDEN NAME=firsttime VALUE=1>\n";
	print "</TD></TR></TABLE>\n";
	print "</FORM>\n";
	print "</BODY></HTML>\n";
	exit(0);
}



#---SEPARATOR---#

sub import_export_utility {
	&header;
	print "<HTML><HEAD><TITLE>Import/Export Utility</TITLE></HEAD>\n";
	print "<BODY BGCOLOR=#ffffff TEXT=#000000 LINK=#0000ff VLINK=#0000ff ALINK=#0000ff>\n";
	print "$fs<FONT SIZE=3><CENTER><B>Import/Export Utility</B></CENTER></FONT><HR><P>\n";
	print "<B><FONT SIZE=3>Import Discus Data</FONT></B><P>\n";
	print "<FONT SIZE=1>DiscusWare is currently developing tools to import data from\n";
	print "other formats (including databases and competitors' formats).  When these tools\n";
	print "are completed, they will appear in this area.</FONT><P>\n";
	print "<HR><P>\n";
	print "<B><FONT SIZE=3>Export Discus Data</FONT></B><P>\n";
	if ($pro) {
		print "This section allows you to export your current Discus message base into another format.<P>\n";
		print "<UL>\n";
		print "<LI><A HREF=$cgiurlm?cmd=export&format=tab&username=$superuser>Export messages in tab-delimited format</A>\n";
		print "<LI><A HREF=$cgiurlm?cmd=export&format=offline&username=$superuser>Export messages in offline-viewing format</A>\n";
		print "</UL>\n";
		print "<P>If you have already exported some files, you can manipulate these files via the ";
		print "<A HREF=$cgiurlm?username=$superuser&cmd=backup_mgr>Backup Manager</A>.\n";
		print "<P>\n";
	} else {
		print "Exporting of the message base is supported only in the professional version of Discus.\n";
		print "For more information, visit <A HREF=\"http://www.discusware.com/pro\">DiscusWare's site</A>.\n";
	}
	print "</FONT></BODY></HTML>\n";
	exit(0);
}

#---SEPARATOR---#

sub access_mgr_2 {
	my ($topic, $username) = @_;
	if (!-w "$admin_dir/posting.txt") {
		&error_message("Save Settings Error", "The posting.txt file (in your administration directory) does not exist or does not have the proper file permissions to save your setting.  Make sure this file exists and that permissions on this file are 0777 (rwxrwxrwx).  Then reload this page.", 0, 1);
	}
	if (!-w "$admin_dir/postoptions.txt") {
		&error_message("Save Settings Error", "The postoptions.txt file (in your administration directory) does not exist or does not have the proper file permissions to save your setting.  Make sure this file exists and that permissions on this file are 0777 (rwxrwxrwx).  Then reload this page.", 0, 1);
	}
	my (@read, @post, $rl, $pl);
	&extract("//$topic/$topic.$ext");
	open (SECURITY, "$admin_dir/posting.txt"); @post = <SECURITY>; close (SECURITY);
	($pl) = grep(/^$topic:/, @post);
	open (SECURITY, "$admin_dir/postoptions.txt"); @options = <SECURITY>; close (SECURITY);
	($ps) = grep(/^$topic:/, @options);
	open (GROUPS, "$admin_dir/groups.txt"); @grp = <GROUPS>; close (GROUPS);
	foreach $grp (@grp) {
		$grp =~ m|^(\w+):|; $grp = $1;
	}
	&header;
	print "<HTML><HEAD><TITLE>Access Manager</TITLE>\n";
	print "<SCRIPT LANGUAGE=\"JavaScript\"> <!-- Hide\n";
	print "function setStatus(msg) {\n";
	print "  window.status=msg\n";
	print "  return true\n";
	print "}\n";
	print "//-->\n";
	print "</SCRIPT></HEAD>\n";
	print '<BODY BGCOLOR="ffffff" TEXT="000000" LINK="0000FF" VLINK="0000FF" ';
	print "onLoad=\"window.defaultStatus = 'Access Editor: ";
	print &JavaScript_prepare($topic_name);
	print "'\">$fs\n";
	print "<FONT SIZE=3><CENTER><B>$topic_name</B></CENTER></FONT>\n";
	print "<HR><B><A HREF=$cgiurlm?action=access_mgr_1&username=$username onMouseOver=\"return setStatus('Return to topic selection screen')\">Access Manager</A>:\n";
	print "Access Editor for $topic_name</B>\n";
	print "<HR><H3>Posting Privileges</H3>";
	print "<FORM ACTION=\"$cgiurl\" METHOD=POST NAME=\"POSTFORM\">\n";
	print "<TABLE BGCOLOR=#ffffcc BORDER=1 WIDTH=100%><TR><TD>\n";
	($topic, $ip, $usrgrp, $modgrp, $pass) = split(/:/, $pl);
	@usrgrp = split(/,/, $usrgrp); @modgrp = split(/,/, $modgrp);
	@ip = split(/,/, $ip);
	print "$fs\n";
	print "<INPUT TYPE=HIDDEN NAME=topic VALUE=$topic_number>\n";
	print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username>\n";
	print "<INPUT TYPE=HIDDEN NAME=action VALUE=access_edit_simple>\n";
	print "<INPUT TYPE=HIDDEN NAME=interface VALUE=simple>\n";
	print "<B>Unrestricted:</B><BR>\n";		
	print "&nbsp;&nbsp;<INPUT TYPE=CHECKBOX NAME=\"publicbox\" VALUE=on ";
	print "CHECKED " if grep(/^~$/, @ip);
	print " onClick=\"if (document.forms[0].publicbox.checked) { document.forms[0].modgroup.checked = 0; document.forms[0].usergroup.checked = 0; document.forms[0].modall.checked = 0; document.forms[0].userall.checked = 0; }\"> Public Posting (anyone at all)";
	print "<P>\n";
	print "<B>Restricted to:</B><BR>\n";
	print "&nbsp;&nbsp;<INPUT TYPE=CHECKBOX NAME=modgroup VALUE=on ";
	print "CHECKED" if grep(/^$owner$/, @modgrp);
	print "CHECKED" if grep(/^~$/, @modgrp);
	print " onClick=\"document.forms[0].publicbox.checked = 0;\"";
	print "> Moderators in this group (\u$owner)";
	print "<BR>\n";
	print "&nbsp;&nbsp;<INPUT TYPE=CHECKBOX NAME=usergroup VALUE=on ";
	print "CHECKED" if grep(/^$owner$/, @usrgrp);
	print "CHECKED" if grep(/^~$/, @usrgrp);
	print " onClick=\"document.forms[0].publicbox.checked = 0;\"";
	print "> Users in this group (\u$owner)";
	print "<BR>\n";
	print "&nbsp;&nbsp;<INPUT TYPE=CHECKBOX NAME=modall VALUE=on ";
	print "CHECKED" if grep(/^~$/, @modgrp);
	print " onClick=\"document.forms[0].publicbox.checked = 0;\"";
	print "> Moderators in every group";
	print "<BR>\n";
	print "&nbsp;&nbsp;<INPUT TYPE=CHECKBOX NAME=userall VALUE=on ";
	print "CHECKED" if grep(/^~$/, @usrgrp);
	print " onClick=\"document.forms[0].publicbox.checked = 0;\"";
	print "> Users in every group";
	$ps =~ s/\s*$//;
	print "<P>\n";
	($topicnumb, $anon, $stamp, $emaild) = split(/:/, $ps);
	print "<INPUT TYPE=CHECKBOX NAME=anondisable VALUE=1 ";
	print "CHECKED" if $anon == 1;
	print "> Disable anonymous posts\n";
	print "<BR>\n";
	print "<INPUT TYPE=CHECKBOX NAME=emaildisable VALUE=1 ";
	print "CHECKED" if $emaild == 1;
	print "> Disable e-mail link on posts\n";
	print "<BR>\n";
	print "<INPUT TYPE=CHECKBOX NAME=stampdisable VALUE=1 ";
	print "CHECKED" if $stamp == 1;
	print "> Disable full name on posts\n";
	print "<P><INPUT TYPE=SUBMIT VALUE='Save'>\n";
	print "<INPUT TYPE=SUBMIT name=kill VALUE='Disable All Posting'>\n";
	print "</TD></TR></TABLE>\n";
	print "</FORM>\n";
	print "</BODY></HTML>\n";
	exit(0);
}


# END - FILE IS CORRECTLY UPLOADED #
