anchor.diff:      }
       
       function push_index_state() {
  -       if (supports_history_api()) history.pushState({index: calendar_range}, "list trips", "<%= trips_path %>?" + $.param(calendar_range));
  +      // console.log ('scroll_positions in push_index_state', scroll_positions);
  +      if (supports_history_api()) history.pushState({index: calendar_range, scroll_positions: scroll_positions}, "list trips", "<%= trips_path %>?" + $.param(calendar_range));
       }
       
       function replace_index_state() {
  -       if (supports_history_api()) history.replaceState({index: calendar_range}, "list trips", "<%= trips_path %>?" + $.param(calendar_range));
  +      // console.log ('scroll_positions in replace_index_state', scroll_positions);
  +      if (supports_history_api()) history.replaceState({index: calendar_range, scroll_positions: scroll_positions}, "list trips", "<%= trips_path %>?" + $.param(calendar_range));
       }
       
       function push_edit_state(path) {
  +      // console.log ('scroll_positions in push_edit_state', scroll_positions);
         if (supports_history_api()) history.pushState({edit: path}, "edit trip", path);
       }
       
  
positive.code: 
      window.onpopstate = function(event) {
        if (event.state) {
          if (event.state['index']) load_index_trips(event.state['index'].start * 1000);
          if (event.state.edit) $.get(event.state.edit, function(data){ load_edit_trip(data.form) }, "json");
        }
  
negative.code:           $.getJSON('<%= trips_path :json %>',
              calendar_range,
              function(data, textStatus, jqXHR){  
                // console.log ('scroll_positions in getJSON', scroll_positions);
                
                // we probably didn't have the right range before, so now  we should update the state
                if ( on_trip_index() ) replace_index_state();
                            
                callback(data.events);              
  
  