function setupAccordions()
{
	setupSidebarAccordion();
	setupSearchAccordion();
	setupSearchInternalToggles();
	setupHomepageAccordion();
	setupFAQList();
}

function setupSidebarAccordion()
{
	if (!$('accordion-panels'))
	{
		return;
	}
	
	var toggleList = [];

	// vanilla accordion items
	$$('#accordion-panels > li').each( function (li)
	{
		var item = {
			toggle: li.select('a.plus').first(),
			blocks: li.select('div.drop-block')
		};
		toggleList.push(item);
	});

	var sidebarAccordion = 
		new com.atmospherebbdo.widgets.Accordion( toggleList, 0 );
}

function setupSearchAccordion()
{
	if (!$('search-accordion-panels'))
	{
		return;
	}
	
	var toggleList = [];

	// vanilla accordion items
	$$('#search-accordion-panels > li').each( function (li)
	{
		var item = {
			toggle: li.select('a.plus').first(),
			blocks: li.select('div.drop-block')
		};
		toggleList.push(item);
	});
	
	// the show all link
	toggleList.push(
		{
			toggle: $$('#refine-search a.show-all').first(),
			blocks: $$('#search-accordion-panels li div.drop-block')
		}
	);
	// the hide all link
	toggleList.push(
		{
			toggle: $$('#refine-search a.hide-all').first(),
			blocks: null
		}
	);

	var searchAccordion = 
		new com.atmospherebbdo.widgets.Accordion( toggleList );
		
	// make only one of hide/show all visible at a time
	var showAll = $$('#refine-search a.show-all').first();
	var hideAll = $$('#refine-search a.hide-all').first();
	
	showAll.observe( 'click', function ()
	{
		this.hide();
		hideAll.show();
	});
	hideAll.observe( 'click', function ()
	{
		this.hide();
		showAll.show();
	});
	
	hideAll.hide();
}

function setupSearchInternalToggles()
{
	var showMoreLinks = $$('#search-accordion-panels > li div.box');
	if (showMoreLinks)
	{
		showMoreLinks.each( function (div)
		{
			var toggle = div.select('.show-more a').first();
			// disable href
			toggle.writeAttribute('href', 'javascript:;');
			var block = div.select('.additional').first();
			// start hidden, then toggle block visibility on click
			if (block)
			{
				block.hide();
				toggle.observe('click', function ()
				{
					block.toggleClassName('open');
					if (block.hasClassName('open'))
					{
						toggle.update('Show Less');
						new Effect.BlindDown(block,{duration:1.0});
					}
					else
					{
						toggle.update('Show More');
						new Effect.BlindUp(block,{duration:1.0});
					}
				});
			}
			else
			{
				toggle.hide();
			}
		});
	}
}

function setupHomepageAccordion()
{
	if (!$('home-panels'))
	{
		return;
	}
	
	var toggleList = [];

	// vanilla accordion items
	$$('#home-panels > li').each( function (li)
	{
		li.addClassName( 'active' );
	});
}

function setupFAQList()
{
	$$('#FAQ ul.FAQ-list > li').each( function (li)
	{
		var anchor = li.down('a');
		anchor.writeAttribute('href', 'javascript:;');
		anchor.observe('click', function (event)
		{
			this.toggleClassName('open');
		}.bind(li));
	});
}