function Picture(img, desc) {

	this.image = new Image();

	this.image.src = img;
	this.image.alt = desc;
	this.image.title = desc;
}

function Gallery(id) {
	
	var self = this;
	var pics;
	var pos = 0;
	var slide = false;

	this.container = null;
	
	function init() {
		var control = document.createElement('p');
		var elem = document.createElement('a');
		
		control.className = 'control all';
		elem.href = '#';
		elem.title = 'Gesamtansicht';
		elem.className = 'all';
		elem.onclick = function() {
			self.setSlide(false);
			control.className = 'control all';
			return false;
		};
		control.appendChild(elem);
		
		elem = document.createElement('a');
		elem.href = '#';
		elem.title = 'Blättern';
		elem.className = 'one';
		elem.onclick = function() {
			self.setSlide(true);
			control.className = 'control one';
			return false;
		};
		control.appendChild(elem);
		
		self.container = document.getElementById(id);
		self.container.insertBefore(control, self.container.firstChild);
		
		self.pics = new Array();
	}
	
	this.add = function(pic) {
		if (pic && pic.image) {
			self.pics.push(pic);
		}
	};
	
	this.setSlide = function(yes) {
		self.slide = !!yes && self.pics.length > 1;
		
		if (self.slide) {
			self.pos = 0;
		}
		
		self.createHTML();
		return false;
	};
	
	this.previous = function() {
		self.pos--;
		self.createHTML();
		return false;
	};
	
	this.next = function() {
		self.pos++;
		self.createHTML();
		return false;
	};
	
	this.createHTML = function() {
		var box = self.container;
		var display = box.style.display;
		var elem;
		
		box.style.display = 'none';
		
		// alten Inhalt entfernen
		while (box.childNodes.length > 1) {
			box.removeChild(box.lastChild);
		}
		
		// Slideshow
		if (self.slide) {
			var span = document.createElement('span');
			
			// Nummer
			elem = document.createElement('p');
			elem.appendChild(document.createTextNode('Bild ' + (self.pos + 1) + ' von ' + self.pics.length));
			box.appendChild(elem);
			
			// Vorherige-Button
			if (self.pos > 0) {
				elem = document.createElement('a');
				elem.href = '#';
				elem.className = 'prev';
				elem.onclick = self.previous;
			}
			else {
				elem = document.createElement('del');
			}
			span.appendChild(elem);
			
			// Bild
			span.appendChild(self.pics[self.pos].image);
			
			// Nächste-Button
			if (self.pos < self.pics.length - 1) {
				elem = document.createElement('a');
				elem.href = '#';
				elem.className = 'next';
				elem.onclick = self.next;
			}
			else {
				elem = document.createElement('del');
			}
			span.appendChild(elem);
			
			box.appendChild(span);
		}
		// Komplett
		else {
			for (var i = 0; i < self.pics.length; i++) {
				elem = document.createElement('span');
				elem.appendChild(self.pics[i].image);
				box.appendChild(elem);
			}
		}
		
		box.style.display = display;
	};
	
	init();
}
