anchor.diff:  
           var key = "bibs"; // defined in _header.html.erb
           var selected_racers = JSON.parse(localStorage.getItem(key)); // view _header to see how bibs are stored
  -        var racer_markers = [];
  +        var racer_markers = []; // array of markers that are displayed on map
   
           // initialize markers for selected racers so locations can be updated
           var n;
  
positive.code:                 racer_marker.bindPopup("Racer: " + current_racer.bib + ", Time: " + current_racer.time);
                  racer_marker.setOpacity(1);
              }
          }
  
          function updateCoords() {
  
negative.code:                 url: "welcome/updated_coords",
                  success: plotCoords // callback handler
              });
              setTimeout(updateCoords, 10000); // update every 10 seconds
          }
  
  
  
          /* ***************** Code for filter UI that allows users to remove and deselect racers ***************** */
  
          // find reference to filter UI and set its title
          var filter = document.getElementById('filter-racers');
          var title_item = filter.appendChild(document.createElement('div'));
          var title_label = title_item.appendChild(document.createElement('label'));
          title_label.innerHTML = "Selected Racers";
  
          var checkboxes = [];
          // create a filter interface.
          for (var i = 0; i < selected_racers.length; i++) {
              // item will contain input checkbox and label
              var item = document.createElement('div');
              filter.appendChild(item);
              item.id = selected_racers[i];
  
              // create checkbox and div to contain it
              var checkbox_div = document.createElement('div');
              checkbox_div.className = "container-inline";
              item.appendChild(checkbox_div);
              var checkbox = document.createElement('input');
              checkbox_div.appendChild(checkbox);
              checkbox.type = 'checkbox';
              checkbox.id = selected_racers[i]; // bib number is id for box
              checkbox.checked = true;
              checkboxes.push(checkbox);
  
              // create a label to the right of the checkbox with racer bib number
              var label = document.createElement('label');
              label.className = "container-inline";
              item.appendChild(label);
              label.innerHTML = "BibNo: " + selected_racers[i];
              label.setAttribute('for', selected_racers[i]);
          }
  
          // create button to remove racers with unchecked checkbox
          var update_item = filter.appendChild(document.createElement('div'));
          var update_button = document.createElement('button');
          var update_text = document.createTextNode('Update');
          update_button.appendChild(update_text);
          update_item.appendChild(update_button);
          update_button.addEventListener('click', update);
  
          // function called whenever someone clicks update button
          // function removes racer's marker with unchecked checkbox
          function update() {
              var to_keep = [];
              var to_delete_filters = []; // array to identify which divs to remove in filter UI
              var to_delete_indices = []; // array to identify which markers to remove from map
              var i;
              // run through each checkbox and record whether it is checked
              // if it is, add id (aka bibNo) to to_keep so racer marker stays on map
              for (i = 0; i < checkboxes.length; i++) {
                  if (checkboxes[i].checked) {
                      // keep bib number associated with checkbox
                      to_keep.push(Number(checkboxes[i].id));
                  }
                  else {
                      to_delete_filters.push(checkboxes[i].id);
                      to_delete_indices.push(i);
  
                      console.log("Going to delete index: " + i);
                      console.log("Going to delete id: " + checkboxes[i].id);
                  }
              }
  
              // delete racer from map and checkbox and label from filter UI
              var orig_len = to_delete_filters.length;
              for (i = 0; i < orig_len; i++) {
                  // need to delete starting from end of list so indices do not get mixed up
                  var index = orig_len - (i + 1);
  
                  // delete marker from map
                  var racer_marker = racer_markers[to_delete_indices[index]];
                  racer_markers.splice(to_delete_indices[index], 1);
                  map.removeLayer(racer_marker);
  
                  // delete checkbox referencing marker from filter
                  var checkbox_marker = to_delete_indices[index];
                  checkboxes.splice(checkbox_marker, 1);
  
                  // delete div from filter
                  var div_marker = document.getElementById(to_delete_filters[index].toString());
                  div_marker.remove();
  
                  console.log("Going to delete index: " + to_delete_indices[index]);
                  console.log("Going to delete id: " + to_delete_filters[index]);
              }
  
              localStorage.setItem(key, JSON.stringify(to_keep));
              console.log(localStorage.getItem(key));
  
              alert("Check console log from browser to view selected bibs. update")
          }
  
          updateCoords();
  