
	/**
	 * 1) Registers product (de)selection controls with an event handler and displays all already selected products
	 * 2) Registers filter collapse expand controls with an event handler
	 */
	$(document).ready(function () {
		//clearCheckboxes();
		//disableCheckboxes(true);
	
		ProductSelectionService.getSelectedProducts(productGroup, showProducts);
		
		$('#vergelijkSelectie .selectProductCheckbox').click(selectProductEvent);
		$('#vergelijkSelectie .deselectProductButton').click(selectProductEvent);		

		$("#filterPreference .filterItem a").each(function()
				{
					if ($(this).hasClass("dissapear") && $(this).hasClass("tooltip"))
					{
						$(this).html(
								"<span style='visibility: hidden;'>" +
									$(this).html() +
								"</span>"
							);
					}
				}
			);
		
		/* Product overzicht */
	    $("#vergelijkSelectie .resultaatBox").hover(showRollOver, RollOver.hide).bind("click", productdetail);		 
		$("#vergelijkSelectie .checkBox li").hover(disableProductLink, enableProductLink);		
		
		/* Product filters */		
		var minPrice = $("#filterPreference .minPrice");
		var maxPrice = $("#filterPreference .maxPrice");
		 
		$("option:last", $(minPrice)).remove();

		$(minPrice).change(adjustPriceVisibility).change(selectPriceFilterEvent);		
		$(maxPrice).change(selectPriceFilterEvent);

		$("#filterPreference .filterItem select").mouseleave(function(event) { event.stopPropagation(); });
		
		// clone the max price combobox into a container
		$("#maxPriceOriginalContainer").html($(maxPrice).html()).hide();

		adjustPriceVisibility();
		unbindOnHover();						
	});


	function unbindOnHover()
	{
		var cursorChange = function() { $(this).attr("cursor", "pointer"); };

		// fold action
		var filterItemClick = function (event) {
			if ($(event.target).is("select") ||
					$(event.target).is("option") ||
					$(event.target).is("input") ||
					$(event.target).is('.btnSubmitFilter')) {

				return;
			}

			$("fieldset .legend, #filterPreference .select", $(this)).eq(0).each(function() {
				doSlide($(this), 'FILTERS_' + productGroup);
			});
		};
		
		// bind action to all filters
		$(".filterItem.collapsed, #filterPreference .filterItem.expanded").bind("click.filterItem", filterItemClick);
		$(".filterItem.collapsed, #filterPreference .filterItem.expanded, .filterItem.collapsed *, .filterItem.expanded *").each(function() { $(this).css("cursor", "pointer"); });
	}




	function resetFilters()
	{
		$('#filterPreference .checkbox').attr("checked", false);
		$('#filterPreference select').each(function () {
			$('option', this).eq(0).attr("selected", "selected");
		});
		
		DeleteCookie('FILTERS_' + productGroup);

		$('#filterForm').submit();
	}


	/**
	 *	Display the tooltip of the (i) shown for every filter
	 */
	function displayFilterTooltip(aTag)
	{
		$("#tooltipPopup .box").html("<div class='title'>Uitleg</div><div>" + $("span", aTag).html() + "</div>");

		Tooltip.init("tooltipPopup");
		Tooltip.showAt(aTag, 20, 10, 250);
	}

	function showRollOver() {
		RollOver.rollOverWidth = $(this).width();		
		RollOver.rollOverX = $(this).offset().left;
		
		RollOver.rollOverHeight = $(this).outerHeight();
		RollOver.rollOverY = $(this).offset().top;

		RollOver.show(true, true, true, true);
	}

