Ext.ns("Ext.ux");function clearIds(b){if(b.nodeType==1){b.id="";for(var a=0;a<b.childNodes.length;a++){clearIds(b.childNodes[a])}}}Ext.override(Ext.Element,{clone:function(a){var b=this.dom.cloneNode(true);clearIds(b);return Ext.get(b)}});Ext.ux.Lightbox=(function(){var c={},a=[],d,e=false,b=[];return{overlayOpacity:0.85,animate:true,resizeSpeed:8,borderSize:10,labelImage:"Image",labelOf:"de",init:function(){this.resizeDuration=this.animate?((11-this.resizeSpeed)*0.15):0;this.overlayDuration=this.animate?0.2:0;if(!e){Ext.apply(this,Ext.util.Observable.prototype);Ext.util.Observable.constructor.call(this);this.addEvents("open","close");this.initMarkup();this.initEvents();e=true}},initMarkup:function(){c.shim=Ext.DomHelper.append(document.body,{tag:"iframe",id:"ux-lightbox-shim"},true);c.overlay=Ext.DomHelper.append(document.body,{id:"ux-lightbox-overlay"},true);var g=new Ext.Template(this.getTemplate());c.lightbox=g.append(document.body,{},true);var h=["outerImageContainer","imageContainer","image","hoverNav","navPrev","navNext","loading","loadingLink","outerDataContainer","dataContainer","data","details","caption","info","imageNumber","bottomNav","navClose"];Ext.each(h,function(j){c[j]=Ext.get("ux-lightbox-"+j)});Ext.each([c.overlay,c.lightbox,c.shim],function(j){j.setVisibilityMode(Ext.Element.DISPLAY);j.hide()});var f=(this.animate?250:1)+"px";c.outerImageContainer.setStyle({width:f,height:f})},getTemplate:function(){return['<div id="ux-lightbox">','<div id="ux-lightbox-outerImageContainer">','<div id="ux-lightbox-imageContainer">','<img id="ux-lightbox-image">','<div id="ux-lightbox-hoverNav">','<a href="#" id="ux-lightbox-navPrev"></a>','<a href="#" id="ux-lightbox-navNext"></a>',"</div>",'<div id="ux-lightbox-loading">','<a id="ux-lightbox-loadingLink"></a>',"</div>","</div>","</div>",'<div id="ux-lightbox-outerDataContainer">','<div id="ux-lightbox-dataContainer">','<div id="ux-lightbox-data">','<div id="ux-lightbox-details">','<span id="ux-lightbox-caption"></span>','<span id="ux-lightbox-info"></span>','<span id="ux-lightbox-imageNumber"></span>',"</div>",'<div id="ux-lightbox-bottomNav">','<a href="#" id="ux-lightbox-navClose"></a>',"</div>","</div>","</div>","</div>","</div>"]},initEvents:function(){var f=function(g){g.preventDefault();this.close()};c.overlay.on("click",f,this);c.loadingLink.on("click",f,this);c.navClose.on("click",f,this);c.lightbox.on("click",function(g){if(g.getTarget().id=="ux-lightbox"){this.close()}},this);c.navPrev.on("click",function(g){g.preventDefault();this.setImage(d-1)},this);c.navNext.on("click",function(g){g.preventDefault();this.setImage(d+1)},this)},register:function(f,g){if(b.indexOf(f)===-1){b.push(f);Ext.fly(document).on("click",function(h){var j=h.getTarget(f);if(j){h.preventDefault();this.open(j,f,g)}},this)}},open:function(h,f,g){g=g||false;this.setViewSize();c.overlay.fadeIn({duration:this.overlayDuration,endOpacity:this.overlayOpacity,callback:function(){a=[];var j=0;if(!g){h.href=h.href.replace(/javascript:openJPGWindow\('(.*)','[0-9]{1,4}','[0-9]{1,4}'\)/g,"$1");var p="";var l=Ext.get(h).findParent("div",2,true);if(l){p=l.dom.innerText;if(l.dom.textContent!=null){p=l.dom.textContent}}if(h.alt==null){h.alt=p}h.title=h.title.replace(/Cliquez pour agrandir cette image/g,p);a.push([h.href,h.title,h.alt])}else{var k=Ext.query(f);Ext.each(k,function(u){if(u.href){var w="";u.href=u.href.replace(/javascript:openJPGWindow\('(.*)','[0-9]{1,4}','[0-9]{1,4}'\)/g,"$1");var r=Ext.get(u).findParent("div",2,true);if(r){w=r.dom.innerText;if(r.dom.textContent!=null){w=r.dom.textContent}}if(h.alt==null){h.alt=w}u.title=u.title.replace(/Cliquez pour agrandir cette image/g,w);var t=[];t.push(u.href,u.title);var s=u.parentNode;var v=s.parentNode;var q=Ext.query("span.desc",v);Ext.each(q,function(x){if(x.innerHTML){t.push(Ext.getDom(x))}});a.push(t)}});while(a[j][0]!=h.href){j++}}var n=Ext.fly(document).getScroll();var o=n.top+(Ext.lib.Dom.getViewportHeight()/10);var m=n.left;c.lightbox.setStyle({top:o+"px",left:m+"px"}).show();this.setImage(j);this.fireEvent("open",a[j])},scope:this})},setViewSize:function(){var f=this.getViewSize();if(c.overlay){c.overlay.setStyle({width:f[0]+"px",height:f[1]+"px"})}c.shim.setStyle({width:f[0]+"px",height:f[1]+"px"}).show()},setImage:function(g){d=g;this.disableKeyNav();if(this.animate){c.loading.show()}c.image.hide();c.hoverNav.hide();c.navPrev.hide();c.navNext.hide();c.dataContainer.setOpacity(0.0001);c.imageNumber.hide();var f=new Image();f.onload=(function(){c.image.dom.src=a[d][0];this.resizeImage(f.width,f.height)}).createDelegate(this);f.src=a[d][0]},resizeImage:function(n,g){var p=c.outerImageContainer.getWidth();var l=c.outerImageContainer.getHeight();var k=(n+this.borderSize*2);var j=(g+this.borderSize*2);var m=p-k;var f=l-j;var o=function(){c.hoverNav.setWidth(c.imageContainer.getWidth()+"px");c.navPrev.setHeight(g+"px");c.navNext.setHeight(g+"px");c.outerDataContainer.setWidth(k+"px");this.showImage()};if(f!=0||m!=0){c.outerImageContainer.shift({height:j,width:k,duration:this.resizeDuration,scope:this,callback:o,delay:50})}else{o.call(this)}},showImage:function(){c.loading.hide();c.image.fadeIn({duration:this.resizeDuration,scope:this,callback:function(){this.updateDetails()}});this.preloadImages()},updateDetails:function(){var f=c.data.getWidth(true)-c.navClose.getWidth()-10;c.details.setWidth((f>0?f:0)+"px");c.caption.update(a[d][1]);var h="";c.info.update(h);for(i=2;i<a[d].length;i++){try{c.info.appendChild(a[d][i].cloneNode(true))}catch(g){}}c.caption.show();if(a.length>1){c.imageNumber.update(this.labelImage+" "+(d+1)+" "+this.labelOf+"  "+a.length);c.imageNumber.show()}c.dataContainer.fadeIn({duration:this.resizeDuration/2,scope:this,callback:function(){var j=this.getViewSize();c.overlay.setHeight(j[1]+"px");this.updateNav()}})},updateNav:function(){this.enableKeyNav();c.hoverNav.show();if(d>0){c.navPrev.show()}if(d<(a.length-1)){c.navNext.show()}},enableKeyNav:function(){Ext.fly(document).on("keydown",this.keyNavAction,this)},disableKeyNav:function(){Ext.fly(document).un("keydown",this.keyNavAction,this)},keyNavAction:function(f){var g=f.getKey();if(g==88||g==67||g==27){this.close()}else{if(g==80||g==37){if(d!=0){this.setImage(d-1)}}else{if(g==78||g==39){if(d!=(a.length-1)){this.setImage(d+1)}}}}},preloadImages:function(){var f,g;if(a.length>d+1){f=new Image();f.src=a[d+1][0]}if(d>0){g=new Image();g.src=a[d-1][0]}},close:function(){this.disableKeyNav();c.lightbox.hide();c.overlay.fadeOut({duration:this.overlayDuration});c.shim.hide();this.fireEvent("close",d)},getViewSize:function(){return[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()]},isDom:function(g){var h=document.createElement("div");try{h.appendChild(g)}catch(f){return false}return true}}})();Ext.onReady(Ext.ux.Lightbox.init,Ext.ux.Lightbox);
