var GB_CURRENT = null;
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.gif"; 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(""); 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 + 30); 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.gif");
            script_loaded = true; 
