<?php
/**
 * Event Organizer Elemento functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Event Organizer Elemento
 */

/* Enqueue script and styles */

function event_organizer_elemento_enqueue_google_fonts() {

	require_once get_theme_file_path( 'includes/wptt-webfont-loader.php' );

	wp_enqueue_style(
		'Josefin-Sans',
		event_organizer_elemento_wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap' ),
		array(),
		'1.0'
	);

	wp_enqueue_style(
		'PT-Serif',
		event_organizer_elemento_wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap' ),
		array(),
		'1.0'
	);

}
add_action( 'wp_enqueue_scripts', 'event_organizer_elemento_enqueue_google_fonts' );

if (!function_exists('event_organizer_elemento_enqueue_scripts')) {

	function event_organizer_elemento_enqueue_scripts() {

		wp_enqueue_style(
			'bootstrap-css',
			get_template_directory_uri() . '/assets/css/bootstrap.css',
			array(),'4.5.0'
		);

		wp_enqueue_style(
			'fontawesome-css',
			get_template_directory_uri() . '/assets/css/fontawesome-all.css',
			array(),'4.5.0'
		);

		wp_enqueue_style('event-organizer-elemento-style', get_stylesheet_uri(), array() );

		wp_enqueue_style(
			'event-organizer-elemento-responsive-css',
			get_template_directory_uri() . '/assets/css/responsive.css',
			array(),'2.3.4'
		);

		wp_enqueue_script(
			'event-organizer-elemento-navigation',
			get_template_directory_uri() . '/assets/js/navigation.js',
			FALSE,
			'1.0',
			TRUE
		);

		wp_enqueue_script(
			'event-organizer-elemento-script',
			get_template_directory_uri() . '/assets/js/script.js',
			array('jquery'),
			'1.0',
			TRUE
		);

		wp_enqueue_style( 'animate-css', esc_url(get_template_directory_uri()).'/assets/css/animate.css' );

		wp_enqueue_script( 'wow-js', esc_url(get_template_directory_uri()) . '/assets/js/wow.js', array('jquery') );

		require get_parent_theme_file_path( '/includes/color-setting/custom-color-control.php' );
		wp_add_inline_style( 'event-organizer-elemento-style',$event_organizer_elemento_theme_custom_setting_css );
		wp_style_add_data('event-organizer-elemento-style', 'rtl', 'replace');

		if ( is_singular() ) wp_enqueue_script( 'comment-reply' );

		$css = '';

		if ( get_header_image() ) :

			$css .=  '
				.header-image-box{
					background-image: url('.esc_url(get_header_image()).') !important;
					-webkit-background-size: cover !important;
					-moz-background-size: cover !important;
					-o-background-size: cover !important;
					background-size: cover !important;
					height: 550px;
				    display: flex;
				    align-items: center;
				}';

		endif;

		wp_add_inline_style( 'event-organizer-elemento-style', $css );

	}

	add_action( 'wp_enqueue_scripts', 'event_organizer_elemento_enqueue_scripts' );

}

/* Setup theme */

if (!function_exists('event_organizer_elemento_after_setup_theme')) {

	function event_organizer_elemento_after_setup_theme() {

		load_theme_textdomain( 'event-organizer-elemento', get_template_directory() . '/languages' );
		if ( ! isset( $content_width ) ) $content_width = 900;

		register_nav_menus( array(
			'main-menu' => esc_html__( 'Main menu', 'event-organizer-elemento' ),
		));

		add_theme_support( 'responsive-embeds' );
		add_theme_support( 'woocommerce' );
		add_theme_support( 'align-wide' );
		add_theme_support('title-tag');
		add_theme_support('automatic-feed-links');
		add_theme_support( 'wp-block-styles' );
		add_theme_support('post-thumbnails');
		add_theme_support( 'custom-background', array(
		  'default-color' => 'f3f3f3'
		));

		add_theme_support( 'custom-logo', array(
			'height'      => 120,
			'width'       => 240,
			'flex-height' => true,
		) );
	
		add_theme_support( 'custom-header', array(
			'default-image' => get_parent_theme_file_uri( '/assets/images/default-header-image.png' ),
			'width' => 1920,
			'flex-width' => true,
			'height' => 550,
			'flex-height' => true,
			'header-text' => false,
		));

		register_default_headers( array(
			'default-image' => array(
				'url'           => '%s/assets/images/default-header-image.png',
				'thumbnail_url' => '%s/assets/images/default-header-image.png',
				'description'   => __( 'Default Header Image', 'event-organizer-elemento' ),
			),
		) );

		add_theme_support( 'html5', array(
			'search-form',
			'comment-form',
			'comment-list',
			'gallery',
			'caption',
		) );

		add_editor_style( array( '/assets/css/editor-style.css' ) );
	
		global $pagenow;
		
		if ( is_admin() && $pagenow === 'themes.php' && (!isset($_GET['page']) || $_GET['page'] !== 'event_organizer_elemento_about')) {
            add_action('admin_notices', 'event_organizer_elemento_activation_notice');
        }

	}

	add_action( 'after_setup_theme', 'event_organizer_elemento_after_setup_theme', 999 );

}

function event_organizer_elemento_activation_notice() {
	$event_organizer_elemento_meta = get_option( 'event_organizer_elemento_admin_notice' );
        if (!$event_organizer_elemento_meta) {
			echo '<div id="event-organizer-elemento-welcome-notice" class="notice notice-info wpele-activation-notice is-dismissible">';
			echo '<div class="notice-body">';
				echo '<div class="notice-content">';
					echo '<h2>'. esc_html__( 'Welcome to WPElemento', 'event-organizer-elemento' ) .'</h2>';
					echo '<p>'. esc_html__( 'Thank you for choosing Event Organizer Elemento theme .To setup the theme, please visit the get started page.', 'event-organizer-elemento' ) .'</p>';
					echo '<span><a href="'. esc_url( admin_url( 'themes.php?page=event_organizer_elemento_about' ) ) .'" class="button button-notice">'. esc_html__( 'GET STARTED', 'event-organizer-elemento' ) .'</a></span>';
					echo '<span><a href="'. esc_url( EVENT_ORGANIZER_ELEMENTO_BUY_NOW ) .'" class="button button-notice" target="_blank" >'. esc_html__( 'BUY NOW', 'event-organizer-elemento' ) .'</a></span>';
					echo '<span><a href="'. esc_url( EVENT_ORGANIZER_ELEMENTO_LIVE_DEMO ) .'" class="button button-notice" target="_blank" >'. esc_html__( 'DEMO', 'event-organizer-elemento' ) .'</a></span>';
				echo '</div>';
				echo '<div class="notice-icon">';
					echo '<img src="'.esc_url(get_template_directory_uri()).'/includes/getstart/images/get-logo.png ">';
				echo '</div>';
			echo '</div>';
		echo '</div>';
	}
}

/* Get post comments */

if (!function_exists('event_organizer_elemento_comment')) :
    /**
     * Template for comments and pingbacks.
     *
     * Used as a callback by wp_list_comments() for displaying the comments.
     */
    function event_organizer_elemento_comment($comment, $args, $depth){

        if ('pingback' == $comment->comment_type || 'trackback' == $comment->comment_type) : ?>

            <li id="comment-<?php comment_ID(); ?>" <?php comment_class('media'); ?>>
            <div class="comment-body">
                <?php esc_html_e('Pingback:', 'event-organizer-elemento');
                comment_author_link(); ?><?php edit_comment_link(__('Edit', 'event-organizer-elemento'), '<span class="edit-link">', '</span>'); ?>
            </div>

        <?php else : ?>

        <li id="comment-<?php comment_ID(); ?>" <?php comment_class(empty($args['has_children']) ? '' : 'parent'); ?>>
            <article id="div-comment-<?php comment_ID(); ?>" class="comment-body media mb-4">
                <a class="pull-left" href="#">
                    <?php if (0 != $args['avatar_size']) echo get_avatar($comment, $args['avatar_size']); ?>
                </a>
                <div class="media-body">
                    <div class="media-body-wrap card">
                        <div class="card-header">
                            <h5 class="mt-0"><?php /* translators: %s: author */ printf('<cite class="fn">%s</cite>', get_comment_author_link() ); ?></h5>
                            <div class="comment-meta">
                                <a href="<?php echo esc_url(get_comment_link($comment->comment_ID)); ?>">
                                    <time datetime="<?php comment_time('c'); ?>">
                                        <?php /* translators: %s: Date */ printf( esc_html__('%1$s at %2$s','event-organizer-elemento'), esc_html( get_comment_date() ), esc_html( get_comment_time() ) ); ?>
                                    </time>
                                </a>
                                <?php edit_comment_link( __( 'Edit', 'event-organizer-elemento' ), '<span class="edit-link">', '</span>' ); ?>
                            </div>
                        </div>

                        <?php if ('0' == $comment->comment_approved) : ?>
                            <p class="comment-awaiting-moderation"><?php esc_html_e('Your comment is awaiting moderation.', 'event-organizer-elemento'); ?></p>
                        <?php endif; ?>

                        <div class="comment-content card-block">
                            <?php comment_text(); ?>
                        </div>

                        <?php comment_reply_link(
                            array_merge(
                                $args, array(
                                    'add_below' => 'div-comment',
                                    'depth' => $depth,
                                    'max_depth' => $args['max_depth'],
                                    'before' => '<footer class="reply comment-reply card-footer">',
                                    'after' => '</footer><!-- .reply -->'
                                )
                            )
                        ); ?>
                    </div>
                </div>
            </article>

            <?php
        endif;
    }
endif; // ends check for event_organizer_elemento_comment()

if (!function_exists('event_organizer_elemento_widgets_init')) {

	function event_organizer_elemento_widgets_init() {

		register_sidebar(array(

			'name' => esc_html__('Sidebar','event-organizer-elemento'),
			'id'   => 'event-organizer-elemento-sidebar',
			'description'   => esc_html__('This sidebar will be shown next to the content.', 'event-organizer-elemento'),
			'before_widget' => '<div id="%1$s" class="sidebar-widget %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Page Sidebar','event-organizer-elemento'),
			'id'   => 'sidebar-2',
			'description'   => esc_html__('This sidebar will be shown next to the content.', 'event-organizer-elemento'),
			'before_widget' => '<div id="%1$s" class="sidebar-widget %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Sidebar three','event-organizer-elemento'),
			'id'   => 'sidebar-3',
			'description'   => esc_html__('This sidebar will be shown on blog pages.', 'event-organizer-elemento'),
			'before_widget' => '<div id="%1$s" class="sidebar-widget %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Footer sidebar 1','event-organizer-elemento'),
			'id'   => 'footer1-sidebar',
			'description'   => esc_html__('It appears in the footer 1.', 'event-organizer-elemento'),
			'before_widget' => '<aside id="%1$s" class="%2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Footer sidebar 2','event-organizer-elemento'),
			'id'   => 'footer2-sidebar',
			'description'   => esc_html__('It appears in the footer 2.', 'event-organizer-elemento'),
			'before_widget' => '<aside id="%1$s" class="%2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Footer sidebar 3','event-organizer-elemento'),
			'id'   => 'footer3-sidebar',
			'description'   => esc_html__('It appears in the footer 3.', 'event-organizer-elemento'),
			'before_widget' => '<aside id="%1$s" class="%2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

		register_sidebar(array(

			'name' => esc_html__('Footer sidebar 4','event-organizer-elemento'),
			'id'   => 'footer4-sidebar',
			'description'   => esc_html__('It appears in the footer 4.', 'event-organizer-elemento'),
			'before_widget' => '<aside id="%1$s" class="%2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h4 class="title">',
			'after_title'   => '</h4>'

		));

	}

	add_action( 'widgets_init', 'event_organizer_elemento_widgets_init' );

}

function event_organizer_elemento_the_breadcrumb() {
	if (!is_home()) {
		echo '<a href="';
		echo esc_url( home_url() );
		echo '">';
		bloginfo('name');
		echo "</a> >> ";
		if (is_category() || is_single()) {
			the_category(' , ');
			if (is_single()) {
				echo " >> ";
				the_title();
			}
		} elseif (is_page()) {
			the_title();
		}
	}
}
/**
 * logo resizer
 */

 function event_organizer_elemento_logo_resizer() {

    $event_organizer_elemento_theme_logo_size_css = '';
	$event_organizer_elemento_theme_custom_logo_id = get_theme_mod( 'custom_logo' );
	$event_organizer_elemento_theme_logo_width = get_theme_mod( 'event_organizer_elemento_logo_resizer', 150 ); // Default to 200 if not set
	$event_organizer_elemento_theme_logo_height = $event_organizer_elemento_theme_logo_width * 0.5;

	if ( $event_organizer_elemento_theme_custom_logo_id ) {
		$event_organizer_elemento_theme_logo_data = wp_get_attachment_image_src( $event_organizer_elemento_theme_custom_logo_id, 'full' );
		$event_organizer_elemento_theme_logo_url = $event_organizer_elemento_theme_logo_data[0];
		$event_organizer_elemento_theme_original_width = $event_organizer_elemento_theme_logo_data[1];
		$event_organizer_elemento_theme_original_height = $event_organizer_elemento_theme_logo_data[2];
		$event_organizer_elemento_theme_aspect_ratio = $event_organizer_elemento_theme_original_height / $event_organizer_elemento_theme_original_width;
		$event_organizer_elemento_theme_logo_height = $event_organizer_elemento_theme_logo_width * $event_organizer_elemento_theme_aspect_ratio;
   
	}
	$event_organizer_elemento_theme_logo_size_css = '
		.custom-logo{
			height: '.esc_attr($event_organizer_elemento_theme_logo_height).'px !important;
			width: '.esc_attr($event_organizer_elemento_theme_logo_width).'px !important;
		}
	';
    wp_add_inline_style( 'event-organizer-elemento-style',$event_organizer_elemento_theme_logo_size_css );

}

add_action( 'wp_enqueue_scripts', 'event_organizer_elemento_logo_resizer' );

add_filter( 'woocommerce_single_product_image_thumbnail_html', function( $html ) {
    return '<div class="product-img">' . $html . '</div>';
});

/**
 * Change number or products per row to 3
 */

add_filter('loop_shop_columns', 'event_organizer_elemento_loop_columns', 999);
if (!function_exists('event_organizer_elemento_loop_columns')) {
	function event_organizer_elemento_loop_columns() {
		return get_theme_mod( 'event_organizer_elemento_products_per_row', '3' ); 
	}
}

//Change number of products that are displayed per page (shop page)
add_filter( 'loop_shop_per_page', 'event_organizer_elemento_products_per_page' );
function event_organizer_elemento_products_per_page( $cols ) {
  	return  get_theme_mod( 'event_organizer_elemento_products_per_page',9);
}

function event_organizer_elemento_sanitize_phone_number( $phone ) {
	return preg_replace( '/[^\d+]/', '', $phone );
}

function event_organizer_elemento_customize_css() {
	?>
	<?php if ( 'right' == get_theme_mod( 'event_organizer_elemento_sale_badge_position', 'right' ) ) : ?>
		<style>
		.woocommerce ul.products li.product .onsale {
			left: auto; right: 10px;
		}
		</style>
	<?php elseif ( 'left' == get_theme_mod( 'event_organizer_elemento_sale_badge_position', 'right' ) ) : ?>
		<style>
		.woocommerce ul.products li.product .onsale{
			left: 10px; right: auto ;
		}
		</style>
	<?php endif; ?>

	<?php
}

add_action( 'wp_head', 'event_organizer_elemento_customize_css');

function event_organizer_elemento_after_setup_theme_enqueue_setting() {
define('EVENT_ORGANIZER_ELEMENTO_FREE_THEME_DOC',__('https://preview.wpelemento.com/theme-documentation/event-organizer-elemento/','event-organizer-elemento'));
define('EVENT_ORGANIZER_ELEMENTO_SUPPORT',__('https://wordpress.org/support/theme/event-organizer-elemento/','event-organizer-elemento'));
define('EVENT_ORGANIZER_ELEMENTO_REVIEW',__('https://wordpress.org/support/theme/event-organizer-elemento/reviews/','event-organizer-elemento'));
define('EVENT_ORGANIZER_ELEMENTO_BUY_NOW',__('https://www.wpelemento.com/products/event-planner-wordpress-theme','event-organizer-elemento'));
define('EVENT_ORGANIZER_ELEMENTO_LIVE_DEMO',__('https://preview.wpelemento.com/event-organizer/','event-organizer-elemento'));
define('EVENT_ORGANIZER_ELEMENTO_THEME_BUNDLE',__('https://www.wpelemento.com/products/WordPress-theme-bundle','event-organizer-elemento'));

require get_template_directory() .'/includes/tgm/tgm.php';
require get_template_directory() . '/includes/customizer.php';
load_template( trailingslashit( get_template_directory() ) . '/includes/go-pro/class-upgrade-pro.php' );

/* Plugin Activation */
require get_template_directory() . '/includes/getstart/plugin-activation.php';

require get_template_directory() . '/includes/post-create.php';

if( class_exists( 'Whizzie' ) ) {
	$Whizzie = new Whizzie();
}

/* Implement the About theme page */
require get_template_directory() . '/includes/getstart/getstart.php';
}
add_action('after_setup_theme', 'event_organizer_elemento_after_setup_theme_enqueue_setting');

function event_organizer_elemento_dismissed_notice() {
        update_option( 'event_organizer_elemento_admin_notice', true );
}
add_action( 'wp_ajax_event_organizer_elemento_dismissed_notice', 'event_organizer_elemento_dismissed_notice' );

add_action('after_switch_theme', 'event_organizer_elemento_getstart_setup_options');
function event_organizer_elemento_getstart_setup_options () {
    update_option('event_organizer_elemento_admin_notice', false );
}

add_action('admin_init', function () {

    if ( ! current_user_can('manage_options') ) {
        return;
    }
    if ( get_option('uc_card_post_carousel_installed') ) {
        return;
    }
    if (
        ! class_exists('HelperProviderUC') ||
        ! class_exists('HelperUC') ||
        ! class_exists('UniteCreatorWebAPI')
    ) {
        return;
    }

    try {
        $webAPI = new UniteCreatorWebAPI();

        $data = [
            'name'         => 'uc_card_post_carousel',
            'cat'          => 'Post Widgets',
            'type'         => 'elementor',
            'from_manager' => 'true'
        ];

        $webAPI->installCatalogAddonFromData($data);

        // mark as installed (IMPORTANT)
        update_option('uc_card_post_carousel_installed', 1);

    } catch (Exception $e) {
        error_log('UE Install Error: ' . $e->getMessage());
    }
});

?>