jQuery.fn.textOverflow=function(options){settings=jQuery.extend({lines:1,ellipsis:"...",wrap:"word",link:"",titleAttr:false},options);return this.each(function(){$('head').append($('<style>.tExTOvErFLoW {margin-right: -10000px;}</style>'));$(this).addClass("tExTOvErFLoW");var boxWidth=$(this).width()-10000;var content=$(this).html()+' ';var newContent="";var testLine="";var tempLine="";var contentPos=0;var tempPos=0;var lastChar="";var lineNr=1;while(lineNr<=settings.lines&&contentPos<content.length){testLine=content.substr(contentPos,content.substr(contentPos,content.length-contentPos).indexOf(' '));contentPos=contentPos+content.substr(contentPos,content.length-contentPos).indexOf(' ')+1;if(lineNr!=settings.lines)
{$(this).html('<span>'+testLine+'</span>');}
else
{$(this).html('<span>'+testLine+settings.ellipsis+' '+settings.link+'</span>');}
while(contentPos<content.length&&$(this).children().width()<=boxWidth){tempLine=testLine;tempPos=contentPos;testLine+=' '+content.substr(contentPos,content.substr(contentPos,content.length-contentPos).indexOf(' '));contentPos=contentPos+content.substr(contentPos,content.length-contentPos).indexOf(' ')+1;if(lineNr!=settings.lines)
{$(this).html('<span>'+testLine+'</span>');}
else
{$(this).html('<span>'+testLine+settings.ellipsis+' '+settings.link+'</span>');}}
if($(this).children().width()>boxWidth)
{if(lineNr<settings.lines||settings.wrap=='word')
{testLine=tempLine;contentPos=tempPos;}
else
{while($(this).children().width()>boxWidth)
{testLine=testLine.substr(0,testLine.length-1);$(this).html('<span>'+testLine+settings.ellipsis+' '+settings.link+'</span>');}}}
if(lineNr<settings.lines)
{newContent+=testLine+' ';}
else
{newContent+=testLine+settings.ellipsis+' '+settings.link;}
lineNr++;lastChar="";}
$(this).removeClass("tExTOvErFLoW");if(settings.titleAttr){$(this).attr("title",content);}
$(this).html(newContent);});}