#!/usr/bin/perl
use strict;
use CGI qw(:all);
use Fcntl qw(:flock);

my (@data, @info, $login, $code, $i, $stop_flag, @inf, $act, @time, @files, @data0, $buffer, $k, $j, $sem);


$code=param('code');
$login=param('login');

$sem="chat.sem";
@files=glob("users/*.dat");

$stop_flag=-1;

$act=-M "users/$login.dat";
$act=$act*86400;

$time[0]=int($act/3600);
$time[1]=int($act/60)-$time[0]*60;
$time[2]=int($act)-$time[1]*60-$time[0]*3600;

if ($time[0]<10) {
 $time[0]="0$time[0]";
}
if ($time[1]<10) {
 $time[1]="0$time[1]";
}
if ($time[2]<10) {
 $time[2]="0$time[2]";
}

&get_lock;
open(DAT, "pep_base.cfg");
 @data0=<DAT>;
close(DAT);
for ($i=0; $i<@files; $i++) {

 $buffer=$files[$i];
 $buffer=~s/^.*\///i;
 $buffer=~s/\..*$//i;
 for ($j=0; $j<@data0; $j++) {
  @info=split(/:-:-:/, $data0[$j]);
  if ($buffer eq $info[0] and $info[6]!=2 and (-M $files[$i])>0.007) {
   $data0[$j]=~s/1$/0/i;
  }
 }
}

open(DAT, ">pep_base.cfg");
for ($i=0; $i<@data0; $i++) {
 print DAT $data0[$i];
}
close(DAT);
&release_lock();

(@files, @data, @info, $buffer, $k)=0;


print header;

open(BS, "pep_base.cfg");
 @data=<BS>;
close(BS);

for ($i=0; $i<@data; $i++) {
 @info=split(/:-:-:/, $data[$i]);
 if ($info[0]=~m/^$login$/i) {
  $stop_flag=$i;
 }
}

if ($stop_flag<0) {
 @inf="<font class=\"header\">Аккаунт с именем $login не найден!</font>";
} else {
 @info=split(/:-:-:/, $data[$stop_flag]);
 if ($info[5]==1) {
  $info[5]="пользователь";
 } elsif ($info[5]==2) {
  $info[5]="модератор";
 } elsif ($info[5]==3) {
  $info[5]="администратор";
 } else {
  $info[5]="гость";
 }

 if ($info[6]==0) {
  $info[6]="отсутствует";
 } elsif ($info[6]==1) {
  $info[6]="в чате";
 } else {
  $info[6]="заблокирован";
 }

 if ($code eq "try_oncode43594") {
  @inf="<table cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"#909090\">
	<tr bgcolor=\"#e0e0e0\">
	<td><font class=\"header\">Поле:</font></td>
	<td><font class=\"header\">Значение:</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Имя пользователя:</font></td>
	<td><font class=\"header\">$info[0]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Пароль:</font></td>
	<td><font class=\"header\">$info[1]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Почта:</font></td>
	<td><font class=\"header\"><a href=\"mailto:$info[2]\">$info[2]</a></font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">IP регистрации:</font></td>
	<td><font class=\"header\">$info[3]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Последний IP:</font></td>
	<td><font class=\"header\">$info[4]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Уровень доступа:</font></td>
	<td><font class=\"header\">$info[5]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Статус активности:</font></td>
	<td><font class=\"header\">$info[6]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Время неактивности:</font></td>
	<td><font class=\"header\">$time[0]:$time[1]:$time[2]</font></td>
	</tr></table>";
 } else {
  @inf="<table cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"#909090\">
	<tr bgcolor=\"#e0e0e0\">
	<td><font class=\"header\">Поле:</font></td>
	<td><font class=\"header\">Значение:</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Имя пользователя:</font></td>
	<td><font class=\"header\">$info[0]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Почта:</font></td>
	<td><font class=\"header\"><a href=\"mailto:$info[2]\">$info[2]</a></font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Последний IP:</font></td>
	<td><font class=\"header\">$info[4]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Уровень доступа:</font></td>
	<td><font class=\"header\">$info[5]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Статус активности:</font></td>
	<td><font class=\"header\">$info[6]</font></td>
	</tr>
	<tr bgcolor=\"#f0f0f0\">
	<td><font class=\"header\">Время неактивности:</font></td>
	<td><font class=\"header\">$time[0]:$time[1]:$time[2]</font></td>
	</tr></table>";
 }
}

print <<EOF;
<html>
<head>
<title>Светлячок | Наш чат | Информация о пользователе</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<style>
<!--
body {background-color: #f0f0f0;
margin: 20 20 20 20;
}
a {font-family: verdana;
color: #002255;
text-decoration: none;
font-size: 11px;
}
a:visited {color: #002255;
TEXT-DECORATION: none;
font-size: 11px;
}
a:active {color: #000000;
font-size: 11px;
}
a:hover {color: #0060f0;
font-size: 11px;
}
.header {font-family: verdana;
font-size: 11px;
color: #000000;
}
p.log {
margin: 12 0 0 0;
}
-->
</style>
</head>
<body>
<center>
@inf
</center>
</body>
</html>
EOF

sub get_lock {
open(SEM, ">$sem") || "Невозможно открыть семафор: $!";
 flock(SEM, LOCK_EX) || "Невозможно заблокировать семафор: $!";
}

sub release_lock {
 close(SEM);
}