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("Close");
      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;

