function preload(arrayOfImages) {
    $(arrayOfImages).each(function(){
        $('<img/>')[0].src = this;
        // Alternatively you could use:
        // (new Image()).src = this;
    });
}

initPhotoSwap = function(containerSelector){
  var banner = $(containerSelector),
    bannerImgs = banner.children('img'),
    totalImgs = bannerImgs.length,
    i = totalImgs,
    intervalTime = 6000,
    animTime = 1000;
  
  var imgSrcs = [];
  
  for(i=0; i<totalImgs; i++){
    var thisSrc = bannerImgs.eq(i).attr('src');
    imgSrcs.push(thisSrc);
  }

  function photoSwap(){
    i--;
    bannerImgs.eq(i).fadeOut(animTime, function(){
      $(this).css({'z-index': '-1'}).show(0, function(){
        if(i == 0){
          bannerImgs.css({'z-index': 'auto'});
          i = totalImgs;
        }
      });
    });
  }

  banner.prepend(banner.html());

  preload(imgSrcs);
  
  banner.css('visibility', 'visible');
  photoInterval = setInterval(photoSwap, intervalTime);
}
