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.overlay_click_close = true;
		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,
		center_win: false,
		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_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,
			width: "50%",
			align: "center"
		}, 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,
		center_win: false,
		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);
		

		if (this.current_index == 0) {
			ajs.addClass(this.btn_prev,"disabled");
			ajs.addClass(this.btn_prev,"disabled_none");
			ajs.ACN(ajs.$("GB_middle"), GB_STATUS, this.btn_next);
		} else {
			ajs.removeClass(this.btn_prev,"disabled");
			if (this.current_index == this.current_set.length - 1) {
				ajs.addClass(this.btn_next,"disabled");
				ajs.addClass(this.btn_next,"disabled_none");
				ajs.ACN(ajs.$("GB_middle"), this.btn_prev, GB_STATUS);
			} else {
				ajs.removeClass(this.btn_prev,"disabled");
				ajs.removeClass(this.btn_next,"disabled");
				ajs.addClass(this.btn_prev,"disabled");
				ajs.addClass(this.btn_next,"disabled");
				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");
			ajs.addClass(this.btn_prev,"disabled_none");
			ajs.removeClass(this.btn_next,"disabled");
			ajs.ACN(ajs.$("GB_middle"), GB_STATUS, this.btn_next);
		} else {
			ajs.removeClass(this.btn_prev,"disabled");
			if (this.current_index == this.current_set.length - 1) {
				ajs.addClass(this.btn_next,"disabled");
				ajs.addClass(this.btn_next,"disabled_none");
				ajs.ACN(ajs.$("GB_middle"), this.btn_prev, GB_STATUS);
			} else {
				ajs.removeClass(this.btn_prev,"disabled");
				ajs.removeClass(this.btn_next,"disabled");
				ajs.addClass(this.btn_prev,"disabled");
				ajs.addClass(this.btn_next,"disabled");
				
				ajs.ACN(ajs.$("GB_middle"), this.btn_prev, GB_STATUS, this.btn_next);
			}
		}
		
		
	},
	_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("•Â‚¶‚é");
			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;

