jQuery(document).ready(function($){
function ajaxRequest(data, successCallback, errorCallback){
$('#loading-formations').css('opacity', '0.5');
$.ajax({
url: ajaxurl,
type: 'POST',
data: data,
success: function(response){
successCallback(response);
$('#loading-formations').css('opacity', '');
},
error: function(jqXHR, textStatus, errorThrown){
errorCallback(jqXHR, textStatus, errorThrown);
$('#loading-formations').css('opacity', '1');
},
complete: function(){
$('#loading-formations').css('opacity', '1');
}});
}
function handleFilterChange(selector_elt){
$('#formation_grid_fallback_text').hide()
var filter=$('#formation_fa_field_filter').val();
var radioFilterValue=$('.checkbox_filter:checked').map(function(){
return $(this).val();
}).get().join(' ');
var nonce=$('#filter_nonce').val();
ajaxRequest({
action: 'filter_formations',
region_filter: filter,
radio_thematique_filter: radioFilterValue,
nonce: nonce
}, function(response){
$('#formations-grid').html(response.data.content);
if(response.data.show_counter===0) $('#formation_grid_fallback_text').show();
if(selector_elt==='checkbox_filter'){
var dropdown=$('#formation_fa_field_filter');
dropdown.empty();
if(response.data.current_region.value&&response.data.current_region.label) dropdown.append('<option value="' + response.data.current_region.value + '">' +response.data.current_region.label + '</option>');
dropdown.append('<option value="">Toutes</option>');
$.each(response.data.available_regions, function(index, item){
dropdown.append('<option value="' + item.value + '">' + item.label + '</option>');
});
}}, function(jqXHR, textStatus, errorThrown){
});
}
function handleInternalFilterChange(){
var region=$('#formation_fa_field_filter_interne').val();
var postId=$('#repeater-content').data('post-id');
var nonce=$('#filter_nonce').val();
ajaxRequest({
action: 'filter_formations_internes',
region_filter_interne: region,
post_id: postId,
nonce: nonce
}, function(response){
if(response.success){
$('#repeater-content').html(response.data.content);
updateDropdown('#formation_fa_field_filter_ville_interne', response.data.ville, 'Select le ville');
updateDropdown('#formation_fa_field_filter_date_interne', response.data.dates, 'Select le date');
$('#filter_ville, #filter_date').show();
$('#repeater-content').show();
}else{
}});
}
$('#formation_fa_field_filter_ville_interne').change(handlevilleFilterChange);
$('#formation_fa_field_filter_date_interne').change(handleDateFilterChange);
function handlevilleFilterChange(){
var villeFilter=$('#formation_fa_field_filter_ville_interne').val();
var regionFilterInterne=$('#formation_fa_field_filter_interne').val();
var postId=$('#repeater-content').data('post-id');
var nonce=$('#filter_nonce').val();
ajaxRequest({
action: 'filter_formations_by_ville',
ville_filter: villeFilter,
region_filter_interne: regionFilterInterne,
post_id: postId,
nonce: nonce
}, function(response){
if(response.success){
$('#repeater-content').html(response.data.content);
updateDropdown('#formation_fa_field_filter_date_interne', response.data.dates, 'Select le date');
}else{
}}, function(jqXHR, textStatus, errorThrown){
});
}
function handleDateFilterChange(){
var dateFilter=$('#formation_fa_field_filter_date_interne').val();
var regionFilterInterne=$('#formation_fa_field_filter_interne').val();
var postId=$('#repeater-content').data('post-id');
var nonce=$('#filter_nonce').val();
ajaxRequest({
action: 'filter_formations_by_date',
date_filter: dateFilter,
region_filter_interne: regionFilterInterne,
post_id: postId,
nonce: nonce
}, function(response){
if(response.success){
$('#repeater-content').html(response.data.content);
updateDropdown('#formation_fa_field_filter_ville_interne', response.data.ville, 'Select le ville');
}else{
}}, function(jqXHR, textStatus, errorThrown){
});
}
function updateDropdown(selector, items, defaultText){
var dropdown=$(selector);
dropdown.empty();
$.each(items, function(index, value){
dropdown.append('<option value="' + value + '">' + value + '</option>');
});
}
$('#formation_fa_field_filter').change(function(){
handleFilterChange('formation_fa_field_filter');
});
$('.checkbox_filter').change(function(){
handleFilterChange('checkbox_filter');
});
$('#formation_fa_field_filter_interne').change(handleInternalFilterChange);
$('.checkbox_filter').click(function(){
var clickedCheckbox=$(this);
$('.checkbox_filter').not(clickedCheckbox).prop('checked', false);
});
function initializeSwiper(){
new Swiper('.swiper-container', {
loop: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
slidesPerView: 1,
});
}
initializeSwiper();
$(document).ajaxComplete(function(){
initializeSwiper();
});
});