<?php

/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Associations;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;

if (!class_exists('ContentHelperRoute')) {
	if (version_compare(JVERSION, '4', 'ge')) {
		abstract class ContentHelperRoute extends \Joomla\Component\Content\Site\Helper\RouteHelper
		{
		};
	} else {
		JLoader::register('ContentHelperRoute', $com_path . '/helpers/route.php');
	}
}

HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers');
HTMLHelper::addIncludePath(T3_PATH . '/html/com_content');
HTMLHelper::addIncludePath(dirname(dirname(__FILE__)));

// Create shortcuts to some parameters.
$params   = $this->item->params;
$images   = json_decode($this->item->images);
$urls     = json_decode($this->item->urls);
$canEdit  = $params->get('access-edit');
$user     = Factory::getUser();
$info    = $params->get('info_block_position', 2);
$aInfo1 = ($params->get('show_publish_date') || $params->get('show_category') || $params->get('show_parent_category') || $params->get('show_author'));
$aInfo2 = ($params->get('show_create_date') || $params->get('show_modify_date') || $params->get('show_hits'));
$topInfo = ($aInfo1 && $info != 1) || ($aInfo2 && $info == 0);
$botInfo = ($aInfo1 && $info == 1) || ($aInfo2 && $info != 0);
$icons = !empty($this->print) || $canEdit || $params->get('show_print_icon') || $params->get('show_email_icon');


// Check if associations are implemented. If they are, define the parameter.
$assocParam = (Associations::isEnabled() && $params->get('show_associations'));
if (version_compare(JVERSION, '4', 'lt')) {
	HTMLHelper::_('behavior.caption');
}
?>

<?php if ($this->params->get('show_page_heading', 1)) : ?>
	<div class="page-header clearfix">
		<h1 class="page-title"><?php echo $this->escape($this->params->get('page_heading')); ?></h1>
	</div>
<?php endif; ?>

<div class="item-page<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="https://schema.org/Article">

	<?php if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && $this->item->paginationrelative) : ?>
		<?php echo $this->item->pagination; ?>
	<?php endif; ?>

	<!-- Article -->
	<article itemscope itemtype="http://schema.org/Article">
		<meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? Factory::getConfig()->get('language') : $this->item->language; ?>" />
		<meta itemprop="url" content="<?php echo Route::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)) ?>" />
		<meta itemscope itemprop="mainEntityOfPage" itemtype="http://schema.org/WebPage" itemid="<?php echo Route::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)) ?>" />

		<?php if (!$params->get('show_modify_date')) { ?>
			<meta content="<?php echo HTMLHelper::_('date', $this->item->modified, 'c'); ?>" itemprop="dateModified">
		<?php } ?>

		<?php if (!$params->get('show_publish_date')) { ?>
			<meta content="<?php echo HTMLHelper::_('date', $this->item->publish_up, 'c'); ?>" itemprop="datePublished">
		<?php } ?>

		<?php if ($params->get('show_title')) : ?>
			<?php echo LayoutHelper::render('joomla.content.item_title', array('item' => $this->item, 'params' => $params, 'title-tag' => 'h1')); ?>
		<?php endif; ?>

		<!-- Aside -->
		<?php if ($topInfo || $icons) : ?>
			<aside class="article-aside clearfix">
				<?php if ($topInfo) : ?>
					<?php echo LayoutHelper::render('joomla.content.info_block.block', array('item' => $this->item, 'params' => $params, 'position' => 'above')); ?>
				<?php endif; ?>
				<?php if ($params->get('show_vote')) :
					if (isset($item->rating_sum) && $item->rating_count > 0) {
						$item->rating = round($item->rating_sum / $item->rating_count, 1);
						$item->rating_percentage = $item->rating_sum / $item->rating_count * 20;
					} else {
						if (!isset($this->item->rating)) $this->item->rating = 0;
						if (!isset($this->item->rating_count)) $this->item->rating_count = 0;
						$this->item->rating_percentage = $this->item->rating * 20;
					}
					$uri = Uri::getInstance();

				?>
					<div class="rating-info pd-rating-info">
						<form class="rating-form" method="POST" action="<?php echo htmlspecialchars($uri->toString()) ?>">
							<ul class="rating-list">
								<li class="rating-current" style="width:<?php echo $this->item->rating_percentage; ?>%;"></li>
								<li><a href="#" title="<?php echo Text::_('JA_1_STAR_OUT_OF_5'); ?>" class="one-star">1</a></li>
								<li><a href="#" title="<?php echo Text::_('JA_2_STARS_OUT_OF_5'); ?>" class="two-stars">2</a></li>
								<li><a href="#" title="<?php echo Text::_('JA_3_STARS_OUT_OF_5'); ?>" class="three-stars">3</a></li>
								<li><a href="#" title="<?php echo Text::_('JA_4_STARS_OUT_OF_5'); ?>" class="four-stars">4</a></li>
								<li><a href="#" title="<?php echo Text::_('JA_5_STARS_OUT_OF_5'); ?>" class="five-stars">5</a></li>
							</ul>
							<div class="rating-log">(
								<meta content="5" /><span><?php echo $this->item->rating ?></span> / <span><?php echo $this->item->rating_count; ?></span> votes)
							</div>
							<input type="hidden" name="task" value="article.vote" />
							<input type="hidden" name="hitcount" value="0" />
							<input type="hidden" name="user_rating" value="5" />
							<input type="hidden" name="url" value="<?php echo htmlspecialchars($uri->toString()) ?>" />
							<?php echo HTMLHelper::_('form.token') ?>
						</form>
					</div>

					<script type="text/javascript">
						! function($) {
							$('.rating-form').each(function() {
								var form = this;
								$(this).find('.rating-list li a').click(function(event) {
									event.preventDefault();
									form.user_rating.value = this.innerHTML;
									form.submit();
								});
							});
						}(window.jQuery);
					</script>
				<?php endif; ?>
				<?php if ($icons) : ?>
					<?php echo LayoutHelper::render('joomla.content.icons', array('item' => $this->item, 'params' => $params, 'print' => $this->print)); ?>
				<?php endif; ?>
			</aside>
		<?php endif; ?>
		<!-- //Aside -->

		<?php if (!$params->get('show_intro')) : ?>
			<?php echo $this->item->event->afterDisplayTitle; ?>
		<?php endif; ?>

		<?php echo $this->item->event->beforeDisplayContent; ?>

		<?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '0')) || ($params->get('urls_position') == '0' && empty($urls->urls_position))) || (empty($urls->urls_position) && (!$params->get('urls_position')))) : ?>
			<?php echo $this->loadTemplate('links'); ?>
		<?php endif; ?>

		<?php if ($params->get('access-view')) : ?>

			<?php echo LayoutHelper::render('joomla.content.fulltext_image', array('item' => $this->item, 'params' => $params)); ?>

			<?php if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && !$this->item->paginationrelative) :
				echo $this->item->pagination;
			endif; ?>

			<section class="article-content clearfix" itemprop="articleBody">
				<?php if (isset($this->item->toc)) : ?>
					<?php echo $this->item->toc; ?>
				<?php endif; ?>

				<?php echo $this->item->text; ?>

				<?php if ($params->get('show_tags', 1) && !empty($this->item->tags)) : ?>
					<?php echo LayoutHelper::render('joomla.content.tags', $this->item->tags->itemTags); ?>
				<?php endif; ?>
			</section>

			<!-- footer -->
			<?php if ($botInfo) : ?>
				<footer class="article-footer clearfix">
					<?php echo LayoutHelper::render('joomla.content.info_block.block', array('item' => $this->item, 'params' => $params, 'position' => 'below')); ?>
				</footer>
			<?php endif; ?>
			<!-- //footer -->

			<?php
			if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && !$this->item->paginationrelative) : ?>
				<?php
				echo '<hr class="divider-vertical" />';
				echo $this->item->pagination;
				?>
			<?php endif; ?>

			<?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '1')) || ($params->get('urls_position') == '1'))) : ?>
				<?php echo $this->loadTemplate('links'); ?>
			<?php endif; ?>

			<?php //optional teaser intro text for guests 
			?>
		<?php elseif ($params->get('show_noauth') == true &&  $user->get('guest')) : ?>

			<?php echo $this->item->introtext; ?>
			<?php // Optional link to let them register to see the whole article. 
			?>
			<?php if ($params->get('show_readmore') && $this->item->fulltext != null) : ?>
				<?php $menu = Factory::getApplication()->getMenu(); ?>
				<?php $active = $menu->getActive(); ?>
				<?php $itemId = $active->id; ?>
				<?php $link = new Uri(Route::_('index.php?option=com_users&view=login&Itemid=' . $itemId, false)); ?>
				<?php $link->setVar('return', base64_encode(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid, $this->item->language))); ?>

				<section class="readmore">
					<a href="<?php echo $link; ?>" class="register"><span>
							<?php $attribs = json_decode($this->item->attribs); ?>
							<?php
							if ($attribs->alternative_readmore == null) :
								echo Text::_('COM_CONTENT_REGISTER_TO_READ_MORE');
							elseif ($readmore = $attribs->alternative_readmore) :
								echo $readmore;
								if ($params->get('show_readmore_title', 0) != 0) :
									echo HTMLHelper::_('string.truncate', $this->item->title, $params->get('readmore_limit'));
								endif;
							elseif ($params->get('show_readmore_title', 0) == 0) :
								echo Text::sprintf('COM_CONTENT_READ_MORE_TITLE');
							else :
								echo Text::_('COM_CONTENT_READ_MORE');
								echo HTMLHelper::_('string.truncate', $this->item->title, $params->get('readmore_limit'));
							endif; ?>
						</span></a>
				</section>
			<?php endif; ?>
		<?php endif; ?>

	</article>
	<!-- //Article -->

	<?php if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && $this->item->paginationrelative) : ?>
		<?php echo $this->item->pagination; ?>
	<?php endif; ?>

	<?php echo $this->item->event->afterDisplayContent; ?>
</div>