jQuery.fn.extend(
{
	getOffset: function() 
	{
		var result;
		var left 	= 0;
		var top 	= 0;

		if ( this[0] ) 
		{
			if ( this[0].getBoundingClientRect )
			{
				var box 			= this[0].getBoundingClientRect();

				var doc_elem 		= document.documentElement;
	
				var scroll_top 		= window.pageYOffset || doc_elem.scrollTop || document.body.scrollTop;
				var scroll_left 	= window.pageXOffset || doc_elem.scrollLeft || document.body.scrollLeft;
	
				var client_top 		= doc_elem.clientTop || document.body.clientTop || 0;
				var client_left 	= doc_elem.clientLeft || document.body.clientLeft || 0;
	
				result = 
				{
					top		: Math.round(box.top + scroll_top - client_top), 
					left	: Math.round(box.left + scroll_left - client_left)
				};
			}
			else
			{
				var el = this[0];
			
				while ( el )
				{
					top 	= top + parseInt(el.offsetTop);
					left 	= left + parseInt(el.offsetLeft);
					el 		= el.offsetParent;
				}
			
				result = 
				{
					top		: top, 
					left	: left
				};
			}
			
			return result;
		}
		else
		{
			return undefined;
		}
	}
});

