var tempImg;

var randomImage = function() {

	this.imageFolder = "/assets/images/forside_billeder/";
	this.imageBaseName = "billede_";
	this.imageCount = 8; // this means that images from 1.gif to 10.gif should be in the /_images/ folder
	this.imageType = "jpg";
	
	this.frecuency = 5000; // ms

	this.observeImageLoadedFrecuency = 100;  // these two parameters work together, using the current settings
	this.observeImageLoadedTries = 20;              // the script will check 20 times if the background was loaded into memory every 100 ms interval

	this.observeImageLoadedTriesCounter = 0;

	this.target;
	this.targetContainer;
	this.thisReferenceName;

}

randomImage.prototype.loadImage = function(imgNumber) {

	tempImg = new Image();
	tempImg.src = this.genImagePath(imgNumber);
	this.observeImageLoaded(imgNumber, this.thisReferenceName);

}

randomImage.prototype.observeImageLoaded = function(imgNumber, thisReferenceName) {

	if(tempImg.complete) {

		eval(thisReferenceName+".setImage("+imgNumber+")");

	}
	else {

		if(this.observeImageLoadedTriesCounter<this.observeImageLoadedTries) {
			setTimeout(thisReferenceName+".observeImageLoaded("+imgNumber+", '"+thisReferenceName+"')", this.observeImageLoadedFrecuency);
			this.observeImageLoadedTriesCounter++;
		}
		else {
			var nextImageNumber = this.genRandomImageNumber();
			this.observeImageLoadedTriesCounter = 0;
			this.loadImage(nextImageNumber);
		}

	}

}

randomImage.prototype.genImagePath = function(imgNumber) {
	return this.imageFolder + this.imageBaseName + imgNumber + "." + this.imageType;
}

randomImage.prototype.setImage = function(imgNumber) {
	if(!this.target) {
		this.target = document.createElement("img");
		this.targetContainer.appendChild(this.target);
	}
	this.target.src = this.genImagePath(imgNumber);
}

randomImage.prototype.genRandomImageNumber = function() {
	var rnd=0;
	while((rnd==0)||(rnd>this.imageCount)) rnd = Math.floor(Math.random() * String(this.imageCount).length * 10);
	return rnd;
}

randomImage.prototype.start = function() {
	var nextImageNumber = this.genRandomImageNumber();
	this.loadImage(nextImageNumber);
}

var randomImg;
randomImg = new randomImage();
randomImg.targetContainer = document.getElementById("randomImageContainer");
randomImg.thisReferenceName = "randomImg";
randomImg.start();