(function($){$.fn.applyWrapping=function(re,className){function _offsetWidth(el){var width=$(el).width();
width+=($(el).css("padding-left").replace(/px/,"")*1);
width+=($(el).css("padding-right").replace(/px/,"")*1);
return width
}return this.each(function(){var $this=$(this);
var html="";
var $temp,contentString,i,splitWords,tempStr;
$this.html($.trim($this.text()).replace(/ /g,"&nbsp;"));
contentString=$this.html();
var htmlWithSpan=["<span>",$this.html(),"</span>"].join("");
$this.html(htmlWithSpan);
if($this.width()>$this.parent().width()){$this.html(contentString);
var words=$this.html().split("&nbsp;");
$temp=$("<"+this.tagName+' class="temp" />').css("visibility","hidden").insertAfter($this).append("<span />");
for(i=0;
i<words.length;
i++){$temp.find("span").text(words[i]);
if(_offsetWidth($temp)>$temp.parent().width()){splitWords=[words[i].substr(0,18),words[i].substr(18)];
words[i]=splitWords[0];
words.splice(i+1,0,splitWords[1])
}$temp.html("<span />")
}while(words.length>0){var word=0;
var lastWord,lastLine;
lastWord=words.length==1;
if(lastWord){html+=["<span>",words[0],"</span>"].join("");
words=[]
}else{while((_offsetWidth($temp)<$temp.parent().width())){$temp.find("span").html($temp.find("span").html()+words[word]+"&nbsp;");
word++;
if(word>=words.length){lastLine=true;
if(word==words.length){lastWord=true
}break
}}tempStr=$temp.find("span").html();
if(!lastLine&&!lastWord){tempStr=tempStr.split("&nbsp;");
tempStr=tempStr.slice(0,tempStr.length-2).join("&nbsp;");
words=words.slice(word-1);
html+=["<span>",tempStr,"</span>"].join("")
}else{if(lastWord&&(_offsetWidth($temp)>$temp.parent().width())&&(words.length>1)){html+=["<span>",(words.slice(0,words.length-1).join("&nbsp;")),"</span>","<span>",(words[words.length-1]),"</span>"].join("")
}else{html+=["<span>",(words.join("&nbsp;")),"</span>"].join("")
}words=[]
}$temp.html("<span />")
}}$temp.remove()
}else{html=htmlWithSpan
}$this.html(html)
})
}
})(jQuery);