Hi ackerley1,
I have to disagree with Dinghus here. There is a tremendous benefit to using an XHTML/CSS layout if it is done correctly, which is that it can make your site much more search engine friendly. I have had websites start getting two and three times the traffic simply by switching them from their old table-based design to a new CSS layout.
However, the only point of doing that is if you set up the HTML with your content first, before all of your header, sidebar and navigation HTML. Looking at your code, it doesn't seem like you will be getting that benefit. Plus, putting all those conditional tables in there is just making everything a lot more complicated than it needs to be.
I would suggest having a browse through
www.oswd.org and finding a layout that would work for you, where somebody has already figured out the hard part of making a multi-column layout that is cross-browser compatible. What I do is then move the HTML divs around in the code, using absolute positioning if necessary, so that the main content comes first in the code.
This approach is not for everybody -- CSS can take a lot of time to master -- but if you stick with it then it will be well worth it in the end. If you don't have the time or inclination, then Dinghus is right, a table is usually a lot easier to set up.
If you decide to stick with a CSS layout, feel free to post here again for support!