﻿/*

  Started on June 6, 2008 with code from

    Jeffrey Jordan Way, a Web Developer from Nashville, TN
      detacheddesigns.com in a post called " Why Aren't You Using jQuery: PART 3"

    http://www.detacheddesigns.com/blog/blogSpecific.aspx?BlogId=62
    http://www.detacheddesigns.com/blog/files/jQueryImageGallery.zip
    http://www.detacheddesigns.com/blog/samples/jQueryImageGallery/gallery.htm

  This revision by David Van Vickle - http://www.davidvanvickle.com
    
    Added
      Randomness
      Shuffling
      Automatic transitions
    Removed
      Thumbnails
  
*/

// change these paths for your images
var myImages = ['/publishwithfoundation/images/slideshow_calendar.jpg','/publishwithfoundation/images/slideshow_articles.jpg','/publishwithfoundation/images/slideshow_blog.jpg','/publishwithfoundation/images/slideshow_addons.jpg','/publishwithfoundation/images/slideshow_profiles.jpg'];

// how many times should the photo change per page load
var maxChanges = myImages.length * 2;

// shuffle images so each time page loads, the photos show in different order
var do_shuffle = true;

// use simple randomness instead of shuffling (tends to repeat images too often)
var do_randomly = false;

// number of seconds between photo changes
var seconds_between_photos = 15;

// name of DIV to load photos into
var div_name = "loader";








var changes = 0;
var timer;
var thisImg = myImages.length - 1;

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/array/shuffle [v1.0]

shuffle = function(o){ //v1.0
  for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
  return o;
};




// shuffling is better than random because of less potential repetition
if (do_shuffle) {
  myImages = shuffle(myImages);  
}



function nextImage () {
  
  var low = 0;
  var high = myImages.length - 1;
  var rand_no = Math.floor((high-(low - 1))*Math.random()) + low;
  
  thisImg++;
  changes++;
  if (thisImg==myImages.length) {
    thisImg = 0;
  }
  if (changes==maxChanges) {
    clearInterval(timer);
  }
  if (do_randomly) {
    thisImg = rand_no;
    return myImages[rand_no];
  } else {
    return myImages[thisImg];
  }
}

function changeImage () {
  
  var t = myImages[thisImg];
  var n = nextImage();
  
  if (t != n) {
    $("#"+div_name).addClass("loading");
    showImage(n);
  } else { 
    changeImage();
  }
}

function showImage(src)
{
  $("#"+div_name+" a img").fadeOut("normal").remove();
  var largeImage = new Image();
  $(largeImage).load(function()
                        {
              $(this).hide();
              $("#"+div_name+" a").append(this)
                          $("#"+div_name).removeClass("loading");
                                             
                           $(this).fadeIn("slow");              
                        });    
  $(largeImage).attr("src", src);                                                                               
}

function checkForLoaded () {
  if (document.getElementById(div_name) != null) {
    //alert("loaded");
    clearInterval(timer);
    changeImage();
    timer = setInterval(changeImage, (seconds_between_photos * 1000));
  }
}

// check every second to see if DIV exists, when it does, start photo changing timer
timer = setInterval(checkForLoaded, 500); 


