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