Event.observe(window, 'load', fillVerticalHeight);
Event.observe(window, 'resize', fillVerticalHeight);

function fillVerticalHeight()
{
  //
  var targetHeight = document.viewport.getHeight();
  targetHeight += document.viewport.getScrollOffsets()[0];
  
  //
  var headerHeight = $('header').getHeight();
  headerHeight += parseInt(menuHeight);
  headerHeight += $('footer').getHeight();
  
  var availableHeight = targetHeight - headerHeight;
  if($('container').getHeight() > availableHeight) {
    availableHeight = $('container').getHeight() - 1;
  }
   
  if($('main') && $('main').getHeight() < availableHeight) {
    $('main').setStyle({height: availableHeight + 'px'});
  } 
}