<?php
/**
 * Mardi Gras Theme Customizer -Icons
 *
 * @package Mardi Gras
 */

if ( ! function_exists( 'mardi_gras_customizer_icon_stylesheet' ) ) {
	/**
	 * Enqueue the customizer stylesheet for our radio buttons.
	 */
	function mardi_gras_customizer_icon_stylesheet() {
		wp_enqueue_style( 'mardi-gras-customizer-css', get_template_directory_uri() . '/css/customizer.css' );
	}
}
add_action( 'customize_controls_print_styles', 'mardi_gras_customizer_icon_stylesheet' );


$mardi_gras_icon_list = array( 'activity', 'art', 'category', 'chat', 'close', 'comment', 'day', 'document', 'edit', 'editor-video', 'ellipsis', 'fleur', 'heart', 'help', 'info', 'image', 'location', 'mail', 'microphone', 'paintbrush', 'standard', 'star-empty', 'wordpress' );


if ( ! function_exists( 'mardi_gras_customize_register_icon' ) ) {
	/**
	 * Register our customizer settings.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	function mardi_gras_customize_register_icon( $wp_customize ) {

		/**
		 * Custom control for our icons.
		 */
		class Mardi_Gras_Icon_Control extends WP_Customize_Control {
			/**
			 * Create a fieldset, labels and radio buttons for our dashicons.
			 */
			public function render_content() {
				global $mardi_gras_icon_list;

				?>
				<div class="mardi-gras-radio-buttons">
					<fieldset>
					<legend class="customize-control-title"><?php echo esc_html( $this->label ); ?></legend>
					<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
					<?php
					foreach ( $mardi_gras_icon_list as &$value ) {
						?>
						<label>
						<?php echo '<span class="screen-reader-text">' . esc_html_x( 'Icon name: ', 'There is a space after the colon', 'mardi-gras' ) . esc_html( $value ) . '</span>'; ?>
						<?php echo mardi_gras_get_icon_svg( $value ); ?>
						<input type="radio" value="<?php echo esc_attr( $value ); ?>" name="<?php echo esc_attr( $this->id ); ?>" <?php $this->link(); checked( $this->value(), $value ); ?> />
						</label>
						<?php
					}
					?>
					</fieldset>
				</div>
				<?php
			}
		}

		$wp_customize->add_setting(
			'mardi_gras_icon',
			array(
				'sanitize_callback' => 'mardi_gras_validate_icons',
				'default'           => 'fleur',
			)
		);

		$wp_customize->add_control(
			new Mardi_Gras_Icon_Control(
				$wp_customize,
				'mardi_gras_icon',
				array(
					'label'    => __( 'Custom Icon', 'mardi-gras' ),
					'section'  => 'mardi_gras_icon_options',
					'settings' => 'mardi_gras_icon',
					'priority' => 100,
				)
			)
		);

		$wp_customize->add_setting(
			'mardi_gras_icon_color',
			array(
				'default'           => '#000000',
				'sanitize_callback' => 'sanitize_hex_color',
			)
		);

		$wp_customize->add_control(
			new WP_Customize_Color_Control(
				$wp_customize,
				'mardi_gras_icon_color',
				array(
					'label'    => __( 'Icon color', 'mardi-gras' ),
					'section'  => 'mardi_gras_icon_options',
					'settings' => 'mardi_gras_icon_color',
					'priority' => 100,
				)
			)
		);

		$wp_customize->add_setting(
			'mardi_gras_custom_image',
			array(
				'default'           => '',
				'sanitize_callback' => 'esc_url_raw',
			)
		);

		$wp_customize->add_control(
			new WP_Customize_Image_Control(
				$wp_customize,
				'mardi_gras_custom_image',
				array(
					'label'       => __( 'Or, select a custom image', 'mardi-gras' ),
					'description' => __( 'The recommended size is no larger than 24x24 pixels', 'mardi-gras' ),
					'section'     => 'mardi_gras_icon_options',
					'settings'    => 'mardi_gras_custom_image',
					'priority'    => 140,
				)
			)
		);
	}
}
add_action( 'customize_register', 'mardi_gras_customize_register_icon' );

if ( ! function_exists( 'mardi_gras_validate_icons' ) ) {
	/**
	 * Sanitize and validate the icons.
	 */
	function mardi_gras_validate_icons( $input ) {
		global $mardi_gras_icon_list;
		$input = sanitize_key( $input );
		return ( in_array( $input, $mardi_gras_icon_list, true ) ? $input : 'fleur' );
	}
}
