$(function(){
	var delay = 2000; /* Delay between animations */
	var fade = 1800; /* Duration of fade in animation */
	var curLayer = 0; /* start from layer number */
	var curLayer2 = 0; /* start from layer number */
	var curLayer3 = 0; /* start from layer number */
	var zIndex = 3; /* z-index value. layers will use this value +/- 1 either side */
	/**
	 * Get childNode elements to be cycled though. Initialize with lowest zindex and 0 opacity.
	 */
	var layers = $('#rotateimages').children().each(function(){
		$(this).css({zIndex: zIndex, opacity:0});
	});
	/**
	 * Bring Layer to front and Fade in Animation with callback to cycleLayers.
	 */
	var fadeInLayer = function(i){
		$(layers[i]).css({zIndex:zIndex+1}).animate({'opacity':1}, fade, cycleLayers);
	}
	/**
	 * Calculate next image, current image and previous image and layer zindex and opacity accordingly
	 */
	var cycleLayers = function(){
		var l = layers.length, c = curLayer;
		$(layers[c<=0?l-1:c-1]).css({opacity:0, zIndex:zIndex-1});
		$(layers[c=curLayer=c>=l?0:c]).css({opacity:1,zIndex:zIndex});
		setTimeout(function(){ fadeInLayer(c+1==l?0:c+1); ++curLayer;}, delay);
	}
	/**
	 * Start the cycle layer process.
	 */
	cycleLayers();
	
	
	
	var layers2 = $('#rotateimages2').children().each(function(){
		$(this).css({zIndex: zIndex, opacity:0});
	});
	/**
	 * Bring Layer to front and Fade in Animation with callback to cycleLayers.
	 */
	var fadeInLayer2 = function(i){
		$(layers2[i]).css({zIndex:zIndex+1}).animate({'opacity':1}, fade, cycleLayers2);
	}
	/**
	 * Calculate next image, current image and previous image and layer zindex and opacity accordingly
	 */
	var cycleLayers2 = function(){
		var l = layers2.length, c = curLayer2;
		$(layers2[c<=0?l-1:c-1]).css({opacity:0, zIndex:zIndex-1});
		$(layers2[c=curLayer2=c>=l?0:c]).css({opacity:1,zIndex:zIndex});
		setTimeout(function(){ fadeInLayer2(c+1==l?0:c+1); ++curLayer2;}, delay);
	}
	/**
	 * Start the cycle layer process.
	 */
	cycleLayers2();
	
	
	var layers3 = $('#rotateimages3').children().each(function(){
		$(this).css({zIndex: zIndex, opacity:0});
	});
	/**
	 * Bring Layer to front and Fade in Animation with callback to cycleLayers.
	 */
	var fadeInLayer3 = function(i){
		$(layers3[i]).css({zIndex:zIndex+1}).animate({'opacity':1}, fade, cycleLayers3);
	}
	/**
	 * Calculate next image, current image and previous image and layer zindex and opacity accordingly
	 */
	var cycleLayers3 = function(){
		var l = layers3.length, c = curLayer3;
		$(layers3[c<=0?l-1:c-1]).css({opacity:0, zIndex:zIndex-1});
		$(layers3[c=curLayer3=c>=l?0:c]).css({opacity:1,zIndex:zIndex});
		setTimeout(function(){ fadeInLayer3(c+1==l?0:c+1); ++curLayer3;}, delay);
	}
	/**
	 * Start the cycle layer process.
	 */
	cycleLayers3();
	
	
	
});
