/* Generic CSS class function */
function jscss(a,o,c1,c2)
{
	switch (a){
	case 'swap':
		o.className=!jscss('check',o,c1)?o.className.replace(c2,c1):
		o.className.replace(c1,c2);
	break;
		case 'add':
		if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
	break;
		case 'remove':
		var rep=o.className.match(' '+c1)?' '+c1:c1;
		o.className=o.className.replace(rep,'');
	break;
		case 'check':
		return new RegExp('\\b'+c1+'\\b').test(o.className)
	break;
  }
}

/* showHideArticleContent */
function showHideArticleContent(el)
{
	var parent = el.parentNode;
	var hide = false;
	for (var i = 0; i < parent.childNodes.length; i++)
	{
		if (parent.childNodes[i] == el)
		{
			hide = true;
		}
		else if (hide && parent.childNodes[i].style)
		{
			parent.childNodes[i].style.display = (parent.childNodes[i].style.display == 'block') ? 'none' : 'block';
			(parent.childNodes[i].style.display == 'block') ? jscss('add', el, 'open') : jscss('remove', el, 'open');
		}
	}
}

function initShowHideArticleContent()
{
	var infodiv =  document.getElementById('quickinfo'); 
	if (!infodiv) return;
	if(!infodiv.hasChildNodes()) return;
	 
	var titles = infodiv.getElementsByTagName('h2');

	for (i = 0; i < titles.length; i++)
	{
		Event.observe(titles[i], 'click', function(){showHideArticleContent(this);});
		Event.observe(titles[i], 'mouseover', function(){jscss('add', this, 'hover');});
		Event.observe(titles[i], 'mouseout', function(){jscss('remove', this, 'hover');});
		
		var parent = titles[i].parentNode;

		var hide = false;
		
		for (var j = 0; j < parent.childNodes.length; j++)
		{
			if (parent.childNodes[j] == titles[i])
			{
				hide = true;
			}
			else if (hide && parent.childNodes[j].style)
			{
				parent.childNodes[j].style.display = 'none';
				
			}
		}
	}
}

function initHomepageScript() {
	var bodyEl = document.getElementsByTagName('body')[0];
	if (jscss('check', bodyEl, 'home')) {
		initShowHideArticleContent();
	}
	if (jscss('check', bodyEl, 'twocols')) {
		initShowHideArticleContent();
	}
}

Event.observe(window, 'load', initHomepageScript);
Event.stopObserving(window, 'unload', initHomepageScript);
