(function(a){function m(){if(!d){d=true;for(var c in b){a(c).each(function(){var d,e;d=a(this);e=d.data();if(e.containerWidth!=d.innerWidth()||e.containerHeight!=d.innerHeight()){f(d,b[c])}})}d=false}}function l(a){if(b[a]){delete b[a];if(!b.length){if(c){window.clearInterval(c);c=undefined}}}}function k(a,d){b[a]=d;if(!c){c=window.setInterval(function(){m()},200)}}function j(){return this.nodeType===3}function i(b){if(b.contents().length){var c=b.contents().last();if(c.filter(j).length){var d=c.get(0).nodeValue;d=a.trim(d);if(d==""){c.remove();return true}else{return false}}else{while(i(c)){}if(c.contents().length){return false}else{c.remove();return true}}}return false}function h(a){if(a.contents().length){var b=a.contents().last();if(b.filter(j).length){return b}else{return h(b)}}else{a.append("");return a.contents().last()}}function g(b){var c=h(b);if(c.length){var d=c.get(0).nodeValue;var e=d.lastIndexOf(" ");if(e>-1){d=a.trim(d.substring(0,e));c.get(0).nodeValue=d}else{c.get(0).nodeValue=""}return true}return false}function f(b,c){var d=b.data();var e=d.wrapperElement;if(!e){e=b.wrapInner("<div/>").find(">div")}var f=e.data();var j=f.originalContent;if(j){e=f.originalContent.clone(true).data({originalContent:j}).replaceAll(e)}else{e.data({originalContent:e.clone(true)})}b.data({wrapperElement:e,containerWidth:b.innerWidth(),containerHeight:b.innerHeight()});var k=false;a(e.find(c.selector).get().reverse()).each(function(){var d=a(this),f=d.text(),j=false;if(e.innerHeight()-d.innerHeight()>b.innerHeight()){d.remove()}else{i(d);if(d.contents().length){if(k){h(d).get(0).nodeValue+=c.ellipsis;k=false}while(e.innerHeight()>b.innerHeight()){j=g(d);if(j){i(d);if(d.contents().length){h(d).get(0).nodeValue+=c.ellipsis}else{k=true;d.remove();break}}else{k=true;d.remove();break}}if(c.setTitle=="onEllipsis"&&j||c.setTitle=="always"){d.attr("title",f)}else if(c.setTitle!="never"){d.removeAttr("title")}}}})}var b={};var c;var d=false;var e={ellipsis:"...",setTitle:"never",live:true};a.fn.ellipsis=function(b,c){var d,g;d=a(this);if(typeof b!=="string"){c=b;b=undefined}g=a.extend({},e,c);if(!b)b=">*";g.selector=b;d.each(function(){var b=a(this);f(b,g)});if(g.live){k(d.selector,g)}else{l(d.selector)}return this};})(jQuery)
