/**
 * jQuery Lightbox @author Warren Krewenki
 * Version 0.5 - 11/29/2007
 *
 *	Modified By		:	Eung Chan Park
 *	Modified Date	:	2009-03-05
 *	Description		:	To be able to use an IFRAME in a lightbox
 *
 **/

(function($){
var opts
$.fn.lightbox_iframe=function(options){
opts=$.extend({},$.fn.lightbox_iframe.defaults,options)
$.fn.lightbox_iframe.initialize()
return this.each(function(){
$(this).click(function(){
$(this).lightbox_iframe.start(this)
return false
})
})}
$.fn.lightbox_iframe.initialize=function(){
$('#overlay').remove()
$('#lightbox_iframe').remove()
opts.inprogress=false
var outerImage='<div id="outerImageContainer_iframe"><div id="imageContainer_iframe"><iframe id="iframe_lightbox" frameborder="0" width="'+opts.frameWidth+'" height="'+opts.frameHeight+'"></iframe><div id="hoverNav_iframe"><a href="javascript://" title="'+opts.strings.prevLinkTitle+'" id="prevLink_iframe"></a><a href="javascript://" id="nextLink_iframe" title="'+opts.strings.nextLinkTitle+'"></a></div><div id="loading_iframe"><a href="javascript://" id="loadingLink_iframe"><img src="'+opts.fileLoadingImage+'"></a></div></div></div>'
var imageData='<div id="imageDataContainer_iframe" class="clearfix"><div id="imageData_iframe"><div id="imageDetails_iframe"><span id="caption_iframe"></span><span id="numberDisplay_iframe"></span></div><div id="bottomNav_iframe">'
if(opts.displayHelp)
imageData+='<span id="helpDisplay_iframe">'+opts.strings.help+'</span>'
imageData+='<a href="javascript://" id="bottomNavClose_iframe" title="'+opts.strings.closeTitle+'"><img src="'+opts.fileBottomNavCloseImage+'"></a></div></div></div>'
var string
if(opts.navbarOnTop){
string='<div id="overlay"></div><div id="lightbox_iframe">'+outerImage+imageData+'</div>'
$("body").append(string)
$("#imageDataContainer_iframe").addClass('ontop')
}else{
string='<div id="overlay"></div><div id="lightbox_iframe">'+imageData+outerImage+'</div>'
$("body").append(string)}
$("#overlay").click(function(){$.fn.lightbox_iframe.end();}).hide()
$("#lightbox_iframe").click(function(){$.fn.lightbox_iframe.end();}).hide()
$("#loadingLink_iframe").click(function(){$.fn.lightbox_iframe.end();return false;})
$("#bottomNavClose_iframe").click(function(){$.fn.lightbox_iframe.end();return false;})
$('#outerImageContainer_iframe').width(opts.widthCurrent).height(opts.heightCurrent)
$('#imageDataContainer_iframe').width(opts.widthCurrent)}
$.fn.lightbox_iframe.getPageSize=function(){
var xScroll,yScroll
if(window.innerHeight&&window.scrollMaxY){
xScroll=window.innerWidth+window.scrollMaxX
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){
if(document.documentElement.clientWidth){
windowWidth=document.documentElement.clientWidth
}else{
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=xScroll
}else{
pageWidth=windowWidth}
var arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize}
$.fn.lightbox_iframe.getPageScroll=function(){
var xScroll,yScroll
if(self.pageYOffset){
yScroll=self.pageYOffset
xScroll=self.pageXOffset
}else if(document.documentElement&&document.documentElement.scrollTop){
yScroll=document.documentElement.scrollTop
xScroll=document.documentElement.scrollLeft
}else if(document.body){
yScroll=document.body.scrollTop
xScroll=document.body.scrollLeft}
var arrayPageScroll=new Array(xScroll,yScroll)
return arrayPageScroll}
$.fn.lightbox_iframe.pause=function(ms){
var date=new Date()
var curDate=null
do{curDate=new Date();}
while(curDate-date<ms)}
$.fn.lightbox_iframe.start=function(imageLink){
$("select, embed, object").hide()
var arrayPageSize=$.fn.lightbox_iframe.getPageSize()
$("#overlay").hide().css({width: '100%',height: arrayPageSize[1]+'px',opacity : opts.overlayOpacity}).fadeIn()
opts.frameArray=[]
frameNum=0
var anchors=document.getElementsByTagName(imageLink.tagName)
if(!imageLink.rel ||(imageLink.rel=='')){
	opts.frameArray.push(new Array(imageLink.href,opts.displayTitle ? imageLink.title : ''))
}else{
$("a").each(function(iIndex){
if(this.href&&(this.rel==imageLink.rel)){
	opts.frameArray.push(new Array(this.href,opts.displayTitle ? this.title : ''))}
})
for(i=0;i<opts.frameArray.length;i++){
for(j=opts.frameArray.length-1;j>i;j--){
if(opts.frameArray[i][0]==opts.frameArray[j][0]){
opts.frameArray.splice(j,1)}}}
while(opts.frameArray[frameNum][0] !=imageLink.href){frameNum++;}}
var arrayPageScroll=$.fn.lightbox_iframe.getPageScroll()
var lightboxTop=arrayPageScroll[1]+(arrayPageSize[3]/10)
var lightboxLeft=arrayPageScroll[0]
$('#lightbox_iframe').css({top: lightboxTop+'px',left: lightboxLeft+'px'}).show()
if(!opts.slideNavBar)
$('#imageData_iframe').hide()
$.fn.lightbox_iframe.changeFrame(frameNum)}
$.fn.lightbox_iframe.changeFrame=function(frameNum){
if(opts.inprogress==false){
opts.inprogress=true
opts.activeFrame=frameNum
$('#loading_iframe').show()
$('#iframe_lightbox').hide()
$('#hoverNav_iframe').hide()
$('#prevLink_iframe').hide()
$('#nextLink_iframe').hide()
if(opts.slideNavBar){
$('#imageDataContainer_iframe').hide()
$('#imageData_iframe').hide()
$.fn.dochangeFrame()
}else{
$.fn.dochangeFrame()}}}
$.fn.dochangeFrame=function(){
/*
imgPreloader=new Image()
imgPreloader.onload=function(){
var newWidth=imgPreloader.width
var newHeight=imgPreloader.height
if(opts.fitToScreen){
var arrayPageSize=$.fn.lightbox_iframe.getPageSize()
var ratio
var initialPageWidth=arrayPageSize[2]-2*opts.borderSize
var initialPageHeight=arrayPageSize[3]-200
if(imgPreloader.height>initialPageHeight){
newWidth=parseInt((initialPageHeight/imgPreloader.height)*imgPreloader.width)
newHeight=initialPageHeight}
else if(imgPreloader.width>initialPageWidth){
newHeight=parseInt((initialPageWidth/imgPreloader.width)*imgPreloader.height)
newWidth=initialPageWidth}}
//$('#iframe_lightbox').attr('src',opts.frameArray[opts.activeFrame][0])
$('#iframe_lightbox').attr('src',opts.frameBaseUrl + opts.frameArray[opts.activeFrame][0])
.width(newWidth).height(newHeight)
$.fn.lightbox_iframe.resizeImageContainer(newWidth,newHeight)}
*/
//imgPreloader.src=opts.frameArray[opts.activeFrame][0]}
$.fn.lightbox_iframe.resizeImageContainer(opts.frameWidth,opts.frameHeight)
$('#iframe_lightbox').attr('src',opts.frameArray[opts.activeFrame][0])}
$.fn.lightbox_iframe.end=function(){
$.fn.lightbox_iframe.disableKeyboardNav()
$('#lightbox_iframe').hide()
$('#overlay').fadeOut()
$('select, object, embed').show()}
$.fn.lightbox_iframe.preloadNeighborImages=function(){
if((opts.frameArray.length-1)>opts.activeFrame){
//preloadNextImage=new Image();
//preloadNextImage.src=opts.frameArray[opts.activeFrame+1][0]

}
if(opts.activeFrame>0){
//preloadPrevImage=new Image()
//preloadPrevImage.src=opts.frameArray[opts.activeFrame-1][0]
	}
}
$.fn.lightbox_iframe.keyboardAction=function(e){
if(e==null){
var keycode=event.keyCode;
var escapeKey=27;
}else{
var keycode=e.keyCode
var escapeKey=e.DOM_VK_ESCAPE}
var key=String.fromCharCode(keycode).toLowerCase()
if((key=='x')||(key=='o')||(key=='c')||(keycode==escapeKey)){
$.fn.lightbox_iframe.end()
}else if((key=='p')||(keycode==37)){
if(opts.activeFrame !=0){
$.fn.lightbox_iframe.disableKeyboardNav()
$.fn.lightbox_iframe.changeFrame(opts.activeFrame-1)}
}else if((key=='n')||(keycode==39)){
if(opts.activeFrame !=(opts.frameArray.length-1)){
$.fn.lightbox_iframe.disableKeyboardNav()
$.fn.lightbox_iframe.changeFrame(opts.activeFrame+1)}}}
$.fn.lightbox_iframe.resizeImageContainer=function(imgWidth,imgHeight){
opts.widthCurrent=document.getElementById('outerImageContainer_iframe').offsetWidth
opts.heightCurrent=document.getElementById('outerImageContainer_iframe').offsetHeight
var widthNew=(imgWidth+(opts.borderSize*2))
var heightNew=(imgHeight+(opts.borderSize*2))
opts.xScale=(widthNew/opts.widthCurrent)*100
opts.yScale=(heightNew/opts.heightCurrent)*100
wDiff=opts.widthCurrent-widthNew
hDiff=opts.heightCurrent-heightNew
$('#imageDataContainer_iframe').animate({width: widthNew},opts.resizeSpeed,'linear')
$('#outerImageContainer_iframe').animate({width: widthNew},opts.resizeSpeed,'linear',function(){
$('#outerImageContainer_iframe').animate({height: heightNew},opts.resizeSpeed,'linear',function(){
$.fn.lightbox_iframe.showImage()
})
})
if((hDiff==0)&&(wDiff==0)){
if(jQuery.browser.msie){$.fn.lightbox_iframe.pause(250);}else{$.fn.lightbox_iframe.pause(100);}}
$('#prevLink_iframe').height(imgHeight)
$('#nextLink_iframe').height(imgHeight)}
$.fn.lightbox_iframe.showImage=function(){
$('#loading_iframe').hide()
$('#iframe_lightbox').fadeIn("fast")
$.fn.lightbox_iframe.updateDetails()
$.fn.lightbox_iframe.preloadNeighborImages()
opts.inprogress=false}
$.fn.lightbox_iframe.updateDetails=function(){
if(opts.frameArray[opts.activeFrame][1]){
$('#caption_iframe').html(opts.frameArray[opts.activeFrame][1]).show()}
if(opts.frameArray.length>1){
var nav_html
nav_html=opts.strings.image+(opts.activeFrame+1)+opts.strings.of+opts.frameArray.length
if((opts.activeFrame)>0){
nav_html='<a title="'+opts.strings.prevLinkTitle+'" href="#" id="prevLinkText_iframe">'+opts.strings.prevLinkText+"</a>"+nav_html}
if((opts.activeFrame+1)<opts.frameArray.length){
nav_html+='<a title="'+opts.strings.nextLinkTitle+'" href="#" id="nextLinkText_iframe">'+opts.strings.nextLinkText+"</a>"}
$('#numberDisplay_iframe').html(nav_html).show()}
if(opts.slideNavBar){
$("#imageData_iframe").slideDown(opts.navBarSlideSpeed)
}else{
$("#imageData_iframe").show()}
var arrayPageSize=$.fn.lightbox_iframe.getPageSize()
$('#overlay').height(arrayPageSize[1])
$.fn.lightbox_iframe.updateNav()}
$.fn.lightbox_iframe.updateNav=function(){
$('#hoverNav_iframe').show()
if(opts.activeFrame !=0){
$('#prevLink_iframe,#prevLinkText_iframe').show().click(function(){
$.fn.lightbox_iframe.changeFrame(opts.activeFrame-1);return false
})}
if(opts.activeFrame !=(opts.frameArray.length-1)){
$('#nextLink_iframe,#nextLinkText_iframe').show().click(function(){
$.fn.lightbox_iframe.changeFrame(opts.activeFrame+1);return false
})}
$.fn.lightbox_iframe.enableKeyboardNav()}
$.fn.lightbox_iframe.enableKeyboardNav=function(){
document.onkeydown=$.fn.lightbox_iframe.keyboardAction}
$.fn.lightbox_iframe.disableKeyboardNav=function(){
document.onkeydown=''}
$.fn.lightbox_iframe.defaults={
fileLoadingImage : 'images/lightbox/loading.gif',
fileBottomNavCloseImage : 'images/lightbox/closelabel.gif',
overlayOpacity : 0.8,
borderSize : 10,
frameArray : new Array,
activeFrame : null,
inprogress : false,
resizeSpeed : 350,
widthCurrent: 250,
heightCurrent: 250,
xScale : 1,
yScale : 1,
frameBaseUrl : "",
frameHref : "",
frameWidth : 780,
frameHeight : 580,
displayTitle: true,
navbarOnTop: false,
slideNavBar: false,
navBarSlideSpeed: 350,
displayHelp: false,
strings :{
help: ' \u2190 / P - previous image\u00a0\u00a0\u00a0\u00a0\u2192 / N - next image\u00a0\u00a0\u00a0\u00a0ESC / X - close image gallery',
prevLinkTitle: 'previous image',
nextLinkTitle: 'next image',
prevLinkText: '&laquo; Previous',
nextLinkText: 'Next &raquo;',
closeTitle: 'close image gallery',
image: 'Image ',
of: ' of '
},
fitToScreen: false}
})(jQuery)