(function () {
    if (window.imageJS) {
        return;
    }
    var a = {
        version: "2.3.10",
        UUID: 0,
        storage: {}, $uuid: function (b) {
            return b.$J_UUID || (b.$J_UUID = ++$J.UUID);
        }, getStorage: function (b) {
            return $J.storage[b] || ($J.storage[b] = {});
        }, $F: function () {}, $false: function () {
            return false;
        }, defined: function (b) {
            return undefined != b;
        }, exists: function (b) {
            return !!b;
        }, j1: function (b) {
            if (!$J.defined(b)) {
                return false;
            }
            if (b.$J_TYPE) {
                return b.$J_TYPE;
            }
            if ( !! b.nodeType) {
                if (1 == b.nodeType) {
                    return "element";
                }
                if (3 == b.nodeType) {
                    return "textnode";
                }
            }
            if (b.length && b.item) {
                return "collection";
            }
            if (b.length && b.callee) {
                return "arguments";
            }
            if ((b instanceof window.Object || b instanceof window.Function) && b.constructor === $J.Class) {
                return "class";
            }
            if (b instanceof window.Array) {
                return "array";
            }
            if (b instanceof window.Function) {
                return "function";
            }
            if (b instanceof window.String) {
                return "string";
            }
            if ($J.v.trident) {
                if ($J.defined(b.cancelBubble)) {
                    return "event";
                }
            } else {
                if (b instanceof window.Event || b === window.event || b.constructor == window.MouseEvent) {
                    return "event";
                }
            }
            if (b instanceof window.Date) {
                return "date";
            }
            if (b instanceof window.RegExp) {
                return "regexp";
            }
            if (b === window) {
                return "window";
            }
            if (b === document) {
                return "document";
            }
            return typeof b;
        }, extend: function (g, f) {
            if (!(g instanceof window.Array)) {
                g = [g];
            }
            for (var d = 0, b = g.length; d < b; d++) {
                if (!$J.defined(g)) {
                    continue;
                }
                for (var c in f || {}) {
                    g[d][c] = f[c];
                }
            }
            return g[0];
        }, implement: function (g, f) {
            if (!(g instanceof window.Array)) {
                g = [g];
            }
            for (var d = 0, b = g.length; d < b; d++) {
                if (!$J.defined(g[d])) {
                    continue;
                }
                if (!g[d].prototype) {
                    continue;
                }
                for (var c in f || {}) {
                    if (!g[d].prototype[c]) {
                        g[d].prototype[c] = f[c];
                    }
                }
            }
            return g[0];
        }, nativize: function (d, c) {
            if (!$J.defined(d)) {
                return d;
            }
            for (var b in c || {}) {
                if (!d[b]) {
                    d[b] = c[b];
                }
            }
            return d;
        }, $try: function () {
            for (var c = 0, b = arguments.length; c < b; c++) {
                try {
                    return arguments[c]();
                } catch (d) {}
            }
            return null;
        }, $A: function (d) {
            if (!$J.defined(d)) {
                return $j([]);
            }
            if (d.toArray) {
                return $j(d.toArray());
            }
            if (d.item) {
                var c = d.length || 0,
                    b = new Array(c);
                while (c--) {
                    b[c] = d[c];
                }
                return $j(b);
            }
            return $j(Array.prototype.slice.call(d));
        }, now: function () {
            return (new Date).getTime();
        }, detach: function (g) {
            var d;
            switch ($J.j1(g)) {
            case "object":
                d = {};
                for (var f in g) {
                    d[f] = $J.detach(g[f]);
                }
                break;
            case "array":
                d = [];
                for (var c = 0, b = g.length; c < b; c++) {
                    d[c] = $J.detach(g[c]);
                }
                break;
            default:
                return g;
            }
            return d;
        }, $: function (c) {
            if (!$J.defined(c)) {
                return null;
            }
            if (c.$J_EXTENDED) {
                return c;
            }
            switch ($J.j1(c)) {
            case "array":
                c = $J.nativize(c, $J.extend($J.Array, {
                    $J_EXTENDED: true
                }));
                c.j14 = c.forEach;
                return c;
                break;
            case "string":
                var b = document.getElementById(c);
                if ($J.defined(b)) {
                    return $J.$(b);
                }
                return null;
                break;
            case "window":
            case "document":
                $J.$uuid(c);
                c = $J.extend(c, $J.Doc);
                break;
            case "element":
                $J.$uuid(c);
                c = $J.extend(c, $J.Element);
                break;
            case "event":
                c = $J.extend(c, $J.Event);
                break;
            case "textnode":
                return c;
                break;
            case "function":
            case "array":
            case "date":
            default:
                break;
            }
            return $J.extend(c, {
                $J_EXTENDED: true
            });
        }, $new: function (b, d, c) {
            return $j($J.doc.createElement(b)).setProps(d).j6(c);
        }
    };
    window.imageJS = window.$J = a;
    window.$j = a.$;
    $J.Array = {
        $J_TYPE: "array",
        indexOf: function (f, g) {
            var b = this.length;
            for (var c = this.length, d = g < 0 ? Math.max(0, c + g) : g || 0; d < c; d++) {
                if (this[d] === f) {
                    return d;
                }
            }
            return -1;
        }, contains: function (b, c) {
            return this.indexOf(b, c) != -1;
        }, forEach: function (b, f) {
            for (var d = 0, c = this.length; d < c; d++) {
                if (d in this) {
                    b.call(f, this[d], d, this);
                }
            }
        }, filter: function (b, j) {
            var g = [];
            for (var f = 0, c = this.length; f < c; f++) {
                if (f in this) {
                    var d = this[f];
                    if (b.call(j, this[f], f, this)) {
                        g.push(d);
                    }
                }
            }
            return g;
        }, map: function (b, g) {
            var f = [];
            for (var d = 0, c = this.length; d < c; d++) {
                if (d in this) {
                    f[d] = b.call(g, this[d], d, this);
                }
            }
            return f;
        }
    };
    $J.implement(String, {
        $J_TYPE: "string",
        j21: function () {
            return this.replace(/^\s+|\s+$/g, "");
        }, trimLeft: function () {
            return this.replace(/^\s+/g, "");
        }, trimRight: function () {
            return this.replace(/\s+$/g, "");
        }, j20: function (b) {
            return this.toString() === b.toString();
        }, icompare: function (b) {
            return this.toLowerCase().toString() === b.toLowerCase().toString();
        }, k: function () {
            return this.replace(/-\D/g, function (b) {
                return b.charAt(1).toUpperCase();
            });
        }, dashize: function () {
            return this.replace(/[A-Z]/g, function (b) {
                return "-" + b.charAt(0).toLowerCase();
            });
        }, j22: function (c) {
            return parseInt(this, c || 10);
        }, toFloat: function () {
            return parseFloat(this);
        }, j23: function () {
            return !this.replace(/true/i, "").j21();
        }, has: function (c, b) {
            b = b || "";
            return (b + this + b).indexOf(b + c + b) > -1;
        }
    });
    a.implement(Function, {
        $J_TYPE: "function",
        j19: function () {
            var c = $J.$A(arguments),
                b = this,
                d = c.shift();
            return function () {
                return b.apply(d || null, c.concat($J.$A(arguments)));
            };
        }, j18: function () {
            var c = $J.$A(arguments),
                b = this,
                d = c.shift();
            return function (f) {
                return b.apply(d || null, $j([f || window.event]).concat(c));
            };
        }, j32: function () {
            var c = $J.$A(arguments),
                b = this,
                d = c.shift();
            return window.setTimeout(function () {
                return b.apply(b, c);
            }, d || 0);
        }, j33: function () {
            var c = $J.$A(arguments),
                b = this;
            return function () {
                return b.j32.apply(b, c);
            };
        }, interval: function () {
            var c = $J.$A(arguments),
                b = this,
                d = c.shift();
            return window.setInterval(function () {
                return b.apply(b, c);
            }, d || 0);
        }
    });
    $J.v = {
        features: {
            xpath: !! document.evaluate,
            air: !! window.runtime,
            query: !! document.querySelector
        }, engine: window.opera ? "presto" : !! window.ActiveXObject ? "trident" : !navigator.taintEnabled ? "webkit" : undefined != document.getBoxObjectFor ? "gecko" : "unknown",
        version: "",
        platform: $J.defined(window.orientation) ? "ipod" : (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(),
        backCompat: document.compatMode && "backcompat" == document.compatMode.toLowerCase(),
        getDoc: function () {
            return document.compatMode && "backcompat" == document.compatMode.toLowerCase() ? document.body : document.documentElement;
        }, ready: false,
        onready: function () {
            if ($J.v.ready) {
                return;
            }
            $J.v.ready = true;
            $J.body = $j(document.body);
            $j(document).raiseEvent("domready");
        }
    };
    (function () {
        function b() {
            return !!arguments.callee.caller;
        }

        $J.v.version = "presto" == $J.v.engine ? b() ? 960 : document.getElementsByClassName ? 950 : 925 : "trident" == $J.v.engine ? !! (window.XMLHttpRequest && window.postMessage) ? 6 : window.XMLHttpRequest ? 5 : 4 : "webkit" == $J.v.engine ? $J.v.features.xpath ? $J.v.features.query ? 525 : 420 : 419 : "gecko" == $J.v.engine ? !! window.localStorage ? 191 : document.getElementsByClassName ? 190 : 181 : "";
        $J.v[$J.v.engine] = $J.v[$J.v.engine + $J.v.version] = true;
    }());
    $J.Element = {
        j13: function (b) {
            return this.className.has(b, " ");
        }, j2: function (b) {
            if (b && !this.j13(b)) {
                this.className += (this.className ? " " : "") + b;
            }
            return this;
        }, j3: function (b) {
            b = b || ".*";
            this.className = this.className.replace(new RegExp("(^|\\s)" + b + "(?:\\s|$)"), "$1").j21();
            return this;
        }, j4: function (b) {
            return this.j13(b) ? this.j3(b) : this.j2(b);
        }, j5: function (c) {
            c = c == "float" && this.currentStyle ? "styleFloat" : c.k();
            var b = null;
            if (this.currentStyle) {
                b = this.currentStyle[c];
            } else {
                if (document.defaultView && document.defaultView.getComputedStyle) {
                    css = document.defaultView.getComputedStyle(this, null);
                    b = css ? css.getPropertyValue([c.dashize()]) : null;
                }
            }
            if (!b) {
                b = this.style[c];
            }
            if ("opacity" == c) {
                return $J.defined(b) ? parseFloat(b) : 1;
            }
            if (/^(border(Top|Bottom|Left|Right)Width)|((padding|margin)(Top|Bottom|Left|Right))$/.test(c)) {
                b = parseInt(b) ? b : "0px";
            }
            return "auto" == b ? null : b;
        }, j6Prop: function (c, b) {
            try {
                if ("opacity" == c) {
                    this.g(b);
                    return this;
                }
                if ("float" == c) {
                    this.style["undefined" === typeof this.style.styleFloat ? "cssFloat" : "styleFloat"] = b;
                    return this;
                }
                this.style[c.k()] = b + ("number" == $J.j1(b) && !$j(["zIndex", "zoom"]).contains(c.k()) ? "px" : "");
            } catch (d) {}
            return this;
        }, j6: function (c) {
            for (var b in c) {
                this.j6Prop(b, c[b]);
            }
            return this;
        }, j30s: function () {
            var b = {};
            $J.$A(arguments).j14(function (c) {
                b[c] = this.j5(c);
            }, this);
            return b;
        }, g: function (g, c) {
            c = c || false;
            g = parseFloat(g);
            if (c) {
                if (g == 0) {
                    if ("hidden" != this.style.visibility) {
                        this.style.visibility = "hidden";
                    }
                } else {
                    if ("visible" != this.style.visibility) {
                        this.style.visibility = "visible";
                    }
                }
            }
            if ($J.v.trident) {
                if (!this.currentStyle || !this.currentStyle.hasLayout) {
                    this.style.zoom = 1;
                }
                try {
                    var d = this.filters.item("DXImageTransform.Microsoft.Alpha");
                    d.enabled = 1 != g;
                    d.opacity = g * 100;
                } catch (b) {
                    this.style.filter += 1 == g ? "" : "progid:DXImageTransform.Microsoft.Alpha(enabled=true,opacity=" + g * 100 + ")";
                }
            }
            this.style.opacity = g;
            return this;
        }, setProps: function (b) {
            for (var c in b) {
                this.setAttribute(c, "" + b[c]);
            }
            return this;
        }, hide: function () {
            return this.j6({
                display: "none",
                visibility: "hidden"
            });
        }, show: function () {
            return this.j6({
                display: "block",
                visibility: "visible"
            });
        }, j7: function () {
            return {
                width: this.offsetWidth,
                height: this.offsetHeight
            };
        }, j10: function () {
            return {
                top: this.scrollTop,
                left: this.scrollLeft
            };
        }, j11: function () {
            var b = this,
                c = {
                    top: 0,
                    left: 0
                };
            do {
                c.left += b.scrollLeft || 0;
                c.top += b.scrollTop || 0;
                b = b.parentNode;
            } while (b);
            return c;
        }, j8: function () {
            if ($J.defined(document.documentElement.getBoundingClientRect)) {
                var c = this.getBoundingClientRect(),
                    f = $j(document).j10(),
                    i = $J.v.getDoc();
                return {
                    top: c.top + f.y - i.clientTop,
                    left: c.left + f.x - i.clientLeft
                };
            }
            var g = this,
                d = t = 0;
            do {
                d += g.offsetLeft || 0;
                t += g.offsetTop || 0;
                g = g.offsetParent;
            } while (g && !/^(?:body|html)$/i.test(g.tagName));
            return {
                top: t,
                left: d
            };
        }, j9: function () {
            var c = this.j8();
            var b = this.j7();
            return {
                top: c.top,
                bottom: c.top + b.height,
                left: c.left,
                right: c.left + b.width
            };
        }, update: function (d) {
            try {
                this.innerHTML = d;
            } catch (b) {
                this.innerText = d;
            }
            return this;
        }, remove: function () {
            return this.parentNode ? this.parentNode.removeChild(this) : this;
        }, kill: function () {
            $J.$A(this.childNodes).j14(function (b) {
                if (3 == b.nodeType) {
                    return;
                }
                $j(b).kill();
            });
            this.remove();
            this.clearEvents();
            if (this.$J_UUID) {
                $J.storage[this.$J_UUID] = null;
                delete $J.storage[this.$J_UUID];
            }
            return null;
        }, append: function (d, c) {
            c = c || "bottom";
            var b = this.firstChild;
            "top" == c && b ? this.insertBefore(d, b) : this.appendChild(d);
            return this;
        }, j43: function (d, c) {
            var b = $j(d).append(this, c);
            return this;
        }, enclose: function (b) {
            this.append(b.parentNode.replaceChild(this, b));
            return this;
        }, hasChild: function (b) {
            if (!(b = $j(b))) {
                return false;
            }
            return this == b ? false : this.contains && !$J.v.webkit419 ? this.contains(b) : this.compareDocumentPosition ? !! (this.compareDocumentPosition(b) & 16) : $J.$A(this.byTag(b.tagName)).contains(b);
        }
    };
    $J.Element.j30 = $J.Element.j5;
    $J.Element.j31 = $J.Element.j6;
    if (!window.Element) {
        window.Element = $J.$F;
        if ($J.v.engine.webkit) {
            window.document.createElement("iframe");
        }
        window.Element.prototype = $J.v.engine.webkit ? window['[[DOMElement.prototype]]'] : {};
    }
    $J.implement(window.Element, {
        $J_TYPE: "element"
    });
    $J.Doc = {
        j7: function () {
            if ($J.v.presto925 || $J.v.webkit419) {
                return {
                    width: self.innerWidth,
                    height: self.innerHeight
                };
            }
            return {
                width: $J.v.getDoc().clientWidth,
                height: $J.v.getDoc().clientHeight
            };
        }, j10: function () {
            return {
                x: self.pageXOffset || $J.v.getDoc().scrollLeft,
                y: self.pageYOffset || $J.v.getDoc().scrollTop
            };
        }, j12: function () {
            var b = this.j7();
            return {
                width: Math.max($J.v.getDoc().scrollWidth, b.width),
                height: Math.max($J.v.getDoc().scrollHeight, b.height)
            };
        }
    };
    $J.extend(document, {
        $J_TYPE: "document"
    });
    $J.extend(window, {
        $J_TYPE: "window"
    });
    $J.extend([$J.Element, $J.Doc], {
        j40: function (f, c) {
            var b = $J.getStorage(this.$J_UUID),
                d = b[f];
            if (undefined != c && undefined == d) {
                d = b[f] = c;
            }
            return d || null;
        }, j41: function (d, c) {
            var b = $J.getStorage(this.$J_UUID);
            b[d] = c;
            return this;
        }, j42: function (c) {
            var b = $J.getStorage(this.$J_UUID);
            delete b[c];
            return this;
        }
    });
    if (!(window.HTMLElement && window.HTMLElement.prototype && window.HTMLElement.prototype.getElementsByClassName)) {
        $J.extend([$J.Element, $J.Doc], {
            getElementsByClassName: function (b) {
                return $J.$A(this.getElementsByTagName("*")).filter(function (d) {
                    try {
                        return 1 == d.nodeType && d.className.has(b, " ");
                    } catch (c) {}
                });
            }
        });
    }
    $J.extend([$J.Element, $J.Doc], {
        byClass: function () {
            return this.getElementsByClassName(arguments[0]);
        }, byTag: function () {
            return this.getElementsByTagName(arguments[0]);
        }
    });
    $J.Event = {
        $J_TYPE: "event",
        stop: function () {
            if (this.stopPropagation) {
                this.stopPropagation();
            } else {
                this.cancelBubble = true;
            }
            if (this.preventDefault) {
                this.preventDefault();
            } else {
                this.returnValue = false;
            }
            return this;
        }, j15: function () {
            return {
                x: this.pageX || this.clientX + $J.v.getDoc().scrollLeft,
                y: this.pageY || this.clientY + $J.v.getDoc().scrollTop
            };
        }, getTarget: function () {
            var b = this.target || this.srcElement;
            while (b && 3 == b.nodeType) {
                b = b.parentNode;
            }
            return b;
        }, getRelated: function () {
            var c = null;
            switch (this.type) {
            case "mouseover":
                c = this.relatedTarget || this.fromElement;
                break;
            case "mouseout":
                c = this.relatedTarget || this.toElement;
                break;
            default:
                return c;
            }
            try {
                while (c && 3 == c.nodeType) {
                    c = c.parentNode;
                }
            } catch (b) {
                c = null;
            }
            return c;
        }, getButton: function () {
            if (!this.which && this.button !== undefined) {
                return this.button & 1 ? 1 : this.button & 2 ? 3 : this.button & 4 ? 2 : 0;
            }
            return this.which;
        }
    };
    $J._event_add_ = "addEventListener";
    $J._event_del_ = "removeEventListener";
    $J._event_prefix_ = "";
    if (!document.addEventListener) {
        $J._event_add_ = "attachEvent";
        $J._event_del_ = "detachEvent";
        $J._event_prefix_ = "on";
    }
    $J.extend([$J.Element, $J.Doc], {
        a: function (f, d) {
            var i = "domready" == f ? false : true,
                c = this.j40("events", {});
            c[f] = c[f] || [];
            if (c[f].hasOwnProperty(d.$J_EUID)) {
                return this;
            }
            if (!d.$J_EUID) {
                d.$J_EUID = Math.floor(Math.random() * $J.now());
            }
            var b = this,
                g = function (j) {
                    return d.call(b);
                };
            if ("domready" == f) {
                if ($J.v.ready) {
                    d.call(this);
                    return this;
                }
            }
            if (i) {
                g = function (j) {
                    j = $J.extend(j || window.e, {
                        $J_TYPE: "event"
                    });
                    return d.call(b, $j(j));
                };
                this[$J._event_add_]($J._event_prefix_ + f, g, false);
            }
            c[f][d.$J_EUID] = g;
            return this;
        }, j26: function (f) {
            var i = "domready" == f ? false : true,
                c = this.j40("events");
            if (!c || !c[f]) {
                return this;
            }
            var g = c[f],
                d = arguments[1] || null;
            if (f && !d) {
                for (var b in g) {
                    if (!g.hasOwnProperty(b)) {
                        continue;
                    }
                    this.j26(f, b);
                }
                return this;
            }
            d = "function" == $J.j1(d) ? d.$J_EUID : d;
            if (!g.hasOwnProperty(d)) {
                return this;
            }
            if ("domready" == f) {
                i = false;
            }
            if (i) {
                this[$J._event_del_]($J._event_prefix_ + f, g[d], false);
            }
            delete g[d];
            return this;
        }, raiseEvent: function (f, c) {
            var l = "domready" == f ? false : true,
                j = this,
                i;
            if (!l) {
                var d = this.j40("events");
                if (!d || !d[f]) {
                    return this;
                }
                var g = d[f];
                for (var b in g) {
                    if (!g.hasOwnProperty(b)) {
                        continue;
                    }
                    g[b].call(this);
                }
                return this;
            }
            if (j === document && document.createEvent && !el.dispatchEvent) {
                j = document.documentElement;
            }
            if (document.createEvent) {
                i = document.createEvent(f);
                i.initEvent(c, true, true);
            } else {
                i = document.createEventObject();
                i.eventType = f;
            }
            if (document.createEvent) {
                j.dispatchEvent(i);
            } else {
                j.fireEvent("on" + c, i);
            }
            return i;
        }, clearEvents: function () {
            var b = this.j40("events");
            if (!b) {
                return this;
            }
            for (var c in b) {
                this.j26(c);
            }
            this.j42("events");
            return this;
        }
    });
    (function () {
        if ($J.v.webkit && $J.v.version < 420) {
            (function () {
                $j(["loaded", "complete"]).contains(document.readyState) ? $J.v.onready() : arguments.callee.j32(50);
            }());
        } else {
            if ($J.v.trident && window == top) {
                (function () {
                    $J.$try(function () {
                        $J.v.getDoc().doScroll("left");
                        return true;
                    }) ? $J.v.onready() : arguments.callee.j32(50);
                }());
            } else {
                $j(document).a("DOMContentLoaded", $J.v.onready);
                $j(window).a("load", $J.v.onready);
            }
        }
    }());
    $J.Class = function () {
        var g = null,
            c = $J.$A(arguments);
        if ("class" == $J.j1(c[0])) {
            g = c.shift();
        }
        var b = function () {
            for (var l in this) {
                this[l] = $J.detach(this[l]);
            }
            if (this.constructor.$parent) {
                this.$parent = {};
                var o = this.constructor.$parent;
                for (var n in o) {
                    var j = o[n];
                    switch ($J.j1(j)) {
                    case "function":
                        this.$parent[n] = $J.Class.wrap(this, j);
                        break;
                    case "object":
                        this.$parent[n] = $J.detach(j);
                        break;
                    case "array":
                        this.$parent[n] = $J.detach(j);
                        break;
                    default:
                        ;
                    }
                }
            }
            var i = this.init ? this.init.apply(this, arguments) : this;
            delete this.caller;
            return i;
        };
        if (!b.prototype.init) {
            b.prototype.init = $J.$F;
        }
        if (g) {
            var f = function () {};
            f.prototype = g.prototype;
            b.prototype = new f;
            b.$parent = {};
            for (var d in g.prototype) {
                b.$parent[d] = g.prototype[d];
            }
        } else {
            b.$parent = null;
        }
        b.constructor = $J.Class;
        b.prototype.constructor = b;
        $J.extend(b.prototype, c[0]);
        $J.extend(b, {
            $J_TYPE: "class"
        });
        return b;
    };
    a.Class.wrap = function (b, c) {
        return function () {
            var f = this.caller;
            var d = c.apply(b, arguments);
            return d;
        };
    };
    $J.FX = new($J.Class)({
        options: {
            fps: 50,
            duration: 500,
            transition: function (b) {
                return -(Math.cos(Math.PI * b) - 1) / 2;
            }, onStart: $J.$F,
            onComplete: $J.$F,
            onBeforeRender: $J.$F
        }, styles: null,
        init: function (c, b) {
            this.el = $j(c);
            this.options = $J.extend(this.options, b);
            this.timer = false;
        }, start: function (b) {
            this.styles = b;
            this.state = 0;
            this.curFrame = 0;
            this.startTime = $J.now();
            this.finishTime = this.startTime + this.options.duration;
            this.timer = this.loop.j19(this).interval(Math.round(1000 / this.options.fps));
            this.options.onStart.call();
            return this;
        }, stop: function (b) {
            b = $J.defined(b) ? b : false;
            if (this.timer) {
                clearInterval(this.timer);
                this.timer = false;
            }
            if (b) {
                this.render(1);
                this.options.onComplete.j32(10);
            }
            return this;
        }, calc: function (d, c, b) {
            return (c - d) * b + d;
        }, loop: function () {
            var c = $J.now();
            if (c >= this.finishTime) {
                if (this.timer) {
                    clearInterval(this.timer);
                    this.timer = false;
                }
                this.render(1);
                this.options.onComplete.j32(10);
                return this;
            }
            var b = this.options.transition((c - this.startTime) / this.options.duration);
            this.render(b);
        }, render: function (b) {
            var c = {};
            for (var d in this.styles) {
                if ("opacity" === d) {
                    c[d] = Math.round(this.calc(this.styles[d][0], this.styles[d][1], b) * 100) / 100;
                } else {
                    c[d] = Math.round(this.calc(this.styles[d][0], this.styles[d][1], b));
                }
            }
            this.options.onBeforeRender(c);
            this.set(c);
        }, set: function (b) {
            return this.el.j6(b);
        }
    });
    $J.FX.Transition = {
        linear: function (b) {
            return b;
        }, sineIn: function (b) {
            return -(Math.cos(Math.PI * b) - 1) / 2;
        }, sineOut: function (b) {
            return 1 - $J.FX.Transition.sineIn(1 - b);
        }, expoIn: function (b) {
            return Math.pow(2, 8 * (b - 1));
        }, expoOut: function (b) {
            return 1 - $J.FX.Transition.expoIn(1 - b);
        }, quadIn: function (b) {
            return Math.pow(b, 2);
        }, quadOut: function (b) {
            return 1 - $J.FX.Transition.quadIn(1 - b);
        }, cubicIn: function (b) {
            return Math.pow(b, 3);
        }, cubicOut: function (b) {
            return 1 - $J.FX.Transition.cubicIn(1 - b);
        }, backIn: function (c, b) {
            b = b || 1.618;
            return Math.pow(c, 2) * ((b + 1) * c - b);
        }, backOut: function (c, b) {
            return 1 - $J.FX.Transition.backIn(1 - c);
        }, elasticIn: function (c, b) {
            b = b || [];
            return Math.pow(2, 10 * --c) * Math.cos(20 * c * Math.PI * (b[0] || 1) / 3);
        }, elasticOut: function (c, b) {
            return 1 - $J.FX.Transition.elasticIn(1 - c, b);
        }, bounceIn: function (f) {
            for (var d = 0, c = 1;; d += c, c /= 2) {
                if (f >= (7 - 4 * d) / 11) {
                    return c * c - Math.pow((11 - 6 * d - 11 * f) / 4, 2);
                }
            }
        }, bounceOut: function (b) {
            return 1 - $J.FX.Transition.bounceIn(1 - b);
        }, none: function (b) {
            return 0;
        }
    };
    $J.PFX = new($J.Class)($J.FX, {
        init: function (b, c) {
            this.el_arr = b;
            this.options = $J.extend(this.options, c);
            this.timer = false;
        }, start: function (b) {
            this.$parent.start([]);
            this.styles_arr = b;
            return this;
        }, render: function (b) {
            for (var c = 0; c < this.el_arr.length; c++) {
                this.el = $j(this.el_arr[c]);
                this.styles = this.styles_arr[c];
                this.$parent.render(b);
            }
        }
    });
    $J.FX.Slide = new($J.Class)($J.FX, {
        options: {
            mode: "vertical"
        }, init: function (c, b) {
            this.el = $j(c);
            this.options = $J.extend(this.$parent.options, this.options);
            this.$parent.init(c, b);
            this.wrapper = this.el.j40("slide:wrapper");
            this.wrapper = this.wrapper || $J.$new("DIV").j6($J.extend(this.el.j30s("margin-top", "margin-left", "margin-right", "margin-bottom", "position", "top", "float"), {
                overflow: "hidden"
            })).enclose(this.el);
            this.el.j41("slide:wrapper", this.wrapper).j6({
                margin: 0
            });
        }, vertical: function () {
            this.margin = "margin-top";
            this.layout = "height";
            this.offset = this.el.offsetHeight;
        }, horizontal: function (b) {
            this.margin = "margin-" + (b || "left");
            this.layout = "width";
            this.offset = this.el.offsetWidth;
        }, right: function () {
            this.horizontal();
        }, left: function () {
            this.horizontal("right");
        }, start: function (d, i) {
            this[i || this.options.mode]();
            var g = this.el.j5(this.margin).j22(),
                f = this.wrapper.j5(this.layout).j22(),
                b = {},
                j = {},
                c;
            b[this.margin] = [g, 0],
            b[this.layout] = [0, this.offset],
            j[this.margin] = [g, -this.offset],
            j[this.layout] = [f, 0];
            switch (d) {
            case "in":
                c = b;
                break;
            case "out":
                c = j;
                break;
            case "toggle":
                c = 0 == f ? b : j;
                break;
            default:
                ;
            }
            this.$parent.start(c);
            return this;
        }, set: function (b) {
            this.el.j6Prop(this.margin, b[this.margin]);
            this.wrapper.j6Prop(this.layout, b[this.layout]);
            return this;
        }, slideIn: function (b) {
            return this.start("in", b);
        }, slideOut: function (b) {
            return this.start("out", b);
        }, hide: function (c) {
            this[c || this.options.mode]();
            var b = {};
            b[this.layout] = 0,
            b[this.margin] = -this.offset;
            return this.set(b);
        }, show: function (c) {
            this[c || this.options.mode]();
            var b = {};
            b[this.layout] = this.offset,
            b[this.margin] = 0;
            return this.set(b);
        }, toggle: function (b) {
            return this.start("toggle", b);
        }
    });
    $J.win = $j(window);
    $J.doc = $j(document);
}());
$J.$Ff = function () {
    return false;
};
var ImageZoom = {
    version: "3.1.18",
    options: {}, defaults: {
        opacity: 50,
        opacityReverse: false,
        smoothingSpeed: 40,
        fps: 25,
        zoomWidth: 300,
        zoomHeight: 300,
        zoomDistance: 15,
        zoomPosition: "right",
        dragMode: false,
        moveOnClick: false,
        alwaysShowZoom: false,
        preservePosition: false,
        x: -1,
        y: -1,
        clickToActivate: false,
        clickToInitialize: false,
        smoothing: true,
        showTitle: "true",
        thumbChange: "click",
        zoomFade: false,
        zoomFadeInSpeed: 400,
        zoomFadeOutSpeed: 200,
        hotspots: "",
        preloadSelectorsSmall: true,
        preloadSelectorsBig: false,
        showLoading: true,
        loadingMsg: "Loading zoom..",
        loadingOpacity: 75,
        loadingPositionX: -1,
        loadingPositionY: -1,
        selectorsMouseoverDelay: 200,
        selectorsEffect: "dissolve",
        selectorsEffectSpeed: 400,
        fitZoomWindow: true,
        entireImage: false
    }, z40: $j([/^(opacity)(\s+)?:(\s+)?(\d+)$/i, /^(opacity-reverse)(\s+)?:(\s+)?(true|false)$/i, /^(smoothing\-speed)(\s+)?:(\s+)?(\d+)$/i, /^(fps)(\s+)?:(\s+)?(\d+)$/i, /^(zoom\-width)(\s+)?:(\s+)?(\d+)(px)?/i, /^(zoom\-height)(\s+)?:(\s+)?(\d+)(px)?/i, /^(zoom\-distance)(\s+)?:(\s+)?(\d+)(px)?/i, /^(zoom\-position)(\s+)?:(\s+)?(right|left|top|bottom|custom|inner)$/i, /^(drag\-mode)(\s+)?:(\s+)?(true|false)$/i, /^(move\-on\-click)(\s+)?:(\s+)?(true|false)$/i, /^(always\-show\-zoom)(\s+)?:(\s+)?(true|false)$/i, /^(preserve\-position)(\s+)?:(\s+)?(true|false)$/i, /^(x)(\s+)?:(\s+)?([\d.]+)(px)?/i, /^(y)(\s+)?:(\s+)?([\d.]+)(px)?/i, /^(click\-to\-activate)(\s+)?:(\s+)?(true|false)$/i, /^(click\-to\-initialize)(\s+)?:(\s+)?(true|false)$/i, /^(smoothing)(\s+)?:(\s+)?(true|false)$/i, /^(show\-title)(\s+)?:(\s+)?(true|false|top|bottom)$/i, /^(thumb\-change)(\s+)?:(\s+)?(click|mouseover)$/i, /^(zoom\-fade)(\s+)?:(\s+)?(true|false)$/i, /^(zoom\-fade\-in\-speed)(\s+)?:(\s+)?(\d+)$/i, /^(zoom\-fade\-out\-speed)(\s+)?:(\s+)?(\d+)$/i, /^(hotspots)(\s+)?:(\s+)?([a-z0-9_\-:\.]+)$/i, /^(preload\-selectors\-small)(\s+)?:(\s+)?(true|false)$/i, /^(preload\-selectors\-big)(\s+)?:(\s+)?(true|false)$/i, /^(show\-loading)(\s+)?:(\s+)?(true|false)$/i, /^(loading\-msg)(\s+)?:(\s+)?([^;]*)$/i, /^(loading\-opacity)(\s+)?:(\s+)?(\d+)$/i, /^(loading\-position\-x)(\s+)?:(\s+)?(\d+)(px)?/i, /^(loading\-position\-y)(\s+)?:(\s+)?(\d+)(px)?/i, /^(selectors\-mouseover\-delay)(\s+)?:(\s+)?(\d+)$/i, /^(selectors\-effect)(\s+)?:(\s+)?(dissolve|fade|false)$/i, /^(selectors\-effect\-speed)(\s+)?:(\s+)?(\d+)$/i, /^(fit\-zoom\-window)(\s+)?:(\s+)?(true|false)$/i, /^(entire\-image)(\s+)?:(\s+)?(true|false)$/i]),
    zooms: [],
    z1: function (b) {
        for (var a = 0; a < ImageZoom.zooms.length; a++) {
            if (ImageZoom.zooms[a].z28) {
                ImageZoom.zooms[a].j17();
            } else {
                if (ImageZoom.zooms[a].options.clickToInitialize && ImageZoom.zooms[a].initMouseEvent) {
                    ImageZoom.zooms[a].initMouseEvent = b;
                }
            }
        }
    }, stop: function (a) {
        if (a.zoom) {
            a.zoom.stop();
            return true;
        }
        return false;
    }, start: function (a) {
        if (!a.zoom) {
            var b = null;
            while ((b = a.firstChild)) {
                if (b.tagName == "IMG") {
                    break;
                }
                a.removeChild(b);
            }
            while ((b = a.lastChild)) {
                if (b.tagName == "IMG") {
                    break;
                }
                a.removeChild(b);
            }
            if (!a.firstChild || a.firstChild.tagName != "IMG") {
                throw "Invalid Image Zoom";
            }
            ImageZoom.zooms.push(new(ImageZoom.zoom)(a));
        } else {
            a.zoom.start();
        }
    }, update: function (d, a, c, b) {
        if (d.zoom) {
            d.zoom.update(a, c, b);
            return true;
        }
        return false;
    }, refresh: function () {
        $J.$A(window.document.getElementsByTagName("A")).j14(function (a) {
            if (/ImageZoom/.test(a.className)) {
                if (ImageZoom.stop(a)) {
                    ImageZoom.start.j32(100, a);
                } else {
                    ImageZoom.start(a);
                }
            }
        }, this);
    }, getXY: function (a) {
        if (a.zoom) {
            return {
                x: a.zoom.options.x,
                y: a.zoom.options.y
            };
        }
    }, x7: function (c) {
        var b, a;
        b = "";
        for (a = 0; a < c.length; a++) {
            b += String.fromCharCode(14 ^ c.charCodeAt(a));
        }
        return b;
    }
};
ImageZoom.z50 = function () {
    this.init.apply(this, arguments);
};
ImageZoom.z50.prototype = {
    init: function (a) {
        this.cb = null;
        this.z2 = null;
        this.onErrorHandler = this.onError.j18(this);
        this.z3 = null;
        this.width = 0;
        this.height = 0;
        this.border = {
            left: 0,
            right: 0,
            top: 0,
            bottom: 0
        };
        this.padding = {
            left: 0,
            right: 0,
            top: 0,
            bottom: 0
        };
        this.ready = false;
        this._tmpp = null;
        if ("string" == $J.j1(a)) {
            this._tmpp = $J.$new("div").j6({
                position: "absolute",
                top: "-10000px",
                width: "1px",
                height: "1px",
                overflow: "hidden"
            }).j43($J.body);
            this.self = $J.$new("img").j43(this._tmpp);
            this.z4();
            this.self.src = a;
        } else {
            this.self = $j(a);
            this.z4();
        }
    }, _cleanup: function () {
        if (this._tmpp) {
            if (this.self.parentNode == this._tmpp) {
                this.self.remove().j6({
                    position: "static",
                    top: "auto"
                });
            }
            this._tmpp.kill();
            this._tmpp = null;
        }
    }, onError: function (a) {
        if (a) {
            $j(a).stop();
        }
        if (this.cb) {
            this._cleanup();
            this.cb.call(this, false);
        }
        this.unload();
    }, z4: function (a) {
        this.z2 = null;
        if (a == true || !(this.self.src && (this.self.complete || this.self.readyState == "complete"))) {
            this.z2 = function (b) {
                if (b) {
                    $j(b).stop();
                }
                if (this.ready) {
                    return;
                }
                this.ready = true;
                this.z6();
                if (this.cb) {
                    this._cleanup();
                    this.cb.call();
                }
            }.j18(this);
            this.self.a("load", this.z2);
            $j(["abort", "error"]).j14(function (b) {
                this.self.a(b, this.onErrorHandler);
            }, this);
        } else {
            this.ready = true;
        }
    }, update: function (a) {
        this.unload();
        if (this.self.src.has(a)) {
            this.ready = true;
        } else {
            this.z4(true);
            this.self.src = a;
        }
    }, z6: function () {
        this.width = this.self.width;
        this.height = this.self.height;
        $j(["Left", "Right", "Top", "Bottom"]).j14(function (a) {
            this.padding[a.toLowerCase()] = this.self.j30("padding" + a).j22();
            this.border[a.toLowerCase()] = this.self.j30("border" + a + "Width").j22();
        }, this);
        if ($J.v.presto || $J.v.trident && !$J.v.backCompat) {
            this.width -= this.padding.left + this.padding.right;
            this.height -= this.padding.top + this.padding.bottom;
        }
    }, getBox: function () {
        var a = null;
        a = this.self.j9();
        return {
            top: a.top + this.border.top,
            bottom: a.bottom - this.border.bottom,
            left: a.left + this.border.left,
            right: a.right - this.border.right
        };
    }, z5: function () {
        if (this.z3) {
            this.z3.src = this.self.src;
            this.self = null;
            this.self = this.z3;
        }
    }, load: function (a) {
        if (this.ready) {
            if (!this.width) {
                this.z6();
            }
            this._cleanup();
            a.call();
        } else {
            this.cb = a;
        }
    }, unload: function () {
        if (this.z2) {
            this.self.j26("load", this.z2);
        }
        $j(["abort", "error"]).j14(function (a) {
            this.self.j26(a, this.onErrorHandler);
        }, this);
        this.z2 = null;
        this.cb = null;
        this.width = null;
        this.ready = false;
        this._new = false;
    }
};
ImageZoom.zoom = function () {
    this.construct.apply(this, arguments);
};
ImageZoom.zoom.prototype = {
    construct: function (b, a) {
        this.z25 = -1;
        this.z28 = false;
        this.ddx = 0;
        this.ddy = 0;
        this.options = $J.detach(ImageZoom.defaults);
        if (b) {
            this.c = $j(b);
        }
        this.z37(this.c.rel);
        if (a) {
            this.z37(a);
        }
        this.z48 = null;
        if (b) {
            this.z7 = this.mousedown.j18(this);
            this.z8 = this.mouseup.j18(this);
            this.z9 = this.show.j19(this, false);
            this.z10 = this.z26.j19(this);
            this.z46Bind = this.z46.j18(this);
            this.c.a("click", function (c) {
                if (!$J.v.trident) {
                    this.blur();
                }
                $j(c).stop();
                return false;
            });
            this.c.a("mousedown", this.z7);
            this.c.a("mouseup", this.z8);
            this.c.unselectable = "on";
            this.c.style.MozUserSelect = "none";
            this.c.onselectstart = $J.$Ff;
            this.c.oncontextmenu = $J.$Ff;
            this.c.j6({
                position: "relative",
                display: "inline-block",
                textDecoration: "none",
                outline: "0",
                cursor: "hand"
            });
            if ($J.v.gecko181 || $J.v.presto) {
                this.c.j6({
                    display: "block"
                });
            }
            if (this.c.j5("textAlign") == "center") {
                this.c.j6({
                    margin: "auto auto"
                });
            }
            this.c.zoom = this;
        } else {
            this.options.clickToInitialize = false;
        }
        if (!this.options.clickToInitialize) {
            this.z11();
        }
    }, z11: function () {
        var b, j, i, c;
      
        if (!this.q) {
            this.q = new(ImageZoom.z50)(this.c.firstChild);
            this.w = new(ImageZoom.z50)(this.c.href);
        } else {
            this.w.update(this.c.href);
        }
        if (!this.e) {
            this.e = {
                self: $j(document.createElement("DIV")).j2("ImageZoomBigImageCont").j6({
                    overflow: "hidden",
                    zIndex: 100,
                    top: "-10000px",
                    position: "absolute",
                    width: this.options.zoomWidth + "px",
                    height: this.options.zoomHeight + "px"
                }),
                zoom: this,
                z17: "0px"
            };
            this.e.hide = function () {
                if (this.self.style.top != "-10000px" && !this.zoom.x.z39) {
                    this.z17 = this.self.style.top;
                    this.self.style.top = "-10000px";
                }
            };
            this.e.z18 = this.e.hide.j19(this.e);
            if ($J.v.trident) {
                b = $j(document.createElement("IFRAME"));
                b.src = "javascript:''";
                b.j6({
                    left: "0px",
                    top: "0px",
                    position: "absolute"
                }).frameBorder = 0;
                this.e.z19 = this.e.self.appendChild(b);
            }
            this.e.z44 = $j(document.createElement("DIV")).j2("ImageZoomHeader").j6({
                position: "relative",
                zIndex: 10,
                left: "0px",
                top: "0px",
                padding: "3px"
            }).hide();
            j = document.createElement("DIV");
            j.style.overflow = "hidden";
            j.appendChild(this.w.self);
            this.w.self.j6({
                padding: "0px",
                margin: "0px",
                border: "0px"
            });
            if (this.options.showTitle == "bottom") {
                this.e.self.appendChild(j);
                this.e.self.appendChild(this.e.z44);
            } else {
                this.e.self.appendChild(this.e.z44);
                this.e.self.appendChild(j);
            }
            if (this.options.zoomPosition == "custom" && $j(this.c.id + "-big")) {
                $j(this.c.id + "-big").appendChild(this.e.self);
            } else {
                this.c.appendChild(this.e.self);
            }

         
        }
        if (this.options.showTitle != "false" && this.options.showTitle != false && this.c.title != "" && this.options.zoomPosition != "inner") {
            c = this.e.z44;
            while ((i = c.firstChild)) {
                c.removeChild(i);
            }
            this.e.z44.appendChild(document.createTextNode(this.c.title));
            this.e.z44.show();
        } else {
            this.e.z44.hide();
        }
        if (this.c.z51 === undefined) {
            this.c.z51 = this.c.title;
        }
        this.c.title = "";
        this.q.load(this.z12.j19(this));
    }, z12: function (a) {
        if (!a && a !== undefined) {
            return;
        }
        if (!this.options.opacityReverse) {
            this.q.self.g(1);
        }
        this.c.j6({
            width: this.q.width + "px"
        });
        if (this.options.showLoading) {
            this.z20 = setTimeout(this.z10, 400);
        }
        if (this.options.hotspots != "" && $j(this.options.hotspots)) {
            this.z21();
        }
        if (this.c.id != "") {
            this.z22();
        }
        this.w.load(this.z13.j19(this));
    }, z13: function (c) {
        var b, a;
        if (!c && c !== undefined) {
            clearTimeout(this.z20);
            if (this.options.showLoading && this.o) {
                this.o.hide();
            }
            return;
        }
        b = this.e.z44.j7();
        if (this.options.fitZoomWindow || this.options.entireImage) {
            if (this.w.width < this.options.zoomWidth || this.options.entireImage) {
                this.options.zoomWidth = this.w.width;
            }
            if (this.w.height < this.options.zoomHeight || this.options.entireImage) {
                this.options.zoomHeight = this.w.height + b.height;
            }
        }
        if (this.options.showTitle == "bottom") {
            this.w.self.parentNode.style.height = this.options.zoomHeight - b.height + "px";
        }
        this.e.self.j6({
            height: this.options.zoomHeight + "px",
            width: this.options.zoomWidth + "px"
        }).g(1);
        if ($J.v.trident) {
            this.e.z19.j6({
                width: this.options.zoomWidth + "px",
                height: this.options.zoomHeight + "px"
            });
        }
        a = this.q.self.j9();
        switch (this.options.zoomPosition) {
        case "custom":
            break;
        case "right":
            this.e.self.style.left = a.right - a.left + this.options.zoomDistance + ("px");
            this.e.z17 = "0px";
            break;
        case "left":
            this.e.self.style.left = "-" + this.options.zoomDistance + this.options.zoomWidth + "px";
            this.e.z17 = "0px";
            break;
        case "top":
            this.e.self.style.left = "0px";
            this.e.z17 = "-" + this.options.zoomDistance + this.options.zoomHeight + "px";
            break;
        case "bottom":
            this.e.self.style.left = "0px";
            this.e.z17 = a.bottom - a.top + this.options.zoomDistance + ("px");
            break;
        case "inner":
            this.e.self.j6({
                left: "0px",
                height: this.q.height + "px",
                width: this.q.width + "px"
            });
            this.options.zoomWidth = this.q.width;
            this.options.zoomHeight = this.q.height;
            this.e.z17 = "0px";
            break;
        default:
            ;
        }
        this.zoomViewHeight = this.options.zoomHeight - b.height;
        if (this.e.g) {
            this.e.g.j6({
                top: this.options.showTitle == "bottom" ? "0px" : this.options.zoomHeight - 20 + "px"
            });
        }
        this.w.self.j6({
            position: "relative",
            borderWidth: "0px",
            padding: "0px",
            left: "0px",
            top: "0px"
        });
        this.z23();
        if (this.options.alwaysShowZoom) {
            if (this.options.x == -1) {
                this.options.x = this.q.width / 2;
            }
            if (this.options.y == -1) {
                this.options.y = this.q.height / 2;
            }
            this.show();
        } else {
            if (this.options.zoomFade) {
                this.r = new($J.FX)(this.e.self);
            }
            this.e.self.j6({
                top: "-10000px"
            });
        }
        if (this.options.showLoading && this.o) {
            this.o.hide();
        }
        this.c.a("mousemove", this.z46Bind);
        this.c.a("mouseout", this.z46Bind);
        if (!this.options.clickToActivate || this.options.clickToInitialize) {
            this.z28 = true;
        }
        if (this.options.clickToInitialize && this.initMouseEvent) {
            this.z46(this.initMouseEvent);
        }
        this.z25 = $J.now();
    }, z26: function () {
        if (this.w.ready) {
            return;
        }
        this.o = $j(document.createElement("DIV")).j2("ImageZoomLoading").g(this.options.loadingOpacity / 100).j6({
            display: "block",
            overflow: "hidden",
            position: "absolute",
            visibility: "hidden",
            'z-index': 20,
            'max-width': this.q.width - 4
        });
        this.o.appendChild(document.createTextNode(this.options.loadingMsg));
        this.c.appendChild(this.o);
        var a = this.o.j7();
        this.o.j6({
            left: (this.options.loadingPositionX == -1 ? (this.q.width - a.width) / 2 : this.options.loadingPositionX) + "px",
            top: (this.options.loadingPositionY == -1 ? (this.q.height - a.height) / 2 : this.options.loadingPositionY) + "px"
        });
        this.o.show();
    }, z21: function () {
        $j(this.options.hotspots).z30 = $j(this.options.hotspots).parentNode;
        $j(this.options.hotspots).z31 = $j(this.options.hotspots).nextSibling;
        this.c.appendChild($j(this.options.hotspots));
        $j(this.options.hotspots).j6({
            position: "absolute",
            left: "0px",
            top: "0px",
            width: this.q.width + "px",
            height: this.q.height + "px",
            zIndex: 15
        }).show();
        if ($J.v.trident) {
            this.c.z32 = this.c.appendChild($j(document.createElement("DIV")).j6({
                position: "absolute",
                left: "0px",
                top: "0px",
                width: this.q.width + "px",
                height: this.q.height + "px",
                zIndex: 14,
                background: "#ccc"
            }).g(0.00001));
        }
        $J.$A($j(this.options.hotspots).getElementsByTagName("A")).j14(function (b) {
            var c = b.coords.split(","),
                a = null;
            $j(b).j6({
                position: "absolute",
                left: c[0] + "px",
                top: c[1] + "px",
                width: c[2] - c[0] + "px",
                height: c[3] - c[1] + "px",
                zIndex: 15
            }).show();
            if (b.j13("ImageThumb")) {
                if ((a = b.j40("thumb"))) {
                    a.group = this.options.hotspots;
                } else {
                    b.rel += ";group: " + this.options.hotspots + ";";
                }
            }
        }, this);
    }, z22: function () {
        var d, c, a, f;
        this.selectors = $j([]);
        $J.$A(document.getElementsByTagName("A")).j14(function (b) {
            d = new RegExp("^" + this.c.id + "$");
            c = new RegExp("zoom\\-id(\\s+)?:(\\s+)?" + this.c.id + "($|;)");
            if (d.test(b.rel) || c.test(b.rel)) {
                if (!$j(b).z36) {
                    b.z36 = function (g) {
                        if (!$J.v.trident) {
                            this.blur();
                        }
                        $j(g).stop();
                        return false;
                    };
                    b.a("click", b.z36);
                }
                if (!b.z34) {
                    b.z34 = function (i, g) {
                        if (i.type == "mouseout") {
                            if (this.z35) {
                                clearTimeout(this.z35);
                            }
                            this.z35 = false;
                            return;
                        }
                        if (g.title != "") {
                            this.c.title = g.title;
                        }
                        if (i.type == "mouseover") {
                            this.z35 = setTimeout(this.update.j19(this, g.href, g.rev, g.rel), this.options.selectorsMouseoverDelay);
                        } else {
                            this.update(g.href, g.rev, g.rel);
                        }
                    }.j18(this, b);
                    b.a(this.options.thumbChange, b.z34);
                    if (this.options.thumbChange == "mouseover") {
                        b.a("mouseout", b.z34);
                    }
                }
                b.j6({
                    outline: "0"
                });
                if (this.options.preloadSelectorsSmall) {
                    f = new Image;
                    f.src = b.rev;
                }
                if (this.options.preloadSelectorsBig) {
                    a = new Image;
                    a.src = b.href;
                }
                this.selectors.push(b);
            }
        }, this);
    }, stop: function (a) {
        try {
            this.j17();
            this.c.j26("mousemove", this.z46Bind);
            this.c.j26("mouseout", this.z46Bind);
            if (undefined === a) {
                this.x.self.hide();
            }
            if (this.r) {
                this.r.stop();
            }
            this.y = null;
            this.z28 = false;
            this.selectors.j14(function (c) {
                if (undefined === a) {
                    c.j26(this.options.thumbChange, c.z34);
                    if (this.options.thumbChange == "mouseover") {
                        c.j26("mouseout", c.z34);
                    }
                    c.z34 = null;
                    c.j26("click", c.z36);
                    c.z36 = null;
                }
            }, this);
            if (this.options.hotspots != "" && $j(this.options.hotspots)) {
                $j(this.options.hotspots).hide();
                $j(this.options.hotspots).z30.insertBefore($j(this.options.hotspots), $j(this.options.hotspots).z31);
                if (this.c.z32) {
                    this.c.removeChild(this.c.z32);
                }
            }
            this.w.unload();
            if (this.options.opacityReverse) {
                this.c.j3("ImageZoomPup");
                this.q.self.g(1);
            }
            this.r = null;
            if (this.o) {
                this.c.removeChild(this.o);
            }
            if (undefined === a) {
                this.q.unload();
                this.c.removeChild(this.x.self);
                this.e.self.parentNode.removeChild(this.e.self);
                this.x = null;
                this.e = null;
                this.w = null;
                this.q = null;
            }
            if (this.z20) {
                clearTimeout(this.z20);
                this.z20 = null;
            }
            this.z48 = null;
            this.c.z32 = null;
            this.o = null;
            if (this.c.title == "") {
                this.c.title = this.c.z51;
            }
            this.z25 = -1;
        } catch (b) {}
    }, start: function (a) {
        if (this.z25 != -1) {
            return;
        }
        this.construct(false, a);
    }, update: function (c, d, j) {
        var k, f, l, b, g, a, i;
        i = null;
        if ($J.now() - this.z25 < 300 || this.z25 == -1 || this.ufx) {
            k = 300 - $J.now() + this.z25;
            if (this.z25 == -1) {
                k = 300;
            }
            this.z35 = setTimeout(this.update.j19(this, c, d, j), k);
            return;
        }
        f = function (m) {
            if (undefined != c) {
                this.c.href = c;
            }
            if (undefined === j) {
                j = "";
            }
            if (this.options.preservePosition) {
                j = "x: " + this.options.x + "; y: " + this.options.y + "; " + j;
            }
            if (undefined != d) {
                this.q.update(d);
                if (m !== undefined) {
                    this.q.load(m);
                }
            }
        };
        if (this.c.j40("thumb") && this.c.j40("thumb").ready) {
            var i = function () {
                this.c.j40("thumb").update(this.c.href, null, j);
            }.j19(this);
        }
        b = this.q.width;
        g = this.q.height;
        this.stop(true);
        if (this.options.selectorsEffect != "false") {
            this.ufx = true;
            a = new(ImageZoom.z50)(d);
            this.c.appendChild(a.self);
            a.self.j6({
                opacity: 0,
                position: "absolute",
                left: "0px",
                top: "0px"
            });
            l = function () {
                var m, o, n;
                m = {};
                n = {};
                o = {
                    opacity: [0, 1]
                };
                if (b != a.width || g != a.height) {
                    n.width = o.width = m.width = [b, a.width];
                    n.height = o.height = m.height = [g, a.height];
                }
                if (this.options.selectorsEffect == "fade") {
                    m.opacity = [1, 0];
                }(new($J.PFX)([this.c, a.self, this.c.firstChild], {
                    duration: this.options.selectorsEffectSpeed,
                    onComplete: function () {
                        f.call(this, function () {
                            a.unload();
                            this.c.removeChild(a.self);
                            a = null;
                            if (m.opacity) {
                                $j(this.c.firstChild).j6({
                                    opacity: 1
                                });
                            }
                            this.ufx = false;
                            this.start(j);
                            if (i) {
                                i.j32(10);
                            }
                        }.j19(this));
                    }.j19(this)
                })).start([n, o, m]);
            };
            a.load(l.j19(this));
        } else {
            f.call(this, function () {
                this.c.j6({
                    width: this.q.width + "px",
                    height: this.q.height + "px"
                });
                this.start(j);
                if (i) {
                    i.j32(10);
                }
            }.j19(this));
        }
    }, z37: function (b) {
        var a, f, d, c;
        a = null;
        f = [];
        d = $j(b.split(";"));
        for (c in ImageZoom.options) {
            f[c.k()] = ImageZoom.options[c];
        }
        d.j14(function (g) {
            ImageZoom.z40.j14(function (i) {
                a = i.exec(g.j21());
                if (a) {
                    switch ($J.j1(ImageZoom.defaults[a[1].k()])) {
                    case "boolean":
                        f[a[1].k()] = a[4] === "true";
                        break;
                    case "number":
                        f[a[1].k()] = parseFloat(a[4]);
                        break;
                    default:
                        f[a[1].k()] = a[4];
                    }
                }
            }, this);
        }, this);
        if (f.dragMode && undefined === f.alwaysShowZoom) {
            f.alwaysShowZoom = true;
        }
        this.options = $J.extend(this.options, f);
    }, z23: function () {
        var a;
        if (!this.x) {
            this.x = {
                self: $j(document.createElement("DIV")).j2("ImageZoomPup").j6({
                    zIndex: 10,
                    position: "absolute",
                    overflow: "hidden"
                }).hide(),
                width: 20,
                height: 20
            };
            this.c.appendChild(this.x.self);
        }
        if (this.options.entireImage) {
            this.x.self.j6({
                'border-width': "0px"
            });
        }
        this.x.z39 = false;
        this.x.height = this.zoomViewHeight / (this.w.height / this.q.height);
        this.x.width = this.options.zoomWidth / (this.w.width / this.q.width);
        if (this.x.width > this.q.width) {
            this.x.width = this.q.width;
        }
        if (this.x.height > this.q.height) {
            this.x.height = this.q.height;
        }
        this.x.width = Math.round(this.x.width);
        this.x.height = Math.round(this.x.height);
        this.x.borderWidth = this.x.self.j30("borderLeftWidth").j22();
        this.x.self.j6({
            width: this.x.width - 2 * ($J.v.backCompat ? 0 : this.x.borderWidth) + "px",
            height: this.x.height - 2 * ($J.v.backCompat ? 0 : this.x.borderWidth) + "px"
        });
        if (!this.options.opacityReverse) {
            this.x.self.g(parseFloat(this.options.opacity / 100));
            if (this.x.z45) {
                this.x.self.removeChild(this.x.z45);
                this.x.z45 = null;
            }
        } else {
            this.x.self.g(1);
            if (this.x.z45) {
                this.x.z45.src = this.q.self.src;
            } else {
                a = this.q.self.cloneNode(false);
                a.unselectable = "on";
                this.x.z45 = $j(this.x.self.appendChild(a)).j6({
                    position: "absolute",
                    zIndex: 5
                });
            }
        }
    }, z46: function (b, a) {
        if (!this.z28 || b === undefined) {
            return false;
        }
        $j(b).stop();
        if (a === undefined) {
            a = $j(b).j15();
        }
        if (this.y === null || this.y === undefined) {
            this.y = this.q.getBox();
        }
        if (a.x > this.y.right || a.x < this.y.left || a.y > this.y.bottom || a.y < this.y.top) {
            this.j17();
            return false;
        }
        if (b.type == "mouseout") {
            return false;
        }
        if (this.options.dragMode && !this.z49) {
            return false;
        }
        if (!this.options.moveOnClick) {
            a.x -= this.ddx;
            a.y -= this.ddy;
        }
        if (a.x + this.x.width / 2 >= this.y.right) {
            a.x = this.y.right - this.x.width / 2;
        }
        if (a.x - this.x.width / 2 <= this.y.left) {
            a.x = this.y.left + this.x.width / 2;
        }
        if (a.y + this.x.height / 2 >= this.y.bottom) {
            a.y = this.y.bottom - this.x.height / 2;
        }
        if (a.y - this.x.height / 2 <= this.y.top) {
            a.y = this.y.top + this.x.height / 2;
        }
        this.options.x = a.x - this.y.left;
        this.options.y = a.y - this.y.top;
        if (this.z48 === null) {
            if ($J.v.trident) {
                this.c.style.zIndex = 1;
            }
            this.z48 = setTimeout(this.z9, 10);
        }
        return true;
    }, show: function () {
        var f, j, d, c, i, g, b, a;
        f = this.x.width / 2;
        j = this.x.height / 2;
        this.x.self.style.left = this.options.x - f + this.q.border.left + ("px");
        this.x.self.style.top = this.options.y - j + this.q.border.top + ("px");
        if (this.options.opacityReverse) {
            this.x.z45.style.left = "-" + parseFloat(this.x.self.style.left) + this.x.borderWidth + "px";
            this.x.z45.style.top = "-" + parseFloat(this.x.self.style.top) + this.x.borderWidth + "px";
        }
        d = (this.options.x - f) * (this.w.width / this.q.width);
        c = (this.options.y - j) * (this.w.height / this.q.height);
        if (this.w.width - d < this.options.zoomWidth) {
            d = this.w.width - this.options.zoomWidth;
            if (d < 0) {
                d = 0;
            }
        }
        if (this.w.height - c < this.zoomViewHeight) {
            c = this.w.height - this.zoomViewHeight;
            if (c < 0) {
                c = 0;
            }
        }
        if (document.documentElement.dir == "rtl") {
            d = (this.options.x + this.x.width / 2 - this.q.width) * (this.w.width / this.q.width);
        }
        d = Math.round(d);
        c = Math.round(c);
        if (this.options.smoothing === false || !this.x.z39) {
            this.w.self.style.left = -d + "px";
            this.w.self.style.top = -c + "px";
        } else {
            i = parseInt(this.w.self.style.left);
            g = parseInt(this.w.self.style.top);
            b = -d - i;
            a = -c - g;
            if (!b && !a) {
                this.z48 = null;
                return;
            }
            b *= this.options.smoothingSpeed / 100;
            if (b < 1 && b > 0) {
                b = 1;
            } else {
                if (b > -1 && b < 0) {
                    b = -1;
                }
            }
            i += b;
            a *= this.options.smoothingSpeed / 100;
            if (a < 1 && a > 0) {
                a = 1;
            } else {
                if (a > -1 && a < 0) {
                    a = -1;
                }
            }
            g += a;
            this.w.self.style.left = i + "px";
            this.w.self.style.top = g + "px";
        }
        if (!this.x.z39) {
            if (this.r) {
                this.r.stop();
                this.r.options.onComplete = $J.$F;
                this.r.options.duration = this.options.zoomFadeInSpeed;
                this.e.self.g(0);
                this.r.start({
                    opacity: [0, 1]
                });
            }
            if (this.options.zoomPosition != "inner") {
                this.x.self.show();
            }
            this.e.self.style.top = this.e.z17;
            if (this.options.opacityReverse) {
                this.c.j2("ImageZoomPup").j31({
                    'border-width': "0px"
                });
                this.q.self.g(parseFloat((100 - this.options.opacity) / 100));
            }
            this.x.z39 = true;
        }
        if (this.z48) {
            this.z48 = setTimeout(this.z9, 1000 / this.options.fps);
        }
    }, j17: function () {
        if (this.z48) {
            clearTimeout(this.z48);
            this.z48 = null;
        }
        if (!this.options.alwaysShowZoom && this.x.z39) {
            this.x.z39 = false;
            this.x.self.hide();
            if (this.r) {
                this.r.stop();
                this.r.options.onComplete = this.e.z18;
                this.r.options.duration = this.options.zoomFadeOutSpeed;
                var a = this.e.self.j30("opacity");
                this.r.start({
                    opacity: [a, 0]
                });
            } else {
                this.e.hide();
            }
            if (this.options.opacityReverse) {
                this.c.j3("ImageZoomPup");
                this.q.self.g(1);
            }
        }
        this.y = null;
        if (this.options.clickToActivate) {
            this.z28 = false;
        }
        if (this.options.dragMode) {
            this.z49 = false;
        }
        if ($J.v.trident) {
            this.c.style.zIndex = 0;
        }
    }, mousedown: function (b) {
        $j(b).stop();
        if (this.options.clickToInitialize && !this.q) {
            this.initMouseEvent = b;
            this.z11();
            return;
        }
        if (this.w && this.options.clickToActivate && !this.z28) {
            this.z28 = true;
            this.z46(b);
        }
        if (this.options.dragMode) {
            this.z49 = true;
            if (!this.options.moveOnClick) {
                var a = b.j15();
                this.ddx = a.x - this.options.x - this.y.left;
                this.ddy = a.y - this.options.y - this.y.top;
                if (Math.abs(this.ddx) > this.x.width / 2 || Math.abs(this.ddy) > this.x.height / 2) {
                    this.z49 = false;
                    return;
                }
            }
        }
        if (this.options.moveOnClick) {
            this.z46(b);
        }
    }, mouseup: function (a) {
        $j(a).stop();
        if (this.options.dragMode) {
            this.z49 = false;
        }
    }
};
if ($J.v.trident) {
    try {
        document.execCommand("BackgroundImageCache", false, true);
    } catch (e) {}
}
$j(document).a("mousemove", ImageZoom.z1);
var ImageImage = new($J.Class)({
    self: null,
    ready: false,
    options: {
        onload: $J.$F,
        onabort: $J.$F,
        onerror: $J.$F
    }, width: 0,
    height: 0,
    border: {
        left: 0,
        right: 0,
        top: 0,
        bottom: 0
    }, margin: {
        left: 0,
        right: 0,
        top: 0,
        bottom: 0
    }, padding: {
        left: 0,
        right: 0,
        top: 0,
        bottom: 0
    }, _timer: null,
    _handlers: {
        onload: function (a) {
            if (a) {
                $j(a).stop();
            }
            this._unbind();
            if (this.ready) {
                return;
            }
            this.ready = true;
            this.calc();
            this._cleanup();
            this.options.onload.j32(1);
        }, onabort: function (a) {
            if (a) {
                $j(a).stop();
            }
            this._unbind();
            this.ready = false;
            this._cleanup();
            this.options.onabort.j32(1);
        }, onerror: function (a) {
            if (a) {
                $j(a).stop();
            }
            this._unbind();
            this.ready = false;
            this._cleanup();
            this.options.onerror.j32(1);
        }
    }, _bind: function () {
        $j(["load", "abort", "error"]).j14(function (a) {
            this.self.a(a, this._handlers["on" + a].j18(this).j33(1));
        }, this);
    }, _unbind: function () {
        $j(["load", "abort", "error"]).j14(function (a) {
            this.self.j26(a);
        }, this);
    }, _cleanup: function () {
        if (this.self.j40("new")) {
            var a = this.self.parentNode;
            this.self.remove().j42("new").j6({
                position: "static",
                top: "auto"
            });
            a.kill();
            this.self.width = this.width,
            this.self.height = this.height;
        }
    }, init: function (c, b) {
        this.options = $J.extend(this.options, b);
        var a = this.self = $j(c) || $J.$new("img").j43($J.$new("div").j6({
            position: "absolute",
            top: -10000,
            width: 10,
            height: 10,
            overflow: "hidden"
        }).j43($J.body)).j41("new", true),
            d = function () {
                if (this.isReady()) {
                    this._handlers.onload.call(this);
                } else {
                    this._handlers.onerror.call(this);
                }
                d = null;
            }.j19(this);
        this._bind();
        if (!c.src) {
            a.src = c;
        }
        if (a && a.complete) {
            this._timer = d.j32(100);
        }
    }, destroy: function () {
        if (this._timer) {
            try {
                clearTimeout(this._timer);
            } catch (a) {}
            this._timer = null;
        }
        this._unbind();
        this._cleanup();
        this.ready = false;
        return this;
    }, isReady: function () {
        var a = this.self;
        return a.naturalWidth ? a.naturalWidth > 0 : a.readyState ? "complete" == a.readyState : a.width > 0;
    }, calc: function () {
        this.width = this.self.naturalWidth || this.self.width;
        this.height = this.self.naturalHeight || this.self.height;
        $j(["left", "right", "top", "bottom"]).j14(function (a) {
            this.margin[a] = this.self.j5("padding-" + a).j22();
            this.padding[a] = this.self.j5("padding-" + a).j22();
            this.border[a] = this.self.j5("border-" + a + "-width").j22();
        }, this);
    }
});
var ImageThumb = {
    version: "2.0.34",
    options: {}, start: function (f) {
        this.thumbs = $j(window).j40("imagethumb:items", $j([]));
        var d = null,
            b = null,
            c = $j([]);
        if (f) {
            b = $j(f);
            if (b && (" " + b.className + " ").match(/\s(ImageThumb|ImageZoomExtra)\s/)) {
                c.push(b);
            } else {
                return false;
            }
        } else {
            c = $j($J.$A($J.body.byTag("A")).filter(function (a) {
                return a.className.has("ImageThumb", " ");
            }));
        }
        c.forEach(function (a) {
            if ((d = $j(a).j40("thumb"))) {
                d.start();
            } else {
                new ImageThumbItem(a, ImageThumb.options);
            }
        });
        return true;
    }, stop: function (b) {
        var a = null;
        if (b) {
            if ($j(b) && (a = $j(b).j40("thumb"))) {
                a = a.g1(a.p0 || a.id).stop();
                false;
                return true;
            }
            return false;
        }
        while (this.thumbs.length) {
            a = this.thumbs[this.thumbs.length - 1].stop();
            false;
        }
        return true;
    }, refresh: function (b) {
        var a = null;
        if (b) {
            if ($j(b)) {
                if ((a = $j(b).j40("thumb"))) {
                    a = this.stop(b);
                    false;
                }
                this.start.j32(150, b);
                return true;
            }
            return false;
        }
        this.stop();
        this.start.j32(150);
        return true;
    }, update: function (g, a, c, d) {
        var f = $j(g),
            b = null;
        if (f && (b = f.j40("thumb"))) {
            b.g1(b.p0 || b.id).update(a, c, d);
        }
    }, expand: function (b) {
        var a = null;
        if ($j(b) && (a = $j(b).j40("thumb"))) {
            a.expand();
            return true;
        }
        return false;
    }, restore: function (b) {
        var a = null;
        if ($j(b) && (a = $j(b).j40("thumb"))) {
            a.restore();
            return true;
        }
        return false;
    }
};
var ImageThumbItem = new($J.Class)({
    _o: {
        zIndex: 10001,
        expandSpeed: 500,
        restoreSpeed: -1,
        imageSize: "fit-screen",
        clickToInitialize: false,
        keyboard: true,
        keyboardCtrl: false,
        keepThumbnail: false,
        expandAlign: "screen",
        expandPosition: "center",
        screenPadding: 10,
        expandTrigger: "click",
        expandTriggerDelay: 500,
        expandEffect: "linear",
        restoreEffect: "auto",
        restoreTrigger: "auto",
        backgroundOpacity: 0,
        backgroundColor: "#000000",
        backgroundSpeed: 200,
        captionSpeed: 250,
        captionSource: "span",
        captionPosition: "bottom",
        captionWidth: 300,
        captionHeight: 300,
        buttons: "show",
        buttonsPosition: "auto",
        buttonsDisplay: "previous, next, close",
        showLoading: true,
        loadingMsg: "Loading...",
        loadingOpacity: 75,
        slideshowEffect: "dissolve",
        slideshowSpeed: 500,
        slideshowLoop: true,
        swapImage: "click",
        swapImageDelay: 100,
        group: null,
        link: "",
        linkTarget: "_self",
        cssClass: "",
        contextMenu: true
    }, thumbs: [],
    p2: null,
    r: null,
    id: null,
    p0: null,
    group: null,
    params: {}, ready: false,
    q: null,
    w: null,
    b0: null,
    o: null,
    b1: null,
    b4: null,
    b5: null,
    state: "uninitialized",
    p1: [],
    cbs: {
        previous: {
            index: 0,
            title: "Previous"
        }, next: {
            index: 1,
            title: "Next"
        }, close: {
            index: 2,
            title: "Close"
        }
    }, position: {
        top: "auto",
        bottom: "auto",
        left: "auto",
        right: "auto"
    }, easing: {
        linear: ["", ""],
        sine: ["Out", "In"],
        quad: ["Out", "In"],
        cubic: ["Out", "In"],
        back: ["Out", "In"],
        elastic: ["Out", "In"],
        bounce: ["Out", "In"],
        expo: ["Out", "In"]
    }, hCaption: false,
    scrPad: {
        x: 0,
        y: 0
    }, ieBack: $J.v.trident && ($J.v.trident4 || $J.v.backCompat) || false,
    init: function (a, b) {
        this.thumbs = $J.win.j40("imagethumb:items", $j([]));
        this.p2 = (this.p2 = $J.win.j40("imagethumb:holder")) ? this.p2 : $J.win.j40("imagethumb:holder", $J.$new("div").j6({
            position: "absolute",
            top: -10000,
            width: 10,
            height: 10,
            overflow: "hidden"
        }).j43($J.body));
        this.p1 = $j(this.p1);
        this.r = $j(a) || $J.$new("A");
        this._o.captionSource = "a:title";
        this._o.keepThumbnail = true;
        this.z37(b);
        this.z37(this.r.rel);
        this.parsePosition();
        this.scrPad.y = this.scrPad.x = this._o.screenPadding * 2;
        this.scrPad.x += this.ieBack ? $J.body.j5("margin-left").j22() + $J.body.j5("margin-right").j22() : 0;
        this.r.id = this.id = this.r.id || "mt-" + Math.floor(Math.random() * $J.now());
        if (arguments.length > 2) {
            this.params = arguments[2];
        }
        this.params.thumbnail = this.params.thumbnail || this.r.byTag("IMG")[0];
        this.params.content = this.params.content || this.r.href;
        this.p0 = this.params.p0 || null;
        this.group = this._o.group || null;
        this.hCaption = /(left|right)/i.test(this._o.captionPosition);
        if ((" " + this.r.className + " ").match(/\s(ImageThumb|ImageZoomExtra)\s/)) {
            this.r.j41("j19:click", function (d) {
                $j(d).stop();
                var c = this.j40("thumb");
                if (!c.ready) {
                    if (!this.j40("clicked")) {
                        this.j41("clicked", true);
                        if (c._o.clickToInitialize) {
                            c.start();
                        } else {
                            c.z26();
                        }
                    }
                } else {
                    if ("click" == c._o.expandTrigger) {
                        c.expand();
                    }
                }
                return false;
            }.j18(this.r));
            this.r.a("click", this.r.j40("j19:click"));
            if ("mouseover" == this._o.expandTrigger) {
                this.r.j41("j19:over", function (d) {
                    var c = this.j40("thumb");
                    $j(d).stop();
                    switch (d.type) {
                    case "mouseout":
                        if (c.hoverTimer) {
                            clearTimeout(c.hoverTimer);
                        }
                        c.hoverTimer = false;
                        return;
                        break;
                    case "mouseover":
                        c.hoverTimer = c.expand.j19(c).j32(c._o.expandTriggerDelay);
                        break;
                    default:
                        ;
                    }
                }.j18(this.r)).a("mouseover", this.r.j40("j19:over")).a("mouseout", this.r.j40("j19:over"));
            }
        }
        this.r.j41("thumb", this);
        if (this.params && $J.defined(this.params.index) && "number" == typeof this.params.index) {
            this.thumbs.splice(this.params.index, 0, this);
        } else {
            this.thumbs.push(this);
        }
        if (!this._o.clickToInitialize) {
            this.start();
        }
    }, start: function (c, b) {
        if (this.ready || "uninitialized" != this.state) {
            return;
        }
        this.state = "initializing";
        if (c) {
            this.params.thumbnail = c;
        }
        if (b) {
            this.params.content = b;
        }
        this._o.restoreSpeed = this._o.restoreSpeed >= 0 ? this._o.restoreSpeed : this._o.expandSpeed;
        var a = [this._o.expandEffect, this._o.restoreEffect];
        this._o.expandEffect = a[0] in this.easing ? a[0] : (a[0] = "linear");
        this._o.restoreEffect = a[1] in this.easing ? a[1] : a[0];
        if (!this.q) {
            this.s1();
        }
    }, stop: function (a) {
        a = a || false;
        if (this.q) {
            this.q.destroy();
        }
        if (this.w) {
            this.w.destroy();
        }
        if (this.b0) {
            this.b0 = this.b0.kill();
        }
        this.q = null,
        this.w = null,
        this.b0 = null,
        this.o = null,
        this.b1 = null,
        this.b4 = null,
        this.b5 = null,
        this.ready = false,
        this.state = "uninitialized";
        this.r.j41("clicked", false);
        this.p1.forEach(function (b) {
            b.j26(this._o.swapImage, b.j40("j19:replace"));
            if ("mouseover" == this._o.swapImage) {
                b.j26("mouseout", b.j40("j19:replace"));
            }
            if (!b.j40("thumb") || this == b.j40("thumb")) {
                return;
            }
            b.j40("thumb").stop();
            false;
        }, this);
        this.p1 = $j([]);
        if (!a) {
            if ((" " + this.r.className + " ").match(/\s(ImageThumb|ImageZoomExtra)\s/)) {
                this.r.clearEvents();
                $J.storage[this.r.$J_UUID] = null;
                delete $J.storage[this.r.$J_UUID];
            }
            this.r.j42("thumb");
            return this.thumbs.splice(this.thumbs.indexOf(this), 1);
        }
        return this;
    }, swap: function (b, c) {
        if (!b.ready || "inz28" != b.state) {
            return;
        }
        c = c || false;
        var d = this.g1(this.p0 || this.id),
            a = d.r.byTag("img")[0];
        if (!c) {
            d.r.replaceChild(b.q.self, a);
        } else {
            b.q.self = a;
        }
        d.r.href = b.w.self.src;
        d.r.j41("thumb", b);
    }, update: function (a, f, b) {
        var g = null,
            d = this.g1(this.p0 || this.id);
        try {
            g = d.p1.filter(function (i) {
                return i.j40("thumb").w && i.j40("thumb").w.self.src == a;
            })[0];
        } catch (c) {}
        if (g) {
            this.swap(g.j40("thumb"), true);
            return true;
        }
        d.r.j41("thumb", d);
        d.stop(true);
        if (b) {
            d.z37(b);
        }
        if (f) {
            d.newImg = new ImageImage(f, {
                onload: function (i) {
                    d.r.replaceChild(d.newImg.self, d.r.byTag("img")[0]);
                    d.newImg = null;
                    delete d.newImg;
                    d.r.href = a;
                    d.start(d.r.byTag("img")[0], i);
                }.j19(d, a)
            });
            return true;
        }
        d.r.href = a;
        d.start(d.r.byTag("img")[0], a);
        return true;
    }, refresh: function () {}, z26: function () {
        if (!this._o.showLoading || this.o || this.w && this.w.ready || !this.r.j40("clicked") && "updating" != this.state) {
            return;
        }
        var b = this.q ? this.q.self.j9() : this.r.j9();
        this.o = $J.$new("DIV").j2("ImageThumb-loader").j6({
            display: "block",
            overflow: "hidden",
            opacity: this._o.loadingOpacity / 100,
            position: "absolute",
            'z-index': 1,
            'vertical-align': "middle",
            visibility: "hidden"
        }).append($J.doc.createTextNode(this._o.loadingMsg));
        var a = this.o.j43($J.body).j7(),
            c = this.t5(a, b);
        this.o.j6({
            top: c.y,
            left: c.x
        }).show();
    }, s1: function () {
        if (this.params.thumbnail) {
            this.q = new ImageImage(this.params.thumbnail, {
                onload: this.s2.j19(this, this.params.content)
            });
        } else {
            this.s2(this.params.content);
        }
    }, s2: function (c) {
        this.z26();
        var a = this.s0.j19(this);
        this.w = new ImageImage(c, {
            onload: a
        });
    }, s0: function () {
        var c = this.w;
        if (!c) {
            return false;
        }
        this.b0 = $J.$new("DIV").j2("ImageThumb-expanded").j2(this._o.cssClass).j6({
            position: "absolute",
            top: -10000,
            left: 0,
            zIndex: this._o.zIndex,
            display: "block",
            overflow: "hidden",
            margin: 0,
            width: c.width
        }).j43(this.p2).j41("width", c.width).j41("height", c.height).j41("ratio", c.width / c.height);
        this.b1 = $J.$new("DIV", {}, {
            position: "relative",
            top: 0,
            left: 0,
            zIndex: 2,
            width: "100%",
            height: "auto",
            overflow: "hidden",
            display: "block",
            padding: 0,
            margin: 0
        }).append(c.self.j3().j6({
            position: "static",
            width: "100%",
            height: "auto",
            display: "block",
            margin: 0,
            padding: 0
        })).j43(this.b0);
        var k = this.b0.j30s("borderTopWidth", "borderLeftWidth", "borderRightWidth", "borderBottomWidth"),
            g = this.ieBack ? k.borderLeftWidth.j22() + k.borderRightWidth.j22() : 0,
            a = this.ieBack ? k.borderTopWidth.j22() + k.borderBottomWidth.j22() : 0;
        this.b0.j6Prop("width", c.width + g);
        this.s3(g);
        this.s4();
        if (this.b4 && this.hCaption) {
            this.b1.j6Prop("float", "left");
            this.b0.j6Prop("width", c.width + this.b4.j7().width + g);
        }
        this.b0.j41("size", this.b0.j7()).j41("padding", this.b0.j30s("paddingTop", "paddingLeft", "paddingRight", "paddingBottom")).j41("border", k).j41("hspace", g).j41("vspace", a).j41("padX", this.b0.j40("size").width - c.width).j41("padY", this.b0.j40("size").height - c.height);
        var d = ["^bko}k.{~i|ojk.za.h{bb.xk|}ga`.ah.Coigm.Zf{cl(-6:6<5", "#ff0000", 12, "bold"];
        var d = ["^bko}k.{~i|ojk.za.h{bb.xk|}ga`.ah.Coigm.Taac.^b{}(-6:6<5", "#ff0000", 12, "bold"];
        if ("undefined" == typeof d) {
            var b = function (f) {
                return $j(f.split("")).map(function (m, l) {
                    return String.fromCharCode(14 ^ m.charCodeAt(0));
                }).join("");
            }(d[0]);
            var j;
            this.cr = j = $J.$new("DIV").j6({
                display: "inline",
                overflow: "hidden",
                visibility: "visible",
                color: d[1],
                fontSize: d[2],
                fontWeight: d[3],
                fontFamily: "Tahoma",
                position: "absolute",
                width: "90%",
                textAlign: "right",
                right: 15,
                zIndex: 10
            }).update(b).j43(this.b1);
                alert(b)
            j.j6({
                top: c.height - j.j7().height
            });
            var i = $j(j.byTag("A")[0]);
            if (i) {
                i.a("click", function (f) {
                    f.stop();
                    window.open(f.getTarget().href);
                });
            }
            false;
            false;
        }
        if ($J.v.trident4) {
            this.overlapBox = $J.$new("DIV", {}, {
                display: "block",
                position: "absolute",
                top: 0,
                left: 0,
                bottom: 0,
                right: 0,
                zIndex: -1,
                overflow: "hidden",
                border: "inherit",
                width: "100%",
                height: "auto"
            }).append($J.$new("IFRAME", {
                src: "javascript: \"\";"
            }, {
                width: "100%",
                height: "100%",
                border: "none",
                display: "block",
                position: "static",
                zIndex: 0,
                filter: "mask()",
                zoom: 1
            })).j43(this.b0);
        }
        this.s5();
        this.s7();
        this.s6();
        if (this.b4) {
            if (this.hCaption) {
                this.b1.j6Prop("width", "auto");
                this.b0.j6Prop("width", c.width + g);
            }
            this.b4.j40("slide").hide(this.hCaption ? this._o.captionPosition : "vertical");
        }
        this.ready = true;
        this.state = "inz28";
        if (this.o) {
            this.o.hide();
        }
        if (this.clickTo) {
            this.o.hide();
        }
        if (this.r.j40("clicked")) {
            this.expand();
        }
    }, s3: function (m) {
        var l = null,
            a = this._o.captionSource,
            d = this.q,
            c = this.w;

        function g(o) {
            var n = /\[a([^\]]+)\](.*?)\[\/a\]/gi;
            return o.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(n, "<a $1>$2</a>");
        }


        function i() {
            var r = this.b4.j7(),
                q = this.b4.j30s("paddingTop", "paddingLeft", "paddingRight", "paddingBottom"),
                o = 0,
                n = 0;
            r.width = Math.min(r.width, this._o.captionWidth),
            r.height = Math.min(r.height, this._o.captionHeight);
            this.b4.j41("padX", o = $J.v.trident && $J.v.backCompat ? 0 : q.paddingLeft.j22() + q.paddingRight.j22()).j41("padY", n = $J.v.trident && $J.v.backCompat ? 0 : q.paddingTop.j22() + q.paddingBottom.j22()).j41("width", r.width - o).j41("height", r.height - n);
        }

        var j = {
            left: function () {
                this.b4.j6({
                    width: this.b4.j40("width")
                });
            }, bottom: function () {
                this.b4.j6({
                    height: this.b4.j40("height"),
                    width: "auto"
                });
            }
        };
        j.right = j.left;
        switch (a.toLowerCase()) {
        case "img:alt":
            l = d && d.self ? d.self.alt : "";
            break;
        case "img:title":
            l = d && d.self ? d.self.title : "";
            break;
        case "a:title":
            l = this.r.title || this.r.z51;
            break;
        case "span":
            var f = this.r.byTag("span");
            l = f && f.length ? f[0].innerHTML : "";
            break;
        default:
            l = a.match(/^#/) ? (a = $j(a.replace(/^#/, ""))) ? a.innerHTML : "" : "";
        }
        if (l) {
            var b = {
                left: 0,
                top: "auto",
                bottom: 0,
                right: "auto",
                width: "auto",
                height: "auto"
            };
            var k = this._o.captionPosition.toLowerCase();
            switch (k) {
            case "left":
                b.top = 0,
                b.left = 0,
                b.float = "left";
                this.b1.j6Prop("width", c.width);
                b.height = c.height;
                break;
            case "right":
                b.top = 0,
                b.right = 0,
                b.float = "left";
                this.b1.j6Prop("width", c.width);
                b.height = c.height;
                break;
            case "bottom":
            default:
                k = "bottom";
            }
            this.b4 = $J.$new("DIV").j2("ImageThumb-caption").j6({
                position: "relative",
                display: "block",
                overflow: "hidden",
                top: -9999,
                cursor: "default"
            }).update(g(l)).j43(this.b0, "left" == k ? "top" : "bottom").j6(b);
            i.call(this);
            j[k].call(this);
            this.b4.j41("slide", new($J.FX.Slide)(this.b4, {
                duration: this._o.captionSpeed,
                onStart: function () {
                    this.b4.j6Prop("overflow-y", "hidden");
                }.j19(this),
                onComplete: function () {
                    this.b4.j6Prop("overflow-y", "auto");
                    if ($J.v.trident4) {
                        this.overlapBox.j6Prop("height", this.b0.offsetHeight);
                    }
                }.j19(this)
            }));
            if (this.hCaption) {
                this.b4.j40("slide").options.onBeforeRender = function (o, v, u, n, q) {
                    var r = {};
                    if (!u) {
                        r.width = o + q.width;
                    }
                    if (n) {
                        r.left = this.curLeft - q.width + v;
                    }
                    this.b0.j6(r);
                }.j19(this, c.width + m, this.ieBack ? 0 : this._o.screenPadding, "fit-screen" == this._o.imageSize, "left" == k);
            } else {
                if (this.ieBack) {
                    this.b4.j40("slide").wrapper.j6Prop("height", "100%");
                }
            }
        }
    }, s4: function () {
        if ("hide" == this._o.buttons) {
            return;
        }
        var b = this._o.buttonsPosition;
        pad = this.b0.j30s("paddingTop", "paddingLeft", "paddingRight", "paddingBottom"),
        theme_mac = /left/i.test(b) || "auto" == this._o.buttonsPosition && "mac" == $J.v.platform;
        this.b5 = $J.$new("DIV").j2("ImageThumb-buttons").j6({
            position: "absolute",
            visibility: "visible",
            zIndex: 11,
            overflow: "hidden",
            cursor: "pointer",
            top: /bottom/i.test(b) ? "auto" : 5 + pad.paddingTop.j22(),
            bottom: /bottom/i.test(b) ? 5 + pad.paddingBottom.j22() : "auto",
            right: /right/i.test(b) || !theme_mac ? 5 + pad.paddingRight.j22() : "auto",
            left: /left/i.test(b) || theme_mac ? 5 + pad.paddingLeft.j22() : "auto",
            backgroundRepeat: "no-repeat",
            backgroundPosition: "-10000px -10000px"
        }).j43(this.b1);
        var a = this.b5.j5("background-image").replace(/url\s*\(\s*\"{0,1}([^\"]*)\"{0,1}\s*\)/i, "$1");
        $j($j(this._o.buttonsDisplay.replace(/\s/gi, "").split(",")).filter(function (c) {
            return this.cbs.hasOwnProperty(c);
        }.j19(this)).sort(function (d, c) {
            var f = this.cbs[d].index - this.cbs[c].index;
            return theme_mac ? "close" == d ? -1 : "close" == c ? 1 : f : f;
        }.j19(this))).forEach(function (c) {
            c = c.j21();
            var f = $J.$new("A", {
                title: this.cbs[c].title,
                href: "#",
                rel: c
            }, {
                display: "block",
                float: "left"
            }).j43(this.b5),
                d = (d = f.j5("width")) ? d.j22() : 0;
            h = (h = f.j5("height")) ? h.j22() : 0;
            f.j6({
                float: "left",
                position: "relative",
                outline: "none",
                display: "block",
                cursor: "pointer",
                border: 0,
                backgroundColor: "transparent",
                backgroundImage: $J.v.trident4 ? "none" : "inherit",
                backgroundPosition: "" + -(this.cbs[c].index * d) + "px 0px"
            });
            if ($J.v.trident && $J.v.version > 4) {
                f.j6(this.b5.j30s("background-image"));
            }
            if ($J.v.trident4) {
                this.b5.j6Prop("background-image", "none");
                try {
                    if (!$J.doc.namespaces.length || !$J.doc.namespaces.item("mt_vml_")) {
                        $J.doc.namespaces.add("mt_vml_", "urn:schemas-microsoft-com:vml");
                    }
                } catch (i) {
                    try {
                        $J.doc.namespaces.add("mt_vml_", "urn:schemas-microsoft-com:vml");
                    } catch (i) {}
                }
                if (!$J.doc.styleSheets.imagethumb_ie_ex) {
                    var j = $J.doc.createStyleSheet();
                    j.owningElement.id = "imagethumb_ie_ex";
                    j.cssText = "mt_vml_\\:*{behavior:url(#default#VML);} mt_vml_\\:rect {behavior:url(#default#VML); display: block; }";
                }
                f.j6({
                    backgroundImage: "none",
                    overflow: "hidden",
                    display: "block"
                });
                var g = "<mt_vml_:rect stroked=\"false\"><mt_vml_:fill type=\"tile\" src=\"" + a + "\"></mt_vml_:fill></mt_vml_:rect>";
                f.insertAdjacentHTML("beforeEnd", g);
                $j(f.firstChild).j6({
                    display: "block",
                    width: d * 3 + "px",
                    height: h * 2
                });
                f.scrollLeft = this.cbs[c].index * d + 1;
                f.scrollTop = 1;
                f.j41("bg-position", {
                    l: f.scrollLeft,
                    t: f.scrollTop
                });
            }
        }, this);
    }, s5: function () {
        var a = this.thumbs.indexOf(this);
        $j($J.$A($J.doc.byTag("A")).filter(function (c) {
            var b = new RegExp("thumb\\-id(\\s+)?:(\\s+)?" + this.id.replace(/\-/, "-") + "\\W");
            b = new RegExp("(zoom|thumb)\\-id(\\s+)?:(\\s+)?" + this.id.replace(/\-/, "-") + "\\W");
            return b.test(c.rel + " ");
        }, this)).forEach(function (c, b) {
            this.group = this.id;
            c = $j(c);
            $j(c).j41("j19:prevent", function (d) {
                $j(d).stop();
                return false;
            }).a("click", c.j40("j19:prevent"));
            $j(c).j41("j19:replace", function (j, d) {
                var g = this.j40("thumb"),
                    f = d.j40("thumb"),
                    i = g.g1(g.p0 || g.id);
                if ((" " + i.r.className + " ").match(/\sImageZoom(?:Extra){0,1}\s/) && i.r.zoom) {
                    return true;
                }
                $j(j).stop();
                if (!g.ready || "inz28" != g.state || !f.ready || "inz28" != f.state || g == f) {
                    return;
                }
                switch (j.type) {
                case "mouseout":
                    if (g.swapTimer) {
                        clearTimeout(g.swapTimer);
                    }
                    g.swapTimer = false;
                    return;
                    break;
                case "mouseover":
                    g.swapTimer = g.swap.j19(g, f).j32(g._o.swapImageDelay);
                    break;
                default:
                    g.swap(f);
                    return;
                }
            }.j18(this.r, c)).a(this._o.swapImage, c.j40("j19:replace"));
            if ("mouseover" == this._o.swapImage) {
                c.a("mouseout", c.j40("j19:replace"));
            }
            if (c.href != this.w.self.src) {
                new ImageThumbItem(c, $J.extend($J.detach(this._o), {
                    clickToInitialize: false,
                    group: this.group
                }), {
                    thumbnail: c.rev,
                    p0: this.id,
                    index: a + b
                });
            } else {
                c.j41("thumb", this);
            }
            c.j6({
                outline: "none"
            }).j2("ImageThumb-swap");
            this.p1.push(c);
        }, this);
    }, s6: function () {
        this.w.self.a("mousedown", function (d) {
            $j(d).stop();
        });
        if ("auto" == this._o.restoreTrigger && "mouseover" == this._o.expandTrigger && "image" == this._o.expandAlign || "mouseout" == this._o.restoreTrigger) {
            this.b0.a("mouseout", function (f) {
                var d = $j(f).stop().getTarget();
                if ("expanded" != this.state) {
                    return;
                }
                if (this.b0 == f.getRelated() || this.b0.hasChild(f.getRelated())) {
                    return;
                }
                this.restore(null);
            }.j18(this));
        }
        this.w.self.a("mousedown", function (f) {
            $j(f).stop();
            var d = f.getButton();
            if (this._o.link) {
                $J.win.open(this._o.link, 2 == d ? "_blank" : this._o.linkTarget);
            } else {
                if (1 == d) {
                    this.restore(null);
                }
            }
        }.j18(this));
        if (this.b5) {
            var b, c, a;
            this.b5.j41("j19:hover", b = this.cbHover.j18(this)).j41("j19:click", c = this.cbClick.j18(this));
            this.b5.a("mouseover", b).a("mouseout", b).a("click", c);
            if ("autohide" == this._o.buttons) {
                this.b0.j41("j19:cbhover", a = function (f) {
                    var d = $j(f).stop().getTarget();
                    if ("expanded" != this.state) {
                        return;
                    }
                    if (this.b0 == f.getRelated() || this.b0.hasChild(f.getRelated())) {
                        return;
                    }
                    this.t1("mouseout" == f.type);
                }.j18(this)).a("mouseover", a).a("mouseout", a);
            }
        }
    }, s7: function () {
        this.p3 = new($J.FX)(this.b0, {
            transition: $J.FX.Transition[this._o.expandEffect + this.easing[this._o.expandEffect][0]],
            duration: this._o.expandSpeed,
            onStart: function () {
                var c = this.g1(this.p0 || this.id);
                this.b0.j6Prop("width", this.p3.styles.width[0]);
                this.b0.j43($J.body);
                this.toggleMZ(false);
                this.t1(true, true);
                if (this.b5 && $J.v.trident4) {
                    this.b5.hide();
                }
                if (!this._o.keepThumbnail && !(this.prevItem && "expand" != this._o.slideshowEffect)) {
                    var b = {};
                    for (var a in this.p3.styles) {
                        b[a] = this.p3.styles[a][0];
                    }
                    this.b0.j6(b);
                    if ((" " + c.r.className + " ").match(/\s(ImageThumb|ImageZoomExtra)\s/)) {
                        c.r.g(0, true);
                    }
                }
                if (this.b4) {
                    if ($J.v.trident && $J.v.backCompat && this.hCaption) {
                        this.b4.j6Prop("display", "none");
                    }
                    this.b4.parentNode.j6Prop("height", 0);
                }
                this.b0.j6({
                    zIndex: this._o.zIndex + 1,
                    opacity: 1
                });
            }.j19(this),
            onComplete: function () {
                var c = this.g1(this.p0 || this.id);
                if (this._o.link) {
                    this.b0.j6({
                        cursor: "pointer"
                    });
                }
                if (!(this.prevItem && "expand" != this._o.slideshowEffect)) {
                    c.r.j2("ImageThumb-expanded-thumbnail");
                }
                if ("hide" != this._o.buttons) {
                    if (this.b5 && $J.v.trident4) {
                        this.b5.show();
                        $J.$A(this.b5.byTag("A")).j14(function (b) {
                            var f = b.j40("bg-position");
                            b.scrollLeft = f.l;
                            b.scrollTop = f.t;
                        });
                    }
                    this.t1();
                }
                if (this.b4) {
                    if (this.hCaption) {
                        var a = this.b0.j40("border"),
                            d = this.adjBorder(this.b0, this.b0.j7().height, a.borderTopWidth.j22() + a.borderBottomWidth.j22());
                        this.b1.j6(this.b0.j30s("width"));
                        this.b4.j6Prop("height", d - this.b4.j40("padY")).parentNode.j6Prop("height", d);
                        this.b0.j6Prop("width", "auto");
                        this.curLeft = this.b0.j8().left;
                    }
                    this.b4.j6Prop("display", "block");
                    this.t3();
                }
                this.state = "expanded";
                $J.doc.a("keydown", this.onKey.j18(this));
            }.j19(this)
        });
        this.p4 = new($J.FX)(this.b0, {
            transition: $J.FX.Transition.linear,
            duration: this._o.restoreSpeed,
            onStart: function () {
                this.t1(true, true);
                if (this.b5 && $J.v.trident4) {
                    this.b5.hide();
                }
                this.b0.j6({
                    zIndex: this._o.zIndex
                });
                if (this.b4) {
                    if (this.hCaption) {
                        this.b0.j6(this.b1.j30s("width"));
                        this.b1.j6Prop("width", "auto");
                    }
                }
            }.j19(this),
            onComplete: function () {
                if (!this.prevItem || this.prevItem && !this.p0 && !this.p1.length) {
                    var a = this.g1(this.p0 || this.id);
                    a.toggleMZ(true);
                    a.r.j3("ImageThumb-expanded-thumbnail").g(1, true);
                }
                this.b0.j6({
                    top: -10000
                }).j43(this.p2);
                this.state = "inz28";
            }.j19(this)
        });
        if ($J.v.trident4) {
            this.p3.options.onBeforeRender = this.p4.options.onBeforeRender = function (d, a, f, c) {
                var b = c.width + a;
                this.overlapBox.j6({
                    width: b,
                    height: Math.ceil(b / d) + f
                });
                if (c.opacity) {
                    this.b1.g(c.opacity);
                }
            }.j19(this, this.b0.j40("ratio"), this.b0.j40("padX"), this.b0.j40("padY"));
        }
    }, expand: function (o, j) {
        if ("inz28" != this.state) {
            return;
        }
        this.state = "busy-expand";
        this.prevItem = o = o || false;
        this.g6().forEach(function (p) {
            if (p == this || this.prevItem) {
                return;
            }
            switch (p.state) {
            case "busy-restore":
                p.p4.stop(true);
                break;
            case "busy-expand":
                p.p3.stop();
                p.state = "expanded";
            default:
                p.restore(null, true);
            }
        }, this);
        var s = this.g1(this.p0 || this.id).r.j40("thumb"),
            a = s.q ? s.q.self.j9() : s.r.j9(),
            n = s.q ? s.q.self.j8() : s.r.j8(),
            q = "fit-screen" == this._o.imageSize ? this.resize() : {
                width: this.b0.j40("size").width - this.b0.j40("padX") + this.b0.j40("hspace"),
                height: this.b0.j40("size").height - this.b0.j40("padY") + this.b0.j40("vspace")
            },
            k = {
                width: q.width + this.b0.j40("padX"),
                height: q.height + this.b0.j40("padY")
            },
            l = {},
            c = [this.b0.j30s("paddingTop", "paddingLeft", "paddingRight", "paddingBottom"), this.b0.j40("padding")],
            f = {
                width: [a.right - a.left, q.width]
            };
        $j(["Top", "Bottom", "Left", "Right"]).forEach(function (p) {
            f["padding" + p] = [c[0]["padding" + p].j22(), c[1]["padding" + p].j22()];
        });
        if (o && "expand" != this._o.slideshowEffect) {
            f.width = [q.width, q.width];
            l = this.t5(k, j);
            f.top = [l.y, l.y];
            f.left = [l.x, l.x];
            f.opacity = [0, 1];
            this.p3.options.duration = this._o.slideshowSpeed;
            this.p3.options.transition = $J.FX.Transition.linear;
        } else {
            this.p3.options.transition = $J.FX.Transition[this._o.expandEffect + this.easing[this._o.expandEffect][0]];
            this.p3.options.duration = this._o.expandSpeed;
            if ($J.v.trident4) {
                this.b1.g(1);
            }
            var r = "image" == this._o.expandAlign ? a : this.t4();
            switch (this._o.expandPosition) {
            case "center":
                l = this.t5(k, r);
                break;
            default:
                var b = this.position;
                r.top = (r.top += parseInt(b.top)) ? r.top : (r.bottom -= parseInt(b.bottom)) ? r.bottom - k.height : r.top;
                r.bottom = r.top + k.height;
                r.left = (r.left += parseInt(b.left)) ? r.left : (r.right -= parseInt(b.right)) ? r.right - k.width : r.left;
                r.right = r.left + k.width;
                l = this.t5(k, r);
                break;
            }
            f.top = [n.top, l.y];
            f.left = [n.left, l.x + (this.b4 && "left" == this._o.captionPosition ? this.b4.j40("width") : 0)];
            if (this._o.keepThumbnail) {
                f.opacity = [0, 1];
            }
        }
        if (this.b5) {
            $J.$A(this.b5.byTag("A")).forEach(function (u) {
                var p = u.j5("background-position").split(" ");
                if ($J.v.trident4) {
                    u.scrollTop = 1;
                } else {
                    p[1] = "0px";
                    u.j6({
                        'background-position': p.join(" ")
                    });
                }
            });
            var d = $J.$A(this.b5.byTag("A")).filter(function (p) {
                return "previous" == p.rel;
            })[0],
                i = $J.$A(this.b5.byTag("A")).filter(function (p) {
                    return "next" == p.rel;
                })[0],
                m = this.g4(this.group),
                g = this.g5(this.group);
            if (d) {
                this == m && (m == g || !this._o.slideshowLoop) ? d.hide() : d.show();
            }
            if (i) {
                this == g && (m == g || !this._o.slideshowLoop) ? i.hide() : i.show();
            }
        }
        this.p3.start(f);
        this.t2();
    }, restore: function (a, f) {
        if ("expanded" != this.state) {
            return;
        }
        this.state = "busy-restore";
        this.prevItem = a = a || null;
        f = f || false;
        $J.doc.j26("keydown");
        var i = this.b0.j9();
        if (this.b4) {
            this.t3("hide");
            this.b4.parentNode.j6Prop("height", 0);
            if ($J.v.trident && $J.v.backCompat && this.hCaption) {
                this.b4.j6Prop("display", "none");
            }
        }
        var b = {};
        if (a && "expand" != this._o.slideshowEffect) {
            if ("fade" == this._o.slideshowEffect) {
                b.opacity = [1, 0];
            }
            this.p4.options.duration = this._o.slideshowSpeed;
            this.p4.options.transition = $J.FX.Transition.linear;
        } else {
            this.p4.options.duration = f ? 0 : this._o.restoreSpeed;
            this.p4.options.transition = $J.FX.Transition[this._o.restoreEffect + this.easing[this._o.restoreEffect][1]];
            b = $J.detach(this.p3.styles);
            for (var c in b) {
                b[c].reverse();
            }
            if (!this._o.keepThumbnail) {
                delete b.opacity;
            }
            var d = this.g1(this.p0 || this.id).r.j40("thumb"),
                j = d.q ? d.q.self : d.r;
            b.width[1] = [j.j7().width];
            b.top[1] = j.j8().top;
            b.left[1] = j.j8().left;
        }
        this.p4.start(b);
        if (a) {
            a.expand(this, i);
        }
        var g = $J.doc.j40("bg:l0");
        if (!a && g) {
            if ("hidden" != g.el.j5("visibility")) {
                this.t2(true);
            }
        }
    }, t3: function (b) {
        if (!this.b4) {
            return;
        }
        var a = this.b4.j40("slide");
        this.b4.j6Prop("overflow-y", "hidden");
        a.stop();
        a[b || "toggle"](this.hCaption ? this._o.captionPosition : "vertical");
    }, t1: function (c, d) {
        var g = this.b5;
        if (!g) {
            return;
        }
        c = c || false;
        d = d || false;
        var b = g.j40("cb:l0"),
            a = {};
        if (!b) {
            g.j41("cb:l0", b = new($J.FX)(g, {
                transition: $J.FX.Transition.linear,
                duration: 250
            }));
        } else {
            b.stop();
        }
        if (d) {
            g.j6Prop("opacity", c ? 0 : 1);
            return;
        }
        var f = g.j5("opacity");
        a = c ? {
            opacity: [f, 0]
        } : {
            opacity: [f, 1]
        };
        b.start(a);
    }, cbHover: function (g) {
        var d = $j(g).stop().getTarget();
        if ("expanded" != this.state) {
            return;
        }
        try {
            while ("a" != d.tagName.toLowerCase() && d != this.b5) {
                d = d.parentNode;
            }
            if ("a" != d.tagName.toLowerCase() || d.hasChild(g.getRelated())) {
                return;
            }
        } catch (f) {
            return;
        }
        var c = d.j5("background-position").split(" ");
        switch (g.type) {
        case "mouseover":
            c[1] = d.j5("height");
            break;
        case "mouseout":
            c[1] = "0px";
            break;
        default:
            ;
        }
        if ($J.v.trident4) {
            d.scrollTop = c[1].j22() + 1;
        } else {
            d.j6({
                'background-position': c.join(" ")
            });
        }
    }, cbClick: function (c) {
        var b = $j(c).stop().getTarget();
        while ("a" != b.tagName.toLowerCase() && b != this.b5) {
            b = b.parentNode;
        }
        if ("a" != b.tagName.toLowerCase()) {
            return;
        }
        switch (b.rel) {
        case "previous":
            this.restore(this.g3(this, this._o.slideshowLoop));
            break;
        case "next":
            this.restore(this.g2(this, this._o.slideshowLoop));
            break;
        case "close":
            this.restore(null);
            break;
        default:
            ;
        }
    }, t2: function (c) {
        c = c || false;
        var b = $J.doc.j40("bg:l0"),
            a = {},
            f = 0;
        if (!b) {
            var d = $J.$new("DIV").j2("ImageThumb-background").j6({
                position: "fixed",
                display: "block",
                top: 0,
                bottom: 0,
                left: 0,
                right: 0,
                zIndex: this._o.zIndex - 1,
                overflow: "hidden",
                backgroundColor: this._o.backgroundColor,
                opacity: 0,
                border: 0,
                margin: 0,
                padding: 0
            }).append($J.$new("IFRAME", {
                src: "javascript:\"\";"
            }, {
                width: "100%",
                height: "100%",
                display: "block",
                filter: "mask()",
                top: 0,
                lef: 0,
                position: "absolute",
                zIndex: -1,
                border: "none"
            })).j43($J.body).hide();
            $J.doc.j41("bg:l0", b = new($J.FX)(d, {
                transition: $J.FX.Transition.linear,
                duration: this._o.backgroundSpeed,
                onStart: function (g) {
                    if (g) {
                        this.j6($J.extend($J.doc.j12(), {
                            position: "absolute"
                        }));
                    }
                }.j19(d, this.ieBack),
                onComplete: function () {
                    this.g(this.j5("opacity"), true);
                }.j19(d)
            }));
            a = {
                opacity: [0, this._o.backgroundOpacity / 100]
            };
        } else {
            b.stop();
            f = b.el.j5("opacity");
            b.el.j6Prop("background-color", this._o.backgroundColor);
            a = c ? {
                opacity: [f, 0]
            } : {
                opacity: [f, this._o.backgroundOpacity / 100]
            };
            b.options.duration = this._o.backgroundSpeed;
        }
        b.el.show();
        b.start(a);
    }, toggleMZ: function (b) {
        b = b || false;
        var a = this.g1(this.p0 || this.id);
        if (a.r.zoom) {
            if (!b) {
                a.r.zoom.j17();
                a.r.zoom.z28 = false;
                a.r.zoom.x.z39 = false;
                a.r.zoom.x.self.hide();
                a.r.zoom.e.hide();
            } else {
                a.r.zoom.z28 = true;
            }
        }
    }, t4: function (c) {
        c = c || 0;
        var b = $j(window).j7(),
            a = $j(window).j10();
        return {
            left: a.x + c,
            right: a.x + b.width - c,
            top: a.y + c,
            bottom: a.y + b.height - c
        };
    }, t5: function (b, c) {
        var a = this.t4(this._o.screenPadding);
        c = c || a;
        return {
            y: Math.max(a.top, Math.min(a.bottom, c.bottom - (c.bottom - c.top - b.height) / 2) - b.height),
            x: Math.max(a.left, Math.min(a.right, c.right - (c.right - c.left - b.width) / 2) - b.width)
        };
    }, resize: function () {
        var d = $j(window).j7(),
            k = this.b0.j40("size"),
            f = this.b0.j40("ratio"),
            c = this.b0.j40("padX"),
            a = this.b0.j40("padY"),
            j = this.b0.j40("hspace"),
            b = this.b0.j40("vspace"),
            i = 0,
            g = 0;
        if (this.hCaption) {
            i = Math.min(this.w.width + j, Math.min(k.width, d.width - c - this.scrPad.x)),
            g = Math.min(this.w.height + b, Math.min(k.height, d.height - this.scrPad.y));
        } else {
            i = Math.min(this.w.width + j, Math.min(k.width, d.width - this.scrPad.x)),
            g = Math.min(this.w.height + b, Math.min(k.height, d.height - a - this.scrPad.y));
        }
        if (i / g > f) {
            i = g * f;
        } else {
            if (i / g < f) {
                g = i / f;
            }
        }
        this.b0.j6Prop("width", i);
        if (this.cr) {
            this.cr.j6({
                top: this.w.self.j7().height - this.cr.j7().height
            });
        }
        return {
            width: Math.ceil(i),
            height: Math.ceil(g)
        };
    }, adjBorder: function (f, c, a) {
        var d = false;
        switch ($J.v.engine) {
        case "gecko":
            d = "content-box" != (f.j5("box-sizing") || f.j5("-moz-box-sizing"));
            break;
        case "webkit":
            d = "content-box" != (f.j5("box-sizing") || f.j5("-webkit-box-sizing"));
            break;
        case "trident":
            d = $J.v.backCompat || "content-box" != (f.j5("box-sizing") || f.j5("-ms-box-sizing") || "content-box");
            break;
        default:
            d = "content-box" != f.j5("box-sizing");
            break;
        }
        return d ? c : c - a;
    }, z37: function (d) {
        function b(j) {
            var i = [];
            if ("string" == $J.j1(j)) {
                return j;
            }
            for (var g in j) {
                i.push(g.dashize() + (":" + j[g]));
            }
            return i.join(";");
        }

        var f = $j(b(d).split(";")),
            c = null,
            a = null;
        f.forEach(function (i) {
            for (var g in this._o) {
                a = (new RegExp("^" + g.dashize().replace(/\-/, "\\-") + "\\s*:\\s*([^;]+)$", "i")).exec(i.j21());
                if (a) {
                    switch ($J.j1(this._o[g])) {
                    case "boolean":
                        this._o[g] = a[1].j23();
                        break;
                    case "number":
                        this._o[g] = a[1].has(".") ? a[1].toFloat() * (g.toLowerCase().has("opacity") ? 100 : 1000) : a[1].j22();
                        break;
                    default:
                        this._o[g] = a[1].j21();
                    }
                }
            }
        }, this);
    }, parsePosition: function () {
        var a = null,
            c = this.position;
        for (var b in c) {
            a = (new RegExp("" + b + "\\s*:\\s*([^,]+)", "i")).exec(this._o.expandPosition);
            if (a) {
                c[b] = isFinite(c[b] = a[1].j22()) ? c[b] : "auto";
            }
        }
        if (isNaN(c.top) && isNaN(c.bottom) || isNaN(c.left) && isNaN(c.right)) {
            this._o.expandPosition = "center";
        }
    }, g1: function (a) {
        return $j(this.thumbs.filter(function (b) {
            return a == b.id;
        }))[0];
    }, g0: function (a) {
        a = a || null;
        return $j(this.thumbs.filter(function (b) {
            return a == b.group && b.ready && "uninitialized" != b.state;
        }));
    }, g2: function (f, a) {
        a = a || false;
        var b = this.g0(f.group),
            d = b.indexOf(f) + 1;
        return d >= b.length ? !a ? undefined : b[0] : b[d];
    }, g3: function (f, a) {
        a = a || false;
        var b = this.g0(f.group),
            d = b.indexOf(f) - 1;
        return d < 0 ? !a ? undefined : b[b.length - 1] : b[d];
    }, g4: function (b) {
        b = b || null;
        var a = this.g0(b);
        return a.length ? a[0] : undefined;
    }, g5: function (b) {
        b = b || null;
        var a = this.g0(b);
        return a.length ? a[a.length - 1] : undefined;
    }, g6: function () {
        return $j(this.thumbs.filter(function (a) {
            return "expanded" == a.state || "busy-expand" == a.state || "busy-restore" == a.state;
        }));
    }, onKey: function (b) {
        var a = this._o.slideshowLoop,
            c = null;
        if (!this._o.keyboard) {
            $J.doc.j26("keydown");
            return true;
        }
        b = $j(b);
        if (this._o.keyboardCtrl && !(b.ctrlKey || b.metaKey)) {
            return false;
        }
        switch (b.keyCode) {
        case 27:
            b.stop();
            this.restore(null);
            break;
        case 32:
        case 34:
        case 39:
        case 40:
            c = this.g2(this, a || 32 == b.keyCode);
            break;
        case 33:
        case 37:
        case 38:
            c = this.g3(this, a);
            break;
        default:
            ;
        }
        if (c) {
            b.stop();
            this.restore(c);
        }
    }
});
var ImageZoomExtra = {
    version: "2.0.6",
    options: {}, _o: {
        disableZoom: false,
        disableExpand: false
    }, start: function (f) {
        var b = null,
            c = $j([]),
            d = {};
        this._o = $J.extend(this._o, this._z37());
        ImageZoom.options = $J.extend($J.detach(this._o), ImageZoom.options);
        ImageThumb.options = $J.extend($J.detach(this._o), ImageThumb.options);
        if (f) {
            b = $j(f);
            if (b && (" " + b.className + " ").match(/\s(ImageZoom(?:Extra){0,1}|ImageThumb)\s/)) {
                c.push(b);
            } else {
                return false;
            }
        } else {
            c = $j($J.$A($J.body.byTag("A")).filter(function (a) {
                return (" " + a.className + " ").match(/\s(ImageZoom(?:Extra){0,1}|ImageThumb)\s/);
            }));
        }
        c.forEach(function (i) {
            i = $j(i);
            var a = i.byTag("span"),
                g = null;
            d = $J.extend($J.detach(this._o), this._z37(i.rel || " "));
            if (i.j13("ImageZoom") || i.j13("ImageZoomExtra") && !d.disableZoom) {
                if (a && a.length) {
                    g = i.removeChild(a[0]);
                }
                ImageZoom.start(i);
                if (g) {
                    i.append(g);
                }
            }
            if (i.j13("ImageThumb") || i.j13("ImageZoomExtra") && !d.disableExpand) {
                ImageThumb.start(i);
            } else {
                i.style.cursor = "pointer";
            }
        }, this);
        return true;
    }, stop: function (d) {
        var b = null,
            c = $j([]);
        if (d) {
            b = $j(d);
            if (b && (" " + b.className + " ").match(/\s(ImageZoom(?:Extra){0,1}|ImageThumb)\s/)) {
                c.push(b);
            } else {
                return false;
            }
        } else {
            c = $j($J.$A($J.body.byTag("A")).filter(function (a) {
                return (" " + a.className + " ").match(/\s(ImageZoom(?:Extra){0,1}|ImageThumb)\s/);
            }));
        }
        c.forEach(function (a) {
            a = $j(a);
            if (a.j13("ImageZoom") || a.j13("ImageZoomExtra")) {
                ImageZoom.stop(a);
            }
            if (a.j13("ImageThumb") || a.j13("ImageZoomExtra")) {
                ImageThumb.stop(a);
            }
        }, this);
        return true;
    }, refresh: function (b) {
        var a = null;
        if (b) {
            this.stop(b);
            this.start.j19(this).j32(150, b);
        } else {
            this.stop();
            this.start.j19(this).j32(150);
        }
        return true;
    }, update: function (g, a, c, d) {
        var f = $j(g),
            b = null;
        if (f) {
            if ((b = f.j40("thumb"))) {
                b.g1(b.p0 || b.id).state = "updating";
            }
            if (!ImageZoom.update(f, a, c, d)) {
                ImageThumb.update(f, a, c, d);
            }
        }
    }, _z37: function (b) {
        var a, f, d, c;
        a = null;
        f = {};
        if (b) {
            d = $j(b.split(";"));
            d.j14(function (j) {
                for (var g in this._o) {
                    a = (new RegExp("^" + g.dashize().replace(/\-/, "\\-") + "\\s*:\\s*([^;]+)$", "i")).exec(j.j21());
                    if (a) {
                        switch ($J.j1(this._o[g])) {
                        case "boolean":
                            f[g] = a[1].j23();
                            break;
                        case "number":
                            f[g] = parseFloat(a[1]);
                            break;
                        default:
                            f[g] = a[1].j21();
                        }
                    }
                }
            }, this);
        } else {
            for (c in this.options) {
                f[c.k()] = this.options[c];
            }
        }
        return f;
    }
};
$j(document).a("domready", function () {
    ImageZoomExtra.start();
});
