/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


function toggleExpanders(index, prefix)
{
	var opened = null;
	var opened_idx = null;
	var closed = document.getElementById(prefix + index);

	var i = 0;
	while (true)
	{
		var s = document.getElementById(prefix + i);
		if (!s) break;
		
		if (s.offsetHeight > 0)
		{
			opened = s;
			opened_idx = i;
			break;
		}
		
		i++;
	}
	
	if (opened == closed) 
            return;
 
	
	var steps = 10;
	
	var coh = 0;
	
	if( opened != null )
	{
		coh = opened.offsetHeight;
	}
	
	var doh = -coh;
	var soh = doh / steps;
	
	var cch = 0;
	var dch = firstElement(closed).offsetHeight;
	var sch = dch / steps;
	
	function doResize (closed, opened, i)
	{
		coh += soh;
		cch += sch;

		closed.style.height = Math.round (cch) + 'px';
		
		if( opened != null )
		{
			opened.style.height = Math.round (coh) + 'px';
		}

		if (i < steps)
		{
			setTimeout (function(){doResize(closed, opened, i+1)}, 10);
		}
	}
	
	function firstElement(node)
	{
		if( node == null )
		{
			return null;
		}
		
		for(var i = 0; i < node.childNodes.length ; i ++ )
		{
			if( node.childNodes[i].nodeType != 1 )
			{
				continue;	
			}
			
			return node.childNodes[i];
		}
		
		return null;
	}
	
	doResize (closed, opened, 1);

	var title = document.getElementById(prefix + 'title_' + index);
	if ( title )
	{
		Valraiso.DOM.addClassName(title, "replier", true);
		if ( opened )
		{
			title = document.getElementById(prefix + 'title_' + opened_idx);
			if ( title )
			{
				Valraiso.DOM.removeClassName(title, "replier", true);
			}
		}
	}
	
	var ctx = new Object();
	ctx.closed 	= closed;
	ctx.opened 	= opened;
	ctx.closed_idx	= index;
	ctx.opened_idx	= opened_idx;
	return 	ctx;
}