/*
 * jquery.tools 1.0.2 - The missing UI library
 * 
 * [tools.tabs-1.0.1, tools.tooltip-1.0.2, tools.scrollable-1.0.5, tools.overlay-1.0.4, tools.expose-1.0.3, tools.flashembed-1.0.3]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * Build: Fri Jun 12 12:36:54 GMT+00:00 2009
 */
(function(c) {
	c.tools = c.tools || {
		version : {}
	};
	c.tools.version.tabs = "1.0.1";
	c.tools.addTabEffect = function(d, e) {
		b[d] = e
	};
	var b = {
		"default" : function(d) {
			this.getPanes().hide().eq(d).show()
		},
		fade : function(d) {
			this.getPanes().hide().eq(d).fadeIn(this.getConf().fadeInSpeed)
		},
		slide : function(d) {
			this.getCurrentPane().slideUp("fast");
			this.getPanes().eq(d).slideDown()
		},
		horizontal : function(d) {
			if (!c._hW) {
				c._hW = this.getPanes().eq(0).width()
			}
			this.getCurrentPane().animate( {
				width : 0
			}, function() {
				c(this).hide()
			});
			this.getPanes().eq(d).animate( {
				width : c._hW
			}, function() {
				c(this).show()
			})
		}
	};
	function a(e, f, g) {
		var d = this;
		var h;
		function i(j, k) {
			c(d).bind(j, function(m, l) {
				if (k && k.call(this, l.index) === false && l) {
					l.proceed = false
				}
			});
			return d
		}
		c.each(g, function(j, k) {
			if (c.isFunction(k)) {
				i(j, k)
			}
		});
		c.extend(this, {
			click : function(k) {
				if (k === h) {
					return d
				}
				var m = d.getCurrentPane();
				var l = e.eq(k);
				if (typeof k == "string") {
					l = e.filter("[href=" + k + "]");
					k = e.index(l)
				}
				if (!l.length) {
					if (h >= 0) {
						return d
					}
					k = g.initialIndex;
					l = e.eq(k)
				}
				var j = {
					index : k,
					proceed : true
				};
				c(d).triggerHandler("onBeforeClick", j);
				if (!j.proceed) {
					return d
				}
				l.addClass(g.current);
				b[g.effect].call(d, k);
				c(d).triggerHandler("onClick", j);
				e.removeClass(g.current);
				l.addClass(g.current);
				h = k;
				return d
			},
			getConf : function() {
				return g
			},
			getTabs : function() {
				return e
			},
			getPanes : function() {
				return f
			},
			getCurrentPane : function() {
				return f.eq(h)
			},
			getCurrentTab : function() {
				return e.eq(h)
			},
			getIndex : function() {
				return h
			},
			next : function() {
				return d.click(h + 1)
			},
			prev : function() {
				return d.click(h - 1)
			},
			onBeforeClick : function(j) {
				return i("onBeforeClick", j)
			},
			onClick : function(j) {
				return i("onClick", j)
			}
		});
		e.each(function(j) {
			c(this).bind(g.event, function(k) {
				d.click(j);
				if (!g.history) {
					return k.preventDefault()
				}
			})
		});
		if (g.history) {
			e.history(function(j, k) {
				d.click(k || 0)
			})
		}
		if (location.hash) {
			d.click(location.hash)
		} else {
			d.click(g.initialIndex)
		}
		f.find("a[href^=#]").click(function() {
			d.click(c(this).attr("href"))
		})
	}
	c.fn.tabs = function(g, d) {
		var e = this.eq(typeof conf == "number" ? conf : 0).data("tabs");
		if (e) {
			return e
		}
		var f = {
			tabs : "a",
			current : "current",
			onBeforeClick : null,
			onClick : null,
			effect : "default",
			history : false,
			initialIndex : 0,
			event : "click",
			api : false
		};
		if (c.isFunction(d)) {
			d = {
				onBeforeClick : d
			}
		}
		c.extend(f, d);
		this.each(function() {
			var h = c(this).find(f.tabs);
			if (!h.length) {
				h = c(this).children()
			}
			var i = g.jquery ? g : c(g);
			e = new a(h, i, f);
			c(this).data("tabs", e)
		});
		return f.api ? e : this
	}
})(jQuery);
(function(b) {
	var c, a;
	b.prototype.history = function(e) {
		var d = this;
		if (b.browser.msie) {
			if (!a) {
				a = b("<iframe />").hide().get(0);
				b("body").append(a);
				setInterval(function() {
					var f = a.contentWindow.document;
					var g = f.location.hash;
					if (c !== g) {
						b.event.trigger("hash", g);
						c = g
					}
				}, 100)
			}
			d.bind("click.hash", function(g) {
				var f = a.contentWindow.document;
				f.open().close();
				f.location.hash = b(this).attr("href")
			});
			d.eq(0).triggerHandler("click.hash")
		} else {
			setInterval(function() {
				var f = location.hash;
				if (d.filter("[href*=" + f + "]").length && f !== c) {
					c = f;
					b.event.trigger("hash", f)
				}
			}, 100)
		}
		b(window).bind("hash", e);
		return this
	}
})(jQuery);
(function(c) {
	c.tools = c.tools || {
		version : {}
	};
	c.tools.version.tooltip = "1.0.2";
	var b = {
		toggle : [ function() {
			this.getTip().show()
		}, function() {
			this.getTip().hide()
		} ],
		fade : [ function() {
			this.getTip().fadeIn(this.getConf().fadeInSpeed)
		}, function() {
			this.getTip().fadeOut(this.getConf().fadeOutSpeed)
		} ]
	};
	c.tools.addTipEffect = function(d, f, e) {
		b[d] = [ f, e ]
	};
	c.tools.addTipEffect("slideup", function() {
		var d = this.getConf();
		var e = d.slideOffset || 10;
		this.getTip().css( {
			opacity : 0
		}).animate( {
			top : "-=" + e,
			opacity : d.opacity
		}, d.slideInSpeed || 200).show()
	}, function() {
		var d = this.getConf();
		var e = d.slideOffset || 10;
		this.getTip().animate( {
			top : "-=" + e,
			opacity : 0
		}, d.slideOutSpeed || 200, function() {
			c(this).hide().animate( {
				top : "+=" + (e * 2)
			}, 0)
		})
	});
	function a(f, e) {
		var d = this;
		var h = f.next();
		if (e.tip) {
			if (e.tip.indexOf("#") != -1) {
				h = c(e.tip)
			} else {
				h = f.nextAll(e.tip).eq(0);
				if (!h.length) {
					h = f.parent().nextAll(e.tip).eq(0)
				}
			}
		}
		function j(k, l) {
			c(d).bind(k, function(n, m) {
				if (l && l.call(this) === false && m) {
					m.proceed = false
				}
			});
			return d
		}
		c.each(e, function(k, l) {
			if (c.isFunction(l)) {
				j(k, l)
			}
		});
		var g = f.is("input, textarea");
		f.bind(g ? "focus" : "mouseover", function(k) {
			k.target = this;
			d.show(k);
			h.hover(function() {
				d.show()
			}, function() {
				d.hide()
			})
		});
		f.bind(g ? "blur" : "mouseout", function() {
			d.hide()
		});
		h.css("opacity", e.opacity);
		var i = 0;
		c.extend(d, {
			show : function(q) {
				if (q) {
					f = c(q.target)
				}
				clearTimeout(i);
				if (h.is(":animated") || h.is(":visible")) {
					return d
				}
				var o = {
					proceed : true
				};
				c(d).trigger("onBeforeShow", o);
				if (!o.proceed) {
					return d
				}
				var n = f.position().top - h.outerHeight();
				var k = h.outerHeight() + f.outerHeight();
				var r = e.position[0];
				if (r == "center") {
					n += k / 2
				}
				if (r == "bottom") {
					n += k
				}
				var l = f.outerWidth() + h.outerWidth();
				var m = f.position().left + f.outerWidth();
				r = e.position[1];
				if (r == "center") {
					m -= l / 2
				}
				if (r == "left") {
					m -= l
				}
				n += e.offset[0];
				m += e.offset[1];
				h.css( {
					position : "absolute",
					top : n,
					left : m
				});
				b[e.effect][0].call(d);
				c(d).trigger("onShow");
				return d
			},
			hide : function() {
				clearTimeout(i);
				i = setTimeout(function() {
					if (!h.is(":visible")) {
						return d
					}
					var k = {
						proceed : true
					};
					c(d).trigger("onBeforeHide", k);
					if (!k.proceed) {
						return d
					}
					b[e.effect][1].call(d);
					c(d).trigger("onHide")
				}, e.delay || 1);
				return d
			},
			isShown : function() {
				return h.is(":visible, :animated")
			},
			getConf : function() {
				return e
			},
			getTip : function() {
				return h
			},
			getTrigger : function() {
				return f
			},
			onBeforeShow : function(k) {
				return j("onBeforeShow", k)
			},
			onShow : function(k) {
				return j("onShow", k)
			},
			onBeforeHide : function(k) {
				return j("onBeforeHide", k)
			},
			onHide : function(k) {
				return j("onHide", k)
			}
		})
	}
	c.prototype.tooltip = function(d) {
		var e = this.eq(typeof d == "number" ? d : 0).data("tooltip");
		if (e) {
			return e
		}
		var f = {
			tip : null,
			effect : "slideup",
			delay : 30,
			opacity : 1,
			position : [ "top", "center" ],
			offset : [ 0, 0 ],
			api : false
		};
		if (c.isFunction(d)) {
			d = {
				onBeforeShow : d
			}
		}
		c.extend(f, d);
		this.each(function() {
			e = new a(c(this), f);
			c(this).data("tooltip", e)
		});
		return f.api ? e : this
	}
})(jQuery);
(function(b) {
	b.tools = b.tools || {
		version : {}
	};
	b.tools.version.scrollable = "1.0.5";
	var c = null;
	function a(p, m) {
		var s = this;
		if (!c) {
			c = s
		}
		function n(t, u) {
			b(s).bind(t, function(w, v) {
				if (u && u.call(this, v.index) === false && v) {
					v.proceed = false
				}
			});
			return s
		}
		b.each(m, function(t, u) {
			if (b.isFunction(u)) {
				n(t, u)
			}
		});
		var d = !m.vertical;
		var f = b(m.items, p);
		var j = 0;
		function l(u, t) {
			return u.indexOf("#") != -1 ? b(u).eq(0) : t.siblings(u).eq(0)
		}
		var q = l(m.navi, p);
		var g = l(m.prev, p);
		var i = l(m.next, p);
		var h = l(m.prevPage, p);
		var o = l(m.nextPage, p);
		b.extend(s, {
			getIndex : function() {
				return j
			},
			getConf : function() {
				return m
			},
			getSize : function() {
				return s.getItems().size()
			},
			getPageAmount : function() {
				return Math.ceil(this.getSize() / m.size)
			},
			getPageIndex : function() {
				return Math.ceil(j / m.size)
			},
			getRoot : function() {
				return p
			},
			getItemWrap : function() {
				return f
			},
			getItems : function() {
				return f.children()
			},
			getVisibleItems : function() {
				return s.getItems().slice(j, j + m.size)
			},
			seekTo : function(w, u, A) {
				if (u === undefined) {
					u = m.speed
				}
				if (b.isFunction(u)) {
					A = u;
					u = m.speed
				}
				if (w < 0) {
					w = 0
				}
				if (w > s.getSize() - m.size) {
					return s
				}
				var B = s.getItems().eq(w);
				if (!B.length) {
					return s
				}
				var t = {
					index : w,
					proceed : true
				};
				b(s).trigger("onBeforeSeek", t);
				if (!t.proceed) {
					return s
				}
				if (d) {
					var v = -B.position().left;
					f.animate( {
						left : v
					}, u, m.easing, A ? function() {
						A.call(s)
					} : null)
				} else {
					var z = -B.position().top;
					f.animate( {
						top : z
					}, u, m.easing, A ? function() {
						A.call(s)
					} : null)
				}
				if (q.length) {
					var x = m.activeClass;
					var y = Math.ceil(w / m.size);
					y = Math.min(y, q.children().length - 1);
					q.children().removeClass(x).eq(y).addClass(x)
				}
				if (w === 0) {
					g.add(h).addClass(m.disabledClass)
				} else {
					g.add(h).removeClass(m.disabledClass)
				}
				if (w >= s.getSize() - m.size) {
					i.add(o).addClass(m.disabledClass)
				} else {
					i.add(o).removeClass(m.disabledClass)
				}
				c = s;
				j = w;
				b(s).trigger("onSeek", {
					index : w
				});
				return s
			},
			move : function(v, u, t) {
				var w = j + v;
				if (m.loop && w > (s.getSize() - m.size)) {
					w = 0
				}
				return this.seekTo(w, u, t)
			},
			next : function(u, t) {
				return this.move(1, u, t)
			},
			prev : function(u, t) {
				return this.move(-1, u, t)
			},
			movePage : function(v, u, t) {
				return this.move(m.size * v, u, t)
			},
			setPage : function(x, y, v) {
				var u = m.size;
				var t = u * x;
				var w = t + u >= this.getSize();
				if (w) {
					t = this.getSize() - m.size
				}
				return this.seekTo(t, y, v)
			},
			prevPage : function(u, t) {
				return this.setPage(this.getPageIndex() - 1, u, t)
			},
			nextPage : function(u, t) {
				return this.setPage(this.getPageIndex() + 1, u, t)
			},
			begin : function(u, t) {
				return this.seekTo(0, u, t)
			},
			end : function(u, t) {
				return this.seekTo(this.getSize() - m.size, u, t)
			},
			reload : function() {
				return r()
			},
			click : function(u, x, v) {
				var w = s.getItems().eq(u);
				var t = m.activeClass;
				if (u < 0 || u >= this.getSize()) {
					return s
				}
				if (m.size == 2) {
					if (u == s.getIndex()) {
						u--
					}
					s.getItems().removeClass(t);
					w.addClass(t);
					return this.seekTo(u, x, v)
				}
				if (!w.hasClass(t)) {
					s.getItems().removeClass(t);
					w.addClass(t);
					var z = Math.floor(m.size / 2);
					var y = u - z;
					if (y > s.getSize() - m.size) {
						y = s.getSize() - m.size
					}
					if (y !== u) {
						return this.seekTo(y, x, v)
					}
				}
				return s
			},
			onBeforeSeek : function(t) {
				return n("onBeforeSeek", t)
			},
			onSeek : function(t) {
				return n("onSeek", t)
			}
		});
		if (b.isFunction(b.fn.mousewheel)) {
			p.bind("mousewheel.scrollable", function(u, v) {
				var t = b.browser.opera ? 1 : -1;
				s.move(v > 0 ? t : -t, 50);
				return false
			})
		}
		g.addClass(m.disabledClass).click(function() {
			s.prev()
		});
		i.click(function() {
			s.next()
		});
		o.click(function() {
			s.nextPage()
		});
		h.addClass(m.disabledClass).click(function() {
			s.prevPage()
		});
		if (m.keyboard) {
			b(document).unbind("keydown.scrollable").bind("keydown.scrollable",
					function(t) {
						var u = c;
						if (!u || t.altKey || t.ctrlKey) {
							return
						}
						if (d && (t.keyCode == 37 || t.keyCode == 39)) {
							u.move(t.keyCode == 37 ? -1 : 1);
							return t.preventDefault()
						}
						if (!d && (t.keyCode == 38 || t.keyCode == 40)) {
							u.move(t.keyCode == 38 ? -1 : 1);
							return t.preventDefault()
						}
						return true
					})
		}
		function r() {
			if (q.is(":empty") || q.data("me") == s) {
				q.empty();
				q.data("me", s);
				for ( var u = 0; u < s.getPageAmount(); u++) {
					var v = b("<" + m.naviItem + "/>").attr("href", u).click(
							function(x) {
								var w = b(this);
								w.parent().children()
										.removeClass(m.activeClass);
								w.addClass(m.activeClass);
								s.setPage(w.attr("href"));
								return x.preventDefault()
							});
					if (u === 0) {
						v.addClass(m.activeClass)
					}
					q.append(v)
				}
			} else {
				var t = q.children();
				t.each(function(w) {
					var x = b(this);
					x.attr("href", w);
					if (w === 0) {
						x.addClass(m.activeClass)
					}
					x.click(function() {
						q.find("." + m.activeClass).removeClass(m.activeClass);
						x.addClass(m.activeClass);
						s.setPage(x.attr("href"))
					})
				})
			}
			if (m.clickable) {
				s.getItems().each(function(x, w) {
					var y = b(this);
					if (!y.data("set")) {
						y.bind("click.scrollable", function() {
							s.click(x)
						});
						y.data("set", true)
					}
				})
			}
			if (m.hoverClass) {
				s.getItems().hover(function() {
					b(this).addClass(m.hoverClass)
				}, function() {
					b(this).removeClass(m.hoverClass)
				})
			}
			return s
		}
		r();
		var e = null;
		function k() {
			if (e) {
				return
			}
			e = setInterval(function() {
				if (m.interval === 0) {
					clearInterval(e);
					e = 0;
					return
				}
				s.next()
			}, m.interval)
		}
		if (m.interval > 0) {
			p.hover(function() {
				clearInterval(e);
				e = 0
			}, function() {
				k()
			});
			k()
		}
	}
	b.fn.scrollable = function(d) {
		var e = this.eq(typeof d == "number" ? d : 0).data("scrollable");
		if (e) {
			return e
		}
		var f = {
			size : 5,
			vertical : false,
			clickable : true,
			loop : false,
			interval : 0,
			speed : 400,
			keyboard : true,
			activeClass : "active",
			disabledClass : "disabled",
			hoverClass : null,
			easing : "swing",
			items : ".items",
			prev : ".prev",
			next : ".next",
			prevPage : ".prevPage",
			nextPage : ".nextPage",
			navi : ".navi",
			naviItem : "a",
			api : false,
			onBeforeSeek : null,
			onSeek : null
		};
		b.extend(f, d);
		this.each(function() {
			e = new a(b(this), f);
			b(this).data("scrollable", e)
		});
		return f.api ? e : this
	}
})(jQuery);
(function(b) {
	b.tools = b.tools || {
		version : {}
	};
	b.tools.version.overlay = "1.0.4";
	var c = [];
	function a(h, d) {
		var r = this, q = b(window), f, n, s, i, k, m, l;
		var e = d.expose && b.tools.version.expose;
		function p(o, t) {
			b(r).bind(o, function(v, u) {
				if (t && t.call(this) === false && u) {
					u.proceed = false
				}
			});
			return r
		}
		b.each(d, function(o, t) {
			if (b.isFunction(t)) {
				p(o, t)
			}
		});
		var j = d.target || h.attr("rel");
		var g = j ? b(j) : null;
		if (!g) {
			g = h
		} else {
			k = h
		}
		q
				.load(function() {
					m = g.attr("overlay");
					if (!m) {
						m = g.css("backgroundImage");
						if (!m) {
							throw "background-image CSS property not set for overlay element: "
									+ j
						}
						m = m.substring(m.indexOf("(") + 1, m.indexOf(")"))
								.replace(/\"/g, "");
						g.css("backgroundImage", "none");
						g.attr("overlay", m)
					}
					s = g.outerWidth( {
						margin : true
					});
					i = g.outerHeight( {
						margin : true
					});
					n = b('<img src="' + m + '"/>');
					n.css( {
						border : 0,
						position : "absolute",
						display : "none"
					}).width(s).attr("overlay", true);
					b("body").append(n);
					if (k) {
						k.bind("click.overlay", function(o) {
							r.load(o.pageY - q.scrollTop(), o.pageX
									- q.scrollLeft());
							return o.preventDefault()
						})
					}
					d.close = d.close || ".close";
					if (!g.find(d.close).length) {
						g.prepend('<div class="close"></div>')
					}
					f = g.find(d.close);
					f.bind("click.overlay", function() {
						r.close()
					});
					if (d.preload) {
						setTimeout(function() {
							var o = new Image();
							o.src = m
						}, 2000)
					}
				});
		b.extend(r, {
			load : function(w, v) {
				if (!n) {
					q.load(function() {
						r.load(w, v)
					});
					return r
				}
				if (r.isOpened()) {
					return r
				}
				if (d.oneInstance) {
					b.each(c, function() {
						this.close()
					})
				}
				var u = {
					proceed : true
				};
				b(r).trigger("onBeforeLoad", u);
				if (!u.proceed) {
					return r
				}
				if (e) {
					n.expose(d.expose);
					l = n.expose().load()
				}
				w = w || d.start.top;
				v = v || d.start.left;
				var o = d.finish.top;
				var t = d.finish.left;
				if (o == "center") {
					o = Math.max((q.height() - i) / 2, 0)
				}
				if (t == "center") {
					t = Math.max((q.width() - s) / 2, 0)
				}
				if (!d.start.absolute) {
					w += q.scrollTop();
					v += q.scrollLeft()
				}
				if (!d.finish.absolute) {
					o += q.scrollTop();
					t += q.scrollLeft()
				}
				n.css( {
					top : w,
					left : v,
					width : d.start.width,
					zIndex : d.zIndex
				}).show();
				n.animate( {
					top : o,
					left : t,
					width : s
				}, d.speed, function() {
					g.css( {
						position : "absolute",
						top : o,
						left : t
					});
					var x = n.css("zIndex");
					f.add(g).css("zIndex", ++x);
					g.fadeIn(d.fadeInSpeed, function() {
						b(r).trigger("onLoad")
					})
				});
				return r
			},
			close : function() {
				if (!r.isOpened()) {
					return r
				}
				var u = {
					proceed : true
				};
				b(r).trigger("onBeforeClose", u);
				if (!u.proceed) {
					return r
				}
				if (l) {
					l.close()
				}
				if (n.is(":visible")) {
					g.hide();
					var t = d.start.top;
					var o = d.start.left;
					if (k) {
						u = k.offset();
						t = u.top + k.height() / 2;
						o = u.left + k.width() / 2
					}
					n.animate( {
						top : t,
						left : o,
						width : 0
					}, d.closeSpeed, function() {
						b(r).trigger("onClose", u)
					})
				}
				return r
			},
			getBackgroundImage : function() {
				return n
			},
			getContent : function() {
				return g
			},
			getTrigger : function() {
				return k
			},
			isOpened : function() {
				return g.is(":visible")
			},
			getConf : function() {
				return d
			},
			onBeforeLoad : function(o) {
				return p("onBeforeLoad", o)
			},
			onLoad : function(o) {
				return p("onLoad", o)
			},
			onBeforeClose : function(o) {
				return p("onBeforeClose", o)
			},
			onClose : function(o) {
				return p("onClose", o)
			}
		});
		b(document).keydown(function(o) {
			if (o.keyCode == 27) {
				r.close()
			}
		});
		if (d.closeOnClick) {
			b(document).bind("click.overlay", function(o) {
				if (!g.is(":visible, :animated")) {
					return
				}
				var t = b(o.target);
				if (t.attr("overlay")) {
					return
				}
				if (t.parents("[overlay]").length) {
					return
				}
				r.close()
			})
		}
	}
	b.fn.overlay = function(e) {
		var f = this.eq(typeof e == "number" ? e : 0).data("overlay");
		if (f) {
			return f
		}
		var d = b(window);
		var g = {
			start : {
				top : Math.round(d.height() / 2),
				left : Math.round(d.width() / 2),
				width : 0,
				absolute : false
			},
			finish : {
				top : 80,
				left : "center",
				absolute : false
			},
			speed : "normal",
			fadeInSpeed : "fast",
			closeSpeed : "fast",
			close : null,
			oneInstance : true,
			closeOnClick : true,
			preload : true,
			zIndex : 9999,
			api : false,
			expose : null,
			target : null
		};
		if (b.isFunction(e)) {
			e = {
				onBeforeLoad : e
			}
		}
		b.extend(true, g, e);
		this.each(function() {
			f = new a(b(this), g);
			c.push(f);
			b(this).data("overlay", f)
		});
		return g.api ? f : this
	}
})(jQuery);
(function(b) {
	b.tools = b.tools || {
		version : {}
	};
	b.tools.version.expose = "1.0.3";
	function a() {
		var e = b(window).width();
		if (b.browser.mozilla) {
			return e
		}
		var d;
		if (window.innerHeight && window.scrollMaxY) {
			d = window.innerWidth + window.scrollMaxX
		} else {
			if (document.body.scrollHeight > document.body.offsetHeight) {
				d = document.body.scrollWidth
			} else {
				d = document.body.offsetWidth
			}
		}
		return d < e ? d + 20 : e
	}
	function c(g, h) {
		var e = this, d = null, f = false, i = 0;
		function j(k, l) {
			b(e).bind(k, function(n, m) {
				if (l && l.call(this) === false && m) {
					m.proceed = false
				}
			});
			return e
		}
		b.each(h, function(k, l) {
			if (b.isFunction(l)) {
				j(k, l)
			}
		});
		b(window).bind("resize.expose", function() {
			if (d) {
				d.css( {
					width : a(),
					height : b(document).height()
				})
			}
		});
		b.extend(this, {
			getMask : function() {
				return d
			},
			getExposed : function() {
				return g
			},
			getConf : function() {
				return h
			},
			isLoaded : function() {
				return f
			},
			load : function() {
				if (f) {
					return e
				}
				i = g.eq(0).css("zIndex");
				if (h.maskId) {
					d = b("#" + h.maskId)
				}
				if (!d || !d.length) {
					d = b("<div/>").css( {
						position : "absolute",
						top : 0,
						left : 0,
						width : a(),
						height : b(document).height(),
						display : "none",
						opacity : 0,
						zIndex : h.zIndex
					});
					if (h.maskId) {
						d.attr("id", h.maskId)
					}
					b("body").append(d);
					var k = d.css("backgroundColor");
					if (!k || k == "transparent" || k == "rgba(0, 0, 0, 0)") {
						d.css("backgroundColor", h.color)
					}
					if (h.closeOnEsc) {
						b(document).bind("keydown.unexpose", function(n) {
							if (n.keyCode == 27) {
								e.close()
							}
						})
					}
					if (h.closeOnClick) {
						d.bind("click.unexpose", function() {
							e.close()
						})
					}
				}
				var m = {
					proceed : true
				};
				b(e).trigger("onBeforeLoad", m);
				if (!m.proceed) {
					return e
				}
				b.each(g, function() {
					var n = b(this);
					if (!/relative|absolute|fixed/i.test(n.css("position"))) {
						n.css("position", "relative")
					}
				});
				g.css( {
					zIndex : h.zIndex + 1
				});
				var l = d.height();
				if (!this.isLoaded()) {
					d.css( {
						opacity : 0,
						display : "block"
					}).fadeTo(h.loadSpeed, h.opacity, function() {
						if (d.height() != l) {
							d.css("height", l)
						}
						b(e).trigger("onLoad")
					})
				}
				f = true;
				return e
			},
			close : function() {
				if (!f) {
					return e
				}
				var k = {
					proceed : true
				};
				b(e).trigger("onBeforeClose", k);
				if (k.proceed === false) {
					return e
				}
				d.fadeOut(h.closeSpeed, function() {
					b(e).trigger("onClose");
					g.css( {
						zIndex : b.browser.msie ? i : null
					})
				});
				f = false;
				return e
			},
			onBeforeLoad : function(k) {
				return j("onBeforeLoad", k)
			},
			onLoad : function(k) {
				return j("onLoad", k)
			},
			onBeforeClose : function(k) {
				return j("onBeforeClose", k)
			},
			onClose : function(k) {
				return j("onClose", k)
			}
		})
	}
	b.fn.expose = function(d) {
		var e = this.eq(typeof d == "number" ? d : 0).data("expose");
		if (e) {
			return e
		}
		var f = {
			maskId : null,
			loadSpeed : "slow",
			closeSpeed : "fast",
			closeOnClick : true,
			closeOnEsc : true,
			zIndex : 9998,
			opacity : 0.8,
			color : "#456",
			api : false
		};
		if (typeof d == "string") {
			d = {
				color : d
			}
		}
		b.extend(f, d);
		this.each(function() {
			e = new c(b(this), f);
			b(this).data("expose", e)
		});
		return f.api ? e : this
	}
})(jQuery);
(function() {
	var e = typeof jQuery == "function";
	function i() {
		if (c.done) {
			return false
		}
		var k = document;
		if (k && k.getElementsByTagName && k.getElementById && k.body) {
			clearInterval(c.timer);
			c.timer = null;
			for ( var j = 0; j < c.ready.length; j++) {
				c.ready[j].call()
			}
			c.ready = null;
			c.done = true
		}
	}
	var c = e ? jQuery : function(j) {
		if (c.done) {
			return j()
		}
		if (c.timer) {
			c.ready.push(j)
		} else {
			c.ready = [ j ];
			c.timer = setInterval(i, 13)
		}
	};
	function f(k, j) {
		if (j) {
			for (key in j) {
				if (j.hasOwnProperty(key)) {
					k[key] = j[key]
				}
			}
		}
		return k
	}
	function g(j) {
		switch (h(j)) {
		case "string":
			j = j.replace(new RegExp('(["\\\\])', "g"), "\\$1");
			j = j.replace(/^\s?(\d+)%/, "$1pct");
			return '"' + j + '"';
		case "array":
			return "[" + b(j, function(m) {
				return g(m)
			}).join(",") + "]";
		case "function":
			return '"function()"';
		case "object":
			var k = [];
			for ( var l in j) {
				if (j.hasOwnProperty(l)) {
					k.push('"' + l + '":' + g(j[l]))
				}
			}
			return "{" + k.join(",") + "}"
		}
		return String(j).replace(/\s/g, " ").replace(/\'/g, '"')
	}
	function h(k) {
		if (k === null || k === undefined) {
			return false
		}
		var j = typeof k;
		return (j == "object" && k.push) ? "array" : j
	}
	if (window.attachEvent) {
		window.attachEvent("onbeforeunload", function() {
			__flash_unloadHandler = function() {
			};
			__flash_savedUnloadHandler = function() {
			}
		})
	}
	function b(j, m) {
		var l = [];
		for ( var k in j) {
			if (j.hasOwnProperty(k)) {
				l[k] = m(j[k])
			}
		}
		return l
	}
	function a(q, s) {
		var o = f( {}, q);
		var r = document.all;
		var m = '<object width="' + o.width + '" height="' + o.height + '"';
		if (r && !o.id) {
			o.id = "_" + ("" + Math.random()).substring(9)
		}
		if (o.id) {
			m += ' id="' + o.id + '"'
		}
		o.src += ((o.src.indexOf("?") != -1 ? "&" : "?") + Math.random());
		if (o.w3c || !r) {
			m += ' data="' + o.src + '" type="application/x-shockwave-flash"'
		} else {
			m += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
		}
		m += ">";
		if (o.w3c || r) {
			m += '<param name="movie" value="' + o.src + '" />'
		}
		o.width = o.height = o.id = o.w3c = o.src = null;
		for ( var j in o) {
			if (o[j] !== null) {
				m += '<param name="' + j + '" value="' + o[j] + '" />'
			}
		}
		var n = "";
		if (s) {
			for ( var l in s) {
				if (s[l] !== null) {
					n += l + "=" + (typeof s[l] == "object" ? g(s[l]) : s[l])
							+ "&"
				}
			}
			n = n.substring(0, n.length - 1);
			m += '<param name="flashvars" value=\'' + n + "' />"
		}
		m += "</object>";
		return m
	}
	function d(l, o, k) {
		var j = flashembed.getVersion();
		f(this, {
			getContainer : function() {
				return l
			},
			getConf : function() {
				return o
			},
			getVersion : function() {
				return j
			},
			getFlashvars : function() {
				return k
			},
			getApi : function() {
				return l.firstChild
			},
			getHTML : function() {
				return a(o, k)
			}
		});
		var p = o.version;
		var q = o.expressInstall;
		var n = !p || flashembed.isSupported(p);
		if (n) {
			o.onFail = o.version = o.expressInstall = null;
			l.innerHTML = a(o, k)
		} else {
			if (p && q && flashembed.isSupported( [ 6, 65 ])) {
				f(o, {
					src : q
				});
				k = {
					MMredirectURL : location.href,
					MMplayerType : "PlugIn",
					MMdoctitle : document.title
				};
				l.innerHTML = a(o, k)
			} else {
				if (l.innerHTML.replace(/\s/g, "") !== "") {
				} else {
					l.innerHTML = "<h2>Flash version "
							+ p
							+ " or greater is required</h2><h3>"
							+ (j[0] > 0 ? "Your version is " + j
									: "You have no flash plugin installed")
							+ "</h3>"
							+ (l.tagName == "A" ? "<p>Click here to download latest version</p>"
									: "<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");
					if (l.tagName == "A") {
						l.onclick = function() {
							location.href = "http://www.adobe.com/go/getflashplayer"
						}
					}
				}
			}
		}
		if (!n && o.onFail) {
			var m = o.onFail.call(this);
			if (typeof m == "string") {
				l.innerHTML = m
			}
		}
		if (document.all) {
			window[o.id] = document.getElementById(o.id)
		}
	}
	window.flashembed = function(k, l, j) {
		if (typeof k == "string") {
			var m = document.getElementById(k);
			if (m) {
				k = m
			} else {
				c(function() {
					flashembed(k, l, j)
				});
				return
			}
		}
		if (!k) {
			return
		}
		var n = {
			width : "100%",
			height : "100%",
			allowfullscreen : true,
			allowscriptaccess : "always",
			quality : "high",
			version : null,
			onFail : null,
			expressInstall : null,
			w3c : false
		};
		if (typeof l == "string") {
			l = {
				src : l
			}
		}
		f(n, l);
		return new d(k, n, j)
	};
	f(
			window.flashembed,
			{
				getVersion : function() {
					var l = [ 0, 0 ];
					if (navigator.plugins
							&& typeof navigator.plugins["Shockwave Flash"] == "object") {
						var k = navigator.plugins["Shockwave Flash"].description;
						if (typeof k != "undefined") {
							k = k.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
							var m = parseInt(k.replace(/^(.*)\..*$/, "$1"), 10);
							var q = /r/.test(k) ? parseInt(k.replace(
									/^.*r(.*)$/, "$1"), 10) : 0;
							l = [ m, q ]
						}
					} else {
						if (window.ActiveXObject) {
							try {
								var o = new ActiveXObject(
										"ShockwaveFlash.ShockwaveFlash.7")
							} catch (p) {
								try {
									o = new ActiveXObject(
											"ShockwaveFlash.ShockwaveFlash.6");
									l = [ 6, 0 ];
									o.AllowScriptAccess = "always"
								} catch (j) {
									if (l[0] == 6) {
										return l
									}
								}
								try {
									o = new ActiveXObject(
											"ShockwaveFlash.ShockwaveFlash")
								} catch (n) {
								}
							}
							if (typeof o == "object") {
								k = o.GetVariable("$version");
								if (typeof k != "undefined") {
									k = k.replace(/^\S+\s+(.*)$/, "$1").split(
											",");
									l = [ parseInt(k[0], 10),
											parseInt(k[2], 10) ]
								}
							}
						}
					}
					return l
				},
				isSupported : function(j) {
					var l = flashembed.getVersion();
					var k = (l[0] > j[0]) || (l[0] == j[0] && l[1] >= j[1]);
					return k
				},
				domReady : c,
				asString : g,
				getHTML : a
			});
	if (e) {
		jQuery.tools = jQuery.tools || {
			version : {}
		};
		jQuery.tools.version.flashembed = "1.0.3";
		jQuery.fn.flashembed = function(k, j) {
			var l = null;
			this.each(function() {
				l = flashembed(this, k, j)
			});
			return k.api === false ? this : l
		}
	}
})();
