(function($){
  // Allows you to do $$("#foo").foo and $$("#foo").foo = bar. 
  function $$(param) {
    var node = $(param)[0],
        id = $.data(node);
    $.cache[id] = $.cache[id] || {};
    $.cache[id].node = node;
    return $.cache[id];
  };

  $.fn.slideShow = function(opts) {
    opts = $.extend({
      slideSelector:   ".show",
      captionSelector: ".caption", // Not used since none of the slides actually have captions
      delay: 8000
    },opts)

    function next() {
      var n       = $$(this).current,        
          current = $$(this).slides.eq(n),
          next;
      n    = ($$(this).current = (n+1 > $$(this).slides.length-1 ?  0 : n+1));
      next = $$(this).slides.eq(n);

      current.fadeOut();
      next.fadeIn();
    }

    return this.each(function(){
      var gallery         = $(this);
      $$(gallery).slides  = gallery.find(opts.slideSelector);
      $$(gallery).current = 0;
      $$(gallery).slides.filter(":not(':first')").hide();
      setInterval(function(){ 
        next.call(gallery); 
      }, opts.delay);
    });

  }
})(jQuery);

$(document).ready(function() {		
  $("#gallery").slideShow();
});

// function slideShow() {

	// //Set the opacity of all images to 0
	// $('#gallery a').css({opacity: 0.0});
	
	// //Get the first image and display it (set it to full opacity)
	// $('#gallery a:first').css({opacity: 1.0});
	
	// //Set the caption background to semi-transparent
	// $('#gallery .caption').css({opacity: 0.7});

	// //Resize the width of the caption according to the image width
	// $('#gallery .caption').css({width: $('#gallery a').find('img').css('width')});
	
	// //Get the caption of the first image from REL attribute and display it
	// $('#gallery .content').html($('#gallery a:first').find('img').attr('rel'))
	// .animate({opacity: 0.7}, 400);
	
	// //Call the gallery function to run the slideshow, 6000 = change to next image after 6 seconds
	// setInterval('gallery()',6000);
	
// }

// function gallery() {
	
	// //if no IMGs have the show class, grab the first image
	// var current = ($('#gallery a.show')?  $('#gallery a.show') : $('#gallery a:first'));

	// //Get next image, if it reached the end of the slideshow, rotate it back to the first image
	// var next = ((current.next().length) ? ((current.next().hasClass('caption'))? $('#gallery a:first') :current.next()) : $('#gallery a:first'));	
	
	// //Get next image caption
	// var caption = next.find('img').attr('rel');	
	
	// //Set the fade in effect for the next image, show class has higher z-index
	// next.css({opacity: 0.0})
	// .addClass('show')
	// .animate({opacity: 1.0}, 1000);

	// //Hide the current image
	// current.animate({opacity: 0.0}, 1000)
	// .removeClass('show');
	
	// //Set the opacity to 0 and height to 1px
	// $('#gallery .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px'}, { queue:true, duration:300 });	
	
	// //Animate the caption, opacity to 0.7 and heigth to 100px, a slide up effect
	// $('#gallery .caption').animate({opacity: 0.7},100 ).animate({height: '100px'},500 );
	
	// //Display the content
	// $('#gallery .content').html(caption);
	
	
// }
