var _globNode;
var _globLock;

function SlideMenu(node_id, childnode_id)
{
	if(_globLock !== true)
	{
		_globLock = true;
		if(!_globNode)
		{	
			_globNode = {node_id:node_id, childnode_id:childnode_id, status:true};
			BlindDown(node_id);		
			return;
			
		}
		if(childnode_id)
		{
			if(childnode_id == _globNode.childnode_id)
			{
				if(_globNode.status === true)
				{
					BlindUp(childnode_id);
					_globNode = {node_id:node_id, childnode_id:childnode_id, status:false};
				}
				else
				{
					BlindDown(childnode_id);
					_globNode = {node_id:node_id, childnode_id:childnode_id, status:true};
				}
			}
			else
			{
				if(_globNode.childnode_id)
				{
					BlindUp(_globNode.childnode_id);
				}
				BlindDown(childnode_id);
				_globNode = {node_id:node_id, childnode_id:childnode_id, status:true};
			}
		}
		else
		{
			if(_globNode.childnode_id)
			{
				BlindUp(_globNode.childnode_id);
				_globNode.status = true;
			}
			if(node_id == _globNode.node_id)
			{
				if(_globNode.status === true)
				{
					BlindUp(_globNode.node_id);
					_globNode = {node_id:node_id, childnode_id:childnode_id, status:false};
				}
				else
				{
					BlindDown(_globNode.node_id);
					_globNode = {node_id:node_id, childnode_id:childnode_id, status:true};
				}
			}
			else
			{
				BlindUp(_globNode.node_id);
				BlindDown(node_id);
				_globNode = {node_id:node_id, childnode_id:childnode_id, status:true};
			}
		}
	}
}

function BlindUp(element)
{
	new Effect.BlindUp(GetElement(element), {duration:0.3, afterFinish:SlideMenuCallback});
}

function BlindDown(element)
{
	new Effect.BlindDown(GetElement(element), {duration:0.3, afterFinish:SlideMenuCallback});
}

function GetElement(element)
{
	return document.getElementById(element);
}

function SlideMenuCallback(o)
{
	_globLock = false;
}

function Hide(elements)
{
	for(i = 0; i < elements.length; i++)
	{
		new Effect.BlindUp(GetElement(elements[i]), {duration:0});
	}
}

function SetNode(parent_id, child_id, status)
{
	_globNode = {node_id:parent_id, childnode_id:child_id, status:status};
}

function SwapImage(element, img_src)
{
	element.src = img_src;
}

function ShowError(msg)
{
	alert(msg);
	return;
}
