
/***
 * Load up the slideshow using the $ sliders
 **/

$(document).ready( function() {

	var albumPath = '/slideshow/xml/album_id/1';
	var first = true;

	$.ajax({
		type: "GET",
		url: albumPath,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('img').each(function(){
				var src = $(this).attr('src');
				var caption = $(this).attr('caption');
				var width = $(this).attr('width');
				var height = $(this).attr('height');
				var link = $(this).attr('link');
				var linkTarget = ($(this).attr('target') ? $(this).attr('target') : '_self');
				
				// The slideshow item is comprised of an image with an optional link
				if( link ) {
					var slideshowItem = '<a href="' + unescape(link) + '" target="' + linkTarget + '" style="display: none;"><img class="slideshow" src="' + src + '" width="' + width + '" height="' + height + '" /></a>';
				}
				else {
					var slideshowItem = '<img class="slideshow" src="' + src + '" width="' + width + '" height="' + height + '" style="display: none;" />';
				}

				$('#slider').append(slideshowItem);
				
				

				if( first ) {
					$('#slider img').imagesLoaded( function() {
						
						$('#slider img.slideshowLoader').fadeOut('slow');
						$('#slider img.slideshow:first').fadeIn('slow', function() {
							$('#slider img.slideshowLoader').remove();
							$('#slider').nivoSlider({
								effect: 'fade',
								animSpeed: 500, // Slide transition speed
       							pauseTime: 5000
							});
						});
					});

					first = false;
				}
			});
		}
	});
	
	/*
	// @todo finish implementation of the plugin.
	$('#banner').pwslideshow({
		'albumId': 2
	});
	*/
});


// $('img.photo',this).imagesLoaded(myFunction)
// execute a callback when all images have loaded.
// needed because .load() doesn't work on cached images

// mit license. paul irish. 2010.
// webkit fix from Oren Solomianik. thx!

// callback function is passed the last image to load
// as an argument, and the collection as `this`
// https://gist.github.com/268257

$.fn.imagesLoaded = function(callback){
  var elems = this.filter('img'),
      len = elems.length,
      blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";

  elems.bind('load',function(){
      if (--len <= 0 && this.src !== blank){callback.call(elems,this);}
  }).each(function(){
     // cached images don't fire load sometimes, so we reset src.
     if (this.complete || this.complete === undefined){
        var src = this.src;
        // webkit hack from http://groups.google.com/group/$-dev/browse_thread/thread/eee6ab7b2da50e1f
        // data uri bypasses webkit log warning (thx doug jones)
        this.src = blank;
        this.src = src;
     }
  });

  return this;
};
