<?php
/**
 * Conference Event Planner: Customizer
 *
 * @package Conference Event Planner
 * @subpackage conference_event_planner
 */

/**
 * Add postMessage support for site title and description for the Theme Customizer.
 *
 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
 */
function conference_event_planner_customize_register( $wp_customize ) {

	// Pro Version
    class conference_event_planner_Customize_Pro_Version extends WP_Customize_Control {
        public $type = 'pro_options';

        public function render_content() {
            echo '<span>Unlock Premium <strong>'. esc_html( $this->label ) .'</strong>? </span>';
            echo '<a href="'. esc_url($this->description) .'" target="_blank">';
                echo '<span class="dashicons dashicons-info"></span>';
                echo '<strong> '. esc_html( CONFERENCE_EVENT_PLANNER_BUY_TEXT,'conference-event-planner' ) .'<strong></a>';
            echo '</a>';
        }
    }

    // Custom Controls
    function conference_event_planner_sanitize_custom_control( $input ) {
        return $input;
    }

	require get_parent_theme_file_path('/inc/controls/icon-changer.php');

	require get_parent_theme_file_path('/inc/controls/range-slider-control.php');


	// Register the custom control type.
	$wp_customize->register_control_type( 'Conference_Event_Planner_Toggle_Control' );

	//Register the sortable control type.
	$wp_customize->register_control_type( 'Conference_Event_Planner_Control_Sortable');

	//add home page setting pannel
	$wp_customize->add_panel( 'conference_event_planner_panel_id', array(
	    'priority' => 10,
	    'capability' => 'edit_theme_options',
	    'theme_supports' => '',
	    'title' => __( 'Custom Home page ', 'conference-event-planner' ),
	    'description' => __( 'Description of what this panel does.', 'conference-event-planner' ),
	) );

	//TP General Option
	$wp_customize->add_section('conference_event_planner_tp_general_settings',array(
        'title' => __('TP General Option', 'conference-event-planner'),
        'panel' => 'conference_event_planner_panel_id',
        'priority' => 1,
    ) );

    // Add Settings and Controls for Post Layout
	$wp_customize->add_setting('conference_event_planner_sidebar_post_layout',array(
        'default' => 'right',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_sidebar_post_layout',array(
        'type' => 'radio',
        'label'     => __('Post Sidebar Position', 'conference-event-planner'),
        'description'   => __('This option work for blog page, blog single page, archive page and search page.', 'conference-event-planner'),
        'section' => 'conference_event_planner_tp_general_settings',
        'choices' => array(
            'full' => __('Full','conference-event-planner'),
            'left' => __('Left','conference-event-planner'),
            'right' => __('Right','conference-event-planner'),
            'three-column' => __('Three Columns','conference-event-planner'),
            'four-column' => __('Four Columns','conference-event-planner'),
            'grid' => __('Grid Layout','conference-event-planner')
        ),
	) );
	$wp_customize->add_setting('conference_event_planner_sidebar_single_post_layout',array(
        'default' => 'right',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_sidebar_single_post_layout',array(
        'type' => 'radio',
        'label'     => __('Single Post Sidebar Position', 'conference-event-planner'),
        'description'   => __('This option work for single blog page', 'conference-event-planner'),
        'section' => 'conference_event_planner_tp_general_settings',
        'choices' => array(
            'full' => __('Full','conference-event-planner'),
            'left' => __('Left','conference-event-planner'),
            'right' => __('Right','conference-event-planner'),
        ),
	) );
	// Add Settings and Controls for Page Layout
	$wp_customize->add_setting('conference_event_planner_sidebar_page_layout',array(
        'default' => 'right',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_sidebar_page_layout',array(
        'type' => 'radio',
        'label'     => __('Page Sidebar Position', 'conference-event-planner'),
        'description'   => __('This option work for pages.', 'conference-event-planner'),
        'section' => 'conference_event_planner_tp_general_settings',
        'choices' => array(
            'full' => __('Full','conference-event-planner'),
            'left' => __('Left','conference-event-planner'),
            'right' => __('Right','conference-event-planner')
        ),
	) );

	//tp typography option
	$conference_event_planner_font_array = array(
		''                       => 'No Fonts',
		'Abril Fatface'          => 'Abril Fatface',
		'Acme'                   => 'Acme',
		'Anton'                  => 'Anton',
		'Architects Daughter'    => 'Architects Daughter',
		'Arimo'                  => 'Arimo',
		'Arsenal'                => 'Arsenal',
		'Arvo'                   => 'Arvo',
		'Alegreya'               => 'Alegreya',
		'Alfa Slab One'          => 'Alfa Slab One',
		'Averia Serif Libre'     => 'Averia Serif Libre',
		'Bangers'                => 'Bangers',
		'Boogaloo'               => 'Boogaloo',
		'Bad Script'             => 'Bad Script',
		'Bitter'                 => 'Bitter',
		'Bree Serif'             => 'Bree Serif',
		'BenchNine'              => 'BenchNine',
		'Cabin'                  => 'Cabin',
		'Cardo'                  => 'Cardo',
		'Courgette'              => 'Courgette',
		'Cherry Swash'           => 'Cherry Swash',
		'Cormorant Garamond'     => 'Cormorant Garamond',
		'Crimson Text'           => 'Crimson Text',
		'Cuprum'                 => 'Cuprum',
		'Cookie'                 => 'Cookie',
		'Chewy'                  => 'Chewy',
		'Days One'               => 'Days One',
		'Dosis'                  => 'Dosis',
		'Droid Sans'             => 'Droid Sans',
		'Economica'              => 'Economica',
		'Fredoka One'            => 'Fredoka One',
		'Fjalla One'             => 'Fjalla One',
		'Francois One'           => 'Francois One',
		'Frank Ruhl Libre'       => 'Frank Ruhl Libre',
		'Gloria Hallelujah'      => 'Gloria Hallelujah',
		'Great Vibes'            => 'Great Vibes',
		'Handlee'                => 'Handlee',
		'Hammersmith One'        => 'Hammersmith One',
		'Inconsolata'            => 'Inconsolata',
		'Indie Flower'           => 'Indie Flower',
		'IM Fell English SC'     => 'IM Fell English SC',
		'Julius Sans One'        => 'Julius Sans One',
		'Josefin Slab'           => 'Josefin Slab',
		'Josefin Sans'           => 'Josefin Sans',
		'Kanit'                  => 'Kanit',
		'Lobster'                => 'Lobster',
		'Lato'                   => 'Lato',
		'Lora'                   => 'Lora',
		'Libre Baskerville'      => 'Libre Baskerville',
		'Lobster Two'            => 'Lobster Two',
		'Merriweather'           => 'Merriweather',
		'Monda'                  => 'Monda',
		'Montserrat'             => 'Montserrat',
		'Muli'                   => 'Muli',
		'Marck Script'           => 'Marck Script',
		'Noto Serif'             => 'Noto Serif',
		'Open Sans'              => 'Open Sans',
		'Overpass'               => 'Overpass',
		'Overpass Mono'          => 'Overpass Mono',
		'Oxygen'                 => 'Oxygen',
		'Orbitron'               => 'Orbitron',
		'Patua One'              => 'Patua One',
		'Pacifico'               => 'Pacifico',
		'Padauk'                 => 'Padauk',
		'Playball'               => 'Playball',
		'Playfair Display'       => 'Playfair Display',
		'PT Sans'                => 'PT Sans',
		'Philosopher'            => 'Philosopher',
		'Permanent Marker'       => 'Permanent Marker',
		'Poiret One'             => 'Poiret One',
		'Quicksand'              => 'Quicksand',
		'Quattrocento Sans'      => 'Quattrocento Sans',
		'Raleway'                => 'Raleway',
		'Rubik'                  => 'Rubik',
		'Rokkitt'                => 'Rokkitt',
		'Russo One'              => 'Russo One',
		'Righteous'              => 'Righteous',
		'Slabo'                  => 'Slabo',
		'Source Sans Pro'        => 'Source Sans Pro',
		'Shadows Into Light Two' => 'Shadows Into Light Two',
		'Shadows Into Light'     => 'Shadows Into Light',
		'Sacramento'             => 'Sacramento',
		'Shrikhand'              => 'Shrikhand',
		'Tangerine'              => 'Tangerine',
		'Ubuntu'                 => 'Ubuntu',
		'VT323'                  => 'VT323',
		'Varela Round'           => 'Varela Round',
		'Vampiro One'            => 'Vampiro One',
		'Vollkorn'               => 'Vollkorn',
		'Volkhov'                => 'Volkhov',
		'Yanone Kaffeesatz'      => 'Yanone Kaffeesatz'
	);

	$wp_customize->add_section('conference_event_planner_typography_option',array(
		'title'         => __('TP Typography Option', 'conference-event-planner'),
		'priority' => 1,
		'panel' => 'conference_event_planner_panel_id'
   	));

   	$wp_customize->add_setting('conference_event_planner_heading_font_family', array(
		'default'           => '',
		'capability'        => 'edit_theme_options',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices',
	));
	$wp_customize->add_control(	'conference_event_planner_heading_font_family', array(
		'section' => 'conference_event_planner_typography_option',
		'label'   => __('heading Fonts', 'conference-event-planner'),
		'type'    => 'select',
		'choices' => $conference_event_planner_font_array,
	));

	$wp_customize->add_setting('conference_event_planner_body_font_family', array(
		'default'           => '',
		'capability'        => 'edit_theme_options',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices',
	));
	$wp_customize->add_control(	'conference_event_planner_body_font_family', array(
		'section' => 'conference_event_planner_typography_option',
		'label'   => __('Body Fonts', 'conference-event-planner'),
		'type'    => 'select',
		'choices' => $conference_event_planner_font_array,
	));

	//TP Color Option
	$wp_customize->add_section('conference_event_planner_color_option',array(
     'title'         => __('TP Color Option', 'conference-event-planner'),
     'priority' => 1,
     'panel' => 'conference_event_planner_panel_id'
    ) );
    
	$wp_customize->add_setting( 'conference_event_planner_tp_color_option', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_color_option', array(
			'label'     => __('Theme First Color', 'conference-event-planner'),
	    'description' => __('It will change the complete theme color in one click.', 'conference-event-planner'),
	    'section' => 'conference_event_planner_color_option',
	    'settings' => 'conference_event_planner_tp_color_option',
  	)));

  	$wp_customize->add_setting( 'conference_event_planner_tp_color_option_link', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_color_option_link', array(
			'label'     => __('Theme Second Color', 'conference-event-planner'),
	    'description' => __('It will change the complete theme color in one click.', 'conference-event-planner'),
	    'section' => 'conference_event_planner_color_option',
	    'settings' => 'conference_event_planner_tp_color_option_link',
  	)));

  	//TP Preloader Option
	$wp_customize->add_section('conference_event_planner_prealoader_option',array(
		'title' => __('TP Preloader Option', 'conference-event-planner'),
		'panel' => 'conference_event_planner_panel_id',
		'priority' => 1,
 	) );
	$wp_customize->add_setting( 'conference_event_planner_preloader_show_hide', array(
		'default'           => false,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_preloader_show_hide', array(
		'label'       => esc_html__( 'Show / Hide Preloader Option', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_prealoader_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_preloader_show_hide',
	) ) );
  	$wp_customize->add_setting( 'conference_event_planner_tp_preloader_color1_option', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_preloader_color1_option', array(
	    'description' => __('It will change the complete theme preloader ring 1 color in one click.', 'conference-event-planner'),
	    'section' => 'conference_event_planner_prealoader_option',
	    'settings' => 'conference_event_planner_tp_preloader_color1_option',
  	)));
  	$wp_customize->add_setting( 'conference_event_planner_tp_preloader_color2_option', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_preloader_color2_option', array(
	    'description' => __('It will change the complete theme preloader ring 2 color in one click.', 'conference-event-planner'),
	    'section' => 'conference_event_planner_prealoader_option',
	    'settings' => 'conference_event_planner_tp_preloader_color2_option',
  	)));
  	$wp_customize->add_setting( 'conference_event_planner_tp_preloader_bg_option', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_preloader_bg_option', array(
	    'description' => __('It will change the complete theme preloader bg color in one click.', 'conference-event-planner'),
	    'section' => 'conference_event_planner_prealoader_option',
	    'settings' => 'conference_event_planner_tp_preloader_bg_option',
  	)));

  	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_preloader_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_preloader_pro_version_logo', array(
        'section'     => 'conference_event_planner_prealoader_option',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//TP Blog Option
	$wp_customize->add_section('conference_event_planner_blog_option',array(
        'title' => __('TP Blog Option', 'conference-event-planner'),
        'panel' => 'conference_event_planner_panel_id',
        'priority' => 1,
    ) );

    $wp_customize->add_setting('conference_event_planner_edit_blog_page_title',array(
		'default'=> __('Home','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_edit_blog_page_title',array(
		'label'	=> __('Change Blog Page Title','conference-event-planner'),
		'section'=> 'conference_event_planner_blog_option',
		'type'=> 'text'
	));

	$wp_customize->add_setting('conference_event_planner_edit_blog_page_description',array(
		'default'=> '',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_edit_blog_page_description',array(
		'label'	=> __('Add Blog Page Description','conference-event-planner'),
		'section'=> 'conference_event_planner_blog_option',
		'type'=> 'text'
	));

    $wp_customize->add_setting('blog_meta_order', array(
        'default' => array('date', 'author', 'comment','category', 'time'),
        'sanitize_callback' => 'conference_event_planner_sanitize_sortable',
    ));
    $wp_customize->add_control(new Conference_Event_Planner_Control_Sortable($wp_customize, 'blog_meta_order', array(
    	'label' => esc_html__('Meta Order', 'conference-event-planner'),
        'description' => __('Drag & Drop post items to re-arrange the order and also hide and show items as per the need by clicking on the eye icon.', 'conference-event-planner') ,
        'section' => 'conference_event_planner_blog_option',
        'choices' => array(
            'date' => __('date', 'conference-event-planner') ,
            'author' => __('author', 'conference-event-planner') ,
            'comment' => __('comment', 'conference-event-planner') ,
            'category' => __('category', 'conference-event-planner') ,
            'time' => __('time', 'conference-event-planner') ,
        ) ,
    )));
	$wp_customize->add_setting( 'conference_event_planner_excerpt_count', array(
		'default'              => 35,
		'type'                 => 'theme_mod',
		'transport' 		   => 'refresh',
		'sanitize_callback'    => 'conference_event_planner_sanitize_number_range',
		'sanitize_js_callback' => 'absint',
	) );
	$wp_customize->add_control( 'conference_event_planner_excerpt_count', array(
		'label'       => esc_html__( 'Edit Excerpt Limit','conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 50,
		),
	) );    

	$wp_customize->add_setting('conference_event_planner_show_first_caps',array(
        'default' => false,
        'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
    ));
	$wp_customize->add_control( 'conference_event_planner_show_first_caps',array(
		'label' => esc_html__('First Cap (First Capital Letter)', 'conference-event-planner'),
		'type' => 'checkbox',
		'section' => 'conference_event_planner_blog_option',
	));
	
    $wp_customize->add_setting('conference_event_planner_read_more_text',array(
		'default'=> __('Read More','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_read_more_text',array(
		'label'	=> __('Edit Button Text','conference-event-planner'),
		'section'=> 'conference_event_planner_blog_option',
		'type'=> 'text'
	));

	$wp_customize->add_setting('conference_event_planner_post_image_round', array(
	  'default' => '0',
      'sanitize_callback' => 'conference_event_planner_sanitize_number_range',
	));
	$wp_customize->add_control(new conference_event_planner_Range_Slider($wp_customize, 'conference_event_planner_post_image_round', array(
       'section' => 'conference_event_planner_blog_option',
      'label' => esc_html__('Edit Post Image Border Radius', 'conference-event-planner'),
      'input_attrs' => array(
        'min' => 0,
        'max' => 180,
        'step' => 1
    )
	)));

	$wp_customize->add_setting('conference_event_planner_post_image_width', array(
	  'default' => '',
      'sanitize_callback' => 'conference_event_planner_sanitize_number_range',
	));
	$wp_customize->add_control(new conference_event_planner_Range_Slider($wp_customize, 'conference_event_planner_post_image_width', array(
       'section' => 'conference_event_planner_blog_option',
      'label' => esc_html__('Edit Post Image Width', 'conference-event-planner'),
      'input_attrs' => array(
        'min' => 0,
        'max' => 367,
        'step' => 1
    )
	)));

	$wp_customize->add_setting('conference_event_planner_post_image_length', array(
	  'default' => '',
      'sanitize_callback' => 'conference_event_planner_sanitize_number_range',
	));
	$wp_customize->add_control(new conference_event_planner_Range_Slider($wp_customize, 'conference_event_planner_post_image_length', array(
       'section' => 'conference_event_planner_blog_option',
      'label' => esc_html__('Edit Post Image height', 'conference-event-planner'),
      'input_attrs' => array(
        'min' => 0,
        'max' => 900,
        'step' => 1
    )
	)));

	$wp_customize->add_setting( 'conference_event_planner_remove_read_button', array(
		 'default'           => true,
		 'transport'         => 'refresh',
		 'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_remove_read_button', array(
		'label'       => esc_html__( 'Show / Hide Read More Button', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_remove_read_button',
	) ) );
    $wp_customize->selective_refresh->add_partial( 'conference_event_planner_remove_read_button', array(
		'selector' => '.readmore-btn',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_remove_read_button',
	));
	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_read_more_text', array(
		'selector' => '.readmore-btn',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_read_more_text',
	) );
	$wp_customize->add_setting( 'conference_event_planner_remove_tags', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_remove_tags', array(
		'label'       => esc_html__( 'Show / Hide Tags Option', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_remove_tags',
	) ) );
    $wp_customize->selective_refresh->add_partial( 'conference_event_planner_remove_tags', array(
		'selector' => '.box-content a[rel="tag"]',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_remove_tags',
	));

	$wp_customize->add_setting( 'conference_event_planner_remove_category', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_remove_category', array(
		'label'       => esc_html__( 'Show / Hide Category Option', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_remove_category',
	) ) );
    $wp_customize->selective_refresh->add_partial( 'conference_event_planner_remove_category', array(
		'selector' => '.box-content a[rel="category"]',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_remove_category',
	));
	$wp_customize->add_setting( 'conference_event_planner_remove_comment', array(
	 'default'           => true,
	 'transport'         => 'refresh',
	 'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
 	) );

	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_remove_comment', array(
	 'label'       => esc_html__( 'Show / Hide Comment Form', 'conference-event-planner' ),
	 'section'     => 'conference_event_planner_blog_option',
	 'type'        => 'toggle',
	 'settings'    => 'conference_event_planner_remove_comment',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_remove_related_post', array(
	 'default'           => true,
	 'transport'         => 'refresh',
	 'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
 	) );

	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_remove_related_post', array(
	 'label'       => esc_html__( 'Show / Hide Related Post', 'conference-event-planner' ),
	 'section'     => 'conference_event_planner_blog_option',
	 'type'        => 'toggle',
	 'settings'    => 'conference_event_planner_remove_related_post',
	) ) );
	$wp_customize->add_setting('conference_event_planner_related_post_heading',array(
		'default'=> __('Related Posts','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_related_post_heading',array(
		'label'	=> __('Edit Section Title','conference-event-planner'),
		'section'=> 'conference_event_planner_blog_option',
		'type'=> 'text'
	));
	$wp_customize->add_setting( 'conference_event_planner_related_post_per_page', array(
		'default'              => 3,
		'type'                 => 'theme_mod',
		'transport' 		   => 'refresh',
		'sanitize_callback'    => 'conference_event_planner_sanitize_number_range',
		'sanitize_js_callback' => 'absint',
	) );
	$wp_customize->add_control( 'conference_event_planner_related_post_per_page', array(
		'label'       => esc_html__( 'Related Post Per Page','conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 3,
			'max'              => 9,
		),
	) );
	$wp_customize->add_setting( 'conference_event_planner_related_post_per_columns', array(
		'default'              => 3,
		'type'                 => 'theme_mod',
		'transport' 		   => 'refresh',
		'sanitize_callback'    => 'conference_event_planner_sanitize_number_range',
		'sanitize_js_callback' => 'absint',
	) );
	$wp_customize->add_control( 'conference_event_planner_related_post_per_columns', array(
		'label'       => esc_html__( 'Related Post Per Row','conference-event-planner' ),
		'section'     => 'conference_event_planner_blog_option',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 1,
			'max'              => 4,
		),
	) );
	$wp_customize->add_setting('conference_event_planner_post_layout',array(
        'default' => 'image-content',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_post_layout',array(
        'type' => 'radio',
        'label'     => __('Post Layout', 'conference-event-planner'),
        'section' => 'conference_event_planner_blog_option',
        'choices' => array(
            'image-content' => __('Media-Content','conference-event-planner'),
            'content-image' => __('Content-Media','conference-event-planner'),
        ),
	) );

	//TP Single Blog Option
	$wp_customize->add_section('conference_event_planner_single_blog_option',array(
        'title' => __('Single Post Option', 'conference-event-planner'),
        'priority' => 1,
        'panel' => 'conference_event_planner_panel_id'
    ) );

    /** Meta Order */
    $wp_customize->add_setting('conference_event_planner_single_blog_meta_order', array(
        'default' => array('date', 'author', 'comment','category', 'time'),
        'sanitize_callback' => 'conference_event_planner_sanitize_sortable',
    ));
    $wp_customize->add_control(new conference_event_planner_Control_Sortable($wp_customize, 'conference_event_planner_single_blog_meta_order', array(
    	'label' => esc_html__('Meta Order', 'conference-event-planner'),
        'description' => __('Drag & Drop post items to re-arrange the order and also hide and show items as per the need by clicking on the eye icon.', 'conference-event-planner') ,
        'section' => 'conference_event_planner_single_blog_option',
        'choices' => array(
            'date' => __('date', 'conference-event-planner') ,
            'author' => __('author', 'conference-event-planner') ,
            'comment' => __('comment', 'conference-event-planner') ,
            'category' => __('category', 'conference-event-planner') ,
            'time' => __('time', 'conference-event-planner') ,
        ) ,
    )));

    $wp_customize->add_setting('conference_event_planner_single_post_date_icon',array(
		'default'	=> 'far fa-calendar-alt',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
       $wp_customize,'conference_event_planner_single_post_date_icon',array(
		'label'	=> __('Change Date Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_single_blog_option',
		'type'		=> 'conference-event-planner-icon'
	)));

	$wp_customize->add_setting('conference_event_planner_single_post_author_icon',array(
		'default'	=> 'fas fa-user',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
       $wp_customize,'conference_event_planner_single_post_author_icon',array(
		'label'	=> __('Change Author Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_single_blog_option',
		'type'		=> 'conference-event-planner-icon'
	)));

	$wp_customize->add_setting('conference_event_planner_single_post_comment_icon',array(
		'default'	=> 'fas fa-comments',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
       $wp_customize,'conference_event_planner_single_post_comment_icon',array(
		'label'	=> __('Change Comment Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_single_blog_option',
		'type'		=> 'conference-event-planner-icon'
	)));

	$wp_customize->add_setting('conference_event_planner_single_post_category_icon',array(
		'default'	=> 'fas fa-list',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
       $wp_customize,'conference_event_planner_single_post_category_icon',array(
		'label'	=> __('Change Category Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_single_blog_option',
		'type'		=> 'conference-event-planner-icon'
	)));

	$wp_customize->add_setting('conference_event_planner_single_post_time_icon',array(
		'default'	=> 'fas fa-clock',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
       $wp_customize,'conference_event_planner_single_post_time_icon',array(
		'label'	=> __('Change Time Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_single_blog_option',
		'type'		=> 'conference-event-planner-icon'
	)));
	
  	//MENU TYPOGRAPHY
	$wp_customize->add_section( 'conference_event_planner_menu_typography', array(
    	'title'      => __( 'Menu Typography', 'conference-event-planner' ),
    	'priority' => 2,
		'panel' => 'conference_event_planner_panel_id'
	) );

	$wp_customize->add_setting('conference_event_planner_menu_font_weight',array(
        'default' => '400',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_menu_font_weight',array(
     'type' => 'radio',
     'label'     => __('Font Weight', 'conference-event-planner'),
     'section' => 'conference_event_planner_menu_typography',
     'type' => 'select',
     'choices' => array(
         '100' => __('100','conference-event-planner'),
         '200' => __('200','conference-event-planner'),
         '300' => __('300','conference-event-planner'),
         '400' => __('400','conference-event-planner'),
         '500' => __('500','conference-event-planner'),
         '600' => __('600','conference-event-planner'),
         '700' => __('700','conference-event-planner'),
         '800' => __('800','conference-event-planner'),
         '900' => __('900','conference-event-planner')
     ),
	) );

	$wp_customize->add_setting('conference_event_planner_menu_text_tranform',array(
		'default' => 'Capitalize',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices'
 	));
 	$wp_customize->add_control('conference_event_planner_menu_text_tranform',array(
		'type' => 'select',
		'label' => __('Menu Text Transform','conference-event-planner'),
		'section' => 'conference_event_planner_menu_typography',
		'choices' => array(
		   'Uppercase' => __('Uppercase','conference-event-planner'),
		   'Lowercase' => __('Lowercase','conference-event-planner'),
		   'Capitalize' => __('Capitalize','conference-event-planner'),
		),
	) );

	$wp_customize->add_setting('conference_event_planner_menu_font_size', array(
	    'default' => 15,
        'sanitize_callback' => 'conference_event_planner_sanitize_number_range',
	));
	$wp_customize->add_control(new Conference_Event_Planner_Range_Slider($wp_customize, 'conference_event_planner_menu_font_size', array(
        'section' => 'conference_event_planner_menu_typography',
        'label' => esc_html__('Font Size', 'conference-event-planner'),
        'input_attrs' => array(
           'min' => 0,
           'max' => 20,
           'step' => 1
    )
	)));

	$wp_customize->add_setting('conference_event_planner_menus_item_style',array(
		'default' => '',
		'transport' => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_menus_item_style',array(
		'type' => 'select',
		'section' => 'conference_event_planner_menu_typography',
		'label' => __('Menu Hover Effect','conference-event-planner'),
		'choices' => array(
			'None' => __('None','conference-event-planner'),
			'Zoom In' => __('Zoom In','conference-event-planner'),
		),
	) );

	$wp_customize->add_setting( 'conference_event_planner_menu_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_menu_color', array(
			'label'     => __('Change Menu Color', 'conference-event-planner'),
	    'section' => 'conference_event_planner_menu_typography',
	    'settings' => 'conference_event_planner_menu_color',
  	)));

  	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_menu_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_menu_pro_version_logo', array(
        'section'     => 'conference_event_planner_menu_typography',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	// Top bar Section
	$wp_customize->add_section( 'conference_event_planner_topbar', array(
    	'title'      => __( 'Contact Details', 'conference-event-planner' ),
    	'description' => __( 'Add your contact details', 'conference-event-planner' ),
		'panel' => 'conference_event_planner_panel_id',
        'priority' =>  2,
	) );

	$wp_customize->add_setting( 'conference_event_planner_search_icon', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_search_icon', array(
		'label'       => esc_html__( 'Show / Hide Search Option', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_topbar',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_search_icon',
	) ) );

	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_search_icon', array(
		'selector' => '.search_btn i',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_search_icon',
	) );

	$wp_customize->add_setting('conference_event_planner_call',array(
		'default'=> '',
		'sanitize_callback'	=> 'conference_event_planner_sanitize_phone_number'
	));
	$wp_customize->add_control('conference_event_planner_call',array(
		'label'	=> __('Add Phone Number','conference-event-planner'),
		'section'=> 'conference_event_planner_topbar',
		'type'=> 'text'
	));

	$wp_customize->add_setting('conference_event_planner_phone_icon',array(
		'default'	=> 'fas fa-phone',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_phone_icon',array(
		'label'	=> __('Phone Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_topbar',
		'type'		=> 'icon'
	)));
	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_call_text', array(
		'selector' => '.call',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_call_text',
	) );
	$wp_customize->add_setting('conference_event_planner_mail',array(
		'default'=> '',
		'sanitize_callback'	=> 'sanitize_email'
	));
	$wp_customize->add_control('conference_event_planner_mail',array(
		'label'	=> __('Add Mail Address','conference-event-planner'),
		'section'=> 'conference_event_planner_topbar',
		'type'=> 'text'
	));
    $wp_customize->add_setting('conference_event_planner_mail_icon',array(
		'default'	=> 'fas fa-envelope-open',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_mail_icon',array(
		'label'	=> __('Mail Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_topbar',
		'type'		=> 'icon'
	)));
	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_mail_text', array(
		'selector' => '.email',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_mail_text',
	) );
	$wp_customize->add_setting('conference_event_planner_location',array(
		'default'=> '',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_location',array(
		'label'	=> __('Add Location','conference-event-planner'),
		'section'=> 'conference_event_planner_topbar',
		'type'=> 'text'
	));
	$wp_customize->add_setting('conference_event_planner_location_icon',array(
		'default'	=> 'fas fa-map-marker-alt',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_location_icon',array(
		'label'	=> __('Location Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_topbar',
		'type'		=> 'icon'
	)));
	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_location', array(
		'selector' => '.timebox i',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_location',
	) );

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_header_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_header_pro_version_logo', array(
        'section'     => 'conference_event_planner_topbar',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	// Social Link
	$wp_customize->add_section( 'conference_event_planner_social_media', array(
    	'title'      => __( 'Social Media Links', 'conference-event-planner' ),
    	'description' => __( 'Add your Social Links', 'conference-event-planner' ),
		'panel' => 'conference_event_planner_panel_id',
      'priority' => 2,
	) );
	$wp_customize->add_setting( 'conference_event_planner_facebook_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_facebook_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_facebook_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_facebook_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_facebook_url',array(
		'label'	=> __('Facebook Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_facebook_icon',array(
		'default'	=> 'fab fa-facebook-f',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_facebook_icon',array(
		'label'	=> __('Facebook Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));
	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_facebook_url', array(
		'selector' => '.social-media',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_facebook_url',
	) );
	$wp_customize->add_setting( 'conference_event_planner_twitter_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_twitter_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_twitter_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_twitter_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_twitter_url',array(
		'label'	=> __('Twitter Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_twitter_icon',array(
		'default'	=> 'fab fa-twitter',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_twitter_icon',array(
		'label'	=> __('Twitter Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));
	$wp_customize->add_setting( 'conference_event_planner_instagram_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_instagram_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_instagram_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_instagram_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_instagram_url',array(
		'label'	=> __('Instagram Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_instagram_icon',array(
		'default'	=> 'fab fa-instagram',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_instagram_icon',array(
		'label'	=> __('Instagram Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));
	$wp_customize->add_setting( 'conference_event_planner_youtube_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_youtube_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_youtube_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_youtube_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_youtube_url',array(
		'label'	=> __('YouTube Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_youtube_icon',array(
		'default'	=> 'fab fa-youtube',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_youtube_icon',array(
		'label'	=> __('YouTube Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));
	$wp_customize->add_setting( 'conference_event_planner_pint_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_pint_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_pint_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_pint_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_pint_url',array(
		'label'	=> __('Pinterest Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_pint_icon',array(
		'default'	=> 'fab fa-pinterest',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_pint_icon',array(
		'label'	=> __('Pinterest Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));
	$wp_customize->add_setting( 'conference_event_planner_linkedin_new_tab', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_linkedin_new_tab', array(
		'label'       => esc_html__( 'Open in new tab', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_social_media',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_linkedin_new_tab',
	) ) );
	$wp_customize->add_setting('conference_event_planner_linkedin_url',array(
		'default'=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_linkedin_url',array(
		'label'	=> __('Linkedin Link','conference-event-planner'),
		'section'=> 'conference_event_planner_social_media',
		'type'=> 'url'
	));
	$wp_customize->add_setting('conference_event_planner_linkedin_icon',array(
		'default'	=> 'fab fa-linkedin',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_linkedin_icon',array(
		'label'	=> __('Linkedin Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_social_media',
		'type'		=> 'icon'
	)));

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_social_media_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_social_media_pro_version_logo', array(
        'section'     => 'conference_event_planner_social_media',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//home page slider
	$wp_customize->add_section( 'conference_event_planner_slider_section' , array(
    	'title'      => __( 'Slider Settings', 'conference-event-planner' ),
		'panel' => 'conference_event_planner_panel_id',
      'priority' => 3,
	) );
	$wp_customize->add_setting( 'conference_event_planner_slider_arrows', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_slider_arrows', array(
		'label'       => esc_html__( 'Show / Hide slider', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_slider_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_slider_arrows',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_show_slider_title', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new conference_event_planner_Toggle_Control( $wp_customize, 'conference_event_planner_show_slider_title', array(
		'label'       => esc_html__( 'Show / Hide Slider Heading', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_slider_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_show_slider_title',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_show_slider_content', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new conference_event_planner_Toggle_Control( $wp_customize, 'conference_event_planner_show_slider_content', array(
		'label'       => esc_html__( 'Show / Hide Slider Content', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_slider_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_show_slider_content',
	) ) );
	
    $wp_customize->selective_refresh->add_partial( 'conference_event_planner_slider_arrows', array(
			'selector' => '#slider .carousel-caption',
			'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_slider_arrows',
		) );

	for ( $conference_event_planner_count = 1; $conference_event_planner_count <= 4; $conference_event_planner_count++ ) {

		// Add color scheme setting and control.
		$wp_customize->add_setting( 'conference_event_planner_slider_page' . $conference_event_planner_count, array(
			'default'           => '',
			'sanitize_callback' => 'conference_event_planner_sanitize_dropdown_pages'
		) );

		$wp_customize->add_control( 'conference_event_planner_slider_page' . $conference_event_planner_count, array(
			'label'    => __( 'Select Slide Image Page', 'conference-event-planner' ),
			'section'  => 'conference_event_planner_slider_section',
			'type'     => 'dropdown-pages'
		) );
		
	}

	$wp_customize->add_setting( 'conference_event_planner_slider_button', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_slider_button', array(
		'label'       => esc_html__( 'Show / Hide Slider Button', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_slider_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_slider_button',
	) ) );

	$wp_customize->add_setting('conference_event_planner_slider_video', array(
		'default'	=> '',
		'sanitize_callback'	=> 'esc_url_raw'
	));
	$wp_customize->add_control('conference_event_planner_slider_video',array(
		'label'	=> __('Add Video Link','conference-event-planner'),
		'section'	=> 'conference_event_planner_slider_section',
		'type'		=> 'url'
	));

	//Slider excerpt
	$wp_customize->add_setting( 'conference_event_planner_slider_excerpt_length', array(
		'default'              => 15,
		'sanitize_callback'	=> 'absint',
	) );
	$wp_customize->add_control( 'conference_event_planner_slider_excerpt_length', array(
		'label'       => esc_html__( 'Slider Content length','conference-event-planner' ),
		'section'     => 'conference_event_planner_slider_section',
		'type'        => 'number',
		'settings'    => 'conference_event_planner_slider_excerpt_length',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 100,
		),
	) );

	//Slider height
    $wp_customize->add_setting('conference_event_planner_slider_img_height',array(
        'default'=> '',
        'sanitize_callback' => 'sanitize_text_field'
    ));
    $wp_customize->add_control('conference_event_planner_slider_img_height',array(
        'label' => __('Slider Height','conference-event-planner'),
        'description'   => __('Add slider height in px(eg. 700px).','conference-event-planner'),
        'section'=> 'conference_event_planner_slider_section',
        'type'=> 'text'
    ));
	
	$wp_customize->add_setting('conference_event_planner_slider_content_layout',array(
        'default' => 'CENTER-ALIGN',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_slider_content_layout',array(
        'type' => 'radio',
        'label'     => __('Slider Content Layout', 'conference-event-planner'),
        'section' => 'conference_event_planner_slider_section',
        'choices' => array(
            'CENTER-ALIGN' => __('CENTER-ALIGN','conference-event-planner'),
            'LEFT-ALIGN' => __('LEFT-ALIGN','conference-event-planner'),
            'RIGHT-ALIGN' => __('RIGHT-ALIGN','conference-event-planner'),
        ),
	) );

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_slider_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_slider_pro_version_logo', array(
        'section'     => 'conference_event_planner_slider_section',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	// Features Section
	$wp_customize->add_section( 'conference_event_planner_timing', array(
    	'title'      => __( 'Features Section', 'conference-event-planner' ),
    	'priority' => 3,
		'panel' => 'conference_event_planner_panel_id'
	) );

    $wp_customize->add_setting( 'conference_event_planner_features_show_hide', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_features_show_hide', array(
		'label'       => esc_html__( 'Show / Hide Features Section', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_timing',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_features_show_hide',
	) ) );

	for ( $i = 1; $i <= 4; $i++ ) {

		$wp_customize->add_setting('conference_event_planner_feature_icon'.$i,array(
			'default'=> '',
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('conference_event_planner_feature_icon'.$i,array(
			'label'	=> __('Add icon ','conference-event-planner').$i,
			'section'=> 'conference_event_planner_timing',
			'type'=> 'text'
		));

		$wp_customize->add_setting('conference_event_planner_feature_title'.$i,array(
			'default'=> '',
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('conference_event_planner_feature_title'.$i,array(
			'label'	=> __('Add Title ','conference-event-planner').$i,
			'section'=> 'conference_event_planner_timing',
			'type'=> 'text'
		));

		$wp_customize->add_setting('conference_event_planner_feature_text'.$i,array(
			'default'=> '',
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('conference_event_planner_feature_text'.$i,array(
			'label'	=> __('Add Text ','conference-event-planner').$i,
			'section'=> 'conference_event_planner_timing',
			'type'=> 'text'
		));
	}

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_about_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_about_pro_version_logo', array(
        'section'     => 'conference_event_planner_timing',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//home page service
	$wp_customize->add_section( 'conference_event_planner_services_section' , array(
    	'title'      => __( 'Services Section', 'conference-event-planner' ),
    	'priority' => 3,
		'panel' => 'conference_event_planner_panel_id'
	) );

	$wp_customize->add_setting( 'conference_event_planner_services_show_hide', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_services_show_hide', array(
		'label'       => esc_html__( 'Show / Hide Services Section', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_services_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_services_show_hide',
	) ) );

	$wp_customize->add_setting('conference_event_planner_news_heading',array(
		'default'=> '',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_news_heading',array(
		'label'	=> __('Add Heading','conference-event-planner'),
		'section'=> 'conference_event_planner_services_section',
		'type'=> 'text'
	));
	$conference_event_planner_categories = get_categories();
	$cats = array();
	$i = 0;
	$conference_event_planner_offer_cat[]= 'select';
	foreach($conference_event_planner_categories as $category){
		if($i==0){
			$default = $category->slug;
			$i++;
		}
		$conference_event_planner_offer_cat[$category->slug] = $category->name;
	}
	$wp_customize->add_setting('conference_event_planner_services_section_category',array(
		'default'	=> 'select',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices',
	));
	$wp_customize->add_control('conference_event_planner_services_section_category',array(
		'type'    => 'select',
		'choices' => $conference_event_planner_offer_cat,
		'label' => __('Select Category','conference-event-planner'),
		'section' => 'conference_event_planner_services_section',
	));

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_services_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_services_pro_version_logo', array(
        'section'     => 'conference_event_planner_services_section',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//footer
	$wp_customize->add_section('conference_event_planner_footer_section',array(
		'title'	=> __('Footer Widget Settings','conference-event-planner'),
		'panel' => 'conference_event_planner_panel_id',
		'priority' => 4,
	));

	// footer columns
	$wp_customize->add_setting('conference_event_planner_footer_columns',array(
		'default'	=> 4,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_footer_columns',array(
		'label'	=> __('Footer Widget Columns','conference-event-planner'),
		'section'	=> 'conference_event_planner_footer_section',
		'setting'	=> 'conference_event_planner_footer_columns',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 1,
			'max'              => 4,
		),
	));
	$wp_customize->add_setting( 'conference_event_planner_tp_footer_bg_color_option', array(
		'default' => '',
		'sanitize_callback' => 'sanitize_hex_color'
	));
	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_tp_footer_bg_color_option', array(
			'label'     => __('Footer Widget Background Color', 'conference-event-planner'),
			'description' => __('It will change the complete footer widget backgorund color.', 'conference-event-planner'),
			'section' => 'conference_event_planner_footer_section',
			'settings' => 'conference_event_planner_tp_footer_bg_color_option',
	)));

	$wp_customize->add_setting('conference_event_planner_footer_widget_image',array(
		'default'	=> '',
		'sanitize_callback'	=> 'esc_url_raw',
	));
	$wp_customize->add_control( new WP_Customize_Image_Control($wp_customize,'conference_event_planner_footer_widget_image',array(
        'label' => __('Footer Widget Background Image','conference-event-planner'),
        'section' => 'conference_event_planner_footer_section'
	)));

	$wp_customize->selective_refresh->add_partial( 'conference_event_planner_footer_text', array(
		'selector' => '#footer p',
		'render_callback' => 'conference_event_planner_customize_partial_conference_event_planner_footer_text',
	) );

	//footer widget title font size
	$wp_customize->add_setting('conference_event_planner_footer_widget_title_font_size',array(
		'default'	=> '',
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_footer_widget_title_font_size',array(
		'label'	=> __('Change Footer Widget Title Font Size in PX','conference-event-planner'),
		'section'	=> 'conference_event_planner_footer_section',
	    'setting'	=> 'conference_event_planner_footer_widget_title_font_size',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 0,
			'max'              => 50,
		),
	));

	$wp_customize->add_setting( 'conference_event_planner_footer_widget_title_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_footer_widget_title_color', array(
			'label'     => __('Change Footer Widget Title Color', 'conference-event-planner'),
	    'section' => 'conference_event_planner_footer_section',
	    'settings' => 'conference_event_planner_footer_widget_title_color',
  	)));

  	$wp_customize->add_setting('conference_event_planner_footer_widget_title_font_weight',array(
        'default' => '',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_footer_widget_title_font_weight',array(
     'type' => 'radio',
     'label'     => __('Change Footer Widget Title Font Weight', 'conference-event-planner'),
     'section' => 'conference_event_planner_footer_section',
     'type' => 'select',
     'choices' => array(
         '100' => __('100','conference-event-planner'),
         '200' => __('200','conference-event-planner'),
         '300' => __('300','conference-event-planner'),
         '400' => __('400','conference-event-planner'),
         '500' => __('500','conference-event-planner'),
         '600' => __('600','conference-event-planner'),
         '700' => __('700','conference-event-planner'),
         '800' => __('800','conference-event-planner'),
         '900' => __('900','conference-event-planner')
     ),
	) );

	$wp_customize->add_setting('conference_event_planner_footer_widget_title_text_tranform',array(
		'default' => '',
		'sanitize_callback' => 'conference_event_planner_sanitize_choices'
 	));
 	$wp_customize->add_control('conference_event_planner_footer_widget_title_text_tranform',array(
		'type' => 'select',
		'label' => __('Change Footer Widget Title Letter Case','conference-event-planner'),
		'section' => 'conference_event_planner_footer_section',
		'choices' => array(
		   'Uppercase' => __('Uppercase','conference-event-planner'),
		   'Lowercase' => __('Lowercase','conference-event-planner'),
		   'Capitalize' => __('Capitalize','conference-event-planner'),
		),
	) );

	// Add Settings and Controls for position
	$wp_customize->add_setting('conference_event_planner_footer_widget_title_position',array(
        'default' => '',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_footer_widget_title_position',array(
        'type' => 'radio',
        'label'     => __('Change Footer Widget Position', 'conference-event-planner'),
        'description'   => __('This option work for Footer Widget', 'conference-event-planner'),
        'section' => 'conference_event_planner_footer_section',
        'choices' => array(
            'Right' => __('Right','conference-event-planner'),
            'Left' => __('Left','conference-event-planner'),
            'Center' => __('Center','conference-event-planner')
        ),
	) );
  	
	$wp_customize->add_setting( 'conference_event_planner_return_to_header', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_return_to_header', array(
		'label'       => esc_html__( 'Show / Hide Return to header', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_footer_section',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_return_to_header',
	) ) );

	$wp_customize->add_setting('conference_event_planner_scroll_top_icon',array(
		'default'	=> 'fas fa-arrow-up',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control(new Conference_Event_Planner_Icon_Changer(
        $wp_customize,'conference_event_planner_scroll_top_icon',array(
		'label'	=> __('Scroll Top Icon','conference-event-planner'),
		'transport' => 'refresh',
		'section'	=> 'conference_event_planner_footer_section',
		'type'		=> 'icon'
	)));

	 // Add Settings and Controls for Scroll top
	$wp_customize->add_setting('conference_event_planner_scroll_top_position',array(
        'default' => 'Right',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_scroll_top_position',array(
     'type' => 'radio',
     'label'     => __('Scroll to top Position', 'conference-event-planner'),
     'description'   => __('This option work for scroll to top', 'conference-event-planner'),
     'section' => 'conference_event_planner_footer_section',
     'choices' => array(
         'Right' => __('Right','conference-event-planner'),
         'Left' => __('Left','conference-event-planner'),
         'Center' => __('Center','conference-event-planner')
     ),
	) );

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_footer_widget_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_footer_widget_pro_version_logo', array(
        'section'     => 'conference_event_planner_footer_section',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//footer
	$wp_customize->add_section('conference_event_planner_footer_copyright_section',array(
		'title'	=> __('Footer Copyright Settings','conference-event-planner'),
		'description'	=> __('Add copyright text.','conference-event-planner'),
		'panel' => 'conference_event_planner_panel_id',
		'priority' => 4,
	));

	$wp_customize->add_setting('conference_event_planner_footer_text',array(
		'default'	=> '',
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_footer_text',array(
		'label'	=> __('Copyright Text','conference-event-planner'),
		'section'	=> 'conference_event_planner_footer_copyright_section',
		'type'		=> 'text'
	));

	//footer widget title font size
	$wp_customize->add_setting('conference_event_planner_footer_copyright_font_size',array(
		'default'	=> '',
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_footer_copyright_font_size',array(
		'label'	=> __('Change Footer Copyright Font Size in PX','conference-event-planner'),
		'section'	=> 'conference_event_planner_footer_copyright_section',
	    'setting'	=> 'conference_event_planner_footer_copyright_font_size',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 0,
			'max'              => 50,
		),
	));

	$wp_customize->add_setting('conference_event_planner_footer_copyright_title_font_weight',array(
        'default' => '',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_footer_copyright_title_font_weight',array(
     'type' => 'radio',
     'label'     => __('Change Footer Copyright Text Font Weight', 'conference-event-planner'),
     'section' => 'conference_event_planner_footer_copyright_section',
     'type' => 'select',
     'choices' => array(
         '100' => __('100','conference-event-planner'),
         '200' => __('200','conference-event-planner'),
         '300' => __('300','conference-event-planner'),
         '400' => __('400','conference-event-planner'),
         '500' => __('500','conference-event-planner'),
         '600' => __('600','conference-event-planner'),
         '700' => __('700','conference-event-planner'),
         '800' => __('800','conference-event-planner'),
         '900' => __('900','conference-event-planner')
     ),
	) );

	$wp_customize->add_setting( 'conference_event_planner_footer_copyright_text_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_footer_copyright_text_color', array(
			'label'     => __('Change Footer Copyright Text Color', 'conference-event-planner'),
	    'section' => 'conference_event_planner_footer_copyright_section',
	    'settings' => 'conference_event_planner_footer_copyright_text_color',
  	)));

  	$wp_customize->add_setting('conference_event_planner_footer_copyright_top_bottom_padding',array(
		'default'	=> '',
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_footer_copyright_top_bottom_padding',array(
		'label'	=> __('Change Footer Copyright Padding in PX','conference-event-planner'),
		'section'	=> 'conference_event_planner_footer_copyright_section',
	    'setting'	=> 'conference_event_planner_footer_copyright_top_bottom_padding',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 0,
			'max'              => 50,
		),
	));

	// Add Settings and Controls for copyright
	$wp_customize->add_setting('conference_event_planner_copyright_text_position',array(
        'default' => 'Center',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_copyright_text_position',array(
        'type' => 'radio',
        'label'     => __('Copyright Text Position', 'conference-event-planner'),
        'description'   => __('This option work for Copyright', 'conference-event-planner'),
        'section' => 'conference_event_planner_footer_copyright_section',
        'choices' => array(
            'Right' => __('Right','conference-event-planner'),
            'Left' => __('Left','conference-event-planner'),
            'Center' => __('Center','conference-event-planner')
        ),
	) );

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_copyright_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_copyright_pro_version_logo', array(
        'section'     => 'conference_event_planner_footer_copyright_section',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	$wp_customize->get_setting( 'blogname' )->transport          = 'postMessage';
	$wp_customize->get_setting( 'blogdescription' )->transport   = 'postMessage';
	$wp_customize->selective_refresh->add_partial( 'blogname', array(
		'selector' => '.site-title a',
		'render_callback' => 'conference_event_planner_customize_partial_blogname',
	) );
	$wp_customize->selective_refresh->add_partial( 'blogdescription', array(
		'selector' => '.site-description',
		'render_callback' => 'conference_event_planner_customize_partial_blogdescription',
	) );

	//Mobile Seetings
	$wp_customize->add_section('conference_event_planner_media_option',array(
		'title'         => __('Mobile Responsive media', 'conference-event-planner'),
		'description' => __('Control will no function if the toggle in the main settings is off.', 'conference-event-planner'),
		'priority' => 5,
		'panel' => 'conference_event_planner_panel_id'
	) );

	$wp_customize->add_setting( 'conference_event_planner_mobile_blog_description', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new conference_event_planner_Toggle_Control( $wp_customize, 'conference_event_planner_mobile_blog_description', array(
		'label'       => esc_html__( 'Show / Hide Blog Page Description', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_media_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_mobile_blog_description',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_return_to_header_mob', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_return_to_header_mob', array(
		'label'       => esc_html__( 'Show / Hide Return to header', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_media_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_return_to_header_mob',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_slider_button_mob', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_slider_button_mob', array(
		'label'       => esc_html__( 'Show / Hide Slider Button', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_media_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_slider_button_mob',
	) ) );
	$wp_customize->add_setting( 'conference_event_planner_related_post_mob', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_related_post_mob', array(
		'label'       => esc_html__( 'Show / Hide Related Post', 'conference-event-planner' ),
		'section'     => 'conference_event_planner_media_option',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_related_post_mob',
	) ) );

	//Slider height
    $wp_customize->add_setting('conference_event_planner_slider_img_height_responsive',array(
        'default'=> '',
        'sanitize_callback' => 'sanitize_text_field'
    ));
    $wp_customize->add_control('conference_event_planner_slider_img_height_responsive',array(
        'label' => __('Slider Height','conference-event-planner'),
        'description'   => __('Add slider height in px(eg. 700px).','conference-event-planner'),
        'section'=> 'conference_event_planner_media_option',
        'type'=> 'text'
    ));

	// Pro Version
    $wp_customize->add_setting( 'conference_event_planner_responsive_pro_version_logo', array(
        'sanitize_callback' => 'conference_event_planner_sanitize_custom_control'
    ));
    $wp_customize->add_control( new conference_event_planner_Customize_Pro_Version ( $wp_customize,'conference_event_planner_responsive_pro_version_logo', array(
        'section'     => 'conference_event_planner_media_option',
        'type'        => 'pro_options',
        'label'       => esc_html__( 'Features ', 'conference-event-planner' ),
        'description' => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL ),
        'priority'    => 100
    )));

	//Site Identity
	$wp_customize->add_setting( 'conference_event_planner_site_title_text', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_site_title_text', array(
		'label'       => esc_html__( 'Show / Hide Site Title', 'conference-event-planner' ),
		'section'     => 'title_tagline',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_site_title_text',
	) ) );

		// logo site title size
	$wp_customize->add_setting('conference_event_planner_site_title_font_size',array(
		'default'	=> 30,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_site_title_font_size',array(
		'label'	=> __('Site Title Font Size in PX','conference-event-planner'),
		'section'	=> 'title_tagline',
		'setting'	=> 'conference_event_planner_site_title_font_size',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 0,
			'max'              => 50,
		),
	));

	$wp_customize->add_setting( 'conference_event_planner_site_tagline_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_site_tagline_color', array(
			'label'     => __('Change Site Title Color', 'conference-event-planner'),
	    'section' => 'title_tagline',
	    'settings' => 'conference_event_planner_site_tagline_color',
  	)));
  	
	$wp_customize->add_setting( 'conference_event_planner_site_tagline_text', array(
		'default'           => false,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_site_tagline_text', array(
		'label'       => esc_html__( 'Show / Hide Site Tagline', 'conference-event-planner' ),
		'section'     => 'title_tagline',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_site_tagline_text',
	) ) );

	// logo site tagline size
	$wp_customize->add_setting('conference_event_planner_site_tagline_font_size',array(
		'default'	=> 15,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_site_tagline_font_size',array(
		'label'	=> __('Site Tagline Font Size in PX','conference-event-planner'),
		'section'	=> 'title_tagline',
		'setting'	=> 'conference_event_planner_site_tagline_font_size',
		'type'	=> 'number',
		'input_attrs' => array(
			'step'             => 1,
			'min'              => 0,
			'max'              => 50,
		),
	));

	$wp_customize->add_setting( 'conference_event_planner_logo_tagline_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_logo_tagline_color', array(
			'label'     => __('Change Site Tagline Color', 'conference-event-planner'),
	    'section' => 'title_tagline',
	    'settings' => 'conference_event_planner_logo_tagline_color',
  	)));
  	
    $wp_customize->add_setting('conference_event_planner_logo_width',array(
		'default' => 150,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_logo_width',array(
		'label'	=> esc_html__('Here You Can Customize Your Logo Size','conference-event-planner'),
		'section'	=> 'title_tagline',
		'type'		=> 'number'
	));
	$wp_customize->add_setting('conference_event_planner_logo_settings',array(
        'default' => 'Different Line',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
    $wp_customize->add_control('conference_event_planner_logo_settings',array(
        'type' => 'radio',
        'label'     => __('Logo Layout Settings', 'conference-event-planner'),
        'description'   => __('Here you have two options 1. Logo and Site tite in differnt line. 2. Logo and Site title in same line.', 'conference-event-planner'),
        'section' => 'title_tagline',
        'choices' => array(
            'Different Line' => __('Different Line','conference-event-planner'),
            'Same Line' => __('Same Line','conference-event-planner')
        ),
	) );
	
	//Woo Commerce
	$wp_customize->add_setting('conference_event_planner_per_columns',array(
		'default'=> 3,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_per_columns',array(
		'label'	=> __('Product Per Row','conference-event-planner'),
		'section'=> 'woocommerce_product_catalog',
		'type'=> 'number'
	));
	$wp_customize->add_setting('conference_event_planner_product_per_page',array(
		'default'=> 9,
		'sanitize_callback'	=> 'conference_event_planner_sanitize_number_absint'
	));
	$wp_customize->add_control('conference_event_planner_product_per_page',array(
		'label'	=> __('Product Per Page','conference-event-planner'),
		'section'=> 'woocommerce_product_catalog',
		'type'=> 'number'
	));
	$wp_customize->add_setting( 'conference_event_planner_product_sidebar', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_product_sidebar', array(
		'label'       => esc_html__( 'Show / Hide Shop page sidebar', 'conference-event-planner' ),
		'section'     => 'woocommerce_product_catalog',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_product_sidebar',
	) ) );

	$wp_customize->add_setting( 'conference_event_planner_single_product_sidebar', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_single_product_sidebar', array(
		'label'       => esc_html__( 'Show / Hide Product page sidebar', 'conference-event-planner' ),
		'section'     => 'woocommerce_product_catalog',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_single_product_sidebar',
	) ) );
	$wp_customize->add_setting( 'conference_event_planner_related_product', array(
		'default'           => true,
		'transport'         => 'refresh',
		'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	) );
	$wp_customize->add_control( new Conference_Event_Planner_Toggle_Control( $wp_customize, 'conference_event_planner_related_product', array(
		'label'       => esc_html__( 'Show / Hide related product', 'conference-event-planner' ),
		'section'     => 'woocommerce_product_catalog',
		'type'        => 'toggle',
		'settings'    => 'conference_event_planner_related_product',
	) ) );
	
	//Page template settings
	$wp_customize->add_panel( 'conference_event_planner_page_panel_id', array(
	    'priority' => 10,
	    'capability' => 'edit_theme_options',
	    'theme_supports' => '',
	    'title' => __( 'Page Template Settings', 'conference-event-planner' ),
	    'description' => __( 'Description of what this panel does.', 'conference-event-planner' ),
	) );

	// 404 PAGE
	$wp_customize->add_section('conference_event_planner_404_page_section',array(
		'title'         => __('404 Page', 'conference-event-planner'),
		'description'   => 'Here you can customize 404 Page content.',
		'panel' => 'conference_event_planner_page_panel_id'
	) );

	$wp_customize->add_setting('conference_event_planner_edit_404_title',array(
		'default'=> __('Oops! That page cant be found.','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field',
	));
	$wp_customize->add_control('conference_event_planner_edit_404_title',array(
		'label'	=> __('Edit Title','conference-event-planner'),
		'section'=> 'conference_event_planner_404_page_section',
		'type'=> 'text',
	));

	$wp_customize->add_setting('conference_event_planner_edit_404_text',array(
		'default'=> __('It looks like nothing was found at this location. Maybe try a search?','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_edit_404_text',array(
		'label'	=> __('Edit Text','conference-event-planner'),
		'section'=> 'conference_event_planner_404_page_section',
		'type'=> 'text'
	));

	// Search Results
	$wp_customize->add_section('conference_event_planner_no_result_section',array(
		'title'         => __('Search Results', 'conference-event-planner'),
		'description'   => 'Here you can customize Search Result content.',
		'panel' => 'conference_event_planner_page_panel_id'
	) );

	$wp_customize->add_setting('conference_event_planner_edit_no_result_title',array(
		'default'=> __('Nothing Found','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field',
	));
	$wp_customize->add_control('conference_event_planner_edit_no_result_title',array(
		'label'	=> __('Edit Title','conference-event-planner'),
		'section'=> 'conference_event_planner_no_result_section',
		'type'=> 'text',
	));

	$wp_customize->add_setting('conference_event_planner_edit_no_result_text',array(
		'default'=> __('Sorry, but nothing matched your search terms. Please try again with some different keywords.','conference-event-planner'),
		'sanitize_callback'	=> 'sanitize_text_field'
	));
	$wp_customize->add_control('conference_event_planner_edit_no_result_text',array(
		'label'	=> __('Edit Text','conference-event-planner'),
		'section'=> 'conference_event_planner_no_result_section',
		'type'=> 'text'
	));

	// Header Image Height
    $wp_customize->add_setting(
        'conference_event_planner_header_image_height',
        array(
            'default'           => 350,
            'sanitize_callback' => 'absint',
        )
    );
    $wp_customize->add_control(
        'conference_event_planner_header_image_height',
        array(
            'label'       => esc_html__( 'Header Image Height', 'conference-event-planner' ),
            'section'     => 'header_image',
            'type'        => 'number',
            'description' => esc_html__( 'Control the height of the header image. Default is 350px.', 'conference-event-planner' ),
            'input_attrs' => array(
                'min'  => 220,
                'max'  => 1000,
                'step' => 1,
            ),
        )
    );

    // Header Background Position
    $wp_customize->add_setting(
        'conference_event_planner_header_background_position',
        array(
            'default'           => 'center',
            'sanitize_callback' => 'sanitize_text_field',
        )
    );
    $wp_customize->add_control(
        'conference_event_planner_header_background_position',
        array(
            'label'       => esc_html__( 'Header Background Position', 'conference-event-planner' ),
            'section'     => 'header_image',
            'type'        => 'select',
            'choices'     => array(
                'top'    => esc_html__( 'Top', 'conference-event-planner' ),
                'center' => esc_html__( 'Center', 'conference-event-planner' ),
                'bottom' => esc_html__( 'Bottom', 'conference-event-planner' ),
            ),
            'description' => esc_html__( 'Choose how you want to position the header image.', 'conference-event-planner' ),
        )
    );

    // Header Image Parallax Effect
    $wp_customize->add_setting(
        'conference_event_planner_header_background_attachment',
        array(
            'default'           => 1,
            'sanitize_callback' => 'absint',
        )
    );
    $wp_customize->add_control(
        'conference_event_planner_header_background_attachment',
        array(
            'label'       => esc_html__( 'Header Image Parallax', 'conference-event-planner' ),
            'section'     => 'header_image',
            'type'        => 'checkbox',
            'description' => esc_html__( 'Add a parallax effect on page scroll.', 'conference-event-planner' ),
        )
    );

     //Opacity
	$wp_customize->add_setting('conference_event_planner_header_banner_opacity_color',array(
       'default'              => '0.9',
       'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
    $wp_customize->add_control( 'conference_event_planner_header_banner_opacity_color', array(
		'label'       => esc_html__( 'Header Image Opacity','conference-event-planner' ),
		'section'     => 'header_image',
		'type'        => 'select',
		'settings'    => 'conference_event_planner_header_banner_opacity_color',
		'choices' => array(
           '0' =>  esc_attr(__('0','conference-event-planner')),
           '0.1' =>  esc_attr(__('0.1','conference-event-planner')),
           '0.2' =>  esc_attr(__('0.2','conference-event-planner')),
           '0.3' =>  esc_attr(__('0.3','conference-event-planner')),
           '0.4' =>  esc_attr(__('0.4','conference-event-planner')),
           '0.5' =>  esc_attr(__('0.5','conference-event-planner')),
           '0.6' =>  esc_attr(__('0.6','conference-event-planner')),
           '0.7' =>  esc_attr(__('0.7','conference-event-planner')),
           '0.8' =>  esc_attr(__('0.8','conference-event-planner')),
           '0.9' =>  esc_attr(__('0.9','conference-event-planner'))
		), 
	) );

   $wp_customize->add_setting( 'conference_event_planner_header_banner_image_overlay', array(
	    'default'   => true,
	    'transport' => 'refresh',
	    'sanitize_callback' => 'conference_event_planner_sanitize_checkbox',
	));
	$wp_customize->add_control( new conference_event_planner_Toggle_Control( $wp_customize, 'conference_event_planner_header_banner_image_overlay', array(
	    'label'   => esc_html__( 'Show / Hide Header Image Overlay', 'conference-event-planner' ),
	    'section' => 'header_image',
	)));

    $wp_customize->add_setting('conference_event_planner_header_banner_image_ooverlay_color', array(
		'default'           => '#000',
		'sanitize_callback' => 'sanitize_hex_color',
	));
	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'conference_event_planner_header_banner_image_ooverlay_color', array(
		'label'    => __('Header Image Overlay Color', 'conference-event-planner'),
		'section'  => 'header_image',
	)));

    $wp_customize->add_setting(
        'conference_event_planner_header_image_title_font_size',
        array(
            'default'           => 32,
            'sanitize_callback' => 'absint',
        )
    );
    $wp_customize->add_control(
        'conference_event_planner_header_image_title_font_size',
        array(
            'label'       => esc_html__( 'Change Header Image Title Font Size', 'conference-event-planner' ),
            'section'     => 'header_image',
            'type'        => 'number',
            'description' => esc_html__( 'Control the font Size of the header image title. Default is 32px.', 'conference-event-planner' ),
            'input_attrs' => array(
                'min'  => 10,
                'max'  => 200,
                'step' => 1,
            ),
        )
    );

	$wp_customize->add_setting( 'conference_event_planner_header_image_title_text_color', array(
	    'default' => '',
	    'sanitize_callback' => 'sanitize_hex_color'
  	));
  	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'conference_event_planner_header_image_title_text_color', array(
			'label'     => __('Change Header Image Title Color', 'conference-event-planner'),
	    'section' => 'header_image',
	    'settings' => 'conference_event_planner_header_image_title_text_color',
  	)));

  	//Woocommerce settings
	$wp_customize->add_section('conference_event_planner_woocommerce_section', array(
		'title'    => __('WooCommerce Options', 'conference-event-planner'),
		'priority' => null,
		'panel'    => 'woocommerce',
	));

	$wp_customize->add_setting('conference_event_planner_sale_tag_position',array(
        'default' => 'right',
        'sanitize_callback' => 'conference_event_planner_sanitize_choices'
	));
	$wp_customize->add_control('conference_event_planner_sale_tag_position',array(
        'type' => 'radio',
        'label'     => __('Sale Badge Position', 'conference-event-planner'),
        'description'   => __('This option work for Archieve Products', 'conference-event-planner'),
        'section' => 'conference_event_planner_woocommerce_section',
        'choices' => array(
            'left' => __('Left','conference-event-planner'),
            'right' => __('Right','conference-event-planner'),
        ),
	) );

  	$wp_customize->add_setting('conference_event_planner_woocommerce_sale_font_size',array(
		'default'=> '',
		'sanitize_callback'	=> 'absint'
	));
	$wp_customize->add_control('conference_event_planner_woocommerce_sale_font_size',array(
		'label'	=> __('Sale Font Size','conference-event-planner'),

		'section'=> 'conference_event_planner_woocommerce_section',
		'settings'    => 'conference_event_planner_woocommerce_sale_font_size',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 100,
		),
	));

	$wp_customize->add_setting('conference_event_planner_woocommerce_sale_padding_top_bottom',array(
		'default'=> '',
		'sanitize_callback'	=> 'absint'
	));
	$wp_customize->add_control('conference_event_planner_woocommerce_sale_padding_top_bottom',array(
		'label'	=> __('Sale Padding Top Bottom','conference-event-planner'),
		'section'=> 'conference_event_planner_woocommerce_section',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 100,
		),
	));

	$wp_customize->add_setting('conference_event_planner_woocommerce_sale_padding_left_right',array(
		'default'=> '',
		'sanitize_callback'	=> 'absint'
	));
	$wp_customize->add_control('conference_event_planner_woocommerce_sale_padding_left_right',array(
		'label'	=> __('Sale Padding Left Right','conference-event-planner'),
		'section'=> 'conference_event_planner_woocommerce_section',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 100,
		),
	));

	$wp_customize->add_setting( 'conference_event_planner_woocommerce_sale_border_radius', array(
		'default'              => '100',
		'transport' 		   => 'refresh',
		'sanitize_callback'    => 'absint'
	) );
	$wp_customize->add_control( 'conference_event_planner_woocommerce_sale_border_radius', array(
		'label'       => esc_html__( 'Sale Border Radius','conference-event-planner' ),
		'section'     => 'conference_event_planner_woocommerce_section',
		'type'        => 'number',
		'input_attrs' => array(
			'step'             => 2,
			'min'              => 0,
			'max'              => 100,
		),
	) );

}
add_action( 'customize_register', 'conference_event_planner_customize_register' );

/**
 * Render the site title for the selective refresh partial.
 *
 * @since Conference Event Planner 1.0
 * @see conference_event_planner_customize_register()
 *
 * @return void
 */
function conference_event_planner_customize_partial_blogname() {
	bloginfo( 'name' );
}

/**
 * Render the site tagline for the selective refresh partial.
 *
 * @since Conference Event Planner 1.0
 * @see conference_event_planner_customize_register()
 *
 * @return void
 */
function conference_event_planner_customize_partial_blogdescription() {
	bloginfo( 'description' );
}

if ( ! defined( 'CONFERENCE_EVENT_PLANNER_PRO_THEME_NAME' ) ) {
	define( 'CONFERENCE_EVENT_PLANNER_PRO_THEME_NAME', esc_html__( 'Event Planner Pro Theme', 'conference-event-planner' ));
}
if ( ! defined( 'CONFERENCE_EVENT_PLANNER_PRO_THEME_URL' ) ) {
	define( 'CONFERENCE_EVENT_PLANNER_PRO_THEME_URL', esc_url('https://www.themespride.com/products/event-wordpress-theme'));
}
if ( ! defined( 'CONFERENCE_EVENT_PLANNER_DOCS_URL' ) ) {
	define( 'CONFERENCE_EVENT_PLANNER_DOCS_URL', esc_url('https://page.themespride.com/demo/docs/conference-event-planner/'));
}

if ( ! defined( 'CONFERENCE_EVENT_PLANNER_TEXT' ) ) {
    define( 'CONFERENCE_EVENT_PLANNER_TEXT', __( 'Conference Event Planner Pro','conference-event-planner' ));
}
if ( ! defined( 'CONFERENCE_EVENT_PLANNER_BUY_TEXT' ) ) {
    define( 'CONFERENCE_EVENT_PLANNER_BUY_TEXT', __( 'Upgrade Pro','conference-event-planner' ));
}


add_action( 'customize_register', function( $manager ) {

// Load custom sections.
load_template( trailingslashit( get_template_directory() ) . '/inc/section-pro.php' );

    $manager->register_section_type( conference_event_planner_Button::class );

    $manager->add_section(
        new conference_event_planner_Button( $manager, 'conference_event_planner_pro', [
            'title'       => esc_html( CONFERENCE_EVENT_PLANNER_TEXT,'conference-event-planner' ),
            'priority'    => 0,
            'button_text' => __( 'GET PREMIUM', 'conference-event-planner' ),
            'button_url'  => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL )
        ] )
    );

} );

/**
 * Singleton class for handling the theme's customizer integration.
 *
 * @since  1.0.0
 * @access public
 */
final class Conference_Event_Planner_Customize {

	/**
	 * Returns the instance.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return object
	 */
	public static function get_instance() {

		static $instance = null;

		if ( is_null( $instance ) ) {
			$instance = new self;
			$instance->setup_actions();
		}

		return $instance;
	}

	/**
	 * Constructor method.
	 *
	 * @since  1.0.0
	 * @access private
	 * @return void
	 */
	private function __construct() {}

	/**
	 * Sets up initial actions.
	 *
	 * @since  1.0.0
	 * @access private
	 * @return void
	 */
	private function setup_actions() {

		// Register panels, sections, settings, controls, and partials.
		add_action( 'customize_register', array( $this, 'sections' ) );

		// Register scripts and styles for the controls.
		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ), 0 );
	}

	/**
	 * Sets up the customizer sections.
	 *
	 * @since  1.0.0
	 * @access public
	 * @param  object  $manager
	 * @return void
	 */
	public function sections( $manager ) {

		// Load custom sections.
		load_template( trailingslashit( get_template_directory() ) . '/inc/section-pro.php' );

		// Register custom section types.
		$manager->register_section_type( 'Conference_Event_Planner_Customize_Section_Pro' );

		// Register sections.
		$manager->add_section(
			new Conference_Event_Planner_Customize_Section_Pro(
				$manager,
				'conference_event_planner_section_pro',
				array(
					'priority'   => 9,
					'title'    => CONFERENCE_EVENT_PLANNER_PRO_THEME_NAME,
					'pro_text' => esc_html__( 'Upgrade Pro', 'conference-event-planner' ),
					'pro_url'  => esc_url( CONFERENCE_EVENT_PLANNER_PRO_THEME_URL, 'conference-event-planner' ),
				)
			)
		);

		// Register sections.
		$manager->add_section(
			new Conference_Event_Planner_Customize_Section_Pro(
				$manager,
				'conference_event_planner_pro_documentation',
				array(
					'priority'   => 500,
					'title'    => esc_html__( 'Theme Documentation', 'conference-event-planner' ),
					'pro_text' => esc_html__( 'Click Here', 'conference-event-planner' ),
					'pro_url'  => esc_url(CONFERENCE_EVENT_PLANNER_DOCS_URL, 'conference-event-planner'),
				)
			)
		);
	}

	/**
	 * Loads theme customizer CSS.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return void
	 */
	public function enqueue_control_scripts() {

		wp_enqueue_script( 'conference-event-planner-customize-controls', trailingslashit( esc_url( get_template_directory_uri() ) ) . '/assets/js/customize-controls.js', array( 'customize-controls' ) );

		wp_enqueue_style( 'conference-event-planner-customize-controls', trailingslashit( esc_url( get_template_directory_uri() ) ) . '/assets/css/customize-controls.css' );
	}
}

// Doing this customizer thang!
Conference_Event_Planner_Customize::get_instance();
