//  Lightview 2.5.2.1 - 01-01-2010
//  Copyright (c) 2008-2010 Nick Stakenburg (http://www.nickstakenburg.com)
//
//  Licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License
//  http://creativecommons.org/licenses/by-nc-nd/3.0/

//  More information on this project:
//  http://www.nickstakenburg.com/projects/lightview/

if(isLuxe(window.location.hostname)) {
    var setbg_onThisSite = '#313131'
} else {
    var setbg_onThisSite = '#ffffff'
}

var Lightview = {
  Version: '2.5.2.1',

  // Configuration
  options: {
    backgroundColor: setbg_onThisSite,                            // Background color of the view
    border: 12,                                            // Size of the border
    buttons: {
      opacity: {                                           // Opacity of inner buttons
        disabled: 0.4,
        normal: 0.75,
        hover: 1
      },
      side: { display: true },                             // Toggle side buttons
      innerPreviousNext: { display: true },                // Toggle the inner previous and next button
      slideshow: { display: true },                        // Toggle slideshow button
      topclose: { side: 'right' }                          // 'right' or 'left'                    
    },
    controller: {                                          // The controller is used on sets
      backgroundColor: '#4d4d4d',
      border: 6,
      buttons: {
        innerPreviousNext: true,
        side: false
      },
      margin: 18,
      opacity: 0.7,
      radius: 6,
      setNumberTemplate: '#{position} of #{total}'
    },
    cyclic: false,                                         // Makes galleries cyclic, no end/begin
    images: '../images/lightview/',                        // The directory of the images, from this file
    imgNumberTemplate: 'Изображение #{position} из #{total}',    // Want a different language? change it here
    keyboard: true,                                        // Toggle keyboard buttons
    menubarPadding: 6,                                     // Space between menubar and content in px
    overlay: {                                             // Overlay
      background: '#000',                                  // Background color, Mac Firefox & Mac Safari use overlay.png
      close: true,
      opacity: 0.4, //0.85,
      display: true
    },
    preloadHover: true,                                   // Preload images on mouseover
    radius: 12,                                            // Corner radius of the border
    removeTitles: true,                                    // Set to false if you want to keep title attributes intact
    resizeDuration: 0.75, //0.45,                                  // The duration of the resize effect in seconds
    slideshowDelay: 5,                                     // Delay in seconds before showing the next slide
    titleSplit: '::',                                      // The characters you want to split title with
    transition: function(pos) {                            // Or your own transition
      return ((pos/=0.5) < 1 ? 0.5 * Math.pow(pos, 4) :
        -0.5 * ((pos-=2) * Math.pow(pos,3) - 2));
    },
    viewport: true,                                        // Stay within the viewport, true is recommended
    zIndex: 5000,                                          // zIndex of #lightview, #overlay is this -1

    startDimensions: {                                     // Dimensions Lightview starts at
      width: 100,
      height: 100
    },
    closeDimensions: {                                     // Modify if you've changed the close button images
      large: { width: 77, height: 22 },
      small: { width: 25, height: 22 },
      topclose: { width: 22, height: 18 }
    },
    sideDimensions: {                                      // Modify if you've changed the side button images
      width: 16,
      height: 22
    },

    defaultOptions: {                                      // Default options for each type of view
      image: {
        menubar: 'bottom',
        closeButton: 'large'
      },
      gallery: {
        menubar: 'bottom',
        closeButton: 'large'
      },
      ajax:   {
        width: 400,
        height: 300,
        menubar: 'top',
        closeButton: 'small',
        overflow: 'auto'
      },
      iframe: {
        width: 1280,
        height: 1024,		
        menubar: 'top',
        scrolling: true,
        closeButton: 'small'
      },
      inline: {
        width: 450,
        height: 350,
        autosize: 'true',
        menubar: 'top',
        closeButton: 'small',
        overflow: 'auto'
      },
      flash: {
        width: 680, //400,
        height: 400, //300,
        menubar: 'bottom',
        closeButton: 'large'
      },
      quicktime: {
        width: 480,
        height: 220,
        autoplay: true,
        controls: true,
        closeButton: 'large'
      }
    }
  },
  classids: {
    quicktime: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
    flash: 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
  },
  codebases: {
    quicktime: 'http://www.apple.com/qtactivex/qtplugin.cab#version=7,5,5,0',
    flash: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0'
  },
  errors: {
    requiresPlugin: "<div class='message'> The content your are attempting to view requires the <span class='type'>#{type}</span> plugin.</div><div class='pluginspage'><p>Please download and install the required plugin from:</p><a href='#{pluginspage}' target='_blank'>#{pluginspage}</a></div>"
  },
  mimetypes: {
    quicktime: 'video/quicktime',
    flash: 'application/x-shockwave-flash'
  },
  pluginspages: {
    quicktime: 'http://www.apple.com/quicktime/download',
    flash: 'http://www.adobe.com/go/getflashplayer'
  },
  // used with auto detection
  typeExtensions: {
    flash: 'swf',
    image: 'bmp gif jpeg jpg png',
    iframe: 'asp aspx cgi cfm htm html jsp php pl php3 php4 php5 phtml rb rhtml shtml txt',
    quicktime: 'avi mov mpg mpeg movie'
  }
};

(function() {
    var l = !!document.createElement("canvas").getContext,BROWSER_IS_IE_LT7 = Prototype.Browser.IE && (function(a) {
        var b = new RegExp("MSIE ([\\d.]+)").exec(a);
        return b ? parseFloat(b[1]) : -1
    })(navigator.userAgent) < 7,BROWSER_IS_WEBKIT_419 = (Prototype.Browser.WebKit && !document.evaluate),BROWSER_IS_FIREFOX_LT3 = navigator.userAgent.indexOf("Firefox") > -1 && parseFloat(navigator.userAgent.match(/Firefox[\/\s](\d+)/)[1]) < 3,FIX_OVERLAY_WITH_PNG = !!navigator.userAgent.match(/mac/i) && (BROWSER_IS_WEBKIT_419 || BROWSER_IS_FIREFOX_LT3);
    Object.extend(Lightview, {REQUIRED_Prototype:"1.6.1",REQUIRED_Scriptaculous:"1.8.2",queue:{position:"end",scope:"lightview"},require:function(a) {
        if ((typeof window[a] == "undefined") || (this.convertVersionString(window[a].Version) < this.convertVersionString(this["REQUIRED_" + a]))) {
            throw("Lightview requires " + a + " >= " + this["REQUIRED_" + a]);
        }
    },convertVersionString:function(a) {
        var v = a.replace(/_.*|\./g, "");
        v = parseInt(v + "0".times(4 - v.length));
        return a.indexOf("_") > -1 ? v - 1 : v
    },load:function() {
        this.require("Prototype");
        if (!!window.Effect && !window.Scriptaculous) {
            this.require("Scriptaculous")
        }
        if (/^(https?:\/\/|\/)/.test(this.options.images)) {
            this.images = this.options.images
        } else {
            var b = /lightview(?:-[\w\d.]+)?\.js(.*)/;
            this.images = (($$("script[src]").find(function(s) {
                return s.src.match(b)
            }) || {}).src || "").replace(b, "") + this.options.images
        }
        if (!l) {
            if (document.documentMode >= 8 && !document.namespaces.ns_vml) {
                document.namespaces.add("ns_vml", "urn:schemas-microsoft-com:vml", "#default#VML")
            } else {
                document.observe("dom:loaded", function() {
                    var a = document.createStyleSheet();
                    a.cssText = "ns_vml\\:*{behavior:url(#default#VML)}"
                })
            }
        }
    },start:function() {
        this.radius = this.options.radius;
        this.border = (this.radius > this.options.border) ? this.radius : this.options.border;
        this.closeDimensions = this.options.closeDimensions;
        this.sideDimensions = this.options.sideDimensions;
        this.build()
    }});
    Object.extend(Lightview, {_lightviewLoadedEvents:14,_lightviewLoadedEvent:function() {
        var a = arguments.callee;
        a.counter++;
        if (a.counter == this._lightviewLoadedEvents) {
            $(document.body).fire("lightview:loaded")
        }
    }});
    Lightview._lightviewLoadedEvent.counter = 0;
    Object.extend(Lightview, {build:function() {
        this.lightview = new Element("div", {id:"lightview"});
        var d,sideNegativeMargin,sideStyle = pixelClone(this.sideDimensions);
        if (BROWSER_IS_WEBKIT_419) {
            this.lightview.hide = function() {
                this.setStyle("left:-9500px;top:-9500px;visibility:hidden;");
                return this
            };
            this.lightview.show = function() {
                this.setStyle("visibility:visible");
                return this
            };
            this.lightview.visible = function() {
                return(this.getStyle("visibility") == "visible" && parseFloat(this.getStyle("top").replace("px", "")) > -9500)
            }
        }
        $(document.body).insert(this.overlay = new Element("div", {id:"lv_overlay"}).setStyle({zIndex:this.options.zIndex - 1,position:(!(BROWSER_IS_FIREFOX_LT3 || BROWSER_IS_IE_LT7)) ? "fixed" : "absolute",background:FIX_OVERLAY_WITH_PNG ? "url(" + this.images + "overlay.png) top left repeat" : this.options.overlay.background}).setOpacity(FIX_OVERLAY_WITH_PNG ? 1 : this.options.overlay.opacity).hide()).insert(this.lightview.setStyle({zIndex:this.options.zIndex,top:"-9500px",left:"-9500px"}).setOpacity(0).insert(this.container = new Element("div", {className:"lv_Container"}).insert(this.sideButtons = new Element("ul", {className:"lv_Sides"}).insert(this.prevSide = new Element("li", {className:"lv_PrevSide"}).setStyle(sideNegativeMargin = Object.extend({marginLeft:-1 * this.sideDimensions.width + "px"}, sideStyle)).insert(this.prevButtonImage = new Element("div", {className:"lv_Wrapper"}).setStyle(Object.extend({marginLeft:this.sideDimensions.width + "px"}, sideStyle)).insert(new Element("div", {className:"lv_Button"})))).insert(this.nextSide = new Element("li", {className:"lv_NextSide"}).setStyle(Object.extend({marginRight:-1 * this.sideDimensions.width + "px"}, sideStyle)).insert(this.nextButtonImage = new Element("div", {className:"lv_Wrapper"}).setStyle(sideNegativeMargin).insert(new Element("div", {className:"lv_Button"}))))).insert(this.topButtons = new Element("div", {className:"lv_topButtons"}).insert(this.topcloseButtonImage = new Element("div", {className:"lv_Wrapper lv_topcloseButtonImage"}).insert(this.topcloseButton = new Element("div", {className:"lv_Button"})))).insert(new Element("ul", {className:"lv_Frames"}).insert(new Element("li", {className:"lv_Frame lv_FrameTop"}).insert(d = new Element("div", {className:"lv_Liquid"}).setStyle({height:this.border + "px"}).insert(new Element("ul", {className:"lv_Half lv_HalfLeft"}).insert(new Element("li", {className:"lv_CornerWrapper"}).insert(new Element("div", {className:"lv_Corner"})).insert(new Element("div", {className:"lv_Fill"}).setStyle({left:this.border + "px"})))).insert(new Element("div", {className:"lv_Filler"})).insert(new Element("ul", {className:"lv_Half lv_HalfRight"}).insert(new Element("li", {className:"lv_CornerWrapper"}).setStyle("margin-top: " + (-1 * this.border) + "px").insert(new Element("div", {className:"lv_Corner"})).insert(new Element("div", {className:"lv_Fill"}).setStyle("left: " + (-1 * this.border) + "px")))))).insert(this.resizeCenter = new Element("li", {className:"lv_Center"}).setStyle("height: " + (150 - this.border) + "px").insert(new Element("div", {className:"lv_WrapUp"}).insert(new Element("div", {className:"lv_WrapDown"}).setStyle("margin-top: " + this.border + "px").insert(this.center = new Element("div", {className:"lv_WrapCenter"}).setOpacity(0).setStyle("padding: 0 " + this.border + "px").insert(this.contentTop = new Element("div", {className:"lv_contentTop lv_Fill"})).insert(this.menubar = new Element("div", {className:"lv_MenuBar clearfix"}).insert(this.closeButton = new Element("div", {className:"lv_Button lv_Close"}).setStyle(pixelClone(this.options.closeDimensions.large)).setStyle({background:this.options.backgroundColor}).setOpacity(this.options.buttons.opacity.normal)).insert(this.data = new Element("ul", {className:"lv_Data"}).insert(this.dataText = new Element("li", {className:"lv_DataText"}).insert(this.title = new Element("div", {className:"lv_Title"})).insert(this.caption = new Element("div", {className:"lv_Caption"}))).insert(this.innerController = new Element("div", {className:"lv_innerController"}).insert(this.imgNumber = new Element("li", {className:"lv_ImgNumber"}).insert(new Element("div"))).insert(this.innerPrevNext = new Element("li", {className:"lv_innerPrevNext"}).insert(this.innerPrevButton = new Element("div", {className:"lv_Button"}).setOpacity(this.options.buttons.opacity.normal).setStyle({backgroundColor:this.options.backgroundColor}).setPngBackground(this.images + "inner_prev.png", {backgroundColor:this.options.backgroundColor})).insert(this.innerNextButton = new Element("div", {className:"lv_Button"}).setOpacity(this.options.buttons.opacity.normal).setStyle({backgroundColor:this.options.backgroundColor}).setPngBackground(this.images + "inner_next.png", {backgroundColor:this.options.backgroundColor}))).insert(this.slideshow = new Element("li", {className:"lv_Slideshow"}).insert(this.slideshowButton = new Element("div", {className:"lv_Button"}).setOpacity(this.options.buttons.opacity.normal).setStyle({backgroundColor:this.options.backgroundColor}).setPngBackground(this.images + "inner_slideshow_play.png", {backgroundColor:this.options.backgroundColor})))))).insert(this.contentBottom = new Element("div", {className:"lv_contentBottom "}))))).insert(this.loading = new Element("div", {className:"lv_Loading"}).insert(this.loadingButton = new Element("div", {className:"lv_Button"}).setStyle("background: url(" + this.images + "loading.gif) top left no-repeat")))).insert(new Element("li", {className:"lv_Frame lv_FrameBottom"}).insert(d.cloneNode(true))).insert(this.prevnext = new Element("li", {className:"lv_PrevNext"}).hide().setStyle("margin-top: " + this.border + "px; background: url(" + this.images + "blank.gif) top left repeat"))))).insert(new Element("div", {id:"lightviewError"}).hide());
        var f = new Image();
        f.onload = function() {
            f.onload = Prototype.emptyFunction;
            this.sideDimensions = {width:f.width,height:f.height};
            var a = pixelClone(this.sideDimensions),sideNegativeMargin;
            this.sideButtons.setStyle({marginTop:0 - (f.height / 2).round() + "px",height:f.height + "px"});
            this.prevSide.setStyle(sideNegativeMargin = Object.extend({marginLeft:-1 * this.sideDimensions.width + "px"}, a));
            this.prevButtonImage.setStyle(Object.extend({marginLeft:a.width}, a));
            this.nextSide.setStyle(Object.extend({marginRight:-1 * this.sideDimensions.width + "px"}, a));
            this.nextButtonImage.setStyle(sideNegativeMargin);
            this._lightviewLoadedEvent()
        }.bind(this);
        f.src = this.images + "prev.png";
        $w("center title caption imgNumber")._each(function(e) {
            this[e].setStyle({backgroundColor:this.options.backgroundColor})
        }.bind(this));
        var g = this.container.select(".lv_Corner");
        $w("tl tr bl br").each(function(a, i) {
            if (this.radius > 0) {
                this.createCorner(g[i], a)
            } else {
                g[i].insert(new Element("div", {className:"lv_Fill"}))
            }
            g[i].setStyle({width:this.border + "px",height:this.border + "px"}).addClassName("lv_Corner" + a.capitalize());
            this._lightviewLoadedEvent()
        }.bind(this));
        this.lightview.select(".lv_Filler", ".lv_Fill", ".lv_WrapDown").invoke("setStyle", {backgroundColor:this.options.backgroundColor});
        var S = {};
        $w("prev next topclose").each(function(s) {
            this[s + "ButtonImage"].side = s;
            var b = this.images + s + ".png";
            if (s == "topclose") {
                S[s] = new Image();
                S[s].onload = function() {
                    S[s].onload = Prototype.emptyFunction;
                    this.closeDimensions[s] = {width:S[s].width,height:S[s].height};
                    var a = this.options.buttons.topclose.side,style = Object.extend({"float":a,marginTop:this.closeDimensions[s].height + "px"}, pixelClone(this.closeDimensions[s]));
                    style["padding" + a.capitalize()] = this.border + "px";
                    this[s + "ButtonImage"].setStyle(style);
                    this.topButtons.setStyle({height:S[s].height + "px",top:-1 * this.closeDimensions[s].height + "px"});
                    this[s + "ButtonImage"].down().setPngBackground(b).setStyle(pixelClone(this.closeDimensions[s]));
                    this._lightviewLoadedEvent()
                }.bind(this);
                S[s].src = this.images + s + ".png"
            } else {
                this[s + "ButtonImage"].setPngBackground(b)
            }
        }, this);
        var C = {};
        $w("large small").each(function(a) {
            C[a] = new Image();
            C[a].onload = function() {
                C[a].onload = Prototype.emptyFunction;
                this.closeDimensions[a] = {width:C[a].width,height:C[a].height};
                this._lightviewLoadedEvent()
            }.bind(this);
            C[a].src = this.images + "close_" + a + ".png"
        }, this);
        var L = new Image();
        L.onload = function() {
            L.onload = Prototype.emptyFunction;
            this.loading.setStyle({width:L.width + "px",height:L.height + "px",marginTop:-0.5 * L.height + 0.5 * this.border + "px",marginLeft:-0.5 * L.width + "px"});
            this._lightviewLoadedEvent()
        }.bind(this);
        L.src = this.images + "loading.gif";
        var h = new Image();
        h.onload = function(a) {
            h.onload = Prototype.emptyFunction;
            var b = {width:h.width + "px",height:h.height + "px"};
            this.slideshow.setStyle(b);
            this.slideshowButton.setStyle(b);
            this._lightviewLoadedEvent()
        }.bind(this);
        h.src = this.images + "inner_slideshow_stop.png";
        $w("prev next").each(function(s) {
            var S = s.capitalize(),i = new Image();
            i.onload = function() {
                i.onload = Prototype.emptyFunction;
                this["inner" + S + "Button"].setStyle({width:i.width + "px",height:i.height + "px"});
                this._lightviewLoadedEvent()
            }.bind(this);
            i.src = this.images + "inner_" + s + ".png";
            this["inner" + S + "Button"].prevnext = s
        }, this);
        $w("slideshow innerPrevNext imgNumber").each(function(c) {
            this[c].hide = this[c].hide.wrap(function(a, b) {
                this.style.position = "absolute";
                a(b);
                return this
            });
            this[c].show = this[c].show.wrap(function(a, b) {
                this.style.position = "relative";
                a(b);
                return this
            })
        }, this);
        this.lightview.select("*").invoke("setStyle", {zIndex:this.options.zIndex + 1});
        this.lightview.hide();
        this._lightviewLoadedEvent()
    },prepare:function() {
        Effect.Queues.get("lightview")._each(function(e) {
            e.cancel()
        });
        this.scaledInnerDimensions = null;
        if (this.view.isSet()) {
            this.controllerHeight = this._controllerHeight;
            if (this.controller && !this.controller.visible()) {
                this.controller.setStyle("visibility:hidden").show();
                this.controllerCenter.setOpacity(0)
            }
        } else {
            this.controllerHeight = null;
            if (this.controller) {
                this.controller.hide()
            }
        }
        if (parseInt(this.topcloseButtonImage.getStyle("marginTop")) < this.closeDimensions.topclose.height) {
            this.toggleTopClose(false)
        }
        this.hideOverlapping();
        this.hideContent();
        new Effect.Event({queue:this.queue,afterFinish:function() {
            $w("top bottom").each(function(a) {
                var b = a.capitalize();
                this["content" + b].remove();
                var c = {};
                this["content" + b] = new Element("div", {className:"lv_content" + b}).hide();
                c[a] = this["content" + b];
                this.center.insert(c)
            }.bind(this))
        }.bind(this)});
        this.disableKeyboardNavigation();
        this.views = null
    },restoreInlineContent:function() {
        if (!this.inlineContent || !this.inlineMarker) {
            return
        }
        this.inlineMarker.insert({after:this.inlineContent.setStyle({display:this.inlineContent._inlineDisplayRestore})});
        this.inlineMarker.remove();
        this.inlineMarker = null
    },show:function(b) {
        this.element = null;
        var c = Object.isString(b);
        if (Object.isElement(b) || c) {
            if (c && b.startsWith("#")) {
                this.show({href:b,options:Object.extend({autosize:true}, arguments[1] || {})});
                return
            }
            this.element = $(b);
            if (!this.element) {
                return
            }
            this.element.blur();
            this.view = this.element._view || new Lightview.View(this.element)
        } else {
            if (b.href) {
                this.element = $(document.body);
                this.view = new Lightview.View(b)
            } else {
                if (Object.isNumber(b)) {
                    this.element = this.getSet(this.view.rel)[b];
                    this.view = this.element._view
                }
            }
        }
        if (!this.view.href) {
            return
        }
        this.prepare();
        if (this.view.isGallery() || this.view.isSet()) {
            this.extendSet(this.view.rel);
            this.views = this.getViews(this.view.rel);
            if (this.view.isSet()) {
                this.controllerOffset = this.views.length > 1 ? this._controllerOffset : 0;
                this.isSetGallery = this.views.all(function(a) {
                    return a.isImage()
                })
            }
        }
        this.restoreCenter();
        this.appear();
        if (this.view.href != "#lightviewError" && Object.keys(Lightview.Plugin).join(" ").indexOf(this.view.type) >= 0) {
            if (!Lightview.Plugin[this.view.type]) {
                $("lightviewError").update(new Template(this.errors.requiresPlugin).evaluate({type:this.view.type.capitalize(),pluginspage:this.pluginspages[this.view.type]}));
                var d = $("lightviewError").getDimensions();
                this.show({href:"#lightviewError",title:this.view.type.capitalize() + " plugin required",options:d});
                return false
            }
        }
        var e = Object.extend({menubar:"bottom",topclose:false,wmode:"transparent",innerPreviousNext:this.view.isGallery() && this.options.buttons.innerPreviousNext.display,keyboard:this.options.keyboard,slideshow:(this.view.isGallery() && this.options.buttons.slideshow.display) || (this.isSetGallery),overflow:"hidden",overlayClose:this.options.overlay.close,viewport:this.options.viewport}, this.options.defaultOptions[this.view.type] || {});
        this.view.options = Object.extend(e, this.view.options);
        if (this.view.isSet()) {
            this.view.options.topclose = (this.views.length <= 1)
        }
        if (!(this.view.title || this.view.caption || (this.views && this.views.length > 1)) && this.view.options.topclose) {
            this.view.options.menubar = false
        }
        this._contentPosition = "content" + (this.view.options.menubar == "top" ? "Bottom" : "Top");
        if (this.view.isImage()) {
            if (!l && !this.view._VMLPreloaded) {
                this.view._VMLPreloaded = true;
                var f = new Element("ns_vml:image", {src:this.view.href,display:"none"}).setStyle("height:1px;width:1px;");
                $(document.body).insert(f);
                Element.remove.delay(0.1, f)
            }
            if (this.view.isGallery() || this.view.isSet()) {
                this.position = this.views.indexOf(this.view);
                this.preloadSurroundingImages()
            }
            this.innerDimensions = this.view.preloadedDimensions;
            if (this.innerDimensions) {
                this.afterEffect()
            } else {
                this.startLoading();
                var f = new Image();
                f.onload = function() {
                    f.onload = Prototype.emptyFunction;
                    this.stopLoading();
                    this.innerDimensions = {width:f.width,height:f.height};
                    this.afterEffect()
                }.bind(this);
                f.src = this.view.href
            }
        } else {
            if (this.view.isSet()) {
                this.position = this.views.indexOf(this.view)
            }
            this.innerDimensions = this.view.options.fullscreen ? document.viewport.getDimensions() : {width:this.view.options.width,height:this.view.options.height};
            this.afterEffect()
        }
    },insertContent:(function() {
        function insertImageUsingHTML(a, b, c) {
            a = $(a);
            var d = pixelClone(c);
            a.update(new Element("img", {id:"lightviewContent",src:b,alt:"",galleryimg:"no"}).setStyle(d))
        }

        var k = (function() {
            function insertImageUsingVML(a, b, c) {
                a = $(a);
                var d = Object.extend({"float":"left"}, pixelClone(c));
                var e = new Element("ns_vml:image", {src:b,id:"lightviewContent"}).setStyle(d);
                a.update(e);
                e.outerHTML = e.outerHTML
            }

            function insertImageUsingCanvas(b, c, d) {
                b = $(b);
                var f = pixelClone(d),image = new Image();
                image.onload = function() {
                    canvas = new Element("canvas", f);
                    b.update(canvas);
                    try {
                        var a = canvas.getContext("2d");
                        a.drawImage(image, 0, 0, d.width, d.height)
                    } catch(e) {
                        insertImageUsingHTML(b, c, d)
                    }
                }.bind(this);
                image.src = c
            }

            if (Prototype.Browser.IE) {
                return insertImageUsingVML
            } else {
                return insertImageUsingCanvas
            }
        })();
        return function() {
            var c = this.detectExtension(this.view.href),dimensions = this.scaledInnerDimensions || this.innerDimensions;
            if (this.view.isImage()) {
                var d = pixelClone(dimensions);
                this[this._contentPosition].setStyle(d);
                if (this.scaledInnerDimensions) {
                    k(this[this._contentPosition], this.view.href, dimensions)
                } else {
                    insertImageUsingHTML(this[this._contentPosition], this.view.href, dimensions)
                }
            } else {
                if (this.view.isExternal()) {
                    switch (this.view.type) {case"ajax":var f = Object.clone(this.view.options.ajax) || {};var g = function() {
                        this.stopLoading();
                        if (this.view.options.autosize) {
                            this[this._contentPosition].setStyle({width:"auto",height:"auto"});
                            this.innerDimensions = this.getHiddenDimensions(this[this._contentPosition])
                        }
                        new Effect.Event({queue:this.queue,afterFinish:this.resizeWithinViewport.bind(this)})
                    }.bind(this);if (f.onComplete) {
                        f.onComplete = f.onComplete.wrap(function(a, b) {
                            g();
                            a(b)
                        })
                    } else {
                        f.onComplete = g
                    }this.startLoading();new Ajax.Updater(this[this._contentPosition], this.view.href, f);break;case"iframe":if (this.scaledInnerDimensions) {
                        dimensions.height -= this.menubarDimensions.height
                    }this[this._contentPosition].update(this.iframe = new Element("iframe", {frameBorder:0,hspace:0,src:this.view.href,id:"lightviewContent",name:"lightviewContent_" + (Math.random() * 99999).round(),scrolling:(this.view.options && this.view.options.scrolling) ? "auto" : "no"}).setStyle(Object.extend({border:0,margin:0,padding:0}, pixelClone(dimensions))));break;case"inline":var h = this.view.href,target = $(h.substr(h.indexOf("#") + 1));if (!target || !target.tagName) {
                        return
                    }var i = target.getDimensions();target.insert({before:this.inlineMarker = new Element(target.tagName).hide()});target._inlineDisplayRestore = target.getStyle("display");this.inlineContent = target.show();this[this._contentPosition].update(this.inlineContent);this[this._contentPosition].select("select, object, embed").each(function(b) {
                        this.overlappingRestore.each(function(a) {
                            if (a.element == b) {
                                b.setStyle({visibility:a.visibility})
                            }
                        })
                    }.bind(this));if (this.view.options.autosize) {
                        this.innerDimensions = i;
                        new Effect.Event({queue:this.queue,afterFinish:this.resizeWithinViewport.bind(this)})
                    }break
                    }
                } else {
                    var j = {tag:"object",id:"lightviewContent",width:dimensions.width,height:dimensions.height};
                    switch (this.view.type) {case"quicktime":Object.extend(j, {pluginspage:this.pluginspages[this.view.type],children:[
                        {tag:"param",name:"autoplay",value:this.view.options.autoplay},
                        {tag:"param",name:"scale",value:"tofit"},
                        {tag:"param",name:"controller",value:this.view.options.controls},
                        {tag:"param",name:"enablejavascript",value:true},
                        {tag:"param",name:"src",value:this.view.href},
                        {tag:"param",name:"loop",value:this.view.options.loop || false}
                    ]});Object.extend(j, Prototype.Browser.IE ? {codebase:this.codebases[this.view.type],classid:this.classids[this.view.type]} : {data:this.view.href,type:this.mimetypes[this.view.type]});break;case"flash":Object.extend(j, {data:this.view.href,type:this.mimetypes[this.view.type],quality:"high",wmode:this.view.options.wmode,pluginspage:this.pluginspages[this.view.type],children:[
                        {tag:"param",name:"movie",value:this.view.href},
                        {tag:"param",name:"allowFullScreen",value:"true"}
                    ]});if (this.view.options.flashvars) {
                        j.children.push({tag:"param",name:"FlashVars",value:this.view.options.flashvars})
                    }break
                    }
                    this[this._contentPosition].setStyle(pixelClone(dimensions)).update(this.createHTML(j)).setStyle("visibility:hidden").show();
                    if (this.view.isQuicktime()) {
                        (function() {
                            try {
                                if ("SetControllerVisible"in $("lightviewContent")) {
                                    $("lightviewContent").SetControllerVisible(this.view.options.controls)
                                }
                            } catch(e) {
                            }
                        }.bind(this)).defer()
                    }
                }
            }
        }
    })(),getHiddenDimensions:function(b) {
        b = $(b);
        var d = b.ancestors(),restore = [],styles = [];
        d.push(b);
        d.each(function(c) {
            if (c != b && c.visible()) {
                return
            }
            restore.push(c);
            styles.push({display:c.getStyle("display"),position:c.getStyle("position"),visibility:c.getStyle("visibility")});
            c.setStyle({display:"block",position:"absolute",visibility:"visible"})
        });
        var e = {width:b.clientWidth,height:b.clientHeight};
        restore.each(function(r, a) {
            r.setStyle(styles[a])
        });
        return e
    },clearContent:function() {
        var a = $("lightviewContent");
        if (a) {
            switch (a.tagName.toLowerCase()) {case"object":if (Prototype.Browser.WebKit && this.view.isQuicktime()) {
                try {
                    a.Stop()
                } catch(e) {
                }
                a.innerHTML = ""
            }if (a.parentNode) {
                a.remove()
            } else {
                a = Prototype.emptyFunction
            }break;case"iframe":a.remove();if (Prototype.Browser.Gecko && window.frames.lightviewContent) {
                delete window.frames.lightviewContent
            }break;default:a.remove();break
            }
        }
        $w("Top Bottom").each(function(S) {
            this["content" + S].setStyle("width:auto;height:auto;").update("").hide()
        }, this)
    },adjustDimensionsToView:Prototype.K,afterEffect:function() {
        new Effect.Event({queue:this.queue,afterFinish:this.afterShow.bind(this)})
    },afterShow:function() {
        this.fillMenuBar();
        if (!this.view.isAjax()) {
            this.stopLoading()
        }
        if (!((this.view.options.autosize && this.view.isInline()) || this.view.isAjax())) {
            this.resizeWithinViewport()
        }
        if (!this.view.isIframe()) {
            new Effect.Event({queue:this.queue,afterFinish:this.insertContent.bind(this)})
        }
        if (this.view.options.topclose) {
            new Effect.Event({queue:this.queue,afterFinish:this.toggleTopClose.bind(this, true)})
        }
    },finishShow:function() {
        new Effect.Event({queue:this.queue,afterFinish:this.showContent.bind(this)});
        if (this.view.isIframe()) {
            new Effect.Event({delay:0.2,queue:this.queue,afterFinish:this.insertContent.bind(this)})
        }
        if (this.sliding) {
            new Effect.Event({queue:this.queue,afterFinish:this.nextSlide.bind(this)})
        }
        if (this.view.isQuicktime() || this.view.isFlash()) {
            new Effect.Event({queue:this.queue,delay:0.1,afterFinish:Element.setStyle.bind(this, this[this._contentPosition], "visibility:visible")})
        }
    },previous:function() {
        if (Effect.Queues.get(Lightview.queue.scope).effects.length) {
            return
        }
        this.show(this.getSurroundingIndexes().previous)
    },next:function() {
        if (Effect.Queues.get(Lightview.queue.scope).effects.length) {
            return
        }
        this.show(this.getSurroundingIndexes().next)
    },resizeWithinViewport:function() {
        this.adjustDimensionsToView();
        var a = this.getInnerDimensions(),bounds = this.getBounds();
        if (this.view.options.viewport && (a.width > bounds.width || a.height > bounds.height)) {
            if (this.view.options.fullscreen) {
                this.scaledInnerDimensions = bounds;
                this.fillMenuBar();
                a = bounds
            } else {
                var c = this.getOuterDimensions(),b = bounds;
                if (this.view.isMedia()) {
                    var d = [bounds.height / c.height,bounds.width / c.width,1].min();
                    this.scaledInnerDimensions = {width:(this.innerDimensions.width * d).round(),height:(this.innerDimensions.height * d).round()}
                } else {
                    this.scaledInnerDimensions = {width:c.width > b.width ? b.width : c.width,height:c.height > b.height ? b.height : c.height}
                }
                this.fillMenuBar();
                a = Object.clone(this.scaledInnerDimensions);
                if (this.view.isMedia()) {
                    a.height += this.menubarDimensions.height
                }
            }
        } else {
            this.fillMenuBar();
            this.scaledInnerDimensions = null
        }
        this._resize(a)
    },resize:function(a) {
        this._resize(a, {duration:0})
    },_resize:(function() {
        var e,wdiff,hdiff,mleft,mtop,controllerOffset,b;
        var f = (function() {
            var w,h;

            function init(p) {
                w = (e.width + p * wdiff).toFixed(0);
                h = (e.height + p * hdiff).toFixed(0)
            }

            var a;
            if (BROWSER_IS_IE_LT7) {
                a = function(p) {
                    this.lightview.setStyle({width:(e.width + p * wdiff).toFixed(0) + "px",height:(e.height + p * hdiff).toFixed(0) + "px"});
                    this.resizeCenter.setStyle({height:h - 1 * this.border + "px"})
                }
            } else {
                if (BROWSER_IS_FIREFOX_LT3) {
                    a = function(p) {
                        var v = this.getViewportDimensions(),o = document.viewport.getScrollOffsets();
                        this.lightview.setStyle({position:"absolute",marginLeft:0,marginTop:0,width:w + "px",height:h + "px",left:(o[0] + (v.width / 2) - (w / 2)).floor() + "px",top:(o[1] + (v.height / 2) - (h / 2)).floor() + "px"});
                        this.resizeCenter.setStyle({height:h - 1 * this.border + "px"})
                    }
                } else {
                    a = function(p) {
                        this.lightview.setStyle({position:"fixed",width:w + "px",height:h + "px",marginLeft:((0 - w) / 2).round() + "px",marginTop:((0 - h) / 2 - controllerOffset).round() + "px"});
                        this.resizeCenter.setStyle({height:h - 1 * this.border + "px"})
                    }
                }
            }
            return function(p) {
                init.call(this, p);
                a.call(this, p)
            }
        })();
        return function(a) {
            var c = arguments[1] || {};
            e = this.lightview.getDimensions();
            b = 2 * this.border;
            width = a.width ? a.width + b : e.width;
            height = a.height ? a.height + b : e.height;
            this.hidePrevNext();
            if (e.width == width && e.height == height) {
                new Effect.Event({queue:this.queue,afterFinish:this._afterResize.bind(this, a)});
                return
            }
            var d = {width:width + "px",height:height + "px"};
            wdiff = width - e.width;
            hdiff = height - e.height;
            mleft = parseInt(this.lightview.getStyle("marginLeft").replace("px", ""));
            mtop = parseInt(this.lightview.getStyle("marginTop").replace("px", ""));
            controllerOffset = this.controller.visible() ? (this.controllerOffset / 2) : 0;
            if (!BROWSER_IS_IE_LT7) {
                Object.extend(d, {marginLeft:0 - width / 2 + "px",marginTop:0 - height / 2 + "px"})
            }
            if (c.duration == 0) {
                f.call(this, 1)
            } else {
                this.resizing = new Effect.Tween(this.lightview, 0, 1, Object.extend({duration:this.options.resizeDuration,queue:this.queue,transition:this.options.transition,afterFinish:this._afterResize.bind(this, a)}, c), f.bind(this))
            }
        }
    })(),_afterResize:function(a) {
        if (!this.menubarDimensions) {
            return
        }
        var b = this[this._contentPosition],contentDimensions;
        if (this.view.options.overflow == "auto") {
            contentDimensions = b.getDimensions()
        }
        b.setStyle({height:(a.height - this.menubarDimensions.height) + "px",width:a.width + "px"});
        if (this.view.options.overflow != "hidden" && (this.view.isAjax() || this.view.isInline())) {
            if (Prototype.Browser.IE) {
                if (this.view.options.overflow == "auto") {
                    var c = b.getDimensions();
                    b.setStyle("overflow:visible");
                    var d = {overflowX:"hidden",overflowY:"hidden"},corrected = 0,scrollbarWidth = 15;
                    if (contentDimensions.height > a.height) {
                        d.overflowY = "auto";
                        d.width = c.width - scrollbarWidth;
                        d.paddingRight = "15px";
                        corrected = scrollbarWidth
                    }
                    if (contentDimensions.width - corrected > a.width) {
                        d.overflowX = "auto";
                        d.height = c.height - scrollbarWidth;
                        d.paddingBottom = "15px"
                    }
                    b.setStyle(d)
                } else {
                    b.setStyle({overflow:this.view.options.overflow})
                }
            } else {
                b.setStyle({overflow:this.view.options.overflow})
            }
        } else {
            b.setStyle("overflow:hidden")
        }
        this.restoreCenter();
        this.resizing = null;
        this.finishShow()
    },showContent:function() {
        new Effect.Event({queue:this.queue,afterFinish:this.hidePrevNext.bind(this)});
        new Effect.Event({queue:this.queue,afterFinish:function() {
            this[this._contentPosition].show();
            this.fillMenuBar();
            if (this.menubar.visible()) {
                this.menubar.setStyle("visibility:visible").setOpacity(1)
            }
        }.bind(this)});
        new Effect.Parallel([new Effect.Opacity(this.center, {sync:true,from:0,to:1}),new Effect.Appear(this.sideButtons, {sync:true})], {queue:this.queue,duration:0.25,afterFinish:function() {
            if (this.element) {
                this.element.fire("lightview:opened")
            }
        }.bind(this)});
        if (this.view.isGallery() || (this.isSetGallery && this.options.controller.buttons.side)) {
            new Effect.Event({queue:this.queue,afterFinish:this.showPrevNext.bind(this)})
        }
    },hideContent:(function() {
        function after() {
            this.clearContent();
            this.topcloseButtonImage.setStyle({marginTop:this.closeDimensions.topclose.height + "px"});
            this.restoreInlineContent()
        }

        function tween(p) {
            this.center.setOpacity(p);
            this.sideButtons.setOpacity(p)
        }

        return function() {
            if (!this.lightview.visible()) {
                this.center.setOpacity(0);
                this.sideButtons.setOpacity(0);
                this.clearContent();
                return
            }
            new Effect.Tween(this.lightview, 1, 0, {duration:0.2,queue:this.queue,afterFinish:after.bind(this)}, tween.bind(this))
        }
    })(),hideData:function() {
        $w("innerController data dataText title caption imgNumber innerPrevNext slideshow closeButton").each(function(a) {
            Element.hide(this[a])
        }, this);
        this.menubar.setStyle("visibility:hidden").setOpacity(0)
    },fillMenuBar:function() {
        this.hideData();
        if (!this.view.options.menubar) {
            this.menubarDimensions = {width:0,height:0};
            this.closeButtonWidth = 0;
            this.menubar.hide()
        } else {
            this.menubar.show()
        }
        if (this.view.title || this.view.caption) {
            this.dataText.show();
            this.data.show()
        }
        if (this.view.title) {
            this.title.update(this.view.title).show()
        }
        if (this.view.caption) {
            this.caption.update(this.view.caption).show()
        }
        if (this.views && this.views.length > 1) {
            if (this.view.isSet()) {
                this.setNumber.update(new Template(this.options.controller.setNumberTemplate).evaluate({position:this.position + 1,total:this.views.length}));
                if (this.controller.getStyle("visibility") == "hidden") {
                    this.controller.setStyle("visibility:visible");
                    if (this._controllerCenterEffect) {
                        Effect.Queues.get("lightview").remove(this._controllerCenterEffect)
                    }
                    this._controllerCenterEffect = new Effect.Appear(this.controllerCenter, {queue:this.queue,duration:0.1})
                }
            } else {
                this.data.show();
                if (this.view.isImage()) {
                    this.innerController.show();
                    this.imgNumber.show().down().update(new Template(this.options.imgNumberTemplate).evaluate({position:this.position + 1,total:this.views.length}));
                    if (this.view.options.slideshow) {
                        this.slideshowButton.show();
                        this.slideshow.show()
                    }
                }
            }
        }
        var a = this.view.isSet();
        if ((this.view.options.innerPreviousNext || a) && this.views.length > 1) {
            var b = {prev:(this.options.cyclic || this.position != 0),next:(this.options.cyclic || ((this.view.isGallery() || a) && this.getSurroundingIndexes().next != 0))};
            $w("prev next").each(function(z) {
                var Z = z.capitalize(),cursor = b[z] ? "pointer" : "auto";
                if (a) {
                    this["controller" + Z].setStyle({cursor:cursor}).setOpacity(b[z] ? 1 : this.options.buttons.opacity.disabled)
                } else {
                    this["inner" + Z + "Button"].setStyle({cursor:cursor}).setOpacity(b[z] ? this.options.buttons.opacity.normal : this.options.buttons.opacity.disabled)
                }
            }.bind(this));
            if (this.view.options.innerPreviousNext || this.options.controller.innerPreviousNext) {
                this.innerPrevNext.show()
            }
        }
        this.controllerSlideshow.setOpacity(this.isSetGallery ? 1 : this.options.buttons.opacity.disabled).setStyle({cursor:this.isSetGallery ? "pointer" : "auto"});
        this.setCloseButtons();
        if (!this.menubar.childElements().find(Element.visible)) {
            this.menubar.hide();
            this.view.options.menubar = false
        }
        this.setMenubarDimensions()
    },setCloseButtons:function() {
        var a = this.closeDimensions.small.width,large = this.closeDimensions.large.width,imgWidth = this.scaledInnerDimensions ? this.scaledInnerDimensions.width : this.innerDimensions.width,minimum = 180,width = 0,closeButton = this.view.options.closeButton || "large",background = this.options.borderColor;
        if (this.view.options.topclose || this.view.isSet() || !this.view.options.closeButton) {
            background = null
        } else {
            if (imgWidth >= minimum + a && imgWidth < minimum + large) {
                background = "small";
                width = a
            } else {
                if (imgWidth >= minimum + large) {
                    background = closeButton;
                    width = this.closeDimensions[closeButton].width
                }
            }
        }
        if (width > 0) {
            this.data.show();
            this.closeButton.setStyle({width:width + "px"}).show()
        } else {
            this.closeButton.hide()
        }
        if (background) {
            this.closeButton.setPngBackground(this.images + "close_" + background + ".png", {backgroundColor:this.options.backgroundColor})
        }
        this.closeButtonWidth = width
    },startLoading:function() {
        this.loadingEffect = new Effect.Appear(this.loading, {duration:0.2,from:0,to:1,queue:this.queue})
    },stopLoading:function() {
        if (this.loadingEffect) {
            Effect.Queues.get("lightview").remove(this.loadingEffect)
        }
        new Effect.Fade(this.loading, {duration:0.2,queue:this.queue,delay:0.2})
    },setPrevNext:function() {
        if (!this.view.isImage()) {
            return
        }
        var a = (this.options.cyclic || this.position != 0),next = (this.options.cyclic || ((this.view.isGallery() || this.view.isSet()) && this.getSurroundingIndexes().next != 0));
        this.prevButtonImage[a ? "show" : "hide"]();
        this.nextButtonImage[next ? "show" : "hide"]();
        var b = this.scaledInnerDimensions || this.innerDimensions;
        this.prevnext.setStyle({height:b.height + "px",marginTop:this.border + (this.view.options.menubar == "top" ? this.menubar.getHeight() : 0) + "px"});
        var c = ((b.width / 2 - 1) + this.border).floor();
        if (a) {
            this.prevnext.insert(this.prevButton = new Element("div", {className:"lv_Button lv_PrevButton"}).setStyle({width:c + "px"}));
            this.prevButton.side = "prev"
        }
        if (next) {
            this.prevnext.insert(this.nextButton = new Element("div", {className:"lv_Button lv_NextButton"}).setStyle({width:c + "px"}));
            this.nextButton.side = "next"
        }
        if (a || next) {
            this.prevnext.show()
        }
    },showPrevNext:function() {
        if (!this.view || !this.options.buttons.side.display || !this.view.isImage()) {
            return
        }
        this.setPrevNext();
        this.prevnext.show()
    },hidePrevNext:function() {
        this.prevnext.update("").hide();
        this.prevButtonImage.hide().setStyle({marginLeft:this.sideDimensions.width + "px"});
        this.nextButtonImage.hide().setStyle({marginLeft:-1 * this.sideDimensions.width + "px"})
    },appear:(function() {
        function after() {
            this.lightview.setOpacity(1)
        }

        if (!BROWSER_IS_WEBKIT_419) {
            after = after.wrap(function(a, b) {
                a(b);
                this.lightview.show()
            })
        }
        return function() {
            if (this.lightview.getStyle("opacity") != 0) {
                return
            }
            if (this.options.overlay.display) {
                new Effect.Appear(this.overlay, {duration:0.2,from:0,to:FIX_OVERLAY_WITH_PNG ? 1 : this.options.overlay.opacity,queue:this.queue,beforeStart:this.maxOverlay.bind(this),afterFinish:after.bind(this)})
            } else {
                after.call(this)
            }
        }
    })(),hide:function() {
        if (Prototype.Browser.IE && this.iframe && this.view.isIframe()) {
            this.iframe.remove()
        }
        if (BROWSER_IS_WEBKIT_419 && this.view.isQuicktime()) {
            var a = $$("object#lightviewContent")[0];
            if (a) {
                try {
                    a.Stop()
                } catch(e) {
                }
            }
        }
        if (this.lightview.getStyle("opacity") == 0) {
            return
        }
        this.stopSlideshow();
        this.prevnext.hide();
        if (!Prototype.Browser.IE || !this.view.isIframe()) {
            this.center.hide()
        }
        if (Effect.Queues.get("lightview_hide").effects.length > 0) {
            return
        }
        Effect.Queues.get("lightview").each(function(e) {
            e.cancel()
        });
        new Effect.Event({queue:this.queue,afterFinish:this.restoreInlineContent.bind(this)});
        new Effect.Opacity(this.lightview, {duration:0.1,from:1,to:0,queue:{position:"end",scope:"lightview_hide"}});
        new Effect.Fade(this.overlay, {duration:0.16,queue:{position:"end",scope:"lightview_hide"},afterFinish:this.afterHide.bind(this)})
    },afterHide:function() {
        this.clearContent();
        this.lightview.hide();
        this.center.setOpacity(0).show();
        this.prevnext.update("").hide();
        this.contentTop.update("").hide();
        this.contentBottom.update("").hide();
        this.disableKeyboardNavigation();
        this.showOverlapping();
        new Effect.Event({queue:this.queue,afterFinish:this.resize.bind(this, this.options.startDimensions)});
        new Effect.Event({queue:this.queue,afterFinish:function() {
            if (this.element) {
                this.element.fire("lightview:hidden")
            }
            $w("element views view scaledInnerDimensions isSetGallery _openEffect content")._each(function(a) {
                this[a] = null
            }.bind(this))
        }.bind(this)})
    },setMenubarDimensions:function() {
        this.menubar.setStyle("padding:0;");
        var a = {},imgWidth = this[(this.scaledInnerDimensions ? "scaledI" : "i") + "nnerDimensions"].width;
        this.menubar.setStyle({width:imgWidth + "px"});
        this.data.setStyle({width:imgWidth - this.closeButtonWidth - 1 + "px"});
        a = this.getHiddenDimensions(this.menubar);
        if (this.view.options.menubar) {
            a.height += this.options.menubarPadding;
            switch (this.view.options.menubar) {case"bottom":this.menubar.setStyle("padding:" + this.options.menubarPadding + "px 0 0 0");break;case"top":this.menubar.setStyle("padding: 0 0 " + this.options.menubarPadding + "px 0");break
            }
        }
        this.menubar.setStyle({width:"100%"});
        this.menubarDimensions = this.view.options.menubar ? a : {width:a.width,height:0}
    },restoreCenter:(function() {
        var a,controllerOffset;

        function init() {
            a = this.lightview.getDimensions();
            if (this.controller && this.controllerOffset) {
                controllerOffset = this.controller.visible() ? (this.controllerOffset / 2) : 0
            } else {
                controllerOffset = 0;
            }
        }

        var b;
        if (BROWSER_IS_IE_LT7) {
            b = function() {
                this.lightview.setStyle({top:"50%",left:"50%"})
            }
        } else {
            if (BROWSER_IS_WEBKIT_419 || BROWSER_IS_FIREFOX_LT3) {
                b = function() {
                    var v = this.getViewportDimensions(),o = document.viewport.getScrollOffsets();
                    this.lightview.setStyle({marginLeft:0,marginTop:0,left:(o[0] + (v.width / 2) - (a.width / 2)).floor() + "px",top:(o[1] + (v.height / 2) - (a.height / 2)).floor() + "px"})
                }
            } else {
                b = function() {
                    this.lightview.setStyle({position:"fixed",left:"50%",top:"50%",marginLeft:(0 - a.width / 2).round() + "px",marginTop:(0 - a.height / 2 - controllerOffset).round() + "px"})
                }
            }
        }
        return function() {
            init.call(this);
            b.call(this)
        }
    })(),startSlideshow:function() {
        this.stopSlideshow();
        this.sliding = true;
        this.next.bind(this).delay(0.25);
        this.slideshowButton.setPngBackground(this.images + "inner_slideshow_stop.png", {backgroundColor:this.options.backgroundColor}).hide();
        this.controllerSlideshow.setPngBackground(this.images + "controller_slideshow_stop.png", {backgroundColor:this.options.controller.backgroundColor})
    },stopSlideshow:function() {
        if (this.sliding) {
            this.sliding = false
        }
        if (this.slideTimer) {
            clearTimeout(this.slideTimer)
        }
        this.slideshowButton.setPngBackground(this.images + "inner_slideshow_play.png", {backgroundColor:this.options.backgroundColor});
        this.controllerSlideshow.setPngBackground(this.images + "controller_slideshow_play.png", {backgroundColor:this.options.controller.backgroundColor})
    },toggleSlideshow:function() {
        if (this.view.isSet() && !this.isSetGallery) {
            return
        }
        this[(this.sliding ? "stop" : "start") + "Slideshow"]()
    },nextSlide:function() {
        if (this.sliding) {
            this.slideTimer = this.next.bind(this).delay(this.options.slideshowDelay)
        }
    },updateViews:function() {
        $$("a[class~=lightview], area[class~=lightview]").each(function(a) {
            var b = a._view;
            if (!b) {
                return
            }
            if (b._title) {
                a.writeAttribute("title", b._title)
            }
            a._view = null
        })
    },getSet:function(a) {
        var b = a.indexOf("][");
        if (b > -1) {
            a = a.substr(0, b + 1)
        }
        return $$('a[rel^="' + a + '"], area[rel^="' + a + '"]')
    },getViews:function(a) {
        return this.getSet(a).pluck("_view")
    },addObservers:function() {
        $(document.body).observe("click", this.delegateClose.bindAsEventListener(this));
        $w("mouseover mouseout").each(function(e) {
            this.prevnext.observe(e, function(a) {
                var b = a.findElement("div");
                if (!b) {
                    return
                }
                if (this.prevButton && this.prevButton == b || this.nextButton && this.nextButton == b) {
                    this.toggleSideButton(a)
                }
            }.bindAsEventListener(this))
        }.bind(this));
        this.prevnext.observe("click", function(c) {
            var d = c.findElement("div");
            if (!d) {
                return
            }
            var e = (this.prevButton && this.prevButton == d) ? "previous" : (this.nextButton && this.nextButton == d) ? "next" : null;
            if (e) {
                this[e].wrap(function(a, b) {
                    this.stopSlideshow();
                    a(b)
                }).bind(this)()
            }
        }.bindAsEventListener(this));
        $w("prev next").each(function(s) {
            var S = s.capitalize(),stopSlideshow = function(a, b) {
                this.stopSlideshow();
                a(b)
            },blockInnerPrevNext = function(a, b) {
                var c = b.element().prevnext;
                if ((c == "prev" && (this.options.cyclic || this.position != 0)) || (c == "next" && (this.options.cyclic || ((this.view.isGallery() || this.view.isSet()) && this.getSurroundingIndexes().next != 0)))) {
                    a(b)
                }
            };
            this[s + "ButtonImage"].observe("mouseover", this.toggleSideButton.bindAsEventListener(this)).observe("mouseout", this.toggleSideButton.bindAsEventListener(this)).observe("click", this[s == "next" ? s : "previous"].wrap(stopSlideshow).bindAsEventListener(this));
            this["inner" + S + "Button"].observe("click", this[s == "next" ? s : "previous"].wrap(blockInnerPrevNext).wrap(stopSlideshow).bindAsEventListener(this)).observe("mouseover", Element.setOpacity.curry(this["inner" + S + "Button"], this.options.buttons.opacity.hover).wrap(blockInnerPrevNext).bindAsEventListener(this)).observe("mouseout", Element.setOpacity.curry(this["inner" + S + "Button"], this.options.buttons.opacity.normal).wrap(blockInnerPrevNext).bindAsEventListener(this));
            this["controller" + S].observe("click", this[s == "next" ? s : "previous"].wrap(blockInnerPrevNext).wrap(stopSlideshow).bindAsEventListener(this))
        }, this);
        var f = [this.closeButton,this.slideshowButton];
        if (!BROWSER_IS_WEBKIT_419) {
            f.each(function(b) {
                b.observe("mouseover", Element.setOpacity.bind(this, b, this.options.buttons.opacity.hover)).observe("mouseout", Element.setOpacity.bind(this, b, this.options.buttons.opacity.normal))
            }, this)
        } else {
            f.invoke("setOpacity", 1)
        }
        this.slideshowButton.observe("click", this.toggleSlideshow.bindAsEventListener(this));
        this.controllerSlideshow.observe("click", this.toggleSlideshow.bindAsEventListener(this));
        if (BROWSER_IS_WEBKIT_419 || BROWSER_IS_FIREFOX_LT3) {
            var g = function(a, b) {
                if (this.lightview.getStyle("top").charAt(0) == "-") {
                    return
                }
                a(b)
            };
            Event.observe(window, "scroll", this.restoreCenter.wrap(g).bindAsEventListener(this));
            Event.observe(window, "resize", this.restoreCenter.wrap(g).bindAsEventListener(this))
        }
        if (BROWSER_IS_FIREFOX_LT3) {
            Event.observe(window, "resize", this.maxOverlay.bindAsEventListener(this))
        }
        if (BROWSER_IS_IE_LT7) {
            function centerControllerIELT7() {
                if (this.controller) {
                    this.controller.setStyle({left:((document.documentElement.scrollLeft || 0) + document.viewport.getWidth() / 2).round() + "px"})
                }
            }

            Event.observe(window, "scroll", centerControllerIELT7.bindAsEventListener(this));
            Event.observe(window, "resize", centerControllerIELT7.bindAsEventListener(this))
        }
        if (this.options.preloadHover) {
            this._preloadImageHover = function(a) {
                var b = a.findElement("a[class~=lightview], area[class~=lightview]");
                if (!b) {
                    return
                }
                a.stop();
                if (!b._view) {
                    new Lightview.View(b)
                }
                this.preloadImageHover(b)
            }.bindAsEventListener(this);
            $(document.body).observe("mouseover", this._preloadImageHover)
        }
    },toggleTopClose:function(a) {
        if (this._topCloseEffect) {
            Effect.Queues.get("lightview_topCloseEffect").remove(this.topCloseEffect)
        }
        var b = {marginTop:(a ? 0 : this.closeDimensions.topclose.height) + "px"};
        this._topCloseEffect = new Effect.Morph(this.topcloseButtonImage, {style:b,duration:0.16,queue:this.queue,delay:a ? 0.15 : 0})
    },getScrollDimensions:function() {
        var a = {};
        $w("width height").each(function(d) {
            var D = d.capitalize(),ddE = document.documentElement;
            a[d] = Prototype.Browser.IE ? [ddE["offset" + D],ddE["scroll" + D]].max() : Prototype.Browser.WebKit ? document.body["scroll" + D] : ddE["scroll" + D]
        });
        return a
    },maxOverlay:function() {
        if (!BROWSER_IS_FIREFOX_LT3) {
            return
        }
        this.overlay.setStyle(pixelClone(this.getScrollDimensions()))
    },delegateClose:(function() {
        var b = ".lv_Close, .lv_topButtons .lv_Button, .lv_Loading, .lv_controllerClose";
        return function(a) {
            if (this.view && this.view.options && a.findElement(b + (this.view.options.overlayClose ? ", #lv_overlay" : ""))) {
                this.hide()
            }
        }
    })(),toggleSideButton:function(a) {
        var b = a.target,side = b.side,w = this.sideDimensions.width,offset = (a.type == "mouseover") ? 0 : side == "prev" ? w : -1 * w,style = {marginLeft:offset + "px"};
        if (!this.sideEffect) {
            this.sideEffect = {}
        }
        if (this.sideEffect[side]) {
            Effect.Queues.get("lightview_side" + side).remove(this.sideEffect[side])
        }
        this.sideEffect[side] = new Effect.Morph(this[side + "ButtonImage"], {style:style,duration:0.2,queue:{scope:"lightview_side" + side,limit:1},delay:(a.type == "mouseout") ? 0.1 : 0})
    },getSurroundingIndexes:function() {
        if (!this.views) {
            return
        }
        var a = this.position,length = this.views.length;
        var b = (a <= 0) ? length - 1 : a - 1,next = (a >= length - 1) ? 0 : a + 1;
        return{previous:b,next:next}
    },createCorner:function(a, b) {
        var c = arguments[2] || this.options,radius = c.radius,border = c.border;
        position = {top:(b.charAt(0) == "t"),left:(b.charAt(1) == "l")};
        if (l) {
            var d = new Element("canvas", {className:"cornerCanvas" + b.capitalize(),width:border + "px",height:border + "px"});
            d.setStyle("float:left");
            a.insert(d);
            var e = d.getContext("2d");
            e.fillStyle = c.backgroundColor;
            e.arc((position.left ? radius : border - radius), (position.top ? radius : border - radius), radius, 0, Math.PI * 2, true);
            e.fill();
            e.fillRect((position.left ? radius : 0), 0, border - radius, border);
            e.fillRect(0, (position.top ? radius : 0), border, border - radius)
        } else {
            var f = new Element("ns_vml:roundrect", {fillcolor:c.backgroundColor,strokeWeight:"1px",strokeColor:c.backgroundColor,arcSize:(radius / border * 0.5).toFixed(2)}).setStyle({width:2 * border - 1 + "px",height:2 * border - 1 + "px",position:"absolute",left:(position.left ? 0 : (-1 * border)) + "px",top:(position.top ? 0 : (-1 * border)) + "px"});
            a.insert(f);
            f.outerHTML = f.outerHTML
        }
    },hideOverlapping:(function() {
        function getOverlappingElements() {
            return $$("object, embed, select")
        }

        if (Prototype.Browser.IE && document.documentMode >= 8) {
            getOverlappingElements = function() {
                return document.querySelectorAll("object, embed, select")
            }
        }
        return function() {
            if (this.preventingOverlap) {
                return
            }
            var a = getOverlappingElements();
            this.overlappingRestore = [];
            for (var i = 0,length = a.length; i < length; i++) {
                var b = a[i];
                this.overlappingRestore.push({element:b,visibility:b.style.visibility});
                b.style.visibility = "hidden"
            }
            this.preventingOverlap = true
        }
    })(),showOverlapping:function() {
        this.overlappingRestore.each(function(a, i) {
            a.element.style.visibility = a.visibility
        });
        delete this.overlappingRestore;
        this.preventingOverlap = false
    },getInnerDimensions:function() {
        return{width:this.innerDimensions.width,height:this.innerDimensions.height + this.menubarDimensions.height}
    },getOuterDimensions:function() {
        var i = this.getInnerDimensions(),b = 2 * this.border;
        return{width:i.width + b,height:i.height + b}
    },getBounds:function() {
        var a = 21,safety = 2 * this.sideDimensions.height + a,v = this.getViewportDimensions();
        return{width:v.width - safety,height:v.height - safety}
    },getViewportDimensions:function() {
        var v = document.viewport.getDimensions();
        if (this.controller && this.controller.visible() && this.views && this.views.length > 1) {
            v.height -= this.controllerOffset
        }
        return v
    }});
    (function() {
        function guard(a, b) {
            if (!this.view) {
                return
            }
            a(b)
        }

        $w("fillMenuBar insertContent").each(function(a) {
            this[a] = this[a].wrap(guard)
        }, Lightview)
    })();
    function pixelClone(b) {
        var c = {};
        Object.keys(b).each(function(a) {
            c[a] = b[a] + "px"
        });
        return c
    }

    Object.extend(Lightview, {enableKeyboardNavigation:function() {
        if (!this.view.options.keyboard) {
            return
        }
        this.keyboardEvent = this.keyboardDown.bindAsEventListener(this);
        document.observe("keydown", this.keyboardEvent)
    },disableKeyboardNavigation:function() {
        if (this.keyboardEvent) {
            document.stopObserving("keydown", this.keyboardEvent)
        }
    },keyboardDown:function(a) {
        var b = String.fromCharCode(a.keyCode).toLowerCase(),keyCode = a.keyCode,staticGallery = (this.view.isGallery() || this.isSetGallery) && !this.resizing,slideshow = this.view.options.slideshow,action;
        if (this.view.isMedia()) {
            a.stop();
            action = (keyCode == Event.KEY_ESC || ["x","c"].member(b)) ? "hide" : (keyCode == 37 && staticGallery && (this.options.cyclic || this.position != 0)) ? "previous" : (keyCode == 39 && staticGallery && (this.options.cyclic || this.getSurroundingIndexes().next != 0)) ? "next" : (b == "p" && slideshow && staticGallery) ? "startSlideshow" : (b == "s" && slideshow && staticGallery) ? "stopSlideshow" : null;
            if (b != "s") {
                this.stopSlideshow()
            }
        } else {
            action = (keyCode == Event.KEY_ESC) ? "hide" : null
        }
        if (action) {
            this[action]()
        }
        if (staticGallery) {
            if (keyCode == Event.KEY_HOME && this.views.first() != this.view) {
                this.show(0)
            }
            if (keyCode == Event.KEY_END && this.views.last() != this.view) {
                this.show(this.views.length - 1)
            }
        }
    }});
    Lightview.afterShow = Lightview.afterShow.wrap(function(a, b) {
        this.enableKeyboardNavigation();
        a(b)
    });
    Object.extend(Lightview, {extendSet:function(a) {
        var b = this.getSet(a);
        if (!b) {
            return
        }
        b._each(Lightview.Extend)
    },preloadSurroundingImages:function() {
        if (this.views.length == 0) {
            return
        }
        var a = this.getSurroundingIndexes();
        this.preloadFromSet([a.next,a.previous])
    },preloadFromSet:function(c) {
        var d = (this.views && this.views.member(c) || Object.isArray(c)) ? this.views : c.rel ? this.getViews(c.rel) : null;
        if (!d) {
            return
        }
        var e = $A(Object.isNumber(c) ? [c] : c.type ? [d.indexOf(c)] : c).uniq();
        e.each(function(a) {
            var b = d[a];
            this.preloadImageDimensions(b)
        }, this)
    },setPreloadedDimensions:function(a, b) {
        a.preloadedDimensions = {width:b.width,height:b.height}
    },preloadImageDimensions:function(a) {
        if (a.preloadedDimensions || a.isPreloading || !a.href) {
            return
        }
        var P = new Image();
        P.onload = function() {
            P.onload = Prototype.emptyFunction;
            a.isPreloading = null;
            this.setPreloadedDimensions(a, P)
        }.bind(this);
        a.isPreloading = true;
        P.src = a.href
    },preloadImageHover:function(a) {
        var b = a._view;
        if (b && b.preloadedDimensions || b.isPreloading || !b.isImage()) {
            return
        }
        this.preloadImageDimensions(b)
    }});
    Element.addMethods({setPngBackground:function(a, b) {
        a = $(a);
        var c = Object.extend({align:"top left",repeat:"no-repeat",sizingMethod:"scale",backgroundColor:""}, arguments[2] || {});
        a.setStyle(BROWSER_IS_IE_LT7 ? {filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + b + "'', sizingMethod='" + c.sizingMethod + "')"} : {background:c.backgroundColor + " url(" + b + ") " + c.align + " " + c.repeat});
        return a
    }});
    Object.extend(Lightview, {detectType:function(a, b) {
        var c;
        $w("flash image iframe quicktime").each(function(t) {
            if (new RegExp("\\.(" + this.typeExtensions[t].replace(/\s+/g, "|") + ")(\\?.*)?", "i").test(a)) {
                c = t
            }
        }.bind(this));
        if (c) {
            return c
        }
        if (a.startsWith("#")) {
            return"inline"
        }
        if (document.domain && document.domain != (a).replace(/(^.*\/\/)|(:.*)|(\/.*)/g, "")) {
            return"iframe"
        }
        return"image"
    },detectExtension:function(a) {
        var b = a.gsub(/\?.*/, "").match(/\.([^.]{3,4})$/);
        return b ? b[1] : null
    },createHTML:function(b) {
        var c = "<" + b.tag;
        for (var d in b) {
            if (!["children","html","tag"].member(d)) {
                c += " " + d + '="' + b[d] + '"'
            }
        }
        if (new RegExp("^(?:area|base|basefont|br|col|frame|hr|img|input|link|isindex|meta|param|range|spacer|wbr)$", "i").test(b.tag)) {
            c += "/>"
        } else {
            c += ">";
            if (b.children) {
                b.children.each(function(a) {
                    c += this.createHTML(a)
                }.bind(this))
            }
            if (b.html) {
                c += b.html
            }
            c += "</" + b.tag + ">"
        }
        return c
    }});
    (function() {
        document.observe("dom:loaded", function() {
            var c = (navigator.plugins && navigator.plugins.length);

            function detectPlugin(a) {
                var b = false;
                if (c) {
                    b = ($A(navigator.plugins).pluck("name").join(",").indexOf(a) >= 0)
                } else {
                    try {
                        b = new ActiveXObject(a)
                    } catch(e) {
                    }
                }
                return!!b
            }

            if (c) {
                window.Lightview.Plugin = {flash:detectPlugin("Shockwave Flash"),quicktime:detectPlugin("QuickTime")}
            } else {
                window.Lightview.Plugin = {flash:detectPlugin("ShockwaveFlash.ShockwaveFlash"),quicktime:detectPlugin("QuickTime.QuickTime")}
            }
        })
    })();
    Lightview.View = Class.create({initialize:function(b) {
        if (b._view) {
            return
        }
        var c = Object.isElement(b);
        if (c && !b._view) {
            b._view = this;
            if (b.title) {
                b._view._title = b.title;
                if (Lightview.options.removeTitles) {
                    b.setAttribute("title", "")
                }
            }
        }
        this.href = c ? b.getAttribute("href") : b.href;
        if (this.href.indexOf("#") >= 0) {
            this.href = this.href.substr(this.href.indexOf("#"))
        }
        var d = b.rel;
        if (d) {
            this.rel = d;
            if (d.startsWith("gallery")) {
                this.type = "gallery"
            } else {
                if (d.startsWith("set")) {
                    if (d.include("][")) {
                        var e = d.split("]["),relType = e[1].match(/([a-zA-Z]*)/)[1];
                        if (relType) {
                            this.type = relType;
                            var f = e[0] + "]";
                            b.writeAttribute("rel", f);
                            this.rel = f
                        }
                    } else {
                        this.type = Lightview.detectType(this.href)
                    }
                } else {
                    this.type = d
                }
            }
        } else {
            this.type = Lightview.detectType(this.href);
            this.rel = this.type
        }
        $w("ajax flash gallery iframe image inline quicktime external media set")._each(function(a) {
            var T = a.capitalize(),t = a.toLowerCase();
            if ("image gallery media external set".indexOf(a) < 0) {
                this["is" + T] = function() {
                    return this.type == t
                }.bind(this)
            }
        }.bind(this));
        if (c && b._view._title) {
            var g = b._view._title.split(Lightview.options.titleSplit).invoke("strip");
            if (g[0]) {
                this.title = g[0]
            }
            if (g[1]) {
                this.caption = g[1]
            }
            var h = g[2];
            this.options = (h && Object.isString(h)) ? eval("({" + h + "})") : {}
        } else {
            this.title = b.title;
            this.caption = b.caption;
            this.options = b.options || {}
        }
        if (this.options.ajaxOptions) {
            this.options.ajax = Object.clone(this.options.ajaxOptions);
            delete this.options.ajaxOptions
        }
    },isGallery:function() {
        return this.type.startsWith("gallery")
    },isSet:function() {
        return this.rel.startsWith("set")
    },isImage:function() {
        return(this.isGallery() || this.type == "image")
    },isExternal:function() {
        return"iframe inline ajax".indexOf(this.type) >= 0
    },isMedia:function() {
        return!this.isExternal()
    }});
    Lightview.Extend = function(a) {
        var b = $(a);
        new Lightview.View(a);
        return b
    };
    (function() {
        function handleClick(a) {
            var b = a.findElement("a[class~=lightview], area[class~=lightview]");
            if (!b) {
                return
            }
            a.stop();
            this.Extend(b);
            this.show(b)
        }

        function handleMouseOver(a) {
            var b = a.findElement("a[class~=lightview], area[class~=lightview]");
            if (!b) {
                return
            }
            this.Extend(b)
        }

        function elementIE8(a) {
            var b = a.target,type = a.type,currentTarget = a.currentTarget;
            if (currentTarget && currentTarget.tagName) {
                if (type === "load" || type === "error" || (type === "click" && currentTarget.tagName.toLowerCase() === "input" && currentTarget.type === "radio")) {
                    b = currentTarget
                }
            }
            if (b.nodeType == Node.TEXT_NODE) {
                b = b.parentNode
            }
            return b
        }

        function hasClassNameIE8(a, b) {
            if (!a) {
                return
            }
            var c = a.className;
            return(c.length > 0 && (c == b || new RegExp("(^|\\s)" + b + "(\\s|$)").test(c)))
        }

        function handleMouseOverIE8(a) {
            var b = elementIE8(a);
            if (b && hasClassNameIE8(b, "lightview")) {
                this.Extend(b)
            }
        }

        document.observe("lightview:loaded", function() {
            $(document.body).observe("click", handleClick.bindAsEventListener(Lightview));
            if (Lightview.options.removeTitles && Prototype.Browser.IE && document.documentMode >= 8) {
                $(document.body).observe("mouseover", handleMouseOverIE8.bindAsEventListener(Lightview))
            } else {
                $(document.body).observe("mouseover", handleMouseOver.bindAsEventListener(Lightview))
            }
        })
    })();
    Object.extend(Lightview, {buildController:function() {
        var b = this.options.controller,border = b.border;
        $(document.body).insert(this.controller = new Element("div", {id:"lightviewController"}).setStyle({zIndex:this.options.zIndex + 1,marginBottom:b.margin + "px",position:"absolute",visibility:"hidden"}).insert(this.controllerTop = new Element("div", {className:"lv_controllerTop"}).insert(new Element("div", {className:"lv_controllerCornerWrapper lv_controllerCornerWrapperTopLeft"}).setStyle("margin-left: " + border + "px").insert(new Element("div", {className:"lv_Corner"}))).insert(new Element("div", {className:"lv_controllerBetweenCorners"}).setStyle({margin:"0 " + border + "px",height:border + "px"})).insert(new Element("div", {className:"lv_controllerCornerWrapper lv_controllerCornerWrapperTopRight"}).setStyle("margin-left: -" + border + "px").insert(new Element("div", {className:"lv_Corner"})))).insert(this.controllerMiddle = new Element("div", {className:"lv_controllerMiddle clearfix"}).insert(this.controllerCenter = new Element("ul", {className:"lv_controllerCenter"}).setStyle("margin: 0 " + border + "px").insert(new Element("li", {className:"lv_controllerSetNumber"}).insert(this.setNumber = new Element("div"))).insert(new Element("li", {className:"lv_ButtonWrapper lv_controllerPrev"}).insert(this.controllerPrev = new Element("div", {className:"lv_Button"}).setPngBackground(this.images + "controller_prev.png", {backgroundColor:b.backgroundColor}))).insert(new Element("li", {className:"lv_ButtonWrapper lv_controllerNext"}).insert(this.controllerNext = new Element("div", {className:"lv_Button"}).setPngBackground(this.images + "controller_next.png", {backgroundColor:b.backgroundColor}))).insert(new Element("li", {className:"lv_ButtonWrapper lv_controllerSlideshow"}).insert(this.controllerSlideshow = new Element("div", {className:"lv_Button"}).setPngBackground(this.images + "controller_slideshow_play.png", {backgroundColor:b.backgroundColor}))).insert(new Element("li", {className:"lv_ButtonWrapper lv_controllerClose"}).insert(this.controllerClose = new Element("div", {className:"lv_Button"}).setPngBackground(this.images + "controller_close.png", {backgroundColor:b.backgroundColor}))))).insert(this.controllerBottom = new Element("div", {className:"lv_controllerBottom"}).insert(new Element("div", {className:"lv_controllerCornerWrapper lv_controllerCornerWrapperBottomLeft"}).setStyle("margin-left: " + border + "px").insert(new Element("div", {className:"lv_Corner"}))).insert(new Element("div", {className:"lv_controllerBetweenCorners"}).setStyle({margin:"0 " + border + "px",height:border + "px"})).insert(new Element("div", {className:"lv_controllerCornerWrapper lv_controllerCornerWrapperBottomRight"}).setStyle("margin-left: -" + border + "px").insert(new Element("div", {className:"lv_Corner"})))));
        $w("prev next").each(function(s) {
            var S = s.capitalize();
            this["controller" + S].prevnext = s
        }, this);
        if (BROWSER_IS_WEBKIT_419) {
            this.controller.hide = function() {
                this.setStyle("left:-9500px;top:-9500px;visibility:hidden;");
                return this
            };
            this.controller.show = function() {
                this.setStyle("visibility:visible");
                return this
            };
            this.controller.visible = function() {
                return(this.getStyle("visibility") == "visible" && parseFloat(this.getStyle("top").replace("px", "")) > -9500)
            }
        }
        this.controller.select(".lv_ButtonWrapper div").invoke("setStyle", pixelClone(this.controllerButtonDimensions));
        var c = this.controller.select(".lv_Corner");
        $w("tl tr bl br").each(function(a, i) {
            if (b.radius > 0) {
                this.createCorner(c[i], a, b)
            } else {
                c[i].insert(new Element("div", {className:"lv_Fill"}))
            }
            c[i].setStyle({width:b.border + "px",height:b.border + "px"}).addClassName("lv_Corner" + a.capitalize())
        }, this);
        this.controller.down(".lv_controllerMiddle").setStyle("width:100%;");
        this.controller.setStyle(BROWSER_IS_IE_LT7 ? {position:"absolute",top:"auto",left:""} : {position:"fixed",top:"auto",left:"50%"});
        this.controller.select(".lv_controllerBetweenCorners", ".lv_controllerMiddle", ".lv_Button", ".lv_Fill").invoke("setStyle", {backgroundColor:b.backgroundColor});
        this.setNumber.update(new Template(b.setNumberTemplate).evaluate({position:999,total:999}));
        this.setNumber.setStyle({width:this.setNumber.getWidth() + "px",height:this.controllerCenter.getHeight() + "px"});
        this._fixateController();
        this.setNumber.update("");
        this.controller.hide().setStyle("visibility:visible");
        this.addObservers();
        this._lightviewLoadedEvent()
    },_fixateController:function() {
        var b,finalWidth,controller = this.options.controller,border = controller.border;
        if (BROWSER_IS_IE_LT7) {
            b = this.controllerCenter.getDimensions(),finalWidth = b.width + 2 * border;
            this.controllerCenter.setStyle({width:b.width + "px",margin:0});
            this.controllerMiddle.setStyle("width:auto;");
            this.controllerCenter.setStyle({paddingLeft:border + "px"});
            this.controllerMiddle.setStyle({width:finalWidth + "px"});
            $w("top bottom").each(function(a) {
                this["controller" + a.capitalize()].setStyle({width:finalWidth + "px"})
            }, this);
            this.controller.setStyle("margin-left:-" + (finalWidth / 2).round() + "px")
        } else {
            this.controllerMiddle.setStyle("width:auto");
            b = this.controllerMiddle.getDimensions();
            this.setNumber.up().setStyle({lineHeight:b.height + "px",width:this.setNumber.getDimensions().width + "px"});
            this.controller.setStyle({width:b.width + "px",marginLeft:(0 - (b.width / 2).round()) + "px"});
            this.controllerMiddle.setStyle({width:b.width + "px"});
            $w("top bottom").each(function(a) {
                this["controller" + a.capitalize()].setStyle({width:b.width + "px"})
            }, this)
        }
        this._controllerOffset = controller.margin + b.height + 2 * border;
        this._controllerHeight = this.controller.getHeight();
        this.setNumber.setStyle({lineHeight:b.height + "px"})
    }});
    Lightview.buildController = Lightview.buildController.wrap(function(a, b) {
        var c = new Image();
        c.onload = function() {
            c.onload = Prototype.emptyFunction;
            this.controllerButtonDimensions = {width:c.width,height:c.height};
            a(b)
        }.bind(this);
        c.src = this.images + "controller_prev.png";
        var d = (new Image()).src = this.images + "controller_slideshow_stop.png"
    });
    Lightview.build = Lightview.build.wrap(function(a, b) {
        a(b);
        this.buildController()
    });
    Lightview.hide = Lightview.hide.wrap(function(a, b) {
        if (this.view && this.view.isSet()) {
            this.controller.hide();
            this.setNumber.update("")
        }
        a(b)
    })
})();
Lightview.load();
document.observe("dom:loaded", Lightview.start.bind(Lightview));

function isVip(str){
    str = str.toLowerCase();
    return str.endsWith('kupivip.ru');
}

function isLuxe(str) {
    str = str.toLowerCase();
    return str.endsWith('kupiluxe.ru');
}