var bildliste = new Array();
var daumenliste = new Array();
var curBild = 0;
var posDaumen = 0;
var DiaShowRunning = false;
var DiaTimer;
var DiaTime = 5000;
var preloadedImage = new Array();
preloadedImage[0] = new Image();
preloadedImage[1] = new Image();
var mainBild;


window.onload = startup;

function startup()
{
	document.onkeyup = TasteLosgelassen;;
	findDaumen();
	findBild();
	BilderStart();
}

function findBild()
{
	mainBild = document.getElementById("bld_bild");
}

function BildObj(titel, beschr, quelle, daumen)
{
//  Bild-Object
	this.titel = titel;
	this.beschr = beschr;
	this.quelle = quelle;
	this.daumen = daumen;
}

function BildClicked(e)
{
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if (targ.getAttribute("id").substr(0,4) == "thn_")
		setBild(targ.image);
	else if (targ.getAttribute("id") == "bld_bild")
		if (DiaShowRunning) stopDiaShow();
}

function setDaumen(idx, i)
{
	// <img id="thn_x" src="daumen" onclick="javascript:setBild(i)" />
	var d = daumenliste[idx];
	d.src = bildliste[i].daumen;
	if (idx  == (~~(daumenliste.length / 2))) posDaumen = i
	d.setAttribute("alt",bildliste[i].titel);
	d.image = i;
	//	d.setAttribute("onclick","setBild(" + i + ");");
	if (i == curBild)
		d.style.border = "3px solid blue";
	else
		d.style.border = "3px solid gray";
}

function setBild(i)
{
	// ... <hx id="bld_titel"> text </hx>
	// ... <div id="bld_beschr"> text </div>
	// ... <img id="bld_bild" src="..." />
	setMainBild(i);
	arrangeDaumen(i);
}

function setMainBild(i)
{
	curBild = i;
	var d = mainBild;
	d.src = bildliste[i].quelle;
	preloadedImage[0].src=bildliste[(i+1) % bildliste.length].quelle;
	preloadedImage[1].src=bildliste[(i+2) % bildliste.length].quelle;
	d.setAttribute("alt",bildliste[i].titel);
	d = document.getElementById("bld_titel");
	d.replaceChild(document.createTextNode(bildliste[i].titel),d.firstChild);
	d = document.getElementById("bld_beschr");
	d.replaceChild(document.createTextNode(bildliste[i].beschr),d.firstChild);
}


function findDaumen()
{
	var images = document.getElementsByTagName("img");
	var i = 0;
	for (i=0;i<images.length;i++)
	{
			if (images[i].getAttribute("id"))
			{
				if (images[i].getAttribute("id").substr(0,4) == "thn_") 
					daumenliste.push(images[i]);
				if ((images[i].getAttribute("id").substr(0,4) == "thn_") ||
					(images[i].getAttribute("id") == "bld_bild")) 
				{
					if(images[i].addEventListener)  // Mozilla, Netscape, Firefox
					{
						images[i].addEventListener('click', BildClicked, false);
					}
					else // IE
					{
						images[i].attachEvent('onclick', BildClicked);
					}
				}
			}
	}
}

function arrangeDaumen(i)
{
	if (daumenliste.length < bildliste.length)
		for (j=0;j<daumenliste.length;j++)
			if (i <= ~~(daumenliste.length / 2))
				setDaumen(j,j);
			else if ((i + ~~(daumenliste.length / 2)) >= bildliste.length)
				setDaumen(j,bildliste.length+j-daumenliste.length);
			else
				setDaumen(j,i- ~~(daumenliste.length / 2) + j);
	else if (bildliste.length >0)
		for (j=0;j<bildliste.length;j++)
			setDaumen(j,j);
}

function Bild(titel, beschr, quelle, daumen)
{
	bildliste.push(new BildObj(titel, beschr, quelle, daumen))
}

function erstesBild()
{
	if (DiaShowRunning) stopDiaShow();
	setBild(0)
}

function letztesBild()
{
	if (DiaShowRunning) stopDiaShow();
	setBild(bildliste.length-1)
}
	
function naechstesBild()
{
	if (DiaShowRunning) stopDiaShow();
	setBild((bildliste.length > curBild+1) ? curBild + 1 : bildliste.length - 1);
}
	
function vorherigesBild()
{
	if (DiaShowRunning) stopDiaShow();
	setBild((0 < curBild) ? curBild - 1 : 0)
}
	
function vorwaertsrollenDaumen()
{
	if (DiaShowRunning) stopDiaShow();
	arrangeDaumen(posDaumen + daumenliste.length)
}
	
function rueckwaertsrollenDaumen()
{
	if (DiaShowRunning) stopDiaShow();
	arrangeDaumen(posDaumen - daumenliste.length)
}

function DiaShow()
{
	if (DiaShowRunning)
	{
		stopDiaShow();
	}
	else
	{
		DiaShowRunning = true;
		DiaTimer = setTimeout("nextDia(curBild+1)",3000);
		for (i=0;i<daumenliste.length;i++)
			daumenliste[i].style.display = "none";
	}
}

function stopDiaShow()
{
	clearTimeout(DiaTimer);
	DiaShowRunning = false;
	for (i=0;i<daumenliste.length;i++)
			daumenliste[i].style.display = "inline";
	arrangeDaumen(curBild);
}

function nextDia(i)
{
	var k = 0;
	if (mainBild.complete)
	{
		if (i < bildliste.length - 1)
		{
			setMainBild(i);
			k = i+1;
		}
		else
		{
			setMainBild(0);
			k = 1;
		}
		DiaTimer = setTimeout("nextDia(" + k +")",DiaTime);
	}
	else
		DiaTimer = setTimeout("nextDia(" + i +")",DiaTime);
}

function TasteLosgelassen (Ereignis) {
  if (!Ereignis)
    Ereignis = window.event;
  if (Ereignis.which) {
    Tastencode = Ereignis.which;
  } else if (Ereignis.keyCode) {
    Tastencode = Ereignis.keyCode;
  }
  if (Tastencode == 27) if (DiaShowRunning) stopDiaShow();
}


