tx_decgmaps_categoriesFilter = {
	ref: null,
	config: null,
	
	activeCats: [],
	
	
	init: function(){
		
		jQuery.extend(this.ref, {
			tx_decgmaps_categoriesFilter_MakeMarker: this.ref.makeMarker,
			makeMarker: function(node){
				if(this.modules.tx_decgmaps_categoriesFilter.checkMarker(node)) {
					return this.tx_decgmaps_categoriesFilter_MakeMarker(node);
				} else return null;
			}
		});
		
		this.resetCats(true);
		
		var mod = this;
		jQuery("#" + this.ref.mapId + " .tx-decgmaps-categoriesFilter input[@type=checkbox]").click(function(){
			mod.resetCats(false);
		});
	},
	
	checkMarker: function(node){
		return jQuery.inArray(node.attr("cat"), this.activeCats) != -1;
	},
	
	resetCats: function(init){
		var activeCats = [];
		jQuery("#" + this.ref.mapId + " .tx-decgmaps-categoriesFilter input[@type=checkbox]").each(function(){
			if(this.checked){
				activeCats.push(jQuery(this).val());
			}
		});
		
		this.activeCats = activeCats;
		if(!init) this.ref.addMarkersToManager();
	}
}