if(!dojo._hasResource["dojox.image.Lightbox"]){dojo._hasResource["dojox.image.Lightbox"]=true;
dojo.provide("dojox.image.Lightbox");dojo.experimental("dojox.image.Lightbox");dojo.require("dijit.Dialog");
dojo.require("dojox.fx._base");dojo.declare("dojox.image.Lightbox",dijit._Widget,{group:"",title:"",href:"",duration:500,_allowPassthru:false,_attachedDialog:null,startup:function(){this.inherited(arguments);
var a=dijit.byId("dojoxLightboxDialog");if(a){this._attachedDialog=a;}else{this._attachedDialog=new dojox.image._LightboxDialog({id:"dojoxLightboxDialog"});
this._attachedDialog.startup();}if(!this.store){this._addSelf();this.connect(this.domNode,"onclick","_handleClick");
}},_addSelf:function(){this._attachedDialog.addImage({href:this.href,title:this.title},this.group||null);
},_handleClick:function(a){if(!this._allowPassthru){a.preventDefault();}else{return;
}this.show();},show:function(){this._attachedDialog.show(this);},disable:function(){this._allowPassthru=true;
},enable:function(){this._allowPassthru=false;}});dojo.declare("dojox.image._LightboxDialog",dijit.Dialog,{title:"",inGroup:null,imgUrl:dojo.moduleUrl("dojo","resources/blank.gif"),errorMessage:"Image not found.",adjust:true,_groups:{XnoGroupX:[]},errorImg:dojo.moduleUrl("dojox.image","resources/images/warning.png"),_imageReady:false,_blankImg:dojo.moduleUrl("dojo","resources/blank.gif"),_clone:null,_wasStyled:null,_loadingAnim:null,_showImageAnim:null,_showNavAnim:null,_animConnects:[],templateString:'<div class="dojoxLightbox" dojoAttachPoint="containerNode">\n\t<div>\n\t\t<div dojoAttachPoint="imageContainer" class="dojoxLightboxContainer">\n\t\t\t<img dojoAttachPoint="imgNode" src="${imgUrl}" class="dojoxLightboxImage" alt="${title}">\n\t\t\t<div class="dojoxLightboxFooter" dojoAttachPoint="titleNode">\n\t\t\t\t<div class="dijitInline LightboxClose" dojoAttachPoint="closeNode"></div>\n\t\t\t\t<div class="dijitInline LightboxNext" dojoAttachPoint="nextNode"></div>\t\n\t\t\t\t<div class="dijitInline LightboxPrev" dojoAttachPoint="prevNode"></div>\n\n\t\t\t\t<div class="dojoxLightboxText"><span dojoAttachPoint="textNode">${title}</span><span dojoAttachPoint="groupCount" class="dojoxLightboxGroupText"></span></div>\n\t\t\t</div>\n\t\t</div>\t\n\t\t\n\t</div>\n</div>\n',startup:function(){this.inherited(arguments);
this._clone=dojo.clone(this.imgNode);this.connect(document.documentElement,"onkeypress","_handleKey");
this.connect(window,"onresize","_position");this.connect(this.nextNode,"onclick","_nextImage");
this.connect(this.prevNode,"onclick","_prevImage");this.connect(this.closeNode,"onclick","hide");
this._makeAnims();this._vp=dijit.getViewport();},show:function(a){var b=this;if(!b.open){b.inherited(arguments);
}if(this._wasStyled){dojo._destroyElement(b.imgNode);b.imgNode=dojo.clone(b._clone);
dojo.place(b.imgNode,b.imageContainer,"first");b._makeAnims();b._wasStyled=false;
}dojo.style(b.imgNode,"opacity","0");dojo.style(b.titleNode,"opacity","0");b._imageReady=false;
b.imgNode.src=a.href;if((a.group&&a!=="XnoGroupX")||b.inGroup){if(!b.inGroup){b.inGroup=b._groups[(a.group)];
dojo.forEach(b.inGroup,function(d,c){if(d.href==a.href){b._positionIndex=c;}},b);
}if(!b._positionIndex){b._positionIndex=0;b.imgNode.src=b.inGroup[b._positionIndex].href;
}b.groupCount.innerHTML=" ("+(b._positionIndex+1)+" of "+b.inGroup.length+")";b.prevNode.style.visibility="visible";
b.nextNode.style.visibility="visible";}else{b.groupCount.innerHTML="";b.prevNode.style.visibility="hidden";
b.nextNode.style.visibility="hidden";}b.textNode.innerHTML=a.title;if(!b._imageReady||b.imgNode.complete===true){b._imgConnect=dojo.connect(b.imgNode,"onload",b,function(){b._imageReady=true;
b.resizeTo({w:b.imgNode.width,h:b.imgNode.height,duration:b.duration});dojo.disconnect(b._imgConnect);
if(b._imgError){dojo.disconnect(b._imgError);}});b._imgError=dojo.connect(b.imgNode,"onerror",b,function(){dojo.disconnect(b._imgError);
b.imgNode.src=b.errorImg;b._imageReady=true;b.textNode.innerHTML=b.errorMessage;});
if(dojo.isIE){b.imgNode.src=b.imgNode.src;}}else{b.resizeTo({w:b.imgNode.width,h:b.imgNode.height,duration:1});
}},_nextImage:function(){if(!this.inGroup){return;}if(this._positionIndex+1<this.inGroup.length){this._positionIndex++;
}else{this._positionIndex=0;}this._loadImage();},_prevImage:function(){if(this.inGroup){if(this._positionIndex==0){this._positionIndex=this.inGroup.length-1;
}else{this._positionIndex--;}this._loadImage();}},_loadImage:function(){this._loadingAnim.play(1);
},_prepNodes:function(){this._imageReady=false;this.show({href:this.inGroup[this._positionIndex].href,title:this.inGroup[this._positionIndex].title});
},resizeTo:function(a){if(this.adjust&&(a.h+80>this._vp.h||a.w+50>this._vp.w)){a=this._scaleToFit(a);
}var b=dojox.fx.sizeTo({node:this.containerNode,duration:a.duration||this.duration,width:a.w,height:a.h+30});
this.connect(b,"onEnd","_showImage");b.play(15);},_showImage:function(){this._showImageAnim.play(1);
},_showNav:function(){this._showNavAnim.play(1);},hide:function(){dojo.fadeOut({node:this.titleNode,duration:5,onEnd:dojo.hitch(this,function(){this.imgNode.src=this._blankImg;
})}).play(5);this.inherited(arguments);this.inGroup=null;this._positionIndex=null;
},addImage:function(c,b){var a=b;if(!c.href){return;}if(a){if(!this._groups[a]){this._groups[a]=[];
}this._groups[a].push(c);}else{this._groups.XnoGroupX.push(c);}},_handleKey:function(c){if(!this.open){return;
}var b=dojo.keys;var a=(c.charCode==b.SPACE?b.SPACE:c.keyCode);switch(a){case b.ESCAPE:this.hide();
break;case b.DOWN_ARROW:case b.RIGHT_ARROW:case 78:this._nextImage();break;case b.UP_ARROW:case b.LEFT_ARROW:case 80:this._prevImage();
break;}},_scaleToFit:function(a){var c={};if(this._vp.h>this._vp.w){c.w=this._vp.w-70;
c.h=c.w*(a.h/a.w);}else{c.h=this._vp.h-80;c.w=c.h*(a.w/a.h);}this._wasStyled=true;
var b=this.imgNode.style;b.height=c.h+"px";b.width=c.w+"px";c.duration=a.duration;
return c;},_position:function(a){this.inherited(arguments);this._vp=dijit.getViewport();
},_makeAnims:function(){dojo.forEach(this._animConnects,dojo.disconnect);this._animConnects=[];
this._showImageAnim=dojo.fadeIn({node:this.imgNode,duration:this.duration});this._animConnects.push(dojo.connect(this._showImageAnim,"onEnd",this,"_showNav"));
this._loadingAnim=dojo.fx.combine([dojo.fadeOut({node:this.imgNode,duration:175}),dojo.fadeOut({node:this.titleNode,duration:175})]);
this._animConnects.push(dojo.connect(this._loadingAnim,"onEnd",this,"_prepNodes"));
this._showNavAnim=dojo.fadeIn({node:this.titleNode,duration:225});}});}
