#**
 *  Display facets based on ranges of values, AKA "Bukets"
 *  e.g.: ranges specified by &facet.range=
 *#

<h2 #annTitle("Facets generated by adding &facet.range= to the request")>
  Range Facets
</h2>

#foreach ($field in $response.response.facet_counts.facet_ranges)
  ## Hide facets without value
  #if($field.value.counts.size() > 0)
	#set($name = $field.key)
	#set($display = $name)
	#set($f = $field.value.counts)
	#set($start = $field.value.start)
	#set($end = $field.value.end)
	#set($gap = $field.value.gap)
	#set($before = $field.value.before)
	#set($after = $field.value.after)
	#display_facet_range($f, $display, $name, $start, $end, $gap, $before, $after)
  #end  ## end if has any values
#end    ## end for each facet range
