$(function() {

	$.equalHeights(1);

	$("div.resultfilter fieldset > legend").wrapInner("<span></span>");

	/* hide lists and buttons */
	$("div.resultfilter fieldset.optionlist, div.resultfilter fieldset:not(.afstand) div.buttons, div.resultfilter p").hide();

	if ($("fieldset.leeftijd input.textfield").val() > 0) {
		$("fieldset.leeftijd").show();
	}

	/* show selected options as list */
	$("div.resultfilter fieldset:has(input:checked) fieldset.optionlist").each(function() {
		var ul = $("<ul class='display'></ul>");
		var label;
		var hdr = $("<h5>Uw keuze</h5>").hide();

		if ($(this).find("input:checked").length != 0) {
			$(this).find("input:checked").each(function() {
				label = $(this).next("label[for='" + $(this).attr("id") + "']").html();
				ul.append($("<li>" + label + "</li>"));
			});

			$(this).show().append(hdr).append(ul).find("div.column").hide();
			$(this).find("legend").addClass("display").show();
		}
	});

	function dynamicFilter(context, index) {
		var text = $(context).text();

		var button = $("<button title='" + text + " wijzigen' id='rf-button" + index + "'>Open " + text + " filter</button>");

		var label = $("<label for='rf-button" + index + "'></label>");

		$(context).wrapInner(label).click(function(e) {

			var fs = $(context).parent();

			if (fs.find("button.close-button").length == 0) {
				var closeButton = $("<button class='close-button'>sluiten</button>").click(function(e) {
					fs.removeClass("open");
					fs.find("fieldset.optionlist, h5, div.buttons, p").hide();
					fs.find("fieldset.optionlist:has(ul.display)").show();
					fs.find("fieldset.optionlist:has(ul.display) > div.column").hide();
					fs.find("fieldset.optionlist:has(ul.display) > ul.display").show();
					closeButton.remove();
					dynamicFilter(context);
					e.preventDefault();
				});
			}

			fs.addClass("open");
			if (fs.find("div.fs-container").length == 0) {
				fs.find("> *:not(.buttons, h4)").wrapAll("<div class='fs-container'></div>");
			}
			fs.find("*").fadeIn("slow");
			fs.find("ul.display, h5").hide();
			fs.find("h4").find("button").remove().end().text(text);
			$(context).after(closeButton);

			e.preventDefault();
		}).append(button);

	}

	/* display option lists in popup */
	$("div.resultfilter fieldset:not(.afstand) h4").each(function(index, obj) {
		dynamicFilter(obj, index);
	});

	$("fieldset.error:first h4").triggerHandler("click");

});