var filterInit = false;
var venueFilter;
var catFilter;	

function toTitleCase(str) {
    return str.replace(/(?:^|\s)\w/g, function(match) {
        return match.toUpperCase();
    });
}

// sort function callback
function sort_li(a, b){
    return (jQuery(b).data('title')) < (jQuery(a).data('title')) ? 1 : -1;    
}
	
var rescheduleTile;
var rescheduleSearch;
	
jQuery('document').ready(function($){
			

$("#reschedule-tiles .tile").sort(sort_li).appendTo('#reschedule-tiles'); // append again to the list




$('#tile-filter li').click(function(){
	$( "#tile-search input").val('');
	if($(this).hasClass('active')) {
		$(this).removeClass('active');
		$('#reschedule-tiles .tile').each(function(){
			$(this).removeClass('hidden');
		});
	} else {
		rescheduleTile = $(this).data('filter');
		$(this).addClass('active');
		$(this).siblings().removeClass('active');
		$('#reschedule-tiles .tile').each(function(){
			if($(this).hasClass(rescheduleTile)){
				$(this).removeClass('hidden');
			} else {
				$(this).addClass('hidden');			
			}
		});		
	}
});

$( "#tile-search input").on("input", function() {
	rescheduleSearch = $(this).val().toLowerCase();
	$('#tile-filter li').removeClass('active');
	$('#reschedule-tiles .tile').each(function(){
		if($(this).find('.performance .title h3').html().toLowerCase().indexOf(rescheduleSearch) >= 0) {
			$(this).removeClass('hidden');
		} else {
			$(this).addClass('hidden');			
		}

	});
});

var $wrapper = $('#information-list .information-sections');

$wrapper.find('.row').sort(function(a, b) {
	return +$(a).data('order') - +$(b).data('order');
})
.appendTo($wrapper);

$(window).click(function() {
	if($('body').hasClass('post-type-archive-productions')) {
		$('#filter-options .open').removeClass('open');
	} else if($('body').hasClass('single-productions') && $('#popup-information').hasClass('active')) {
		$('#modal-bg').removeClass('active');
		$('#popup-information').removeClass('active');
		$('#popup-information .content').removeClass('active').addClass('hidden');		
			
	}
});

$('#filter .buttons .button, .info-btn').click(function(e){
	e.stopPropagation();
});

$('#filter .buttons .button a').click(function(e){
	e.preventDefault();
	var btnName = $(this).parent().data('filter');
	if($('#'+btnName).hasClass('open')) {
		$('#'+btnName).removeClass('open');
	} else {
		$('.options').removeClass('open');
		$('#'+btnName).addClass('open');
	}		
});

var cats = [];
var months = [];

$('.tiles.productions .tile').each(function(){
	var classList = $(this).attr('class');
	var classArr = classList.split(/\s+/);
	$.merge(cats, classArr);
	months.push($(this).data('month'));
});



var uniqueCats = cats.filter(function(itm, i, cats) {
    return i == cats.indexOf(itm);
});

var uniqueMonths = months.filter(function(itm, i, months) {
    return i == months.indexOf(itm);
});

var catsList = '';

for (i = 0; i < uniqueCats.length; i++) { 
	if(uniqueCats[i]!='tile' && uniqueCats[i]!='link') {
		catsList += '<li data-category-filter="' + uniqueCats[i] + '" class="' + uniqueCats[i] + ' selected">' + toTitleCase(uniqueCats[i].replaceAll('-', ' ' )) + '</li>';
		
	}
}

$('#category-filter ul').html( catsList );






var monthsList = '';
const monthsArray = {0: 'January', 1: 'February', 2: 'March', 3: 'April', 4: 'May', 5: 'June', 6: 'July', 7: 'August', 8: 'September', 9: 'October', 10: 'November', 11: 'December'};

for (i = 0; i < uniqueMonths.length; i++) {
	var dateString = uniqueMonths[i] + '01';
	var year        = dateString.substring(0,4);
	var month       = dateString.substring(4,6);
	var day         = dateString.substring(6,8);
	var date        = new Date(year, month-1, day);
	monthsList += '<li data-month-filter="' + uniqueMonths[i] + '" class="selected">'+ monthsArray[date.getMonth()] + ' ' + date.getFullYear() + '</li>';	
}

$('#dates-filter ul').html( monthsList );

	if($('#venue-filter').hasClass('filtered')){
		if($('#venue-filter').hasClass('kgh')){
			$('#venue-filter ul').removeClass('init');	
			$('#venue-filter .kgh').siblings().removeClass('selected');
			$('#venue-filter .kgh').addClass('selected');
		} else if($('#venue-filter').hasClass('dlt')) {
			$('#venue-filter ul').removeClass('init');	
			$('#venue-filter .dlt').siblings().removeClass('selected');
			$('#venue-filter .dlt').addClass('selected');
		}
		filterResults();
	};
	

	$('#filter-options li').click(function(){
		if($(this).parent().hasClass('init')){
			$(this).siblings().toggleClass('selected');			
			$(this).parent().removeClass('init');
		} else {
			$(this).toggleClass('selected');			
		}
		filterResults();
	});
	
	$('#clear-filter').click(function(){
		$('#filter-options li').each(function(){
			$(this).addClass('selected');
			$('#filter-options .options ul').addClass('init');			
		});
		$('.tiles.productions .tile').each(function(){
			$(this).removeClass('venue-hide');
			$(this).removeClass('cat-hide');
			$(this).removeClass('month-hide');
		});
		
	});

function filterResults() {
	$('.tiles.productions .tile').each(function(){
		
		// filter venues 
		var tileVenue = $(this).data('venue');
		var venueHide = true;
		$('#venue-filter li').each(function(){
			if($(this).hasClass('selected') && tileVenue.includes($(this).data('venue-filter'))) {
				venueHide = false;
			}
		});
		if(venueHide) {
			$(this).addClass('venue-hide');
		} else {
			$(this).removeClass('venue-hide');
		}		
		
		// filter dates 
		var tileMonth = $(this).data('month');
		var monthHide = true;
		
		$('#dates-filter li').each(function(){
			if($(this).hasClass('selected') && tileMonth == $(this).data('month-filter')) {
				monthHide = false;
			}
		});
		if(monthHide) {
			$(this).addClass('month-hide');
		} else {
			$(this).removeClass('month-hide');
		}

		
		// filter cats 
		var tileCats = $(this).data('cats');
		var titleTitle = $(this).find('.tile-title a').html();
		var catHide = true;
		$('#category-filter li').each(function(){
			if($(this).hasClass('selected') && tileCats.includes($(this).data('category-filter'))) {
				catHide = false;
			}
		});
		if(catHide) {
			$(this).addClass('cat-hide');
		} else {
			$(this).removeClass('cat-hide');
		}


		
		
	});	
};

	
	
	
	$('body').prepend('<div id="modal-bg" class="hidden"></div>');
	
	$('#production-buttons .info-btn').click(function(){
		$(this).siblings().removeClass('active');
		$(this).toggleClass('active');
		if($(this).hasClass('active')) {
			$('#popup-information').addClass('active');
			$('#modal-bg').addClass('active');	
			$('#' + $(this).data('target')).addClass('active').removeClass('hidden');
			if($(this).data('target')=='booking-list') {
				$('#popup-information').addClass('booking');
			} else {
				$('#popup-information').removeClass('booking');				
			}
		} else {
			$('#modal-bg').removeClass('active');
			$('#popup-information').removeClass('active');
			$('#' + $(this).data('target')).removeClass('active').addClass('hidden');
		}
	});
	
	$('#popup-information .close').click(function(){
		$('#modal-bg').removeClass('active');
		$('#popup-information').removeClass('active');
		$('#popup-information .content').removeClass('active').addClass('hidden');		
	});

	$('#carousel').slick(
		{
			arrows : true,
			dots : true,
			autoplay: false,
			autoplaySpeed: 3000,
			pauseOnHover : true,
			speed: 300,
			cssEase: 'linear'
		}
	);

	
	$('#review-slides').slick(
		{
			arrows : false,
			autoplay: true,
			autoplaySpeed: 3000,
			pauseOnHover : false,
			fade: true,
			speed: 1000,
			cssEase: 'linear'
			
		}
	);

	$('#gallery-slides.gallery-2').slick(
		{
			arrows : true,
			dots : false,
			centerMode: true,
			centerPadding: '60px',
			centerMode: true,
			variableWidth: true
		}	
	);

	
	$('.gallery-slides, #gallery-slides.gallery-3').slick(
		{
			arrows : true,
			dots : false,
			centerMode: true,
			centerPadding: '60px',
			slidesToShow: 3,
			centerMode: true,
			variableWidth: true
		}	
	);
	
	
	$('#review-slides .review .rating').each(function(){
		var rating = $(this).data('rating');
		var type = $(this).data('type');
		
		if(type == 'star') {
			var i;
			$(this).html('<div class="stars"></div>');
			for(i = 0; i < 5; i++) {
				if(rating > i) {
				$(this).find('.stars').append('<span class="star full"></span>');					
				} else {
				$(this).find('.stars').append('<span class="star empty"></span>');					
				}

				
			}
		};
	});
	
	
	$('#hamburger').click(function(){
		$('body').toggleClass('menu-active');
	});

	$('#main-menu-close').click(function(){
		$('body').toggleClass('menu-active');
	});
	
	$('.submenu-title').click(function(){
		$(this).parent().toggleClass('active');
	})
		

	$('.tile.link .thumbnail img').click(function(){
		window.location = $(this).parent().parent().find('.button.more a').attr('href');
	});
	
	$('.link-tiles .tile.link').click(function(){
		console.log($(this).parent().find('h4 a').attr('href'));
		window.location = $(this).find('h4 a').attr('href');
	})
	
	
	$('.faqs .faq .title').click(function(){
		$(this).parent().siblings().removeClass('open');
		$(this).parent().parent().parent().siblings().each(function(){
			if($(this).hasClass('faqs')) {
				$(this).find('.faq.open').removeClass('open');
			}
		});
		$(this).parent().toggleClass('open');
	});

});



