<?php
/*
* Header Customization Panel
* Site Identity (Desktop Logo Width, Logo Mobile)
* Section - Header Image
* Section - Header Settings - Top Bar (enable, disable). Date (Enable/disable), Search form (enable/disable)
* Section - Header Mobile
*/
function phnewsfeed_header_customize_register($wp_customize) {

	$wp_customize->add_panel(
		'phnewsfeed-header-settings', array(
			'title'		=>	__('Header Settings', 'ph-news-feed'),
			'priority'	=>	20
		)
	);
	
	$wp_customize->get_section('title_tagline')->panel = 'phnewsfeed-header-settings';
	$wp_customize->get_section('title_tagline')->priority = 5;
	$wp_customize->get_section('header_image')->panel = 'phnewsfeed-header-settings';
	$wp_customize->get_section('header_image')->priority = 5;
	
	//Logo
	$wp_customize->add_setting( 'phnewsfeed-logo-max-height', array(
		'default' => 90,
		'sanitize_callback' => 'absint'
	));
	
	$wp_customize->add_control( new WP_Customize_Control(
		$wp_customize,
		'phnewsfeed-logo-max-height',
			array(
				'label'    => __( 'Logo height (in pixels)', 'ph-news-feed' ),
				'description'    => __( 'Adjust Height of Logo in desktop view if its too large. This only affects the maximum height. If your logo is small, it will not make it bigger.', 'ph-news-feed' ),
				'section'  => 'title_tagline',
				'settings' => 'phnewsfeed-logo-max-height',
				'priority' => 5,
				'type'     => 'range',
				'input_attrs' => array(
					'min' => 30,
					'max' => 100,
					'step' => 1,
				  )
			)
		)
	);
	
	$wp_customize->add_setting( 'phnewsfeed-mobile-logo', array(
		'sanitize_callback' => 'esc_url_raw'
	));
 
	$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'phnewsfeed-mobile-logo-control', array(
		'label' => __('Mobile Logo (optional)','ph-news-feed'),
		'description' => __('If you want a different logo to be used for mobile devices, you can use this setting. By Default, Main Logo will be shown for Desktop and Mobile both.','ph-news-feed'),
		'priority' => 100,
		'section' => 'title_tagline',
		'settings' => 'phnewsfeed-mobile-logo',
		'button_labels' => array(// All These labels are optional
					'select' => __('Select Logo','ph-news-feed'),
					'remove' => __('Remove Logo','ph-news-feed'),
					'change' => __('Change Logo','ph-news-feed'),
					)
	)));
	
	//Header Image
	$wp_customize->add_setting('pixahive-header-image-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new phnewsfeed_Custom_Notice_Control(
			$wp_customize, 'pixahive-header-image-message', array(
				'label'		=>	__('Note:', 'ph-news-feed'),
				'description'	=>	__('Header Image only appears when you choose Style 1 in <strong>Header Styles & Layouts</strong>. Header image doesn\'t appear when Style 2 is selected.', 'ph-news-feed'),
				'priority'		=>	1,
				'section'		=>	'header_image',
			)
		)
	);
	
	//Styles & Layouts
	$wp_customize->add_section(
		'phnewsfeed-header-styles-layouts', array(
			'title'		=>	__('Header Styles (Desktop)', 'ph-news-feed'),
			'priority'	=>	30,
			'panel'		=>	'phnewsfeed-header-settings'
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-style', array(
			'default' => 'style3',
			'sanitize_callback'	=>	'phnewsfeed_sanitize_fa_style'
		)
	);
	
	$wp_customize->add_control(
		new phnewsfeed_Image_Radio_Control($wp_customize, 
			'phnewsfeed-header-style', array(
				'type' => 'radio',
				'label' => esc_html__('Select Header Style', 'ph-news-feed'),
				'section' => 'phnewsfeed-header-styles-layouts',
				'settings' => 'phnewsfeed-header-style',
				'choices' => array(
					'style1' => get_template_directory_uri() . '/inc/customizer/images/header-style1.png',
					'style2' => get_template_directory_uri() . '/inc/customizer/images/header-style2.png',
					'style3' => get_template_directory_uri() . '/inc/customizer/images/header-style3.png',
				)
			)
		)
	);
	
	//Colors (FOR STYLE 2 Only)
	$wp_customize->add_setting(
		'phnewsfeed-header-bg-color', array(
			'default'	=>	'#000000',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-bg-color', array(
				'label'		=>	esc_html__('Header Background Color', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-header-bg-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						('style2' == $control->manager->get_setting('phnewsfeed-header-style')->value())
						||
						(
							(0 == $control->manager->get_setting('phnewsfeed-enable-header-gradient')->value())
							&&
							('style3' == $control->manager->get_setting('phnewsfeed-header-style')->value())
						)
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-bg-lighter-color', array(
			'default'	=>	'#222222',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-bg-lighter-color', array(
				'label'		=>	esc_html__('Header Background (Lighter Shade)', 'ph-news-feed'),
				'description'	=>	esc_html__('Background color of social icons & search bar.', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-header-bg-lighter-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return ('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value());
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-top-bar-text-color', array(
			'default'	=>	'#777777',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-top-bar-text-color', array(
				'label'		=>	esc_html__('Top Bar Text Color', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-top-bar-text-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('phnewsfeed-enable-top-bar')->value())
						&&
						('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value())
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-top-bar-bg-color', array(
			'default'	=>	'#000',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-top-bar-bg-color', array(
				'label'		=>	esc_html__('Top Bar Background Color', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-top-bar-bg-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('phnewsfeed-enable-top-bar')->value())
						&&
						('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value())
					);
				}
			)	
		)
	);
	
	//Gradient for Header Background [Style3 Only]
	$wp_customize->add_setting(
		'phnewsfeed-enable-header-gradient', array(
			'default'		=>	1,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'phnewsfeed-enable-header-gradient', array(
			  'type' => 'checkbox',
			  'section'		=>	'phnewsfeed-header-styles-layouts',
			  'label' => __( 'Enable Header Gradient','ph-news-feed' ),
			  'description' => __( 'This enables you to choose 2 colors for Header.','ph-news-feed' ),
			  'active_callback' => function($control) {
				  return ('style3' == $control->manager->get_setting('phnewsfeed-header-style')->value());
			  }
			)	
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-gradient-left', array(
			'default'	=>	'#c90000',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-gradient-left', array(
				'label'		=>	esc_html__('Header Gradient (Left)', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-header-gradient-left',
				'priority'	=>	29,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('phnewsfeed-enable-header-gradient')->value())
						&&
						('style3' == $control->manager->get_setting('phnewsfeed-header-style')->value())
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-gradient-right', array(
			'default'	=>	'#8158ff',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-gradient-right', array(
				'label'		=>	esc_html__('Header Gradient (Right)', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-header-gradient-right',
				'priority'	=>	29,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('phnewsfeed-enable-header-gradient')->value())
						&&
						('style3' == $control->manager->get_setting('phnewsfeed-header-style')->value())
					);
				}
			)	
		)
	);
	
	
	//END Header Gradient
	
	
	//Header content Color
	$wp_customize->add_setting(
		'phnewsfeed-header-content-color', array(
			'default'	=>	'#FFFFFF',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-content-color', array(
				'label'		=>	esc_html__('Header Content Color', 'ph-news-feed'),
				'description'	=>	esc_html__('Used by social icons, search bar.', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-styles-layouts',
				'settings'	=>	'phnewsfeed-header-content-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return ('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value());
				}
			)	
		)
	);
	//Header Content Color ENDS
	
	//Enable Top Bar
	$wp_customize->add_setting(
		'phnewsfeed-enable-top-bar', array(
			'default'		=>	0,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'phnewsfeed-enable-top-bar', array(
			  'type' => 'checkbox',
			  'section'		=>	'phnewsfeed-header-styles-layouts',
			  'label' => __( 'Enable Top Bar','ph-news-feed' ),
			  'description' => __( 'This enables an additional top bar above header containing Top Menu on the right, and Date on left.','ph-news-feed' ),
			  'active_callback' => function($control) {
				  return ('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value());
			  }
			)	
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-enable-date', array(
			'default'		=>	1,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'phnewsfeed-enable-date', array(
			  'type' => 'checkbox',
			  'section'		=>	'phnewsfeed-header-styles-layouts',
			  'label' => __( 'Enable Date in Top Bar','ph-news-feed' ),
			  'active_callback' => function($control) {
				  return (
					  (true == $control->manager->get_setting('phnewsfeed-enable-top-bar')->value())
					  &&
					  ('style1' !== $control->manager->get_setting('phnewsfeed-header-style')->value())
				  );
			  },
			  
			)	
	);
	//-- Top bar ENDS
	
	
	//Header (Mobile)
	$wp_customize->add_section(
		'phnewsfeed-header-mobile', array(
			'title'		=>	__('Header Style (Mobile)', 'ph-news-feed'),
			'priority'	=>	30,
			'panel'		=>	'phnewsfeed-header-settings'
		)
	);
	
	$wp_customize->add_setting('pixahive-header-mobile-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new phnewsfeed_Custom_Notice_Control(
			$wp_customize, 'pixahive-header-mobile-message', array(
				'label'		=>	__('Header (Mobile)', 'ph-news-feed'),
				'description'	=>	__('For a Better User experience, PH News Feed uses a smaller Mobile Header with just the logo and Menu Icon. The Search Bar, Social Icons, Complete Menu appear when the Hamburger (<span class="dashicons dashicons-menu-alt"></span>) Icon is clicked.', 'ph-news-feed'),
				'priority'		=>	1,
				'section'		=>	'phnewsfeed-header-mobile',
			)
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-mobile-bg-color', array(
			'default'	=>	'#FFFFFF',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-mobile-bg-color', array(
				'label'		=>	esc_html__('Header Background Color', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-mobile',
				'settings'	=>	'phnewsfeed-header-mobile-bg-color',
				'priority'	=>	30,
			)	
		)
	);
	
	$wp_customize->add_setting(
		'phnewsfeed-header-mobile-text-color', array(
			'default'	=>	'#222222',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'phnewsfeed-header-mobile-text-color', array(
				'label'		=>	esc_html__('Content Color (Title/Icons)', 'ph-news-feed'),
				'section'	=>	'phnewsfeed-header-mobile',
				'settings'	=>	'phnewsfeed-header-mobile-text-color',
				'priority'	=>	30,
			)	
		)
	);
	
	
	//Social
	$wp_customize->add_section(
		'phnewsfeed-social-links', array(
			'title'		=>	__('Social Links', 'ph-news-feed'),
			'priority'	=>	30,
			'panel'		=>	'phnewsfeed-header-settings'
		)
	);
	
	$wp_customize->add_setting('pixahive-social-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new phnewsfeed_Custom_Notice_Control(
			$wp_customize, 'pixahive-social-message', array(
				'label'		=>	__('How to Set up Social Icons in Header?', 'ph-news-feed'),
				'description'	=>	__('PH News Feed themes supports social icons via WordPress menus. Its really easy to add and the info is retained when you switch themes. Here is how you do it. <br><br><strong>Step 1. </strong>Go to Appearance > Menus. Create a New Menu. <br><strong>Step 2. </strong>Add Menu Item. Choose Custom Links. Enter your Social Profile URL. Leave the <em>Link Text</em> field blank. Repeat for all social networks you want to display.<br><strong>Step 3. </strong>Choose Menu location as Social Networks, and press Save. <br><br>PH News Feed theme is smart enough and will automatically connect your social urls with correct icons. The theme supports all top social networks.', 'ph-news-feed'),
				'priority'		=>	1,
				'section'		=>	'phnewsfeed-social-links',
			)
		)
	);
	
}
add_action('customize_register','phnewsfeed_header_customize_register');