I fixed a few bugs in the viewer search results processing. Also added buttons for "first match"/"last match".
In the administration program, I modified the markup file loader so that it can keep the user informed about progress. Previously, it sent the complete list of selected files to the server, where they were all processed and the results returned in a batch. Now the client side creates a list of the selected files, then sends them one at a time to the server. While the process is going on, a modal dialog box appears (so the user can't mess with things), with a progress bar that marches across as the files are completed. The status for each file is also displayed as they complete. There will also be a Cancel button on the dialog, which will cause the process to halt after the current file is complete.
The viewer program is now about 80% complete. The administration program is not so far along, at about 50% complete.