1 GB_showImage = function(caption, url, callback_fn) {
10 callback_fn: callback_fn
12 var win = new GB_Gallery(options);
16 GB_showPage = function(caption, url, callback_fn) {
21 callback_fn: callback_fn,
25 var win = new GB_Gallery(options);
29 GB_Gallery = GreyBox.extend({
30 init: function(options) {
32 this.img_close = this.root_dir + 'g_close.gif';
33 AJS.update(this, options);
34 this.addCallback(this.callback_fn);
37 initHook: function() {
38 AJS.addClass(this.g_window, 'GB_Gallery');
40 var inner = AJS.DIV({'class': 'inner'});
41 this.header = AJS.DIV({'class': 'GB_header'}, inner);
42 AJS.setOpacity(this.header, 0);
43 AJS.getBody().insertBefore(this.header, this.overlay.nextSibling);
45 var td_caption = AJS.TD({'id': 'GB_caption', 'class': 'caption', 'width': '40%'}, this.caption);
46 var td_middle = AJS.TD({'id': 'GB_middle', 'class': 'middle', 'width': '20%'});
48 var img_close = AJS.IMG({'src': this.img_close});
49 AJS.AEV(img_close, 'click', GB_hide);
50 var td_close = AJS.TD({'class': 'close', 'width': '40%'}, img_close);
52 var tbody = AJS.TBODY(AJS.TR(td_caption, td_middle, td_close));
54 var table = AJS.TABLE({'cellspacing': '0', 'cellpadding': 0, 'border': 0}, tbody);
55 AJS.ACN(inner, table);
58 AJS.AEV(window, 'scroll', AJS.$b(this.setWindowPosition, this));
60 AJS.AEV(window, 'scroll', AJS.$b(this._setHeaderPos, this));
63 setFrameSize: function() {
64 var overlay_w = this.overlay.offsetWidth;
65 var page_size = AJS.getWindowSize();
68 this.width = overlay_w-40;
69 this.height = page_size.h-80;
71 AJS.setWidth(this.iframe, this.width);
72 AJS.setHeight(this.iframe, this.height);
74 AJS.setWidth(this.header, overlay_w);
77 _setHeaderPos: function() {
78 AJS.setTop(this.header, AJS.getScrollTop()+10);
81 setWindowPosition: function() {
82 var overlay_w = this.overlay.offsetWidth;
83 var page_size = AJS.getWindowSize();
84 AJS.setLeft(this.g_window, ((overlay_w - 50 - this.width)/2));
86 var header_top = AJS.getScrollTop()+55;
87 if(!this.center_win) {
88 AJS.setTop(this.g_window, header_top);
91 var fl = ((page_size.h - this.height) /2) + 20 + AJS.getScrollTop();
96 AJS.setTop(this.g_window, fl);
102 AJS.removeElement(this.header);
103 AJS.removeClass(this.g_window, 'GB_Gallery');
108 AJS.fx.fadeIn(this.header, {to: 1});
110 AJS.setOpacity(this.header, 1);
114 AJS.preloadImages(GB_ROOT_DIR+'g_close.gif');