(
	function (au, k)
	{
		var Q = {version: "3.0.3"};
		var J = navigator.userAgent.toLowerCase();
		if (J.indexOf("windows") > -1 || J.indexOf("win32") > -1)
		{
			Q.isWindows = true
		}
		else
		{
			if (J.indexOf("macintosh") > -1 || J.indexOf("mac os x") > -1)
			{
				Q.isMac = true
			}
			else
			{
				if (J.indexOf("linux") > -1)
				{
					Q.isLinux = true
				}
			}
		}
		Q.isIE = J.indexOf("msie") > -1;
		Q.isIE6 = J.indexOf("msie 6") > -1;
		Q.isIE7 = J.indexOf("msie 7") > -1;
		Q.isGecko = J.indexOf("gecko") > -1 && J.indexOf("safari") == -1;
		Q.isWebKit = J.indexOf("applewebkit/") > -1;
		var ab = /#(.+)$/,
			af = /^(zbox)\[(.*?)\]/i,
			az = /\s*([a-z_]*?)\s*=\s*(.+)\s*/,
			f = /[0-9a-z]+$/i,
			aD = /(.+\/)zbox\.js/i;
		var A = false,
			a = false,
			l = {},
			z = 0,
			R, ap;
		Q.current = -1;
		Q.dimensions = null;
		Q.ease = function (K)
		{
			return 1 + Math.pow(K - 1, 3)
		};
		Q.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"
			}
		};
		Q.gallery = [];
		Q.onReady = aj;
		Q.path = null;
		Q.player = null;
		Q.playerId = "sb-player";
		Q.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: aj,
			onClose: aj,
			onFinish: aj,
			onOpen: aj,
			showMovieControls: true,
			skipSetup: false,
			slideshowDelay: 0,
			viewportPadding: 20
		};
		Q.getCurrent = function ()
		{
			return Q.current > -1 ? Q.gallery[Q.current] : null
		};
		Q.hasNext = function ()
		{
			return Q.gallery.length > 1 && (Q.current != Q.gallery.length - 1 || Q.options.continuous)
		};
		Q.isOpen = function ()
		{
			return A
		};
		Q.isPaused = function ()
		{
			return ap == "pause"
		};
		Q.applyOptions = function (K)
		{
			l = aC({}, Q.options);
			aC(Q.options, K)
		};
		Q.revertOptions = function ()
		{
			aC(Q.options, l)
		};
		Q.init = function (aG, aJ)
		{
			if (a)
			{
				return
			}
			a = true;
			if (Q.skin.options)
			{
				aC(Q.options, Q.skin.options)
			}
			if (aG)
			{
				aC(Q.options, aG)
			}
			if (!Q.path)
			{
				var aI, S = document.getElementsByTagName("script");
				for (var aH = 0, K = S.length; aH < K; ++aH)
				{
					aI = aD.exec(S[aH].src);
					if (aI)
					{
						Q.path = aI[1];
						break
					}
				}
			}
			if (aJ)
			{
				Q.onReady = aJ
			}
			P()
		};
		Q.open = function (S)
		{
			if (A)
			{
				return
			}
			var K = Q.makeGallery(S);
			Q.gallery = K[0];
			Q.current = K[1];
			S = Q.getCurrent();
			if (S == null)
			{
				return
			}
			Q.applyOptions(S.options || {
			});
			G();
			if (Q.gallery.length)
			{
				S = Q.getCurrent();
				if (Q.options.onOpen(S) === false)
				{
					return
				}
				A = true;
				Q.skin.onOpen(S, c)
			}
		};
		Q.close = function ()
		{
			if (!A)
			{
				return
			}
			A = false;
			if (Q.player)
			{
				Q.player.remove();
				Q.player = null
			}
			if (typeof ap == "number")
			{
				clearTimeout(ap);
				ap = null
			}
			z = 0;
			aq(false);
			Q.options.onClose(Q.getCurrent());
			Q.skin.onClose();
			Q.revertOptions()
		};
		Q.play = function ()
		{
			if (!Q.hasNext())
			{
				return
			}
			if (!z)
			{
				z = Q.options.slideshowDelay * 1000
			}
			if (z)
			{
				R = aw();
				ap = setTimeout(

				function ()
				{
					z = R = 0;
					Q.next()
				}, z);
				if (Q.skin.onPlay)
				{
					Q.skin.onPlay()
				}
			}
		};
		Q.pause = function ()
		{
			if (typeof ap != "number")
			{
				return
			}
			z = Math.max(0, z - (aw() - R));
			if (z)
			{
				clearTimeout(ap);
				ap = "pause";
				if (Q.skin.onPause)
				{
					Q.skin.onPause()
				}
			}
		};
		Q.change = function (K)
		{
			if (!(K in Q.gallery))
			{
				if (Q.options.continuous)
				{
					K = (K < 0 ? Q.gallery.length + K : 0);
					if (!(K in Q.gallery))
					{
						return
					}
				}
				else
				{
					return
				}
			}
			Q.current = K;
			if (typeof ap == "number")
			{
				clearTimeout(ap);
				ap = null;
				z = R = 0
			}
			Q.options.onChange(Q.getCurrent());
			c(true)
		};
		Q.next = function ()
		{
			Q.change(Q.current + 1)
		};
		Q.previous = function ()
		{
			Q.change(Q.current - 1)
		};
		Q.setDimensions = function (aS, aJ, aQ, aR, aI, K, aO, aL)
		{
			var aN = aS,
				aH = aJ;
			var aM = 2 * aO + aI;
			if (aS + aM > aQ)
			{
				aS = aQ - aM
			}
			var aG = 2 * aO + K;
			if (aJ + aG > aR)
			{
				aJ = aR - aG
			}
			var S = (aN - aS) / aN,
				aP = (aH - aJ) / aH,
				aK = (S > 0 || aP > 0);
			if (aL && aK)
			{
				if (S > aP)
				{
					aJ = Math.round((aH / aN) * aS)
				}
				else
				{
					if (aP > S)
					{
						aS = Math.round((aN / aH) * aJ)
					}
				}
			}
			Q.dimensions =
			{
				height: aS + aI,
				width: aJ + K,
				innerHeight: aS,
				innerWidth: aJ,
				top: Math.floor((aQ - (aS + aM)) / 2 + aO),
				left: Math.floor((aR - (aJ + aG)) / 2 + aO),
				oversized: aK
			};
			return Q.dimensions
		};
		Q.makeGallery = function (aI)
		{
			var K = [],
				aH = -1;
			if (typeof aI == "string")
			{
				aI = [aI]
			}
			if (typeof aI.length == "number")
			{
				aF(aI, function (aK, aL)
				{
					if (aL.content)
					{
						K[aK] = aL
					}
					else
					{
						K[aK] =
						{
							content: aL
						}
					}
				});
				aH = 0
			}
			else
			{
				if (aI.tagName)
				{
					var S = Q.getCache(aI);
					aI = S ? S : Q.makeObject(aI)
				}
				if (aI.gallery)
				{
					K = [];
					var aJ;
					for (var aG in Q.cache)
					{
						aJ = Q.cache[aG];
						if (aJ.gallery && aJ.gallery == aI.gallery)
						{
							if (aH == -1 && aJ.content == aI.content)
							{
								aH = K.length
							}
							K.push(aJ)
						}
					}
					if (aH == -1)
					{
						K.unshift(aI);
						aH = 0
					}
				}
				else
				{
					K = [aI];
					aH = 0
				}
			}
			aF(K, function (aK, aL)
			{
				K[aK] = aC(
				{
				}, aL)
			});
			return [K, aH]
		};
		Q.makeObject = function (aH, aG)
		{
			var aI =
			{
				content: aH.href,
				title: aH.getAttribute("title") || "",
				link: aH
			};
			if (aG)
			{
				aG = aC(
				{
				}, aG);
				aF(["player", "title", "height", "width", "gallery"], function (aJ, aK)
				{
					if (typeof aG[aK] != "undefined")
					{
						aI[aK] = aG[aK];
						delete aG[aK]
					}
				});
				aI.options = aG
			}
			else
			{
				aI.options =
				{
				}
			}
			if (!aI.player)
			{
				aI.player = Q.getPlayer(aI.content)
			}
			var K = aH.getAttribute("rel");
			if (K)
			{
				var S = K.match(af);
				if (S)
				{
					aI.gallery = escape(S[2])
				}
				aF(K.split(";"), function (aJ, aK)
				{
					S = aK.match(az);
					if (S)
					{
						aI[S[1]] = S[2]
					}
				})
			}
			return aI
		};
		Q.getPlayer = function (aG)
		{
			if (aG.indexOf("#") > -1 && aG.indexOf(document.location.href) == 0)
			{
				return "inline"
			}
			var aH = aG.indexOf("?");
			if (aH > -1)
			{
				aG = aG.substring(0, aH)
			}
			var S, K = aG.match(f);
			if (K)
			{
				S = K[0].toLowerCase()
			}
			if (S)
			{
				if (Q.img && Q.img.ext.indexOf(S) > -1)
				{
					return "img"
				}
				if (Q.swf && Q.swf.ext.indexOf(S) > -1)
				{
					return "swf"
				}
				if (Q.flv && Q.flv.ext.indexOf(S) > -1)
				{
					return "flv"
				}
				if (Q.qt && Q.qt.ext.indexOf(S) > -1)
				{
					if (Q.wmp && Q.wmp.ext.indexOf(S) > -1)
					{
						return "qtwmp"
					}
					else
					{
						return "qt"
					}
				}
				if (Q.wmp && Q.wmp.ext.indexOf(S) > -1)
				{
					return "wmp"
				}
			}
			return "iframe"
		};

		function G()
		{
			var aH = Q.errorInfo,
				aI = Q.plugins,
				aK, aL, aO, aG, aN, S, aM, K;
			for (var aJ = 0; aJ < Q.gallery.length; ++aJ)
			{
				aK = Q.gallery[aJ];
				aL = false;
				aO = null;
				switch (aK.player)
				{
				case "flv":
				case "swf":
					if (!aI.fla)
					{
						aO = "fla"
					}
					break;
				case "qt":
					if (!aI.qt)
					{
						aO = "qt"
					}
					break;
				case "wmp":
					if (Q.isMac)
					{
						if (aI.qt && aI.f4m)
						{
							aK.player = "qt"
						}
						else
						{
							aO = "qtf4m"
						}
					}
					else
					{
						if (!aI.wmp)
						{
							aO = "wmp"
						}
					}
					break;
				case "qtwmp":
					if (aI.qt)
					{
						aK.player = "qt"
					}
					else
					{
						if (aI.wmp)
						{
							aK.player = "wmp"
						}
						else
						{
							aO = "qtwmp"
						}
					}
					break
				}
				if (aO)
				{
					if (Q.options.handleUnsupported == "link")
					{
						switch (aO)
						{
						case "qtf4m":
							aN = "shared";
							S = [aH.qt.url, aH.qt.name, aH.f4m.url, aH.f4m.name];
							break;
						case "qtwmp":
							aN = "either";
							S = [aH.qt.url, aH.qt.name, aH.wmp.url, aH.wmp.name];
							break;
						default:
							aN = "single";
							S = [aH[aO].url, aH[aO].name]
						}
						aK.player = "html";
						aK.content = '<div class="sb-message">' + s(Q.lang.errors[aN], S) + "</div>"
					}
					else
					{
						aL = true
					}
				}
				else
				{
					if (aK.player == "inline")
					{
						aG = ab.exec(aK.content);
						if (aG)
						{
							aM = ad(aG[1]);
							if (aM)
							{
								aK.content = aM.innerHTML
							}
							else
							{
								aL = true
							}
						}
						else
						{
							aL = true
						}
					}
					else
					{
						if (aK.player == "swf" || aK.player == "flv")
						{
							K = (aK.options && aK.options.flashVersion) || Q.options.flashVersion;
							if (Q.flash && !Q.flash.hasFlashPlayerVersion(K))
							{
								aK.width = 310;
								aK.height = 177
							}
						}
					}
				}
				if (aL)
				{
					Q.gallery.splice(aJ, 1);
					if (aJ < Q.current)
					{
						--Q.current
					}
					else
					{
						if (aJ == Q.current)
						{
							Q.current = aJ > 0 ? aJ - 1 : aJ
						}
					}--aJ
				}
			}
		}

		function aq(K)
		{
			if (!Q.options.enableKeys)
			{
				return
			}(K ? F : M)(document, "keydown", an)
		}

		function an(aG)
		{
			if (aG.metaKey || aG.shiftKey || aG.altKey || aG.ctrlKey)
			{
				return
			}
			var S = v(aG),
				K;
			switch (S)
			{
			case 81:
			case 88:
			case 27:
				K = Q.close;
				break;
			case 37:
				K = Q.previous;
				break;
			case 39:
				K = Q.next;
				break;
			case 32:
				K = typeof ap == "number" ? Q.pause : Q.play;
				break
			}
			if (K)
			{
				n(aG);
				K()
			}
		}

		function c(aK)
		{
			aq(false);
			var aJ = Q.getCurrent();
			var aG = (aJ.player == "inline" ? "html" : aJ.player);
			if (typeof Q[aG] != "function")
			{
				throw "unknown player " + aG
			}
			if (aK)
			{
				Q.player.remove();
				Q.revertOptions();
				Q.applyOptions(aJ.options || {
				})
			}
			Q.player = new Q[aG](aJ, Q.playerId);
			if (Q.gallery.length > 1)
			{
				var aH = Q.gallery[Q.current + 1] || Q.gallery[0];
				if (aH.player == "img")
				{
					var S = new Image();
					S.src = aH.content
				}
				var aI = Q.gallery[Q.current - 1] || Q.gallery[Q.gallery.length - 1];
				if (aI.player == "img")
				{
					var K = new Image();
					K.src = aI.content
				}
			}
			Q.skin.onLoad(aK, W)
		}

		function W()
		{
			if (!A)
			{
				return
			}
			if (typeof Q.player.ready != "undefined")
			{
				var K = setInterval(function ()
				{
					if (A)
					{
						if (Q.player.ready)
						{
							clearInterval(K);
							K = null;
							Q.skin.onReady(e)
						}
					}
					else
					{
						clearInterval(K);
						K = null
					}
				}, 10)
			}
			else
			{
				Q.skin.onReady(e)
			}
		}

		function e()
		{
			if (!A)
			{
				return
			}
			Q.player.append(Q.skin.body, Q.dimensions);
			Q.skin.onShow(I)
		}

		function I()
		{
			if (!A)
			{
				return
			}
			if (Q.player.onLoad)
			{
				Q.player.onLoad()
			}
			Q.options.onFinish(Q.getCurrent());
			if (!Q.isPaused())
			{
				Q.play()
			}
			aq(true)
		}
		if (!Array.prototype.indexOf)
		{
			Array.prototype.indexOf = function (S, aG)
			{
				var K = this.length >>> 0;
				aG = aG || 0;
				if (aG < 0)
				{
					aG += K
				}
				for (; aG < K; ++aG)
				{
					if (aG in this && this[aG] === S)
					{
						return aG
					}
				}
				return -1
			}
		}

		function aw()
		{
			return (new Date).getTime()
		}

		function aC(K, aG)
		{
			for (var S in aG)
			{
				K[S] = aG[S]
			}
			return K
		}

		function aF(aH, aI)
		{
			var S = 0,
				K = aH.length;
			for (var aG = aH[0]; S < K && aI.call(aG, S, aG) !== false; aG = aH[++S])
			{
			}
		}

		function s(S, K)
		{
			return S.replace(/\{(\w+?)\}/g, function (aG, aH)
			{
				return K[aH]
			})
		}

		function aj()
		{
		}

		function ad(K)
		{
			return document.getElementById(K)
		}

		function C(K)
		{
			K.parentNode.removeChild(K)
		}
		var h = true,
			x = true;

		function d()
		{
			var K = document.body,
				S = document.createElement("div");
			h = typeof S.style.opacity === "string";
			S.style.position = "fixed";
			S.style.margin = 0;
			S.style.top = "20px";
			K.appendChild(S, K.firstChild);
			x = S.offsetTop == 20;
			K.removeChild(S)
		}
		Q.getStyle = (function ()
		{
			var K = /opacity=([^)]*)/,
				S = document.defaultView && document.defaultView.getComputedStyle;
			return function (aJ, aI)
			{
				var aH;
				if (!h && aI == "opacity" && aJ.currentStyle)
				{
					aH = K.test(aJ.currentStyle.filter || "") ? (parseFloat(RegExp.$1) / 100) + "" : "";
					return aH === "" ? "1" : aH
				}
				if (S)
				{
					var aG = S(aJ, null);
					if (aG)
					{
						aH = aG[aI]
					}
					if (aI == "opacity" && aH == "")
					{
						aH = "1"
					}
				}
				else
				{
					aH = aJ.currentStyle[aI]
				}
				return aH
			}
		})();
		Q.appendHTML = function (aG, S)
		{
			if (aG.insertAdjacentHTML)
			{
				aG.insertAdjacentHTML("BeforeEnd", S)
			}
			else
			{
				if (aG.lastChild)
				{
					var K = aG.ownerDocument.createRange();
					K.setStartAfter(aG.lastChild);
					var aH = K.createContextualFragment(S);
					aG.appendChild(aH)
				}
				else
				{
					aG.innerHTML = S
				}
			}
		};
		Q.getWindowSize = function (K)
		{
			if (document.compatMode === "CSS1Compat")
			{
				return document.documentElement["client" + K]
			}
			return document.body["client" + K]
		};
		Q.setOpacity = function (aG, K)
		{
			var S = aG.style;
			if (h)
			{
				S.opacity = (K == 1 ? "" : K)
			}
			else
			{
				S.zoom = 1;
				if (K == 1)
				{
					if (typeof S.filter == "string" && (/alpha/i).test(S.filter))
					{
						S.filter = S.filter.replace(/\s*[\w\.]*alpha\([^\)]*\);?/gi, "")
					}
				}
				else
				{
					S.filter = (S.filter || "").replace(/\s*[\w\.]*alpha\([^\)]*\)/gi, "") + " alpha(opacity=" + (K * 100) + ")"
				}
			}
		};
		Q.clearOpacity = function (K)
		{
			Q.setOpacity(K, 1)
		};

		function o(S)
		{
			var K = S.target ? S.target : S.srcElement;
			return K.nodeType == 3 ? K.parentNode : K
		}

		function V(S)
		{
			var K = S.pageX || (S.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)),
				aG = S.pageY || (S.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
			return [K, aG]
		}

		function n(K)
		{
			K.preventDefault()
		}

		function v(K)
		{
			return K.which ? K.which : K.keyCode
		}

		function F(aH, aG, S)
		{
			if (aH.addEventListener)
			{
				aH.addEventListener(aG, S, false)
			}
			else
			{
				if (aH.nodeType === 3 || aH.nodeType === 8)
				{
					return
				}
				if (aH.setInterval && (aH !== au && !aH.frameElement))
				{
					aH = au
				}
				if (!S.__guid)
				{
					S.__guid = F.guid++
				}
				if (!aH.events)
				{
					aH.events =
					{
					}
				}
				var K = aH.events[aG];
				if (!K)
				{
					K = aH.events[aG] =
					{
					};
					if (aH["on" + aG])
					{
						K[0] = aH["on" + aG]
					}
				}
				K[S.__guid] = S;
				aH["on" + aG] = F.handleEvent
			}
		}
		F.guid = 1;
		F.handleEvent = function (aH)
		{
			var K = true;
			aH = aH || F.fixEvent(((this.ownerDocument || this.document || this).parentWindow || au).event);
			var S = this.events[aH.type];
			for (var aG in S)
			{
				this.__handleEvent = S[aG];
				if (this.__handleEvent(aH) === false)
				{
					K = false
				}
			}
			return K
		};
		F.preventDefault = function ()
		{
			this.returnValue = false
		};
		F.stopPropagation = function ()
		{
			this.cancelBubble = true
		};
		F.fixEvent = function (K)
		{
			K.preventDefault = F.preventDefault;
			K.stopPropagation = F.stopPropagation;
			return K
		};

		function M(aG, S, K)
		{
			if (aG.removeEventListener)
			{
				aG.removeEventListener(S, K, false)
			}
			else
			{
				if (aG.events && aG.events[S])
				{
					delete aG.events[S][K.__guid]
				}
			}
		}
		var y = false,
			al;
		if (document.addEventListener)
		{
			al = function ()
			{
				document.removeEventListener("DOMContentLoaded", al, false);
				Q.load()
			}
		}
		else
		{
			if (document.attachEvent)
			{
				al = function ()
				{
					if (document.readyState === "complete")
					{
						document.detachEvent("onreadystatechange", al);
						Q.load()
					}
				}
			}
		}

		function g()
		{
			if (y)
			{
				return
			}
			try
			{
				document.documentElement.doScroll("left")
			}
			catch (K)
			{
				setTimeout(g, 1);
				return
			}
			Q.load()
		}

		function P()
		{
			if (document.readyState === "complete")
			{
				return Q.load()
			}
			if (document.addEventListener)
			{
				document.addEventListener("DOMContentLoaded", al, false);
				au.addEventListener("load", Q.load, false)
			}
			else
			{
				if (document.attachEvent)
				{
					document.attachEvent("onreadystatechange", al);
					au.attachEvent("onload", Q.load);
					var K = false;
					try
					{
						K = au.frameElement === null
					}
					catch (S)
					{
					}
					if (document.documentElement.doScroll && K)
					{
						g()
					}
				}
			}
		}
		Q.load = function ()
		{
			if (y)
			{
				return
			}
			if (!document.body)
			{
				return setTimeout(Q.load, 13)
			}
			y = true;
			d();
			Q.onReady();
			if (!Q.options.skipSetup)
			{
				Q.setup()
			}
			Q.skin.init()
		};
		Q.plugins =
		{
		};
		if (navigator.plugins && navigator.plugins.length)
		{
			var w = [];
			aF(navigator.plugins, function (K, S)
			{
				w.push(S.name)
			});
			w = w.join(",");
			var ai = w.indexOf("Flip4Mac") > -1;
			Q.plugins =
			{
				fla: w.indexOf("Shockwave Flash") > -1,
				qt: w.indexOf("QuickTime") > -1,
				wmp: !ai && w.indexOf("Windows Media") > -1,
				f4m: ai
			}
		}
		else
		{
			var p = function (K)
			{
				var S;
				try
				{
					S = new ActiveXObject(K)
				}
				catch (aG)
				{
				}
				return !!S
			};
			Q.plugins =
			{
				fla: p("ShockwaveFlash.ShockwaveFlash"),
				qt: p("QuickTime.QuickTime"),
				wmp: p("wmplayer.ocx"),
				f4m: false
			}
		}
		var X = /^zbox/i,
			am = "zboxCacheKey",
			b = 1;
		Q.cache =
		{
		};
		Q.select = function (S)
		{
			var aG = [];
			if (!S)
			{
				var K;
				aF(document.getElementsByTagName("a"), function (aJ, aK)
				{
					K = aK.getAttribute("rel");
					if (K && X.test(K))
					{
						aG.push(aK)
					}
				})
			}
			else
			{
				var aI = S.length;
				if (aI)
				{
					if (typeof S == "string")
					{
						if (Q.find)
						{
							aG = Q.find(S)
						}
					}
					else
					{
						if (aI == 2 && typeof S[0] == "string" && S[1].nodeType)
						{
							if (Q.find)
							{
								aG = Q.find(S[0], S[1])
							}
						}
						else
						{
							for (var aH = 0; aH < aI; ++aH)
							{
								aG[aH] = S[aH]
							}
						}
					}
				}
				else
				{
					aG.push(S)
				}
			}
			return aG
		};
		Q.setup = function (K, S)
		{
			aF(Q.select(K), function (aG, aH)
			{
				Q.addCache(aH, S)
			})
		};
		Q.teardown = function (K)
		{
			aF(Q.select(K), function (S, aG)
			{
				Q.removeCache(aG)
			})
		};
		Q.addCache = function (aG, K)
		{
			var S = aG[am];
			if (S == k)
			{
				S = b++;
				aG[am] = S;
				F(aG, "click", u)
			}
			Q.cache[S] = Q.makeObject(aG, K)
		};
		Q.removeCache = function (K)
		{
			M(K, "click", u);
			delete Q.cache[K[am]];
			K[am] = null
		};
		Q.getCache = function (S)
		{
			var K = S[am];
			return (K in Q.cache && Q.cache[K])
		};
		Q.clearCache = function ()
		{
			for (var K in Q.cache)
			{
				Q.removeCache(Q.cache[K].link)
			}
			Q.cache =
			{
			}
		};

		function u(K)
		{
			Q.open(this);
			if (Q.gallery.length)
			{
				n(K)
			}
		}
		Q.find = (function ()
		{
			var aP = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
				aQ = 0,
				aS = Object.prototype.toString,
				aK = false,
				aJ = true;[0, 0].sort(function ()
			{
				aJ = false;
				return 0
			});
			var aG = function (a1, aW, a4, a5)
			{
				a4 = a4 || [];
				var a7 = aW = aW || document;
				if (aW.nodeType !== 1 && aW.nodeType !== 9)
				{
					return []
				}
				if (!a1 || typeof a1 !== "string")
				{
					return a4
				}
				var a2 = [],
					aY, a9, bc, aX, a0 = true,
					aZ = aH(aW),
					a6 = a1;
				while ((aP.exec(""), aY = aP.exec(a6)) !== null)
				{
					a6 = aY[3];
					a2.push(aY[1]);
					if (aY[2])
					{
						aX = aY[3];
						break
					}
				}
				if (a2.length > 1 && aL.exec(a1))
				{
					if (a2.length === 2 && aM.relative[a2[0]])
					{
						a9 = aT(a2[0] + a2[1], aW)
					}
					else
					{
						a9 = aM.relative[a2[0]] ? [aW] : aG(a2.shift(), aW);
						while (a2.length)
						{
							a1 = a2.shift();
							if (aM.relative[a1])
							{
								a1 += a2.shift()
							}
							a9 = aT(a1, a9)
						}
					}
				}
				else
				{
					if (!a5 && a2.length > 1 && aW.nodeType === 9 && !aZ && aM.match.ID.test(a2[0]) && !aM.match.ID.test(a2[a2.length - 1]))
					{
						var a8 = aG.find(a2.shift(), aW, aZ);
						aW = a8.expr ? aG.filter(a8.expr, a8.set)[0] : a8.set[0]
					}
					if (aW)
					{
						var a8 = a5 ? {
							expr: a2.pop(),
							set: aO(a5)
						} : aG.find(a2.pop(), a2.length === 1 && (a2[0] === "~" || a2[0] === "+") && aW.parentNode ? aW.parentNode : aW, aZ);
						a9 = a8.expr ? aG.filter(a8.expr, a8.set) : a8.set;
						if (a2.length > 0)
						{
							bc = aO(a9)
						}
						else
						{
							a0 = false
						}
						while (a2.length)
						{
							var bb = a2.pop(),
								ba = bb;
							if (!aM.relative[bb])
							{
								bb = ""
							}
							else
							{
								ba = a2.pop()
							}
							if (ba == null)
							{
								ba = aW
							}
							aM.relative[bb](bc, ba, aZ)
						}
					}
					else
					{
						bc = a2 = []
					}
				}
				if (!bc)
				{
					bc = a9
				}
				if (!bc)
				{
					throw "Syntax error, unrecognized expression: " + (bb || a1)
				}
				if (aS.call(bc) === "[object Array]")
				{
					if (!a0)
					{
						a4.push.apply(a4, bc)
					}
					else
					{
						if (aW && aW.nodeType === 1)
						{
							for (var a3 = 0; bc[a3] != null; a3++)
							{
								if (bc[a3] && (bc[a3] === true || bc[a3].nodeType === 1 && aN(aW, bc[a3])))
								{
									a4.push(a9[a3])
								}
							}
						}
						else
						{
							for (var a3 = 0; bc[a3] != null; a3++)
							{
								if (bc[a3] && bc[a3].nodeType === 1)
								{
									a4.push(a9[a3])
								}
							}
						}
					}
				}
				else
				{
					aO(bc, a4)
				}
				if (aX)
				{
					aG(aX, a7, a4, a5);
					aG.uniqueSort(a4)
				}
				return a4
			};
			aG.uniqueSort = function (aX)
			{
				if (aR)
				{
					aK = aJ;
					aX.sort(aR);
					if (aK)
					{
						for (var aW = 1; aW < aX.length; aW++)
						{
							if (aX[aW] === aX[aW - 1])
							{
								aX.splice(aW--, 1)
							}
						}
					}
				}
				return aX
			};
			aG.matches = function (aW, aX)
			{
				return aG(aW, null, null, aX)
			};
			aG.find = function (a3, aW, a4)
			{
				var a2, a0;
				if (!a3)
				{
					return []
				}
				for (var aZ = 0, aY = aM.order.length; aZ < aY; aZ++)
				{
					var a1 = aM.order[aZ],
						a0;
					if ((a0 = aM.leftMatch[a1].exec(a3)))
					{
						var aX = a0[1];
						a0.splice(1, 1);
						if (aX.substr(aX.length - 1) !== "\\")
						{
							a0[1] = (a0[1] || "").replace(/\\/g, "");
							a2 = aM.find[a1](a0, aW, a4);
							if (a2 != null)
							{
								a3 = a3.replace(aM.match[a1], "");
								break
							}
						}
					}
				}
				if (!a2)
				{
					a2 = aW.getElementsByTagName("*")
				}
				return {
					set: a2,
					expr: a3
				}
			};
			aG.filter = function (a6, a5, a9, aZ)
			{
				var aY = a6,
					bb = [],
					a3 = a5,
					a1, aW, a2 = a5 && a5[0] && aH(a5[0]);
				while (a6 && a5.length)
				{
					for (var a4 in aM.filter)
					{
						if ((a1 = aM.match[a4].exec(a6)) != null)
						{
							var aX = aM.filter[a4],
								ba, a8;
							aW = false;
							if (a3 === bb)
							{
								bb = []
							}
							if (aM.preFilter[a4])
							{
								a1 = aM.preFilter[a4](a1, a3, a9, bb, aZ, a2);
								if (!a1)
								{
									aW = ba = true
								}
								else
								{
									if (a1 === true)
									{
										continue
									}
								}
							}
							if (a1)
							{
								for (var a0 = 0;
								(a8 = a3[a0]) != null; a0++)
								{
									if (a8)
									{
										ba = aX(a8, a1, a0, a3);
										var a7 = aZ ^ !! ba;
										if (a9 && ba != null)
										{
											if (a7)
											{
												aW = true
											}
											else
											{
												a3[a0] = false
											}
										}
										else
										{
											if (a7)
											{
												bb.push(a8);
												aW = true
											}
										}
									}
								}
							}
							if (ba !== k)
							{
								if (!a9)
								{
									a3 = bb
								}
								a6 = a6.replace(aM.match[a4], "");
								if (!aW)
								{
									return []
								}
								break
							}
						}
					}
					if (a6 === aY)
					{
						if (aW == null)
						{
							throw "Syntax error, unrecognized expression: " + a6
						}
						else
						{
							break
						}
					}
					aY = a6
				}
				return a3
			};
			var aM = aG.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 (aW)
					{
						return aW.getAttribute("href")
					}
				},
				relative: {
					"+": function (a2, aX)
					{
						var aZ = typeof aX === "string",
							a1 = aZ && !/\W/.test(aX),
							a3 = aZ && !a1;
						if (a1)
						{
							aX = aX.toLowerCase()
						}
						for (var aY = 0, aW = a2.length, a0; aY < aW; aY++)
						{
							if ((a0 = a2[aY]))
							{
								while ((a0 = a0.previousSibling) && a0.nodeType !== 1)
								{
								}
								a2[aY] = a3 || a0 && a0.nodeName.toLowerCase() === aX ? a0 || false : a0 === aX
							}
						}
						if (a3)
						{
							aG.filter(aX, a2, true)
						}
					},
					">": function (a2, aX)
					{
						var a0 = typeof aX === "string";
						if (a0 && !/\W/.test(aX))
						{
							aX = aX.toLowerCase();
							for (var aY = 0, aW = a2.length; aY < aW; aY++)
							{
								var a1 = a2[aY];
								if (a1)
								{
									var aZ = a1.parentNode;
									a2[aY] = aZ.nodeName.toLowerCase() === aX ? aZ : false
								}
							}
						}
						else
						{
							for (var aY = 0, aW = a2.length; aY < aW; aY++)
							{
								var a1 = a2[aY];
								if (a1)
								{
									a2[aY] = a0 ? a1.parentNode : a1.parentNode === aX
								}
							}
							if (a0)
							{
								aG.filter(aX, a2, true)
							}
						}
					},
					"": function (aZ, aX, a1)
					{
						var aY = aQ++,
							aW = aU;
						if (typeof aX === "string" && !/\W/.test(aX))
						{
							var a0 = aX = aX.toLowerCase();
							aW = K
						}
						aW("parentNode", aX, aY, aZ, a0, a1)
					},
					"~": function (aZ, aX, a1)
					{
						var aY = aQ++,
							aW = aU;
						if (typeof aX === "string" && !/\W/.test(aX))
						{
							var a0 = aX = aX.toLowerCase();
							aW = K
						}
						aW("previousSibling", aX, aY, aZ, a0, a1)
					}
				},
				find: {
					ID: function (aX, aY, aZ)
					{
						if (typeof aY.getElementById !== "undefined" && !aZ)
						{
							var aW = aY.getElementById(aX[1]);
							return aW ? [aW] : []
						}
					},
					NAME: function (aY, a1)
					{
						if (typeof a1.getElementsByName !== "undefined")
						{
							var aX = [],
								a0 = a1.getElementsByName(aY[1]);
							for (var aZ = 0, aW = a0.length; aZ < aW; aZ++)
							{
								if (a0[aZ].getAttribute("name") === aY[1])
								{
									aX.push(a0[aZ])
								}
							}
							return aX.length === 0 ? null : aX
						}
					},
					TAG: function (aW, aX)
					{
						return aX.getElementsByTagName(aW[1])
					}
				},
				preFilter: {
					CLASS: function (aZ, aX, aY, aW, a2, a3)
					{
						aZ = " " + aZ[1].replace(/\\/g, "") + " ";
						if (a3)
						{
							return aZ
						}
						for (var a0 = 0, a1;
						(a1 = aX[a0]) != null; a0++)
						{
							if (a1)
							{
								if (a2 ^ (a1.className && (" " + a1.className + " ").replace(/[\t\n]/g, " ").indexOf(aZ) >= 0))
								{
									if (!aY)
									{
										aW.push(a1)
									}
								}
								else
								{
									if (aY)
									{
										aX[a0] = false
									}
								}
							}
						}
						return false
					},
					ID: function (aW)
					{
						return aW[1].replace(/\\/g, "")
					},
					TAG: function (aX, aW)
					{
						return aX[1].toLowerCase()
					},
					CHILD: function (aW)
					{
						if (aW[1] === "nth")
						{
							var aX = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(aW[2] === "even" && "2n" || aW[2] === "odd" && "2n+1" || !/\D/.test(aW[2]) && "0n+" + aW[2] || aW[2]);
							aW[2] = (aX[1] + (aX[2] || 1)) - 0;
							aW[3] = aX[3] - 0
						}
						aW[0] = aQ++;
						return aW
					},
					ATTR: function (a0, aX, aY, aW, a1, a2)
					{
						var aZ = a0[1].replace(/\\/g, "");
						if (!a2 && aM.attrMap[aZ])
						{
							a0[1] = aM.attrMap[aZ]
						}
						if (a0[2] === "~=")
						{
							a0[4] = " " + a0[4] + " "
						}
						return a0
					},
					PSEUDO: function (a0, aX, aY, aW, a1)
					{
						if (a0[1] === "not")
						{
							if ((aP.exec(a0[3]) || "").length > 1 || /^\w/.test(a0[3]))
							{
								a0[3] = aG(a0[3], null, null, aX)
							}
							else
							{
								var aZ = aG.filter(a0[3], aX, aY, true ^ a1);
								if (!aY)
								{
									aW.push.apply(aW, aZ)
								}
								return false
							}
						}
						else
						{
							if (aM.match.POS.test(a0[0]) || aM.match.CHILD.test(a0[0]))
							{
								return true
							}
						}
						return a0
					},
					POS: function (aW)
					{
						aW.unshift(true);
						return aW
					}
				},
				filters: {
					enabled: function (aW)
					{
						return aW.disabled === false && aW.type !== "hidden"
					},
					disabled: function (aW)
					{
						return aW.disabled === true
					},
					checked: function (aW)
					{
						return aW.checked === true
					},
					selected: function (aW)
					{
						aW.parentNode.selectedIndex;
						return aW.selected === true
					},
					parent: function (aW)
					{
						return !!aW.firstChild
					},
					empty: function (aW)
					{
						return !aW.firstChild
					},
					has: function (aY, aX, aW)
					{
						return !!aG(aW[3], aY).length
					},
					header: function (aW)
					{
						return /h\d/i.test(aW.nodeName)
					},
					text: function (aW)
					{
						return "text" === aW.type
					},
					radio: function (aW)
					{
						return "radio" === aW.type
					},
					checkbox: function (aW)
					{
						return "checkbox" === aW.type
					},
					file: function (aW)
					{
						return "file" === aW.type
					},
					password: function (aW)
					{
						return "password" === aW.type
					},
					submit: function (aW)
					{
						return "submit" === aW.type
					},
					image: function (aW)
					{
						return "image" === aW.type
					},
					reset: function (aW)
					{
						return "reset" === aW.type
					},
					button: function (aW)
					{
						return "button" === aW.type || aW.nodeName.toLowerCase() === "button"
					},
					input: function (aW)
					{
						return /input|select|textarea|button/i.test(aW.nodeName)
					}
				},
				setFilters: {
					first: function (aX, aW)
					{
						return aW === 0
					},
					last: function (aY, aX, aW, aZ)
					{
						return aX === aZ.length - 1
					},
					even: function (aX, aW)
					{
						return aW % 2 === 0
					},
					odd: function (aX, aW)
					{
						return aW % 2 === 1
					},
					lt: function (aY, aX, aW)
					{
						return aX < aW[3] - 0
					},
					gt: function (aY, aX, aW)
					{
						return aX > aW[3] - 0
					},
					nth: function (aY, aX, aW)
					{
						return aW[3] - 0 === aX
					},
					eq: function (aY, aX, aW)
					{
						return aW[3] - 0 === aX
					}
				},
				filter: {
					PSEUDO: function (a2, aY, aZ, a3)
					{
						var aX = aY[1],
							a0 = aM.filters[aX];
						if (a0)
						{
							return a0(a2, aZ, aY, a3)
						}
						else
						{
							if (aX === "contains")
							{
								return (a2.textContent || a2.innerText || S([a2]) || "").indexOf(aY[3]) >= 0
							}
							else
							{
								if (aX === "not")
								{
									var a1 = aY[3];
									for (var aZ = 0, aW = a1.length; aZ < aW; aZ++)
									{
										if (a1[aZ] === a2)
										{
											return false
										}
									}
									return true
								}
								else
								{
									throw "Syntax error, unrecognized expression: " + aX
								}
							}
						}
					},
					CHILD: function (aW, aZ)
					{
						var a2 = aZ[1],
							aX = aW;
						switch (a2)
						{
						case "only":
						case "first":
							while ((aX = aX.previousSibling))
							{
								if (aX.nodeType === 1)
								{
									return false
								}
							}
							if (a2 === "first")
							{
								return true
							}
							aX = aW;
						case "last":
							while ((aX = aX.nextSibling))
							{
								if (aX.nodeType === 1)
								{
									return false
								}
							}
							return true;
						case "nth":
							var aY = aZ[2],
								a5 = aZ[3];
							if (aY === 1 && a5 === 0)
							{
								return true
							}
							var a1 = aZ[0],
								a4 = aW.parentNode;
							if (a4 && (a4.sizcache !== a1 || !aW.nodeIndex))
							{
								var a0 = 0;
								for (aX = a4.firstChild; aX; aX = aX.nextSibling)
								{
									if (aX.nodeType === 1)
									{
										aX.nodeIndex = ++a0
									}
								}
								a4.sizcache = a1
							}
							var a3 = aW.nodeIndex - a5;
							if (aY === 0)
							{
								return a3 === 0
							}
							else
							{
								return (a3 % aY === 0 && a3 / aY >= 0)
							}
						}
					},
					ID: function (aX, aW)
					{
						return aX.nodeType === 1 && aX.getAttribute("id") === aW
					},
					TAG: function (aX, aW)
					{
						return (aW === "*" && aX.nodeType === 1) || aX.nodeName.toLowerCase() === aW
					},
					CLASS: function (aX, aW)
					{
						return (" " + (aX.className || aX.getAttribute("class")) + " ").indexOf(aW) > -1
					},
					ATTR: function (a1, aZ)
					{
						var aY = aZ[1],
							aW = aM.attrHandle[aY] ? aM.attrHandle[aY](a1) : a1[aY] != null ? a1[aY] : a1.getAttribute(aY),
							a2 = aW + "",
							a0 = aZ[2],
							aX = aZ[4];
						return aW == null ? a0 === "!=" : a0 === "=" ? a2 === aX : a0 === "*=" ? a2.indexOf(aX) >= 0 : a0 === "~=" ? (" " + a2 + " ").indexOf(aX) >= 0 : !aX ? a2 && aW !== false : a0 === "!=" ? a2 !== aX : a0 === "^=" ? a2.indexOf(aX) === 0 : a0 === "$=" ? a2.substr(a2.length - aX.length) === aX : a0 === "|=" ? a2 === aX || a2.substr(0, aX.length + 1) === aX + "-" : false
					},
					POS: function (a0, aX, aY, a1)
					{
						var aW = aX[2],
							aZ = aM.setFilters[aW];
						if (aZ)
						{
							return aZ(a0, aY, aX, a1)
						}
					}
				}
			};
			var aL = aM.match.POS;
			for (var aI in aM.match)
			{
				aM.match[aI] = new RegExp(aM.match[aI].source + /(?![^\[]*\])(?![^\(]*\))/.source);
				aM.leftMatch[aI] = new RegExp(/(^(?:.|\r|\n)*?)/.source + aM.match[aI].source)
			}
			var aO = function (aX, aW)
			{
				aX = Array.prototype.slice.call(aX, 0);
				if (aW)
				{
					aW.push.apply(aW, aX);
					return aW
				}
				return aX
			};
			try
			{
				Array.prototype.slice.call(document.documentElement.childNodes, 0)
			}
			catch (aV)
			{
				aO = function (a0, aZ)
				{
					var aX = aZ || [];
					if (aS.call(a0) === "[object Array]")
					{
						Array.prototype.push.apply(aX, a0)
					}
					else
					{
						if (typeof a0.length === "number")
						{
							for (var aY = 0, aW = a0.length; aY < aW; aY++)
							{
								aX.push(a0[aY])
							}
						}
						else
						{
							for (var aY = 0; a0[aY]; aY++)
							{
								aX.push(a0[aY])
							}
						}
					}
					return aX
				}
			}
			var aR;
			if (document.documentElement.compareDocumentPosition)
			{
				aR = function (aX, aW)
				{
					if (!aX.compareDocumentPosition || !aW.compareDocumentPosition)
					{
						if (aX == aW)
						{
							aK = true
						}
						return aX.compareDocumentPosition ? -1 : 1
					}
					var aY = aX.compareDocumentPosition(aW) & 4 ? -1 : aX === aW ? 0 : 1;
					if (aY === 0)
					{
						aK = true
					}
					return aY
				}
			}
			else
			{
				if ("sourceIndex" in document.documentElement)
				{
					aR = function (aX, aW)
					{
						if (!aX.sourceIndex || !aW.sourceIndex)
						{
							if (aX == aW)
							{
								aK = true
							}
							return aX.sourceIndex ? -1 : 1
						}
						var aY = aX.sourceIndex - aW.sourceIndex;
						if (aY === 0)
						{
							aK = true
						}
						return aY
					}
				}
				else
				{
					if (document.createRange)
					{
						aR = function (aZ, aX)
						{
							if (!aZ.ownerDocument || !aX.ownerDocument)
							{
								if (aZ == aX)
								{
									aK = true
								}
								return aZ.ownerDocument ? -1 : 1
							}
							var aY = aZ.ownerDocument.createRange(),
								aW = aX.ownerDocument.createRange();
							aY.setStart(aZ, 0);
							aY.setEnd(aZ, 0);
							aW.setStart(aX, 0);
							aW.setEnd(aX, 0);
							var a0 = aY.compareBoundaryPoints(Range.START_TO_END, aW);
							if (a0 === 0)
							{
								aK = true
							}
							return a0
						}
					}
				}
			}

			function S(aW)
			{
				var aX = "",
					aZ;
				for (var aY = 0; aW[aY]; aY++)
				{
					aZ = aW[aY];
					if (aZ.nodeType === 3 || aZ.nodeType === 4)
					{
						aX += aZ.nodeValue
					}
					else
					{
						if (aZ.nodeType !== 8)
						{
							aX += S(aZ.childNodes)
						}
					}
				}
				return aX
			}(function ()
			{
				var aX = document.createElement("div"),
					aY = "script" + (new Date).getTime();
				aX.innerHTML = "<a name='" + aY + "'/>";
				var aW = document.documentElement;
				aW.insertBefore(aX, aW.firstChild);
				if (document.getElementById(aY))
				{
					aM.find.ID = function (a0, a1, a2)
					{
						if (typeof a1.getElementById !== "undefined" && !a2)
						{
							var aZ = a1.getElementById(a0[1]);
							return aZ ? aZ.id === a0[1] || typeof aZ.getAttributeNode !== "undefined" && aZ.getAttributeNode("id").nodeValue === a0[1] ? [aZ] : k : []
						}
					};
					aM.filter.ID = function (a1, aZ)
					{
						var a0 = typeof a1.getAttributeNode !== "undefined" && a1.getAttributeNode("id");
						return a1.nodeType === 1 && a0 && a0.nodeValue === aZ
					}
				}
				aW.removeChild(aX);
				aW = aX = null
			})();
			(function ()
			{
				var aW = document.createElement("div");
				aW.appendChild(document.createComment(""));
				if (aW.getElementsByTagName("*").length > 0)
				{
					aM.find.TAG = function (aX, a1)
					{
						var a0 = a1.getElementsByTagName(aX[1]);
						if (aX[1] === "*")
						{
							var aZ = [];
							for (var aY = 0; a0[aY]; aY++)
							{
								if (a0[aY].nodeType === 1)
								{
									aZ.push(a0[aY])
								}
							}
							a0 = aZ
						}
						return a0
					}
				}
				aW.innerHTML = "<a href='#'></a>";
				if (aW.firstChild && typeof aW.firstChild.getAttribute !== "undefined" && aW.firstChild.getAttribute("href") !== "#")
				{
					aM.attrHandle.href = function (aX)
					{
						return aX.getAttribute("href", 2)
					}
				}
				aW = null
			})();
			if (document.querySelectorAll)
			{
				(function ()
				{
					var aW = aG,
						aY = document.createElement("div");
					aY.innerHTML = "<p class='TEST'></p>";
					if (aY.querySelectorAll && aY.querySelectorAll(".TEST").length === 0)
					{
						return
					}
					aG = function (a2, a1, aZ, a0)
					{
						a1 = a1 || document;
						if (!a0 && a1.nodeType === 9 && !aH(a1))
						{
							try
							{
								return aO(a1.querySelectorAll(a2), aZ)
							}
							catch (a3)
							{
							}
						}
						return aW(a2, a1, aZ, a0)
					};
					for (var aX in aW)
					{
						aG[aX] = aW[aX]
					}
					aY = null
				})()
			}(function ()
			{
				var aW = document.createElement("div");
				aW.innerHTML = "<div class='test e'></div><div class='test'></div>";
				if (!aW.getElementsByClassName || aW.getElementsByClassName("e").length === 0)
				{
					return
				}
				aW.lastChild.className = "e";
				if (aW.getElementsByClassName("e").length === 1)
				{
					return
				}
				aM.order.splice(1, 0, "CLASS");
				aM.find.CLASS = function (aX, aY, aZ)
				{
					if (typeof aY.getElementsByClassName !== "undefined" && !aZ)
					{
						return aY.getElementsByClassName(aX[1])
					}
				};
				aW = null
			})();

			function K(aX, a2, a1, a5, a3, a4)
			{
				for (var aZ = 0, aY = a5.length; aZ < aY; aZ++)
				{
					var aW = a5[aZ];
					if (aW)
					{
						aW = aW[aX];
						var a0 = false;
						while (aW)
						{
							if (aW.sizcache === a1)
							{
								a0 = a5[aW.sizset];
								break
							}
							if (aW.nodeType === 1 && !a4)
							{
								aW.sizcache = a1;
								aW.sizset = aZ
							}
							if (aW.nodeName.toLowerCase() === a2)
							{
								a0 = aW;
								break
							}
							aW = aW[aX]
						}
						a5[aZ] = a0
					}
				}
			}

			function aU(aX, a2, a1, a5, a3, a4)
			{
				for (var aZ = 0, aY = a5.length; aZ < aY; aZ++)
				{
					var aW = a5[aZ];
					if (aW)
					{
						aW = aW[aX];
						var a0 = false;
						while (aW)
						{
							if (aW.sizcache === a1)
							{
								a0 = a5[aW.sizset];
								break
							}
							if (aW.nodeType === 1)
							{
								if (!a4)
								{
									aW.sizcache = a1;
									aW.sizset = aZ
								}
								if (typeof a2 !== "string")
								{
									if (aW === a2)
									{
										a0 = true;
										break
									}
								}
								else
								{
									if (aG.filter(a2, [aW]).length > 0)
									{
										a0 = aW;
										break
									}
								}
							}
							aW = aW[aX]
						}
						a5[aZ] = a0
					}
				}
			}
			var aN = document.compareDocumentPosition ?
			function (aX, aW)
			{
				return aX.compareDocumentPosition(aW) & 16
			} : function (aX, aW)
			{
				return aX !== aW && (aX.contains ? aX.contains(aW) : true)
			};
			var aH = function (aW)
			{
				var aX = (aW ? aW.ownerDocument || aW : 0).documentElement;
				return aX ? aX.nodeName !== "HTML" : false
			};
			var aT = function (aW, a3)
			{
				var aZ = [],
					a0 = "",
					a1, aY = a3.nodeType ? [a3] : a3;
				while ((a1 = aM.match.PSEUDO.exec(aW)))
				{
					a0 += a1[0];
					aW = aW.replace(aM.match.PSEUDO, "")
				}
				aW = aM.relative[aW] ? aW + "*" : aW;
				for (var a2 = 0, aX = aY.length; a2 < aX; a2++)
				{
					aG(aW, aY[a2], aZ)
				}
				return aG.filter(a0, aZ)
			};
			return aG
		})();
		Q.lang =
		{
			code: "cs",
			of: "z",
			loading: "nahrávám",
			cancel: "Zrušit",
			next: "Další",
			previous: "Předchozí",
			play: "Přehrát",
			pause: "Pauza",
			close: "Zavřít",
			errors: {
				single: 'Pro správné zobrazení je potřeba nainstalovat tento zásuvný modul do Vašeho prohlížeče: <a href="{0}">{1}</a>.',
				shared: 'Pro správné zobrazení je potřeba nainstalovat oba tyto zásuvné moduly do Vašeho prohlížeče: <a href="{0}">{1}</a> a <a href="{2}">{3}</a>.',
				either: 'Pro správné zobrazení je potřeba do Vašeho prohlížeče nainstalovat jeden z následujících zásuvných modulů: <a href="{0}">{1}</a> nebo <a href="{2}">{3}</a>.'
			}
		};
		var D, at = "sb-drag-proxy",
			E, j, ag;

		function ax()
		{
			E =
			{
				x: 0,
				y: 0,
				startX: null,
				startY: null
			}
		}

		function aA()
		{
			var K = Q.dimensions;
			aC(j.style, {
				height: K.innerHeight + "px",
				width: K.innerWidth + "px"
			})
		}

		function O()
		{
			ax();
			var K = ["position:absolute", "cursor:" + (Q.isGecko ? "-moz-grab" : "move"), "background-color:" + (Q.isIE ? "#fff;filter:alpha(opacity=0)" : "transparent")].join(";");
			Q.appendHTML(Q.skin.body, '<div id="' + at + '" style="' + K + '"></div>');
			j = ad(at);
			aA();
			F(j, "mousedown", L)
		}

		function B()
		{
			if (j)
			{
				M(j, "mousedown", L);
				C(j);
				j = null
			}
			ag = null
		}

		function L(S)
		{
			n(S);
			var K = V(S);
			E.startX = K[0];
			E.startY = K[1];
			ag = ad(Q.player.id);
			F(document, "mousemove", H);
			F(document, "mouseup", i);
			if (Q.isGecko)
			{
				j.style.cursor = "-moz-grabbing"
			}
		}

		function H(aI)
		{
			var K = Q.player,
				aJ = Q.dimensions,
				aH = V(aI);
			var aG = aH[0] - E.startX;
			E.startX += aG;
			E.x = Math.max(Math.min(0, E.x + aG), aJ.innerWidth - K.width);
			var S = aH[1] - E.startY;
			E.startY += S;
			E.y = Math.max(Math.min(0, E.y + S), aJ.innerHeight - K.height);
			aC(ag.style, {
				left: E.x + "px",
				top: E.y + "px"
			})
		}

		function i()
		{
			M(document, "mousemove", H);
			M(document, "mouseup", i);
			if (Q.isGecko)
			{
				j.style.cursor = "-moz-grab"
			}
		}
		Q.img = function (S, aG)
		{
			this.obj = S;
			this.id = aG;
			this.ready = false;
			var K = this;
			D = new Image();
			D.onload = function ()
			{
				K.height = S.height ? parseInt(S.height, 10) : D.height;
				K.width = S.width ? parseInt(S.width, 10) : D.width;
				K.ready = true;
				D.onload = null;
				D = null
			};
			D.src = S.content
		};
		Q.img.ext = ["bmp", "gif", "jpg", "jpeg", "png"];
		Q.img.prototype =
		{
			append: function (S, aI)
			{
				var aG = document.createElement("img");
				aG.id = this.id;
				aG.src = this.obj.content;
				aG.style.position = "absolute";
				var K, aH;
				if (aI.oversized && Q.options.handleOversize == "resize")
				{
					K = aI.innerHeight;
					aH = aI.innerWidth
				}
				else
				{
					K = this.height;
					aH = this.width
				}
				aG.setAttribute("height", K);
				aG.setAttribute("width", aH);
				S.appendChild(aG)
			},
			remove: function ()
			{
				var K = ad(this.id);
				if (K)
				{
					C(K)
				}
				B();
				if (D)
				{
					D.onload = null;
					D = null
				}
			},
			onLoad: function ()
			{
				var K = Q.dimensions;
				if (K.oversized && Q.options.handleOversize == "drag")
				{
					O()
				}
			},
			onWindowResize: function ()
			{
				var aH = Q.dimensions;
				switch (Q.options.handleOversize)
				{
				case "resize":
					var K = ad(this.id);
					K.height = aH.innerHeight;
					K.width = aH.innerWidth;
					break;
				case "drag":
					if (ag)
					{
						var aG = parseInt(Q.getStyle(ag, "top")),
							S = parseInt(Q.getStyle(ag, "left"));
						if (aG + this.height < aH.innerHeight)
						{
							ag.style.top = aH.innerHeight - this.height + "px"
						}
						if (S + this.width < aH.innerWidth)
						{
							ag.style.left = aH.innerWidth - this.width + "px"
						}
						aA()
					}
					break
				}
			}
		};
		var ao = false,
			Y = [],
			q = ["sb-nav-close", "sb-nav-next", "sb-nav-play", "sb-nav-pause", "sb-nav-previous"],
			aa, ae, Z, m = true;

		function N(aG, aQ, aN, aL, aR)
		{
			var K = (aQ == "opacity"),
				aM = K ? Q.setOpacity : function (aS, aT)
				{
					aS.style[aQ] = "" + aT + "px"
				};
			if (aL == 0 || (!K && !Q.options.animate) || (K && !Q.options.animateFade))
			{
				aM(aG, aN);
				if (aR)
				{
					aR()
				}
				return
			}
			var aO = parseFloat(Q.getStyle(aG, aQ)) || 0;
			var aP = aN - aO;
			if (aP == 0)
			{
				if (aR)
				{
					aR()
				}
				return
			}
			aL *= 1000;
			var aH = aw(),
				aK = Q.ease,
				aJ = aH + aL,
				aI;
			var S = setInterval(function ()
			{
				aI = aw();
				if (aI >= aJ)
				{
					clearInterval(S);
					S = null;
					aM(aG, aN);
					if (aR)
					{
						aR()
					}
				}
				else
				{
					aM(aG, aO + aK((aI - aH) / aL) * aP)
				}
			}, 10)
		}

		function aB()
		{
			aa.style.height = Q.getWindowSize("Height") + "px";
			aa.style.width = Q.getWindowSize("Width") + "px"
		}

		function aE()
		{
			aa.style.top = document.documentElement.scrollTop + "px";
			aa.style.left = document.documentElement.scrollLeft + "px"
		}

		function ay(K)
		{
			if (K)
			{
				aF(Y, function (S, aG)
				{
					aG[0].style.visibility = aG[1] || ""
				})
			}
			else
			{
				Y = [];
				aF(Q.options.troubleElements, function (aG, S)
				{
					aF(document.getElementsByTagName(S), function (aH, aI)
					{
						Y.push([aI, aI.style.visibility]);
						aI.style.visibility = "hidden"
					})
				})
			}
		}

		function r(aG, K)
		{
			var S = ad("sb-nav-" + aG);
			if (S)
			{
				S.style.display = K ? "" : "none"
			}
		}

		function ah(K, aJ)
		{
			var aI = ad("sb-loading"),
				aG = Q.getCurrent().player,
				aH = (aG == "img" || aG == "html");
			if (K)
			{
				Q.setOpacity(aI, 0);
				aI.style.display = "block";
				var S = function ()
				{
					Q.clearOpacity(aI);
					if (aJ)
					{
						aJ()
					}
				};
				if (aH)
				{
					N(aI, "opacity", 1, Q.options.fadeDuration, S)
				}
				else
				{
					S()
				}
			}
			else
			{
				var S = function ()
				{
					aI.style.display = "none";
					Q.clearOpacity(aI);
					if (aJ)
					{
						aJ()
					}
				};
				if (aH)
				{
					N(aI, "opacity", 0, Q.options.fadeDuration, S)
				}
				else
				{
					S()
				}
			}
		}

		function t(aO)
		{
			var aJ = Q.getCurrent();
			ad("sb-title-inner").innerHTML = aJ.title || "";
			var aP, aL, S, aQ, aM;
			if (Q.options.displayNav)
			{
				aP = true;
				var aN = Q.gallery.length;
				if (aN > 1)
				{
					if (Q.options.continuous)
					{
						aL = aM = true
					}
					else
					{
						aL = (aN - 1) > Q.current;
						aM = Q.current > 0
					}
				}
				if (Q.options.slideshowDelay > 0 && Q.hasNext())
				{
					aQ = !Q.isPaused();
					S = !aQ
				}
			}
			else
			{
				aP = aL = S = aQ = aM = false
			}
			r("close", aP);
			r("next", aL);
			r("play", S);
			r("pause", aQ);
			r("previous", aM);
			var K = "";
			if (Q.options.displayCounter && Q.gallery.length > 1)
			{
				var aN = Q.gallery.length;
				if (Q.options.counterType == "skip")
				{
					var aI = 0,
						aH = aN,
						aG = parseInt(Q.options.counterLimit) || 0;
					if (aG < aN && aG > 2)
					{
						var aK = Math.floor(aG / 2);
						aI = Q.current - aK;
						if (aI < 0)
						{
							aI += aN
						}
						aH = Q.current + (aG - aK);
						if (aH > aN)
						{
							aH -= aN
						}
					}
					while (aI != aH)
					{
						if (aI == aN)
						{
							aI = 0
						}
						K += '<a onclick="zbox.change(' + aI + ');"';
						if (aI == Q.current)
						{
							K += ' class="sb-counter-current"'
						}
						K += ">" + (++aI) + "</a>"
					}
				}
				else
				{
					K = ["Obrázek " + (Q.current + 1), Q.lang.of, aN].join(" ")
				}
			}
			ad("sb-counter").innerHTML = K;
			aO()
		}

		function U(aH)
		{
			var K = ad("sb-title-inner"),
				aG = ad("sb-info-inner"),
				S = 0.35;
			K.style.visibility = aG.style.visibility = "";
			if (K.innerHTML != "")
			{
				N(K, "marginTop", 0, S)
			}
			N(aG, "marginTop", 0, S, aH)
		}

		function av(aG, aM)
		{
			var aK = ad("sb-title"),
				K = ad("sb-info"),
				aH = aK.offsetHeight,
				aI = K.offsetHeight,
				aJ = ad("sb-title-inner"),
				aL = ad("sb-info-inner"),
				S = (aG ? 0.35 : 0);
			N(aJ, "marginTop", aH, S);
			N(aL, "marginTop", aI * -1, S, function ()
			{
				aJ.style.visibility = aL.style.visibility = "hidden";
				aM()
			})
		}

		function ac(K, aH, S, aJ)
		{
			var aI = ad("sb-wrapper-inner"),
				aG = (S ? Q.options.resizeDuration : 0);
			N(Z, "top", aH, aG);
			N(aI, "height", K, aG, aJ)
		}

		function ar(K, aH, S, aI)
		{
			var aG = (S ? Q.options.resizeDuration : 0);
			N(Z, "left", aH, aG);
			N(Z, "width", K, aG, aI)
		}

		function ak(aM, aG)
		{
			var aI = ad("sb-body-inner"),
				aM = parseInt(aM),
				aG = parseInt(aG),
				S = Z.offsetHeight - aI.offsetHeight,
				K = Z.offsetWidth - aI.offsetWidth,
				aK = ae.offsetHeight,
				aL = ae.offsetWidth,
				aJ = parseInt(Q.options.viewportPadding) || 20,
				aH = (Q.player && Q.options.handleOversize != "drag");
			return Q.setDimensions(aM, aG, aK, aL, S, K, aJ, aH)
		}
		var T =
		{
		};
		T.markup = '<div id="sb-container"><div id="sb-overlay"></div><div id="sb-wrapper"><div id="rcwd_nav"><a id="sb-nav-next" title="{next}" onclick="zbox.next()"></a><a id="sb-nav-previous" title="{previous}" onclick="zbox.previous()"></a></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-title"><div id="sb-title-inner"></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="zbox.close()"></a><a id="sb-nav-play" title="{play}" onclick="zbox.play()"></a><a id="sb-nav-pause" title="{pause}" onclick="zbox.pause()"></a></div></div></div></div></div>';
		T.options =
		{
			animSequence: "sync",
			counterLimit: 10,
			counterType: "default",
			displayCounter: true,
			displayNav: true,
			fadeDuration: 0.35,
			initialHeight: 160,
			initialWidth: 320,
			modal: false,
			overlayColor: "#000",
			overlayOpacity: 0.85,
			resizeDuration: 0.35,
			showOverlay: true,
			troubleElements: ["select", "object", "embed", "canvas"]
		};
		T.init = function ()
		{
			Q.appendHTML(document.body, s(T.markup, Q.lang));
			T.body = ad("sb-body-inner");
			aa = ad("sb-container");
			ae = ad("sb-overlay");
			Z = ad("sb-wrapper");
			if (!x)
			{
				aa.style.position = "absolute"
			}
			if (!h)
			{
				var aG, K, S = /url\("(.*\.png)"\)/;
				aF(q, function (aI, aJ)
				{
					aG = ad(aJ);
					if (aG)
					{
						K = Q.getStyle(aG, "backgroundImage").match(S);
						if (K)
						{
							aG.style.backgroundImage = "none";
							aG.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src=" + K[1] + ",sizingMethod=scale);"
						}
					}
				})
			}
			var aH;
			F(au, "resize", function ()
			{
				if (aH)
				{
					clearTimeout(aH);
					aH = null
				}
				if (A)
				{
					aH = setTimeout(T.onWindowResize, 10)
				}
			})
		};
		T.onOpen = function (K, aG)
		{
			m = false;
			aa.style.display = "block";
			aB();
			var S = ak(Q.options.initialHeight, Q.options.initialWidth);
			ac(S.innerHeight, S.top);
			ar(S.width, S.left);
			if (Q.options.showOverlay)
			{
				ae.style.backgroundColor = Q.options.overlayColor;
				Q.setOpacity(ae, 0);
				if (!Q.options.modal)
				{
					F(ae, "click", Q.close)
				}
				ao = true
			}
			if (!x)
			{
				aE();
				F(au, "scroll", aE)
			}
			ay();
			aa.style.visibility = "visible";
			if (ao)
			{
				N(ae, "opacity", Q.options.overlayOpacity, Q.options.fadeDuration, aG)
			}
			else
			{
				aG()
			}
		};
		T.onLoad = function (S, K)
		{
			ah(true);
			while (T.body.firstChild)
			{
				C(T.body.firstChild)
			}
			av(S, function ()
			{
				if (!A)
				{
					return
				}
				if (!S)
				{
					Z.style.visibility = "visible"
				}
				t(K)
			})
		};
		T.onReady = function (aH)
		{
			if (!A)
			{
				return
			}
			var S = Q.player,
				aG = ak(S.height, S.width);
			var K = function ()
			{
				U(aH)
			};
			switch (Q.options.animSequence)
			{
			case "hw":
				ac(aG.innerHeight, aG.top, true, function ()
				{
					ar(aG.width, aG.left, true, K)
				});
				break;
			case "wh":
				ar(aG.width, aG.left, true, function ()
				{
					ac(aG.innerHeight, aG.top, true, K)
				});
				break;
			default:
				ar(aG.width, aG.left, true);
				ac(aG.innerHeight, aG.top, true, K)
			}
		};
		T.onShow = function (K)
		{
			ah(false, K);
			m = true
		};
		T.onClose = function ()
		{
			if (!x)
			{
				M(au, "scroll", aE)
			}
			M(ae, "click", Q.close);
			Z.style.visibility = "hidden";
			var K = function ()
			{
				aa.style.visibility = "hidden";
				aa.style.display = "none";
				ay(true)
			};
			if (ao)
			{
				N(ae, "opacity", 0, Q.options.fadeDuration, K)
			}
			else
			{
				K()
			}
		};
		T.onPlay = function ()
		{
			r("play", false);
			r("pause", true)
		};
		T.onPause = function ()
		{
			r("pause", false);
			r("play", true)
		};
		T.onWindowResize = function ()
		{
			if (!m)
			{
				return
			}
			aB();
			var K = Q.player,
				S = ak(K.height, K.width);
			ar(S.width, S.left);
			ac(S.innerHeight, S.top);
			if (K.onWindowResize)
			{
				K.onWindowResize()
			}
		};
		Q.skin = T;
		au.zbox = Q
})(window);
