1176 lines
48 KiB
PHP
1176 lines
48 KiB
PHP
<?php
|
||
|
||
/* Главный игровой файл. */
|
||
|
||
use Captcha\Captcha;
|
||
use Core\Config;
|
||
use Core\Database;
|
||
use Core\Db;
|
||
use JetBrains\PhpStorm\NoReturn;
|
||
use User\Clan;
|
||
use User\UserIp;
|
||
|
||
if (!defined('GAME_VERSION')) {
|
||
require_once '_incl_data/autoload.php';
|
||
}
|
||
|
||
$code = PassGen::intCode();
|
||
Database::init();
|
||
|
||
define('IP', UserIp::get());
|
||
$u = User::start();
|
||
|
||
#[NoReturn] function gameexit(int $uid): void
|
||
{
|
||
setcookie('login', '', 0, '', Config::get('host'));
|
||
setcookie('login', '', 0);
|
||
setcookie('auth', '', 0);
|
||
Db::sql('update users set online = unix_timestamp() - 420 where id = ?', [$uid]);
|
||
exit(Config::get('exit'));
|
||
}
|
||
|
||
if (empty($u->info)) {
|
||
exit(Config::get('exit'));
|
||
}
|
||
|
||
$filter = new Filter();
|
||
$chat = new Chat();
|
||
$userclan = new Clan($u->info);
|
||
|
||
ini_set('max_execution_time', '120');
|
||
|
||
if (isset($_GET['showcode'])) {
|
||
$security = new Captcha();
|
||
$security->width(107)->height(26)->newImage();
|
||
$_SESSION['code'] = $security->getSum();
|
||
exit();
|
||
}
|
||
|
||
if (isset($u->info['joinIP']) && $u->info['joinIP'] == 1 && $u->info['ip'] != IP || isset($_GET['exit'])) {
|
||
gameexit($u->info['id']);
|
||
}
|
||
|
||
if ($u->info['online'] < time() - 60) {
|
||
$filter->setOnline($u->info['online'], $u->info['id']);
|
||
Db::sql('update users set online = unix_timestamp(), timeMain = unix_timestamp() where id = ?', [$u->info['id']]);
|
||
}
|
||
|
||
$u->stats = $u->getStats($u->info['id'], 0);
|
||
|
||
if (!isset($_COOKIE['d1c'])) {
|
||
$detect = new MobileDetect;
|
||
$deviceType = $detect->isMobile() ? $detect->isTablet() ? 'tablet' : 'phone' : 'computer';
|
||
$_COOKIE['d1c'] = $deviceType;
|
||
setcookie('d1c', $deviceType, (time() + 86400));
|
||
} else {
|
||
$deviceType = $_COOKIE['d1c'];
|
||
}
|
||
|
||
?>
|
||
|
||
<!DOCTYPE html>
|
||
<html lang="ru-RU">
|
||
<head>
|
||
<title><?= Config::get('title') ?></title>
|
||
<meta name="description" content="<?= Config::get('desc') ?>"/>
|
||
<meta name="keywords" content="<?= Config::get('keys') ?>"/>
|
||
<meta name="msapplication-config" content="browserconfig.xml"/>
|
||
<link rel="stylesheet" href="i/main.css">
|
||
<link rel="stylesheet" href="css/club.css"/>
|
||
<link rel="stylesheet" href="css/windows.css"/>
|
||
<link rel="stylesheet" href="css/hack.css"/>
|
||
<script>
|
||
window.des = 1;
|
||
|
||
<?= $userclan->isRegistered() ? "const clanImage = '" . Images::getSrc($userclan->getLogo()) . "';" : 'let clanImage;' ?>
|
||
|
||
// Нихуясебе! Это суперглобальный объект, который тянется во все файлы и все яваскриты. let\const не использовать!
|
||
var c = {
|
||
noEr: 0,
|
||
noErTmr: 0,
|
||
url: '<?= Config::get('host') ?>',
|
||
https: '<?= Config::get('https') ?>',
|
||
img: '<?= Config::get('img') ?>',
|
||
img2: '<?= Config::get('img2') ?>',
|
||
uid: <?= $u->info['id'] ?>,
|
||
login: '<?= $u->info['login'] ?>',
|
||
city: '<?= $u->info['city'] ?>',
|
||
lvl: <?= $u->info['level'] ?>,
|
||
rnd: <?= $code ?>,
|
||
filter: 0,
|
||
time: <?= time() ?>,
|
||
pl: 0,
|
||
align: <?= $u->info['align'] ?>,
|
||
clan: <?= $userclan->getId() ?>,
|
||
admin: <?= $u->info['admin'] ?>,
|
||
sound: 0,
|
||
money: <?= $u->info['money'] ?>
|
||
},
|
||
sd4key = "<?= $u->info['nextAct'] ?>",
|
||
lafstReg = {};
|
||
|
||
// Проверка на совпедение города.
|
||
function ctest(city) {
|
||
if (city !== c['city']) {
|
||
top.location = '/bk';
|
||
}
|
||
}
|
||
|
||
let enterUse = 0;
|
||
|
||
function testKey(event) {
|
||
if (event.keyCode === 10 || event.keyCode === 13) {
|
||
if (enterUse === 0) {
|
||
chat.subSend();
|
||
enterUse = 1;
|
||
setTimeout('enterUse = 0', 1000);
|
||
}
|
||
}
|
||
}
|
||
|
||
setInterval('c.time++', 1000);
|
||
</script>
|
||
<script type="text/javascript" src="js/jquery.js"></script>
|
||
<script>
|
||
$.ajaxSetup({cache: false});
|
||
$(window).error(function () {
|
||
return true;
|
||
});
|
||
|
||
//Есть зависимость в interface.js - infoMenu()!
|
||
window.iusrno = {};
|
||
|
||
function ignoreUser(u) {
|
||
if (iusrno[u] === undefined || iusrno[u] === 0) {
|
||
$('#main').attr({'src': 'main.php?friends=1&ignore=' + u + ''});
|
||
} else {
|
||
$('#main').attr({'src': 'main.php?friends=1&ignore=' + u + ''});
|
||
}
|
||
}
|
||
</script>
|
||
<script type="text/javascript" src="js/jqueryrotate.js"></script>
|
||
<script type="text/javascript" src="js/jquery.zclip.js"></script>
|
||
<script type="text/javascript" src="js/jquery.cookie.js"></script>
|
||
<script type="text/javascript" src="js/title.js"></script>
|
||
|
||
<script type="text/javascript" src="js/gameEngine.js?<?= time() ?>"></script>
|
||
<script type="text/javascript" src="js/interface.js"></script>
|
||
|
||
<script type="text/javascript" src="js/onlineList.js"></script>
|
||
<script type="text/javascript" src="js/hpregen.js"></script>
|
||
<script type="text/javascript" src="js/jquery-fireHint.js"></script>
|
||
|
||
<script type="text/javascript" src="js/trainingModals/registration/index.js"></script>
|
||
|
||
<?php if ($deviceType == 'tablet' || $deviceType == 'phone'): ?>
|
||
<style>
|
||
#touchmain {
|
||
padding: 0;
|
||
border: 0;
|
||
overflow: auto;
|
||
margin: 0;
|
||
}
|
||
</style>
|
||
<script type="text/javascript" src="js/jquery.nicescroll.js"></script>
|
||
<script>
|
||
$(document).ready(function () {
|
||
$("#touchmain").niceScroll("#main", {autohidemode: false, boxzoom: false});
|
||
});
|
||
</script>
|
||
<?php endif; ?>
|
||
|
||
<link href="./js/trainingModals/registration/trainingModalStyles.css" rel="stylesheet">
|
||
|
||
<style>
|
||
/* Additional classes examples */
|
||
.woman a {
|
||
color: #C33;
|
||
}
|
||
|
||
.woman a:hover {
|
||
color: #ff0000;
|
||
}
|
||
|
||
img {
|
||
vertical-align: bottom;
|
||
}
|
||
|
||
/* Стили с динамически-генерируемым именем для telegraf.php */
|
||
#tgf_loadingLine {
|
||
height: 18px;
|
||
width: 100%;
|
||
color: #776b4a;
|
||
background-color: #ddd5bf;
|
||
position: relative;
|
||
}
|
||
|
||
.tfpgs {
|
||
padding: 5px;
|
||
background-color: #d4cbb4;
|
||
border-bottom: 1px solid #988e73;
|
||
border-top: 1px solid #eae3d0;
|
||
cursor: default;
|
||
text-align: center;
|
||
}
|
||
|
||
.tgf_msg0 {
|
||
padding: 5px;
|
||
background-color: #c6b893;
|
||
border-bottom: 1px solid #988e73;
|
||
border-top: 1px solid #eae3d0;
|
||
cursor: default;
|
||
}
|
||
|
||
.tgf_msg1 {
|
||
padding: 5px;
|
||
background-color: #d4cbb4;
|
||
border-bottom: 1px solid #988e73;
|
||
border-top: 1px solid #eae3d0;
|
||
cursor: default;
|
||
}
|
||
|
||
.tgf_msgt {
|
||
color: #988e73;
|
||
padding-left: 2px;
|
||
padding-right: 2px;
|
||
border-right: 1px solid #b1a993;
|
||
}
|
||
|
||
.tf_btn1 {
|
||
background-color: #ddd5bf;
|
||
padding: 3px 10px;
|
||
margin: 1px;
|
||
color: #988e73;
|
||
cursor: pointer;
|
||
-moz-border-radius: 4px;
|
||
-webkit-border-radius: 4px;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
.tf_btn1:hover {
|
||
background-color: #b7ae96;
|
||
color: #ddd5bf;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.tf_btn11 {
|
||
background-color: #988e73;
|
||
padding: 3px 10px;
|
||
margin: 1px;
|
||
color: #ddd5bf;
|
||
cursor: pointer;
|
||
-moz-border-radius: 4px;
|
||
-webkit-border-radius: 4px;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
.qel0 {
|
||
display: none;
|
||
position: absolute;
|
||
z-index: 100000;
|
||
border: 4px solid #f5cc50;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* Стили с динамически-генерируемым именем для logs.php, btl_bac.php, location\btl_.php */
|
||
/* цвета команд */
|
||
.CSSteam0 {
|
||
font-weight: bold;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam1 {
|
||
font-weight: bold;
|
||
color: #6666CC;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam2 {
|
||
font-weight: bold;
|
||
color: #B06A00;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam3 {
|
||
font-weight: bold;
|
||
color: #269088;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam4 {
|
||
font-weight: bold;
|
||
color: #A0AF20;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam5 {
|
||
font-weight: bold;
|
||
color: #0F79D3;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam6 {
|
||
font-weight: bold;
|
||
color: #D85E23;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam7 {
|
||
font-weight: bold;
|
||
color: #5C832F;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam8 {
|
||
font-weight: bold;
|
||
color: #842B61;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSteam9 {
|
||
font-weight: bold;
|
||
color: navy;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.CSSvs {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.buttons:hover {
|
||
background-color: #EFEFEF;
|
||
}
|
||
|
||
.buttons:active {
|
||
color: #777777;
|
||
}
|
||
|
||
.buttons {
|
||
background-color: #E9E9E9;
|
||
}
|
||
|
||
.menutop2 {
|
||
color: #003366;
|
||
}
|
||
|
||
.menutop2:hover {
|
||
color: #446B93;
|
||
}
|
||
|
||
.klan {
|
||
font-weight: bold;
|
||
color: green;
|
||
background-color: #99FFCC;
|
||
}
|
||
|
||
.redColor {
|
||
color: #FF0000;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.borderWhite {
|
||
border: 1px solid #f2f0f0;
|
||
}
|
||
|
||
.date21 {
|
||
font-family: Courier, serif;
|
||
font-size: 8pt;
|
||
text-decoration: underline;
|
||
font-weight: normal;
|
||
color: #007000;
|
||
background-color: #00FFAA
|
||
}
|
||
|
||
|
||
.zoneCh_no {
|
||
float: left;
|
||
overflow: hidden;
|
||
height: 18px;
|
||
width: 18px;
|
||
}
|
||
|
||
.inpBtl {
|
||
color: #000000;
|
||
text-decoration: none;
|
||
background-color: #ECE9D8;
|
||
border: 1px solid #000000;
|
||
}
|
||
|
||
.zoneCh_yes {
|
||
float: left;
|
||
overflow: hidden;
|
||
height: 18px;
|
||
width: 18px;
|
||
background-color: #A9AFB1;
|
||
}
|
||
|
||
body {
|
||
background-color: #e8e8e8;
|
||
}
|
||
|
||
.st1222 {
|
||
font-size: 18px;
|
||
color: #990000;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.crop {
|
||
float: left;
|
||
overflow: hidden;
|
||
height: 18px;
|
||
width: 18px;
|
||
}
|
||
|
||
.radio_off {
|
||
margin-left: 0;
|
||
}
|
||
|
||
.radio_on {
|
||
margin-left: -18px;
|
||
}
|
||
|
||
.battle_hod_style {
|
||
border-bottom-width: 1px;
|
||
border-bottom-style: solid;
|
||
border-bottom-color: #AEAEAE;
|
||
}
|
||
|
||
.zbtn1l, .zbtn1r, .zbtn1r2, .zbtn2l, .zbtn2r, .zbtn2r2, .zbtn2r3 {
|
||
width: 9px;
|
||
height: 18px;
|
||
background-image: url(<?= Config::img() ?>/tab.png);
|
||
background-repeat: repeat-x;
|
||
}
|
||
|
||
.zbtn1l {
|
||
background-position: 0 0;
|
||
}
|
||
|
||
.zbtn1r {
|
||
background-position: -18px 0;
|
||
}
|
||
|
||
.zbtn1r2 {
|
||
background-position: 18px 0;
|
||
}
|
||
|
||
.zbtn2l {
|
||
background-position: -36px 0;
|
||
}
|
||
|
||
.zbtn2r {
|
||
background-position: -54px 0;
|
||
}
|
||
|
||
.zbtn2r2 {
|
||
background-position: -90px 0;
|
||
}
|
||
|
||
.zbtn2r3 {
|
||
background-position: 54px 0;
|
||
}
|
||
|
||
.zbtn1c, .zbtn2c {
|
||
border-bottom-width: 1px;
|
||
border-bottom-style: solid;
|
||
border-bottom-color: #000000;
|
||
cursor: default;
|
||
padding-left: 5px;
|
||
padding-right: 5px;
|
||
FONT-FAMILY: Verdana, Arial, Helvetica, Tahoma, sans-serif;
|
||
}
|
||
|
||
.zbtn1c {
|
||
background-color: #808080;
|
||
border-top-width: 1px;
|
||
border-top-style: solid;
|
||
border-top-color: #000000;
|
||
color: #FFFFFF;
|
||
}
|
||
|
||
.zbtn2c {
|
||
background-color: #D5D2C9;
|
||
color: #000000;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.proza {
|
||
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87); /* IE 5.5+*/
|
||
-moz-opacity: 0.87; /* Mozilla 1.6 и ниже */
|
||
opacity: 0.87; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9+ */
|
||
}
|
||
|
||
.nobtn12 {
|
||
border: 0;
|
||
bottom: 80px;
|
||
left: 225px;
|
||
position: absolute;
|
||
}
|
||
|
||
.nobtn12:active {
|
||
bottom: 79px;
|
||
}
|
||
|
||
.inpreg1 {
|
||
padding: 2px;
|
||
font-size: 14px;
|
||
color: #003144;
|
||
background-color: #f6f4ec;
|
||
border: 1px solid #d1cdb8;
|
||
width: 178px;
|
||
}
|
||
|
||
.inpreg2 {
|
||
font-size: 12px;
|
||
color: #003144;
|
||
background-color: #f6f4ec;
|
||
border: 1px solid #d1cdb8;
|
||
}
|
||
|
||
#errorreg {
|
||
position: absolute;
|
||
width: 680px;
|
||
top: 0;
|
||
left: 0;
|
||
text-align: center;
|
||
color: red;
|
||
font-weight: bold;
|
||
}
|
||
|
||
#qsst {
|
||
position: absolute;
|
||
z-index: 10000000;
|
||
cursor: default;
|
||
display: none;
|
||
}
|
||
|
||
#onbon {
|
||
position: absolute;
|
||
z-index: 100;
|
||
cursor: default;
|
||
display: none;
|
||
bottom: 30px;
|
||
left: 18px;
|
||
}
|
||
|
||
#mini_qsst {
|
||
position: absolute;
|
||
z-index: 100;
|
||
cursor: default;
|
||
display: none;
|
||
bottom: 10px;
|
||
right: 18px;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div style="display:none" class="qel0" id="qel0"></div>
|
||
<noscript>В вашем браузере отсутствует поддержка <strong>javascript</strong></noscript>
|
||
|
||
<script>
|
||
window.onLoad = function () {
|
||
bodyLoaded();
|
||
chat.sendMsg(["new", "<?=time()?>", "1", "", "<?=$u->info['login']?>", "global:<b style='background-color:#ffcccc'> Приветствуем в игре, не забываем поздороваться и прочесть новости проекта! <a href='/n' target='_blank'>читать новости</a> </b>", "red", "1", "1", "0"]);
|
||
}
|
||
if (window.top !== window.self) {
|
||
document.write = "";
|
||
window.top.location = window.self.location;
|
||
setTimeout(function () {
|
||
document.body.innerHTML = 'Ошибка доступа.';
|
||
}, 500);
|
||
window.self.onload = function () {
|
||
document.body.innerHTML = 'Ошибка доступа.';
|
||
};
|
||
}
|
||
|
||
function cc(el) {
|
||
$(window).resize(function () {
|
||
$(el).css({
|
||
position: 'absolute',
|
||
left: ($(document).width() - $(el).outerWidth()) / 2,
|
||
top: ($(document).height() - $(el).outerHeight()) / 2
|
||
});
|
||
});
|
||
$(window).resize();
|
||
}
|
||
|
||
const lasts = [-1, -1];
|
||
|
||
function myexpLineTop27(e1, e2) {
|
||
$('#exp23mkrtkm').attr('title', "Опыт персонажа" + "\n" + e1 + " / " + e2);
|
||
$('#exp23mkrtkm').html(Math.ceil(e1 / e2 * 100) + '%!');
|
||
if (Math.ceil(e1 / e2 * 100) < 1) {
|
||
$('#myexplin233').attr('width', '1%');
|
||
} else {
|
||
if (lasts[1] < e2) {
|
||
$('#myexplin233').css('width', '1%');
|
||
}
|
||
if (lasts[0] !== e1 || lasts[1] !== e2) {
|
||
$('#myexplin233').animate({'width': Math.ceil(e1 / e2 * 100) + '%'}, 3000);
|
||
}
|
||
}
|
||
lasts[0] = e1;
|
||
lasts[1] = e2;
|
||
}
|
||
|
||
let smlk1 = 0;
|
||
|
||
function smiles1load() {
|
||
if (smlk1 === 0) {
|
||
$('#btnsmlrz').html('<small> Общие смайлики </small>');
|
||
smlk1 = 1;
|
||
$('#smilesDiv').hide();
|
||
$('#smilesDiv2').show();
|
||
$('#smilesDiv3').hide();
|
||
} else {
|
||
$('#btnsmlrz').html('<small> Личные смайлики </small>');
|
||
smlk1 = 0;
|
||
$('#smilesDiv').show();
|
||
$('#smilesDiv2').hide();
|
||
$('#smilesDiv3').hide();
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<div id="qsst"></div>
|
||
<div id="ttl" class="ttl_css" style="display:none;z-index:1111;"></div>
|
||
<div id="nfml" style="display:none;position:absolute;"></div>
|
||
<div id="persmenu" style="display:none;z-index:1110;"></div>
|
||
<div id="windows" style="position:absolute;z-index:1101;"></div>
|
||
<div id="wupbox" onmouseup="win.WstopDrag()" onmousemove="win.WmoveDrag(event)" onselectstart="return false"></div>
|
||
<div id="chconfig">
|
||
<div style="font-weight: bold; text-align: center;">Настройки чата</div>
|
||
<img title="Эпическая линия (o_O)" src="<?= Config::img() ?>/1x1.gif" alt="hr"><br>
|
||
Скорость обновления: <SELECT id="chcf0">
|
||
<OPTION value='-1'>никогда</OPTION>
|
||
<OPTION value='1'>15 сек.</OPTION>
|
||
<OPTION selected value='2'>30 сек.</OPTION>
|
||
<OPTION value='3'>1 мин.</OPTION>
|
||
<OPTION value='4'>5 мин.</OPTION>
|
||
</SELECT><br>
|
||
<div>Сортировка списка онлайн: <SELECT id="chcf8">
|
||
<OPTION value='0' selected>По логину</OPTION>
|
||
<OPTION value='1'>По уровню</OPTION>
|
||
<OPTION value='2'>По склоности</OPTION>
|
||
<OPTION value='3'>По клану</OPTION>
|
||
</SELECT>
|
||
<input name="chcf9" type="checkbox" id="chcf9" value="1"><small>По убыванию</small></div>
|
||
<div><input name="chcf12" type="checkbox" id="chcf12" value="1"> Экономия трафика</div>
|
||
<div style="display:<?php
|
||
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
|
||
echo '';
|
||
} else {
|
||
echo 'none;';
|
||
} ?>"><input name="chcf7" type="checkbox" id="chcf7" value="1"> <span
|
||
title="Получать сообщения от персонажей на которых наложено заклятие молчания">Сообщения с молчанкой</span>
|
||
</div>
|
||
<img title="Эпическая линия (o_O)" src="<?= Config::img() ?>/1x1.gif" alt="hr">
|
||
<div> <span><a href="javascript:void(0)" onclick="chat.ignorListOpen();chconf();">Список игнорируемых</a></span>
|
||
</div>
|
||
</div>
|
||
<!-- ресайзы -->
|
||
<div id="actionDiv" style="position:absolute;"></div>
|
||
<div id="reline1" onselectstart="return false">
|
||
<img src="<?= Config::img() ?>/1x1.gif" width="9" height="4" style="float:left; display:block; position:absolute; background-image:url(<?= Config::img() ?>/i/lite/_top_24.gif);" alt="">
|
||
<img src="<?= Config::img() ?>/1x1.gif" width="10" height="4" style="float:right; display:block; background-image:url(<?= Config::img() ?>/i/lite/_top_28.gif);" alt="">
|
||
</div>
|
||
<div id="reline2" onselectstart="return false"></div>
|
||
<!-- ресайзы -->
|
||
<div id="upbox" onselectstart="return false"></div>
|
||
<div id="mainHeader" style="position:absolute; top:0; left:0; height:37px; width:100%;"
|
||
onselectstart="return false">
|
||
<div title="Новая почта"
|
||
style="display:none; position:absolute; left: 198px; top: 13px; width:24px; height:15px; background-image:url(<?= Config::img() ?>/i/mail2.gif);"
|
||
class="postdiv" id="postdiv"></div>
|
||
<div style="background: url(<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_11.gif) repeat-x bottom; ">
|
||
<table cellspacing="0" cellpadding="0" style="background: url('<?= Config::img() ?>/i/lite/top_lite_cap_03.gif') repeat-x top; border: 0; width: 100%;">
|
||
<tr>
|
||
<td style="text-align: left">
|
||
<img src="<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_01.gif" width="64" height="14" class="db" style="padding-left:15px;"/>
|
||
</td>
|
||
<td class="main_text" style="position: relative; width:225px; text-align: right;">
|
||
<table style="width: 565px; border: 0;" cellspacing="0" cellpadding="0">
|
||
<tr style="vertical-align: bottom; text-align: center;">
|
||
<td style="width: 31px; height: 14px;">
|
||
<img class="db" height="14" src="<?= Config::img() ?>/i/lite/mennu112_06_lite.gif" width="31" alt="">
|
||
</td>
|
||
<td style="text-align: center;">
|
||
<table style="width: 100%; height: 14px; border: 0; background-image: url('<?= Config::img() ?>/i/lite/mennu112_06.gif')" cellspacing="0" cellpadding="0">
|
||
<tr style="text-align: center;">
|
||
<td id="el1" class="main_text" onClick="this.style.backgroundColor='#404040'; this.style.color='#FFFFFF'; showtable('1');" style="text-align: center;">
|
||
Знания
|
||
</td>
|
||
<td style="width: 1px;">
|
||
<img class="db" height="11" src="<?= Config::img() ?>/i/lite/mennu112_09.gif" width="1" alt="">
|
||
</td>
|
||
<td id="el2" class="main_text"
|
||
onClick="this.style.backgroundColor='#404040'; this.style.color='#FFFFFF'; showtable('2');" style="background:#404040; color:#FFFFFF; text-align: center;">
|
||
Персонаж
|
||
</td>
|
||
<td style="width: 1px;">
|
||
<img class="db" height="11" src="<?= Config::img() ?>/i/lite/mennu112_09.gif" width="1" alt="">
|
||
</td>
|
||
<td id="el3" class="main_text" onClick="if(confirm('Выйти из игры?')){ top.location = '/bk?exit&rnd=<?= $code ?>'; }" style="text-align: center;">
|
||
Выход
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td style="width: 38px;">
|
||
<img class="db" height="14" src="<?= Config::img() ?>/i/lite/mennu112_04_lite.gif" width="37" alt="">
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: left">
|
||
<img style="display:block; float:left; margin-left:17px;" src="<?= Config::img() ?>/i/lite/top_lite_cap_07.gif" width="15" height="17" alt="">
|
||
<img src="<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_08.gif" width="152" height="17" class="db" alt="">
|
||
</td>
|
||
<td style="text-align: right;">
|
||
<table cellspacing="0" cellpadding="0" style="background-image:url('<?= Config::img() ?>/i/lite/top_lite_cap_15.gif'); border: 0; width: 565px;">
|
||
<tr>
|
||
<td style="text-align: right;" class="menutop">
|
||
<table style="width: 100%; border: 0;" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td style="width: 20px;">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/top_lite_13.gif" width="20" height="17" alt="">
|
||
</td>
|
||
<td style="font-size:10px; text-align: center; vertical-align: top; background-image: url('<?= Config::img() ?>/i/lite/top_lite_low_15.gif')">
|
||
<span style="display:none; text-align:center;" id="menu1">
|
||
<a href="/main.php?referals" target="main" class="menutop" style="color:green">Реферал</a> |
|
||
<a href="/forum/" target="_blank" class="menutop">Форум</a> |
|
||
<a href="/encicl/law.html" target="_blank" class="menutop" style="color: red">Законы</a> |
|
||
<a href="/rating_pers" target="_blank" class="menutop">Рейтинг</a> |
|
||
<a href="/rating_clans" target="_blank" class="menutop">Кланы</a> |
|
||
<a href="/main.php?security" target="main" class="menutop" style="color:green">Безопасность</a> |
|
||
<a href="/news_script/lib/pisheri.html" target="_blank" class="menutop" style="color: darkgreen">Всё о пещерах</a>
|
||
</span>
|
||
<span style="display:; text-align:center;" id="menu2">
|
||
<a href="/main.php?inv=1&rn=<?= $code ?>" target="main" class="menutop">Инвентарь</a> |
|
||
<span style="display:; text-align:center;" id="menu2">
|
||
<a href="/main.php?titul" target="main" class="menutop" style="color:green"> Достижения</a> |
|
||
<a href="/main.php?skills=1&side=5" target="main" class="menutop">Умения</a> |
|
||
<a href="/main.php?zayvka=1" target="main" class="menutop">Поединки</a> |
|
||
<a href="/forum/?read=10957&rnd=1" target="_blank" class="menutop" style="color:red">Всем игрокам</a> |
|
||
<a href="/n" target="_blank" class="menutop" style="color:blue">Новости</a> |
|
||
<a href="/settings" target="_blank" class="menutop">Анкета</a>
|
||
</span>
|
||
</td>
|
||
<td style="width: 22px;">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/top_lite_18.gif" width="22" height="17" alt="">
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<table class="deleteStyles" style="width: 100%; border: 0;" cellspacing="0" cellpadding="0">
|
||
<tr>
|
||
<td style="width: 15px; height: 6px;">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/_lit_20.gif" width="15" height="6" alt=""></td>
|
||
<td style="background-image: url('<?= Config::img() ?>/i/lite/_top_20s.gif')"></td>
|
||
<td style="width: 24px; height: 6px;">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/_lit_27.gif" width="24" height="6" alt="">
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<!-- -->
|
||
</div>
|
||
<table id="globalMain" style="width: 100%; height: 100%; border: 0;" cellspacing="0" cellpadding="0">
|
||
<tr id="headerTd">
|
||
<td style="width: 9px; background-color: #d6d6d6;"></td>
|
||
<td style="background-color: #d6d6d6;"> </td>
|
||
<td style="width: 12px; background-color: #d6d6d6;"></td>
|
||
</tr>
|
||
<tr id="sectionTd">
|
||
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_24.gif')"></td>
|
||
<td style="vertical-align: top; background-color: #e2e0e0;" id="main_td">
|
||
<div id="touchmain" style="margin-top:3px;">
|
||
<iframe id="main" name="main" src="main.php" style="display:block;padding:0;margin:0;width:100%;border:0;" scrolling="auto"></iframe>
|
||
</div>
|
||
</td>
|
||
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_28.gif')"></td>
|
||
</tr>
|
||
<tr class="allChat">
|
||
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_24.gif')"></td>
|
||
<td id="chat" style="vertical-align: top; height: 40%; background-color: #eee;">
|
||
<table cellspacing="0" cellpadding="0" style="border-top:1px solid #CCCCCC; width: 100%; height: 100%; border: 0;">
|
||
<tr>
|
||
<td id="chat_block" style="position:relative;border-top:1px solid #808080; vertical-align: top;">
|
||
<!-- display:block;-->
|
||
<div id="mini_qsst" onClick='qn_slk()' style="cursor:pointer"></div>
|
||
<div id="onbon"></div>
|
||
<div id="chat_menus" unselectable="on" onselectstart="return false;"
|
||
style="display:block;position:absolute; right:0; top:3px; padding-right:20px; height:18px; text-align:right; white-space:nowrap;">
|
||
<!-- -->
|
||
<table style="margin-top:-3px; border: 0; text-align: right;" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td>
|
||
<div id="chat_menu" style="text-align:right; white-space:nowrap;"></div>
|
||
</td>
|
||
<td style="display:none; width: 3px;" id="scroll_none"></td>
|
||
</tr>
|
||
</table>
|
||
<!-- -->
|
||
</div>
|
||
|
||
<div id="ttSmiles" onselectstart="return false" style="display:none;z-index:1100;">
|
||
<div id="smilesDiv">Загрузка смайликов</div>
|
||
<div id="smilesDiv2" style="display:none">
|
||
<?php
|
||
echo '<small>Новые смайлики возможно купить в <a href="/ekr.php" target="_blank">Коммерческом Отделе</a><br>Обновите страницу, если купленный смайлик не отобразился</small><hr>';
|
||
//
|
||
if (empty($u->info['add_smiles'])) { ?>
|
||
<div style="text-align: center; color: grey;">У вас нет личных смайликов</div>
|
||
<?php
|
||
} else {
|
||
$ex = explode(',', $u->info['add_smiles']);
|
||
$i = 0;
|
||
while ($i < count($ex)) {
|
||
echo '<img src="<?= Config::img() ?>/i/smile/' . $ex[$i] . '.gif" title=":' . $ex[$i] . ':" style="cursor:pointer" onclick="chat.addSmile(\'' . $ex[$i] . '\');"> ';
|
||
$i++;
|
||
}
|
||
} ?>
|
||
</div>
|
||
<div id="smilesDiv3" style="display:none"></div>
|
||
<div style="padding-left:5px; padding-right:5px; text-align: center;">
|
||
<button class="btn fl" style="display:none; padding:0; margin: 5px 2px 0 0;" disabled="disabled">
|
||
<small> Купить </small></button>
|
||
<button class="btn fl" style="padding:0; margin: 5px 0 0;" id="btnsmlrz" onClick="smiles1load();">
|
||
<small> Личные смайлики </small></button>
|
||
<button class="btn fr" style="padding:0; margin: 5px 0 0;" onClick="chat.lookSmiles()">
|
||
<small> Закрыть </small></button>
|
||
</div>
|
||
</div>
|
||
<div id="chat_list" style="cursor:default;">
|
||
<div id="canals">
|
||
<div id="canal5"></div>
|
||
<div id="canal4"></div>
|
||
<div id="canal2"></div>
|
||
<div id="canal7"></div>
|
||
<div id="canal3"></div>
|
||
<div id="canal6" style="display:none;"></div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
<td style="border-left:2px solid #CCCCCC;border-top:1px solid #808080; background-color: #faf2f2; vertical-align: top; width: 350px;" id="online">
|
||
|
||
<div id="online_list" style="cursor:default;">
|
||
<div style="margin-top:5px; text-align: center;">
|
||
<button class="btn" id="robtn" onClick="chat.reflesh()">Обновить</button>
|
||
<button TYPE=button class="btn"
|
||
onClick="window.open('/monitoring', 'monitoring', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')"
|
||
title="Монитор заявок\турниров">
|
||
<img src="<?= Config::img() ?>/i/fighttype0.gif" width="20" height="20" alt="fight type">
|
||
</button>
|
||
</div>
|
||
<span class="db" style="padding:0 0 8px 0;font-size: 10pt; color:#8f0000;"><b id="roomName"></b></span>
|
||
<div id="onlist"></div>
|
||
<div style="padding:5px;margin-top:5px;">
|
||
<div>
|
||
<input type="checkbox" value="1" checked id="autoRefOnline">
|
||
<label for="autoRefOnline">Обновлять автомат.</label>
|
||
</div>
|
||
<div>
|
||
<input name="chcf10" type="checkbox" id="chcf10" checked value="0">
|
||
<label for="chcf10">Показать всех игроков</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_28.gif');" class="deleteStyles"></td>
|
||
</tr>
|
||
<tr class="allChat">
|
||
<td style="vertical-align: bottom; height: 30px;" class="deleteStyles">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/bkf_l_r1_02.gif" width="9" height="30" alt=""></td>
|
||
<td style="background-color: #e9e9e9; background-image: url('<?= Config::img() ?>/i/buttons/chat_bg.gif'); height: 30px;">
|
||
<table style="width: 100%; border: 0; height: 26px;" cellspacing="0" cellpadding="0">
|
||
<tr>
|
||
<td style="width: 30px" id="chatLeftIcon">
|
||
<img class="db" src="<?= Config::img() ?>/b___.gif" width="30" height="30" title="Чат" alt="Чат">
|
||
</td>
|
||
<td style="width: 100px; text-align: center; display:none;" id="trader1">
|
||
<div id="trader" style="border:1px solid #CCCCCC;padding:2px; margin-left:-2px; width:90%;"
|
||
class="klan"><small id="moneyGM"><b>Торговый чат</b></small></div>
|
||
</td>
|
||
<td>
|
||
<input type="hidden" name="trader" id="trader_val" value="0">
|
||
<input onmouseup="top.chat.inObj=undefined;" type="text" name="textmsg" id="textmsg" maxlength="240" onKeyPress="top.testKey(event)"
|
||
style="width:100%;font-size:11pt;margin-bottom:2px; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px;"/>
|
||
</td>
|
||
<td style="width: 6px"> </td>
|
||
<td style="width: 30px" id="sendButtonTextMsg">
|
||
<img onClick="chat.subSend();" src="<?= Config::img() ?>/1x1.gif" class="db cp chatBtn2_1" alt=""></td>
|
||
<td style="width: 5px"></td>
|
||
<td style="width: 30px">
|
||
<button onClick="chat.voiceMessage()" title="Записать голосовое сообщение" id="record">
|
||
Запись
|
||
</button>
|
||
</td>
|
||
<td style="width: 30px">
|
||
<img onClick="chat.clear();" class="db cp" title="Очистить окно чата"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn3.gif" alt="Очистить окно чата">
|
||
</td>
|
||
<td style="width: 10px"> </td>
|
||
<td style="width: 30px">
|
||
<img id="chbtn8" class="db cp chatBtn8_1" onClick="chat.lookSmiles()" title="Смайлики"
|
||
src="<?= Config::img() ?>/1x1.gif" alt="Смайлики">
|
||
</td>
|
||
<td style="width: 16px; background-color: #bab7b3;">
|
||
<img src="<?= Config::img() ?>/i/buttons/chat_explode.gif" width="16" height="30" class="db" alt="">
|
||
</td>
|
||
<td style="width: 30px">
|
||
<img onclick="top.getUrl('main','main.php?inv=1&rnd='+c.rnd);" class="db cp" title="Инвентарь"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn13.gif" alt="Инвентарь">
|
||
</td>
|
||
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?transfer=1&rnd='+c.rnd);" class="db cp" title="Передачи"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn16.gif" alt="Передачи">
|
||
</td>
|
||
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?add_eff=1&rnd='+c.rnd);" class="db cp" title="Обкаст"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn151.gif" alt="Обкаст">
|
||
</td>
|
||
<?php
|
||
if ($u->info['align'] == 50 || $u->info['admin'] > 0) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?alhp=1&rnd='+c.rnd);" class="db cp"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn20.gif" alt="">
|
||
</td>
|
||
<?php
|
||
}
|
||
if ($u->info['align'] >= 1.1 && $u->info['align'] < 2) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?light=1&rnd='+c.rnd);" class="db cp" title="Панель Паладина"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn15.gif" alt="Панель паладина">
|
||
</td>
|
||
<?php
|
||
}
|
||
if ($u->info['vip'] > time()) { ?>
|
||
<!-- VIP -->
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?vip=1&rnd='+c.rnd);" class="db cp"
|
||
src="<?= Config::img() ?>/i/buttons/a___ang17.gif"
|
||
onMouseOver="top.hi(this,'<b>Панель Благодати Ангела <?= $u->info['login'] ?></b>',event,3,0,1,0,'');"
|
||
onMouseOut="top.hic();" onMouseDown="top.hic();" alt="">
|
||
</td>
|
||
|
||
<?php
|
||
} ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?friends=1&rnd='+c.rnd);" class="db cp" title="Друзья"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn12.gif" alt="Друзья">
|
||
</td>
|
||
<?php
|
||
if ($u->info['align'] >= 1 && $u->info['align'] < 2) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель света"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn15.gif" alt=""></td>
|
||
<?php
|
||
}
|
||
if ($u->info['align'] >= 3 && $u->info['align'] < 4) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель тьмы"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn10.gif" alt="Панель тьмы">
|
||
</td>
|
||
<?php
|
||
}
|
||
if ($u->info['align'] == 7) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель нейтралитета"
|
||
src="<?= Config::img() ?>/i/buttons/a___neutral.gif" alt="Панель нейтралитета">
|
||
</td>
|
||
<?php
|
||
}
|
||
?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?clan=1&rnd='+c.rnd);" class="db cp" title="Клан"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn14.gif" alt="Клан">
|
||
</td>
|
||
<?php
|
||
if ($u->info['admin'] > 0) { ?>
|
||
<td style="width: 30px">
|
||
<img onClick="top.getUrl('main','main.php?admin=1&rnd='+c.rnd);" class="db cp"
|
||
src="<?= Config::img() ?>/i/buttons/chatBtn19.gif" alt="Админка">
|
||
</td>
|
||
<?php
|
||
} ?>
|
||
<td style="width: 30px">
|
||
<img onclick="window.open('ekr.php')" class="db cp" title="Покупка ЕвроКредитов"
|
||
src="<?= Config::img() ?>/i/buttons/a___nak.gif" alt="Покупка ЕвроКредитов">
|
||
</td>
|
||
|
||
<!-- время -->
|
||
<td style="width: 71px" id="tdDate">
|
||
<button id="contentDate"></button>
|
||
</td>
|
||
<!-- время -->
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td style="text-align: right; background-color: #d6d6d6; height: 30px;" class="deleteStyles">
|
||
<img class="db" src="<?= Config::img() ?>/i/lite/bkf_l_r1_06.gif" width="9" height="30" alt="">
|
||
</td>
|
||
</tr>
|
||
<tr id="deleteFooter">
|
||
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"></td>
|
||
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"><!-- iFrames zone --></td>
|
||
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"></td>
|
||
</tr>
|
||
</table>
|
||
<p id="timerVoiceMess" hidden></p>
|
||
|
||
<!-- скрипт -->
|
||
<script>
|
||
// Часы
|
||
let intervalClear;
|
||
let timeoutClear;
|
||
let $button = document.getElementById("contentDate");
|
||
let $div = document.createElement("div");
|
||
$div.id = "divFullDate"
|
||
document.body.append($div)
|
||
$div.hidden = true
|
||
|
||
let date = new Date();
|
||
let currentSec = (60 - date.getUTCSeconds()) * 1000;
|
||
|
||
asyncInterval()
|
||
|
||
async function asyncInterval() {
|
||
|
||
timeMSK()
|
||
|
||
let promise = await new Promise((resolve, reject) => {
|
||
setTimeout(() => {
|
||
timeMSK()
|
||
resolve("идём дальше")
|
||
}, currentSec)
|
||
});
|
||
|
||
setInterval(() => timeMSK(), 60000)
|
||
}
|
||
|
||
function timeMSK(hover = false) {
|
||
let mskTime = (new Date).toLocaleTimeString('ru-RU', {timeZone: 'Europe/Moscow'});
|
||
$button.textContent = mskTime.match(/\d{2}:\d{2}/i)[0]
|
||
|
||
if (hover) {
|
||
let fullDate = (new Date).toLocaleDateString('ru-RU', {timeZone: 'Europe/Moscow'});
|
||
let [day, month, year] = fullDate.match(/\b\d{2,4}\b/gi);
|
||
let objDate = {year: +year, month: +month - 1, day: +day};
|
||
let todayDay = new Date(objDate.year, objDate.month, objDate.day).getUTCDay();
|
||
// In objDate.day make ++
|
||
return {
|
||
date: divFullDateTime(objDate),
|
||
time: mskTime,
|
||
redDay: todayDay === 5 || todayDay === 6 || todayDay === 0
|
||
}
|
||
}
|
||
}
|
||
|
||
function divFullDateTime({year, month, day}) {
|
||
let strMonth = "";
|
||
|
||
switch (month) {
|
||
case 0:
|
||
strMonth = "Января";
|
||
break
|
||
case 1:
|
||
strMonth = "Февраля";
|
||
break
|
||
case 2:
|
||
strMonth = "Марта";
|
||
break
|
||
case 3:
|
||
strMonth = "Апреля";
|
||
break
|
||
case 4:
|
||
strMonth = "Мая";
|
||
break
|
||
case 5:
|
||
strMonth = "Июня";
|
||
break
|
||
case 6:
|
||
strMonth = "Июля";
|
||
break
|
||
case 7:
|
||
strMonth = "Августа";
|
||
break
|
||
case 8:
|
||
strMonth = "Сентября";
|
||
break
|
||
case 9:
|
||
strMonth = "Октября";
|
||
break
|
||
case 10:
|
||
strMonth = "Ноября";
|
||
break
|
||
case 11:
|
||
strMonth = "Декабря";
|
||
break
|
||
default:
|
||
break
|
||
}
|
||
return `${day} ${strMonth} ${year}`
|
||
}
|
||
|
||
function everySecondsUpdate() {
|
||
let {date, time, redDay} = timeMSK(true);
|
||
|
||
$div.innerHTML = `<p>${time}</p><p id="dateRed">${date}</p>`
|
||
|
||
document.getElementById("dateRed").style.color = redDay ? "red" : ""
|
||
}
|
||
|
||
$button.addEventListener("mouseover", function () {
|
||
|
||
timeoutClear = setTimeout(() => {
|
||
|
||
$div.hidden = false
|
||
let $trTop = $button.parentElement.getBoundingClientRect().top;
|
||
let $tdLeft = document.getElementById("tdDate").offsetLeft;
|
||
|
||
$div.style.top = `${$trTop - ($button.offsetHeight * 2.1)}px`
|
||
$div.style.left = `${($tdLeft - ($div.offsetWidth - $button.offsetWidth)) + 10}px`
|
||
|
||
everySecondsUpdate()
|
||
|
||
intervalClear = setInterval(() => everySecondsUpdate(), 1000)
|
||
}, 550)
|
||
})
|
||
|
||
$button.addEventListener("mouseout", function () {
|
||
$div.hidden = true
|
||
clearInterval(intervalClear)
|
||
clearTimeout(timeoutClear)
|
||
})
|
||
</script>
|
||
|
||
<?php
|
||
if ($u->info['active'] != '' && $u->info['mail'] != 'No E-mail') {
|
||
Db::sql('update stats set active = default where id = ?', [$u->info['id']]);
|
||
}
|
||
?>
|
||
<script>
|
||
startEngine();
|
||
chat.testTimer(false);
|
||
setTimeout('chat.nozpros=0;', 20);
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|