<?php

/* Config to upload svg image */
function cc_mime_types($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');

/* Config ACF Option */
if ( function_exists( 'acf_add_options_page' ) ) {
	acf_add_options_page( array(
		'page_title' => 'Options Settings',
		'menu_title' => 'Options Settings',
		'menu_slug'  => 'thedavanigroup-options',
		'capability' => 'edit_posts',
		'redirect'   => false
	) );

}

/**
 * Populate ACF select field options with Gravity Forms forms
 */
if ( !function_exists( '_gf_form_acf_populate_gf_forms_ids' ) ) {
	function _gf_form_acf_populate_gf_forms_ids( $field ) {

			if ( class_exists( 'GFFormsModel' ) ) {
				$choices = array(
					'' => __('Select Form','hello-thedavanigroup'),
				);
				foreach ( \GFFormsModel::get_forms() as $form ) {
					$choices[ $form->id ] = $form->title;
				}
				$field['choices'] = $choices;
			}
			return $field;
	}

	add_filter( 'acf/load_field/name=embed_form_hero_ct', '_gf_form_acf_populate_gf_forms_ids' );
    add_filter( 'acf/load_field/name=form_selected_contact', '_gf_form_acf_populate_gf_forms_ids' );
    add_filter( 'acf/load_field/name=form_selected_trade_register', '_gf_form_acf_populate_gf_forms_ids' );
}

/* custom mega menu */
function tdg_add_custom_wp_nav_menu_args( $args ) {
    
    // header menu
    $nav_menu_locations = get_nav_menu_locations();
    if( 'menu-1' == $args['theme_location'] ){
        $menu_id = $nav_menu_locations[$args['theme_location']];
        $menu = wp_get_nav_menu_object( $menu_id );
        $mega_menu_active = get_field('mega_menu', $menu);
        // check Enable mega menu
        if ($mega_menu_active) {
            $args['menu_class'] = 'menu has-mega-menu';
            $args['walker'] = new Custom_Mega_Menu_Walker();
        }
        
    }
    
    return $args;
}
add_filter( 'wp_nav_menu_args', 'tdg_add_custom_wp_nav_menu_args' );

/* custom class top menu item */
function tdg_add_custom_class_to_top_level_links( $atts, $item, $args ) {
    $mega_menu_item = get_field('mega_menu_item', $item);
	if ( (int) $item->menu_item_parent === 0 ) {
        $class         = 'nav-link';
        if($mega_menu_item){
            $class .= ' mega-menu-active';
        }
        $atts['class'] = $class;
    }
    return $atts;
}
add_filter( 'nav_menu_link_attributes', 'tdg_add_custom_class_to_top_level_links', 10, 3 );

function tdg_add_span_to_menu_item_link( $output, $item, $args ) {
    $mega_menu_item = get_field('mega_menu_item', $item);
    if ( (!empty($item->classes) && in_array('menu-item-has-children', $item->classes) ) || $mega_menu_item ) {
        $span = '<span class="nav-icon"><i class="ti-angle-down"></i></span>';
        $output = str_replace( $item->title, $item->title . $span, $output );
    }
    return $output;
}
add_filter( 'walker_nav_menu_start_el', 'tdg_add_span_to_menu_item_link', 10, 3 );


function tdg_add_custom_gform_submit_button( $button, $form ) {
    // Return without changes for the admin back-end.
    if ( is_admin() ){
        return $button;
    }
    $buttonNew = '<div class="gform-button-box">' . $button . '</div>';
    return $buttonNew;
}
add_filter( 'gform_submit_button', 'tdg_add_custom_gform_submit_button', 10, 2 );

function reverse_blog_posts_order($query) {
    if ($query->is_home() && $query->is_main_query()) {
        $query->set('order', 'ASC'); 
    }
}
add_action('pre_get_posts', 'reverse_blog_posts_order');

function load_more_stone_products() {
    $paged = isset($_POST['page']) ? intval($_POST['page']) : 1;

    $args = [
        'post_type'      => 'stone-product',
        'posts_per_page' => 10,
        'paged'          => $paged,
    ];

    if (!empty($_POST['search'])) {
        $args['s'] = sanitize_text_field($_POST['search']);
    }

    $tax_query  = ['relation' => 'AND'];
    $taxonomies = ['color_tags' => 'color', 'material_tags' => 'material', 'finish_tags' => 'finish'];

    foreach ($taxonomies as $tax_key => $taxonomy) {
        if (!empty($_POST[$taxonomy]) && $_POST[$taxonomy] != 'any') {
            $tax_query[] = [
                'taxonomy' => $tax_key,
                'field'    => 'slug',
                'terms'    => sanitize_text_field($_POST[$taxonomy]),
            ];
        }
    }

    if (count($tax_query) > 1) {
        $args['tax_query'] = $tax_query;
    }

    $query = new WP_Query($args);

    if ($query->have_posts()) :
        while ($query->have_posts()) : $query->the_post();
            tdg_render_post_and_term_items('post', '', get_the_ID());
        endwhile;
    endif;

    wp_reset_postdata();
    die();
}
add_action('wp_ajax_load_more_stone_products', 'load_more_stone_products');
add_action('wp_ajax_nopriv_load_more_stone_products', 'load_more_stone_products');

function enqueue_custom_scripts() {
    wp_enqueue_script('load-more-js', get_template_directory_uri() . '/js/script.js', array('jquery'), null, true);
    wp_localize_script('load-more-js', 'ajax_params', array('ajaxurl' => admin_url('admin-ajax.php')));
}
// add_action('wp_enqueue_scripts', 'enqueue_custom_scripts');

