/*--------------- Browser ---------------*/
function browsercheck(){
	//Bekannte Browser
	var b=new Array();
	b[0]=new Array("Chrome","Chrome");
	b[1]=new Array("OmniWeb","OmniWeb","OmniWeb/");
	b[2]=new Array("Apple","Safari","Version/");
	b[3]=new Array("Opera","Opera","Opera/");
	b[4]=new Array("iCab","iCab");
	b[5]=new Array("KDE","Konqueror");
	b[6]=new Array("Firefox","Firefox","Firefox/");
	b[7]=new Array("Camino","Camino");
	b[8]=new Array("Netscape","Netscape");
	b[9]=new Array("MSIE","IE","MSIE ");
	b[10]=new Array("Gecko","Mozilla","rv");
	b[11]=new Array("Mozilla","Netscape","Mozilla");

	//Browser/Version checken
	var browser="Unbekannter Browser";
	var version="Unbekannte Version";
	var bc;
	for(var i=0;i<b.length;i++){
    	bc=navigator.userAgent;
	    if(bc.indexOf(b[i][0])!==-1){
	    	browser=b[i][1];
    		if(bc.indexOf(b[i][2])!==-1){
	    	 	version=bc.substr(bc.indexOf(b[i][2])+b[i][2].length,1);
	    	}
	    	break;
	    }
	}
	
	//OS checken
	var os="Unbekanntes OS";
	var oses=new Array("Mac","Win","Linux");
	var osna=new Array("Mac OS","Windows","Linux");
	for(i=0;i<oses.length;i++){
		if(bc.indexOf(oses[i])!==-1){
			os=osna[i];
			break;
		}
	}
		
	//Rückgabe
	var gback=new Array(browser,version,os);
	return gback;
}

var browserinfo=browsercheck();

/*--------------- Elemente nach Klasse suchen ---------------*/
function getElementsByClassName(klasse){
	var alle = document.getElementsByTagName('body')[0].getElementsByTagName('*');
	var elemente = new Array();
	for(var i=0;i<alle.length;i++){
		var klassen=alle[i].className.split(" ");
		for(var j=0;j<klassen.length;j++){
			if(klassen[j]==klasse){
				elemente[elemente.length]=alle[i];
				break;
			}
		}
	}
	return elemente;
}

function PBLB_hide(el){
	el.style.display="none";
}

function PBLB_show(el){
	el.style.display="block";
}

function PBLB_echo(el,text){
	el.innerHTML=text;
}

function PBLB_getpics(){
	var imgs=getElementsByClassName('PBLB_pic');
	var pics=new Array();
	for(i=0;i<imgs.length;i++){
		if(imgs[i].style.display=="block"){
			pics[pics.length++]=imgs[i];
		}
	}
	return pics;
}

function PBLB_getnr(img){
	var imgs=getElementsByClassName('PBLB_pic');
	for(i=0;i<imgs.length;i++){
		if(img==imgs[i].href){
			break;
		}
	}
	return i;
}

function PBLB_setclick(el){
	el.onclick=function(){
		PBLB_showpic(this);	
		return false;
	}
}

function PBLB_activate(){
	var imgs=getElementsByClassName('PBLB_pic');
	var qu=parseInt(document.getElementById('PBLB_qu').innerHTML);
	var wihe=parseInt(document.getElementById('PBLB_wihe').innerHTML);
	var mw=parseInt(document.getElementById('PBLB_mw').innerHTML)/2;
	var pic= new Array();
	for(i=0;i<imgs.length;i++){
		pic[i]=new Image();
		pic[i].src=imgs[i].rel;
		
		if(browserinfo[0]+browserinfo[1]=="IE6"){
			PBLB_echo(imgs[i],'<img src="'+pic[i].src+'" style="position:absolute; margin-top:-6px; margin-left:-6px;" />');			
			PBLB_setclick(imgs[i]);
		}
	}
	
	if(browserinfo[0]+browserinfo[1]!=="IE6"){
		preloader=window.setInterval("preload()",100);
	}else{
		var close=document.getElementById('PBLB_close').getElementsByTagName('img')[0];
		close.src="typo3conf/ext/pbgal/template/graphics/close.gif";
	}
	
	this.preload=function(){
		var com=0;
		for(i=0;i<imgs.length;i++){
			if(pic[i].complete==true){
				com++;
			}
		}
		
		if(com==pic.length){
			for(i=0;i<imgs.length;i++){
				if(pic[i].complete==true){
					imgs[i].style.backgroundImage="url("+pic[i].src+")";
					PBLB_setclick(imgs[i]);
				}
			}
			window.clearInterval(preloader);
		}
	}
	
	var next=document.getElementById('PBLB_next');
	var prev=document.getElementById('PBLB_prev');
	prev.style.marginLeft=(0-mw-70)+"px";
	next.style.marginLeft=(mw+30)+"px";
	prev.style.marginTop=(0-20)+"px";
	next.style.marginTop=(0-20)+"px";

	if(imgs.length>parseInt(document.getElementById('PBLB_pp').innerHTML)){
		PBLB_show(document.getElementById('PBLB_galnext'));
	}
}

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

function PBLB_galnext(){
	var imgs=getElementsByClassName('PBLB_pic');
	var x=0;
	var start=0;
	var ende;
	var pp=parseInt(document.getElementById('PBLB_pp').innerHTML);
	for(i=0;i<imgs.length;i++){
		if(imgs[i].style.display=="block"){
			PBLB_hide(imgs[i]);
			if(start==0){start=i+pp; ende=start+pp;}
		}
	}
	
	if(start>0){
		if(ende>imgs.length){
			ende=imgs.length;
		}
		for(x=start;x<ende;x++){
			PBLB_show(imgs[x]);
			PBLB_show(document.getElementById('PBLB_galprev'));
			if(start+1+pp>=imgs.length){
				PBLB_hide(document.getElementById('PBLB_galnext'));
			}
		}
	}
}

function PBLB_galprev(){
	var imgs=getElementsByClassName('PBLB_pic');
	var x=0;
	var start=0;
	var ende,seite;
	var pp=parseInt(document.getElementById('PBLB_pp').innerHTML);
	
	for(i=imgs.length-1;i>=0;i--){
		if(imgs[i].style.display=="block"){
			PBLB_hide(imgs[i]);
			if(start==0){
				seite=Math.ceil((i+1)/pp)-1;
				start=seite*pp-1;
				ende=start-pp+1; 
			}			
		}
	}
	
	if(ende<0){
		ende=0;
	}
	
	if(start>0){
		for(x=start;x>=ende;x--){
			PBLB_show(imgs[x]);
			PBLB_show(document.getElementById('PBLB_galnext'));
			if(ende<=0){
				PBLB_hide(document.getElementById('PBLB_galprev'));
			}
		}
	}
	
}

function PBLB_changesite(nr,newnr){
	var imgs=getElementsByClassName('PBLB_pic');
	var pp=parseInt(document.getElementById('PBLB_pp').innerHTML);
	
	for(i=imgs.length-1;i>=0;i--){
		if(imgs[i].style.display=="block"){
				start=i+1;
		}
	}
	var p=Math.ceil((nr)/pp)
	var page=Math.ceil(newnr/pp);

	if(p>page){
		PBLB_galprev();
	}else if(p<page){
		PBLB_galnext();
	}
}


function PBLB_closepic(){
	var ol=document.getElementById('PBLB_overlay');
	var lightbox=document.getElementById('PBLB_lightbox');
	var indi=document.getElementById('PBLB_indicator');
	PBLB_hide(ol);
	PBLB_hide(lightbox);
	PBLB_hide(indi);
	
	if(browserinfo[0]+browserinfo[1]=="IE6"){
		document.body.style.overflow="auto";
		document.getElementById('PBLB_overlay').style.height="100%";
	}	
}

function PBLB_showpic(el){
	var ol=document.getElementById('PBLB_overlay');
	var img=document.getElementById('PBLB_img');
	var descr=document.getElementById('PBLB_desc');
	var lightbox=document.getElementById('PBLB_lightbox');
	var indi=document.getElementById('PBLB_indicator');
	var tab=document.getElementById('PBLB_desc');
	var nr=PBLB_getnr(el.href);
	var anz=getElementsByClassName('PBLB_pic').length;
	var ak=nr+1;
		
	PBLB_echo(img,'<img src="'+el.href+'"  />');
	PBLB_echo(descr,el.title+"<br /> (Bild "+ak+" / "+anz+")");
	PBLB_show(ol);
	var pic=new Image();
	pic.src=el.href;
	PBLB_show(indi);
	PBLB_hide(lightbox);
	tab.style.width=0+"px";
	
	preloader=window.setInterval("preload()",100);
	
	this.preload=function(){
		if(pic.complete==true){
			PBLB_show(lightbox);
			tab.style.width=img.offsetWidth+"px";
			lightbox.style.marginLeft=0-(lightbox.offsetWidth/2)+"px";
			lightbox.style.marginTop=0-(lightbox.offsetHeight/2)+"px";
			
			PBLB_nextprev(nr);
			window.clearInterval(preloader);
		}
	}
	
	if(browserinfo[0]+browserinfo[1]=="IE6"){
		ol.style.height="5000px";
	}
}

function PBLB_nextprev(nr){
	var prev=document.getElementById('PBLB_prev');
	var next=document.getElementById('PBLB_next');
	var imgs=getElementsByClassName('PBLB_pic');
	if(nr>0)
		PBLB_show(prev);
	else
		PBLB_hide(prev);
			
	if(nr+1<imgs.length)
		PBLB_show(next);
	else
		PBLB_hide(next);
}

function PBLB_nextpic(){
	var img=document.getElementById('PBLB_img').getElementsByTagName('img')[0].src;
	var imgs=getElementsByClassName('PBLB_pic');
	for(i=0;i<imgs.length;i++){
		if(img==imgs[i].href){
			PBLB_showpic(imgs[i+1],i+1);
			break;
		}	
	}
	PBLB_changesite(i,i+1);
}

function PBLB_prevpic(){
	var img=document.getElementById('PBLB_img').getElementsByTagName('img')[0].src;
	var imgs=getElementsByClassName('PBLB_pic');
	for(i=0;i<imgs.length;i++){
		if(img==imgs[i].href){
			PBLB_showpic(imgs[i-1],i-1);
			break;
		}	
	}
	PBLB_changesite(i+2,i+1);
}
