<?php
namespace WprAddonsPro\Modules\TeamMemberPro\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Border;
use WprAddons\Classes\Utilities;

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

class Wpr_Team_Member_Pro extends \WprAddons\Modules\TeamMember\Widgets\Wpr_Team_Member {

	public function add_section_layout() {
		$this->start_controls_section(
			'wpr__section_layout',
			[
				'label' => esc_html__( 'Layout', 'wpr-addons' ),
			]
		);

		$this->add_control(
			'member_name_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Name Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
			]
		);

		$this->add_control(
			'member_job_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Job Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
			]
		);

		$this->add_control(
			'member_divider_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Divider Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
				'condition' => [
					'member_divider' => 'yes',
				],
			]
		);

		$this->add_control(
			'member_description_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Description Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
			]
		);

		$this->add_control(
			'member_social_media_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Socials Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
				'condition' => [
					'social_media' => 'yes',
				],
			]
		);

		$this->add_control(
			'member_btn_location',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Button Location', 'wpr-addons' ),
				'default' => 'below',
				'options' => [
					'over' => esc_html__( 'Over Image', 'wpr-addons' ),
					'below' => esc_html__( 'Below Image', 'wpr-addons' ),
				],
				'condition' => [
					'member_btn' => 'yes',
				],
			]
		);

		$this->add_control(
			'content_vertical_align',
			[
				'label' => esc_html__( 'Vertical Align', 'wpr-addons' ),
				'type' => Controls_Manager::CHOOSE,
				'label_block' => false,
				'default' => 'middle',
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'wpr-addons' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'wpr-addons' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'wpr-addons' ),
						'icon' => 'eicon-v-align-bottom',
					]
				],
				'selectors' => [
					'{{WRAPPER}} .wpr-cv-inner' => 'vertical-align: {{VALUE}}',
				]
			]
		);

		$this->end_controls_section(); // End Controls Section
	}

	public function add_section_image_overlay() {
		$this->start_controls_section(
			'wpr__section_image_overlay',
			[
				'label' => esc_html__( 'Overlay', 'wpr-addons' ),
			]
		);

		$this->add_control(
			'overlay_animation',
			[
				'label' => esc_html__( 'Select Animation', 'wpr-addons' ),
				'type' => 'wpr-animations-alt',
				'default' => 'fade-in',
			]
		);
		
		$this->add_control(
			'overlay_anim_size',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Animation Size', 'wpr-addons' ),
				'default' => 'large',
				'options' => [
					'small' => esc_html__( 'Small', 'wpr-addons' ),
					'medium' => esc_html__( 'Medium', 'wpr-addons' ),
					'large' => esc_html__( 'Large', 'wpr-addons' ),
				],
				'condition' => [
					'overlay_animation!' => 'none',
				],
			]
		);

		$this->add_control(
			'overlay_anim_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'wpr-addons' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 0.3,
				'min' => 0,
				'max' => 5,
				'step' => 0.1,
				'selectors' => [
					'{{WRAPPER}} .wpr-team-member-animation .wpr-cv-outer' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s;',
				],
				'condition' => [
					'overlay_animation!' => 'none',
				],
			]
		);

		$this->end_controls_section(); // End Controls Section
	}

	public function add_section_style_overlay() {
		$this->start_controls_section(
			'section_style_overlay',
			[
				'label' => esc_html__( 'Overlay', 'wpr-addons' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		// Image Overlay
		$this->add_control(
			'image_overlay_section',
			[
				'label' => esc_html__( 'Image Overlay', 'wpr-addons' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'image_overlay_bg_color',
				'types' => [ 'classic', 'gradient' ],
				'selector' => '{{WRAPPER}} .wpr-member-overlay'
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'overlay_border',
				'label' => esc_html__( 'Border', 'wpr-addons' ),
				'default' => 'solid',
				'fields_options' => [
					'color' => [
						'default' => '#E8E8E8',
					],
					'width' => [
						'default' => [
							'top' => '1',
							'right' => '1',
							'bottom' => '1',
							'left' => '1',
							'isLinked' => true,
						],
					],
				],
				'selector' => '{{WRAPPER}} .wpr-member-overlay',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'image_overlay_padding',
			[
				'label' => esc_html__( 'Padding', 'wpr-addons' ),
				'type' => Controls_Manager::DIMENSIONS,
				'default' => [
					'top' => 10,
					'right' => 10,
					'bottom' => 10,
					'left' => 10,
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} .wpr-member-overlay-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section(); // End Controls Section		
	}

	protected function team_member_overlay() {
		// Get Settings 
		$settings = $this->get_settings();
		
		if ( ( '' !== $settings['member_name'] && 'over' === $settings['member_name_location'] ) || 
			( '' !== $settings['member_job'] && 'over' === $settings['member_job_location'] ) || 
			( '' !== $settings['member_description'] && 'over' === $settings['member_description_location'] ) || 
			( 'yes' === $settings['social_media'] && 'over' === $settings['member_social_media_location'] ) || 
			( 'yes' === $settings['member_btn'] && 'over' === $settings['member_btn_location'] ) ) : 

		$this->add_render_attribute( 'overlay_container', 'class', 'wpr-member-overlay-wrap wpr-cv-container' );	
		$this->add_render_attribute( 'overlay_outer', 'class', 'wpr-cv-outer' );	

		if ( 'none' !== $settings['overlay_animation'] ) {
			$this->add_render_attribute( 'overlay_container', 'class', 'wpr-team-member-animation wpr-animation-wrap' );
			$this->add_render_attribute( 'overlay_outer', 'class', 'wpr-anim-transparency wpr-anim-size-'. $settings['overlay_anim_size'] .' wpr-overlay-'. $settings['overlay_animation'] );
		}

		?>

		<div <?php echo $this->get_render_attribute_string( 'overlay_container' ); ?>>
			<div <?php echo $this->get_render_attribute_string( 'overlay_outer' ); ?>>
				<div class="wpr-cv-inner">
					
					<div class="wpr-member-overlay"></div>
					<div class="wpr-member-overlay-content">
						<?php
							if ( '' !== $settings['member_name'] && 'over' === $settings['member_name_location'] ) {
								$tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
								$member_name_tag = Utilities::validate_html_tags_wl( $settings['member_name_tag'], 'h3', $tags_whitelist );

								echo '<'. esc_attr( $member_name_tag ) .' class="wpr-member-name">';
									echo esc_html( $settings['member_name'] );
								echo '</'. esc_attr( $member_name_tag ) .'>';
							}
						?>

						<?php if ( 'yes' === $settings['member_divider'] && 'over' === $settings['member_divider_location'] && 'before_job' === $settings['member_divider_position'] ) : ?>
							<div class="wpr-member-divider"></div>
						<?php endif; ?>

						<?php if ( '' !== $settings['member_job'] && 'over' === $settings['member_job_location'] ) : ?>
							<div class="wpr-member-job"><?php echo esc_html( $settings['member_job'] ); ?></div>
						<?php endif; ?>

						<?php if ( 'yes' === $settings['member_divider'] && 'over' === $settings['member_divider_location'] && 'after_job' === $settings['member_divider_position'] ) : ?>
							<div class="wpr-member-divider"></div>
						<?php endif; ?>

						<?php if ( '' !== $settings['member_description'] && 'over' === $settings['member_description_location'] ) : ?>
							<div class="wpr-member-description"><?php echo esc_html( $settings['member_description'] ); ?></div>
						<?php endif; ?>
						
						<?php 
							if ( 'yes' === $settings['social_media'] && 'over' === $settings['member_social_media_location'] ) {
								$this->team_member_social_media();
							}
								
							if ( 'yes' === $settings['member_btn'] && 'over' === $settings['member_btn_location'] ) {
								$this->team_member_button();
							}
						?>
					</div>
				</div>
			</div>
		</div>

		<?php endif;

	}

}