//FAQ onload enhancement

if(window.cbeebies==undefined){cbeebies={}};
(function() {
	cbeebies.faq = {
		faqIndex: null,
		allDivs: null,
		
		_initFaq		:function() {
			if(document.getElementById('gu-faqindex')){
				faqIndex = document.getElementById('gu-faqindex');
				faqIndex.style.height = '1px';
				faqIndex.style.overflow = 'hidden';
				allDivs = document.getElementsByTagName('div');
				for( var i=0; i<allDivs.length; i++) { // handles multiple class names
					if(/\bgu-faqtopic\b/.test(allDivs[i].className)) { 
						// hide the answers
						answers = allDivs[i].getElementsByTagName('div')[0];
						answers.style.height = '1px';
						answers.style.overflow = 'hidden';
						// set the onclick listener
						topic = allDivs[i].getElementsByTagName('h2')[0];
						topic.onclick = function() { cbeebies.faq._toggle(this); };
					}
				}
			}
		},
		
		_toggle		:function(topic) {
			var answers = topic.parentNode.getElementsByTagName('div')[0];
			if(answers.style.height == '1px') {
				//if hidden make visible;
				cbeebies.faq._addClass(topic.getElementsByTagName('a')[0], "arrow-down"); 
				answers.style.height = 'auto';
			} else {
				//else hide it;
				cbeebies.faq._removeClass(topic.getElementsByTagName('a')[0], "arrow-down"); 
				answers.style.height = '1px';
				answers.style.overflow = 'hidden';
			}
		},
		
		_hasClass 	: 	function()
		{
		},
		_addClass 	: 	function(element, value)
		{
			if(!element.className)
			{
				element.className = value;
			} else {
				var newClassName = element.className;
				newClassName += " ";
				newClassName += value;
				element.className = newClassName;
			}
		},
		_removeClass 	: 	function(element, value)
		{
			var reg = new RegExp('(\\s|^)'+value+'(\\s|$)');
			element.className = element.className.replace(reg, ' ');
		}
	}
})();