<?php

if ( ! function_exists( 'calla_elated_get_blog_list_types_options' ) ) {
	function calla_elated_get_blog_list_types_options() {
		$blog_list_type_options = apply_filters( 'calla_elated_blog_list_type_global_option', $blog_list_type_options = array() );
		
		return $blog_list_type_options;
	}
}

if ( ! function_exists( 'calla_elated_blog_options_map' ) ) {
	function calla_elated_blog_options_map() {
		$blog_list_type_options = calla_elated_get_blog_list_types_options();
		
		calla_elated_add_admin_page(
			array(
				'slug'  => '_blog_page',
				'title' => esc_html__( 'Blog', 'calla' ),
				'icon'  => 'fa fa-files-o'
			)
		);
		
		/**
		 * Blog Lists
		 */
		$panel_blog_lists = calla_elated_add_admin_panel(
			array(
				'page'  => '_blog_page',
				'name'  => 'panel_blog_lists',
				'title' => esc_html__( 'Blog Lists', 'calla' )
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_list_type',
				'type'          => 'select',
				'label'         => esc_html__( 'Blog Layout for Archive Pages', 'calla' ),
				'description'   => esc_html__( 'Choose a default blog layout for archived blog post lists', 'calla' ),
				'default_value' => 'standard',
				'parent'        => $panel_blog_lists,
				'options'       => $blog_list_type_options
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'archive_sidebar_layout',
				'type'          => 'select',
				'label'         => esc_html__( 'Sidebar Layout for Archive Pages', 'calla' ),
				'description'   => esc_html__( 'Choose a sidebar layout for archived blog post lists', 'calla' ),
				'default_value' => '',
				'parent'        => $panel_blog_lists,
                'options'       => calla_elated_get_custom_sidebars_options(),
			)
		);
		
		$calla_custom_sidebars = calla_elated_get_custom_sidebars();
		if ( count( $calla_custom_sidebars ) > 0 ) {
			calla_elated_add_admin_field(
				array(
					'name'        => 'archive_custom_sidebar_area',
					'type'        => 'selectblank',
					'label'       => esc_html__( 'Sidebar to Display for Archive Pages', 'calla' ),
					'description' => esc_html__( 'Choose a sidebar to display on archived blog post lists. Default sidebar is "Sidebar Page"', 'calla' ),
					'parent'      => $panel_blog_lists,
					'options'     => calla_elated_get_custom_sidebars(),
					'args'        => array(
						'select2' => true
					)
				)
			);
		}
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_masonry_layout',
				'type'          => 'select',
				'label'         => esc_html__( 'Masonry - Layout', 'calla' ),
				'default_value' => 'in-grid',
				'description'   => esc_html__( 'Set masonry layout. Default is in grid.', 'calla' ),
				'parent'        => $panel_blog_lists,
				'options'       => array(
					'in-grid'    => esc_html__( 'In Grid', 'calla' ),
					'full-width' => esc_html__( 'Full Width', 'calla' )
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_masonry_number_of_columns',
				'type'          => 'select',
				'label'         => esc_html__( 'Masonry - Number of Columns', 'calla' ),
				'default_value' => 'three',
				'description'   => esc_html__( 'Set number of columns for your masonry blog lists. Default value is 4 columns', 'calla' ),
				'parent'        => $panel_blog_lists,
				'options'       => array(
					'two'   => esc_html__( '2 Columns', 'calla' ),
					'three' => esc_html__( '3 Columns', 'calla' ),
					'four'  => esc_html__( '4 Columns', 'calla' ),
					'five'  => esc_html__( '5 Columns', 'calla' )
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_masonry_space_between_items',
				'type'          => 'select',
				'label'         => esc_html__( 'Masonry - Space Between Items', 'calla' ),
				'description'   => esc_html__( 'Set space size between posts for your masonry blog lists. Default value is normal', 'calla' ),
				'default_value' => 'normal',
				'options'       => calla_elated_get_space_between_items_array(),
				'parent'        => $panel_blog_lists
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_list_featured_image_proportion',
				'type'          => 'select',
				'label'         => esc_html__( 'Masonry - Featured Image Proportion', 'calla' ),
				'default_value' => 'fixed',
				'description'   => esc_html__( 'Choose type of proportions you want to use for featured images on masonry blog lists', 'calla' ),
				'parent'        => $panel_blog_lists,
				'options'       => array(
					'fixed'    => esc_html__( 'Fixed', 'calla' ),
					'original' => esc_html__( 'Original', 'calla' )
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_pagination_type',
				'type'          => 'select',
				'label'         => esc_html__( 'Pagination Type', 'calla' ),
				'description'   => esc_html__( 'Choose a pagination layout for Blog Lists', 'calla' ),
				'parent'        => $panel_blog_lists,
				'default_value' => 'standard',
				'options'       => array(
					'standard'        => esc_html__( 'Standard', 'calla' ),
					'load-more'       => esc_html__( 'Load More', 'calla' ),
					'infinite-scroll' => esc_html__( 'Infinite Scroll', 'calla' ),
					'no-pagination'   => esc_html__( 'No Pagination', 'calla' )
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'text',
				'name'          => 'number_of_chars',
				'default_value' => '40',
				'label'         => esc_html__( 'Number of Words in Excerpt', 'calla' ),
				'description'   => esc_html__( 'Enter a number of words in excerpt (article summary). Default value is 40', 'calla' ),
				'parent'        => $panel_blog_lists,
				'args'          => array(
					'col_width' => 3
				)
			)
		);
		
		/**
		 * Blog Single
		 */
		$panel_blog_single = calla_elated_add_admin_panel(
			array(
				'page'  => '_blog_page',
				'name'  => 'panel_blog_single',
				'title' => esc_html__( 'Blog Single', 'calla' )
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_single_sidebar_layout',
				'type'          => 'select',
				'label'         => esc_html__( 'Sidebar Layout', 'calla' ),
				'description'   => esc_html__( 'Choose a sidebar layout for Blog Single pages', 'calla' ),
				'default_value' => '',
				'parent'        => $panel_blog_single,
                'options'       => calla_elated_get_custom_sidebars_options()
			)
		);
		
		if ( count( $calla_custom_sidebars ) > 0 ) {
			calla_elated_add_admin_field(
				array(
					'name'        => 'blog_single_custom_sidebar_area',
					'type'        => 'selectblank',
					'label'       => esc_html__( 'Sidebar to Display', 'calla' ),
					'description' => esc_html__( 'Choose a sidebar to display on Blog Single pages. Default sidebar is "Sidebar"', 'calla' ),
					'parent'      => $panel_blog_single,
					'options'     => calla_elated_get_custom_sidebars(),
					'args'        => array(
						'select2' => true
					)
				)
			);
		}
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'select',
				'name'          => 'show_title_area_blog',
				'default_value' => '',
				'label'         => esc_html__( 'Show Title Area', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show title area on single post pages', 'calla' ),
				'parent'        => $panel_blog_single,
				'options'       => calla_elated_get_yes_no_select_array(),
				'args'          => array(
					'col_width' => 3
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_single_title_in_title_area',
				'type'          => 'yesno',
				'label'         => esc_html__( 'Show Post Title in Title Area', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show post title in title area on single post pages', 'calla' ),
				'parent'        => $panel_blog_single,
				'default_value' => 'no'
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_single_related_posts',
				'type'          => 'yesno',
				'label'         => esc_html__( 'Show Related Posts', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show related posts on single post pages', 'calla' ),
				'parent'        => $panel_blog_single,
				'default_value' => 'yes'
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'name'          => 'blog_single_comments',
				'type'          => 'yesno',
				'label'         => esc_html__( 'Show Comments Form', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show comments form on single post pages', 'calla' ),
				'parent'        => $panel_blog_single,
				'default_value' => 'yes'
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'yesno',
				'name'          => 'blog_single_navigation',
				'default_value' => 'no',
				'label'         => esc_html__( 'Enable Prev/Next Single Post Navigation Links', 'calla' ),
				'description'   => esc_html__( 'Enable navigation links through the blog posts (left and right arrows will appear)', 'calla' ),
				'parent'        => $panel_blog_single
			)
		);
		
		$blog_single_navigation_container = calla_elated_add_admin_container(
			array(
				'name'            => 'eltdf_blog_single_navigation_container',
				'parent'          => $panel_blog_single,
				'dependency' => array(
					'show' => array(
						'blog_single_navigation' => 'yes'
					)
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'yesno',
				'name'          => 'blog_navigation_through_same_category',
				'default_value' => 'no',
				'label'         => esc_html__( 'Enable Navigation Only in Current Category', 'calla' ),
				'description'   => esc_html__( 'Limit your navigation only through current category', 'calla' ),
				'parent'        => $blog_single_navigation_container,
				'args'          => array(
					'col_width' => 3
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'yesno',
				'name'          => 'blog_author_info',
				'default_value' => 'yes',
				'label'         => esc_html__( 'Show Author Info Box', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will display author name and descriptions on single post pages', 'calla' ),
				'parent'        => $panel_blog_single
			)
		);

        calla_elated_add_admin_field(
            array(
                'type'          => 'text',
                'name'          => 'blog_single_grid_padding',
                'default_value' => '',
                'label'         => esc_html__( 'Blog single padding for container', 'calla' ),
                'description'   => esc_html__( 'Insert padding in format: top right bottom left (e.g. 10px 5px 10px 5px or 10% 5% 10% 5%', 'calla' ),
                'parent'        => $panel_blog_single
            )
        );
		
		$blog_single_author_info_container = calla_elated_add_admin_container(
			array(
				'name'            => 'eltdf_blog_single_author_info_container',
				'parent'          => $panel_blog_single,
				'dependency' => array(
					'show' => array(
						'blog_author_info' => 'yes'
					)
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'yesno',
				'name'          => 'blog_author_info_email',
				'default_value' => 'no',
				'label'         => esc_html__( 'Show Author Email', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show author email', 'calla' ),
				'parent'        => $blog_single_author_info_container,
				'args'          => array(
					'col_width' => 3
				)
			)
		);
		
		calla_elated_add_admin_field(
			array(
				'type'          => 'yesno',
				'name'          => 'blog_single_author_social',
				'default_value' => 'yes',
				'label'         => esc_html__( 'Show Author Social Icons', 'calla' ),
				'description'   => esc_html__( 'Enabling this option will show author social icons on single post pages', 'calla' ),
				'parent'        => $blog_single_author_info_container,
				'args'          => array(
					'col_width' => 3
				)
			)
		);
		
		do_action( 'calla_elated_blog_single_options_map', $panel_blog_single );
	}
	
	add_action( 'calla_elated_options_map', 'calla_elated_blog_options_map', 11 );
}