var gal_aktuelle_nr = 0;
var gal_eingeblendet = true;
var gal_aktuelles_bild = null;
var gal_naechstes_bild;
var gal_naechste_nr;
var gal_vorladen_anzahl = 3;
var gal_slideshow_aktiv = false;
var gal_slideshow_interval;

function gal_bild(width, height, bild_normal, bild_druck) {
	this.width = width;
	this.height = height;
	this.bild_normal = bild_normal;
	this.bild_druck = bild_druck;

	this.bild = function() {
		var bild = new Image(this.width, this.height);
		bild.src = bild_normal;
		bild.onclick = gal_druck;
		bild.title = "Druckversion anzeigen";
		return bild;
	}
	
	this.druck_url = function() {
		if (this.bild_druck != undefined) {
			return this.bild_druck;
		} else {
			return this.bild_normal;
		}
	}
	
	this.bild_name = function() {
		var name_split = this.bild_normal.split("/");
		return name_split[name_split.length - 1].split(".")[0];
	}
	
}

function gal_anzeigen(bild_nr) {
	if (gal_eingeblendet) {
		gal_eingeblendet = false;
		gal_naechste_nr = bild_nr;
		gal_naechstes_bild = gal_bilder[bild_nr].bild();
		if (gal_aktuelles_bild == null) {
			gal_aktuelles_bild = gal_naechstes_bild;
		}
		gal_einblenden(0);
		gal_vorladen(bild_nr);
	}
}

function gal_vorladen(bild_nr) {
	for (var i = bild_nr; i <= bild_nr + gal_vorladen_anzahl; i++) {
		var lade_nr = i % gal_bilder.length;
		if (lade_nr < 0) {
			lade_nr += gal_bilder.length;
		}
		gal_bilder[lade_nr].bild();
	}
	for (var i = bild_nr - gal_vorladen_anzahl; i < bild_nr; i++) {
		var lade_nr = i % gal_bilder.length;
		if (lade_nr < 0) {
			lade_nr += gal_bilder.length;
		}
		gal_bilder[lade_nr].bild();
	}
}

function gal_einblenden(schritt) {
	gal_aktuelles_bild.style.filter = "Alpha(opacity=" + ((10 - schritt) * 10) + ")";
	gal_aktuelles_bild.style.opacity = (10 - schritt) * 0.1;
	gal_naechstes_bild.style.filter = "Alpha(opacity=" + (schritt * 10) + ")";
	gal_naechstes_bild.style.opacity = schritt * 0.1;
	if (schritt == 0) {
		if (gal_aktuelles_bild.parentNode != null && gal_aktuelles_bild.parentNode.id == "gal_bild_1") {
			document.getElementById("gal_bild_2").appendChild(gal_naechstes_bild);
		} else {
			document.getElementById("gal_bild_1").appendChild(gal_naechstes_bild);
		}
	}
	if (schritt <= 10) {
		window.setTimeout("gal_einblenden(" + (schritt + 1) + ")", 20);
	} else {
		if (gal_aktuelles_bild != gal_naechstes_bild) {
			gal_aktuelles_bild.parentNode.removeChild(gal_aktuelles_bild);
		}
		gal_aktuelle_nr = gal_naechste_nr;
		var feld = document.getElementById("gal_bild_name");
		if (feld != null) {
			feld.value = gal_bilder[gal_aktuelle_nr].bild_name();
		}
		gal_aktuelles_bild = gal_naechstes_bild;
		gal_eingeblendet = true;
	}
}

function gal_blaettern(anzahl) {
	var bild_nr = (gal_aktuelle_nr + anzahl) % gal_bilder.length;
	if (bild_nr < 0) {
		bild_nr += gal_bilder.length;
	}
	gal_anzeigen(bild_nr);
}

function gal_vor() {
	gal_blaettern(1);
}

function gal_zurueck() {
	gal_blaettern(-1);
}

function gal_anfang() {
	gal_anzeigen(0);
}

function gal_druck() {
	var druck_url = gal_bilder[gal_aktuelle_nr].druck_url();
	var fenster = window.open("./druckversion.php?bild=" + druck_url, "Druckversion", "resizable=yes,left=20,top=20");
	fenster.focus();
}

function gal_entfernen() {
	var empfaenger = "webmaster@chai.ch";
	var betreff = "Bild entfernen";
	var nachricht = "Bitte eine Begruendung angeben. Bild-URL: " + gal_aktuelles_bild.src + " ";
	document.location.href = "mailto:" + empfaenger + "?subject=" + betreff + "&body=" + nachricht;
}

function gal_slideshow(button) {
	if (gal_slideshow_aktiv) {
		gal_slideshow_aktiv = false;
		window.clearInterval(gal_slideshow_interval);
		// button.value = "Slideshow starten";
		button.innerHTML = "Slideshow starten";
	} else {
		gal_slideshow_aktiv = true;
		gal_slideshow_interval = window.setInterval("gal_vor()", 4000);
		// button.value = "Slideshow stoppen";
		button.innerHTML = "Slideshow stoppen";
	}
}

document.onkeydown = function(e) {
	if (!e) {
		e = window.event;
	} if (e.keyCode == 37 || e.keyCode == 38) {
		gal_zurueck();
	} else if (e.keyCode == 39 || e.keyCode == 40) {
		gal_vor();
	}
}
