- if ($.getCSS(e,"display") != 'none') {
- return p == 'height' ?
- e.offsetHeight || parseInt(e.style.height,10) :
- e.offsetWidth || parseInt(e.style.width,10);
+ var ph = $.browser == "msie" ? 0 :
+ parseInt($.css(e,"paddingTop")) + parseInt($.css(e,"paddingBottom"));
+ var pw = $.browser == "msie" ? 0 :
+ parseInt($.css(e,"paddingLeft")) + parseInt($.css(e,"paddingRight"));
+
+ var oHeight, oWidth;
+
+ if ($.css(e,"display") != 'none') {
+ oHeight = e.offsetHeight || parseInt(e.style.height,10);
+ oWidth = e.offsetWidth || parseInt(e.style.width,10);
+ } else {
+ var els = e.style;
+ var ov = els.visibility;
+ var op = els.position;
+ var od = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = '';
+ oHeight = e.clientHeight - ph || parseInt(e.style.height,10);
+ oWidth = e.clientWidth || parseInt(e.style.width,10);
+ els.display = od;
+ els.position = op;
+ els.visibility = ov;