Well, first of all, lets just clarify that "minimizing" is when you hit the little _ button and send the entire window down to just the single button in the task bar. Going from maximized state to normal state is merely called "restoring."
That out of the way, let's take a look at the problem. Ah, ok, here's what you want to do. Let's examine your code:
One line of your code looks like this:
<frameset rows="359,122" cols="*">
Let's just clarify one thing: You don't need to specify both rows= and cols=. Only one of them. In this case, you can just reduce that line to
<frameset rows="359,122">
and it will behave the same way.
<frameset rows="121,470" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="top.html" scrolling="no" no resize>
<frameset rows="359,122" cols="*">
... more frame stuff ...
<frame src="bottom.html" scrolling="no" no resize>
</frameset>
</frameset>
OK, there's a simpler way to do this. What you're doing is dividing it up into two rows, and then dividing one of them into two rows. What you can do instead is divide the whole thing up into three rows at once:
<frameset rows="121,359,122" frameborder="NO" border="0" framespacing="0">
<frame src="top.html" scrolling="no" no resize>
... more frame stuff ...
<frame src="bottom.html" scrolling="no" no resize>
</frameset>
See? just by adding more things in the rows="" attribute, you can put multiple rows in at once.
Now, here's the important part. You're specifying a height for each row! The browser isn't quite sure what to do with it. What you want to do, is specify a height for the middle row (which will contain the content), and then just say that the other two rows should take up whatever space is left. Make sense? This is how you can do that:
<frameset rows="*,359,*" frameborder="NO" border="0" framespacing="0">
<frame src="top.html" scrolling="no" no resize>
... more frame stuff ...
<frame src="bottom.html" scrolling="no" no resize>
</frameset>
Notice that I put an asterisk (*) instead of the value for each row that you want to just take up whatever space is available. The middle frame will take up 359 pixels of the height, and the remaining frames will divide up the remaining space between them!
That should solve your problem. You can then apply the same principles to the rest of the frameset. In the end, this will probably work:
<frameset rows="*,359,*" frameborder="NO" border="0" framespacing="0">
<frame src="top.html" scrolling="no" no resize>
<frameset cols="*,535,*">
<frame src="left.html">
<frameset cols="323,212" frameborder="YES" border="1" framespacing="0" bordercolor="#666699">
<frame src="main.html" name="_default" marginwidth="10" marginheight="10">
<frame src="nav.html" scrolling=no noresize>
</frameset>
<frame src="right.html">
</frameset>
<frame src="bottom.html" scrolling="no" no resize>
</frameset>
I also noticed a few other things about that: one, "no resize" wont work, I'm not sure what the correct method is, but a two word phrase never works in HTML tags like that, maybe its "noresize", maybe its "resize="no"", i'm not sure.
The other thing is to make sure your math is right: i had to change the width of the content area from 538 to 535 so that the middle frames take up the space correctly.
One more warning: Netscape will never display your frames correctly, it will always be up to 10 pixels off here and there. Don't worry about it too much.
Hope that helps!