function fireProductFilterViewUpdateEvent(productFilterView,formName){
		
		var showDiscontinued=productFilterView.includeDiscontinuedProductFilter.selected;
	
		$("#"+formName+"filtercount"+productFilterView.dummyDiscontinuedOnlyCountFilter.id).html(productFilterView.dummyDiscontinuedOnlyCountFilter.count == "0" ? "(0)" : "("+productFilterView.dummyDiscontinuedOnlyCountFilter.count+")");
		
		$("#"+formName+"filtercount"+productFilterView.newProductFilter.id).html(productFilterView.newProductFilter.count == "0" ? "(0)" : "("+productFilterView.newProductFilter.count+")");
		if(productFilterView.newProductFilter.selected){
			$("#NewProductFilterId").removeAttr("disabled");
		}
		else if(productFilterView.newProductFilter.count == 0){
			$("#NewProductFilterId").attr("disabled","disabled");
		}
		else{
			$("#NewProductFilterId").removeAttr("disabled");
		}
		
		$.each(productFilterView.productFilterGroups, function(i,productFilterGroup){
			$.each(productFilterGroup.productFilters, function(i,productFilter){
				
				if(productFilter.forDiscontinuedOnly && !showDiscontinued){
					$("#"+formName+"optionGroupItem"+productFilter.id).hide();
					//unselect anything u're hiding
					$("#"+formName+"checkbox"+productFilter.id).removeAttr("checked");
				}else if(productFilter.forDiscontinuedOnly && showDiscontinued){
					$("#"+formName+"optionGroupItem"+productFilter.id).show();
				}
				
				if(productFilter.selected){
	   				$("#"+formName+"optionGroupItem"+productFilter.id).addClass("selected");
	   				$("#"+formName+"optionGroupItem"+productFilter.id).removeClass("inactive");
	   				$("#"+formName+"checkbox"+productFilter.id).removeAttr("disabled");
	   			}else if(productFilter.count == 0){
	   				$("#"+formName+"optionGroupItem"+productFilter.id).removeClass("selected");
	   				$("#"+formName+"optionGroupItem"+productFilter.id).addClass("inactive").find('label').animate({opacity:0.3}, 0);
	   				$("#"+formName+"checkbox"+productFilter.id).attr("disabled","disabled");
	   			}
	   			else{
	   				$("#"+formName+"optionGroupItem"+productFilter.id).removeClass("selected");
	   				$("#"+formName+"optionGroupItem"+productFilter.id).removeClass("inactive").find('label').animate({opacity:1}, 0);
	   				$("#"+formName+"checkbox"+productFilter.id).removeAttr("disabled");
	   			}
	   			$("#"+formName+"filtercount"+productFilter.id).html(productFilter.count == "0" ? "(0)" : "("+productFilter.count+")");
	   		});
     	 });	
	
	
	var pfv = [productFilterView];
	$(document).trigger("productFilterViewUpdate",pfv);
			
}

function bindtoProductFilterViewUpdateEvent(fun){
	$(document).bind("productFilterViewUpdate",fun);
}

function refreshFilterPicker(formName){
	data = $("form[name="+formName+"]").serialize();
	//alert(data);
 		$.getJSON("/filter.json?"+data+"&time="+new Date().getTime(),
       	function(data){
       		fireProductFilterViewUpdateEvent(data.productFilterView,formName);
   		}
   	);
}

$(document).ready(function(){
  	$(".filterlink").click(
  			function(){
  				formName = $(this).attr("rel");
  				if($(this).attr("id")==formName+"IncludeDiscontinuedProductFilterId" && $(this).attr("checked")==false){
  					$(".filterlink[discontinuedOnly='true']").removeAttr("checked");
  				}
  				refreshFilterPicker(formName);
			}
	);
	
});
