anchor.diff:                  <option title="" value="4">400%</option>
                 </select>
                 </span>
  -                    </div>
                     </div>
  -                  <div id="loadingBar">
  -                    <div class="progress">
  -                      <div class="glimmer">
  -                      </div>
  +                </div>
  +                <div id="loadingBar">
  +                  <div class="progress">
  +                    <div class="glimmer">
                       </div>
                     </div>
                   </div>
                 </div>
  -              <div id="viewerContainer" tabindex="0">
  -                <div id="viewer"></div>
  +            </div>
  +            <div id="viewerContainer" tabindex="0">
  +              <div id="viewer"></div>
  +            </div>
  +            <div id="errorWrapper" hidden='true'>
  +              <div id="errorMessageLeft">
  +                <span id="errorMessage"></span>
  +                <button id="errorShowMore" data-l10n-id="error_more_info">
  +                  More Information
  +                </button>
  +                <button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
  +                  Less Information
  +                </button>
                 </div>
  -              <div id="errorWrapper" hidden='true'>
  -                <div id="errorMessageLeft">
  -                  <span id="errorMessage"></span>
  -                  <button id="errorShowMore" data-l10n-id="error_more_info">
  -                    More Information
  -                  </button>
  -                  <button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
  -                    Less Information
  -                  </button>
  -                </div>
  -                <div id="errorMessageRight">
  -                  <button id="errorClose" data-l10n-id="error_close">
  -                    Close
  -                  </button>
  -                </div>
  -                <div class="clearBoth"></div>
  -                <textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
  +              <div id="errorMessageRight">
  +                <button id="errorClose" data-l10n-id="error_close">
  +                  Close
  +                </button>
                 </div>
  -            </div> <!-- mainContainer -->
  -          </div>
  +              <div class="clearBoth"></div>
  +              <textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
  +            </div>
  +          </div> <!-- mainContainer -->
           </div>
  +      </div>
       </div>
   
       <div id='drag'></div>
   
       <div id='right-pane' class='input_pane'>
         <div class='ui-tabs-panel flex-col'>
  -          <div class="side_header">
  -            <h2 id="group_name"></h2>
  -          </div>
  -          <form id="assign_student" class="side_header">
  -            <input id="names" name="names" type="text" placeholder="<%= t('user.full_name') %>">
  -            <input id="student_id" name="s_id" type="hidden">
  -            <input id="grouping_id" name="g_id" value="" type="hidden">
  -            <button type="submit"><%= t('save') %></button>
  -          </form>
  -          <h3>
  -            <%= t('members') %>
  -          </h3>
  -          <div id="group_members">
  -          </div>
  +        <div class="side_header">
  +          <h2 id="group_name"></h2>
           </div>
  +        <form id="assign_student" class="side_header">
  +          <input id="names" name="names" type="text" placeholder="<%= t('user.full_name') %>">
  +          <input id="student_id" name="s_id" type="hidden">
  +          <input id="grouping_id" name="g_id" value="" type="hidden">
  +          <button type="submit"><%= t('save') %></button>
  +        </form>
  +        <h3>
  +          <%= t('members') %>
  +        </h3>
  +        <div id="group_members">
  +        </div>
  +      </div>
       </div>
     </div>
   </div>
  
positive.code: <% content_for :head do %>
    <%= stylesheet_link_tag 'clickable',
                            'grader',
                            'pdfjs/viewer',
                            'jquery-ui' %>
    <%= javascript_include_tag 'Results/file_selector',
                               'panes',
                               'pdfjs',
                               'testresults_config',
                               'Results/context_menu' %>
  
    <%= javascript_tag do -%>
        PDFJS.workerSrc = "<%= @host %>/assets/pdfjs_lib/pdf.worker.js";
    <% end -%>
  <% end %>
  
  <script>
    $(document).ready(function() {
        $("#names").autocomplete({
            source: function(request, response) {
                $.getJSON("get_names",
                          { assignment: <%= @assignment.id %>,
                            term: $("#names").val()
                          },
                          response);
            },
            minLength: 1,
            select: function(event, ui) {
                $("#student_id").val(ui.item.id);
            }
        }).data("ui-autocomplete")._renderItem = function(ul, item) {
            return $("<li>")
                .data("ui-autocomplete-item", item)
                .append("<div>" + item.label + "<br>" +
                    "<span class='stuid'>" + item.id_number + " | " + item.user_name + "</span></div>")
                .appendTo(ul);
        };
        $("#assign_student").submit(function (e) {
            e.preventDefault();
            $.ajax({
                method: "GET",
                url: "assign_student_and_next",
                dataType: "json",
                data: $( "#assign_student" ).serialize(),
                success: parseNextScan
            });
        });
        function getNextScan() {
            $.ajax({
                method: "GET",
                url: "next_grouping",
                dataType: "json",
                data: {
                    a_id: <%= @assignment.id %>
                },
                success: parseNextScan
            });
        }
        function parseNextScan(data) {
            $("#group_members").empty();
            for(var i = 0; i < data.students.length; i++){
                $("#group_members").append("<p>" + data.students[i] + "</p>")
            }
            current_group = $("#grouping_id").val();
            $("#assign_student").find("input").val("");
            update_bar(data.num_valid, data.num_total);
            // Anytime we advance to another assignment
            if(data.grouping_id != current_group){
                $("#grouping_id").val(data.grouping_id);
                $("#group_name").html(data.group_name);
                webViewerLoad(data.filelink);
            // When an assignment needs to reload because not meeting minimum group members
            // or when all assignments are already assigned
            }else{
                $("#grouping_id").val(current_group);
            }
        }
        getNextScan();
    });
  
    <% # Javascript for progress bar %>
  
negative.code: <div id='panes-content'>
    <div id='panes'>
      <div id='left-pane' class='display_pane'>
        <div id='codeviewer' class='flex-col'>
          <div id="outerContainer" class="loadingInProgress">
            <div id="mainContainer">
              <div class="toolbar">
                <div id="toolbarContainer">
                  <div id="toolbarViewer">
                    <div id="toolbarViewerLeft">
                      <div class="splitToolbarButton">
                        <button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13" data-l10n-id="previous">
                          <span data-l10n-id="previous_label">Previous</span>
                        </button>
                        <div class="splitToolbarButtonSeparator"></div>
                        <button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14" data-l10n-id="next">
                          <span data-l10n-id="next_label">Next</span>
                        </button>
                      </div>
                      <button class="toolbarButton rotateMarkus" title="Rotate" onclick='rotate(); return false;'/>
  
                      <label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label>
                      <input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4" min="1" tabindex="15">
                      <span id="numPages" class="toolbarLabel"></span>
                    </div>
                    <div class="toolbarViewerRight">
                      <div class="splitToolbarButton">
                        <button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21" data-l10n-id="zoom_out">
                          <span data-l10n-id="zoom_out_label">Zoom Out</span>
                        </button>
                        <div class="splitToolbarButtonSeparator"></div>
                        <button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22" data-l10n-id="zoom_in">
                          <span data-l10n-id="zoom_in_label">Zoom In</span>
                        </button>
                      </div>
                      <span id="scaleSelectContainer" class="dropdownToolbarButton">
                <select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
                  <option id="pageAutoOption" title="" value="auto" selected="selected" data-l10n-id="page_scale_auto">Automatic Zoom</option>
                  <option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">Actual Size</option>
                  <option id="pageFitOption" title="" value="page-fit" data-l10n-id="page_scale_fit">Fit Page</option>
  