var fileLoadingImage="./plugin_data/lightbox/images/loading.gif";var fileBottomNavCloseImage="./plugin_data/lightbox/images/closelabel.gif";var resizeSpeed=9;var borderSize=10;var lightbox_timeout=5000;var imageArray=new Array;var activeImage;if(resizeSpeed>10){resizeSpeed=10;}
if(resizeSpeed<1){resizeSpeed=1;}
resizeDuration=(11- resizeSpeed)*0.15;Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});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;}
this.timer=null;this.imgPreloader=null;this.myAjax=null;this.myhost=location.protocol+"//"+location.host;var reg=/([\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:\\])/g;this.myhost=this.myhost.replace(reg,"##__BACK_SLASH__##$1").replace(/##__BACK_SLASH__##/g,'\\');this.myhost=new RegExp("^"+this.myhost,"i");var anchors=document.getElementById('body').getElementsByTagName('a');for(var i=0;i<anchors.length;i++){var anchor=anchors[i];var typeAttribute=String(anchor.getAttribute('type'));if(anchor.getAttribute('href')&&(typeAttribute.toLowerCase().match('img')))
{anchor.setAttribute("rel","lightbox[stack]");anchor.onclick=function(){myLightbox.start(this);return false;}}}
var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id','overlay');objOverlay.style.display='none';objOverlay.onclick=function(){myLightbox.end();return false;}
objBody.appendChild(objOverlay);var objLightbox=document.createElement("div");objLightbox.setAttribute('id','lightbox');objLightbox.style.display='none';objBody.appendChild(objLightbox);var objOuterImageContainer=document.createElement("div");objOuterImageContainer.setAttribute('id','outerImageContainer');objLightbox.appendChild(objOuterImageContainer);var objImageContainer=document.createElement("div");objImageContainer.setAttribute('id','imageContainer');objOuterImageContainer.appendChild(objImageContainer);var objLightboxImage=document.createElement("img");objLightboxImage.setAttribute('id','lightboxImage');objImageContainer.appendChild(objLightboxImage);var objHoverNav=document.createElement("div");objHoverNav.setAttribute('id','hoverNav');objImageContainer.appendChild(objHoverNav);var objPrevLink=document.createElement("a");objPrevLink.setAttribute('id','prevLink');objPrevLink.setAttribute('href','#');objHoverNav.appendChild(objPrevLink);var objNextLink=document.createElement("a");objNextLink.setAttribute('id','nextLink');objNextLink.setAttribute('href','#');objHoverNav.appendChild(objNextLink);var objLoading=document.createElement("div");objLoading.setAttribute('id','loading');objImageContainer.appendChild(objLoading);var objLoadingLink=document.createElement("a");objLoadingLink.setAttribute('id','loadingLink');objLoadingLink.setAttribute('href','#');objLoadingLink.onclick=function(){myLightbox.end();return false;}
objLoading.appendChild(objLoadingLink);var objLoadingImage=document.createElement("img");objLoadingImage.setAttribute('src',fileLoadingImage);objLoadingLink.appendChild(objLoadingImage);var objImageDataContainer=document.createElement("div");objImageDataContainer.setAttribute('id','imageDataContainer');objImageDataContainer.className='clearfix';objLightbox.appendChild(objImageDataContainer);var objImageData=document.createElement("div");objImageData.setAttribute('id','imageData');objImageDataContainer.appendChild(objImageData);var objBottomNav=document.createElement("div");objBottomNav.setAttribute('id','bottomNav');objImageData.appendChild(objBottomNav);var objBottomNavCloseLink=document.createElement("a");objBottomNavCloseLink.setAttribute('id','bottomNavClose');objBottomNavCloseLink.setAttribute('href','#');objBottomNavCloseLink.onclick=function(){myLightbox.end();return false;}
objBottomNavCloseLink.innerHTML='&#38281;&#12376;&#12427;';objBottomNavCloseLink.setAttribute('title',objBottomNavCloseLink.innerHTML);objBottomNav.appendChild(objBottomNavCloseLink);var objBottomNavOriginalLinkNew=document.createElement("a");objBottomNavOriginalLinkNew.setAttribute('id','originalLinkNew');objBottomNavOriginalLinkNew.setAttribute('href','#');objBottomNavOriginalLinkNew.onclick=function(){myLightbox.viewOriginalNew();return false;};objBottomNavOriginalLinkNew.style.display='none';objBottomNavOriginalLinkNew.innerHTML='&#26032;&#12375;&#12356;&#12454;&#12452;&#12531;&#12489;&#12454;&#12391;&#38283;&#12367;';objBottomNavOriginalLinkNew.setAttribute('title',objBottomNavOriginalLinkNew.innerHTML);objBottomNav.appendChild(objBottomNavOriginalLinkNew);var objBottomNavOriginalLink=document.createElement("a");objBottomNavOriginalLink.setAttribute('id','originalLink');objBottomNavOriginalLink.setAttribute('href','#');objBottomNavOriginalLink.onclick=function(){myLightbox.viewOriginal();return false;};objBottomNavOriginalLink.style.display='none';objBottomNavOriginalLink.innerHTML='&#21516;&#12376;&#12454;&#12452;&#12531;&#12489;&#12454;&#12391;&#12458;&#12522;&#12472;&#12490;&#12523;&#30011;&#20687;&#12434;&#38283;&#12367;';objBottomNavOriginalLink.setAttribute('title',objBottomNavOriginalLink.innerHTML);objBottomNav.appendChild(objBottomNavOriginalLink);var objImageDetails=document.createElement("div");objImageDetails.setAttribute('id','imageDetails');objImageData.appendChild(objImageDetails);var objCaption=document.createElement("span");objCaption.setAttribute('id','caption');objImageData.appendChild(objCaption);var objNumberDisplay=document.createElement("span");objNumberDisplay.setAttribute('id','numberDisplay');objImageData.appendChild(objNumberDisplay);},start:function(imageLink){hideSelectBoxes();var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);new Effect.Appear('overlay',{duration:0.2,from:0.0,to:0.8});imageArray=[];imageNum=0;if(!document.getElementsByTagName){return;}
var anchors=document.getElementById('body').getElementsByTagName('a');if((imageLink.getAttribute('rel')=='lightbox')){imageArray.push(new Array(imageLink.getAttribute('href'),imageLink.getAttribute('title')));}else{for(var i=0;i<anchors.length;i++){var anchor=anchors[i];if(anchor.getAttribute('href')&&(anchor.getAttribute('rel')==imageLink.getAttribute('rel'))){imageArray.push(new Array(anchor.getAttribute('href'),anchor.getAttribute('title')));}}
imageArray.removeDuplicates();while(imageArray[imageNum][0]!=imageLink.getAttribute('href')){imageNum++;}}
var arrayPageSize=getPageSize();var arrayPageScroll=getPageScroll();var lightboxTop=arrayPageScroll[1]+(arrayPageSize[3]/30);Element.setTop('lightbox',lightboxTop);Element.show('lightbox');this.changeImage(imageNum);},changeImage:function(imageNum){activeImage=imageNum;Element.show('loading');Element.hide('lightboxImage');Element.hide('hoverNav');Element.hide('prevLink');Element.hide('nextLink');Element.hide('imageDataContainer');Element.hide('numberDisplay');this.imgPreloader=new Image();this.imgPreloader.onload=function(){this.myAjax=null;clearTimeout(this.timer);Element.setSrc('lightboxImage',this.imgPreloader.src);this.resizeImageContainer(this.imgPreloader.width,this.imgPreloader.height);}.bind(this);this.imgPreloader.src=imageArray[activeImage][0];if(this.imgPreloader.src.match(/^http/i)&&!this.imgPreloader.src.match(this.myhost))
{this.checkUrl(this.imgPreloader.src);}
this.timer=setTimeout(function(){this.imgPreloader.src='./plugin_data/lightbox/images/timeout.gif';}.bind(this),lightbox_timeout);},checkUrl:function(url){var url='./plugin_data/lightbox/checkurl.php?q='+ encodeURIComponent(url);this.myAjax=new Ajax.Request(url,{method:'GET',requestHeaders:['Referer',document.location],onComplete:this.onCheckedUrl.bind(this)});},onCheckedUrl:function(Req){var rc=eval(Req.responseText);if(rc!=200)
{this.imgPreloader.src='./plugin_data/lightbox/images/notfound.gif';}},resizeImageContainer:function(imgWidth,imgHeight){document.getElementById('bottomNavClose').style.display='block';document.getElementById('originalLinkNew').style.display='none';document.getElementById('originalLink').style.display='none';var boxHeight=imgHeight+ 36+(borderSize*3);var boxWidth=imgWidth+(borderSize*2);var ratio=0.8;if(arrayPageSize[3]<=boxHeight|arrayPageSize[2]<=boxWidth){if(arrayPageSize[3]<=boxHeight){imgRatio=imgWidth/imgHeight;imgHeight=(arrayPageSize[3]- 36-(borderSize*3))*ratio;imgWidth=imgHeight*imgRatio;if(arrayPageSize[2]<=boxWidth){imgRatio=imgHeight/imgWidth;imgWidth=(arrayPageSize[2]-(borderSize*2))*ratio;imgHeight=imgWidth*imgRatio;if(arrayPageSize[3]<=boxHeight){imgRatio=imgWidth/imgHeight;imgHeight=(arrayPageSize[3]- 36-(borderSize*3))*ratio;imgWidth=imgHeight*imgRatio;}}}else if(arrayPageSize[2]<=boxWidth){imgRatio=imgHeight/imgWidth;imgWidth=(arrayPageSize[2]-(borderSize*2))*ratio;imgHeight=imgWidth*imgRatio;if(arrayPageSize[3]<=boxHeight){imgRatio=imgWidth/imgHeight;imgHeight=(arrayPageSize[3]- 36-(borderSize*3))*ratio;imgWidth=imgHeight*imgRatio;if(arrayPageSize[2]<=boxWidth){imgRatio=imgHeight/imgWidth;imgWidth=(arrayPageSize[2]-(borderSize*2))*ratio;imgHeight=imgWidth*imgRatio;}}}
document.getElementById('originalLinkNew').style.display='block';document.getElementById('originalLink').style.display='block';}
document.getElementById('lightboxImage').width=imgWidth;document.getElementById('lightboxImage').height=imgHeight;document.getElementById('imageDetails').style.width=imgWidth- 220+'px';this.wCur=Element.getWidth('outerImageContainer');this.hCur=Element.getHeight('outerImageContainer');this.xScale=((imgWidth+(borderSize*2))/this.wCur)*100;this.yScale=((imgHeight+(borderSize*2))/this.hCur)*100;wDiff=(this.wCur- borderSize*2)- imgWidth;hDiff=(this.hCur- borderSize*2)- imgHeight;if(!(hDiff==0)){new Effect.Scale('outerImageContainer',this.yScale,{scaleX:false,duration:resizeDuration,queue:'front'});}
if(!(wDiff==0)){new Effect.Scale('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('prevLink',imgHeight);Element.setHeight('nextLink',imgHeight);Element.setWidth('imageDataContainer',imgWidth+(borderSize*2));this.showImage();},showImage:function(){Element.hide('loading');new Effect.Appear('lightboxImage',{duration:0.5,queue:'end',afterFinish:function(){myLightbox.updateDetails();}});this.preloadNeighborImages();},updateDetails:function(){Element.show('caption');Element.setInnerHTML('caption',imageArray[activeImage][1]);if(imageArray.length>1){Element.show('numberDisplay');Element.setInnerHTML('numberDisplay',"<a href=\""+imageArray[activeImage][0]+"\" title=\"Open this window\">Image "+ eval(activeImage+ 1)+"</a> of "+ imageArray.length);}
new Effect.Parallel([new Effect.SlideDown('imageDataContainer',{sync:true,duration:resizeDuration+ 0.25,from:0.0,to:1.0}),new Effect.Appear('imageDataContainer',{sync:true,duration:1.0})],{duration:0.65,afterFinish:function(){myLightbox.updateNav();}});},updateNav:function(){Element.show('hoverNav');if(activeImage!=0){Element.show('prevLink');document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage- 1);return false;}}
if(activeImage!=(imageArray.length- 1)){Element.show('nextLink');document.getElementById('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(){document.getElementById('bottomNavClose').style.display='none';document.getElementById('originalLinkNew').style.display='none';document.getElementById('originalLink').style.display='none';this.disableKeyboardNav();Element.hide('lightbox');new Effect.Fade('overlay',{duration:0.2});showSelectBoxes();},viewOriginalNew:function(){window.open(document.getElementById('lightboxImage').src);},viewOriginal:function(){window.location.href=document.getElementById('lightboxImage').src;}}
function getPageScroll(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;}
arrayPageScroll=new Array('',yScroll)
return arrayPageScroll;}
function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+ window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,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++){if(!selects[i].id.match(/^edit_/))
{selects[i].style.visibility="visible";}}}
function hideSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){if(!selects[i].id.match(/^edit_/))
{selects[i].style.visibility="hidden";}}}
function pause(numberMillis){var now=new Date();var exitTime=now.getTime()+ numberMillis;while(true){now=new Date();if(now.getTime()>exitTime)
return;}}
function initLightbox(){myLightbox=new Lightbox();}
Event.observe(window,'load',initLightbox,false);
