function fireProductFilterViewUpdateEvent(productFilterView,formName){
		
		$("#"+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.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");
  				refreshFilterPicker(formName);
  				
			}
	);
	
});

