
/**
  Projects slideShow
  Author: Oli Matthews
**/


(function($){
  $.fn.slideShow = function(settings) {
    settings = jQuery.extend({
      style : 'slides',
      noDesc : false,
      useCookie : true
    }, settings);
    return this.each(function(){
      if (settings.style != 'slides') {
        var styleClass = 'gallery';
      } else {
        var styleClass = settings.style;
      };  
      var showIndex = true;
      
      var slideShowUl = $(this);
      slideShowUl.wrap('<div id="slideShowWrapper_'+slideShowUl.index(this)+'" class="module text-view slideshow '+styleClass+'"></div>');
      var slideShow = $('#slideShowWrapper_'+slideShowUl.index(this));
      slideShow.append('<ul id="placeholder"><li class="active"></li><li class="inactive"></li></ul>');
      var placeholder = slideShow.find('#placeholder');
      var slides = slideShowUl.find('.item');
      
      // Build pagination
      slideShow.append('<ul class="toggles"></ul>'); 
      // If Slide style
      if (settings.style == 'slides') {
        slides.remove('.toggles').appendTo('.toggles');
        var slideSrc = $(slides[0]).find('a').attr('href');
        var credit = $(slides[0]).find('img').attr('title');
        var firstSlide = '<img src="'+slideSrc+'"/><p class="credit">'+credit+'</p>';
        placeholder.show();
        fadeSlides(firstSlide,placeholder);
      } 
      // Gallery style
      else {
        slides.clone('.toggles').appendTo('.toggles');
        var toggleHome = '<div class="gardenIndex"><a>&nbsp</a></div>';
        slideShow.find('.toggles').before(toggleHome);
      };
      
      var togglers = $('.toggles').find('li');
      togglers.each(function(){
        var thisImgSrc = $(this).find('a').attr('href');
        $(this).find('img').attr('src',thisImgSrc);
      });
      
      if (settings.style == 'slides') {
        $(togglers[0]).find('a').addClass('active');
      } else {
        var galleryThumbs = slideShowUl.find('.item');
        galleryThumbs.click(function(){
          $('.gardenIndex').addClass('live');
          var i = galleryThumbs.index(this);
          var slideSrc = $(this).find('a').attr('href');
          var credit = $(slides[i]).find('img').attr('title');
          var firstSlide = '<img src="'+slideSrc+'"/><p class="credit">'+credit+'</p>';
          placeholder.show();
          fadeSlides(firstSlide,placeholder);
          slideShowUl.fadeOut(1500);
          $(togglers[i]).find('a').addClass('active');
          return false;
        });
      };
      
      if (settings.type != 'slides') {
        $('#gardenIndex, .gardenIndex').click(function(){
          $('.gardenIndex').removeClass('live');
          togglers.find('a').removeClass('active');
          slideShowUl.fadeIn(1500);
          placeholder.fadeOut(1500,function(){
          placeholder.find('li').html('').hide();
          });
        });
      };
      
      var headerText = $(this).find('h2').text();
      
      if (settings.noDesc == false) {
        if (headerText == 'Meadows') {
          slideShow.find('.toggles').append('<li class="view-description"><a>Description</a></li>');
        } else {
          slideShow.find('.toggles').append('<li class="view-description"><a>Garden description</a></li>');
        };
      };
      var descButton = slideShow.find('.view-description');
      var description = slideShow.find('#description').html();
      
      descButton.click(function() {
        placeholder.show();
        slideShowUl.fadeOut(1500);
        var credit = $(this).find('img').attr('title');
        var nextSlide = description;
        fadeSlides(nextSlide,placeholder);
        togglers.find('a').removeClass('active');
        $(this).addClass('active');
        var showIndex = false;
        return false;
      });
      
      togglers.find('a').click(function(){
        placeholder.show();
        slideShowUl.fadeOut(1500);
        var slideSrc = $(this).attr('href');
        var credit = $(this).find('img').attr('title');
        var nextSlide = '<img src="'+slideSrc+'"/><p class="credit">'+credit+'</p>';
        fadeSlides(nextSlide,placeholder);
        togglers.find('a').removeClass('active');
        $(this).addClass('active');
        $('.gardenIndex').addClass('live');
        return false;
      });
      
    });
    
    function fadeSlides(slide,placeholder) {
      placeholder.find('.inactive').html(slide);
      placeholder.find('.inactive').fadeIn(1500);
      placeholder.find('.active').fadeOut(1500,function(){
        placeholder.find('.active').addClass('hold').removeClass('active');
        placeholder.find('.inactive').removeClass('inactive').addClass('active');
        placeholder.find('.hold').removeClass('hold').addClass('inactive');
      });
    };
    
    
  };
})(jQuery);

$(document).ready(function(){
  $('#slideShow').slideShow();
  $('#sldShow').slideShow({noDesc:true});
  $('#gallery').slideShow({style:'gallery'});
  $('#glry,#gllry').slideShow({style:'gallery',noDesc:true});
});
