# FILE: src-board-subs-10
# Profiles (profile manager and comparisons)
#-------------------------------------------------------------------------------
# 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---#

sub compare_profiles {
	my ($input) = @_;
	@input = split(/\n/, $input);
	my ($line, $file, $user, $pass, $email, $fullname, $edit, $notify, $lastcheck, $EMAIL_FORCE);
	foreach $line (@input) {
		($file, $user, $pass, $email, $fullname, $edit, $notify, $lastcheck) = split(/:/, $line);
		if ($edit == 2) {
			$EMAIL_FORCE = $email;
		}
	}
	$line = shift(@input);
	($file, $user, $pass, $email, $fullname, $edit, $notify, $lastcheck) = split(/:/, $line);
	$email = $EMAIL_FORCE if $EMAIL_FORCE;
	@emt = split(/,/, $notify);
	foreach $l (@emt) {
		if ($l =~ m|^(\d+)/|) {
			$l = $1;
		}
	}
	$notify = join(",", @emt);
	$e{$email} = 1; $f{$fullname} = 1; $n{$notify} = 1;
	foreach $line (@input) {
		($file, $user, $pass, $email, $fullname, $edit, $notify, $lastcheck) = split(/:/, $line);
		$email = $EMAIL_FORCE if $EMAIL_FORCE;
		@emt = split(/,/, $notify);
		foreach $l (@emt) {
			if ($l =~ m|^(\d+)/|) {
				$l = $1;
			}
		}
		$notify = join(",", @emt);
		return 1 if !$n{$notify};
		return 1 if !$e{$email};
		return 1 if !$f{$fullname};
	}
	return 0;
}

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

sub display_profile_differences {
	my ($username, $password, $input) = @_;
	@input = split(/\n/, $input);
	open (TOP, "$message_dir/$board_topics_file"); @top = <TOP>; close (TOP);
	@tpc = grep(/<!-Top/, @top);
	foreach $line (@tpc) {
		if ($line =~ m|<!-Top: (\d+)-!>|) {
			$t = $1; &extract("//$t/$t.$ext"); $topic{$t} = &remove_html($topic_name);
		}
	}
	&header;
	&printuntil(1, 1, 0, $L{PROFILE_SYNC_TITLE});
	print "<FONT SIZE=3><CENTER><B>$L{PROFILE_SYNC_TITLE}</B></CENTER></FONT>\n";
	print "<HR>\n";
	print $L{PROFILE_SYNC_DESCR};
	print "<P><CENTER><TABLE BORDER=0><TR>\n";
	$ct = 0;
	foreach $line (@input) {
		$line =~ s/\n$//;
		($file, $user, $pass, $email, $fullname, $edit, $notify, $last, $group)	= split(/:/, $line);
		@emt = split(/,/, $notify);
		foreach $l (@emt) {
			if ($l =~ m|^(\d+)/|) {
				$l = $1;
			}
		}
		$notify = join(",", @emt);
		print "<TD VALIGN=TOP>\n" if $ct == 0;
		print "<TD>&nbsp;</TD><TD VALIGN=TOP>" if $ct == 1;
		print "</TR><TR><TD VALIGN=TOP>" if $ct == 2;
		$ct += 1; $ct = 1 if $ct >= 3;
		print "<TABLE BORDER=1><TR><TD>\n";
		print "<FORM ACTION=$script_url/board-profile.$cgi_extension METHOD=POST>\n";
		print "<FONT FACE=\"$face\" SIZE=\"$size\">\n";
		print "<U>$L{PROFEDIT_INFO}</U><BR>\n";
		print "\u$user<BR>\n";
		print "$email<BR>\n";
		print "$fullname<P>\n";
		print "<U>$L{PROFEDIT_EMAILNOTIFY}</U><BR>\n";
		foreach $line_n (split(/,/, $notify)) {
			print "- ", substr($topic{$line_n}, 0, 30) if $topic{$line_n} ne "";
			print "..." if length($topic{$line_n}) > 30;
			print "<BR>\n" if $topic{$line_n} ne "";
		}
		print "- $L{PROFILE_MYPOSTS}<BR>\n" if grep(/^0$/, split(/,/, $notify));
		print "<P><CENTER><INPUT TYPE=SUBMIT VALUE=\"$L{PROFILE_CHOOSETHISONE}\"></CENTER>\n";
		print "<INPUT TYPE=HIDDEN NAME=action VALUE=\"sync\">\n";
		print "<INPUT TYPE=HIDDEN NAME=file VALUE=\"$file\">\n";
		print "<INPUT TYPE=HIDDEN NAME=group VALUE=\"$group\">\n";
		print "<INPUT TYPE=HIDDEN NAME=username VALUE=\"$username\">\n";
		print "<INPUT TYPE=HIDDEN NAME=password VALUE=\"$password\">\n";
		print "</FORM></TD></TR></TABLE></TD>\n";
	}
	print "</TR></TABLE></CENTER>\n";
	&printuntil(3, 17, 0, "", 0, 1);
	exit(0);
}

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

sub profile_editor_screen {
	my ($file, $username, $group, $username_editing, $action_url, $action, $editflag) = @_;
	$file =~ tr/A-Z/a-z/;
	$IS_MODERATOR = 0;
	open (FILE, "$admin_dir/$file.txt"); @file = <FILE>; close (FILE);
	if ($file eq "passwd") {
		($uline) = grep(/^$username:/, @file);
		$IS_MODERATOR = 1;
	} else {
		@u = grep(/^$username:/, @file);
		($uline) = grep(/:$group\s*$/, @u);
	}
	chop ($uline) if $uline =~ m|\n$|;
	if ($uline eq "") {
		&error_message("Edit Profile Error", "Could not find entry for $username in file $file!");
	}
	($username, $password, $email, $fullname, $editing, $email_notify, $lastcheck, $group) = split(/:/, $uline);
	@emt = split(/,/, $email_notify);
	foreach $l (@emt) {
		if ($l =~ m|^(\d+)/|) {
			$l = $1;
		}
	}
	&header;
	&printuntil(1, 1, 0, $L{PROFEDIT_TITLE});
	print "<FONT SIZE=3><CENTER><B>$L{PROFEDIT_TITLE}";
	print ": \u$username" if $editing;
	print "</B></CENTER></FONT>\n";
	print "<HR>\n";
	if ($editflag == 1) {
		print "<B><A HREF=\"$cgiurlm?username=$username_editing&cmd=user_mgr\" ";
		print "onMouseOver=\"return setStatus('Return to User Manager group selection screen')\">";
		print "User Manager</A>:\n";
		print "<A HREF=\"$cgiurlm?username=$username_editing&cmd=user_mgr_2&group=$group\" ";
		print "onMouseOver=\"return setStatus('Return to editing users in \u$group')\">";
		print "Edit \u$group</A>:\n";
		print "Edit \u$username</B><HR>\n";
	} elsif ($editflag == 2) {
		print "<B><A HREF=\"$cgiurlm?username=$username_editing&cmd=moderator_mgr\" ";
		print "onMouseOver=\"return setStatus('Return to Moderator Manager')\">";
		print "Moderator Manager</A>:\n";
		print "Edit \u$username</B><HR>\n";
	}
	print "<H4>$L{PROFEDIT_INFO}</H4>\n";
	print "<FORM ACTION=$action_url METHOD=POST>\n";
	print "<INPUT TYPE=HIDDEN NAME=action VALUE=$action>\n";
	print "<INPUT TYPE=HIDDEN NAME=action2 VALUE=infosave>\n";
	print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username_editing>\n";
	print "<INPUT TYPE=HIDDEN NAME=username_edit VALUE=$username>\n";
	print "<INPUT TYPE=HIDDEN NAME=group VALUE=$group>\n";
	print "<INPUT TYPE=HIDDEN NAME=password VALUE=\"$FORM{'password'}\">\n";
	print "<TABLE WIDTH=100% BORDER=1><TR><TD>\n";
	print "<TABLE>\n";
	$mlstr = "";
	$mlstr = " MAXLENGTH=$GLOBAL_OPTIONS{'name_length_limit_number'}" if (($GLOBAL_OPTIONS{'name_length_limit'} == 1 || $GLOBAL_OPTIONS{'name_length_limit'} eq "") && $GLOBAL_OPTIONS{'name_length_limit_number'} > 0);
	$mlstr = " MAXLENGTH=35" if (($GLOBAL_OPTIONS{'name_length_limit'} == 1 || $GLOBAL_OPTIONS{'name_length_limit'} eq "") && $GLOBAL_OPTIONS{'name_length_limit_number'} == 0);
	print "<TR><TD>$fs<B>$L{PROFEDIT_YOURUSERNAME}</B></FONT><TD><TD>$fs<B>\u$username</B></FONT></TD></TR>\n";
	$fullnamex = $fullname; $fullnamex =~ s/"/&quot;/g;
	print "<TR><TD>$fs<B>$L{PROFEDIT_YOURFULLNAME}</B></FONT><TD><TD><INPUT TYPE=TEXT NAME=profile_fullname SIZE=35 VALUE=\"$fullnamex\"$mlstr></TD></TR>\n";
	print "<TR><TD>$fs<B>$L{PROFEDIT_YOUREMAIL}</B></FONT><TD><TD><INPUT TYPE=TEXT NAME=profile_email SIZE=35 VALUE=\"$email\" MAXLENGTH=100></TD></TR>\n";
	print "</TABLE><P>$fs<INPUT TYPE=SUBMIT VALUE=\"$L{PROFEDIT_SAVEINFO}\"></FONT>\n";
	print "</TD></TR></TABLE></FORM>\n";
	if ($GLOBAL_OPTIONS{'email'} && ($IS_MODERATOR || $GLOBAL_OPTIONS{send_mail_only_admins} == 0)) {
		print "<HR>\n";
		print "<H4>$L{PROFEDIT_EMAILNOTIFY}</H4>\n";
		print "<FORM ACTION=$action_url METHOD=POST>\n";
		print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username_editing>\n";
		print "<INPUT TYPE=HIDDEN NAME=username_edit VALUE=$username>\n";
		print "<INPUT TYPE=HIDDEN NAME=action VALUE=$action>\n";
		print "<INPUT TYPE=HIDDEN NAME=action2 VALUE=notifysave>\n";
		print "<INPUT TYPE=HIDDEN NAME=group VALUE=$group>\n";
		print "<INPUT TYPE=HIDDEN NAME=password VALUE=\"$FORM{'password'}\">\n";
		print "<TABLE WIDTH=100% BORDER=1><TR><TD>$fs\n";
		print "$L{PROFEDIT_CHOOSETOPICS}\n<P><UL>";
		open (TOP, "$message_dir/$board_topics_file"); @top = <TOP>; close (TOP);
		@topics = grep(/^<!-Top:/, @top);
		foreach $t (@topics) {
			if ($t =~ m|<!-Top: (\d+)-!>|) {
				$o = $1;
				&extract("//$o/$o.$ext");
				print "<INPUT TYPE=CHECKBOX NAME=notify_$o VALUE=1";
				print " CHECKED" if grep(/^$o$/, @emt);
				print "> $topic_name<BR>\n";
			}
		}
		print "</UL><P>$L{PROFEDIT_MYPOSTS}\n<P><UL>\n";
		print "<INPUT TYPE=CHECKBOX NAME=notify_0 VALUE=1";
		print " CHECKED" if grep(/^0$/, @emt);
		print "> $L{PROFEDIT_MYPOSTSBOX}<P></UL>\n";
		print "<P><INPUT TYPE=SUBMIT VALUE=\"$L{PROFEDIT_SAVEINFO}\"></FONT></TD></TR></TABLE></FORM>\n";
	}
	if ($GLOBAL_OPTIONS{'pwchange'} ne "0" || $editflag || $IS_MODERATOR) {
		print "<HR>\n";
		print "<H4>$L{PROFEDIT_CHANGEPASSWORD}</H4>\n";
		print "<FORM ACTION=$action_url METHOD=POST>\n";
		print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username_editing>\n";
		print "<INPUT TYPE=HIDDEN NAME=username_edit VALUE=$username>\n";
		print "<INPUT TYPE=HIDDEN NAME=action VALUE=$action>\n";
		print "<INPUT TYPE=HIDDEN NAME=group VALUE=$group>\n";
		print "<INPUT TYPE=HIDDEN NAME=action2 VALUE=changepass>\n";
		print "<INPUT TYPE=HIDDEN NAME=password VALUE=\"$FORM{'password'}\">\n";
		print "<TABLE WIDTH=100% BORDER=1><TR><TD>$fs\n";
		print "$L{PROFEDIT_CHANGEPASSWORD_INSTR}<P>";
		print "<TABLE><TR><TD>$fs<B>$L{PROFEDIT_NEWPASS}</B></FONT></TD><TD><INPUT TYPE=PASSWORD NAME=pass_1 SIZE=15></TD></TR>\n";
		print "<TR><TD>$fs<B>$L{PROFEDIT_VERIFY}</B></FONT></TD><TD><INPUT TYPE=PASSWORD NAME=pass_2 SIZE=15></TD></TR>\n";
		print "</TABLE>\n";
		print "<P><INPUT TYPE=SUBMIT VALUE=\"$L{PROFEDIT_SAVEBUTTON}\">\n";
		print "</TD></TR></TABLE>";
		print "</FORM>\n";
	}
	if ($editflag) {
		print "<HR>\n";
		print "<H4>Editing Privileges</H4>\n";
		print "<FORM ACTION=$action_url METHOD=POST>\n";
		print "<INPUT TYPE=HIDDEN NAME=username VALUE=$username_editing>\n";
		print "<INPUT TYPE=HIDDEN NAME=username_edit VALUE=$username>\n";
		print "<INPUT TYPE=HIDDEN NAME=action VALUE=$action>\n";
		print "<INPUT TYPE=HIDDEN NAME=action2 VALUE=editpriv>\n";
		print "<INPUT TYPE=HIDDEN NAME=group VALUE=$group>\n";
		print "<TABLE WIDTH=100% BORDER=1><TR><TD>$fs\n";
		print "Choose whether this person is able to edit his or her own profile.<P>\n";
		print "<UL>\n";
		print "<INPUT TYPE=RADIO NAME=editing VALUE=1";
		print " CHECKED" if $editing == 1;
		print "> Editing is <FONT COLOR=00aa00><B>enabled</B></FONT><BR>\n";
		print "<INPUT TYPE=RADIO NAME=editing VALUE=0";
		print " CHECKED" if $editing == 0;
		print "> Editing is <FONT COLOR=ff0000><B>disabled</B></FONT><BR>\n";
		print "</UL><P>\n";
		print "<INPUT TYPE=SUBMIT VALUE=\"Save Editing Setting\">\n";
		print "</TD></TR></TABLE></FORM>\n";
	}
	&printuntil(3, 17, 0, "", 0, 1);
	exit(0);
}

# END - FILE IS CORRECTLY UPLOADED #
