var slideshow = {};

jQuery(document).ready(function(){
  slideshowStart('.slideshow',4000,false);
});

function slideshowStart(e,delay,random) {
  delay = (delay==null) ? 2000 : delay;
  random = (random==null) ? false : random;
  jQuery(e).find('a').hide();

  var id = jQuery(e).attr('id');
  slideshow[id] = {}
  slideshow[id].items = jQuery(e).find('a');
  slideshow[id].delay = delay;
  slideshow[id].random = random;
  var s = slideshow[id];


  if (s.items.length > 1) {
    jQuery(e).find('a').hover(function(){
      s.pause = true;
    },function(){
      s.pause = false;
      slideshowHide(id,jQuery(s.items[s.i]));
    });

    slideshowShow(id);
  }
}

function slideshowShow(id) {
  var s = slideshow[id];
  if (s.pause) return;

  if (s.random)
    s.i = Math.floor(Math.random()*s.items.length);
  else
    (s.i==null || s.i+1 >= s.items.length) ? s.i=0 : s.i++;

  jQuery(s.items[s.i]).fadeIn('slow').animate({opacity: 1.0}, s.delay, function(){
    if (!s.pause) {
      slideshowHide(id,jQuery(s.items[s.i]));
    }
  });
}

function slideshowHide(id,e) {
  var s = slideshow[id];
  if (s.fade) return;
  s.fade = true;
  jQuery(e).fadeOut('slow',function(){
    s.fade = false;
    (s.pause) ? jQuery(e).fadeIn('fast') : slideshowShow(id);
  });
}