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 {
      if (this.opacityValue == null)
        this.opacityValue = 0.7;

      AJS.setOpacity(this.overlay,this.opacityValue);
      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({ "class": "header" }); 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(_2c, _2a, _29)); 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.header,  this.width);
             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);
            };
/*
Modified 10/21/2010 by Derek Vadneau
Includes windowOpacity parameter.
The default is what the original value was (0.7).
*/
         GB_showCenter = function(caption, url, height, width, callback, windowOpacity) {
            var opts = {
               caption : caption, center_win : true, height : height || 500, width : width || 500, fullscreen : false, callback_fn : callback};
            var win = new GB_Window(opts);
// Added line
			win.opacityValue=((windowOpacity == null)?(0.7):(windowOpacity));
            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.img_close = this.root_dir + "w_close.png";
               this.show_close_img = true;

               AJS.update(this, _58);
               this.addCallback(this.callback_fn);
            },

            initHook : function() {
              AJS.addClass(this.g_window, "GB_Window");
              //this.top_cnt.style.position = 'relative';

              var divLeft = AJS.DIV();
              divLeft.style.backgroundImage = "url(" + this.root_dir + "header_leftcorner.gif" + ")";
              AJS.addClass(divLeft, "top_left");

              var divRight = AJS.DIV();
              divRight.style.backgroundImage = "url(" + this.root_dir + "header_rightcorner.gif" + ")";
              AJS.addClass(divRight, "top_right");

              //var divMid = AJS.DIV(AJS.H2(this.caption));
              //AJS.addClass(divMid, "top_content");

              this.header = AJS.DIV(divLeft, this.caption, divRight);
              //this.header = AJS.DIV(divMid);
              //AJS.ACN(this.top_cnt, divLeft);
              //AJS.ACN(this.top_cnt, divMid);
              //AJS.ACN(this.top_cnt, divRight);

              if(this.show_close_img){
                var divClose = AJS.DIV(AJS.IMG( { "src" : this.img_close} ));
                AJS.addClass(divClose, "close");

                AJS.AEV([divClose], "click", GB_hide);

                AJS.ACN(this.header, divClose);
              }

              AJS.ACN(this.top_cnt, this.header);

              /*
              this.header = AJS.TABLE( {"class" : "header"} );
              this.header.style.backgroundImage = "url(" + this.img_header + ")";

              var tdCaption = AJS.TD( { "class" : "caption"} , this.caption);
              var tdClose = AJS.TD( { "class" : "close"} );

              if(this.show_close_img) {
                  var imgClose = AJS.IMG( { "src" : this.img_close} );
                  var spn = AJS.SPAN("");
                  var btnClose = AJS.DIV(imgClose, spn);

                  // what are the first 4 of these events used for?
                  AJS.AEV([imgClose, spn], "mouseover", function() { AJS.addClass(spn, "on"); } );
                  AJS.AEV([imgClose, spn], "mouseout", function() { AJS.removeClass(spn, "on"); } );
                  AJS.AEV([imgClose, spn], "mousedown", function() { AJS.addClass(spn, "click"); } );
                  AJS.AEV([imgClose, spn], "mouseup", function() { AJS.removeClass(spn, "click"); } );
                  AJS.AEV([imgClose, spn], "click", GB_hide);

                  AJS.ACN(tdClose, btnClose);
              }

              tbody_header = AJS.TBODY();
              AJS.ACN(tbody_header, AJS.TR(tdCaption, tdClose));
              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.g_window, 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;
