var Shadowbox=function(){
var ua=navigator.userAgent.toLowerCase(),
S={
version: "3.0b",
adapter: null,
current:-1,
gallery: [],
cache: [],
content: null,
dimensions: null,
plugins: null,
path: '',
options:{
adapter: null,
animate: true,
animateFade: true,
autoplayMovies: true,
autoDimensions: false,
continuous: false,
counterLimit: 10,
counterType: 'default',
displayCounter: true,
displayNav: true,
ease: function(x){
return 1+Math.pow(x-1,3)
},
enableKeys: true,
errors:{
fla:{
name: 'Flash',
url: 'http://www.adobe.com/products/flashplayer/'
},
qt:{
name: 'QuickTime',
url: 'http://www.apple.com/quicktime/download/'
},
wmp:{
name: 'Windows Media Player',
url: 'http://www.microsoft.com/windows/windowsmedia/'
},
f4m:{
name: 'Flip4Mac',
url: 'http://www.flip4mac.com/wmv_download.htm'}
},
ext:{
img: ['png','jpg','jpeg','gif','bmp'],
swf: ['swf'],
flv: ['flv'],
qt: ['dv','mov','moov','movie','mp4'],
wmp: ['asf','wm','wmv'],
qtwmp: ['avi','mpg','mpeg'],
iframe: ['asp','aspx','cgi','cfm','htm','html','jsp',
'pl','php','php3','php4','php5','phtml','rb','rhtml',
'shtml','txt','vbs']
},
fadeDuration: 0.35,
flashParams:{
bgcolor: '#000000',
allowFullScreen: true
},
flashVars:{},
flashVersion: '9.0.115',
handleOversize: 'resize',
handleUnsupported: 'link',
initialHeight: 160,
initialWidth: 320,
language: 'en',
modal: false,
onChange: null,
onClose: null,
onFinish: null,
onOpen: null,
overlayColor: '#000',
overlayOpacity: 0.8,
players: ['img'],
resizeDuration: 0.35,
showOverlay: true,
showMovieControls: true,
skipSetup: false,
slideshowDelay: 0,
useSizzle: true,
viewportPadding: 20
},
client:{
isIE: ua.indexOf('msie')>-1,
isIE6: ua.indexOf('msie 6')>-1,
isIE7: ua.indexOf('msie 7')>-1,
isGecko: ua.indexOf('gecko')>-1&&ua.indexOf('safari')==-1,
isWebkit: ua.indexOf('applewebkit/')>-1,
isWindows: ua.indexOf('windows')>-1 || ua.indexOf('win32')>-1,
isMac: ua.indexOf('macintosh')>-1 || ua.indexOf('mac os x')>-1,
isLinux: ua.indexOf('linux')>-1
},
regex:{
domain:/:\/\/(.*?)[:\/]/,
inline:/#(.+)$/,
rel:/^(light|shadow)box/i,
gallery:/^(light|shadow)box\[(.*?)\]/i,
unsupported:/^unsupported-(\w+)/,
param:/\s*([a-z_]*?)\s*=\s*(.+)\s*/
},
libraries:{
Prototype: 'prototype',
jQuery: 'jquery',
MooTools: 'mootools',
YAHOO: 'yui',
dojo: 'dojo',
Ext: 'ext'
},
applyOptions: function(opts){
if(opts){
default_options=apply({},S.options)
apply(S.options,opts)}
},
buildCacheObj: function(link,opts){
var href=link.href,
obj={
el: link,
title: link.getAttribute('title'),
options: apply({},opts ||{}),
content: href}
each(['player','title','height','width','gallery'],function(o){
if(typeof obj.options[o] !='undefined'){
obj[o]=obj.options[o]
delete obj.options[o]}
})
if(!obj.player)
obj.player=getPlayer(href)
var rel=link.getAttribute('rel')
if(rel){
var m=rel.match(S.regex.gallery)
if(m)
obj.gallery=escape(m[2])
each(rel.split(';'),function(p){
m=p.match(S.regex.param)
if(m){
if(m[1]=='options')
eval('apply(obj.options,'+m[2]+')')
else
obj[m[1]]=m[2]}
})}
return obj
},
change: function(n){
if(!S.gallery)return
if(!S.gallery[n]){
if(!S.options.continuous){
return
}else{
n=n<0 ? S.gallery.length-1 : 0}}
S.current=n
if(typeof slide_timer=='number'){
clearTimeout(slide_timer)
slide_timer=null
slide_delay=slide_start=0}
if(S.options.onChange)
S.options.onChange()
loadContent()
},
clearCache: function(){
each(S.cache,function(obj){
if(obj.el)
S.lib.removeEvent(obj.el,'click',handleClick)
})
S.cache=[]
},
close: function(){
if(!active)return
active=false
listenKeys(false)
if(S.content){
S.content.remove()
S.content=null}
if(typeof slide_timer=='number')
clearTimeout(slide_timer)
slide_timer=null
slide_delay=0
if(S.options.onClose)
S.options.onClose()
S.skin.onClose()
S.revertOptions()
each(v_cache,function(c){
c[0].style.visibility=c[1]
})
},
contentId: function(){
return content_id
},
getCounter: function(){
var len=S.gallery.length
if(S.options.counterType=='skip'){
var c=[],
i=0,
end=len,
limit=parseInt(S.options.counterLimit)|| 0
if(limit<len&&limit>2){
var h=Math.floor(limit/2)
i=S.current-h
if(i<0)i+=len
end=S.current+(limit-h)
if(end>len)end-=len}
while(i !=end){
if(i==len)i=0
c.push(i++)}
}else
var c=(S.current+1)+' '+S.lang.of+' '+len
return c
},
getCurrent: function(){
return S.current>-1 ? S.gallery[S.current] : null
},
hasNext: function(){
return S.gallery.length>1&&
(S.current !=S.gallery.length-1 || S.options.continuous)
},
init: function(opts){
if(initialized)return
initialized=true
opts=opts ||{}
init_options=opts
if(opts)
apply(S.options,opts)
for(var e in S.options.ext)
S.regex[e]=new RegExp('\.('+S.options.ext[e].join('|')+')\s*$','i')
if(!S.path){
var path_re=/(.+)shadowbox\.js/i,path
each(document.getElementsByTagName('script'),function(s){
if((path=path_re.exec(s.src))!=null){
S.path=path[1]
return false}
})}
if(S.options.adapter)
S.adapter=S.options.adapter
else{
for(var lib in S.libraries){
if(typeof window[lib] !='undefined'){
S.adapter=S.libraries[lib]
break}}
if(!S.adapter)
S.adapter='base'}
if(S.options.useSizzle&&!window['Sizzle'])
U.include(S.path+'libraries/sizzle/sizzle.js')
if(!S.lang)
U.include(S.path+'languages/shadowbox-'+S.options.language+'.js')
each(S.options.players,function(p){
if((p=='swf' || p=='flv')&&!window['swfobject'])
U.include(S.path+'libraries/swfobject/swfobject.js')
if(!S[p])
U.include(S.path+'players/shadowbox-'+p+'.js')
})
if(!S.lib)
U.include(S.path+'adapters/shadowbox-'+S.adapter+'.js')
},
isActive: function(){
return active
},
isPaused: function(){
return slide_timer=='paused'
},
load: function(){
if(S.skin.options){
apply(S.options,S.skin.options)
apply(S.options,init_options)}
var markup=S.skin.markup.replace(/\{(\w+)\}/g,function(m,p){
return S.lang[p]
})
S.lib.append(document.body,markup)
if(S.skin.init)
S.skin.init()
var id
S.lib.addEvent(window,'resize',function(){
if(id){
clearTimeout(id)
id=null}
if(active){
id=setTimeout(function(){
if(S.skin.onWindowResize)
S.skin.onWindowResize()
var c=S.content
if(c&&c.onWindowResize)
c.onWindowResize()
},50)}
})
if(!S.options.skipSetup)
S.setup()
},
next: function(){
S.change(S.current+1)
},
open: function(obj){
if(U.isLink(obj))
obj=S.buildCacheObj(obj)
if(obj.constructor==Array){
S.gallery=obj
S.current=0
}else{
if(!obj.gallery){
S.gallery=[obj]
S.current=0
}else{
S.current=null
S.gallery=[]
each(S.cache,function(c){
if(c.gallery&&c.gallery==obj.gallery){
if(S.current==null&&c.content==obj.content&&c.title==obj.title)
S.current=S.gallery.length
S.gallery.push(c)}
})
if(S.current==null){
S.gallery.unshift(obj)
S.current=0}}}
obj=S.getCurrent()
if(obj.options){
S.revertOptions()
S.applyOptions(obj.options)}
var g,r,m,s,a,oe=S.options.errors,msg,el
for(var i=0;i<S.gallery.length;++i){
g=S.gallery[i]=apply({},S.gallery[i])
r=false
if(g.player=='unsupported'){
r=true
}else if(m=S.regex.unsupported.exec(g.player)){
if(S.options.handleUnsupported=='link'){
g.player='html'
switch(m[1]){
case 'qtwmp':
s='either'
a=[oe.qt.url,oe.qt.name,oe.wmp.url,oe.wmp.name]
break
case 'qtf4m':
s='shared'
a=[oe.qt.url,oe.qt.name,oe.f4m.url,oe.f4m.name]
break
default:
s='single'
if(m[1]=='swf' || m[1]=='flv')m[1]='fla'
a=[oe[m[1]].url,oe[m[1]].name]}
msg=S.lang.errors[s].replace(/\{(\d+)\}/g,function(m,n){
return a[n]
})
g.content='<div class="sb-message">'+msg+'</div>'
}else
r=true
}else if(g.player=='inline'){
m=S.regex.inline.exec(g.content)
if(m){
var el=U.get(m[1])
if(el)
g.content=el.innerHTML
else
throw 'Cannot find element with id '+m[1]
}else
throw 'Cannot find element id for inline content'
}else if(g.player=='swf' || g.player=='flv'){
var version=(g.options&&g.options.flashVersion)|| S.options.flashVersion
if(!swfobject.hasFlashPlayerVersion(version)){
g.width=310
g.height=177}}
if(r){
S.gallery.splice(i,1)
if(i<S.current)
--S.current
else if(i==S.current)
S.current=i>0 ? i-1 : i
--i}}
if(S.gallery.length){
if(!active){
if(typeof S.options.onOpen=='function'&&S.options.onOpen(obj)===false)return
v_cache=[]
each(['select','object','embed','canvas'],function(tag){
each(document.getElementsByTagName(tag),function(el){
v_cache.push([el,el.style.visibility || 'visible'])
el.style.visibility='hidden'
})
})
var h=S.options.autoDimensions&&'height' in obj
? obj.height
: S.options.initialHeight
var w=S.options.autoDimensions&&'width' in obj
? obj.width
: S.options.initialWidth
S.skin.onOpen(h,w,loadContent)
}else
loadContent()
active=true}
},
pause: function(){
if(typeof slide_timer !='number')return
var time=new Date().getTime()
slide_delay=Math.max(0,slide_delay-(time-slide_start))
if(slide_delay){
clearTimeout(slide_timer)
slide_timer='paused'
if(S.skin.onPause)
S.skin.onPause()}
},
play: function(){
if(!S.hasNext())return
if(!slide_delay)slide_delay=S.options.slideshowDelay*1000
if(slide_delay){
slide_start=new Date().getTime()
slide_timer=setTimeout(function(){
slide_delay=slide_start=0
S.next()
},slide_delay)
if(S.skin.onPlay)
S.skin.onPlay()}
},
previous: function(){
S.change(S.current-1)
},
revertOptions: function(){
apply(S.options,default_options)
},
setDimensions: function(height,width,max_h,max_w,tb,lr,resizable){
var h=height=parseInt(height),
w=width=parseInt(width),
pad=parseInt(S.options.viewportPadding)|| 0
var extra_h=2*pad+tb
if(h+extra_h>=max_h)h=max_h-extra_h
var extra_w=2*pad+lr
if(w+extra_w>=max_w)w=max_w-extra_w
var resize_h=height,
resize_w=width,
change_h=(height-h)/height,
change_w=(width-w)/width,
oversized=(change_h>0 || change_w>0)
if(resizable&&oversized&&S.options.handleOversize=='resize'){
if(change_h>change_w)
w=Math.round((width/height)*h)
else if(change_w>change_h)
h=Math.round((height/width)*w)
resize_w=w
resize_h=h}
S.dimensions={
height: h+tb,
width: w+lr,
inner_h: h,
inner_w: w,
top:(max_h-(h+extra_h))/2+pad,
left:(max_w-(w+extra_w))/2+pad,
oversized: oversized,
resize_h: resize_h,
resize_w: resize_w}
return S.dimensions
},
setup: function(links,opts){
if(!links){
var links=[],rel
each(document.getElementsByTagName('a'),function(a){
rel=a.getAttribute('rel')
if(rel&&S.regex.rel.test(rel))links.push(a)
})
}else{
var len=links.length
if(len){
if(window['Sizzle']){
if(typeof links=='string')
links=Sizzle(links)
else if(len==2&&links.push&&typeof links[0]=='string'&&links[1].nodeType)
links=Sizzle(links[0],links[1])}
}else
links=[links]}
each(links,function(link){
if(typeof link.shadowboxCacheKey=='undefined'){
link.shadowboxCacheKey=S.cache.length
S.lib.addEvent(link,'click',handleClick)}
S.cache[link.shadowboxCacheKey]=S.buildCacheObj(link,opts)
})}
},
U=S.util={
animate: function(el,p,to,d,cb){
var from=parseFloat(S.lib.getStyle(el,p))
if(isNaN(from))from=0
var delta=to-from
if(delta==0){
if(cb)cb()
return}
var op=p=='opacity'
function fn(ease){
var to=from+ease*delta
if(op)
U.setOpacity(el,to)
else
el.style[p]=to+'px'}
if(!d ||(!op&&!S.options.animate)||(op&&!S.options.animateFade)){
fn(1)
if(cb)cb()
return}
d*=1000
var begin=new Date().getTime(),
end=begin+d,
time,
timer=setInterval(function(){
time=new Date().getTime()
if(time>=end){
clearInterval(timer)
fn(1)
if(cb)cb()
}else
fn(S.options.ease((time-begin)/d))
},10)
},
apply: function(o,e){
for(var p in e)
o[p]=e[p]
return o
},
clearOpacity: function(el){
var s=el.style
if(window.ActiveXObject){
if(typeof s.filter=='string'&&(/alpha/i).test(s.filter))
s.filter=s.filter.replace(/[\w\.]*alpha\(.*?\);?/i,'')
}else
s.opacity=''
},
each: function(obj,fn,scope){
for(var i=0,len=obj.length;i<len;++i)
if(fn.call(scope || obj[i],obj[i],i,obj)===false)return
},
get: function(id){
return document.getElementById(id)
},
include: function(){
var includes={}
return function(file){
if(includes[file])return
includes[file]=true
document.write('<scr'+'ipt type="text/javascript" src="'+file+'"><\/script>')}
}(),
isLink: function(obj){
if(!obj || !obj.tagName)return false
var up=obj.tagName.toUpperCase()
return up=='A' || up=='AREA'
},
removeChildren: function(el){
while(el.firstChild)
el.removeChild(el.firstChild)
},
setOpacity: function(el,o){
var s=el.style
if(window.ActiveXObject){
s.zoom=1
s.filter=(s.filter || '').replace(/\s*alpha\([^\)]*\)/gi,'')+
(o==1 ? '' : ' alpha(opacity='+(o*100)+')')
}else
s.opacity=o}
},
apply=U.apply,
each=U.each,
init_options,
initialized=false,
default_options={},
content_id='sb-content',
active=false,
slide_timer,
slide_start,
slide_delay=0,
v_cache=[]
if(navigator.plugins&&navigator.plugins.length){
var names=[]
each(navigator.plugins,function(p){
names.push(p.name)
})
names=names.join()
var detectPlugin=function(n){
return names.indexOf(n)>-1}
var f4m=detectPlugin('Flip4Mac')
S.plugins={
fla: detectPlugin('Shockwave Flash'),
qt: detectPlugin('QuickTime'),
wmp: !f4m&&detectPlugin('Windows Media'),
f4m: f4m}
}else{
function detectPlugin(n){
try{
var axo=new ActiveXObject(n)
}catch(e){}
return !!axo}
S.plugins={
fla: detectPlugin('ShockwaveFlash.ShockwaveFlash'),
qt: detectPlugin('QuickTime.QuickTime'),
wmp: detectPlugin('wmplayer.ocx'),
f4m: false}}
function getPlayer(url){
var re=S.regex,
p=S.plugins,
m=url.match(re.domain),
d=m&&document.domain==m[1]
if(url.indexOf('#')>-1&&d)return 'inline'
var q=url.indexOf('?')
if(q>-1)url=url.substring(0,q)
if(re.img.test(url))return 'img'
if(re.swf.test(url))return p.fla ? 'swf' : 'unsupported-swf'
if(re.flv.test(url))return p.fla ? 'flv' : 'unsupported-flv'
if(re.qt.test(url))return p.qt ? 'qt' : 'unsupported-qt'
if(re.wmp.test(url)){
if(p.wmp)return 'wmp'
if(p.f4m)return 'qt'
if(S.client.isMac)return p.qt ? 'unsupported-f4m' : 'unsupported-qtf4m'
return 'unsupported-wmp'}
if(re.qtwmp.test(url)){
if(p.qt)return 'qt'
if(p.wmp)return 'wmp'
return S.client.isMac ? 'unsupported-qt' : 'unsupported-qtwmp'}
if(!d || re.iframe.test(url))
return 'iframe'
return 'unsupported'}
function handleClick(e){
var link
if(U.isLink(this)){
link=this
}else{
link=S.lib.getTarget(e)
while(!U.isLink(link)&&link.parentNode)
link=link.parentNode}
if(link){
var key=link.shadowboxCacheKey
if(typeof key !='undefined'&&typeof S.cache[key] !='undefined')
link=S.cache[key]
S.open(link)
if(S.gallery.length)S.lib.preventDefault(e)}}
function listenKeys(on){
if(!S.options.enableKeys)return
S.lib[(on ? 'add' : 'remove')+'Event'](document,'keydown',handleKey)}
function handleKey(e){
var code=S.lib.keyCode(e)
S.lib.preventDefault(e)
switch(code){
case 81:
case 88:
case 27:
S.close()
break
case 37:
S.previous()
break
case 39:
S.next()
break
case 32:
S[(typeof slide_timer=='number' ? 'pause' : 'play')]()}}
function loadContent(){
var obj=S.getCurrent()
if(!obj)return
var p=obj.player=='inline' ? 'html' : obj.player
if(typeof S[p] !='function')
throw 'Unknown player: '+p
var change=false
if(S.content){
S.content.remove()
change=true
S.revertOptions()
if(obj.options)
S.applyOptions(obj.options)}
U.removeChildren(S.skin.bodyEl())
S.content=new S[p](obj)
listenKeys(false)
S.skin.onLoad(S.content,change,function(){
if(!S.content)return
if(typeof S.content.ready !='undefined'){
var id=setInterval(function(){
if(S.content){
if(S.content.ready){
clearInterval(id)
id=null
S.skin.onReady(contentReady)}
}else{
clearInterval(id)
id=null}
},100)
}else
S.skin.onReady(contentReady)
})
if(S.gallery.length>1){
var next=S.gallery[S.current+1] || S.gallery[0]
if(next.player=='img'){
var a=new Image()
a.src=next.content}
var prev=S.gallery[S.current-1] || S.gallery[S.gallery.length-1]
if(prev.player=='img'){
var b=new Image()
b.src=prev.content}}}
function contentReady(){
if(!S.content)return
S.content.append(S.skin.bodyEl(),content_id,S.dimensions)
S.skin.onFinish(finishContent)}
function finishContent(){
if(!S.content)return
if(S.content.onLoad)
S.content.onLoad()
if(S.options.onFinish)
S.options.onFinish()
if(!S.isPaused())
S.play()
listenKeys(true)}
return S
}()
Shadowbox.skin=function(){
var S=Shadowbox,
U=S.util,
overlay_on=false,
png=[
'sb-nav-close',
'sb-nav-next',
'sb-nav-play',
'sb-nav-pause',
'sb-nav-previous'
]
function fixTop(){
U.get('sb-container').style.top=document.documentElement.scrollTop+'px'}
function toggleVisible(cb){
var so=U.get('sb-overlay'),
sc=U.get('sb-container'),
sb=U.get('sb-wrapper')
if(cb){
if(S.client.isIE6){
fixTop()
S.lib.addEvent(window,'scroll',fixTop)}
if(S.options.showOverlay){
overlay_on=true
so.style.backgroundColor=S.options.overlayColor
U.setOpacity(so,0)
if(!S.options.modal)S.lib.addEvent(so,'click',S.close)
sb.style.display='none'}
sc.style.visibility='visible'
if(overlay_on){
var op=parseFloat(S.options.overlayOpacity)
U.animate(so,'opacity',op,S.options.fadeDuration,cb)
}else
cb()
}else{
if(S.client.isIE6)
S.lib.removeEvent(window,'scroll',fixTop)
S.lib.removeEvent(so,'click',S.close)
if(overlay_on){
sb.style.display='none'
U.animate(so,'opacity',0,S.options.fadeDuration,function(){
sc.style.display=''
sb.style.display=''
U.clearOpacity(so)
})
}else
sc.style.visibility='hidden'}}
function toggleNav(id,on){
var el=U.get('sb-nav-'+id)
if(el)el.style.display=on ? '' : 'none'}
function toggleLoading(on,cb){
var ld=U.get('sb-loading'),
p=S.getCurrent().player,
anim=(p=='img' || p=='html')
if(on){
function fn(){
U.clearOpacity(ld)
if(cb)cb()}
U.setOpacity(ld,0)
ld.style.display=''
if(anim)
U.animate(ld,'opacity',1,S.options.fadeDuration,fn)
else
fn()
}else{
function fn(){
ld.style.display='none'
U.clearOpacity(ld)
if(cb)cb()}
if(anim)
U.animate(ld,'opacity',0,S.options.fadeDuration,fn)
else
fn()}}
function buildBars(cb){
var obj=S.getCurrent()
U.get('sb-title-inner').innerHTML=obj.title || ''
var c,n,pl,pa,p
if(S.options.displayNav){
c=true
var len=S.gallery.length
if(len>1){
if(S.options.continuous)
n=p=true
else{
n=(len-1)>S.current
p=S.current>0}}
if(S.options.slideshowDelay>0&&S.hasNext()){
pa=!S.isPaused()
pl=!pa}
}else{
c=n=pl=pa=p=false}
toggleNav('close',c)
toggleNav('next',n)
toggleNav('play',pl)
toggleNav('pause',pa)
toggleNav('previous',p)
var c=''
if(S.options.displayCounter&&S.gallery.length>1){
var count=S.getCounter()
if(typeof count=='string')
c=count
else{
U.each(count,function(i){
c+='<a onclick="Shadowbox.change('+i+');"'
if(i==S.current)c+=' class="sb-counter-current"'
c+='>'+(i+1)+'</a>'
})}}
U.get('sb-counter').innerHTML=c
cb()}
function hideBars(anim,cb){
var sw=U.get('sb-wrapper'),
st=U.get('sb-title'),
si=U.get('sb-info'),
ti=U.get('sb-title-inner'),
ii=U.get('sb-info-inner'),
t=parseInt(S.lib.getStyle(ti,'height'))|| 0,
b=parseInt(S.lib.getStyle(ii,'height'))|| 0
function fn(){
ti.style.visibility=ii.style.visibility='hidden'
buildBars(cb)}
if(anim){
U.animate(st,'height',0,0.35)
U.animate(si,'height',0,0.35)
U.animate(sw,'paddingTop',t,0.35)
U.animate(sw,'paddingBottom',b,0.35,fn)
}else{
st.style.height=si.style.height='0px'
sw.style.paddingTop=t+'px'
sw.style.paddingBottom=b+'px'
fn()}}
function showBars(cb){
var sw=U.get('sb-wrapper'),
st=U.get('sb-title'),
si=U.get('sb-info'),
ti=U.get('sb-title-inner'),
ii=U.get('sb-info-inner'),
t=parseInt(S.lib.getStyle(ti,'height'))|| 0,
b=parseInt(S.lib.getStyle(ii,'height'))|| 0
ti.style.visibility=ii.style.visibility=''
if(ti.innerHTML !=''){
U.animate(st,'height',t,0.35)
U.animate(sw,'paddingTop',0,0.35)}
U.animate(si,'height',b,0.35)
U.animate(sw,'paddingBottom',0,0.35,cb)}
function adjustHeight(height,top,anim,cb){
var sb=U.get('sb-body'),
s=U.get('sb-wrapper'),
h=parseInt(height),
t=parseInt(top)
if(anim){
U.animate(sb,'height',h,S.options.resizeDuration)
U.animate(s,'top',t,S.options.resizeDuration,cb)
}else{
sb.style.height=h+'px'
s.style.top=t+'px'
if(cb)cb()}}
function adjustWidth(width,left,anim,cb){
var s=U.get('sb-wrapper'),
w=parseInt(width),
l=parseInt(left)
if(anim){
U.animate(s,'width',w,S.options.resizeDuration)
U.animate(s,'left',l,S.options.resizeDuration,cb)
}else{
s.style.width=w+'px'
s.style.left=l+'px'
if(cb)cb()}}
function resizeContent(cb){
var c=S.content
if(!c)return
var d=setDimensions(c.height,c.width,c.resizable)
switch(S.options.animSequence){
case 'hw':
adjustHeight(d.inner_h,d.top,true,function(){
adjustWidth(d.width,d.left,true,cb)
})
break
case 'wh':
adjustWidth(d.width,d.left,true,function(){
adjustHeight(d.inner_h,d.top,true,cb)
})
break
default:
adjustWidth(d.width,d.left,true)
adjustHeight(d.inner_h,d.top,true,cb)}}
function setDimensions(height,width,resizable){
var sbi=U.get('sb-body-inner')
sw=U.get('sb-wrapper'),
so=U.get('sb-overlay'),
tb=sw.offsetHeight-sbi.offsetHeight,
lr=sw.offsetWidth-sbi.offsetWidth,
max_h=so.offsetHeight,
max_w=so.offsetWidth
return S.setDimensions(height,width,max_h,max_w,tb,lr,resizable)}
return{
markup: '<div id="sb-container">'+
'<div id="sb-overlay"></div>'+
'<div id="sb-wrapper">'+
'<div id="sb-title">'+
'<div id="sb-title-inner"></div>'+
'</div>'+
'<div id="sb-body">'+
'<div id="sb-body-inner"></div>'+
'<div id="sb-loading">'+
'<a onclick="Shadowbox.close()">{cancel}</a>'+
'</div>'+
'</div>'+
'<div id="sb-info">'+
'<div id="sb-info-inner">'+
'<div id="sb-counter"></div>'+
'<div id="sb-nav">'+
'<a id="sb-nav-close" title="{close}" onclick="Shadowbox.close()"></a>'+
'<a id="sb-nav-next" title="{next}" onclick="Shadowbox.next()"></a>'+
'<a id="sb-nav-play" title="{play}" onclick="Shadowbox.play()"></a>'+
'<a id="sb-nav-pause" title="{pause}" onclick="Shadowbox.pause()"></a>'+
'<a id="sb-nav-previous" title="{previous}" onclick="Shadowbox.previous()"></a>'+
'</div>'+
'<div style="clear:both"></div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>',
options:{
animSequence: 'sync'
},
init: function(){
if(S.client.isIE6){
U.get('sb-body').style.zoom=1
var el,m,re=/url\("(.*\.png)"\)/
U.each(png,function(id){
el=U.get(id)
if(el){
m=S.lib.getStyle(el,'backgroundImage').match(re)
if(m){
el.style.backgroundImage='none'
el.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src='+
m[1]+',sizingMethod=scale);'}}
})}
},
bodyEl: function(){
return U.get('sb-body-inner')
},
onOpen: function(h,w,cb){
U.get('sb-container').style.display='block'
var d=setDimensions(h,w)
adjustHeight(d.inner_h,d.top,false)
adjustWidth(d.width,d.left,false)
toggleVisible(cb)
},
onLoad: function(content,change,cb){
toggleLoading(true)
hideBars(change,function(){
if(!content)return
if(!change)U.get('sb-wrapper').style.display=''
cb()
})
},
onReady: function(cb){
resizeContent(function(){
showBars(cb)
})
},
onFinish: function(cb){
toggleLoading(false,cb)
},
onClose: function(){
toggleVisible(false)
},
onPlay: function(){
toggleNav('play',false)
toggleNav('pause',true)
},
onPause: function(){
toggleNav('pause',false)
toggleNav('play',true)
},
onWindowResize: function(){
var c=S.content
if(!c)return
var d=setDimensions(c.height,c.width,c.resizable)
adjustWidth(d.width,d.left,false)
adjustHeight(d.inner_h,d.top,false)
var el=U.get(S.contentId())
if(el){
if(c.resizable&&S.options.handleOversize=='resize'){
el.height=d.resize_h
el.width=d.resize_w}}}}
}()

