function constExpression(x) { return x; } function simplifyCSSExpression() { try { var ss,sl, rs, rl; ss = document.styleSheets; sl = ss.length for (var i = 0; i < sl; i++) { simplifyCSSBlock(ss[i]); } } catch (exc) { //alert("Got an error while processing css. The page should still work but might be a bit slower"); throw exc; } } function simplifyCSSBlock(ss) { var rs, rl; for (var i = 0; i < ss.imports.length; i++) simplifyCSSBlock(ss.imports[i]); if (ss.cssText.indexOf("expression(constExpression(") == -1) return; rs = ss.rules; rl = rs.length; for (var j = 0; j < rl; j++) simplifyCSSRule(rs[j]); } function simplifyCSSRule(r) { var str = r.style.cssText; var str2 = str; var lastStr; do { lastStr = str2; str2 = simplifyCSSRuleHelper(lastStr); } while (str2 != lastStr) if (str2 != str) r.style.cssText = str2; } function simplifyCSSRuleHelper(str) { var i, i2; i = str.indexOf("expression(constExpression("); if (i == -1) return str; i2 = str.indexOf("))", i); var hd = str.substring(0, i); var tl = str.substring(i2 + 2); var exp = str.substring(i + 27, i2); var val = eval(exp) return hd + val + tl; } if (/msie/i.test(navigator.userAgent) && window.attachEvent != null) { window.attachEvent("onload", function () { simplifyCSSExpression(); }); }