 jQuery.fn.height = function() { if ( this.get(0) == window ) return self.innerHeight || jQuery.boxModel && document.documentElement.clientHeight || document.body.clientHeight;  if ( this.get(0) == document ) return Math.max( document.body.scrollHeight, document.body.offsetHeight );  return this.css("height", arguments[0]); };   jQuery.fn.width = function() { if ( this.get(0) == window ) return self.innerWidth || jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth;  if ( this.get(0) == document ) return Math.max( document.body.scrollWidth, document.body.offsetWidth );  return this.css("width", arguments[0]); };  jQuery.fn.innerHeight = function() { return this.get(0) == window || this.get(0) == document ? this.height() : this.get(0).offsetHeight - parseInt(this.css("borderTop") || 0) - parseInt(this.css("borderBottom") || 0); };  jQuery.fn.innerWidth = function() { return this.get(0) == window || this.get(0) == document ? this.width() : this.get(0).offsetWidth - parseInt(this.css("borderLeft") || 0) - parseInt(this.css("borderRight") || 0); };   jQuery.fn.outerHeight = function() { return this.get(0) == window || this.get(0) == document ? this.height() : this.get(0).offsetHeight; };  jQuery.fn.outerWidth = function() { return this.get(0) == window || this.get(0) == document ? this.width() : this.get(0).offsetWidth; };   jQuery.fn.scrollLeft = function() { if ( this.get(0) == window || this.get(0) == document ) return self.pageXOffset || jQuery.boxModel && document.documentElement.scrollLeft || document.body.scrollLeft;  return this.get(0).scrollLeft; };   jQuery.fn.scrollTop = function() { if ( this.get(0) == window || this.get(0) == document ) return self.pageYOffset || jQuery.boxModel && document.documentElement.scrollTop || document.body.scrollTop;  return this.get(0).scrollTop; };   jQuery.fn.offset = function(refElem) { if (!this[0]) throw 'jQuery.fn.offset requires an element.';  refElem = (refElem) ? jQuery(refElem)[0] : null; var x = 0, y = 0, elem = this[0], parent = this[0], sl = 0, st = 0; do { if (parent.tagName == 'BODY' || parent.tagName == 'HTML') {  if ((jQuery.browser.safari || jQuery.browser.msie) && jQuery.css(parent, 'position') != 'absolute') { x += parseInt(jQuery.css(parent, 'marginLeft')) || 0; y += parseInt(jQuery.css(parent, 'marginTop'))  || 0; } break; }  x += parent.offsetLeft || 0; y += parent.offsetTop  || 0;  if (jQuery.browser.mozilla || jQuery.browser.msie) { x += parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0; y += parseInt(jQuery.css(parent, 'borderTopWidth'))  || 0; }  if (jQuery.browser.mozilla && jQuery.css(parent, 'overflow') == 'hidden') { x += parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0; y += parseInt(jQuery.css(parent, 'borderTopWidth'))  || 0; }   var op = parent.offsetParent; do { sl += parent.scrollLeft || 0; st += parent.scrollTop  || 0; parent = parent.parentNode; } while (parent != op); } while (parent);  if (refElem) {  var offset = jQuery(refElem).offset(); x  = x  - offset.left; y  = y  - offset.top; sl = sl - offset.scrollLeft; st = st - offset.scrollTop; }  if (jQuery.browser.safari || jQuery.browser.opera) { x += parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0; y += parseInt(jQuery.css(elem, 'borderTopWidth'))  || 0; }  return { top:  y - st, left: x - sl, width:  elem.offsetWidth, height: elem.offsetHeight, borderTop:  parseInt(jQuery.css(elem, 'borderTopWidth'))  || 0, borderLeft: parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0, marginTop:  parseInt(jQuery.css(elem, 'marginTopWidth'))  || 0, marginLeft: parseInt(jQuery.css(elem, 'marginLeftWidth')) || 0, scrollTop:  st, scrollLeft: sl, pageYOffset: window.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop  || 0, pageXOffset: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0 }; };