var cache = new Array;

function opener(id)
{
	step = 10;
	timer = 10;
	
	var block = document.getElementById(id);
	if(!block)
		return;
	
	if(!cache[id])
	{
		var child_list = block.childNodes;
		if(!child_list)
			return;
		
		cache[id] = new Array;
		
		cache[id].height_min = 0;
		cache[id].height_max = 0;
		
		for(i = 0; i < child_list.length; i++)
			if(child_list[i].offsetHeight)
				cache[id].height_max += child_list[i].offsetHeight;
		
		if(block.style.height == 'auto')
		{
			cache[id].status = true;
			cache[id].height = cache[id].height_max;
		}
		else
		{
			cache[id].status = false;
			cache[id].height = 0;
		}
	}
	else if(block.style.height == 'auto')
	{
		cache[id].height_max = 0;
		
		var child_list = block.childNodes;
		
		for(i = 0; i < child_list.length; i++)
			if(child_list[i].offsetHeight)
				cache[id].height_max += child_list[i].offsetHeight;
		
		cache[id].height = cache[id].height_max;
	}
	else
		cache[id].height = parseInt(block.style.height);
	
	if(!cache[id].status)
	{
		cache[id].height += step;
		
		if(cache[id].height >= cache[id].height_max)
		{
			cache[id].status = !cache[id].status;
			
			block.style.height = 'auto';
			
			return;
		}
	}
	else
	{
		cache[id].height -= step;
		
		if(cache[id].height <= cache[id].height_min)
		{
			cache[id].status = !cache[id].status;
			
			block.style.height = cache[id].height_min;
			
			return;
		}
	}
	
	block.style.height = cache[id].height+'px';
	
	setTimeout('opener("'+id+'")', timer);
}