var to_open = [];
var to_close = [];
var open = [];
var selectedList = false;
var firstTime = true; 

function onReadyMenuInit()
{
	$("#sitemap ul li ul").hide();
	$("#sitemap ul li a").click(function(){return onClicked($(this).next('ul'), $(this)); });
	getMenusToOpen();
}

function onClicked(ul, a)
{
	if(ul.css('display') == 'none')
	{
		selectedList = ul;
		$('.mobile_content').slideUp("slow");
		closeOpenMenuInSameList();
		//ul.slideDown("slow");
		return false;
	}
	else if(ul.css('display') == 'block')
	{
		lastList = false;
		ul.find('.mobile_content').slideUp("slow");
		ul.slideUp("slow");
		return false;
	}
	else
	{
		if(typeof onPageClicked == 'function')
		{
			onPageClicked(a.parent('li'), a);
			return false;
		}
		else
		{
			return true;
		}
	}
}

function getMenusToOpen(ul)
{
	if(!ul)
	{
		getMenusToOpen($('#selected').parent().parent());
	}
	else
	{
		if(ul.css('display') == 'none')
		{
			to_open.push(ul);
			if(ul.parent().parent().css('display') == 'none')
			{
				getMenusToOpen(ul.parent().parent());
			}
			else
			{
				openMenus();
			}
		}			
	}
}

function openMenus()
{
	if(to_open.length > 0)
	{
		var i = to_open.length-1;
		ul = to_open[i];
		to_open.pop();
		open.push(ul);
		
		var index = 0;
		if(open.length > 1)
		{
			index = open.length-1;
		}
		ul.attr('index', index);
		
		if(!firstTime)
		{
			ul.slideDown("slow", openMenus);
		}
		else
		{
			ul.show();
			openMenus();
		}
	}
	else
	{
		firstTime = false;
	}
}

function closeMenus()
{
	if(to_close.length > 0)
	{
		ul = to_close[to_close.length-1];
		to_close.pop();
		ul.find('.mobile_content').slideUp("slow");
		ul.slideUp("slow", closeMenus);
	}
	else if(to_open.length > 0)
	{
		openMenus();
	}
}

function closeOpenMenuInSameList()
{
	buildCloseList(selectedList.parent().parent().attr('index'));
	to_open.push(selectedList);
	if(to_close.length > 0)
	{
		to_close.reverse();
		closeMenus();
	}
	else
	{
		openMenus();
	}
}

function buildCloseList(except)
{
	to_close = [];
	if(except == null)
	{
		to_close = open;
	}
	else
	{
		for(var i=(open.length-1); i> -1; i--)
		{
			ul = open[i];
			if(ul.attr('index') != except)
			{
				to_close.push(ul);
				open.pop();
			}
			else
			{
				break;
			}
		}
	}
}


