Index: branches/1.0.x/inc/js/list_manager.js =================================================================== diff -u -N -r14900 -r14911 --- branches/1.0.x/inc/js/list_manager.js (.../list_manager.js) (revision 14900) +++ branches/1.0.x/inc/js/list_manager.js (.../list_manager.js) (revision 14911) @@ -188,16 +188,31 @@ break; case 'range': + var $slider = $('#' + jq($param_name + '_slider') ), + $slider_options = { + min: $slider.slider('option', 'min'), + max: $slider.slider('option', 'max'), + step: $slider.slider('option', 'step') + }; + $values = $param_value.split('-'); + $values = this.invertRange($slider_options, $values[0], $values[1]); - $('#' + jq($param_name + '_slider') ).slider('option', 'values', $values); + $slider.slider('option', 'values', $values); $('#' + jq($param_name) ).val($param_value); break; } this.syncChecked( $("input[type=checkbox], input[type=radio]", '#filter-form-' + $field) ); } +ListManager.invertRange = function ($options, $min, $max) { + var $min_value = $options.min + (($options.max - $max) / $options.step) * $options.step, + $max_value = $options.max - (($min - $options.min) / $options.step) * $options.step; + + return [$min_value, $max_value]; +} + ListManager.syncChecked = function ($checkboxes) { $checkboxes.each( function () { @@ -231,6 +246,8 @@ ListManager.init = function () { var $manager = this; + this.firstLoad = window.location.hash.length > 1; + $('body').bind( 'anchorchanged', function ($e, $anchor) {