if(typeof Shadowbox=="undefined")
{
	throw"Unable to load Shadowbox, no base library adapter found."
}
(function()
{
	var version = "1.0";
	var options = {
		assetURL:"",
		loadingImage:"images/loading.gif",
		animate:true,
		animSequence:"wh",
		flvPlayer:"flvplayer.swf",
		overlayColor:"#000",
		overlayOpacity:0.85,
		overlayBgImage:"images/overlay-85.png",
		listenOverlay:true,
		autoplayMovies:true,
		showMovieControls:true,
		resizeDuration:0.35,
		fadeDuration:0.35,
		displayNav:true,
		continuous:false,
		displayCounter:true,
		counterType:"default",
		viewportPadding:20,
		handleLgImages:"resize",
		initialHeight:160,
		initialWidth:320,
		enableKeys:true,
		keysClose:["s","q",27],
		keysNext:["n",39],
		keysPrev:["v",37],
		onOpen:null,
		onFinish:null,
		onChange:null,
		onClose:null,
		handleUnsupported:"link",
		skipSetup:false,
		text: {
			cancel:"Abbrechen",
			loading:"Wird geladen",
			close:'<span class="shortcut">S</span>chlie&szlig;en',
			next:'<span class="shortcut">N</span>&auml;chstes',
			prev:'<span class="shortcut">V</span>orheriges',
			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"></div><div id="shadowbox_container"><div id="shadowbox"><div id="shadowbox_title"><div id="shadowbox_title_inner"></div></div><div id="shadowbox_body"><div id="shadowbox_body_inner"></div><div id="shadowbox_loading"></div></div><div id="shadowbox_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,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)
				{
					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"unsupported"
			};
			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],{height:160,width:320,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:"";
					var tool_i=SL.get("shadowbox_toolbar_inner");
					tool_i.innerHTML="";
					if(options.displayNav)
					{
						tool_i.innerHTML=String.format(options.skin.close,options.text.close);
						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)+" von "+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.href
							}
							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.href
							}
						}
					};
					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.html";
											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)
								}
								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])
							}
							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=0xCCCCCC&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]
				})
			}

window.addEventListener?window.addEventListener('load',Shadowbox.init,false):window.attachEvent('onload',Shadowbox.init);
