
(function($) {
$.fn.batchImageLoad = function(options) {
	var images = $(this);
	var originalTotalImagesCount = images.size();
	var totalImagesCount = originalTotalImagesCount;
	var elementsLoaded = 0;

	// Init
	$.fn.batchImageLoad.defaults = {
		loadingCompleteCallback: null, 
		imageLoadedCallback: null
	}
    var opts = $.extend({}, $.fn.batchImageLoad.defaults, options);
		
	// Start
	images.each(function() {
		// The image has already been loaded (cached)
		if ($(this)[0].complete) {
			totalImagesCount--;
			if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
		// The image is loading, so attach the listener
		} else {
			$(this).load(function() {
				elementsLoaded++;
				
				if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);

				// An image has been loaded
				if (elementsLoaded >= totalImagesCount)
					if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
			});
			$(this).error(function() {
				elementsLoaded++;
				
				if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
					
				// The image has errored
				if (elementsLoaded >= totalImagesCount)
					if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
			});
		}
	});

	// There are no unloaded images
	if (totalImagesCount <= 0)
		if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
};
})(jQuery);

$(document).ready(function(){
	
	initiateSlider = function() {
			
		$('#slider-nav').append("<a class='next-prev' id='prev-slide' href='#' title='Previous slide'>Previous</a><div id='slider-pagination'></div><a class='next-prev' id='next-slide' href='#' title='Next slide'>Next</a>");
		
		$('#slider').cycle({
			fx: 'fade',
			speed: 1000, 
			timeout: 4000,
			//easing: 'easeInOutExpo',
			pager: '#slider-pagination',
			next: '#next-slide',
			prev: '#prev-slide',
			pause: 1,
			pauseOnPagerHover: 1
		});
				
		$(".slide").hover(
			function () { $(this).find('.slide-info').stop().fadeTo('fast', 1);},
			function () { $(this).find('.slide-info').stop().fadeTo('fast', 0);}
		);
		
		
		$('#slider-nav a, #slider-pagination a').click(function() { 
    		$('#slider').cycle('pause'); 
		});
		
		
		$("#loader").fadeTo('slow', 0, function () { $(this).remove();} );
	};

	$("#slider").find('img').batchImageLoad({
		loadingCompleteCallback: initiateSlider
	});

});
  
  
  
