function divsErzeugen() {
	var oBody = document.getElementsByTagName('BODY').item(0);
	var div = document.createElement('div');

   div.style.filter = "alpha(opacity=50); -moz-opacity:0.50; opacity:0.50;";
   div.setAttribute('id', "bopbhg");
   div.style.position = "absolute";
   div.style.left = 0;
   div.style.top = 0;
   div.style.width = 100;
   div.style.height = 100;
	div.style.display = "none";
  	div.style.backgroundColor = "#000000";
	oBody.appendChild(div);
	document.getElementById("bopbhg").onclick = function() {bopbHide(); return false;};

	var div = document.createElement('div');
   div.setAttribute('id', "bopb");
   div.style.position = "absolute";
   div.style.left = 0;
   div.style.top = 0;
   div.style.width = 150;
   div.style.height = 150;
	div.style.borderColor = "#000000";
	div.style.borderWidth = "1";

	div.style.borderStyle = "solid";
	div.style.display = "none"; 
    div.innerHTML = "<img onClick=\"bopbHide(); return false;\" src=\"gfx/laden.gif\" border='0' id=\"bopbbild\"></a>";
    div.innerHTML += "<br><a href='' target='_blank' id=\"bopbvollbild\"><img src='gfx/hoch.gif' alt='Vollbild' border='0' align='middle'></a><a href=\"javascript:bopbHide();\"><img border='0' src='gfx/fehler.gif' alt='Schließen' align='middle'></a>";

  	div.style.backgroundColor = "#eeeeee";
	oBody.appendChild(div);
}

function bopbInit() {
	// Alle Link-Elemente ("<a href=...>") raussuchen
	var linkElemente = document.getElementsByTagName("a");
	
	// Alle Link-Elemente pruefen
	for (var i=0;i<linkElemente.length;i++){
		// Handelt es sich um einen Link auf ein Foto?

		if (linkElemente[i].getAttribute("href") && linkElemente[i].getAttribute("rel") == "bopb") {
			// onclick-Methode setzen, die spaeter das DIV mit dem Foto anzeigt.
			linkElemente[i].onclick = function() {
				bopbShow(this);
				return false;
			};
		}

	}
	divsErzeugen();
	
	// PNG oder Transparenter Hintergrund je nach Browser
	var name = navigator.userAgent.toLowerCase();
	var divBopbHg = document.getElementById('bopbhg');

	if (name.indexOf("msie") ==-1) {
		divBopbHg.style.backgroundImage = "url(gfx/hg.png)";
		divBopbHg.style.backgroundColor = "";
	}
}


// Vorhandene Onload-Methode wird nicht ueberschrieben
function addOnload(funktion) {
	var altefunktion = window.onload;

	if (typeof window.onload != 'function') {
    	window.onload = funktion;
	}
	else
	{
		window.onload = function(){
			altefunktion();
			funktion();
		}
	}
}

if (document.getElementsByTagName) addOnload(bopbInit);

// Bild anzeigen, automatische Verkleinerung auf Bildschirmgroesse
function bopbShow(src) {
	var sichtbar = getSichtbar();

	var seite = getSeite();

	var xpos = getX();
	var ypos = getY();
	if (seite[0] < sichtbar[0]) seite[0] = sichtbar[0];
	if (seite[1] < sichtbar[1]) seite[1] = sichtbar[1];
	
	var divBopbBild = document.getElementById('bopbbild');
	divBopbBild.src = "gfx/laden.gif";
	divBopbBild.width = 33;
	divBopbBild.height = 33;

	var divBopb = document.getElementById('bopb');
	divBopb.style.width = 33;
	divBopb.style.height = 50;

	var linkBopbvollbild = document.getElementById('bopbvollbild');
	bopbvollbild .href = src.href;

	var divBopbHg = document.getElementById('bopbhg');
	divBopbHg.style.width = seite[0];
	divBopbHg.style.height = seite[1];
	divBopbHg.style.display = "block";

	var tempBopbBild = new Image();

	var oben = -20 + ypos + ((sichtbar[1] - divBopbBild.height) / 2);

	var links = xpos + ((sichtbar[0] - divBopbBild.width) / 2);

	divBopb.style.top = (oben < 0) ? "0px" : oben + "px";
	divBopb.style.left = (links < 0) ? "0px" : links + "px";
	divBopb.style.display = "block";
			
	tempBopbBild.onload = function(){

		divBopbBild.src = src.href;

		vergleich = (tempBopbBild.width/tempBopbBild.height);

		var bildbreite = tempBopbBild.width;
		var bildhoehe = tempBopbBild.height;

		if (sichtbar[1] < bildhoehe) {
			bildhoehe = sichtbar[1] - 50;
			bildbreite = bildhoehe * vergleich;
		}

		if (sichtbar[0] < bildbreite) {
			bildbreite  = sichtbar[0];
			bildhoehe = bildbreite / vergleich;
		}
		
		//bildbreite = Math.round(bildbreite);
	//	bildhoehe = Math.round(bildhoehe);

		divBopbBild.width = bildbreite;
		divBopbBild.height = bildhoehe;

		divBopb.style.width = bildbreite+2;
		divBopb.style.height = bildhoehe+20;

		var oben = -20 + ypos + ((sichtbar[1] - divBopbBild.height) / 2);
		var links = xpos + ((sichtbar[0] - divBopbBild.width) / 2);
		
		divBopb.style.top = (oben < 0) ? "0px" : oben + "px";
		divBopb.style.left = (links < 0) ? "0px" : links + "px";
	}
	tempBopbBild.src = src.href;	
	return false;
}


// Versteckt Hintergrund und Foto
function bopbHide() {
	var divBopb = document.getElementById('bopb');
	var divBopbHg = document.getElementById('bopbhg');

	divBopb.style.display = "none";
	divBopbHg.style.display = "none";
}


// X-Scrollposition
function getX() {
	var xpos;
	if (document.body) {
		xpos = document.body.scrollLeft;
	}
	else if (self.pageXOffset) {
		xpos = self.pageXOffset;
	}
	else if (document.documentElement.scrollLeft) {
		xpos = document.documentElement.scrollLeft;
	}

	return xpos;
}

// Y-Scrollposition
function getY() {
	var ypos;
	if (document.body) {
		ypos = document.body.scrollTop;
	}
	else if (self.pageYOffset) {
		ypos = self.pageYOffset;
	}
	else if (document.documentElement.scrollTop) {
		ypos = document.documentElement.scrollTop;
	}

	return ypos;
}

// Seitenbreite und -hoehe
function getSichtbar() {
	var breite = 0;
	var hoehe = 0;

	if (self.innerHeight) {
		breite = self.innerWidth;
		hoehe = self.innerHeight;
	}
	else if (document.documentElement.clientWidth) {
		breite = document.documentElement.clientWidth;
		hoehe = document.documentElement.clientHeight;
	}
	else if (document.body.clientWidth) {
		breite = document.body.clientWidth;
		hoehe = document.body.clientHeight;
	}
	
	return new Array(breite,hoehe);
}


// Seitenbreite und -hoehe

function getSeite() {
	var breite = 0;
	var hoehe = 0;

	if (window.scrollMaxY) {	
		breite = document.body.scrollWidth + window.scrollMaxX;
		hoehe = window.innerHeight + window.scrollMaxY;
	}
	else
	{
		breite = document.body.offsetWidth+document.body.scrollWidth;
		hoehe = document.body.scrollHeight;
	}

	return new Array(breite,hoehe);
}

