
(function () {
    window.MagicTools = {
        version: '1.12',
        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 length = arr.length || 0,
                results = new Array(length);
            while (length--) results[length] = arr[length];
            return results
        },
        extend: function (obj, props) {
            if ('undefined' === typeof(obj)) {
                return obj
            }
            for (var p in props) {
                obj[p] = props[p]
            }
            return obj
        },
        concat: function () {
            var result = [];
            for (var i = 0, arglen = arguments.length; i < arglen; i++) {
                for (var j = 0, arrlen = arguments[i].length; j < arrlen; j++) {
                    result.push(arguments[i][j])
                }
            }
            return result
        },
        bind: function () {
            var args = MagicTools.$A(arguments),
                __method = args.shift(),
                object = args.shift();
            return function () {
                return __method.apply(object, MagicTools.concat(args, MagicTools.$A(arguments)))
            }
        },
        bindAsEvent: function () {
            var args = MagicTools.$A(arguments),
                __method = args.shift(),
                object = args.shift();
            return function (event) {
                return __method.apply(object, MagicTools.concat([event || window.event], args))
            }
        },
        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 xScroll, yScroll, pageHeight, pageWidth, scrollX, scrollY;
            var ieBody = (!MagicTools.browser.backCompatMode) ? document.documentElement : document.body;
            var body = document.body;
            xScroll = (window.innerWidth && window.scrollMaxX) ? window.innerWidth + window.scrollMaxX : (body.scrollWidth > body.offsetWidth) ? body.scrollWidth : (MagicTools.browser.ie && MagicTools.browser.backCompatMode) ? body.scrollWidth : body.offsetWidth;
            yScroll = (window.innerHeight && window.scrollMaxY) ? window.innerHeight + window.scrollMaxY : (body.scrollHeight > body.offsetHeight) ? body.scrollHeight : body.offsetHeight;
            var windowWidth, windowHeight;
            windowWidth = MagicTools.browser.ie ? ieBody.scrollWidth : (document.documentElement.clientWidth || self.innerWidth),
            windowHeight = MagicTools.browser.ie ? ieBody.clientHeight : (document.documentElement.clientHeight || self.innerHeight);
            scrollX = (self.pageXOffset) ? self.pageXOffset : ieBody.scrollLeft;
            scrollY = (self.pageYOffset) ? self.pageYOffset : ieBody.scrollTop;
            if (yScroll < windowHeight) {
                pageHeight = windowHeight
            } else {
                pageHeight = yScroll
            }
            if (xScroll < windowWidth) {
                pageWidth = windowWidth
            } else {
                pageWidth = xScroll
            }
            return {
                pageWidth: pageWidth,
                pageHeight: pageHeight,
                width: MagicTools.browser.ie ? ieBody.clientWidth : (document.documentElement.clientWidth || self.innerWidth),
                height: MagicTools.browser.ie ? ieBody.clientHeight : (MagicTools.browser.opera) ? self.innerHeight : (self.innerHeight || document.documentElement.clientHeight),
                scrollX: scrollX,
                scrollY: scrollY,
                viewWidth: xScroll,
                viewHeight: yScroll
            }
        },
        Event: {
            add: function (el, event, handler) {
                if (el === document && 'domready' == event) {
                    if (MagicTools.browser.domLoaded) {
                        handler.call(this);
                        return
                    }
                    MagicTools.onDomReadyList.push(handler);
                    if (MagicTools.onDomReadyList.length <= 1) {
                        MagicTools.bindDomReady()
                    }
                }
                el = MagicTools.$(el);
                if (el.addEventListener) {
                    el.addEventListener(event, handler, false)
                } else {
                    el.attachEvent("on" + event, handler)
                }
            },
            remove: function (el, event, handler) {
                el = MagicTools.$(el);
                if (el.removeEventListener) {
                    el.removeEventListener(event, handler, false)
                } else {
                    el.detachEvent("on" + event, handler)
                }
            },
            stop: function (event) {
                if (event.stopPropagation) {
                    event.stopPropagation()
                } else {
                    event.cancelBubble = true
                }
                if (event.preventDefault) {
                    event.preventDefault()
                } else {
                    event.returnValue = false
                }
            },
            fire: function (el, evType, evName) {
                el = MagicTools.$(el);
                if (el == document && document.createEvent && !el.dispatchEvent) el = document.documentElement;
                var event;
                if (document.createEvent) {
                    event = document.createEvent(evType);
                    event.initEvent(evName, true, true)
                } else {
                    event = document.createEventObject();
                    event.eventType = evType
                }
                if (document.createEvent) {
                    el.dispatchEvent(event)
                } else {
                    el.fireEvent('on' + evName, event)
                }
                return event
            }
        },
        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, klass) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                return ((' ' + el.className + ' ').indexOf(' ' + klass + ' ') > -1)
            },
            addClass: function (el, klass) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                if (!MagicTools.Element.hasClass(el, klass)) {
                    el.className += (el.className ? ' ' : '') + klass
                }
            },
            removeClass: function (el, klass) {
                if (! (el = MagicTools.$(el))) {
                    return
                }
                el.className = MagicTools.String.trim(el.className.replace(new RegExp('(^|\\s)' + klass + '(?:\\s|$)'), '$1'))
            },
            getStyle: function (el, style) {
                el = MagicTools.$(el);
                style = style == 'float' ? 'cssFloat' : MagicTools.String.camelize(style);
                var val = el.style[style];
                if (!val && document.defaultView) {
                    var css = document.defaultView.getComputedStyle(el, null);
                    val = css ? css[style] : null
                } else if (!val && el.currentStyle) {
                    val = el.currentStyle[style]
                }
                if ('opacity' == style) return val ? parseFloat(val) : 1.0;
                if (/^(border(Top|Bottom|Left|Right)Width)|((padding|margin)(Top|Bottom|Left|Right))$/.test(style)) {
                    val = parseInt(val) ? val : '0px'
                }
                return val == 'auto' ? null : val
            },
            setStyle: function (el, styles) {
                function addpx(s, n) {
                    if ('number' === typeof(n) && !('zIndex' === s || 'zoom' === s)) {
                        return 'px'
                    }
                    return ''
                }
                el = MagicTools.$(el);
                var elStyle = el.style;
                for (var s in styles) {
                    try {
                        if ('opacity' === s) {
                            MagicTools.Element.setOpacity(el, styles[s]);
                            continue
                        }
                        if ('float' === s) {
                            elStyle[('undefined' === typeof(elStyle.styleFloat)) ? 'cssFloat' : 'styleFloat'] = styles[s];
                            continue
                        }
                        elStyle[MagicTools.String.camelize(s)] = styles[s] + addpx(MagicTools.String.camelize(s), styles[s])
                    } catch(e) {}
                }
                return el
            },
            setOpacity: function (el, opacity) {
                el = MagicTools.$(el);
                var elStyle = el.style;
                opacity = parseFloat(opacity);
                if (opacity == 0) {
                    if ('hidden' != elStyle.visibility) elStyle.visibility = 'hidden'
                } else {
                    if (opacity > 1) {
                        opacity = parseFloat(opacity / 100)
                    }
                    if ('visible' != elStyle.visibility) elStyle.visibility = 'visible'
                }
                if (!el.currentStyle || !el.currentStyle.hasLayout) {
                    elStyle.zoom = 1
                }
                if (MagicTools.browser.ie) {
                    elStyle.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')'
                }
                elStyle.opacity = opacity;
                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, relative) {
                relative = relative || false;
                el = MagicTools.$(el);
                var s = MagicTools.Element.getScrolls(el);
                var l = 0,
                    t = 0;
                do {
                    l += el.offsetLeft || 0;
                    t += el.offsetTop || 0;
                    el = el.offsetParent;
                    if (relative) {
                        while (el && 'relative' == el.style.position) {
                            el = el.offsetParent
                        }
                    }
                } while (el);
                return {
                    'top': t - s.y,
                    'left': l - s.x
                }
            },
            getRect: function (el, relative) {
                var p = MagicTools.Element.getPosition(el, relative);
                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 (styles) {
            this.styles = styles;
            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.0);
                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 to_css = {};
            for (var s in this.styles) {
                if ('opacity' === s) {
                    to_css[s] = Math.round(this.calc(this.styles[s], dx) * 100) / 100
                } else {
                    to_css[s] = Math.round(this.calc(this.styles[s], dx))
                }
            }
            this.options.onBeforeRender(to_css);
            MagicTools.Element.setStyle(this.el, to_css)
        }
    };
    if (!Array.prototype.indexOf) {
        MagicTools.extend(Array.prototype, {
            'indexOf': function (item, from) {
                var len = this.length;
                for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++) {
                    if (this[i] === item) return i
                }
                return -1
            }
        })
    }
})();

var mm_ua = 'msie';
var mmATags = new Array();
var totalthCount = thCount = 0;
var W = navigator.userAgent.toLowerCase();
var thumbIndex = 0;
if (W.indexOf("opera") != -1) {
    mm_ua = 'opera'
} else if (W.indexOf("msie") != -1) {
    mm_ua = 'msie'
} else if (W.indexOf("safari") != -1) {
    mm_ua = 'safari'
} else if (W.indexOf("mozilla") != -1) {
    mm_ua = 'gecko'
}
function MagicMagnifyClass() {};
MagicMagnifyClass.prototype = {
    init: function (p) {
        this.params = new Array();
        for (var i in p) {
            this.params[i] = p[i]
        }
        var MagicMagnify_elements = document.getElementsByTagName('script');
        this.baseurl = BBVars.pagesURL + '/';
        /*for (var i = 0; i < MagicMagnify_elements.length; i++) {
            if (MagicMagnify_elements[i].src && (/magicmagnify.js/i.test(MagicMagnify_elements[i].src))) {
                var src = MagicMagnify_elements[i].src;
                srcMode = (src.indexOf('_src') != -1) ? '_src' : '';
                src = src.substring(0, src.lastIndexOf('/'));
                this.baseurl = src + "/";
                if (this.baseurl == '/') this.baseurl = '';
                break
            }
        }*/
        this.params['zoomColor'] = "0x" + this.params['zoomColor'].replace('#', '');
        this.params['borderColor'] = "0x" + this.params['borderColor'].replace('#', '');
        this.swfUrl = this.baseurl + 'magicmagnify?' + 'smallImageUrl=' + this.escapeParam(this.params['smallImageUrl']) + '&stageWidth=' + parseInt(this.params['width']) + '&bigImageUrl=' + this.escapeParam(this.params['bigImageUrl']) + '&lenseUrl=' + this.escapeParam(this.params['lenseUrl']) + '&linkUrl=' + this.escapeParam(this.params['linkUrl']) + '&linkWindow=' + this.params['linkWindow'] + '&lineThickness=' + parseInt(this.params['lineThickness']) + '&lineThicknessBorder=' + parseInt(this.params['lineThicknessBorder']) + '&lineColor=' + this.params['zoomColor'] + '&borderColor=' + this.params['borderColor'] + '&magnifierSize=' + parseInt(this.params['magnifierSize']) + '&magnifierSizeX=' + this.params['magnifierSizeX'] + '&magnifierSizeY=' + this.params['magnifierSizeY'] + '&lenseOffsetX=' + this.params['lenseOffsetX'] + '&lenseOffsetY=' + this.params['lenseOffsetY'] + '&lensePosition=' + this.params['lensePosition'] + '&pauseOnClick=' + this.params['pauseOnClick'] + '&type=' + this.params['type'] + '&init_x=' + this.params['x'] + '&init_y=' + this.params['y'] + '&showmagnifier=' + this.params['showmagnifier'];
        return MM_AC_FL_RunContent('codebase', window.location.protocol + '//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'classid', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', 'width', this.params['width'], 'height', this.params['height'], 'src', this.swfUrl, 'quality', 'high', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'movie', this.swfUrl, 'wmode', 'transparent', 'allowScriptAccess', 'always', 'base', '.')
    },
    escapeParam: function (val) {
        return escape(encodeURIComponent(val)).replace(/\+/g, '%2B')
    }
};

function MagicMagnify_addEventListener(obj, event, listener) {
    if (obj.addEventListener) {
        obj.addEventListener(event, listener, false)
    } else if (mm_ua == 'msie') {
        obj.attachEvent("on" + event, listener)
    }
};

function MagicMagnify_removeEventListener(obj, event, listener) {
    if (obj.removeEventListener) {
        obj.removeEventListener(event, listener, false)
    } else if (mm_ua == 'msie') {
        obj.detachEvent("on" + event, listener)
    }
};

function MagicMagnify_getParam(pattern, string, defaultValue) {
    var re = new RegExp(pattern);
    var matches = re.exec(string);
    return (matches) ? matches[3] : defaultValue
}
function MagicMagnify_stopEventPropagation(e) {
    if (mm_ua == 'gecko' || mm_ua == 'safari' || mm_ua == 'opera') {
        e.cancelBubble = true;
        e.preventDefault();
        e.stopPropagation()
    } else if (mm_ua == 'msie') {
        window.event.cancelBubble = true
    }
};

function MagicMagnify_$A(arr) {
    if (!arr) return [];
    if (arr.toArray) {
        return arr.toArray()
    }
    var length = arr.length || 0,
        results = new Array(length);
    while (length--) results[length] = arr[length];
    return results
}
function MagicMagnify_concat() {
    var result = [];
    for (var i = 0, arglen = arguments.length; i < arglen; i++) {
        for (var j = 0, arrlen = arguments.length; j < arrlen; j++) {
            result.push(arguments[i][j])
        }
    }
    return result
}
function MagicMagnify_bind() {
    var args = MagicMagnify_$A(arguments),
        __method = args.shift(),
        object = args.shift();
    return function (event) {
        return __method.apply(object, MagicMagnify_concat([event || window.event], args))
    }
}
function MagicMagnify_stopMagnifiers() {
    for (var id in mmATags) {
        var elm = document.getElementById(id);
        if (elm) {
            var p = elm.parentNode;
            p.replaceChild(mmATags[id], elm)
        }
    }
    var aels = MagicTools.$A(window.document.getElementsByTagName("A"));
    for (var i = 0, l = aels.length; i < l; i++) {
        if (aels[i] && aels[i].onMMSelector) {
            aels[i].onMMSelector = false
        }
    }
}
function MagicMagnify_formatCaptionText(str) {
    var pat = /\[a([^\]]+)\](.*?)\[\/a\]/ig;
    return str.replace(pat, "<a $1>$2</a>")
}
function MagicMagnify_findMagnifiersSelectors(div, id, params, s_bigImageUrl, divElmOrigin) {
    var p = new Array();
    var oldId = '';
    for (var j in params) {
        p[j] = params[j]
    }
    var aels = MagicTools.$A(window.document.getElementsByTagName("A"));
    for (var i = 0, l = aels.length; i < l; i++) {
        if (aels[i].rel == id) {
            if (aels[i].onMMSelector) continue;
            var mmSmImage = new Image();
            mmSmImage.src = aels[i].rev;
            p['smallImageUrl'] = mmSmImage.src;
            var width = parseInt(mmSmImage.width);
            var height = parseInt(mmSmImage.height);
            if (width + height == 0) {
                width = parseInt(mmSmImage.style.width);
                height = parseInt(mmSmImage.style.height)
            }
            if (width == 0 || height == 0 || isNaN(width) || isNaN(height)) {
                setTimeout(function () {
                    MagicMagnify_findMagnifiersSelectors(div, id, params)
                },
                1000);
                continue
            }
            p['width'] = width;
            p['height'] = height;
            if (params['smallImageUrl'] == p['smallImageUrl'] && params['bigImageUrl'] == p['bigImageUrl']) {
                divElm = divElmOrigin
            } else {
                var MagnifyObj = new MagicMagnifyClass();
                p['bigImageUrl'] = aels[i].href;
                var divElm = document.createElement("DIV");
                divElm.innerHTML = MagnifyObj.init(p);
                divElm.style.position = 'absolute';
                divElm.style.zIndex = '10';
                divElm.style.left = divElm.style.top = '0px';
                divElm.style.width = '1px';
                divElm.style.height = '1px';
                divElm.style.overflow = 'hidden'
            }
            divElm.smImgHeight = height;
            divElm.smImgWidth = width;
            aels[i].onMMSelector = true;
            MagicMagnify_addEventListener(aels[i], "click", MagicMagnify_bind(function (event, nll, divElm, div) {
                MagicMagnify_stopEventPropagation(event);
                if (mm_ua != 'msie') {
                    this.blur()
                } else {
                    window.focus()
                }
                for (var j = 0; j < div.childNodes.length; j++) {
                    var elm = div.childNodes[j];
                    elm.style.left = (elm == divElm || elm.className == 'MagicThumbAConteiner') ? '0px' : '-1000px'
                }
                divElm.style.width = div.style.width = parseInt(divElm.smImgWidth) + 'px';
                divElm.style.height = div.style.height = parseInt(divElm.smImgHeight) + 'px';
                return false
            },
            aels[i], divElm, div));
            div.insertBefore(divElm, div.firstChild)
        }
    }
}

function MagicMagnify_findMagnifiers() {
    var aels = MagicTools.$A(window.document.getElementsByTagName("A"));
    for (var i = 0, l = aels.length; i < l; i++) {
        if (!aels[i]) continue;
        if (aels[i].className.toLowerCase() == "magicmagnify" && arguments.length <= 1 || aels[i].className.toLowerCase() == "magicmagnify" && arguments.length == 4 && aels[i] == arguments[1]) {
            var captionText = '';
            while (aels[i].firstChild) {
                if (aels[i].firstChild.tagName != 'IMG') {
                    aels[i].removeChild(aels[i].firstChild)
                } else {
                    break
                }
            }
            if (aels[i].firstChild.tagName != 'IMG') throw "Invalid Magic Magnify invocation!";
            var zoomColor = MagicMagnify_getParam(/zoom\-color(\s+)?:(\s+)?#?(\w+)/i, aels[i].rel, '#9b9b9b');
            var borderColor = MagicMagnify_getParam(/border\-color(\s+)?:(\s+)?#?(\w+)/i, aels[i].rel, '#9b9b9b');
            var zoomSize = MagicMagnify_getParam(/size(\s+)?:(\s+)?(\d+)/i, aels[i].rel, 140);
            var zoomSizeX = MagicMagnify_getParam(/sizeX(\s+)?:(\s+)?(\d+)/i, aels[i].rel, '');
            var zoomSizeY = MagicMagnify_getParam(/sizeY(\s+)?:(\s+)?(\d+)/i, aels[i].rel, '');
            var zoomType = MagicMagnify_getParam(/type(\s+)?:(\s+)?(circle|square)/i, aels[i].rel, 'circle');
            var lineThickness = MagicMagnify_getParam(/line-thickness(\s+)?:(\s+)?([0-9]+)/i, aels[i].rel, 1);
            var lineThicknessBorder = MagicMagnify_getParam(/line-thickness-border(\s+)?:(\s+)?([0-9]+)/i, aels[i].rel, 0);
            var lenseUrl = MagicMagnify_getParam(/lenseUrl(\s+)?:(\s+)?([^ ;$]*)/i, aels[i].rel, '');
            var lenseOffsetX = MagicMagnify_getParam(/lenseOffsetX(\s+)?:(\s+)?([\.\-\d]+)/i, aels[i].rel, 0);
            var lenseOffsetY = MagicMagnify_getParam(/lenseOffsetY(\s+)?:(\s+)?([\.\-\d]+)/i, aels[i].rel, 0);
            var linkUrl = MagicMagnify_getParam(/linkUrl(\s+)?:(\s+)?([^;$]*)/i, aels[i].rel, '');
            var linkWindow = MagicMagnify_getParam(/linkWindow(\s+)?:(\s+)?(_self|_blank|_parent|_top)/i, aels[i].rel, '_self');
            var lensePosition = MagicMagnify_getParam(/lensePosition(\s+)?:(\s+)?(top|bottom)/i, aels[i].rel, 'top');
            var disableAutoStart = MagicMagnify_getParam(/disableAutoStart(\s+)?:(\s+)?(true)/i, aels[i].rel, false);
            var containerDisplay = MagicMagnify_getParam(/containerDisplay(\s+)?:(\s+)?(inline\-block|inline|block)/i, aels[i].rel, 'block');
            var pauseOnClick = MagicMagnify_getParam(/pauseOnClick(\s+)?:(\s+)?(true)/i, aels[i].rel, false);
            var initOnClick = MagicMagnify_getParam(/initOnClick(\s+)?:(\s+)?(true|false)/i, aels[i].rel, 'true');
            var showmagnifier = (arguments.length == 4) ? 1 : 0;
            var x = parseInt(arguments[2]);
            var y = parseInt(arguments[3]);
            if (mm_ua == 'msie' && containerDisplay == 'inline-block') {
                containerDisplay = 'inline'
            }
            if (disableAutoStart && arguments.length == 1) {
                if (eval(initOnClick)) {
                    MagicMagnify_addEventListener(aels[i], "click", MagicMagnify_bind(function (e) {
                        MagicMagnify_stopEventPropagation(e);
                        var imgElm;
                        for (var id in this.childNodes) {
                            if (this.childNodes[id].tagName == 'IMG') {
                                imgElm = this.childNodes[id];
                                break
                            }
                        }
                        var rect = MagicTools.Element.getRect(imgElm);
                        var ieBody = (document.compatMode && 'backcompat' != document.compatMode.toLowerCase()) ? document.documentElement : document.body;
                        var eX = e.clientX + parseInt((self.pageXOffset) ? self.pageXOffset : ieBody.scrollLeft);
                        var eY = e.clientY + parseInt((self.pageYOffset) ? self.pageYOffset : ieBody.scrollTop);
                        var offsetLeft = eX - rect.left,
                            offsetTop = eY - rect.top;
                        MagicMagnify_findMagnifiers(true, this, offsetLeft, offsetTop);
                        return false
                    },
                    aels[i]))
                }
                continue
            }
            var div = document.createElement("DIV");
            var MagnifyObj = new MagicMagnifyClass();
            div.style.position = 'relative';
            div.style.overflow = 'hidden';
            div.style.display = containerDisplay;
            div.className = 'MagicMagnify-container';
            div.id = 'mmObjCont' + Math.round(Math.random(1000) * 1000);
            var width = parseInt(aels[i].firstChild.width);
            var height = parseInt(aels[i].firstChild.height);
            if (width == 0 || height == 0) {
                width = parseInt(aels[i].firstChild.style.width);
                height = parseInt(aels[i].firstChild.style.height)
            }
            if (width == 0 || height == 0 || isNaN(width) || isNaN(height)) {
                var img = document.createElement('img');
                MagicMagnify_addEventListener(img, "load", MagicMagnify_bind(function (im) {
                    MagicMagnify_removeEventListener(im, 'load', arguments.callee);
                    this.style.width = im.width + 'px';
                    this.style.height = im.height + 'px';
                    MagicMagnify_findMagnifiers()
                },
                aels[i].firstChild, img));
                img.src = aels[i].firstChild.src
            } else {
                var params = {
                    width: width,
                    height: height,
                    smallImageUrl: aels[i].firstChild.src,
                    bigImageUrl: aels[i].href,
                    zoomColor: zoomColor,
                    borderColor: borderColor,
                    magnifierSize: zoomSize,
                    magnifierSizeX: zoomSizeX,
                    magnifierSizeY: zoomSizeY,
                    type: zoomType,
                    lenseUrl: lenseUrl,
                    linkUrl: linkUrl,
                    lineThicknessBorder: lineThicknessBorder,
                    lineThickness: lineThickness,
                    lenseOffsetX: lenseOffsetX,
                    lenseOffsetY: lenseOffsetY,
                    lensePosition: lensePosition,
                    linkWindow: linkWindow,
                    pauseOnClick: pauseOnClick,
                    showmagnifier: showmagnifier,
                    x: x,
                    y: y
                };
                div.style.width = width + 'px';
                div.style.height = height + 'px';
                var divElm = document.createElement("DIV");
                divElm.innerHTML = MagnifyObj.init(params);
                div.appendChild(divElm);
                div.firstChild.style.zIndex = '101';
                var p = aels[i].parentNode;
                var id = aels[i].id;
                if (id != '') {
                    var aSels = MagicTools.$A(window.document.getElementsByTagName("A"));
                    MagicMagnify_findMagnifiersSelectors(div, id, params, aels[i].href, divElm)
                }
                mmATags[div.id] = aels[i];
                p.replaceChild(div, aels[i])
            }
        }
    }
};
MagicMagnify_addEventListener(window, "load", function () {
    MagicMagnify_findMagnifiers(true)
});

function MM_AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1) return src.replace(/\?/, ext + '?');
    else return src + ext
}
function MM_AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '<object ';
    for (var i in objAttrs) str += i + '="' + objAttrs[i] + '" ';
    str += '>';
    for (var i in params) str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    str += '<embed ';
    for (var i in embedAttrs) str += i + '="' + embedAttrs[i] + '" ';
    str += ' ></embed></object>';
    return str
}
function MM_AC_FL_RunContent() {
    var ret = MM_AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
    return MM_AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs)
}
function MM_AC_SW_RunContent() {
    var ret = MM_AC_GetArgs(arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
    MM_AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs)
}
function MM_AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();
        switch (currArg) {
        case "classid":
            break;
        case "pluginspage":
            ret.embedAttrs[args[i]] = args[i + 1];
            break;
        case "src":
        case "movie":
            args[i + 1] = MM_AC_AddExtension(args[i + 1], ext);
            ret.embedAttrs["src"] = args[i + 1];
            ret.params[srcParamName] = args[i + 1];
            break;
        case "onafterupdate":
        case "onbeforeupdate":
        case "onblur":
        case "oncellchange":
        case "onclick":
        case "ondblClick":
        case "ondrag":
        case "ondragend":
        case "ondragenter":
        case "ondragleave":
        case "ondragover":
        case "ondrop":
        case "onfinish":
        case "onfocus":
        case "onhelp":
        case "onmousedown":
        case "onmouseup":
        case "onmouseover":
        case "onmousemove":
        case "onmouseout":
        case "onkeypress":
        case "onkeydown":
        case "onkeyup":
        case "onload":
        case "onlosecapture":
        case "onpropertychange":
        case "onreadystatechange":
        case "onrowsdelete":
        case "onrowenter":
        case "onrowexit":
        case "onrowsinserted":
        case "onstart":
        case "onscroll":
        case "onbeforeeditfocus":
        case "onactivate":
        case "onbeforedeactivate":
        case "ondeactivate":
        case "type":
        case "codebase":
            ret.objAttrs[args[i]] = args[i + 1];
            break;
        case "width":
        case "height":
        case "align":
        case "vspace":
        case "hspace":
        case "class":
        case "title":
        case "accesskey":
        case "name":
        case "id":
        case "tabindex":
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
            break;
        default:
            ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1]
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret
}
function MM_AC_AX_RunContent() {
    var ret = MM_AC_AX_GetArgs(arguments);
    MM_AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs)
}
function MM_AC_AX_GetArgs(args) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();
        switch (currArg) {
        case "pluginspage":
        case "type":
        case "src":
            ret.embedAttrs[args[i]] = args[i + 1];
            break;
        case "data":
        case "codebase":
        case "classid":
        case "id":
        case "onafterupdate":
        case "onbeforeupdate":
        case "onblur":
        case "oncellchange":
        case "onclick":
        case "ondblClick":
        case "ondrag":
        case "ondragend":
        case "ondragenter":
        case "ondragleave":
        case "ondragover":
        case "ondrop":
        case "onfinish":
        case "onfocus":
        case "onhelp":
        case "onmousedown":
        case "onmouseup":
        case "onmouseover":
        case "onmousemove":
        case "onmouseout":
        case "onkeypress":
        case "onkeydown":
        case "onkeyup":
        case "onload":
        case "onlosecapture":
        case "onpropertychange":
        case "onreadystatechange":
        case "onrowsdelete":
        case "onrowenter":
        case "onrowexit":
        case "onrowsinserted":
        case "onstart":
        case "onscroll":
        case "onbeforeeditfocus":
        case "onactivate":
        case "onbeforedeactivate":
        case "ondeactivate":
            ret.objAttrs[args[i]] = args[i + 1];
            break;
        case "width":
        case "height":
        case "align":
        case "vspace":
        case "hspace":
        case "class":
        case "title":
        case "accesskey":
        case "name":
        case "tabindex":
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
            break;
        default:
            ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1]
        }
    }
    return ret
}
