var timeoutMouseeventMenu;
function menuMouseevent(mouseevent)
{
    if (mouseevent == 0)
        timeoutMouseeventMenu = setTimeout('document.getElementById("menu").style.display = "none";',1000);
    else
    {
        clearTimeout(timeoutMouseeventMenu);
        document.getElementById("menu").style.display = "block";
    }
}

var displayTopbar = 1;
function switchTopbar()
{
    if (displayTopbar == 1)
    {
        document.getElementById("topBar").style.display = "none";
        document.getElementById("imageNavigationButtonsTop").style.display = "block";
        displayTopbar = 0;
    }
    else
    {
        document.getElementById("imageNavigationButtonsTop").style.display = "none";
        document.getElementById("topBar").style.display = "block";
        displayTopbar = 1;
    }
}

function buildGallery(selection)
{
    startSlideshow(0);
    document.getElementById("bilderwebGaestebuch").style.display = "none";
	document.getElementById("menu").style.display = "none";
    
    var objectTemp = selection.parentNode;
    var searchstring = objectTemp.getAttribute("alt");
	var searchstringTemp;
    var i = 0;
	
	// Bilder der letzten 30/60/90 Tage zeigen
	if (searchstring.indexOf("tage") != -1)
	{
		var today = new Date();
		var todayMS = today.getTime();
		var periodMS = parseInt(searchstring.slice(0,2),10)*24*60*60*1000;
		var showImagesSinceMS = (todayMS - periodMS);
		var showImagesSince = new Date(showImagesSinceMS);
		var showImagesSinceMonth = ("0" + (showImagesSince.getMonth() + 1));
		var showImagesSinceDay = ("0" + showImagesSince.getDate());
		searchstring = showImagesSince.getFullYear() + "" + showImagesSinceMonth.substr((showImagesSinceMonth.length - 2),2) + "" + showImagesSinceDay.substr((showImagesSinceDay.length - 2),2);
	}
	// Monat zeigen
	else if (parseInt(searchstring,10) >= 200502)
	{
		var searchstringInt = parseInt(searchstring,10);
		var startValue = searchstringInt * 100;
		var stopValue = (searchstringInt + 1) * 100;
	}
	// Jahr zeigen
	else if (parseInt(searchstring,10) >= 2005)
	{
		var searchstringInt = parseInt(searchstring,10);
		var startValue = searchstringInt * 10000;
		var stopValue = (searchstringInt + 1) * 10000;
	}
	else
	{
	    while (objectTemp.parentNode.parentNode.getAttribute("id") != "menu")
	    {
			searchstringTemp = objectTemp.parentNode.parentNode.getAttribute("alt");
			if (searchstringTemp != "") searchstring = searchstringTemp + "*" + searchstring;
	        objectTemp = objectTemp.parentNode.parentNode;
	        i++;
	    }
	}
	
	var imagebar = document.getElementById("topBar");
	var arrayIndex;
	arrayIndexArray = new Array();

    while (imagebar.hasChildNodes()) imagebar.removeChild(imagebar.lastChild);

	for (i=0; i<imageArray.length; i++)
	{
		arrayIndex = i;
		if (today)
		{
			if (parseInt(imageArray[i][3],10) < searchstring) continue;
		}
		else if (searchstringInt)
		{
			arrayIndex = (i * -1) + imageArray.length - 1;//Beginnt am Anfang des Monats
			arrayIndex = i;//Beginnt am Ende des Monats
			if (parseInt(imageArray[arrayIndex][3],10) < startValue) continue;
			else if (parseInt(imageArray[arrayIndex][3],10) > stopValue) continue;
		}
		else if (imageArray[i][2].indexOf(searchstring) == -1) continue;

		arrayIndexArray[arrayIndexArray.length] = arrayIndex;
	}
	
	if (document.all) setTimeout('addLinkElements(arrayIndexArray);',50);
	else addLinkElements(arrayIndexArray);

    imageNavigation(0);
    displayTopbar = 0;
    switchTopbar();
}

var arrayIndexArray;

function addLinkElements()
{
	var imagebar = document.getElementById("topBar");
	var linkElement, imageElement;
	var indexTemp = arrayIndexArray[0];
	try {
	linkElement = document.createElement("a");
	linkElement.setAttribute("href","javascript:showImage(imageArray[" + indexTemp + "]);");
	
	imageElement = document.createElement("img");
	imageElement.setAttribute("src","images/" + imageArray[indexTemp][0] + "TN.jpg");
	imageElement.setAttribute("title",imageArray[indexTemp][1]);
	
	linkElement.appendChild(imageElement);
	imagebar.appendChild(linkElement);
	} catch (e) { alert(indexTemp); }
	if (arrayIndexArray.length > 1)
	{
		arrayIndexArray.shift();
		if (document.all) setTimeout('addLinkElements(arrayIndexArray);',50);
		else addLinkElements(arrayIndexArray);
	}
}

function showImage(arrayElement)
{
	var iframeFullsizeImage = document.getElementById("fullsizeImage");
    iframeFullsizeImage.setAttribute("src","image.html?imagename=" + arrayElement[0]);
    var infoboxText = "";
    infoboxText += arrayElement[1];
    infoboxText += " *** ";
    infoboxText += arrayElement[3].slice(6,8) + "." + arrayElement[3].slice(4,6) + "." + arrayElement[3].slice(0,4);
    infoboxText += " *** ";
    infoboxText += arrayElement[4];
	
	var infoboxElement = document.getElementById("infobox");
    while (infoboxElement.hasChildNodes()) infoboxElement.removeChild(infoboxElement.lastChild);
	infoboxElement.appendChild(document.createTextNode(infoboxText));
}

function imageNavigation(direction)
{
	var imagebar = document.getElementById("topBar");
	var currentImage = document.getElementById("fullsizeImage").getAttribute("src").split("=")[1];
	var newHref, newArrayIndex, nextChildNodeIndex;
	
	for (var i=0; i<imagebar.childNodes.length; i++)
	{
		if (imagebar.childNodes[i].childNodes[0].getAttribute("src").indexOf(currentImage) != -1 || i == (imagebar.childNodes.length - 1))
		{
			if (imagebar.childNodes[i].childNodes[0].getAttribute("src").indexOf(currentImage) == -1 && i == (imagebar.childNodes.length - 1))
				i++;
			
			if ((i + direction) < 0) nextChildNodeIndex = imagebar.childNodes.length - 1;
			else if ((i + direction) >= imagebar.childNodes.length) nextChildNodeIndex = 0;
			else nextChildNodeIndex = (i + direction);
			
			newHref = imagebar.childNodes[nextChildNodeIndex].getAttribute("href");
			newArrayIndex = newHref.split("[")[1].split("]")[0];
			showImage(imageArray[newArrayIndex]);
			break;
			return;
		}
	}
}

var timeoutSlideshow = 0;
function startSlideshow(action)
{
    var slideshowButtonObject = document.getElementById("slideshowButton");
    var delay = slideshowButtonObject.getElementsByTagName("input")[0].value * 1000;
    if (action == 0)
    {
        clearTimeout(timeoutSlideshow);
        slideshowButtonObject.getElementsByTagName("a")[0].style.visibility = "visible";
        slideshowButtonObject.getElementsByTagName("a")[1].style.visibility = "hidden";
        displayTopbar = 0;
        switchTopbar();
    }
    else
    {
		if (action == 1) imageNavigation(1);
        timeoutSlideshow = setTimeout('imageNavigation(1);startSlideshow();',delay);
        slideshowButtonObject.getElementsByTagName("a")[0].style.visibility = "hidden";
        slideshowButtonObject.getElementsByTagName("a")[1].style.visibility = "visible";
        displayTopbar = 1;
        switchTopbar();
    }
}

function showRandomImage()
{
	document.getElementById("topBar").style.display = "none";
	displayTopbar = 0;
	var randomArrayIndex = parseInt(Math.random() * imageArray.length, 10);
	showImage(imageArray[randomArrayIndex]);
}

function searchGallery()
{
	var inputArray = document.getElementsByTagName("input");
	var searchstring = inputArray[inputArray.length - 1].value.toLowerCase();
	if (searchstring.length < 3) return;
	
	var imagebar = document.getElementById("topBar");
	var arrayIndex;
	arrayIndexArray = new Array();

    while (imagebar.hasChildNodes()) imagebar.removeChild(imagebar.lastChild);

	for (i=0; i<imageArray.length; i++)
	{
		arrayIndex = i;
		if (imageArray[i].join(" ").toLowerCase().indexOf(searchstring) == -1) continue;

		arrayIndexArray[arrayIndexArray.length] = arrayIndex;
	}
	
	if (arrayIndexArray.length == 0) return;
	
	if (document.all) setTimeout('addLinkElements(arrayIndexArray);',50);
	else addLinkElements(arrayIndexArray);

    imageNavigation(0);
    displayTopbar = 0;
    switchTopbar();
}
