/**
 * @author JPatel
 */
/*
truncates elements that pass a certain height.
adds a "view more" link to display the rest of the content.

a different approach than standard truncation which relies on character counting.
character counting may not be desireable when elements have short words, but a
number of line breaks.

usage:
  //using defaults
  $('css_expression').summary();
  
  //overriding options
  $('css_expression').summary({maxHeight: 200, className: 'view-more'});
*/
(function($) {
  $.fn.summary = function(options) {
	return this.each(function() {
		new $.Summary(this, options);
	});
  };

$.Summary = function(e, o) {
var element = $(e);
var options = o || {};
    var maxLength = options.maxLength || 100;
    var className = options.className || 'expand';
    var textHeight = e.offsetHeight;
    var textStr = element.text();
	if (!$.browser.msie) {
		textStr = textStr.replace(/[\t\n\r]/g,'');
		//alert(m.length);
	}
	if (textStr.length > maxLength) {
      //element.css({overflow: 'hidden'});
      //element.height(maxHeight);
	  
	  if(textStr.length>maxLength) {
	  	if(textStr.charAt(maxLength)==" ") {
			textStr = textStr.substring(0,maxLength);
			if(textStr.charAt(textStr.length-1)==".") {
				element.text(textStr)
			} else {
				element.text(textStr+"...")
			}
		} else {
			tmpStr = textStr.substring(0,maxLength);
			lastSpace = tmpStr.lastIndexOf(" ");
			element.text(tmpStr.substring(0,lastSpace)+"...")
		}
		
	  }
    }
    
function expand() {
element.animate({height: textHeight}, 'fast');
moreLink.hide();
};
};
})(jQuery);
