var iIBImageArr = new Array();
var galLink = "#";
var iIBActID = null;
var iIBWindowMinHeight = 550;
var iIBWindowMinWidth = 550;

function iIB_PreloadImages()
{
	for(var i = 0; i < iIBImageArr.length; i++)
	{
		iIBImageArr[i].image = new Image();
		iIBImageArr[i].image.src = iIBImageArr[i].url;
	}
}

function iIB_Show_From_ImageArr(id)
{
	iIBActID = id;
	iIB_Show(iIBImageArr[id].text, iIBImageArr[id].url, iIBImageArr[id].bez, id);
}

function iIB_Show(caption, url, head, id) 
{
	var orginalUrl = url;
	var iIBWindow = document.getElementById("iIB_window");
	var iIBOverlay = document.getElementById("iIB_overlay");
	if (typeof document.body.style.maxHeight === "undefined") //if IE 6
	{
		document.body.style.cssText = "height: 100%; width: 100%;";
		if (document.getElementById("iIB_HideSelect") === null) 
		{
			var iframe = document.createElement("iframe");
			iframe.id = "iIB_HideSelect";
			document.body.appendChild(iframe);
			
			iIBOverlay = document.createElement("div");
			iIBOverlay.id = "iIB_overlay";
			iIB_addEventHandler(iIBOverlay, "click", iIB_Remove);
			document.body.appendChild(iIBOverlay);
			
			iIBWindow = document.createElement("div");
			iIBWindow.id = "iIB_window";
			document.body.appendChild(iIBWindow);
		}
	}
	else //all others
	{
		if(document.getElementById("iIB_overlay") === null)
		{
			iIBOverlay = document.createElement("div");
			iIBOverlay.id = "iIB_overlay";
			iIB_addEventHandler(iIBOverlay, "click", iIB_Remove);
			document.body.appendChild(iIBOverlay);
			
			iIBWindow = document.createElement("div");
			iIBWindow.id = "iIB_window";
			document.body.appendChild(iIBWindow);
		}
	}
	
	if(iIB_detectMacXFF())
	{
		iIBOverlay.className = "iIB_overlayMacFFBGHack";
	}
	else
	{
		iIBOverlay.className = "iIB_overlayBG";
	}
	
	if(caption === null)
	{
		caption = "";
	}
	
	var baseURL = (url.indexOf("?") !== -1 ? url.substr(0, url.indexOf("?")) : url);
	var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
	var urlType = baseURL.toLowerCase().match(urlString);

	if(urlType != '.jpg' && urlType != '.jpeg' && urlType != '.png' && urlType != '.gif' &&	 urlType != '.bmp')
	{
		url = "/images/download.gif";
	}
	
	var iIB_PrevHTML = "";
	var iIB_PrevHTMLLinked = false;
	var iIB_NextHTML = "";
	var iIB_NextHTMLLinked = false;
	var iIB_imageCount = "";
	var iIB_FoundURL = false;
	if(iIBImageArr.length > 0)
	{
		for (iIB_Counter = 0; ((iIB_Counter < iIBImageArr.length) && (iIB_NextHTML == "")); iIB_Counter++) 
		{
			var urlTypeTemp = iIBImageArr[iIB_Counter].url.toLowerCase().match(urlString);
			if (iIBImageArr[iIB_Counter].url != url)
			{
				if (iIB_FoundURL)
				{
					iIB_NextHTML = "<span id='iIB_next'>&nbsp;&nbsp;<a href='" + galLink + "'> &gt; </a></span>";
					iIB_NextHTMLLinked = true;
				}
				else
				{
					iIB_PrevHTML = "<span id='iIB_prev'>&nbsp;&nbsp;<a href='" + galLink + "'> &lt; </a></span>";
					iIB_PrevHTMLLinked = true;
				}
			}
			else
			{
				iIB_FoundURL = true;
				iIB_imageCount = "Bild " + (iIB_Counter + 1) + " von " + (iIBImageArr.length);											
				
				if(iIB_Counter == (iIBImageArr.length - 1))
				{
					iIB_NextHTML = "&nbsp;&nbsp; &gt; ";
				}
				if(iIB_Counter == 0)
				{
					iIB_PrevHTML = "&nbsp;&nbsp; &lt; ";
				}
			}
		}
		
		iIBImage = iIBImageArr[id].image;
	}
	else
	{
		iIBImage = new Image();
		iIBImage.src = url;
	}

	var pagesize = iIB_getPageSize();
	var x = pagesize[0] - 150;
	var y = pagesize[1] - 150;
	var imageWidth = iIBImage.width;
	var imageHeight = iIBImage.height;
	if (imageWidth > x)
	{
		imageHeight = imageHeight * (x / imageWidth); 
		imageWidth = x; 
		if (imageHeight > y)
		{
			imageWidth = imageWidth * (y / imageHeight); 
			imageHeight = y; 
		}
	} 
	else if (imageHeight > y) 
	{
		imageWidth = imageWidth * (y / imageHeight); 
		imageHeight = y; 
		if (imageWidth > x)
		{
			imageHeight = imageHeight * (x / imageWidth); 
			imageWidth = x;
		}
	}
	// End Resizing
	
	iIB_WIDTH = ((imageWidth + 30) > iIBWindowMinWidth ? (imageWidth + 30) : iIBWindowMinWidth);
	
	iIBWindow.innerHTML = (head != null ? "<div id='iIB_head'>" + head + "</div>" : "") + 
		"<a href='" + orginalUrl + "' target='_blank'>" + 
		"<img id='iIB_Image' src='/images/loading.gif' align='center' width='" + imageWidth + "' height='" + imageHeight + "' alt='" + caption + "'/>" + 
		"</a>" + 
		"<div id='iIB_secondLine'>" + iIB_imageCount + "</div>" + 
		"<div id='iIB_closeWindow'>" + iIB_PrevHTML + iIB_NextHTML + " &nbsp; <a href='" + galLink + "' id='iIB_closeWindowButton' title='schlie&szlig;en'> schlie&szlig;en</a></div>" + 
		"<div id='iIB_caption' style='width: " + (iIB_WIDTH/2 > 300 ? (iIB_WIDTH / 2 - 10) : (240)) + "px;'>" + caption + "</div>" + 
		"<br clear='all'/>";
	
	
	
	var heightAdd = 75;
	
	var captionDiv = document.getElementById("iIB_caption");
	if(captionDiv.clientHeight > 30)
	{
		heightAdd = 55 + captionDiv.clientHeight;
	}
	
	iIB_HEIGHT = ((imageHeight + heightAdd) > iIBWindowMinHeight ? (imageHeight + heightAdd) : iIBWindowMinHeight);
	
	
	
	document.getElementById("iIB_Image").src = iIBImage.src;
	
	var iIBCloseButton = document.getElementById("iIB_closeWindowButton");
	iIB_addEventHandler(iIBCloseButton, "click", iIB_Remove);
	
	if (iIB_PrevHTMLLinked == true)
	{
		var iIBPrev = document.getElementById("iIB_prev");
		iIB_addEventHandler(iIBPrev, "click", iIBGoPrev);
	}
	
	if (iIB_NextHTMLLinked == true)
	{
		var iIBNext = document.getElementById("iIB_next");
		iIB_addEventHandler(iIBNext, "click", iIBGoNext);
	}
	
	iIB_Position(iIBWindow, iIB_WIDTH, iIB_HEIGHT);
}

function iIB_Position(iIBWindow, width, height)
{
	iIBWindow.style.cssText = "width: " + width + "px; height: " + height + "px; margin: -" + parseInt((height / 2), 10) + "px " + parseInt((width / 2), 10) + "px 0px -" + parseInt((width / 2), 10) + "px;";
}

function iIBGoPrev()
{
	iIB_Remove();
	iIB_Show_From_ImageArr(iIBActID-1);
	return false;	
}

function iIBGoNext()
{
	iIB_Remove();
	iIB_Show_From_ImageArr(iIBActID+1);
	return false;	
}

function iIB_Remove() 
{
	var iIBPrev = document.getElementById("iIB_prev");
	var iIBNext = document.getElementById("iIB_next");
	var iIBOverlay = document.getElementById("iIB_overlay");
	var iIBWindow = document.getElementById("iIB_window");
	var iIBHideSelect = document.getElementById("iIB_HideSelect");
	var iIBCloseButton = document.getElementById("iIB_closeWindowButton");
	
	if (iIBPrev != null)
	{
		iIB_removeEventHandler(iIBPrev, "click", iIBGoPrev);
	}
	if (iIBNext != null)
	{
		iIB_removeEventHandler(iIBNext, "click", iIBGoNext);
	}
	if (iIBCloseButton != null)
	{
		iIB_removeEventHandler(iIBCloseButton, "click", iIB_Remove);
	}
	if (iIBOverlay != null)
	{
		iIB_removeEventHandler(iIBOverlay, "click", iIB_Remove);
		iIBOverlay.parentNode.removeChild(iIBOverlay);
	}
	if (iIBWindow != null)
	{
		iIBWindow.parentNode.removeChild(iIBWindow);
	}
	if (iIBHideSelect != null)
	{
		iIBHideSelect.parentNode.removeChild(iIBHideSelect);
	}
	
	return false;
}

function iIB_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}

function iIB_detectMacXFF()
{
	var userAgent = navigator.userAgent.toLowerCase();
	if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1)
	{
		return true;
	}
}

function iIB_addEventHandler(elem, eventName, handler, useCapture)
{
	var isExplorer = ((navigator.userAgent.indexOf("MSIE 6") > -1) ||(navigator.userAgent.indexOf("MSIE 7") > -1) ||(navigator.userAgent.indexOf("MSIE 8") > -1)) && 
		(navigator.userAgent.indexOf("Opera") == -1) && (navigator.platform.indexOf("Win") == 0);
	var handlerRetVal = null;
	if (typeof useCapture === "undefined")
	{
		useCapture = false;
	}
	if (isExplorer)
	{
		handlerRetVal = elem.attachEvent("on"+eventName, handler);
	}
	else
	{
		handlerRetVal = elem.addEventListener(eventName, handler, useCapture);
	}
	return handlerRetVal;
}

function iIB_removeEventHandler(elem, eventName, handler, useCapture)
{
	var isExplorer = ((navigator.userAgent.indexOf("MSIE 6") > -1) ||(navigator.userAgent.indexOf("MSIE 7") > -1) ||(navigator.userAgent.indexOf("MSIE 8") > -1)) && 
		(navigator.userAgent.indexOf("Opera") == -1) && (navigator.platform.indexOf("Win") == 0);
	if (typeof useCapture === "undefined")
	{
		useCapture = false;
	}
	if (isExplorer)
	{
		elem.detachEvent("on"+eventName, handler);
	}
	else
	{
		elem.removeEventListener(eventName, handler, useCapture);
	}
}
