; (function($)
{
	if (document.documentElement.style["textOverflow"] || document.documentElement.style["OTextOverflow"]) return this;

	$.fn.ellipsis = function(enableUpdating)
	{
		return this.each(function()
		{
			var el = $(this);

			if (el.css("overflow") == "hidden")
			{
				var originalText = el.html();
				var w = el.width();

				var t = $(this.cloneNode(true)).hide().css({ "position": "absolute",  "width": "auto",  "overflow": "visible" }).insertAfter(el);

				var text = originalText;
				while (text.length > 0 && t.width() > el.width())
				{
					text = text.substr(0, text.length - 1);
					t.html(text + "...");
				}
				el.html(t.html());

				t.remove();

				if (enableUpdating == true)
				{
					var oldW = el.width();
					setInterval(function()
					{
						if (el.width() != oldW)
						{
							oldW = el.width();
							el.html(originalText);
							el.ellipsis();
						}
					}, 200);
				}
			}
		});
	};
})(jQuery);