/*  --------------------------------------------------------------------------
 *  This is a compressed version of:
 * 	Lightbox v2.02
 * 	by Lokesh Dhakar - http: * www.huddletogether.com
 * 	3/31/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 resizeSpeed=7;
var borderSize=10;
var imageArray=new Array;
var activeImage;
resizeDuration=(11-resizeSpeed)*0.15;
Object.extend(Element,{getWidth:function(_93f){
_93f=$(_93f);
return _93f.offsetWidth;
},setWidth:function(_940,w){
_940=$(_940);
_940.style.width=w+"px";
},setHeight:function(_942,h){
_942=$(_942);
_942.style.height=h+"px";
},setTop:function(_944,t){
_944=$(_944);
_944.style.top=t+"px";
},setSrc:function(_946,src){
_946=$(_946);
_946.src=src;
},setHref:function(_948,href){
_948=$(_948);
_948.href=href;
},setInnerHTML:function(_94a,_94b){
_94a=$(_94a);
_94a.innerHTML=_94b;
}});
Array.prototype.removeDuplicates=function(){
for(i=1;i<this.length;i++){
if(this[i][0]==this[i-1][0]){
this.splice(i,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 _94c=document.getElementsByTagName("a");
for(var i=0;i<_94c.length;i++){
var _94e=_94c[i];
var _94f=String(_94e.getAttribute("rel"));
if(_94e.getAttribute("href")&&(_94f.toLowerCase().match("bm_lightbox"))){
_94e.onclick=function(){
myLightbox.start(this);
return false;
};
}
}
var _950=document.getElementsByTagName("body").item(0);
var _951=document.createElement("div");
_951.setAttribute("id","bmlbox_overlay");
_951.style.display="none";
_951.onclick=function(){
myLightbox.end();
return false;
};
_950.appendChild(_951);
var _952=document.createElement("div");
_952.setAttribute("id","bmlbox_lightbox");
_952.style.display="none";
_950.appendChild(_952);
var _953=document.createElement("div");
_953.setAttribute("id","bmlbox_outerImageContainer");
_952.appendChild(_953);
var _954=document.createElement("div");
_954.setAttribute("id","bmlbox_imageContainer");
_953.appendChild(_954);
var _955=document.createElement("img");
_955.setAttribute("id","bmlbox_lightboxImage");
_954.appendChild(_955);
var _956=document.createElement("div");
_956.setAttribute("id","bmlbox_hoverNav");
_954.appendChild(_956);
var _957=document.createElement("a");
_957.setAttribute("id","bmlbox_prevLink");
_957.setAttribute("href","#");
_956.appendChild(_957);
var _958=document.createElement("a");
_958.setAttribute("id","bmlbox_nextLink");
_958.setAttribute("href","#");
_956.appendChild(_958);
var _959=document.createElement("div");
_959.setAttribute("id","bmlbox_loading");
_954.appendChild(_959);
var _95a=document.createElement("a");
_95a.setAttribute("id","bmlbox_loadingLink");
_95a.setAttribute("href","#");
_95a.onclick=function(){
myLightbox.end();
return false;
};
_959.appendChild(_95a);
var _95b=document.createElement("img");
_95b.setAttribute("src",fileLoadingImage);
_95a.appendChild(_95b);
var _95c=document.createElement("div");
_95c.setAttribute("id","bmlbox_imageDataContainer");
_95c.className="bmlbox_clearfix";
_952.appendChild(_95c);
var _95d=document.createElement("div");
_95d.setAttribute("id","bmlbox_imageData");
_95c.appendChild(_95d);
var _95e=document.createElement("div");
_95e.setAttribute("id","bmlbox_imageDetails");
_95d.appendChild(_95e);
var _95f=document.createElement("span");
_95f.setAttribute("id","bmlbox_caption");
_95e.appendChild(_95f);
var _960=document.createElement("span");
_960.setAttribute("id","bmlbox_numberDisplay");
_95e.appendChild(_960);
var _961=document.createElement("div");
_961.setAttribute("id","bmlbox_bottomNav");
_95d.appendChild(_961);
var _962=document.createElement("a");
_962.setAttribute("id","bmlbox_bottomNavClose");
_962.setAttribute("href","#");
_962.onclick=function(){
myLightbox.end();
return false;
};
_961.appendChild(_962);
var _963=document.createElement("img");
_963.setAttribute("src",fileBottomNavCloseImage);
_962.appendChild(_963);
},start:function(_964){
hideSelectBoxes();
var _965=getPageSize();
Element.setHeight("bmlbox_overlay",_965[1]);
new Effect.Appear("bmlbox_overlay",{duration:0.2,from:0,to:0.8});
imageArray=[];
imageNum=0;
if(!document.getElementsByTagName){
return;
}
var _966=document.getElementsByTagName("a");
if((_964.getAttribute("rel")=="bm_lightbox")){
imageArray.push(new Array(_964.getAttribute("href"),_964.getAttribute("title")));
}else{
for(var i=0;i<_966.length;i++){
var _968=_966[i];
if(_968.getAttribute("href")&&(_968.getAttribute("rel")==_964.getAttribute("rel"))){
imageArray.push(new Array(_968.getAttribute("href"),_968.getAttribute("title")));
}
}
imageArray.removeDuplicates();
while(imageArray[imageNum][0]!=_964.getAttribute("href")){
imageNum++;
}
}
var _965=getPageSize();
var _969=getPageScroll();
var _96a=_969[1]+(_965[3]/15);
Element.setTop("bmlbox_lightbox",_96a);
Element.show("bmlbox_lightbox");
this.changeImage(imageNum);
},changeImage:function(_96b){
activeImage=_96b;
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.src=imageArray[activeImage][0];
},resizeImageContainer:function(_96c,_96d){
this.wCur=Element.getWidth("bmlbox_outerImageContainer");
this.hCur=Element.getHeight("bmlbox_outerImageContainer");
this.xScale=((_96c+(borderSize*2))/this.wCur)*100;
this.yScale=((_96d+(borderSize*2))/this.hCur)*100;
wDiff=(this.wCur-borderSize*2)-_96c;
hDiff=(this.hCur-borderSize*2)-_96d;
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",_96d);
Element.setHeight("bmlbox_nextLink",_96d);
Element.setWidth("bmlbox_imageDataContainer",_96c+(borderSize*2));
this.showImage();
},showImage:function(){
Element.hide("bmlbox_loading");
new Effect.Appear("bmlbox_lightboxImage",{duration:0.5,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",eval(activeImage+1)+"/"+imageArray.length);
}
new Effect.Parallel([new Effect.SlideDown("bmlbox_imageDataContainer",{sync:true,duration:resizeDuration+0.25,from:0,to:1}),new Effect.Appear("bmlbox_imageDataContainer",{sync:true,duration:1})],{duration:0.65,afterFinish:function(){
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;
}else{
keycode=e.which;
}
key=String.fromCharCode(keycode).toLowerCase();
if((key=="x")||(key=="o")||(key=="c")){
myLightbox.end();
}else{
if(key=="p"){
if(activeImage!=0){
myLightbox.disableKeyboardNav();
myLightbox.changeImage(activeImage-1);
}
}else{
if(key=="n"){
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:0.2});
showSelectBoxes();
}};
function getPageScroll(){
var _96f;
if(self.pageYOffset){
_96f=self.pageYOffset;
}else{
if(document.documentElement&&document.documentElement.scrollTop){
_96f=document.documentElement.scrollTop;
}else{
if(document.body){
_96f=document.body.scrollTop;
}
}
}
arrayPageScroll=new Array("",_96f);
return arrayPageScroll;
}
function getPageSize(){
var _970,yScroll;
if(window.innerHeight&&window.scrollMaxY){
_970=document.body.scrollWidth;
yScroll=window.innerHeight+window.scrollMaxY;
}else{
if(document.body.scrollHeight>document.body.offsetHeight){
_970=document.body.scrollWidth;
yScroll=document.body.scrollHeight;
}else{
_970=document.body.offsetWidth;
yScroll=document.body.offsetHeight;
}
}
var _971,windowHeight;
if(self.innerHeight){
_971=self.innerWidth;
windowHeight=self.innerHeight;
}else{
if(document.documentElement&&document.documentElement.clientHeight){
_971=document.documentElement.clientWidth;
windowHeight=document.documentElement.clientHeight;
}else{
if(document.body){
_971=document.body.clientWidth;
windowHeight=document.body.clientHeight;
}
}
}
if(yScroll<windowHeight){
pageHeight=windowHeight;
}else{
pageHeight=yScroll;
}
if(_970<_971){
pageWidth=_971;
}else{
pageWidth=_970;
}
arrayPageSize=new Array(pageWidth,pageHeight,_971,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(){
selects=document.getElementsByTagName("select");
for(i=0;i!=selects.length;i++){
selects[i].style.visibility="visible";
}
}
function hideSelectBoxes(){
selects=document.getElementsByTagName("select");
for(i=0;i!=selects.length;i++){
selects[i].style.visibility="hidden";
}
}
function pause(_973){
var now=new Date();
var _975=now.getTime()+_973;
while(true){
now=new Date();
if(now.getTime()>_975){
return;
}
}
}
function initLightbox(){
myLightbox=new Lightbox();
}
Event.observe(window,"load",initLightbox,false);
