/*
 * Accordion - 2009.07.01
 * 
 * Used by /default.aspx
 * Requires common.js
 */


var MCPPAccordionSlides = [];
var MCPPAccordionIndex = 0;
var MCPPAccordionAnimationIndex = 0;
var MCPPAccordionAutoSwitch = true;


function MCPPAccordionInit(id)
{
	var accordion = document.getElementById(id);
	
	// Adjust accordion height
	accordion.style.height = (995 - accordion.offsetTop) + 'px';
	
	accordion.onmouseover = function(event)
	{
		MCPPAccordionAutoSwitch = false;
	}
	
	accordion.onmouseout = function(event)
	{
		MCPPAccordionAutoSwitch = true;
	}
	
	var enumerator = [];
	var i = 0;
	var index = 0;
	var top = 0;
	
	enumerator = accordion.getElementsByTagName('div');
	
	for (i = 0; i < enumerator.length; ++i)
	{
		var section = enumerator[i];
		
		if (section.className == 'section')
		{
			var heading = MCPPGetElementByClassName(section, 'heading');
			var body = MCPPGetElementByClassName(section, 'body');
			
			if (heading && body)
			{
				section.heading = heading;
				section.body = body;
				section.index = index;
				
				section.metrics = {'min-height':heading.offsetHeight + (section.offsetHeight - section.clientHeight), 'top':top};
				
				top += section.metrics['min-height'];
				
				section.style.height = section.metrics['min-height'] + 'px';
				section.style.top = section.metrics['top'] + 'px';
				
				section.onmouseover = function(event)
				{
					MCPPAccordionSwitch(this);
				}
				
				MCPPAccordionSlides[index] = section;
				
				++index;
			}
		}
	}
	
	for (i = 0; i < MCPPAccordionSlides.length; ++i)
	{
		var slide = MCPPAccordionSlides[i];
		
		slide.style.height = (accordion.clientHeight - top) + 'px';
		
		MCPPRemoveOverflowFromContainer(slide, 'div', 'item');
		
		slide.style.height = slide.metrics['min-height'] + 'px';
	}
	
	MCPPAccordionIndex = MCPPAccordionSlides.length - 1;
	
	var currentSlide = MCPPAccordionSlides[MCPPAccordionIndex];
	
	currentSlide.style.height = (accordion.clientHeight - top) + 'px';
	
	MCPPAccordionSwitch(currentSlide);
	window.setInterval('MCPPAccordionNext()', 9000);
	window.setInterval('MCPPAccordionAnimate()', 25);
}

function MCPPAccordionNext()
{
	if (MCPPAccordionAutoSwitch)
		MCPPAccordionSwitch(MCPPAccordionSlides[(MCPPAccordionIndex + 1) % MCPPAccordionSlides.length]);
}

function MCPPAccordionSwitch(slide)
{
	MCPPAccordionIndex = slide.index;
}

function MCPPAccordionAnimate()
{
	var currentSlide = MCPPAccordionSlides[MCPPAccordionIndex];
	var currentHeight = parseInt(currentSlide.style.height);
	
	var i = 0;
	var height = 0;
	var top = 0;
	
	while (i < 250)
	{
		slide = MCPPAccordionSlides[MCPPAccordionAnimationIndex];
		height = parseInt(slide.style.height);
		
		if (MCPPAccordionAnimationIndex != MCPPAccordionIndex)
		{
			if (height > slide.metrics['min-height'])
			{
				slide.style.height = --height + 'px';
				currentSlide.style.height = ++currentHeight + 'px';
			}
			++i;
		}
		
		++MCPPAccordionAnimationIndex;
		MCPPAccordionAnimationIndex %= MCPPAccordionSlides.length;
	}
	
	for (i = 0; i < MCPPAccordionSlides.length; ++i)
	{
		slide = MCPPAccordionSlides[i];
		height = parseInt(slide.style.height);
		
		slide.style.top = top + 'px';
		
		top += height;
	}
}

