VERT_COLUMN_WIDTH = 17;
FIRST_MENU_BAR_TOP = 157;
LAST_MENU_BAR_BOTTOM = 112;
MENU_BAR_HEIGHT = 20;
MENU_BAR_DISTANCE = 50;
SHADOW_TOP_LEFT_X = 135;
SHADOW_FIRST_BAR_HEIGHT = 3;
SHADOW_LAST_BAR_HEIGHT = 7;
SHADOW_TOP_MARGIN = 3;
SHADOW_HEIGHT = 96 - SHADOW_TOP_MARGIN - SHADOW_FIRST_BAR_HEIGHT;

function _fHeight(menuItemsN, contentHeight) {
  var height1 = FIRST_MENU_BAR_TOP + LAST_MENU_BAR_BOTTOM + (menuItemsN-1) * MENU_BAR_DISTANCE + MENU_BAR_HEIGHT;
  var height2 = contentHeight + SHADOW_HEIGHT + SHADOW_FIRST_BAR_HEIGHT + SHADOW_TOP_MARGIN;
  return Math.max(height1, height2);
}

function _menuBarTop(n) {
  return FIRST_MENU_BAR_TOP + (MENU_BAR_DISTANCE * n) + (MENU_BAR_HEIGHT / 2);
}

function _menuBarBottom(fHeight, menuBarTop) {
  return fHeight - menuBarTop;
}

function _shadowBarBottom(menuBarBottom, fHeight) {
  return menuBarBottom * SHADOW_HEIGHT / fHeight;
}

function _shadowBarHeight(shadowBarBottom) {
  return SHADOW_LAST_BAR_HEIGHT - 
        (shadowBarBottom * 
         (SHADOW_LAST_BAR_HEIGHT - SHADOW_FIRST_BAR_HEIGHT) / SHADOW_HEIGHT);
}

function _shadowBarLeft(shadowBarBottom, shadowBarHeight) {
  return SHADOW_TOP_LEFT_X * (shadowBarBottom - shadowBarHeight / 2) / SHADOW_HEIGHT;
}

function _shadowBarTop(menuBarTop, fHeight) {
  return menuBarTop * SHADOW_HEIGHT / fHeight;
}

function _shadowBarWidth(menuBarWidth) {
  return 30 + (menuBarWidth * SHADOW_LAST_BAR_HEIGHT / MENU_BAR_HEIGHT);
}

// n - numer paska menu, liczone od 0
function shadowBarInfo(n, menuBarWidth, menuItemsN, contentHeight) {
  var fh = _fHeight(menuItemsN, contentHeight);
  var mbt = _menuBarTop(n);
  var mbb = _menuBarBottom(fh, mbt);
  var sbb = _shadowBarBottom(mbb, fh);
  var sbh = _shadowBarHeight(sbb);
  var sbl = _shadowBarLeft(sbb, sbh);
  var sbt = _shadowBarTop(mbt, fh);
  var sbw = _shadowBarWidth(menuBarWidth);

  return [Math.round(sbl + VERT_COLUMN_WIDTH), 
          Math.round(sbt + SHADOW_TOP_MARGIN + SHADOW_FIRST_BAR_HEIGHT - (sbh / 2)), 
          Math.round(sbw),
          Math.floor(sbh)];
}
