$.fn.extend({
	random: function(count){
		this.addClass('temporary_random');
		while((random_set = $('.temporary_random')).length > count){
			$(random_set[Math.floor(Math.random() * random_set.length)]).removeClass('temporary_random');
		}
		random_set.removeClass('temporary_random');
		return random_set;
	},
	shuffle: function(){
		var count = (this.length * 2);
		for(i = 0; i < count; i++){
			element = $(this[Math.floor(Math.random() * this.length)]);
			element.parent().append(element);
		}
		return this;
	}
});

var current = 0;
var preload = 0;

$(document).ready(function(){
	$('#ctnrTopImage img').hide().shuffle();
	preload_next();
	current_image().show();
	preload_next();
});

function current_image(){
	return $($('#ctnrTopImage img')[current]);
}

function fader(){
	preload_next();
	current_image().fadeOut(1500);
	current++;
	if(current >= $('#ctnrTopImage img').length){
		current = 0;
	}
	current_image().fadeIn(1500);
}

function preload_next(){
	if(preload < $('#ctnrTopImage img').length){
		$('#ctnrTopImage img')[preload].src = $('#ctnrTopImage img')[preload].alt;		
	}
	preload++;
}

setInterval(fader, 4000);
