var GB_CURRENT = null;
GB_hide = function() {
    GB_CURRENT.hide();
};
GreyBox = new AJS.Class({
    init: function(_1) {
        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 _2 = window.location.hostname.indexOf("www");
        var _3 = this.src_loader.indexOf("www");
        if (_2 != -1 && _3 == -1) {
            this.src_loader = this.src_loader.replace("://", "://www.");
        }
        if (_2 == -1 && _3 != -1) {
            this.src_loader = this.src_loader.replace("://www.", "://");
        }
        this.show_loading = false;
        AJS.update(this, _1);
    },
    addCallback: function(fn) {
        if (fn) {
            this.callback_fns.push(fn);
        }
    },
    show: function(_5) {
        GB_CURRENT = this;
        this.url = _5;
        var _6 = [AJS.$bytc("object"), AJS.$bytc("select")];
        AJS.map(AJS.flattenList(_6),
        function(_7) {
            _7.style.visibility = "hidden";
        });
        this.createElements();
        return false;
    },
    hide: function() {
        var _8 = this.callback_fns;
        if (_8 != []) {
            AJS.map(_8,
            function(fn) {
                fn();
            });
        }
        this.onHide();
        if (this.use_fx) {
            var _a = this.overlay;
            AJS.fx.fadeOut(this.overlay, {
                onComplete: function() {
                    AJS.removeElement(_a);
                    _a = null;
                },
                duration: 300
            });
            AJS.removeElement(this.g_window);
        } else {
            AJS.removeElement(this.g_window, this.overlay);
        }
        this.removeFrame();
        AJS.REV(window, "scroll", _GB_setOverlayDimension);
        AJS.REV(window, "resize", _GB_update);
        var _b = [AJS.$bytc("object"), AJS.$bytc("select")];
        AJS.map(AJS.flattenList(_b),
        function(_c) {
            _c.style.visibility = "visible";
        });
        GB_CURRENT = null;
        if (this.reload_on_close) {
            window.location.reload();
        }
    },
    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 _e = AJS.getWindowSize();
        if (AJS.isMozilla() || AJS.isOpera()) {
            AJS.setWidth(this.overlay, "100%");
        } else {
            AJS.setWidth(this.overlay, _e.w);
        }
        var _f = Math.max(AJS.getScrollTop() + _e.h, AJS.getScrollTop() + this.height);
        if (_f < AJS.getScrollTop()) {
            AJS.setHeight(this.overlay, _f);
        } else {
            AJS.setHeight(this.overlay, AJS.getScrollTop() + _e.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
            };
            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 _14 = rel.match(/\w+/)[0];
                var _15 = rel.match(/\[(.*)\]/)[1];
                var _16 = 0;
                var _17 = {
                    "caption": a.title || "",
                    "url": a.href
                };
                if (_14 == "gb_pageset" || _14 == "gb_imageset") {
                    if (!GB_SETS[_15]) {
                        GB_SETS[_15] = [];
                    }
                    GB_SETS[_15].push(_17);
                    _16 = GB_SETS[_15].length;
                }
                if (_14 == "gb_pageset") {
                    a.onclick = function() {
                        GB_showFullScreenSet(GB_SETS[_15], _16);
                        return false;
                    };
                }
                if (_14 == "gb_imageset") {
                    a.onclick = function() {
                        GB_showImageSet(GB_SETS[_15], _16);
                        return false;
                    };
                }
                if (_14 == "gb_image") {
                    a.onclick = function() {
                        GB_showImage(_17.caption, _17.url);
                        return false;
                    };
                }
                if (_14 == "gb_page") {
                    a.onclick = function() {
                        var sp = _15.split(/, ?/);
                        GB_show(_17.caption, _17.url, parseInt(sp[1]), parseInt(sp[0]));
                        return false;
                    };
                }
                if (_14 == "gb_page_fs") {
                    a.onclick = function() {
                        GB_showFullScreen(_17.caption, _17.url);
                        return false;
                    };
                }
                if (_14 == "gb_page_center") {
                    a.onclick = function() {
                        var sp = _15.split(/, ?/);
                        GB_showCenter(_17.caption, _17.url, parseInt(sp[1]), parseInt(sp[0]));
                        return false;
                    };
                }
            }
        }
    });
}
AJS.AEV(window, "load", decoGreyboxLinks);
GB_showImage = function(_1a, url, _1c) {
    var _1d = {
        width: 300,
        height: 300,
        type: "image",
        fullscreen: false,
        center_win: true,
        caption: _1a,
        callback_fn: _1c
    };
    var win = new GB_Gallery(_1d);
    return win.show(url);
};
GB_showPage = function(_1f, url, _21) {
    var _22 = {
        type: "page",
        caption: _1f,
        callback_fn: _21,
        fullscreen: true,
        center_win: false
    };
    var win = new GB_Gallery(_22);
    return win.show(url);
};
GB_Gallery = GreyBox.extend({
    init: function(_24) {
        this.parent({});
        this.img_close = this.root_dir + "g_close.gif";
        AJS.update(this, _24);
        this.addCallback(this.callback_fn);
    },
    initHook: function() {
        AJS.addClass(this.g_window, "GB_Gallery");
        var _25 = AJS.DIV({
            "class": "inner"
        });
        this.header = AJS.DIV({
            "class": "GB_header"
        },
        _25);
        AJS.setOpacity(this.header, 0);
        AJS.getBody().insertBefore(this.header, this.overlay.nextSibling);
        var _26 = AJS.TD({
            "id": "GB_caption",
            "class": "caption",
            "width": "40%"
        },
        this.caption);
        var _27 = AJS.TD({
            "id": "GB_middle",
            "class": "middle",
            "width": "20%"
        });
        var _28 = AJS.IMG({
            "src": this.img_close
        });
        AJS.AEV(_28, "click", GB_hide);
        var _29 = AJS.TD({
            "class": "close",
            "width": "40%"
        },
        _28);
        var _2a = AJS.TBODY(AJS.TR(_26, _27, _29));
        var _2b = AJS.TABLE({
            "cellspacing": "0",
            "cellpadding": 0,
            "border": 0
        },
        _2a);
        AJS.ACN(_25, _2b);
        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 _2c = this.overlay.offsetWidth;
        var _2d = AJS.getWindowSize();
        if (this.fullscreen) {
            this.width = _2c - 40;
            this.height = _2d.h - 80;
        }
        AJS.setWidth(this.iframe, this.width);
        AJS.setHeight(this.iframe, this.height);
        AJS.setWidth(this.header, _2c);
    },
    _setHeaderPos: function() {
        AJS.setTop(this.header, AJS.getScrollTop() + 10);
    },
    setWindowPosition: function() {
        var _2e = this.overlay.offsetWidth;
        var _2f = AJS.getWindowSize();
        AJS.setLeft(this.g_window, ((_2e - 50 - this.width) / 2));
        var _30 = AJS.getScrollTop() + 55;
        if (!this.center_win) {
            AJS.setTop(this.g_window, _30);
        } else {
            var fl = ((_2f.h - this.height) / 2) + 20 + AJS.getScrollTop();
            if (fl < 0) {
                fl = 0;
            }
            if (_30 > fl) {
                fl = _30;
            }
            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, _33, _34) {
    var _35 = {
        type: "page",
        fullscreen: true,
        center_win: false
    };
    var _36 = new GB_Sets(_35, set);
    _36.addCallback(_34);
    _36.showSet(_33 - 1);
    return false;
};
GB_showImageSet = function(set, _38, _39) {
    var _3a = {
        type: "image",
        fullscreen: false,
        center_win: true,
        width: 300,
        height: 300
    };
    var _3b = new GB_Sets(_3a, set);
    _3b.addCallback(_39);
    _3b.showSet(_38 - 1);
    return false;
};
GB_Sets = GB_Gallery.extend({
    init: function(_3c, set) {
        this.parent(_3c);
        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(_3e) {
        this.current_index = _3e;
        var _3f = this.current_set[this.current_index];
        this.show(_3f.url);
        this._setCaption(_3f.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(_40) {
        AJS.setHTML(AJS.$("GB_caption"), _40);
    },
    updateFrame: function() {
        var _41 = this.current_set[this.current_index];
        this._setCaption(_41.caption);
        this.url = _41.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(_42, url, _44, _45, _46) {
    var _47 = {
        caption: _42,
        height: _44 || 500,
        width: _45 || 500,
        fullscreen: false,
        callback_fn: _46
    };
    var win = new GB_Window(_47);
    return win.show(url);
};
GB_showCenter = function(_49, url, _4b, _4c, _4d) {
    var _4e = {
        caption: _49,
        center_win: true,
        height: _4b || 500,
        width: _4c || 500,
        fullscreen: false,
        callback_fn: _4d
    };
    var win = new GB_Window(_4e);
    return win.show(url);
};
GB_showFullScreen = function(_50, url, _52) {
    var _53 = {
        caption: _50,
        fullscreen: true,
        callback_fn: _52
    };
    var win = new GB_Window(_53);
    return win.show(url);
};
GB_Window = GreyBox.extend({
    init: function(_55) {
        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, _55);
        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 _56 = AJS.TD({
            "class": "caption"
        },
        this.caption);
        var _57 = AJS.TD({
            "class": "close"
        });
        if (this.show_close_img) {
            var _58 = AJS.IMG({
                "src": this.img_close
            });
            var _59 = AJS.SPAN("");
            var btn = AJS.DIV(_58, _59);
            AJS.AEV([_58, _59], "mouseover",
            function() {
                AJS.addClass(_59, "on");
            });
            AJS.AEV([_58, _59], "mouseout",
            function() {
                AJS.removeClass(_59, "on");
            });
            AJS.AEV([_58, _59], "mousedown",
            function() {
                AJS.addClass(_59, "click");
            });
            AJS.AEV([_58, _59], "mouseup",
            function() {
                AJS.removeClass(_59, "click");
            });
            AJS.AEV([_58, _59], "click", GB_hide);
            AJS.ACN(_57, btn);
        }
        tbody_header = AJS.TBODY();
        AJS.ACN(tbody_header, AJS.TR(_56, _57));
        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 _5b = AJS.getWindowSize();
            overlay_h = _5b.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 _5c = AJS.getWindowSize();
        AJS.setLeft(this.g_window, ((_5c.w - this.width) / 2) - 13);
        if (!this.center_win) {
            AJS.setTop(this.g_window, AJS.getScrollTop());
        } else {
            var fl = ((_5c.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;
