DL.Widget.LightBox=new DL.Class({initialize:function(a){this.options={id:false,element:false,duration:1000,animation:'standard',theme:'default',modal:true,appendTo:document.body};var o=this.setOptions(a);this.currentIndex=-1;this.currentImage=null;this.next=[];this.elements={};this.animator={};this.animation=DL.Widget.LightBox.Animations[o.animation];this.create();this.apply()},create:function(){var o=this.options,e=this.elements,a=this.animation,theme='Theme'+DL.String.ucFirst(o.theme);e.body=DL.$C('div',{className:'Widget LightBox '+theme},e.content=DL.$C('div',{className:'Content',style:{display:'none'}},e.imagebox=DL.$C('div',{className:'ImageBox'},e.opener=DL.$C('a',{target:'_blank',href:''},e.image=DL.$C('img',{className:'Image',title:'Klicken Sie für die Originalgröße',style:{display:'none'}}))),e.navigation=DL.$C('ul',{className:'Navigation',style:{style:{cssText:a.navigation.start},display:'none'}},e.navDesc=DL.$C('li',{className:'Description'}),e.navPrev=DL.$C('li',{title:'Vorheriges Bild',className:'Prev',onclick:DL.bind(this.openSome,this,-1)}),e.navNext=DL.$C('li',{title:'Nächstes Bild',className:'Next',onclick:DL.bind(this.openSome,this,+1)}),e.navStop=DL.$C('li',{title:'Ansicht schließen',className:'Stop',onclick:DL.bind(this.close,this)}))),e.modal=DL.$C('div',{className:'Modal',style:{display:'none'},onclick:DL.bind(this.close,this)}));DL.Element.addNodes(o.appendTo,e.body);this.setupAnimator();var b=this;DL.Event.addHandlers(e.image,{load:DL.bind(this.doLoad,this)});DL.Event.addHandlers(this.animator.content,{start:function(){if(this.state==0){b.align();DL.Element.display(e.content,'block');DL.Element.display(e.modal,'block')}},complete:function(){if(this.state==0){DL.Element.display(e.content,false);DL.Element.display(e.modal,false);b.animator.imagebox.jumpTo(0);b.animator.navigation.jumpTo(0)}}});DL.Event.addHandlers(this.animator.imagebox,{start:function(){if(this.state==1){b.animator.navigation.reverse();if(DL.Browser.isIE)DL.Element.setStyle(e.navigation,'width','0px')}else DL.Element.display(e.image,'block')},complete:function(){if(this.state==1){if(DL.Browser.isIE)DL.Element.setStyle(e.navigation,'width',e.imagebox.offsetWidth+'px');b.animator.navigation.play()}else{if(b.next)b.openNext();DL.Element.display(e.image,false)}}});DL.Event.addHandlers(this.animator.navigation,{start:function(){if(this.state==0)DL.Element.display(e.navigation,'block')},complete:function(){if(this.state==0)DL.Element.display(e.navigation,false)}});DL.Event.addHandler(window,'resize',function(){b.close()});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;isize.width){size.top=inner.top+50}else{size.height=Math.round(inner.width/size.width*size.height)-100;size.width=inner.width-100}size.left=Math.round((inner.width-size.width)/2)+inner.left;var a=DL.String.fill("width: %width%px; height: %height%px;",size);to2=DL.String.fill("left: %left%px; top: %top%px;",size);this.animator.imagebox.clearSubjects();this.animator.imagebox.addSubject(new DL.Animator.CSSStyleSubject(e.imagebox,a)).addSubject(new DL.Animator.CSSStyleSubject(e.content,to2));e.imagebox.style.backgroundImage='url('+e.image.src+')';this.animator.imagebox.play()},align:function(a){var e=this.elements,inner=DL.Browser.innerSize(),style=DL.Position.getDimension(e.content);if(a)return;DL.Element.setStyles(e.content,DL.Object.suffix({left:Math.round((inner.width-style.width)/2)+inner.left,top:Math.round((style.height+100-style.height)/2)+inner.top},'px'));inner.left=inner.top=0;DL.Element.setStyle(e.modal,DL.Object.suffix(DL.Object.clone(inner),'px'))},alignContent:function(){var e=this.elements,inner=DL.Browser.innerSize()},apply:function(){var o=this.options,e=this.elements;e.thumbs=DL.$CN('ShowLightBox',o.appendTo);this.thumbs=[];for(var i=0,tn;(tn=e.thumbs[i]);i++){DL.Element.whiteSpace(tn);DL.Event.addHandler(tn,'click',DL.bind(this.doClick,this,tn,i));this.thumbs.push(tn)}},setupAnimator:function(){var e=this.elements,a=this.animation,ani=this.animator;ani.imagebox=new DL.Animator({duration:a.imagebox.duration});ani.modal=new DL.Animator({duration:a.modal.duration});ani.navigation=new DL.Animator({duration:a.navigation.duration}).addSubject(new DL.Animator.CSSStyleSubject(e.navigation,a.navigation.start,a.navigation.finish));ani.content=new DL.Animator({duration:a.content.duration||a.modal.duration}).addSubject(new DL.Animator.CSSStyleSubject(e.content,a.content.start,a.content.finish)).addSubject(new DL.Animator.CSSStyleSubject(e.modal,a.modal.start,a.modal.finish))},setNavigation:function(a,b){var e=this.elements,d=(a.firstChild.tagName=='IMG')?a.firstChild.alt:a;e.navDesc.innerHTML=d;this.currentIndex=b;this.currentImage=a;(b<=0)?DL.Element.display(e.navPrev,false):DL.Element.display(e.navPrev,true);(b>=(this.thumbs.length-1))?DL.Element.display(e.navNext,false):DL.Element.display(e.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)},doLoad:function(){var e=this.elements;DL.Element.removeClass(this.elements.content,'Loading');this.toggleImage()}});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.globalLighBox=new DL.Widget.LightBox});