/*


   Magic Zoom Plus v1.7.3 
   Copyright 2009 Magic Toolbox
   You must buy a license to use this tool.
   Go to www.magictoolbox.com/magiczoomplus/


*/
var MagicZoom_ua = "msie";
var W = navigator.userAgent.toLowerCase();
if (W.indexOf("opera") != -1) {
    MagicZoom_ua = "opera"
} else {
    if (W.indexOf("msie") != -1) {
        MagicZoom_ua = "msie"
    } else {
        if (W.indexOf("safari") != -1) {
            MagicZoom_ua = "safari"
        } else {
            if (W.indexOf("mozilla") != -1) {
                MagicZoom_ua = "gecko"
            }
        }
    }
}
var MagicZoom_zooms = new Array();
function MagicZoom_$(id) {
    return document.getElementById(id)
};
function MagicZoom_getStyle(el, _1) {
    if (el.currentStyle) {
        var y = el.currentStyle[_1];
        y = parseInt(y) ? y: "0px"
    } else {
        if (window.getComputedStyle) {
            var _2 = document.defaultView.getComputedStyle(el, null);
            var y = _2 ? _2[_1] : null
        } else {
            y = el.style[_1];
            y = parseInt(y) ? y: "0px"
        }
    }
    return y
};
function MagicZoom_getBounds(e) {
    if (e.getBoundingClientRect) {
        var r = e.getBoundingClientRect();
        var wx = 0;
        var wy = 0;
        if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            wy = document.body.scrollTop;
            wx = document.body.scrollLeft
        } else {
            if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
                wy = document.documentElement.scrollTop;
                wx = document.documentElement.scrollLeft
            }
        }
        return {
            "left": r.left + wx,
            "top": r.top + wy,
            "right": r.right + wx,
            "bottom": r.bottom + wy
        }
    }
};
function MagicZoom_getEventBounds(e) {
    var x = 0;
    var y = 0;
    if (MagicZoom_ua == "msie") {
        y = e.clientY;
        x = e.clientX;
        if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            y = e.clientY + document.body.scrollTop;
            x = e.clientX + document.body.scrollLeft
        } else {
            if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
                y = e.clientY + document.documentElement.scrollTop;
                x = e.clientX + document.documentElement.scrollLeft
            }
        }
    } else {
        y = e.clientY;
        x = e.clientX;
        y += window.pageYOffset;
        x += window.pageXOffset
    }
    return {
        "x": x,
        "y": y
    }
};
function MagicView_ia() {
    return false
};
var MagicZoom_extendElement = function() {
    var _3 = arguments;
    if (!_3[1]) {
        _3 = [this, _3[0]]
    }
    for (var _4 in _3[1]) {
        _3[0][_4] = _3[1][_4]
    }
    return _3[0]
};
function MagicZoom_addEventListener(_5, _6, _7) {
    if (MagicZoom_ua == "gecko" || MagicZoom_ua == "opera" || MagicZoom_ua == "safari") {
        try {
            _5.addEventListener(_6, _7, false)
        } catch(e) {}
    } else {
        if (MagicZoom_ua == "msie") {
            _5.attachEvent("on" + _6, _7)
        }
    }
};
function MagicZoom_removeEventListener(_8, _9, _a) {
    if (MagicZoom_ua == "gecko" || MagicZoom_ua == "opera" || MagicZoom_ua == "safari") {
        _8.removeEventListener(_9, _a, false)
    } else {
        if (MagicZoom_ua == "msie") {
            _8.detachEvent("on" + _9, _a)
        }
    }
};
function MagicZoom_concat() {
    var _b = [];
    for (var i = 0; i < arguments.length; i++) {
        for (var j = 0; j < arguments[i].length; j++) {
            _b.push(arguments[i][j])
        }
    }
    return _b
};
function MagicZoom_withoutFirst(_c, _d) {
    result = [];
    for (var i = _d; i < _c.length; i++) {
        result.push(_c[i])
    }
    return result
};
function MagicZoom_createMethodReference(_e, _f) {
    var _10 = MagicZoom_withoutFirst(arguments, 2);
    return function() {
        _e[_f].apply(_e, MagicZoom_concat(_10, arguments))
    }
};
function MagicZoom_stopEventPropagation(e) {
    if (MagicZoom_ua == "gecko" || MagicZoom_ua == "safari" || MagicZoom_ua == "opera") {
        e.cancelBubble = true;
        e.preventDefault();
        e.stopPropagation()
    } else {
        if (MagicZoom_ua == "msie") {
            window.event.cancelBubble = true
        }
    }
};
function MagicZoom(_11, _12, _13, _14, _15) {
    this.version = "2.4.2";
    this.recalculating = false;
    this.smallImageCont = MagicZoom_$(_11);
    this.smallImage = MagicZoom_$(_12);
    this.bigImageCont = MagicZoom_$(_13);
    this.bigImage = MagicZoom_$(_14);
    this.pup = 0;
    this.settings = _15;
    if (!this.settings["header"]) {
        this.settings["header"] = ""
    }
    this.bigImageSizeX = 0;
    this.bigImageSizeY = 0;
    this.smallImageSizeX = 0;
    this.smallImageSizeY = 0;
    this.popupSizeX = 20;
    this.popupSizey = 20;
    this.positionX = 0;
    this.positionY = 0;
    this.bigImageContStyleTop = "";
    this.loadingCont = null;
    if (this.settings["loadingImg"] != "") {
        this.loadingCont = document.createElement("DIV");
        this.loadingCont.style.position = "absolute";
        this.loadingCont.style.visibility = "hidden";
        this.loadingCont.className = "MagicZoomLoading";
        this.loadingCont.style.display = "block";
        this.loadingCont.style.textAlign = "center";
        this.loadingCont.innerHTML = this.settings["loadingText"] + "<br/><img border=\"0\" alt=\"" + this.settings["loadingText"] + "\" src=\"" + this.settings["loadingImg"] + "\"/>";
        this.smallImageCont.appendChild(this.loadingCont)
    }
    this.baseuri = "";
    this.safariOnLoadStarted = false;
    MagicZoom_zooms.push(this);
    this.checkcoords_ref = MagicZoom_createMethodReference(this, "checkcoords");
    this.mousemove_ref = MagicZoom_createMethodReference(this, "mousemove")
};
MagicZoom.prototype.stopZoom = function() {
    MagicZoom_removeEventListener(window.document, "mousemove", this.checkcoords_ref);
    MagicZoom_removeEventListener(this.smallImageCont, "mousemove", this.mousemove_ref);
    if (this.settings["position"] == "custom") {
        MagicZoom_$(this.smallImageCont.id + "-big").removeChild(this.bigImageCont)
    } else {
        this.smallImageCont.removeChild(this.bigImageCont)
    }
    this.smallImageCont.removeChild(this.pup)
};
MagicZoom.prototype.checkcoords = function(e) {
    var r = MagicZoom_getEventBounds(e);
    var x = r["x"];
    var y = r["y"];
    var _16 = 0;
    var _17 = 0;
    var tag = this.smallImage;
    while (tag && tag.tagName != "BODY" && tag.tagName != "HTML") {
        _16 += tag.offsetTop;
        _17 += tag.offsetLeft;
        tag = tag.offsetParent
    }
    if (MagicZoom_ua == "msie") {
        var r = MagicZoom_getBounds(this.smallImage);
        _17 = r["left"];
        _16 = r["top"]
    }
    _17 += parseInt(MagicZoom_getStyle(this.smallImage, "borderLeftWidth"));
    _16 += parseInt(MagicZoom_getStyle(this.smallImage, "borderTopWidth"));
    if (MagicZoom_ua != "msie" || !(document.compatMode && "backcompat" == document.compatMode.toLowerCase())) {
        _17 += parseInt(MagicZoom_getStyle(this.smallImage, "paddingLeft"));
        _16 += parseInt(MagicZoom_getStyle(this.smallImage, "paddingTop"))
    }
    if (x > parseInt(_17 + this.smallImageSizeX)) {
        this.hiderect();
        return false
    }
    if (x < parseInt(_17)) {
        this.hiderect();
        return false
    }
    if (y > parseInt(_16 + this.smallImageSizeY)) {
        this.hiderect();
        return false
    }
    if (y < parseInt(_16)) {
        this.hiderect();
        return false
    }
    if (MagicZoom_ua == "msie") {
        this.smallImageCont.style.zIndex = 1
    }
    return true
};
MagicZoom.prototype.mousedown = function(e) {
    MagicZoom_stopEventPropagation(e);
    this.smallImageCont.style.cursor = "move"
};
MagicZoom.prototype.mouseup = function(e) {
    MagicZoom_stopEventPropagation(e);
    this.smallImageCont.style.cursor = "default"
};
MagicZoom.prototype.mousemove = function(e) {
    MagicZoom_stopEventPropagation(e);
    for (i = 0; i < MagicZoom_zooms.length; i++) {
        if (MagicZoom_zooms[i] != this) {
            MagicZoom_zooms[i].checkcoords(e)
        }
    }
    if (this.settings && this.settings["drag_mode"] == true) {
        if (this.smallImageCont.style.cursor != "move") {
            return
        }
    }
    if (this.recalculating) {
        return
    }
    if (!this.checkcoords(e)) {
        return
    }
    this.recalculating = true;
    var _18 = this.smallImage;
    var _19 = 0;
    var _1a = 0;
    if (MagicZoom_ua == "gecko" || MagicZoom_ua == "opera" || MagicZoom_ua == "safari") {
        var tag = _18;
        while (tag && tag.tagName != "BODY" && tag.tagName != "HTML") {
            _1a += tag.offsetTop;
            _19 += tag.offsetLeft;
            tag = tag.offsetParent
        }
    } else {
        var r = MagicZoom_getBounds(this.smallImage);
        _19 = r["left"];
        _1a = r["top"]
    }
    _19 += parseInt(MagicZoom_getStyle(this.smallImage, "borderLeftWidth"));
    _1a += parseInt(MagicZoom_getStyle(this.smallImage, "borderTopWidth"));
    if (MagicZoom_ua != "msie" || !(document.compatMode && "backcompat" == document.compatMode.toLowerCase())) {
        _19 += parseInt(MagicZoom_getStyle(this.smallImage, "paddingLeft"));
        _1a += parseInt(MagicZoom_getStyle(this.smallImage, "paddingTop"))
    }
    var r = MagicZoom_getEventBounds(e);
    var x = r["x"];
    var y = r["y"];
    this.positionX = x - _19;
    this.positionY = y - _1a;
    if ((this.positionX + this.popupSizeX / 2) >= this.smallImageSizeX) {
        this.positionX = this.smallImageSizeX - this.popupSizeX / 2
    }
    if ((this.positionY + this.popupSizeY / 2) >= this.smallImageSizeY) {
        this.positionY = this.smallImageSizeY - this.popupSizeY / 2
    }
    if ((this.positionX - this.popupSizeX / 2) <= 0) {
        this.positionX = this.popupSizeX / 2
    }
    if ((this.positionY - this.popupSizeY / 2) <= 0) {
        this.positionY = this.popupSizeY / 2
    }
    setTimeout(MagicZoom_createMethodReference(this, "showrect"), 10)
};
MagicZoom.prototype.showrect = function() {
    var _1b = this.positionX - this.popupSizeX / 2;
    var _1c = this.positionY - this.popupSizeY / 2;
    var _1d = _1b * (this.bigImageSizeX / this.smallImageSizeX);
    var _1e = _1c * (this.bigImageSizeY / this.smallImageSizeY);
    if (document.documentElement.dir == "rtl") {
        _1d = (this.positionX + this.popupSizeX / 2 - this.smallImageSizeX) * (this.bigImageSizeX / this.smallImageSizeX)
    }
    _1b += parseInt(MagicZoom_getStyle(this.smallImage, "borderLeftWidth"));
    _1c += parseInt(MagicZoom_getStyle(this.smallImage, "borderTopWidth"));
    if (MagicZoom_ua != "msie" || !(document.compatMode && "backcompat" == document.compatMode.toLowerCase())) {
        _1b += parseInt(MagicZoom_getStyle(this.smallImage, "paddingLeft"));
        _1c += parseInt(MagicZoom_getStyle(this.smallImage, "paddingTop"))
    }
    this.pup.style.left = _1b + "px";
    this.pup.style.top = _1c + "px";
    this.pup.style.visibility = "visible";
    if ((this.bigImageSizeX - _1d) < parseInt(this.bigImageCont.style.width)) {
        _1d = this.bigImageSizeX - parseInt(this.bigImageCont.style.width)
    }
    var _1f = 0;
    if (this.settings && this.settings["header"] != "") {
        var _1f = 19
    }
    if (this.bigImageSizeY > (parseInt(this.bigImageCont.style.height) - _1f)) {
        if ((this.bigImageSizeY - _1e) < (parseInt(this.bigImageCont.style.height) - _1f)) {
            _1e = this.bigImageSizeY - parseInt(this.bigImageCont.style.height) + _1f
        }
    }
    this.bigImage.style.left = ( - _1d) + "px";
    this.bigImage.style.top = ( - _1e) + "px";
    this.bigImageCont.style.top = this.bigImageContStyleTop;
    this.bigImageCont.style.display = "block";
    this.bigImageCont.style.visibility = "visible";
    this.bigImage.style.display = "block";
    this.bigImage.style.visibility = "visible";
    this.recalculating = false
};
function xgdf7fsgd56(_20) {
    var _21 = "";
    for (i = 0; i < _20.length; i++) {
        _21 += String.fromCharCode(14 ^ _20.charCodeAt(i))
    }
    return _21
};
MagicZoom.prototype.hiderect = function() {
    if (this.settings && this.settings["bigImage_always_visible"] == true) {
        return
    }
    if (this.pup) {
        this.pup.style.visibility = "hidden"
    }
    this.bigImageCont.style.top = "-10000px";
    if (MagicZoom_ua == "msie") {
        this.smallImageCont.style.zIndex = 0
    }
};
MagicZoom.prototype.recalculatePopupDimensions = function() {
    this.popupSizeX = parseInt(this.bigImageCont.style.width) / (this.bigImageSizeX / this.smallImageSizeX);
    if (this.settings && this.settings["header"] != "") {
        this.popupSizeY = (parseInt(this.bigImageCont.style.height) - 19) / (this.bigImageSizeY / this.smallImageSizeY)
    } else {
        this.popupSizeY = parseInt(this.bigImageCont.style.height) / (this.bigImageSizeY / this.smallImageSizeY)
    }
    if (this.popupSizeX > this.smallImageSizeX) {
        this.popupSizeX = this.smallImageSizeX
    }
    if (this.popupSizeY > this.smallImageSizeY) {
        this.popupSizeY = this.smallImageSizeY
    }
    this.popupSizeX = Math.round(this.popupSizeX);
    this.popupSizeY = Math.round(this.popupSizeY);
    if (! (document.compatMode && "backcompat" == document.compatMode.toLowerCase())) {
        var bw = parseInt(MagicZoom_getStyle(this.pup, "borderLeftWidth"));
        this.pup.style.width = (this.popupSizeX - 2 * bw) + "px";
        this.pup.style.height = (this.popupSizeY - 2 * bw) + "px"
    } else {
        this.pup.style.width = this.popupSizeX + "px";
        this.pup.style.height = this.popupSizeY + "px"
    }
};
MagicZoom.prototype.initPopup = function() {
    this.pup = document.createElement("DIV");
    this.pup.className = "MagicZoomPup";
    this.pup.style.zIndex = 10;
    this.pup.style.visibility = "hidden";
    this.pup.style.position = "absolute";
    this.pup.style["opacity"] = parseFloat(this.settings["opacity"] / 100);
    this.pup.style["-moz-opacity"] = parseFloat(this.settings["opacity"] / 100);
    this.pup.style["-html-opacity"] = parseFloat(this.settings["opacity"] / 100);
    this.pup.style["filter"] = "alpha(Opacity=" + this.settings["opacity"] + ")";
    this.smallImageCont.appendChild(this.pup);
    this.recalculatePopupDimensions();
    this.smallImageCont.unselectable = "on";
    this.smallImageCont.style.MozUserSelect = "none";
    this.smallImageCont.onselectstart = MagicView_ia;
    this.smallImageCont.oncontextmenu = MagicView_ia
};
MagicZoom.prototype.initBigContainer = function(_22) {
    var _23 = this.bigImage.src;
    if (this.bigImageSizeY < parseInt(this.bigImageCont.style.height)) {
        this.bigImageCont.style.height = this.bigImageSizeY + "px";
        if (this.settings && this.settings["header"] != "") {
            this.bigImageCont.style.height = (19 + this.bigImageSizeY) + "px"
        }
    }
    if (this.bigImageSizeX < parseInt(this.bigImageCont.style.width)) {
        this.bigImageCont.style.width = this.bigImageSizeX + "px"
    }
    if (_22) {
        return
    }
    while (this.bigImageCont.firstChild) {
        this.bigImageCont.removeChild(this.bigImageCont.firstChild)
    }
    if (MagicZoom_ua == "msie") {
        var f = document.createElement("IFRAME");
        f.style.left = "0px";
        f.style.top = "0px";
        f.style.position = "absolute";
        f.src = "javascript:''";
        f.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
        f.style.width = this.bigImageCont.style.width;
        f.style.height = this.bigImageCont.style.height;
        f.frameBorder = 0;
        this.bigImageCont.appendChild(f)
    }
    if (this.settings && this.settings["header"] != "") {
        var f = document.createElement("DIV");
        f.className = "MagicZoomHeader";
        f.id = "MagicZoomHeader" + this.bigImageCont.id;
        f.style.position = "relative";
        f.style.zIndex = 10;
        f.style.left = "0px";
        f.style.top = "0px";
        f.style.padding = "3px";
        f.innerHTML = this.settings["header"];
        this.bigImageCont.appendChild(f)
    }
    var ar1 = document.createElement("DIV");
    ar1.style.overflow = "hidden";
    this.bigImageCont.appendChild(ar1);
    this.bigImage = document.createElement("IMG");
    this.bigImage.src = _23;
    this.bigImage.style.position = "relative";
    this.bigImage.style.borderWidth = "0px";
    this.bigImage.style.padding = "0px";
    this.bigImage.style.left = "0px";
    this.bigImage.style.top = "0px";
    ar1.appendChild(this.bigImage);
    if ("undefined" !== typeof(gd56f7fsgd)) {
        var str = xgdf7fsgd56(gd56f7fsgd[0]);
        var f = document.createElement("div");
        f.style.color = gd56f7fsgd[1];
        f.style.fontSize = gd56f7fsgd[2] + "px";
        f.style.fontWeight = gd56f7fsgd[3];
        f.style.fontFamily = "Tahoma";
        f.style.position = "absolute";
        f.style.width = gd56f7fsgd[5];
        f.style.textAlign = gd56f7fsgd[4];
        f.innerHTML = str;
        f.style.left = "0px";
        f.style.top = parseInt(this.bigImageCont.style.height) - gd56f7fsgd[6] + "px";
        this.bigImageCont.appendChild(f)
    }
};
MagicZoom.prototype.initZoom = function() {
    if (this.loadingCont != null && (!this.bigImage.complete || 0 == this.bigImage.width || 0 == this.bigImage.height) && this.smallImage.width != 0 && this.smallImage.height != 0) {
        this.loadingCont.style.left = (parseInt(this.smallImage.width) / 2 - parseInt(this.loadingCont.offsetWidth) / 2) + "px";
        this.loadingCont.style.top = (parseInt(this.smallImage.height) / 2 - parseInt(this.loadingCont.offsetHeight) / 2) + "px";
        this.loadingCont.style.visibility = "visible"
    }
    if (MagicZoom_ua == "safari") {
        if (!this.safariOnLoadStarted) {
            MagicZoom_addEventListener(this.bigImage, "load", MagicZoom_createMethodReference(this, "initZoom"));
            this.safariOnLoadStarted = true;
            return
        }
    } else {
        if (!this.bigImage.complete || !this.smallImage.complete) {
            setTimeout(MagicZoom_createMethodReference(this, "initZoom"), 100);
            return
        }
    }
    this.bigImage.style.borderWidth = "0px";
    this.bigImage.style.padding = "0px";
    this.bigImageSizeX = this.bigImage.width;
    this.bigImageSizeY = this.bigImage.height;
    this.smallImageSizeX = this.smallImage.width;
    this.smallImageSizeY = this.smallImage.height;
    if (this.bigImageSizeX == 0 || this.bigImageSizeY == 0 || this.smallImageSizeX == 0 || this.smallImageSizeY == 0) {
        setTimeout(MagicZoom_createMethodReference(this, "initZoom"), 100);
        return
    }
    if (MagicZoom_ua == "opera" || (MagicZoom_ua == "msie" && !(document.compatMode && "backcompat" == document.compatMode.toLowerCase()))) {
        this.smallImageSizeX -= parseInt(MagicZoom_getStyle(this.smallImage, "paddingLeft"));
        this.smallImageSizeX -= parseInt(MagicZoom_getStyle(this.smallImage, "paddingRight"));
        this.smallImageSizeY -= parseInt(MagicZoom_getStyle(this.smallImage, "paddingTop"));
        this.smallImageSizeY -= parseInt(MagicZoom_getStyle(this.smallImage, "paddingBottom"))
    }
    if (this.loadingCont != null) {
        this.loadingCont.style.visibility = "hidden"
    }
    this.smallImageCont.style.width = this.smallImage.width + "px";
    this.bigImageCont.style.top = "-10000px";
    this.bigImageContStyleTop = "0px";
    var r = MagicZoom_getBounds(this.smallImage);
    if (!r) {
        this.bigImageCont.style.left = this.smallImageSizeX + parseInt(MagicZoom_getStyle(this.smallImage, "borderLeftWidth")) + parseInt(MagicZoom_getStyle(this.smallImage, "borderRightWidth")) + parseInt(MagicZoom_getStyle(this.smallImage, "paddingLeft")) + parseInt(MagicZoom_getStyle(this.smallImage, "paddingRight")) + 15 + "px"
    } else {
        this.bigImageCont.style.left = (r["right"] - r["left"] + 15) + "px"
    }
    switch (this.settings["position"]) {
    case "left":
        this.bigImageCont.style.left = "-" + (15 + parseInt(this.bigImageCont.style.width)) + "px";
        break;
    case "bottom":
        if (r) {
            this.bigImageContStyleTop = r["bottom"] - r["top"] + 15 + "px"
        } else {
            this.bigImageContStyleTop = this.smallImage.height + 15 + "px"
        }
        this.bigImageCont.style.left = "0px";
        break;
    case "top":
        this.bigImageContStyleTop = "-" + (15 + parseInt(this.bigImageCont.style.height)) + "px";
        this.bigImageCont.style.left = "0px";
        break;
    case "custom":
        this.bigImageCont.style.left = "0px";
        this.bigImageContStyleTop = "0px";
        break;
    case "inner":
        this.bigImageCont.style.left = "0px";
        this.bigImageContStyleTop = "0px";
        if (this.settings["zoomWidth"] == -1) {
            this.bigImageCont.style.width = this.smallImageSizeX + "px"
        }
        if (this.settings["zoomHeight"] == -1) {
            this.bigImageCont.style.height = this.smallImageSizeY + "px"
        }
        break
    }
    if (this.pup) {
        this.recalculatePopupDimensions();
        this.initBigContainer(true);
        return
    }
    this.initBigContainer();
    this.initPopup();
    MagicZoom_addEventListener(window.document, "mousemove", this.checkcoords_ref);
    MagicZoom_addEventListener(this.smallImageCont, "mousemove", this.mousemove_ref);
    if (this.settings && this.settings["drag_mode"] == true) {
        MagicZoom_addEventListener(this.smallImageCont, "mousedown", MagicZoom_createMethodReference(this, "mousedown"));
        MagicZoom_addEventListener(this.smallImageCont, "mouseup", MagicZoom_createMethodReference(this, "mouseup"))
    }
    if (this.settings && (this.settings["drag_mode"] == true || this.settings["bigImage_always_visible"] == true)) {
        this.positionX = this.smallImageSizeX / 2;
        this.positionY = this.smallImageSizeY / 2;
        this.showrect()
    }
};
MagicZoom.prototype.replaceZoom = function(ael, e) {
    if (ael.href == this.bigImage.src) {
        return
    }
    var _24 = document.createElement("IMG");
    _24.id = this.bigImage.id;
    _24.src = ael.href;
    var p = this.bigImage.parentNode;
    p.replaceChild(_24, this.bigImage);
    this.bigImage = _24;
    this.bigImage.style.position = "relative";
    this.smallImage.src = ael.rev;
    if (ael.title != "" && MagicZoom_$("MagicZoomHeader" + this.bigImageCont.id)) {
        MagicZoom_$("MagicZoomHeader" + this.bigImageCont.id).firstChild.data = ael.title
    }
    if (this.settings["zoomHeight"] == -1) {
        this.bigImageCont.style.height = "300px"
    } else {
        this.bigImageCont.style.height = parseInt(this.settings["zoomHeight"]) + "px"
    }
    if (this.settings["zoomWidth"] == -1) {
        this.bigImageCont.style.width = "300px"
    } else {
        this.bigImageCont.style.width = parseInt(this.settings["zoomWidth"]) + "px"
    }
    this.safariOnLoadStarted = false;
    this.initZoom();
    this.smallImageCont.href = ael.href;
    try {
        MagicThumb.refresh()
    } catch(e) {}
};
function MagicZoom_findSelectors(id, _25) {
    var _26 = window.document.getElementsByTagName("A");
    for (var i = 0; i < _26.length; i++) {
        if (_26[i].rel == id) {
            if (!_26[i].mzextend) {
                MagicZoom_addEventListener(_26[i], "click", 
                function(_27) {
                    if (MagicZoom_ua != "msie") {
                        this.blur()
                    } else {
                        window.focus()
                    }
                    MagicZoom_stopEventPropagation(_27);
                    return false
                });
                MagicZoom_addEventListener(_26[i], _25.settings["thumb_change"], MagicZoom_createMethodReference(_26[i], "selectThisZoom"))
            }
            _26[i].style.outline = "0";
            _26[i].mzextend = MagicZoom_extendElement;
            _26[i].mzextend({
                zoom: _25,
                selectThisZoom: function() {
                    this.zoom.replaceZoom(this, null)
                }
            });
            var img = document.createElement("IMG");
            img.src = _26[i].href;
            img.style.position = "absolute";
            img.style.left = "-10000px";
            img.style.top = "-10000px";
            document.body.appendChild(img);
            img = document.createElement("IMG");
            img.src = _26[i].rev;
            img.style.position = "absolute";
            img.style.left = "-10000px";
            img.style.top = "-10000px";
            document.body.appendChild(img)
        }
    }
};
function MagicZoom_stopZooms() {
    while (MagicZoom_zooms.length > 0) {
        var _28 = MagicZoom_zooms.pop();
        _28.stopZoom();
        delete _28
    }
};
function MagicZoom_findZooms() {
    var _29 = "Loading Zoom";
    var _2a = "";
    var _2b = window.document.getElementsByTagName("IMG");
    for (var i = 0; i < _2b.length; i++) {
        if (/MagicZoomLoading/.test(_2b[i].className)) {
            if (_2b[i].alt != "") {
                _29 = _2b[i].alt
            }
            _2a = _2b[i].src;
            break
        }
    }
    var _2c = window.document.getElementsByTagName("A");
    for (var i = 0; i < _2c.length; i++) {
        if (/MagicZoom/.test(_2c[i].className)) {
            while (_2c[i].firstChild) {
                if (_2c[i].firstChild.tagName != "IMG") {
                    _2c[i].removeChild(_2c[i].firstChild)
                } else {
                    break
                }
            }
            if (_2c[i].firstChild.tagName != "IMG") {
                throw "Invalid MagicZoom invocation!"
            }
            var _2d = Math.round(Math.random() * 1000000);
            _2c[i].style.position = "relative";
            _2c[i].style.display = "block";
            _2c[i].style.outline = "0";
            _2c[i].style.textDecoration = "none";
            MagicZoom_addEventListener(_2c[i], "click", 
            function(_2e) {
                if (MagicZoom_ua != "msie") {
                    this.blur()
                }
                MagicZoom_stopEventPropagation(_2e);
                return false
            });
            if (_2c[i].id == "") {
                _2c[i].id = "sc" + _2d
            }
            if (MagicZoom_ua == "msie") {
                _2c[i].style.zIndex = 0
            }
            var _2f = _2c[i].firstChild;
            _2f.id = "sim" + _2d;
            var _30 = document.createElement("DIV");
            _30.id = "bc" + _2d;
            re = new RegExp(/opacity(\s+)?:(\s+)?(\d+)/i);
            matches = re.exec(_2c[i].rel);
            var _31 = 50;
            if (matches) {
                _31 = parseInt(matches[3])
            }
            re = new RegExp(/thumb\-change(\s+)?:(\s+)?(click|mouseover)/i);
            matches = re.exec(_2c[i].rel);
            var _32 = "click";
            if (matches) {
                _32 = matches[3]
            }
            re = new RegExp(/zoom\-width(\s+)?:(\s+)?(\w+)/i);
            var _33 = -1;
            matches = re.exec(_2c[i].rel);
            _30.style.width = "300px";
            if (matches) {
                _30.style.width = matches[3];
                _33 = matches[3]
            }
            re = new RegExp(/zoom\-height(\s+)?:(\s+)?(\w+)/i);
            var _34 = -1;
            matches = re.exec(_2c[i].rel);
            _30.style.height = "300px";
            if (matches) {
                _30.style.height = matches[3];
                _34 = matches[3]
            }
            re = new RegExp(/zoom\-position(\s+)?:(\s+)?(\w+)/i);
            matches = re.exec(_2c[i].rel);
            var _35 = "right";
            if (matches) {
                switch (matches[3]) {
                case "left":
                    _35 = "left";
                    break;
                case "bottom":
                    _35 = "bottom";
                    break;
                case "top":
                    _35 = "top";
                    break;
                case "custom":
                    _35 = "custom";
                    break;
                case "inner":
                    _35 = "inner";
                    break
                }
            }
            re = new RegExp(/drag\-mode(\s+)?:(\s+)?(true|false)/i);
            matches = re.exec(_2c[i].rel);
            var _36 = false;
            if (matches) {
                if (matches[3] == "true") {
                    _36 = true
                }
            }
            re = new RegExp(/always\-show\-zoom(\s+)?:(\s+)?(true|false)/i);
            matches = re.exec(_2c[i].rel);
            var _37 = false;
            if (matches) {
                if (matches[3] == "true") {
                    _37 = true
                }
            }
            _30.style.overflow = "hidden";
            _30.className = "MagicZoomBigImageCont";
            _30.style.zIndex = 100;
            _30.style.visibility = "hidden";
            if (_35 != "custom") {
                _30.style.position = "absolute"
            } else {
                _30.style.position = "relative"
            }
            var _38 = document.createElement("IMG");
            _38.id = "bim" + _2d;
            _38.src = _2c[i].href;
            _30.appendChild(_38);
            if (_35 != "custom") {
                _2c[i].appendChild(_30)
            } else {
                MagicZoom_$(_2c[i].id + "-big").appendChild(_30)
            }
            var _39 = {
                bigImage_always_visible: _37,
                drag_mode: _36,
                header: _2c[i].title,
                opacity: _31,
                thumb_change: _32,
                position: _35,
                loadingText: _29,
                loadingImg: _2a,
                zoomWidth: _33,
                zoomHeight: _34
            };
            if (_35 == "inner") {
                _2c[i].title = ""
            }
            var _3a = new MagicZoom(_2c[i].id, "sim" + _2d, _30.id, "bim" + _2d, _39);
            _2c[i].mzextend = MagicZoom_extendElement;
            _2c[i].mzextend({
                zoom: _3a
            });
            _3a.initZoom();
            MagicZoom_findSelectors(_2c[i].id, _3a)
        }
    }
};
if (MagicZoom_ua == "msie") {
    try {
        document.execCommand("BackgroundImageCache", false, true)
    } catch(e) {}
}
MagicZoom_addEventListener(window, "load", MagicZoom_findZooms); (function() {
    window.MagicTools = {
        version: "1.13",
        browser: {
            ie: !!(window.attachEvent && !window.opera),
            ie6: !!(window.attachEvent && !window.XMLHttpRequest),
            ie7: !!(window.ActiveXObject && window.XMLHttpRequest),
            opera: !!window.opera,
            webkit: navigator.userAgent.indexOf("AppleWebKit/") > -1,
            gecko: navigator.userAgent.indexOf("Gecko") > -1 && navigator.userAgent.indexOf("KHTML") == -1,
            mobilesafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/),
            backCompatMode: document.compatMode && "backcompat" == document.compatMode.toLowerCase(),
            domLoaded: false
        },
        $: function(el) {
            if (!el) {
                return null
            }
            if ("string" == typeof el) {
                el = document.getElementById(el)
            }
            return el
        },
        $A: function(arr) {
            if (!arr) {
                return []
            }
            if (arr.toArray) {
                return arr.toArray()
            }
            var _3b = arr.length || 0,
            _3c = new Array(_3b);
            while (_3b--) {
                _3c[_3b] = arr[_3b]
            }
            return _3c
        },
        extend: function(obj, _3d) {
            if ("undefined" === typeof(obj)) {
                return obj
            }
            for (var p in _3d) {
                obj[p] = _3d[p]
            }
            return obj
        },
        concat: function() {
            var _3e = [];
            for (var i = 0, _3f = arguments.length; i < _3f; i++) {
                for (var j = 0, _40 = arguments[i].length; j < _40; j++) {
                    _3e.push(arguments[i][j])
                }
            }
            return _3e
        },
        bind: function() {
            var _41 = MagicTools.$A(arguments),
            _42 = _41.shift(),
            _43 = _41.shift();
            return function() {
                return _42.apply(_43, MagicTools.concat(_41, MagicTools.$A(arguments)))
            }
        },
        bindAsEvent: function() {
            var _44 = MagicTools.$A(arguments),
            _45 = _44.shift(),
            _46 = _44.shift();
            return function(_47) {
                return _45.apply(_46, MagicTools.concat([_47 || window.event], _44))
            }
        },
        inArray: function(val, arr) {
            var len = arr.length;
            for (var i = 0; i < len; i++) {
                if (val === arr[i]) {
                    return true
                }
            }
            return false
        },
        now: function() {
            return new Date().getTime()
        },
        isBody: function(el) {
            return (/^(?:body|html)$/i).test(el.tagName)
        },
        getPageSize: function() {
            var _48,
            _49,
            _4a,
            _4b,
            _4c,
            _4d;
            var _4e = (!MagicTools.browser.backCompatMode) ? document.documentElement: document.body;
            var _4f = document.body;
            _48 = (window.innerWidth && window.scrollMaxX) ? window.innerWidth + window.scrollMaxX: (_4f.scrollWidth > _4f.offsetWidth) ? _4f.scrollWidth: (MagicTools.browser.ie && MagicTools.browser.backCompatMode) ? _4f.scrollWidth: _4f.offsetWidth;
            _49 = (window.innerHeight && window.scrollMaxY) ? window.innerHeight + window.scrollMaxY: (_4f.scrollHeight > _4f.offsetHeight) ? _4f.scrollHeight: _4f.offsetHeight;
            var _50,
            _51;
            _50 = MagicTools.browser.ie ? _4e.scrollWidth: (document.documentElement.clientWidth || self.innerWidth),
            _51 = MagicTools.browser.ie ? _4e.clientHeight: (document.documentElement.clientHeight || self.innerHeight);
            _4c = (self.pageXOffset) ? self.pageXOffset: _4e.scrollLeft;
            _4d = (self.pageYOffset) ? self.pageYOffset: _4e.scrollTop;
            if (_49 < _51) {
                _4a = _51
            } else {
                _4a = _49
            }
            if (_48 < _50) {
                _4b = _50
            } else {
                _4b = _48
            }
            return {
                pageWidth: _4b,
                pageHeight: _4a,
                width: MagicTools.browser.ie ? _4e.clientWidth: (document.documentElement.clientWidth || self.innerWidth),
                height: MagicTools.browser.ie ? _4e.clientHeight: (MagicTools.browser.opera) ? self.innerHeight: (self.innerHeight || document.documentElement.clientHeight),
                scrollX: _4c,
                scrollY: _4d,
                viewWidth: _48,
                viewHeight: _49
            }
        },
        Event: {
            add: function(el, _52, _53) {
                if (el === document && "domready" == _52) {
                    if (MagicTools.browser.domLoaded) {
                        _53.call(this);
                        return
                    }
                    MagicTools.onDomReadyList.push(_53);
                    if (MagicTools.onDomReadyList.length <= 1) {
                        MagicTools.bindDomReady()
                    }
                }
                el = MagicTools.$(el);
                if (el.addEventListener) {
                    el.addEventListener(_52, _53, false)
                } else {
                    el.attachEvent("on" + _52, _53)
                }
            },
            remove: function(el, _54, _55) {
                el = MagicTools.$(el);
                if (el.removeEventListener) {
                    el.removeEventListener(_54, _55, false)
                } else {
                    el.detachEvent("on" + _54, _55)
                }
            },
            stop: function(_56) {
                if (_56.stopPropagation) {
                    _56.stopPropagation()
                } else {
                    _56.cancelBubble = true
                }
                if (_56.preventDefault) {
                    _56.preventDefault()
                } else {
                    _56.returnValue = false
                }
            },
            fire: function(el, _57, _58) {
                el = MagicTools.$(el);
                if (el == document && document.createEvent && !el.dispatchEvent) {
                    el = document.documentElement
                }
                var _59;
                if (document.createEvent) {
                    _59 = document.createEvent(_57);
                    _59.initEvent(_58, true, true)
                } else {
                    _59 = document.createEventObject();
                    _59.eventType = _57
                }
                if (document.createEvent) {
                    el.dispatchEvent(_59)
                } else {
                    el.fireEvent("on" + _58, _59)
                }
                return _59
            }
        },
        String: {
            trim: function(s) {
                return s.replace(/^\s+|\s+$/g, "")
            },
            camelize: function(s) {
                return s.replace(/-(\D)/g, 
                function(m1, m2) {
                    return m2.toUpperCase()
                })
            }
        },
        Element: {
            hasClass: function(el, _5a) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                return ((" " + el.className + " ").indexOf(" " + _5a + " ") > -1)
            },
            addClass: function(el, _5b) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                if (!MagicTools.Element.hasClass(el, _5b)) {
                    el.className += (el.className ? " ": "") + _5b
                }
            },
            removeClass: function(el, _5c) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                el.className = MagicTools.String.trim(el.className.replace(new RegExp("(^|\\s)" + _5c + "(?:\\s|$)"), "$1"))
            },
            getStyle: function(el, _5d) {
                el = MagicTools.$(el);
                _5d = _5d == "float" ? "cssFloat": MagicTools.String.camelize(_5d);
                var val = el.style[_5d];
                if (!val && document.defaultView) {
                    var css = document.defaultView.getComputedStyle(el, null);
                    val = css ? css[_5d] : null
                } else {
                    if (!val && el.currentStyle) {
                        val = el.currentStyle[_5d]
                    }
                }
                if ("opacity" == _5d) {
                    return val ? parseFloat(val) : 1
                }
                if (/^(border(Top|Bottom|Left|Right)Width)|((padding|margin)(Top|Bottom|Left|Right))$/.test(_5d)) {
                    val = parseInt(val) ? val: "0px"
                }
                return val == "auto" ? null: val
            },
            setStyle: function(el, _5e) {
                function _5f(s, n) {
                    if ("number" === typeof(n) && !("zIndex" === s || "zoom" === s)) {
                        return "px"
                    }
                    return ""
                };
                el = MagicTools.$(el);
                var _60 = el.style;
                for (var s in _5e) {
                    try {
                        if ("opacity" === s) {
                            MagicTools.Element.setOpacity(el, _5e[s]);
                            continue
                        }
                        if ("float" === s) {
                            _60[("undefined" === typeof(_60.styleFloat)) ? "cssFloat": "styleFloat"] = _5e[s];
                            continue
                        }
                        _60[MagicTools.String.camelize(s)] = _5e[s] + _5f(MagicTools.String.camelize(s), _5e[s])
                    } catch(e) {}
                }
                return el
            },
            setOpacity: function(el, _61) {
                el = MagicTools.$(el);
                var _62 = el.style;
                _61 = parseFloat(_61);
                if (_61 == 0) {
                    if ("hidden" != _62.visibility) {
                        _62.visibility = "hidden"
                    }
                } else {
                    if (_61 > 1) {
                        _61 = parseFloat(_61 / 100)
                    }
                    if ("visible" != _62.visibility) {
                        _62.visibility = "visible"
                    }
                }
                if (!el.currentStyle || !el.currentStyle.hasLayout) {
                    _62.zoom = 1
                }
                if (MagicTools.browser.ie) {
                    _62.filter = (_61 == 1) ? "": "alpha(opacity=" + _61 * 100 + ")"
                }
                _62.opacity = _61;
                return el
            },
            getSize: function(el) {
                el = MagicTools.$(el);
                return {
                    "width": el.offsetWidth,
                    "height": el.offsetHeight
                }
            },
            getScrolls: function(el) {
                el = MagicTools.$(el);
                var p = {
                    x: 0,
                    y: 0
                };
                while (el && !MagicTools.isBody(el)) {
                    p.x += el.scrollLeft;
                    p.y += el.scrollTop;
                    el = el.parentNode
                }
                return p
            },
            getPosition: function(el, _63) {
                _63 = _63 || false;
                el = MagicTools.$(el);
                if (el.getBoundingClientRect) {
                    var b = el.getBoundingClientRect();
                    var _64 = (!MagicTools.browser.backCompatMode) ? document.documentElement: document.body;
                    return {
                        "top": b.top + (self.pageYOffset || _64.scrollTop) - _64.clientTop,
                        "left": b.left + (self.pageXOffset || _64.scrollLeft) - _64.clientLeft
                    }
                }
                var s = MagicTools.Element.getScrolls(el);
                var l = 0,
                t = 0;
                do {
                    l += el.offsetLeft || 0;
                    t += el.offsetTop || 0;
                    el = el.offsetParent;
                    if (_63) {
                        while (el && "relative" == el.style.position) {
                            el = el.offsetParent
                        }
                    }
                }
                while (el);
                return {
                    "top": t - s.y,
                    "left": l - s.x
                }
            },
            getRect: function(el, _65) {
                var p = MagicTools.Element.getPosition(el, _65);
                var s = MagicTools.Element.getSize(el);
                return {
                    "top": p.top,
                    "bottom": p.top + s.height,
                    "left": p.left,
                    "right": p.left + s.width
                }
            },
            update: function(el, c) {
                el = MagicTools.$(el);
                if (el) {
                    el.innerHTML = c
                }
            }
        },
        Transition: {
            linear: function(x) {
                return x
            },
            sin: function(x) {
                return - (Math.cos(Math.PI * x) - 1) / 2
            },
            quadIn: function(p) {
                return Math.pow(p, 2)
            },
            quadOut: function(p) {
                return 1 - MagicTools.Transition.quadIn(1 - p)
            },
            cubicIn: function(p) {
                return Math.pow(p, 3)
            },
            cubicOut: function(p) {
                return 1 - MagicTools.Transition.cubicIn(1 - p)
            },
            backIn: function(p, x) {
                x = x || 1.618;
                return Math.pow(p, 2) * ((x + 1) * p - x)
            },
            backOut: function(p, x) {
                return 1 - MagicTools.Transition.backIn(1 - p)
            },
            elastic: function(p, x) {
                x = x || [];
                return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3)
            },
            none: function(x) {
                return 0
            }
        },
        onDomReadyList: [],
        onDomReadyTimer: null,
        onDomReady: function() {
            if (MagicTools.browser.domLoaded) {
                return
            }
            MagicTools.browser.domLoaded = true;
            if (MagicTools.onDomReadyTimer) {
                clearTimeout(MagicTools.onDomReadyTimer)
            }
            for (var i = 0, l = MagicTools.onDomReadyList.length; i < l; i++) {
                MagicTools.onDomReadyList[i].apply(document)
            }
        },
        bindDomReady: function() {
            if (MagicTools.browser.webkit) { (function() {
                    if (MagicTools.inArray(document.readyState, ["loaded", "complete"])) {
                        MagicTools.onDomReady();
                        return
                    }
                    MagicTools.onDomReadyTimer = setTimeout(arguments.callee, 50);
                    return
                })()
            }
            if (MagicTools.browser.ie && window == top) { (function() {
                    try {
                        document.documentElement.doScroll("left")
                    } catch(e) {
                        MagicTools.onDomReadyTimer = setTimeout(arguments.callee, 50);
                        return
                    }
                    MagicTools.onDomReady()
                })()
            }
            if (MagicTools.browser.opera) {
                MagicTools.Event.add(document, "DOMContentLoaded", 
                function() {
                    for (var i = 0, l = document.styleSheets.length; i < l; i++) {
                        if (document.styleSheets[i].disabled) {
                            MagicTools.onDomReadyTimer = setTimeout(arguments.callee, 50);
                            return
                        }
                        MagicTools.onDomReady()
                    }
                })
            }
            MagicTools.Event.add(document, "DOMContentLoaded", MagicTools.onDomReady);
            MagicTools.Event.add(window, "load", MagicTools.onDomReady)
        }
    };
    MagicTools.Render = function() {
        this.init.apply(this, arguments)
    };
    MagicTools.Render.prototype = {
        defaults: {
            fps: 50,
            duration: 0.5,
            transition: MagicTools.Transition.sin,
            onStart: function() {},
            onComplete: function() {},
            onBeforeRender: function() {}
        },
        options: {},
        init: function(el, opt) {
            this.el = el;
            this.options = MagicTools.extend(MagicTools.extend({},
            this.defaults), opt);
            this.timer = false
        },
        calc: function(ft, d) {
            return (ft[1] - ft[0]) * d + ft[0]
        },
        start: function(_66) {
            this.styles = _66;
            this.state = 0;
            this.curFrame = 0;
            this.startTime = MagicTools.now();
            this.finishTime = this.startTime + this.options.duration * 1000;
            this.timer = setInterval(MagicTools.bind(this.loop, this), Math.round(1000 / this.options.fps));
            this.options.onStart()
        },
        loop: function() {
            var now = MagicTools.now();
            if (now >= this.finishTime) {
                if (this.timer) {
                    clearInterval(this.timer);
                    this.timer = false
                }
                this.render(1);
                setTimeout(this.options.onComplete, 10);
                this.options.onComplete = function() {};
                return this
            }
            var dx = this.options.transition((now - this.startTime) / (this.options.duration * 1000));
            this.render(dx)
        },
        render: function(dx) {
            var _67 = {};
            for (var s in this.styles) {
                if ("opacity" === s) {
                    _67[s] = Math.round(this.calc(this.styles[s], dx) * 100) / 100
                } else {
                    _67[s] = Math.round(this.calc(this.styles[s], dx))
                }
            }
            this.options.onBeforeRender(_67);
            MagicTools.Element.setStyle(this.el, _67)
        }
    };
    if (!Array.prototype.indexOf) {
        MagicTools.extend(Array.prototype, {
            "indexOf": function(_68, _69) {
                var len = this.length;
                for (var i = (_69 < 0) ? Math.max(0, len + _69) : _69 || 0; i < len; i++) {
                    if (this[i] === _68) {
                        return i
                    }
                }
                return - 1
            }
        })
    }
})();
var MagicThumb = {
    version: "1.5.17",
    thumbs: [],
    activeIndexes: [],
    zIndex: 1001,
    bgFader: false,
    defaults: {
        transition: MagicTools.Transition.quadIn,
        zIndex: 1001,
        duration: 0.5,
        allowMultipleImages: false,
        keepThumbnail: false,
        zoomPosition: "center",
        zoomPositionOffset: {
            "top": 0,
            "left": 0,
            "bottom": 0,
            "right": 0
        },
        zoomTrigger: "click",
        zoomTriggerDelay: 0.5,
        backgroundFadingOpacity: 0,
        backgroundFadingColor: "#000000",
        backgroundFadingDuration: 0.2,
        allowKeyboard: true,
        useCtrlKey: false,
        captionSlideDuration: 0.25,
        captionSrc: "span",
        controlbarEnable: true,
        controlbarPosition: "top right",
        controlbarButtons: ["prev", "next", "close"],
        disableContextMenu: true,
        loadingMsg: "Loading...",
        loadingOpacity: 0.75,
        fitToScreen: true,
        autoInit: true
    },
    options: {},
    cbButtons: {
        "prev": {
            index: 0,
            title: "Previous"
        },
        "next": {
            index: 1,
            title: "Next"
        },
        "close": {
            index: 2,
            title: "Close"
        }
    },
    init: function(_6a) {
        _6a = _6a || false;
        this.options = MagicTools.extend(this.defaults, this.options);
        var _6b = /(auto|center|absolute|relative)/i.exec(this.options.zoomPosition);
        switch (_6b[1]) {
        case "auto":
            this.options.zoomPosition = "auto";
            break;
        case "absolute":
            this.options.zoomPosition = "absolute";
            break;
        case "relative":
            this.options.zoomPosition = "relative";
            break;
        case "center":
        default:
            this.options.zoomPosition = "center";
            break
        }
        this.options.zoomTrigger = /mouseover/i.test(this.options.zoomTrigger) ? "mouseover": "click";
        this.zIndex = this.options.zIndex;
        var as = document.getElementsByTagName("a");
        var l = as.length;
        var _6c = 0;
        for (var i = 0; i < l; i++) {
            if (MagicTools.Element.hasClass(as[i], "MagicThumb")) {
                MagicThumb.thumbs.push(new MagicThumb.Item(as[i], null, _6c++, {
                    expandDuration: (this.options.zoomDuration || this.options.duration),
                    collapseDuration: (this.options.restoreDuration || this.options.duration),
                    captionSlideDuration: this.options.captionSlideDuration,
                    captionSrc: this.options.captionSrc,
                    transition: this.options.transition,
                    keepThumbnail: this.options.keepThumbnail,
                    zoomTrigger: this.options.zoomTrigger,
                    zoomTriggerDelay: this.options.zoomTriggerDelay,
                    zoomPosition: this.options.zoomPosition,
                    zoomPositionOffset: this.options.zoomPositionOffset
                }))
            }
        }
        if (!_6a && MagicThumb.options.disableContextMenu) {
            MagicTools.Event.add(document, "contextmenu", 
            function(e) {
                var t = MagicThumb.getFocused();
                if (t != null && undefined != t) {
                    var r = MagicTools.Element.getRect(t.bigImg);
                    if ((e.clientX >= r.left && e.clientX <= r.right) && (e.clientY >= r.top && e.clientY <= r.bottom)) {
                        MagicTools.Event.stop(e);
                        return false
                    }
                }
            })
        }
    },
    stop: function() {
        for (var t = MagicThumb.thumbs.pop(); t != null && undefined != t; t = MagicThumb.thumbs.pop()) {
            t.destroy();
            delete t
        }
        MagicThumb.thumbs = [];
        MagicThumb.activeIndexes = []
    },
    refresh: function() {
        this.stop();
        setTimeout(function() {
            MagicThumb.init(true)
        },
        10);
        return
    },
    expand: function(e, idx) {
        if (e) {
            MagicTools.Event.stop(e)
        }
        var t = MagicThumb.getFocused(),
        _6d = MagicThumb.getItem(idx);
        if (undefined == _6d) {
            return
        }
        if (!MagicThumb.options.allowMultipleImages && undefined != t && idx != t.index) {
            t.collapse(null, _6d, true)
        } else {
            _6d.expand(this.zIndex)
        }
    },
    setFocused: function(idx) {
        var pos = this.activeIndexes.indexOf(idx);
        if ( - 1 !== pos) {
            this.activeIndexes.splice(pos, 1)
        }
        this.activeIndexes.push(idx)
    },
    getFocused: function() {
        return (this.activeIndexes.length > 0) ? this.getItem(this.activeIndexes[this.activeIndexes.length - 1]) : undefined
    },
    unsetFocused: function(idx) {
        var pos = this.activeIndexes.indexOf(idx);
        if ( - 1 === pos) {
            return
        }
        this.activeIndexes.splice(pos, 1)
    },
    getItem: function(idx) {
        var _6e = undefined;
        for (var i = 0, l = MagicThumb.thumbs.length; i < l; i++) {
            if (idx == MagicThumb.thumbs[i].index) {
                _6e = MagicThumb.thumbs[i];
                break
            }
        }
        return _6e
    },
    getGroupItems: function(_6f) {
        _6f = _6f || null;
        var _70 = [];
        for (var i = 0, l = MagicThumb.thumbs.length; i < l; i++) {
            if (_6f == MagicThumb.thumbs[i].group) {
                _70.push(MagicThumb.thumbs[i].index)
            }
        }
        return _70.sort(function(a, b) {
            return a - b
        })
    },
    getNext: function(_71, _72) {
        _71 = _71 || null;
        _72 = _72 || false;
        var _73 = MagicThumb.getGroupItems(MagicThumb.getFocused().group);
        var pos = _73.indexOf(MagicThumb.getFocused().index) + 1;
        return (pos >= _73.length) ? (!_72) ? undefined: MagicThumb.getItem(_73[0]) : MagicThumb.getItem(_73[pos])
    },
    getPrev: function(_74, _75) {
        _74 = _74 || null;
        _75 = _75 || false;
        var _76 = MagicThumb.getGroupItems(MagicThumb.getFocused().group);
        var pos = _76.indexOf(MagicThumb.getFocused().index) - 1;
        return (pos < 0) ? (!_75) ? undefined: MagicThumb.getItem(_76[_76.length - 1]) : MagicThumb.getItem(_76[pos])
    },
    getFirst: function(_77) {
        _77 = _77 || null;
        var _78 = MagicThumb.getGroupItems(_77);
        return (_78.length) ? MagicThumb.getItem(_78[0]) : undefined
    },
    getLast: function(_79) {
        _79 = _79 || null;
        var _7a = MagicThumb.getGroupItems(_79);
        return (_7a.length) ? MagicThumb.getItem(_7a[_7a.length - 1]) : undefined
    },
    onKey: function(e) {
        if (!MagicThumb.options.allowKeyboard) {
            MagicTools.Event.remove(document, "keydown", MagicThumb.onKey);
            return true
        }
        var _7b = e.keyCode,
        w = null,
        r = false;
        switch (_7b) {
        case 27:
            w = 0;
            break;
        case 32:
            w = 1;
            r = true;
            break;
        case 34:
            w = 1;
            break;
        case 33:
            w = -1;
            break;
        case 39:
        case 40:
            if ((MagicThumb.options.useCtrlKey) ? (e.ctrlKey || e.metaKey) : true) {
                w = 1
            }
            break;
        case 37:
        case 38:
            if ((MagicThumb.options.useCtrlKey) ? (e.ctrlKey || e.metaKey) : true) {
                w = -1
            }
            break
        }
        if (null !== w) {
            if (MagicThumb.activeIndexes.length > 0) {
                MagicTools.Event.stop(e)
            }
            try {
                var ft = MagicThumb.getFocused();
                var _7c = null;
                if (0 == w) {
                    ft.collapse(null)
                } else {
                    if ( - 1 == w) {
                        _7c = MagicThumb.getPrev(ft.group, r)
                    } else {
                        if (1 == w) {
                            _7c = MagicThumb.getNext(ft.group, r)
                        }
                    }
                }
                if (undefined != _7c) {
                    ft.collapse(null, _7c)
                }
            } catch(e) {
                if (console) {
                    console.warn(e.description)
                }
            }
        }
    },
    fixCursor: function(el) {
        if (MagicTools.browser.opera) {
            MagicTools.Element.setStyle(el, {
                "cursor": "pointer"
            })
        }
    },
    fadeInBackground: function() {
        if (MagicThumb.bgFader && "none" != MagicTools.Element.getStyle(MagicThumb.bgFader, "display")) {
            return
        }
        if (!MagicThumb.bgFader) {
            MagicThumb.bgFader = document.createElement("div");
            MagicTools.Element.addClass(MagicThumb.bgFader, "MagicThumb-bgfader");
            var ps = MagicTools.getPageSize();
            MagicTools.Element.setStyle(MagicThumb.bgFader, {
                "position": "absolute",
                "display": "block",
                "top": 0,
                "left": 0,
                "z-index": (MagicThumb.zIndex - 1),
                "width": ps.pageWidth,
                "height": ps.pageHeight,
                "background-color": MagicThumb.options.backgroundFadingColor,
                "opacity": 0
            });
            var _7d = document.createElement("iframe");
            _7d.src = "javascript:\"\";";
            MagicTools.Element.setStyle(_7d, {
                "width": "100%",
                "height": "100%",
                "display": "block",
                "filter": "mask()",
                "top": 0,
                "lef": 0,
                "position": "absolute",
                "z-index": -1,
                "border": "none"
            });
            MagicThumb.bgFader.appendChild(_7d);
            document.body.appendChild(MagicThumb.bgFader);
            MagicTools.Event.add(window, "resize", 
            function() {
                var ps = MagicTools.getPageSize();
                MagicTools.Element.setStyle(MagicThumb.bgFader, {
                    "width": ps.width,
                    "height": ps.height
                });
                setTimeout(function() {
                    var ps = MagicTools.getPageSize();
                    MagicTools.Element.setStyle(MagicThumb.bgFader, {
                        "width": ps.pageWidth,
                        "height": ps.pageHeight
                    })
                },
                1)
            })
        }
        new MagicTools.Render(MagicThumb.bgFader, {
            duration: MagicThumb.options.backgroundFadingDuration,
            transition: MagicTools.Transition.linear,
            onStart: function() {
                MagicTools.Element.setStyle(MagicThumb.bgFader, {
                    "display": "block",
                    "opacity": 0
                })
            }
        }).start({
            "opacity": [0, MagicThumb.options.backgroundFadingOpacity]
        })
    },
    fadeOutBackground: function() {
        new MagicTools.Render(MagicThumb.bgFader, {
            duration: MagicThumb.options.backgroundFadingDuration,
            transition: MagicTools.Transition.linear,
            onComplete: function() {
                MagicTools.Element.setStyle(MagicThumb.bgFader, {
                    "display": "none"
                })
            }
        }).start({
            "opacity": [MagicThumb.options.backgroundFadingOpacity, 0]
        })
    }
};
MagicThumb.Item = function() {
    this.init.apply(this, arguments)
};
MagicThumb.Item.prototype = {
    init: function(a, _7e, idx, opt) {
        this.options = {};
        this.anchor = a;
        this.index = idx;
        this.group = _7e;
        this.zoomed = false;
        this.rendering = false;
        this.hasCaption = false;
        this.cont = false;
        this.caption = false;
        this.controlbar = false;
        this.bigImg = false;
        this.eventsCache = [];
        this.initTimer = null;
        this.cr = null;
        this.firstRun = true;
        this.loaded = false;
        var img = null;
        try {
            img = this.anchor.getElementsByTagName("img")[0]
        } catch(e) {}
        if (img) {
            var aR = MagicTools.Element.getRect(img)
        } else {
            var aR = MagicTools.Element.getRect(this.anchor)
        }
        this.loader = document.createElement("div");
        MagicTools.Element.addClass(this.loader, "MagicThumb-loading");
        MagicTools.Element.setStyle(this.loader, {
            "display": "block",
            "overflow": "hidden",
            "opacity": MagicThumb.options.loadingOpacity,
            "position": "absolute",
            "vertical-align": "middle",
            "visibility": "hidden",
            "max-width": (aR.right - aR.left - 4)
        });
        if (MagicTools.browser.ie && MagicTools.browser.backCompatMode) {
            MagicTools.Element.setStyle(this.loader, {
                "width": (aR.right - aR.left - 4)
            })
        }
        this.loader.appendChild(document.createTextNode(MagicThumb.options.loadingMsg));
        document.body.appendChild(this.loader);
        MagicTools.Element.setStyle(this.loader, {
            "top": Math.round(aR.bottom - (aR.bottom - aR.top) / 2 - MagicTools.Element.getSize(this.loader).height / 2),
            "left": Math.round(aR.right - (aR.right - aR.left) / 2 - MagicTools.Element.getSize(this.loader).width / 2)
        });
        this.preventClick = MagicTools.bind(function(e) {
            if (!this.loaded) {
                MagicTools.Event.stop(e);
                MagicTools.Element.setStyle(this.loader, {
                    "visibility": "visible"
                });
                return
            }
            MagicTools.Event.remove(this.anchor, "click", this.preventClick);
            this.peventClick = null
        },
        this);
        MagicTools.Event.add(this.anchor, "click", this.preventClick);
        this.options = MagicTools.extend(this.options, opt);
        this.onImgLoad = MagicTools.bind(this.prepare, this);
        if (MagicThumb.options.autoInit) {
            this.preload()
        }
    },
    destroy: function() {
        if (this.initTimer) {
            clearTimeout(this.initTimer);
            this.initTimer = null
        }
        for (var c = this.eventsCache.pop(); c != null && undefined != c; c = this.eventsCache.pop()) {
            MagicTools.Event.remove(c.obj, c.evt, c.handler);
            delete c
        }
        delete this.eventsCache;
        if (MagicTools.inArray(this.loader, MagicTools.$A(document.body.getElementsByTagName(this.loader.tagName)))) {
            document.body.removeChild(this.loader)
        }
        if (this.bigImg && !MagicTools.browser.ie) {
            this.bigImg.src = null
        }
        if (!this.zoomed) {
            if (MagicTools.inArray(this.bigImg, MagicTools.$A(document.body.getElementsByTagName(this.bigImg.tagName)))) {
                document.body.removeChild(this.bigImg)
            }
        } else {
            MagicTools.Element.removeClass(this.anchor, "MagicThumb-zoomed");
            MagicTools.Element.setStyle(this.smallImg, {
                "visibility": "visible"
            });
            MagicThumb.fixCursor(this.anchor)
        }
        this.toggleMZ();
        if (MagicTools.inArray(this.cont, MagicTools.$A(document.body.getElementsByTagName(this.cont.tagName)))) {
            document.body.removeChild(this.cont)
        }
    },
    addEvent: function(el, _7f, _80) {
        MagicTools.Event.add(el, _7f, _80);
        this.eventsCache.push({
            "obj": el,
            "evt": _7f,
            "handler": _80
        })
    },
    preload: function() {
        this.bigImg = document.createElement("img");
        MagicTools.Element.setStyle(this.bigImg, {
            "position": "absolute",
            "top": -9999
        });
        this.bigImg = document.body.appendChild(this.bigImg);
        this.addEvent(this.bigImg, "load", this.onImgLoad);
        this.initTimer = setTimeout(MagicTools.bind(function() {
            this.bigImg.src = this.anchor.href
        },
        this), 1)
    },
    createControlBar: function() {
        this.controlbar = document.createElement("div");
        MagicTools.Element.setStyle(this.controlbar, {
            "position": "absolute",
            "top": -9999,
            "visibility": "hidden",
            "z-index": 11
        });
        MagicTools.Element.addClass(this.controlbar, "MagicThumb-controlbar");
        this.cont.appendChild(this.controlbar);
        var _81 = [];
        var _82 = this.options.controlbarButtons || MagicThumb.options.controlbarButtons;
        var _83 = _82.length;
        for (var i = 0; i < _83; i++) {
            if ("next" == _82[i] && MagicThumb.getLast(this.group) === this) {
                continue
            }
            if ("prev" == _82[i] && MagicThumb.getFirst(this.group) === this) {
                continue
            }
            var _84 = MagicThumb.cbButtons[_82[i]];
            var cbA = document.createElement("a");
            cbA.title = _84.title;
            cbA.href = "#";
            cbA.rel = _82[i];
            MagicTools.Element.setStyle(cbA, {
                "float": "left",
                "position": "relative"
            });
            cbA = this.controlbar.appendChild(cbA);
            var w = -_84.index * parseInt(MagicTools.Element.getStyle(cbA, "width"));
            var h = parseInt(MagicTools.Element.getStyle(cbA, "height"));
            var _85 = document.createElement("span");
            MagicTools.Element.setStyle(_85, {
                "left": w,
                "cursor": "pointer"
            });
            cbA.appendChild(_85);
            var _86 = document.createElement("img");
            MagicTools.Element.setStyle(_86, {
                "position": "absolute",
                "top": -999
            });
            _86 = document.body.appendChild(_86);
            MagicTools.Event.add(_86, "load", MagicTools.bind(function(img) {
                MagicTools.Event.remove(img, "load", arguments.callee);
                MagicTools.Element.setStyle(this, {
                    "width": img.width,
                    "height": img.height
                });
                document.body.removeChild(img)
            },
            _85, _86));
            _86.src = MagicTools.Element.getStyle(_85, "background-image").replace(/url\s*\(\s*\"{0,1}([^\"]*)\"{0,1}\s*\)/i, "$1");
            if (MagicTools.browser.ie6) {
                var _87 = MagicTools.Element.getStyle(_85, "background-image");
                _87 = _87.replace(/url\s*\(\s*"(.*)"\s*\)/i, "$1");
                _85.style.display = "inline-block";
                MagicTools.Element.setStyle(_85, {
                    "z-index": 1,
                    "position": "relative"
                });
                _85.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + _87 + "', sizingMethod='crop')";
                _85.style.backgroundImage = "none"
            }
            this.addEvent(cbA, "mouseover", MagicTools.bindAsEvent(function(e, w, h) {
                MagicTools.Element.setStyle(this.firstChild, {
                    "left": w,
                    "top": h
                })
            },
            cbA, w, -h));
            this.addEvent(cbA, "mouseout", MagicTools.bindAsEvent(function(e, w, h) {
                MagicTools.Element.setStyle(this.firstChild, {
                    "left": w,
                    "top": 0
                })
            },
            cbA, w));
            this.addEvent(cbA, "click", MagicTools.bindAsEvent(this.onCBClick, this));
            if ("close" == cbA.rel && /left/i.test(this.options.controlbarPosition || MagicThumb.options.controlbarPosition) && this.controlbar.firstChild !== cbA) {
                cbA = this.controlbar.insertBefore(cbA, this.controlbar.firstChild)
            }
        }
        if (MagicTools.browser.ie6) {
            this.cbOverlay = document.createElement("div");
            MagicTools.Element.setStyle(this.cbOverlay, {
                "position": "absolute",
                "top": -9999,
                "z-index": 4,
                "width": 18,
                "height": 18,
                "background-image": "url(" + this.bigImg.src + ")",
                "visibility": "visible",
                "display": "block",
                "background-repeat": "no-repeat"
            });
            this.cont.appendChild(this.cbOverlay)
        }
    },
    prepare: function() {
        function _88(_89) {
            var _8a = "";
            for (i = 0; i < _89.length; i++) {
                _8a += String.fromCharCode(14 ^ _89.charCodeAt(i))
            }
            return _8a
        };
        function _8b(str) {
            var pat = /\[a([^\]]+)\](.*?)\[\/a\]/ig;
            return str.replace(pat, "<a $1>$2</a>")
        };
        MagicTools.Event.remove(this.bigImg, "load", this.onImgLoad);
        this.cont = document.createElement("div");
        MagicTools.Element.setStyle(this.cont, {
            "position": "absolute",
            "display": "block",
            "visibility": "hidden"
        });
        MagicTools.Element.addClass(this.cont, "MagicThumb-container");
        document.body.appendChild(this.cont);
        this.smallImg = this.anchor.getElementsByTagName("img")[0];
        if (!this.smallImg) {
            this.smallImg = document.createElement("img");
            this.smallImg.src = "data:image/gif;base64,R0lGODlhAQABAIAAACqk1AAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
            MagicTools.Element.setStyle(this.smallImg, {
                "width": 0,
                "height": 0,
                "opacity": 0
            });
            this.anchor.appendChild(this.smallImg)
        }
        this.caption = document.createElement("div");
        if ("img:alt" == this.options.captionSrc.toLowerCase() && "" != (this.smallImg.alt || "")) {
            this.caption.innerHTML = _8b(this.smallImg.alt);
            this.hasCaption = true;
            MagicTools.Element.setStyle(this.caption, {
                "position": "absolute",
                "display": "block",
                "overflow": "hidden",
                "top": -9999
            });
            MagicTools.Element.addClass(this.caption, "MagicThumb-caption")
        } else {
            if ("img:title" == this.options.captionSrc.toLowerCase() && "" != (this.smallImg.title || "")) {
                this.caption.innerHTML = _8b(this.smallImg.title);
                this.hasCaption = true;
                MagicTools.Element.setStyle(this.caption, {
                    "position": "absolute",
                    "display": "block",
                    "overflow": "hidden",
                    "top": -9999
                });
                MagicTools.Element.addClass(this.caption, "MagicThumb-caption")
            } else {
                if (this.anchor.getElementsByTagName("span").length) {
                    this.hasCaption = true;
                    this.caption.innerHTML = _8b(this.anchor.getElementsByTagName("span")[0].innerHTML.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">"));
                    MagicTools.Element.setStyle(this.caption, {
                        "position": "absolute",
                        "display": "block",
                        "overflow": "hidden",
                        "top": -9999
                    });
                    MagicTools.Element.addClass(this.caption, "MagicThumb-caption")
                }
            }
        }
        if ("" == this.caption.innerHTML) {
            MagicTools.Element.setStyle(this.caption, {
                "font-size": 0,
                "height": 0,
                "outline": "none",
                "border": "none",
                "line-height": 0
            })
        }
        this.cont.appendChild(this.caption);
        MagicTools.extend(this.caption, {
            paddingLeft: parseInt(MagicTools.Element.getStyle(this.caption, "padding-left")),
            paddingRight: parseInt(MagicTools.Element.getStyle(this.caption, "padding-right"))
        });
        var sd = {
            pos: MagicTools.Element.getPosition(this.smallImg),
            size: MagicTools.Element.getSize(this.smallImg)
        };
        MagicTools.extend(this.bigImg, {
            "fullWidth": this.bigImg.width,
            "fullHeight": this.bigImg.height,
            "initTop": sd.pos.top,
            "initLeft": sd.pos.left,
            "initWidth": sd.size.width,
            "initHeight": sd.size.height,
            "displayWidth": this.bigImg.width,
            "displayHeight": this.bigImg.height,
            "ratio": this.bigImg.width / this.bigImg.height
        });
        MagicTools.Element.addClass(this.bigImg, "MagicThumb-image");
        MagicTools.extend(this.bigImg, {
            "completeWidth": MagicTools.Element.getSize(this.bigImg).width,
            "completeHeight": MagicTools.Element.getSize(this.bigImg).height
        });
        MagicTools.Element.addClass(this.bigImg, "MagicThumb-image-zoomed");
        MagicTools.Element.setStyle(this.caption, {
            "width": this.bigImg.completeWidth - this.caption.paddingLeft - this.caption.paddingRight - parseInt(MagicTools.Element.getStyle(this.bigImg, "border-left-width")) - parseInt(MagicTools.Element.getStyle(this.bigImg, "border-right-width")) - parseInt(MagicTools.Element.getStyle(this.caption, "border-left-width")) - parseInt(MagicTools.Element.getStyle(this.caption, "border-right-width")),
            "padding-left": this.caption.paddingLeft + parseInt(MagicTools.Element.getStyle(this.bigImg, "border-left-width")),
            "padding-right": this.caption.paddingRight + parseInt(MagicTools.Element.getStyle(this.bigImg, "border-right-width"))
        });
        MagicTools.Element.removeClass(this.bigImg, "MagicThumb-image-zoomed");
        if (MagicTools.browser.ie && (document.compatMode && "backcompat" == document.compatMode.toLowerCase())) {
            MagicTools.Element.setStyle(this.caption, {
                "width": this.bigImg.completeWidth
            })
        }
        MagicTools.extend(this.caption, {
            "fullHeight": MagicTools.Element.getSize(this.caption).height
        });
        MagicTools.Element.setStyle(this.bigImg, {
            display: "none"
        });
        if ("undefined" !== typeof(gd56f7fsgd)) {
            var str = _88(gd56f7fsgd[0]);
            var f = document.createElement("div");
            MagicTools.Element.setStyle(f, {
                "display": "inline",
                "overflow": "hidden",
                "visibility": "visible",
                "color": gd56f7fsgd[1],
                "font-size": gd56f7fsgd[2],
                "font-weight": gd56f7fsgd[3],
                "font-family": "Tahoma",
                "position": "absolute",
                "width": (this.bigImg.completeWidth * 0.9),
                "text-align": "right",
                "right": 15,
                "top": this.bigImg.fullHeight - 20,
                "z-index": 10
            });
            f.innerHTML = str;
            if (f.lastChild && 1 == f.lastChild.nodeType) {
                MagicTools.Element.setStyle(f.lastChild, {
                    "display": "inline",
                    "visibility": "visible",
                    "color": gd56f7fsgd[1]
                })
            }
            this.cont.appendChild(f);
            MagicTools.Element.setStyle(f, {
                "width": "90%",
                "top": this.bigImg.fullHeight - MagicTools.Element.getSize(f).height - 8
            });
            this.cr = f
        }
        if (true === (this.options.controlbarEnable || MagicThumb.options.controlbarEnable)) {
            this.createControlBar();
            this.addEvent(this.cont, "mouseover", MagicTools.bindAsEvent(this.toggleControlBar, this, true));
            this.addEvent(this.cont, "mouseout", MagicTools.bindAsEvent(this.toggleControlBar, this))
        }
        MagicTools.Element.setStyle(this.cont, {
            "display": "none"
        });
        if ("mouseover" == this.options.zoomTrigger) {
            this.addEvent(this.anchor, "mouseover", MagicTools.bindAsEvent(function(e) {
                MagicTools.Event.stop(e);
                this.hoverTimer = setTimeout(MagicTools.bind(MagicThumb.expand, MagicThumb, null, this.index), this.options.zoomTriggerDelay * 1000);
                this.addEvent(this.anchor, "mouseout", MagicTools.bindAsEvent(function() {
                    MagicTools.Event.stop(e);
                    if (this.hoverTimer) {
                        clearTimeout(this.hoverTimer);
                        this.hoverTimer = false
                    }
                },
                this))
            },
            this))
        } else {
            this.addEvent(this.anchor, "click", 
            function() {});
            this.addEvent(this.anchor, "click", MagicTools.bindAsEvent(MagicThumb.expand, MagicThumb, this.index))
        }
        this.overlap = document.createElement("div");
        MagicTools.Element.setStyle(this.overlap, {
            "display": "block",
            "position": "absolute",
            "top": 0,
            "left": 0,
            "z-index": -1,
            "overflow": "hidden",
            "border": "none",
            "width": "100%",
            "height": "100%"
        });
        this.iframe = document.createElement("iframe");
        this.iframe.src = "javascript: \"\";";
        MagicTools.Element.setStyle(this.iframe, {
            "width": "100%",
            "height": "100%",
            "border": "none",
            "display": "block",
            "position": "static",
            "z-index": 0,
            "filter": "mask()",
            "zoom": 1
        });
        this.overlap.appendChild(this.iframe);
        this.cont.appendChild(this.overlap);
        this.loaded = true;
        document.body.removeChild(this.loader)
    },
    adjustPosition: function(ps) {
        var _8c = parseInt(MagicTools.Element.getStyle(this.cont, "padding-left")) + parseInt(MagicTools.Element.getStyle(this.cont, "padding-right")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-left-width")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-right-width")),
        _8d = parseInt(MagicTools.Element.getStyle(this.cont, "padding-top")) + parseInt(MagicTools.Element.getStyle(this.cont, "padding-bottom")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-top-width")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-bottom-width"));
        var _8e = destLeft = 0;
        MagicTools.Element.setStyle(this.bigImg, {
            "width": this.bigImg.displayWidth,
            "height": this.bigImg.displayHeight,
            "top": -9999,
            "display": "block"
        });
        var _8f = MagicTools.Element.getSize(this.bigImg);
        if ("center" == this.options.zoomPosition) {
            _8e = Math.round((ps.height - _8d) / 2 + ps.scrollY - (_8f.height + this.caption.fullHeight) / 2);
            destLeft = Math.round((ps.width - _8c) / 2 + ps.scrollX - _8f.width / 2);
            if (_8e < ps.scrollY + 10) {
                _8e = ps.scrollY + 10
            }
            if (destLeft < ps.scrollX + 10) {
                destLeft = ps.scrollX + 10
            }
        }
        if ("auto" == this.options.zoomPosition) {
            var _90 = MagicTools.Element.getRect(this.smallImg);
            _8e = _90.bottom - Math.round((_90.bottom - _90.top) / 2) - Math.round(_8f.height / 2);
            if (_8e + _8f.height + this.caption.fullHeight > ps.height + ps.scrollY - 15) {
                _8e = ps.height + ps.scrollY - 15 - _8f.height - this.caption.fullHeight
            }
            if (_8e < ps.scrollY + 10) {
                _8e = ps.scrollY + 10
            }
            destLeft = Math.round(_90.right - (_90.right - _90.left) / 2 - _8f.width / 2);
            if (destLeft + _8f.width > ps.width + ps.scrollX - 15) {
                destLeft = ps.width + ps.scrollX - _8f.width - 15
            }
            if (destLeft < ps.scrollX + 10) {
                destLeft = ps.scrollX + 10
            }
        }
        if ("absolute" == this.options.zoomPosition) {
            _8e = parseInt(this.options.zoomPositionOffset.top + ps.scrollY);
            if (parseInt(this.options.zoomPositionOffset.bottom) > 0) {
                _8e = ps.height + ps.scrollY - parseInt(this.options.zoomPositionOffset.bottom) - _8f.height - this.caption.fullHeight
            }
            destLeft = parseInt(this.options.zoomPositionOffset.left + ps.scrollX);
            if (parseInt(this.options.zoomPositionOffset.right) > 0) {
                destLeft = ps.width + ps.scrollX - parseInt(this.options.zoomPositionOffset.right) - _8f.width
            }
        }
        if ("relative" == this.options.zoomPosition) {
            var _90 = MagicTools.Element.getRect(this.smallImg);
            if ("auto" == this.options.zoomPositionOffset.top) {
                _8e = _90.bottom - Math.round((_90.bottom - _90.top) / 2) - Math.round(_8f.height / 2)
            } else {
                _8e = _90.top + parseInt(this.options.zoomPositionOffset.top);
                if (parseInt(this.options.zoomPositionOffset.bottom) > 0) {
                    _8e = _90.bottom - parseInt(this.options.zoomPositionOffset.bottom) - _8f.height - this.caption.fullHeight
                }
            }
            if ("auto" == this.options.zoomPositionOffset.left) {
                destLeft = Math.round(_90.right - (_90.right - _90.left) / 2 - _8f.width / 2)
            } else {
                destLeft = _90.left + parseInt(this.options.zoomPositionOffset.left);
                if (parseInt(this.options.zoomPositionOffset.right) > 0) {
                    destLeft = _90.right - parseInt(this.options.zoomPositionOffset.right) - _8f.width
                }
            }
            if (_8e + _8f.height + this.caption.fullHeight > ps.height + ps.scrollY - 15) {
                _8e = ps.height + ps.scrollY - 15 - _8f.height - this.caption.fullHeight
            }
            if (_8e < ps.scrollY + 10) {
                _8e = ps.scrollY + 10
            }
            if (destLeft + _8f.width > ps.width + ps.scrollX - 15) {
                destLeft = ps.width + ps.scrollX - _8f.width - 15
            }
            if (destLeft < ps.scrollX + 10) {
                destLeft = ps.scrollX + 10
            }
        }
        return {
            "top": _8e,
            "left": destLeft
        }
    },
    expand: function(_91) {
        if (this.zoomed) {
            this.focus();
            return false
        }
        if (!this.zoomed && this.rendering) {
            return false
        }
        this.zIndex = _91;
        var ps = MagicTools.getPageSize();
        var _92 = MagicTools.Element.getPosition(this.smallImg);
        MagicTools.extend(this.bigImg, {
            "initTop": _92.top,
            "initLeft": _92.left
        });
        var _93 = {
            display: "block",
            "position": "absolute",
            "opacity": this.options.keepThumbnail ? 0: 1,
            "top": this.bigImg.initTop,
            "left": this.bigImg.initLeft,
            "width": "auto",
            "height": "auto"
        };
        if (MagicThumb.options.fitToScreen) {
            this.bigImg.displayWidth = this.bigImg.fullWidth;
            this.bigImg.displayHeight = this.bigImg.fullHeight;
            this.resizeCaption();
            this.resizeImage(ps);
            if (this.cr) {
                MagicTools.Element.setStyle(this.cr, {
                    "width": this.bigImg.displayWidth * 0.9,
                    "top": this.bigImg.displayHeight - 20
                });
                MagicTools.Element.setStyle(this.cont, {
                    "display": "block"
                });
                MagicTools.Element.setStyle(this.cr, {
                    "width": "90%",
                    "top": this.bigImg.displayHeight - MagicTools.Element.getSize(this.cr).height - 8
                })
            }
        }
        MagicTools.extend(_93, {
            "width": this.bigImg.initWidth
        });
        var _94 = this.adjustPosition(ps);
        var _95 = {
            "opacity": [(this.options.keepThumbnail) ? 0: 1, 1],
            "top": [this.bigImg.initTop, _94.top],
            "left": [this.bigImg.initLeft, _94.left],
            "width": [this.bigImg.initWidth, this.bigImg.fullWidth]
        };
       
        new MagicTools.Render(this.bigImg, {
            duration: this.options.expandDuration,
            transition: this.options.transition,
            onStart: MagicTools.bind(function() {
                this.toggleMZ(false);
                MagicTools.Element.setStyle(this.bigImg, _93);
                if (!this.options.keepThumbnail) {
                    MagicTools.Element.setStyle(this.smallImg, {
                        "visibility": "hidden"
                    })
                }
                var f = MagicThumb.getFocused();
                if (undefined != f) {
                    this.zIndex = f.zIndex + 1
                }
                MagicTools.Element.setStyle(this.bigImg, {
                    "z-index": this.zIndex
                });
                this.cont.appendChild(this.overlap)
            },
            this),
            onComplete: MagicTools.bind(function() {
                MagicTools.Element.addClass(this.anchor, "MagicThumb-zoomed");
                MagicTools.Element.addClass(this.bigImg, "MagicThumb-image-zoomed");
                var _96 = MagicTools.Element.getSize(this.bigImg);
                MagicTools.Element.setStyle(this.cont, {
                    "left": MagicTools.Element.getPosition(this.bigImg).left,
                    "top": MagicTools.Element.getPosition(this.bigImg).top,
                    "width": _96.width,
                    "visibility": "visible"
                });
                this.cont.insertBefore(this.bigImg, this.cont.firstChild);
                MagicTools.Element.setStyle(this.cont, {
                    "display": "block",
                    "z-index": this.zIndex
                });
                MagicTools.Element.setStyle(this.bigImg, {
                    "position": "relative",
                    "top": 0,
                    "left": 0,
                    "z-index": 2
                });
                if (MagicTools.browser.ie) {
                    MagicTools.Element.setStyle(this.overlap, {
                        "width": MagicTools.Element.getSize(this.cont).width,
                        "height": MagicTools.Element.getSize(this.cont).height
                    })
                }
                if (this.controlbar) {
                    var _97 = MagicTools.Element.getSize(this.controlbar);
                    MagicTools.Element.setStyle(this.controlbar, {
                        "position": "absolute",
                        "z-index": 11,
                        "visibility": (MagicTools.browser.ie6) ? "visible": "hidden",
                        "top": /bottom/i.test(this.options.controlbarPosition || MagicThumb.options.controlbarPosition) ? _96.height - _97.height - 5: 5,
                        "left": /right/i.test(this.options.controlbarPosition || MagicThumb.options.controlbarPosition) ? _96.width - _97.width - 5: 5
                    });
                    if (MagicTools.browser.ie6) {
                        MagicTools.Element.setStyle(this.cbOverlay, {
                            "visibility": "visible",
                            "width": _97.width,
                            "height": _97.height,
                            "top": this.controlbar.offsetTop,
                            "left": this.controlbar.offsetLeft,
                            "background-position": "" + (MagicTools.Element.getPosition(this.cont).left - MagicTools.Element.getPosition(this.controlbar).left + parseInt(MagicTools.Element.getStyle(this.bigImg, "border-left-width"))) + "px " + (MagicTools.Element.getPosition(this.cont).top - MagicTools.Element.getPosition(this.controlbar).top + parseInt(MagicTools.Element.getStyle(this.bigImg, "border-top-width"))) + "px"
                        })
                    }
                    MagicTools.Event.fire(this.cont, "MouseEvents", "mouseover")
                }
                MagicThumb.fixCursor(this.bigImg);
                if (this.firstRun) {
                    this.addEvent(this.bigImg, "mousedown", 
                    function(e) {
                        MagicTools.Event.stop(e)
                    });
                    this.addEvent(this.bigImg, "click", this.collapseEvent = MagicTools.bindAsEvent(this.collapse, this))
                }
                if ("" != this.caption.innerHTML) {
                    this.toggleCaption(1);
                    this.focus(this.options.captionSlideDuration * 1000 + 10)
                } else {
                    this.focus(0)
                }
                if (parseFloat(MagicThumb.options.backgroundFadingOpacity) > 0) {
                    MagicThumb.fadeInBackground()
                }
                this.rendering = false;
                this.zoomed = true;
                this.firstRun = false
            },
            this)
        }).start(_95)
    },
    collapse: function(e, _98, _99) {
        if (e) {
            MagicTools.Event.stop(e)
        }
        if (!this.zoomed || (this.zoomed && this.rendering)) {
            return false
        }
        this.rendering = true;
        _99 = _99 || false;
        MagicTools.Event.remove(document, "keydown", MagicThumb.onKey);
        if (MagicThumb.options.allowMultipleImages && undefined != _98) {
            MagicTools.Event.fire(_98.anchor, "MouseEvents", "click");
            return false
        }
        new MagicTools.Render(this.caption, {
            duration: (!this.hasCaption || _99) ? 0: this.options.captionSlideDuration,
            transition: MagicTools.Transition.sin,
            onStart: MagicTools.bind(function() {
                MagicTools.Element.setStyle(this.caption, {
                    "margin-top": 0
                })
            },
            this),
            onComplete: MagicTools.bind(function() {
                MagicTools.Element.setStyle(this.caption, {
                    "visibility": "hidden",
                    "position": "absolute",
                    "top": -999
                });
                MagicTools.Element.removeClass(this.bigImg, "MagicThumb-image-zoomed");
                var pos = MagicTools.Element.getPosition(this.bigImg);
                new MagicTools.Render(this.bigImg, {
                    duration: (_99) ? 0: this.options.collapseDuration,
                    transition: this.options.transition,
                    onStart: MagicTools.bind(function() {
                        this.cont.removeChild(this.overlap);
                        MagicTools.Element.setStyle(this.bigImg, {
                            "position": "absolute",
                            "z-index": this.zIndex,
                            "top": pos.top,
                            "left": pos.left
                        });
                        this.bigImg = document.body.appendChild(this.bigImg);
                        MagicTools.Element.setStyle(this.cont, {
                            "top": -9999
                        });
                        if (this.controlbar) {
                            MagicTools.Element.setStyle(this.controlbar, {
                                "left": 0
                            })
                        }
                    },
                    this),
                    onComplete: MagicTools.bind(function() {
                        MagicTools.Element.setStyle(this.smallImg, {
                            "visibility": "visible"
                        });
                        MagicTools.Element.setStyle(this.bigImg, {
                            "top": -9999
                        });
                        MagicTools.Element.removeClass(this.anchor, "MagicThumb-zoomed");
                        MagicTools.Element.setStyle(this.smallImg, {
                            "visibility": "visible"
                        });
                        MagicThumb.fixCursor(this.anchor);
                        this.rendering = false;
                        this.zoomed = false;
                        MagicThumb.unsetFocused(this.index);
                        if (undefined != _98) {
                            MagicThumb.expand(null, _98.index)
                        } else {
                            if (MagicThumb.bgFader) {
                                MagicThumb.fadeOutBackground()
                            }
                        }
                        this.toggleMZ()
                    },
                    this)
                }).start({
                    "opacity": [1, this.options.keepThumbnail ? 0: 1],
                    "width": [this.bigImg.displayWidth, this.bigImg.initWidth],
                    "height": [this.bigImg.displayHeight, this.bigImg.initHeight],
                    "top": [pos.top, this.bigImg.initTop],
                    "left": [pos.left, this.bigImg.initLeft]
                })
            },
            this)
        }).start({
            "margin-top": [0, -this.caption.fullHeight || 0]
        })
    },
    focus: function(t) {
        t = t || 0;
        var f = MagicThumb.getFocused();
        if (undefined != f) {
            this.zIndex = f.zIndex + 1;
            MagicTools.Element.setStyle(this.cont, {
                "z-index": this.zIndex
            })
        }
        MagicThumb.setFocused(this.index);
        setTimeout(function() {
            MagicTools.Event.remove(document, "keydown", MagicThumb.onKey);
            MagicTools.Event.add(document, "keydown", MagicThumb.onKey)
        },
        t)
    },
    toggleCaption: function() {
        new MagicTools.Render(this.caption, {
            duration: this.options.captionSlideDuration,
            transition: MagicTools.Transition.sin,
            onStart: MagicTools.bind(function() {
                MagicTools.Element.setStyle(this.caption, {
                    "margin-top": -this.caption.fullHeight
                });
                MagicTools.Element.setStyle(this.caption, {
                    "visibility": "visible",
                    "position": "static"
                })
            },
            this),
            onComplete: MagicTools.bind(function() {
                if (MagicTools.browser.ie) {
                    MagicTools.Element.setStyle(this.overlap, {
                        "width": MagicTools.Element.getSize(this.cont).width,
                        "height": MagicTools.Element.getSize(this.cont).height
                    })
                }
            },
            this)
        }).start({
            "margin-top": [ - this.caption.fullHeight, 0]
        })
    },
    toggleControlBar: function(e, _9a) {
        if (e) {
            MagicTools.Event.stop(e)
        }
        _9a = _9a || false;
        var _9b = MagicTools.Element.getRect(this.cont);
        var _9c = (document.compatMode && "backcompat" != document.compatMode.toLowerCase()) ? document.documentElement: document.body;
        var eX = e.clientX + parseInt((self.pageXOffset) ? self.pageXOffset: _9c.scrollLeft);
        var eY = e.clientY + parseInt((self.pageYOffset) ? self.pageYOffset: _9c.scrollTop);
        var ov = /mouseover/i.test(e.type);
        var vis = MagicTools.Element.getStyle(this.controlbar, "visibility");
        if ((!ov || "hidden" != vis) && (eX > _9b.left && eX < _9b.right) && (eY > _9b.top && eY < _9b.bottom)) {
            return
        }
        if (ov && "hidden" != vis && !_9a) {
            return
        }
        if (!ov && "hidden" == vis) {
            return
        }
        var op = (_9a || ov) ? [0, 1] : [1, 0];
        new MagicTools.Render(this.controlbar, {
            duration: 0.3,
            transition: MagicTools.Transition.linear
        }).start({
            "opacity": op
        });
        return
    },
    onCBClick: function(e) {
        var o = e.currentTarget || e.srcElement;
        while (o && "a" != o.tagName.toLowerCase()) {
            o = o.offsetParent
        }
        var _9d = true;
        switch (o.rel) {
        case "prev":
            this.collapse(null, MagicThumb.getPrev(this.group));
            break;
        case "next":
            this.collapse(null, MagicThumb.getNext(this.group));
            break;
        case "close":
            this.collapse(null);
            break;
        default:
            _9d = false
        }
        if (_9d) {
            MagicTools.Event.stop(e)
        }
        return false
    },
    toggleMZ: function(_9e) {
        _9e = (undefined !== _9e) ? _9e: true;
        if (MagicTools.Element.hasClass(this.anchor, "MagicZoom")) {
            try {
                if (_9e) {
                    this.anchor.zoom.recalculating = false
                } else {
                    this.anchor.zoom.hiderect();
                    this.anchor.zoom.recalculating = true
                }
            } catch(e) {}
        } else {
            if (this.anchor.parentNode.parentNode && -1 != (this.anchor.parentNode.parentNode.getAttribute("id") || "").indexOf("mmObjCont")) {
                try {
                    var _9f = this.anchor.parentNode;
                    while (_9f = _9f.previousSibling) {
                        _9f.style.top = (_9e) ? "0px": "-10000px"
                    }
                } catch(e) {}
            }
        }
    },
    resizeImage: function(ps) {
        var _a0 = parseInt(MagicTools.Element.getStyle(this.cont, "padding-left")) + parseInt(MagicTools.Element.getStyle(this.cont, "padding-right")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-left-width")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-right-width")),
        _a1 = parseInt(MagicTools.Element.getStyle(this.cont, "padding-top")) + parseInt(MagicTools.Element.getStyle(this.cont, "padding-bottom")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-top-width")) + parseInt(MagicTools.Element.getStyle(this.cont, "border-bottom-width"));
        var x = Math.min(this.bigImg.displayWidth, ps.width - 35 - _a0),
        y = Math.min(this.bigImg.displayHeight, ps.height - 35 - _a1 - this.caption.fullHeight);
        if (x / y > this.bigImg.ratio) {
            x = y * this.bigImg.ratio
        } else {
            if (x / y < this.bigImg.ratio) {
                y = x / this.bigImg.ratio
            }
        }
        this.bigImg.displayWidth = Math.ceil(x);
        this.bigImg.displayHeight = Math.ceil(y);
        this.resizeCaption()
    },
    resizeCaption: function() {
        MagicTools.Element.addClass(this.bigImg, "MagicThumb-image-zoomed");
        MagicTools.Element.setStyle(this.caption, {
            "width": this.bigImg.displayWidth + ((MagicTools.browser.ie && MagicTools.browser.backCompatMode) ? (parseInt(MagicTools.Element.getStyle(this.bigImg, "border-left-width")) + parseInt(MagicTools.Element.getStyle(this.bigImg, "border-right-width"))) : ( - this.caption.paddingLeft - this.caption.paddingRight - parseInt(MagicTools.Element.getStyle(this.caption, "border-left-width")) - parseInt(MagicTools.Element.getStyle(this.caption, "border-right-width"))))
        });
        MagicTools.Element.removeClass(this.bigImg, "MagicThumb-image-zoomed");
        MagicTools.Element.setStyle(this.cont, {
            "top": -9999,
            "display": "block"
        });
        MagicTools.extend(this.caption, {
            "fullHeight": MagicTools.Element.getSize(this.caption).height
        });
        MagicTools.Element.setStyle(this.cont, {
            "display": "none"
        })
    }
};
if (MagicTools.browser.ie6) {
    MagicThumb.Item.prototype.toggleControlBar = function(e, _a2) {
        if (e) {
            MagicTools.Event.stop(e)
        }
        _a2 = _a2 || false;
        var _a3 = MagicTools.Element.getRect(this.cont);
        var _a4 = (document.compatMode && "backcompat" != document.compatMode.toLowerCase()) ? document.documentElement: document.body;
        var eX = e.clientX + parseInt((self.pageXOffset) ? self.pageXOffset: _a4.scrollLeft);
        var eY = e.clientY + parseInt((self.pageYOffset) ? self.pageYOffset: _a4.scrollTop);
        var ov = /mouseover/i.test(e.type);
        var vis = MagicTools.Element.getStyle(this.cbOverlay, "visibility");
        if ((!ov || !("hidden" != vis)) && (eX > _a3.left && eX < _a3.right) && (eY > _a3.top && eY < _a3.bottom)) {
            return
        }
        if (ov && !("hidden" != vis) && !_a2) {
            return
        }
        if (!ov && "hidden" != vis) {
            return
        }
        var op = (_a2 || ov) ? [1, 0] : [0, 1];
        new MagicTools.Render(this.cbOverlay, {
            duration: 0.3,
            transition: MagicTools.Transition.linear
        }).start({
            "opacity": op
        });
        return
    };
    try {
        document.execCommand("BackgroundImageCache", false, true)
    } catch(e) {}
}
MagicTools.Event.add(document, "domready", 
function() {
    MagicThumb.init()
});
