var path;

window.onload = function(){
	createElements();
}

function showFullSize(pfad){
	path = pfad;
	document.getElementById("ffdgBackground").style.visibility = "visible";
	resizeBackground();

	preloadLoader();
}

/**
/* erstellt alle Elemente (divs und imgs)
*/
function createElements(){
	//Background:
	var back = document.createElement("div");
	back.setAttribute('id', 'ffdgBackground');

	//LoaderBox
	var loaderBox = document.createElement("div");
	loaderBox.setAttribute('id', 'ffdgLoaderBox');
	var loaderImage = document.createElement("img");
	loaderImage.setAttribute('id', 'ffdgLoaderImage');
	loaderBox.appendChild(loaderImage);

	//FullImage
	var fullImage = document.createElement("img");
	fullImage.setAttribute('id', 'ffdgFullImage');
	fullImage.onclick = new Function("closeImage();");

	//Body hinzufügen
	document.body.appendChild(back);
	document.body.appendChild(loaderBox);
	document.body.appendChild(fullImage);
}

/**
/* laedt das gif für die lade anzeige (nicht fuer den scheiss IE)
*/
function preloadLoader(){
	var newImage = new Image();

	if(!isIE()){
		newImage.onload = function() {
			loadFullImage();
		}
	}else{
		setTimeout('loadFullImage()', 200);
	}

	newImage.src = "bilder/layout/loader.gif";
	document.getElementById("ffdgLoaderImage").src = newImage.src;
}

/**
/* laedt die volle Ansicht.
*/
function loadFullImage(){
	document.getElementById("ffdgLoaderImage").style.visibility = "visible";
	document.getElementById("ffdgLoaderBox").style.visibility = "visible";
	window.scrollTo(0,0);
	var imgName = path;
	var newImage = new Image();

	newImage.onload = function() {
		showImg(newImage);
	}

	newImage.src = imgName;
}

/**
/* zeigt die volle Ansicht.
*/
function showImg(newImage){
	document.getElementById("ffdgFullImage").src = newImage.src;
	resizeImage();
	document.getElementById("ffdgFullImage").style.visibility = "visible";
}

function closeImage(){
	document.getElementById("ffdgBackground").style.visibility = "hidden";
	document.getElementById("ffdgLoaderImage").style.visibility = "hidden";
	document.getElementById("ffdgFullImage").style.visibility = "hidden";
	document.getElementById("ffdgLoaderBox").style.visibility = "hidden";
}

/**
/* Prueft ob der Browser ein verschissner IE ist.
*/
function isIE(){
	if(navigator.appName.indexOf("Netscape") != -1){
		return false;
	}else if(navigator.appName.indexOf("Explorer") != -1){
		return true;
	}else{
		return false;
	}
}

/**
/* wird beim veraendern der groesse des Fensters aufgerufen.
*/
window.onresize = function(){

	resizeBackground();
	resizeImage();
}

/**
/* passt den Hintergrund an.
*/
function resizeBackground(){

	var pageSize = getPageSize();
	var pageHeight = pageSize[1];
	var pageWidth = pageSize[0];
	var backTop = document.getElementById("ffdgBackground");



	if(pageSize[1]>pageSize[3]){

		if(isIE()){
			pageWidth = pageWidth - 10;
		}else{
			pageWidth = "100%";
		}
	}
	backTop.style.width = pageWidth+"px";
	backTop.style.height = pageHeight+"px";
	//alert(pageSize[0]+", "+pageSize[1]+", "+pageSize[2]+", "+pageSize[3]);
}

/**
/* gibt die groesse des Fensters und des Inhaltes in einem Array zurueck.
*/
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

/**
/* verschiebt das Bild.
*/
function resizeImage(){
	var pageSize = getPageSize();
	var fullImage = document.getElementById("ffdgFullImage");
	var oldHeight = fullImage.height;

	var top = 100;

	fullImage.style.top = top+"px";
	fullImage.style.left = ((pageSize[2]/2)-(fullImage.width/2))-10+"px";
}
