var smooth_timer;

function smoothHeight(id, curH, targetH, stepH, mode) {
  diff = targetH - curH;
  if (diff != 0) {
    newH = (diff > 0) ? curH + stepH : curH - stepH;
	leftoversH = ((document.getElementById) ? document.getElementById('leftovers') : eval("document.all['leftovers']")).offsetHeight;
	newleftoversH = (diff > 0) ? leftoversH - stepH : leftoversH + stepH;
    ((document.getElementById) ? document.getElementById(id) : eval("document.all['" + id + "']")).style.height = newH + "px";
    if (smooth_timer) window.clearTimeout(smooth_timer);
    smooth_timer = window.setTimeout( "smoothHeight('" + id + "'," + newH + "," + targetH + "," + stepH + ",'" + mode + "')", 35 );
  } else if (mode != "o") {
	  ((document.getElementById) ? document.getElementById(mode) : eval("document.all['" + mode + "']")).style.display="none";
  }
}

function switchonoff (divname) {
	var daHeight = 140;
	switch (divname) {
		case 'mlayouts':
			daHeight = 420;
		break;
		case 'mgraphics':
			daHeight = 630;
		break;
		case 'mgenerator':
			daHeight = 420;
		break;
		case 'mcodes':
			daHeight = 420;
		break;
	}
	var divid = document.getElementById(divname);

    if (divid.style.display=="none") {
      divid.style.height = "0px";
      divid.style.display="";
      smoothHeight(divname, 0, daHeight, 70, 'o');
    } else {
      smoothHeight(divname, daHeight, 0, 70, divname);
    }

}