var interval = 10;
var hide_interval = 500;
var delta = 25;

var main_menu_interval = 10;
var main_menu_delta = 60;

var action = new Array();
var aHeights = new Array();
var timeouts = new Array();
var inner_timeouts = new Array();
var states = new Array();
var state='';

var RightMaxWidth = 245;
var RightMinWidth = 30;

var Cache = new Array();

function BlockClick (divId)
{
	if (states[divId]=='visible') HideBlock(divId);
	else ShowBlock(divId);
}

function HideBlock(divId)
{
	var div = Cache[divId] = document.getElementById(divId);
	
	if (action[divId] == '' && div)
	{
		action[divId] = 'hiding';

		// Сохраняем состояние меню
		var reg = /id_(\d+)/;
		var arr = reg.exec(divId);

		HideSubMenu(divId);
	}
}

function ShowBlock(divId)
{
	var div = Cache[divId];
	
	if (timeouts[divId]) clearTimeout(timeouts[divId]);
	
	if (action[divId] == '' && div && states[divId]!='visible')
	{
		
		if (div.clientHeight == 0)
		{
			action[divId] = 'showing';
			//aHeights[divId] = height;

			// Сохраняем состояние меню
			var reg = /id_(\d+)/;
			var arr = reg.exec(divId);

			// Начинаем отображать меню
			div.style.display = "block";
			ShowSubMenu(divId, aHeights[divId]);
		}
	}
}

function SubMenuInit(divId)
{
	var div = Cache[divId] = document.getElementById(divId);
	aHeights[divId] = div.scrollHeight;
	action[divId]='';
	div.style.display = "none";
}

function ShowSubMenu (divId, maxHeight)
{
	var div = Cache[divId];

	if (null == div || undefined == div)
	{
		return false;
	}

	if (action[divId] == 'showing' && parseInt(div.clientHeight) < maxHeight)
	{
		var height = parseInt(div.clientHeight + delta);

		if (height > maxHeight)
		{
			height = maxHeight;
		}

		// Прозрачность
		if (aHeights[divId] != 0)
		{
			var opacity = parseInt((100 * div.clientHeight) / aHeights[divId]);
		}
		else
		{
			var opacity = 0;
		}

		div.style.opacity = opacity/100;
		div.style.filter = 'alpha(opacity=' + opacity + ')';

		div.style.height = height + 'px';

		inner_timeouts[divId] = setTimeout('ShowSubMenu("' + divId + '", ' + maxHeight + ')', interval);
	}
	else if (action[divId] == 'showing')
	{
		clearTimeout(inner_timeouts[divId]);
		div.style.opacity = 1;
		div.style.filter = 'alpha(opacity=' + 100 + ')';
		action[divId] = '';
		states[divId]='visible';
	}
}

function HideSubMenu(divId)
{
	var div = Cache[divId];

	var minHeight = 0;

	if (null == div || undefined == div)
	{
		return false;
	}
	
	if (action[divId] == 'hiding' && parseInt(div.clientHeight) > minHeight)
	{
		height = parseInt(div.clientHeight - delta);

		if (height < 0)
		{
			height = 0;
		}

		// Прозрачность
		if (aHeights[divId] != 0)
		{
			var opacity = parseInt((100 * div.clientHeight) / aHeights[divId]);
		}
		else
		{
			var opacity = 100;
		}

		div.style.opacity = opacity/100;
		div.style.filter = 'alpha(opacity=' + opacity + ')';

		div.style.height = height + 'px';

		inner_timeouts[divId] = setTimeout('HideSubMenu("' + divId + '")', interval);
		
	}
	else if (action[divId] == 'hiding')
	{
		clearTimeout(inner_timeouts[divId]);

		// Сворачивание закончили - скрываем div
		div.style.display = "none";
		div.style.opacity = 0;
		div.style.filter = 'alpha(opacity=' + 0 + ')';
		action[divId] = '';
		states[divId]='hidden';
	}
}
