if(typeof(hs) != "function"){
	var imgUrl = gSiteUrl+"/res/images/JsImages/Slide/";
	document.write("<style>.h_postimg {margin-top:2px;cursor:url("+imgUrl+"zoomin.cur), pointer;}</style>");
	var hs = {			
		    lang: {
		        cssDirection: "ltr",
		        loadingText: '<img src="'+imgUrl+'loading.gif" alt="Loading" />',
		        loadingTitle: "\u70b9\u51fb\u53d6\u6d88",
		        focusTitle: "\u70b9\u51fb\u7f6e\u9876",
		        fullExpandTitle: "\u539f\u59cb\u5c3a\u5bf8",
		        creditsText: "Powered by <i>Highslide JS</i>",
		        creditsTitle: "Go to the Highslide JS homepage",
		        restoreTitle: ""
		    },
		    graphicsDir: imgUrl,
		    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: false,
		    creditsHref: "http://www.yesoa.com/",
		    enableKeyListener: true,
		    openerTagNames: ["a"],
		    dragByHeading: true,
		    minWidth: 200,
		    minHeight: 200,
		    allowSizeReduction: true,
		    outlineType: "rounded-white",
		    wrapperClassName: "highslide-wrapper",
		    preloadTheseImages: [],
		    continuePreloading: true,
		    expanders: [],
		    overrides: ["allowSizeReduction", "useBox", "outlineType", "outlineWhileAnimating", "captionId", "captionText", "captionEval", "captionOverlay", "headingId", "headingText", "headingEval", "headingOverlay", "creditsPosition", "dragByHeading", "width", "height", "wrapperClassName", "minWidth", "minHeight", "maxWidth", "maxHeight", "slideshowGroup", "easing", "easingClose", "fadeInOut", "src"],
		    overlays: [],
		    idCounter: 0,
		    oPos: {
		        x: ["leftpanel", "left", "center", "right", "rightpanel"],
		        y: ["above", "top", "middle", "bottom", "below"]
		    },
		    mouse: {},
		    headingOverlay: {},
		    captionOverlay: {},
		    timers: [],
		    pendingOutlines: {},
		    clones: {},
		    onReady: [],
		    uaVersion: 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.ie && 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 (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.ie ? e.clientWidth: (f.documentElement.clientWidth || self.innerWidth),
		        a = hs.ie ? e.clientHeight: self.innerHeight;
		        return {
		            width: c,
		            height: a,
		            scrollLeft: hs.ie ? e.scrollLeft: pageXOffset,
		            scrollTop: hs.ie ? e.scrollTop: pageYOffset
		        }
		    },
		    getPosition: function(a) {
		        var b = {
		            x: a.offsetLeft,
		            y: a.offsetTop
		        };
		        while (a.offsetParent) {
		            a = a.offsetParent;
		            b.x += a.offsetLeft;
		            b.y += a.offsetTop;
		            if (a != document.body && a != document.documentElement) {
		                b.x -= a.scrollLeft;
		                b.y -= a.scrollTop
		            }
		        }
		        return b
		    },
		    expand: function(b, g, d, c) {
		        if (!b) {
		            b = hs.createElement("a", null, {
		                display: "none"
		            },
		            hs.container)
		        }
		        if (typeof b.getParams == "function") {
		            return g
		        }
		        try {
		            new hs.Expander(b, g, d);
		            return false
		        } catch(f) {
		            return true
		        }
		    },
		    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) {
		        hs.garbageBin.appendChild(a);
		        hs.garbageBin.innerHTML = ""
		    },
		    transit: function(a, d) {
		        var b = d = d || hs.getExpander();
		        if (hs.upcoming) {
		            return false
		        } else {
		            hs.last = b
		        }
		        try {
		            hs.upcoming = a;
		            a.onclick()
		        } catch(c) {
		            hs.last = hs.upcoming = null
		        }
		        try {
		            d.close()
		        } catch(c) {}
		        return false
		    },
		    previousOrNext: function(a, c) {
		        var b = hs.getExpander(a);
		        if (b) {
		            adj = b.getAdjacentAnchor(c);
		            return hs.transit(adj, 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
		        }
		        var b = hs.getExpander();
		        var c = null;
		        switch (a.keyCode) {
		        case 70:
		            if (b) {
		                b.doFullExpand()
		            }
		            return true;
		        case 32:
		        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 {
		                    hs.previousOrNext(b.key, c)
		                }
		                return false
		            }
		        }
		        return true
		    },
		    registerOverlay: function(a) {
		        hs.push(hs.overlays, hs.extend(a, {
		            hsId: "hsId" + hs.idCounter++
		        }))
		    },
		    getWrapperKey: function(c, b) {
		        var e, d = /^highslide-wrapper-([0-9]+)$/;
		        e = c;
		        while (e.parentNode) {
		            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()
		            }
		        }
		    },
		    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 (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)) {
		                        f.close()
		                    } else {
		                        if (c || (!c && hs.hasHtmlExpanders)) {
		                            hs.dragArgs.exp.doShowHide("hidden")
		                        }
		                    }
		                    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;
		        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 (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 (hs.ie) {
		                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
		            }
		            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"
		                            })
		                        }
		                        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.page = hs.getPageSize();
		            hs.ieLt7 = hs.ie && hs.uaVersion < 7;
		            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);
		            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
		            };
		            hs.hideSelects = hs.ieLt7;
		            hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == "KDE" || (hs.ie && hs.uaVersion < 5.5))
		        }
		    },
		    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, c, k = [],
		        h = [],
		        b = {},
		        l;
		        for (var e = 0; e < hs.openerTagNames.length; e++) {
		            c = document.getElementsByTagName(hs.openerTagNames[e]);
		            for (var d = 0; d < c.length; d++) {
		                a = c[d];
		                l = hs.isHsAnchor(a);
		                if (l) {
		                    hs.push(k, a);
		                    if (l[0] == "hs.expand") {
		                        hs.push(h, a)
		                    }
		                    var f = hs.getParam(a, "slideshowGroup") || "none";
		                    if (!b[f]) {
		                        b[f] = []
		                    }
		                    hs.push(b[f], a)
		                }
		            }
		        }
		        hs.anchors = {
		            all: k,
		            groups: b,
		            images: h
		        };
		        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) {
		            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
		            }
		        }
		    }
		});
		hs.Outline = function(g, e) {
		    this.onLoad = e;
		    this.outlineType = g;
		    var a = hs.uaVersion,
		    f;
		    this.hasAlphaImageLoader = hs.ie && a >= 5.5 && a < 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.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 "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] + 2 * this.cb
		    },
		    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 = (hs.page[this.wh] / 2) + hs.page["scroll" + this.uclt]
		        }
		    },
		    calcExpanded: function() {
		        var a = this.exp;
		        this.justify = "auto";
		        this.pos = this.tpos - this.cb + this.tb;
		        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.marginMin = hs["margin" + this.uclt];
		        this.scroll = hs.page["scroll" + this.uclt];
		        this.clientSize = hs.page[this.wh]
		    },
		    setSize: function(a) {
		        var b = this.exp;
		        if (b.isImage && (b.useBox || hs.padToMinWidth)) {
		            this.imgSize = a;
		            this.size = Math.max(this.size, this.imgSize);
		            b.content.style[this.lt] = this.get("imgPad") + "px"
		        } else {
		            this.size = a
		        }
		        b.content.style[this.wh] = a + "px";
		        b.wrapper.style[this.wh] = this.get("wsize") + "px";
		        if (b.outline) {
		            b.outline.setPosition()
		        }
		        if (this.dim == "x" && b.overlayBox) {
		            b.sizeOverlayBox(true)
		        }
		    },
		    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.isImage = !this.isHtml;
		    hs.continuePreloading = false;
		    this.overlays = [];
		    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;
		    for (var g = 0; g < hs.expanders.length; g++) {
		        if (hs.expanders[g] && hs.expanders[g].a == k) {
		            hs.expanders[g].focus();
		            return false
		        }
		    }
		    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[this.key] = 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 = hs.getPosition(d);
		    hs.page = hs.getPageSize();
		    var j = this.x = new hs.Dimension(this, "x");
		    j.calcThumb();
		    var h = this.y = new hs.Dimension(this, "y");
		    h.calcThumb();
		    this.wrapper = hs.createElement("div", {
		        id: "highslide-wrapper-" + this.key,
		        className: this.wrapperClassName
		    },
		    {
		        visibility: "hidden",
		        position: "absolute",
		        zIndex: hs.zIndexCounter++
		    },
		    null, true);
		    this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
		    if (this.contentType == "image" && this.outlineWhileAnimating == 2) {
		        this.outlineWhileAnimating = 0
		    }
		    if (!this.outlineType) {
		        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) {
		        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;
		        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()
		        };
		        var c = this,
		        a = this.x.get("loadingPos") + "px",
		        b = this.y.get("loadingPos") + "px";
		        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.container.appendChild(a)
		        }
		        if (hs.ie) {
		            a.src = "res://"
		        }
		        a.src = this.src;
		        this.showLoading()
		    },
		    contentLoaded: function() {
		        try {
		            if (!this.content) {
		                return
		            }
		            this.content.onload = null;
		            if (this.onLoadStarted) {
		                return
		            } else {
		                this.onLoadStarted = true
		            }
		            var a = this.x,
		            d = this.y;
		            if (this.loading) {
		                hs.setStyles(this.loading, {
		                    top: "-9999px"
		                });
		                this.loading = null
		            }
		            a.full = this.content.width;
		            d.full = this.content.height;
		            hs.setStyles(this.content, {
		                width: a.t + "px",
		                height: d.t + "px"
		            });
		            this.wrapper.appendChild(this.content);
		            hs.container.appendChild(this.wrapper);
		            a.calcBorders();
		            d.calcBorders();
		            hs.setStyles(this.wrapper, {
		                left: (a.tpos + a.tb - a.cb) + "px",
		                top: (d.tpos + a.tb - d.cb) + "px"
		            });
		            this.getOverlays();
		            var b = a.full / d.full;
		            a.calcExpanded();
		            this.justify(a);
		            d.calcExpanded();
		            this.justify(d);
		            if (this.overlayBox) {
		                this.sizeOverlayBox(0, 1)
		            }
		            if (this.allowSizeReduction) {
		                this.correctRatio(b);
		                if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
		                    this.createFullExpand();
		                    if (this.overlays.length == 1) {
		                        this.sizeOverlayBox()
		                    }
		                }
		            }
		            this.show()
		        } catch(c) {
		            this.error(c)
		        }
		    },
		    justify: function(f, b) {
		        var g, h = f.target,
		        e = f == this.x ? "x": "y";
		        var d = false;
		        var a = f.exp.allowSizeReduction;
		        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 = 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
		        }
		        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
		            }
		        }
		        this.fitOverlayBox(f ? null: c);
		        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) {
		        var a = this.x,
		        c = this.y;
		        if (this.overlayBox) {
		            while (c.size > this.minHeight && a.size > this.minWidth && c.get("wsize") > c.get("fitsize")) {
		                c.size -= 10;
		                if (b) {
		                    a.size = c.size * b
		                }
		                this.sizeOverlayBox(0, 1)
		            }
		        }
		    },
		    show: function() {
		        var a = this.x,
		        b = this.y;
		        this.doShowHide("hidden");
		        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(b, h, c) {
		        if (this.outline && !this.outlineWhileAnimating) {
		            if (b) {
		                this.outline.setPosition()
		            } else {
		                this.outline.destroy()
		            }
		        }
		        if (!b) {
		            this.destroyOverlays()
		        }
		        var e = this,
		        a = e.x,
		        g = e.y,
		        f = this.easing;
		        if (!b) {
		            f = this.easingClose || f
		        }
		        var d = b ?
		        function() {
		            if (e.outline) {
		                e.outline.table.style.visibility = "visible"
		            }
		            setTimeout(function() {
		                e.afterExpand()
		            },
		            50)
		        }: function() {
		            e.afterClose()
		        };
		        if (b) {
		            hs.setStyles(this.wrapper, {
		                width: a.t + "px",
		                height: g.t + "px"
		            })
		        }
		        if (this.fadeInOut) {
		            hs.setStyles(this.wrapper, {
		                opacity: b ? 0 : 1
		            });
		            hs.extend(h.wrapper, {
		                opacity: b
		            })
		        }
		        hs.animate(this.wrapper, h.wrapper, {
		            duration: c,
		            easing: f,
		            step: function(k, i) {
		                if (e.outline && e.outlineWhileAnimating && i.prop == "top") {
		                    var j = b ? i.pos: 1 - i.pos;
		                    var l = {
		                        w: a.t + (a.get("wsize") - a.t) * j,
		                        h: g.t + (g.get("wsize") - g.t) * j,
		                        x: a.tpos + (a.pos - a.tpos) * j,
		                        y: g.tpos + (g.pos - g.tpos) * j
		                    };
		                    e.outline.setPosition(l, 0, 1)
		                }
		            }
		        });
		        hs.animate(this.content, h.content, c, f, d);
		        if (b) {
		            this.wrapper.style.visibility = "visible";
		            this.content.style.visibility = "visible";
		            this.a.className += " highslide-active-anchor"
		        }
		    },
		    afterExpand: function() {
		        this.isExpanded = true;
		        this.focus();
		        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()
		        }
		    },
		    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[b + c] && this.slideshow && this.slideshow.repeat) {
		            if (c == 1) {
		                return a[0]
		            } else {
		                if (c == -1) {
		                    return a[a.length - 1]
		                }
		            }
		        }
		        return 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
		    },
		    cancelLoading: function() {
		        hs.expanders[this.key] = null;
		        if (this.loading) {
		            hs.loading.style.left = "-9999px"
		        }
		    },
		    writeCredits: function() {
		        this.credits = hs.createElement("a", {
		            href: hs.creditsHref,
		            className: "highslide-credits",
		            innerHTML: hs.lang.creditsText,
		            title: hs.lang.creditsTitle
		        });
		        this.createOverlay({
		            overlayId: this.credits,
		            position: this.creditsPosition || "top left"
		        })
		    },
		    getInline: function(types, addOverlay) {
		        for (var i = 0; i < types.length; i++) {
		            var type = types[i],
		            s = null;
		            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) {
		                var next = this.a.nextSibling;
		                while (next && !hs.isHsAnchor(next)) {
		                    if ((new RegExp("highslide-" + type)).test(next.className || null)) {
		                        this[type] = next.cloneNode(1);
		                        break
		                    }
		                    next = next.nextSibling
		                }
		            }
		            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;
		                        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++;
		        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";
		                b.content.style.cursor = hs.ie ? "hand": "pointer";
		                b.content.title = hs.lang.focusTitle
		            }
		        }
		        if (this.outline) {
		            this.outline.table.style.zIndex = this.wrapper.style.zIndex
		        }
		        this.content.className = "highslide-" + this.contentType;
		        this.content.title = hs.lang.restoreTitle;
		        if (hs.restoreCursor) {
		            hs.styleRestoreCursor = window.opera ? "pointer": "url(" + hs.graphicsDir + hs.restoreCursor + "), pointer";
		            if (hs.ie && 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)
		    },
		    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 = 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)
		    },
		    close: function() {
		        if (this.isClosing || !this.isExpanded) {
		            return
		        }
		        this.isClosing = true;
		        hs.removeEventListener(document, window.opera ? "keypress": "keydown", hs.keyHandler);
		        try {
		            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()
		        }
		    },
		    createOverlay: function(d) {
		        var c = d.overlayId;
		        if (typeof c == "string") {
		            c = hs.getNode(c)
		        }
		        if (d.html) {
		            c = hs.createElement("div", {
		                innerHTML: d.html
		            })
		        }
		        if (!c || typeof c == "string") {
		            return
		        }
		        c.style.display = "block";
		        this.genOverlayBox();
		        var b = d.width && /^[0-9]+(px|%)$/.test(d.width) ? d.width: "auto";
		        if (/^(left|right)panel$/.test(d.position) && !/^[0-9]+px$/.test(d.width)) {
		            b = "200px"
		        }
		        var a = hs.createElement("div", {
		            id: "hsId" + hs.idCounter++,
		            hsId: d.hsId
		        },
		        {
		            position: "absolute",
		            visibility: "hidden",
		            width: b,
		            direction: hs.lang.cssDirection || "",
		            opacity: 0
		        },
		        this.overlayBox, true);
		        a.appendChild(c);
		        hs.extend(a, {
		            opacity: 1,
		            offsetX: 0,
		            offsetY: 0,
		            dur: (d.fade === 0 || d.fade === false || (d.fade == 2 && hs.ie)) ? 0 : 250
		        });
		        hs.extend(a, d);
		        if (this.gotOverlays) {
		            this.positionOverlay(a);
		            if (!a.hideOnMouseOut || this.mouseIsOver) {
		                hs.animate(a, {
		                    opacity: a.opacity
		                },
		                a.dur)
		            }
		        }
		        hs.push(this.overlays, hs.idCounter - 1)
		    },
		    positionOverlay: function(c) {
		        var d = c.position || "middle center",
		        b = c.offsetX,
		        a = c.offsetY;
		        if (c.parentNode != this.overlayBox) {
		            this.overlayBox.appendChild(c)
		        }
		        if (/left$/.test(d)) {
		            c.style.left = b + "px"
		        }
		        if (/center$/.test(d)) {
		            hs.setStyles(c, {
		                left: "50%",
		                marginLeft: (b - Math.round(c.offsetWidth / 2)) + "px"
		            })
		        }
		        if (/right$/.test(d)) {
		            c.style.right = -b + "px"
		        }
		        if (/^leftpanel$/.test(d)) {
		            hs.setStyles(c, {
		                right: "100%",
		                marginRight: this.x.cb + "px",
		                top: -this.y.cb + "px",
		                bottom: -this.y.cb + "px",
		                overflow: "auto"
		            });
		            this.x.p1 = c.offsetWidth
		        } else {
		            if (/^rightpanel$/.test(d)) {
		                hs.setStyles(c, {
		                    left: "100%",
		                    marginLeft: this.x.cb + "px",
		                    top: -this.y.cb + "px",
		                    bottom: -this.y.cb + "px",
		                    overflow: "auto"
		                });
		                this.x.p2 = c.offsetWidth
		            }
		        }
		        if (/^top/.test(d)) {
		            c.style.top = a + "px"
		        }
		        if (/^middle/.test(d)) {
		            hs.setStyles(c, {
		                top: "50%",
		                marginTop: (a - Math.round(c.offsetHeight / 2)) + "px"
		            })
		        }
		        if (/^bottom/.test(d)) {
		            c.style.bottom = -a + "px"
		        }
		        if (/^above$/.test(d)) {
		            hs.setStyles(c, {
		                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 = c.offsetHeight
		        } else {
		            if (/^below$/.test(d)) {
		                hs.setStyles(c, {
		                    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 = c.offsetHeight;
		                c.style.position = "absolute"
		            }
		        }
		    },
		    getOverlays: function() {
		        this.getInline(["heading", "caption"], true);
		        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)) {
		                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 : null
		            },
		            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 = 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
		        }
		        hs.discardElement(this.overlayBox)
		    },
		    createFullExpand: function() {
		        this.fullExpandLabel = hs.createElement("a", {
		            href: "javascript:hs.expanders[" + this.key + "].doFullExpand();",
		            title: hs.lang.fullExpandTitle,
		            className: "highslide-full-expand"
		        });
		        this.createOverlay({
		            overlayId: this.fullExpandLabel,
		            position: hs.fullExpandPosition,
		            hideOnMouseOut: true,
		            opacity: hs.fullExpandOpacity
		        })
		    },
		    doFullExpand: function() {
		        try {
		            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.outline && this.outlineWhileAnimating) {
		            this.outline.destroy()
		        }
		        hs.discardElement(this.wrapper);
		        hs.expanders[this.key] = null;
		        hs.reOrder()
		    }
		};
		if (hs.ie) { (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.langDefaults = hs.lang;
		var HsExpander = hs.Expander;
		hs.addEventListener(window, "load",
		function() {
		    if (hs.expandCursor) {
		        var c = ".highslide img",
		        d = "cursor: url(" + hs.graphicsDir + hs.expandCursor + "), pointer !important;";
		        var a = hs.createElement("style", {
		            type: "text/css"
		        },
		        null, document.getElementsByTagName("HEAD")[0]);
		        if (!hs.ie) {
		            a.appendChild(document.createTextNode(c + " {" + d + "}"))
		        } else {
		            var b = document.styleSheets[document.styleSheets.length - 1];
		            if (typeof(b.addRule) == "object") {
		                b.addRule(c, d)
		            }
		        }
		    }
		});
		hs.addEventListener(window, "resize",
		function() {
		    hs.page = hs.getPageSize()
		});
		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.getAnchors);
		hs.addEventListener(window, "load", hs.preloadImages);
}
