function adjustHeights()  {
  var idEl = 'boxy';
  var insideLiTag = 'h2';
  var columns = 3;

  if($(idEl)==null) return;

  var elements = $(idEl).getElements('div.csc-default');
  var numItems = elements.length;
  var rows = Math.ceil(numItems/columns);
  var count = 1; 
  var heightItems = [];
  var h = [];
  
  /****************************************************************************************
   * Rozsireni funkcionality, pokud je potreba nastaveni vysek elementu, uvnitr elementu li 
   ****************************************************************************************/     
  // Ziskani vsech vysek vnitrnich tagu            
  elements.each(function(item, index){
    item = item.getElement(insideLiTag);
    item.setStyle('height','auto');
    var s = item.getSize();
    var padding = item.getStyle('padding-top').toInt() + item.getStyle('padding-bottom').toInt();
    var border = item.getStyle('border-top').toInt() + item.getStyle('border-bottom').toInt();
    h.push(s.y - padding - border);
  });
  
  // Nejvetsi vyska vnitrnich tagu je nastavena pro ostatni tagy na jednom radku
  var rep = 1;
  for (l = 1; l <= rows; l++) {
    hSlice = h.slice(count-1,columns*l);
    hSlice.sort( function (a,b) { return b-a });

    for (i = 0; i < hSlice.length; i++) {
      $$('#'+idEl+' div:nth-child('+rep+') '+insideLiTag ).setStyle('height', hSlice[0]+'px');
      rep++;
    }

    count = l*columns+1;
  }
  
  
  // Ziskani vsech vysek li tagu
  elements.each(function(item, index){
    item.setStyle('height','auto');
    var size = item.getSize();
    var padding = item.getStyle('padding-top').toInt() + item.getStyle('padding-bottom').toInt();
    var border = item.getStyle('border-top').toInt() + item.getStyle('border-bottom').toInt();
    heightItems.push(size.y - padding - border);
  });
  // Nejvetsi vyska li tagu je nastavena pro ostatni tagy li na jednom radku
  rep = 1;
  count = 1;
  for (l = 1; l <= rows; l++) {
    heightItemsSlice = heightItems.slice(count-1,columns*l);
    heightItemsSlice.sort( function (a,b) { return b-a });

    for (i = 0; i < heightItemsSlice.length; i++) {
      $$('#'+idEl+' div:nth-child('+rep+')').setStyle('height', (heightItemsSlice[0])+'px');
      if(i == heightItemsSlice.length-1 ) $$('#'+idEl+' div:nth-child('+rep+')').addClass('last_item_row');

      rep++;
    }

    count = l*columns+1;
  }
 
}

function columnsHeights() {
  var middleColumn = document.getElement('div#sloupec_stredni');
  var articles = document.getElement('div#sloupec_stredni div.clanky_uvod');
  var rightColumn = document.getElement('div#sloupec_pravy');
  var calendar = document.getElement('div#sloupec_pravy div.kalendar_uvod');
  if (!middleColumn || !rightColumn || !calendar || !articles) {
    return;
  }
  var items = $$('div.kalendar_uvod div.kalendar_udalost_uvod')
  
  items.removeClass('skryta');
  articles.setStyle('min-height', 0);
  calendar.setStyle('min-height', 0);
  
  var lastVisibleItemIndex = items.length - 1;
  var middleColumnSize = middleColumn.getSize();
  var rightColumnSize = rightColumn.getSize();

  //skryti poslednich polozek kalendare, pokud cely pravy sloupec presahuje stredni
  while (rightColumnSize.y > middleColumnSize.y  && lastVisibleItemIndex > 2) {
    items[lastVisibleItemIndex].addClass('skryta');
    lastVisibleItemIndex --;
    rightColumnSize = rightColumn.getSize();
  }
 
  if (rightColumnSize.y > middleColumnSize.y) {
    var articlesSize = articles.getSize();
    articles.setStyle('min-height', articlesSize.y + rightColumnSize.y - middleColumnSize.y);
  } else if (rightColumnSize.y < middleColumnSize.y) {
    var calendarSize = calendar.getSize();
    calendar.setStyle('min-height', calendarSize.y + middleColumnSize.y - rightColumnSize.y);
  }
  
}

function fontSizeListener() {
	height = 0;
	checkSize = function()  {    			
		element = document.getElementById('menu_horni');
		if(element.offsetHeight != height){
			height = parseInt(element.offsetHeight);
			adjustHeights();
      columnsHeights();					
		}
	};
	
	fontSizeInterval = setInterval(checkSize, 100);			
};

window.addEvent('domready', function() {
    adjustHeights();
    columnsHeights();
    fontSizeListener();
});

