Event.observe(window, 'load', function(){   
   
   $$('#results tbody.party td.party_name').each(function(ele){   
      var candidates = ele.up().up().next()
      
      if(candidates.id.substr(-4) != 'name')
      {
         ele.innerHTML += '<br /><a id="' + candidates.id + '_link" href="javascript:show(\'' + candidates.id + '\')">&darr; Show MEPs</a>'
         
         Effect.BlindUp(candidates.id, {duration: 0})
      }
   })
   
   $$('#results tbody.party td').each(function(ele){
      var candidates = ele.up().up().next()
      
      Event.observe(ele, 'click', function(e){
          show(candidates.id)        
      })
   })
})


function show(id)
{
   Effect.BlindDown(id, {duration: 0.3, afterFinish: function(o) {
      $(id + '_link').innerHTML = "&uarr; Hide MEPs"
      $(id + '_link').href = 'javascript:hide(\'' + id + '\')';

      $$('#' + id.replace('_candidates', '_name') + ' td').each(function(ele){
         Event.stopObserving(ele, 'click')
         
         Event.observe(ele, 'click', function(e){
            if(e.findElement().tagName != 'a') { hide(id) }        
         })
      })
   }})
}

function hide(id)
{
   Effect.BlindUp(id, {duration: 0.3, afterFinish: function(o){
      $(id + '_link').innerHTML = "&darr; Show MEPs"
      $(id + '_link').href = 'javascript:show(\'' + id + '\')';
      
      $$('#' + id.replace('_candidates', '_name') + ' td').each(function(ele){
         Event.stopObserving(ele, 'click')
         Event.observe(ele, 'click', function(e){
             if(e.findElement().tagName != 'a') { show(id) }   
         })
      })
   }})
}
