var slideshow = (function() {
	
	var images = [];
	var fs_oben, fs_unten;
	var initialized = false;
	var current = 0;
	var timeout = 1000;
  var doslideshow = true;
	
	var log = (function() {
		if (typeof console != 'undefined' && console.log) {
			return function(msg) {
				console.log(msg);
			};
		}
	}());
	
	var _init = function(data) {
		fs_oben = document.getElementById('fs_oben');
		fs_unten = document.getElementById('fs_unten');
		if (!fs_oben) {
			log("DIV-Element #fs_oben nicht gefunden")
			return;
		}
		if (!fs_unten) {
			log("DIV-Element #fs_unten nicht gefunden")
			return;
		}
		if (data.timeout) {
			timeout = data.timeout;
		}
		initialized = true;
	};
	
	var _add = function(imagename) {
		images.push(imagename);
	};
	
	var update = function() {
		var image = new Image();
		image.onload = function() {
			fs_oben.style.backgroundImage = "url(" + images[current] + ")";
			fs_unten.style.backgroundImage = "url(" + images[current] + ")";
			current++;
			if (current >= images.length) {
				current = 0;
			}
      if (doslideshow) {
  			window.setTimeout(update, timeout);
      }
		};
		image.src = images[current];
	};
	
	var _start = function() {
		if (!initialized) {
			log("slideshow nicht initialisiert; zuerst init() aufrufen");
			return;
		}
		if (images.length == 0) {
			log("keine Bilder in der Slideshow; zuerst add() aufrufen")
			return;
		}
    doslideshow = true;
		window.setTimeout(update, timeout);
	};

  var _stop = function() {
    doslideshow = false;
  };

  var _next = function() {
    fs_oben.style.backgroundImage = "url(" + images[current] + ")";
    fs_unten.style.backgroundImage = "url(" + images[current] + ")";
    current++;
    if (current >= images.length) {
      current = 0;
    }
  };
	
	return {
		init: _init,
		add: _add,
		start: _start,
    stop: _stop,
    next: _next
	}
	
}());

