overlay-3

时间:2022-07-13 22:31:52

if(typeof Shadowbox=="undefined"){
throw"Unable to load Shadowbox, no base library adapter found."
}(function(){
var version="1.0";
var options={assetURL:context+"/static/style/images/",
loadingImage:"loading.gif",
animate:true,animSequence:"wh",
flvPlayer:"flvplayer.swf",
overlayColor:"#000",
overlayOpacity:0.55,
overlayBgImage:"overlay-85.png",
listenOverlay:false,
autoplayMovies:true,
showMovieControls:true,
resizeDuration:0.35,
fadeDuration:0.35,
displayNav:true,
continuous:false,
displayCounter:true,
//counterType:"default", //iris
viewportPadding:40,
handleLgImages:"resize",
initialHeight:160,
initialWidth:320,
enableKeys:true,
keysClose:["c","q",27],
keysNext:["n",39],
keysPrev:["p",37],
onOpen:null,
onFinish:null,
onChange:null,
onClose:null,
handleUnsupported:"link",
skipSetup:false,
text:{cancel:"Cancel",
loading:"Loading",
close:'x',
next:'<span class="shortcut">N</span>ext',
prev:'<span class="shortcut">P</span>revious',
errors:{
single:'You must install the <a href="{0}">{1}</a> browser plugin to view this content.',
shared:'You must install both the <a href="{0}">{1}</a> and <a href="{2}">{3}</a> browser plugins to view this content.',
either:'You must install either the <a href="{0}">{1}</a> or the <a href="{2}">{3}</a> browser plugin to view this content.'}
},
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"}
},
skin:{
main:'<div id="shadowbox_overlay" class="overlay-shadowbox"></div><div id="shadowbox_container" class="overlay"><div id="shadowbox"><div id="shadowbox_title" class="overlay-title"><div id="shadowbox_title_inner"></div></div><div id="shadowbox_body" class="overlay-body"><div id="shadowbox_body_inner" class="overlay-cont"></div><div id="shadowbox_loading" class="overlay-load"></div></div><div id="shadowbox_toolbar" class="overlay-toolbar"><div id="shadowbox_toolbar_inner"></div></div></div></div>',loading:'<img src="{0}" alt="{1}" /><span><a href="javascript:Shadowbox.close();">{2}</a></span>',
counter:'<div id="shadowbox_counter">{0}</div>',
close:'<div id="shadowbox_nav_close"><a href="javascript:Shadowbox.close();">{0}</a></div>',
next:'<div id="shadowbox_nav_next"><a href="javascript:Shadowbox.next();">{0}</a></div>',
prev:'<div id="shadowbox_nav_previous"><a href="javascript:Shadowbox.previous();">{0}</a></div>'},
ext:{img:["png","jpg","jpeg","gif","bmp"],
qt:["dv","mov","moov","movie","mp4"],
wmp:["asf","wm","wmv"],
qtwmp:["avi","mpg","mpeg"],
iframe:["asp","aspx","cgi","cfm","htm","html","pl","php","php3","php4","php5","phtml","rb","rhtml","shtml","txt","vbs"]
}
};
var default_options=null;
var SL=Shadowbox.lib;
var RE={resize:/(img|swf|flv)/,
overlay:/(img|iframe|html|inline)/,
swf:/\.swf\s*$/i,
flv:/\.flv\s*$/i,
domain:/:\/\/(.*?)[:\/]/,
inline:/#(.+)$/,
rel:/^(light|shadow)box/i,
gallery:/^(light|shadow)box\[(.*?)\]/i,
unsupported:/^unsupported-(\w+)/,
param:/\s*([a-z_]*?)\s*=\s*(.+)\s*/,
empty:/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i};
var cache=[];
var current_gallery;
var current;
var optimal_height=options.initialHeight;
var optimal_width=options.initialWidth;
var current_height=0;
var current_width=0;
var preloader;
var initialized=false;
var activated=false;
var drag;
var draggable;
var overlay_img_needed;
var ua=navigator.userAgent.toLowerCase();
var isStrict=document.compatMode=="CSS1Compat",
isOpera=ua.indexOf("opera")>-1,
isIE=ua.indexOf("msie")>-1,isIE7=ua.indexOf("msie 7")>-1,
isIE9=ua.indexOf("msie 9")>-1,
isBorderBox=isIE&&!isStrict,
isSafari=(/webkit|khtml/).test(ua),
isSafari3=isSafari&&!!(document.evaluate),
isGecko=!isSafari&&ua.indexOf("gecko")>-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);
var absolute_pos=isIE&&!isIE7;
var plugins=null;
if(navigator.plugins&&navigator.plugins.length){
var detectPlugin=function(plugin_name){
var detected=false;
for(var i=0,len=navigator.plugins.length;i<len;++i){
if(navigator.plugins[i].name.indexOf(plugin_name)>-1){
detected=true;break
}
}return detected};
var f4m=detectPlugin("Flip4Mac");
var plugins={fla:detectPlugin("Shockwave Flash"),
qt:detectPlugin("QuickTime"),
wmp:!f4m&&detectPlugin("Windows Media"),
f4m:f4m}
}else{
var detectPlugin=function(plugin_name){
var detected=false;
try{
var axo=new ActiveXObject(plugin_name);
if(axo){detected=true}
}catch(e){}return detected};
var plugins={fla:detectPlugin("ShockwaveFlash.ShockwaveFlash"),
qt:detectPlugin("QuickTime.QuickTime"),
wmp:detectPlugin("wmplayer.ocx"),
f4m:false}
}var apply=function(o,e){
for(var p in e){o[p]=e[p]
}return o};
var isLink=function(el){
return typeof el.tagName=="string"&&(el.tagName.toUpperCase()=="A"||el.tagName.toUpperCase()=="AREA")};
SL.getViewportHeight=function(){
var height=window.innerHeight;
var mode=document.compatMode;
if((mode||isIE)&&!isOpera){height=isStrict?document.documentElement.clientHeight:document.body.clientHeight}return height};
SL.getViewportWidth=function(){
var width=window.innerWidth;
var mode=document.compatMode;if(mode||isIE){width=isStrict?document.documentElement.clientWidth:document.body.clientWidth}return width};
SL.getDocumentHeight=function(){
var scrollHeight=isStrict?document.documentElement.scrollHeight:document.body.scrollHeight;
return Math.max(scrollHeight,SL.getViewportHeight())
};
SL.getDocumentWidth=function(){
var scrollWidth=isStrict?document.documentElement.scrollWidth:document.body.scrollWidth;return Math.max(scrollWidth,SL.getViewportWidth())};
var clearOpacity=function(el){
if(isIE&&!isIE9){
if(typeof el.style.filter=="string"&&(/alpha/i).test(el.style.filter)){
el.style.filter=""}
}else{
el.style.opacity="";
el.style["-moz-opacity"]="";
el.style["-khtml-opacity"]=""}
};
var fadeIn=function(el,endingOpacity,duration,callback){
if(options.animate){SL.setStyle(el,"opacity",0);
el.style.visibility="visible";
SL.animate(el,{opacity:{to:endingOpacity}
},
duration,function(){
if(endingOpacity==1){
clearOpacity(el)
}if(typeof callback=="function"){
callback()}})
}else{if(endingOpacity==1){clearOpacity(el)
}else{SL.setStyle(el,"opacity",endingOpacity)
}el.style.visibility="visible";
if(typeof callback=="function"){
callback()
}
}
};
var fadeOut=function(el,duration,callback){
var cb=function(){
el.style.visibility="hidden";
clearOpacity(el);
if(typeof callback=="function"){
callback()
}
};
if(options.animate){SL.animate(el,{opacity:{to:0}
},duration,cb)
}else{cb()}
};
var appendHTML=function(el,html){
el=SL.get(el);if(el.insertAdjacentHTML){
el.insertAdjacentHTML("BeforeEnd",html);
return el.lastChild}
if(el.lastChild){
var range=el.ownerDocument.createRange();
range.setStartAfter(el.lastChild);
var frag=range.createContextualFragment(html);
el.appendChild(frag);
return el.lastChild}
else{el.innerHTML=html;
return el.lastChild}
};
var overwriteHTML=function(el,html){
el=SL.get(el);
el.innerHTML=html;
return el.firstChild};
var getComputedHeight=function(el){
var h=Math.max(el.offsetHeight,el.clientHeight);
if(!h){
h=parseInt(SL.getStyle(el,"height"),10)||0;
if(!isBorderBox){
h+=parseInt(SL.getStyle(el,"padding-top"),10)+parseInt(SL.getStyle(el,"padding-bottom"),10)+parseInt(SL.getStyle(el,"border-top-width"),10)+parseInt(SL.getStyle(el,"border-bottom-width"),10)}
}return h
};
var getComputedWidth=function(el){
var w=Math.max(el.offsetWidth,el.clientWidth);
if(!w){
w=parseInt(SL.getStyle(el,"width"),10)||0;
if(!isBorderBox){
w+=parseInt(SL.getStyle(el,"padding-left"),10)+parseInt(SL.getStyle(el,"padding-right"),10)+parseInt(SL.getStyle(el,"border-left-width"),10)+parseInt(SL.getStyle(el,"border-right-width"),10)}
}return w
};
var getPlayerType=function(url){
if(RE.img.test(url)){return"img"}
var match=url.match(RE.domain);
var this_domain=match?document.domain==match[1]:false;
if(url.indexOf("#")>-1&&this_domain){return"inline"}
var q_index=url.indexOf("?");if(q_index>-1){url=url.substring(0,q_index)}
if(RE.swf.test(url)){return plugins.fla?"swf":"unsupported-swf"}
if(RE.flv.test(url)){return plugins.fla?"flv":"unsupported-flv"}
if(RE.qt.test(url)){return plugins.qt?"qt":"unsupported-qt"}
if(RE.wmp.test(url)){if(plugins.wmp){return"wmp"}else{
if(plugins.f4m){return"qt"}else{
return isMac?(plugins.qt?"unsupported-f4m":"unsupported-qtf4m"):"unsupported-wmp"}}
}else{
if(RE.qtwmp.test(url)){
if(plugins.qt){return"qt"}else{
if(plugins.wmp){return"wmp"}else{
return isMac?"unsupported-qt":"unsupported-qtwmp"}}
}else{
if(!this_domain||RE.iframe.test(url)){return"iframe"}
}
}return"iframe"};
var handleClick=function(ev){
var link;
if(isLink(this)){
link=this
}else{
link=SL.getTarget(ev);
while(!isLink(link)&&link.parentNode){
link=link.parentNode}
}Shadowbox.open(link);
if(current_gallery.length){
SL.preventDefault(ev)
}
};
var setupGallery=function(obj){
var copy=apply({},obj);
if(!obj.gallery){
current_gallery=[copy];current=0
}else{
current_gallery=[];
var index,ci;for(
var i=0,len=cache.length;
i<len;++i){ci=cache[i];
if(ci.gallery){
if(ci.content==obj.content&&ci.gallery==obj.gallery&&ci.title==obj.title){
index=current_gallery.length
}if(ci.gallery==obj.gallery){
current_gallery.push(apply({},ci))
}
}
}if(index==null){
current_gallery.unshift(copy);
index=0
}
current=index}
var match,r;
for(var i=0,len=current_gallery.length;i<len;++i){
r=false;
if(current_gallery[i].type=="unsupported"){
r=true
}else{
if(match=RE.unsupported.exec(current_gallery[i].type)){
if(options.handleUnsupported=="link"){
current_gallery[i].type="html";
var m;
switch(match[1]){
case"qtwmp":m=String.format(options.text.errors.either,options.errors.qt.url,options.errors.qt.name,options.errors.wmp.url,options.errors.wmp.name);
break;
case"qtf4m":m=String.format(options.text.errors.shared,options.errors.qt.url,options.errors.qt.name,options.errors.f4m.url,options.errors.f4m.name);
break;
default:if(match[1]=="swf"||match[1]=="flv"){match[1]="fla"}m=String.format(options.text.errors.single,options.errors[match[1]].url,options.errors[match[1]].name)
}current_gallery[i]=apply(current_gallery[i],{
//iris change h & w
height:800,
width:800,
content:'<div class="shadowbox_message">'+m+"</div>"
})
}else{r=true}
}else{
if(current_gallery[i].type=="inline"){
var match=RE.inline.exec(current_gallery[i].content);
if(match){
var el;
if(el=SL.get(match[1])){
current_gallery[i].content=el.innerHTML
}else{
throw"No element found with id "+match[1]
}
}else{throw"No element id found for inline content"}
}
}
}if(r){current_gallery.splice(i,1);
if(i<current){--current}--i}}};
var buildBars=function(){
var link=current_gallery[current];
if(!link){return}
var title_i=SL.get("shadowbox_title_inner");
title_i.innerHTML=(link.title)?link.title:'<div class="ol_title"><h2 class="subtitle">Terms of Use</h2></div>';
var tool_i=SL.get("shadowbox_toolbar_inner");
tool_i.innerHTML='<div class="caption-bar"><p class="caption warn text-center">Please scroll down and read all the content activate “Accept” button.</p></div><div class="btn-box block-center "><a class="btn btn-primary disabled" href="#">Accept</a><a class="btn btn-tertiary" href="#">Cancel</a></div>';
if(options.displayNav){
// tool_i.innerHTML=String.format(options.skin.close, //Iris del
// options.text.close); //Iris del
if(current_gallery.length>1){
if(options.continuous){
appendHTML(tool_i,
String.format(options.skin.next,
options.text.next));
appendHTML(tool_i,
String.format(options.skin.prev,options.text.prev))
}else{
if((current_gallery.length-1)>current){
appendHTML(tool_i,
String.format(options.skin.next,options.text.next))
}if(current>0){
appendHTML(tool_i,
String.format(options.skin.prev,options.text.prev))
}
}
}
}
if(current_gallery.length>1&&options.displayCounter){
var counter="";
if(options.counterType=="skip"){
for(var i=0,len=current_gallery.length;i<len;++i){
counter+='<a href="javascript:Shadowbox.change('+i+');"';
if(i==current){
counter+=' class="shadowbox_counter_current"'}
counter+=">"+(i+1)+"</a>"}
}else{counter=(current+1)+" of "+current_gallery.length}
appendHTML(tool_i,String.format(options.skin.counter,counter))
}
};
var hideBars=function(callback){
var title_m=getComputedHeight(SL.get("shadowbox_title"));
var tool_m=0-getComputedHeight(SL.get("shadowbox_toolbar"));
var title_i=SL.get("shadowbox_title_inner");
var tool_i=SL.get("shadowbox_toolbar_inner");
if(options.animate&&callback){
SL.animate(title_i,{marginTop:{to:title_m}
},0.2);SL.animate(tool_i,{marginTop:{to:tool_m}
},0.2,callback)
}else{
SL.setStyle(title_i,"marginTop",title_m+"px");
SL.setStyle(tool_i,"marginTop",tool_m+"px")}
};
var showBars=function(callback){
var title_i=SL.get("shadowbox_title_inner");
if(options.animate){
if(title_i.innerHTML!=""){
SL.animate(title_i,{marginTop:{to:0}},0.35)}
SL.animate(SL.get("shadowbox_toolbar_inner"),{
marginTop:{to:0}
},0.35,callback)
}else{
if(title_i.innerHTML!=""){
SL.setStyle(title_i,"margin-top","0px")
}
SL.setStyle(SL.get("shadowbox_toolbar_inner"),"margin-top","0px");
callback()}
};
var resetDrag=function(){
drag={x:0,y:0,start_x:null,start_y:null}
};
var toggleDrag=function(on){
if(on){
resetDrag();
var styles=["position:absolute","cursor:"+(isGecko?"-moz-grab":"move")];
styles.push(isIE?"background-color:#fff;filter:alpha(opacity=0)":"background-color:transparent");
appendHTML("shadowbox_body_inner",
'<div id="shadowbox_drag_layer" style="'+styles.join(";")+'"></div>');
SL.addEvent(SL.get("shadowbox_drag_layer"),"mousedown",listenDrag)
}else{
var d=SL.get("shadowbox_drag_layer");
if(d){
SL.removeEvent(d,"mousedown",listenDrag);
SL.remove(d)
}
}
};
var listenDrag=function(ev){
drag.start_x=ev.clientX;
drag.start_y=ev.clientY;
draggable=SL.get("shadowbox_content");
SL.addEvent(document,"mousemove",positionDrag);
SL.addEvent(document,"mouseup",unlistenDrag);
if(isGecko){
SL.setStyle(SL.get("shadowbox_drag_layer"),"cursor","-moz-grabbing")
}
};
var unlistenDrag=function(){
SL.removeEvent(document,"mousemove",positionDrag);
SL.removeEvent(document,"mouseup",unlistenDrag);
if(isGecko){
SL.setStyle(SL.get("shadowbox_drag_layer"),"cursor","-moz-grab")
}
};
var positionDrag=function(ev){
var move_y=ev.clientY-drag.start_y;
drag.start_y=drag.start_y+move_y;
drag.y=Math.max(Math.min(0,drag.y+move_y),current_height-optimal_height);
SL.setStyle(draggable,"top",drag.y+"px");
var move_x=ev.clientX-drag.start_x;
drag.start_x=drag.start_x+move_x;
drag.x=Math.max(Math.min(0,drag.x+move_x),current_width-optimal_width);
SL.setStyle(draggable,"left",drag.x+"px")
};
var loadContent=function(){
var obj=current_gallery[current];
if(!obj){return}
buildBars();
switch(obj.type){
case"img":preloader=new Image();
preloader.onload=function(){
var h=obj.height?parseInt(obj.height,10):preloader.height;
var w=obj.width?parseInt(obj.width,10):preloader.width;
resizeContent(h,w,function(dims){
showBars(function(){
setContent({
tag:"img",
height:dims.i_height,
width:dims.i_width,
src:obj.content,style:"position:absolute"
});
if(dims.enableDrag&&options.handleLgImages=="drag"){
toggleDrag(true);
SL.setStyle(SL.get("shadowbox_drag_layer"),{
height:dims.i_height+"px",
width:dims.i_width+"px"
})
}finishContent()
})
});
preloader.onload=function(){}
};
preloader.src=obj.content;
break;
case"swf":
case"flv":
case"qt":
case"wmp":
var markup=Shadowbox.movieMarkup(obj);
resizeContent(markup.height,
markup.width,function(){
showBars(function(){
setContent(markup);
finishContent()
})
});
break;
case"iframe":
var h=obj.height?parseInt(obj.height,10):SL.getViewportHeight();
var w=obj.width?parseInt(obj.width,10):SL.getViewportWidth();
var content={
tag:"iframe",
name:"shadowbox_content",
height:"100%",
width:"100%",
frameborder:"0",
marginwidth:"0",
marginheight:"0",
scrolling:"auto"
};
resizeContent(h,w,function(dims){
showBars(function(){
setContent(content);
var win=(isIE)?SL.get("shadowbox_content").contentWindow:window.frames.shadowbox_content;
win.location=obj.content;
finishContent()
})
});
break;
case"html":
case"inline":
var h=obj.height?parseInt(obj.height,10):SL.getViewportHeight();
var w=obj.width?parseInt(obj.width,10):SL.getViewportWidth();
var content={tag:"div",cls:"html",html:obj.content
};
resizeContent(h,w,function(){
showBars(function(){
setContent(content);
finishContent()
})
});
break;
default:throw"Shadowbox cannot open content of type "+obj.type
}
if(current_gallery.length>0){
var next=current_gallery[current+1];
if(!next){next=current_gallery[0]}
if(next.type=="img"){
var preload_next=new Image();
preload_next.src=next.content
}
var prev=current_gallery[current-1];
if(!prev){
prev=current_gallery[current_gallery.length-1]
}
if(prev.type=="img"){
var preload_prev=new Image();
preload_prev.src=prev.content
}
}
};
var setContent=function(obj){
var id="shadowbox_content";
var content=SL.get(id);
if(content){
switch(content.tagName.toUpperCase()){
case"OBJECT":
var link=current_gallery[(obj?current-1:current)];
if(link.type=="wmp"&&isIE){
try{shadowbox_content.controls.stop();
shadowbox_content.URL="non-existent.wmv";
window.shadowbox_content=function(){}
}
catch(e){}
}else{
if(link.type=="qt"&&isSafari){
try{document.shadowbox_content.Stop()}
catch(e){}content.innerHTML=""}
}setTimeout(function(){
SL.remove(content)
},10);
break;
case"IFRAME":SL.remove(content);
if(isGecko){delete window.frames[id]}
break;
default:SL.remove(content)
}
}if(obj){
if(!obj.id){obj.id=id}
return appendHTML("shadowbox_body_inner",
Shadowbox.createHTML(obj))
}return null
};
var finishContent=function(){
var obj=current_gallery[current];
if(!obj){return}
hideLoading(function(){
listenKeyboard(true);
if(options.onFinish&&typeof options.onFinish=="function"){
options.onFinish(obj)
}
})
};
var resizeContent=function(height,width,callback){
optimal_height=height;
optimal_width=width;
var resizable=RE.resize.test(current_gallery[current].type);
var dims=getDimensions(optimal_height,optimal_width,resizable);
if(callback){
var cb=function(){
callback(dims)
};
switch(options.animSequence){
case"hw":adjustHeight(dims.height,dims.top,true,function(){
adjustWidth(dims.width,true,cb)
});
break;
case"wh":adjustWidth(dims.width,true,function(){
adjustHeight(dims.height,dims.top,true,cb)
});
break;
default:adjustWidth(dims.width,true);
adjustHeight(dims.height,dims.top,true,cb)
}
}else{
adjustWidth(dims.width,false);
adjustHeight(dims.height,dims.top,false);
if(options.handleLgImages=="resize"&&resizable){
var content=SL.get("shadowbox_content");
if(content){
content.height=dims.i_height;content.width=dims.i_width
}
}
}
};
var getDimensions=function(o_height,o_width,resizable){
if(typeof resizable=="undefined"){
resizable=false
}
var height=o_height=parseInt(o_height);
var width=o_width=parseInt(o_width);
var shadowbox_b=SL.get("shadowbox_body");
var view_height=SL.getViewportHeight();
var extra_height=parseInt(SL.getStyle(shadowbox_b,
"border-top-width"),10)+parseInt(SL.getStyle(shadowbox_b,
"border-bottom-width"),10)+parseInt(SL.getStyle(shadowbox_b,
"margin-top"),10)+parseInt(SL.getStyle(shadowbox_b,
"margin-bottom"),10)+getComputedHeight(SL.get("shadowbox_title"))+getComputedHeight(SL.get("shadowbox_toolbar"))+(2*options.viewportPadding);if((height+extra_height)>=view_height){height=view_height-extra_height}var view_width=SL.getViewportWidth();var extra_body_width=parseInt(SL.getStyle(shadowbox_b,"border-left-width"),10)+parseInt(SL.getStyle(shadowbox_b,"border-right-width"),10)+parseInt(SL.getStyle(shadowbox_b,"margin-left"),10)+parseInt(SL.getStyle(shadowbox_b,"margin-right"),10);var extra_width=extra_body_width+(2*options.viewportPadding);if((width+extra_width)>=view_width){width=view_width-extra_width}var enableDrag=false;var i_height=o_height;var i_width=o_width;var handle=options.handleLgImages;if(resizable&&(handle=="resize"||handle=="drag")){var change_h=(o_height-height)/o_height;var change_w=(o_width-width)/o_width;if(handle=="resize"){if(change_h>change_w){width=Math.round((o_width/o_height)*height)}else{if(change_w>change_h){height=Math.round((o_height/o_width)*width)}}i_width=width;i_height=height}else{var link=current_gallery[current];if(link){enableDrag=link.type=="img"&&(change_h>0||change_w>0)}}}return{height:height,width:width+extra_body_width,i_height:i_height,i_width:i_width,top:((view_height-(height+extra_height))/2)+options.viewportPadding,enableDrag:enableDrag}};var centerVertically=function(){var shadowbox=SL.get("shadowbox");var scroll=document.documentElement.scrollTop;var s_top=scroll+Math.round((SL.getViewportHeight()-(shadowbox.offsetHeight||0))/2);SL.setStyle(shadowbox,"top",s_top+"px")};var adjustHeight=function(height,top,animate,callback){height=parseInt(height);current_height=height;var sbi=SL.get("shadowbox_body_inner");if(animate&&options.animate){SL.animate(sbi,{height:{to:height}},options.resizeDuration,callback)}else{SL.setStyle(sbi,"height",height+"px");if(typeof callback=="function"){callback()}}if(absolute_pos){centerVertically();SL.addEvent(window,"scroll",centerVertically);top+=document.documentElement.scrollTop}var shadowbox=SL.get("shadowbox");if(animate&&options.animate){SL.animate(shadowbox,{top:{to:top}},options.resizeDuration)}else{SL.setStyle(shadowbox,"top",top+"px")}};var adjustWidth=function(width,animate,callback){width=parseInt(width);current_width=width;var shadowbox=SL.get("shadowbox");if(animate&&options.animate){SL.animate(shadowbox,{width:{to:width}},options.resizeDuration,callback)}else{SL.setStyle(shadowbox,"width",width+"px");if(typeof callback=="function"){callback()}}};var listenKeyboard=function(on){if(!options.enableKeys){return}if(on){document.onkeydown=handleKey}else{document.onkeydown=""}};var assertKey=function(valid,key,code){return(valid.indexOf(key)!=-1||valid.indexOf(code)!=-1)};var handleKey=function(e){var code=e?e.which:event.keyCode;var key=String.fromCharCode(code).toLowerCase();if(assertKey(options.keysClose,key,code)){Shadowbox.close()}else{if(assertKey(options.keysPrev,key,code)){Shadowbox.previous()}else{if(assertKey(options.keysNext,key,code)){Shadowbox.next()}}}};var toggleTroubleElements=function(on){var vis=(on?"visible":"hidden");var selects=document.getElementsByTagName("select");for(i=0,len=selects.length;i<len;++i){selects[i].style.visibility=vis}var objects=document.getElementsByTagName("object");for(i=0,len=objects.length;i<len;++i){objects[i].style.visibility=vis}var embeds=document.getElementsByTagName("embed");for(i=0,len=embeds.length;i<len;++i){embeds[i].style.visibility=vis}};var showLoading=function(){var loading=SL.get("shadowbox_loading");overwriteHTML(loading,String.format(options.skin.loading,options.assetURL+options.loadingImage,options.text.loading,options.text.cancel));loading.style.visibility="visible"};var hideLoading=function(callback){var t=current_gallery[current].type;var anim=(t=="img"||t=="html");var loading=SL.get("shadowbox_loading");if(anim){fadeOut(loading,0.35,callback)}else{loading.style.visibility="hidden";callback()}};var resizeOverlay=function(){var overlay=SL.get("shadowbox_overlay");SL.setStyle(overlay,{height:"100%",width:"100%"});SL.setStyle(overlay,"height",SL.getDocumentHeight()+"px");if(!isSafari3){SL.setStyle(overlay,"width",SL.getDocumentWidth()+"px")}};var checkOverlayImgNeeded=function(){if(!(isGecko&&isMac)){return false}for(var i=0,len=current_gallery.length;i<len;++i){if(!RE.overlay.exec(current_gallery[i].type)){return true}}return false};var toggleOverlay=function(callback){var overlay=SL.get("shadowbox_overlay");if(overlay_img_needed==null){overlay_img_needed=checkOverlayImgNeeded()}if(callback){resizeOverlay();if(overlay_img_needed){SL.setStyle(overlay,{visibility:"visible",backgroundColor:"transparent",backgroundImage:"url("+options.assetURL+options.overlayBgImage+")",backgroundRepeat:"repeat",opacity:1});callback()}else{SL.setStyle(overlay,{visibility:"visible",backgroundColor:options.overlayColor,backgroundImage:"none"});fadeIn(overlay,options.overlayOpacity,options.fadeDuration,callback)}}else{if(overlay_img_needed){SL.setStyle(overlay,"visibility","hidden")}else{fadeOut(overlay,options.fadeDuration)}overlay_img_needed=null}};Shadowbox.init=function(opts){if(initialized){return}options=apply(options,opts||{});appendHTML(document.body,options.skin.main);RE.img=new RegExp(".("+options.ext.img.join("|")+")s*$","i");RE.qt=new RegExp(".("+options.ext.qt.join("|")+")s*$","i");RE.wmp=new RegExp(".("+options.ext.wmp.join("|")+")s*$","i");RE.qtwmp=new RegExp(".("+options.ext.qtwmp.join("|")+")s*$","i");RE.iframe=new RegExp(".("+options.ext.iframe.join("|")+")s*$","i");var id=null;var resize=function(){clearInterval(id);id=null;resizeOverlay();resizeContent(optimal_height,optimal_width)};SL.addEvent(window,"resize",function(){if(activated){if(id){clearInterval(id);id=null}if(!id){id=setInterval(resize,50)}}});if(options.listenOverlay){SL.addEvent(SL.get("shadowbox_overlay"),"click",Shadowbox.close)}if(absolute_pos){SL.setStyle(SL.get("shadowbox_container"),"position","absolute");
SL.setStyle("shadowbox_body","zoom",1);
SL.addEvent(SL.get("shadowbox_container"),"click",function(e){
var target=SL.getTarget(e);
if(target.id&&target.id=="shadowbox_container"){
Shadowbox.close()
}
})
}
if(!options.skipSetup){
Shadowbox.setup()
}initialized=true
};
Shadowbox.setup=function(links,opts){
if(!links){
var links=[];
var a=document.getElementsByTagName("a"),rel;
for(var i=0,len=a.length;i<len;++i){
rel=a[i].getAttribute("rel");
if(rel&&RE.rel.test(rel)){
links[links.length]=a[i]
}
}
}else{
if(!links.length){links=[links]}
}
var link;
for(var i=0,len=links.length;i<len;++i){
link=links[i];
if(typeof link.shadowboxCacheKey=="undefined"){
link.shadowboxCacheKey=cache.length;
SL.addEvent(link,"click",handleClick)
}cache[link.shadowboxCacheKey]=this.buildCacheObj(link,opts)
}
};
Shadowbox.buildCacheObj=function(link,opts){
var href=link.href;
var o={el:link,title:link.getAttribute("title"),type:getPlayerType(href),options:apply({},opts||{}),content:href};
var opt,l_opts=["title","type","height","width","gallery"];
for(var i=0,len=l_opts.length;i<len;++i){opt=l_opts[i];
if(typeof o.options[opt]!="undefined"){o[opt]=o.options[opt];
delete o.options[opt]
}
}
var rel=link.getAttribute("rel");
if(rel){
var match=rel.match(RE.gallery);
if(match){o.gallery=escape(match[2])
}
var params=rel.split(";");
for(var i=0,len=params.length;i<len;++i){
match=params[i].match(RE.param);
if(match){
if(match[1]=="options"){
eval("o.options = apply(o.options, "+match[2]+")")
}else{
o[match[1]]=match[2]
}
}
}
}
return o
};
Shadowbox.applyOptions=function(opts){
if(opts){
default_options=apply({},options);options=apply(options,opts)
}
};
Shadowbox.revertOptions=function(){
if(default_options){
options=default_options;default_options=null
}
};
Shadowbox.open=function(obj,opts){
if(activated){return}
activated=true;
if(isLink(obj)){
if(typeof obj.shadowboxCacheKey=="undefined"||typeof cache[obj.shadowboxCacheKey]=="undefined"){obj=this.buildCacheObj(obj,opts)}else{obj=cache[obj.shadowboxCacheKey]}}this.revertOptions();if(obj.options||opts){this.applyOptions(apply(apply({},obj.options||{}),opts||{}))}setupGallery(obj);if(current_gallery.length){if(options.onOpen&&typeof options.onOpen=="function"){options.onOpen(obj)}document.body.style.overflow="hidden";SL.setStyle(SL.get("shadowbox"),"display","block");toggleTroubleElements(false);var dims=getDimensions(options.initialHeight,options.initialWidth);adjustHeight(dims.height,dims.top);adjustWidth(dims.width);hideBars(false);toggleOverlay(function(){SL.setStyle(SL.get("shadowbox"),"visibility","visible");showLoading();loadContent()})}};Shadowbox.change=function(num){if(!current_gallery){return}if(!current_gallery[num]){if(!options.continuous){return}else{num=(num<0)?(current_gallery.length-1):0}}current=num;toggleDrag(false);setContent(null);listenKeyboard(false);if(options.onChange&&typeof options.onChange=="function"){options.onChange(current_gallery[current])}showLoading();hideBars(loadContent)};Shadowbox.next=function(){return this.change(current+1)};Shadowbox.previous=function(){return this.change(current-1)};
Shadowbox.close=function(){
if(!activated){return}
listenKeyboard(false);
SL.setStyle(SL.get("shadowbox"),{
display:"none",visibility:"hidden"
});
if(absolute_pos){
SL.removeEvent(window,"scroll",centerVertically)
}
toggleDrag(false);
setContent(null);
if(preloader){
preloader.onload=function(){};
preloader=null
}
toggleOverlay(false);
toggleTroubleElements(true);
if(options.onClose&&typeof options.onClose=="function"){
options.onClose(current_gallery[current])
}
document.body.style.overflow="auto";activated=false
};
Shadowbox.clearCache=function(){
for(var i=0,len=cache.length;i<len;++i){
if(cache[i].el){SL.removeEvent(cache[i].el,"click",handleClick);
delete cache[i].shadowboxCacheKey
}
}
cache=[]
};
Shadowbox.movieMarkup=function(obj){
var h=obj.height?parseInt(obj.height,10):300;
var w=obj.width?parseInt(obj.width,10):300;
var autoplay=options.autoplayMovies;
var controls=options.showMovieControls;
if(obj.options){
if(obj.options.autoplayMovies!=null){
autoplay=obj.options.autoplayMovies
}
if(obj.options.showMovieControls!=null){
controls=obj.options.showMovieControls
}
}
var markup={
tag:"object",name:"shadowbox_content"};
switch(obj.type){
case"swf":
var dims=getDimensions(h,w,true);
h=dims.height;
w=dims.width;
markup.type="application/x-shockwave-flash";
markup.data=obj.content;
markup.children=[{tag:"param",name:"movie",value:obj.content}];
break;
case"flv":autoplay=autoplay?"true":"false";
var showicons="false";
var a=h/w;if(controls){showicons="true";h+=20
}
var dims=getDimensions(h,h/a,true);
h=dims.height;
w=(h-(controls?20:0))/a;
var flashvars=["file="+obj.content,"height="+h,"width="+w,"autostart="+autoplay,"displayheight="+(h-(controls?20:0)),"showicons="+showicons,"backcolor=0x000000&amp;frontcolor=0x999999&amp;lightcolor=0x557722"];
markup.type="application/x-shockwave-flash";
markup.data=options.assetURL+options.flvPlayer;
markup.children=[{
tag:"param",name:"movie",value:options.assetURL+options.flvPlayer
},{tag:"param",name:"flashvars",value:flashvars.join("&amp;")},{tag:"param",name:"allowfullscreen",value:"true"}];break;case"qt":autoplay=autoplay?"true":"false";if(controls){controls="true";h+=16}else{controls="false"}markup.children=[{tag:"param",name:"src",value:obj.content},{tag:"param",name:"scale",value:"aspect"},{tag:"param",name:"controller",value:controls},{tag:"param",name:"autoplay",value:autoplay}];if(isIE){markup.classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";markup.codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"}else{markup.type="video/quicktime";markup.data=obj.content}break;case"wmp":autoplay=autoplay?1:0;markup.children=[{tag:"param",name:"autostart",value:autoplay}];if(isIE){if(controls){controls="full";h+=70}else{controls="none"}markup.classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6";markup.children[markup.children.length]={tag:"param",name:"url",value:obj.content};markup.children[markup.children.length]={tag:"param",name:"uimode",value:controls}}else{if(controls){controls=1;h+=45}else{controls=0}markup.type="video/x-ms-wmv";markup.data=obj.content;markup.children[markup.children.length]={tag:"param",name:"showcontrols",value:controls}}break}markup.height=h;markup.width=w;return markup};Shadowbox.createHTML=function(obj){var html="<"+obj.tag;for(var attr in obj){if(attr=="tag"||attr=="html"||attr=="children"){continue}if(attr=="cls"){html+=' class="'+obj.cls+'"'}else{html+=" "+attr+'="'+obj[attr]+'"'}}if(RE.empty.test(obj.tag)){html+="/>\n"}else{html+=">\n";var cn=obj.children;if(cn){for(var i=0,len=cn.length;i<len;++i){html+=this.createHTML(cn[i])}}if(obj.html){html+=obj.html}html+="</"+obj.tag+">\n"}return html};Shadowbox.getPlugins=function(){return plugins};Shadowbox.getOptions=function(){return options};Shadowbox.getCurrent=function(){return current_gallery[current]};Shadowbox.getVersion=function(){return version}})();Array.prototype.indexOf=Array.prototype.indexOf||function(c){for(var b=0,a=this.length;b<a;++b){if(this[b]==c){return b}}return -1};String.format=String.format||function(b){var a=Array.prototype.slice.call(arguments,1);return b.replace(/\{(\d+)\}/g,function(c,d){return a[d]})};

相关文章