<!-- Разделение ников пользователей в теме запятой -->
<script>$('#topic-users-in a').prev('a').after(',');</script>
<!--конец-->
<!----------------------- ЛИЧНАЯ СТРАНИЦА ------------------------->
<script type="text/javascript">
const gridConfigs = [
{ container: 'ppcoupons div', item: 'coupon', min: 6, emptySrc: 'https://forumstatic.ru/files/001c/aa/0d/21106.png' },
{ container: 'ppplaques div', item: 'plaque', min: 8, emptySrc: 'https://forumstatic.ru/files/001c/aa/0d/77520.png' },
{ container: 'ppbgs div', item: 'img:not(._empty)', min: 12, emptySrc: 'https://forumstatic.ru/files/001c/aa/0d/84430.png' },
{ container: 'ppgifts div', item: 'gift', min: 5, emptySrc: 'https://forumstatic.ru/files/001c/aa/0d/30402.png' },
{ container: 'achievements div', item: 'achiev', min: 6, emptySrc: 'https://forumstatic.ru/files/001c/aa/0d/84762.png' }
];
function fillEmptySlots(modalNode) {
gridConfigs.forEach(cfg => {
const container = modalNode.querySelector(cfg.container);
if (!container) return;
const currentItems = container.querySelectorAll(cfg.item).length;
const emptySlotsNeeded = cfg.min - currentItems;
for (let i = 0; i < emptySlotsNeeded; i++) {
const emptyImg = document.createElement('img');
emptyImg.className = '_empty';
emptyImg.src = cfg.emptySrc;
container.appendChild(emptyImg);
}
});
}
$(document).ready(function () {
$(".modal-link").click(function (e) {
e.preventDefault();
e.stopPropagation();
let pageId = $(this).attr("id");
let modal = $("#charppage");
let container = modal.find(".modal_wrap");
container.html('<div style="text-align:center; padding: 40px;">Загрузка данных...</div>');
modal.removeClass("closing").addClass("open");
$(".reveal-modal-bg").show();
container.load("/pages/" + pageId + " .charppage", function(response, status, xhr) {
if (status === "error") {
container.html('<div style="text-align:center; padding: 40px; color: red;">Ошибка: контент не найден!</div>');
} else {
fillEmptySlots(modal[0]);
}
});
});
$(document).on("click", "#charppage .close-reveal-modal", function (e) {
e.preventDefault();
e.stopImmediatePropagation();
let modal = $("#charppage");
modal.removeClass("open").addClass("closing");
$(".reveal-modal-bg").fadeOut(400);
setTimeout(() => {
modal.removeClass("closing");
modal.find(".modal_wrap").empty();
}, 400);
});
$(document).on("click", ".reveal-modal-bg", function(e) {
$("#charppage .close-reveal-modal").click();
});
});
</script>
<!-- аватар для гостя и по умолчанию --------------------------------------------------------------->
<script type="text/javascript">
var DefAvtr="https://forumstatic.ru/files/001c/91/4b/11856.png"; //Для Игрока
var GuestAvtr="https://forumstatic.ru/files/001c/91/4b/11856.png";//Для Гостя
$("li.pa-title").each(function(){
var b = DefAvtr;if($(this).text()=='Гость')b = GuestAvtr;
var s='<li class="pa-avatar item2"><img class="defavtr" src="'+b+'" alt="Аватар"/></li>';
if (($(this).parents(".post-author").find("li.pa-avatar").length)==0){$(this).after(s);};});
</script>
<!-- стрелки вверх-вниз ------------------------------------------------------------------------------>
<div class="go-up" id='ToTop'></div>
<div class="go-down" id='OnBottom'></div>
<script type="text/javascript">
$(function(){
if ($(window).scrollTop()>="250") $("#ToTop").fadeIn("slow")
$(window).scroll(function(){
if ($(window).scrollTop()<="250") $("#ToTop").fadeOut("slow")
else $("#ToTop").fadeIn("slow")
});
if ($(window).scrollTop()<=$(document).height()-"999") $("#OnBottom").fadeIn("slow")
$(window).scroll(function(){
if ($(window).scrollTop()>=$(document).height()-"999") $("#OnBottom").fadeOut("slow")
else $("#OnBottom").fadeIn("slow")
});
$("#ToTop").click(function(){$("html,body").animate({scrollTop:0},"slow")})
$("#OnBottom").click(function(){$("html,body").animate({scrollTop:$(document).height()},"slow")})
});</script>
<!-- Ссылка на новые сообщения -->
<script type="text/javascript">
$('#pun-ulinks ul').prepend('<li class="item1"><a href="/search.php?action=show_new">Новые сообщения</a></li>');
</script>
<!-- Исключение из "Цитировать" подписи и "отредактировано" © Deff -->
<script type="text/javascript"> (function(){ var p =[];
$('.post').find('.pl-quote').click(function(){
p[0] = $(this).parents('.post').find('.lastedit');
p[1] = $(this).parents('.post').find('.post-sig');
p[2] = p[0].html();p[3] = p[1].html();
p[0].html('');p[1].html('');
setTimeout(function(){p[0].html(p[2]);p[1].html(p[3])},600);});
}());
</script>
<!-- Кликабельность ника в постах Гостя --><script>$(".post[data-group-id=3]").find(".pa-author").html(function(){return this.innerHTML.replace(/(<.+>)(.+)$/,'$1<a href="javascript:to(\'$2\')">$2</a>')});</script>
<!--Конец -->
<!-- ТЕГ абзаца - [indent] © Deff -->
<style>#button-indent {background:transparent;}</style>
<script type="text/javascript">(function(){ var b = '[indent]';
$("#button-strike").after('<td id="button-indent" title="Отступы"><img src="/i/blank.gif" onclick="smile(\''+b+'\')"></td>');
var indent = '<span style="display:inline-block;margin:1em 2.1em;"></span>'; /*удвоенные Отступы сверху и слево*/
$('.post-content p:contains("'+b+'")').each(function(){ $(this).html( $(this).html().replace(/\[indent\]/gm,indent));});}());
</script>
<!-- Всплывающее окно цитирования © kozhilya, Deff -->
<div id="Bubble" style="margin-left:0px;margin-top:-12px;display:none;position:fixed;z-index:100000"><span></span></div>
<script>
function PopUpPL_Quote(){
var fresh=false, SSsq='<div></div>';
$("#Bubble").prependTo("body");
$('.post[id]').mouseup(function(pos){
if((window.getSelection && !getSelection().isCollapsed) && !(fresh)){
$("#Bubble").css({
'left': (pos.clientX + 5) + 'px',
'top': (pos.clientY + 4) + 'px',
'display': 'none'
});
$("#Bubble span").html('<a href="javascript:$(\'#p'+$(this).attr('id').substr(1)+' .pl-quote a\').click();'+$(this).find("li.pl-quote a:first").attr("href")+';void(0)">'+SSsq+'</a>');
$("#Bubble").fadeIn(200);
fresh=true;
} else if(fresh){
fresh=false;
}
});
$('#Bubble span').click(function(){
$('#Bubble').hide(200);
fresh=false;
});
$('.post').mousedown(function(){
if(fresh){
$("#Bubble:visible").hide(200);
fresh=false;
}
});
}
if($("#pun-viewtopic").length){ PopUpPL_Quote(); }
</script>
<!-- Замена дефисов на тире © Deff -->
<script>$('.post-content p').html(function(){return this.innerHTML.replace(/(\s| )?-(\s| )/g,'$1—$2')})</script>
<!--Всплывающие Подсказки при наведении-->
<script type="text/javascript" src="https://forumstatic.ru/files/001c/aa/0d/26671.js?v=2"></script>
<!--//End//-Всплывающие Подсказки при наведении-->
<script>
$(document).ready(function () {
const $statsContainer = $("#pun-stats ul.container");
const $itemsStats = $statsContainer.find("li.item1, li.item2, li.item3, li.item4");
if (!$statsContainer.length || !$itemsStats.length) return;
const $targetCrumb = $("<li>", { class: "stats-crumbs" }).append($itemsStats);
$statsContainer.prepend($targetCrumb);
});
</script>
<!-- горизонтальный скролл для указанных контейнеров by Vandra -->
<script>
function applyHorizontalScroll(containers) {
$(containers.join(", ")).each(function () {
if (!this.dataset.scrollApplied) {
this.addEventListener("wheel", function (e) {
e.preventDefault();
this.scrollLeft += e.deltaY * (navigator.platform.includes('Mac') ? 12 : 6);
}, { passive: false });
this.dataset.scrollApplied = "true";
}
});
}
$(document).ready(function () {
const containers = [".headnews > div", "ppicons > div", "ppls > div", "collection", "banners > div"];
applyHorizontalScroll(containers);
const scrollObserver = new MutationObserver(() => applyHorizontalScroll(containers));
scrollObserver.observe(document.body, { childList: true, subtree: true });
});
</script>
<!-- текстовые поля вместо строк для ввода в профиле by Vandra -->
<script>
document.addEventListener("DOMContentLoaded", function () {
const profileContainer = document.getElementById("profile8");
if (!profileContainer) return;
const profInputs = profileContainer.querySelectorAll("#fld1, #fld2, #fld3, #fld4, #fld5");
profInputs.forEach(profInput => {
const profTextarea = document.createElement("textarea");
for (let { name, value } of profInput.attributes) {
profTextarea.setAttribute(name, value);
}
profTextarea.value = profInput.value;
profInput.replaceWith(profTextarea);
});
});
</script>
<!---------------------------- ЗАПРЕТ РЕКЛАМЫ РЕДАКТИРОВАТЬ ПРОФИЛЬ (ДОБАВИТЬ НИК ПОТОМ) ------------------------->
<script type="text/javascript">
if(UserLogin=='pr' || UserLogin=='Ник2'&&document.URL.indexOf("profile.php")!=-1){$("#profile .container").replaceWith("<div style='color: red; padding: 10px 10px 10px 10px;'>Администратор запретил вам редактировать профиль.</div>");
}
</script>
<!-- Быстроплюсы v.2 by Deff -->
<script type="text/javascript" src="https://forumstatic.ru/files/0012/d8/04/58219.js" addComment="1"></script>
<!---- перенос кнопки быстрого редактирования в кнопки формы ответа ------------------>
<script>
$(function () {
var $toggle = $('#togglePreview');
var $target = $('.formsubmit');
if ($toggle.length && $target.length) {
$toggle.appendTo($target);
}
});
</script>
<!-- копирование элементов оформления профиля с личной страницы by Vandra -->
<script>
(function() {
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then(() => {
const notice = document.createElement('div');
notice.textContent = 'Скопировано в буфер!';
notice.style.cssText = `
position: fixed; top: 20px; left: 50%;
transform: translateX(-50%); padding: 10px 20px;
background: rgba(0, 0, 0, 0.7); color: white;
border-radius: 4px; z-index: 9999;
font-family: Inter, sans-serif; font-size: 11px;
pointer-events: none;
`;
document.body.appendChild(notice);
setTimeout(() => {
document.body.removeChild(notice);
}, 2000);
}).catch(err => {
console.error('Ошибка копирования:', err);
});
}
function setupCopyListeners(node) {
node.querySelectorAll('ppbgs div.bg').forEach(bgDiv => {
bgDiv.addEventListener('click', (e) => {
e.stopPropagation();
copyToClipboard(bgDiv.outerHTML);
});
});
node.querySelectorAll('ppplaques plaque').forEach(plaque => {
plaque.addEventListener('click', (e) => {
e.stopPropagation();
copyToClipboard(plaque.outerHTML);
});
});
}
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length) {
mutation.addedNodes.forEach((node) => {
if (node.nodeType === 1) {
setupCopyListeners(node);
}
});
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
</script>
<!-- Возможность скопировать последний пост при переполнении темы -->
<script>
$(document).ready(function() {
$('#pun-viewtopic #pun-main > h2')
.append('<div style="opacity: 0;position: absolute;bottom: 210px;right: 60px;width: 10px;height: 10px;"><textarea id="reserved_post">' + localStorage.ReservePost + '</textarea></div>');
$('#pun-viewtopic #pun-main > h2')
.append('<div id="reserve_post">Если вы потеряли свой пост из-за этого, нажмите на этот текст — отправленный пост будет скопирован в буфер обмена.</div>');
$('#reserve_post').on('click', function () {
var post = document.getElementById('reserved_post');
post.select();
document.execCommand('copy');
});
});
</script>
<!------------— переключатель меню в шапке -------------------------------------------------------------------------->
<script>
document.querySelector('.blush-dropdown-toggle').addEventListener('click', () => {
document.querySelector('.blush-dropdown').classList.toggle('open');
});
</script>
<!-- Переключение раскладки выделенного текста © Deff -->
<style>#button-transL{background-image:url(https://upforme.ru/uploads/000f/09/5e/6201/44477.png)}</style>
<script type="text/javascript">S='<img src="https://forum.mybb.ru/i/blank.gif" title="Lat↔ Русс" onclick="bbcode(\'[Lat-Rus]\',\'[/Rus-Lat]\');LatRus();"/>';
$("#button-font").after('<td id=button-transL>'+S+'</td>');var TxtTrans1='lat';
function LatRus(){if(TxtTrans1=='lat'){TxtTrans1='rus'}else{TxtTrans1='lat'};
lat0='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~[].'.split('');
lat='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~'.split('');
lat.push('\\[');lat.push('\\]');lat.push('\\.');
rus=('йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю').split('');
function transF(p){ar1=lat;ar2=rus;if(TxtTrans1=='lat'){ar2=lat0;ar1=rus}for(var i=0; i<ar1.length; i++){trans='/'+ar1[i]+'/g';p=p.replace(eval(trans), ar2[i])}return p;}L=$('#main-reply').val();L=L.replace(/\[Lat-Rus\]([\s\S]*)\[\/Rus-Lat\]/mg,function(a,b,c){return transF(b);});$('#main-reply').val(L);}
</script>
<!-- Вставить картинку © Deff -->
<script>
var oldIMG="<td id=\"button-image\" title=\"Изображение2\"><img onclick=\"bbcode('--')\" src=\"/i/blank.gif\"/><b><p style=\"z-index:20;position:absolute;height14px;margin:-15px 0 0 22px;\">2</p></b></td>"
$("#button-image").after(oldIMG);
</script>
<!-- Восстановление последнего поста при утере by Человек-Шаман -->
<script>
$(document).ready(function() {
$('#addition-area').append(function() {
return $('<div>Восстановить последний пост</div>').click(restoreLastPost);
});
function restoreLastPost() {
$('#main-reply').val(localStorage.ReservePost);
};
});
</script>
<!--конец-->
<!-- Счётчик символов в форме ответа © Deff -->
<script>var a,L,epl=$("#main-reply"),str='<small id="plng" style="background: rgb(var(--canvas-quarternary)); padding: 3px 10px; border-radius: 4px; margin: 0 20px 0 0px; color: rgba(var(--text-primary)); opacity: .6;"> символов: <b>00</b> </small>';epl.parents("fieldset").find("legend").prepend(str);function epl3(){a=epl.val().length;if(a>9){L=''}else{L='0'};$("#plng b").text(L+a)};epl3();$(".pl-quote").click(function (){setTimeout('epl3()',100)});epl.bind('mouseout mousemove keydown keypress keyup',function(e){epl3()});</script>
<banners class=""><div>
<a href="#"><img src="https://forumstatic.ru/files/001c/aa/0d/58866.png" title="рисованные внешности, симуляция жизни"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
<a href="#"><img src="https://forumstatic.ru/files/001c/97/3a/80032.png"></a>
</div></banners>
<!-- сайдбар скрипт -->
<script>
if (GroupID <= 2 || GroupID >= 4) {
if (typeof $ != 'undefined') {
$(document).ready(function() {
if ($('#BookmCntToggle').length) {
$('#BookmCntToggle').remove();
$('#MyBookmarks').appendTo('#sidebar').prop('id', 'MyBookmarksCustom').css({'display': 'block','position': 'static', 'width': '100%', 'height': 'auto', 'box-shadow': 'none', 'background': 'none'});
}
});
}}
</script>