
(function($){var trailing_whitespace=true;$.fn.truncate=function(options){var opts=$.extend({},$.fn.truncate.defaults,options);$(this).each(function(){var content_length=$.trim(squeeze($(this).text())).length;if(content_length<=opts.maxLength)
return;var actual_max_length=opts.maxLength-opts.more.length-3;var truncated_node;if(opts.stripFormatting==true){truncated_node=truncateWithoutFormatting(this,actual_max_length);}else{truncated_node=recursivelyTruncate(this,actual_max_length);}
var full_node=$(this).hide();truncated_node.insertAfter(full_node);findNodeForMore(truncated_node).append('\u2026&nbsp;<a class="rightLink" href="#showMoreContent">'+opts.more+'</a>');findNodeForLess(full_node).append('&nbsp;<a class="rightLink" href="#showLessContent">'+opts.less+'</a>');if(opts.linkClass&&opts.linkClass.length>0){truncated_node.find('a:last').addClass(opts.linkClass);full_node.find('a:last').addClass(opts.linkClass);}
truncated_node.find('a:last').click(function(){truncated_node.hide();full_node.show();return false;});full_node.find('a:last').click(function(){truncated_node.show();full_node.hide();return false;});});}
$.fn.truncate.defaults={maxLength:250,more:'Show more',less:'Hide',stripFormatting:false};function truncateWithoutFormatting(node,max_length){var new_node=$(node).clone().empty();var text=squeeze($(node).text());text=text.slice(0,max_length);new_node.text(text);return new_node;}
function recursivelyTruncate(node,max_length){return(node.nodeType==3)?truncateText(node,max_length):truncateNode(node,max_length);}
function truncateNode(node,max_length){node=$(node);var new_node=node.clone().empty();var truncatedChild;node.contents().each(function(){var remaining_length=max_length-new_node.text().length;if(remaining_length==0)return;truncatedChild=recursivelyTruncate(this,remaining_length);if(truncatedChild)new_node.append(truncatedChild);});return new_node;}
function truncateText(node,max_length){var text=squeeze(node.data);if(trailing_whitespace)
text=text.replace(/^ /,'');trailing_whitespace=!!text.match(/ $/);text=text.slice(0,max_length);text=$('<div/>').text(text).html();return text;}
function squeeze(string){return string.replace(/\s+/g,' ');}
function findNodeForMore(node){var $node=$(node);var last_child=$node.children(":last");if(!last_child)return node;var display=last_child.css('display');if(!display||display=='inline')return $node;return findNodeForMore(last_child);}
function findNodeForLess(node){var $node=$(node);var last_child=$node.children(":last");if(last_child&&last_child.is('p'))return last_child;return node;}})(jQuery);
