<?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 mohali_header_customize_register($wp_customize) {

	$wp_customize->add_panel(
		'mohali-header-settings', array(
			'title'		=>	__('Header Settings', 'mohali'),
			'priority'	=>	20
		)
	);
	
	$wp_customize->get_section('title_tagline')->panel = 'mohali-header-settings';
	$wp_customize->get_section('title_tagline')->priority = 5;
	$wp_customize->get_section('header_image')->panel = 'mohali-header-settings';
	$wp_customize->get_section('header_image')->priority = 5;
	
	//Logo
	$wp_customize->add_setting( 'mohali-logo-max-height', array(
		'default' => 90,
		'sanitize_callback' => 'absint'
	));
	
	$wp_customize->add_control( new WP_Customize_Control(
		$wp_customize,
		'mohali-logo-max-height',
			array(
				'label'    => __( 'Logo height (in pixels)', 'mohali' ),
				'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.', 'mohali' ),
				'section'  => 'title_tagline',
				'settings' => 'mohali-logo-max-height',
				'priority' => 5,
				'type'     => 'range',
				'input_attrs' => array(
					'min' => 30,
					'max' => 100,
					'step' => 1,
				  )
			)
		)
	);
	
	$wp_customize->add_setting( 'mohali-mobile-logo', array(
		'sanitize_callback' => 'esc_url_raw'
	));
 
	$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'mohali-mobile-logo-control', array(
		'label' => __('Mobile Logo (optional)','mohali'),
		'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.','mohali'),
		'priority' => 100,
		'section' => 'title_tagline',
		'settings' => 'mohali-mobile-logo',
		'button_labels' => array(// All These labels are optional
					'select' => __('Select Logo','mohali'),
					'remove' => __('Remove Logo','mohali'),
					'change' => __('Change Logo','mohali'),
					)
	)));
	
	//Header Image
	$wp_customize->add_setting('mohali-header-image-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new mohali_Custom_Notice_Control(
			$wp_customize, 'mohali-header-image-message', array(
				'label'		=>	__('Note:', 'mohali'),
				'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.', 'mohali'),
				'priority'		=>	1,
				'section'		=>	'header_image',
			)
		)
	);
	
	//Styles & Layouts
	$wp_customize->add_section(
		'mohali-header-styles-layouts', array(
			'title'		=>	__('Header Styles (Desktop)', 'mohali'),
			'priority'	=>	30,
			'panel'		=>	'mohali-header-settings'
		)
	);
	
	$wp_customize->add_setting(
		'mohali-header-style', array(
			'default' => 'style2',
			'sanitize_callback'	=>	'mohali_sanitize_fa_style'
		)
	);
	
	$wp_customize->add_control(
		new mohali_Image_Radio_Control($wp_customize, 
			'mohali-header-style', array(
				'type' => 'radio',
				'label' => esc_html__('Select Header Style', 'mohali'),
				'section' => 'mohali-header-styles-layouts',
				'settings' => 'mohali-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',
				)
			)
		)
	);
	
	//Colors (FOR STYLE 2 Only)
	$wp_customize->add_setting(
		'mohali-header-bg-color', array(
			'default'	=>	'#fff',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-bg-color', array(
				'label'		=>	esc_html__('Header Background Color', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-header-bg-color',
				'description'	=>	esc_html__('Header layout 5 uses box shadow, its best to used it with white background. Also use change menu text and site title to dark colors.', 'mohali'),
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						('style1' !== $control->manager->get_setting('mohali-header-style')->value())
						||
						(
							(0 == $control->manager->get_setting('mohali-enable-header-gradient')->value())
							&&
							('style3' == $control->manager->get_setting('mohali-header-style')->value())
						)
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'mohali-header-bg-lighter-color', array(
			'default'	=>	'#222222',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-bg-lighter-color', array(
				'label'		=>	esc_html__('Header Background (Lighter Shade)', 'mohali'),
				'description'	=>	esc_html__('Background color of social icons & search bar.', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-header-bg-lighter-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return ('style1' !== $control->manager->get_setting('mohali-header-style')->value());
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'mohali-top-bar-text-color', array(
			'default'	=>	'#FFFDEC',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-top-bar-text-color', array(
				'label'		=>	esc_html__('Top Bar Text Color', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-top-bar-text-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('mohali-enable-top-bar')->value())
						&&
						('style1' !== $control->manager->get_setting('mohali-header-style')->value())
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'mohali-top-bar-bg-color', array(
			'default'	=>	'#3a3a3a',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-top-bar-bg-color', array(
				'label'		=>	esc_html__('Top Bar Background Color', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-top-bar-bg-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('mohali-enable-top-bar')->value())
						&&
						('style1' !== $control->manager->get_setting('mohali-header-style')->value())
					);
				}
			)	
		)
	);
	
	//Gradient for Header Background [Style3 Only]
	$wp_customize->add_setting(
		'mohali-enable-header-gradient', array(
			'default'		=>	1,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'mohali-enable-header-gradient', array(
			  'type' => 'checkbox',
			  'section'		=>	'mohali-header-styles-layouts',
			  'label' => __( 'Enable Header Gradient','mohali' ),
			  'description' => __( 'This enables you to choose 2 colors for Header.','mohali' ),
			  'active_callback' => function($control) {
				  return ('style3' == $control->manager->get_setting('mohali-header-style')->value());
			  }
			)	
	);
	
	$wp_customize->add_setting(
		'mohali-header-gradient-left', array(
			'default'	=>	'#c90000',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-gradient-left', array(
				'label'		=>	esc_html__('Header Gradient (Left)', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-header-gradient-left',
				'priority'	=>	29,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('mohali-enable-header-gradient')->value())
						&&
						('style3' == $control->manager->get_setting('mohali-header-style')->value())
					);
				}
			)	
		)
	);
	
	$wp_customize->add_setting(
		'mohali-header-gradient-right', array(
			'default'	=>	'#8158ff',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-gradient-right', array(
				'label'		=>	esc_html__('Header Gradient (Right)', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-header-gradient-right',
				'priority'	=>	29,
				'active_callback' => function($control) {
					return (
						(true == $control->manager->get_setting('mohali-enable-header-gradient')->value())
						&&
						('style3' == $control->manager->get_setting('mohali-header-style')->value())
					);
				}
			)	
		)
	);
	
	
	//END Header Gradient
	
	//Header content Color
	$wp_customize->add_setting(
		'mohali-header-content-color', array(
			'default'	=>	'#FFFFFF',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-content-color', array(
				'label'		=>	esc_html__('Header Content Color', 'mohali'),
				'description'	=>	esc_html__('Used by social icons, search bar.', 'mohali'),
				'section'	=>	'mohali-header-styles-layouts',
				'settings'	=>	'mohali-header-content-color',
				'priority'	=>	30,
				'active_callback' => function($control) {
					return ('style1' !== $control->manager->get_setting('mohali-header-style')->value());
				}
			)	
		)
	);
	//Header Content Color ENDS
	
	//Enable Top Bar
	$wp_customize->add_setting(
		'mohali-enable-top-bar', array(
			'default'		=>	0,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'mohali-enable-top-bar', array(
			  'type' => 'checkbox',
			  'section'		=>	'mohali-header-styles-layouts',
			  'label' => __( 'Enable Top Bar','mohali' ),
			  'description' => __( 'This enables an additional top bar above header containing Top Menu on the right, and Date on left.','mohali' ),
			  'active_callback' => function($control) {
				  return ('style1' !== $control->manager->get_setting('mohali-header-style')->value());
			  }
			)	
	);
	
	$wp_customize->add_setting(
		'mohali-enable-date', array(
			'default'		=>	1,
			'sanitize_callback'	=>	'absint' 
		)
	);
		
	$wp_customize->add_control(
		'mohali-enable-date', array(
			  'type' => 'checkbox',
			  'section'		=>	'mohali-header-styles-layouts',
			  'label' => __( 'Enable Date in Top Bar','mohali' ),
			  'active_callback' => function($control) {
				  return (
					  (true == $control->manager->get_setting('mohali-enable-top-bar')->value())
					  &&
					  ('style1' !== $control->manager->get_setting('mohali-header-style')->value())
				  );
			  },
			  
			)	
	);

	//Header (Mobile)
	$wp_customize->add_section(
		'mohali-header-mobile', array(
			'title'		=>	__('Header Style (Mobile)', 'mohali'),
			'priority'	=>	30,
			'panel'		=>	'mohali-header-settings'
		)
	);
	
	$wp_customize->add_setting('mohali-header-mobile-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new mohali_Custom_Notice_Control(
			$wp_customize, 'mohali-header-mobile-message', array(
				'label'		=>	__('Header (Mobile)', 'mohali'),
				'description'	=>	__('For a Better User experience, PH News Center 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.', 'mohali'),
				'priority'		=>	1,
				'section'		=>	'mohali-header-mobile',
			)
		)
	);
	
	$wp_customize->add_setting(
		'mohali-header-mobile-bg-color', array(
			'default'	=>	'#FFFFFF',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-mobile-bg-color', array(
				'label'		=>	esc_html__('Header Background Color', 'mohali'),
				'section'	=>	'mohali-header-mobile',
				'settings'	=>	'mohali-header-mobile-bg-color',
				'priority'	=>	30,
			)	
		)
	);
	
	$wp_customize->add_setting(
		'mohali-header-mobile-text-color', array(
			'default'	=>	'#222222',
			'sanitize_callback'	=>	'sanitize_hex_color'
		)
	);
	
	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize, 'mohali-header-mobile-text-color', array(
				'label'		=>	esc_html__('Content Color (Title/Icons)', 'mohali'),
				'section'	=>	'mohali-header-mobile',
				'settings'	=>	'mohali-header-mobile-text-color',
				'priority'	=>	30,
			)	
		)
	);
	
	
	//Social
	$wp_customize->add_section(
		'mohali-social-links', array(
			'title'		=>	__('Social Links', 'mohali'),
			'priority'	=>	30,
			'panel'		=>	'mohali-header-settings'
		)
	);
	
	$wp_customize->add_setting('mohali-social-message', array(
		'sanitize_callback'	=>	'sanitize_text_field' 
		)
	);
	
	$wp_customize->add_control(
		new mohali_Custom_Notice_Control(
			$wp_customize, 'mohali-social-message', array(
				'label'		=>	__('How to Set up Social Icons in Header?', 'mohali'),
				'description'	=>	__('PH News Center 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 Center theme is smart enough and will automatically connect your social urls with correct icons. The theme supports all top social networks.', 'mohali'),
				'priority'		=>	1,
				'section'		=>	'mohali-social-links',
			)
		)
	);
	
}
add_action('customize_register','mohali_header_customize_register');