﻿var	dlsh = {
	addEvent: function( obj, type, fn )
	{
		if (obj.addEventListener)
			obj.addEventListener( type, fn, false );
		else if (obj.attachEvent)
		{
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent( "on"+type, obj[type+fn] );
		}
	},
	
	init_faqs: function(){
		if(!document.getElementsByTagName || !document.getElementById)
			return;
		var elDataList = document.getElementById('showhide');
		var elTerms = elDataList.getElementsByTagName('dt');
		for(i=0; i < elTerms.length; i++){
			dlsh.addEvent(elTerms[i], 'click', dlsh.showhide);
		}
		//setup optional show/hide all <dd> tags
		var elToggle = document.getElementById('showhidetoggle');
		if(elToggle){
			dlsh.addEvent(elToggle, 'click', dlsh.showhideAll);
		}
		// initialize all <dd> to hidden
		dlsh.showhideAll();

	},
	
	showhide: function(e){
		var target	= window.event ? window.event.srcElement : e ? e.target	: null;
		// get the paired dd tag for this <dt> tag 
		// walk the tree to make sure we have a <dd> tag (avoiding textNodes)
		var elDef = target.nextSibling;
		while (elDef.nodeName.toLowerCase() != 'dd' && elDef.nodeName.toLowerCase() != 'dl')
		elDef = elDef.nextSibling;
		// show/hide <dd> tag
		var strDisplay = (elDef.style.display == 'block')? 'none' : 'block';
		elDef.style.display = strDisplay;
	},

	showhideAll: function (){
		var strDisplay = 'none';// default to hidden
		//get input
		var elToggle = document.getElementById('showhidetoggle');
		if(elToggle != null){
			strDisplay = (elToggle.checked) ? 'block' : 'none';
		}
		// toggle all <dd> tags
		var elDataList = document.getElementById('showhide');
		var elDatum = elDataList.getElementsByTagName('dd');
		for(i=0; i < elDatum.length; i++){
			elDatum[i].style.display = strDisplay;
		}
	}	

}
// setup the faq show/hide functionality 
dlsh.addEvent(window, 'load', dlsh.init_faqs);
