// (floatNum | 0) = parseInt
(function($,undefined){
  $.locals = {
    getHomeWidth:function() {
      return $('#navigation-home').width();
    },
    getEndWidth:function() {
      return $('#navigation-end').width();
    },
    getSeparatorsWidth:function() {
      var nbSeparators = $('#navigation-bar').children('.navigation-separator').length,
      separatorWidth = $('#navigation-bar').children('.navigation-separator').first().width();
      return nbSeparators * separatorWidth;
    },
    getOtherElementsWidths:function() {
      return $.locals.getHomeWidth() + $.locals.getEndWidth() + $.locals.getSeparatorsWidth();
    },
    getBaseWidth:function(array) {
      var total = 0;
      for (var i=0; i<array.length;i++) {
        total += $(array[i]).width();
      }
      return total;
    }
  };
  $.fn.setNavWidths = function(toWidth, basePadding) {
    var fromWidth = $.locals.getBaseWidth(this.children('.navigation-item')) + $.locals.getOtherElementsWidths(),
      nbElements = this.children('.navigation-item').length;
    if (nbElements > 0) {
      var elPadding = ((toWidth - fromWidth + nbElements * 2 * basePadding) / (nbElements * 2) | 0);
      this.children('.navigation-item').children('a').css({'padding-left':elPadding,'padding-right':elPadding});
      $('.navigation-level2').children('.navigation-item').children('a').each(function() {
        var anchorWidth = $(this).parent('li').parent('ul').siblings('a').first().width();
        if ($.browser.msie || $.browser.mozilla) {
          var mozWidth = ((anchorWidth-10+elPadding*2) | 0);
          $(this).css({'width':mozWidth});
          if ($.browser.version == "7.0") {
            $('.navigation-level1').find('.navigation-level2').find('.navigation-item').css({"margin-left":-17, "min-height":20});
          }
        } else {
          var subAnchorWidth = ((anchorWidth+elPadding*2-basePadding*2-2) | 0);
          $(this).css({'width':subAnchorWidth,'padding-left':basePadding,'padding-right':basePadding});
        }
      });
    }
  };
})(jQuery);
