/*  --------------------------------------------------------------------------
 *  This is a compressed and slightly modified version of:
 * 	Lightbox v2.03.2
 * 	by Lokesh Dhakar - http: * www.huddletogether.com
 * 	4/30/06
 * 
 * 	For more information on this script, visit:
 * 	http: * huddletogether.com/projects/lightbox2/
 * 
 * 	Licensed under the Creative Commons Attribution 2.5 License
 *  http: * creativecommons.org/licenses/by/2.5/
 * 	
 * 	Credit also due to those who have helped, inspired, and made their code
 *  available to the public.
 * 	Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org),
 *  Thomas Fuchs(mir.aculo.us), and others.
 *  ----------------------------------------------------------------------- */
var fileLoadingImage=BM.assetsDir+"/lightbox_loading.gif";
var fileBottomNavCloseImage=BM.assetsDir+"/lightbox_close.gif";
var overlayOpacity=0.8;
var animate=true;
var resizeSpeed=7;
var borderSize=10;
var imageArray=new Array;
var activeImage;
var hovernavHeight;
if(animate==true){
overlayDuration=0.2;
if(resizeSpeed>10){
resizeSpeed=10;
}
if(resizeSpeed<1){
resizeSpeed=1;
}
resizeDuration=(11-resizeSpeed)*0.15;
}else{
overlayDuration=0;
resizeDuration=0;
}
Object.extend(Element,{getWidth:function(_46){
_46=$(_46);
return _46.offsetWidth;
},setWidth:function(_47,w){
_47=$(_47);
_47.style.width=w+"px";
},setHeight:function(_49,h){
_49=$(_49);
_49.style.height=h+"px";
},setTop:function(_4b,t){
_4b=$(_4b);
_4b.style.top=t+"px";
},setSrc:function(_4d,src){
_4d=$(_4d);
_4d.src=src;
},setHref:function(_4f,_50){
_4f=$(_4f);
_4f.href=_50;
},setInnerHTML:function(_51,_52){
_51=$(_51);
_51.innerHTML=_52;
}});
Array.prototype.removeDuplicates=function(){
for(i=0;i<this.length;i++){
for(j=this.length-1;j>i;j--){
if(this[i][0]==this[j][0]){
this.splice(j,1);
}
}
}
};
Array.prototype.empty=function(){
for(i=0;i<=this.length;i++){
this.shift();
}
};
var Lightbox=Class.create();
Lightbox.prototype={initialize:function(){
if(!document.getElementsByTagName){
return;
}
var _53=document.getElementsByTagName("a");
var _54=document.getElementsByTagName("area");
for(var i=0;i<_53.length;i++){
var _56=_53[i];
var _57=String(_56.getAttribute("rel"));
if(_56.getAttribute("href")&&(_57.toLowerCase().match("bm_lightbox"))){
_56.onclick=function(){
myLightbox.start(this);
return false;
};
}
}
for(var i=0;i<_54.length;i++){
var _58=_54[i];
var _57=String(_58.getAttribute("rel"));
if(_58.getAttribute("href")&&(_57.toLowerCase().match("bm_lightbox"))){
_58.onclick=function(){
myLightbox.start(this);
return false;
};
}
}
var _59=document.getElementsByTagName("body").item(0);
var _5a=document.createElement("div");
_5a.setAttribute("id","bmlbox_overlay");
_5a.style.display="none";
_5a.onclick=function(){
myLightbox.end();
};
_59.appendChild(_5a);
var _5b=document.createElement("div");
_5b.setAttribute("id","bmlbox_lightbox");
_5b.style.display="none";
_5b.onclick=function(e){
if(!e){
var e=window.event;
}
var _5d=Event.element(e).id;
if(_5d=="bmlbox_lightbox"){
myLightbox.end();
}
};
_59.appendChild(_5b);
var _5e=document.createElement("div");
_5e.setAttribute("id","bmlbox_outerImageContainer");
_5b.appendChild(_5e);
if(animate){
Element.setWidth("bmlbox_outerImageContainer",250);
Element.setHeight("bmlbox_outerImageContainer",250);
}else{
Element.setWidth("bmlbox_outerImageContainer",1);
Element.setHeight("bmlbox_outerImageContainer",1);
}
var _5f=document.createElement("div");
_5f.setAttribute("id","bmlbox_imageContainer");
_5e.appendChild(_5f);
var _60=document.createElement("img");
_60.setAttribute("id","bmlbox_lightboxImage");
_5f.appendChild(_60);
var _61=document.createElement("div");
_61.setAttribute("id","bmlbox_hoverNav");
_5f.appendChild(_61);
var _62=document.createElement("a");
_62.setAttribute("id","bmlbox_prevLink");
_62.setAttribute("href","#");
_61.appendChild(_62);
var _63=document.createElement("a");
_63.setAttribute("id","bmlbox_nextLink");
_63.setAttribute("href","#");
_61.appendChild(_63);
[_62,_63].each(function(e){
Element.setOpacity(e,0.3);
e.onmouseover=function(){
Element.setOpacity(this,0.99);
};
e.onmouseout=function(){
Element.setOpacity(this,0.3);
};
});
var _65=document.createElement("div");
_65.setAttribute("id","bmlbox_loading");
_5f.appendChild(_65);
var _66=document.createElement("a");
_66.setAttribute("id","bmlbox_loadingLink");
_66.setAttribute("href","#");
_66.onclick=function(){
myLightbox.end();
return false;
};
_65.appendChild(_66);
var _67=document.createElement("img");
_67.setAttribute("src",fileLoadingImage);
_66.appendChild(_67);
var _68=document.createElement("div");
_68.setAttribute("id","bmlbox_imageDataContainer");
_5b.appendChild(_68);
var _69=document.createElement("div");
_69.setAttribute("id","bmlbox_imageData");
_68.appendChild(_69);
var _6a=document.createElement("div");
_6a.setAttribute("id","bmlbox_imageDetails");
_69.appendChild(_6a);
var _6b=document.createElement("span");
_6b.setAttribute("id","bmlbox_caption");
_6a.appendChild(_6b);
var _6c=document.createElement("span");
_6c.setAttribute("id","bmlbox_numberDisplay");
_6a.appendChild(_6c);
var _6d=document.createElement("div");
_6d.setAttribute("id","bmlbox_bottomNav");
_69.appendChild(_6d);
var _6e=document.createElement("a");
_6e.setAttribute("id","bmlbox_bottomNavClose");
_6e.setAttribute("href","#");
_6e.onclick=function(){
myLightbox.end();
return false;
};
_6d.appendChild(_6e);
var _6f=document.createElement("img");
_6f.setAttribute("src",fileBottomNavCloseImage);
_6e.appendChild(_6f);
},start:function(_70){
hideSelectBoxes();
hideFlash();
var _71=getPageSize();
Element.setHeight("bmlbox_overlay",_71[1]);
new Effect.Appear("bmlbox_overlay",{duration:overlayDuration,from:0,to:overlayOpacity});
imageArray=[];
imageNum=0;
if(!document.getElementsByTagName){
return;
}
var _72=document.getElementsByTagName(_70.tagName);
if((_70.getAttribute("rel")=="bm_lightbox")){
imageArray.push(new Array(_70.getAttribute("href"),_70.getAttribute("title")));
}else{
for(var i=0;i<_72.length;i++){
var _74=_72[i];
if(_74.getAttribute("href")&&(_74.getAttribute("rel")==_70.getAttribute("rel"))){
imageArray.push(new Array(_74.getAttribute("href"),_74.getAttribute("title")));
}
}
imageArray.removeDuplicates();
while(imageArray[imageNum][0]!=_70.getAttribute("href")){
imageNum++;
}
}
hovernavHeight=imageArray.length>1?35:0;
$("bmlbox_lightboxImage").style.marginTop=hovernavHeight+"px";
$("bmlbox_hoverNav").style.height=hovernavHeight?"100%":"0px";
var _75=getPageScroll();
var _76=_75[1]+(_71[3]/30);
Element.setTop("bmlbox_lightbox",_76);
Element.show("bmlbox_lightbox");
this.changeImage(imageNum);
},changeImage:function(_77){
activeImage=_77;
if(animate){
Element.show("bmlbox_loading");
}
Element.hide("bmlbox_lightboxImage");
Element.hide("bmlbox_hoverNav");
Element.hide("bmlbox_prevLink");
Element.hide("bmlbox_nextLink");
Element.hide("bmlbox_imageDataContainer");
Element.hide("bmlbox_numberDisplay");
imgPreloader=new Image();
imgPreloader.onload=function(){
Element.setSrc("bmlbox_lightboxImage",imageArray[activeImage][0]);
myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height);
imgPreloader.onload=function(){
};
};
imgPreloader.src=imageArray[activeImage][0];
},resizeImageContainer:function(_78,_79){
this.widthCurrent=Element.getWidth("bmlbox_outerImageContainer");
this.heightCurrent=Element.getHeight("bmlbox_outerImageContainer");
var _7a=(_78+(borderSize*2));
var _7b=(_79+(borderSize*2)+hovernavHeight);
this.xScale=(_7a/this.widthCurrent)*100;
this.yScale=(_7b/this.heightCurrent)*100;
wDiff=this.widthCurrent-_7a;
hDiff=this.heightCurrent-_7b;
if(!(hDiff==0)){
new Effect.Scale("bmlbox_outerImageContainer",this.yScale,{scaleX:false,duration:resizeDuration,queue:"front"});
}
if(!(wDiff==0)){
new Effect.Scale("bmlbox_outerImageContainer",this.xScale,{scaleY:false,delay:resizeDuration,duration:resizeDuration});
}
if((hDiff==0)&&(wDiff==0)){
if(navigator.appVersion.indexOf("MSIE")!=-1){
pause(250);
}else{
pause(100);
}
}
Element.setHeight("bmlbox_prevLink",_79);
Element.setHeight("bmlbox_nextLink",_79);
Element.setWidth("bmlbox_imageDataContainer",_7a);
this.showImage();
},showImage:function(){
Element.hide("bmlbox_loading");
new Effect.Appear("bmlbox_lightboxImage",{duration:resizeDuration,queue:"end",afterFinish:function(){
myLightbox.updateDetails();
}});
this.preloadNeighborImages();
},updateDetails:function(){
Element.show("bmlbox_caption");
Element.setInnerHTML("bmlbox_caption",imageArray[activeImage][1]);
if(imageArray.length>1){
Element.show("bmlbox_numberDisplay");
Element.setInnerHTML("bmlbox_numberDisplay","Image "+eval(activeImage+1)+" of "+imageArray.length);
}
new Effect.Parallel([new Effect.SlideDown("bmlbox_imageDataContainer",{sync:true,duration:resizeDuration,from:0,to:1}),new Effect.Appear("bmlbox_imageDataContainer",{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){
var _7c=getPageSize();
Element.setHeight("bmlbox_overlay",_7c[1]);
myLightbox.updateNav();
}});
},updateNav:function(){
Element.show("bmlbox_hoverNav");
if(activeImage!=0){
Element.show("bmlbox_prevLink");
document.getElementById("bmlbox_prevLink").onclick=function(){
myLightbox.changeImage(activeImage-1);
return false;
};
}
if(activeImage!=(imageArray.length-1)){
Element.show("bmlbox_nextLink");
document.getElementById("bmlbox_nextLink").onclick=function(){
myLightbox.changeImage(activeImage+1);
return false;
};
}
this.enableKeyboardNav();
},enableKeyboardNav:function(){
document.onkeydown=this.keyboardAction;
},disableKeyboardNav:function(){
document.onkeydown="";
},keyboardAction:function(e){
if(e==null){
keycode=event.keyCode;
escapeKey=27;
}else{
keycode=e.keyCode;
escapeKey=e.DOM_VK_ESCAPE;
}
key=String.fromCharCode(keycode).toLowerCase();
if((key=="x")||(key=="o")||(key=="c")||(keycode==escapeKey)){
myLightbox.end();
}else{
if((key=="p")||(keycode==37)){
if(activeImage!=0){
myLightbox.disableKeyboardNav();
myLightbox.changeImage(activeImage-1);
}
}else{
if((key=="n")||(keycode==39)){
if(activeImage!=(imageArray.length-1)){
myLightbox.disableKeyboardNav();
myLightbox.changeImage(activeImage+1);
}
}
}
}
},preloadNeighborImages:function(){
if((imageArray.length-1)>activeImage){
preloadNextImage=new Image();
preloadNextImage.src=imageArray[activeImage+1][0];
}
if(activeImage>0){
preloadPrevImage=new Image();
preloadPrevImage.src=imageArray[activeImage-1][0];
}
},end:function(){
this.disableKeyboardNav();
Element.hide("bmlbox_lightbox");
new Effect.Fade("bmlbox_overlay",{duration:overlayDuration});
showSelectBoxes();
showFlash();
}};
function getPageScroll(){
var _7e;
if(self.pageYOffset){
_7e=self.pageYOffset;
}else{
if(document.documentElement&&document.documentElement.scrollTop){
_7e=document.documentElement.scrollTop;
}else{
if(document.body){
_7e=document.body.scrollTop;
}
}
}
arrayPageScroll=new Array("",_7e);
return arrayPageScroll;
}
function getPageSize(){
var _7f,yScroll;
if(window.innerHeight&&window.scrollMaxY){
_7f=document.body.scrollWidth;
yScroll=window.innerHeight+window.scrollMaxY;
}else{
if(document.body.scrollHeight>document.body.offsetHeight){
_7f=document.body.scrollWidth;
yScroll=document.body.scrollHeight;
}else{
_7f=document.body.offsetWidth;
yScroll=document.body.offsetHeight;
}
}
var _80,windowHeight;
if(self.innerHeight){
_80=self.innerWidth;
windowHeight=self.innerHeight;
}else{
if(document.documentElement&&document.documentElement.clientHeight){
_80=document.documentElement.clientWidth;
windowHeight=document.documentElement.clientHeight;
}else{
if(document.body){
_80=document.body.clientWidth;
windowHeight=document.body.clientHeight;
}
}
}
if(yScroll<windowHeight){
pageHeight=windowHeight;
}else{
pageHeight=yScroll;
}
if(_7f<_80){
pageWidth=_80;
}else{
pageWidth=_7f;
}
arrayPageSize=new Array(pageWidth,pageHeight,_80,windowHeight);
return arrayPageSize;
}
function getKey(e){
if(e==null){
keycode=event.keyCode;
}else{
keycode=e.which;
}
key=String.fromCharCode(keycode).toLowerCase();
if(key=="x"){
}
}
function listenKey(){
document.onkeypress=getKey;
}
function showSelectBoxes(){
var _82=document.getElementsByTagName("select");
for(i=0;i!=_82.length;i++){
_82[i].style.visibility="visible";
}
}
function hideSelectBoxes(){
var _83=document.getElementsByTagName("select");
for(i=0;i!=_83.length;i++){
_83[i].style.visibility="hidden";
}
}
function showFlash(){
var _84=document.getElementsByTagName("object");
for(i=0;i<_84.length;i++){
_84[i].style.visibility="visible";
}
var _85=document.getElementsByTagName("embed");
for(i=0;i<_85.length;i++){
_85[i].style.visibility="visible";
}
}
function hideFlash(){
var _86=document.getElementsByTagName("object");
for(i=0;i<_86.length;i++){
_86[i].style.visibility="hidden";
}
var _87=document.getElementsByTagName("embed");
for(i=0;i<_87.length;i++){
_87[i].style.visibility="hidden";
}
}
function pause(ms){
var _89=new Date();
curDate=null;
do{
var _8a=new Date();
}while(_8a-_89<ms);
}
function initLightbox(){
myLightbox=new Lightbox();
}
Event.observe(window,"load",initLightbox,false);

