var GB_CURRENT = null;
var header_bg = "header_bg.gif";

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_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;
        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);
script_loaded = true;
