(function($){
	$.fn.jTruncate = function(options) {
	   
		var defaults = {
			length: 30,
			minTrail: 0,
			moreText: "more",
			lessText: "less",
			ellipsisText: "...",
			moreAni: "slow",
			lessAni: "slow"
		};
		
		var options = $.extend(defaults, options);
	   
		return this.each(function() {
			obj = $(this);
			var body = obj.html();
			
			
			
			
			options.length = body.indexOf('<p>{view}</p>');

			
			if(body.length > options.length + options.minTrail) {
				var splitLocation = body.indexOf('<p>{view}</p>');
				if(splitLocation != -1) {
					// truncate tip
					var splitLocation = body.indexOf('<p>{view}</p>');
					var str1 = body.replace('<p>{view}</p>', '').substring(0, (splitLocation));
					var str2 = body.replace('<p>{view}</p>', '').substring(splitLocation, body.length - 1);

					obj.html(str1 + '<div class="truncate_ellipsis"></div>' + '<div class="truncate_more">' + str2 + '</div>');
					obj.find('.truncate_more').css("display", "none").css("float", "left");
					
					// insert more link
					obj.append(
						'<div class="clearboth">' +
							'<a href="#" class="truncate_more_link">' + options.moreText + '</a>' +
						'</div>'
					);

					// set onclick event for more/less link
					var moreLink = $('.truncate_more_link', obj);
					var moreContent = $('.truncate_more', obj);
					var ellipsis = $('.truncate_ellipsis', obj);
					
					$('.clearboth').css("padding", "18px 0 0px 0");
					$('.truncate_more').css("padding", "0 0 18px 0");
					moreLink.click(function() {
						if(moreLink.text() == options.moreText) {
							moreContent.slideDown(options.moreAni);
							moreLink.text(options.lessText);
							ellipsis.css("display", "none");
						} else {
							moreContent.slideUp(options.lessAni);
							moreLink.text(options.moreText);
							ellipsis.css("display", "inline");
						}
						return false;
				  	});
				}
			} // end if
			
		});
	};
})(jQuery);

(function($){
	$.fn.jMultiTruncate = function(options) {
	   
		var defaults = {
			length: 30,
			minTrail: 0,
			moreText: "more",
			lessText: "less",
			ellipsisText: "...",
			moreAni: "slow",
			lessAni: "slow"
		};
		
		$(this).css("padding", "18px 0 0px 0");
		
		var options = $.extend(defaults, options);
	   
		return this.each(function() {
			obj = $(this);
			var body = obj.html();
			
			
			
			
			options.length = body.indexOf('{view}');

			
			if(body.length > options.length + options.minTrail) {
				var splitLocation = body.indexOf('{view}');
				if(splitLocation != -1) {
					// truncate tip
					var splitLocation = body.indexOf('{view}');
					var str1 = body.replace('{view}', '').substring(0, (splitLocation));
					var str2 = body.replace('{view}', '').substring(splitLocation, body.length - 1);

					obj.html(str1 + '<div class="truncate_ellipsis"></div>' + '<div class="truncate_more">' + str2 + '</div>');
					obj.find('.truncate_more').css("display", "none").css("float", "left");
					
					// insert more link
					obj.append(
						'<div class="clearboth">' +
							'<a href="#" class="truncate_more_link">' + options.moreText + '</a>' +
						'</div>'
					);

					// set onclick event for more/less link
					var moreLink = $('.truncate_more_link', obj);
					var moreContent = $('.truncate_more', obj);
					var ellipsis = $('.truncate_ellipsis', obj);
					
					$('.clearboth').css("padding", "0px 0 0px 0");
					$('.truncate_more').css("padding", "0 0 0px 0");
					moreLink.click(function() {
						if(moreLink.text() == options.moreText) {
							moreContent.slideDown(options.moreAni);
							moreLink.text(options.lessText);
							ellipsis.css("display", "none");
						} else {
							moreContent.slideUp(options.lessAni);
							moreLink.text(options.moreText);
							ellipsis.css("display", "inline");
						}
						return false;
				  	});
				}
			} // end if
			
		});
	};
})(jQuery);
