(function (window, undefined){
var S={version: "3.0.3"};
var ua=navigator.userAgent.toLowerCase();
if(ua.indexOf("windows") > -1||ua.indexOf("win32") > -1){
S.isWindows=true
}else{
if(ua.indexOf("macintosh") > -1||ua.indexOf("mac os x") > -1){
S.isMac=true
}else{
if(ua.indexOf("linux") > -1){
S.isLinux=true
}}
}
S.isIE=ua.indexOf("msie") > -1;
S.isIE6=ua.indexOf("msie 6") > -1;
S.isIE7=ua.indexOf("msie 7") > -1;
S.isGecko=ua.indexOf("gecko") > -1&&ua.indexOf("safari")==-1;
S.isWebKit=ua.indexOf("applewebkit/") > -1;
var inlineId=/#(.+)$/, galleryName=/^(light|shadow)box\[(.*?)\]/i, inlineParam=/\s*([a-z_]*?)\s*=\s*(.+)\s*/,
fileExtension=/[0-9a-z]+$/i, scriptPath=/(.+\/)shadowbox\.js/i;
var open=false, initialized=false, lastOptions={}, slideDelay=0, slideStart, slideTimer;
S.current=-1;
S.dimensions=null;
S.ease=function (state){
return 1 + Math.pow(state - 1, 3)
};
S.errorInfo={
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"}};
S.gallery=[];
S.onReady=noop;
S.path=null;
S.player=null;
S.playerId="sb-player";
S.options={
animate: true,
animateFade: true,
autoplayMovies: true,
continuous: false,
enableKeys: true,
flashParams: {bgcolor: "#000000", allowfullscreen: true},
flashVars: {},
flashVersion: "9.0.115",
handleOversize: "resize",
handleUnsupported: "link",
onChange: noop,
onClose: noop,
onFinish: noop,
onOpen: noop,
showMovieControls: true,
skipSetup: false,
slideshowDelay: 0,
viewportPadding: 20
};
S.getCurrent=function (){
return S.current > -1 ? S.gallery[S.current]:null
};
S.hasNext=function (){
return S.gallery.length > 1&&(S.current!=S.gallery.length - 1||S.options.continuous)
};
S.isOpen=function (){
return open
};
S.isPaused=function (){
return slideTimer=="pause"
};
S.applyOptions=function (options){
lastOptions=apply({}, S.options);
apply(S.options, options)
};
S.revertOptions=function (){
apply(S.options, lastOptions)
};
S.init=function (options, callback){
if(initialized){
return
}
initialized=true;
if(S.skin.options){
apply(S.options, S.skin.options)
}
if(options){
apply(S.options, options)
}
if(!S.path){
var path, scripts=document.getElementsByTagName("script");
for (var i=0, len=scripts.length; i < len; ++i){
path=scriptPath.exec(scripts[i].src);
if(path){
S.path=path[1];
break
}}
}
if(callback){
S.onReady=callback
}
bindLoad()
};
S.open=function (obj){
if(open){
return
}
var gc=S.makeGallery(obj);
S.gallery=gc[0];
S.current=gc[1];
obj=S.getCurrent();
if(obj==null){
return
}
S.applyOptions(obj.options||{});
filterGallery();
if(S.gallery.length){
obj=S.getCurrent();
if(S.options.onOpen(obj)===false){
return
}
open=true;
S.skin.onOpen(obj, load)
}};
S.close=function (){
if(!open){
return
}
open=false;
if(S.player){
S.player.remove();
S.player=null
}
if(typeof slideTimer=="number"){
clearTimeout(slideTimer);
slideTimer=null
}
slideDelay=0;
listenKeys(false);
S.options.onClose(S.getCurrent());
S.skin.onClose();
S.revertOptions()
};
S.play=function (){
if(!S.hasNext()){
return
}
if(!slideDelay){
slideDelay=S.options.slideshowDelay * 1000
}
if(slideDelay){
slideStart=now();
slideTimer=setTimeout(function (){
slideDelay=slideStart=0;
S.next()
}, slideDelay);
if(S.skin.onPlay){
S.skin.onPlay()
}}
};
S.pause=function (){
if(typeof slideTimer!="number"){
return
}
slideDelay=Math.max(0, slideDelay - (now() - slideStart));
if(slideDelay){
clearTimeout(slideTimer);
slideTimer="pause";
if(S.skin.onPause){
S.skin.onPause()
}}
};
S.change=function (index){
if(!(index in S.gallery)){
if(S.options.continuous){
index=(index < 0 ? S.gallery.length + index:0);
if(!(index in S.gallery)){
return
}}else{
return
}}
S.current=index;
if(typeof slideTimer=="number"){
clearTimeout(slideTimer);
slideTimer=null;
slideDelay=slideStart=0
}
S.options.onChange(S.getCurrent());
load(true)
};
S.next=function (){
S.change(S.current + 1)
};
S.previous=function (){
S.change(S.current - 1)
};
S.setDimensions=function (height, width, maxHeight, maxWidth, topBottom, leftRight, padding, preserveAspect){
var originalHeight=height, originalWidth=width;
var extraHeight=2 * padding + topBottom;
if(height + extraHeight > maxHeight){
height=maxHeight - extraHeight
}
var extraWidth=2 * padding + leftRight;
if(width + extraWidth > maxWidth){
width=maxWidth - extraWidth
}
var changeHeight=(originalHeight - height) / originalHeight,
changeWidth=(originalWidth - width) / originalWidth, oversized=(changeHeight > 0||changeWidth > 0);
if(preserveAspect&&oversized){
if(changeHeight > changeWidth){
width=Math.round((originalWidth / originalHeight) * height)
}else{
if(changeWidth > changeHeight){
height=Math.round((originalHeight / originalWidth) * width)
}}
}
S.dimensions={
height: height + topBottom,
width: width + leftRight,
innerHeight: height,
innerWidth: width,
top: Math.floor((maxHeight - (height + extraHeight)) / 2 + padding),
left: Math.floor((maxWidth - (width + extraWidth)) / 2 + padding),
oversized: oversized
};
return S.dimensions
};
S.makeGallery=function (obj){
var gallery=[], current=-1;
if(typeof obj=="string"){
obj=[obj]
}
if(typeof obj.length=="number"){
each(obj, function (i, o){
if(o.content){
gallery[i]=o
}else{
gallery[i]={content: o}}
});
current=0
}else{
if(obj.tagName){
var cacheObj=S.getCache(obj);
obj=cacheObj ? cacheObj:S.makeObject(obj)
}
if(obj.gallery){
gallery=[];
var o;
for (var key in S.cache){
o=S.cache[key];
if(o.gallery&&o.gallery==obj.gallery){
if(current==-1&&o.content==obj.content){
current=gallery.length
}
gallery.push(o)
}}
if(current==-1){
gallery.unshift(obj);
current=0
}}else{
gallery=[obj];
current=0
}}
each(gallery, function (i, o){
gallery[i]=apply({}, o)
});
return [gallery, current]
};
S.makeObject=function (link, options){
var obj={content: link.href, title: link.getAttribute("title")||"", link: link};
if(options){
options=apply({}, options);
each(["player", "title", "height", "width", "gallery"], function (i, o){
if(typeof options[o]!="undefined"){
obj[o]=options[o];
delete options[o]
}});
obj.options=options
}else{
obj.options={}}
if(!obj.player){
obj.player=S.getPlayer(obj.content)
}
var rel=link.getAttribute("rel");
if(rel){
var match=rel.match(galleryName);
if(match){
obj.gallery=escape(match[2])
}
each(rel.split(";"), function (i, p){
match=p.match(inlineParam);
if(match){
obj[match[1]]=match[2]
}})
}
return obj
};
S.getPlayer=function (content){
if(content.indexOf("#") > -1&&content.indexOf(document.location.href)==0){
return "inline"
}
var q=content.indexOf("?");
if(q > -1){
content=content.substring(0, q)
}
var ext, m=content.match(fileExtension);
if(m){
ext=m[0].toLowerCase()
}
if(ext){
if(S.img&&S.img.ext.indexOf(ext) > -1){
return "img"
}
if(S.swf&&S.swf.ext.indexOf(ext) > -1){
return "swf"
}
if(S.flv&&S.flv.ext.indexOf(ext) > -1){
return "flv"
}
if(S.qt&&S.qt.ext.indexOf(ext) > -1){
if(S.wmp&&S.wmp.ext.indexOf(ext) > -1){
return "qtwmp"
}else{
return "qt"
}}
if(S.wmp&&S.wmp.ext.indexOf(ext) > -1){
return "wmp"
}}
return "iframe"
};
function filterGallery(){
var err=S.errorInfo, plugins=S.plugins, obj, remove, needed, m, format, replace, inlineEl, flashVersion;
for (var i=0; i < S.gallery.length; ++i){
obj=S.gallery[i];
remove=false;
needed=null;
switch (obj.player){
case"flv":
case"swf":
if(!plugins.fla){
needed="fla"
}
break;
case"qt":
if(!plugins.qt){
needed="qt"
}
break;
case"wmp":
if(S.isMac){
if(plugins.qt&&plugins.f4m){
obj.player="qt"
}else{
needed="qtf4m"
}}else{
if(!plugins.wmp){
needed="wmp"
}}
break;
case"qtwmp":
if(plugins.qt){
obj.player="qt"
}else{
if(plugins.wmp){
obj.player="wmp"
}else{
needed="qtwmp"
}}
break
}
if(needed){
if(S.options.handleUnsupported=="link"){
switch (needed){
case"qtf4m":
format="shared";
replace=[err.qt.url, err.qt.name, err.f4m.url, err.f4m.name];
break;
case"qtwmp":
format="either";
replace=[err.qt.url, err.qt.name, err.wmp.url, err.wmp.name];
break;
default:
format="single";
replace=[err[needed].url, err[needed].name]
}
obj.player="html";
obj.content='<div class="sb-message">' + sprintf(S.lang.errors[format], replace) + "</div>"
}else{
remove=true
}}else{
if(obj.player=="inline"){
m=inlineId.exec(obj.content);
if(m){
inlineEl=get(m[1]);
if(inlineEl){
obj.content=inlineEl.innerHTML
}else{
remove=true
}}else{
remove=true
}}else{
if(obj.player=="swf"||obj.player=="flv"){
flashVersion=(obj.options&&obj.options.flashVersion)||S.options.flashVersion;
if(S.flash&&!S.flash.hasFlashPlayerVersion(flashVersion)){
obj.width=310;
obj.height=177
}}
}}
if(remove){
S.gallery.splice(i, 1);
if(i < S.current){
--S.current
}else{
if(i==S.current){
S.current=i > 0 ? i - 1:i
}}
--i
}}
}
function listenKeys(on){
if(!S.options.enableKeys){
return
}
(on ? addEvent:removeEvent)(document, "keydown", handleKey)
}
function handleKey(e){
if(e.metaKey||e.shiftKey||e.altKey||e.ctrlKey){
return
}
var code=keyCode(e), handler;
switch (code){
case 81:
case 88:
case 27:
handler=S.close;
break;
case 37:
handler=S.previous;
break;
case 39:
handler=S.next;
break;
case 32:
handler=typeof slideTimer=="number" ? S.pause:S.play;
break
}
if(handler){
preventDefault(e);
handler()
}}
function load(changing){
listenKeys(false);
var obj=S.getCurrent();
var player=(obj.player=="inline" ? "html":obj.player);
if(typeof S[player]!="function"){
throw"unknown player " + player
}
if(changing){
S.player.remove();
S.revertOptions();
S.applyOptions(obj.options||{})
}
S.player=new S[player](obj, S.playerId);
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
}}
S.skin.onLoad(changing, waitReady)
}
function waitReady(){
if(!open){
return
}
if(typeof S.player.ready!="undefined"){
var timer=setInterval(function (){
if(open){
if(S.player.ready){
clearInterval(timer);
timer=null;
S.skin.onReady(show)
}}else{
clearInterval(timer);
timer=null
}}, 10)
}else{
S.skin.onReady(show)
}}
function show(){
if(!open){
return
}
S.player.append(S.skin.body, S.dimensions);
S.skin.onShow(finish)
}
function finish(){
if(!open){
return
}
if(S.player.onLoad){
S.player.onLoad()
}
S.options.onFinish(S.getCurrent());
if(!S.isPaused()){
S.play()
}
listenKeys(true)
}
if(!Array.prototype.indexOf){
Array.prototype.indexOf=function (obj, from){
var len=this.length >>> 0;
from=from||0;
if(from < 0){
from +=len
}
for (; from < len; ++from){
if(from in this&&this[from]===obj){
return from
}}
return -1
}}
function now(){
return (new Date).getTime()
}
function apply(original, extension){
for (var property in extension){
original[property]=extension[property]
}
return original
}
function each(obj, callback){
var i=0, len=obj.length;
for (var value=obj[0]; i < len&&callback.call(value, i, value)!==false; value=obj[++i]){
}}
function sprintf(str, replace){
return str.replace(/\{(\w+?)\}/g, function (match, i){
return replace[i]
})
}
function noop(){
}
function get(id){
return document.getElementById(id)
}
function remove(el){
el.parentNode.removeChild(el)
}
var supportsOpacity=true, supportsFixed=true;
function checkSupport(){
var body=document.body, div=document.createElement("div");
supportsOpacity=typeof div.style.opacity==="string";
div.style.position="fixed";
div.style.margin=0;
div.style.top="20px";
body.appendChild(div, body.firstChild);
supportsFixed=div.offsetTop==20;
body.removeChild(div)
}
S.getStyle=(function (){
var opacity=/opacity=([^)]*)/,
getComputedStyle=document.defaultView&&document.defaultView.getComputedStyle;
return function (el, style){
var ret;
if(!supportsOpacity&&style=="opacity"&&el.currentStyle){
ret=opacity.test(el.currentStyle.filter||"") ? (parseFloat(RegExp.$1) / 100) + "":"";
return ret==="" ? "1":ret
}
if(getComputedStyle){
var computedStyle=getComputedStyle(el, null);
if(computedStyle){
ret=computedStyle[style]
}
if(style=="opacity"&&ret==""){
ret="1"
}}else{
ret=el.currentStyle[style]
}
return ret
}})();
S.appendHTML=function (el, html){
if(el.insertAdjacentHTML){
el.insertAdjacentHTML("BeforeEnd", html)
}else{
if(el.lastChild){
var range=el.ownerDocument.createRange();
range.setStartAfter(el.lastChild);
var frag=range.createContextualFragment(html);
el.appendChild(frag)
}else{
el.innerHTML=html
}}
};
S.getWindowSize=function (dimension){
if(document.compatMode==="CSS1Compat"){
return document.documentElement["client" + dimension]
}
return document.body["client" + dimension]
};
S.setOpacity=function (el, opacity){
var style=el.style;
if(supportsOpacity){
style.opacity=(opacity==1 ? "":opacity)
}else{
style.zoom=1;
if(opacity==1){
if(typeof style.filter=="string"&&(/alpha/i).test(style.filter)){
style.filter=style.filter.replace(/\s*[\w\.]*alpha\([^\)]*\);?/gi, "")
}}else{
style.filter=(style.filter||"").replace(/\s*[\w\.]*alpha\([^\)]*\)/gi, "") + " alpha(opacity=" + (opacity * 100) + ")"
}}
};
S.clearOpacity=function (el){
S.setOpacity(el, 1)
};
function getTarget(e){
var target=e.target ? e.target:e.srcElement;
return target.nodeType==3 ? target.parentNode:target
}
function getPageXY(e){
var x=e.pageX||(e.clientX + (document.documentElement.scrollLeft||document.body.scrollLeft)),
y=e.pageY||(e.clientY + (document.documentElement.scrollTop||document.body.scrollTop));
return [x, y]
}
function preventDefault(e){
e.preventDefault()
}
function keyCode(e){
return e.which ? e.which:e.keyCode
}
function addEvent(el, type, handler){
if(el.addEventListener){
el.addEventListener(type, handler, false)
}else{
if(el.nodeType===3||el.nodeType===8){
return
}
if(el.setInterval&&(el!==window&&!el.frameElement)){
el=window
}
if(!handler.__guid){
handler.__guid=addEvent.guid++
}
if(!el.events){
el.events={}}
var handlers=el.events[type];
if(!handlers){
handlers=el.events[type]={};
if(el["on" + type]){
handlers[0]=el["on" + type]
}}
handlers[handler.__guid]=handler;
el["on" + type]=addEvent.handleEvent
}}
addEvent.guid=1;
addEvent.handleEvent=function (event){
var result=true;
event=event||addEvent.fixEvent(((this.ownerDocument||this.document||this).parentWindow||window).event);
var handlers=this.events[event.type];
for (var i in handlers){
this.__handleEvent=handlers[i];
if(this.__handleEvent(event)===false){
result=false
}}
return result
};
addEvent.preventDefault=function (){
this.returnValue=false
};
addEvent.stopPropagation=function (){
this.cancelBubble=true
};
addEvent.fixEvent=function (e){
e.preventDefault=addEvent.preventDefault;
e.stopPropagation=addEvent.stopPropagation;
return e
};
function removeEvent(el, type, handler){
if(el.removeEventListener){
el.removeEventListener(type, handler, false)
}else{
if(el.events&&el.events[type]){
delete el.events[type][handler.__guid]
}}
}
var loaded=false, DOMContentLoaded;
if(document.addEventListener){
DOMContentLoaded=function (){
document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false);
S.load()
}}else{
if(document.attachEvent){
DOMContentLoaded=function (){
if(document.readyState==="complete"){
document.detachEvent("onreadystatechange", DOMContentLoaded);
S.load()
}}
}}
function doScrollCheck(){
if(loaded){
return
}
try {
document.documentElement.doScroll("left")
} catch (e){
setTimeout(doScrollCheck, 1);
return
}
S.load()
}
function bindLoad(){
if(document.readyState==="complete"){
return S.load()
}
if(document.addEventListener){
document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);
window.addEventListener("load", S.load, false)
}else{
if(document.attachEvent){
document.attachEvent("onreadystatechange", DOMContentLoaded);
window.attachEvent("onload", S.load);
var topLevel=false;
try {
topLevel=window.frameElement===null
} catch (e){
}
if(document.documentElement.doScroll&&topLevel){
doScrollCheck()
}}
}}
S.load=function (){
if(loaded){
return
}
if(!document.body){
return setTimeout(S.load, 13)
}
loaded=true;
checkSupport();
S.onReady();
if(!S.options.skipSetup){
S.setup()
}
S.skin.init()
};
S.plugins={};
if(navigator.plugins&&navigator.plugins.length){
var names=[];
each(navigator.plugins, function (i, p){
names.push(p.name)
});
names=names.join(",");
var f4m=names.indexOf("Flip4Mac") > -1;
S.plugins={
fla: names.indexOf("Shockwave Flash") > -1,
qt: names.indexOf("QuickTime") > -1,
wmp: !f4m&&names.indexOf("Windows Media") > -1,
f4m: f4m
}}else{
var detectPlugin=function (name){
var axo;
try {
axo=new ActiveXObject(name)
} catch (e){
}
return !!axo
};
S.plugins={
fla: detectPlugin("ShockwaveFlash.ShockwaveFlash"),
qt: detectPlugin("QuickTime.QuickTime"),
wmp: detectPlugin("wmplayer.ocx"),
f4m: false
}}
var relAttr=/^(light|shadow)box/i, expando="shadowboxCacheKey", cacheKey=1;
S.cache={};
S.select=function (selector){
var links=[];
if(!selector){
var rel;
each(document.getElementsByTagName("a"), function (i, el){
rel=el.getAttribute("rel");
if(rel&&relAttr.test(rel)){
links.push(el)
}})
}else{
var length=selector.length;
if(length){
if(typeof selector=="string"){
if(S.find){
links=S.find(selector)
}}else{
if(length==2&&typeof selector[0]=="string"&&selector[1].nodeType){
if(S.find){
links=S.find(selector[0], selector[1])
}}else{
for (var i=0; i < length; ++i){
links[i]=selector[i]
}}
}}else{
links.push(selector)
}}
return links
};
S.setup=function (selector, options){
each(S.select(selector), function (i, link){
S.addCache(link, options)
})
};
S.teardown=function (selector){
each(S.select(selector), function (i, link){
S.removeCache(link)
})
};
S.addCache=function (link, options){
var key=link[expando];
if(key==undefined){
key=cacheKey++;
link[expando]=key;
addEvent(link, "click", handleClick)
}
S.cache[key]=S.makeObject(link, options)
};
S.removeCache=function (link){
removeEvent(link, "click", handleClick);
delete S.cache[link[expando]];
link[expando]=null
};
S.getCache=function (link){
var key=link[expando];
return (key in S.cache&&S.cache[key])
};
S.clearCache=function (){
for (var key in S.cache){
S.removeCache(S.cache[key].link)
}
S.cache={}};
function handleClick(e){
S.open(this);
if(S.gallery.length){
preventDefault(e)
}}
S.find=(function (){
var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
done=0, toString=Object.prototype.toString, hasDuplicate=false, baseHasDuplicate=true;
[0, 0].sort(function (){
baseHasDuplicate=false;
return 0
});
var Sizzle=function (selector, context, results, seed){
results=results||[];
var origContext=context=context||document;
if(context.nodeType!==1&&context.nodeType!==9){
return []
}
if(!selector||typeof selector!=="string"){
return results
}
var parts=[], m, set, checkSet, extra, prune=true, contextXML=isXML(context), soFar=selector;
while ((chunker.exec(""), m=chunker.exec(soFar))!==null){
soFar=m[3];
parts.push(m[1]);
if(m[2]){
extra=m[3];
break
}}
if(parts.length > 1&&origPOS.exec(selector)){
if(parts.length===2&&Expr.relative[parts[0]]){
set=posProcess(parts[0] + parts[1], context)
}else{
set=Expr.relative[parts[0]] ? [context]:Sizzle(parts.shift(), context);
while (parts.length){
selector=parts.shift();
if(Expr.relative[selector]){
selector +=parts.shift()
}
set=posProcess(selector, set)
}}
}else{
if(!seed&&parts.length > 1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length - 1])){
var ret=Sizzle.find(parts.shift(), context, contextXML);
context=ret.expr ? Sizzle.filter(ret.expr, ret.set)[0]:ret.set[0]
}
if(context){
var ret=seed ? {
expr: parts.pop(),
set: makeArray(seed)
}:Sizzle.find(parts.pop(), parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode ? context.parentNode:context, contextXML);
set=ret.expr ? Sizzle.filter(ret.expr, ret.set):ret.set;
if(parts.length > 0){
checkSet=makeArray(set)
}else{
prune=false
}
while (parts.length){
var cur=parts.pop(), pop=cur;
if(!Expr.relative[cur]){
cur=""
}else{
pop=parts.pop()
}
if(pop==null){
pop=context
}
Expr.relative[cur](checkSet, pop, contextXML)
}}else{
checkSet=parts=[]
}}
if(!checkSet){
checkSet=set
}
if(!checkSet){
throw"Syntax error, unrecognized expression: " + (cur||selector)
}
if(toString.call(checkSet)==="[object Array]"){
if(!prune){
results.push.apply(results, checkSet)
}else{
if(context&&context.nodeType===1){
for (var i=0; checkSet[i]!=null; i++){
if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context, checkSet[i]))){
results.push(set[i])
}}
}else{
for (var i=0; checkSet[i]!=null; i++){
if(checkSet[i]&&checkSet[i].nodeType===1){
results.push(set[i])
}}
}}
}else{
makeArray(checkSet, results)
}
if(extra){
Sizzle(extra, origContext, results, seed);
Sizzle.uniqueSort(results)
}
return results
};
Sizzle.uniqueSort=function (results){
if(sortOrder){
hasDuplicate=baseHasDuplicate;
results.sort(sortOrder);
if(hasDuplicate){
for (var i=1; i < results.length; i++){
if(results[i]===results[i - 1]){
results.splice(i--, 1)
}}
}}
return results
};
Sizzle.matches=function (expr, set){
return Sizzle(expr, null, null, set)
};
Sizzle.find=function (expr, context, isXML){
var set, match;
if(!expr){
return []
}
for (var i=0, l=Expr.order.length; i < l; i++){
var type=Expr.order[i], match;
if((match=Expr.leftMatch[type].exec(expr))){
var left=match[1];
match.splice(1, 1);
if(left.substr(left.length - 1)!=="\\"){
match[1]=(match[1]||"").replace(/\\/g, "");
set=Expr.find[type](match, context, isXML);
if(set!=null){
expr=expr.replace(Expr.match[type], "");
break
}}
}}
if(!set){
set=context.getElementsByTagName("*")
}
return {set: set, expr: expr}};
Sizzle.filter=function (expr, set, inplace, not){
var old=expr, result=[], curLoop=set, match, anyFound, isXMLFilter=set&&set[0]&&isXML(set[0]);
while (expr&&set.length){
for (var type in Expr.filter){
if((match=Expr.match[type].exec(expr))!=null){
var filter=Expr.filter[type], found, item;
anyFound=false;
if(curLoop===result){
result=[]
}
if(Expr.preFilter[type]){
match=Expr.preFilter[type](match, curLoop, inplace, result, not, isXMLFilter);
if(!match){
anyFound=found=true
}else{
if(match===true){
continue
}}
}
if(match){
for (var i=0; (item=curLoop[i])!=null; i++){
if(item){
found=filter(item, match, i, curLoop);
var pass=not ^ !!found;
if(inplace&&found!=null){
if(pass){
anyFound=true
}else{
curLoop[i]=false
}}else{
if(pass){
result.push(item);
anyFound=true
}}
}}
}
if(found!==undefined){
if(!inplace){
curLoop=result
}
expr=expr.replace(Expr.match[type], "");
if(!anyFound){
return []
}
break
}}
}
if(expr===old){
if(anyFound==null){
throw"Syntax error, unrecognized expression: " + expr
}else{
break
}}
old=expr
}
return curLoop
};
var Expr=Sizzle.selectors={
order: ["ID", "NAME", "TAG"],
match: {
ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,
ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
},
leftMatch: {},
attrMap: {"class": "className", "for": "htmlFor"},
attrHandle: {
href: function (elem){
return elem.getAttribute("href")
}},
relative: {
"+": function (checkSet, part){
var isPartStr=typeof part==="string", isTag=isPartStr&&!/\W/.test(part),
isPartStrNotTag=isPartStr&&!isTag;
if(isTag){
part=part.toLowerCase()
}
for (var i=0, l=checkSet.length, elem; i < l; i++){
if((elem=checkSet[i])){
while ((elem=elem.previousSibling)&&elem.nodeType!==1){
}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part ? elem||false:elem===part
}}
if(isPartStrNotTag){
Sizzle.filter(part, checkSet, true)
}}, ">": function (checkSet, part){
var isPartStr=typeof part==="string";
if(isPartStr&&!/\W/.test(part)){
part=part.toLowerCase();
for (var i=0, l=checkSet.length; i < l; i++){
var elem=checkSet[i];
if(elem){
var parent=elem.parentNode;
checkSet[i]=parent.nodeName.toLowerCase()===part ? parent:false
}}
}else{
for (var i=0, l=checkSet.length; i < l; i++){
var elem=checkSet[i];
if(elem){
checkSet[i]=isPartStr ? elem.parentNode:elem.parentNode===part
}}
if(isPartStr){
Sizzle.filter(part, checkSet, true)
}}
}, "": function (checkSet, part, isXML){
var doneName=done++, checkFn=dirCheck;
if(typeof part==="string"&&!/\W/.test(part)){
var nodeCheck=part=part.toLowerCase();
checkFn=dirNodeCheck
}
checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML)
}, "~": function (checkSet, part, isXML){
var doneName=done++, checkFn=dirCheck;
if(typeof part==="string"&&!/\W/.test(part)){
var nodeCheck=part=part.toLowerCase();
checkFn=dirNodeCheck
}
checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML)
}},
find: {
ID: function (match, context, isXML){
if(typeof context.getElementById!=="undefined"&&!isXML){
var m=context.getElementById(match[1]);
return m ? [m]:[]
}}, NAME: function (match, context){
if(typeof context.getElementsByName!=="undefined"){
var ret=[], results=context.getElementsByName(match[1]);
for (var i=0, l=results.length; i < l; i++){
if(results[i].getAttribute("name")===match[1]){
ret.push(results[i])
}}
return ret.length===0 ? null:ret
}}, TAG: function (match, context){
return context.getElementsByTagName(match[1])
}},
preFilter: {
CLASS: function (match, curLoop, inplace, result, not, isXML){
match=" " + match[1].replace(/\\/g, "") + " ";
if(isXML){
return match
}
for (var i=0, elem; (elem=curLoop[i])!=null; i++){
if(elem){
if(not ^ (elem.className&&(" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >=0)){
if(!inplace){
result.push(elem)
}}else{
if(inplace){
curLoop[i]=false
}}
}}
return false
}, ID: function (match){
return match[1].replace(/\\/g, "")
}, TAG: function (match, curLoop){
return match[1].toLowerCase()
}, CHILD: function (match){
if(match[1]==="nth"){
var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+" + match[2]||match[2]);
match[2]=(test[1] + (test[2]||1)) - 0;
match[3]=test[3] - 0
}
match[0]=done++;
return match
}, ATTR: function (match, curLoop, inplace, result, not, isXML){
var name=match[1].replace(/\\/g, "");
if(!isXML&&Expr.attrMap[name]){
match[1]=Expr.attrMap[name]
}
if(match[2]==="~="){
match[4]=" " + match[4] + " "
}
return match
}, PSEUDO: function (match, curLoop, inplace, result, not){
if(match[1]==="not"){
if((chunker.exec(match[3])||"").length > 1||/^\w/.test(match[3])){
match[3]=Sizzle(match[3], null, null, curLoop)
}else{
var ret=Sizzle.filter(match[3], curLoop, inplace, true ^ not);
if(!inplace){
result.push.apply(result, ret)
}
return false
}}else{
if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){
return true
}}
return match
}, POS: function (match){
match.unshift(true);
return match
}},
filters: {
enabled: function (elem){
return elem.disabled===false&&elem.type!=="hidden"
}, disabled: function (elem){
return elem.disabled===true
}, checked: function (elem){
return elem.checked===true
}, selected: function (elem){
elem.parentNode.selectedIndex;
return elem.selected===true
}, parent: function (elem){
return !!elem.firstChild
}, empty: function (elem){
return !elem.firstChild
}, has: function (elem, i, match){
return !!Sizzle(match[3], elem).length
}, header: function (elem){
return /h\d/i.test(elem.nodeName)
}, text: function (elem){
return "text"===elem.type
}, radio: function (elem){
return "radio"===elem.type
}, checkbox: function (elem){
return "checkbox"===elem.type
}, file: function (elem){
return "file"===elem.type
}, password: function (elem){
return "password"===elem.type
}, submit: function (elem){
return "submit"===elem.type
}, image: function (elem){
return "image"===elem.type
}, reset: function (elem){
return "reset"===elem.type
}, button: function (elem){
return "button"===elem.type||elem.nodeName.toLowerCase()==="button"
}, input: function (elem){
return /input|select|textarea|button/i.test(elem.nodeName)
}},
setFilters: {
first: function (elem, i){
return i===0
}, last: function (elem, i, match, array){
return i===array.length - 1
}, even: function (elem, i){
return i % 2===0
}, odd: function (elem, i){
return i % 2===1
}, lt: function (elem, i, match){
return i < match[3] - 0
}, gt: function (elem, i, match){
return i > match[3] - 0
}, nth: function (elem, i, match){
return match[3] - 0===i
}, eq: function (elem, i, match){
return match[3] - 0===i
}},
filter: {
PSEUDO: function (elem, match, i, array){
var name=match[1], filter=Expr.filters[name];
if(filter){
return filter(elem, i, match, array)
}else{
if(name==="contains"){
return (elem.textContent||elem.innerText||getText([elem])||"").indexOf(match[3]) >=0
}else{
if(name==="not"){
var not=match[3];
for (var i=0, l=not.length; i < l; i++){
if(not[i]===elem){
return false
}}
return true
}else{
throw"Syntax error, unrecognized expression: " + name
}}
}}, CHILD: function (elem, match){
var type=match[1], node=elem;
switch (type){
case"only":
case"first":
while ((node=node.previousSibling)){
if(node.nodeType===1){
return false
}}
if(type==="first"){
return true
}
node=elem;
case"last":
while ((node=node.nextSibling)){
if(node.nodeType===1){
return false
}}
return true;
case"nth":
var first=match[2], last=match[3];
if(first===1&&last===0){
return true
}
var doneName=match[0], parent=elem.parentNode;
if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){
var count=0;
for (node=parent.firstChild; node; node=node.nextSibling){
if(node.nodeType===1){
node.nodeIndex=++count
}}
parent.sizcache=doneName
}
var diff=elem.nodeIndex - last;
if(first===0){
return diff===0
}else{
return (diff % first===0&&diff / first >=0)
}}
}, ID: function (elem, match){
return elem.nodeType===1&&elem.getAttribute("id")===match
}, TAG: function (elem, match){
return (match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match
}, CLASS: function (elem, match){
return (" " + (elem.className||elem.getAttribute("class")) + " ").indexOf(match) > -1
}, ATTR: function (elem, match){
var name=match[1],
result=Expr.attrHandle[name] ? Expr.attrHandle[name](elem):elem[name]!=null ? elem[name]:elem.getAttribute(name),
value=result + "", type=match[2], check=match[4];
return result==null ? type==="!=":type==="=" ? value===check:type==="*=" ? value.indexOf(check) >=0:type==="~=" ? (" " + value + " ").indexOf(check) >=0:!check ? value&&result!==false:type==="!=" ? value!==check:type==="^=" ? value.indexOf(check)===0:type==="$=" ? value.substr(value.length - check.length)===check:type==="|=" ? value===check||value.substr(0, check.length + 1)===check + "-":false
}, POS: function (elem, match, i, array){
var name=match[2], filter=Expr.setFilters[name];
if(filter){
return filter(elem, i, match, array)
}}
}};
var origPOS=Expr.match.POS;
for (var type in Expr.match){
Expr.match[type]=new RegExp(Expr.match[type].source + /(?![^\[]*\])(?![^\(]*\))/.source);
Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source + Expr.match[type].source)
}
var makeArray=function (array, results){
array=Array.prototype.slice.call(array, 0);
if(results){
results.push.apply(results, array);
return results
}
return array
};
try {
Array.prototype.slice.call(document.documentElement.childNodes, 0)
} catch (e){
makeArray=function (array, results){
var ret=results||[];
if(toString.call(array)==="[object Array]"){
Array.prototype.push.apply(ret, array)
}else{
if(typeof array.length==="number"){
for (var i=0, l=array.length; i < l; i++){
ret.push(array[i])
}}else{
for (var i=0; array[i]; i++){
ret.push(array[i])
}}
}
return ret
}}
var sortOrder;
if(document.documentElement.compareDocumentPosition){
sortOrder=function (a, b){
if(!a.compareDocumentPosition||!b.compareDocumentPosition){
if(a==b){
hasDuplicate=true
}
return a.compareDocumentPosition ? -1:1
}
var ret=a.compareDocumentPosition(b) & 4 ? -1:a===b ? 0:1;
if(ret===0){
hasDuplicate=true
}
return ret
}}else{
if("sourceIndex" in document.documentElement){
sortOrder=function (a, b){
if(!a.sourceIndex||!b.sourceIndex){
if(a==b){
hasDuplicate=true
}
return a.sourceIndex ? -1:1
}
var ret=a.sourceIndex - b.sourceIndex;
if(ret===0){
hasDuplicate=true
}
return ret
}}else{
if(document.createRange){
sortOrder=function (a, b){
if(!a.ownerDocument||!b.ownerDocument){
if(a==b){
hasDuplicate=true
}
return a.ownerDocument ? -1:1
}
var aRange=a.ownerDocument.createRange(), bRange=b.ownerDocument.createRange();
aRange.setStart(a, 0);
aRange.setEnd(a, 0);
bRange.setStart(b, 0);
bRange.setEnd(b, 0);
var ret=aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
if(ret===0){
hasDuplicate=true
}
return ret
}}
}}
function getText(elems){
var ret="", elem;
for (var i=0; elems[i]; i++){
elem=elems[i];
if(elem.nodeType===3||elem.nodeType===4){
ret +=elem.nodeValue
}else{
if(elem.nodeType!==8){
ret +=getText(elem.childNodes)
}}
}
return ret
}
(function (){
var form=document.createElement("div"), id="script" + (new Date).getTime();
form.innerHTML="<a name='" + id + "'/>";
var root=document.documentElement;
root.insertBefore(form, root.firstChild);
if(document.getElementById(id)){
Expr.find.ID=function (match, context, isXML){
if(typeof context.getElementById!=="undefined"&&!isXML){
var m=context.getElementById(match[1]);
return m ? m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1] ? [m]:undefined:[]
}};
Expr.filter.ID=function (elem, match){
var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");
return elem.nodeType===1&&node&&node.nodeValue===match
}}
root.removeChild(form);
root=form=null
})();
(function (){
var div=document.createElement("div");
div.appendChild(document.createComment(""));
if(div.getElementsByTagName("*").length > 0){
Expr.find.TAG=function (match, context){
var results=context.getElementsByTagName(match[1]);
if(match[1]==="*"){
var tmp=[];
for (var i=0; results[i]; i++){
if(results[i].nodeType===1){
tmp.push(results[i])
}}
results=tmp
}
return results
}}
div.innerHTML="<a href='#'></a>";
if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){
Expr.attrHandle.href=function (elem){
return elem.getAttribute("href", 2)
}}
div=null
})();
if(document.querySelectorAll){
(function (){
var oldSizzle=Sizzle, div=document.createElement("div");
div.innerHTML="<p class='TEST'></p>";
if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){
return
}
Sizzle=function (query, context, extra, seed){
context=context||document;
if(!seed&&context.nodeType===9&&!isXML(context)){
try {
return makeArray(context.querySelectorAll(query), extra)
} catch (e){
}}
return oldSizzle(query, context, extra, seed)
};
for (var prop in oldSizzle){
Sizzle[prop]=oldSizzle[prop]
}
div=null
})()
}
(function (){
var div=document.createElement("div");
div.innerHTML="<div class='test e'></div><div class='test'></div>";
if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){
return
}
div.lastChild.className="e";
if(div.getElementsByClassName("e").length===1){
return
}
Expr.order.splice(1, 0, "CLASS");
Expr.find.CLASS=function (match, context, isXML){
if(typeof context.getElementsByClassName!=="undefined"&&!isXML){
return context.getElementsByClassName(match[1])
}};
div=null
})();
function dirNodeCheck(dir, cur, doneName, checkSet, nodeCheck, isXML){
for (var i=0, l=checkSet.length; i < l; i++){
var elem=checkSet[i];
if(elem){
elem=elem[dir];
var match=false;
while (elem){
if(elem.sizcache===doneName){
match=checkSet[elem.sizset];
break
}
if(elem.nodeType===1&&!isXML){
elem.sizcache=doneName;
elem.sizset=i
}
if(elem.nodeName.toLowerCase()===cur){
match=elem;
break
}
elem=elem[dir]
}
checkSet[i]=match
}}
}
function dirCheck(dir, cur, doneName, checkSet, nodeCheck, isXML){
for (var i=0, l=checkSet.length; i < l; i++){
var elem=checkSet[i];
if(elem){
elem=elem[dir];
var match=false;
while (elem){
if(elem.sizcache===doneName){
match=checkSet[elem.sizset];
break
}
if(elem.nodeType===1){
if(!isXML){
elem.sizcache=doneName;
elem.sizset=i
}
if(typeof cur!=="string"){
if(elem===cur){
match=true;
break
}}else{
if(Sizzle.filter(cur, [elem]).length > 0){
match=elem;
break
}}
}
elem=elem[dir]
}
checkSet[i]=match
}}
}
var contains=document.compareDocumentPosition ? function (a, b){
return a.compareDocumentPosition(b) & 16
}:function (a, b){
return a!==b&&(a.contains ? a.contains(b):true)
};
var isXML=function (elem){
var documentElement=(elem ? elem.ownerDocument||elem:0).documentElement;
return documentElement ? documentElement.nodeName!=="HTML":false
};
var posProcess=function (selector, context){
var tmpSet=[], later="", match, root=context.nodeType ? [context]:context;
while ((match=Expr.match.PSEUDO.exec(selector))){
later +=match[0];
selector=selector.replace(Expr.match.PSEUDO, "")
}
selector=Expr.relative[selector] ? selector + "*":selector;
for (var i=0, l=root.length; i < l; i++){
Sizzle(selector, root[i], tmpSet)
}
return Sizzle.filter(later, tmpSet)
};
return Sizzle
})();
S.flash=(function (){
var swfobject=function (){
var UNDEF="undefined", OBJECT="object", SHOCKWAVE_FLASH="Shockwave Flash",
SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash", FLASH_MIME_TYPE="application/x-shockwave-flash",
EXPRESS_INSTALL_ID="SWFObjectExprInst", win=window, doc=document, nav=navigator,
domLoadFnArr=[], regObjArr=[], objIdArr=[], listenersArr=[], script, timer=null,
storedAltContent=null, storedAltContentId=null, isDomLoaded=false, isExpressInstallActive=false;
var ua=function (){
var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,
playerVersion=[0, 0, 0], d=null;
if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){
d=nav.plugins[SHOCKWAVE_FLASH].description;
if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){
d=d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
playerVersion[2]=/r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10):0
}}else{
if(typeof win.ActiveXObject!=UNDEF){
var a=null, fp6Crash=false;
try {
a=new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7")
} catch (e){
try {
a=new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6");
playerVersion=[6, 0, 21];
a.AllowScriptAccess="always"
} catch (e){
if(playerVersion[0]==6){
fp6Crash=true
}}
if(!fp6Crash){
try {
a=new ActiveXObject(SHOCKWAVE_FLASH_AX)
} catch (e){
}}
}
if(!fp6Crash&&a){
try {
d=a.GetVariable("$version");
if(d){
d=d.split(" ")[1].split(",");
playerVersion=[parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]
}} catch (e){
}}
}}
var u=nav.userAgent.toLowerCase(), p=nav.platform.toLowerCase(),
webkit=/webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")):false,
ie=false, windows=p ? /win/.test(p):/win/.test(u), mac=p ? /mac/.test(p):/mac/.test(u);
/*@cc_on
ie=true;
@if(@_win32)
windows=true;
@elif(@_mac)
mac=true;
@end
@*/
return {w3cdom: w3cdom, pv: playerVersion, webkit: webkit, ie: ie, win: windows, mac: mac}}();
var onDomLoad=function (){
if(!ua.w3cdom){
return
}
addDomLoadEvent(main);
if(ua.webkit&&typeof doc.readyState!=UNDEF){
timer=setInterval(function (){
if(/loaded|complete/.test(doc.readyState)){
callDomLoadFunctions()
}}, 10)
}
if(typeof doc.addEventListener!=UNDEF){
doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, null)
}
addLoadEvent(callDomLoadFunctions)
}();
function checkReadyState(){
if(script.readyState=="complete"){
script.parentNode.removeChild(script);
callDomLoadFunctions()
}}
function callDomLoadFunctions(){
if(isDomLoaded){
return
}
if(ua.ie&&ua.win){
var s=createElement("span");
try {
var t=doc.getElementsByTagName("body")[0].appendChild(s);
t.parentNode.removeChild(t)
} catch (e){
return
}}
isDomLoaded=true;
if(timer){
clearInterval(timer);
timer=null
}
var dl=domLoadFnArr.length;
for (var i=0; i < dl; i++){
domLoadFnArr[i]()
}}
function addDomLoadEvent(fn){
if(isDomLoaded){
fn()
}else{
domLoadFnArr[domLoadFnArr.length]=fn
}}
function addLoadEvent(fn){
if(typeof win.addEventListener!=UNDEF){
win.addEventListener("load", fn, false)
}else{
if(typeof doc.addEventListener!=UNDEF){
doc.addEventListener("load", fn, false)
}else{
if(typeof win.attachEvent!=UNDEF){
addListener(win, "onload", fn)
}else{
if(typeof win.onload=="function"){
var fnOld=win.onload;
win.onload=function (){
fnOld();
fn()
}}else{
win.onload=fn
}}
}}
}
function main(){
var rl=regObjArr.length;
for (var i=0; i < rl; i++){
var id=regObjArr[i].id;
if(ua.pv[0] > 0){
var obj=getElementById(id);
if(obj){
regObjArr[i].width=obj.getAttribute("width") ? obj.getAttribute("width"):"0";
regObjArr[i].height=obj.getAttribute("height") ? obj.getAttribute("height"):"0";
if(hasPlayerVersion(regObjArr[i].swfVersion)){
if(ua.webkit&&ua.webkit < 312){
fixParams(obj)
}
setVisibility(id, true)
}else{
if(regObjArr[i].expressInstall&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){
showExpressInstall(regObjArr[i])
}else{
displayAltContent(obj)
}}
}}else{
setVisibility(id, true)
}}
}
function fixParams(obj){
var nestedObj=obj.getElementsByTagName(OBJECT)[0];
if(nestedObj){
var e=createElement("embed"), a=nestedObj.attributes;
if(a){
var al=a.length;
for (var i=0; i < al; i++){
if(a[i].nodeName=="DATA"){
e.setAttribute("src", a[i].nodeValue)
}else{
e.setAttribute(a[i].nodeName, a[i].nodeValue)
}}
}
var c=nestedObj.childNodes;
if(c){
var cl=c.length;
for (var j=0; j < cl; j++){
if(c[j].nodeType==1&&c[j].nodeName=="PARAM"){
e.setAttribute(c[j].getAttribute("name"), c[j].getAttribute("value"))
}}
}
obj.parentNode.replaceChild(e, obj)
}}
function showExpressInstall(regObj){
isExpressInstallActive=true;
var obj=getElementById(regObj.id);
if(obj){
if(regObj.altContentId){
var ac=getElementById(regObj.altContentId);
if(ac){
storedAltContent=ac;
storedAltContentId=regObj.altContentId
}}else{
storedAltContent=abstractAltContent(obj)
}
if(!(/%$/.test(regObj.width))&&parseInt(regObj.width, 10) < 310){
regObj.width="310"
}
if(!(/%$/.test(regObj.height))&&parseInt(regObj.height, 10) < 137){
regObj.height="137"
}
doc.title=doc.title.slice(0, 47) + " - Flash Player Installation";
var pt=ua.ie&&ua.win ? "ActiveX":"PlugIn", dt=doc.title,
fv="MMredirectURL=" + win.location + "&MMplayerType=" + pt + "&MMdoctitle=" + dt,
replaceId=regObj.id;
if(ua.ie&&ua.win&&obj.readyState!=4){
var newObj=createElement("div");
replaceId +="SWFObjectNew";
newObj.setAttribute("id", replaceId);
obj.parentNode.insertBefore(newObj, obj);
obj.style.display="none";
var fn=function (){
obj.parentNode.removeChild(obj)
};
addListener(win, "onload", fn)
}
createSWF({
data: regObj.expressInstall,
id: EXPRESS_INSTALL_ID,
width: regObj.width,
height: regObj.height
}, {flashvars: fv}, replaceId)
}}
function displayAltContent(obj){
if(ua.ie&&ua.win&&obj.readyState!=4){
var el=createElement("div");
obj.parentNode.insertBefore(el, obj);
el.parentNode.replaceChild(abstractAltContent(obj), el);
obj.style.display="none";
var fn=function (){
obj.parentNode.removeChild(obj)
};
addListener(win, "onload", fn)
}else{
obj.parentNode.replaceChild(abstractAltContent(obj), obj)
}}
function abstractAltContent(obj){
var ac=createElement("div");
if(ua.win&&ua.ie){
ac.innerHTML=obj.innerHTML
}else{
var nestedObj=obj.getElementsByTagName(OBJECT)[0];
if(nestedObj){
var c=nestedObj.childNodes;
if(c){
var cl=c.length;
for (var i=0; i < cl; i++){
if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){
ac.appendChild(c[i].cloneNode(true))
}}
}}
}
return ac
}
function createSWF(attObj, parObj, id){
var r, el=getElementById(id);
if(el){
if(typeof attObj.id==UNDEF){
attObj.id=id
}
if(ua.ie&&ua.win){
var att="";
for (var i in attObj){
if(attObj[i]!=Object.prototype[i]){
if(i.toLowerCase()=="data"){
parObj.movie=attObj[i]
}else{
if(i.toLowerCase()=="styleclass"){
att +=' class="' + attObj[i] + '"'
}else{
if(i.toLowerCase()!="classid"){
att +=" " + i + '="' + attObj[i] + '"'
}}
}}
}
var par="";
for (var j in parObj){
if(parObj[j]!=Object.prototype[j]){
par +='<param name="' + j + '" value="' + parObj[j] + '" />'
}}
el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + ">" + par + "</object>";
objIdArr[objIdArr.length]=attObj.id;
r=getElementById(attObj.id)
}else{
if(ua.webkit&&ua.webkit < 312){
var e=createElement("embed");
e.setAttribute("type", FLASH_MIME_TYPE);
for (var k in attObj){
if(attObj[k]!=Object.prototype[k]){
if(k.toLowerCase()=="data"){
e.setAttribute("src", attObj[k])
}else{
if(k.toLowerCase()=="styleclass"){
e.setAttribute("class", attObj[k])
}else{
if(k.toLowerCase()!="classid"){
e.setAttribute(k, attObj[k])
}}
}}
}
for (var l in parObj){
if(parObj[l]!=Object.prototype[l]){
if(l.toLowerCase()!="movie"){
e.setAttribute(l, parObj[l])
}}
}
el.parentNode.replaceChild(e, el);
r=e
}else{
var o=createElement(OBJECT);
o.setAttribute("type", FLASH_MIME_TYPE);
for (var m in attObj){
if(attObj[m]!=Object.prototype[m]){
if(m.toLowerCase()=="styleclass"){
o.setAttribute("class", attObj[m])
}else{
if(m.toLowerCase()!="classid"){
o.setAttribute(m, attObj[m])
}}
}}
for (var n in parObj){
if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){
createObjParam(o, n, parObj[n])
}}
el.parentNode.replaceChild(o, el);
r=o
}}
}
return r
}
function createObjParam(el, pName, pValue){
var p=createElement("param");
p.setAttribute("name", pName);
p.setAttribute("value", pValue);
el.appendChild(p)
}
function removeSWF(id){
var obj=getElementById(id);
if(obj&&(obj.nodeName=="OBJECT"||obj.nodeName=="EMBED")){
if(ua.ie&&ua.win){
if(obj.readyState==4){
removeObjectInIE(id)
}else{
win.attachEvent("onload", function (){
removeObjectInIE(id)
})
}}else{
obj.parentNode.removeChild(obj)
}}
}
function removeObjectInIE(id){
var obj=getElementById(id);
if(obj){
for (var i in obj){
if(typeof obj[i]=="function"){
obj[i]=null
}}
obj.parentNode.removeChild(obj)
}}
function getElementById(id){
var el=null;
try {
el=doc.getElementById(id)
} catch (e){
}
return el
}
function createElement(el){
return doc.createElement(el)
}
function addListener(target, eventType, fn){
target.attachEvent(eventType, fn);
listenersArr[listenersArr.length]=[target, eventType, fn]
}
function hasPlayerVersion(rv){
var pv=ua.pv, v=rv.split(".");
v[0]=parseInt(v[0], 10);
v[1]=parseInt(v[1], 10)||0;
v[2]=parseInt(v[2], 10)||0;
return (pv[0] > v[0]||(pv[0]==v[0]&&pv[1] > v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2] >=v[2])) ? true:false
}
function createCSS(sel, decl){
if(ua.ie&&ua.mac){
return
}
var h=doc.getElementsByTagName("head")[0], s=createElement("style");
s.setAttribute("type", "text/css");
s.setAttribute("media", "screen");
if(!(ua.ie&&ua.win)&&typeof doc.createTextNode!=UNDEF){
s.appendChild(doc.createTextNode(sel + " {" + decl + "}"))
}
h.appendChild(s);
if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length > 0){
var ls=doc.styleSheets[doc.styleSheets.length - 1];
if(typeof ls.addRule==OBJECT){
ls.addRule(sel, decl)
}}
}
function setVisibility(id, isVisible){
var v=isVisible ? "visible":"hidden";
if(isDomLoaded&&getElementById(id)){
getElementById(id).style.visibility=v
}else{
createCSS("#" + id, "visibility:" + v)
}}
function urlEncodeIfNecessary(s){
var regex=/[\\\"<>\.;]/;
var hasBadChars=regex.exec(s)!=null;
return hasBadChars ? encodeURIComponent(s):s
}
var cleanup=function (){
if(ua.ie&&ua.win){
window.attachEvent("onunload", function (){
var ll=listenersArr.length;
for (var i=0; i < ll; i++){
listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2])
}
var il=objIdArr.length;
for (var j=0; j < il; j++){
removeSWF(objIdArr[j])
}
for (var k in ua){
ua[k]=null
}
ua=null;
for (var l in swfobject){
swfobject[l]=null
}
swfobject=null
})
}}();
return {
registerObject: function (objectIdStr, swfVersionStr, xiSwfUrlStr){
if(!ua.w3cdom||!objectIdStr||!swfVersionStr){
return
}
var regObj={};
regObj.id=objectIdStr;
regObj.swfVersion=swfVersionStr;
regObj.expressInstall=xiSwfUrlStr ? xiSwfUrlStr:false;
regObjArr[regObjArr.length]=regObj;
setVisibility(objectIdStr, false)
},
getObjectById: function (objectIdStr){
var r=null;
if(ua.w3cdom){
var o=getElementById(objectIdStr);
if(o){
var n=o.getElementsByTagName(OBJECT)[0];
if(!n||(n&&typeof o.SetVariable!=UNDEF)){
r=o
}else{
if(typeof n.SetVariable!=UNDEF){
r=n
}}
}}
return r
},
embedSWF: function (swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj){
if(!ua.w3cdom||!swfUrlStr||!replaceElemIdStr||!widthStr||!heightStr||!swfVersionStr){
return
}
widthStr +="";
heightStr +="";
if(hasPlayerVersion(swfVersionStr)){
setVisibility(replaceElemIdStr, false);
var att={};
if(attObj&&typeof attObj===OBJECT){
for (var i in attObj){
if(attObj[i]!=Object.prototype[i]){
att[i]=attObj[i]
}}
}
att.data=swfUrlStr;
att.width=widthStr;
att.height=heightStr;
var par={};
if(parObj&&typeof parObj===OBJECT){
for (var j in parObj){
if(parObj[j]!=Object.prototype[j]){
par[j]=parObj[j]
}}
}
if(flashvarsObj&&typeof flashvarsObj===OBJECT){
for (var k in flashvarsObj){
if(flashvarsObj[k]!=Object.prototype[k]){
if(typeof par.flashvars!=UNDEF){
par.flashvars +="&" + k + "=" + flashvarsObj[k]
}else{
par.flashvars=k + "=" + flashvarsObj[k]
}}
}}
addDomLoadEvent(function (){
createSWF(att, par, replaceElemIdStr);
if(att.id==replaceElemIdStr){
setVisibility(replaceElemIdStr, true)
}})
}else{
if(xiSwfUrlStr&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){
isExpressInstallActive=true;
setVisibility(replaceElemIdStr, false);
addDomLoadEvent(function (){
var regObj={};
regObj.id=regObj.altContentId=replaceElemIdStr;
regObj.width=widthStr;
regObj.height=heightStr;
regObj.expressInstall=xiSwfUrlStr;
showExpressInstall(regObj)
})
}}
},
getFlashPlayerVersion: function (){
return {major: ua.pv[0], minor: ua.pv[1], release: ua.pv[2]}},
hasFlashPlayerVersion: hasPlayerVersion,
createSWF: function (attObj, parObj, replaceElemIdStr){
if(ua.w3cdom){
return createSWF(attObj, parObj, replaceElemIdStr)
}else{
return undefined
}},
removeSWF: function (objElemIdStr){
if(ua.w3cdom){
removeSWF(objElemIdStr)
}},
createCSS: function (sel, decl){
if(ua.w3cdom){
createCSS(sel, decl)
}},
addDomLoadEvent: addDomLoadEvent,
addLoadEvent: addLoadEvent,
getQueryParamValue: function (param){
var q=doc.location.search||doc.location.hash;
if(param==null){
return urlEncodeIfNecessary(q)
}
if(q){
var pairs=q.substring(1).split("&");
for (var i=0; i < pairs.length; i++){
if(pairs[i].substring(0, pairs[i].indexOf("="))==param){
return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)))
}}
}
return ""
},
expressInstallCallback: function (){
if(isExpressInstallActive&&storedAltContent){
var obj=getElementById(EXPRESS_INSTALL_ID);
if(obj){
obj.parentNode.replaceChild(storedAltContent, obj);
if(storedAltContentId){
setVisibility(storedAltContentId, true);
if(ua.ie&&ua.win){
storedAltContent.style.display="block"
}}
storedAltContent=null;
storedAltContentId=null;
isExpressInstallActive=false
}}
}}
}();
return swfobject
})();
S.lang={
code: "en",
of: "of",
loading: "loading",
cancel: "Cancel",
next: "Next",
previous: "Previous",
play: "Play",
pause: "Pause",
close: "Close",
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.'
}};
var pre, proxyId="sb-drag-proxy", dragData, dragProxy, dragTarget;
function resetDrag(){
dragData={x: 0, y: 0, startX: null, startY: null}}
function updateProxy(){
var dims=S.dimensions;
apply(dragProxy.style, {height: dims.innerHeight + "px", width: dims.innerWidth + "px"})
}
function enableDrag(){
resetDrag();
var style=["position:absolute", "cursor:" + (S.isGecko ? "-moz-grab":"move"), "background-color:" + (S.isIE ? "#fff;filter:alpha(opacity=0)":"transparent")].join(";");
S.appendHTML(S.skin.body, '<div id="' + proxyId + '" style="' + style + '"></div>');
dragProxy=get(proxyId);
updateProxy();
addEvent(dragProxy, "mousedown", startDrag)
}
function disableDrag(){
if(dragProxy){
removeEvent(dragProxy, "mousedown", startDrag);
remove(dragProxy);
dragProxy=null
}
dragTarget=null
}
function startDrag(e){
preventDefault(e);
var xy=getPageXY(e);
dragData.startX=xy[0];
dragData.startY=xy[1];
dragTarget=get(S.player.id);
addEvent(document, "mousemove", positionDrag);
addEvent(document, "mouseup", endDrag);
if(S.isGecko){
dragProxy.style.cursor="-moz-grabbing"
}}
function positionDrag(e){
var player=S.player, dims=S.dimensions, xy=getPageXY(e);
var moveX=xy[0] - dragData.startX;
dragData.startX +=moveX;
dragData.x=Math.max(Math.min(0, dragData.x + moveX), dims.innerWidth - player.width);
var moveY=xy[1] - dragData.startY;
dragData.startY +=moveY;
dragData.y=Math.max(Math.min(0, dragData.y + moveY), dims.innerHeight - player.height);
apply(dragTarget.style, {left: dragData.x + "px", top: dragData.y + "px"})
}
function endDrag(){
removeEvent(document, "mousemove", positionDrag);
removeEvent(document, "mouseup", endDrag);
if(S.isGecko){
dragProxy.style.cursor="-moz-grab"
}}
S.img=function (obj, id){
this.obj=obj;
this.id=id;
this.ready=false;
var self=this;
pre=new Image();
pre.onload=function (){
self.height=obj.height ? parseInt(obj.height, 10):pre.height;
self.width=obj.width ? parseInt(obj.width, 10):pre.width;
self.ready=true;
pre.onload=null;
pre=null
};
pre.src=obj.content
};
S.img.ext=["bmp", "gif", "jpg", "jpeg", "png"];
S.img.prototype={
append: function (body, dims){
var img=document.createElement("img");
img.id=this.id;
img.src=this.obj.content;
img.style.position="absolute";
var height, width;
if(dims.oversized&&S.options.handleOversize=="resize"){
height=dims.innerHeight;
width=dims.innerWidth
}else{
height=this.height;
width=this.width
}
img.setAttribute("height", height);
img.setAttribute("width", width);
body.appendChild(img)
}, remove: function (){
var el=get(this.id);
if(el){
remove(el)
}
disableDrag();
if(pre){
pre.onload=null;
pre=null
}}, onLoad: function (){
var dims=S.dimensions;
if(dims.oversized&&S.options.handleOversize=="drag"){
enableDrag()
}}, onWindowResize: function (){
var dims=S.dimensions;
switch (S.options.handleOversize){
case"resize":
var el=get(this.id);
el.height=dims.innerHeight;
el.width=dims.innerWidth;
break;
case"drag":
if(dragTarget){
var top=parseInt(S.getStyle(dragTarget, "top")),
left=parseInt(S.getStyle(dragTarget, "left"));
if(top + this.height < dims.innerHeight){
dragTarget.style.top=dims.innerHeight - this.height + "px"
}
if(left + this.width < dims.innerWidth){
dragTarget.style.left=dims.innerWidth - this.width + "px"
}
updateProxy()
}
break
}}
};
S.iframe=function (obj, id){
this.obj=obj;
this.id=id;
var overlay=get("sb-overlay");
this.height=obj.height ? parseInt(obj.height, 10):overlay.offsetHeight;
this.width=obj.width ? parseInt(obj.width, 10):overlay.offsetWidth
};
S.iframe.prototype={
append: function (body, dims){
var html='<iframe id="' + this.id + '" name="' + this.id + '" height="100%" width="100%" frameborder="0" marginwidth="0" marginheight="0" style="visibility:hidden" onload="this.style.visibility=\'visible\'" scrolling="auto"';
if(S.isIE){
html +=' allowtransparency="true"';
if(S.isIE6){
html +=" src=\"javascript:false;document.write('');\""
}}
html +="></iframe>";
body.innerHTML=html
}, remove: function (){
var el=get(this.id);
if(el){
remove(el);
if(S.isGecko){
delete window.frames[this.id]
}}
}, onLoad: function (){
var win=S.isIE ? get(this.id).contentWindow:window.frames[this.id];
win.location.href=this.obj.content
}};
S.html=function (obj, id){
this.obj=obj;
this.id=id;
this.height=obj.height ? parseInt(obj.height, 10):300;
this.width=obj.width ? parseInt(obj.width, 10):500
};
S.html.prototype={
append: function (body, dims){
var div=document.createElement("div");
div.id=this.id;
div.className="html";
div.innerHTML=this.obj.content;
body.appendChild(div)
}, remove: function (){
var el=get(this.id);
if(el){
remove(el)
}}
};
S.swf=function (obj, id){
this.obj=obj;
this.id=id;
this.height=obj.height ? parseInt(obj.height, 10):300;
this.width=obj.width ? parseInt(obj.width, 10):300
};
S.swf.ext=["swf"];
S.swf.prototype={
append: function (body, dims){
var tmp=document.createElement("div");
tmp.id=this.id;
body.appendChild(tmp);
var height=dims.innerHeight, width=dims.innerWidth, swf=this.obj.content,
version=S.options.flashVersion, express=S.path + "expressInstall.swf",
flashvars=S.options.flashVars, params=S.options.flashParams;
S.flash.embedSWF(swf, this.id, width, height, version, express, flashvars, params)
}, remove: function (){
S.flash.expressInstallCallback();
S.flash.removeSWF(this.id)
}, onWindowResize: function (){
var dims=S.dimensions, el=get(this.id);
el.height=dims.innerHeight;
el.width=dims.innerWidth
}};
var jwControllerHeight=20;
S.flv=function (obj, id){
this.obj=obj;
this.id=id;
this.height=obj.height ? parseInt(obj.height, 10):300;
if(S.options.showMovieControls){
this.height +=jwControllerHeight
}
this.width=obj.width ? parseInt(obj.width, 10):300
};
S.flv.ext=["flv", "m4v"];
S.flv.prototype={
append: function (body, dims){
var tmp=document.createElement("div");
tmp.id=this.id;
body.appendChild(tmp);
var height=dims.innerHeight, width=dims.innerWidth, swf=S.path + "player.swf",
version=S.options.flashVersion, express=S.path + "expressInstall.swf", flashvars=apply({
file: this.obj.content,
height: height,
width: width,
autostart: (S.options.autoplayMovies ? "true":"false"),
controlbar: (S.options.showMovieControls ? "bottom":"none"),
backcolor: "0x000000",
frontcolor: "0xCCCCCC",
lightcolor: "0x557722"
}, S.options.flashVars), params=S.options.flashParams;
S.flash.embedSWF(swf, this.id, width, height, version, express, flashvars, params)
}, remove: function (){
S.flash.expressInstallCallback();
S.flash.removeSWF(this.id)
}, onWindowResize: function (){
var dims=S.dimensions, el=get(this.id);
el.height=dims.innerHeight;
el.width=dims.innerWidth
}};
var qtControllerHeight=16;
S.qt=function (obj, id){
this.obj=obj;
this.id=id;
this.height=obj.height ? parseInt(obj.height, 10):300;
if(S.options.showMovieControls){
this.height +=qtControllerHeight
}
this.width=obj.width ? parseInt(obj.width, 10):300
};
S.qt.ext=["dv", "mov", "moov", "movie", "mp4", "avi", "mpg", "mpeg"];
S.qt.prototype={
append: function (body, dims){
var opt=S.options, autoplay=String(opt.autoplayMovies), controls=String(opt.showMovieControls);
var html="<object",
movie={id: this.id, name: this.id, height: this.height, width: this.width, kioskmode: "true"};
if(S.isIE){
movie.classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
movie.codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"
}else{
movie.type="video/quicktime";
movie.data=this.obj.content
}
for (var m in movie){
html +=" " + m + '="' + movie[m] + '"'
}
html +=">";
var params={src: this.obj.content, scale: "aspect", controller: controls, autoplay: autoplay};
for (var p in params){
html +='<param name="' + p + '" value="' + params[p] + '">'
}
html +="</object>";
body.innerHTML=html
}, remove: function (){
try {
document[this.id].Stop()
} catch (e){
}
var el=get(this.id);
if(el){
remove(el)
}}
};
var wmpControllerHeight=(S.isIE ? 70:45);
S.wmp=function (obj, id){
this.obj=obj;
this.id=id;
this.height=obj.height ? parseInt(obj.height, 10):300;
if(S.options.showMovieControls){
this.height +=wmpControllerHeight
}
this.width=obj.width ? parseInt(obj.width, 10):300
};
S.wmp.ext=["asf", "avi", "mpg", "mpeg", "wm", "wmv"];
S.wmp.prototype={
append: function (body, dims){
var opt=S.options, autoplay=opt.autoplayMovies ? 1:0;
var movie='<object id="' + this.id + '" name="' + this.id + '" height="' + this.height + '" width="' + this.width + '"',
params={autostart: opt.autoplayMovies ? 1:0};
if(S.isIE){
movie +=' classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"';
params.url=this.obj.content;
params.uimode=opt.showMovieControls ? "full":"none"
}else{
movie +=' type="video/x-ms-wmv"';
movie +=' data="' + this.obj.content + '"';
params.showcontrols=opt.showMovieControls ? 1:0
}
movie +=">";
for (var p in params){
movie +='<param name="' + p + '" value="' + params[p] + '">'
}
movie +="</object>";
body.innerHTML=movie
}, remove: function (){
if(S.isIE){
try {
window[this.id].controls.stop();
window[this.id].URL="movie" + now() + ".wmv";
window[this.id]=function (){
}} catch (e){
}}
var el=get(this.id);
if(el){
setTimeout(function (){
remove(el)
}, 10)
}}
};
var overlayOn=false, visibilityCache=[],
pngIds=["sb-nav-close", "sb-nav-next", "sb-nav-play", "sb-nav-pause", "sb-nav-previous"], container, overlay,
wrapper, doWindowResize=true;
function animate(el, property, to, duration, callback){
var isOpacity=(property=="opacity"), anim=isOpacity ? S.setOpacity:function (el, value){
el.style[property]="" + value + "px"
};
if(duration==0||(!isOpacity&&!S.options.animate)||(isOpacity&&!S.options.animateFade)){
anim(el, to);
if(callback){
callback()
}
return
}
var from=parseFloat(S.getStyle(el, property))||0;
var delta=to - from;
if(delta==0){
if(callback){
callback()
}
return
}
duration *=1000;
var begin=now(), ease=S.ease, end=begin + duration, time;
var interval=setInterval(function (){
time=now();
if(time >=end){
clearInterval(interval);
interval=null;
anim(el, to);
if(callback){
callback()
}}else{
anim(el, from + ease((time - begin) / duration) * delta)
}}, 10)
}
function setSize(){
container.style.height=S.getWindowSize("Height") + "px";
container.style.width=S.getWindowSize("Width") + "px"
}
function setPosition(){
container.style.top=document.documentElement.scrollTop + "px";
container.style.left=document.documentElement.scrollLeft + "px"
}
function toggleTroubleElements(on){
if(on){
each(visibilityCache, function (i, el){
el[0].style.visibility=el[1]||""
})
}else{
visibilityCache=[];
each(S.options.troubleElements, function (i, tag){
each(document.getElementsByTagName(tag), function (j, el){
visibilityCache.push([el, el.style.visibility]);
el.style.visibility="hidden"
})
})
}}
function toggleNav(id, on){
var el=get("sb-nav-" + id);
if(el){
el.style.display=on ? "":"none"
}}
function toggleLoading(on, callback){
var loading=get("sb-loading"), playerName=S.getCurrent().player,
anim=(playerName=="img"||playerName=="html");
if(on){
S.setOpacity(loading, 0);
loading.style.display="block";
var wrapped=function (){
S.clearOpacity(loading);
if(callback){
callback()
}};
if(anim){
animate(loading, "opacity", 1, S.options.fadeDuration, wrapped)
}else{
wrapped()
}}else{
var wrapped=function (){
loading.style.display="none";
S.clearOpacity(loading);
if(callback){
callback()
}};
if(anim){
animate(loading, "opacity", 0, S.options.fadeDuration, wrapped)
}else{
wrapped()
}}
}
function buildBars(callback){
var obj=S.getCurrent();
get("sb-title-inner").innerHTML=obj.title||"";
var close, next, play, pause, previous;
if(S.options.displayNav){
close=true;
var len=S.gallery.length;
if(len > 1){
if(S.options.continuous){
next=previous=true
}else{
next=(len - 1) > S.current;
previous=S.current > 0
}}
if(S.options.slideshowDelay > 0&&S.hasNext()){
pause = !S.isPaused();
play = !pause
}}else{
close=next=play=pause=previous=false
}
toggleNav("close", close);
toggleNav("next", next);
toggleNav("play", play);
toggleNav("pause", pause);
toggleNav("previous", previous);
var counter="";
if(S.options.displayCounter&&S.gallery.length > 1){
var len=S.gallery.length;
if(S.options.counterType=="skip"){
var 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
}
counter +='<a onclick="Shadowbox.change(' + i + ');"';
if(i==S.current){
counter +=' class="sb-counter-current"'
}
counter +=">" + (++i) + "</a>"
}}else{
counter=[S.current + 1, S.lang.of, len].join(" ")
}}
get("sb-counter").innerHTML=counter;
callback()
}
function showBars(callback){
var titleInner=get("sb-title-inner"), infoInner=get("sb-info-inner"), duration=0.35;
titleInner.style.visibility=infoInner.style.visibility="";
if(titleInner.innerHTML!=""){
animate(titleInner, "marginTop", 0, duration)
}
animate(infoInner, "marginTop", 0, duration, callback)
}
function hideBars(anim, callback){
var title=get("sb-title"), info=get("sb-info"), titleHeight=title.offsetHeight,
infoHeight=info.offsetHeight, titleInner=get("sb-title-inner"), infoInner=get("sb-info-inner"),
duration=(anim ? 0.35:0);
animate(titleInner, "marginTop", titleHeight, duration);
animate(infoInner, "marginTop", infoHeight * -1, duration, function (){
titleInner.style.visibility=infoInner.style.visibility="hidden";
callback()
})
}
function adjustHeight(height, top, anim, callback){
var wrapperInner=get("sb-wrapper-inner"), duration=(anim ? S.options.resizeDuration:0);
animate(wrapper, "top", top, duration);
animate(wrapperInner, "height", height, duration, callback)
}
function adjustWidth(width, left, anim, callback){
var duration=(anim ? S.options.resizeDuration:0);
animate(wrapper, "left", left, duration);
animate(wrapper, "width", width, duration, callback)
}
function setDimensions(height, width){
var bodyInner=get("sb-body-inner"), height=parseInt(height), width=parseInt(width),
topBottom=wrapper.offsetHeight - bodyInner.offsetHeight,
leftRight=wrapper.offsetWidth - bodyInner.offsetWidth, maxHeight=overlay.offsetHeight,
maxWidth=overlay.offsetWidth, padding=parseInt(S.options.viewportPadding)||20,
preserveAspect=(S.player&&S.options.handleOversize!="drag");
return S.setDimensions(height, width, maxHeight, maxWidth, topBottom, leftRight, padding, preserveAspect)
}
var K={};
K.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-wrapper-inner"><div id="sb-body"><div id="sb-body-inner"></div><div id="sb-loading"><div id="sb-loading-inner"><span>{loading}</span></div></div></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></div></div></div>';
K.options={
animSequence: "sync",
counterLimit: 10,
counterType: "default",
displayCounter: true,
displayNav: true,
fadeDuration: 0.35,
initialHeight: 160,
initialWidth: 320,
modal: false,
overlayColor: "#000",
overlayOpacity: 0.5,
resizeDuration: 0.35,
showOverlay: true,
troubleElements: ["select", "object", "embed", "canvas"]
};
K.init=function (){
S.appendHTML(document.body, sprintf(K.markup, S.lang));
K.body=get("sb-body-inner");
container=get("sb-container");
overlay=get("sb-overlay");
wrapper=get("sb-wrapper");
if(!supportsFixed){
container.style.position="absolute"
}
if(!supportsOpacity){
var el, m, re=/url\("(.*\.png)"\)/;
each(pngIds, function (i, id){
el=get(id);
if(el){
m=S.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);"
}}
})
}
var timer;
addEvent(window, "resize", function (){
if(timer){
clearTimeout(timer);
timer=null
}
if(open){
timer=setTimeout(K.onWindowResize, 10)
}})
};
K.onOpen=function (obj, callback){
doWindowResize=false;
container.style.display="block";
setSize();
var dims=setDimensions(S.options.initialHeight, S.options.initialWidth);
adjustHeight(dims.innerHeight, dims.top);
adjustWidth(dims.width, dims.left);
if(S.options.showOverlay){
overlay.style.backgroundColor=S.options.overlayColor;
S.setOpacity(overlay, 0);
if(!S.options.modal){
addEvent(overlay, "click", S.close)
}
overlayOn=true
}
if(!supportsFixed){
setPosition();
addEvent(window, "scroll", setPosition)
}
toggleTroubleElements();
container.style.visibility="visible";
if(overlayOn){
animate(overlay, "opacity", S.options.overlayOpacity, S.options.fadeDuration, callback)
}else{
callback()
}};
K.onLoad=function (changing, callback){
toggleLoading(true);
while (K.body.firstChild){
remove(K.body.firstChild)
}
hideBars(changing, function (){
if(!open){
return
}
if(!changing){
wrapper.style.visibility="visible"
}
buildBars(callback)
})
};
K.onReady=function (callback){
if(!open){
return
}
var player=S.player, dims=setDimensions(player.height, player.width);
var wrapped=function (){
showBars(callback)
};
switch (S.options.animSequence){
case"hw":
adjustHeight(dims.innerHeight, dims.top, true, function (){
adjustWidth(dims.width, dims.left, true, wrapped)
});
break;
case"wh":
adjustWidth(dims.width, dims.left, true, function (){
adjustHeight(dims.innerHeight, dims.top, true, wrapped)
});
break;
default:
adjustWidth(dims.width, dims.left, true);
adjustHeight(dims.innerHeight, dims.top, true, wrapped)
}};
K.onShow=function (callback){
toggleLoading(false, callback);
doWindowResize=true
};
K.onClose=function (){
if(!supportsFixed){
removeEvent(window, "scroll", setPosition)
}
removeEvent(overlay, "click", S.close);
wrapper.style.visibility="hidden";
var callback=function (){
container.style.visibility="hidden";
container.style.display="none";
toggleTroubleElements(true)
};
if(overlayOn){
animate(overlay, "opacity", 0, S.options.fadeDuration, callback)
}else{
callback()
}};
K.onPlay=function (){
toggleNav("play", false);
toggleNav("pause", true)
};
K.onPause=function (){
toggleNav("pause", false);
toggleNav("play", true)
};
K.onWindowResize=function (){
if(!doWindowResize){
return
}
setSize();
var player=S.player, dims=setDimensions(player.height, player.width);
adjustWidth(dims.width, dims.left);
adjustHeight(dims.innerHeight, dims.top);
if(player.onWindowResize){
player.onWindowResize()
}};
S.skin=K;
window.Shadowbox=S
})(window);
function setupDemos(){
Shadowbox.setup("a.mustang-gallery", {
gallery: "mustang",
continuous: true,
counterType: "skip"
});
Shadowbox.setup("a.swf-gallery", {
gallery: "swf",
continuous: true
});
Shadowbox.setup('a[title="Sweetness"]', {
width: 512,
height: 322,
flashVars: {
id: "v2155043",
vid: "2021599",
autoPlay: 1
},
flashParams: {
AllowScriptAccess: "always",
allowFullScreen: "true"
}});
Shadowbox.setup('a[title="The Last Eggtion Hero"]', {
height: 360,
width: 640,
flashVars: {
clip_id: "1893986",
autoplay: "1"
}});
Shadowbox.setup('a[title="While My Ukulele Gently Weeps"]', {
height: 327,
width: 400,
flashVars: {
docid: "1352016870638076087",
autoplay: "1"
}});
Shadowbox.setup('a[title="Altaic Warrior - Clipped"]', {
handleOversize: "none"
});
Shadowbox.setup('a[title="Altaic Warrior - Draggable"]', {
handleOversize: "drag"
});
};