I've done something very similar on my site, using this approach:
Code:
<script type="text/javascript">$(document).ready(function(){
$('#promo-content h3').click(function(event){//add a click event to the h3
if(!event.detail || event.detail==1){//only fire on first click
$(this).next().slideToggle();//slide the following element
$(this).toggleClass('active');//add a class so it can be identified
$(this).find('span').text($(this).find('span').text() == 'expand' ? 'collapse' : 'expand');//toggle the label
return false;
}
});
$('#show-all').click(function(){
$('#promo-content h3:not(.active)').click();//expand everything that's not active on click
});
$('.promo').hide();//hide all the promos when the page loads
$('#promo-content h3').removeClass('active').append(' <\span>expand<\/span>');//add the labels
$('#promo-content h3:first').click();//show the first element
;});</script>
<div class="lcol" id="promo-content">
<h3 class="active">Layers of Protection Analysis (LOPA)</h3>
<div class="promo">
<p class="promo-content-title" id="promo-new">Paper 1<span></span></p>
<p class="style13">Layers Of Protection Analysis For Human Factors (LOPA-HF)</p>
<p>Process hazard analysis (PHA) performed to meet the requirements of OSHA and EPA
regulations must address Human factors. Both the human failures that can cause</p>
</div>
<h3 class="active">Software Promotions </h3>
<div class="promo">
<p class="promo-content-title" id="promo-new"><span>Software Promotions 1M</span></p>
<p>Quam euimod sed, semper ut potenti pellentesque</p>
</div>
</div>
<p id="show-all">Show all</p>
So when the page loads all the content is displayed, so it's still available to users who have js disabled. The script hides all the .promo content, adds a span to the heading to indicate that the .promo can be toggled, and a click handler. Then show the first set of content. This allows your html markup to be a bit cleaner as well.