/*--------------- 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,startelement){
	if(!isset(startelement))
		alle=document.getElementsByTagName('body')[0].getElementsByTagName('*');
	else
		alle=startelement.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 isset(){  
    var a=arguments, l=a.length, i=0;
        if (l===0) {
        throw new Error('Empty isset'); 
    }
    while (i!==l) {        
    	if (typeof(a[i])=='undefined' || a[i]===null) { 
            return false; 
        } else { 
            i++; 
        }    }
    return true;
}

function str_replace(set, to, str){
	if(str.indexOf(set)!=-1){
		sp=str.split(set);
		newstr=sp[0];
		for(strr=1;strr<sp.length;strr++)
			newstr+=to+sp[strr];
		return newstr;
	}
	return str;
}

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_getnrcl(img){
	var imgs=getElementsByClassName('PBLB_clpic');
	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_mklb(){
	var base=document.getElementsByTagName('base');
	var baseurl='';
	for(i=0;i<base.length;i++){
		if(base[i].href!='undefined' && base[i].href.substr(0,7)=="http://"){
			baseurl=base[i].href;
		}
	}
	lb=document.createElement('div');
	lb.id="PBLB_lightbox";
	lb.style.display="none";	
	lb.innerHTML='<a href="javascript:PBLB_closepic();" id="PBLB_close"><img src="'+baseurl+'typo3conf/ext/pbgal/template/graphics/close.png" alt="Schließen" width="30" height="30"/></a><div id="PBLB_next" onclick="PBLB_nextpic();"><img src="'+baseurl+'typo3conf/ext/pbgal/template/graphics/next.jpg" alt="Nächstes Bild" /></div><div id="PBLB_prev" onclick="PBLB_prevpic();"><img src="'+baseurl+'typo3conf/ext/pbgal/template/graphics/prev.jpg" alt="Vorheriges Bild" /></div><div id="PBLB_img"></div><div id="PBLB_desc"></div>';
	document.getElementsByTagName('body')[0].appendChild(lb);
	indi=document.createElement('div');
	indi.id="PBLB_indicator";
	indi.style.display="none";
	indi.innerHTML='<img src="'+baseurl+'typo3conf/ext/pbgal/template/graphics/indi.gif" alt="Bild wird geladen" />';
	document.getElementsByTagName('body')[0].appendChild(indi);
	ol=document.createElement('div');
	ol.id="PBLB_overlay";
	ol.style.display="none";
	ol.onclick=function(){PBLB_closepic();}
	document.getElementsByTagName('body')[0].appendChild(ol);
}

function PBLB_activate(){
	var imgs=getElementsByClassName('PBLB_pic');
	var pic= new Array();
	for(i=0;i<imgs.length;i++){
		pic[i]=new Image();
		/*
newsrc=imgs[i].href.split('/');
		gsrc="";
		for(j=0;j<newsrc.length;j++){
			if(j<newsrc.length-1)
				gsrc+=newsrc[j]+"/";
			else if(j==newsrc.length-1)
				gsrc+="__tn__"+newsrc[j];
		}
*/
		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);
		}
	}

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

function PBLB_clactivate(){
	li=document.getElementsByTagName('a');
	for(j=0;j<li.length;j++){
	    if(li[j].href.indexOf('tx_cms_showpic')!=-1){
	    	nh=li[j].href.split('&');
	    	for(k=0;k<nh.length;k++){
	    		if(nh[k].substr(0,4)=='file'){
	    			take='typo3conf/ext/pbgal/thumb.php?qu=80&wi='+PBLB_mw+'&he='+PBLB_mh+'&pic=../../../'+str_replace("uploads%2F","uploads/",nh[k].substr(5));
	    			li[j].target="_blank";
	    			li[j].href=take;
	    			li[j].className="PBLB_clpic";
	    			li[j].onclick=function(){PBLB_showpic(this); return false;};
	    			li[j].title=li[j].getElementsByTagName('img')[0].title;
	    			break;
	    		}
	    	}
	    }
	}
}

var wo=window.onload;
window.onload=function(){
	function wo2(){}
	if(wo!='undefined')
		eval("this.wo2="+wo+";");	
	wo2();
	PBLB_mklb();
	if(isset(document.getElementById('PBLB_gallery')))
		window.setTimeout("PBLB_activate()",10);
	window.setTimeout("PBLB_clactivate()",10);
}

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

function PBLB_pagenav(act){
	as=document.getElementById('PBLB_pages').getElementsByTagName('a');
	for(j=0;j<as.length;j++){
		if((j+1)==act){
			as[j].onclick=function(){return false;};
			as[j].className="PBLB_inact";
		}else{
			as[j].onclick=function(){};
			as[j].className="";
		}	
	}
}

function PBLB_galnext(){
	var imgs=getElementsByClassName('PBLB_pic');
	var x=0;
	var start=0;
	var ende;
	var pp=PBLB_pp;
	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;}
		}
	}
	
	PBLB_pagenav(start/pp+1);
	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'));
			}
		}
	}
	resize();
}

function PBLB_galprev(){
	var imgs=getElementsByClassName('PBLB_pic');
	var x=0;
	var start=0;
	var ende,seite;
	var pp=PBLB_pp;
	
	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;
	}
	
	PBLB_pagenav(ende/pp+1);
	
	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'));
			}
		}
	}
	resize();
}

function PBLB_changesite(nr,newnr){
	var imgs=getElementsByClassName('PBLB_pic');
	var pp=PBLB_pp;
	
	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 nextb=document.getElementById('PBLB_next');
	var prevb=document.getElementById('PBLB_prev');
	var pic=new Image();
	pic.src=el.href;
	if(el.className!="PBLB_clpic"){
		var nr=PBLB_getnr(el.href);
		var anz=getElementsByClassName('PBLB_pic').length;
	}else{
		var nr=PBLB_getnrcl(el.href);
		var anz=getElementsByClassName('PBLB_clpic').length;
	}
	
	var ak=nr+1;
	
	PBLB_echo(descr,el.title+"<br /> (Bild "+ak+" / "+anz+")");
	PBLB_show(ol);
	PBLB_show(indi);
	PBLB_hide(lightbox);
	tab.style.width=0+"px";
	
	preloader=window.setInterval("preload()",100);
	this.preload=function(){
		if(pic.complete==true){
			if(el.className!="PBLB_clpic"){
				PBLB_echo(img,'<img src="'+el.href+'" />');
			}else{
				if(pic.width>pic.height){
					if(pic.width>PBLB_mw){
						pic.height=parseInt(pic.height/(pic.width/PBLB_mw));
						pic.width=PBLB_mw;				
					}
				}else{
					if(pic.height>PBLB_mh){
						pic.width=parseInt(pic.width/(pic.height/PBLB_mh));
						pic.height=PBLB_mh;
					}
				}
				if(pic.width==pic.height){
					if(PBLB_mw>=PBLB_mh){
						pic.height=PBLB_mh;
						pic.width=PBLB_mh;
					}else{
						pic.height=PBLB_mw;
						pic.width=PBLB_mw;
					}
				}
			
				PBLB_echo(img,'<img src="'+el.href+'" width="'+pic.width+'" height="'+pic.height+'" class="PBLB_clpic2" />');
				
			}
			PBLB_show(lightbox);
			PBLB_hide(indi);
			tab.style.width=img.offsetWidth+"px";
			lightbox.style.marginLeft=0-(lightbox.offsetWidth/2)+"px";
			lightbox.style.marginTop=0-(lightbox.offsetHeight/2)+"px";
			if(PBLB_autonp==1){
				prevb.style.marginLeft=0-(lightbox.offsetWidth/2)-60+"px";
				nextb.style.marginLeft=(lightbox.offsetWidth/2)+20+"px";
			}
			PBLB_nextprev(nr,el);
			window.clearInterval(preloader);
		}
	}
	
	if(browserinfo[0]+browserinfo[1]=="IE6"){
		ol.style.height="5000px";
	}
}

function PBLB_nextprev(nr,el){
	var prev=document.getElementById('PBLB_prev');
	var next=document.getElementById('PBLB_next');
	
	if(el.className!="PBLB_clpic"){
		imgs=getElementsByClassName('PBLB_pic');
	}else{
		imgs=getElementsByClassName('PBLB_clpic');
	}
	
	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];
	if(img.className!="PBLB_clpic2"){
		imgs=getElementsByClassName('PBLB_pic');
	}else{
		imgs=getElementsByClassName('PBLB_clpic');
	}

	for(i=0;i<imgs.length;i++){
		if(img.src==imgs[i].href){
			PBLB_showpic(imgs[i+1],i+1);
			break;
		}	
	}
	if(img.className!="PBLB_clpic2"){
		PBLB_changesite(i,i+1);
	}
}

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

//ESC
nn=(document.layers)?true:false; 
ie=(document.all)?true:false; 
function keyDown(e){ 
	var evt=(e)?e:(window.event)?window.event:null; 
	if(evt){ 
		var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0)); 
		if(key==27){
			if(isset(document.getElementById('PBLB_lightbox')) && document.getElementById('PBLB_lightbox').style.display=='block')
				PBLB_closepic();
		}
	}
} 
document.onkeydown=keyDown; 
if(nn) document.captureEvents(Event.KEYDOWN);