			// settings (ms)
			var minInterval = 3000;
			var maxInterval = 10000;
			var crossFade = 1500;
			
			var data;
			var images;
			var showing = Array();
			
			function getRandomIndex(array) {
				var randomIndex = Math.floor(Math.random()*array.length);
				var imageUrl = data[randomIndex].imageUrl;
				if ($.inArray(imageUrl, showing) > -1) // if image already being displayed...
					return getRandomIndex(array); // find another
				return randomIndex;
			}
			
			function swapImage(image) {
				var randInterval = minInterval + Math.round(Math.random()*(maxInterval-minInterval));
				setInterval(function() {
					
					var newImage = $(document.createElement('img')); 
					var newIndex = getRandomIndex(data);
					var newImageData = data[newIndex];
					
					newImage.attr({ // apply attributes to <IMG>
						src: 	newImageData.imageUrl,
						alt: 	newImageData.name,
						title: 	newImageData.name
					});
					newImage.addClass('newImage');
					newImage.parent().attr({ // apply attributes to <A>
						href: 	newImageData.url,
						title: 	newImageData.name
					});
					
					image.parent().append(newImage); // add new image to <A>
					
					var curIndex = $.inArray(image.attr('src'), showing);
					showing.splice(curIndex, 1);  // remove from array
					showing[showing.length] = newImageData.imageUrl;
						
					newImage.fadeIn(crossFade, function() {
						image.remove(); // remove old image
						newImage.removeClass('newImage');
						image = newImage;
					});
					
				}, randInterval);
			}
			
			var callback = function(json_data) {
				data = json_data;
				images = $('#featuredProducts li img');
				if (data.length <= images.length) return; 
				images.each(function(index) {
					showing[showing.length] = $(this).attr('src');
					swapImage($(this));
				});
			}
			
			$(function() {
				$.ajax({
					url: "/featured-data.php",
					cache: true,
					dataType: 'json',                   
					success: callback
				});
		   });
