wssleftnav_slideOpenInterval = [];
wssleftnav_slideCloseInterval = [];

function wssleftnav_toggle(id)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 0;
		max_y = ($$('#'+id+' div').length * leftnav_subitem_height) + leftnav_item_height + (leftnav_subitems_margin_y * 2);

		if (wssleftnav_slideCloseInterval[id] != null || y == leftnav_item_height)
		{
			// Open the leftnav
			if (wssleftnav_slideCloseInterval[id] != null)
			{
				window.clearInterval(wssleftnav_slideCloseInterval[id]);
				wssleftnav_slideCloseInterval[id] = null;
			}

			if (wssleftnav_slideOpenInterval[id] == null)
			{
				// Close all other sections
				leftnav_items = $$('#leftnav div.leftnav_item');
				for (i = 0; i < leftnav_items.length; i++)
				{
					if (wssleftnav_slideOpenInterval[leftnav_items[i].id] != null)
					{
						window.clearInterval(wssleftnav_slideOpenInterval[leftnav_items[i].id]);
						wssleftnav_slideOpenInterval[leftnav_items[i].id] = null;
					}

					if (leftnav_items[i].id != id)
					{
						if (wssleftnav_slideCloseInterval[leftnav_items[i].id] == null)
						{
							wssleftnav_slideCloseInterval[leftnav_items[i].id] = window.setInterval('wssleftnav_slideClose("'+leftnav_items[i].id+'")', 50);
						}
					}
				}

				//Open the section
				wssleftnav_slideOpenInterval[id] = window.setInterval('wssleftnav_slideOpen("'+id+'")', 50);
			}
		}else{
			// Close the section
			if (wssleftnav_slideOpenInterval[id] != null)
			{
				window.clearInterval(wssleftnav_slideOpenInterval[id]);
				wssleftnav_slideOpenInterval[id] = null;
			}

			if (wssleftnav_slideCloseInterval[id] == null)
			{
				wssleftnav_slideCloseInterval[id] = window.setInterval('wssleftnav_slideClose("'+id+'")', 50);
			}
		}
	}
}

function wssleftnav_slideOpen(id)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 0;
		goal_y = ($$('#'+id+' div').length * leftnav_subitem_height) + leftnav_item_height + (leftnav_subitems_margin_y * 2);

		if (y < goal_y)
		{
			new_y = parseInt(Math.ceil((goal_y - y) / 3)) + y;

			elem.setStyle({height: new_y+'px'});
		}else{
			window.clearInterval(wssleftnav_slideOpenInterval[id]);
			wssleftnav_slideOpenInterval[id] = null;
		}
	}
}

function wssleftnav_slideClose(id)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 60;
		goal_y = leftnav_item_height;

		if (y > goal_y)
		{
			new_y = y - parseInt(Math.ceil((y - goal_y) / 3));

			elem.setStyle({height: new_y+'px'});
		}else{
			window.clearInterval(wssleftnav_slideCloseInterval[id]);
			wssleftnav_slideCloseInterval[id] = null;
		}
	}
}

// get all items within the leftnav div
leftnav_items = $$('#leftnav div.leftnav_item');

mostsubitems = 0;
for (i = 0; i < leftnav_items.length; i++)
{
	$(leftnav_items[i].id).setStyle({height: leftnav_item_height+'px'});

	wssleftnav_slideOpenInterval[this.id] = null;
	wssleftnav_slideCloseInterval[this.id] = null;

	Event.observe(leftnav_items[i].id+'_trigger', 'click', function() {
		wssleftnav_toggle(this.id.replace('_trigger', ''));
	});

	mostsubitems =  ($$('#'+leftnav_items[i].id+' div').length > mostsubitems) ? $$('#'+leftnav_items[i].id+' div').length : mostsubitems;
}

// set the height of the leftnav div
leftnav_height = ((leftnav_item_height + 2) * leftnav_items.length) + (leftnav_subitem_height * mostsubitems);
$('leftnav').setStyle({height: leftnav_height+'px'});
