A couple of syntax points:
1) Are you using a tool to make the CSS? You don't need, for example, the clip declarations, since on the one hand there's no values for the rect() and on the other, to quote the docs, "The 'clip' property applies to elements that have a 'overflow' property with a value other than 'visible'," which I don't think applies to yours.
2) Wow. That is a hell of a lot of javascript.
3) Now that you're going the CSS route, maybe you can eliminate:
- The 3x3 spacer gif
- The s p a c e s in-between letters. Use letter-spacing instead.
- Any font tags. Shudder.
4) Get to know some of the shorthand declarations, starting with:
font: bold italic 9pt Arial, Helvetica, sans-serif; instead of
font-family: Arial, Helvetica, sans-serif; font-size: 9pt; font-style: italic; font-weight: bold; font-variant: normal;
5) I'd recommend using padding-left instead of text-indent on the h1 elements.
6) Again to quote, "position = static: The box is a normal box, laid out according to the normal flow. The 'left' and 'top' properties do not apply." So you certainly don't need the left and top bits there. Specifying {position: static} isn't even necessary, in my experience, since it's the initial value. There are a number of similar declarations which you might as well leave as the initial value; if something overrides it, it's probably the user and it's probably for a good reason.
7) For h3, did you mean 10pt instead of 10px? Seems more regular.
8) Are you leaving off the final semicolon in each block for IE4's sake (IIRC)? Hate that, but you gotta do what you gotta do. ISTR some other browser ignoring lines without one.
9) Did I mention that is a metric buttload of javascript? It is.
Anyway, here's what I came up with, except for the letter-spacing, which would involve reworking the html, to boot:
body {\n font: 10pt Arial, Helvetica, sans-serif;\n color: #000000;\n background-color: #FFFFFF;\n}\n\nh1 {\n font: bold italic 9pt Arial, Helvetica, sans-serif; \n text-transform: lowercase;\n background-color: #DDDDDD;\n padding-left: 1em;\n margin-top: 0px;\n margin-bottom: 0px;\n}\n\nh2 { font: bold 12pt Arial, Helvetica, sans-serif; }\nh3 { font: bold 10pt Arial, Helvetica, sans-serif; }\n\n.main {\n position: absolute;\n width: 72%;\n left: 5px;\n}\n\n.news {\n position: absolute;\n width: 20%;\n left: 75%;\n}\n\n.header {\n width: 100%;\n margin-bottom: 1em;\n}\n\n.footer { width: 100%; }\n.disclaimer { font: 8pt Arial, Helvetica, sans-serif; }\n.boldtext { font-weight: bold; }\n.smalltext { font-size: 8pt; }