###############################################################
# WHO'S ONLINE FOR UBB
#
# This Version By: Elliott "Borg" Brady (ubb@fracturedreality.co.uk)
# http://www.ubbdev.com/
#
# Originally By: Dave Downin (downin@smart.net)
# http://www.arlo.net/
#
# PLEASE DO NOT REMOVE THE COPYRIGHT NOTICE - I WORKED HARD TO
# CREATE THIS HACK, AND IT PROVIDES ME WITH USEFUL INFORMATION
# SHOULD YOU REQUIRE HELP OR ASSISTANCE
###############################################################

use strict;

$version = "4.1.0 Public Beta";

################################################################################## main Who's Online block

sub WriteUserSession {
my ($minutes, $record, $rectime, @temp_profile, $this_username, $remote_ip, $this_user_number, $this_pubname);

	# version check for WOL
	if ($vars_whos_online{version} ne $version) {
		&StandardHTML2("Error .. Who's Online Variables must be updated.");
		exit(0);
	}
	
	#load passed variables
	my ($where,	$this_user_number, $invisible_pref) = @_;
	
	#set settings
	if ($vars_whos_online{ip_how} eq 'alternate') {
		$remote_ip = $ENV{'HTTP_REMOTE_ADDR'};
	} elsif ($vars_whos_online{ip_how} eq 'alternate2'){
		$remote_ip = $ENV{'HTTP_X_FORWARDED_FOR'};
	} else { #default
		$remote_ip = $ENV{'REMOTE_ADDR'};
	}
	my $current = time;
	$current = $current + ($vars_time{TimeZoneOffset} * 3600) if (($vars_time{TimeZoneOffset} ne "") || ($vars_time{TimeZoneOffset} ne "0"));
	$minutes = $vars_whos_online{inactive_time} * 60;
	$invisible_pref = "" unless $vars_whos_online{allow_invisible};

	if (!$this_user_number) {
		$this_username = "guest";
	} else {
		my @temp_profile = &OpenProfile($this_user_number); chomp($temp_profile[0]); chomp($temp_profile[15]);
		$this_username = ($temp_profile[15] ne "") ? $temp_profile[15] : $temp_profile[0];
		$this_username = "$vars_wordlets_mods{whos_online_moderator_outline_pre}$this_username$vars_wordlets_mods{whos_online_moderator_outline_post}" if ($temp_profile[8] =~ /mod/ig);
		$this_username = "$vars_wordlets_mods{whos_online_administrator_outline_pre}$this_username$vars_wordlets_mods{whos_online_administrator_outline_post}" if ($temp_profile[8] =~ /admin/ig);
	}

	#debug line only - only used for trouble shooting
	if ($vars_whos_online{env_var}) {
		foreach my $key (keys %ENV) {
			print "$key : $ENV{$key}\<br\>\n";
		}
		exit;
	}
	
	# begin Who's Online lock to prevent file corruption
	open (WOLFILE, ">$vars_config{MembersPath}/UBB6Online_lck.cgi");
	flock(WOLFILE, 2);

	# input data from files
	if (-e "$vars_config{MembersPath}/UBB6online.cgi") {
		@people = &OpenFileAsArray("$vars_config{MembersPath}/UBB6online.cgi");
	} else {
		undef(@people);
	}
	chmod(0777, "$vars_config{MembersPath}/UBB6online.cgi");
	
	#get record book
	my $maxline = shift(@people) if defined(@people);
	my ($maxtime,$maxtotal) = split(/\|\^\|/, $maxline);
	if (!$maxtotal) { $maxtime = $current; $maxtotal = 1; }

	# filter old people out
	@people = grep{!/\|\^\|$remote_ip\|\^\|/} @people;
	@people = grep{!/\|\^\|$this_user_number\|\^\|/} @people if ($this_user_number);

	# override record book
	my $x = scalar(@people);
	if ( ($x+1) > $maxtotal) { # need to add yourself :)
		$maxtotal = ($x+1);
		$maxtime  = $current;
	}

	# cut off old people
	my $i;
	for ($i = $#people; $i >= 0; $i--) {
		last if ($current >= (((split(/\|\^\|/,$people[$i]))[0]) + $minutes));
	}
	$i++;
	splice(@people,0,$i);
	
	if ($invisible_pref && $this_username ne "guest") {
		$this_username .= ".inv";
	}
	push (@people, "$current|^|$this_username|^|$this_user_number|^|$remote_ip|^|$where");

	unshift (@people, "$maxtime|^|$maxtotal");
	&WriteFileAsArray("$vars_config{MembersPath}/UBB6online.cgi", @people);

	# kill Who's Online lock to prevent file corruption
	close WOLFILE;
	unlink("$vars_config{MembersPath}/UBB6Online_lck.cgi");
		
} # end sub WriteUserSession

sub GetOnlineUsers {
my ($OnlineUsers, $OnlineSummary, $remote_ip, $invisiblecount, $guestcount, $membercount, $guestother, $memberother, $current_user);


	my $current_user = shift;

	if (($current_user eq "guest") || ($current_user eq "")) {
		undef($current_user);
	} else {
		$current_user = &GetPubName($ubber[4]);
	}
	if ($vars_whos_online{ip_how} eq 'alternate') {
		$remote_ip = $ENV{'HTTP_REMOTE_ADDR'};
	} elsif ($vars_whos_online{ip_how} eq 'alternate2'){
		$remote_ip = $ENV{'HTTP_X_FORWARDED_FOR'};
	} else { #default
		$remote_ip = $ENV{'REMOTE_ADDR'};
	}

	if (!$vars_whos_online{include_yourself}) {
		@people = grep {!/\|\^\|$remote_ip\|\^\|/} @people;
	}

	if ($in{ubb} eq 'whos_online_ssi') { # if called from SSI
		$vars_whos_online{online_message} = $vars_whos_online{ssi_msg} if ($vars_whos_online{ssi_msg} ne '');
	}

	if ($in{f} && !(exists $in{category})) {	# Get only people by match for forums
		$vars_whos_online{online_message} = $vars_whos_online{online_message_forum} if ($vars_whos_online{online_message_forum} ne '');
		my $record = shift(@people);
		@people = grep {/f=$in{f}\D/} @people;
		unshift(@people, $record);
	}

	my $maxline = shift(@people);
	my ($maxtime,$maxtotal) = split(/\|\^\|/, $maxline );
	
	# see invisible
	my $status;
	if ($ubber[4]) {
		my @temp_profile = &OpenProfile($ubber[4]);
		$status = "mods" if ($temp_profile[8] =~ /mod/i);
		$status = "admin" if ($temp_profile[8] =~ /admin/ig);
	}
	my $adminstatus;
	$adminstatus = 1 if ($vars_whos_online{see_invisible} eq "both" && $status) || ($vars_whos_online{see_invisible} eq $status);

	@people = reverse(@people);
	shift(@people) unless ($vars_whos_online{include_yourself});
	foreach my $line (@people) {
		my ($junk,$name,$this_user_number) = split(/\|\^\|/,$line);
		if ($name =~ /\.inv/) {
			$invisiblecount++;
		} elsif ($name eq "guest") {
			$guestcount++;
		} else {
			$membercount++;
		}
		$name =~ s/\.inv// unless ($vars_whos_online{allow_invisible});
		if ((($name !~ /\.inv/) || ($adminstatus)) && ($name ne "guest")) {
			if ($name =~ /\.inv/) {
				$name =~s /\.inv//ig;
				if ($vars_whos_online{link_profile}) {
					$OnlineUsers .= "<a href=\"$vars_config{CGIURL}/ultimatebb.cgi?ubb=get_profile;u=$this_user_number\">$name</a> ($vars_wordlets_mods{whos_online_invisible}), ";
				} else {
					$OnlineUsers .= "$name ($vars_wordlets_mods{whos_online_invisible}), ";
				}
			} else {
				if ($vars_whos_online{link_profile}) {				
					$OnlineUsers .= "<a href=\"$vars_config{CGIURL}/ultimatebb.cgi?ubb=get_profile;u=$this_user_number\">$name</a>, ";
				} else {
					$OnlineUsers .= "$name, ";
				}
			}
		}
	}
	$OnlineUsers =~ s/, $/ /;

	if (($membercount) && $guestcount >= 1) {
		$OnlineUsers .= "$vars_wordlets_mods{whos_online_and} ";
	}
	if ($guestcount == 1) {
		$OnlineUsers .= "$guestcount $vars_wordlets_mods{whos_online_guest}";
	} elsif ($guestcount > 1) {
		$OnlineUsers .="$guestcount $vars_wordlets_mods{whos_online_guests_plural}";
	}

	if ($vars_whos_online{online_message} eq "summary") {

		my $plural = "$vars_wordlets_mods{whos_online_are}";
		my $singular = "$vars_wordlets_mods{whos_online_is}";

		if ($current_user) {
			$OnlineSummary = "$current_user - $vars_wordlets_mods{whos_online_there}";
			$memberother = "$vars_wordlets_mods{whos_online_other}";
		} else {
			$OnlineSummary = "$vars_wordlets_mods{whos_online_Guest} - $vars_wordlets_mods{whos_online_there}";
			$guestother = "$vars_wordlets_mods{whos_online_other}";
		}
		if ($vars_whos_online{include_yourself}) {
			undef($memberother); undef($guestother);
		}
		$membercount = $membercount + $invisiblecount;
		my $verbage;
		if ($membercount > 1 || $membercount == 0) {
			$membercount = "$vars_wordlets_mods{whos_online_no}" if (!$membercount);
			$verbage = $plural;
		} else {
			$verbage = $singular;
		}
		if ($membercount == 1) {$OnlineSummary .= " $verbage $membercount $memberother $vars_wordlets_mods{whos_online_member}"; }
		if ($membercount > 1 || $membercount == 0) { $OnlineSummary .= " $verbage  $membercount $memberother $vars_wordlets_mods{whos_online_members_plural}";}
		if ($invisiblecount > 0 ) {
			$OnlineSummary .= " ($invisiblecount $vars_wordlets_mods{whos_online_invisible})";
		}
		if ($membercount eq "$vars_wordlets_mods{whos_online_no}") { $membercount = 0; }
		if ($guestcount) {
			if ($guestcount == 1) { $OnlineSummary .= " $vars_wordlets_mods{whos_online_and} $guestcount $guestother $vars_wordlets_mods{whos_online_guest}"; }
 			if ($guestcount > 1) { $OnlineSummary .= " $vars_wordlets_mods{whos_online_and} $guestcount $guestother $vars_wordlets_mods{whos_online_guests_plural}"; }
		}
		if ($membercount > 0 || $guestcount > 0) {
			$OnlineSummary .= " $vars_wordlets_mods{whos_online_on_forum} $vars_whos_online{inactive_time} $vars_wordlets_mods{whos_online_minutes}";
		} else {
 			$OnlineSummary = $current_user ? "$current_user - " : "$vars_wordlets_mods{whos_online_Guest} - ";
			$OnlineSummary .= "$vars_wordlets_mods{whos_online_alone}";
		}
	}# end if ($vars_whos_online{online_message} eq "summary") {
	
	my $totalcount = $guestcount + $membercount;
	$totalcount++ if (!$vars_whos_online{include_yourself});

	my ($Final_Heading, $Final_Data);
	if ($vars_whos_online{online_message} eq "summary") {
		$Final_Heading = "$vars_wordlets_mods{whos_online_currently_browsing} ($totalcount)";
		$Final_Heading .= " $vars_wordlets_mods{whos_online_this_forum_only}" if $in{f};
	 	if ((!$in{f}) && ($vars_whos_online{record_book})){
			my ($sec,$min,$hour,$mday,$mon,$year,$wday) = &get_date($maxtime);
			$mday = &DateFormat("$mon-$mday-$year"); $hour = &WOTimeFormat("$hour:$min");	
			$OnlineSummary .= " $vars_wordlets_mods{whos_online_most_users_ever_was} $maxtotal $vars_wordlets_mods{whos_online_on} $wday, $mday $vars_wordlets_mods{whos_online_at} $hour."
		}
		$Final_Data = $OnlineSummary;
	} elsif ($vars_whos_online{online_message} eq "list") {
		$Final_Heading = "$vars_wordlets_mods{whos_online_users_online}";
		$Final_Heading .= " $vars_wordlets_mods{whos_online_this_forum_only}" if $in{f};		
		$Final_Data = $OnlineUsers;	chomp($Final_Data);
		$Final_Data = "$vars_wordlets_mods{whos_online_alone}" if ($Final_Data) eq "";
	} else {
		$Final_Heading = "Who's Online?";
		$Final_Data = "...isn't configured properly. Check your variable file!";
	}
	
	return($Final_Heading, $Final_Data);

} # end sub GetOnlineUsers

################################################################################## SSI block

sub whos_online_ssi {
#<!--#exec cgi="/ubbcgi/ubb_whos_online_ssi.cgi" -->

	my ($Online_Details) = (&GetOnlineUsers($username))[1];
	print "$Online_Details";
	exit;
}

################################################################################## Who's Online display

sub whos_online {
	
	# get assigned style template!
	%vars_style = &LoadStyleTemplate($vars_whos_online{template});

	&set_page_elements;
	$Header =~ s/<body /<body onload="startClock()"/i if ($vars_whos_online{refresh_time});
	print $Header;

my $clock = qq(
<p><form name="clock">
<font size="1" face="$vars_style{FontFace}" color="$vars_style{TextColor}">
$vars_wordlets_mods{whos_online_reload_in} <input type="text" name="time" size="3" value="$vars_whos_online{refresh_time}"> $vars_wordlets_mods{whos_online_seconds}</font>
</form>) if ($vars_whos_online{refresh_time});

	my $page = $in{'p'};
	$page = 1 if (!$page);
	my $start_at = $vars_whos_online{members_per_page} * ($page - 1);

	my ($maxtime, $maxtotal) = split(/\|\^\|/, shift(@people));

	my $tot = scalar(@people);
	@people = reverse(@people);

	my $status;
	if ($ubber[4]) {
		my @temp_profile = &OpenProfile($ubber[4]);
		$status = "mods" if ($temp_profile[8] =~ /mod/ig);
		$status = "admin" if ($temp_profile[8] =~ /admin/ig);
	}

	my $adminstatus;
	if ($vars_whos_online{see_invisible} eq "both" && $status) { $adminstatus = 1; }
	if ($vars_whos_online{see_invisible} eq $status) { $adminstatus = 1; }

	my $hostinfo;
	if ($vars_whos_online{display_host} eq $status) { $hostinfo = 1; }
	if ($vars_whos_online{display_host} eq "both" && $status) { $hostinfo = 1; }
	if ($vars_whos_online{display_host} eq "everyone") { $hostinfo = 1; }

	my $current = time;
	$current = $current + ($vars_time{TimeZoneOffset} * 3600) if (($vars_time{TimeZoneOffset} ne "") || ($vars_time{TimeZoneOffset} ne "0"));
	my ($sec, $min, $hour, $mday, $mon, $year, $wday) = &get_date($current);
	my $TheDate = &DateFormat("$GotTime{HyphenDate}");
	my $TheTime = &WOTimeFormat("$hour:$min");
	my $current_dt = "$TheDate / $TheTime";
	($sec,$min,$hour,$mday,$mon,$year,$wday) = &get_date($maxtime);
	$TheDate = &DateFormat("$mon-$mday-$year");
	$TheTime = &WOTimeFormat("$hour:$min");
	my $max_dt = "$TheDate / $TheTime";

	#my $refresh = $vars_whos_online{refresh_time} ? qq(<meta http-equiv="refresh" content="$vars_whos_online{refresh_time};URL=$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online" />) : "";
	my $refresh = ""; # for XHTML 1.0 Transitional Compatability (heya AA)

	# print header
	print<<HEAD;
$refresh
<script language="JavaScript" type="text/javascript">
<!--
	var Interval = $vars_whos_online{refresh_time};
	function startClock() {
		Interval = Interval - 1;
		if (Interval == -1) {
			window.location.reload();
		}
		else {
			document.clock.time.value = Interval;
			timerID = setTimeout("startClock()", 1000);
		}
	}
//-->
</script>
<center>
<a name="tabletop"></a>
<table border="0" width="$vars_style{TableWidth}">
<tr>
<td align="center" colspan="2">
<b><font size="3" face="$vars_style{FontFace}" color="$vars_style{BBTitleFontColor}">$vars_config{BBName}</font></b>
<br>
<font size="1" face="$vars_style{FontFace}">$MainButtonsLine</font>
</td></tr>
</table>

<br />

<!-- Navigation/Login Table -->
$TBT
<tr bgcolor="$vars_style{AltColumnColor1}">
<td nowrap align="left" valign="bottom">
<font size="1"  face="$vars_style{FontFace}">
<b>&#187;&nbsp;
$show_logout
</b>
</font>
</td>
<td valign="bottom" align="right">
<font size="1" face="$vars_style{FontFace}">
<b>
<a href="$vars_config{CGIURL}/ultimatebb.cgi"><ACRONYM TITLE="$vars_wordlets{forum_home_link}">
$vars_config{BBName}</ACRONYM></A> &#187; $vars_wordlets_mods{whos_online_whos_online} &nbsp;
</b>
</font>
</td>
</tr>
$TBB
<!-- End Navigation/Login Table -->

<p align="center"><b><font size="4" face="$vars_style{FontFace}" color="$vars_style{TextColor}">$vars_wordlets_mods{whos_online_whos_online}</font></b></p>

<p></p>

<table border="0" cellpadding="4" cellspacing="0" width="$vars_style{TableWidth}">
<tr bgcolor="$vars_style{TableColorStrip}">
<td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_user}</font></td>
<td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_where}</font></td>
<td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_time}</font></td></tr>
HEAD

#####################################
# Figure out & create page link HTML

	my $pages;
	if (!$vars_whos_online{members_per_page}) {
		$vars_whos_online{members_per_page} = $tot + 1;
	} else {
		my $total_pages = $tot/$vars_whos_online{members_per_page};
		if ($total_pages > int($tot/$vars_whos_online{members_per_page})) {
			$total_pages++;
		}
		$pages = qq(<font face="$vars_style{FontFace}" size="2" color="$vars_style{TextColor}">$vars_wordlets_mods{whos_online_page} );
		for (my $i = 1; $i <= $total_pages; $i++) {
			if ($page eq $i) {
				$pages .= "$i ";
			} else {
				$pages .= qq(<a href="$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online;p=$i">$i</A> );
			}
		}
		$pages .= qq(</font>);
	}

# End page link HTML code
######################################

	my $end_at = $start_at + $vars_whos_online{members_per_page};
	$end_at = $tot if ($tot <= $end_at);
	my ($guest_counter, $flip);
	for (my $i = $start_at; $i < $end_at; $i++) {
		my ($usertime, $username, $this_user_number, $host_ip, $where, $invisible);
		($usertime,$username,$this_user_number,$host_ip,$where) = split(/\|\^\|/, $people[$i]);
		next if ($username =~ /\.inv/ && !$adminstatus);
		if ($username =~ /\.inv/) {
			$username =~ s/\.inv//;
      		$invisible = " ($vars_wordlets_mods{whos_online_invisible})";
		}
		if ($username eq "guest") {
			$guest_counter++;
			$username = "$vars_wordlets_mods{whos_online_Guest} #" . "$guest_counter";
		}
		my $hostname;
		if ($hostinfo) {
			if ($vars_whos_online{resolve_host}) {
				$hostname = gethostbyaddr(&inet_aton($host_ip), 'AF_INET');
				$hostname = $host_ip if (!$hostname);
			} else {
				$hostname = $host_ip;
			}
		}
		if ($hostinfo) { $hostname = "<br /><small>($hostname)</small>"; }
		($sec,$min,$hour,$mday,$mon,$year,$wday) = &get_date($usertime);
		$TheDate = &DateFormat("$mon-$mday-$year");
		$TheTime = &WOTimeFormat("$hour:$min");
		print "<tr ";
		if (!$flip) {
			print "bgcolor=\"$vars_style{AltColumnColor1}\"";
			$flip = "1";
		} else {
			print "bgcolor=\"$vars_style{AltColumnColor2}\"";
			$flip = "";
		}
		$username =~ s/\.inv//g;

		if (($username !~ /$vars_wordlets_mods{whos_online_Guest}/i) && ($username !~ /$vars_wordlets_mods{whos_online_guest}/i)) {
			print qq(><td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}"><a href="$vars_config{CGIURL}/ultimatebb.cgi?ubb=get_profile;u=$this_user_number" target="_blank">$username</a>);
		} else {
			print qq(><td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}">$username);
		}
		print qq($invisible $hostname</font> </td>
<td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}">$where</font></td>
<td align="center" valign="middle"><font size="2" face="$vars_style{FontFace}" color="$vars_style{TimeColor}">$TheTime</font></td></tr>);
	}

	my $tc_visitor_sp = ($tot == 1) ? $vars_wordlets_mods{whos_online_visitor} : $vars_wordlets_mods{whos_online_visitors};
	my $mt_visitor_sp = ($maxtotal == 1) ? $vars_wordlets_mods{whos_online_visitor} : $vars_wordlets_mods{whos_online_visitors};

	# print footer
	print<<FOOT;
<tr bgcolor="$vars_style{CategoryStripColor}"><td colspan="3" align="center">
<table border="0" cellpadding="1" cellspacing="2">
<tr>
<td align="center" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><b><font size="1" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_currently}</font></b></td>
<td align="center" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><b><font size="1" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$current_dt ($tot $tc_visitor_sp)</font></b></td></tr>
FOOT

	print qq(<td align="center" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><b><font size="1" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_record}</font></b></td><td align="center" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><b><font size="1" face="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$max_dt ($maxtotal $mt_visitor_sp)</font></b></td></tr>) if ($vars_whos_online{record_book});

	print<<FOOT;
</table>
</td></tr>
<tr>
<td><font size="1" face="$vars_style{FontFace}">$vars_wordlets{times_are} $vars_time{TimeZone}</font></td>
<td colspan="2" align="right">$pages</td>
</tr></table>
$clock
FOOT

	print $Footer;
}

sub inet_aton {
# adapted from Eric L. Brine's routine - http://www.geocrawler.com/archives/3/182/1999/8/0/2586818/
  $_[0] =~ /^(\d+).(\d+).(\d+).(\d+)$/;
  return pack("C4", $1 ,$2 ,$3 , $4);
}

################################################################################## Who's Online time routines

sub get_date {

	my $seed = shift;
	$seed = time if (!$seed);
	my ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($seed);
	$mon++;

	$year = 1900 + $year;
	$wday = ("$vars_wordlets_mods{weekday_7}", "$vars_wordlets_mods{weekday_1}", "$vars_wordlets_mods{weekday_2}", "$vars_wordlets_mods{weekday_3}", "$vars_wordlets_mods{weekday_4}", "$vars_wordlets_mods{weekday_5}", "$vars_wordlets_mods{weekday_6}")[$wday];
	my $nice_mon = ("$vars_wordlets_date{month_1}", "$vars_wordlets_date{month_2}", "$vars_wordlets_date{month_3}", "$vars_wordlets_date{month_4}", "$vars_wordlets_date{month_5}", "$vars_wordlets_date{month_6}", "$vars_wordlets_date{month_7}", "$vars_wordlets_date{month_8}", "$vars_wordlets_date{month_9}", "$vars_wordlets_date{month_10}", "$vars_wordlets_date{month_11}", "$vars_wordlets_date{month_12}")[$mon];
	if ($mday <= "9") {  $mday = "0$mday"; }
	if ($hour <= 9) { $hour = "0$hour"; }
	if ($min <= 9) { $min = "0$min"; }
	if ($sec <= 9) { $sec = "0$sec"; }

	return ($sec,$min,$hour,$mday,$mon,$year,$wday);
	
}

sub WOTimeFormat {
my($time_formatted);

	if ($vars_time{TimeFormat} eq '24HR') {
		$time_formatted = $_[0];
	} else { # AMPM fix by qasic
		my ($get_hour, $get_minute) = split(/:/, $_[0]);
		$time_formatted = 0;
		if ($get_hour >= 12) { #PM
			$get_hour -= 12 if ($get_hour != 12);
			$time_formatted = "$get_hour:$get_minute $vars_wordlets_mods{whos_online_pm}";
		} else { #AM
			$get_hour += 12 if (!$get_hour);
			$time_formatted = "$get_hour:$get_minute $vars_wordlets_mods{whos_online_am}";
		}
	}
	return($time_formatted);

} # end WOTimeFormat

1;