<p>What is the best way to manage a list of windows (keeping them in order) to be able to promote the next window to the top-level when the current top-level window is closed.<br>
This is for a web application, so we're using jQuery Javascript.</p>

<p>We'd talked through a few simplistic solutions, such as using an array and just treating [0] index as the top-most window.</p>

<p>I'm wondering if there's any potentially more efficient or useful alternative to what we had brainstormed.</p>

One helpful technique is to output both versions of the report to plain text, then diff those outputs.
You could write something using the crystal report component to describe every property of the report, like you described.  Then  you could output
that
to text, and diff
those
.  I'm not aware of any open source tool that does it for you, but it would not be terribly hard to write it.
@question in the post:
Diffing the outputs would only show formatting changes if the
relative
positions had changed.  For example, if i had this:
before:
First name, last name, addresss
after:
Last Name, First Name, Address
Then that would show up as a difference.
But if I had just bumped the address column over a few pixels, or changed it from plain text to bold, then you are right, that would not show up.