/* ---------------------------------------
	springy navigation
--------------------------------------- */

	var Springy =
	{	
		items : null,

		settings :
		{
			duration: 300,
			transition: 'expo:out'
		},

		closeAll : function(objCurrentItem)
		{
			this.items.each (function(objItem)
			{
				// only check for top-level items
				if (!objItem.getElement('ul') || objItem == objCurrentItem) return false;
				
				var objSlider = objItem.getElement('ul').get('slide');
				if (objSlider.open) objSlider.toggle();
			});
		},

		load : function(arrItems)
		{
			this.items = arrItems;
		
			// loop all items
			this.items.each (function(objItem)
			{
				var objLink = objItem.getElement('a');

				// set active class on active links
				objItem.getElements('a').each (function(objLink)
				{
					// highlight active link
					if (objLink.href == window.location.href) objLink.className = 'active';
					
					// toggle menus when they're clicked
					if (objItem.getElement('ul') && objLink.parentNode.parentNode.id != ''){ objLink.addEvent('click', function()
					{
						objSlider.get('slide').toggle();
						this.closeAll(objItem);

						return false;

					}.bind(this));}

				}, this);

				// only check for top-level items
				if (objItem.getElement('ul'))
				{
					// set up the animation, grab the link
					var objSlider = objItem.getElement('ul').set('slide', this.settings);

					// hide all the menus
					if (!objItem.getElement('a.active')) objSlider.get('slide').hide();
				}
					
			}, this);
		}		
	}

	window.addEvent('domready', function()
	{
		Springy.load($$('ul#navigation li'));
	});
