var navHash          = '';
var navFilterSaveUrl = '';

function toggleDescendants(id){
	$('div:[parent='+id+']').toggle('blind');
}

function filterNavMenu(){
	var selectors = Array();
	$('.navFilterElement').hide();
	$(".navFilter:checked").each(function(i) {
		var filters = $(this).val().split('|');
		for (x=0; x<filters.length;x++) {
			if (jQuery.inArray(filters[x], selectors) <= -1) selectors.push(filters[x]);
		}
	});
	var selList = '';
	if (selectors.length > 0) {
		
		jQuery.each(selectors, function() {
			$(".navFilterElement[navFilters*='"+this+"']").show();
			selList += '&filterValues[]='+this;
		});
	}
	// Save Filters in session
	saveFilters(selList);
}

function toggleNavFilterDescendants(parent, stat){
	$(".navFilter[parent='"+parent+"']").attr("checked", stat);
	$(".navFilter[grandparent='"+parent+"']").attr("checked", stat);
}

function buildNavFilters(navFilterConf) {
	$('.navFilter').bind("click", function(){
		toggleNavFilterDescendants($(this).val(), $(this).attr('checked'));
        filterNavMenu();
	});
	$(".listSmallCheckAll").click(function() {
		$("div.listSmall input.navFilter").attr("checked", "checked");
		filterNavMenu();
		return false;
	});
	
	$(".listSmallUncheckAll").click(function() {
		$("div.listSmall input.navFilter").attr("checked", "");
		filterNavMenu();
		return false;
	});
	if (navFilterConf != undefined) {
		if (navFilterConf['hash'] != undefined)	navHash          = navFilterConf['hash'];
		if (navFilterConf['url'] != undefined)	navFilterSaveUrl = navFilterConf['url'];
	}
	filterNavMenu();
}

function saveFilters(selList){
	if (navHash != '' && navFilterSaveUrl != '') {
		$.post(navFilterSaveUrl, 'filterHash='+navHash+selList);
	}
}