// JavaScript Document

var accordionHeaderElements = YAHOO.util.Dom.getElementsByClassName('accordionHeader', 'h3'); 
var accordionBodyElements = YAHOO.util.Dom.getElementsByClassName('accordionBody', 'div'); 
var accordionContentElements = YAHOO.util.Dom.getElementsByClassName('accordionContent', 'div'); 
YAHOO.util.Dom.setStyle(accordionBodyElements, 'height', 0); 
YAHOO.util.Dom.setStyle(accordionContentElements, 'display', 'none'); 

var clickHandler = function(e) { 
	//prevent redirecting to the href
	YAHOO.util.Event.preventDefault(e);
	
	var accordionBody = YAHOO.util.Dom.getNextSibling(this);
	var accordionContent = YAHOO.util.Dom.getFirstChild(accordionBody);
	
	//if the accordion is closed, run the open animation and add class 'open'
	if(this.className == "accordionHeader") {
		this.className = "accordionHeader open";
		accordionContent.style.display = 'block';
		//set the animation properties
		var attributesOpen = { 
			height: { to: accordionContent.offsetHeight } 
		}; 
		var animOpen = new YAHOO.util.Anim(accordionBody, attributesOpen, 0.5, YAHOO.util.Easing.easeOut);
		animOpen.animate();
	}
	//if the accordion is open, run the close animation and remove class 'open'
	else {
		this.className = "accordionHeader";
		//set the animation properties
		var attributesClosed = { 
			height: { to: 0 } 
		}; 
		var animClosed = new YAHOO.util.Anim(accordionBody, attributesClosed, 0.5, YAHOO.util.Easing.easeOut);
		var removeAccordionBody = function() {
			accordionContent.style.display = 'none';
		}
		//subscribe closing animatoin to the remove function
		animClosed.onComplete.subscribe(removeAccordionBody);
		animClosed.animate(); 
	}
	//hide the body element
};


var focusHandler = function(e) { 
	keyEnterHandler.enable();
};

var blurHandler = function(e) { 
	keyEnterHandler.disable();
};

YAHOO.util.Event.addListener(accordionHeaderElements, "click", clickHandler);
YAHOO.util.Event.addListener(accordionHeaderElements, "focus", focusHandler);
YAHOO.util.Event.addListener(accordionHeaderElements, "blur", blurHandler);

var keyEnterHandler = new YAHOO.util.KeyListener(document, { keys:182 }, { fn:clickHandler, scope:accordionHeaderElements, correctScope:true } ); 
 



