(function($){
$.dimensions = { version: '@VERSION' };
$.each( [ 'Height', 'Width' ], function(i, name){
	$.fn[ 'inner' + name ] = function() { if (!this[0]){ return; } var torl = name == 'Height' ? 'Top' : 'Left', borr = name == 'Height' ? 'Bottom' : 'Right'; return this[ name.toLowerCase() ]() + num(this, 'padding' + torl) + num(this, 'padding' + borr); };
	$.fn[ 'outer' + name ] = function(options) { if (!this[0]){ return; } var torl = name == 'Height' ? 'Top' : 'Left', borr = name == 'Height' ? 'Bottom' : 'Right'; options = $.extend({ margin: false }, options || {}); return this[ name.toLowerCase() ]() + num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width') + num(this, 'padding' + torl) + num(this, 'padding' + borr) + (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0); };
});
$.each( ['Left', 'Top'], function(i, name) { $.fn[ 'scroll' + name ] = function(val) { if (!this[0]){ return; } return val != undefined ? this.each(function() { this == window || this == document ? window.scrollTo( name == 'Left' ? val : $(window)[ 'scrollLeft' ](), name == 'Top'  ? val : $(window)[ 'scrollTop'  ]() ) : this[ 'scroll' + name ] = val; }) : this[0] == window || this[0] == document ? self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] || $.boxModel && document.documentElement[ 'scroll' + name ] || document.body[ 'scroll' + name ] : this[0][ 'scroll' + name ]; }; });
$.fn.extend({
	position: function() { var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results; if (elem) { offsetParent = this.offsetParent(); offset = this.offset(); parentOffset = offsetParent.offset(); offset.top  -= num(elem, 'marginTop'); offset.left -= num(elem, 'marginLeft'); parentOffset.top  += num(offsetParent, 'borderTopWidth'); parentOffset.left += num(offsetParent, 'borderLeftWidth'); results = { top:  offset.top  - parentOffset.top, left: offset.left - parentOffset.left }; } return results; },
	offsetParent: function() { var offsetParent = this[0].offsetParent; while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') ) {  offsetParent = offsetParent.offsetParent; } return $(offsetParent); }
});
var num = function(el, prop) { return parseInt($.css(el.jquery?el[0]:el,prop))||0; };
})(jQuery);