var speed = 8; // Delay between increments.
var inc = 5; // Increment amount -- also changes speed
var cur_open = '';

function ScaleToFit(id) {
 var obj= document.getElementById(id);

 var divHeight = obj.scrollHeight;

 if ('' !== cur_open) {
 	if (document.getElementById(cur_open).height == 0) { cur_open = ''; } // Double check we didn't overlap
	else { 
		closeItem(1, divHeight, cur_open); 
		if (cur_open !== id) {
			resize(divHeight, 1, id);
		}
	}
 }
 else {
	 resize(divHeight, 1, id);
 }
}

function resize(height, current, id) {
 var obj = document.getElementById(id);
 if (current <= height) {
  i = current + inc;
  obj.style.height = i+'px';
 }
 if (current <= height) {
  var t = window.setTimeout("resize("+height+", "+i+", '"+id+"')", speed);
 } 
 else { obj.style.height = height; cur_open = id; }
}

function closeItem(height, current, id) {
 var obj = document.getElementById(id);
 if (current > height) {
  i = current - inc;
  obj.style.height = i+'px';
 }
 if (current > height) {
  var t = window.setTimeout("closeItem("+height+", "+i+", '"+id+"')", speed);
 } 
 else { obj.style.height = height; cur_open = ''; }
}