Made outerHeight/outerWidth accept .outerWidth(true) to include the margin. If any...
[jquery.git] / src / offset.js
index 8ee5680..010c57d 100644 (file)
@@ -9,7 +9,7 @@ jQuery.fn.offset = function() {
                    offsetChild  = elem,
                    offsetParent = elem.offsetParent, 
                    doc          = elem.ownerDocument,
-                   safari2      = safari && parseInt(version) < 522,
+                   safari2      = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent),
                    fixed        = jQuery.css(elem, "position") == "fixed";
        
                // Use getBoundingClientRect if available
@@ -96,3 +96,32 @@ jQuery.fn.offset = function() {
 
        return results;
 };
+
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each(["Height", "Width"], function(i, name){
+
+       var tl = name == "Height" ? "Top"    : "Left",  // top or left
+               br = name == "Height" ? "Bottom" : "Right"; // bottom or right
+       
+       // innerHeight and innerWidth
+       jQuery.fn["inner" + name] = function(){
+               return this[ name.toLowerCase() ]() + 
+                       num(this, "padding" + tl) + 
+                       num(this, "padding" + br);
+       };
+       
+       // outerHeight and outerWidth
+       jQuery.fn["outer" + name] = function(margin) {
+               return this["inner" + name]() + 
+                       num(this, "border" + tl + "Width") +
+                       num(this, "border" + br + "Width") +
+                       (!!margin ? 
+                               num(this, "margin" + tl) + num(this, "margin" + br) : 0);
+       };
+       
+});
+
+function num(elem, prop) {
+       elem = elem.jquery ? elem[0] : elem;
+       return elem && parseInt( jQuery.curCSS(elem, prop, true) ) || 0;
+}
\ No newline at end of file