$(document).ready(function() {
	// Date Picker
	$.datepicker.setDefaults($.datepicker.regional["fr"]);
	$(".common-input-date").datepicker();
	$('a.galerie-image-link').lightBox(
		{
			fixedNavigation: true,
			imageLoading: 'http://www.decouvertes.be/images/lightbox-ico-loading.gif',
			imageBtnClose: 'http://www.decouvertes.be/images/lightbox-btn-close.gif',
			imageBtnPrev: 'http://www.decouvertes.be/images/lightbox-btn-prev.gif',
			imageBtnNext: 'http://www.decouvertes.be/images/lightbox-btn-next.gif',
		}
	);
	$('#items').isotope();
	$('ul.sorting.cycles').filtering();
	$('ul.sorting.themes').filtering();
	$('ul.sorting.languages').filtering();
	if ($('ul.sorting.time').size() > 0) {
		$('ul.sorting.time').filtering();
	}
	if ($('ul.sorting.tourisme_event').size() > 0) {
		$('#event_container').isotope();
		$('ul.sorting.tourisme_event').filtering({targetItemContainer:'#event_container'});
	}
	
	if ($('ul.sorting.agendacategories').size() > 0) {

		$('ul.sorting.agendacategories').filtering();
	}
	if ($('ul.sorting.agendadates').size() > 0) {
		$('ul.sorting.agendadates').filtering();
	}
});

jQuery.fn.filtering = function() {
	var opts = arguments[0] || {};
	var simultaneousCriterion = opts.simultaneous || 1;
	var targetItemContainer = opts.targetItemContainer || '#items';
	var list = $(this[0]);
	var pileElem = {};
	$('li', list).each( function() {
		$('a', this).click(function(e) {
			var selectedOptions = $('li.active', list);
			var selectedOptionsAmnt = $('li.active', list).size();
			e.preventDefault();
			if (!$(this).getState() && selectedOptionsAmnt < simultaneousCriterion) {
				$(this).onState();
				pileElem = $(this);
			}
			else if (!$(this).getState() && selectedOptionsAmnt >= simultaneousCriterion) {
				$(this).onState();
				pileElem.offState();
				pileElem = $(this);
			}
			else if ($(this).getState()) {
				$(this).offState();
			}
			var filters = $('ul.sorting li.sorting').getFilters();
			$(targetItemContainer).isotope({
				filter : filters
			});
		});
	});
}

jQuery.fn.getState = function() {
	if (this.hasClass('active')) {
		return true;
	}
	return false;
}

jQuery.fn.offState = function() {
	if (this.hasClass('active')) {
		this.removeClass('active').parent('li').removeClass('active');
		return true;
	}
	return false;
}

jQuery.fn.onState = function() {
	if (!this.hasClass('active')) {
		this.addClass('active').parent('li').addClass('active');
		return true;
	}
	return false;
}

jQuery.fn.switchState = function() {
	if (this.getState()) {
		this.removeClass('active').parent('li').removeClass('active');
		return 'inactive';
	}
	else {
		this.addClass('active').parent('li').addClass('active');
		return 'active';
	}
	return false;
}


jQuery.fn.getFilters = function() {
	var inFilters = "";
	$('a.sorting', this).each(function(){
		if ($(this).hasClass('active')) {
			if (inFilters.length == 0) {
				inFilters = '.'+$(this).attr('href').slice(1);
			}
			else {
				inFilters = inFilters+'.'+$(this).attr('href').slice(1);
			}
		}
	});
	return inFilters;
}
