#!/usr/bin/perl

require "set.pl";
&getinput;
&printhead;
@CNT = getfile("count.txt");
open(FILE, "config.dat"); $a = @config = <FILE>; close FILE; for ($i=0; $i<$a; $i++) { chomp($config[$i]); }
if ($in{password} ne $config[1]) { &showlogin; }
if ($in{a} eq "l") { &showoptions; }
if ($in{a} eq "a") { &config; }
if ($in{a} eq "z") { &listusers; }
if ($in{a} eq "b") { &configfrm; }
if ($in{a} eq "View") { &viewuser; }
if ($in{a} eq "Delete") { &deluser; }
if ($in{a} eq "Save") { &saveuser; }
if ($in{a} eq "topdone") { &topusers; }
if ($in{a} eq "t") { &topform; }
if ($in{a} eq "search") { &search; }
if ($in{a} eq "s") { &searchform; }

sub showoptions {
print<<d00der;

<FORM METHOD="POST">
Панель администратора:<P>
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}">
<INPUT TYPE=RADIO NAME="a" VALUE="z">Список пользователей<BR>
<INPUT TYPE=RADIO NAME="a" VALUE="b">Конфигурация<BR>
<INPUT TYPE=RADIO NAME="a" VALUE="t">Рейтинг пользователей<BR>
<INPUT TYPE=RADIO NAME="a" VALUE="s">Найти пользователя<br>
<INPUT TYPE="submit" VALUE="Начать">
</FORM>
<form method="POST" action="mail.cgi" TARGET="startpage">
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}">
<p><input type="Submit" value="Послать e-mail" name="email"></p>
</form>

<B>Всего зарегистрировано</B>
<B>пользователей</B> - <I>$CNT[0]</I><BR>
d00der
exit;
}
sub deluser {
if ($in{selected} =~ m/\.verify/) {
$in{selected} =~ s/\.verify//;
unlink("$config[7]/$in{selected}.verify", "$config[7]/$in{selected}.list");
}
else {
unlink("$config[7]/$in{selected}", "$config[7]/$in{selected}.list");
}
print "<B>Удалено</B>";
&showoptions
}
sub viewuser {
@USER = getfile("$config[7]/$in{selected}");
$in{selected} =~ s/\.verify//;
open(FILE, "$config[7]/$in{selected}.list");
@URLz = <FILE>;
close FILE;
if ($USER[18] eq "yes") {
$pausetext = '<INPUT TYPE=RADIO NAME="pause" VALUE="yes" CHECKED>yes<BR><INPUT TYPE=RADIO NAME="pause" VALUE="no">no';
}
else {
$pausetext = '<INPUT TYPE=RADIO NAME="pause" VALUE="yes">yes<BR><INPUT TYPE=RADIO NAME="pause" VALUE="no" CHECKED>no';
}        
$left = $USER[3] - $USER[4];
print<<d00der;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<B>Статистика пользователя $in{selected}</B><P><FORM METHOD="POST">
<TABLE><TR><TD>Всего заработано (начислено):</TD>
<TD><INPUT TYPE=TEXT NAME="earned" VALUE="$USER[3]"></TD></tr>
<TR><TD>Всего потрачено кредитов:</TD>
<TD><INPUT TYPE=TEXT NAME="used" VALUE="$USER[4]"></TD></tr><TR><TD>Остаток кредитов на счету:</TD>
<TD>$left</TD></tr><tr><TD>Пароль</TD>
<TD><INPUT NAME="pword" VALUE="$USER[1]" size="20"></TD></TR>
<TR><TD>E-mail</TD><TD><INPUT NAME="email" VALUE="$USER[9]" size="20"></TD></TR>
<TR><TD>Z-кошелек</TD><TD><INPUT NAME="wmz" VALUE="$USER[2]" size="20"></TD></TR>
<tr><TD>Приостановить показ*</TD><TD>$pausetext</TD></TR>
<TR><TD>URL сайтов</TD><TD><TEXTAREA NAME="urlz" COLS="55" ROWS="4">@URLz</TEXTAREA></TD></TR>
<TR><TD><INPUT TYPE=HIDDEN NAME="selected" VALUE="$in{selected}">
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}"></TD>
<TD><INPUT TYPE="Submit" NAME="a" VALUE="Save"></TD></TR>
</TABLE><B>Рефералы</B><TABLE BORDER="1"><TR><TD>Уровень</TD><TD>Кол-во</TD>
<TD>Начислено</TD></tr><TR><TD>1</TD><TD><INPUT TYPE=TEXT NAME="10" VALUE="$USER[10]"></TD>
<TD>$USER[14]</TD></tr><TR><TD>2</TD><TD><INPUT TYPE=TEXT NAME="11" VALUE="$USER[11]"></TD>
<TD>$USER[15]</TD></tr><TR><TD>3</TD><TD><INPUT TYPE=TEXT NAME="12" VALUE="$USER[12]"></TD>
<TD>$USER[16]</TD></tr><TR><TD>4</TD><TD><INPUT TYPE=TEXT NAME="13" VALUE="$USER[13]"></TD>
<TD>$USER[17]</TD></tr></TABLE><B>Имена рефералов:</B><BR>Уровень 1: $USER[5]   <BR>
Уровень 2: $USER[6]   <BR>Уровень 3: $USER[7]   <BR>Уровень 4: $USER[8]   <BR>
</FORM>
d00der

}
sub saveuser {
@USER = getfile("$config[7]/$in{selected}");
@user = ($in{selected}, $in{pword}, $in{wmz}, $in{earned}, $in{used}, $USER[5], $USER[6], $USER[7], $USER[8], $in{email}, $in{10}, $in{11}, $in{12}, $in{13}, $USER[14], $USER[15], $USER[16], $USER[17], $in{pause});
writefile("$config[7]/$in{selected}", @user);
$in{selected} =~ s/\.verify//;
writefile("$config[7]/$in{selected}.list", $in{urlz});
print "<B>Saved</B>";
&showoptions;
}

sub listusers {
opendir(DATA, "$config[7]");
@DB = readdir(DATA);
closedir (DATA);
print<<d00der;
<FORM METHOD="POST">
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}">
<TABLE><TR><TD>Выбрать</TD><TD>Логин</TD></tr>
d00der
foreach $db (@DB) {
if ($db =~ /[^a-zA-Z0-9]/) { next; }
print "<TR><TD><INPUT TYPE=RADIO NAME=\"selected\" VALUE=\"$db\"></TD><TD>$db</TD></tr>";
}
print<<d00der;
<TR><TD><INPUT TYPE="submit" NAME="a" VALUE="Delete"></TD>
<TD><INPUT TYPE="submit" NAME="a" VALUE="View"></TD></TR>
</TABLE></FORM>
d00der
exit;
}

sub configfrm {
print<<d00der;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<FORM METHOD="POST">
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}">
<INPUT TYPE=HIDDEN NAME="a" VALUE="a">
<BR><INPUT TYPE=TEXT NAME="z0" VALUE="$config[0]">Название системы
<BR><INPUT NAME="z1" VALUE="$in{password}" size="20">Пароль администратора
<BR><INPUT TYPE=TEXT NAME="z2" VALUE="$config[2]">URL сайта
<BR><INPUT TYPE=TEXT NAME="z3" VALUE="$config[3]">Frame 1 (относительно каталога CGI)
<BR><INPUT TYPE=TEXT NAME="z4" VALUE="$config[4]">Frame 2 (относительно каталога CGI)
<BR><INPUT TYPE=TEXT NAME="z5" VALUE="$config[5]">Высота фрейма
<BR><INPUT TYPE=TEXT NAME="z6" VALUE="$config[6]">Время просмотра (милисек)
<BR><INPUT TYPE=TEXT NAME="z7" VALUE="$config[7]">Путь к директории пользователей
<BR><INPUT TYPE=TEXT NAME="z8" VALUE="$config[8]">Соотношение просмотра/показа сайта [.5 для 2:1 ]
<BR><INPUT TYPE=TEXT NAME="z9" VALUE="$config[9]">Начисление рефералам 1 уровня (100%=1)
<BR><INPUT TYPE=TEXT NAME="z10" VALUE="$config[10]">Начисление рефералам 2 уровня (100%=1)
<BR><INPUT TYPE=TEXT NAME="z11" VALUE="$config[11]">Начисление рефералам 3 уровня (100%=1)
<BR><INPUT TYPE=TEXT NAME="z12" VALUE="$config[12]">Начисление рефералам 4 уровня (100%=1)
<BR><INPUT TYPE=TEXT NAME="z13" VALUE="$config[13]">Начисление кредитов при регистрации
<BR><INPUT TYPE=TEXT NAME="z14" VALUE="$config[14]">URL к CGI-директории скриптов
<BR><INPUT TYPE=TEXT NAME="z16" VALUE="$config[16]">E-mail администратора
<BR><INPUT TYPE=TEXT NAME="z17" VALUE="$config[17]">Бонус рефералам
<BR><INPUT TYPE="submit" VALUE="Записать">

d00der
exit;        
        
}

sub config {
open(FILE, ">config.dat");
print FILE "$in{z0}\n";
print FILE "$in{z1}\n";
print FILE "$in{z2}\n";
print FILE "$in{z3}\n";
print FILE "$in{z4}\n";
print FILE "$in{z5}\n";
print FILE "$in{z6}\n";
print FILE "$in{z7}\n";
print FILE "$in{z8}\n";
print FILE "$in{z9}\n";
print FILE "$in{z10}\n";
print FILE "$in{z11}\n";
print FILE "$in{z12}\n";
print FILE "$in{z13}\n";
print FILE "$in{z14}\n";
print FILE "$in{z15}\n";
print FILE "$in{z16}\n";
print FILE "$in{z17}\n";
close FILE;
print "<B>Записано. Войдите заново.</B>";
&showlogin
}

sub showlogin {
print<<d00der;
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<FORM METHOD="POST">
<TABLE>
<TR><TD>Пароль администратора:</TD>
<TD><INPUT TYPE="PASSWORD" NAME="password"></TD></tr>
<TR><TD><INPUT TYPE="HIDDEN" NAME="a" VALUE="l"></TD>
<TD><INPUT TYPE="Submit" NAME="Submit" VALUE="Войти"></TD></tr>
</TABLE>
</FORM>
d00der
exit;
}
sub topform {
print<<d00der;
<FORM METHOD="POST">
<TABLE>
<TR><TD>Выберите:</TD>
<TD><INPUT TYPE=RADIO NAME="by" VALUE="Всего заработано">Всего заработано<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Всего потрачено">Всего потрачено<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Остаток на счету">Остаток на счету<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Рефералов 1 уровня">Рефералов 1 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Рефералов 2 уровня">Рефералов 2 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Рефералов 3 уровня">Рефералов 3 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Рефералов 4 уровня">Рефералов 4 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Заработано рефералами 1 уровня">Заработано рефералами 1 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Заработано рефералами 2 уровня">Заработано рефералами 2 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Заработано рефералами 3 уровня">Заработано рефералами 3 уровня<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="Заработано рефералами 4 уровня">Заработано рефералами 4 уровня<BR>
</TD></TR>
<INPUT TYPE=HIDDEN NAME="num" VALUE="all"></TD></TR>
<TR><TD>Записать в файл:</TD><TD><INPUT TYPE=TEXT NAME="file" VALUE="top.html"></TD></tr>
<TR><TD><INPUT TYPE="HIDDEN" NAME="a" VALUE="topdone"><INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}"></TD>
<TD><INPUT TYPE="Submit" NAME="Submit" VALUE="Показать"></TD></tr>
</TABLE>
</FORM>

d00der
        
}

sub searchform {
print<<d00der;
<FORM METHOD="POST">
<TABLE>
<TR><TD>Строка поиска:</TD><TD><INPUT TYPE="TEXT" NAME="search"></TD></tr>
<TR><TD>Искать по:</TD><TD>    <INPUT TYPE=RADIO NAME="by" VALUE="username">Логин<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="9">Email<BR>
<INPUT TYPE=RADIO NAME="by" VALUE="url">URL</TD></tr>
<tr><TD><INPUT TYPE="HIDDEN" NAME="a" VALUE="search"><INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}"></TD>
<TD><INPUT TYPE="Submit" NAME="Submit" VALUE="Search!"></TD></tr>
</TABLE>
</FORM>

d00der
exit;        
}

sub search {
opendir(DATA, "$config[7]");
$tot = @DB = readdir(DATA);
closedir (DATA);
foreach $db (@DB) {
if ($db =~ /[^a-zA-Z0-9]/) { next; }
if ($in{by} eq "url") {
$db =~ s/\.verify//;
@URLZ = getfile("$config[7]/$db.list");
foreach $url (@URLZ) {
if ($url =~ m/$in{search}/i) { push(@RES, $db); last;}
}
next;
}
else{
if ($in{by} eq "username") { $DBE[$in{by}] = $db; }
else { @DBE = getfile("$config[7]/$db"); }
if ($DBE[$in{by}] =~ m/$in{search}/i) {
push(@RES, $db);
}
}
}
print<<d00der;
<h1>Результат:</H1>
<FORM METHOD="POST">
<INPUT TYPE=HIDDEN NAME="password" VALUE="$in{password}">
<TABLE><TR><TD>Выбрать</TD><TD>Логин</TD></tr>
d00der
foreach $db (@RES) {
if ($db =~ /[^a-zA-Z0-9]/) { next; }
print "<TR><TD><INPUT TYPE=RADIO NAME=\"selected\" VALUE=\"$db\"></TD><TD>$db</TD></tr>";
}
print<<d00der;
<TR><TD><INPUT TYPE="submit" NAME="a" VALUE="Delete"></TD><TD><INPUT TYPE="submit" NAME="a" VALUE="View"></TD></TR>
</TABLE></FORM>
d00der
exit;

}
sub topusers {
if ($in{by} eq "Всего заработано") { $z = "3"; }
elsif ($in{by} eq "Всего потрачено") { $z = "4"; }
elsif ($in{by} eq "Рефералов 1 уровня") { $z = "10"; }
elsif ($in{by} eq "Рефералов 2 уровня") { $z = "11"; }
elsif ($in{by} eq "Рефералов 3 уровня") { $z = "12"; }
elsif ($in{by} eq "Рефералов 4 уровня") { $z = "13"; }
elsif ($in{by} eq "Заработано рефералами 1 уровня") { $z = "14"; }
elsif ($in{by} eq "Заработано рефералами 2 уровня") { $z = "15"; }
elsif ($in{by} eq "Заработано рефералами 3 уровня") { $z = "16"; }
elsif ($in{by} eq "Заработано рефералами 4 уровня") { $z = "17"; }

opendir(DATA, "$config[7]");
$tot = @DB = readdir(DATA);
closedir (DATA);
foreach $db (@DB) {
if ($db =~ /[^a-zA-Z0-9]/) { next; }
@DBE = getfile("$config[7]/$db");
push(@US, $db);
if ($in{by} eq "Остаток на счету") {
$left = $DBE[3] - $DBE[4];
push(@NM, $left);
}
else { push(@NM, $DBE[$z]); }
}
$total = @US;
if ($in{num} eq "all") { $in{num} = $total; }
for ($ii=0; $ii<$total; $ii++){
for ($jj=0; $jj<$ii; $jj++){
if ($NM[$jj] < $NM[$ii]){
$UStmp = $US[$jj];
$NMtmp = $NM[$jj];
$US[$jj] = $US[$ii];
$NM[$jj] = $NM[$ii];
$US[$ii] = $UStmp;
$NM[$ii] = $NMtmp;
}
}
}
open(FILE, ">$in{file}") or dienice("Couldnt write to $in{file}: $!");
print FILE "<H1>Рейтинг пользователей - $in{by}</H1>";
print FILE "<TABLE><TR><TD>$in{by}</TD><TD>Логин</TD></TR>";
for ($ii=0; $ii<$in{num}; $ii++) {
print FILE "<TR><TD>$NM[$ii]</TD><TD>$US[$ii]</TD></TR>";
}
print FILE "</TABLE>";
close (FILE);
&printhead;
print<<d00der;
Результат:
<TABLE>
<TR><TD><B>Имя файла:</B></TD><TD>$in{file}</TD></TR>
<TR><TD><B>Выбрано:</B></TD><TD>$in{by}</TD></TR>
<TR><TD><B>Пользователей:</B></TD><TD>$in{num}</TD></TR>
</TABLE>
Щелкните <a HREF="$in{file}" target="_blank">здесь</a> для просмотра.
d00der
exit;
} 
