var breadcrumbShrinker = function(selector, spec) {

  var defaults = {
    length: 37
  };

  var that = {},
      breadcrumb = $(selector);

  var settings = jQuery.extend({}, defaults, spec);

  var process_items = function() {
    breadcrumb.find('span').each(function(index, item) {
      item = $(item);
      
      if (item.text().length > settings.length + 3) {
      
        var title = item.text(),
            link = $('<a></a>', {
              text: '...',
              title: title,
              click: function() {
                showBreadcrumb.call(this);
              },
              css: {
                cursor: 'pointer'
              }
            });
      
        if (item.find('a').length === 0) {
          item.text(item.text().truncate(settings.length, '')).append(link);
        }
        else {
          item.find('a').text(item.text().truncate(settings.length, ''));
          item.append(link);
        }
      
      }
      
    });
      
    
  }();
  
  var showBreadcrumb = function() {
    var parent = $(this).parent();
    
    parent.find('a').length > 1 ? parent.find('a').first().text(this.title) : parent.text(this.title);
    $(this).remove();
  };
    
  return that;
};

$(function(){
  breadcrumbShrinker('span.breadcrumb');
});
