function accordion(el) {

    if ($('visible') == el) {
        return;
    }
    if ($('visible')) {

	$$('.liVisible').each(function(e){
	    e.removeClassName('liVisible');
	});

        var eldown = el.parentNode.id+'-body';
        var elup = $('visible').parentNode.id+'-body';
        new Effect.Parallel(
        [
            new Effect.SlideUp(elup),
            new Effect.SlideDown(eldown)
        ], {
            duration: 0.1
        });
        $('visible').id = '';
    }

    el.id = 'visible';
    el.up().addClassName('liVisible');
}

function init() {

   	// don't bother if we can't even find the element with the accordion id 
    var acc = document.getElementById('accordion');
   	if(acc == null)
   	{
   		return;
   	}
    
   	// reset everything
    var apanels = acc.getElementsByTagName('div');
    for (i = 0; i < apanels.length; i++) {
        if (apanels[i].className == 'panel_body') {
            apanels[i].style.display = 'none';
        }
    }    
    // grab the visible element or initialize the first category
   	var visible = document.getElementById('visible'); 
   	var avis = null;
   	if(visible != null)
   	{
   		avis = visible.parentNode.id+'-body';
   	}	
   	else
   	{
	    var menuItemDiv = acc.firstChild;
	    var menuItemSpan = menuItemDiv.getElementsByTagName('span')[0];
	    menuItemSpan.id = 'visible';
	    avis = menuItemDiv.id+'-body';
	}
	
	// make the block visible
	var menuItemBody = document.getElementById(avis);
	menuItemBody.style.display = 'block'; // make the block visible
	menuItemBody.up('li').addClassName('liVisible');
}

function addEvent(elm, evType, fn, useCapture) {
    elm["on"+evType]=fn;return;
}

addEvent(window, "load", init);
