
  // callback (itemsPerRow, space, outerWidth, isFirstTime)

  SameDistance = function (containerSelector, itemsSelector, dontRemoveFirstItemsPerLineMargins, callback) {
    if (dontRemoveFirstItemsPerLineMargins == null)
      dontRemoveFirstItemsPerLineMargins = false;
    var firstTime = true;
    $(window).bind ('resize', function () {
      $(containerSelector).each (function () {
        var containerWidth = $(this).width ();
        var allItems = $(this).find (itemsSelector);
        //var outerWidth = allItems.outerWidth (true);
        var outerWidth = allItems.width () + parseInt (allItems.css ('padding-left')) + parseInt (allItems.css ('padding-right'))
          + parseInt (allItems.css ('border-left-width')) + parseInt (allItems.css ('border-right-width'));
        //document.title = outerWidth;
        var itemsPerRow = (containerWidth - (containerWidth % outerWidth)) / outerWidth;
        if (itemsPerRow != 1) {
          var space = parseInt ((containerWidth - itemsPerRow * outerWidth) / (itemsPerRow - 1));
          //document.title = containerWidth + ':' + outerWidth + ':' + itemsPerRow + ':' + space;
          allItems.each (function (i) {
            $(this).css ('margin-left', '0');
            var condition = dontRemoveFirstItemsPerLineMargins ? i != 0 : i != 0 && i % itemsPerRow != 0;
            if (condition) {
              $(this).css ('margin-left', space + 'px');
            }
          });
          if (callback != null) {
            callback (itemsPerRow, space, outerWidth, firstTime);
            firstTime = false;
          }
        }
      });
    }).trigger ('resize');
  }

