<?php

if ( ! function_exists( 'calla_elated_get_title_types_options' ) ) {
	function calla_elated_get_title_types_options() {
		$title_type_options = apply_filters( 'calla_elated_title_type_global_option', $title_type_options = array() );
		
		return $title_type_options;
	}
}

if ( ! function_exists( 'calla_elated_get_title_type_default_options' ) ) {
	function calla_elated_get_title_type_default_options() {
		$title_type_option = apply_filters( 'calla_elated_default_title_type_global_option', $title_type_option = '' );
		
		return $title_type_option;
	}
}

foreach ( glob( ELATED_FRAMEWORK_MODULES_ROOT_DIR . '/title/types/*/admin/options-map/*.php' ) as $options_load ) {
	include_once $options_load;
}

if ( ! function_exists('calla_elated_title_options_map') ) {
	function calla_elated_title_options_map() {
		$title_type_options        = calla_elated_get_title_types_options();
		$title_type_default_option = calla_elated_get_title_type_default_options();

		calla_elated_add_admin_page(
			array(
				'slug' => '_title_page',
				'title' => esc_html__('Title', 'calla'),
				'icon' => 'fa fa-list-alt'
			)
		);

		$panel_title = calla_elated_add_admin_panel(
			array(
				'page' => '_title_page',
				'name' => 'panel_title',
				'title' => esc_html__('Title Settings', 'calla')
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'show_title_area',
				'type'          => 'yesno',
				'default_value' => 'yes',
				'label'         => esc_html__( 'Show Title Area', 'calla' ),
				'description'   => esc_html__( 'This option will enable/disable Title Area', 'calla' ),
				'parent'        => $panel_title
			)
		);
		
			$show_title_area_container = calla_elated_add_admin_container(
				array(
					'parent'          => $panel_title,
					'name'            => 'show_title_area_container',
					'dependency' => array(
						'show' => array(
							'show_title_area' => 'yes'
						)
					)
				)
			);
		
				calla_elated_add_admin_field(
					array(
						'name'          => 'title_area_type',
						'type'          => 'select',
						'default_value' => $title_type_default_option,
						'label'         => esc_html__( 'Title Area Type', 'calla' ),
						'description'   => esc_html__( 'Choose title type', 'calla' ),
						'parent'        => $show_title_area_container,
						'options'       => $title_type_options
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'name'          => 'title_area_in_grid',
							'type'          => 'yesno',
							'default_value' => 'yes',
							'label'         => esc_html__( 'Title Area In Grid', 'calla' ),
							'description'   => esc_html__( 'Set title area content to be in grid', 'calla' ),
							'parent'        => $show_title_area_container
						)
					);
		
					calla_elated_add_admin_field(
						array(
							'name'        => 'title_area_height',
							'type'        => 'text',
							'label'       => esc_html__( 'Height', 'calla' ),
							'description' => esc_html__( 'Set a height for Title Area', 'calla' ),
							'parent'      => $show_title_area_container,
							'args'        => array(
								'col_width' => 2,
								'suffix'    => 'px'
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'name'        => 'title_area_background_color',
							'type'        => 'color',
							'label'       => esc_html__( 'Background Color', 'calla' ),
							'description' => esc_html__( 'Choose a background color for Title Area', 'calla' ),
							'parent'      => $show_title_area_container
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'name'        => 'title_area_background_image',
							'type'        => 'image',
							'label'       => esc_html__( 'Background Image', 'calla' ),
							'description' => esc_html__( 'Choose an Image for Title Area', 'calla' ),
							'parent'      => $show_title_area_container
						)
					);
		
					calla_elated_add_admin_field(
						array(
							'name'          => 'title_area_background_image_behavior',
							'type'          => 'select',
							'default_value' => '',
							'label'         => esc_html__( 'Background Image Behavior', 'calla' ),
							'description'   => esc_html__( 'Choose title area background image behavior', 'calla' ),
							'parent'        => $show_title_area_container,
							'options'       => array(
								''                  => esc_html__( 'Default', 'calla' ),
								'responsive'        => esc_html__( 'Enable Responsive Image', 'calla' ),
								'parallax'          => esc_html__( 'Enable Parallax Image', 'calla' ),
								'parallax-zoom-out' => esc_html__( 'Enable Parallax With Zoom Out Image', 'calla' )
							)
						)
					);

                    calla_elated_add_admin_field(
                        array(
                            'name'          => 'show_separator_image',
                            'type'          => 'yesno',
                            'default_value' => 'no',
                            'label'         => esc_html__( 'Show Separator', 'calla' ),
                            'description'   => esc_html__( 'Enable this option to show separator below title', 'calla' ),
                            'parent'        => $show_title_area_container
                        )
                    );

                    calla_elated_add_admin_field(
                        array(
                            'name'          => 'separator_image',
                            'type'          => 'image',
                            'label'         => esc_html__( 'Separator Image', 'calla' ),
                            'parent'        => $show_title_area_container,
                            'dependency' => array(
                                'show' => array(
                                    'show_separator_image' => 'yes'
                                )
                            )

                        )
                    );
					
					calla_elated_add_admin_field(
						array(
							'name'          => 'title_area_vertical_alignment',
							'type'          => 'select',
							'default_value' => 'header-bottom',
							'label'         => esc_html__( 'Vertical Alignment', 'calla' ),
							'description'   => esc_html__( 'Specify title vertical alignment', 'calla' ),
							'parent'        => $show_title_area_container,
							'options'       => array(
								'header-bottom' => esc_html__( 'From Bottom of Header', 'calla' ),
								'window-top'    => esc_html__( 'From Window Top', 'calla' )
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'name'          => 'title_area_vertical_offset',
							'type'          => 'text',
							'default_value' => '',
							'label'         => esc_html__( 'Title Vertical Offset', 'calla' ),
							'description'   => esc_html__( 'Set title vertical offset relative to its current position', 'calla' ),
							'parent'        => $show_title_area_container,
							'args' 			=> array(
								'col_width' => '3',
								'suffix' => 'px'
							)
						)
					);
		
		/***************** Additional Title Area Layout - start *****************/
		
		do_action( 'calla_elated_additional_title_area_options_map', $show_title_area_container );
		
		/***************** Additional Title Area Layout - end *****************/
		
		
		$panel_typography = calla_elated_add_admin_panel(
			array(
				'page'  => '_title_page',
				'name'  => 'panel_title_typography',
				'title' => esc_html__( 'Typography', 'calla' )
			)
		);
		
			calla_elated_add_admin_section_title(
				array(
					'name'   => 'type_section_title',
					'title'  => esc_html__( 'Title', 'calla' ),
					'parent' => $panel_typography
				)
			);
		
			$group_page_title_styles = calla_elated_add_admin_group(
				array(
					'name'        => 'group_page_title_styles',
					'title'       => esc_html__( 'Title', 'calla' ),
					'description' => esc_html__( 'Define styles for page title', 'calla' ),
					'parent'      => $panel_typography
				)
			);
		
				$row_page_title_styles_1 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_title_styles_1',
						'parent' => $group_page_title_styles
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'name'          => 'title_area_title_tag',
							'type'          => 'selectsimple',
							'default_value' => 'h2',
							'label'         => esc_html__( 'Title Tag', 'calla' ),
							'options'       => calla_elated_get_title_tag(),
							'parent'        => $row_page_title_styles_1
						)
					);
		
				$row_page_title_styles_2 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_title_styles_2',
						'parent' => $group_page_title_styles
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'type'   => 'colorsimple',
							'name'   => 'page_title_color',
							'label'  => esc_html__( 'Text Color', 'calla' ),
							'parent' => $row_page_title_styles_2
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_title_font_size',
							'default_value' => '',
							'label'         => esc_html__( 'Font Size', 'calla' ),
							'parent'        => $row_page_title_styles_2,
							'args'          => array(
								'suffix' => 'px'
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_title_line_height',
							'default_value' => '',
							'label'         => esc_html__( 'Line Height', 'calla' ),
							'parent'        => $row_page_title_styles_2,
							'args'          => array(
								'suffix' => 'px'
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_title_text_transform',
							'default_value' => '',
							'label'         => esc_html__( 'Text Transform', 'calla' ),
							'options'       => calla_elated_get_text_transform_array(),
							'parent'        => $row_page_title_styles_2
						)
					);
		
				$row_page_title_styles_3 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_title_styles_3',
						'parent' => $group_page_title_styles,
						'next'   => true
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'type'          => 'fontsimple',
							'name'          => 'page_title_google_fonts',
							'default_value' => '-1',
							'label'         => esc_html__( 'Font Family', 'calla' ),
							'parent'        => $row_page_title_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_title_font_style',
							'default_value' => '',
							'label'         => esc_html__( 'Font Style', 'calla' ),
							'options'       => calla_elated_get_font_style_array(),
							'parent'        => $row_page_title_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_title_font_weight',
							'default_value' => '',
							'label'         => esc_html__( 'Font Weight', 'calla' ),
							'options'       => calla_elated_get_font_weight_array(),
							'parent'        => $row_page_title_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_title_letter_spacing',
							'default_value' => '',
							'label'         => esc_html__( 'Letter Spacing', 'calla' ),
							'parent'        => $row_page_title_styles_3,
							'args'          => array(
								'suffix' => 'px'
							)
						)
					);
		
			calla_elated_add_admin_section_title(
				array(
					'name'   => 'type_section_subtitle',
					'title'  => esc_html__( 'Subtitle', 'calla' ),
					'parent' => $panel_typography
				)
			);
		
			$group_page_subtitle_styles = calla_elated_add_admin_group(
				array(
					'name'        => 'group_page_subtitle_styles',
					'title'       => esc_html__( 'Subtitle', 'calla' ),
					'description' => esc_html__( 'Define styles for page subtitle', 'calla' ),
					'parent'      => $panel_typography
				)
			);
		
				$row_page_subtitle_styles_1 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_subtitle_styles_1',
						'parent' => $group_page_subtitle_styles
					)
				);
				
					calla_elated_add_admin_field(
						array(
							'name' => 'title_area_subtitle_tag',
							'type' => 'selectsimple',
							'default_value' => 'h6',
							'label' => esc_html__('Subtitle Tag', 'calla'),
							'options' => calla_elated_get_title_tag(),
							'parent' => $row_page_subtitle_styles_1
						)
					);
		
				$row_page_subtitle_styles_2 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_subtitle_styles_2',
						'parent' => $group_page_subtitle_styles
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'type'   => 'colorsimple',
							'name'   => 'page_subtitle_color',
							'label'  => esc_html__( 'Text Color', 'calla' ),
							'parent' => $row_page_subtitle_styles_2
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_subtitle_font_size',
							'default_value' => '',
							'label'         => esc_html__( 'Font Size', 'calla' ),
							'parent'        => $row_page_subtitle_styles_2,
							'args'          => array(
								'suffix' => 'px'
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_subtitle_line_height',
							'default_value' => '',
							'label'         => esc_html__( 'Line Height', 'calla' ),
							'parent'        => $row_page_subtitle_styles_2,
							'args'          => array(
								'suffix' => 'px'
							)
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_subtitle_text_transform',
							'default_value' => '',
							'label'         => esc_html__( 'Text Transform', 'calla' ),
							'options'       => calla_elated_get_text_transform_array(),
							'parent'        => $row_page_subtitle_styles_2
						)
					);
		
				$row_page_subtitle_styles_3 = calla_elated_add_admin_row(
					array(
						'name'   => 'row_page_subtitle_styles_3',
						'parent' => $group_page_subtitle_styles,
						'next'   => true
					)
				);
		
					calla_elated_add_admin_field(
						array(
							'type'          => 'fontsimple',
							'name'          => 'page_subtitle_google_fonts',
							'default_value' => '-1',
							'label'         => esc_html__( 'Font Family', 'calla' ),
							'parent'        => $row_page_subtitle_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_subtitle_font_style',
							'default_value' => '',
							'label'         => esc_html__( 'Font Style', 'calla' ),
							'options'       => calla_elated_get_font_style_array(),
							'parent'        => $row_page_subtitle_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'selectblanksimple',
							'name'          => 'page_subtitle_font_weight',
							'default_value' => '',
							'label'         => esc_html__( 'Font Weight', 'calla' ),
							'options'       => calla_elated_get_font_weight_array(),
							'parent'        => $row_page_subtitle_styles_3
						)
					);
					
					calla_elated_add_admin_field(
						array(
							'type'          => 'textsimple',
							'name'          => 'page_subtitle_letter_spacing',
							'default_value' => '',
							'label'         => esc_html__( 'Letter Spacing', 'calla' ),
							'args'          => array(
								'suffix' => 'px'
							),
							'parent'        => $row_page_subtitle_styles_3
						)
					);
		
		/***************** Additional Title Typography Layout - start *****************/
		
		do_action( 'calla_elated_additional_title_typography_options_map', $panel_typography );
		
		/***************** Additional Title Typography Layout - end *****************/
    }

	add_action( 'calla_elated_options_map', 'calla_elated_title_options_map', 4);
}