<?php
namespace ElementPack\Modules\HoverBox\Skins;

use Elementor\Skin_Base as Elementor_Skin_Base;

use Elementor\Icons_Manager;
use ElementPack\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Skin_Flexure extends Elementor_Skin_Base {
	public function get_id() {
		return 'bdt-flexure';
	}

	public function get_title() {
		return __( 'Flexure', 'bdthemes-element-pack' );
	}

	public function render() {
		$settings = $this->parent->get_settings_for_display();
		$hoverBoxEvent = ! empty( $settings['hover_box_event'] ) ? $settings['hover_box_event'] : false;

		if ( ! empty( $settings['box_image_effect'] ) && $settings['box_image_effect'] === 'yes' ) {
			$img_effect = isset( $settings['box_image_effect_select'] ) ? $settings['box_image_effect_select'] : '';
			if ( $img_effect !== '' ) {
				$this->parent->add_render_attribute( 'hover_box', 'class', 'bdt-ep-hover-box-img-effect bdt-' . esc_attr( $img_effect ) );
			}
		}

		$this->parent->add_render_attribute(
			[
				'hover_box' => [
					'id'            => 'bdt-ep-hover-box-' . esc_attr( $this->parent->get_id() ),
					'class'         => 'bdt-ep-hover-box bdt-ep-hover-box-skin-flexure',
					'data-settings' => [
						wp_json_encode( array_filter( [
							'box_id'      => 'bdt-ep-hover-box-' . $this->parent->get_id(),
							'mouse_event' => $hoverBoxEvent,
						] ) ),
					],
				],
			]
		);
		?>
		<div <?php $this->parent->print_render_attribute_string( 'hover_box' ); ?>>
			<?php $this->parent->box_content( $settings ); ?>
			<?php $this->box_items( $settings ); ?>
		</div>
		<?php
	}

	public function box_items( $settings ) {
		$id = $this->parent->get_id();
		$hover_box_items = isset( $settings['hover_box'] ) && is_array( $settings['hover_box'] ) ? $settings['hover_box'] : [];

		$this->parent->add_render_attribute( 'box-settings', 'data-bdt-ep-hover-box-items', 'connect: #bdt-box-content-' . esc_attr( $id ) . ';' );
		$content_gap = isset( $settings['content_gap'] ) ? $settings['content_gap'] : '';
		$default_pos = isset( $settings['default_content_position'] ) ? $settings['default_content_position'] : '';
		$this->parent->add_render_attribute( 'box-settings', 'class', [
			'bdt-ep-hover-box-item-wrap',
			'bdt-position-' . esc_attr( $content_gap ),
			'bdt-position-' . esc_attr( $default_pos ),
		] );

		$title_tag = Utils::get_valid_html_tag( isset( $settings['title_tags'] ) ? $settings['title_tags'] : 'h3' );
		?>
		<div <?php $this->parent->print_render_attribute_string( 'box-settings' ); ?>>
			<div>
				<?php foreach ( $hover_box_items as $index => $item ) :
					$tab_count = $index + 1;
					$tab_id    = 'bdt-box-' . $tab_count . esc_attr( $id );

					$this->parent->add_render_attribute( 'box-item', 'class', 'bdt-ep-hover-box-item', true );
					$this->parent->add_render_attribute( 'bdt-ep-hover-box-title', 'class', 'bdt-ep-hover-box-title', true );

					$title_key = 'title_' . $index;
					$this->parent->add_render_attribute( $title_key, 'class', 'bdt-ep-hover-box-title-link', true );
					$this->parent->add_link_attributes( $title_key, isset( $item['title_link'] ) ? $item['title_link'] : [] );
					?>
					<div <?php $this->parent->print_render_attribute_string( 'box-item' ); ?> data-id="<?php echo esc_attr( $tab_id ); ?>">
						<?php if ( ! empty( $item['hover_box_title'] ) && ! empty( $settings['show_title'] ) && $settings['show_title'] === 'yes' ) : ?>
							<<?php echo esc_attr( $title_tag ); ?> <?php $this->parent->print_render_attribute_string( 'bdt-ep-hover-box-title' ); ?>>
								<?php
								$title_link_url = isset( $item['title_link']['url'] ) ? $item['title_link']['url'] : '';
								if ( $title_link_url !== '' ) :
									?>
									<a <?php $this->parent->print_render_attribute_string( $title_key ); ?>>
								<?php endif; ?>
								<?php echo wp_kses( $item['hover_box_title'], element_pack_allow_tags( 'title' ) ); ?>
								<?php if ( $title_link_url !== '' ) : ?>
									</a>
								<?php endif; ?>
							</<?php echo esc_attr( $title_tag ); ?>>
						<?php endif; ?>

						<?php if ( ! empty( $item['hover_box_sub_title'] ) && ! empty( $settings['show_sub_title'] ) && $settings['show_sub_title'] === 'yes' ) : ?>
							<div class="bdt-ep-hover-box-sub-title">
								<?php echo wp_kses( $item['hover_box_sub_title'], element_pack_allow_tags( 'title' ) ); ?>
							</div>
						<?php endif; ?>
					</div>
				<?php endforeach; ?>
			</div>
		</div>
		<?php
	}
}
