﻿var GB_CURRENT=null;

GB_hide=function(cb){ GB_CURRENT.hide(cb); };

GreyBox=new AJS.Class({
  init:function(_2){
    this.overlay_click_close=false;
    this.salt=0;
    this.root_dir="greybox/";
    this.callback_fns=[];
    this.reload_on_close=false;
    this.src_loader=this.root_dir+"loader_frame.html";
    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("embed"),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();
      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("embed"),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;
    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("greybox/indicator.gif");

script_loaded=true;

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 _18=rel.match(/\[(.*)\]/)[1];
        a.onclick=function(){
          var sp=_18.split(/, ?/);
          GB_showCenter("",a.href,parseInt(sp[1]),parseInt(sp[0]));
          return false; }; } } }); }

AJS.AEV(window,"load",decoGreyboxLinks);

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_Window=GreyBox.extend({
  init:function(_58){
    this.parent({});
    AJS.update(this,_58);
    this.addCallback(this.callback_fn); },
  initHook:function(){
    AJS.addClass(this.g_window,"GB_Window");
    this.header=AJS.DIV({"class":"close"});
    var sPage = this.url.substr(this.url.length-18, 12);
    var sPage1 = this.url.substr(this.url.length-17, 11);
    if((sPage.toUpperCase() == "ENPOPUP.HTML") || (sPage1.toUpperCase() == "ENPOPUP.PHP")) var _5c=AJS.SPAN("close"); else var _5c=AJS.SPAN("fermer");
    var btn=AJS.DIV(_5c);
    AJS.AEV([_5c],"mousedown",function(){ AJS.addClass(_5c,"click"); });
    AJS.AEV([_5c],"mouseup",function(){ AJS.removeClass(_5c,"click"); });
    AJS.AEV([_5c],"click",GB_hide);
    AJS.ACN(this.header,btn);
    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);
    AJS.setWidth(this.iframe,this.width);
    AJS.setTop(this.header,this.height-20);
    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)+AJS.getScrollTop();
      if(fl<0){ fl=0; }
      AJS.setTop(this.g_window,fl); } } });

script_loaded=true;
