/* LIGHTBOX */


var LIGHTBOX = {
	init:function() {
		var link = getElementsByAttrib( $.body(), "class", "LIGHTBOX" );
		for( var i=0; i < link.length; i++ ) {
			link[i].setAttribute( "href", link[i].getAttribute( "rel" ) );
		}
	},
	show:function( gallery, bildnummer ) {

		LIGHTBOX.close()

		/*--- referenzContainer, nötig wegen IE6 ---*/
		var refdimbox = $.id( "refdimbox" );

		/*--- gedimmter Hintergrund ---*/
		var dimbox = Node( $.body(), "div", "id==dimbox"," " );
		dimbox.node.style.height = $.body().offsetHeight+"px";
		setOpacity( dimbox.node , 60 );
		_addEventHandler( dimbox.node, "click", LIGHTBOX.close );


		var images = getElementsByAttrib( $.body(), "name", gallery );
		var image = images[bildnummer];

		/*--- the Container ---*/
		var wrap = Node( $.body(), "div", "id==lightbox" );



		/*--- INFO TOP Bildtitel, Close ---*/
		var info = Node( wrap, "dl", "class==top" );
		var dt = Node( info, "dt", image.getAttribute( "alt" ) );
		var dd = Node( info, "dd" );
		var download = Node( dd, "a", "href==javascript:LIGHTBOX.close()"  );
		var span = Node( download, "span", "schließen" );
 		//var text = Node( download, null, "_" );

		var br = Node( wrap, "br" );

		/*--- Bild ---*/
		var newimg = Node( wrap, "img", "class==bild", "src=="+image.getAttribute( "src" ), "name==lightboxbild"+bildnummer, "title==zum Schließen anklicken" );
		_addEventHandler( newimg.node, "click", LIGHTBOX.close );

		var br = Node( wrap, "br" );

		/*--- INFO BOTTEM ---*/
		var info = Node( wrap, "dl", "class==bottom" );
		var dt = Node( info, "dt", "Bild" );
		var dd = Node( info, "dd", (bildnummer+1)+" von "+images.length );

		/*--- DONWLOAD LINK ---*/
		var url = image.getAttribute( "longdesc" );
		var dd = Node( info, "dd" );
		var download = Node( dd, "a", "class==download", "href=="+url, "title=="+image.getAttribute( "alt" )+" herunterladen" );
		var span = Node( download, "span", "herunterladen" );
 		var text = Node( download, null, " " );

		/*--- NAVI , zurück, weiter ---*/
		if ( bildnummer > 0 ) {
			var dd = Node( info, "dd" );
			var navi = Node( dd, "a", "class==prevpic", "href==javascript:LIGHTBOX.show( \'"+gallery+"\',"+(bildnummer-1)+")", "title==vorheriges Bild" );
			var span = Node( navi, "span", "vorheriges Bild" );
 			var text = Node( navi, null, " " );
		}

		if ( (bildnummer+1) < images.length ) {
			var dd = Node( info, "dd" );
			var navi = Node( dd, "a", "class==nextpic", "href==javascript:LIGHTBOX.show( \'"+gallery+"\',"+(bildnummer+1)+")", "title==nächstes Bild"  );
			var span = Node( navi, "span", "nächsten Bild" );
 			var text = Node( navi, null, " " );
		}
		/*--- wegen IE, muss Zugriff über Image-Object erfolgen, Zugriff über Name bei IE nicht möglich, daher alle durchgehen */
		var index;
		for ( var i = 0; i < document.images.length; i++ ) {
			if ( document.images[i].name == ("lightboxbild"+bildnummer) ) {
				index = i;
			}
		}
		//return;

		var paddingwidth = 50;	// Mindestabstand links/rechts
		var paddingheight = 50;	// -"-"- oben/unten
		var lightbox = wrap.node;
		lightbox.style.display = "inline";
		lightbox.style.position = "absolute";	// muss hier erfolgen, sonst sind die ermittelbaren Pixelmaße nicht korrekt

		var imagewidth = document.images[index].width;
		var imageheight = document.images[index].height;

		var infowidth = lightbox.offsetWidth - imagewidth;
		var infoheight = lightbox.offsetHeight - imageheight;

		var maximagewidth = refdimbox.offsetWidth - infowidth - paddingwidth*2;
		var maximageheight = refdimbox.offsetHeight - infoheight - paddingheight*2;

		var faktorwidth = maximagewidth / imagewidth;
		var faktorheight = maximageheight / imageheight;
		var faktor = Math.min( faktorwidth, faktorheight );

		if (  faktor < 1 ) {
			newimg.node.style.width = parseInt( imagewidth * faktor)+"px";
			/*--- FireFox rendert die Höhe im gleichen Verhältnis mit, IE nicht: wenn sich Höhe nicht geändert hat, ebenfalls anpassen ---*/
			if ( document.images[index].height == imageheight ) {
				newimg.node.style.height = parseInt( document.images[index].height * faktor)+"px";
			}
		}
		var scrollTop = $.tagname("html")[0].scrollTop;
		lightbox.style.left = parseInt( (refdimbox.offsetWidth - lightbox.offsetWidth)/2)+"px";
		lightbox.style.top = ( scrollTop + parseInt( (refdimbox.offsetHeight - lightbox.offsetHeight)/2) )+"px";
	},
	close:function() {
		$.killme( "lightbox" );
		$.killme( "dimbox" );
	}
}