// settings
FOOTER_HEIGHT = 97;
RESIZE_ELEMENT = 'wrapper';
INNER_ELEMENT = 'text';
IE_FIX = false;
if(navigator.appVersion.toLowerCase().indexOf('msie 6.0')>=0){
    IE_FIX = true;
    FOOTER_HEIGHT = 102;
}
FF_FIX = false;
if(navigator.appName=='Netscape'){
    FF_FIX = true;
}

// initial inner element height
var innerHeight;

// event handlers
function resize(){
  footerHeight = FOOTER_HEIGHT;
  height= document.documentElement.offsetHeight;
  if(window.innerHeight>0)
    height = window.innerHeight;
  height-= FOOTER_HEIGHT;
  // for some older browsers correct size is in .body
  if(IE_FIX){
    if(document.body.clientWidth + 21 > document.documentElement.offsetWidth){
      height-= 16;
    }                                  
  }
  if(FF_FIX){
    if(document.getElementById(RESIZE_ELEMENT).offsetWidth  > document.body.offsetWidth){
      height-= 16;
      document.documentElement.style.height= document.documentElement.offsetHeight-16+'px';
    }
  }

  height= height+'px';
  
  var el= document.getElementById(RESIZE_ELEMENT);
  if(el.style.height != height)
        el.style.height=height;
  el= document.getElementById(INNER_ELEMENT);
  if(el && el.offsetHeight<parseInt(height)){
        if(height<innerHeight)
          height= innerHeight;
    el.style.height= height;
  }
  if(IE_FIX)
    document.body.style.height=height;
}

function init(){
  addEvent(window, resize, 'resize');
  el= document.getElementById(INNER_ELEMENT);
  if(el)
   innerHeight = document.getElementById(INNER_ELEMENT).offsetHeight+'px';
  resize();
}

function addEvent(target, handler, event){
  if(target.attachEvent){
    target.attachEvent('on'+event, handler);
  }
  else{                                                                        
    target.addEventListener(event, handler, false);
  }
}
addEvent(window, init, 'load');
