You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
17 KiB
456 lines
17 KiB
var GB_CURRENT = null;
|
|
GB_hide = function (cb) {
|
|
GB_CURRENT.hide(cb);
|
|
};
|
|
GreyBox = new AJS.Class({
|
|
init: function (_2) {
|
|
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 _3 = window.location.hostname.indexOf("www");
|
|
var _4 = this.src_loader.indexOf("www");
|
|
if (_3 != -1 && _4 == -1) {
|
|
this.src_loader = this.src_loader.replace("://", "://www.");
|
|
}
|
|
if (_3 == -1 && _4 != -1) {
|
|
this.src_loader = this.src_loader.replace("://www.", "://");
|
|
}
|
|
this.show_loading = true;
|
|
AJS.update(this, _2);
|
|
}, addCallback: function (fn) {
|
|
if (fn) {
|
|
this.callback_fns.push(fn);
|
|
}
|
|
}, show: function (_6) {
|
|
GB_CURRENT = this;
|
|
this.url = _6;
|
|
var _7 = [AJS.$bytc("object"), AJS.$bytc("select")];
|
|
AJS.map(AJS.flattenList(_7), function (_8) {
|
|
_8.style.visibility = "hidden";
|
|
});
|
|
this.createElements();
|
|
return false;
|
|
}, hide: function (cb) {
|
|
var me = this;
|
|
AJS.callLater(function () {
|
|
var _b = me.callback_fns;
|
|
if (_b != []) {
|
|
AJS.map(_b, function (fn) {
|
|
fn();
|
|
});
|
|
}
|
|
me.onHide();
|
|
if (me.use_fx) {
|
|
var _d = me.overlay;
|
|
AJS.fx.fadeOut(me.overlay, {
|
|
onComplete: function () {
|
|
AJS.removeElement(_d);
|
|
_d = null;
|
|
}, duration: 300
|
|
});
|
|
AJS.removeElement(me.g_window);
|
|
} else {
|
|
AJS.removeElement(me.g_window, me.overlay);
|
|
}
|
|
me.removeFrame();
|
|
AJS.REV(window, "scroll", _GB_setOverlayDimension);
|
|
AJS.REV(window, "resize", _GB_update);
|
|
var _e = [AJS.$bytc("object"), AJS.$bytc("select")];
|
|
AJS.map(AJS.flattenList(_e), function (_f) {
|
|
_f.style.visibility = "visible";
|
|
});
|
|
GB_CURRENT = null;
|
|
if (me.reload_on_close) {
|
|
window.location.reload();
|
|
}
|
|
if (AJS.isFunction(cb)) {
|
|
cb();
|
|
}
|
|
}, 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 me = this;
|
|
if (this.use_fx) {
|
|
AJS.fx.fadeIn(this.overlay, {
|
|
duration: 300, to: 0.7, onComplete: function () {
|
|
me.onShow();
|
|
AJS.showElement(me.g_window);
|
|
me.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 (e) {
|
|
}
|
|
this.iframe = null;
|
|
}, startLoading: function () {
|
|
this.iframe.src = this.src_loader + "?s=" + this.salt++;
|
|
AJS.showElement(this.iframe);
|
|
}, setOverlayDimension: function () {
|
|
var _11 = AJS.getWindowSize();
|
|
if (AJS.isMozilla() || AJS.isOpera()) {
|
|
AJS.setWidth(this.overlay, "100%");
|
|
} else {
|
|
AJS.setWidth(this.overlay, _11.w);
|
|
}
|
|
var _12 = Math.max(AJS.getScrollTop() + _11.h, AJS.getScrollTop() + this.height);
|
|
if (_12 < AJS.getScrollTop()) {
|
|
AJS.setHeight(this.overlay, _12);
|
|
} else {
|
|
AJS.setHeight(this.overlay, AJS.getScrollTop() + _11.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 d = { "name": "GB_frame", "class": "GB_frame", "frameBorder": 0 };
|
|
if (AJS.isIe()) {
|
|
d.src = "javascript:false;document.write(\"\");";
|
|
}
|
|
this.iframe = AJS.IFRAME(d);
|
|
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 as = AJS.$bytc("a");
|
|
AJS.map(as, function (a) {
|
|
if (a.getAttribute("href") && a.getAttribute("rel")) {
|
|
var rel = a.getAttribute("rel");
|
|
if (rel.indexOf("gb_") == 0) {
|
|
var _17 = rel.match(/\w+/)[0];
|
|
var _18 = rel.match(/\[(.*)\]/)[1];
|
|
var _19 = 0;
|
|
var _1a = { "caption": a.title || "", "url": a.href };
|
|
if (_17 == "gb_pageset" || _17 == "gb_imageset") {
|
|
if (!GB_SETS[_18]) {
|
|
GB_SETS[_18] = [];
|
|
}
|
|
GB_SETS[_18].push(_1a);
|
|
_19 = GB_SETS[_18].length;
|
|
}
|
|
if (_17 == "gb_pageset") {
|
|
a.onclick = function () {
|
|
GB_showFullScreenSet(GB_SETS[_18], _19);
|
|
return false;
|
|
};
|
|
}
|
|
if (_17 == "gb_imageset") {
|
|
a.onclick = function () {
|
|
GB_showImageSet(GB_SETS[_18], _19);
|
|
return false;
|
|
};
|
|
}
|
|
if (_17 == "gb_image") {
|
|
a.onclick = function () {
|
|
GB_showImage(_1a.caption, _1a.url);
|
|
return false;
|
|
};
|
|
}
|
|
if (_17 == "gb_page") {
|
|
a.onclick = function () {
|
|
var sp = _18.split(/, ?/);
|
|
GB_show(_1a.caption, _1a.url, parseInt(sp[1]), parseInt(sp[0]));
|
|
return false;
|
|
};
|
|
}
|
|
if (_17 == "gb_page_fs") {
|
|
a.onclick = function () {
|
|
GB_showFullScreen(_1a.caption, _1a.url);
|
|
return false;
|
|
};
|
|
}
|
|
if (_17 == "gb_page_center") {
|
|
a.onclick = function () {
|
|
var sp = _18.split(/, ?/);
|
|
GB_showCenter(_1a.caption, _1a.url, parseInt(sp[1]), parseInt(sp[0]));
|
|
return false;
|
|
};
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
AJS.AEV(window, "load", decoGreyboxLinks);
|
|
GB_showImage = function (_1d, url, _1f) {
|
|
var _20 = { width: 300, height: 300, type: "image", fullscreen: false, center_win: true, caption: _1d, callback_fn: _1f };
|
|
var win = new GB_Gallery(_20);
|
|
return win.show(url);
|
|
};
|
|
GB_showPage = function (_22, url, _24) {
|
|
var _25 = { type: "page", caption: _22, callback_fn: _24, fullscreen: true, center_win: false };
|
|
var win = new GB_Gallery(_25);
|
|
return win.show(url);
|
|
};
|
|
GB_Gallery = GreyBox.extend({
|
|
init: function (_27) {
|
|
this.parent({});
|
|
this.img_close = this.root_dir + "g_close.gif";
|
|
AJS.update(this, _27);
|
|
this.addCallback(this.callback_fn);
|
|
}, initHook: function () {
|
|
AJS.addClass(this.g_window, "GB_Gallery");
|
|
var _28 = AJS.DIV({ "class": "inner" });
|
|
this.header = AJS.DIV({ "class": "GB_header" }, _28);
|
|
AJS.setOpacity(this.header, 0);
|
|
AJS.getBody().insertBefore(this.header, this.overlay.nextSibling);
|
|
var _29 = AJS.TD({ "id": "GB_caption", "class": "caption", "width": "40%" }, this.caption);
|
|
var _2a = AJS.TD({ "id": "GB_middle", "class": "middle", "width": "20%" });
|
|
var _2b = AJS.IMG({ "src": this.img_close });
|
|
AJS.AEV(_2b, "click", GB_hide);
|
|
var _2c = AJS.TD({ "class": "close", "width": "40%" }, _2b);
|
|
var _2d = AJS.TBODY(AJS.TR(_29, _2a, _2c));
|
|
var _2e = AJS.TABLE({ "cellspacing": "0", "cellpadding": 0, "border": 0 }, _2d);
|
|
AJS.ACN(_28, _2e);
|
|
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 _2f = this.overlay.offsetWidth;
|
|
var _30 = AJS.getWindowSize();
|
|
if (this.fullscreen) {
|
|
this.width = _2f - 40;
|
|
this.height = _30.h - 80;
|
|
}
|
|
AJS.setWidth(this.iframe, this.width);
|
|
AJS.setHeight(this.iframe, this.height);
|
|
AJS.setWidth(this.header, _2f);
|
|
}, _setHeaderPos: function () {
|
|
AJS.setTop(this.header, AJS.getScrollTop() + 10);
|
|
}, setWindowPosition: function () {
|
|
var _31 = this.overlay.offsetWidth;
|
|
var _32 = AJS.getWindowSize();
|
|
AJS.setLeft(this.g_window, ((_31 - 50 - this.width) / 2));
|
|
var _33 = AJS.getScrollTop() + 55;
|
|
if (!this.center_win) {
|
|
AJS.setTop(this.g_window, _33);
|
|
} else {
|
|
var fl = ((_32.h - this.height) / 2) + 20 + AJS.getScrollTop();
|
|
if (fl < 0) {
|
|
fl = 0;
|
|
}
|
|
if (_33 > fl) {
|
|
fl = _33;
|
|
}
|
|
AJS.setTop(this.g_window, fl);
|
|
}
|
|
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 (set, _36, _37) {
|
|
var _38 = { type: "page", fullscreen: true, center_win: false };
|
|
var _39 = new GB_Sets(_38, set);
|
|
_39.addCallback(_37);
|
|
_39.showSet(_36 - 1);
|
|
return false;
|
|
};
|
|
GB_showImageSet = function (set, _3b, _3c) {
|
|
var _3d = { type: "image", fullscreen: false, center_win: true, width: 300, height: 300 };
|
|
var _3e = new GB_Sets(_3d, set);
|
|
_3e.addCallback(_3c);
|
|
_3e.showSet(_3b - 1);
|
|
return false;
|
|
};
|
|
GB_Sets = GB_Gallery.extend({
|
|
init: function (_3f, set) {
|
|
this.parent(_3f);
|
|
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 = set;
|
|
}, showSet: function (_41) {
|
|
this.current_index = _41;
|
|
var _42 = this.current_set[this.current_index];
|
|
this.show(_42.url);
|
|
this._setCaption(_42.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 (_43) {
|
|
AJS.setHTML(AJS.$("GB_caption"), _43);
|
|
}, updateFrame: function () {
|
|
var _44 = this.current_set[this.current_index];
|
|
this._setCaption(_44.caption);
|
|
this.url = _44.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 (_45, url, _47, _48, _49) {
|
|
var _4a = { caption: _45, height: _47 || 500, width: _48 || 500, fullscreen: false, callback_fn: _49 };
|
|
var win = new GB_Window(_4a);
|
|
return win.show(url);
|
|
};
|
|
GB_showCenter = function (_4c, url, _4e, _4f, _50) {
|
|
var _51 = { caption: _4c, center_win: true, height: _4e || 500, width: _4f || 500, fullscreen: false, callback_fn: _50 };
|
|
var win = new GB_Window(_51);
|
|
return win.show(url);
|
|
};
|
|
GB_showFullScreen = function (_53, url, _55) {
|
|
var _56 = { caption: _53, fullscreen: true, callback_fn: _55 };
|
|
var win = new GB_Window(_56);
|
|
return win.show(url);
|
|
};
|
|
GB_Window = GreyBox.extend({
|
|
init: function (_58) {
|
|
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, _58);
|
|
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 _59 = AJS.TD({ "class": "caption" }, this.caption);
|
|
var _5a = AJS.TD({ "class": "close" });
|
|
if (this.show_close_img) {
|
|
var _5b = AJS.IMG({ "src": this.img_close });
|
|
var _5c = AJS.SPAN(" ");
|
|
var btn = AJS.DIV(_5b, _5c);
|
|
AJS.AEV([_5b, _5c], "mouseover", function () {
|
|
AJS.addClass(_5c, "on");
|
|
});
|
|
AJS.AEV([_5b, _5c], "mouseout", function () {
|
|
AJS.removeClass(_5c, "on");
|
|
});
|
|
AJS.AEV([_5b, _5c], "mousedown", function () {
|
|
AJS.addClass(_5c, "click");
|
|
});
|
|
AJS.AEV([_5b, _5c], "mouseup", function () {
|
|
AJS.removeClass(_5c, "click");
|
|
});
|
|
AJS.AEV([_5b, _5c], "click", GB_hide);
|
|
AJS.ACN(_5a, btn);
|
|
}
|
|
tbody_header = AJS.TBODY();
|
|
AJS.ACN(tbody_header, AJS.TR(_59, _5a));
|
|
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 _5e = AJS.getWindowSize();
|
|
overlay_h = _5e.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 _5f = AJS.getWindowSize();
|
|
AJS.setLeft(this.g_window, ((_5f.w - this.width) / 2) - 13);
|
|
if (!this.center_win) {
|
|
AJS.setTop(this.g_window, AJS.getScrollTop());
|
|
} else {
|
|
var fl = ((_5f.h - this.height) / 2) - 20 + AJS.getScrollTop();
|
|
if (fl < 0) {
|
|
fl = 0;
|
|
}
|
|
AJS.setTop(this.g_window, fl);
|
|
}
|
|
}
|
|
});
|
|
AJS.preloadImages(GB_ROOT_DIR + "w_close.gif", GB_ROOT_DIR + "header_bg.gif");
|
|
|
|
script_loaded = true;
|