{% if is_external %}
	<div class="full-news1">
		<h1><a href="{{ link }}">{{ title }}</a></h1>
		<div class="com-title-block">
			{% if entries %}
				{{ lang['comments:external.title']|default('Все комментарии посетителей к данной новости') }}
			{% endif %}
		</div>
	</div>
{% else %}
	<div class="com-title-block">
		{% if (comnum == 0) %}Комментарии отсутствуют. Вы можете добавить первый!{% endif %}
		{% if entries %}Комментарии{% endif %}
	</div>
{% endif %}

{% if entries %}
<div class="com-repeat">
	<div class="com-top">
		<div class="com-bottom">
			<div class="com-text">
				<div class="comments" id="comments">
					<ul id="comments_list">
						<div id="new_comments_rev"></div>
						{{ entries|raw }}
						<div id="new_comments"></div>
					</ul>
				</div>
			</div>
		</div>
	</div>
</div>
{% endif %}

{# Пагинация комментариев #}
{% if pagination and pagination.total > 1 %}
<div class="navigation" id="comments_pagination">
	<ul style="list-style: none; padding: 0; margin: 10px 0;">
		{# Ссылка «предыдущая» #}
		{% if pagination.prev.exists %}
			<li style="display: inline-block; margin: 0 5px;">
				<a href="{{ pagination.prev.url }}" rel="prev" aria-label="Previous" data-page="{{ pagination.prev.num }}" style="padding: 5px 10px; background: #f0f0f0; text-decoration: none; border-radius: 3px;">‹ Назад</a>
			</li>
		{% endif %}

		{# Основные элементы #}
		{% for p in pagination.pages %}
			{% if p.type == 'dots' %}
				<li style="display: inline-block; margin: 0 5px;">
					<span style="padding: 5px;">...</span>
				</li>
			{% elseif p.type == 'current' %}
				<li class="active" style="display: inline-block; margin: 0 5px;">
					<span data-page="{{ p.num }}" style="padding: 5px 10px; background: #333; color: #fff; border-radius: 3px; font-weight: bold;">{{ p.num }}</span>
				</li>
			{% elseif p.type == 'link' %}
				<li style="display: inline-block; margin: 0 5px;">
					<a href="{{ p.url }}" data-page="{{ p.num }}" style="padding: 5px 10px; background: #f0f0f0; text-decoration: none; border-radius: 3px;">{{ p.num }}</a>
				</li>
			{% endif %}
		{% endfor %}

		{# Ссылка «следующая» #}
		{% if pagination.next.exists %}
			<li style="display: inline-block; margin: 0 5px;">
				<a href="{{ pagination.next.url }}" rel="next" aria-label="Next" data-page="{{ pagination.next.num }}" style="padding: 5px 10px; background: #f0f0f0; text-decoration: none; border-radius: 3px;">Вперед ›</a>
			</li>
		{% endif %}
	</ul>
	<div style="clear: both;"></div>
</div>
{% endif %}

<div style="clear: both;"></div>

{{ form|raw }}

{% if regonly %}
<div class="s-block">
	<div class="title-block">
		<span>Информация</span>
	</div>
	<div class="s-block-content">
		{{ lang['comments:alert.regonly']|raw|default('Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.<br />Мы рекомендуем Вам <a href="/register/">зарегистрироваться</a> либо <a href="/login/">войти</a> на сайт под своим именем.') }}
	</div>
</div>
{% endif %}

{% if commforbidden %}
<div class="s-block">
	<div class="title-block">
		<span>Информация</span>
	</div>
	<div class="s-block-content">
		{{ lang['comments:alert.forbidden']|default('Комментирование данной новости запрещено.') }}
	</div>
</div>
{% endif %}

{% if not is_external %}
<script>
// Встроенная AJAX пагинация комментариев для AllSite
if(!window.__commentsPaginationInit){
	window.__commentsPaginationInit = true;
	(function(){
		var root = document;
		function findPagination(){ return root.getElementById('comments_pagination'); }
		function insertComments(html){
			var list = root.getElementById('comments_list'); if(!list){ return; }
			var anchorBottom = root.getElementById('new_comments');
			if(!anchorBottom){
				anchorBottom = document.createElement('div');
				anchorBottom.id='new_comments';
				list.appendChild(anchorBottom);
			}

			// Очищаем старые комментарии перед вставкой новых
			var oldComments = list.querySelectorAll('li[id^="comment"]');
			oldComments.forEach(function(li){ li.remove(); });

			var temp = document.createElement('div');
			temp.innerHTML = html || '';
			var items = temp.querySelectorAll('li[id^="comment"]');
			items.forEach(function(li){
				if(!li.id){ return; }
				list.insertBefore(li, anchorBottom);
			});
		}
		function replacePagination(html){
			var pag = findPagination(); if(!pag){ return; }
			if(html && /id=["']comments_pagination["']/.test(html)){
				pag.outerHTML = html;
			} else {
				pag.innerHTML = html || '';
			}
		}
		function onClick(e){
			var a = e.target.closest ? e.target.closest('#comments_pagination a') : null;
			if(!a){ return; }
			e.preventDefault();
			var liParent = a.closest('li');
			if((liParent && liParent.classList.contains('active')) || a.classList.contains('loading')){ return; }
			var url = a.getAttribute('href'); if(!url){ return; }
			var originalHTML = a.innerHTML;
			a.classList.add('loading');
			a.innerHTML='⏳';
			url += (url.indexOf('?') >= 0 ? '&' : '?') + 'ajax=1&embedded=1';
			fetch(url, {headers:{'X-Requested-With':'XMLHttpRequest'}})
				.then(function(r){ return r.json(); })
				.then(function(data){
					if(!data || !data.status){ return; }
					insertComments(data.entries || '');
					replacePagination(data.pagination || '');
				})
				.finally(function(){
					a.classList.remove('loading');
					a.innerHTML = originalHTML;
				});
		}
		root.addEventListener('click', onClick, false);
	})();
}
</script>
{% endif %}
