var GB_CURRENT = null;
GB_hide = function(a) {
	GB_CURRENT.hide(a)
};
GreyBox = new AJS.Class({
	init: function(c) {
		this.use_fx = AJS.fx;
		this.type = "page";
		this.overlay_click_close = false;
		this.salt = 0;
		this.root_dir = GB_ROOT_DIR;
		this.callback_fns = [];
		this.reload_on_close = false;
		this.src_loader = this.root_dir + "loader_frame.html";
		var b = window.location.hostname.indexOf("www");
		var a = this.src_loader.indexOf("www");
		if (b != -1 && a == -1) {
			this.src_loader = this.src_loader.replace("://", "://www.")
		}
		if (b == -1 && a != -1) {
			this.src_loader = this.src_loader.replace("://www.", "://")
		}
		this.show_loading = true;
		AJS.update(this, c)
	}, addCallback: function(a) {
		if (a) {
			this.callback_fns.push(a)
		}
	}, show: function(a) {
		GB_CURRENT = this;
		this.url = a;
		var b = [AJS.$bytc("object"), AJS.$bytc("select")];
		AJS.map(AJS.flattenList(b),
	function(c) {
		c.style.visibility = "hidden"
	});
		this.createElements();
		return false
	},
	hide: function(a) {
		var b = this;
		setTimeout(function() {
			var d = b.callback_fns;
			if (d != []) {
				AJS.map(d, function(f) { f() })
			}
			b.onHide();
			if (b.use_fx) {
				var e = b.overlay;
				AJS.fx.fadeOut(b.overlay, {
					onComplete: function() {
						AJS.removeElement(e);
						e = null
					}, duration: 300
				});
				AJS.removeElement(b.g_window)
			}
			else {
				AJS.removeElement(b.g_window, b.overlay)
			} b.removeFrame();
			AJS.REV(window, "scroll", _GB_setOverlayDimension);
			AJS.REV(window, "resize", _GB_update);
			var c = [AJS.$bytc("object"), AJS.$bytc("select")];
			AJS.map(AJS.flattenList(c), function(f) { f.style.visibility = "visible" });
			GB_CURRENT = null;
			if (b.reload_on_close) { window.location.reload() } if (AJS.isFunction(a)) { a() }
		}, 10)
	}, update: function() {
		this.setOverlayDimension();
		this.setFrameSize();
		this.setWindowPosition()
	}, createElements: function() {
		this.initOverlay();
		this.g_window = AJS.DIV({ id: "GB_window" });
		AJS.hideElement(this.g_window);
		AJS.getBody().insertBefore(this.g_window, this.overlay.nextSibling);
		this.initFrame();
		this.initHook();
		this.update();
		var a = this; if (this.use_fx) {
			AJS.fx.fadeIn(this.overlay, { duration: 300, to: 0.7, onComplete: function() {
				a.onShow();
				AJS.showElement(a.g_window);
				a.startLoading()
			}
			})
		} else {
			AJS.setOpacity(this.overlay, 0.7);
			AJS.showElement(this.g_window);
			this.onShow(); this.startLoading()
		} AJS.AEV(window, "scroll", _GB_setOverlayDimension); AJS.AEV(window, "resize", _GB_update)
	}, removeFrame: function() { try { AJS.removeElement(this.iframe) } catch (a) { } this.iframe = null }, startLoading: function() {
		this.iframe.src = this.src_loader + "?s=" + this.salt++; AJS.showElement(this.iframe)
	}, setOverlayDimension: function() {
		var b = AJS.getWindowSize();
		if (AJS.isMozilla() || AJS.isOpera()) { AJS.setWidth(this.overlay, "100%") } else {
			AJS.setWidth(this.overlay, b.w)
		}
		var a = Math.max(AJS.getScrollTop() + b.h, AJS.getScrollTop() + this.height);
		if (a < AJS.getScrollTop()) {
			AJS.setHeight(this.overlay, a)
		} else {
			AJS.setHeight(this.overlay, AJS.getScrollTop() + b.h)
		}
	}, initOverlay: function() {
		this.overlay = AJS.DIV({ id: "GB_overlay" });
		if (this.overlay_click_close) {
			AJS.AEV(this.overlay, "click", GB_hide)
		}
		AJS.setOpacity(this.overlay, 0);
		AJS.getBody().insertBefore(this.overlay, AJS.getBody().firstChild)
	}, initFrame: function() {
		if (!this.iframe) {
			var a = { name: "GB_frame", "class": "GB_frame", frameBorder: 0 };
			if (AJS.isIe()) {
				a.src = 'javascript:false;document.write("");'
			}
			this.iframe = AJS.IFRAME(a);
			this.middle_cnt = AJS.DIV({ "class": "content" }, this.iframe);
			this.top_cnt = AJS.DIV();
			this.bottom_cnt = AJS.DIV();
			AJS.ACN(this.g_window, this.top_cnt, this.middle_cnt, this.bottom_cnt)
		}
	}, onHide: function() {
	}, onShow: function() {
	}, setFrameSize: function() {
	}, setWindowPosition: function() {
	}, initHook: function() { }
});
_GB_update = function() {
	if (GB_CURRENT) { GB_CURRENT.update() }
};
_GB_setOverlayDimension = function() {
	if (GB_CURRENT) { GB_CURRENT.setOverlayDimension() }
};
AJS.preloadImages(GB_ROOT_DIR + "indicator.gif");
script_loaded = true;
var GB_SETS = {};
function decoGreyboxLinks() {
	var a = AJS.$bytc("a");
	AJS.map(a, function(c) {
		if (c.getAttribute("href") && c.getAttribute("rel")) {
			var b = c.getAttribute("rel");
			if (b.indexOf("gb_") == 0) {
				var f = b.match(/\w+/)[0]; var e = b.match(/\[(.*)\]/)[1];
				var d = 0;
				var g = { caption: c.title || "", url: c.href };
				if (f == "gb_pageset" || f == "gb_imageset") {
					if (!GB_SETS[e]) { GB_SETS[e] = [] } GB_SETS[e].push(g);
					d = GB_SETS[e].length
				} if (f == "gb_pageset") {
					c.onclick = function() {
						GB_showFullScreenSet(GB_SETS[e], d);
						return false
					}
				} if (f == "gb_imageset") {
					c.onclick = function() {
						GB_showImageSet(GB_SETS[e], d);
						return false
					}
				} if (f == "gb_image") {
					c.onclick = function() {
						GB_showImage(g.caption, g.url);
						return false
					}
				} if (f == "gb_page") {
					c.onclick = function() {
						var h = e.split(/, ?/);
						GB_show(g.caption, g.url, parseInt(h[1]), parseInt(h[0])); return false
					}
				} if (f == "gb_page_fs") {
					c.onclick = function() {
						GB_showFullScreen(g.caption, g.url);
						return false
					}
				} if (f == "gb_page_center") { c.onclick = function() { var h = e.split(/, ?/); GB_showCenter(g.caption, g.url, parseInt(h[1]), parseInt(h[0])); return false } }
			}
		}
	})
} AJS.AEV(window, "load", decoGreyboxLinks);
GB_showImage = function(a, c, e) {
	var b = { width: 300, height: 300, type: "image", fullscreen: false, center_win: true, caption: a, callback_fn: e };
	var d = new GB_Gallery(b);
	return d.show(c)
};
GB_showPage = function(a, c, e) {
	var b =
{
	type: "page", caption: a, callback_fn: e, fullscreen: true, center_win: false
};
	var d = new GB_Gallery(b)
	return d.show(c)
};
GB_showPageWindow = function(a, c, e) {
	var b =
{
	width: 600, height: 450, type: "page", caption: a, callback_fn: e, fullscreen: false, center_win: true
};
	var d = new GB_Gallery(b)
	return d.show(c)
};
GB_Gallery = GreyBox.extend({ init: function(a) {
	this.parent({});
	this.img_close = this.root_dir + "g_close.gif"; AJS.update(this, a);
	this.addCallback(this.callback_fn)
}, initHook: function() {
	AJS.addClass(this.g_window, "GB_Gallery");
	var c = AJS.DIV({
		"class": "inner"
	});
	this.header = AJS.DIV({ "class": "GB_header" }, c);
	AJS.setOpacity(this.header, 0);
	AJS.getBody().insertBefore(this.header, this.overlay.nextSibling);
	var e = AJS.TD({ id: "GB_caption", "class": "caption", width: "40%" }, this.caption);
	var b = AJS.TD({ id: "GB_middle", "class": "middle", width: "20%" });
	var f = AJS.IMG({ src: this.img_close });
	AJS.AEV(f, "click", GB_hide);
	var a = AJS.TD({ "class": "close", width: "40%" }, f);
	var d = AJS.TBODY(AJS.TR(e, b, a));
	var g = AJS.TABLE({ cellspacing: "0", cellpadding: 0, border: 0 }, d);
	AJS.ACN(c, g);
	if (this.fullscreen) {
		AJS.AEV(window, "scroll", AJS.$b(this.setWindowPosition, this))
	}
	else { AJS.AEV(window, "scroll", AJS.$b(this._setHeaderPos, this)) }
}, setFrameSize: function() {
	var b = this.overlay.offsetWidth;
	var a = AJS.getWindowSize();
	if (this.fullscreen) {
		this.width = b - 40; this.height = a.h - 80
	} AJS.setWidth(this.iframe, this.width);
	AJS.setHeight(this.iframe, this.height);
	AJS.setWidth(this.header, b)
}, _setHeaderPos: function() {
	AJS.setTop(this.header, AJS.getScrollTop() + 10)
}, setWindowPosition: function() {
	var c = this.overlay.offsetWidth;
	var a = AJS.getWindowSize();
	AJS.setLeft(this.g_window, ((c - 50 - this.width) / 2));
	var d = AJS.getScrollTop() + 55;
	if (!this.center_win) {
		AJS.setTop(this.g_window, d)
	} else {
		var b = ((a.h - this.height) / 2) + 20 + AJS.getScrollTop();
		if (b < 0) { b = 0 } if (d > b) { b = d } AJS.setTop(this.g_window, b)
	} this._setHeaderPos()
}, onHide: function() {
	AJS.removeElement(this.header);
	AJS.removeClass(this.g_window, "GB_Gallery")
}, onShow: function() {
	if (this.use_fx) {
		AJS.fx.fadeIn(this.header, { to: 1 })
	}
	else {
		AJS.setOpacity(this.header, 1)
	}
}
});
AJS.preloadImages(GB_ROOT_DIR + "g_close.gif");
GB_showFullScreenSet = function(e, a, d) {
	var b = { type: "page", fullscreen: true, center_win: false };
	var c = new GB_Sets(b, e);
	c.addCallback(d);
	c.showSet(a - 1);
	return false
};
GB_showImageSet = function(e, a, d) {
	var b = { type: "image", fullscreen: false, center_win: true, width: 300, height: 300 };
	var c = new GB_Sets(b, e);
	c.addCallback(d);
	c.showSet(a - 1);
	return false
};
GB_Sets = GB_Gallery.extend({ init: function(a, b) {
	this.parent(a);
	if (!this.img_next) { this.img_next = this.root_dir + "next.gif" } if (!this.img_prev) {
		this.img_prev = this.root_dir + "prev.gif"
	} this.current_set = b
}, showSet: function(a) {
	this.current_index = a;
	var b = this.current_set[this.current_index];
	this.show(b.url);
	this._setCaption(b.caption);
	this.btn_prev = AJS.IMG({ "class": "left", src: this.img_prev });
	this.btn_next = AJS.IMG({ "class": "right", src: this.img_next }); AJS.AEV(this.btn_prev, "click", AJS.$b(this.switchPrev, this));
	AJS.AEV(this.btn_next, "click", AJS.$b(this.switchNext, this));
	GB_STATUS = AJS.SPAN({ "class": "GB_navStatus" });
	AJS.ACN(AJS.$("GB_middle"), this.btn_prev, GB_STATUS, this.btn_next);
	this.updateStatus()
}, updateStatus: function() {
	AJS.setHTML(GB_STATUS, (this.current_index + 1) + " / " + this.current_set.length);
	if (this.current_index == 0) {
		AJS.addClass(this.btn_prev, "disabled")
	}
	else {
		AJS.removeClass(this.btn_prev, "disabled")
	}
	if (this.current_index == this.current_set.length - 1) {
		AJS.addClass(this.btn_next, "disabled")
	} else {
		AJS.removeClass(this.btn_next, "disabled")
	}
}, _setCaption: function(a) {
	AJS.setHTML(AJS.$("GB_caption"), a)
}, updateFrame: function() {
	var a = this.current_set[this.current_index];
	this._setCaption(a.caption);
	this.url = a.url; this.startLoading()
}, switchPrev: function() {
	if (this.current_index != 0) {
		this.current_index--;
		this.updateFrame();
		this.updateStatus()
	}
}, switchNext: function() {
	if (this.current_index != this.current_set.length - 1) {
		this.current_index++;
		this.updateFrame();
		this.updateStatus()
	}
}
});
AJS.AEV(window, "load", function() {
	AJS.preloadImages(GB_ROOT_DIR + "next.gif", GB_ROOT_DIR + "prev.gif")
});
GB_show = function(b, d, a, e, g) {
	var c = { caption: b, height: a || 500, width: e || 500, fullscreen: false, callback_fn: g };
	var f = new GB_Window(c);
	return f.show(d)
};
GB_showCenter = function(b, d, a, e, g) {
	var c = {
		caption: b, center_win: true, height: a || 500, width: e || 500, fullscreen: false, callback_fn: g
	};
	var f = new GB_Window(c); return f.show(d)
}; GB_showFullScreen = function(a, c, e) {
	var b = {
		caption: a, fullscreen: true, callback_fn: e
	};
	var d = new GB_Window(b); return d.show(c)
};
GB_Window = GreyBox.extend({ init: function(a) {
	this.parent({}); this.img_header = this.root_dir + "header_bg.gif"; this.img_close = this.root_dir + "w_close.gif"; this.show_close_img = true; AJS.update(this, a);
	this.addCallback(this.callback_fn)
}, initHook: function() {
	AJS.addClass(this.g_window, "GB_Window");
	this.header = AJS.TABLE({ "class": "header" });
	this.header.style.backgroundImage = "url(" + this.img_header + ")";
	var b = AJS.TD({ "class": "caption" }, this.caption);
	var a = AJS.TD({ "class": "close" });
	if (this.show_close_img) {
		var e = AJS.IMG({ src: this.img_close });
		var d = AJS.SPAN("Close");
		var c = AJS.DIV(e, d);
		AJS.AEV([e, d], "mouseover", function() { AJS.addClass(d, "on") });
		AJS.AEV([e, d], "mouseout", function() { AJS.removeClass(d, "on") });
		AJS.AEV([e, d], "mousedown", function() { AJS.addClass(d, "click") });
		AJS.AEV([e, d], "mouseup", function() { AJS.removeClass(d, "click") });
		AJS.AEV([e, d], "click", GB_hide);
		AJS.ACN(a, c)
	} tbody_header = AJS.TBODY();
	AJS.ACN(tbody_header, AJS.TR(b, a));
	AJS.ACN(this.header, tbody_header);
	AJS.ACN(this.top_cnt, this.header);
	if (this.fullscreen) {
		AJS.AEV(window, "scroll", AJS.$b(this.setWindowPosition, this))
	}
}, setFrameSize: function() {
	if (this.fullscreen) {
		var a = AJS.getWindowSize();
		overlay_h = a.h;
		this.width = Math.round(this.overlay.offsetWidth - (this.overlay.offsetWidth / 100) * 10);
		this.height = Math.round(overlay_h - (overlay_h / 100) * 10)
	} AJS.setWidth(this.header, this.width + 6);
	AJS.setWidth(this.iframe, this.width);
	AJS.setHeight(this.iframe, this.height)
}, setWindowPosition: function() {
	var a = AJS.getWindowSize();
	AJS.setLeft(this.g_window, ((a.w - this.width) / 2) - 13);
	if (!this.center_win) {
		AJS.setTop(this.g_window, AJS.getScrollTop())
	} else {
		var b = ((a.h - this.height) / 2) - 20 + AJS.getScrollTop();
		if (b < 0) { b = 0 } AJS.setTop(this.g_window, b)
	}
}
});
AJS.preloadImages(GB_ROOT_DIR + "w_close.gif", GB_ROOT_DIR + "header_bg.gif");
script_loaded = true;