jQuery.fn.tmc = function(options){
  var options = jQuery.extend({
    itemInColumn: 'auto',
    qtyColumn: 'auto',
    qtyColors: 5,
    topCorners: false,
    bottomCorners: true
  },options);
  return this.each(function() {
    var firstLi = jQuery(this).find('> li > ul > li:first');
    var firstUl = jQuery(this).find('> li > ul:first');
    var thisSel = jQuery(this).attr('id');
    
    if (firstUl.css('display')=='none'){
      firstUl.css('display','block');
      heightLi = firstLi.height();
      widthLi = firstLi.width();
      firstUl.css('display','none');
    }else{
      heightLi = firstLi.height();
      widthLi = firstLi.width();
    }
    var itemsLi;
    var colGlobal=0;
    var i;
    var col = 0;
    var colItem = 0;
    var nambColor = 0;
    var widthMenu = jQuery(this).width();
    jQuery(this).addClass('tmc');
    
    jQuery(this).find('> li').each(function() {
      
      var curentTopLi = jQuery(this);
      var curentTopUl = curentTopLi.find('> ul');
      
      curentTopLi.addClass('tmc-color-'+nambColor);
      nambColor++;
      if (nambColor == options.qtyColors){
        nambColor = 0;
      }
      
      var position = curentTopLi.position();
      if (position.left < widthMenu/2){
        curentTopLi.addClass('tmc-left-tab');
      }else{
        curentTopLi.addClass('tmc-right-tab');
      }
      
      curentTopLi.hover(function(){
        curentTopLi.addClass('tmc-over');
      },function(){
        curentTopLi.removeClass('tmc-over');
      });
      
      itemIn = 0;
      if (options.itemInColumn == 'auto' && options.qtyColumn == 'auto'){
        itemsLi = curentTopUl.find('> li').length;
        if (heightLi!=0){
          itemIn = Math.sqrt(heightLi * widthLi * itemsLi) / heightLi / 1.2;
        }
        itemIn = itemIn.toFixed(0);
        //itemIn = itemIn * 1 + 1;
      } else if (options.itemInColumn == 'auto' && options.qtyColumn != 'auto'){
        itemsLi = curentTopUl.find('> li').length;
        itemIn = itemsLi / options.qtyColumn;
        itemIn = itemIn.toFixed(0) + 1;
      } else {
        itemIn = options.itemInColumn;
      }
      
      if (options.topCorners == true){
        curentTopUl.append('<div class="tmc-corne-top-left"><div class="tmc-corne-top-right">&nbsp;</div></div>')
      }
      curentTopUl.append('<div class="tmc-bg"></div>');
      var curentTopDiv = curentTopUl.find('> div.tmc-bg');
      colItem = 0;
      curentTopUl.find('> li').each(function(i) {
        if (i == 0 || i == itemIn || i == itemIn * 2 || i == itemIn * 3 || i == itemIn * 4){
          curentTopDiv.append('<div class="tmc-col tmc-col-'+colItem+' tmc-col-global-'+col+'"></div>');
          col++;
          colItem++;
        }
        col_1 = col - 1;
        jQuery(this).clone().appendTo('#'+thisSel+' .tmc-col-global-'+col_1);
        jQuery(this).remove();
      })
      curentTopDiv.css({'width': colItem*widthLi+'px'});
      curentTopUl.css({'width': colItem*widthLi+'px'});
      curentTopDiv.find('> .tmc-col').css({'width': widthLi+'px'});
      if (options.bottomCorners == true){
        curentTopUl.append('<div class="tmc-corne-bottom-left"><div class="tmc-corne-bottom-right">&nbsp;</div></div>')
      }
      curentTopUl.find('.tmc-col:last').addClass('tmc-col-last');
      
    });
  });
};

