Element.extend({getDimensions:function(a){a=$merge({computeSize:false},a);var f={};function d(h,e){if(e.computeSize){f=h.getComputedSize(e)}else{f.width=h.getSize().size.x;f.height=h.getSize().size.y}return f}try{f=d(this,a)}catch(c){}if((f.x==0||$type(f.x)!="number")||(f.y==0||$type(f.y)!="number")){var b=new Element("div").setStyles({position:"absolute",top:"-1000px",left:"-1000px",display:"block"}).injectAfter(this);var g=this.clone().injectInside(b).setStyle("display","block");f=d(g,a);b.remove()}return $merge(f,{x:f.width,y:f.height})},getComputedSize:function(a){a=$merge({styles:["padding","border"],plains:{height:["top","bottom"],width:["left","right"]},mode:"both"},a);var c={width:0,height:0};switch(a.mode){case"vertical":delete c.width;delete a.plains.width;break;case"horizontal":delete c.height;delete a.plains.height;break}var b=[];$each(a.plains,function(g,f){g.each(function(h){a.styles.each(function(i){b.push((i=="border")?i+"-"+h+"-width":i+"-"+h)})})});var e=this.getStyles.apply(this,b);var d=[];$each(a.plains,function(g,f){c["total"+f.capitalize()]=0;c["computed"+f.capitalize()]=0;g.each(function(h){c["computed"+h.capitalize()]=0;b.each(function(k,j){if(k.test(h)){e[k]=e[k].toInt();if(isNaN(e[k])){e[k]=0}c["total"+f.capitalize()]=c["total"+f.capitalize()]+e[k];c["computed"+h.capitalize()]=c["computed"+h.capitalize()]+e[k]}if(k.test(h)&&f!=k&&(k.test("border")||k.test("padding"))&&!d.test(k)){d.push(k);c["computed"+f.capitalize()]=c["computed"+f.capitalize()]-e[k]}})})});if($chk(c.width)){c.width=c.width+this.offsetWidth+c.computedWidth;c.totalWidth=c.width+c.totalWidth;delete c.computedWidth}if($chk(c.height)){c.height=c.height+this.offsetHeight+c.computedHeight;c.totalHeight=c.height+c.totalHeight;delete c.computedHeight}return $merge(e,c)}});
