Jax_Browser = {
  initialize: function() {
    this.ODiv = $('jax_imager');
    this.OClose = $('jax_imager_close');
    this.OMax = $('jax_imager_maximize');
    this.OMin = $('jax_imager_minimize');
    this.elIconForward = $('jax_imager_page_next');
    this.elIconBackward = $('jax_imager_page_prev');
    
    if (!this.elIconForward || !this.elIconBackward) {
      console.log('Stopping init ... no icons ...');
      return;
    }
    
    
    this.elIconForward.addEvent('click', this.historyForward.bind(this));
    this.elIconBackward.addEvent('click', this.historyBackward.bind(this));
    
    this.elSelector = $('jax_imager_selector');
    this.elContent = $('jax_imager_content');
    this.ElemImage = $('jax_imager_img');
    this.ElemPSelector = $('jax_imager_pselector');
    
    this.Scaleroptions = 'w620.h350.fill';
    this.OClose.addEvent('click', this.hideDo.bind(this));
    
    this.OMax.addEvent('click', this.windowMaximize.bind(this));
    this.OMax.style.cursor = 'pointer';
    
    this.OMin.addEvent('click', this.windowMinimize.bind(this));
    this.OMin.style.cursor = 'pointer';
    
    this.ElemImage.style.cursor = 'pointer';
    this.ElemImage.addEvent('click', this.makeFullScreenView.bind(this));
  }
  
  
  /**
   * Erstellt ein 'Fenster' in dem ein Bild in hoher Auflösung gezeigt wird
   */
  ,
  makeFullScreenView: function() {
    var Inner = Util.innerDimension();
    var ScrollSave = 40;
    var DivX = Inner.x - ScrollSave;
    var DivY = Inner.y - ScrollSave;
    
    var Src = this.ElemImage.src;
    Src = Util.stripScalerOptions(Src);
    Src = Util.setScalerOptions(Src, 'w' + DivX + '.h' + DivY + '.fill');
    
    var Div = document.createElement('div');
    Div.style.width = DivX + 'px';
    Div.style.height = DivY + 'px';
    Div.style.visibility = 'hidden';
    document.getElementsByTagName('body')[0].appendChild(Div);
    Util.centerOnScreen(Div);
    Div.style.zIndex = 1200;
    Div.style.border = '1px solid gray';
    Div.style.backgroundColor = 'white';
    Div.style.backgroundPosition = 'center center';
    Div.style.backgroundRepeat = 'no-repeat';
    Div.style.backgroundImage = 'url(' + Src + ')';
    
    Div.onclick = function() {
      this.parentNode.removeChild(this);
    };
    Div.style.cursor = 'pointer';
    
    var Closer = new Image();
    Closer.src = '/media/Image/Icons/silk/cross.gif';
    Closer.style.position = 'absolute';
    Closer.style.right = '20px';
    Closer.style.top = '20px';
    Closer.onclick = function() {
      this.parentNode.click();
    }
    
    Div.appendChild(Closer);
    
    Div.style.visibility = 'visible';
  },
  BrowserHistory: [],
  BrowserHistoryForward: [],
  elIconForward: null,
  elIconBackward: null  /**
   * Zeigt die nächste Seite in der Hinstory
   */
  ,
  historyForward: function(e) {
    var Item = this.BrowserHistoryForward.shift();
    this.BrowserHistory.push(Item);
    
    this.browse_Start(this.BrowserHistory[this.BrowserHistory.length - 1], true);
  }  /**
   * Zeigt die vorangegangene Seite in der Hinstory
   */
  ,
  historyBackward: function(e) {
    var Item = this.BrowserHistory.pop();
    this.BrowserHistoryForward.unshift(Item);
    
    this.browse_Start(this.BrowserHistory[this.BrowserHistory.length - 1], true);
  },
  imageInfos: function(e) {
    var Picture = this.JaxImager.getActualPic();
    var Descript = '';
    Descript = Picture.Tags.join('<br />');
    overlib(e, Descript, {
      Snap: 'rud'
    }, this.MenuItemHelp);
  }  /**
   * Erstellt das linke Navigationsmenü
   */
  ,
  buildMenu: function() {
    var BindEvents = true;
    
    this.Menu = $('jax_imager_menu');
    this.Menu.empty();
    this.Menu.className = 'xp_menu_static';
    BindEvents = false;
    
    var File_Head = document.createElement('li');
    var File_Head_H3 = document.createElement('h3');
    File_Head.appendChild(File_Head_H3);
    File_Head.className = 'head';
    File_Head_H3.innerHTML = MTJax.Lang.get('.jaxbrowser.nav.file.head');
    
    var Examples_Head = document.createElement('li');
    var Examples_Head_H3 = document.createElement('h3');
    Examples_Head.appendChild(Examples_Head_H3);
    Examples_Head.className = 'head';
    Examples_Head_H3.innerHTML = MTJax.Lang.get('.jaxbrowser.nav.more.pics.head');
    
    var Infos_Head = document.createElement('li');
    var Infos_Head_H3 = document.createElement('h3');
    Infos_Head.appendChild(Infos_Head_H3);
    Infos_Head.className = 'head';
    Infos_Head_H3.innerHTML = MTJax.Lang.get('.jaxbrowser.nav.more.info.head');
    
    var Spacer = document.createElement('li');
    Spacer.className = 'head';
    Spacer.innerHTML = '&nbsp;';
    
    var Spacer2 = document.createElement('li');
    Spacer2.className = 'head';
    Spacer2.innerHTML = '&nbsp;';
    
    var SaveL = document.createElement('li');
    var SaveXXL = document.createElement('li');
    var Divide = document.createElement('li');
    var Print = document.createElement('li');
    this.MenuItemHelp = document.createElement('li');
    this.MenuItemHolz = document.createElement('li');
    this.MenuItemModell = document.createElement('li');
    this.MenuItemHolzInfo = document.createElement('li');
    this.MenuItemModellInfo = document.createElement('li');
    
    Divide.style.innerHTML = '&nbsp;';
    Divide.style.border = 'solid gray';
    Divide.style.borderWidth = '0 0 1px 0';
    Divide.style.lineHeight = '1px';
    Divide.style.fontSize = '1px';
    
    SaveL.appendChild(document.createElement('a'));
    if (true == BindEvents) {
      SaveL.childNodes[0].onmouseover = this.hideReset.bind(this);
      SaveL.childNodes[0].onmouseout = this.hide.bind(this);
    }
    SaveL.childNodes[0].href = this.LatestIdent.src.replace(/\/Generate\//, '/Save/');
    SaveL.childNodes[0].className = 'save';
    SaveL.childNodes[0].innerHTML = MTJax.Lang.get('.jaxbrowser.nav.file.save');
    
    SaveXXL.appendChild(document.createElement('a'));
    if (true == BindEvents) {
      SaveXXL.childNodes[0].onmouseover = this.hideReset.bind(this);
      SaveXXL.childNodes[0].onmouseout = this.hide.bind(this);
    }
    SaveXXL.childNodes[0].href = this.LatestIdent.src.replace(/\/Generate\//, '/SaveXXL/');
    SaveXXL.childNodes[0].className = 'save';
    SaveXXL.childNodes[0].innerHTML = MTJax.Lang.get('.jaxbrowser.nav.file.save.xxl');
    
    Print.appendChild(document.createElement('a'));
    if (true == BindEvents) {
      Print.childNodes[0].onmouseover = this.hideReset.bind(this);
      Print.childNodes[0].onmouseout = this.hide.bind(this);
    }
    Print.childNodes[0].href = this.LatestIdent.src.replace(/\/Generate\//, '/Print/');
    Print.childNodes[0].className = 'print';
    Print.childNodes[0].target = '_blank';
    Print.childNodes[0].innerHTML = MTJax.Lang.get('.jaxbrowser.nav.file.print');
    
    this.MenuItemHelp.appendChild(document.createElement('a'));
    if (true == BindEvents) {
      this.MenuItemHelp.childNodes[0].onmouseover = this.hideReset.bind(this);
      this.MenuItemHelp.childNodes[0].onmouseout = this.hide.bind(this);
    }
    this.MenuItemHelp.childNodes[0].href = this.LatestIdent.src.replace(/\/Generate\//, '/Print/');
    this.MenuItemHelp.childNodes[0].className = 'help';
    this.MenuItemHelp.childNodes[0].target = '_blank';
    this.MenuItemHelp.childNodes[0].innerHTML = MTJax.Lang.get('.jaxbrowser.nav.file.info');
    this.MenuItemHelp.childNodes[0].onmouseover = this.imageInfos.bind(this);
    this.MenuItemHelp.childNodes[0].onclick = function() {
      return false;
    };
    
    
    
    this.MenuItemHolz.appendChild(document.createElement('a'));
    this.MenuItemHolz.style.display = 'none';
    this.MenuItemHolz.childNodes[0].className = 'wood';
    this.MenuItemHolz.childNodes[0].TplURL = '/galerie.db/Search,' + encodeURI('holzoberfläche %2Babc');
    this.MenuItemHolz.childNodes[0].TplText = MTJax.Lang.get('.jaxbrowser.nav.more.pics.zu.holz') + ' abc';
    
    this.MenuItemModell.appendChild(document.createElement('a'));
    this.MenuItemModell.style.display = 'none';
    this.MenuItemModell.childNodes[0].className = 'modell';
    this.MenuItemModell.childNodes[0].TplURL = '/galerie.db/Search,abc';
    this.MenuItemModell.childNodes[0].TplText = MTJax.Lang.get('.jaxbrowser.nav.more.pics.zu.modell') + ' abc';
    
    
    this.MenuItemHolzInfo.appendChild(document.createElement('a'));
    this.MenuItemHolzInfo.style.display = 'none';
    this.MenuItemHolzInfo.childNodes[0].className = 'wood';
    this.MenuItemHolzInfo.childNodes[0].TplURL = '/holzinfo/Holz,abc';
    this.MenuItemHolzInfo.childNodes[0].TplText = MTJax.Lang.get('.jaxbrowser.nav.more.info.zu.holz') + ' abc';
    
    this.MenuItemModellInfo.appendChild(document.createElement('a'));
    this.MenuItemModellInfo.style.display = 'none';
    this.MenuItemModellInfo.childNodes[0].className = 'modell';
    this.MenuItemModellInfo.childNodes[0].TplURL = '/modellinfo/Modell,abc';
    this.MenuItemModellInfo.childNodes[0].TplText = MTJax.Lang.get('.jaxbrowser.nav.more.info.zu.modell') + ' abc';
    
    
    this.MenuItemSave = SaveL;
    this.MenuItemSaveXXL = SaveXXL;
    this.MenuItemPrint = Print;
    
    this.Menu.appendChild(File_Head);
    this.Menu.appendChild(SaveL);
    this.Menu.appendChild(SaveXXL);
    this.Menu.appendChild(Divide);
    this.Menu.appendChild(Print);
    this.Menu.appendChild(this.MenuItemHelp);
    
    this.Menu.appendChild(Spacer);
    
    this.Menu.appendChild(Examples_Head);
    this.Menu.appendChild(this.MenuItemHolz);
    this.Menu.appendChild(this.MenuItemModell);
    
    this.Menu.appendChild(Spacer2);
    
    this.Menu.appendChild(Infos_Head_H3);
    this.Menu.appendChild(this.MenuItemHolzInfo);
    this.Menu.appendChild(this.MenuItemModellInfo);
  },
  ThumbView_PerPage: 12,
  ThumbView_OnPage: 1,
  ThumbView_PageDown: function() {
    this.ThumbView_OnPage--;
    this.ThumbView_fill();
  },
  ThumbView_PageUp: function() {
    this.ThumbView_OnPage++;
    this.ThumbView_fill();
  },
  switchView_Thumbnails: function() {
    this.ThumbView_fill();
    
    this.elContent.style.display = 'block';
    this.ElemImage.style.display = 'none';
    this.elSelector.style.display = 'none';
    this.ElemPSelector.style.display = 'block';
  },
  ThumbView_fill: function() {
    var Pages = Math.ceil(this.JaxImager.Pics.length / this.ThumbView_PerPage);
    
    var PPrev = $('jax_imager_pprev');
    var PNext = $('jax_imager_pnext');
    
    
    PPrev.style.display = 'none';
    if (Pages > 1 && this.ThumbView_OnPage > 1) 
      PPrev.style.display = 'inline';
    
    
    PNext.style.display = 'none';
    if (Pages > 1 && this.ThumbView_OnPage < Pages) 
      PNext.style.display = 'inline';
    
    PPrev.Imager = this;
    PPrev.onclick = function() {
      this.Imager.ThumbView_PageDown();
    };
    
    PNext.Imager = this;
    PNext.onclick = function() {
      this.Imager.ThumbView_PageUp();
    };
    
    while ((Child = this.elContent.childNodes[0])) 
      this.elContent.removeChild(Child);
    
    var SliceStart = this.ThumbView_PerPage * this.ThumbView_OnPage - this.ThumbView_PerPage;
    var SliceEnd = SliceStart + this.ThumbView_PerPage;
    
    var Pics = this.JaxImager.Pics.slice(SliceStart, SliceEnd);
    
    for (var i = 0; (Pic = Pics[i]); i++) {
      Container = document.createElement('div');
      Container.style.width = '140px';
      Container.style.height = '110px';
      Container.style.cssFloat = 'left';
      Container.style.styleFloat = 'left';
      Container.style.margin = '5px';
      
      Strings = document.createElement('span');
      Strings.innerHTML = '<br />' + Pic.InfoOne + '<br />' + Pic.InfoTwo;
      Strings.style.fontSize = '0.8em';
      
      Img = new Image();
      Img.style.width = '140px';
      Img.style.height = '80px';
      Img.style.backgroundImage = 'url(/media/Image/Icons/Ajax/indicator.gif)';
      Img.style.backgroundPosition = 'center center';
      Img.style.backgroundRepeat = 'no-repeat';
      Img.style.border = '1px solid gray';
      Img.src = Util.setScalerOptions(Pic.Url, 'w140.h80.fill');
      Img.Imager = this;
      Img.onclick = function() {
        this.Imager.switchView_Image(this.src);
      };
      
      Container.appendChild(Img);
      Container.appendChild(Strings);
      this.elContent.appendChild(Container);
    }
  },
  switchView_Image: function(Url) {
  
    if (!arguments[0]) {
      this.JaxImager.setDirectly(Jax_BrowserUtil.LastImageTrigger.src);
    }
    else 
      this.JaxImager.setDirectly(Url);
    
    this.elContent.style.display = 'none';
    this.ElemImage.style.display = 'block';
    this.elSelector.style.display = 'block';
    this.ElemPSelector.style.display = 'none';
    
    this.show();
  },
  windowMaximize: function() {
    if (true == this.IsMaximized) 
      return false;
    
    this.IsMaximized = true;
    
    this.OMax.style.display = 'none';
    this.OMin.style.display = '';
    
    this.MinimizeHeight = this.ODiv.offsetHeight;
    
    var Screen = Util.innerDimension();
    this.ODiv.style.height = (Screen.y - 100) + 'px';
    Util.centerOnScreen(this.ODiv);
    this.alignContentHeight();
  },
  windowMinimize: function() {
    if (false == this.IsMaximized) 
      return false;
    
    this.IsMaximized = false;
    
    this.OMax.style.display = 'none';
    this.OMin.style.display = 'none';
    
    this.ODiv.style.height = this.MinimizeHeight + 'px';
    Util.centerOnScreen(this.ODiv);
    this.alignContentHeight();
  },
  IsMaximized: false,
  MinimizeHeight: 0,
  windowResize: function() {
    Util.centerOnScreen(this.ODiv);
    this.alignContentHeight();
  }  /**
   * Bereitet ein Element vor, eine Browserseite aufzurufen
   * @param Trigger Element
   */
  ,
  prepareTrigger: function(Trigger) {
    Trigger.JB = this;
    Trigger.BrowseStyle = 'browse';
    
    Trigger.onclick = function(event) {
      event = new Event(event);
      var Err;
      
      try {
        if (this.href) {
          this.JB.prepare(this.BrowseStyle, this.href);
        }
        else {
          this.JB.prepare(this.BrowseStyle, Jax_BrowserUtil.Register[this.id]);
        }
        
        event.stopPropagation();
        
        return false;
      } 
      catch (e) {
        Err = e;
      }
      
      if (Err) 
        console.log(Err);
      
      return false;
    }
.bindWithEvent(Trigger)
  },
  prepareImageTrigger: function(Trigger) {
    Trigger.JB = this;
    Trigger.BrowseStyle = 'image-detail';
    
    Trigger.addEvent('click', function() {
      var Err;
      
      try {
        this.JB.prepare(this.BrowseStyle, this);
        return false;
      } 
      catch (e) {
        Err = e;
      }
      
      if (Err) 
        console.log(Err);
      
      return false;
    });
  },
  InstanceNum: 0,
  Trigger: null,
  Snap: null,
  SnapStyle: 'lb',
  Scaleroptions: null,
  ODiv: null,
  OClose: null,
  BigImage: null,
  Options: {},
  Offset: 10,
  TOMenu: null,
  TOHide: null,
  Menu: null,
  ShowClose: false,
  OLStyle: 'hover',
  recreateMenu: function(Nfo) {
    this.buildMenu();
    var JB = Jax_BrowserUtil.getInstance();
    
    
    this.MenuItemHolz.style.display = 'none';
    this.MenuItemModell.style.display = 'none';
    
    Probe = /hid_([^,]*)/i.exec(Nfo.HTagsImp);
    if (Probe) {
      var HolzDisplay = Probe[1];
      var HolzIdent = Probe[1];
      
      Probe = /\bholz: ([^,]*)/i.exec(Nfo.TagsImp);
      if (Probe) {
        HolzDisplay = Probe[1];
      }
      HolzDisplay = MTJax.Lang.get('.timber.' + HolzDisplay.toLowerCase() + '.display');
      
      var Temp = 'url(' + Util.setScalerOptions('/media/Image/Holzfarben/' + Util.ucFirst(HolzIdent) + '_01.jpg', 'w16.h16.croph') + ')';
      
      this.MenuItemHolz.childNodes[0].href = this.MenuItemHolz.childNodes[0].TplURL.replace(/abc*$/, '"hid_' + HolzIdent + '"');
      this.MenuItemHolz.childNodes[0].innerHTML = this.MenuItemHolz.childNodes[0].TplText.replace(/abc*$/, HolzDisplay);
      this.MenuItemHolz.childNodes[0].style.backgroundImage = Temp;
      
      this.MenuItemHolz.childNodes[0].HolzIdent = 'hid_' + HolzIdent;
      this.MenuItemHolz.childNodes[0].Imager = this;
      this.MenuItemHolz.childNodes[0].onclick = function() {
        try {
          this.Imager.JaxImager = new MTJax.Imager(this.HolzIdent, this.Imager, true);
        } 
        catch (e) {
        
        }
        
        return false;
      };
      this.MenuItemHolz.style.display = 'inline';
      
      
      this.MenuItemHolzInfo.childNodes[0].href = this.MenuItemHolzInfo.childNodes[0].TplURL.replace(/abc*$/, HolzIdent);
      this.MenuItemHolzInfo.childNodes[0].innerHTML = this.MenuItemHolzInfo.childNodes[0].TplText.replace(/abc*$/, HolzDisplay);
      this.MenuItemHolzInfo.childNodes[0].style.backgroundImage = Temp;
      this.MenuItemHolzInfo.style.display = 'inline';
      JB.prepareTrigger(this.MenuItemHolzInfo.childNodes[0]);
    }
    
    
    Probe = /modell: ([^,]*)/i.exec(Nfo.TagsImp);
    if (Probe) {
      this.MenuItemModell.childNodes[0].href = this.MenuItemModell.childNodes[0].TplURL.replace(/abc*$/, Probe[1]);
      this.MenuItemModell.childNodes[0].innerHTML = this.MenuItemModell.childNodes[0].TplText.replace(/abc*$/, Probe[1]);
      //            this.MenuItemModell.childNodes[0].style.backgroundImage = '/media/Image/Icons/table.jpg';
      this.MenuItemModell.style.display = 'inline';
      
      this.MenuItemModell.childNodes[0].Modell = Probe[1];
      this.MenuItemModell.childNodes[0].Imager = this;
      this.MenuItemModell.childNodes[0].onclick = function() {
        try {
          this.Imager.JaxImager = new MTJax.Imager(this.Modell, this.Imager, true);
        } 
        catch (e) {
        
        }
        
        return false;
      };
      
      this.MenuItemModellInfo.childNodes[0].href = this.MenuItemModellInfo.childNodes[0].TplURL.replace(/abc*$/, Probe[1]);
      this.MenuItemModellInfo.childNodes[0].innerHTML = this.MenuItemModellInfo.childNodes[0].TplText.replace(/abc*$/, Probe[1]);
      //            this.MenuItemModellInfo.childNodes[0].style.backgroundImage = '/media/Image/Icons/table.jpg';
      this.MenuItemModellInfo.style.display = 'inline';
      JB.prepareTrigger(this.MenuItemModellInfo.childNodes[0]);
    }
  },
  browse_GetContent: function(Ident) {
    this.BrowserHistory.push(new Jax_BrowserHistory('/plugin/de.masstisch.ajax/Engine/get.php', 'Engine=' + encodeURIComponent(Ident)));
    
    this.browse_Start(this.BrowserHistory[this.BrowserHistory.length - 1]);
  },
  browse_Start: function(Item, FromHistory) {
    
    this.haveRequest = true;
    if (!arguments[1]) {
      FromHistory = false;
    }
    
    
    if (false == FromHistory) {
      this.BrowserHistoryForward = [];
    }
    
    
    new Request({
      url: Item.Ident,
      data: Item.Params,
      onComplete: this.browse_ReceiveContent.bind(this)
    }).send();
  },
  browse_GetContent_Free: function(Ident, Params) {
    this.BrowserHistory.push(new Jax_BrowserHistory(Ident, Params));
    this.browse_Start(this.BrowserHistory[this.BrowserHistory.length - 1]);
  },
  browse_BuildMenu: function(Items) {
    var BindEvents = true;
    var JB = Jax_BrowserUtil.getInstance();
    
    this.Menu = new Element('div', {style: 'font-size: 12px;'});//$('jax_imager_menu');
    while ((Child = this.Menu.childNodes[0])) 
      this.Menu.removeChild(Child);
    
    this.Menu.className = 'xp_menu_static';
    
    //        var SavePDF   = document.createElement('li');
    //        SavePDF.appendChild(document.createElement('a'))
    //        SavePDF.childNodes[0].href        = '/media/File/PDF/Engine/' + encodeURIComponent(this.LatestIdent)
    //        SavePDF.childNodes[0].className   = 'mine pdf';
    //        SavePDF.childNodes[0].innerHTML   = 'als PDF';
    //        this.Menu.appendChild(SavePDF);
    
    var count = 0;
    for (ItemName in Items) {
      count++
      var Item = Items[ItemName];
      
      if (Item.JustHead) {
        var Tmp = document.createElement('li');
        Tmp.appendChild(document.createElement('h3'));
        Tmp.childNodes[0].className = 'head';
        Tmp.childNodes[0].innerHTML = Item.Title;
        this.Menu.appendChild(Tmp);
      }
      else {
        if (!Item.URL && !Item.onclick) 
          continue;
        
        var Tmp = document.createElement('div');
        Tmp.appendChild(document.createElement('a'));
        if (!Item.URL) 
          Item.URL = 'javascript:void(0);';
        
        Tmp.childNodes[0].href = Item.URL;
        Tmp.childNodes[0].className = Item.ClassName + ' helplink';
        Tmp.childNodes[0].innerHTML = Item.Title;
        
        if (Item.onclick) {
          //                    alert(Item.onclick);
          eval('Tmp.childNodes[0].onclick   = ' + Item.onclick);
        }
        else 
        {
          MT_Lightshow.initEl(Tmp.childNodes[0]);
        }
        
        
        this.Menu.appendChild(Tmp);
        
        Tmp.childNodes[0].setStyles({
           fontWeight: 'normal'
          ,background: 'none'
          ,padding: 0
        });
        
        if (ItemName == this.LatestIdent)
        { 
          Tmp.childNodes[0].setStyle('font-weight', 'bold');
        }
      }
    }
    
    return;
    
    if (0 == count) {
      this.Menu.setStyles({
        display: 'none'
      });
      this.elContent.setStyles({
        'float': 'none',
        width: 'auto'
      });
    }
    else {
      this.Menu.setStyles({
        'float': 'left',
        width: 120,
        display: 'block'
      });
      this.elContent.setStyles({
        'float': 'left',
        width: 650
      });
    }
    
  },
  paint_Icons: function() {
    this.elIconBackward.style.display = 'none';
    this.elIconForward.style.display = 'none';
    
    this.alignContentHeight();
    
    if (this.BrowserHistory.length > 1) 
      this.elIconBackward.style.display = 'block';
    
    if (this.BrowserHistoryForward.length > 0) 
      this.elIconForward.style.display = 'block';
  },
  
  
  browse_ReceiveLayerFill: function()
  {
    this.haveLayer = true;
    this.browse_createContent();
  },
  
  actResponse: null,
  haveResponse: false,
  haveLayer: false,
  haveRequest: false,
  
  browse_ReceiveContent: function(Response) {
    this.actResponse = Response;
    this.haveResponse = true;
    this.browse_createContent();
  },
  
  browse_createContent: function()
  {
    if (!this.haveRequest)
    {
      this.haveLayer = false;
      this.haveResponse = false;
    }
    
    if (!this.haveLayer || !this.haveResponse)
    {
      return;
    }
    
    
    this.haveLayer = false;
    this.haveResponse = false;
    this.haveRequest = false;
    
    var Err;
    
    //try {
      eval('Response = ' + this.actResponse);
      
      if (Response.Head)
      {
        MT_Lightshow.theLayer.setTitle(Response.Head);
      }
      this.browse_BuildMenu(Response.Menu);
      
      var fullContent = new Element('div', {style: 'padding-bottom: 20px;'});
      
      if (0 < this.Menu.childNodes.length)
      {
        fullContent.appendChild(new Element('div', {style: 'float: left; width: 166px; font-size: 12px;'}).adopt(this.Menu));
        fullContent.appendChild(new Element('div', {style: 'border-left: 2px solid #eeeeee; padding-left: 10px; float: left; width: 600px; font-size: 12px;', html: Response.Engine}));
      }
      else
      {
        fullContent.appendChild(new Element('div', {style: 'font-size: 12px;', html: Response.Engine}));
      }
      
      fullContent.appendChild(new Element('div', {'class': 'cl'}));
      
      MT_Lightshow.theLayer.setContent(fullContent, 'auto');
      
      document.getElements('#' + this.elContent.id + ' a').each(function(Elem) {
        if (!Elem.onclick && 'javascript:void(0);' != Elem.href && Elem.getAttribute('target') != '_blank') {
          var JB = Jax_BrowserUtil.getInstance();
          JB.prepareTrigger(Elem);
        }
      });
      
      Behaviour.apply();
      
      this.show();
  },
  prepare: function(Style, Ident, Params) {
    console.dir(Style, Ident, Params);
    this.elSelector.style.display = 'none';
    this.elContent.style.display = 'none';
    this.ElemImage.style.display = 'none';
    
    this.LatestIdent = Ident.split(/\//).pop();
    
    switch (Style) {
      case 'browse':
        this.browse_GetContent(this.LatestIdent);
        break;
        
      case 'browse-free':
        this.browse_GetContent_Free(Ident, Params);
        break;
        
      case 'image-detail':
        Jax_BrowserUtil.LastImageTrigger = Ident;
        var PID = /pid_(\d+)\b/.exec(Ident.className);
        if (PID) {
          this.JaxImager = new MTJax.Imager('pid_' + PID[1], this);
        }
        else {
          var AID = /aid_(\d+)\b/.exec(Ident.className);
          if (AID) {
            this.JaxImager = new MTJax.Imager('aid_' + AID[1], this);
          }
          else {
            var refId = /reference_(\d+)\b/.exec(Ident.className);
            if (refId) {
              this.JaxImager = new MTJax.Imager('reference_' + refId[1], this);
            }
          }
        }
        this.buildMenu();
        
        break;
    }
  }  /**
   *
   */
  ,
  alignContentHeight: function() {
    this.elContent.style.height = 'auto';
    
    if (this.elContent.offsetHeight > this.ODiv.offsetHeight - 80) {
      this.elContent.style.height = Math.max((this.ODiv.offsetHeight - 100), 0) + 'px';
      if (false == this.IsMaximized) {
        this.OMax.style.display = '';
      }
    }
    else {
      this.elContent.style.height = 'auto';
    }
    
    this.ODiv.style.width = '800px';
    var Screen = Util.innerDimension();
    if (this.ODiv.offsetWidth > Screen.x - 20) {
      this.ODiv.style.width = (Screen.x - 60) + 'px';
      this.ODiv.style.overflow = 'hidden';
    }
    
    this.elContent.style.overflow = 'auto';
  },
  show: function() {
    var Err;
    
    try {
      this.ElemPSelector.style.display = 'none';
      this.OMax.style.display = 'none';
      this.OMin.style.display = 'none';
      if (true == this.IsMaximized) {
        this.OMin.style.display = '';
      }
      
      this.ODiv.style.visibility = 'hidden';
      this.ODiv.style.display = 'block';
      
      this.paint_Icons();
      
      this.ODiv.style.visibility = 'visible';
      this.ODiv.className = 'image';
    } 
    catch (e) {
      Err = e;
    }
    
    if (Err) {
      console.log(Err);
    }
    
    return false;
  }  /**
   * Iniziiert das Schlißeen des Browsers
   * Im Standard, wird der Browser nach 500ms geschlossen
   */
  ,
  hide: function() {
    this.hideReset();
    
    if (false == this.ShowClose) {
      if (this.TOMenu) {
        window.clearTimeout(this.TOMenu);
      }
      
      this.TOHide = window.setTimeout(this.hideDo.bind(this), 500);
    }
  },
  hideReset: function() {
    //        $('ol_debug').innerHTML += 'resetting :: ' + this.InstanceNum + '<br />';
    if (this.TOHide) {
      window.clearTimeout(this.TOHide);
    }
    this.TOMenu = window.setTimeout(this.showMenu.bind(this), 300);
  }  /**
   * Blendet Wrapper und Browser aus
   */
  ,
  hideDo: function() {
    MTJax.Overlay.hideWrapper();
    this.ODiv.style.display = 'none';
  }
};
Jax_Browser = new Class(Jax_Browser);


Jax_BrowserUtil = {
  /**
   * @type {JaxBrowser}
   */
  Instance: null,
  Register: [],
  LastImageTrigger: null  /**
   * @return Der Jax_Browser}
   * @type {JaxBrowser}
   */
  ,
  getInstance: function() {
    if (!Jax_BrowserUtil.Instance) {
      Jax_BrowserUtil.Instance = new Jax_Browser();
    }
    
    return Jax_BrowserUtil.Instance;
  }  /**
   * Ruft eine Engine im JaxBrowser auf
   * @param {String} Page Name der Engine
   */
  ,
  browsePage: function(Page) {
    var JB = Jax_BrowserUtil.getInstance();
    JB.prepare('browse', Page);
  }
};

Jax_BrowserHistory = new Class();
Jax_BrowserHistory.prototype = {
  initialize: function(Ident, Params) {
    this.Ident = Ident;
    this.Params = Params;
  },
  Ident: '',
  Params: ''
};



window.addEvent('layerFilled', function(){
  JB = Jax_BrowserUtil.getInstance();
  JB.browse_ReceiveLayerFill();
});


window.addEvent('domready', function() {
  document.getElements('.imager').each(function(el) {
    JB = Jax_BrowserUtil.getInstance();
    JB.prepareImageTrigger(el);
  });
  JB = Jax_BrowserUtil.getInstance();
  
  document.getElements('.h-elplink').each(function(el) {
    if (el.preppedHelplink) 
      return;
    el.preppedHelplink = true;
    if (!el.href && !el.src) 
      return;
    
    el.set('rel', 'lightshow;_blank');
    return;
    var JB = Jax_BrowserUtil.getInstance();
    JB.prepareTrigger(el);
  });
});

