DL.Widget.LightBox=new DL.Class({initialize:function(a){this.options={id:false,element:false,duration:1e3,animation:"standard",theme:"default",modal:true,appendTo:document.body};var b=this.setOptions(a);this.currentIndex=-1;this.currentImage=null;this.sizeFixed=false;this.imgSrc;this.imgId;this.loaded={};this.next=[];this.elements={};this.animator={};this.animation=DL.Widget.LightBox.Animations[b.animation];this.create();this.setupAnimator();this.setupHandlers();this.apply()},create:function(){var a=this.options,b=this.elements,c=this.animation,d="Theme"+DL.String.ucFirst(a.theme);b.body=DL.$C("div",{className:"Widget LightBox "+d},b.content=DL.$C("div",{className:"Content",style:{display:"none"}},b.imagebox=DL.$C("div",{className:"ImageBox"},b.image=DL.$C("img",{className:"Image",title:"",style:{display:"none"}})),b.navigation=DL.$C("ul",{className:"Navigation",style:{style:{cssText:c.navigation.start},display:"none"}},b.navDesc=DL.$C("li",{className:"Description"}),b.navPrev=DL.$C("li",{title:"Vorheriges Bild",className:"Prev",onclick:DL.bind(this.openSome,this,-1)}),b.navNext=DL.$C("li",{title:"Nächstes Bild",className:"Next",onclick:DL.bind(this.openSome,this,+1)}),b.navStop=DL.$C("li",{title:"Ansicht schließen",className:"Stop",onclick:DL.bind(this.close,this)}))),b.modal=DL.$C("div",{className:"Modal",style:{display:"none"},onclick:DL.bind(this.close,this)}));DL.Element.addNodes(a.appendTo,b.body)},setupHandlers:function(){var a=this.options,b=this.elements;var c=this;DL.Event.addHandlers(this.animator.content,{start:function(){if(this.state==0){c.align();DL.Element.display(b.content,"block");DL.Element.display(b.modal,"block")}},complete:function(){if(this.state==0){DL.Element.display(b.content,false);DL.Element.display(b.modal,false);c.animator.imagebox.jumpTo(0);c.animator.navigation.jumpTo(0)}}});DL.Event.addHandlers(this.animator.imagebox,{start:function(){if(this.state==1){c.animator.navigation.reverse();if(DL.Browser.isIE)DL.Element.setStyle(b.navigation,"width","0px")}else DL.Element.display(b.image,"block")},complete:function(){if(this.state==1){if(DL.Browser.isIE)DL.Element.setStyle(b.navigation,"width",b.imagebox.offsetWidth+"px");c.animator.navigation.play()}else{if(c.next)c.openNext();DL.Element.display(b.image,false)}}});DL.Event.addHandlers(this.animator.navigation,{start:function(){if(this.state==0)DL.Element.display(b.navigation,"block")},complete:function(){if(this.state==0)DL.Element.display(b.navigation,false)}});DL.Event.addHandler(window,"resize",function(){c.close()});DL.Event.addHandler(document,"keydown",DL.bind(function(a){a=a||window.event;var b=a.keyCode||a.which;if(b==27)this.close()},this));if(DL.Browser.isIE){DL.Element.setStyle(document.documentElement,"height","100%");DL.Element.setStyle(document.body,"height","100%")}},open:function(a,b){var c=this;if(this.animator.content.state==0){if(DL.Browser.isIE){var d=DL.$TN("select",document.body);for(i=0;i800){this.imageSize=1e3}else if(c>500){this.imageSize=700}else if(c>300){this.imageSize=400}else if(c>120){this.imageSize=250}else{this.elements.image.src=element.href;DL.Event.addHandler(this.elements.image,"load",DL.bind(function(){if(this.loaded[this.imgId]===false)this.loadDone()},this));return}var d="";if(a.match(/\/\d*\.jpg$/)){d=a.replace(/\/\d*\.jpg$/g,"/"+this.imageSize+".jpg")}else{d=a.replace(/\.jpg$/g,"/"+this.imageSize+".jpg")}d=encodeURIComponent(d);this.ic=new DL.XHR({url:"/cgi-bin/siteengine.pl?Content::Extern::FileExists&file="+d,onrequest:DL.bind(function(){this.timeout=DL.Function.delay(DL.bind(function(){if(this.ic.isActive){this.ic.abort();DL.Function.clear(this.timeout);this.elements.image.src=this.imgSrc;DL.Event.addHandler(this.elements.image,"load",DL.bind(function(){if(this.loaded[this.imgId]===false)this.loadDone()},this))}},this),1e4)},this),oncomplete:DL.bind(function(a){this.timeout=null;if(a=="1"){this.elements.image.src=decodeURIComponent(d)}else{this.elements.image.src=this.imgSrc}DL.Event.addHandler(this.elements.image,"load",DL.bind(function(){if(this.loaded[this.imgId]===false)this.loadDone()},this))},this)});this.ic.send()},loadDone:function(){var a=this.elements;this.loaded[this.imgId]=true;a.image.style.height="auto";a.image.style.width="auto";var b=DL.Position.getSize(a.image);inner=DL.Browser.innerSize();if(b.height+100>this.browserHeight){while(b.height+100>this.browserHeight){b.height=b.height-100;a.image.style.height=b.height+"px";a.image.style.width="auto"}}else{b=DL.Position.getSize(a.image);a.image.style.height=b.height+"px";a.image.style.width=b.width+"px"}b.left=Math.round((inner.width-b.width)/2)+inner.left;var c=DL.String.fill("width: %width%px; height: %height%px;",b);to2=DL.String.fill("left: %left%px; top: %top%px;",b);this.animator.imagebox.clearSubjects();this.animator.imagebox.addSubject(new DL.Animator.CSSStyleSubject(a.imagebox,c)).addSubject(new DL.Animator.CSSStyleSubject(a.content,to2));this.animator.imagebox.play()},align:function(a){var b=this.elements,c=DL.Browser.innerSize(),d=DL.Position.getDimension(b.content);if(a)return;DL.Element.setStyles(b.content,DL.Object.suffix({left:Math.round((c.width-d.width)/2)+c.left,top:Math.round((d.height+100-d.height)/2)+c.top},"px"));c.left=c.top=0;DL.Element.setStyle(b.modal,DL.Object.suffix(DL.Object.clone(c),"px"))},apply:function(){var a=this.options,b=this.elements;b.thumbs=DL.$CN("ShowLightBox",a.appendTo);this.thumbs=[];for(var c=0,d;d=b.thumbs[c];c++){DL.Element.whiteSpace(d);DL.Event.addHandler(d,"click",DL.bind(this.doClick,this,d,c));this.thumbs.push(d)}},setupAnimator:function(){var a=this.elements,b=this.animation,c=this.animator;c.imagebox=new DL.Animator({duration:b.imagebox.duration});c.modal=new DL.Animator({duration:b.modal.duration});c.navigation=(new DL.Animator({duration:b.navigation.duration})).addSubject(new DL.Animator.CSSStyleSubject(a.navigation,b.navigation.start,b.navigation.finish));c.content=(new DL.Animator({duration:b.content.duration||b.modal.duration})).addSubject(new DL.Animator.CSSStyleSubject(a.content,b.content.start,b.content.finish)).addSubject(new DL.Animator.CSSStyleSubject(a.modal,b.modal.start,b.modal.finish))},setNavigation:function(a,b){var c=this.elements;c.navDesc.innerHTML="";if(a.firstChild.tagName=="IMG"){c.navDesc.innerHTML=a.firstChild.alt}if(a.parentNode.tagName=="LI"&&a.parentNode.title){var d=a.parentNode.title.indexOf(", Tags:");if(d!=-1){c.navDesc.innerHTML=a.parentNode.title.slice(5,d)}}this.currentIndex=b;this.currentImage=a;b<=0?DL.Element.display(c.navPrev,false):DL.Element.display(c.navPrev,true);b>=this.thumbs.length-1?DL.Element.display(c.navNext,false):DL.Element.display(c.navNext,true)},doClick:function(a,b,c){c=c||window.event;if(c)DL.Event.stop(c);this.open(a.href,a);this.setNavigation(a,b)}});DL.Widget.LightBox.implement(new DL.Class.Options);DL.Widget.LightBox.Animations={};DL.Widget.LightBox.Animations.standard={modal:{duration:120,start:"opacity: 0.0",finish:"opacity: 0.5"},content:{duration:120,start:"opacity: 0.0;",finish:"opacity: 1.0;"},imagebox:{duration:750,start:"",finish:""},navigation:{duration:250,start:"height: 0px;",finish:"height: 24px;"}};DL.ready(function(){DL.globalLightBox=new DL.Widget.LightBox})