<?php
/**
 * Display the content
 *
 * @package Tutor\Templates
 * @subpackage Single\Lesson
 * @author Themeum <support@themeum.com>
 * @link https://themeum.com
 * @since 1.0.0
 */

defined( 'ABSPATH' ) || exit;

use TUTOR\Lesson;
use Tutor\Components\SvgIcon;
use Tutor\Models\EnrollmentModel;
use TUTOR\User;

global $post;
global $previous_id;
global $next_id;

// Get the ID of this content and the corresponding course.
$course_content_id = get_the_ID();
$course_id         = tutor_utils()->get_course_id_by_subcontent( $course_content_id );

$_is_preview = get_post_meta( $course_content_id, '_is_preview', true );
$content_id  = tutor_utils()->get_post_id( $course_content_id );
$contents    = tutor_utils()->get_course_prev_next_contents_by_id( $content_id );
$previous_id = $contents->previous_id;
$next_id     = $contents->next_id;

$prev_is_preview = get_post_meta( $previous_id, '_is_preview', true );
$next_is_preview = get_post_meta( $next_id, '_is_preview', true );
$is_enrolled     = EnrollmentModel::is_enrolled( $course_id );
$is_public       = get_post_meta( $course_id, '_tutor_is_public_course', true );

$prev_is_locked = ! ( $is_enrolled || $prev_is_preview || $is_public );
$next_is_locked = ! ( $is_enrolled || $next_is_preview || $is_public );

$json_data                                 = array();
$json_data['post_id']                      = get_the_ID();
$json_data['best_watch_time']              = 0;
$json_data['autoload_next_course_content'] = (bool) get_tutor_option( 'autoload_next_course_content' );

$best_watch_time = tutor_utils()->get_lesson_reading_info( get_the_ID(), 0, 'video_best_watched_time' );
if ( $best_watch_time > 0 ) {
	$json_data['best_watch_time'] = $best_watch_time;
}
?>

<?php do_action( 'tutor_lesson/single/before/content' ); ?>

<?php
tutor_load_template(
	'single.common.header',
	array(
		'course_id'        => $course_id,
		'mark_as_complete' => true,
	)
);
?>

<div class="tutor-course-topic-single-body">
	<!-- Load Lesson Video -->
	<?php
		$video_info = tutor_utils()->get_video_info();
		$source_key = is_object( $video_info ) && 'html5' !== $video_info->source ? 'source_' . $video_info->source : null;
		$has_source = ( is_object( $video_info ) && $video_info->source_video_id ) || ( isset( $source_key ) ? $video_info->$source_key : null );
	?>
	<?php
	if ( $has_source ) :
		$completion_mode                              = tutor_utils()->get_option( 'course_completion_process' );
		$json_data['strict_mode']                     = ( 'strict' === $completion_mode );
		$json_data['control_video_lesson_completion'] = (bool) tutor_utils()->get_option( 'control_video_lesson_completion', false );
		$json_data['required_percentage']             = (int) tutor_utils()->get_option( 'required_percentage_to_complete_video_lesson', 80 );
		$json_data['video_duration']                  = $video_info->duration_sec ?? 0;
		$json_data['lesson_completed']                = tutor_utils()->is_completed_lesson( $content_id, get_current_user_id() ) !== false;
		$json_data['is_enrolled']                     = EnrollmentModel::is_enrolled( $course_id, get_current_user_id() ) !== false;
		?>
		<input type="hidden" id="tutor_video_tracking_information" value="<?php echo esc_attr( wp_json_encode( $json_data ) ); ?>">
	<?php endif; ?>
	<div class="tutor-video-player-wrapper">
		<?php echo apply_filters( 'tutor_single_lesson_video', tutor_lesson_video( false ), $video_info, $source_key ); //phpcs:ignore ?>
	</div>

	<?php
	$referer_url        = wp_get_referer();
	$referer_comment_id = explode( '#', filter_input( INPUT_SERVER, 'REQUEST_URI' ) ?? '' );
	$url_components     = parse_url( $referer_url );
	$page_tab           = \TUTOR\Input::get( 'page_tab', 'overview' );

	isset( $url_components['query'] ) ? parse_str( $url_components['query'], $output ) : null;

	$has_lesson_content    = Lesson::has_lesson_content( $course_content_id );
	$has_lesson_attachment = Lesson::has_lesson_attachment( $course_content_id );

	$is_comment_enabled = Lesson::is_comment_enabled();
	$has_lesson_comment = Lesson::has_lesson_comment( $course_content_id );

	$nav_items = Lesson::get_nav_items( $course_content_id );

	$active_tab = $page_tab;
	$valid_tabs = wp_list_pluck( $nav_items, 'value' );
	if ( ! in_array( $active_tab, $valid_tabs, true ) && ! empty( $nav_items ) ) {
		$active_tab = $nav_items[0]['value'];
	}
	?>

	<style>
		.tutor-actual-comment.viewing {
			box-shadow: 0 0 10px #cdcfd5;
			animation: blinkComment 1s infinite;
		}
		@keyframes blinkComment { 50% { box-shadow:0 0 0px #ffffff; }  }
	</style>

	<div class="tutor-course-spotlight-wrapper">
		<?php if ( count( $nav_items ) > 1 ) : ?>
		<ul class="tutor-nav tutor-course-spotlight-nav tutor-justify-center">
			<?php foreach ( $nav_items as $index => $nav_item ) : ?>
				<li class="tutor-nav-item">
					<a 
						href="#" 
						class="tutor-nav-link<?php echo esc_attr( ( $nav_item['value'] === $page_tab || ( 'overview' === $page_tab && 0 === $index ) ) ? ' is-active' : '' ); ?>" 
						data-tutor-nav-target="tutor-course-spotlight-<?php echo esc_attr( $nav_item['value'] ); ?>" 
						data-tutor-query-variable="page_tab" 
						data-tutor-query-value="<?php echo esc_attr( $nav_item['value'] ); ?>"
					>
						<?php
						if ( isset( $nav_item['icon_type'] ) && 'svg' === $nav_item['icon_type'] ) {
							SvgIcon::make()->name( $nav_item['icon'] )->size( 20 )->render();
						} else {
							?>
							<span 
								class="tutor-icon-<?php echo esc_attr( $nav_item['icon'] ); ?> tutor-mr-8" 
								aria-hidden="true">
							</span>
							<?php
						}
						?>
						<span><?php echo esc_html( $nav_item['label'] ); ?></span>
					</a>
				</li>
			<?php endforeach; ?>

			<?php do_action( 'tutor_lesson_single_after_nav_items', $course_content_id, $active_tab ); ?>
		</ul>
		<?php endif; ?>

		<div class="tutor-tab tutor-course-spotlight-tab">
			<?php
			if ( ! empty( $nav_items ) ) {
				foreach ( $nav_items as $key => $content ) {
					$is_pro = isset( $content['is_pro'] ) && true === $content['is_pro'];
					tutor_load_template(
						$content['template'],
						array(
							'is_active' => $content['value'] === $active_tab,
							'post'      => $post,
							'course_id' => $course_id,
							'lesson_id' => $course_content_id,
						),
						$is_pro
					);
				}
			}
			?>
		</div>
	</div>
</div>

<?php tutor_load_template( 'single.common.footer', array( 'course_id' => $course_id ) ); ?>

<?php do_action( 'tutor_lesson/single/after/content' ); ?>
