var allImages = new Array(
'mosaic_1.jpg',
'mosaic_1a.jpg',
'mosaic_2.jpg',
'mosaic_2a.jpg',
'mosaic_3.jpg',
'mosaic_4.jpg',
'mosaic_5.jpg',
'mosaic_5a.jpg',
'mosaic_6a.jpg',
'mosaic_6b.jpg',
'mosaic_7.jpg',
'mosaic_8.jpg',
'mosaic_9.jpg',
'mosaic_10.jpg',
'mosaic_11.jpg',
'mosaic_12.jpg',
'mosaic_13.jpg',
'mosaic_14.jpg',
'mosaic_15.jpg',
'mosaic_16.jpg',
'mosaic_17.jpg'
);

$(document).ready(function() {
	$('.slide').each(function() { 
		var timeout = (Math.random() * 1000) * 5;
		
		var id = $(this).attr('id');
		
		setTimeout('swapImage(\'' + id + '\');', timeout);			  
	});	
});

function imageExists(src)
{
	var exists = false;
	
	$('.slide').each(function() {
		if($(this).attr('src') == src)
			exists = true;
	});
	
	return exists;
}

function getImage()
{
	var newIndex = Math.floor(Math.random() * allImages.length);

	var newSrc = 'images/' + allImages[newIndex];
	
	var exists = imageExists(newSrc);
	
	while(exists)
	{
		newIndex = Math.floor(Math.random() * allImages.length);

		newSrc = 'images/' + allImages[newIndex];
		
		exists = imageExists(newSrc);
	}
	
	return newSrc;
}

function swapImage(id)
{
	var num = id.substr(3, 5);
	
	var fg = $('#img' + num);
	var bg = $('#bg' + num);
	
	var thisImage = getImage();
	var prevImage = fg.attr('src');
	
	bg.css('background-image', 'url(' + prevImage + ')');
	fg.attr('src', thisImage);
	
	fg.hide();
	fg.fadeIn(2000);
	
	var timeout = 5000 + (Math.random() * 1000) * 10;
	setTimeout('swapImage(\'' + id + '\');', timeout);	
	
	/*
	// Swap back to front
	if($('#bg' + num).css('background-image').length)
		node.attr('src', $('#bg' + num).css('background-image'));
	node.fadeTo(1, 1.0);
	
	// Put new image in behind
	var newSrc = getImage();
	$('#bg' + num).css('background-image', 'url(' + newSrc + ')');
	
	node.fadeTo(1000, 0.01, function() {
		var timeout = (Math.random() * 1000) * 20;
		
		var id = $(this).attr('id');
		
		setTimeout('swapImage(\'' + id + '\');', timeout);	
	});
	*/
}

function shuffle(input) 
{
	var i = input.length;
	
	if (i == 0)
		return false;
		
	while (--i) 
	{
		var j = Math.floor(Math.random() * (i + 1));
		
		var tempi = input[i];
		var tempj = input[j];
		
		input[i] = tempj;
		input[j] = tempi;
	}
}
