/** 

 * Name:    Highslide JS

 * Version: 4.1.12 (2011-03-28)

 * Config:  default +events +unobtrusive +imagemap +slideshow +positioning +transitions +viewport +thumbstrip +inline +ajax +iframe +flash
 * Author:  Torstein Hønsi

 * Support: www.highslide.com/support

 * License: www.highslide.com/#license

 */
if (!hs) {
    var hs = {
        lang: {
            cssDirection: "ltr",
            loadingText: "Carregando...",
            loadingTitle: "Clique para cancelar",
            focusTitle: "Clique para trazer para a frente",
            fullExpandTitle: "Expandir para tamanho real (f)",
            creditsText: "",
            creditsTitle: "",
            previousText: "Anterior",
            nextText: "Próximo",
            moveText: "Mover",
            closeText: "Fechar",
            closeTitle: "Fechar (esc)",
            resizeTitle: "Redimensionar",
            playText: "Tocar",
            playTitle: "Tocar slideshow (barra de espaço)",
            pauseText: "Pausar",
            pauseTitle: "Pausar slideshow (barra de espaço)",
            previousTitle: "Anterior (seta esquerda)",
            nextTitle: "Próximo (seta direita)",
            moveTitle: "Mover",
            fullExpandText: "1:1",
            number: "Imagem %1 de %2",
            restoreTitle: "Clique para fechar a imagem, clique e arraste para mover. User as setas para próximo e anterior."
        },
        graphicsDir: "highslide/graphics/",
        expandCursor: "zoomin.cur",
        restoreCursor: "zoomout.cur",
        expandDuration: 250,
        restoreDuration: 250,
        marginLeft: 15,
        marginRight: 15,
        marginTop: 15,
        marginBottom: 15,
        zIndexCounter: 1001,
        loadingOpacity: 0.75,
        allowMultipleInstances: true,
        numberOfImagesToPreload: 5,
        outlineWhileAnimating: 2,
        outlineStartOffset: 3,
        padToMinWidth: false,
        fullExpandPosition: "bottom right",
        fullExpandOpacity: 1,
        showCredits: true,
        creditsHref: "http://highslide.com/",
        creditsTarget: "_self",
        enableKeyListener: true,
        openerTagNames: ["a", "area"],
        transitions: [],
        transitionDuration: 250,
        dimmingOpacity: 0,
        dimmingDuration: 50,
        allowWidthReduction: false,
        allowHeightReduction: true,
        preserveContent: true,
        objectLoadTime: "before",
        cacheAjax: true,
        anchor: "auto",
        align: "auto",
        targetX: null,
        targetY: null,
        dragByHeading: true,
        minWidth: 200,
        minHeight: 200,
        allowSizeReduction: true,
        outlineType: "drop-shadow",
        skin: {
            controls: '<div class="highslide-controls"><ul><li class="highslide-previous"><a href="#" title="{hs.lang.previousTitle}"><span>{hs.lang.previousText}</span></a></li><li class="highslide-play"><a href="#" title="{hs.lang.playTitle}"><span>{hs.lang.playText}</span></a></li><li class="highslide-pause"><a href="#" title="{hs.lang.pauseTitle}"><span>{hs.lang.pauseText}</span></a></li><li class="highslide-next"><a href="#" title="{hs.lang.nextTitle}"><span>{hs.lang.nextText}</span></a></li><li class="highslide-move"><a href="#" title="{hs.lang.moveTitle}"><span>{hs.lang.moveText}</span></a></li><li class="highslide-full-expand"><a href="#" title="{hs.lang.fullExpandTitle}"><span>{hs.lang.fullExpandText}</span></a></li><li class="highslide-close"><a href="#" title="{hs.lang.closeTitle}" ><span>{hs.lang.closeText}</span></a></li></ul></div>',
            contentWrapper: '<div class="highslide-header"><ul><li class="highslide-previous"><a href="#" title="{hs.lang.previousTitle}" onclick="return hs.previous(this)"><span>{hs.lang.previousText}</span></a></li><li class="highslide-next"><a href="#" title="{hs.lang.nextTitle}" onclick="return hs.next(this)"><span>{hs.lang.nextText}</span></a></li><li class="highslide-move"><a href="#" title="{hs.lang.moveTitle}" onclick="return false"><span>{hs.lang.moveText}</span></a></li><li class="highslide-close"><a href="#" title="{hs.lang.closeTitle}" onclick="return hs.close(this)"><span>{hs.lang.closeText}</span></a></li></ul></div><div class="highslide-body"></div><div class="highslide-footer"><div><span class="highslide-resize" title="{hs.lang.resizeTitle}"><span></span></span></div></div>'
        },
        preloadTheseImages: [],
        continuePreloading: true,
        expanders: [],
        overrides: ["creditsHref", "allowSizeReduction", "useBox", "anchor", "align", "targetX", "targetY", "outlineType", "outlineWhileAnimating", "captionId", "captionText", "captionEval", "captionOverlay", "headingId", "headingText", "headingEval", "headingOverlay", "creditsPosition", "dragByHeading", "autoplay", "numberPosition", "transitions", "dimmingOpacity", "width", "height", "contentId", "allowWidthReduction", "allowHeightReduction", "preserveContent", "maincontentId", "maincontentText", "maincontentEval", "objectType", "cacheAjax", "objectWidth", "objectHeight", "objectLoadTime", "swfOptions", "wrapperClassName", "minWidth", "minHeight", "maxWidth", "maxHeight", "pageOrigin", "slideshowGroup", "easing", "easingClose", "fadeInOut", "src"],
        overlays: [],
        idCounter: 0,
        oPos: {
            x: ["leftpanel", "left", "center", "right", "rightpanel"],
            y: ["above", "top", "middle", "bottom", "below"]
        },
        mouse: {},
        headingOverlay: {},
        captionOverlay: {},
        swfOptions: {
            flashvars: {},
            params: {},
            attributes: {}
        },
        timers: [],
        slideshows: [],
        pendingOutlines: {},
        sleeping: [],
        preloadTheseAjax: [],
        cacheBindings: [],
        cachedGets: {},
        clones: {},
        onReady: [],
        uaVersion: /Trident\/4\.0/.test(navigator.userAgent) ? 8 : parseFloat((navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1]),
        ie: (document.all && !window.opera),
        safari: /Safari/.test(navigator.userAgent),
        geckoMac: /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),
        $: function (a) {
            if (a) {
                return document.getElementById(a)
            }
        },
        push: function (a, b) {
            a[a.length] = b
        },
        createElement: function (a, f, e, d, c) {
            var b = document.createElement(a);
            if (f) {
                hs.extend(b, f)
            }
            if (c) {
                hs.setStyles(b, {
                    padding: 0,
                    border: "none",
                    margin: 0
                })
            }
            if (e) {
                hs.setStyles(b, e)
            }
            if (d) {
                d.appendChild(b)
            }
            return b
        },
        extend: function (b, c) {
            for (var a in c) {
                b[a] = c[a]
            }
            return b
        },
        setStyles: function (b, c) {
            for (var a in c) {
                if (hs.ieLt9 && a == "opacity") {
                    if (c[a] > 0.99) {
                        b.style.removeAttribute("filter")
                    } else {
                        b.style.filter = "alpha(opacity=" + (c[a] * 100) + ")"
                    }
                } else {
                    b.style[a] = c[a]
                }
            }
        },
        animate: function (f, a, d) {
            var c, g, j;
            if (typeof d != "object" || d === null) {
                var i = arguments;
                d = {
                    duration: i[2],
                    easing: i[3],
                    complete: i[4]
                }
            }
            if (typeof d.duration != "number") {
                d.duration = 250
            }
            d.easing = Math[d.easing] || Math.easeInQuad;
            d.curAnim = hs.extend({}, a);
            for (var b in a) {
                var h = new hs.fx(f, d, b);
                c = parseFloat(hs.css(f, b)) || 0;
                g = parseFloat(a[b]);
                j = b != "opacity" ? "px" : "";
                h.custom(c, g, j)
            }
        },
        css: function (a, c) {
            if (a.style[c]) {
                return a.style[c]
            } else {
                if (document.defaultView) {
                    return document.defaultView.getComputedStyle(a, null).getPropertyValue(c)
                } else {
                    if (c == "opacity") {
                        c = "filter"
                    }
                    var b = a.currentStyle[c.replace(/\-(\w)/g, function (e, d) {
                        return d.toUpperCase()
                    })];
                    if (c == "filter") {
                        b = b.replace(/alpha\(opacity=([0-9]+)\)/, function (e, d) {
                            return d / 100
                        })
                    }
                    return b === "" ? 1 : b
                }
            }
        },
        getPageSize: function () {
            var f = document,
                b = window,
                e = f.compatMode && f.compatMode != "BackCompat" ? f.documentElement : f.body;
            var c = hs.ieLt9 ? e.clientWidth : (f.documentElement.clientWidth || self.innerWidth),
                a = hs.ieLt9 ? e.clientHeight : self.innerHeight;
            hs.page = {
                width: c,
                height: a,
                scrollLeft: hs.ieLt9 ? e.scrollLeft : pageXOffset,
                scrollTop: hs.ieLt9 ? e.scrollTop : pageYOffset
            };
            return hs.page
        },
        getPosition: function (c) {
            if (/area/i.test(c.tagName)) {
                var e = document.getElementsByTagName("img");
                for (var b = 0; b < e.length; b++) {
                    var a = e[b].useMap;
                    if (a && a.replace(/^.*?#/, "") == c.parentNode.name) {
                        c = e[b];
                        break
                    }
                }
            }
            var d = {
                x: c.offsetLeft,
                y: c.offsetTop
            };
            while (c.offsetParent) {
                c = c.offsetParent;
                d.x += c.offsetLeft;
                d.y += c.offsetTop;
                if (c != document.body && c != document.documentElement) {
                    d.x -= c.scrollLeft;
                    d.y -= c.scrollTop
                }
            }
            return d
        },
        expand: function (b, h, f, d) {
            if (!b) {
                b = hs.createElement("a", null, {
                    display: "none"
                }, hs.container)
            }
            if (typeof b.getParams == "function") {
                return h
            }
            if (d == "html") {
                for (var c = 0; c < hs.sleeping.length; c++) {
                    if (hs.sleeping[c] && hs.sleeping[c].a == b) {
                        hs.sleeping[c].awake();
                        hs.sleeping[c] = null;
                        return false
                    }
                }
                hs.hasHtmlExpanders = true
            }
            try {
                new hs.Expander(b, h, f, d);
                return false
            } catch (g) {
                return true
            }
        },
        htmlExpand: function (b, d, c) {
            return hs.expand(b, d, c, "html")
        },
        getSelfRendered: function () {
            return hs.createElement("div", {
                className: "highslide-html-content",
                innerHTML: hs.replaceLang(hs.skin.contentWrapper)
            })
        },
        getElementByClass: function (e, c, d) {
            var b = e.getElementsByTagName(c);
            for (var a = 0; a < b.length; a++) {
                if ((new RegExp(d)).test(b[a].className)) {
                    return b[a]
                }
            }
            return null
        },
        replaceLang: function (c) {
            c = c.replace(/\s/g, " ");
            var b = /{hs\.lang\.([^}]+)\}/g,
                d = c.match(b),
                e;
            if (d) {
                for (var a = 0; a < d.length; a++) {
                    e = d[a].replace(b, "$1");
                    if (typeof hs.lang[e] != "undefined") {
                        c = c.replace(d[a], hs.lang[e])
                    }
                }
            }
            return c
        },
        setClickEvents: function () {
            var b = document.getElementsByTagName("a");
            for (var a = 0; a < b.length; a++) {
                var c = hs.isUnobtrusiveAnchor(b[a]);
                if (c && !b[a].hsHasSetClick) {
                    (function () {
                        var d = c;
                        if (hs.fireEvent(hs, "onSetClickEvent", {
                            element: b[a],
                            type: d
                        })) {
                            b[a].onclick = (c == "image") ?
                            function () {
                                return hs.expand(this)
                            } : function () {
                                return hs.htmlExpand(this, {
                                    objectType: d
                                })
                            }
                        }
                    })();
                    b[a].hsHasSetClick = true
                }
            }
            hs.getAnchors()
        },
        isUnobtrusiveAnchor: function (a) {
            if (a.rel == "highslide") {
                return "image"
            } else {
                if (a.rel == "highslide-ajax") {
                    return "ajax"
                } else {
                    if (a.rel == "highslide-iframe") {
                        return "iframe"
                    } else {
                        if (a.rel == "highslide-swf") {
                            return "swf"
                        }
                    }
                }
            }
        },
        getCacheBinding: function (b) {
            for (var d = 0; d < hs.cacheBindings.length; d++) {
                if (hs.cacheBindings[d][0] == b) {
                    var e = hs.cacheBindings[d][1];
                    hs.cacheBindings[d][1] = e.cloneNode(1);
                    return e
                }
            }
            return null
        },
        preloadAjax: function (f) {
            var b = hs.getAnchors();
            for (var d = 0; d < b.htmls.length; d++) {
                var c = b.htmls[d];
                if (hs.getParam(c, "objectType") == "ajax" && hs.getParam(c, "cacheAjax")) {
                    hs.push(hs.preloadTheseAjax, c)
                }
            }
            hs.preloadAjaxElement(0)
        },
        preloadAjaxElement: function (d) {
            if (!hs.preloadTheseAjax[d]) {
                return
            }
            var b = hs.preloadTheseAjax[d];
            var c = hs.getNode(hs.getParam(b, "contentId"));
            if (!c) {
                c = hs.getSelfRendered()
            }
            var e = new hs.Ajax(b, c, 1);
            e.onError = function () {};
            e.onLoad = function () {
                hs.push(hs.cacheBindings, [b, c]);
                hs.preloadAjaxElement(d + 1)
            };
            e.run()
        },
        focusTopmost: function () {
            var c = 0,
                b = -1,
                a = hs.expanders,
                e, f;
            for (var d = 0; d < a.length; d++) {
                e = a[d];
                if (e) {
                    f = e.wrapper.style.zIndex;
                    if (f && f > c) {
                        c = f;
                        b = d
                    }
                }
            }
            if (b == -1) {
                hs.focusKey = -1
            } else {
                a[b].focus()
            }
        },
        getParam: function (b, d) {
            b.getParams = b.onclick;
            var c = b.getParams ? b.getParams() : null;
            b.getParams = null;
            return (c && typeof c[d] != "undefined") ? c[d] : (typeof hs[d] != "undefined" ? hs[d] : null)
        },
        getSrc: function (b) {
            var c = hs.getParam(b, "src");
            if (c) {
                return c
            }
            return b.href
        },
        getNode: function (e) {
            var c = hs.$(e),
                d = hs.clones[e],
                b = {};
            if (!c && !d) {
                return null
            }
            if (!d) {
                d = c.cloneNode(true);
                d.id = "";
                hs.clones[e] = d;
                return c
            } else {
                return d.cloneNode(true)
            }
        },
        discardElement: function (a) {
            if (a) {
                hs.garbageBin.appendChild(a)
            }
            hs.garbageBin.innerHTML = ""
        },
        dim: function (b) {
            if (!hs.dimmer) {
                a = true;
                hs.dimmer = hs.createElement("div", {
                    className: "highslide-dimming highslide-viewport-size",
                    owner: "",
                    onclick: function () {
                        if (hs.fireEvent(hs, "onDimmerClick")) {
                            hs.close()
                        }
                    }
                }, {
                    visibility: "visible",
                    opacity: 0
                }, hs.container, true)
            }
            hs.dimmer.style.display = "";
            var a = hs.dimmer.owner == "";
            hs.dimmer.owner += "|" + b.key;
            if (a) {
                if (hs.geckoMac && hs.dimmingGeckoFix) {
                    hs.setStyles(hs.dimmer, {
                        background: "url(" + hs.graphicsDir + "geckodimmer.png)",
                        opacity: 1
                    })
                } else {
                    hs.animate(hs.dimmer, {
                        opacity: b.dimmingOpacity
                    }, hs.dimmingDuration)
                }
            }
        },
        undim: function (a) {
            if (!hs.dimmer) {
                return
            }
            if (typeof a != "undefined") {
                hs.dimmer.owner = hs.dimmer.owner.replace("|" + a, "")
            }
            if ((typeof a != "undefined" && hs.dimmer.owner != "") || (hs.upcoming && hs.getParam(hs.upcoming, "dimmingOpacity"))) {
                return
            }
            if (hs.geckoMac && hs.dimmingGeckoFix) {
                hs.dimmer.style.display = "none"
            } else {
                hs.animate(hs.dimmer, {
                    opacity: 0
                }, hs.dimmingDuration, null, function () {
                    hs.dimmer.style.display = "none"
                })
            }
        },
        transit: function (a, d) {
            var b = d || hs.getExpander();
            d = b;
            if (hs.upcoming) {
                return false
            } else {
                hs.last = b
            }
            hs.removeEventListener(document, window.opera ? "keypress" : "keydown", hs.keyHandler);
            try {
                hs.upcoming = a;
                a.onclick()
            } catch (c) {
                hs.last = hs.upcoming = null
            }
            try {
                if (!a || d.transitions[1] != "crossfade") {
                    d.close()
                }
            } catch (c) {}
            return false
        },
        previousOrNext: function (a, c) {
            var b = hs.getExpander(a);
            if (b) {
                return hs.transit(b.getAdjacentAnchor(c), b)
            } else {
                return false
            }
        },
        previous: function (a) {
            return hs.previousOrNext(a, -1)
        },
        next: function (a) {
            return hs.previousOrNext(a, 1)
        },
        keyHandler: function (a) {
            if (!a) {
                a = window.event
            }
            if (!a.target) {
                a.target = a.srcElement
            }
            if (typeof a.target.form != "undefined") {
                return true
            }
            if (!hs.fireEvent(hs, "onKeyDown", a)) {
                return true
            }
            var b = hs.getExpander();
            var c = null;
            switch (a.keyCode) {
            case 70:
                if (b) {
                    b.doFullExpand()
                }
                return true;
            case 32:
                c = 2;
                break;
            case 34:
            case 39:
            case 40:
                c = 1;
                break;
            case 8:
            case 33:
            case 37:
            case 38:
                c = -1;
                break;
            case 27:
            case 13:
                c = 0
            }
            if (c !== null) {
                hs.removeEventListener(document, window.opera ? "keypress" : "keydown", hs.keyHandler);
                if (!hs.enableKeyListener) {
                    return true
                }
                if (a.preventDefault) {
                    a.preventDefault()
                } else {
                    a.returnValue = false
                }
                if (b) {
                    if (c == 0) {
                        b.close()
                    } else {
                        if (c == 2) {
                            if (b.slideshow) {
                                b.slideshow.hitSpace()
                            }
                        } else {
                            if (b.slideshow) {
                                b.slideshow.pause()
                            }
                            hs.previousOrNext(b.key, c)
                        }
                    }
                    return false
                }
            }
            return true
        },
        registerOverlay: function (a) {
            hs.push(hs.overlays, hs.extend(a, {
                hsId: "hsId" + hs.idCounter++
            }))
        },
        addSlideshow: function (b) {
            var d = b.slideshowGroup;
            if (typeof d == "object") {
                for (var c = 0; c < d.length; c++) {
                    var e = {};
                    for (var a in b) {
                        e[a] = b[a]
                    }
                    e.slideshowGroup = d[c];
                    hs.push(hs.slideshows, e)
                }
            } else {
                hs.push(hs.slideshows, b)
            }
        },
        getWrapperKey: function (c, b) {
            var e, d = /^highslide-wrapper-([0-9]+)$/;
            e = c;
            while (e.parentNode) {
                if (e.hsKey !== undefined) {
                    return e.hsKey
                }
                if (e.id && d.test(e.id)) {
                    return e.id.replace(d, "$1")
                }
                e = e.parentNode
            }
            if (!b) {
                e = c;
                while (e.parentNode) {
                    if (e.tagName && hs.isHsAnchor(e)) {
                        for (var a = 0; a < hs.expanders.length; a++) {
                            var f = hs.expanders[a];
                            if (f && f.a == e) {
                                return a
                            }
                        }
                    }
                    e = e.parentNode
                }
            }
            return null
        },
        getExpander: function (b, a) {
            if (typeof b == "undefined") {
                return hs.expanders[hs.focusKey] || null
            }
            if (typeof b == "number") {
                return hs.expanders[b] || null
            }
            if (typeof b == "string") {
                b = hs.$(b)
            }
            return hs.expanders[hs.getWrapperKey(b, a)] || null
        },
        isHsAnchor: function (b) {
            return (b.onclick && b.onclick.toString().replace(/\s/g, " ").match(/hs.(htmlE|e)xpand/))
        },
        reOrder: function () {
            for (var a = 0; a < hs.expanders.length; a++) {
                if (hs.expanders[a] && hs.expanders[a].isExpanded) {
                    hs.focusTopmost()
                }
            }
        },
        fireEvent: function (c, a, b) {
            return c && c[a] ? (c[a](c, b) !== false) : true
        },
        mouseClickHandler: function (d) {
            if (!d) {
                d = window.event
            }
            if (d.button > 1) {
                return true
            }
            if (!d.target) {
                d.target = d.srcElement
            }
            var b = d.target;
            while (b.parentNode && !(/highslide-(image|move|html|resize)/.test(b.className))) {
                b = b.parentNode
            }
            var f = hs.getExpander(b);
            if (f && (f.isClosing || !f.isExpanded)) {
                return true
            }
            if (f && d.type == "mousedown") {
                if (d.target.form) {
                    return true
                }
                var a = b.className.match(/highslide-(image|move|resize)/);
                if (a) {
                    hs.dragArgs = {
                        exp: f,
                        type: a[1],
                        left: f.x.pos,
                        width: f.x.size,
                        top: f.y.pos,
                        height: f.y.size,
                        clickX: d.clientX,
                        clickY: d.clientY
                    };
                    hs.addEventListener(document, "mousemove", hs.dragHandler);
                    if (d.preventDefault) {
                        d.preventDefault()
                    }
                    if (/highslide-(image|html)-blur/.test(f.content.className)) {
                        f.focus();
                        hs.hasFocused = true
                    }
                    return false
                } else {
                    if (/highslide-html/.test(b.className) && hs.focusKey != f.key) {
                        f.focus();
                        f.doShowHide("hidden")
                    }
                }
            } else {
                if (d.type == "mouseup") {
                    hs.removeEventListener(document, "mousemove", hs.dragHandler);
                    if (hs.dragArgs) {
                        if (hs.styleRestoreCursor && hs.dragArgs.type == "image") {
                            hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor
                        }
                        var c = hs.dragArgs.hasDragged;
                        if (!c && !hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
                            if (hs.fireEvent(f, "onImageClick")) {
                                f.close()
                            }
                        } else {
                            if (c || (!c && hs.hasHtmlExpanders)) {
                                hs.dragArgs.exp.doShowHide("hidden")
                            }
                        }
                        if (hs.dragArgs.exp.releaseMask) {
                            hs.dragArgs.exp.releaseMask.style.display = "none"
                        }
                        if (c) {
                            hs.fireEvent(hs.dragArgs.exp, "onDrop", hs.dragArgs)
                        }
                        hs.hasFocused = false;
                        hs.dragArgs = null
                    } else {
                        if (/highslide-image-blur/.test(b.className)) {
                            b.style.cursor = hs.styleRestoreCursor
                        }
                    }
                }
            }
            return false
        },
        dragHandler: function (c) {
            if (!hs.dragArgs) {
                return true
            }
            if (!c) {
                c = window.event
            }
            var b = hs.dragArgs,
                d = b.exp;
            if (d.iframe) {
                if (!d.releaseMask) {
                    d.releaseMask = hs.createElement("div", null, {
                        position: "absolute",
                        width: d.x.size + "px",
                        height: d.y.size + "px",
                        left: d.x.cb + "px",
                        top: d.y.cb + "px",
                        zIndex: 4,
                        background: (hs.ieLt9 ? "white" : "none"),
                        opacity: 0.01
                    }, d.wrapper, true)
                }
                if (d.releaseMask.style.display == "none") {
                    d.releaseMask.style.display = ""
                }
            }
            b.dX = c.clientX - b.clickX;
            b.dY = c.clientY - b.clickY;
            var f = Math.sqrt(Math.pow(b.dX, 2) + Math.pow(b.dY, 2));
            if (!b.hasDragged) {
                b.hasDragged = (b.type != "image" && f > 0) || (f > (hs.dragSensitivity || 5))
            }
            if (b.hasDragged && c.clientX > 5 && c.clientY > 5) {
                if (!hs.fireEvent(d, "onDrag", b)) {
                    return false
                }
                if (b.type == "resize") {
                    d.resize(b)
                } else {
                    d.moveTo(b.left + b.dX, b.top + b.dY);
                    if (b.type == "image") {
                        d.content.style.cursor = "move"
                    }
                }
            }
            return false
        },
        wrapperMouseHandler: function (c) {
            try {
                if (!c) {
                    c = window.event
                }
                var b = /mouseover/i.test(c.type);
                if (!c.target) {
                    c.target = c.srcElement
                }
                if (!c.relatedTarget) {
                    c.relatedTarget = b ? c.fromElement : c.toElement
                }
                var d = hs.getExpander(c.target);
                if (!d.isExpanded) {
                    return
                }
                if (!d || !c.relatedTarget || hs.getExpander(c.relatedTarget, true) == d || hs.dragArgs) {
                    return
                }
                hs.fireEvent(d, b ? "onMouseOver" : "onMouseOut", c);
                for (var a = 0; a < d.overlays.length; a++) {
                    (function () {
                        var e = hs.$("hsId" + d.overlays[a]);
                        if (e && e.hideOnMouseOut) {
                            if (b) {
                                hs.setStyles(e, {
                                    visibility: "visible",
                                    display: ""
                                })
                            }
                            hs.animate(e, {
                                opacity: b ? e.opacity : 0
                            }, e.dur)
                        }
                    })()
                }
            } catch (c) {}
        },
        addEventListener: function (a, c, b) {
            if (a == document && c == "ready") {
                hs.push(hs.onReady, b)
            }
            try {
                a.addEventListener(c, b, false)
            } catch (d) {
                try {
                    a.detachEvent("on" + c, b);
                    a.attachEvent("on" + c, b)
                } catch (d) {
                    a["on" + c] = b
                }
            }
        },
        removeEventListener: function (a, c, b) {
            try {
                a.removeEventListener(c, b, false)
            } catch (d) {
                try {
                    a.detachEvent("on" + c, b)
                } catch (d) {
                    a["on" + c] = null
                }
            }
        },
        preloadFullImage: function (b) {
            if (hs.continuePreloading && hs.preloadTheseImages[b] && hs.preloadTheseImages[b] != "undefined") {
                var a = document.createElement("img");
                a.onload = function () {
                    a = null;
                    hs.preloadFullImage(b + 1)
                };
                a.src = hs.preloadTheseImages[b]
            }
        },
        preloadImages: function (c) {
            if (c && typeof c != "object") {
                hs.numberOfImagesToPreload = c
            }
            var a = hs.getAnchors();
            for (var b = 0; b < a.images.length && b < hs.numberOfImagesToPreload; b++) {
                hs.push(hs.preloadTheseImages, hs.getSrc(a.images[b]))
            }
            if (hs.outlineType) {
                new hs.Outline(hs.outlineType, function () {
                    hs.preloadFullImage(0)
                })
            } else {
                hs.preloadFullImage(0)
            }
            if (hs.restoreCursor) {
                var d = hs.createElement("img", {
                    src: hs.graphicsDir + hs.restoreCursor
                })
            }
        },
        init: function () {
            if (!hs.container) {
                hs.ieLt7 = hs.ie && hs.uaVersion < 7;
                hs.ieLt9 = hs.ie && hs.uaVersion < 9;
                hs.getPageSize();
                hs.ie6SSL = hs.ieLt7 && location.protocol == "https:";
                for (var a in hs.langDefaults) {
                    if (typeof hs[a] != "undefined") {
                        hs.lang[a] = hs[a]
                    } else {
                        if (typeof hs.lang[a] == "undefined" && typeof hs.langDefaults[a] != "undefined") {
                            hs.lang[a] = hs.langDefaults[a]
                        }
                    }
                }
                hs.container = hs.createElement("div", {
                    className: "highslide-container"
                }, {
                    position: "absolute",
                    left: 0,
                    top: 0,
                    width: "100%",
                    zIndex: hs.zIndexCounter,
                    direction: "ltr"
                }, document.body, true);
                hs.loading = hs.createElement("a", {
                    className: "highslide-loading",
                    title: hs.lang.loadingTitle,
                    innerHTML: hs.lang.loadingText,
                    href: "javascript:;"
                }, {
                    position: "absolute",
                    top: "-9999px",
                    opacity: hs.loadingOpacity,
                    zIndex: 1
                }, hs.container);
                hs.garbageBin = hs.createElement("div", null, {
                    display: "none"
                }, hs.container);
                hs.viewport = hs.createElement("div", {
                    className: "highslide-viewport highslide-viewport-size"
                }, {
                    visibility: (hs.safari && hs.uaVersion < 525) ? "visible" : "hidden"
                }, hs.container, 1);
                hs.clearing = hs.createElement("div", null, {
                    clear: "both",
                    paddingTop: "1px"
                }, null, true);
                Math.linearTween = function (f, e, h, g) {
                    return h * f / g + e
                };
                Math.easeInQuad = function (f, e, h, g) {
                    return h * (f /= g) * f + e
                };
                Math.easeOutQuad = function (f, e, h, g) {
                    return -h * (f /= g) * (f - 2) + e
                };
                hs.hideSelects = hs.ieLt7;
                hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == "KDE" || (hs.ieLt7 && hs.uaVersion < 5.5));
                hs.fireEvent(this, "onActivate")
            }
        },
        ready: function () {
            if (hs.isReady) {
                return
            }
            hs.isReady = true;
            for (var a = 0; a < hs.onReady.length; a++) {
                hs.onReady[a]()
            }
        },
        updateAnchors: function () {
            var a, d, l = [],
                h = [],
                k = [],
                b = {},
                m;
            for (var e = 0; e < hs.openerTagNames.length; e++) {
                d = document.getElementsByTagName(hs.openerTagNames[e]);
                for (var c = 0; c < d.length; c++) {
                    a = d[c];
                    m = hs.isHsAnchor(a);
                    if (m) {
                        hs.push(l, a);
                        if (m[0] == "hs.expand") {
                            hs.push(h, a)
                        } else {
                            if (m[0] == "hs.htmlExpand") {
                                hs.push(k, a)
                            }
                        }
                        var f = hs.getParam(a, "slideshowGroup") || "none";
                        if (!b[f]) {
                            b[f] = []
                        }
                        hs.push(b[f], a)
                    }
                }
            }
            hs.anchors = {
                all: l,
                groups: b,
                images: h,
                htmls: k
            };
            return hs.anchors
        },
        getAnchors: function () {
            return hs.anchors || hs.updateAnchors()
        },
        close: function (a) {
            var b = hs.getExpander(a);
            if (b) {
                b.close()
            }
            return false
        }
    };
    hs.fx = function (b, a, c) {
        this.options = a;
        this.elem = b;
        this.prop = c;
        if (!a.orig) {
            a.orig = {}
        }
    };
    hs.fx.prototype = {
        update: function () {
            (hs.fx.step[this.prop] || hs.fx.step._default)(this);
            if (this.options.step) {
                this.options.step.call(this.elem, this.now, this)
            }
        },
        custom: function (e, d, c) {
            this.startTime = (new Date()).getTime();
            this.start = e;
            this.end = d;
            this.unit = c;
            this.now = this.start;
            this.pos = this.state = 0;
            var a = this;

            function b(f) {
                return a.step(f)
            }
            b.elem = this.elem;
            if (b() && hs.timers.push(b) == 1) {
                hs.timerId = setInterval(function () {
                    var g = hs.timers;
                    for (var f = 0; f < g.length; f++) {
                        if (!g[f]()) {
                            g.splice(f--, 1)
                        }
                    }
                    if (!g.length) {
                        clearInterval(hs.timerId)
                    }
                }, 13)
            }
        },
        step: function (d) {
            var c = (new Date()).getTime();
            if (d || c >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                var a = true;
                for (var b in this.options.curAnim) {
                    if (this.options.curAnim[b] !== true) {
                        a = false
                    }
                }
                if (a) {
                    if (this.options.complete) {
                        this.options.complete.call(this.elem)
                    }
                }
                return false
            } else {
                var e = c - this.startTime;
                this.state = e / this.options.duration;
                this.pos = this.options.easing(e, 0, 1, this.options.duration);
                this.now = this.start + ((this.end - this.start) * this.pos);
                this.update()
            }
            return true
        }
    };
    hs.extend(hs.fx, {
        step: {
            opacity: function (a) {
                hs.setStyles(a.elem, {
                    opacity: a.now
                })
            },
            _default: function (a) {
                try {
                    if (a.elem.style && a.elem.style[a.prop] != null) {
                        a.elem.style[a.prop] = a.now + a.unit
                    } else {
                        a.elem[a.prop] = a.now
                    }
                } catch (b) {}
            }
        }
    });
    hs.Outline = function (g, e) {
        this.onLoad = e;
        this.outlineType = g;
        var a = hs.uaVersion,
            f;
        this.hasAlphaImageLoader = hs.ie && hs.uaVersion < 7;
        if (!g) {
            if (e) {
                e()
            }
            return
        }
        hs.init();
        this.table = hs.createElement("table", {
            cellSpacing: 0
        }, {
            visibility: "hidden",
            position: "absolute",
            borderCollapse: "collapse",
            width: 0
        }, hs.container, true);
        var b = hs.createElement("tbody", null, null, this.table, 1);
        this.td = [];
        for (var c = 0; c <= 8; c++) {
            if (c % 3 == 0) {
                f = hs.createElement("tr", null, {
                    height: "auto"
                }, b, true)
            }
            this.td[c] = hs.createElement("td", null, null, f, true);
            var d = c != 4 ? {
                lineHeight: 0,
                fontSize: 0
            } : {
                position: "relative"
            };
            hs.setStyles(this.td[c], d)
        }
        this.td[4].className = g + " highslide-outline";
        this.preloadGraphic()
    };
    hs.Outline.prototype = {
        preloadGraphic: function () {
            var b = hs.graphicsDir + (hs.outlinesDir || "outlines/") + this.outlineType + ".png";
            var a = hs.safari && hs.uaVersion < 525 ? hs.container : null;
            this.graphic = hs.createElement("img", null, {
                position: "absolute",
                top: "-9999px"
            }, a, true);
            var c = this;
            this.graphic.onload = function () {
                c.onGraphicLoad()
            };
            this.graphic.src = b
        },
        onGraphicLoad: function () {
            var d = this.offset = this.graphic.width / 4,
                f = [
                    [0, 0],
                    [0, -4],
                    [-2, 0],
                    [0, -8], 0, [-2, -8],
                    [0, -2],
                    [0, -6],
                    [-2, -2]
                ],
                c = {
                    height: (2 * d) + "px",
                    width: (2 * d) + "px"
                };
            for (var b = 0; b <= 8; b++) {
                if (f[b]) {
                    if (this.hasAlphaImageLoader) {
                        var a = (b == 1 || b == 7) ? "100%" : this.graphic.width + "px";
                        var e = hs.createElement("div", null, {
                            width: "100%",
                            height: "100%",
                            position: "relative",
                            overflow: "hidden"
                        }, this.td[b], true);
                        hs.createElement("div", null, {
                            filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='" + this.graphic.src + "')",
                            position: "absolute",
                            width: a,
                            height: this.graphic.height + "px",
                            left: (f[b][0] * d) + "px",
                            top: (f[b][1] * d) + "px"
                        }, e, true)
                    } else {
                        hs.setStyles(this.td[b], {
                            background: "url(" + this.graphic.src + ") " + (f[b][0] * d) + "px " + (f[b][1] * d) + "px"
                        })
                    }
                    if (window.opera && (b == 3 || b == 5)) {
                        hs.createElement("div", null, c, this.td[b], true)
                    }
                    hs.setStyles(this.td[b], c)
                }
            }
            this.graphic = null;
            if (hs.pendingOutlines[this.outlineType]) {
                hs.pendingOutlines[this.outlineType].destroy()
            }
            hs.pendingOutlines[this.outlineType] = this;
            if (this.onLoad) {
                this.onLoad()
            }
        },
        setPosition: function (g, e, c, b, f) {
            var d = this.exp,
                a = d.wrapper.style,
                e = e || 0,
                g = g || {
                    x: d.x.pos + e,
                    y: d.y.pos + e,
                    w: d.x.get("wsize") - 2 * e,
                    h: d.y.get("wsize") - 2 * e
                };
            if (c) {
                this.table.style.visibility = (g.h >= 4 * this.offset) ? "visible" : "hidden"
            }
            hs.setStyles(this.table, {
                left: (g.x - this.offset) + "px",
                top: (g.y - this.offset) + "px",
                width: (g.w + 2 * this.offset) + "px"
            });
            g.w -= 2 * this.offset;
            g.h -= 2 * this.offset;
            hs.setStyles(this.td[4], {
                width: g.w >= 0 ? g.w + "px" : 0,
                height: g.h >= 0 ? g.h + "px" : 0
            });
            if (this.hasAlphaImageLoader) {
                this.td[3].style.height = this.td[5].style.height = this.td[4].style.height
            }
        },
        destroy: function (a) {
            if (a) {
                this.table.style.visibility = "hidden"
            } else {
                hs.discardElement(this.table)
            }
        }
    };
    hs.Dimension = function (b, a) {
        this.exp = b;
        this.dim = a;
        this.ucwh = a == "x" ? "Width" : "Height";
        this.wh = this.ucwh.toLowerCase();
        this.uclt = a == "x" ? "Left" : "Top";
        this.lt = this.uclt.toLowerCase();
        this.ucrb = a == "x" ? "Right" : "Bottom";
        this.rb = this.ucrb.toLowerCase();
        this.p1 = this.p2 = 0
    };
    hs.Dimension.prototype = {
        get: function (a) {
            switch (a) {
            case "loadingPos":
                return this.tpos + this.tb + (this.t - hs.loading["offset" + this.ucwh]) / 2;
            case "loadingPosXfade":
                return this.pos + this.cb + this.p1 + (this.size - hs.loading["offset" + this.ucwh]) / 2;
            case "wsize":
                return this.size + 2 * this.cb + this.p1 + this.p2;
            case "fitsize":
                return this.clientSize - this.marginMin - this.marginMax;
            case "maxsize":
                return this.get("fitsize") - 2 * this.cb - this.p1 - this.p2;
            case "opos":
                return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
            case "osize":
                return this.get("wsize") + (this.exp.outline ? 2 * this.exp.outline.offset : 0);
            case "imgPad":
                return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0
            }
        },
        calcBorders: function () {
            this.cb = (this.exp.content["offset" + this.ucwh] - this.t) / 2;
            this.marginMax = hs["margin" + this.ucrb]
        },
        calcThumb: function () {
            this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) : this.exp.el["offset" + this.ucwh];
            this.tpos = this.exp.tpos[this.dim];
            this.tb = (this.exp.el["offset" + this.ucwh] - this.t) / 2;
            if (this.tpos == 0 || this.tpos == -1) {
                this.tpos = (hs.page[this.wh] / 2) + hs.page["scroll" + this.uclt]
            }
        },
        calcExpanded: function () {
            var a = this.exp;
            this.justify = "auto";
            if (a.align == "center") {
                this.justify = "center"
            } else {
                if (new RegExp(this.lt).test(a.anchor)) {
                    this.justify = null
                } else {
                    if (new RegExp(this.rb).test(a.anchor)) {
                        this.justify = "max"
                    }
                }
            }
            this.pos = this.tpos - this.cb + this.tb;
            if (this.maxHeight && this.dim == "x") {
                a.maxWidth = Math.min(a.maxWidth || this.full, a.maxHeight * this.full / a.y.full)
            }
            this.size = Math.min(this.full, a["max" + this.ucwh] || this.full);
            this.minSize = a.allowSizeReduction ? Math.min(a["min" + this.ucwh], this.full) : this.full;
            if (a.isImage && a.useBox) {
                this.size = a[this.wh];
                this.imgSize = this.full
            }
            if (this.dim == "x" && hs.padToMinWidth) {
                this.minSize = a.minWidth
            }
            this.target = a["target" + this.dim.toUpperCase()];
            this.marginMin = hs["margin" + this.uclt];
            this.scroll = hs.page["scroll" + this.uclt];
            this.clientSize = hs.page[this.wh]
        },
        setSize: function (a) {
            var f = this.exp;
            if (f.isImage && (f.useBox || hs.padToMinWidth)) {
                this.imgSize = a;
                this.size = Math.max(this.size, this.imgSize);
                f.content.style[this.lt] = this.get("imgPad") + "px"
            } else {
                this.size = a
            }
            f.content.style[this.wh] = a + "px";
            f.wrapper.style[this.wh] = this.get("wsize") + "px";
            if (f.outline) {
                f.outline.setPosition()
            }
            if (f.releaseMask) {
                f.releaseMask.style[this.wh] = a + "px"
            }
            if (this.dim == "y" && f.iDoc && f.body.style.height != "auto") {
                try {
                    f.iDoc.body.style.overflow = "auto"
                } catch (b) {}
            }
            if (f.isHtml) {
                var c = f.scrollerDiv;
                if (this.sizeDiff === undefined) {
                    this.sizeDiff = f.innerContent["offset" + this.ucwh] - c["offset" + this.ucwh]
                }
                c.style[this.wh] = (this.size - this.sizeDiff) + "px";
                if (this.dim == "x") {
                    f.mediumContent.style.width = "auto"
                }
                if (f.body) {
                    f.body.style[this.wh] = "auto"
                }
            }
            if (this.dim == "x" && f.overlayBox) {
                f.sizeOverlayBox(true)
            }
            if (this.dim == "x" && f.slideshow && f.isImage) {
                if (a == this.full) {
                    f.slideshow.disable("full-expand")
                } else {
                    f.slideshow.enable("full-expand")
                }
            }
        },
        setPos: function (a) {
            this.pos = a;
            this.exp.wrapper.style[this.lt] = a + "px";
            if (this.exp.outline) {
                this.exp.outline.setPosition()
            }
        }
    };
    hs.Expander = function (k, f, b, l) {
        if (document.readyState && hs.ie && !hs.isReady) {
            hs.addEventListener(document, "ready", function () {
                new hs.Expander(k, f, b, l)
            });
            return
        }
        this.a = k;
        this.custom = b;
        this.contentType = l || "image";
        this.isHtml = (l == "html");
        this.isImage = !this.isHtml;
        hs.continuePreloading = false;
        this.overlays = [];
        this.last = hs.last;
        hs.last = null;
        hs.init();
        var m = this.key = hs.expanders.length;
        for (var g = 0; g < hs.overrides.length; g++) {
            var c = hs.overrides[g];
            this[c] = f && typeof f[c] != "undefined" ? f[c] : hs[c]
        }
        if (!this.src) {
            this.src = k.href
        }
        var d = (f && f.thumbnailId) ? hs.$(f.thumbnailId) : k;
        d = this.thumb = d.getElementsByTagName("img")[0] || d;
        this.thumbsUserSetId = d.id || k.id;
        if (!hs.fireEvent(this, "onInit")) {
            return true
        }
        for (var g = 0; g < hs.expanders.length; g++) {
            if (hs.expanders[g] && hs.expanders[g].a == k && !(this.last && this.transitions[1] == "crossfade")) {
                hs.expanders[g].focus();
                return false
            }
        }
        if (!hs.allowSimultaneousLoading) {
            for (var g = 0; g < hs.expanders.length; g++) {
                if (hs.expanders[g] && hs.expanders[g].thumb != d && !hs.expanders[g].onLoadStarted) {
                    hs.expanders[g].cancelLoading()
                }
            }
        }
        hs.expanders[m] = this;
        if (!hs.allowMultipleInstances && !hs.upcoming) {
            if (hs.expanders[m - 1]) {
                hs.expanders[m - 1].close()
            }
            if (typeof hs.focusKey != "undefined" && hs.expanders[hs.focusKey]) {
                hs.expanders[hs.focusKey].close()
            }
        }
        this.el = d;
        this.tpos = this.pageOrigin || hs.getPosition(d);
        hs.getPageSize();
        var j = this.x = new hs.Dimension(this, "x");
        j.calcThumb();
        var h = this.y = new hs.Dimension(this, "y");
        h.calcThumb();
        if (/area/i.test(d.tagName)) {
            this.getImageMapAreaCorrection(d)
        }
        this.wrapper = hs.createElement("div", {
            id: "highslide-wrapper-" + this.key,
            className: "highslide-wrapper " + this.wrapperClassName
        }, {
            visibility: "hidden",
            position: "absolute",
            zIndex: hs.zIndexCounter += 2
        }, null, true);
        this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
        if (this.contentType == "image" && this.outlineWhileAnimating == 2) {
            this.outlineWhileAnimating = 0
        }
        if (!this.outlineType || (this.last && this.isImage && this.transitions[1] == "crossfade")) {
            this[this.contentType + "Create"]()
        } else {
            if (hs.pendingOutlines[this.outlineType]) {
                this.connectOutline();
                this[this.contentType + "Create"]()
            } else {
                this.showLoading();
                var e = this;
                new hs.Outline(this.outlineType, function () {
                    e.connectOutline();
                    e[e.contentType + "Create"]()
                })
            }
        }
        return true
    };
    hs.Expander.prototype = {
        error: function (a) {
            if (hs.debug) {
                alert("Line " + a.lineNumber + ": " + a.message)
            } else {
                window.location.href = this.src
            }
        },
        connectOutline: function () {
            var a = this.outline = hs.pendingOutlines[this.outlineType];
            a.exp = this;
            a.table.style.zIndex = this.wrapper.style.zIndex - 1;
            hs.pendingOutlines[this.outlineType] = null
        },
        showLoading: function () {
            if (this.onLoadStarted || this.loading) {
                return
            }
            this.loading = hs.loading;
            var c = this;
            this.loading.onclick = function () {
                c.cancelLoading()
            };
            if (!hs.fireEvent(this, "onShowLoading")) {
                return
            }
            var c = this,
                a = this.x.get("loadingPos") + "px",
                b = this.y.get("loadingPos") + "px";
            if (!d && this.last && this.transitions[1] == "crossfade") {
                var d = this.last
            }
            if (d) {
                a = d.x.get("loadingPosXfade") + "px";
                b = d.y.get("loadingPosXfade") + "px";
                this.loading.style.zIndex = hs.zIndexCounter++
            }
            setTimeout(function () {
                if (c.loading) {
                    hs.setStyles(c.loading, {
                        left: a,
                        top: b,
                        zIndex: hs.zIndexCounter++
                    })
                }
            }, 100)
        },
        imageCreate: function () {
            var b = this;
            var a = document.createElement("img");
            this.content = a;
            a.onload = function () {
                if (hs.expanders[b.key]) {
                    b.contentLoaded()
                }
            };
            if (hs.blockRightClick) {
                a.oncontextmenu = function () {
                    return false
                }
            }
            a.className = "highslide-image";
            hs.setStyles(a, {
                visibility: "hidden",
                display: "block",
                position: "absolute",
                maxWidth: "9999px",
                zIndex: 3
            });
            a.title = hs.lang.restoreTitle;
            if (hs.safari && hs.uaVersion < 525) {
                hs.container.appendChild(a)
            }
            if (hs.ie && hs.flushImgSize) {
                a.src = null
            }
            a.src = this.src;
            this.showLoading()
        },
        htmlCreate: function () {
            if (!hs.fireEvent(this, "onBeforeGetContent")) {
                return
            }
            this.content = hs.getCacheBinding(this.a);
            if (!this.content) {
                this.content = hs.getNode(this.contentId)
            }
            if (!this.content) {
                this.content = hs.getSelfRendered()
            }
            this.getInline(["maincontent"]);
            if (this.maincontent) {
                var a = hs.getElementByClass(this.content, "div", "highslide-body");
                if (a) {
                    a.appendChild(this.maincontent)
                }
                this.maincontent.style.display = "block"
            }
            hs.fireEvent(this, "onAfterGetContent");
            var d = this.innerContent = this.content;
            if (/(swf|iframe)/.test(this.objectType)) {
                this.setObjContainerSize(d)
            }
            hs.container.appendChild(this.wrapper);
            hs.setStyles(this.wrapper, {
                position: "static",
                padding: "0 " + hs.marginRight + "px 0 " + hs.marginLeft + "px"
            });
            this.content = hs.createElement("div", {
                className: "highslide-html"
            }, {
                position: "relative",
                zIndex: 3,
                height: 0,
                overflow: "hidden"
            }, this.wrapper);
            this.mediumContent = hs.createElement("div", null, null, this.content, 1);
            this.mediumContent.appendChild(d);
            hs.setStyles(d, {
                position: "relative",
                display: "block",
                direction: hs.lang.cssDirection || ""
            });
            if (this.width) {
                d.style.width = this.width + "px"
            }
            if (this.height) {
                hs.setStyles(d, {
                    height: this.height + "px",
                    overflow: "hidden"
                })
            }
            if (d.offsetWidth < this.minWidth) {
                d.style.width = this.minWidth + "px"
            }
            if (this.objectType == "ajax" && !hs.getCacheBinding(this.a)) {
                this.showLoading();
                var c = this;
                var b = new hs.Ajax(this.a, d);
                b.src = this.src;
                b.onLoad = function () {
                    if (hs.expanders[c.key]) {
                        c.contentLoaded()
                    }
                };
                b.onError = function () {
                    location.href = c.src
                };
                b.run()
            } else {
                if (this.objectType == "iframe" && this.objectLoadTime == "before") {
                    this.writeExtendedContent()
                } else {
                    this.contentLoaded()
                }
            }
        },
        contentLoaded: function () {
            try {
                if (!this.content) {
                    return
                }
                this.content.onload = null;
                if (this.onLoadStarted) {
                    return
                } else {
                    this.onLoadStarted = true
                }
                var j = this.x,
                    g = this.y;
                if (this.loading) {
                    hs.setStyles(this.loading, {
                        top: "-9999px"
                    });
                    this.loading = null;
                    hs.fireEvent(this, "onHideLoading")
                }
                if (this.isImage) {
                    j.full = this.content.width;
                    g.full = this.content.height;
                    hs.setStyles(this.content, {
                        width: j.t + "px",
                        height: g.t + "px"
                    });
                    this.wrapper.appendChild(this.content);
                    hs.container.appendChild(this.wrapper)
                } else {
                    if (this.htmlGetSize) {
                        this.htmlGetSize()
                    }
                }
                j.calcBorders();
                g.calcBorders();
                hs.setStyles(this.wrapper, {
                    left: (j.tpos + j.tb - j.cb) + "px",
                    top: (g.tpos + j.tb - g.cb) + "px"
                });
                this.initSlideshow();
                this.getOverlays();
                var f = j.full / g.full;
                j.calcExpanded();
                this.justify(j);
                g.calcExpanded();
                this.justify(g);
                if (this.isHtml) {
                    this.htmlSizeOperations()
                }
                if (this.overlayBox) {
                    this.sizeOverlayBox(0, 1)
                }
                if (this.allowSizeReduction) {
                    if (this.isImage) {
                        this.correctRatio(f)
                    } else {
                        this.fitOverlayBox()
                    }
                    var k = this.slideshow;
                    if (k && this.last && k.controls && k.fixedControls) {
                        var h = k.overlayOptions.position || "",
                            a;
                        for (var c in hs.oPos) {
                            for (var b = 0; b < 5; b++) {
                                a = this[c];
                                if (h.match(hs.oPos[c][b])) {
                                    a.pos = this.last[c].pos + (this.last[c].p1 - a.p1) + (this.last[c].size - a.size) * [0, 0, 0.5, 1, 1][b];
                                    if (k.fixedControls == "fit") {
                                        if (a.pos + a.size + a.p1 + a.p2 > a.scroll + a.clientSize - a.marginMax) {
                                            a.pos = a.scroll + a.clientSize - a.size - a.marginMin - a.marginMax - a.p1 - a.p2
                                        }
                                        if (a.pos < a.scroll + a.marginMin) {
                                            a.pos = a.scroll + a.marginMin
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
                        this.createFullExpand();
                        if (this.overlays.length == 1) {
                            this.sizeOverlayBox()
                        }
                    }
                }
                this.show()
            } catch (d) {
                this.error(d)
            }
        },
        setObjContainerSize: function (a, d) {
            var b = hs.getElementByClass(a, "DIV", "highslide-body");
            if (/(iframe|swf)/.test(this.objectType)) {
                if (this.objectWidth) {
                    b.style.width = this.objectWidth + "px"
                }
                if (this.objectHeight) {
                    b.style.height = this.objectHeight + "px"
                }
            }
        },
        writeExtendedContent: function () {
            if (this.hasExtendedContent) {
                return
            }
            var f = this;
            this.body = hs.getElementByClass(this.innerContent, "DIV", "highslide-body");
            if (this.objectType == "iframe") {
                this.showLoading();
                var g = hs.clearing.cloneNode(1);
                this.body.appendChild(g);
                this.newWidth = this.innerContent.offsetWidth;
                if (!this.objectWidth) {
                    this.objectWidth = g.offsetWidth
                }
                var c = this.innerContent.offsetHeight - this.body.offsetHeight,
                    d = this.objectHeight || hs.page.height - c - hs.marginTop - hs.marginBottom,
                    e = this.objectLoadTime == "before" ? ' onload="if (hs.expanders[' + this.key + "]) hs.expanders[" + this.key + '].contentLoaded()" ' : "";
                this.body.innerHTML += '<iframe name="hs' + (new Date()).getTime() + '" frameborder="0" key="' + this.key + '"  style="width:' + this.objectWidth + "px; height:" + d + 'px" ' + e + ' src="' + this.src + '" ></iframe>';
                this.ruler = this.body.getElementsByTagName("div")[0];
                this.iframe = this.body.getElementsByTagName("iframe")[0];
                if (this.objectLoadTime == "after") {
                    this.correctIframeSize()
                }
            }
            if (this.objectType == "swf") {
                this.body.id = this.body.id || "hs-flash-id-" + this.key;
                var b = this.swfOptions;
                if (!b.params) {
                    b.params = {}
                }
                if (typeof b.params.wmode == "undefined") {
                    b.params.wmode = "transparent"
                }
                if (swfobject) {
                    swfobject.embedSWF(this.src, this.body.id, this.objectWidth, this.objectHeight, b.version || "7", b.expressInstallSwfurl, b.flashvars, b.params, b.attributes)
                }
            }
            this.hasExtendedContent = true
        },
        htmlGetSize: function () {
            if (this.iframe && !this.objectHeight) {
                this.iframe.style.height = this.body.style.height = this.getIframePageHeight() + "px"
            }
            this.innerContent.appendChild(hs.clearing);
            if (!this.x.full) {
                this.x.full = this.innerContent.offsetWidth
            }
            this.y.full = this.innerContent.offsetHeight;
            this.innerContent.removeChild(hs.clearing);
            if (hs.ie && this.newHeight > parseInt(this.innerContent.currentStyle.height)) {
                this.newHeight = parseInt(this.innerContent.currentStyle.height)
            }
            hs.setStyles(this.wrapper, {
                position: "absolute",
                padding: "0"
            });
            hs.setStyles(this.content, {
                width: this.x.t + "px",
                height: this.y.t + "px"
            })
        },
        getIframePageHeight: function () {
            var a;
            try {
                var d = this.iDoc = this.iframe.contentDocument || this.iframe.contentWindow.document;
                var b = d.createElement("div");
                b.style.clear = "both";
                d.body.appendChild(b);
                a = b.offsetTop;
                if (hs.ie) {
                    a += parseInt(d.body.currentStyle.marginTop) + parseInt(d.body.currentStyle.marginBottom) - 1
                }
            } catch (c) {
                a = 300
            }
            return a
        },
        correctIframeSize: function () {
            var b = this.innerContent.offsetWidth - this.ruler.offsetWidth;
            hs.discardElement(this.ruler);
            if (b < 0) {
                b = 0
            }
            var a = this.innerContent.offsetHeight - this.iframe.offsetHeight;
            if (this.iDoc && !this.objectHeight && !this.height && this.y.size == this.y.full) {
                try {
                    this.iDoc.body.style.overflow = "hidden"
                } catch (c) {}
            }
            hs.setStyles(this.iframe, {
                width: Math.abs(this.x.size - b) + "px",
                height: Math.abs(this.y.size - a) + "px"
            });
            hs.setStyles(this.body, {
                width: this.iframe.style.width,
                height: this.iframe.style.height
            });
            this.scrollingContent = this.iframe;
            this.scrollerDiv = this.scrollingContent
        },
        htmlSizeOperations: function () {
            this.setObjContainerSize(this.innerContent);
            if (this.objectType == "swf" && this.objectLoadTime == "before") {
                this.writeExtendedContent()
            }
            if (this.x.size < this.x.full && !this.allowWidthReduction) {
                this.x.size = this.x.full
            }
            if (this.y.size < this.y.full && !this.allowHeightReduction) {
                this.y.size = this.y.full
            }
            this.scrollerDiv = this.innerContent;
            hs.setStyles(this.mediumContent, {
                position: "relative",
                width: this.x.size + "px"
            });
            hs.setStyles(this.innerContent, {
                border: "none",
                width: "auto",
                height: "auto"
            });
            var e = hs.getElementByClass(this.innerContent, "DIV", "highslide-body");
            if (e && !/(iframe|swf)/.test(this.objectType)) {
                var b = e;
                e = hs.createElement(b.nodeName, null, {
                    overflow: "hidden"
                }, null, true);
                b.parentNode.insertBefore(e, b);
                e.appendChild(hs.clearing);
                e.appendChild(b);
                var c = this.innerContent.offsetWidth - e.offsetWidth;
                var a = this.innerContent.offsetHeight - e.offsetHeight;
                e.removeChild(hs.clearing);
                var d = hs.safari || navigator.vendor == "KDE" ? 1 : 0;
                hs.setStyles(e, {
                    width: (this.x.size - c - d) + "px",
                    height: (this.y.size - a) + "px",
                    overflow: "auto",
                    position: "relative"
                });
                if (d && b.offsetHeight > e.offsetHeight) {
                    e.style.width = (parseInt(e.style.width) + d) + "px"
                }
                this.scrollingContent = e;
                this.scrollerDiv = this.scrollingContent
            }
            if (this.iframe && this.objectLoadTime == "before") {
                this.correctIframeSize()
            }
            if (!this.scrollingContent && this.y.size < this.mediumContent.offsetHeight) {
                this.scrollerDiv = this.content
            }
            if (this.scrollerDiv == this.content && !this.allowWidthReduction && !/(iframe|swf)/.test(this.objectType)) {
                this.x.size += 17
            }
            if (this.scrollerDiv && this.scrollerDiv.offsetHeight > this.scrollerDiv.parentNode.offsetHeight) {
                setTimeout("try { hs.expanders[" + this.key + "].scrollerDiv.style.overflow = 'auto'; } catch(e) {}", hs.expandDuration)
            }
        },
        getImageMapAreaCorrection: function (d) {
            var h = d.coords.split(",");
            for (var b = 0; b < h.length; b++) {
                h[b] = parseInt(h[b])
            }
            if (d.shape.toLowerCase() == "circle") {
                this.x.tpos += h[0] - h[2];
                this.y.tpos += h[1] - h[2];
                this.x.t = this.y.t = 2 * h[2]
            } else {
                var f, e, a = f = h[0],
                    g = e = h[1];
                for (var b = 0; b < h.length; b++) {
                    if (b % 2 == 0) {
                        a = Math.min(a, h[b]);
                        f = Math.max(f, h[b])
                    } else {
                        g = Math.min(g, h[b]);
                        e = Math.max(e, h[b])
                    }
                }
                this.x.tpos += a;
                this.x.t = f - a;
                this.y.tpos += g;
                this.y.t = e - g
            }
        },
        justify: function (f, b) {
            var g, h = f.target,
                e = f == this.x ? "x" : "y";
            if (h && h.match(/ /)) {
                g = h.split(" ");
                h = g[0]
            }
            if (h && hs.$(h)) {
                f.pos = hs.getPosition(hs.$(h))[e];
                if (g && g[1] && g[1].match(/^[-]?[0-9]+px$/)) {
                    f.pos += parseInt(g[1])
                }
                if (f.size < f.minSize) {
                    f.size = f.minSize
                }
            } else {
                if (f.justify == "auto" || f.justify == "center") {
                    var d = false;
                    var a = f.exp.allowSizeReduction;
                    if (f.justify == "center") {
                        f.pos = Math.round(f.scroll + (f.clientSize + f.marginMin - f.marginMax - f.get("wsize")) / 2)
                    } else {
                        f.pos = Math.round(f.pos - ((f.get("wsize") - f.t) / 2))
                    }
                    if (f.pos < f.scroll + f.marginMin) {
                        f.pos = f.scroll + f.marginMin;
                        d = true
                    }
                    if (!b && f.size < f.minSize) {
                        f.size = f.minSize;
                        a = false
                    }
                    if (f.pos + f.get("wsize") > f.scroll + f.clientSize - f.marginMax) {
                        if (!b && d && a) {
                            f.size = Math.min(f.size, f.get(e == "y" ? "fitsize" : "maxsize"))
                        } else {
                            if (f.get("wsize") < f.get("fitsize")) {
                                f.pos = f.scroll + f.clientSize - f.marginMax - f.get("wsize")
                            } else {
                                f.pos = f.scroll + f.marginMin;
                                if (!b && a) {
                                    f.size = f.get(e == "y" ? "fitsize" : "maxsize")
                                }
                            }
                        }
                    }
                    if (!b && f.size < f.minSize) {
                        f.size = f.minSize;
                        a = false
                    }
                } else {
                    if (f.justify == "max") {
                        f.pos = Math.floor(f.pos - f.size + f.t)
                    }
                }
            }
            if (f.pos < f.marginMin) {
                var c = f.pos;
                f.pos = f.marginMin;
                if (a && !b) {
                    f.size = f.size - (f.pos - c)
                }
            }
        },
        correctRatio: function (c) {
            var a = this.x,
                g = this.y,
                e = false,
                d = Math.min(a.full, a.size),
                b = Math.min(g.full, g.size),
                f = (this.useBox || hs.padToMinWidth);
            if (d / b > c) {
                d = b * c;
                if (d < a.minSize) {
                    d = a.minSize;
                    b = d / c
                }
                e = true
            } else {
                if (d / b < c) {
                    b = d / c;
                    e = true
                }
            }
            if (hs.padToMinWidth && a.full < a.minSize) {
                a.imgSize = a.full;
                g.size = g.imgSize = g.full
            } else {
                if (this.useBox) {
                    a.imgSize = d;
                    g.imgSize = b
                } else {
                    a.size = d;
                    g.size = b
                }
            }
            e = this.fitOverlayBox(this.useBox ? null : c, e);
            if (f && g.size < g.imgSize) {
                g.imgSize = g.size;
                a.imgSize = g.size * c
            }
            if (e || f) {
                a.pos = a.tpos - a.cb + a.tb;
                a.minSize = a.size;
                this.justify(a, true);
                g.pos = g.tpos - g.cb + g.tb;
                g.minSize = g.size;
                this.justify(g, true);
                if (this.overlayBox) {
                    this.sizeOverlayBox()
                }
            }
        },
        fitOverlayBox: function (b, c) {
            var a = this.x,
                d = this.y;
            if (this.overlayBox && (this.isImage || this.allowHeightReduction)) {
                while (d.size > this.minHeight && a.size > this.minWidth && d.get("wsize") > d.get("fitsize")) {
                    d.size -= 10;
                    if (b) {
                        a.size = d.size * b
                    }
                    this.sizeOverlayBox(0, 1);
                    c = true
                }
            }
            return c
        },
        reflow: function () {
            if (this.scrollerDiv) {
                var a = /iframe/i.test(this.scrollerDiv.tagName) ? (this.getIframePageHeight() + 1) + "px" : "auto";
                if (this.body) {
                    this.body.style.height = a
                }
                this.scrollerDiv.style.height = a;
                this.y.setSize(this.innerContent.offsetHeight)
            }
        },
        show: function () {
            var a = this.x,
                b = this.y;
            this.doShowHide("hidden");
            hs.fireEvent(this, "onBeforeExpand");
            if (this.slideshow && this.slideshow.thumbstrip) {
                this.slideshow.thumbstrip.selectThumb()
            }
            this.changeSize(1, {
                wrapper: {
                    width: a.get("wsize"),
                    height: b.get("wsize"),
                    left: a.pos,
                    top: b.pos
                },
                content: {
                    left: a.p1 + a.get("imgPad"),
                    top: b.p1 + b.get("imgPad"),
                    width: a.imgSize || a.size,
                    height: b.imgSize || b.size
                }
            }, hs.expandDuration)
        },
        changeSize: function (d, i, b) {
            var k = this.transitions,
                e = d ? (this.last ? this.last.a : null) : hs.upcoming,
                j = (k[1] && e && hs.getParam(e, "transitions")[1] == k[1]) ? k[1] : k[0];
            if (this[j] && j != "expand") {
                this[j](d, i);
                return
            }
            if (this.outline && !this.outlineWhileAnimating) {
                if (d) {
                    this.outline.setPosition()
                } else {
                    this.outline.destroy((this.isHtml && this.preserveContent))
                }
            }
            if (!d) {
                this.destroyOverlays()
            }
            var c = this,
                h = c.x,
                g = c.y,
                f = this.easing;
            if (!d) {
                f = this.easingClose || f
            }
            var a = d ?
            function () {
                if (c.outline) {
                    c.outline.table.style.visibility = "visible"
                }
                setTimeout(function () {
                    c.afterExpand()
                }, 50)
            } : function () {
                c.afterClose()
            };
            if (d) {
                hs.setStyles(this.wrapper, {
                    width: h.t + "px",
                    height: g.t + "px"
                })
            }
            if (d && this.isHtml) {
                hs.setStyles(this.wrapper, {
                    left: (h.tpos - h.cb + h.tb) + "px",
                    top: (g.tpos - g.cb + g.tb) + "px"
                })
            }
            if (this.fadeInOut) {
                hs.setStyles(this.wrapper, {
                    opacity: d ? 0 : 1
                });
                hs.extend(i.wrapper, {
                    opacity: d
                })
            }
            hs.animate(this.wrapper, i.wrapper, {
                duration: b,
                easing: f,
                step: function (n, l) {
                    if (c.outline && c.outlineWhileAnimating && l.prop == "top") {
                        var m = d ? l.pos : 1 - l.pos;
                        var o = {
                            w: h.t + (h.get("wsize") - h.t) * m,
                            h: g.t + (g.get("wsize") - g.t) * m,
                            x: h.tpos + (h.pos - h.tpos) * m,
                            y: g.tpos + (g.pos - g.tpos) * m
                        };
                        c.outline.setPosition(o, 0, 1)
                    }
                    if (c.isHtml) {
                        if (l.prop == "left") {
                            c.mediumContent.style.left = (h.pos - n) + "px"
                        }
                        if (l.prop == "top") {
                            c.mediumContent.style.top = (g.pos - n) + "px"
                        }
                    }
                }
            });
            hs.animate(this.content, i.content, b, f, a);
            if (d) {
                this.wrapper.style.visibility = "visible";
                this.content.style.visibility = "visible";
                if (this.isHtml) {
                    this.innerContent.style.visibility = "visible"
                }
                this.a.className += " highslide-active-anchor"
            }
        },
        fade: function (f, h) {
            this.outlineWhileAnimating = false;
            var c = this,
                j = f ? hs.expandDuration : 0;
            if (f) {
                hs.animate(this.wrapper, h.wrapper, 0);
                hs.setStyles(this.wrapper, {
                    opacity: 0,
                    visibility: "visible"
                });
                hs.animate(this.content, h.content, 0);
                this.content.style.visibility = "visible";
                hs.animate(this.wrapper, {
                    opacity: 1
                }, j, null, function () {
                    c.afterExpand()
                })
            }
            if (this.outline) {
                this.outline.table.style.zIndex = this.wrapper.style.zIndex;
                var b = f || -1,
                    d = this.outline.offset,
                    a = f ? 3 : d,
                    g = f ? d : 3;
                for (var e = a; b * e <= b * g; e += b, j += 25) {
                    (function () {
                        var i = f ? g - e : a - e;
                        setTimeout(function () {
                            c.outline.setPosition(0, i, 1)
                        }, j)
                    })()
                }
            }
            if (f) {} else {
                setTimeout(function () {
                    if (c.outline) {
                        c.outline.destroy(c.preserveContent)
                    }
                    c.destroyOverlays();
                    hs.animate(c.wrapper, {
                        opacity: 0
                    }, hs.restoreDuration, null, function () {
                        c.afterClose()
                    })
                }, j)
            }
        },
        crossfade: function (g, m, o) {
            if (!g) {
                return
            }
            var f = this,
                p = this.last,
                l = this.x,
                k = this.y,
                d = p.x,
                b = p.y,
                a = this.wrapper,
                i = this.content,
                c = this.overlayBox;
            hs.removeEventListener(document, "mousemove", hs.dragHandler);
            hs.setStyles(i, {
                width: (l.imgSize || l.size) + "px",
                height: (k.imgSize || k.size) + "px"
            });
            if (c) {
                c.style.overflow = "visible"
            }
            this.outline = p.outline;
            if (this.outline) {
                this.outline.exp = f
            }
            p.outline = null;
            var h = hs.createElement("div", {
                className: "highslide-" + this.contentType
            }, {
                position: "absolute",
                zIndex: 4,
                overflow: "hidden",
                display: "none"
            });
            var j = {
                oldImg: p,
                newImg: this
            };
            for (var e in j) {
                this[e] = j[e].content.cloneNode(1);
                hs.setStyles(this[e], {
                    position: "absolute",
                    border: 0,
                    visibility: "visible"
                });
                h.appendChild(this[e])
            }
            a.appendChild(h);
            if (this.isHtml) {
                hs.setStyles(this.mediumContent, {
                    left: 0,
                    top: 0
                })
            }
            if (c) {
                c.className = "";
                a.appendChild(c)
            }
            h.style.display = "";
            p.content.style.display = "none";
            if (hs.safari && hs.uaVersion < 525) {
                this.wrapper.style.visibility = "visible"
            }
            hs.animate(a, {
                width: l.size
            }, {
                duration: hs.transitionDuration,
                step: function (u, r) {
                    var x = r.pos,
                        q = 1 - x;
                    var w, s = {},
                        t = ["pos", "size", "p1", "p2"];
                    for (var v in t) {
                        w = t[v];
                        s["x" + w] = Math.round(q * d[w] + x * l[w]);
                        s["y" + w] = Math.round(q * b[w] + x * k[w]);
                        s.ximgSize = Math.round(q * (d.imgSize || d.size) + x * (l.imgSize || l.size));
                        s.ximgPad = Math.round(q * d.get("imgPad") + x * l.get("imgPad"));
                        s.yimgSize = Math.round(q * (b.imgSize || b.size) + x * (k.imgSize || k.size));
                        s.yimgPad = Math.round(q * b.get("imgPad") + x * k.get("imgPad"))
                    }
                    if (f.outline) {
                        f.outline.setPosition({
                            x: s.xpos,
                            y: s.ypos,
                            w: s.xsize + s.xp1 + s.xp2 + 2 * l.cb,
                            h: s.ysize + s.yp1 + s.yp2 + 2 * k.cb
                        })
                    }
                    p.wrapper.style.clip = "rect(" + (s.ypos - b.pos) + "px, " + (s.xsize + s.xp1 + s.xp2 + s.xpos + 2 * d.cb - d.pos) + "px, " + (s.ysize + s.yp1 + s.yp2 + s.ypos + 2 * b.cb - b.pos) + "px, " + (s.xpos - d.pos) + "px)";
                    hs.setStyles(i, {
                        top: (s.yp1 + k.get("imgPad")) + "px",
                        left: (s.xp1 + l.get("imgPad")) + "px",
                        marginTop: (k.pos - s.ypos) + "px",
                        marginLeft: (l.pos - s.xpos) + "px"
                    });
                    hs.setStyles(a, {
                        top: s.ypos + "px",
                        left: s.xpos + "px",
                        width: (s.xp1 + s.xp2 + s.xsize + 2 * l.cb) + "px",
                        height: (s.yp1 + s.yp2 + s.ysize + 2 * k.cb) + "px"
                    });
                    hs.setStyles(h, {
                        width: (s.ximgSize || s.xsize) + "px",
                        height: (s.yimgSize || s.ysize) + "px",
                        left: (s.xp1 + s.ximgPad) + "px",
                        top: (s.yp1 + s.yimgPad) + "px",
                        visibility: "visible"
                    });
                    hs.setStyles(f.oldImg, {
                        top: (b.pos - s.ypos + b.p1 - s.yp1 + b.get("imgPad") - s.yimgPad) + "px",
                        left: (d.pos - s.xpos + d.p1 - s.xp1 + d.get("imgPad") - s.ximgPad) + "px"
                    });
                    hs.setStyles(f.newImg, {
                        opacity: x,
                        top: (k.pos - s.ypos + k.p1 - s.yp1 + k.get("imgPad") - s.yimgPad) + "px",
                        left: (l.pos - s.xpos + l.p1 - s.xp1 + l.get("imgPad") - s.ximgPad) + "px"
                    });
                    if (c) {
                        hs.setStyles(c, {
                            width: s.xsize + "px",
                            height: s.ysize + "px",
                            left: (s.xp1 + l.cb) + "px",
                            top: (s.yp1 + k.cb) + "px"
                        })
                    }
                },
                complete: function () {
                    a.style.visibility = i.style.visibility = "visible";
                    i.style.display = "block";
                    hs.discardElement(h);
                    f.afterExpand();
                    p.afterClose();
                    f.last = null
                }
            })
        },
        reuseOverlay: function (d, c) {
            if (!this.last) {
                return false
            }
            for (var b = 0; b < this.last.overlays.length; b++) {
                var a = hs.$("hsId" + this.last.overlays[b]);
                if (a && a.hsId == d.hsId) {
                    this.genOverlayBox();
                    a.reuse = this.key;
                    hs.push(this.overlays, this.last.overlays[b]);
                    return true
                }
            }
            return false
        },
        afterExpand: function () {
            this.isExpanded = true;
            this.focus();
            if (this.isHtml && this.objectLoadTime == "after") {
                this.writeExtendedContent()
            }
            if (this.iframe) {
                try {
                    var g = this,
                        f = this.iframe.contentDocument || this.iframe.contentWindow.document;
                    hs.addEventListener(f, "mousedown", function () {
                        if (hs.focusKey != g.key) {
                            g.focus()
                        }
                    })
                } catch (d) {}
                if (hs.ie && typeof this.isClosing != "boolean") {
                    this.iframe.style.width = (this.objectWidth - 1) + "px"
                }
            }
            if (this.dimmingOpacity) {
                hs.dim(this)
            }
            if (hs.upcoming && hs.upcoming == this.a) {
                hs.upcoming = null
            }
            this.prepareNextOutline();
            var c = hs.page,
                b = hs.mouse.x + c.scrollLeft,
                a = hs.mouse.y + c.scrollTop;
            this.mouseIsOver = this.x.pos < b && b < this.x.pos + this.x.get("wsize") && this.y.pos < a && a < this.y.pos + this.y.get("wsize");
            if (this.overlayBox) {
                this.showOverlays()
            }
            hs.fireEvent(this, "onAfterExpand")
        },
        prepareNextOutline: function () {
            var a = this.key;
            var b = this.outlineType;
            new hs.Outline(b, function () {
                try {
                    hs.expanders[a].preloadNext()
                } catch (c) {}
            })
        },
        preloadNext: function () {
            var b = this.getAdjacentAnchor(1);
            if (b && b.onclick.toString().match(/hs\.expand/)) {
                var a = hs.createElement("img", {
                    src: hs.getSrc(b)
                })
            }
        },
        getAdjacentAnchor: function (c) {
            var b = this.getAnchorIndex(),
                a = hs.anchors.groups[this.slideshowGroup || "none"];
            if (a && !a[b + c] && this.slideshow && this.slideshow.repeat) {
                if (c == 1) {
                    return a[0]
                } else {
                    if (c == -1) {
                        return a[a.length - 1]
                    }
                }
            }
            return (a && a[b + c]) || null
        },
        getAnchorIndex: function () {
            var a = hs.getAnchors().groups[this.slideshowGroup || "none"];
            if (a) {
                for (var b = 0; b < a.length; b++) {
                    if (a[b] == this.a) {
                        return b
                    }
                }
            }
            return null
        },
        getNumber: function () {
            if (this[this.numberPosition]) {
                var a = hs.anchors.groups[this.slideshowGroup || "none"];
                if (a) {
                    var b = hs.lang.number.replace("%1", this.getAnchorIndex() + 1).replace("%2", a.length);
                    this[this.numberPosition].innerHTML = '<div class="highslide-number">' + b + "</div>" + this[this.numberPosition].innerHTML
                }
            }
        },
        initSlideshow: function () {
            if (!this.last) {
                for (var c = 0; c < hs.slideshows.length; c++) {
                    var b = hs.slideshows[c],
                        d = b.slideshowGroup;
                    if (typeof d == "undefined" || d === null || d === this.slideshowGroup) {
                        this.slideshow = new hs.Slideshow(this.key, b)
                    }
                }
            } else {
                this.slideshow = this.last.slideshow
            }
            var b = this.slideshow;
            if (!b) {
                return
            }
            var a = b.expKey = this.key;
            b.checkFirstAndLast();
            b.disable("full-expand");
            if (b.controls) {
                this.createOverlay(hs.extend(b.overlayOptions || {}, {
                    overlayId: b.controls,
                    hsId: "controls",
                    zIndex: 5
                }))
            }
            if (b.thumbstrip) {
                b.thumbstrip.add(this)
            }
            if (!this.last && this.autoplay) {
                b.play(true)
            }
            if (b.autoplay) {
                b.autoplay = setTimeout(function () {
                    hs.next(a)
                }, (b.interval || 500))
            }
        },
        cancelLoading: function () {
            hs.discardElement(this.wrapper);
            hs.expanders[this.key] = null;
            if (hs.upcoming == this.a) {
                hs.upcoming = null
            }
            hs.undim(this.key);
            if (this.loading) {
                hs.loading.style.left = "-9999px"
            }
            hs.fireEvent(this, "onHideLoading")
        },
        writeCredits: function () {
            if (this.credits) {
                return
            }
            this.credits = hs.createElement("a", {
                href: this.creditsHref,
                target: hs.creditsTarget,
                className: "highslide-credits",
                innerHTML: hs.lang.creditsText,
                title: hs.lang.creditsTitle
            });
            this.createOverlay({
                overlayId: this.credits,
                position: this.creditsPosition || "top left",
                hsId: "credits"
            })
        },
        getInline: function (types, addOverlay) {
            for (var i = 0; i < types.length; i++) {
                var type = types[i],
                    s = null;
                if (type == "caption" && !hs.fireEvent(this, "onBeforeGetCaption")) {
                    return
                } else {
                    if (type == "heading" && !hs.fireEvent(this, "onBeforeGetHeading")) {
                        return
                    }
                }
                if (!this[type + "Id"] && this.thumbsUserSetId) {
                    this[type + "Id"] = type + "-for-" + this.thumbsUserSetId
                }
                if (this[type + "Id"]) {
                    this[type] = hs.getNode(this[type + "Id"])
                }
                if (!this[type] && !this[type + "Text"] && this[type + "Eval"]) {
                    try {
                        s = eval(this[type + "Eval"])
                    } catch (e) {}
                }
                if (!this[type] && this[type + "Text"]) {
                    s = this[type + "Text"]
                }
                if (!this[type] && !s) {
                    this[type] = hs.getNode(this.a["_" + type + "Id"]);
                    if (!this[type]) {
                        var next = this.a.nextSibling;
                        while (next && !hs.isHsAnchor(next)) {
                            if ((new RegExp("highslide-" + type)).test(next.className || null)) {
                                if (!next.id) {
                                    this.a["_" + type + "Id"] = next.id = "hsId" + hs.idCounter++
                                }
                                this[type] = hs.getNode(next.id);
                                break
                            }
                            next = next.nextSibling
                        }
                    }
                }
                if (!this[type] && !s && this.numberPosition == type) {
                    s = "\n"
                }
                if (!this[type] && s) {
                    this[type] = hs.createElement("div", {
                        className: "highslide-" + type,
                        innerHTML: s
                    })
                }
                if (addOverlay && this[type]) {
                    var o = {
                        position: (type == "heading") ? "above" : "below"
                    };
                    for (var x in this[type + "Overlay"]) {
                        o[x] = this[type + "Overlay"][x]
                    }
                    o.overlayId = this[type];
                    this.createOverlay(o)
                }
            }
        },
        doShowHide: function (a) {
            if (hs.hideSelects) {
                this.showHideElements("SELECT", a)
            }
            if (hs.hideIframes) {
                this.showHideElements("IFRAME", a)
            }
            if (hs.geckoMac) {
                this.showHideElements("*", a)
            }
        },
        showHideElements: function (c, b) {
            var e = document.getElementsByTagName(c);
            var a = c == "*" ? "overflow" : "visibility";
            for (var f = 0; f < e.length; f++) {
                if (a == "visibility" || (document.defaultView.getComputedStyle(e[f], "").getPropertyValue("overflow") == "auto" || e[f].getAttribute("hidden-by") != null)) {
                    var h = e[f].getAttribute("hidden-by");
                    if (b == "visible" && h) {
                        h = h.replace("[" + this.key + "]", "");
                        e[f].setAttribute("hidden-by", h);
                        if (!h) {
                            e[f].style[a] = e[f].origProp
                        }
                    } else {
                        if (b == "hidden") {
                            var k = hs.getPosition(e[f]);
                            k.w = e[f].offsetWidth;
                            k.h = e[f].offsetHeight;
                            if (!this.dimmingOpacity) {
                                var j = (k.x + k.w < this.x.get("opos") || k.x > this.x.get("opos") + this.x.get("osize"));
                                var g = (k.y + k.h < this.y.get("opos") || k.y > this.y.get("opos") + this.y.get("osize"))
                            }
                            var d = hs.getWrapperKey(e[f]);
                            if (!j && !g && d != this.key) {
                                if (!h) {
                                    e[f].setAttribute("hidden-by", "[" + this.key + "]");
                                    e[f].origProp = e[f].style[a];
                                    e[f].style[a] = "hidden"
                                } else {
                                    if (h.indexOf("[" + this.key + "]") == -1) {
                                        e[f].setAttribute("hidden-by", h + "[" + this.key + "]")
                                    }
                                }
                            } else {
                                if ((h == "[" + this.key + "]" || hs.focusKey == d) && d != this.key) {
                                    e[f].setAttribute("hidden-by", "");
                                    e[f].style[a] = e[f].origProp || ""
                                } else {
                                    if (h && h.indexOf("[" + this.key + "]") > -1) {
                                        e[f].setAttribute("hidden-by", h.replace("[" + this.key + "]", ""))
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        focus: function () {
            this.wrapper.style.zIndex = hs.zIndexCounter += 2;
            for (var a = 0; a < hs.expanders.length; a++) {
                if (hs.expanders[a] && a == hs.focusKey) {
                    var b = hs.expanders[a];
                    b.content.className += " highslide-" + b.contentType + "-blur";
                    if (b.isImage) {
                        b.content.style.cursor = hs.ieLt7 ? "hand" : "pointer";
                        b.content.title = hs.lang.focusTitle
                    }
                    hs.fireEvent(b, "onBlur")
                }
            }
            if (this.outline) {
                this.outline.table.style.zIndex = this.wrapper.style.zIndex - 1
            }
            this.content.className = "highslide-" + this.contentType;
            if (this.isImage) {
                this.content.title = hs.lang.restoreTitle;
                if (hs.restoreCursor) {
                    hs.styleRestoreCursor = window.opera ? "pointer" : "url(" + hs.graphicsDir + hs.restoreCursor + "), pointer";
                    if (hs.ieLt7 && hs.uaVersion < 6) {
                        hs.styleRestoreCursor = "hand"
                    }
                    this.content.style.cursor = hs.styleRestoreCursor
                }
            }
            hs.focusKey = this.key;
            hs.addEventListener(document, window.opera ? "keypress" : "keydown", hs.keyHandler);
            hs.fireEvent(this, "onFocus")
        },
        moveTo: function (a, b) {
            this.x.setPos(a);
            this.y.setPos(b)
        },
        resize: function (d) {
            var a, b, c = d.width / d.height;
            a = Math.max(d.width + d.dX, Math.min(this.minWidth, this.x.full));
            if (this.isImage && Math.abs(a - this.x.full) < 12) {
                a = this.x.full
            }
            b = this.isHtml ? d.height + d.dY : a / c;
            if (b < Math.min(this.minHeight, this.y.full)) {
                b = Math.min(this.minHeight, this.y.full);
                if (this.isImage) {
                    a = b * c
                }
            }
            this.resizeTo(a, b)
        },
        resizeTo: function (a, b) {
            this.y.setSize(b);
            this.x.setSize(a);
            this.wrapper.style.height = this.y.get("wsize") + "px"
        },
        close: function () {
            if (this.isClosing || !this.isExpanded) {
                return
            }
            if (this.transitions[1] == "crossfade" && hs.upcoming) {
                hs.getExpander(hs.upcoming).cancelLoading();
                hs.upcoming = null
            }
            if (!hs.fireEvent(this, "onBeforeClose")) {
                return
            }
            this.isClosing = true;
            if (this.slideshow && !hs.upcoming) {
                this.slideshow.pause()
            }
            hs.removeEventListener(document, window.opera ? "keypress" : "keydown", hs.keyHandler);
            try {
                if (this.isHtml) {
                    this.htmlPrepareClose()
                }
                this.content.style.cursor = "default";
                this.changeSize(0, {
                    wrapper: {
                        width: this.x.t,
                        height: this.y.t,
                        left: this.x.tpos - this.x.cb + this.x.tb,
                        top: this.y.tpos - this.y.cb + this.y.tb
                    },
                    content: {
                        left: 0,
                        top: 0,
                        width: this.x.t,
                        height: this.y.t
                    }
                }, hs.restoreDuration)
            } catch (a) {
                this.afterClose()
            }
        },
        htmlPrepareClose: function () {
            if (hs.geckoMac) {
                if (!hs.mask) {
                    hs.mask = hs.createElement("div", null, {
                        position: "absolute"
                    }, hs.container)
                }
                hs.setStyles(hs.mask, {
                    width: this.x.size + "px",
                    height: this.y.size + "px",
                    left: this.x.pos + "px",
                    top: this.y.pos + "px",
                    display: "block"
                })
            }
            if (this.objectType == "swf") {
                try {
                    hs.$(this.body.id).StopPlay()
                } catch (a) {}
            }
            if (this.objectLoadTime == "after" && !this.preserveContent) {
                this.destroyObject()
            }
            if (this.scrollerDiv && this.scrollerDiv != this.scrollingContent) {
                this.scrollerDiv.style.overflow = "hidden"
            }
        },
        destroyObject: function () {
            if (hs.ie && this.iframe) {
                try {
                    this.iframe.contentWindow.document.body.innerHTML = ""
                } catch (a) {}
            }
            if (this.objectType == "swf") {
                swfobject.removeSWF(this.body.id)
            }
            this.body.innerHTML = ""
        },
        sleep: function () {
            if (this.outline) {
                this.outline.table.style.display = "none"
            }
            this.releaseMask = null;
            this.wrapper.style.display = "none";
            this.isExpanded = false;
            hs.push(hs.sleeping, this)
        },
        awake: function () {
            try {
                hs.expanders[this.key] = this;
                if (!hs.allowMultipleInstances && hs.focusKey != this.key) {
                    try {
                        hs.expanders[hs.focusKey].close()
                    } catch (b) {}
                }
                var d = hs.zIndexCounter++,
                    a = {
                        display: "",
                        zIndex: d
                    };
                hs.setStyles(this.wrapper, a);
                this.isClosing = false;
                var c = this.outline || 0;
                if (c) {
                    if (!this.outlineWhileAnimating) {
                        a.visibility = "hidden"
                    }
                    hs.setStyles(c.table, a)
                }
                if (this.slideshow) {
                    this.initSlideshow()
                }
                this.show()
            } catch (b) {}
        },
        createOverlay: function (e) {
            var d = e.overlayId,
                a = (e.relativeTo == "viewport" && !/panel$/.test(e.position));
            if (typeof d == "string") {
                d = hs.getNode(d)
            }
            if (e.html) {
                d = hs.createElement("div", {
                    innerHTML: e.html
                })
            }
            if (!d || typeof d == "string") {
                return
            }
            if (!hs.fireEvent(this, "onCreateOverlay", {
                overlay: d
            })) {
                return
            }
            d.style.display = "block";
            e.hsId = e.hsId || e.overlayId;
            if (this.transitions[1] == "crossfade" && this.reuseOverlay(e, d)) {
                return
            }
            this.genOverlayBox();
            var c = e.width && /^[0-9]+(px|%)$/.test(e.width) ? e.width : "auto";
            if (/^(left|right)panel$/.test(e.position) && !/^[0-9]+px$/.test(e.width)) {
                c = "200px"
            }
            var b = hs.createElement("div", {
                id: "hsId" + hs.idCounter++,
                hsId: e.hsId
            }, {
                position: "absolute",
                visibility: "hidden",
                width: c,
                direction: hs.lang.cssDirection || "",
                opacity: 0
            }, a ? hs.viewport : this.overlayBox, true);
            if (a) {
                b.hsKey = this.key
            }
            b.appendChild(d);
            hs.extend(b, {
                opacity: 1,
                offsetX: 0,
                offsetY: 0,
                dur: (e.fade === 0 || e.fade === false || (e.fade == 2 && hs.ie)) ? 0 : 250
            });
            hs.extend(b, e);
            if (this.gotOverlays) {
                this.positionOverlay(b);
                if (!b.hideOnMouseOut || this.mouseIsOver) {
                    hs.animate(b, {
                        opacity: b.opacity
                    }, b.dur)
                }
            }
            hs.push(this.overlays, hs.idCounter - 1)
        },
        positionOverlay: function (e) {
            var f = e.position || "middle center",
                c = (e.relativeTo == "viewport"),
                b = e.offsetX,
                a = e.offsetY;
            if (c) {
                hs.viewport.style.display = "block";
                e.hsKey = this.key;
                if (e.offsetWidth > e.parentNode.offsetWidth) {
                    e.style.width = "100%"
                }
            } else {
                if (e.parentNode != this.overlayBox) {
                    this.overlayBox.appendChild(e)
                }
            }
            if (/left$/.test(f)) {
                e.style.left = b + "px"
            }
            if (/center$/.test(f)) {
                hs.setStyles(e, {
                    left: "50%",
                    marginLeft: (b - Math.round(e.offsetWidth / 2)) + "px"
                })
            }
            if (/right$/.test(f)) {
                e.style.right = -b + "px"
            }
            if (/^leftpanel$/.test(f)) {
                hs.setStyles(e, {
                    right: "100%",
                    marginRight: this.x.cb + "px",
                    top: -this.y.cb + "px",
                    bottom: -this.y.cb + "px",
                    overflow: "auto"
                });
                this.x.p1 = e.offsetWidth
            } else {
                if (/^rightpanel$/.test(f)) {
                    hs.setStyles(e, {
                        left: "100%",
                        marginLeft: this.x.cb + "px",
                        top: -this.y.cb + "px",
                        bottom: -this.y.cb + "px",
                        overflow: "auto"
                    });
                    this.x.p2 = e.offsetWidth
                }
            }
            var d = e.parentNode.offsetHeight;
            e.style.height = "auto";
            if (c && e.offsetHeight > d) {
                e.style.height = hs.ieLt7 ? d + "px" : "100%"
            }
            if (/^top/.test(f)) {
                e.style.top = a + "px"
            }
            if (/^middle/.test(f)) {
                hs.setStyles(e, {
                    top: "50%",
                    marginTop: (a - Math.round(e.offsetHeight / 2)) + "px"
                })
            }
            if (/^bottom/.test(f)) {
                e.style.bottom = -a + "px"
            }
            if (/^above$/.test(f)) {
                hs.setStyles(e, {
                    left: (-this.x.p1 - this.x.cb) + "px",
                    right: (-this.x.p2 - this.x.cb) + "px",
                    bottom: "100%",
                    marginBottom: this.y.cb + "px",
                    width: "auto"
                });
                this.y.p1 = e.offsetHeight
            } else {
                if (/^below$/.test(f)) {
                    hs.setStyles(e, {
                        position: "relative",
                        left: (-this.x.p1 - this.x.cb) + "px",
                        right: (-this.x.p2 - this.x.cb) + "px",
                        top: "100%",
                        marginTop: this.y.cb + "px",
                        width: "auto"
                    });
                    this.y.p2 = e.offsetHeight;
                    e.style.position = "absolute"
                }
            }
        },
        getOverlays: function () {
            this.getInline(["heading", "caption"], true);
            this.getNumber();
            if (this.caption) {
                hs.fireEvent(this, "onAfterGetCaption")
            }
            if (this.heading) {
                hs.fireEvent(this, "onAfterGetHeading")
            }
            if (this.heading && this.dragByHeading) {
                this.heading.className += " highslide-move"
            }
            if (hs.showCredits) {
                this.writeCredits()
            }
            for (var a = 0; a < hs.overlays.length; a++) {
                var d = hs.overlays[a],
                    e = d.thumbnailId,
                    b = d.slideshowGroup;
                if ((!e && !b) || (e && e == this.thumbsUserSetId) || (b && b === this.slideshowGroup)) {
                    if (this.isImage || (this.isHtml && d.useOnHtml)) {
                        this.createOverlay(d)
                    }
                }
            }
            var c = [];
            for (var a = 0; a < this.overlays.length; a++) {
                var d = hs.$("hsId" + this.overlays[a]);
                if (/panel$/.test(d.position)) {
                    this.positionOverlay(d)
                } else {
                    hs.push(c, d)
                }
            }
            for (var a = 0; a < c.length; a++) {
                this.positionOverlay(c[a])
            }
            this.gotOverlays = true
        },
        genOverlayBox: function () {
            if (!this.overlayBox) {
                this.overlayBox = hs.createElement("div", {
                    className: this.wrapperClassName
                }, {
                    position: "absolute",
                    width: (this.x.size || (this.useBox ? this.width : null) || this.x.full) + "px",
                    height: (this.y.size || this.y.full) + "px",
                    visibility: "hidden",
                    overflow: "hidden",
                    zIndex: hs.ie ? 4 : "auto"
                }, hs.container, true)
            }
        },
        sizeOverlayBox: function (f, d) {
            var c = this.overlayBox,
                a = this.x,
                h = this.y;
            hs.setStyles(c, {
                width: a.size + "px",
                height: h.size + "px"
            });
            if (f || d) {
                for (var e = 0; e < this.overlays.length; e++) {
                    var g = hs.$("hsId" + this.overlays[e]);
                    var b = (hs.ieLt7 || document.compatMode == "BackCompat");
                    if (g && /^(above|below)$/.test(g.position)) {
                        if (b) {
                            g.style.width = (c.offsetWidth + 2 * a.cb + a.p1 + a.p2) + "px"
                        }
                        h[g.position == "above" ? "p1" : "p2"] = g.offsetHeight
                    }
                    if (g && b && /^(left|right)panel$/.test(g.position)) {
                        g.style.height = (c.offsetHeight + 2 * h.cb) + "px"
                    }
                }
            }
            if (f) {
                hs.setStyles(this.content, {
                    top: h.p1 + "px"
                });
                hs.setStyles(c, {
                    top: (h.p1 + h.cb) + "px"
                })
            }
        },
        showOverlays: function () {
            var a = this.overlayBox;
            a.className = "";
            hs.setStyles(a, {
                top: (this.y.p1 + this.y.cb) + "px",
                left: (this.x.p1 + this.x.cb) + "px",
                overflow: "visible"
            });
            if (hs.safari) {
                a.style.visibility = "visible"
            }
            this.wrapper.appendChild(a);
            for (var c = 0; c < this.overlays.length; c++) {
                var d = hs.$("hsId" + this.overlays[c]);
                d.style.zIndex = d.zIndex || 4;
                if (!d.hideOnMouseOut || this.mouseIsOver) {
                    d.style.visibility = "visible";
                    hs.setStyles(d, {
                        visibility: "visible",
                        display: ""
                    });
                    hs.animate(d, {
                        opacity: d.opacity
                    }, d.dur)
                }
            }
        },
        destroyOverlays: function () {
            if (!this.overlays.length) {
                return
            }
            if (this.slideshow) {
                var d = this.slideshow.controls;
                if (d && hs.getExpander(d) == this) {
                    d.parentNode.removeChild(d)
                }
            }
            for (var a = 0; a < this.overlays.length; a++) {
                var b = hs.$("hsId" + this.overlays[a]);
                if (b && b.parentNode == hs.viewport && hs.getExpander(b) == this) {
                    hs.discardElement(b)
                }
            }
            if (this.isHtml && this.preserveContent) {
                this.overlayBox.style.top = "-9999px";
                hs.container.appendChild(this.overlayBox)
            } else {
                hs.discardElement(this.overlayBox)
            }
        },
        createFullExpand: function () {
            if (this.slideshow && this.slideshow.controls) {
                this.slideshow.enable("full-expand");
                return
            }
            this.fullExpandLabel = hs.createElement("a", {
                href: "javascript:hs.expanders[" + this.key + "].doFullExpand();",
                title: hs.lang.fullExpandTitle,
                className: "highslide-full-expand"
            });
            if (!hs.fireEvent(this, "onCreateFullExpand")) {
                return
            }
            this.createOverlay({
                overlayId: this.fullExpandLabel,
                position: hs.fullExpandPosition,
                hideOnMouseOut: true,
                opacity: hs.fullExpandOpacity
            })
        },
        doFullExpand: function () {
            try {
                if (!hs.fireEvent(this, "onDoFullExpand")) {
                    return
                }
                if (this.fullExpandLabel) {
                    hs.discardElement(this.fullExpandLabel)
                }
                this.focus();
                var b = this.x.size;
                this.resizeTo(this.x.full, this.y.full);
                var a = this.x.pos - (this.x.size - b) / 2;
                if (a < hs.marginLeft) {
                    a = hs.marginLeft
                }
                this.moveTo(a, this.y.pos);
                this.doShowHide("hidden")
            } catch (c) {
                this.error(c)
            }
        },
        afterClose: function () {
            this.a.className = this.a.className.replace("highslide-active-anchor", "");
            this.doShowHide("visible");
            if (this.isHtml && this.preserveContent && this.transitions[1] != "crossfade") {
                this.sleep()
            } else {
                if (this.outline && this.outlineWhileAnimating) {
                    this.outline.destroy()
                }
                hs.discardElement(this.wrapper)
            }
            if (hs.mask) {
                hs.mask.style.display = "none"
            }
            this.destroyOverlays();
            if (!hs.viewport.childNodes.length) {
                hs.viewport.style.display = "none"
            }
            if (this.dimmingOpacity) {
                hs.undim(this.key)
            }
            hs.fireEvent(this, "onAfterClose");
            hs.expanders[this.key] = null;
            hs.reOrder()
        }
    };
    hs.Ajax = function (b, c, d) {
        this.a = b;
        this.content = c;
        this.pre = d
    };
    hs.Ajax.prototype = {
        run: function () {
            var d;
            if (!this.src) {
                this.src = hs.getSrc(this.a)
            }
            if (this.src.match("#")) {
                var a = this.src.split("#");
                this.src = a[0];
                this.id = a[1]
            }
            if (hs.cachedGets[this.src]) {
                this.cachedGet = hs.cachedGets[this.src];
                if (this.id) {
                    this.getElementContent()
                } else {
                    this.loadHTML()
                }
                return
            }
            try {
                d = new XMLHttpRequest()
            } catch (b) {
                try {
                    d = new ActiveXObject("Msxml2.XMLHTTP")
                } catch (b) {
                    try {
                        d = new ActiveXObject("Microsoft.XMLHTTP")
                    } catch (b) {
                        this.onError()
                    }
                }
            }
            var f = this;
            d.onreadystatechange = function () {
                if (f.xhr.readyState == 4) {
                    if (f.id) {
                        f.getElementContent()
                    } else {
                        f.loadHTML()
                    }
                }
            };
            var c = this.src;
            this.xhr = d;
            if (hs.forceAjaxReload) {
                c = c.replace(/$/, (/\?/.test(c) ? "&" : "?") + "dummy=" + (new Date()).getTime())
            }
            d.open("GET", c, true);
            d.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            d.send(null)
        },
        getElementContent: function () {
            hs.init();
            var a = window.opera || hs.ie6SSL ? {
                src: "about:blank"
            } : null;
            this.iframe = hs.createElement("iframe", a, {
                position: "absolute",
                top: "-9999px"
            }, hs.container);
            this.loadHTML()
        },
        loadHTML: function () {
            var c = this.cachedGet || this.xhr.responseText,
                b;
            if (this.pre) {
                hs.cachedGets[this.src] = c
            }
            if (!hs.ie || hs.uaVersion >= 5.5) {
                c = c.replace(new RegExp("<link[^>]*>", "gi"), "").replace(new RegExp("<script[^>]*>.*?<\/script>", "gi"), "");
                if (this.iframe) {
                    var f = this.iframe.contentDocument;
                    if (!f && this.iframe.contentWindow) {
                        f = this.iframe.contentWindow.document
                    }
                    if (!f) {
                        var g = this;
                        setTimeout(function () {
                            g.loadHTML()
                        }, 25);
                        return
                    }
                    f.open();
                    f.write(c);
                    f.close();
                    try {
                        c = f.getElementById(this.id).innerHTML
                    } catch (d) {
                        try {
                            c = this.iframe.document.getElementById(this.id).innerHTML
                        } catch (d) {}
                    }
                    hs.discardElement(this.iframe)
                } else {
                    b = /(<body[^>]*>|<\/body>)/ig;
                    if (b.test(c)) {
                        c = c.split(b)[hs.ieLt9 ? 1 : 2]
                    }
                }
            }
            hs.getElementByClass(this.content, "DIV", "highslide-body").innerHTML = c;
            this.onLoad();
            for (var a in this) {
                this[a] = null
            }
        }
    };
    hs.Slideshow = function (c, b) {
        if (hs.dynamicallyUpdateAnchors !== false) {
            hs.updateAnchors()
        }
        this.expKey = c;
        for (var a in b) {
            this[a] = b[a]
        }
        if (this.useControls) {
            this.getControls()
        }
        if (this.thumbstrip) {
            this.thumbstrip = hs.Thumbstrip(this)
        }
    };
    hs.Slideshow.prototype = {
        getControls: function () {
            this.controls = hs.createElement("div", {
                innerHTML: hs.replaceLang(hs.skin.controls)
            }, null, hs.container);
            var b = ["play", "pause", "previous", "next", "move", "full-expand", "close"];
            this.btn = {};
            var c = this;
            for (var a = 0; a < b.length; a++) {
                this.btn[b[a]] = hs.getElementByClass(this.controls, "li", "highslide-" + b[a]);
                this.enable(b[a])
            }
            this.btn.pause.style.display = "none"
        },
        checkFirstAndLast: function () {
            if (this.repeat || !this.controls) {
                return
            }
            var c = hs.expanders[this.expKey],
                b = c.getAnchorIndex(),
                a = /disabled$/;
            if (b == 0) {
                this.disable("previous")
            } else {
                if (a.test(this.btn.previous.getElementsByTagName("a")[0].className)) {
                    this.enable("previous")
                }
            }
            if (b + 1 == hs.anchors.groups[c.slideshowGroup || "none"].length) {
                this.disable("next");
                this.disable("play")
            } else {
                if (a.test(this.btn.next.getElementsByTagName("a")[0].className)) {
                    this.enable("next");
                    this.enable("play")
                }
            }
        },
        enable: function (d) {
            if (!this.btn) {
                return
            }
            var c = this,
                b = this.btn[d].getElementsByTagName("a")[0],
                e = /disabled$/;
            b.onclick = function () {
                c[d]();
                return false
            };
            if (e.test(b.className)) {
                b.className = b.className.replace(e, "")
            }
        },
        disable: function (c) {
            if (!this.btn) {
                return
            }
            var b = this.btn[c].getElementsByTagName("a")[0];
            b.onclick = function () {
                return false
            };
            if (!/disabled$/.test(b.className)) {
                b.className += " disabled"
            }
        },
        hitSpace: function () {
            if (this.autoplay) {
                this.pause()
            } else {
                this.play()
            }
        },
        play: function (a) {
            if (this.btn) {
                this.btn.play.style.display = "none";
                this.btn.pause.style.display = ""
            }
            this.autoplay = true;
            if (!a) {
                hs.next(this.expKey)
            }
        },
        pause: function () {
            if (this.btn) {
                this.btn.pause.style.display = "none";
                this.btn.play.style.display = ""
            }
            clearTimeout(this.autoplay);
            this.autoplay = null
        },
        previous: function () {
            this.pause();
            hs.previous(this.btn.previous)
        },
        next: function () {
            this.pause();
            hs.next(this.btn.next)
        },
        move: function () {},
        "full-expand": function () {
            hs.getExpander().doFullExpand()
        },
        close: function () {
            hs.close(this.btn.close)
        }
    };
    hs.Thumbstrip = function (k) {
        function p(i) {
            hs.extend(f || {}, {
                overlayId: r,
                hsId: "thumbstrip",
                className: "highslide-thumbstrip-" + m + "-overlay " + (f.className || "")
            });
            if (hs.ieLt7) {
                f.fade = 0
            }
            i.createOverlay(f);
            hs.setStyles(r.parentNode, {
                overflow: "hidden"
            })
        }
        function c(i) {
            d(undefined, Math.round(i * r[h ? "offsetWidth" : "offsetHeight"] * 0.7))
        }
        function d(L, M) {
            if (L === undefined) {
                for (var K = 0; K < j.length; K++) {
                    if (j[K] == hs.expanders[k.expKey].a) {
                        L = K;
                        break
                    }
                }
            }
            if (L === undefined) {
                return
            }
            var G = r.getElementsByTagName("a"),
                z = G[L],
                w = z.parentNode,
                y = h ? "Left" : "Top",
                N = h ? "Right" : "Bottom",
                I = h ? "Width" : "Height",
                B = "offset" + y,
                H = "offset" + I,
                x = n.parentNode.parentNode[H],
                F = x - s[H],
                v = parseInt(s.style[h ? "left" : "top"]) || 0,
                C = v,
                D = 20;
            if (M !== undefined) {
                C = v - M;
                if (F > 0) {
                    F = 0
                }
                if (C > 0) {
                    C = 0
                }
                if (C < F) {
                    C = F
                }
            } else {
                for (var K = 0; K < G.length; K++) {
                    G[K].className = ""
                }
                z.className = "highslide-active-anchor";
                var J = L > 0 ? G[L - 1].parentNode[B] : w[B],
                    A = w[B] + w[H] + (G[L + 1] ? G[L + 1].parentNode[H] : 0);
                if (A > x - v) {
                    C = x - A
                } else {
                    if (J < -v) {
                        C = -J
                    }
                }
            }
            var E = w[B] + (w[H] - g[H]) / 2 + C;
            hs.animate(s, h ? {
                left: C
            } : {
                top: C
            }, null, "easeOutQuad");
            hs.animate(g, h ? {
                left: E
            } : {
                top: E
            }, null, "easeOutQuad");
            l.style.display = C < 0 ? "block" : "none";
            t.style.display = (C > F) ? "block" : "none"
        }
        var j = hs.anchors.groups[hs.expanders[k.expKey].slideshowGroup || "none"],
            f = k.thumbstrip,
            m = f.mode || "horizontal",
            u = (m == "float"),
            o = u ? ["div", "ul", "li", "span"] : ["table", "tbody", "tr", "td"],
            h = (m == "horizontal"),
            r = hs.createElement("div", {
                className: "highslide-thumbstrip highslide-thumbstrip-" + m,
                innerHTML: '<div class="highslide-thumbstrip-inner"><' + o[0] + "><" + o[1] + "></" + o[1] + "></" + o[0] + '></div><div class="highslide-scroll-up"><div></div></div><div class="highslide-scroll-down"><div></div></div><div class="highslide-marker"><div></div></div>'
            }, {
                display: "none"
            }, hs.container),
            e = r.childNodes,
            n = e[0],
            l = e[1],
            t = e[2],
            g = e[3],
            s = n.firstChild,
            a = r.getElementsByTagName(o[1])[0],
            b;
        for (var q = 0; q < j.length; q++) {
            if (q == 0 || !h) {
                b = hs.createElement(o[2], null, null, a)
            }(function () {
                var v = j[q],
                    i = hs.createElement(o[3], null, null, b),
                    w = q;
                hs.createElement("a", {
                    href: v.href,
                    onclick: function () {
                        if (/highslide-active-anchor/.test(this.className)) {
                            return false
                        }
                        hs.getExpander(this).focus();
                        return hs.transit(v)
                    },
                    innerHTML: hs.stripItemFormatter ? hs.stripItemFormatter(v) : v.innerHTML
                }, null, i)
            })()
        }
        if (!u) {
            l.onclick = function () {
                c(-1)
            };
            t.onclick = function () {
                c(1)
            };
            hs.addEventListener(a, document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll", function (i) {
                var v = 0;
                i = i || window.event;
                if (i.wheelDelta) {
                    v = i.wheelDelta / 120;
                    if (hs.opera) {
                        v = -v
                    }
                } else {
                    if (i.detail) {
                        v = -i.detail / 3
                    }
                }
                if (v) {
                    c(-v * 0.2)
                }
                if (i.preventDefault) {
                    i.preventDefault()
                }
                i.returnValue = false
            })
        }
        return {
            add: p,
            selectThumb: d
        }
    };
    hs.langDefaults = hs.lang;
    var HsExpander = hs.Expander;
    if (hs.ie && window == window.top) {
        (function () {
            try {
                document.documentElement.doScroll("left")
            } catch (a) {
                setTimeout(arguments.callee, 50);
                return
            }
            hs.ready()
        })()
    }
    hs.addEventListener(document, "DOMContentLoaded", hs.ready);
    hs.addEventListener(window, "load", hs.ready);
    hs.addEventListener(document, "ready", function () {
        if (hs.expandCursor || hs.dimmingOpacity) {
            var c = hs.createElement("style", {
                type: "text/css"
            }, null, document.getElementsByTagName("HEAD")[0]);

            function b(e, f) {
                if (hs.ie && hs.uaVersion < 9) {
                    var d = document.styleSheets[document.styleSheets.length - 1];
                    if (typeof (d.addRule) == "object") {
                        d.addRule(e, f)
                    }
                } else {
                    c.appendChild(document.createTextNode(e + " {" + f + "}"))
                }
            }
            function a(d) {
                return "expression( ( ( ignoreMe = document.documentElement." + d + " ? document.documentElement." + d + " : document.body." + d + " ) ) + 'px' );"
            }
            if (hs.expandCursor) {
                b(".highslide img", "cursor: url(" + hs.graphicsDir + hs.expandCursor + "), pointer !important;")
            }
            b(".highslide-viewport-size", hs.ie && (hs.uaVersion < 7 || document.compatMode == "BackCompat") ? "position: absolute; left:" + a("scrollLeft") + "top:" + a("scrollTop") + "width:" + a("clientWidth") + "height:" + a("clientHeight") : "position: fixed; width: 100%; height: 100%; left: 0; top: 0")
        }
    });
    hs.addEventListener(window, "resize", function () {
        hs.getPageSize();
        if (hs.viewport) {
            for (var a = 0; a < hs.viewport.childNodes.length; a++) {
                var b = hs.viewport.childNodes[a],
                    c = hs.getExpander(b);
                c.positionOverlay(b);
                if (b.hsId == "thumbstrip") {
                    c.slideshow.thumbstrip.selectThumb()
                }
            }
        }
    });
    hs.addEventListener(document, "mousemove", function (a) {
        hs.mouse = {
            x: a.clientX,
            y: a.clientY
        }
    });
    hs.addEventListener(document, "mousedown", hs.mouseClickHandler);
    hs.addEventListener(document, "mouseup", hs.mouseClickHandler);
    hs.addEventListener(document, "ready", hs.setClickEvents);
    hs.addEventListener(window, "load", hs.preloadImages);
    hs.addEventListener(window, "load", hs.preloadAjax)
};

