/*
*
* TooLong
* jQuery plugin to shorten elements text
* http://code.google.com/p/toolong/
* Version 1.0
*
* By Guillaume Gaubert
* http://widgetulous.com/
*
* Date: November, 23 of 2010 11:58AM
*
* Basic use :
* $('#element').TooLong({ 'len' : 14 });
*
*/

(function( $ ){

  $.fn.TooLong = function(options) {  

    var settings = {
      'len' : 20,
      'cutter' : '...',
	  'count' : false,
	  'position' : 'right'
    };

    return this.each(function() {        
      // If options exist, lets merge them
      // with our default settings
      if (options) { 
        $.extend(settings, options);
      }

	// TooLong plugin code here
	var stringLen = $(this).text().length;
	var cutLen = 0;
	
	// Check if we use 'ccount' parameter
	if(settings.count)
	{
		// We use it, set the cutter length
		var cutLen = settings.cutter.length;
	}
	
	if(stringLen > settings.len)
	{
		var final = $(this).text();
		
		if(settings.position == "right")
		{		
			final = final.substr(0, (stringLen-(stringLen-settings.len))-cutLen) + settings.cutter;
		}
		if(settings.position == "left")
		{
			final = settings.cutter + final.substr((stringLen-settings.len)+cutLen, (stringLen-(stringLen-settings.len)));
		}
		if(settings.position == "middle")
		{
			// Middle of the shortened string length
			var middle = Math.floor(settings.len/2);
			// Middle of the cutter string length
			var cmiddle = Math.floor(settings.cutter.length/2);
			// The beginning position of cutter in the middle of the string
			var pos = middle-cmiddle;
			
			var begin = final.substr(0, pos);
			/*// We remove an empty space which can be maleciously hidden here
			if(begin.substr(-1) == " ")
			{
				begin = begin.substr(0, begin.length-1);
			}*/
			
			var finalstring = final.substr(-middle);
			
			final = begin + settings.cutter + finalstring;
			
		}
		
		// Replace
		$(this).text(final);
	}
	
    });

  };
})(jQuery);
