if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
    if (navigator.plugins && navigator.plugins["Shockwave Flash"] && (versionIndex = navigator.plugins["Shockwave Flash"].description.indexOf(".")) != -1) {
        var versionExpr = /[\d]{1,3}\./;
        var result = navigator.plugins["Shockwave Flash"].description.match(versionExpr);
        if (result) {
            versionIndex = parseInt(result[0].substring(0, result[0].length - 1))
        } else {
            versionIndex = null
        }
    }
}
if (navigator.userAgent && navigator.userAgent.indexOf("MSIE") >= 0 && (navigator.userAgent.indexOf("Windows 95") >= 0 || navigator.userAgent.indexOf("Windows 98") >= 0 || navigator.userAgent.indexOf("Windows NT") >= 0)) {
    var FlashMode3 = 0;
    var FlashMode4 = 0;
    var FlashMode5 = 0;
    var FlashMode6 = 0;
    var FlashMode7 = 0;
    var FlashMode8 = 0;
    var versionIndex;
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode3 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3")))\n');
    document.write("</SCRIPT> \n");
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode4 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4")))\n');
    document.write("</SCRIPT> \n");
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode5 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))\n');
    document.write("</SCRIPT> \n");
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode6 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))\n');
    document.write("</SCRIPT> \n");
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode7 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7")))\n');
    document.write("</SCRIPT> \n");
    document.write("<SCRIPT LANGUAGE=VBScript> \n");
    document.write("on error resume next \n");
    document.write('FlashMode8 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8")))\n');
    document.write("</SCRIPT> \n");
    if (FlashMode3) {
        versionIndex = 3
    }
    if (FlashMode4) {
        versionIndex = 4
    }
    if (FlashMode5) {
        versionIndex = 5
    }
    if (FlashMode6) {
        versionIndex = 6
    }
    if (FlashMode7) {
        versionIndex = 7
    }
    if (FlashMode8) {
        versionIndex = 8
    }
};
confCountryId = "cn";
confLanguageId = "zh";
confTrackingEnabled = true;
confPersoEngineEnabled = false;
confBrowserCheckEnabled = true;
confBrowserCheckHighendEnabled = true;
confBandwidthCheckEnabled = true;
confIncompatibleBrowserUrl = "/cn/zh/general/incompatible.html";
technologyguideEnabled = false;
technologyguideDatabasePath = "/cn/zh/insights/technology/technology_guide/_shared/js/database.js";
confIdModuleImage = "/images/id_modules.png";
confIdModuleImageGrey = "/images/id_modules_grey.png";
confIdModuleImageService = "/images/id_modules_service.png";
confDateFormat = "DD.MM.YYYY";
confPriceDelimiter = ".";
confHundredsDelimiter = ",";
var bandwidth_bottomnavi_link_high = "视频版本 ";
var bandwidth_bottomnavi_link_low = "压缩版本 ";
var bandwidth_headline_high = "启动视频版本 ";
var bandwidth_copy_high = "BMW网站视频版本提供了丰富精彩的视频、动画和音乐内容，适用于使用宽带和DSL连接。如果您使用调制解调器/ISDN网络连接，网站内容下载的时间可能要长一些。 ";
var bandwidth_link_high = "启动视频版本 ";
var bandwidth_headline_low = "适用于调制解调器/ISDN连接 ";
var bandwidth_copy_low = "BMW网站压缩版本提供所有图片和详细信息，但不包括音乐或视频内容，适用于调制解调器/ISDN连接。 ";
var bandwidth_link_low = "启动压缩版本 ";
var bandwidth_save_headline = "版本设置 ";
var bandwidth_save_copy = "默认显示以下内容： ";
var bandwidth_save_button = "保存设置 ";
var bandwidth_save_select = "请选择 ";
var bandwidth_save_highband = "视频版本 ";
var bandwidth_save_lowband = "压缩版本 ";
var bandwidth_save_auto = "自动检测 ";
var bandwidth_save_confirm = "您的版本设置已经保存。 ";
var bandwidth_save_error_no_selection = "请选择您要浏览的版本 ";
var bandwidth_save_error_no_cookies = "抱歉，由于您的浏览器不允许接收Cookies，您的设置未能保存。 ";
var logInLabel = "登录 ";
var logInUrl = "/cn/zh/general/silo/profile/profile.html";
var logOutLabel = "退出 ";
var logOutPath = "/cms/cn/zh/ecrm/silo_login.jsp";
var beiAnEnable = true;
var beiAnLabel = "京ICP备08004883号";
var beiAnUrl = "http://www.miibeian.gov.cn/";
var beiAnTarget = "_blank";
bandwidth_category = "vhigh";
bandwidth_speed = 300;
bandwidth_valid = true; (function() {
    var W = this,
    ab, F = W.jQuery,
    S = W.$,
    T = W.jQuery = W.$ = function(b, a) {
        return new T.fn.init(b, a)
    },
    M = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
    ac = /^.[^:#\[\.,]*$/;
    T.fn = T.prototype = {
        init: function(e, b) {
            e = e || document;
            if (e.nodeType) {
                this[0] = e;
                this.length = 1;
                this.context = e;
                return this
            }
            if (typeof e === "string") {
                var c = M.exec(e);
                if (c && (c[1] || !b)) {
                    if (c[1]) {
                        e = T.clean([c[1]], b)
                    } else {
                        var a = document.getElementById(c[3]);
                        if (a && a.id != c[3]) {
                            return T().find(e)
                        }
                        var d = T(a || []);
                        d.context = document;
                        d.selector = e;
                        return d
                    }
                } else {
                    return T(b).find(e)
                }
            } else {
                if (T.isFunction(e)) {
                    return T(document).ready(e)
                }
            }
            if (e.selector && e.context) {
                this.selector = e.selector;
                this.context = e.context
            }
            return this.setArray(T.makeArray(e))
        },
        selector: "",
        jquery: "1.3.1",
        size: function() {
            return this.length
        },
        get: function(a) {
            return a === ab ? T.makeArray(this) : this[a]
        },
        pushStack: function(c, a, d) {
            var b = T(c);
            b.prevObject = this;
            b.context = this.context;
            if (a === "find") {
                b.selector = this.selector + (this.selector ? " ": "") + d
            } else {
                if (a) {
                    b.selector = this.selector + "." + a + "(" + d + ")"
                }
            }
            return b
        },
        setArray: function(a) {
            this.length = 0;
            Array.prototype.push.apply(this, a);
            return this
        },
        each: function(a, b) {
            return T.each(this, a, b)
        },
        index: function(a) {
            return T.inArray(a && a.jquery ? a[0] : a, this)
        },
        attr: function(c, a, b) {
            var d = c;
            if (typeof c === "string") {
                if (a === ab) {
                    return this[0] && T[b || "attr"](this[0], c)
                } else {
                    d = {};
                    d[c] = a
                }
            }
            return this.each(function(e) {
                for (c in d) {
                    T.attr(b ? this.style: this, c, T.prop(this, d[c], b, e, c))
                }
            })
        },
        css: function(b, a) {
            if ((b == "width" || b == "height") && parseFloat(a) < 0) {
                a = ab
            }
            return this.attr(b, a, "curCSS")
        },
        text: function(a) {
            if (typeof a !== "object" && a != null) {
                return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(a))
            }
            var b = "";
            T.each(a || this,
            function() {
                T.each(this.childNodes,
                function() {
                    if (this.nodeType != 8) {
                        b += this.nodeType != 1 ? this.nodeValue: T.fn.text([this])
                    }
                })
            });
            return b
        },
        wrapAll: function(b) {
            if (this[0]) {
                var a = T(b, this[0].ownerDocument).clone();
                if (this[0].parentNode) {
                    a.insertBefore(this[0])
                }
                a.map(function() {
                    var c = this;
                    while (c.firstChild) {
                        c = c.firstChild
                    }
                    return c
                }).append(this)
            }
            return this
        },
        wrapInner: function(a) {
            return this.each(function() {
                T(this).contents().wrapAll(a)
            })
        },
        wrap: function(a) {
            return this.each(function() {
                T(this).wrapAll(a)
            })
        },
        append: function() {
            return this.domManip(arguments, true,
            function(a) {
                if (this.nodeType == 1) {
                    this.appendChild(a)
                }
            })
        },
        prepend: function() {
            return this.domManip(arguments, true,
            function(a) {
                if (this.nodeType == 1) {
                    this.insertBefore(a, this.firstChild)
                }
            })
        },
        before: function() {
            return this.domManip(arguments, false,
            function(a) {
                this.parentNode.insertBefore(a, this)
            })
        },
        after: function() {
            return this.domManip(arguments, false,
            function(a) {
                this.parentNode.insertBefore(a, this.nextSibling)
            })
        },
        end: function() {
            return this.prevObject || T([])
        },
        push: [].push,
        find: function(c) {
            if (this.length === 1 && !/,/.test(c)) {
                var a = this.pushStack([], "find", c);
                a.length = 0;
                T.find(c, this[0], a);
                return a
            } else {
                var b = T.map(this,
                function(d) {
                    return T.find(c, d)
                });
                return this.pushStack(/[^+>] [^+>]/.test(c) ? T.unique(b) : b, "find", c)
            }
        },
        clone: function(b) {
            var c = this.map(function() {
                if (!T.support.noCloneEvent && !T.isXMLDoc(this)) {
                    var d = this.cloneNode(true),
                    e = document.createElement("div");
                    e.appendChild(d);
                    return T.clean([e.innerHTML])[0]
                } else {
                    return this.cloneNode(true)
                }
            });
            var a = c.find("*").andSelf().each(function() {
                if (this[aa] !== ab) {
                    this[aa] = null
                }
            });
            if (b === true) {
                this.find("*").andSelf().each(function(f) {
                    if (this.nodeType == 3) {
                        return
                    }
                    var g = T.data(this, "events");
                    for (var d in g) {
                        for (var e in g[d]) {
                            T.event.add(a[f], d, g[d][e], g[d][e].data)
                        }
                    }
                })
            }
            return c
        },
        filter: function(a) {
            return this.pushStack(T.isFunction(a) && T.grep(this,
            function(b, c) {
                return a.call(b, c)
            }) || T.multiFilter(a, T.grep(this,
            function(b) {
                return b.nodeType === 1
            })), "filter", a)
        },
        closest: function(b) {
            var a = T.expr.match.POS.test(b) ? T(b) : null;
            return this.map(function() {
                var c = this;
                while (c && c.ownerDocument) {
                    if (a ? a.index(c) > -1 : T(c).is(b)) {
                        return c
                    }
                    c = c.parentNode
                }
            })
        },
        not: function(b) {
            if (typeof b === "string") {
                if (ac.test(b)) {
                    return this.pushStack(T.multiFilter(b, this, true), "not", b)
                } else {
                    b = T.multiFilter(b, this)
                }
            }
            var a = b.length && b[b.length - 1] !== ab && !b.nodeType;
            return this.filter(function() {
                return a ? T.inArray(this, b) < 0 : this != b
            })
        },
        add: function(a) {
            return this.pushStack(T.unique(T.merge(this.get(), typeof a === "string" ? T(a) : T.makeArray(a))))
        },
        is: function(a) {
            return !! a && T.multiFilter(a, this).length > 0
        },
        hasClass: function(a) {
            return !! a && this.is("." + a)
        },
        val: function(c) {
            if (c === ab) {
                var i = this[0];
                if (i) {
                    if (T.nodeName(i, "option")) {
                        return (i.attributes.value || {}).specified ? i.value: i.text
                    }
                    if (T.nodeName(i, "select")) {
                        var e = i.selectedIndex,
                        b = [],
                        a = i.options,
                        f = i.type == "select-one";
                        if (e < 0) {
                            return null
                        }
                        for (var h = f ? e: 0, d = f ? e + 1 : a.length; h < d; h++) {
                            var g = a[h];
                            if (g.selected) {
                                c = T(g).val();
                                if (f) {
                                    return c
                                }
                                b.push(c)
                            }
                        }
                        return b
                    }
                    return (i.value || "").replace(/\r/g, "")
                }
                return ab
            }
            if (typeof c === "number") {
                c += ""
            }
            return this.each(function() {
                if (this.nodeType != 1) {
                    return
                }
                if (T.isArray(c) && /radio|checkbox/.test(this.type)) {
                    this.checked = (T.inArray(this.value, c) >= 0 || T.inArray(this.name, c) >= 0)
                } else {
                    if (T.nodeName(this, "select")) {
                        var j = T.makeArray(c);
                        T("option", this).each(function() {
                            this.selected = (T.inArray(this.value, j) >= 0 || T.inArray(this.text, j) >= 0)
                        });
                        if (!j.length) {
                            this.selectedIndex = -1
                        }
                    } else {
                        this.value = c
                    }
                }
            })
        },
        html: function(a) {
            return a === ab ? (this[0] ? this[0].innerHTML: null) : this.empty().append(a)
        },
        replaceWith: function(a) {
            return this.after(a).remove()
        },
        eq: function(a) {
            return this.slice(a, +a + 1)
        },
        slice: function() {
            return this.pushStack(Array.prototype.slice.apply(this, arguments), "slice", Array.prototype.slice.call(arguments).join(","))
        },
        map: function(a) {
            return this.pushStack(T.map(this,
            function(b, c) {
                return a.call(b, c, b)
            }))
        },
        andSelf: function() {
            return this.add(this.prevObject)
        },
        domManip: function(d, a, b) {
            if (this[0]) {
                var e = (this[0].ownerDocument || this[0]).createDocumentFragment(),
                h = T.clean(d, (this[0].ownerDocument || this[0]), e),
                f = e.firstChild,
                j = this.length > 1 ? e.cloneNode(true) : e;
                if (f) {
                    for (var g = 0,
                    i = this.length; g < i; g++) {
                        b.call(c(this[g], f), g > 0 ? j.cloneNode(true) : e)
                    }
                }
                if (h) {
                    T.each(h, E)
                }
            }
            return this;
            function c(l, k) {
                return a && T.nodeName(l, "table") && T.nodeName(k, "tr") ? (l.getElementsByTagName("tbody")[0] || l.appendChild(l.ownerDocument.createElement("tbody"))) : l
            }
        }
    };
    T.fn.init.prototype = T.fn;
    function E(b, a) {
        if (a.src) {
            T.ajax({
                url: a.src,
                async: false,
                dataType: "script"
            })
        } else {
            T.globalEval(a.text || a.textContent || a.innerHTML || "")
        }
        if (a.parentNode) {
            a.parentNode.removeChild(a)
        }
    }
    function ad() {
        return + new Date
    }
    T.extend = T.fn.extend = function() {
        var c = arguments[0] || {},
        e = 1,
        d = arguments.length,
        h = false,
        f;
        if (typeof c === "boolean") {
            h = c;
            c = arguments[1] || {};
            e = 2
        }
        if (typeof c !== "object" && !T.isFunction(c)) {
            c = {}
        }
        if (d == e) {
            c = this; --e
        }
        for (; e < d; e++) {
            if ((f = arguments[e]) != null) {
                for (var g in f) {
                    var b = c[g],
                    a = f[g];
                    if (c === a) {
                        continue
                    }
                    if (h && a && typeof a === "object" && !a.nodeType) {
                        c[g] = T.extend(h, b || (a.length != null ? [] : {}), a)
                    } else {
                        if (a !== ab) {
                            c[g] = a
                        }
                    }
                }
            }
        }
        return c
    };
    var ag = /z-?index|font-?weight|opacity|zoom|line-?height/i,
    Q = document.defaultView || {},
    L = Object.prototype.toString;
    T.extend({
        noConflict: function(a) {
            W.$ = S;
            if (a) {
                W.jQuery = F
            }
            return T
        },
        isFunction: function(a) {
            return L.call(a) === "[object Function]"
        },
        isArray: function(a) {
            return L.call(a) === "[object Array]"
        },
        isXMLDoc: function(a) {
            return a.nodeType === 9 && a.documentElement.nodeName !== "HTML" || !!a.ownerDocument && T.isXMLDoc(a.ownerDocument)
        },
        globalEval: function(a) {
            a = T.trim(a);
            if (a) {
                var b = document.getElementsByTagName("head")[0] || document.documentElement,
                c = document.createElement("script");
                c.type = "text/javascript";
                if (T.support.scriptEval) {
                    c.appendChild(document.createTextNode(a))
                } else {
                    c.text = a
                }
                b.insertBefore(c, b.firstChild);
                b.removeChild(c)
            }
        },
        nodeName: function(a, b) {
            return a.nodeName && a.nodeName.toUpperCase() == b.toUpperCase()
        },
        each: function(e, a, f) {
            var g, d = 0,
            c = e.length;
            if (f) {
                if (c === ab) {
                    for (g in e) {
                        if (a.apply(e[g], f) === false) {
                            break
                        }
                    }
                } else {
                    for (; d < c;) {
                        if (a.apply(e[d++], f) === false) {
                            break
                        }
                    }
                }
            } else {
                if (c === ab) {
                    for (g in e) {
                        if (a.call(e[g], g, e[g]) === false) {
                            break
                        }
                    }
                } else {
                    for (var b = e[0]; d < c && a.call(b, d, b) !== false; b = e[++d]) {}
                }
            }
            return e
        },
        prop: function(b, a, c, d, e) {
            if (T.isFunction(a)) {
                a = a.call(b, d)
            }
            return typeof a === "number" && c == "curCSS" && !ag.test(e) ? a + "px": a
        },
        className: {
            add: function(b, a) {
                T.each((a || "").split(/\s+/),
                function(d, c) {
                    if (b.nodeType == 1 && !T.className.has(b.className, c)) {
                        b.className += (b.className ? " ": "") + c
                    }
                })
            },
            remove: function(b, a) {
                if (b.nodeType == 1) {
                    b.className = a !== ab ? T.grep(b.className.split(/\s+/),
                    function(c) {
                        return ! T.className.has(a, c)
                    }).join(" ") : ""
                }
            },
            has: function(a, b) {
                return a && T.inArray(b, (a.className || a).toString().split(/\s+/)) > -1
            }
        },
        swap: function(b, c, a) {
            var e = {};
            for (var d in c) {
                e[d] = b.style[d];
                b.style[d] = c[d]
            }
            a.call(b);
            for (var d in c) {
                b.style[d] = e[d]
            }
        },
        css: function(e, g, c) {
            if (g == "width" || g == "height") {
                var a, f = {
                    position: "absolute",
                    visibility: "hidden",
                    display: "block"
                },
                b = g == "width" ? ["Left", "Right"] : ["Top", "Bottom"];
                function d() {
                    a = g == "width" ? e.offsetWidth: e.offsetHeight;
                    var i = 0,
                    h = 0;
                    T.each(b,
                    function() {
                        i += parseFloat(T.curCSS(e, "padding" + this, true)) || 0;
                        h += parseFloat(T.curCSS(e, "border" + this + "Width", true)) || 0
                    });
                    a -= Math.round(i + h)
                }
                if (T(e).is(":visible")) {
                    d()
                } else {
                    T.swap(e, f, d)
                }
                return Math.max(0, a)
            }
            return T.curCSS(e, g, c)
        },
        curCSS: function(e, h, g) {
            var b, i = e.style;
            if (h == "opacity" && !T.support.opacity) {
                b = T.attr(i, "opacity");
                return b == "" ? "1": b
            }
            if (h.match(/float/i)) {
                h = H
            }
            if (!g && i && i[h]) {
                b = i[h]
            } else {
                if (Q.getComputedStyle) {
                    if (h.match(/float/i)) {
                        h = "float"
                    }
                    h = h.replace(/([A-Z])/g, "-$1").toLowerCase();
                    var a = Q.getComputedStyle(e, null);
                    if (a) {
                        b = a.getPropertyValue(h)
                    }
                    if (h == "opacity" && b == "") {
                        b = "1"
                    }
                } else {
                    if (e.currentStyle) {
                        var d = h.replace(/\-(\w)/g,
                        function(k, j) {
                            return j.toUpperCase()
                        });
                        b = e.currentStyle[h] || e.currentStyle[d];
                        if (!/^\d+(px)?$/i.test(b) && /^\d/.test(b)) {
                            var f = i.left,
                            c = e.runtimeStyle.left;
                            e.runtimeStyle.left = e.currentStyle.left;
                            i.left = b || 0;
                            b = i.pixelLeft + "px";
                            i.left = f;
                            e.runtimeStyle.left = c
                        }
                    }
                }
            }
            return b
        },
        clean: function(g, b, d) {
            b = b || document;
            if (typeof b.createElement === "undefined") {
                b = b.ownerDocument || b[0] && b[0].ownerDocument || document
            }
            if (!d && g.length === 1 && typeof g[0] === "string") {
                var e = /^<(\w+)\s*\/?>$/.exec(g[0]);
                if (e) {
                    return [b.createElement(e[1])]
                }
            }
            var f = [],
            h = [],
            a = b.createElement("div");
            T.each(g,
            function(k, i) {
                if (typeof i === "number") {
                    i += ""
                }
                if (!i) {
                    return
                }
                if (typeof i === "string") {
                    i = i.replace(/(<(\w+)[^>]*?)\/>/g,
                    function(p, o, q) {
                        return q.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? p: o + "></" + q + ">"
                    });
                    var l = T.trim(i).toLowerCase();
                    var j = !l.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !l.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || l.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !l.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!l.indexOf("<td") || !l.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !l.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || !T.support.htmlSerialize && [1, "div<div>", "</div>"] || [0, "", ""];
                    a.innerHTML = j[1] + i + j[2];
                    while (j[0]--) {
                        a = a.lastChild
                    }
                    if (!T.support.tbody) {
                        var m = !l.indexOf("<table") && l.indexOf("<tbody") < 0 ? a.firstChild && a.firstChild.childNodes: j[1] == "<table>" && l.indexOf("<tbody") < 0 ? a.childNodes: [];
                        for (var n = m.length - 1; n >= 0; --n) {
                            if (T.nodeName(m[n], "tbody") && !m[n].childNodes.length) {
                                m[n].parentNode.removeChild(m[n])
                            }
                        }
                    }
                    if (!T.support.leadingWhitespace && /^\s/.test(i)) {
                        a.insertBefore(b.createTextNode(i.match(/^\s*/)[0]), a.firstChild)
                    }
                    i = T.makeArray(a.childNodes)
                }
                if (i.nodeType) {
                    f.push(i)
                } else {
                    f = T.merge(f, i)
                }
            });
            if (d) {
                for (var c = 0; f[c]; c++) {
                    if (T.nodeName(f[c], "script") && (!f[c].type || f[c].type.toLowerCase() === "text/javascript")) {
                        h.push(f[c].parentNode ? f[c].parentNode.removeChild(f[c]) : f[c])
                    } else {
                        if (f[c].nodeType === 1) {
                            f.splice.apply(f, [c + 1, 0].concat(T.makeArray(f[c].getElementsByTagName("script"))))
                        }
                        d.appendChild(f[c])
                    }
                }
                return h
            }
            return f
        },
        attr: function(c, f, b) {
            if (!c || c.nodeType == 3 || c.nodeType == 8) {
                return ab
            }
            var e = !T.isXMLDoc(c),
            a = b !== ab;
            f = e && T.props[f] || f;
            if (c.tagName) {
                var g = /href|src|style/.test(f);
                if (f == "selected" && c.parentNode) {
                    c.parentNode.selectedIndex
                }
                if (f in c && e && !g) {
                    if (a) {
                        if (f == "type" && T.nodeName(c, "input") && c.parentNode) {
                            throw "type property can't be changed"
                        }
                        c[f] = b
                    }
                    if (T.nodeName(c, "form") && c.getAttributeNode(f)) {
                        return c.getAttributeNode(f).nodeValue
                    }
                    if (f == "tabIndex") {
                        var d = c.getAttributeNode("tabIndex");
                        return d && d.specified ? d.value: c.nodeName.match(/(button|input|object|select|textarea)/i) ? 0 : c.nodeName.match(/^(a|area)$/i) && c.href ? 0 : ab
                    }
                    return c[f]
                }
                if (!T.support.style && e && f == "style") {
                    return T.attr(c.style, "cssText", b)
                }
                if (a) {
                    c.setAttribute(f, "" + b)
                }
                var h = !T.support.hrefNormalized && e && g ? c.getAttribute(f, 2) : c.getAttribute(f);
                return h === null ? ab: h
            }
            if (!T.support.opacity && f == "opacity") {
                if (a) {
                    c.zoom = 1;
                    c.filter = (c.filter || "").replace(/alpha\([^)]*\)/, "") + (parseInt(b) + "" == "NaN" ? "": "alpha(opacity=" + b * 100 + ")")
                }
                return c.filter && c.filter.indexOf("opacity=") >= 0 ? (parseFloat(c.filter.match(/opacity=([^)]*)/)[1]) / 100) + "": ""
            }
            f = f.replace(/-([a-z])/ig,
            function(j, i) {
                return i.toUpperCase()
            });
            if (a) {
                c[f] = b
            }
            return c[f]
        },
        trim: function(a) {
            return (a || "").replace(/^\s+|\s+$/g, "")
        },
        makeArray: function(a) {
            var c = [];
            if (a != null) {
                var b = a.length;
                if (b == null || typeof a === "string" || T.isFunction(a) || a.setInterval) {
                    c[0] = a
                } else {
                    while (b) {
                        c[--b] = a[b]
                    }
                }
            }
            return c
        },
        inArray: function(b, a) {
            for (var d = 0,
            c = a.length; d < c; d++) {
                if (a[d] === b) {
                    return d
                }
            }
            return - 1
        },
        merge: function(b, e) {
            var d = 0,
            c, a = b.length;
            if (!T.support.getAll) {
                while ((c = e[d++]) != null) {
                    if (c.nodeType != 8) {
                        b[a++] = c
                    }
                }
            } else {
                while ((c = e[d++]) != null) {
                    b[a++] = c
                }
            }
            return b
        },
        unique: function(a) {
            var f = [],
            g = {};
            try {
                for (var e = 0,
                d = a.length; e < d; e++) {
                    var b = T.data(a[e]);
                    if (!g[b]) {
                        g[b] = true;
                        f.push(a[e])
                    }
                }
            } catch(c) {
                f = a
            }
            return f
        },
        grep: function(e, a, f) {
            var d = [];
            for (var c = 0,
            b = e.length; c < b; c++) {
                if (!f != !a(e[c], c)) {
                    d.push(e[c])
                }
            }
            return d
        },
        map: function(f, a) {
            var e = [];
            for (var d = 0,
            c = f.length; d < c; d++) {
                var b = a(f[d], d);
                if (b != null) {
                    e[e.length] = b
                }
            }
            return e.concat.apply([], e)
        }
    });
    var O = navigator.userAgent.toLowerCase();
    T.browser = {
        version: (O.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1],
        safari: /webkit/.test(O),
        opera: /opera/.test(O),
        msie: /msie/.test(O) && !/opera/.test(O),
        mozilla: /mozilla/.test(O) && !/(compatible|webkit)/.test(O)
    };
    T.each({
        parent: function(a) {
            return a.parentNode
        },
        parents: function(a) {
            return T.dir(a, "parentNode")
        },
        next: function(a) {
            return T.nth(a, 2, "nextSibling")
        },
        prev: function(a) {
            return T.nth(a, 2, "previousSibling")
        },
        nextAll: function(a) {
            return T.dir(a, "nextSibling")
        },
        prevAll: function(a) {
            return T.dir(a, "previousSibling")
        },
        siblings: function(a) {
            return T.sibling(a.parentNode.firstChild, a)
        },
        children: function(a) {
            return T.sibling(a.firstChild)
        },
        contents: function(a) {
            return T.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document: T.makeArray(a.childNodes)
        }
    },
    function(b, a) {
        T.fn[b] = function(d) {
            var c = T.map(this, a);
            if (d && typeof d == "string") {
                c = T.multiFilter(d, c)
            }
            return this.pushStack(T.unique(c), b, d)
        }
    });
    T.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    },
    function(b, a) {
        T.fn[b] = function() {
            var c = arguments;
            return this.each(function() {
                for (var e = 0,
                d = c.length; e < d; e++) {
                    T(c[e])[a](this)
                }
            })
        }
    });
    T.each({
        removeAttr: function(a) {
            T.attr(this, a, "");
            if (this.nodeType == 1) {
                this.removeAttribute(a)
            }
        },
        addClass: function(a) {
            T.className.add(this, a)
        },
        removeClass: function(a) {
            T.className.remove(this, a)
        },
        toggleClass: function(a, b) {
            if (typeof b !== "boolean") {
                b = !T.className.has(this, a)
            }
            T.className[b ? "add": "remove"](this, a)
        },
        remove: function(a) {
            if (!a || T.filter(a, [this]).length) {
                T("*", this).add([this]).each(function() {
                    T.event.remove(this);
                    T.removeData(this)
                });
                if (this.parentNode) {
                    this.parentNode.removeChild(this)
                }
            }
        },
        empty: function() {
            T(">*", this).remove();
            while (this.firstChild) {
                this.removeChild(this.firstChild)
            }
        }
    },
    function(b, a) {
        T.fn[b] = function() {
            return this.each(a, arguments)
        }
    });
    function Y(b, a) {
        return b[0] && parseInt(T.curCSS(b[0], a, true), 10) || 0
    }
    var aa = "jQuery" + ad(),
    I = 0,
    R = {};
    T.extend({
        cache: {},
        data: function(c, d, b) {
            c = c == W ? R: c;
            var a = c[aa];
            if (!a) {
                a = c[aa] = ++I
            }
            if (d && !T.cache[a]) {
                T.cache[a] = {}
            }
            if (b !== ab) {
                T.cache[a][d] = b
            }
            return d ? T.cache[a][d] : a
        },
        removeData: function(c, d) {
            c = c == W ? R: c;
            var a = c[aa];
            if (d) {
                if (T.cache[a]) {
                    delete T.cache[a][d];
                    d = "";
                    for (d in T.cache[a]) {
                        break
                    }
                    if (!d) {
                        T.removeData(c)
                    }
                }
            } else {
                try {
                    delete c[aa]
                } catch(b) {
                    if (c.removeAttribute) {
                        c.removeAttribute(aa)
                    }
                }
                delete T.cache[a]
            }
        },
        queue: function(c, d, a) {
            if (c) {
                d = (d || "fx") + "queue";
                var b = T.data(c, d);
                if (!b || T.isArray(a)) {
                    b = T.data(c, d, T.makeArray(a))
                } else {
                    if (a) {
                        b.push(a)
                    }
                }
            }
            return b
        },
        dequeue: function(a, b) {
            var d = T.queue(a, b),
            c = d.shift();
            if (!b || b === "fx") {
                c = d[0]
            }
            if (c !== ab) {
                c.call(a)
            }
        }
    });
    T.fn.extend({
        data: function(d, b) {
            var a = d.split(".");
            a[1] = a[1] ? "." + a[1] : "";
            if (b === ab) {
                var c = this.triggerHandler("getData" + a[1] + "!", [a[0]]);
                if (c === ab && this.length) {
                    c = T.data(this[0], d)
                }
                return c === ab && a[1] ? this.data(a[0]) : c
            } else {
                return this.trigger("setData" + a[1] + "!", [a[0], b]).each(function() {
                    T.data(this, d, b)
                })
            }
        },
        removeData: function(a) {
            return this.each(function() {
                T.removeData(this, a)
            })
        },
        queue: function(b, a) {
            if (typeof b !== "string") {
                a = b;
                b = "fx"
            }
            if (a === ab) {
                return T.queue(this[0], b)
            }
            return this.each(function() {
                var c = T.queue(this, b, a);
                if (b == "fx" && c.length == 1) {
                    c[0].call(this)
                }
            })
        },
        dequeue: function(a) {
            return this.each(function() {
                T.dequeue(this, a)
            })
        }
    }); (function() {
        var b = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,
        h = 0,
        l = Object.prototype.toString;
        var m = function(r, v, o, D) {
            o = o || [];
            v = v || document;
            if (v.nodeType !== 1 && v.nodeType !== 9) {
                return []
            }
            if (!r || typeof r !== "string") {
                return o
            }
            var q = [],
            t,
            A,
            x,
            w,
            C,
            u,
            s = true;
            b.lastIndex = 0;
            while ((t = b.exec(r)) !== null) {
                q.push(t[1]);
                if (t[2]) {
                    u = RegExp.rightContext;
                    break
                }
            }
            if (q.length > 1 && g.exec(r)) {
                if (q.length === 2 && k.relative[q[0]]) {
                    A = j(q[0] + q[1], v)
                } else {
                    A = k.relative[q[0]] ? [v] : m(q.shift(), v);
                    while (q.length) {
                        r = q.shift();
                        if (k.relative[r]) {
                            r += q.shift()
                        }
                        A = j(r, A)
                    }
                }
            } else {
                var B = D ? {
                    expr: q.pop(),
                    set: n(D)
                }: m.find(q.pop(), q.length === 1 && v.parentNode ? v.parentNode: v, c(v));
                A = m.filter(B.expr, B.set);
                if (q.length > 0) {
                    x = n(A)
                } else {
                    s = false
                }
                while (q.length) {
                    var y = q.pop(),
                    z = y;
                    if (!k.relative[y]) {
                        y = ""
                    } else {
                        z = q.pop()
                    }
                    if (z == null) {
                        z = v
                    }
                    k.relative[y](x, z, c(v))
                }
            }
            if (!x) {
                x = A
            }
            if (!x) {
                throw "Syntax error, unrecognized expression: " + (y || r)
            }
            if (l.call(x) === "[object Array]") {
                if (!s) {
                    o.push.apply(o, x)
                } else {
                    if (v.nodeType === 1) {
                        for (var p = 0; x[p] != null; p++) {
                            if (x[p] && (x[p] === true || x[p].nodeType === 1 && i(v, x[p]))) {
                                o.push(A[p])
                            }
                        }
                    } else {
                        for (var p = 0; x[p] != null; p++) {
                            if (x[p] && x[p].nodeType === 1) {
                                o.push(A[p])
                            }
                        }
                    }
                }
            } else {
                n(x, o)
            }
            if (u) {
                m(u, v, o, D)
            }
            return o
        };
        m.matches = function(p, o) {
            return m(p, null, null, o)
        };
        m.find = function(p, w, o) {
            var q, s;
            if (!p) {
                return []
            }
            for (var t = 0,
            u = k.order.length; t < u; t++) {
                var r = k.order[t],
                s;
                if ((s = k.match[r].exec(p))) {
                    var v = RegExp.leftContext;
                    if (v.substr(v.length - 1) !== "\\") {
                        s[1] = (s[1] || "").replace(/\\/g, "");
                        q = k.find[r](s, w, o);
                        if (q != null) {
                            p = p.replace(k.match[r], "");
                            break
                        }
                    }
                }
            }
            if (!q) {
                q = w.getElementsByTagName("*")
            }
            return {
                set: q,
                expr: p
            }
        };
        m.filter = function(C, o, z, t) {
            var u = C,
            x = [],
            q = o,
            r,
            w;
            while (C && o.length) {
                for (var p in k.filter) {
                    if ((r = k.match[p].exec(C)) != null) {
                        var v = k.filter[p],
                        y,
                        A;
                        w = false;
                        if (q == x) {
                            x = []
                        }
                        if (k.preFilter[p]) {
                            r = k.preFilter[p](r, q, z, x, t);
                            if (!r) {
                                w = y = true
                            } else {
                                if (r === true) {
                                    continue
                                }
                            }
                        }
                        if (r) {
                            for (var s = 0; (A = q[s]) != null; s++) {
                                if (A) {
                                    y = v(A, r, s, q);
                                    var B = t ^ !!y;
                                    if (z && y != null) {
                                        if (B) {
                                            w = true
                                        } else {
                                            q[s] = false
                                        }
                                    } else {
                                        if (B) {
                                            x.push(A);
                                            w = true
                                        }
                                    }
                                }
                            }
                        }
                        if (y !== ab) {
                            if (!z) {
                                q = x
                            }
                            C = C.replace(k.match[p], "");
                            if (!w) {
                                return []
                            }
                            break
                        }
                    }
                }
                C = C.replace(/\s*,\s*/, "");
                if (C == u) {
                    if (w == null) {
                        throw "Syntax error, unrecognized expression: " + C
                    } else {
                        break
                    }
                }
                u = C
            }
            return q
        };
        var k = m.selectors = {
            order: ["ID", "NAME", "TAG"],
            match: {
                ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
                ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
                TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
                CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
                POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
                PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
            },
            attrMap: {
                "class": "className",
                "for": "htmlFor"
            },
            attrHandle: {
                href: function(o) {
                    return o.getAttribute("href")
                }
            },
            relative: {
                "+": function(o, r) {
                    for (var q = 0,
                    s = o.length; q < s; q++) {
                        var p = o[q];
                        if (p) {
                            var t = p.previousSibling;
                            while (t && t.nodeType !== 1) {
                                t = t.previousSibling
                            }
                            o[q] = typeof r === "string" ? t || false: t === r
                        }
                    }
                    if (typeof r === "string") {
                        m.filter(r, o, true)
                    }
                },
                ">": function(u, r, t) {
                    if (typeof r === "string" && !/\W/.test(r)) {
                        r = t ? r: r.toUpperCase();
                        for (var q = 0,
                        s = u.length; q < s; q++) {
                            var o = u[q];
                            if (o) {
                                var p = o.parentNode;
                                u[q] = p.nodeName === r ? p: false
                            }
                        }
                    } else {
                        for (var q = 0,
                        s = u.length; q < s; q++) {
                            var o = u[q];
                            if (o) {
                                u[q] = typeof r === "string" ? o.parentNode: o.parentNode === r
                            }
                        }
                        if (typeof r === "string") {
                            m.filter(r, u, true)
                        }
                    }
                },
                "": function(p, r, t) {
                    var q = "done" + (h++),
                    s = a;
                    if (!r.match(/\W/)) {
                        var o = r = t ? r: r.toUpperCase();
                        s = d
                    }
                    s("parentNode", r, q, p, o, t)
                },
                "~": function(p, r, t) {
                    var q = "done" + (h++),
                    s = a;
                    if (typeof r === "string" && !r.match(/\W/)) {
                        var o = r = t ? r: r.toUpperCase();
                        s = d
                    }
                    s("previousSibling", r, q, p, o, t)
                }
            },
            find: {
                ID: function(q, p, o) {
                    if (typeof p.getElementById !== "undefined" && !o) {
                        var r = p.getElementById(q[1]);
                        return r ? [r] : []
                    }
                },
                NAME: function(q, p, o) {
                    if (typeof p.getElementsByName !== "undefined" && !o) {
                        return p.getElementsByName(q[1])
                    }
                },
                TAG: function(p, o) {
                    return o.getElementsByTagName(p[1])
                }
            },
            preFilter: {
                CLASS: function(p, r, q, s, t) {
                    p = " " + p[1].replace(/\\/g, "") + " ";
                    var u;
                    for (var o = 0; (u = r[o]) != null; o++) {
                        if (u) {
                            if (t ^ (" " + u.className + " ").indexOf(p) >= 0) {
                                if (!q) {
                                    s.push(u)
                                }
                            } else {
                                if (q) {
                                    r[o] = false
                                }
                            }
                        }
                    }
                    return false
                },
                ID: function(o) {
                    return o[1].replace(/\\/g, "")
                },
                TAG: function(p, q) {
                    for (var o = 0; q[o] === false; o++) {}
                    return q[o] && c(q[o]) ? p[1] : p[1].toUpperCase()
                },
                CHILD: function(p) {
                    if (p[1] == "nth") {
                        var o = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(p[2] == "even" && "2n" || p[2] == "odd" && "2n+1" || !/\D/.test(p[2]) && "0n+" + p[2] || p[2]);
                        p[2] = (o[1] + (o[2] || 1)) - 0;
                        p[3] = o[3] - 0
                    }
                    p[0] = "done" + (h++);
                    return p
                },
                ATTR: function(o) {
                    var p = o[1].replace(/\\/g, "");
                    if (k.attrMap[p]) {
                        o[1] = k.attrMap[p]
                    }
                    if (o[2] === "~=") {
                        o[4] = " " + o[4] + " "
                    }
                    return o
                },
                PSEUDO: function(o, r, q, s, t) {
                    if (o[1] === "not") {
                        if (o[3].match(b).length > 1) {
                            o[3] = m(o[3], null, null, r)
                        } else {
                            var p = m.filter(o[3], r, q, true ^ t);
                            if (!q) {
                                s.push.apply(s, p)
                            }
                            return false
                        }
                    } else {
                        if (k.match.POS.test(o[0])) {
                            return true
                        }
                    }
                    return o
                },
                POS: function(o) {
                    o.unshift(true);
                    return o
                }
            },
            filters: {
                enabled: function(o) {
                    return o.disabled === false && o.type !== "hidden"
                },
                disabled: function(o) {
                    return o.disabled === true
                },
                checked: function(o) {
                    return o.checked === true
                },
                selected: function(o) {
                    o.parentNode.selectedIndex;
                    return o.selected === true
                },
                parent: function(o) {
                    return !! o.firstChild
                },
                empty: function(o) {
                    return ! o.firstChild
                },
                has: function(o, p, q) {
                    return !! m(q[3], o).length
                },
                header: function(o) {
                    return /h\d/i.test(o.nodeName)
                },
                text: function(o) {
                    return "text" === o.type
                },
                radio: function(o) {
                    return "radio" === o.type
                },
                checkbox: function(o) {
                    return "checkbox" === o.type
                },
                file: function(o) {
                    return "file" === o.type
                },
                password: function(o) {
                    return "password" === o.type
                },
                submit: function(o) {
                    return "submit" === o.type
                },
                image: function(o) {
                    return "image" === o.type
                },
                reset: function(o) {
                    return "reset" === o.type
                },
                button: function(o) {
                    return "button" === o.type || o.nodeName.toUpperCase() === "BUTTON"
                },
                input: function(o) {
                    return /input|select|textarea|button/i.test(o.nodeName)
                }
            },
            setFilters: {
                first: function(o, p) {
                    return p === 0
                },
                last: function(p, q, r, o) {
                    return q === o.length - 1
                },
                even: function(o, p) {
                    return p % 2 === 0
                },
                odd: function(o, p) {
                    return p % 2 === 1
                },
                lt: function(o, p, q) {
                    return p < q[3] - 0
                },
                gt: function(o, p, q) {
                    return p > q[3] - 0
                },
                nth: function(o, p, q) {
                    return q[3] - 0 == p
                },
                eq: function(o, p, q) {
                    return q[3] - 0 == p
                }
            },
            filter: {
                CHILD: function(w, t) {
                    var q = t[1],
                    p = w.parentNode;
                    var r = t[0];
                    if (p && (!p[r] || !w.nodeIndex)) {
                        var s = 1;
                        for (var v = p.firstChild; v; v = v.nextSibling) {
                            if (v.nodeType == 1) {
                                v.nodeIndex = s++
                            }
                        }
                        p[r] = s - 1
                    }
                    if (q == "first") {
                        return w.nodeIndex == 1
                    } else {
                        if (q == "last") {
                            return w.nodeIndex == p[r]
                        } else {
                            if (q == "only") {
                                return p[r] == 1
                            } else {
                                if (q == "nth") {
                                    var x = false,
                                    u = t[2],
                                    o = t[3];
                                    if (u == 1 && o == 0) {
                                        return true
                                    }
                                    if (u == 0) {
                                        if (w.nodeIndex == o) {
                                            x = true
                                        }
                                    } else {
                                        if ((w.nodeIndex - o) % u == 0 && (w.nodeIndex - o) / u >= 0) {
                                            x = true
                                        }
                                    }
                                    return x
                                }
                            }
                        }
                    }
                },
                PSEUDO: function(u, q, p, t) {
                    var r = q[1],
                    o = k.filters[r];
                    if (o) {
                        return o(u, p, q, t)
                    } else {
                        if (r === "contains") {
                            return (u.textContent || u.innerText || "").indexOf(q[3]) >= 0
                        } else {
                            if (r === "not") {
                                var v = q[3];
                                for (var p = 0,
                                s = v.length; p < s; p++) {
                                    if (v[p] === u) {
                                        return false
                                    }
                                }
                                return true
                            }
                        }
                    }
                },
                ID: function(o, p) {
                    return o.nodeType === 1 && o.getAttribute("id") === p
                },
                TAG: function(o, p) {
                    return (p === "*" && o.nodeType === 1) || o.nodeName === p
                },
                CLASS: function(o, p) {
                    return p.test(o.className)
                },
                ATTR: function(o, q) {
                    var s = k.attrHandle[q[1]] ? k.attrHandle[q[1]](o) : o[q[1]] || o.getAttribute(q[1]),
                    t = s + "",
                    p = q[2],
                    r = q[4];
                    return s == null ? p === "!=": p === "=" ? t === r: p === "*=" ? t.indexOf(r) >= 0 : p === "~=" ? (" " + t + " ").indexOf(r) >= 0 : !q[4] ? s: p === "!=" ? t != r: p === "^=" ? t.indexOf(r) === 0 : p === "$=" ? t.substr(t.length - r.length) === r: p === "|=" ? t === r || t.substr(0, r.length + 1) === r + "-": false
                },
                POS: function(o, r, q, t) {
                    var s = r[2],
                    p = k.setFilters[s];
                    if (p) {
                        return p(o, q, r, t)
                    }
                }
            }
        };
        var g = k.match.POS;
        for (var e in k.match) {
            k.match[e] = RegExp(k.match[e].source + /(?![^\[]*\])(?![^\(]*\))/.source)
        }
        var n = function(o, p) {
            o = Array.prototype.slice.call(o);
            if (p) {
                p.push.apply(p, o);
                return p
            }
            return o
        };
        try {
            Array.prototype.slice.call(document.documentElement.childNodes)
        } catch(f) {
            n = function(o, p) {
                var r = p || [];
                if (l.call(o) === "[object Array]") {
                    Array.prototype.push.apply(r, o)
                } else {
                    if (typeof o.length === "number") {
                        for (var q = 0,
                        s = o.length; q < s; q++) {
                            r.push(o[q])
                        }
                    } else {
                        for (var q = 0; o[q]; q++) {
                            r.push(o[q])
                        }
                    }
                }
                return r
            }
        } (function() {
            var p = document.createElement("form"),
            o = "script" + (new Date).getTime();
            p.innerHTML = "<input name='" + o + "'/>";
            var q = document.documentElement;
            q.insertBefore(p, q.firstChild);
            if ( !! document.getElementById(o)) {
                k.find.ID = function(r, u, t) {
                    if (typeof u.getElementById !== "undefined" && !t) {
                        var s = u.getElementById(r[1]);
                        return s ? s.id === r[1] || typeof s.getAttributeNode !== "undefined" && s.getAttributeNode("id").nodeValue === r[1] ? [s] : ab: []
                    }
                };
                k.filter.ID = function(t, s) {
                    var r = typeof t.getAttributeNode !== "undefined" && t.getAttributeNode("id");
                    return t.nodeType === 1 && r && r.nodeValue === s
                }
            }
            q.removeChild(p)
        })(); (function() {
            var o = document.createElement("div");
            o.appendChild(document.createComment(""));
            if (o.getElementsByTagName("*").length > 0) {
                k.find.TAG = function(s, t) {
                    var p = t.getElementsByTagName(s[1]);
                    if (s[1] === "*") {
                        var q = [];
                        for (var r = 0; p[r]; r++) {
                            if (p[r].nodeType === 1) {
                                q.push(p[r])
                            }
                        }
                        p = q
                    }
                    return p
                }
            }
            o.innerHTML = "<a href='#'></a>";
            if (o.firstChild && o.firstChild.getAttribute("href") !== "#") {
                k.attrHandle.href = function(p) {
                    return p.getAttribute("href", 2)
                }
            }
        })();
        if (document.querySelectorAll) { (function() {
                var p = m,
                o = document.createElement("div");
                o.innerHTML = "<p class='TEST'></p>";
                if (o.querySelectorAll && o.querySelectorAll(".TEST").length === 0) {
                    return
                }
                m = function(u, q, s, r) {
                    q = q || document;
                    if (!r && q.nodeType === 9 && !c(q)) {
                        try {
                            return n(q.querySelectorAll(u), s)
                        } catch(t) {}
                    }
                    return p(u, q, s, r)
                };
                m.find = p.find;
                m.filter = p.filter;
                m.selectors = p.selectors;
                m.matches = p.matches
            })()
        }
        if (document.getElementsByClassName && document.documentElement.getElementsByClassName) {
            k.order.splice(1, 0, "CLASS");
            k.find.CLASS = function(p, o) {
                return o.getElementsByClassName(p[1])
            }
        }
        function d(v, p, q, x, o, y) {
            for (var s = 0,
            u = x.length; s < u; s++) {
                var w = x[s];
                if (w) {
                    w = w[v];
                    var r = false;
                    while (w && w.nodeType) {
                        var t = w[q];
                        if (t) {
                            r = x[t];
                            break
                        }
                        if (w.nodeType === 1 && !y) {
                            w[q] = s
                        }
                        if (w.nodeName === p) {
                            r = w;
                            break
                        }
                        w = w[v]
                    }
                    x[s] = r
                }
            }
        }
        function a(v, q, r, x, p, o) {
            for (var t = 0,
            u = x.length; t < u; t++) {
                var w = x[t];
                if (w) {
                    w = w[v];
                    var s = false;
                    while (w && w.nodeType) {
                        if (w[r]) {
                            s = x[w[r]];
                            break
                        }
                        if (w.nodeType === 1) {
                            if (!o) {
                                w[r] = t
                            }
                            if (typeof q !== "string") {
                                if (w === q) {
                                    s = true;
                                    break
                                }
                            } else {
                                if (m.filter(q, [w]).length > 0) {
                                    s = w;
                                    break
                                }
                            }
                        }
                        w = w[v]
                    }
                    x[t] = s
                }
            }
        }
        var i = document.compareDocumentPosition ?
        function(o, p) {
            return o.compareDocumentPosition(p) & 16
        }: function(o, p) {
            return o !== p && (o.contains ? o.contains(p) : true)
        };
        var c = function(o) {
            return o.nodeType === 9 && o.documentElement.nodeName !== "HTML" || !!o.ownerDocument && c(o.ownerDocument)
        };
        var j = function(s, t) {
            var p = [],
            o = "",
            v,
            q = t.nodeType ? [t] : t;
            while ((v = k.match.PSEUDO.exec(s))) {
                o += v[0];
                s = s.replace(k.match.PSEUDO, "")
            }
            s = k.relative[s] ? s + "*": s;
            for (var u = 0,
            r = q.length; u < r; u++) {
                m(s, q[u], p)
            }
            return m.filter(o, p)
        };
        T.find = m;
        T.filter = m.filter;
        T.expr = m.selectors;
        T.expr[":"] = T.expr.filters;
        m.selectors.filters.hidden = function(o) {
            return "hidden" === o.type || T.css(o, "display") === "none" || T.css(o, "visibility") === "hidden"
        };
        m.selectors.filters.visible = function(o) {
            return "hidden" !== o.type && T.css(o, "display") !== "none" && T.css(o, "visibility") !== "hidden"
        };
        m.selectors.filters.animated = function(o) {
            return T.grep(T.timers,
            function(p) {
                return o === p.elem
            }).length
        };
        T.multiFilter = function(o, q, p) {
            if (p) {
                o = ":not(" + o + ")"
            }
            return m.matches(o, q)
        };
        T.dir = function(p, q) {
            var r = [],
            o = p[q];
            while (o && o != document) {
                if (o.nodeType == 1) {
                    r.push(o)
                }
                o = o[q]
            }
            return r
        };
        T.nth = function(o, s, q, p) {
            s = s || 1;
            var r = 0;
            for (; o; o = o[q]) {
                if (o.nodeType == 1 && ++r == s) {
                    break
                }
            }
            return o
        };
        T.sibling = function(o, p) {
            var q = [];
            for (; o; o = o.nextSibling) {
                if (o.nodeType == 1 && o != p) {
                    q.push(o)
                }
            }
            return q
        };
        return;
        W.Sizzle = m
    })();
    T.event = {
        add: function(c, f, d, a) {
            if (c.nodeType == 3 || c.nodeType == 8) {
                return
            }
            if (c.setInterval && c != W) {
                c = W
            }
            if (!d.guid) {
                d.guid = this.guid++
            }
            if (a !== ab) {
                var e = d;
                d = this.proxy(e);
                d.data = a
            }
            var g = T.data(c, "events") || T.data(c, "events", {}),
            b = T.data(c, "handle") || T.data(c, "handle",
            function() {
                return typeof T !== "undefined" && !T.event.triggered ? T.event.handle.apply(arguments.callee.elem, arguments) : ab
            });
            b.elem = c;
            T.each(f.split(/\s+/),
            function(k, j) {
                var i = j.split(".");
                j = i.shift();
                d.type = i.slice().sort().join(".");
                var h = g[j];
                if (T.event.specialAll[j]) {
                    T.event.specialAll[j].setup.call(c, a, i)
                }
                if (!h) {
                    h = g[j] = {};
                    if (!T.event.special[j] || T.event.special[j].setup.call(c, a, i) === false) {
                        if (c.addEventListener) {
                            c.addEventListener(j, b, false)
                        } else {
                            if (c.attachEvent) {
                                c.attachEvent("on" + j, b)
                            }
                        }
                    }
                }
                h[d.guid] = d;
                T.event.global[j] = true
            });
            c = null
        },
        guid: 1,
        global: {},
        remove: function(b, e, c) {
            if (b.nodeType == 3 || b.nodeType == 8) {
                return
            }
            var f = T.data(b, "events"),
            g,
            h;
            if (f) {
                if (e === ab || (typeof e === "string" && e.charAt(0) == ".")) {
                    for (var d in f) {
                        this.remove(b, d + (e || ""))
                    }
                } else {
                    if (e.type) {
                        c = e.handler;
                        e = e.type
                    }
                    T.each(e.split(/\s+/),
                    function(m, k) {
                        var i = k.split(".");
                        k = i.shift();
                        var l = RegExp("(^|\\.)" + i.slice().sort().join(".*\\.") + "(\\.|$)");
                        if (f[k]) {
                            if (c) {
                                delete f[k][c.guid]
                            } else {
                                for (var j in f[k]) {
                                    if (l.test(f[k][j].type)) {
                                        delete f[k][j]
                                    }
                                }
                            }
                            if (T.event.specialAll[k]) {
                                T.event.specialAll[k].teardown.call(b, i)
                            }
                            for (g in f[k]) {
                                break
                            }
                            if (!g) {
                                if (!T.event.special[k] || T.event.special[k].teardown.call(b, i) === false) {
                                    if (b.removeEventListener) {
                                        b.removeEventListener(k, T.data(b, "handle"), false)
                                    } else {
                                        if (b.detachEvent) {
                                            b.detachEvent("on" + k, T.data(b, "handle"))
                                        }
                                    }
                                }
                                g = null;
                                delete f[k]
                            }
                        }
                    })
                }
                for (g in f) {
                    break
                }
                if (!g) {
                    var a = T.data(b, "handle");
                    if (a) {
                        a.elem = null
                    }
                    T.removeData(b, "events");
                    T.removeData(b, "handle")
                }
            }
        },
        trigger: function(d, b, e, h) {
            var f = d.type || d;
            if (!h) {
                d = typeof d === "object" ? d[aa] ? d: T.extend(T.Event(f), d) : T.Event(f);
                if (f.indexOf("!") >= 0) {
                    d.type = f = f.slice(0, -1);
                    d.exclusive = true
                }
                if (!e) {
                    d.stopPropagation();
                    if (this.global[f]) {
                        T.each(T.cache,
                        function() {
                            if (this.events && this.events[f]) {
                                T.event.trigger(d, b, this.handle.elem)
                            }
                        })
                    }
                }
                if (!e || e.nodeType == 3 || e.nodeType == 8) {
                    return ab
                }
                d.result = ab;
                d.target = e;
                b = T.makeArray(b);
                b.unshift(d)
            }
            d.currentTarget = e;
            var c = T.data(e, "handle");
            if (c) {
                c.apply(e, b)
            }
            if ((!e[f] || (T.nodeName(e, "a") && f == "click")) && e["on" + f] && e["on" + f].apply(e, b) === false) {
                d.result = false
            }
            if (!h && e[f] && !d.isDefaultPrevented() && !(T.nodeName(e, "a") && f == "click")) {
                this.triggered = true;
                try {
                    e[f]()
                } catch(a) {}
            }
            this.triggered = false;
            if (!d.isPropagationStopped()) {
                var g = e.parentNode || e.ownerDocument;
                if (g) {
                    T.event.trigger(d, b, g, true)
                }
            }
        },
        handle: function(b) {
            var c, h;
            b = arguments[0] = T.event.fix(b || W.event);
            var a = b.type.split(".");
            b.type = a.shift();
            c = !a.length && !b.exclusive;
            var d = RegExp("(^|\\.)" + a.slice().sort().join(".*\\.") + "(\\.|$)");
            h = (T.data(this, "events") || {})[b.type];
            for (var f in h) {
                var e = h[f];
                if (c || d.test(e.type)) {
                    b.handler = e;
                    b.data = e.data;
                    var g = e.apply(this, arguments);
                    if (g !== ab) {
                        b.result = g;
                        if (g === false) {
                            b.preventDefault();
                            b.stopPropagation()
                        }
                    }
                    if (b.isImmediatePropagationStopped()) {
                        break
                    }
                }
            }
        },
        props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
        fix: function(c) {
            if (c[aa]) {
                return c
            }
            var e = c;
            c = T.Event(e);
            for (var d = this.props.length,
            a; d;) {
                a = this.props[--d];
                c[a] = e[a]
            }
            if (!c.target) {
                c.target = c.srcElement || document
            }
            if (c.target.nodeType == 3) {
                c.target = c.target.parentNode
            }
            if (!c.relatedTarget && c.fromElement) {
                c.relatedTarget = c.fromElement == c.target ? c.toElement: c.fromElement
            }
            if (c.pageX == null && c.clientX != null) {
                var b = document.documentElement,
                f = document.body;
                c.pageX = c.clientX + (b && b.scrollLeft || f && f.scrollLeft || 0) - (b.clientLeft || 0);
                c.pageY = c.clientY + (b && b.scrollTop || f && f.scrollTop || 0) - (b.clientTop || 0)
            }
            if (!c.which && ((c.charCode || c.charCode === 0) ? c.charCode: c.keyCode)) {
                c.which = c.charCode || c.keyCode
            }
            if (!c.metaKey && c.ctrlKey) {
                c.metaKey = c.ctrlKey
            }
            if (!c.which && c.button) {
                c.which = (c.button & 1 ? 1 : (c.button & 2 ? 3 : (c.button & 4 ? 2 : 0)))
            }
            return c
        },
        proxy: function(a, b) {
            b = b ||
            function() {
                return a.apply(this, arguments)
            };
            b.guid = a.guid = a.guid || b.guid || this.guid++;
            return b
        },
        special: {
            ready: {
                setup: P,
                teardown: function() {}
            }
        },
        specialAll: {
            live: {
                setup: function(b, a) {
                    T.event.add(this, a[0], af)
                },
                teardown: function(a) {
                    if (a.length) {
                        var c = 0,
                        b = RegExp("(^|\\.)" + a[0] + "(\\.|$)");
                        T.each((T.data(this, "events").live || {}),
                        function() {
                            if (b.test(this.type)) {
                                c++
                            }
                        });
                        if (c < 1) {
                            T.event.remove(this, a[0], af)
                        }
                    }
                }
            }
        }
    };
    T.Event = function(a) {
        if (!this.preventDefault) {
            return new T.Event(a)
        }
        if (a && a.type) {
            this.originalEvent = a;
            this.type = a.type
        } else {
            this.type = a
        }
        this.timeStamp = ad();
        this[aa] = true
    };
    function X() {
        return false
    }
    function J() {
        return true
    }
    T.Event.prototype = {
        preventDefault: function() {
            this.isDefaultPrevented = J;
            var a = this.originalEvent;
            if (!a) {
                return
            }
            if (a.preventDefault) {
                a.preventDefault()
            }
            a.returnValue = false
        },
        stopPropagation: function() {
            this.isPropagationStopped = J;
            var a = this.originalEvent;
            if (!a) {
                return
            }
            if (a.stopPropagation) {
                a.stopPropagation()
            }
            a.cancelBubble = true
        },
        stopImmediatePropagation: function() {
            this.isImmediatePropagationStopped = J;
            this.stopPropagation()
        },
        isDefaultPrevented: X,
        isPropagationStopped: X,
        isImmediatePropagationStopped: X
    };
    var ah = function(b) {
        var c = b.relatedTarget;
        while (c && c != this) {
            try {
                c = c.parentNode
            } catch(a) {
                c = this
            }
        }
        if (c != this) {
            b.type = b.data;
            T.event.handle.apply(this, arguments)
        }
    };
    T.each({
        mouseover: "mouseenter",
        mouseout: "mouseleave"
    },
    function(a, b) {
        T.event.special[b] = {
            setup: function() {
                T.event.add(this, a, ah, b)
            },
            teardown: function() {
                T.event.remove(this, a, ah)
            }
        }
    });
    T.fn.extend({
        bind: function(b, a, c) {
            return b == "unload" ? this.one(b, a, c) : this.each(function() {
                T.event.add(this, b, c || a, c && a)
            })
        },
        one: function(b, a, c) {
            var d = T.event.proxy(c || a,
            function(e) {
                T(this).unbind(e, d);
                return (c || a).apply(this, arguments)
            });
            return this.each(function() {
                T.event.add(this, b, d, c && a)
            })
        },
        unbind: function(a, b) {
            return this.each(function() {
                T.event.remove(this, a, b)
            })
        },
        trigger: function(b, a) {
            return this.each(function() {
                T.event.trigger(b, a, this)
            })
        },
        triggerHandler: function(c, a) {
            if (this[0]) {
                var b = T.Event(c);
                b.preventDefault();
                b.stopPropagation();
                T.event.trigger(b, a, this[0]);
                return b.result
            }
        },
        toggle: function(a) {
            var c = arguments,
            b = 1;
            while (b < c.length) {
                T.event.proxy(a, c[b++])
            }
            return this.click(T.event.proxy(a,
            function(d) {
                this.lastToggle = (this.lastToggle || 0) % b;
                d.preventDefault();
                return c[this.lastToggle++].apply(this, arguments) || false
            }))
        },
        hover: function(b, a) {
            return this.mouseenter(b).mouseleave(a)
        },
        ready: function(a) {
            P();
            if (T.isReady) {
                a.call(document, T)
            } else {
                T.readyList.push(a)
            }
            return this
        },
        live: function(a, b) {
            var c = T.event.proxy(b);
            c.guid += this.selector + a;
            T(document).bind(Z(a, this.selector), this.selector, c);
            return this
        },
        die: function(a, b) {
            T(document).unbind(Z(a, this.selector), b ? {
                guid: b.guid + this.selector + a
            }: null);
            return this
        }
    });
    function af(a) {
        var d = RegExp("(^|\\.)" + a.type + "(\\.|$)"),
        b = true,
        c = [];
        T.each(T.data(this, "events").live || [],
        function(g, f) {
            if (d.test(f.type)) {
                var e = T(a.target).closest(f.data)[0];
                if (e) {
                    c.push({
                        elem: e,
                        fn: f
                    })
                }
            }
        });
        T.each(c,
        function() {
            if (this.fn.call(this.elem, a, this.fn.data) === false) {
                b = false
            }
        });
        return b
    }
    function Z(a, b) {
        return ["live", a, b.replace(/\./g, "`").replace(/ /g, "|")].join(".")
    }
    T.extend({
        isReady: false,
        readyList: [],
        ready: function() {
            if (!T.isReady) {
                T.isReady = true;
                if (T.readyList) {
                    T.each(T.readyList,
                    function() {
                        this.call(document, T)
                    });
                    T.readyList = null
                }
                T(document).triggerHandler("ready")
            }
        }
    });
    var G = false;
    function P() {
        if (G) {
            return
        }
        G = true;
        if (document.addEventListener) {
            document.addEventListener("DOMContentLoaded",
            function() {
                document.removeEventListener("DOMContentLoaded", arguments.callee, false);
                T.ready()
            },
            false)
        } else {
            if (document.attachEvent) {
                document.attachEvent("onreadystatechange",
                function() {
                    if (document.readyState === "complete") {
                        document.detachEvent("onreadystatechange", arguments.callee);
                        T.ready()
                    }
                });
                if (document.documentElement.doScroll && typeof W.frameElement === "undefined") { (function() {
                        if (T.isReady) {
                            return
                        }
                        try {
                            document.documentElement.doScroll("left")
                        } catch(a) {
                            setTimeout(arguments.callee, 0);
                            return
                        }
                        T.ready()
                    })()
                }
            }
        }
        T.event.add(W, "load", T.ready)
    }
    T.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),
    function(a, b) {
        T.fn[b] = function(c) {
            return c ? this.bind(b, c) : this.trigger(b)
        }
    });
    T(W).bind("unload",
    function() {
        for (var a in T.cache) {
            if (a != 1 && T.cache[a].handle) {
                T.event.remove(T.cache[a].handle.elem)
            }
        }
    }); (function() {
        T.support = {};
        var f = document.documentElement,
        e = document.createElement("script"),
        a = document.createElement("div"),
        b = "script" + (new Date).getTime();
        a.style.display = "none";
        a.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
        var d = a.getElementsByTagName("*"),
        g = a.getElementsByTagName("a")[0];
        if (!d || !d.length || !g) {
            return
        }
        T.support = {
            leadingWhitespace: a.firstChild.nodeType == 3,
            tbody: !a.getElementsByTagName("tbody").length,
            objectAll: !!a.getElementsByTagName("object")[0].getElementsByTagName("*").length,
            htmlSerialize: !!a.getElementsByTagName("link").length,
            style: /red/.test(g.getAttribute("style")),
            hrefNormalized: g.getAttribute("href") === "/a",
            opacity: g.style.opacity === "0.5",
            cssFloat: !!g.style.cssFloat,
            scriptEval: false,
            noCloneEvent: true,
            boxModel: null
        };
        e.type = "text/javascript";
        try {
            e.appendChild(document.createTextNode("window." + b + "=1;"))
        } catch(c) {}
        f.insertBefore(e, f.firstChild);
        if (W[b]) {
            T.support.scriptEval = true;
            delete W[b]
        }
        f.removeChild(e);
        if (a.attachEvent && a.fireEvent) {
            a.attachEvent("onclick",
            function() {
                T.support.noCloneEvent = false;
                a.detachEvent("onclick", arguments.callee)
            });
            a.cloneNode(true).fireEvent("onclick")
        }
        T(function() {
            var h = document.createElement("div");
            h.style.width = "1px";
            h.style.paddingLeft = "1px";
            document.body.appendChild(h);
            T.boxModel = T.support.boxModel = h.offsetWidth === 2;
            document.body.removeChild(h)
        })
    })();
    var H = T.support.cssFloat ? "cssFloat": "styleFloat";
    T.props = {
        "for": "htmlFor",
        "class": "className",
        "float": H,
        cssFloat: H,
        styleFloat: H,
        readonly: "readOnly",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        rowspan: "rowSpan",
        tabindex: "tabIndex"
    };
    T.fn.extend({
        _load: T.fn.load,
        load: function(e, b, a) {
            if (typeof e !== "string") {
                return this._load(e)
            }
            var c = e.indexOf(" ");
            if (c >= 0) {
                var g = e.slice(c, e.length);
                e = e.slice(0, c)
            }
            var d = "GET";
            if (b) {
                if (T.isFunction(b)) {
                    a = b;
                    b = null
                } else {
                    if (typeof b === "object") {
                        b = T.param(b);
                        d = "POST"
                    }
                }
            }
            var f = this;
            T.ajax({
                url: e,
                type: d,
                dataType: "html",
                data: b,
                complete: function(i, h) {
                    if (h == "success" || h == "notmodified") {
                        f.html(g ? T("<div/>").append(i.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(g) : i.responseText)
                    }
                    if (a) {
                        f.each(a, [i.responseText, h, i])
                    }
                }
            });
            return this
        },
        serialize: function() {
            return T.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                return this.elements ? T.makeArray(this.elements) : this
            }).filter(function() {
                return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type))
            }).map(function(c, b) {
                var a = T(this).val();
                return a == null ? null: T.isArray(a) ? T.map(a,
                function(d, e) {
                    return {
                        name: b.name,
                        value: d
                    }
                }) : {
                    name: b.name,
                    value: a
                }
            }).get()
        }
    });
    T.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),
    function(b, a) {
        T.fn[a] = function(c) {
            return this.bind(a, c)
        }
    });
    var N = ad();
    T.extend({
        get: function(d, b, a, c) {
            if (T.isFunction(b)) {
                a = b;
                b = null
            }
            return T.ajax({
                type: "GET",
                url: d,
                data: b,
                success: a,
                dataType: c
            })
        },
        getScript: function(b, a) {
            return T.get(b, null, a, "script")
        },
        getJSON: function(c, b, a) {
            return T.get(c, b, a, "json")
        },
        post: function(d, b, a, c) {
            if (T.isFunction(b)) {
                a = b;
                b = {}
            }
            return T.ajax({
                type: "POST",
                url: d,
                data: b,
                success: a,
                dataType: c
            })
        },
        ajaxSetup: function(a) {
            T.extend(T.ajaxSettings, a)
        },
        ajaxSettings: {
            url: location.href,
            global: true,
            type: "GET",
            contentType: "application/x-www-form-urlencoded",
            processData: true,
            async: true,
            xhr: function() {
                return W.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest()
            },
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                script: "text/javascript, application/javascript",
                json: "application/json, text/javascript",
                text: "text/plain",
                _default: "*/*"
            }
        },
        lastModified: {},
        ajax: function(k) {
            k = T.extend(true, k, T.extend(true, {},
            T.ajaxSettings, k));
            var a, r = /=\?(&|$)/g,
            f, b, q = k.type.toUpperCase();
            if (k.data && k.processData && typeof k.data !== "string") {
                k.data = T.param(k.data)
            }
            if (k.dataType == "jsonp") {
                if (q == "GET") {
                    if (!k.url.match(r)) {
                        k.url += (k.url.match(/\?/) ? "&": "?") + (k.jsonp || "callback") + "=?"
                    }
                } else {
                    if (!k.data || !k.data.match(r)) {
                        k.data = (k.data ? k.data + "&": "") + (k.jsonp || "callback") + "=?"
                    }
                }
                k.dataType = "json"
            }
            if (k.dataType == "json" && (k.data && k.data.match(r) || k.url.match(r))) {
                a = "jsonp" + N++;
                if (k.data) {
                    k.data = (k.data + "").replace(r, "=" + a + "$1")
                }
                k.url = k.url.replace(r, "=" + a + "$1");
                k.dataType = "script";
                W[a] = function(u) {
                    b = u;
                    o();
                    l();
                    W[a] = ab;
                    try {
                        delete W[a]
                    } catch(t) {}
                    if (p) {
                        p.removeChild(d)
                    }
                }
            }
            if (k.dataType == "script" && k.cache == null) {
                k.cache = false
            }
            if (k.cache === false && q == "GET") {
                var s = ad();
                var c = k.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + s + "$2");
                k.url = c + ((c == k.url) ? (k.url.match(/\?/) ? "&": "?") + "_=" + s: "")
            }
            if (k.data && q == "GET") {
                k.url += (k.url.match(/\?/) ? "&": "?") + k.data;
                k.data = null
            }
            if (k.global && !T.active++) {
                T.event.trigger("ajaxStart")
            }
            var g = /^(\w+:)?\/\/([^\/?#]+)/.exec(k.url);
            if (k.dataType == "script" && q == "GET" && g && (g[1] && g[1] != location.protocol || g[2] != location.host)) {
                var p = document.getElementsByTagName("head")[0];
                var d = document.createElement("script");
                d.src = k.url;
                if (k.scriptCharset) {
                    d.charset = k.scriptCharset
                }
                if (!a) {
                    var i = false;
                    d.onload = d.onreadystatechange = function() {
                        if (!i && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
                            i = true;
                            o();
                            l();
                            p.removeChild(d)
                        }
                    }
                }
                p.appendChild(d);
                return ab
            }
            var m = false;
            var n = k.xhr();
            if (k.username) {
                n.open(q, k.url, k.async, k.username, k.password)
            } else {
                n.open(q, k.url, k.async)
            }
            try {
                if (k.data) {
                    n.setRequestHeader("Content-Type", k.contentType)
                }
                if (k.ifModified) {
                    n.setRequestHeader("If-Modified-Since", T.lastModified[k.url] || "Thu, 01 Jan 1970 00:00:00 GMT")
                }
                n.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                n.setRequestHeader("Accept", k.dataType && k.accepts[k.dataType] ? k.accepts[k.dataType] + ", */*": k.accepts._default)
            } catch(e) {}
            if (k.beforeSend && k.beforeSend(n, k) === false) {
                if (k.global && !--T.active) {
                    T.event.trigger("ajaxStop")
                }
                n.abort();
                return false
            }
            if (k.global) {
                T.event.trigger("ajaxSend", [n, k])
            }
            var j = function(v) {
                if (n.readyState == 0) {
                    if (h) {
                        clearInterval(h);
                        h = null;
                        if (k.global && !--T.active) {
                            T.event.trigger("ajaxStop")
                        }
                    }
                } else {
                    if (!m && n && (n.readyState == 4 || v == "timeout")) {
                        m = true;
                        if (h) {
                            clearInterval(h);
                            h = null
                        }
                        f = v == "timeout" ? "timeout": !T.httpSuccess(n) ? "error": k.ifModified && T.httpNotModified(n, k.url) ? "notmodified": "success";
                        if (f == "success") {
                            try {
                                b = T.httpData(n, k.dataType, k)
                            } catch(t) {
                                f = "parsererror"
                            }
                        }
                        if (f == "success") {
                            var u;
                            try {
                                u = n.getResponseHeader("Last-Modified")
                            } catch(t) {}
                            if (k.ifModified && u) {
                                T.lastModified[k.url] = u
                            }
                            if (!a) {
                                o()
                            }
                        } else {
                            T.handleError(k, n, f)
                        }
                        l();
                        if (v) {
                            n.abort()
                        }
                        if (k.async) {
                            n = null
                        }
                    }
                }
            };
            if (k.async) {
                var h = setInterval(j, 13);
                if (k.timeout > 0) {
                    setTimeout(function() {
                        if (n && !m) {
                            j("timeout")
                        }
                    },
                    k.timeout)
                }
            }
            try {
                n.send(k.data)
            } catch(e) {
                T.handleError(k, n, null, e)
            }
            if (!k.async) {
                j()
            }
            function o() {
                if (k.success) {
                    k.success(b, f)
                }
                if (k.global) {
                    T.event.trigger("ajaxSuccess", [n, k])
                }
            }
            function l() {
                if (k.complete) {
                    k.complete(n, f)
                }
                if (k.global) {
                    T.event.trigger("ajaxComplete", [n, k])
                }
                if (k.global && !--T.active) {
                    T.event.trigger("ajaxStop")
                }
            }
            return n
        },
        handleError: function(c, a, d, b) {
            if (c.error) {
                c.error(a, d, b)
            }
            if (c.global) {
                T.event.trigger("ajaxError", [a, c, b])
            }
        },
        active: 0,
        httpSuccess: function(a) {
            try {
                return ! a.status && location.protocol == "file:" || (a.status >= 200 && a.status < 300) || a.status == 304 || a.status == 1223
            } catch(b) {}
            return false
        },
        httpNotModified: function(b, d) {
            try {
                var a = b.getResponseHeader("Last-Modified");
                return b.status == 304 || a == T.lastModified[d]
            } catch(c) {}
            return false
        },
        httpData: function(a, c, d) {
            var e = a.getResponseHeader("content-type"),
            f = c == "xml" || !c && e && e.indexOf("xml") >= 0,
            b = f ? a.responseXML: a.responseText;
            if (f && b.documentElement.tagName == "parsererror") {
                throw "parsererror"
            }
            if (d && d.dataFilter) {
                b = d.dataFilter(b, c)
            }
            if (typeof b === "string") {
                if (c == "script") {
                    T.globalEval(b)
                }
                if (c == "json") {
                    b = W["eval"]("(" + b + ")")
                }
            }
            return b
        },
        param: function(d) {
            var b = [];
            function a(f, e) {
                b[b.length] = encodeURIComponent(f) + "=" + encodeURIComponent(e)
            }
            if (T.isArray(d) || d.jquery) {
                T.each(d,
                function() {
                    a(this.name, this.value)
                })
            } else {
                for (var c in d) {
                    if (T.isArray(d[c])) {
                        T.each(d[c],
                        function() {
                            a(c, this)
                        })
                    } else {
                        a(c, T.isFunction(d[c]) ? d[c]() : d[c])
                    }
                }
            }
            return b.join("&").replace(/%20/g, "+")
        }
    });
    var V = {},
    U, ae = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]];
    function K(b, c) {
        var a = {};
        T.each(ae.concat.apply([], ae.slice(0, c)),
        function() {
            a[this] = b
        });
        return a
    }
    T.fn.extend({
        show: function(c, a) {
            if (c) {
                return this.animate(K("show", 3), c, a)
            } else {
                for (var e = 0,
                g = this.length; e < g; e++) {
                    var h = T.data(this[e], "olddisplay");
                    this[e].style.display = h || "";
                    if (T.css(this[e], "display") === "none") {
                        var f = this[e].tagName,
                        b;
                        if (V[f]) {
                            b = V[f]
                        } else {
                            var d = T("<" + f + " />").appendTo("body");
                            b = d.css("display");
                            if (b === "none") {
                                b = "block"
                            }
                            d.remove();
                            V[f] = b
                        }
                        this[e].style.display = T.data(this[e], "olddisplay", b)
                    }
                }
                return this
            }
        },
        hide: function(b, a) {
            if (b) {
                return this.animate(K("hide", 3), b, a)
            } else {
                for (var c = 0,
                d = this.length; c < d; c++) {
                    var e = T.data(this[c], "olddisplay");
                    if (!e && e !== "none") {
                        T.data(this[c], "olddisplay", T.css(this[c], "display"))
                    }
                    this[c].style.display = "none"
                }
                return this
            }
        },
        _toggle: T.fn.toggle,
        toggle: function(a, b) {
            var c = typeof a === "boolean";
            return T.isFunction(a) && T.isFunction(b) ? this._toggle.apply(this, arguments) : a == null || c ? this.each(function() {
                var d = c ? a: T(this).is(":hidden");
                T(this)[d ? "show": "hide"]()
            }) : this.animate(K("toggle", 3), a, b)
        },
        fadeTo: function(c, a, b) {
            return this.animate({
                opacity: a
            },
            c, b)
        },
        animate: function(a, d, b, c) {
            var e = T.speed(d, b, c);
            return this[e.queue === false ? "each": "queue"](function() {
                var g = T.extend({},
                e),
                i,
                f = this.nodeType == 1 && T(this).is(":hidden"),
                h = this;
                for (i in a) {
                    if (a[i] == "hide" && f || a[i] == "show" && !f) {
                        return g.complete.call(this)
                    }
                    if ((i == "height" || i == "width") && this.style) {
                        g.display = T.css(this, "display");
                        g.overflow = this.style.overflow
                    }
                }
                if (g.overflow != null) {
                    this.style.overflow = "hidden"
                }
                g.curAnim = T.extend({},
                a);
                T.each(a,
                function(o, k) {
                    var l = new T.fx(h, g, o);
                    if (/toggle|show|hide/.test(k)) {
                        l[k == "toggle" ? f ? "show": "hide": k](a)
                    } else {
                        var m = k.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
                        j = l.cur(true) || 0;
                        if (m) {
                            var p = parseFloat(m[2]),
                            n = m[3] || "px";
                            if (n != "px") {
                                h.style[o] = (p || 1) + n;
                                j = ((p || 1) / l.cur(true)) * j;
                                h.style[o] = j + n
                            }
                            if (m[1]) {
                                p = ((m[1] == "-=" ? -1 : 1) * p) + j
                            }
                            l.custom(j, p, n)
                        } else {
                            l.custom(j, k, "")
                        }
                    }
                });
                return true
            })
        },
        stop: function(b, c) {
            var a = T.timers;
            if (b) {
                this.queue([])
            }
            this.each(function() {
                for (var d = a.length - 1; d >= 0; d--) {
                    if (a[d].elem == this) {
                        if (c) {
                            a[d](true)
                        }
                        a.splice(d, 1)
                    }
                }
            });
            if (!c) {
                this.dequeue()
            }
            return this
        }
    });
    T.each({
        slideDown: K("show", 1),
        slideUp: K("hide", 1),
        slideToggle: K("toggle", 1),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        }
    },
    function(b, a) {
        T.fn[b] = function(d, c) {
            return this.animate(a, d, c)
        }
    });
    T.extend({
        speed: function(b, a, c) {
            var d = typeof b === "object" ? b: {
                complete: c || !c && a || T.isFunction(b) && b,
                duration: b,
                easing: c && a || a && !T.isFunction(a) && a
            };
            d.duration = T.fx.off ? 0 : typeof d.duration === "number" ? d.duration: T.fx.speeds[d.duration] || T.fx.speeds._default;
            d.old = d.complete;
            d.complete = function() {
                if (d.queue !== false) {
                    T(this).dequeue()
                }
                if (T.isFunction(d.old)) {
                    d.old.call(this)
                }
            };
            return d
        },
        easing: {
            linear: function(b, a, d, c) {
                return d + c * b
            },
            swing: function(b, a, d, c) {
                return (( - Math.cos(b * Math.PI) / 2) + 0.5) * c + d
            }
        },
        timers: [],
        fx: function(b, c, a) {
            this.options = c;
            this.elem = b;
            this.prop = a;
            if (!c.orig) {
                c.orig = {}
            }
        }
    });
    T.fx.prototype = {
        update: function() {
            if (this.options.step) {
                this.options.step.call(this.elem, this.now, this)
            } (T.fx.step[this.prop] || T.fx.step._default)(this);
            if ((this.prop == "height" || this.prop == "width") && this.elem.style) {
                this.elem.style.display = "block"
            }
        },
        cur: function(a) {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
                return this.elem[this.prop]
            }
            var b = parseFloat(T.css(this.elem, this.prop, a));
            return b && b > -10000 ? b: parseFloat(T.curCSS(this.elem, this.prop)) || 0
        },
        custom: function(a, b, c) {
            this.startTime = ad();
            this.start = a;
            this.end = b;
            this.unit = c || this.unit || "px";
            this.now = this.start;
            this.pos = this.state = 0;
            var e = this;
            function d(f) {
                return e.step(f)
            }
            d.elem = this.elem;
            if (d() && T.timers.push(d) == 1) {
                U = setInterval(function() {
                    var f = T.timers;
                    for (var g = 0; g < f.length; g++) {
                        if (!f[g]()) {
                            f.splice(g--, 1)
                        }
                    }
                    if (!f.length) {
                        clearInterval(U)
                    }
                },
                13)
            }
        },
        show: function() {
            this.options.orig[this.prop] = T.attr(this.elem.style, this.prop);
            this.options.show = true;
            this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
            T(this.elem).show()
        },
        hide: function() {
            this.options.orig[this.prop] = T.attr(this.elem.style, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        },
        step: function(c) {
            var d = ad();
            if (c || d >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                var f = true;
                for (var e in this.options.curAnim) {
                    if (this.options.curAnim[e] !== true) {
                        f = false
                    }
                }
                if (f) {
                    if (this.options.display != null) {
                        this.elem.style.overflow = this.options.overflow;
                        this.elem.style.display = this.options.display;
                        if (T.css(this.elem, "display") == "none") {
                            this.elem.style.display = "block"
                        }
                    }
                    if (this.options.hide) {
                        T(this.elem).hide()
                    }
                    if (this.options.hide || this.options.show) {
                        for (var b in this.options.curAnim) {
                            T.attr(this.elem.style, b, this.options.orig[b])
                        }
                    }
                    this.options.complete.call(this.elem)
                }
                return false
            } else {
                var a = d - this.startTime;
                this.state = a / this.options.duration;
                this.pos = T.easing[this.options.easing || (T.easing.swing ? "swing": "linear")](this.state, a, 0, 1, this.options.duration);
                this.now = this.start + ((this.end - this.start) * this.pos);
                this.update()
            }
            return true
        }
    };
    T.extend(T.fx, {
        speeds: {
            slow: 600,
            fast: 200,
            _default: 400
        },
        step: {
            opacity: function(a) {
                T.attr(a.elem.style, "opacity", a.now)
            },
            _default: function(a) {
                if (a.elem.style && a.elem.style[a.prop] != null) {
                    a.elem.style[a.prop] = a.now + a.unit
                } else {
                    a.elem[a.prop] = a.now
                }
            }
        }
    });
    if (document.documentElement.getBoundingClientRect) {
        T.fn.offset = function() {
            if (!this[0]) {
                return {
                    top: 0,
                    left: 0
                }
            }
            if (this[0] === this[0].ownerDocument.body) {
                return T.offset.bodyOffset(this[0])
            }
            var f = this[0].getBoundingClientRect(),
            c = this[0].ownerDocument,
            g = c.body,
            h = c.documentElement,
            a = h.clientTop || g.clientTop || 0,
            b = h.clientLeft || g.clientLeft || 0,
            d = f.top + (self.pageYOffset || T.boxModel && h.scrollTop || g.scrollTop) - a,
            e = f.left + (self.pageXOffset || T.boxModel && h.scrollLeft || g.scrollLeft) - b;
            return {
                top: d,
                left: e
            }
        }
    } else {
        T.fn.offset = function() {
            if (!this[0]) {
                return {
                    top: 0,
                    left: 0
                }
            }
            if (this[0] === this[0].ownerDocument.body) {
                return T.offset.bodyOffset(this[0])
            }
            T.offset.initialized || T.offset.initialize();
            var f = this[0],
            i = f.offsetParent,
            j = f,
            a = f.ownerDocument,
            c,
            h = a.documentElement,
            e = a.body,
            d = a.defaultView,
            k = d.getComputedStyle(f, null),
            b = f.offsetTop,
            g = f.offsetLeft;
            while ((f = f.parentNode) && f !== e && f !== h) {
                c = d.getComputedStyle(f, null);
                b -= f.scrollTop,
                g -= f.scrollLeft;
                if (f === i) {
                    b += f.offsetTop,
                    g += f.offsetLeft;
                    if (T.offset.doesNotAddBorder && !(T.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(f.tagName))) {
                        b += parseInt(c.borderTopWidth, 10) || 0,
                        g += parseInt(c.borderLeftWidth, 10) || 0
                    }
                    j = i,
                    i = f.offsetParent
                }
                if (T.offset.subtractsBorderForOverflowNotVisible && c.overflow !== "visible") {
                    b += parseInt(c.borderTopWidth, 10) || 0,
                    g += parseInt(c.borderLeftWidth, 10) || 0
                }
                k = c
            }
            if (k.position === "relative" || k.position === "static") {
                b += e.offsetTop,
                g += e.offsetLeft
            }
            if (k.position === "fixed") {
                b += Math.max(h.scrollTop, e.scrollTop),
                g += Math.max(h.scrollLeft, e.scrollLeft)
            }
            return {
                top: b,
                left: g
            }
        }
    }
    T.offset = {
        initialize: function() {
            if (this.initialized) {
                return
            }
            var c = document.body,
            i = document.createElement("div"),
            g,
            h,
            a,
            f,
            b,
            j,
            e = c.style.marginTop,
            d = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
            b = {
                position: "absolute",
                top: 0,
                left: 0,
                margin: 0,
                border: 0,
                width: "1px",
                height: "1px",
                visibility: "hidden"
            };
            for (j in b) {
                i.style[j] = b[j]
            }
            i.innerHTML = d;
            c.insertBefore(i, c.firstChild);
            g = i.firstChild,
            h = g.firstChild,
            f = g.nextSibling.firstChild.firstChild;
            this.doesNotAddBorder = (h.offsetTop !== 5);
            this.doesAddBorderForTableAndCells = (f.offsetTop === 5);
            g.style.overflow = "hidden",
            g.style.position = "relative";
            this.subtractsBorderForOverflowNotVisible = (h.offsetTop === -5);
            c.style.marginTop = "1px";
            this.doesNotIncludeMarginInBodyOffset = (c.offsetTop === 0);
            c.style.marginTop = e;
            c.removeChild(i);
            this.initialized = true
        },
        bodyOffset: function(c) {
            T.offset.initialized || T.offset.initialize();
            var a = c.offsetTop,
            b = c.offsetLeft;
            if (T.offset.doesNotIncludeMarginInBodyOffset) {
                a += parseInt(T.curCSS(c, "marginTop", true), 10) || 0,
                b += parseInt(T.curCSS(c, "marginLeft", true), 10) || 0
            }
            return {
                top: a,
                left: b
            }
        }
    };
    T.fn.extend({
        position: function() {
            var b = 0,
            c = 0,
            e;
            if (this[0]) {
                var d = this.offsetParent(),
                a = this.offset(),
                f = /^body|html$/i.test(d[0].tagName) ? {
                    top: 0,
                    left: 0
                }: d.offset();
                a.top -= Y(this, "marginTop");
                a.left -= Y(this, "marginLeft");
                f.top += Y(d, "borderTopWidth");
                f.left += Y(d, "borderLeftWidth");
                e = {
                    top: a.top - f.top,
                    left: a.left - f.left
                }
            }
            return e
        },
        offsetParent: function() {
            var a = this[0].offsetParent || document.body;
            while (a && (!/^body|html$/i.test(a.tagName) && T.css(a, "position") == "static")) {
                a = a.offsetParent
            }
            return T(a)
        }
    });
    T.each(["Left", "Top"],
    function(b, c) {
        var a = "scroll" + c;
        T.fn[a] = function(d) {
            if (!this[0]) {
                return null
            }
            return d !== ab ? this.each(function() {
                this == W || this == document ? W.scrollTo(!b ? d: T(W).scrollLeft(), b ? d: T(W).scrollTop()) : this[a] = d
            }) : this[0] == W || this[0] == document ? self[b ? "pageYOffset": "pageXOffset"] || T.boxModel && document.documentElement[a] || document.body[a] : this[0][a]
        }
    });
    T.each(["Height", "Width"],
    function(b, d) {
        var e = b ? "Left": "Top",
        c = b ? "Right": "Bottom";
        T.fn["inner" + d] = function() {
            return this[d.toLowerCase()]() + Y(this, "padding" + e) + Y(this, "padding" + c)
        };
        T.fn["outer" + d] = function(f) {
            return this["inner" + d]() + Y(this, "border" + e + "Width") + Y(this, "border" + c + "Width") + (f ? Y(this, "margin" + e) + Y(this, "margin" + c) : 0)
        };
        var a = d.toLowerCase();
        T.fn[a] = function(f) {
            return this[0] == W ? document.compatMode == "CSS1Compat" && document.documentElement["client" + d] || document.body["client" + d] : this[0] == document ? Math.max(document.documentElement["client" + d], document.body["scroll" + d], document.documentElement["scroll" + d], document.body["offset" + d], document.documentElement["offset" + d]) : f === ab ? (this.length ? T.css(this[0], a) : null) : this.css(a, typeof f === "string" ? f: f + "px")
        }
    })
})();
resetModulNaviTimer = 5000;
hideCo2LayerTimer = 5000;
var i, e;
var browserAtributeLength, browserId, platform;
var imgCountTotal, lowImageSrc, highImageSrc, currentImg, currentState, currentAct, currentPerm, checkLoad;
var slideAmount;
var divNum, documentLeftScroll, documentTopScroll, mouseX, mouseY, loopDragging;
var speedHorizontal, speedVertical, currentBack, goup, godown, speed, currentObjNo;
var setDivPosition, setBackPosition, currentObjId, currentSpeed, currenDirection, currentDelay;
var diffWidth, diffHeight, lastWidth, lastHeight, currentDiv;
var popupWindow, winUrl;
var ua = navigator.userAgent.toLowerCase();
var an = navigator.appName.toLowerCase();
var framesetPage = "index_narrowband.html";
var framesetPageHighend = "index_highend.html";
var currentStep = 0;
var windowWidth = 0;
var windowHeight = 0;
var browserVersion = 0;
var loaded = 0;
var divLeft = 0;
var divTop = 0;
var looping = -1;
var slideCount = -1;
var writeBrowser = "";
var tempAct = "";
var slideNumber = "";
var slideDescription = "";
var preLoadArray = [];
var preLoadCounter = [];
var highImages = [];
var lowImages = [];
var slideText = [];
var permanentActive = [];
var slideImages = [];
var allowedDomain = ["://www.bmw.", "://bmw.", "://origin.bmw.", "://secure.bmw.", "://wcms10.bmwgroup.com", "://liintra.muc", "://ltintra.muc", "://www-at.bmw", "://www-nl.bmw", "://www-be.bmw", "://www-lu.bmw", "://www-pt.bmw", "://www-ie.bmw", "://www-jp.bmw", "://www-fr.bmw", "://www-cz.bmw", "://www-sk.bmw", "://www-se.bmw", "://www-it.bmw", "://ecom.bmwgroup", "://ecomi.bmwgroup", "localhost"];
var supportedOS = false;
var supportedVersion = false;
var currentLoop = false;
var dragAllowed = false;
var divIsMoving = false;
var flashversion = false;
var topFrame = null;
var contentFrame = null;
var bottomFrame = null;
var historyFrame = null;
var hiddenFrame = null;
var allowClose = true;
var modulNaviOverImage = true;
var idmodulsSpecial = "";
var minFlashVersion = 7;
var isMainnavigation = false;
var indexParameters = "";
var query = {};
var parameterArray = [];
var scrollerDefaultSize = 1024;
var scrollerCheckElements = [];
var scrollerSize = scrollerDefaultSize;
var scrollerBgImage;
var scrollerSliderImage;
var scrollerImageUp;
var scrollerImageDown;
var persoEventType = "";
var persoSeries, persoBodytype, persoModel, persoColor, persoRim;
var cookieName = "bmw_bbDetection";
var chosenConnection = "";
var akamaiCookieName = "bandwidth";
var prmContent = "";
var divsToBeAltered = [];
var useCurtain = false;
if (typeof confBandwidthCheckEnabled != "undefined") {
    if (confBandwidthCheckEnabled == true) {
        setCookie("bandwidth", bandwidth_category, "", "/")
    }
}
Array.prototype.unique = function() {
    var c = {};
    for (var b = 0; b < this.length; b++) {
        c[this[b]] = true
    }
    var a = new Array();
    for (var b in c) {
        a[a.length] = b
    }
    return a
};
if (typeof browser != "object") {
    browser = [["Opera", "opera ", "9.0", "windows", "mac os x", "other"], ["Safari", "safari/", "125", "", "mac os x", ""], ["Netscape", "netscape/", "7.1", "windows", "mac os x", "other"], ["Firefox", "firefox/", "1.0", "windows", "mac os x", "other"], ["Mozilla", "rv:", "1.7", "windows", "mac os x", "other"], ["MSIE", "msie ", "5.5", "windows", "", ""], ["Netscape4", "mozilla/", "4.0", "", "", ""]]
}
function openQuestionnaire() {}
function ssoCloseDialog() {}
function checkClient() {
    var a = browser.length;
    for (i = 0; i < a; i++) {
        browserAtributeLength = browser[i].length;
        if (ua.indexOf(browser[i][1]) != -1) {
            browserId = browser[i][0];
            for (e = 3; e < browserAtributeLength; e++) {
                if (browser[i][e] != "" && (ua.indexOf(browser[i][e]) != -1 || browser[i][e] == "other")) {
                    supportedOS = true;
                    platform = browser[i][e];
                    break
                } else {
                    supportedOS = false
                }
            }
            browserVersion = ua.split(browser[i][1]);
            browserVersion = parseFloat(browserVersion[1].slice(0, 3));
            if (browserVersion >= browser[i][2]) {
                supportedVersion = true
            } else {
                supportedVersion = false
            }
            break
        } else {
            browserId = "unknown"
        }
    }
    browserId = ((browserId == "MSIE") ? (((/\s+msie\s+7\.\d+/).test(navigator.appVersion.toLowerCase())) ? ("MSIE7") : (browserId)) : (browserId))
}
function checkBrowser(a) {
    checkClient();
    return true
}
function checkFrameset() {}
function removeClassName(b, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (hasClassName(b, a)) {
        b.className = b.className.replace(new RegExp(a), "")
    }
}
function replaceClassName(c, a, b) {
    if (typeof c != "object") {
        c = document.getElementById(c)
    }
    if (hasClassName(c, a)) {
        c.className = c.className.replace(new RegExp(a), b)
    }
}
function hasClassName(b, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    return (b.className.indexOf(a) != -1)
}
function addClassName(b, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (!hasClassName(b, a)) {
        b.className += " " + a
    }
}
function pageHandler() {
    splitSearchString();
    if (query.content) {
        if (query.content.indexOf("://") != -1) {
            var b = false;
            for (i = 0; i < allowedDomain.length; i++) {
                if (query.content.indexOf(allowedDomain[i]) != -1) {
                    b = true;
                    break
                }
            }
            if (b) {
                initContentURL = query.content;
                indexParameters = "";
                for (var a in query) {
                    if (a == "content") {
                        continue
                    }
                    if (indexParameters == "") {
                        indexParameters += "?"
                    } else {
                        indexParameters += "&"
                    }
                    indexParameters += a + "=" + query[a]
                }
            }
        } else {
            initContentURL = query.content;
            indexParameters = "";
            for (a in query) {
                if (a == "content") {
                    continue
                }
                if (indexParameters == "") {
                    indexParameters += "?"
                } else {
                    indexParameters += "&"
                }
                indexParameters += a + "=" + query[a]
            }
        }
    }
}
function setFrameVariables() {
    contentFrame = frames[0];
    bottomFrame = frames[1];
    historyFrame = frames[2];
    hiddenFrame = frames[3]
}
function getFrameset(a) {
    var b = "";
    pageHandler();
    if (a == "flash" || a == "html") {
        if (a == "html") {
            initHistoryURL = initHiddenURL
        }
        b += '<frameset rows="*,29" frameborder="no" border="0" onload="setFrameVariables()">';
        b += '<frame src="' + initContentURL + '" name="frameContent" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto" />';
        b += '<frameset cols="*,1,1" frameborder="no" border="0">';
        b += '  <frame src="' + initBottomURL + '" name="frameBottom"  frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />';
        b += '  <frame src="' + initHistoryURL + '" name="frameHistory" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />';
        b += '  <frame src="' + initHiddenURL + '" name="hiddenFrame"  frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />';
        b += "</frameset>"
    } else {
        if (a == "shortcut") {
            b += '<frameset rows="99%,1%" frameborder="no" border="0">';
            b += ' <frame src="' + initContentURL + '" name="frameContent" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto" />';
            b += ' <frame src="' + initHiddenURL + '" name="hiddenFrame"  frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />'
        } else {
            if (a == "popup") {
                b += '<frameset rows="96,*" frameborder="no" border="0">';
                b += ' <frame src="' + initTopURL + '" name="frameTop"  frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />';
                b += ' <frame src="' + initContentURL + '" name="frameContent" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto" />'
            } else {
                b = "Error: Function getFrameset called with illegal parameter (" + a + ")"
            }
        }
    }
    b += "</frameset>";
    return b
}
function preload() {
    if (typeof slideImagesCollection != "undefined") {
        slideAmount = slideImagesCollection.length
    }
    for (i = 0; i < slideAmount; i++) {
        slideImages[i] = new Image();
        slideImages[i].src = slideImagesCollection[i]
    }
    loaded = 2;
    imgCountTotal = document.images.length;
    for (i = 0; i < imgCountTotal; i++) {
        if (typeof document.getElementsByTagName("img")[i].getAttribute("preload") == "string") {
            lowImageSrc = document.getElementsByTagName("img")[i].src;
            if (document.getElementsByTagName("img")[i].getAttribute("preload").indexOf("/") != -1) {
                highImageSrc = document.getElementsByTagName("img")[i].getAttribute("preload")
            } else {
                var b = lowImageSrc.split("/");
                var a = b.length;
                var c = "";
                for (e = 0; e < a - 1; e++) {
                    c += b[e] + "/"
                }
                highImageSrc = c + document.getElementsByTagName("img")[i].getAttribute("preload")
            }
            highImages[document.images[i].id] = new Image();
            highImages[document.images[i].id].src = highImageSrc;
            lowImages[document.images[i].id] = new Image();
            lowImages[document.images[i].id].src = lowImageSrc
        }
        if (i < imgCountTotal - 1) {
            loaded = 3
        }
        if (i == imgCountTotal - 1) {
            loaded = 1
        }
    }
}
function switchImage(c, d, a, f, b) {
    currentImg = c;
    currentState = d;
    currentAct = a;
    currentPerm = f;
    if (typeof b == "string" && b != "all") {
        document.getElementsByTagName("img")[b].src = lowImages[b].src;
        delete permanentActive[b];
        if (b == tempAct) {
            tempAct = ""
        }
    } else {
        if (b == "all") {
            dropPermanentAll()
        }
    }
    if (loaded == 1) {
        clearTimeout(checkLoad);
        if (tempAct != "" && c != tempAct && a == 1 && !permanentActive[tempAct]) {
            document.getElementsByTagName("img")[tempAct].src = lowImages[tempAct].src
        }
        if ((tempAct == "" || c != tempAct) && !permanentActive[c]) {
            if (d == 1) {
                document.getElementsByTagName("img")[c].src = highImages[c].src
            } else {
                document.getElementsByTagName("img")[c].src = lowImages[c].src
            }
        }
        if (a == 1) {
            tempAct = c
        }
        if (f == 1) {
            permanentActive[c] = c
        }
    } else {
        if (loaded == 2) {
            checkLoad = setTimeout("switchImage(currentImg,currentState,currentAct,currentPerm)", 50)
        } else {
            if (loaded == 3) {
                preload();
                checkLoad = setTimeout("switchImage(currentImg,currentState,currentAct,currentPerm)", 50)
            }
        }
    }
}
function dropPermanentAll() {
    for (var a in permanentActive) {
        if (lowImages[a].src) {
            document.getElementsByTagName("img")[a].src = lowImages[a].src
        }
        delete permanentActive[a]
    }
    if (tempAct != "") {
        if (lowImages[a].src) {
            document.getElementsByTagName("img")[tempAct].src = lowImages[tempAct].src
        }
        tempAct = ""
    }
}
function setSlideshow(b, a) {
    currenDirection = b;
    currentDelay = a;
    if (b == "forward") {
        slideCount++;
        if (slideCount > slideAmount - 1) {
            slideCount = 0
        }
    } else {
        if (b == "backward") {
            slideCount--;
            if (slideCount < 0) {
                slideCount = slideAmount - 1
            }
        } else {
            slideCount = 0
        }
    }
    if (a) {
        looping = setTimeout("setSlideshow(currenDirection,currentDelay)", currentDelay)
    } else {
        clearTimeout(looping);
        looping = -1
    }
    document.getElementById("slideshow").src = slideImages[slideCount].src
}
function toggleSlideshow(b, a) {
    if (!b) {
        b = currenDirection
    }
    if (!a) {
        a = currentDelay
    }
    if (looping > -1) {
        clearTimeout(looping);
        looping = -1
    } else {
        setSlideshow(b, a)
    }
}
function setClassName(b, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (b) {
        b.className = a
    }
}
function setColor(a, b) {
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    if (a) {
        a.style.color = b
    }
}
function getAbsoluteLeft(a) {
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    var b = 0;
    if (a) {
        while (a.offsetParent !== null) {
            b += a.offsetLeft;
            a = a.offsetParent
        }
        b += a.offsetLeft
    }
    return b
}
function getAbsoluteTop(b) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    var a = 0;
    if (b) {
        while (b.offsetParent !== null) {
            a += b.offsetTop;
            b = b.offsetParent
        }
        a += b.offsetTop
    }
    return a
}
function getDivInformation(a, b) {
    divInformation = [];
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    if (a) {
        divInformation.offsetLeft = a.offsetLeft;
        divInformation.offsetTop = a.offsetTop;
        divInformation.styleLeft = parseInt(a.style.left);
        divInformation.styleTop = parseInt(a.style.top);
        divInformation.width = a.offsetWidth;
        divInformation.height = a.offsetHeight;
        divInformation.visibility = a.style.visibility;
        divInformation.display = a.style.display;
        divInformation.zIndex = a.style.zIndex;
        return divInformation[b]
    }
}
function writeIntoLayer(a, b) {
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    if (a) {
        a.innerHTML = b
    }
}
lastPositions = [];
currentPositions = [];
currentPositions.navigation = [, ];
function moveObject(c, f, b, h, d) {
    if (typeof c != "object") {
        c = document.getElementById(c)
    }
    if (c) {
        if (f) {
            divLeft = f
        } else {
            if ((typeof f == "undefined" || typeof f == "string") && (typeof d == "undefined" || d == 0)) {
                divLeft = getDivInformation(c, "offsetLeft")
            }
        }
        if (b) {
            divTop = b
        } else {
            if ((typeof b == "undefined" || typeof b == "string") && (typeof d == "undefined" || d == 0)) {
                divTop = getDivInformation(c, "offsetTop")
            }
        }
        if (!lastPositions[c.id]) {
            lastPositions[c.id] = [, ]
        }
        if (typeof d != "undefined" && d == 1 && f == lastPositions[c.id][0] && b == lastPositions[c.id][1]) {
            currentBack = d;
            divLeft = currentPositions[c.id][0];
            divTop = currentPositions[c.id][1]
        }
        if (!divIsMoving) {
            currentPositions[c.id] = [getDivInformation(c, "offsetLeft"), getDivInformation(c, "offsetTop")]
        }
        if (h) {
            var g = currentPositions[c.id][0] - divLeft;
            var a = currentPositions[c.id][1] - divTop;
            currentObjId = c;
            currentSpeed = h;
            currentStep++;
            if (f != "" || f == 0) {
                if (g > 0) {
                    c.style.left = (currentPositions[c.id][0] - Math.round(currentStep * h)) + "px";
                    if (divLeft - getDivInformation(c, "offsetLeft") > 5) {
                        c.style.left = divLeft + "px"
                    }
                } else {
                    if (g < 0) {
                        c.style.left = (currentPositions[c.id][0] + Math.round(currentStep * h)) + "px";
                        if (divLeft - getDivInformation(c, "offsetLeft") < 5) {
                            c.style.left = divLeft + "px"
                        }
                    }
                }
            }
            if (b != "" || b == 0) {
                if (a > 0) {
                    c.style.top = (currentPositions[c.id][1] - Math.round(currentStep * h)) + "px";
                    if (divTop - getDivInformation(c, "offsetTop") > 5) {
                        c.style.top = divTop + "px"
                    }
                } else {
                    if (a < 0) {
                        c.style.top = (currentPositions[c.id][1] + Math.round(currentStep * h)) + "px";
                        if (divTop - getDivInformation(c, "offsetTop") < 5) {
                            c.style.top = divTop + "px"
                        }
                    }
                }
            }
            if (getDivInformation(c, "offsetLeft") == f && getDivInformation(c, "offsetTop") == b) {
                divIsMoving = false;
                currentStep = 0;
                currentBack = 0;
                divLeft = 0;
                divTop = 0;
                lastPositions[c.id] = [f, b];
                clearTimeout(setDivPosition)
            } else {
                divIsMoving = true;
                setDivPosition = setTimeout("moveObject(currentObjId,divLeft,divTop,currentSpeed)", 10)
            }
        } else {
            if (divLeft != "" || divLeft == 0) {
                c.style.left = divLeft + "px"
            }
            if (divTop != "" || divTop == 0) {
                c.style.top = divTop + "px"
            }
            currentBack = 0;
            divLeft = 0;
            divTop = 0;
            lastPositions[c.id] = [f, b]
        }
    }
}
function mousePosition(a) {
    if (window.event) {
        a = window.event
    }
    mouseX = a.clientX;
    mouseY = a.clientY
}
function getWindowInformation(b) {
    var a = [];
    a.winWidth = document.body.clientWidth;
    if (document.body.clientHeight == 0) {
        a.winHeight = window.innerHeight
    } else {
        a.winHeight = document.body.clientHeight
    }
    a.docWidth = document.body.scrollWidth;
    a.docHeight = document.body.scrollHeight;
    a.scrollLeft = document.body.scrollLeft;
    a.scrollTop = document.body.scrollTop;
    return a[b]
}
function getCurrentStyle(d, b) {
    var a;
    if (document.documentElement && document.defaultView) {
        a = document.defaultView.getComputedStyle(d, "").getPropertyValue(b)
    } else {
        if (document.documentElement && document.documentElement.currentStyle) {
            var c = /([ a-z ]*)\-([ a-z ])([ a-z ]*)/;
            while (c.test(b)) {
                c.exec(b);
                b = RegExp.$1 + RegExp.$2.toUpperCase() + RegExp.$3
            }
            a = d.currentStyle[b]
        }
    }
    return a
}
var currentState, currentDisplayState;
function setVisibility(b, a, c, d) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (b) {
        if (typeof a == "undefined" && typeof c == "undefined") {
            currentState = getDivInformation(b, "visibility");
            currentDisplayState = getDivInformation(b, "display");
            if (currentState == "") {
                if (d) {
                    currentState = "visible"
                } else {
                    currentState = "hidden"
                }
            }
            if (currentDisplayState == "") {
                if (d) {
                    currentDisplayState = d
                } else {
                    currentDisplayState = "none"
                }
            }
            if (currentState == "hidden") {
                b.style.visibility = "visible"
            } else {
                if (currentState == "visible") {
                    b.style.visibility = "hidden"
                }
            }
            if (currentDisplayState == "none") {
                b.style.display = "block";
                b.style.visibility = "visible"
            } else {
                if (currentDisplayState == "block" || currentDisplayState == "inline") {
                    b.style.display = "none"
                }
            }
        } else {
            if (a == 1) {
                b.style.visibility = "visible"
            } else {
                if (a == 0) {
                    b.style.visibility = "hidden"
                }
            }
        }
        if (c) {
            b.style.display = c
        }
    }
}
function setZIndex(b, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (b) {
        b.style.zIndex = a
    }
}
function resizeLayer(b, c, a) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (b) {
        currentDiv = b;
        lastWidth = getDivInformation(b, "width");
        lastHeight = getDivInformation(b, "height");
        if (c) {
            if (typeof c == "string") {
                b.style.width = c
            } else {
                b.style.width = c + "px"
            }
        }
        if (a) {
            if (typeof a == "string") {
                b.style.height = a
            } else {
                b.style.height = a + "px"
            }
        }
    }
}
function clipLayer(b, a, d, c, f) {
    if (typeof b != "object") {
        b = document.getElementById(b)
    }
    if (b) {
        currentDiv = b;
        lastWidth = getDivInformation(b, "width");
        lastHeight = getDivInformation(b, "height");
        b.style.clip = "rect(" + a + "px " + d + "px " + c + "px " + f + "px)"
    }
}
function getClipping(a) {
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    if (a) {
        return a.style.clip
    }
}
function restoreLayer() {
    if (typeof currentDiv == "object") {
        if (typeof currentDiv.style.width != "undefined") {
            currentDiv.style.width = lastWidth + "px"
        }
        if (typeof currentDiv.style.height != "undefined") {
            currentDiv.style.height = lastHeight + "px"
        }
        if (typeof currentDiv.style.clip != "undefined") {
            currentDiv.style.clip = "rect(" + 0 + "px " + lastWidth + "px " + lastHeight + "px " + 0 + "px)"
        }
    }
}
function centerPopup(c, n, l, h, j, m, f, b, p) {
    if (!f) {
        f = 5
    }
    if (!b) {
        b = 15
    }
    if (!m) {
        m = 0
    }
    if (!p) {
        p = "no"
    }
    var o = (window.screen.width / 2) - (l / 2 + f);
    var d = (window.screen.height / 2) - (h / 2 + b);
    if ((typeof popupWindow != "object") || (typeof popupWindow == "object" && popupWindow.closed)) {
        if (document.all) {
            var k = "left=" + o + ",top=" + d
        } else {
            var k = "screenX=" + o + ",screenY=" + d
        }
        popupWindow = window.open(c, n, "toolbar=no,location=" + p + ",directories=no,status=no,menubar=no,scrollbars=" + m + ",resizable=no,width=" + l + ",height=" + h + ",copyhistory=no," + k + "");
        popupWindow.opener = self;
        popupWindow.focus();
        winUrl = c;
        windowWidth = l;
        windowHeight = h
    } else {
        if ((winUrl != c) || j) {
            popupWindow.location.href = c
        }
        if ((windowWidth + windowHeight > 0) && (l != windowWidth || h != windowHeight || f != diffWidth || b != diffHeight)) {
            var g = l - windowWidth;
            var a = h - windowHeight;
            popupWindow.resizeBy(g, a);
            popupWindow.moveTo(o, d)
        }
        popupWindow.focus();
        winUrl = c;
        windowWidth = l;
        windowHeight = h
    }
    diffWidth = f;
    diffHeight = b
}
function openPopupLink(c, a) {
    var b = a.split(",");
    if (b.length == 3) {
        centerPopup(c, b[0], b[1], b[2], false, false)
    } else {
        centerPopup(c, "searchwin", 800, 600, false, false)
    }
}
function openPopupParams(c, b, a) {
    if ((typeof popupWindow != "object") || (typeof popupWindow == "object" && popupWindow.closed)) {
        if (a) {
            popupWindow = window.open(c, b, a)
        } else {
            popupWindow = window.open(c, b)
        }
        popupWindow.opener = self;
        popupWindow.focus();
        winUrl = c
    } else {
        if (winUrl != c) {
            popupWindow.location.href = c
        }
        popupWindow.focus();
        winUrl = c
    }
}
function splitSearchString() {
    if (self.location.search.indexOf("=") == -1) {
        return
    }
    parameterArray = self.location.search.substring(1).split("&");
    for (var a = 0; a < parameterArray.length; a++) {
        pair = parameterArray[a].split("=");
        query[unescape(pair[0])] = (pair[1] ? unescape(pair[1]) : "")
    }
}
function getCookieValue(c) {
    var a = c + "=";
    var g = a.length;
    var d = 0;
    while (d < document.cookie.length) {
        var b = d + g;
        if (document.cookie.substring(d, b) == a) {
            var f = document.cookie.indexOf(";", b);
            if (f == -1) {
                f = document.cookie.length
            }
            return unescape(document.cookie.substring(b, f))
        }
        d = document.cookie.indexOf(" ", d) + 1;
        if (d == 0) {
            break
        }
    }
    return false
}
function isCookiesEnabled() {
    document.cookie = "bmwCookieEnabled=true";
    if (document.cookie.indexOf("bmwCookieEnabled=true") != -1) {
        var a = new Date();
        document.cookie = "bmwCookieEnabled=;expires=" + a.toGMTString();
        return true
    } else {
        return false
    }
}
function onLoadFunctions() {}
function onLoadFunctionsAddon() {}
function onUnloadFunctions() {}
var resizeDivs = new Array("mainNavigationContainer", "mainContainer", "mainImages", "mainImage");
function checkWindowSize() {
    resizeDivs = resizeDivs.concat(scrollerCheckElements);
    resizeDivs = resizeDivs.unique();
    var b;
    var a;
    if (getWindowInformation("winWidth") < scrollerSize) {
        for (b = 0; b < resizeDivs.length; b++) {
            if (document.getElementById(resizeDivs[b])) {
                a = 1000 - document.getElementById(resizeDivs[b]).offsetLeft;
                resizeLayer(resizeDivs[b], a + "px");
                if (resizeDivs[b] != "mainNavigationContainer" && resizeDivs[b] != "completePageContent") {
                    document.getElementById(resizeDivs[b]).style.overflow = "hidden"
                }
            }
        }
    } else {
        if (document.getElementById("mainNavi")) {
            resizeLayer("mainNavi", "100%")
        }
        for (b = 0; b < resizeDivs.length; b++) {
            if (document.getElementById(resizeDivs[b])) {
                if (!document.getElementById(resizeDivs[b]).offsetLeft) {
                    resizeLayer(resizeDivs[b], "100%")
                }
            }
        }
    }
}
function changeToHiEndVersion() {
    var b;
    if (document.getElementsByTagName("meta")["target-url-swf"]) {
        xmlMeta = document.getElementsByTagName("meta")["target-url-swf"].content;
        if (xmlMeta.indexOf("../") != -1) {
            pos1 = xmlMeta.lastIndexOf("../") + 2;
            pos2 = xmlMeta.lastIndexOf(".");
            b = buildValidServerRelativeUrl(xmlMeta.slice(pos1, pos2))
        }
    }
    b = (b.indexOf("/bmw_edit/") != -1) ? b.replace("/bmw_edit/", "/") : b;
    b = (b.indexOf("/bmw_qa/") != -1) ? b.replace("/bmw_qa/", "/") : b;
    b = (b.indexOf("/bmw_prod/") != -1) ? b.replace("/bmw_prod/", "/") : b;
    xmlMeta = "../.." + b + ".xml";
    if (typeof confCountryTopic != "undefined" && confCountryTopic != null && typeof confLanguageTopic != "undefined" && confLanguageTopic != null) {
        var d = self.location.href.substring(0, self.location.href.indexOf("/" + confCountryTopic + "/" + confLanguageTopic + "/"));
        var c = d + "/" + confCountryTopic + "/" + confLanguageTopic + "/";
        var a = c + framesetPageHighend + "?prm_content=" + xmlMeta;
        parent.location.href = a
    }
}
function myAlert(a) {
    if (top.location.search.indexOf("debug") != -1) {
        alert(a)
    }
}
function closeChooseBandLayer() {
    oldDiv = document.getElementById("changeToHighend");
    document.getElementsByTagName("body")[0].removeChild(oldDiv);
    document.getElementById("changeVersionLink").className = "menu";
    if ((parent.useCurtain) && (parent.useCurtain == "true")) {
        setVisibility(document.getElementById("iFrameContainer"), 1);
        if (typeof leftPos != "undefined") {
            moveObject(document.getElementById("iFrameContainer"), leftPos)
        } else {
            moveObject(document.getElementById("iFrameContainer"), 0)
        }
        setVisibility(document.getElementById("curtain"), null, "none")
    }
}
function buildLinkList() {
    var a = new Array(document.getElementsByTagName("a").length);
    for (var b = 0; b < document.getElementsByTagName("a").length; b++) {
        a[b] = document.getElementsByTagName("a")[b].href
    }
    return a
}
function evaluateHighlighting(k, d) {
    var j = "";
    var o = "";
    var q = "";
    var l = "";
    var t = [];
    var s = "";
    var c = "";
    var n = "";
    var m = "";
    var a = [];
    var b = [];
    if (k.indexOf("?") != -1) {
        s = k.substring(0, k.lastIndexOf("?"));
        m = k.substring(k.lastIndexOf("?"), k.length);
        if (m.indexOf("&") != -1) {
            m = m.substring(0, m.indexOf("&"))
        }
    } else {
        s = k
    }
    if (s.charAt(s.length - 1) == "/") {
        s = s.substring(0, s.length - 1)
    }
    if (s.lastIndexOf("/") < s.lastIndexOf(".")) {
        n = s.substring(s.lastIndexOf("/") + 1, s.length);
        c = s.substring(0, s.lastIndexOf("/"))
    } else {
        c = s;
        n = ""
    }
    a = c.split("/");
    for (var p = 0; p < d.length; p++) {
        j = d[p];
        if (j.indexOf("javascript:") != -1 || j == "") {
            b.push(999);
            continue
        }
        if (j.indexOf("?") != -1) {
            l = j.substring(j.lastIndexOf("?"), j.length);
            if (l.indexOf("&") != -1) {
                l = l.substring(0, l.indexOf("&"))
            }
            j = j.substring(0, j.lastIndexOf("?"))
        } else {
            l = ""
        }
        if (j.charAt(j.length - 1) == "/") {
            j = j.substring(0, j.length - 1)
        }
        if (j.lastIndexOf("/") < j.lastIndexOf(".")) {
            q = j.substring(j.lastIndexOf("/") + 1, j.length);
            o = j.substring(0, j.lastIndexOf("/"))
        } else {
            o = j;
            q = ""
        }
        t = o.split("/");
        var f = 0;
        var g = 0;
        var h = false;
        var r = null;
        while (t[g] == a[f]) {
            g++;
            f++;
            if (f == a.length && g == t.length) {
                if (q == n) {
                    if (l == m) {
                        b.push( - 2);
                        h = true
                    } else {
                        b.push( - 1)
                    }
                } else {
                    r = stringCompare(q, n);
                    b.push(0.99 - (r / 100))
                }
                break
            } else {
                if (f == a.length) {
                    b.push(999);
                    break
                } else {
                    if (g == t.length) {
                        if (confCountryTopic != null && confLanguageTopic != null && t.length >= 2 && t[t.length - 1] == confLanguageTopic && t[t.length - 2] == confCountryTopic) {
                            b.push(999)
                        } else {
                            if (confCountryTopic != null && o.indexOf("/" + confCountryTopic + "/") == -1) {
                                b.push(999)
                            } else {
                                b.push(a.length - f)
                            }
                        }
                        break
                    } else {
                        if (t[g] != a[f]) {
                            b.push(999);
                            break
                        }
                    }
                }
            }
        }
        if (h) {
            break
        }
    }
    return b
}
function stringCompare(g, c) {
    var f = null;
    var d = null;
    if (g.length > c.length) {
        d = g.toLowerCase();
        f = c.toLowerCase()
    } else {
        d = c.toLowerCase();
        f = g.toLowerCase()
    }
    var b = 0;
    for (var a = 0; a < f.length; a++) {
        if (f.charAt(a) == d.charAt(a)) {
            b++
        } else {
            break
        }
    }
    return b
}
function buildValidServerRelativeUrl(c) {
    if (c == "") {
        return ""
    }
    if (c.charAt(0) != "/") {
        return c
    }
    var b = "";
    var a = "";
    if (c.indexOf("?") != -1) {
        a = c.substring(0, c.indexOf("?"))
    } else {
        a = c
    }
    if (self.location.href.indexOf("/bmw_edit/") != -1 && a.indexOf("/bmw_edit/") == -1) {
        b = "/bmw_edit" + c
    } else {
        if (self.location.href.indexOf("/bmw_qa/") != -1 && a.indexOf("/bmw_qa/") == -1) {
            b = "/bmw_qa" + c
        } else {
            if (self.location.href.indexOf("/bmw_prod/") != -1 && a.indexOf("/bmw_prod/") == -1) {
                b = "/bmw_prod" + c
            } else {
                b = c
            }
        }
    }
    return b
}
function getFullPath(h, a) {
    var b = h.substring(0, (h.lastIndexOf("/") + 1));
    var g = /((^(https{0,1}\:\/\/[ ^\/ ]*\/))|(^(file\:\/\/[ ^\: ]*\:\/))|(^([ a-z ]+\:\\))|(^([ a-z ]+\:\/))|(^(\\\\))|(^(\/\/)))/i;
    if (g.test(a)) {
        b = a
    } else {
        var f = /(\.\.\/)/g,
        d = [],
        c;
        if (f.test(a)) {
            d = a.match(f)
        }
        for (var c = 0; c < d.length; ++c) {
            b = b.substring(0, (b.lastIndexOf("/", (b.length - 2)) + 1))
        }
        b += a.replace(f, "")
    }
    return b
}
function getServerRelativeContentUrl() {
    var b = self.location.href;
    var a = self.location.host;
    return b.substring(b.indexOf(a) + a.length, b.length)
}
function setModuleHeader(a) {
    var b = "";
    if (a) {
        b = '<a href="javascript:moveMenu();" style="position:relative;display:block;margin-top:1px;">' + moduleHeader + "</a>"
    } else {
        b = '<span style="position:relative;display:block;margin-top:1px;">' + moduleHeader + "</span>"
    }
    if (typeof document.getElementsByTagName("div")["moduleHeaderContainerSeo"] == "object") {
        writeIntoLayer("moduleHeaderContainerSeo", b);
        setVisibility("moduleHeaderContainerSeo", 1)
    } else {
        moveObject(document.getElementsByTagName("div")["naviClipAreaSeo"], null, 0)
    }
}
function download(b) {
    if (confPersoEngineEnabled) {
        if (typeof parent.persoDownloadEventType != "undefined") {
            if (parent.persoDownloadEventType) {
                var g = parent.persoDownloadEventType;
                var a = parent.persoSeries;
                var c = parent.persoBodytype;
                var f = parent.persoModel;
                var d = parent.persoColor;
                var j = parent.persoRim;
                parent.createPersoEvent(g, a, c, f, d, j)
            }
        } else {
            if (typeof self.persoDownloadEventType != "undefined") {
                if (self.persoDownloadEventType) {
                    var g = self.persoDownloadEventType;
                    var a = self.persoSeries;
                    var c = self.persoBodytype;
                    var f = self.persoModel;
                    var d = self.persoColor;
                    var j = self.persoRim;
                    createPersoEvent(g, a, c, f, d, j)
                }
            }
        }
    }
    var h = buildValidServerRelativeUrl(b) + "?download=true";
    self.location.href = h
}
function writeFramesetTitle(a) {}
function preloader(b) {
    preLoadCounter[b] = 0;
    preload[b] = [];
    for (var a = 0; a < preLoadArray[b].length; a++) {
        preload[b][a] = new Image();
        preload[b][a].onabort = function() {
            loadUpdate(b, a)
        };
        preload[b][a].onerror = function() {
            loadUpdate(b, a)
        };
        preload[b][a].onload = function() {
            loadUpdate(b, a)
        };
        preload[b][a].src = preLoadArray[b][a]
    }
}
function loadUpdate(b, a) {
    preLoadCounter[b]++;
    if (preLoadCounter[b] == preLoadArray[b].length) {
        preLoadReady(b)
    }
}
function preLoadReady(a) {}
function showCo2() {
    setVisibility("co2HeaderOn", 1);
    setVisibility("co2HeaderOff", 0);
    setVisibility("co2body", 1)
}
function hideCo2() {
    setVisibility("co2HeaderOn", 0);
    setVisibility("co2HeaderOff", 1);
    setVisibility("co2body", 0)
}
function stopPlayingMp3() {}
function setElementClass(a, c, d) {
    for (var b = 0; b < document.getElementsByTagName(a).length; b++) {
        if (document.getElementsByTagName(a)[b].className == c) {
            document.getElementsByTagName(a)[b].className = d
        }
    }
}
function dialogClosed() {}
function setCookie(b, d, a, g, c, f) {
    document.cookie = b + "=" + escape(d) + ((a) ? "; expires=" + a: "") + ((g) ? "; path=" + g: "") + ((c) ? "; domain=" + c: "") + ((f) ? "; secure": "")
}
function setCookieFromLayer() {
    if (document.getElementsByName("connectionSave")[0].checked) {
        chosenConnection = "broadBand"
    } else {
        if (document.getElementsByName("connectionSave")[1].checked) {
            chosenConnection = "narrowBand"
        } else {
            chosenConnection = "detect"
        }
    }
    setCookie(cookieName, chosenConnection, "Sun, 31-Dec-2007 00:00:00 GMT", "/")
}
function getCookieVal(b) {
    var a = document.cookie.indexOf(";", b);
    if (a == -1) {
        a = document.cookie.length
    }
    return unescape(document.cookie.substring(b, a))
}
function getCookie(d) {
    var b = d + "=";
    var g = b.length;
    var a = document.cookie.length;
    var f = 0;
    while (f < a) {
        var c = f + g;
        if (document.cookie.substring(f, c) == b) {
            return getCookieVal(c)
        }
        f = document.cookie.indexOf(" ", f) + 1;
        if (f == 0) {
            break
        }
    }
    return null
}
function setBandwidthOption(b, c, a) {
    setVisibility("selectBoxContent" + a, 0, "none");
    writeIntoLayer("selectedValue" + a, "  " + b);
    selectedBandwidth = c
}
function getCorrectPath(a) {
    targetUrl = "http://" + window.location.hostname + "" + buildValidServerRelativeUrl(a);
    self.location.href = buildValidServerRelativeUrl(targetUrl)
}
function changeLinksAccordingToStage() {
    var c = "";
    if (self.location.href.indexOf("/bmw_edit/") != -1) {
        c = "/bmw_edit"
    } else {
        if (self.location.href.indexOf("/bmw_qa/") != -1) {
            c = "/bmw_qa"
        } else {
            if (self.location.href.indexOf("/bmw_prod/") != -1) {
                c = "/bmw_prod"
            }
        }
    }
    if (c != "") {
        divsToBeAltered.push("naviClipAreaSeo");
        divsToBeAltered.push("metaNavigationText");
        divsToBeAltered.push("mainNavi");
        divsToBeAltered.push("mainNavigationContainer");
        divsToBeAltered.push("teaserContainer");
        divsToBeAltered.push("teaserContainer1");
        divsToBeAltered.push("teaserContainer2");
        divsToBeAltered.push("downloadMainTeaser");
        for (var a = 0; a < divsToBeAltered.length; a++) {
            if (document.getElementById(divsToBeAltered[a]) && document.getElementById(divsToBeAltered[a]) != null && document.getElementById(divsToBeAltered[a]).getElementsByTagName("a").length != 0) {
                if (divsToBeAltered[a] != "downloadMainTeaser") {
                    for (var b = 0; b < document.getElementById(divsToBeAltered[a]).getElementsByTagName("a").length; b++) {
                        evaluatedLink = document.getElementById(divsToBeAltered[a]).getElementsByTagName("a")[b].href;
                        if (evaluatedLink.indexOf("javascript:") == -1 && evaluatedLink != "" && evaluatedLink.indexOf(c) == -1) {
                            toBeReplaced = "http://" + window.location.hostname;
                            document.getElementById(divsToBeAltered[a]).getElementsByTagName("a")[b].href = evaluatedLink.replace(toBeReplaced, c)
                        }
                    }
                }
                for (var b = 0; b < document.getElementById(divsToBeAltered[a]).getElementsByTagName("img").length; b++) {
                    evaluatedLink = document.getElementById(divsToBeAltered[a]).getElementsByTagName("img")[b].src;
                    toBeReplaced = "http://" + window.location.hostname;
                    if (evaluatedLink.indexOf(c) == -1) {
                        document.getElementById(divsToBeAltered[a]).getElementsByTagName("img")[b].src = evaluatedLink.replace(toBeReplaced, c)
                    }
                }
            }
        }
    }
    changeLinksAccordingToStageDone = true
}
function writeIntoLayerBBDetection(a, b) {
    if (typeof a != "object") {
        a = document.getElementById(a)
    }
    if (a) {
        a.innerHTML = b
    }
}
function setCurtain(a) {
    if ((useCurtain) && (useCurtain == "true")) {
        if (a == 1) {
            setVisibility(document.getElementById("iFrameContainer"), 0);
            moveObject(document.getElementById("iFrameContainer"), ((window.screen.width * 2) * ( - 1)));
            setVisibility(document.getElementById("curtain"), null, "block")
        } else {
            setVisibility(document.getElementById("curtain"), null, "none");
            if (typeof leftPos != "undefined") {
                moveObject(document.getElementById("iFrameContainer"), leftPos)
            } else {
                moveObject(document.getElementById("iFrameContainer"), 0)
            }
            setVisibility(document.getElementById("iFrameContainer"), 1)
        }
    }
}
function trackTeaserClick(b, d, c) {
    if (confTrackingEnabled) {
        var a = buildValidServerRelativeUrl(b) + "?target=" + escape(buildValidServerRelativeUrl(c)) + "&source=" + escape(self.location.pathname);
        trackAbsolute(a, d, false, false)
    }
    return true
}
function trackDownloadClick(c, d, b) {
    if (confTrackingEnabled) {
        var a = buildValidServerRelativeUrl(c) + "?file=" + escape(buildValidServerRelativeUrl(b)) + "&source=" + escape(self.location.pathname);
        trackAbsolute(a, d, false, false)
    }
    return true
}
function redirectViaCookie(b, a) {
    splitSearchString();
    if (query.prm_content) {
        prmContent = query.prm_content
    }
    if ((getCookie(cookieName) && b == "broadBand") || (b == "broadBand")) {
        top.location.href = a + "?prm_content=" + prmContent
    } else {
        if ((getCookie(cookieName) != "" && getCookie(cookieName) != null && b == "narrowBand") || (b == "narrowBand")) {} else {
            if (getCookie(akamaiCookieName) != "" && getCookie(akamaiCookieName) != null && getCookie(akamaiCookieName).toLowerCase() == "vhigh") {
                top.location.href = a + "?prm_content=" + prmContent
            }
        }
    }
}
splitSearchString();
highbandUser = false;
var detectedBandwidth = "low";
var userbandwidth = getCookieValue("userbandwidth");
var bandwidth = getCookieValue("bandwidth");
if (query.bandwidth) {
    if (query.bandwidth == "vhigh") {
        detectedBandwidth = "vhigh"
    } else {}
} else {
    if (userbandwidth) {
        detectedBandwidth = userbandwidth
    } else {
        if (bandwidth) {
            detectedBandwidth = bandwidth
        }
    }
}
if (detectedBandwidth == "vhigh") {
    highbandUser = true
}
var selectedBandwidth = "";
function setUserBandwidth(b) {
    var c = bandwidth_save_error_no_selection;
    var a = "#000000";
    if (!navigator.cookieEnabled) {
        c = bandwidth_save_error_no_cookies;
        a = "#ff0000"
    } else {
        if (b == "vhigh" || b == "low") {
            setCookie("userbandwidth", b, "Sun, 31-Dec-2100 00:00:00 GMT", "/");
            c = bandwidth_save_confirm;
            closeBandwidthLayer();
            self.location.reload()
        } else {
            if (b == "auto") {
                setCookie("userbandwidth", "", "Wed, 31-Dec-1980 00:00:00 GMT", "/");
                c = bandwidth_save_confirm;
                closeBandwidthLayer();
                self.location.reload()
            } else {
                if (b == "") {
                    c = bandwidth_save_error_no_selection;
                    a = "#ff0000"
                }
            }
        }
    }
    document.getElementById("bandwidthReply").style.color = a;
    writeIntoLayer("bandwidthReply", c)
}
function resetBandwidthReply() {
    writeIntoLayer("bandwidthReply", "")
}
function changeBandwidth(b) {
    var c = self.location.href;
    var a;
    if (b) {
        a = "bandwidth=low"
    } else {
        a = "bandwidth=vhigh"
    }
    if (c.indexOf("bandwidth=") != -1) {
        if (c.indexOf("bandwidth=low") != -1 && a == "bandwidth=vhigh") {
            c = c.replace(/bandwidth=low/g, "bandwidth=vhigh")
        } else {
            c = c.replace(/bandwidth=vhigh/g, "bandwidth=low")
        }
    } else {
        if (c.indexOf("?") != -1) {
            if (c.charAt(self.location.href.length) != "&") {
                c += "&"
            }
        } else {
            c += "?"
        }
        c += a
    }
    self.location.href = c
}
function closeBandwidthLayer() {
    setCurtain(0);
    setVisibility("bandwidthlayer", 0);
    setVisibility("selectBoxContentBandwidth", 0);
    document.getElementById("changeVersionLink").className = "menu";
    bandwidthLayerState = 0
}
function showBandwidthLayer() {
    setCurtain(1);
    selectedBandwidth = "";
    if (highbandUser) {
        bandwidth_headline = bandwidth_headline_low;
        bandwidth_copy = bandwidth_copy_low;
        bandwidth_link = bandwidth_link_low
    } else {
        bandwidth_headline = bandwidth_headline_high;
        bandwidth_copy = bandwidth_copy_high;
        bandwidth_link = bandwidth_link_high
    }
    var a = bandwidth_save_select;
    if (userbandwidth == "low") {
        a = bandwidth_save_lowband;
        selectedBandwidth = "low"
    } else {
        if (userbandwidth == "vhigh") {
            a = bandwidth_save_highband;
            selectedBandwidth = "vhigh"
        } else {
            a = bandwidth_save_auto;
            selectedBandwidth = "auto"
        }
    }
    var b = '  <div id="bandwidthClose"><a href="javascript:closeBandwidthLayer();" onmouseover="switchImage(\'closeImg\',1);" onmouseout="switchImage(\'closeImg\',0);"><img src="/images/' + closeGif + '" id="closeImg" preload="' + close2Gif + '" width="13" height="12"></a></div>  <div id="bandwidthlayerLeft">    <h3>' + bandwidth_headline + '</h3>    <div style="height:6px; overflow:hidden;"></div>' + bandwidth_copy + '    <div style="height:15px; overflow:hidden;"></div>    <a href="javascript:changeBandwidth(highbandUser);" class="arrow" target="_self"><img src="/images/' + transGif + '">' + bandwidth_link + '</a>  </div>  <div id="bandwidthlayerSeperator"></div>  <div id="bandwidthlayerRight">    <h3>' + bandwidth_save_headline + '</h3>    <div style="height:6px; overflow:hidden;"></div>' + bandwidth_save_copy + '    <div style="height:2px; overflow:hidden;"></div>    <div style="position:relative; z-index:1000;">      <table width="182" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff">        <colgroup><col width="1"><col width="162"><col width="18"><col width="1"></colgroup>        <tr>          <td colspan="4" bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="182" height="1"></td>        </tr>        <tr>          <td bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="1" height="16"></td>          <td valign="middle" onClick="setVisibility(\'selectBoxContentBandwidth\');" onMouseover="directOrder[ \'Bandwidth\' ]=true;" onMouseout="directOrder[ \'Bandwidth\' ]=false;" style="cursor:pointer;"><span id="selectedValueBandwidth">  ' + a + '</span></td>          <td><a href="javascript:setVisibility(\'selectBoxContentBandwidth\');" onMouseover="directOrder[ \'Bandwidth\' ]=true;" onMouseout="directOrder[ \'Bandwidth\' ]=false;" onFocus="this.blur();"><img src="/images/' + pulldownGif + '" width="18" height="16" border="0"></a></td>          <td bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="1" height="16"></td>        </tr>        <tr>          <td colspan="4" bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="182" height="1"></td>        </tr>      </table>      <div id="selectBoxContentBandwidth" class="selectBoxContent" style="top:17px; background-color:#ffffff">        <table cellspacing="0" cellpadding="0" border="0" width="182">          <tr><td colspan="3" bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="182" height="1"></td></tr>          <tr>            <td width="1" bgcolor="#003399"><img src="/images/' + transGif + '"></td>            <td width="180" valign="top">              <div id="block1Select" style="width:180px; background-color:#ffffff; height:70px; overflow:auto;">                <div style="height:7px; overflow:hidden;"></div>                <a href="javascript://" class="selectboxEntry" onclick="setOption(\'' + bandwidth_save_highband + "','','Bandwidth','','','none');selectedBandwidth='vhigh';resetBandwidthReply();\">  " + bandwidth_save_highband + '</a>                <a href="javascript://" class="selectboxEntry" onclick="setOption(\'' + bandwidth_save_lowband + "','','Bandwidth','','','none');selectedBandwidth='low';resetBandwidthReply();\">  " + bandwidth_save_lowband + '</a>                <a href="javascript://" class="selectboxEntry" onclick="setOption(\'' + bandwidth_save_auto + "','','Bandwidth','','','none');selectedBandwidth='auto';resetBandwidthReply();\">  " + bandwidth_save_auto + '</a><br>              </div>            </td>            <td width="1" bgcolor="#003399"><img src="/images/' + transGif + '" width="1" height="1"></td>          </tr>          <tr><td colspan="3" bgcolor="#003399"><img src="/images/' + p003399Gif + '" width="182" height="1"></td></tr>        </table>      </div>    </div>    <a href="javascript:setUserBandwidth(selectedBandwidth);" id="bandwidthBoxlink">' + bandwidth_save_button + '</a><br>    <div id="bandwidthReply"></div>  </div></div>';
    bandwidthlayerPos = getWindowInformation("scrollTop");
    if (bandwidthlayerPos > 0) {
        document.getElementById("bandwidthlayer").style.top = (162 + bandwidthlayerPos) + "px"
    }
    writeIntoLayer(bandwidthlayer, b);
    setVisibility("bandwidthlayer", 1);
    preload();
    document.getElementById("changeVersionLink").className = "menu linkHighlight";
    bandwidthLayerState = 1
}
var bandwidthLayerState = 0;
function toggleBandwidthLayer() {
    if (bandwidthLayerState == 0) {
        showBandwidthLayer()
    } else {
        closeBandwidthLayer()
    }
}
var videoTeasers = [];
var currentVideoTeaser = false;
function showVideoTeaser(d, c, h, g, f) {
    currentVideoTeaser = "videoTeaser" + d;
    var b = new SWFObject(videoTeaserFlashWrapper, "videoTeaser" + d + "FlashID", c, h + 16, "8.0.22", "#ffffff");
    b.addParam("quality", "high");
    b.addParam("allowScriptAccess", "always");
    b.addParam("wmode", "transparent");
    b.addVariable("prm_contentgetter", "videoTeaserGetContent");
    var j = document.getElementById(currentVideoTeaser);
    var a = j.cloneNode(true);
    j.parentNode.removeChild(j);
    document.body.appendChild(a);
    b.write("videoTeaser" + d + "Player");
    setVisibility("videoTeaser" + d, 1, "block")
}
function videoTeaserGetContent() {
    if (currentVideoTeaser) {
        return videoTeasers[currentVideoTeaser]
    }
}
function videoTeaserTracking(f, c) {
    var b = self.location.href.substring(0, self.location.href.lastIndexOf("/"));
    var a = self.location.href.substring(self.location.href.lastIndexOf("/") + 1, self.location.href.lastIndexOf("."));
    var d = f.substring(f.lastIndexOf("/") + 1, f.lastIndexOf("."));
    b = b + "/" + a + "_video_" + d + "_" + c + ".html";
    if (confTrackingEnabled) {
        trackAbsolute(b, "", true)
    }
}
if (typeof deconcept == "undefined") {
    var deconcept = new Object()
}
if (typeof deconcept.util == "undefined") {
    deconcept.util = new Object()
}
if (typeof deconcept.SWFObjectUtil == "undefined") {
    deconcept.SWFObjectUtil = new Object()
}
deconcept.SWFObject = function(o, b, p, f, l, m, j, g, d, n) {
    if (!document.getElementById) {
        return
    }
    this.DETECT_KEY = (n) ? n: "detectflash";
    this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
    this.params = new Object();
    this.variables = new Object();
    this.attributes = new Array();
    if (o) {
        this.setAttribute("swf", o)
    }
    if (b) {
        this.setAttribute("id", b)
    }
    if (p) {
        this.setAttribute("width", p)
    }
    if (f) {
        this.setAttribute("height", f)
    }
    if (l) {
        this.setAttribute("version", new deconcept.PlayerVersion(l.toString().split(".")))
    }
    this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
    if (!window.opera && document.all && this.installedVer.major > 7) {
        deconcept.SWFObject.doPrepUnload = true
    }
    if (m) {
        this.addParam("bgcolor", m)
    }
    var a = (j) ? j: "high";
    this.addParam("quality", a);
    this.setAttribute("useExpressInstall", false);
    this.setAttribute("doExpressInstall", false);
    var k = (g) ? g: window.location;
    this.setAttribute("xiRedirectUrl", k);
    this.setAttribute("redirectUrl", "");
    if (d) {
        this.setAttribute("redirectUrl", d)
    }
};
deconcept.SWFObject.prototype = {
    useExpressInstall: function(a) {
        this.xiSWFPath = !a ? "expressinstall.swf": a;
        this.setAttribute("useExpressInstall", true)
    },
    setAttribute: function(a, b) {
        this.attributes[a] = b
    },
    getAttribute: function(a) {
        return this.attributes[a]
    },
    addParam: function(b, a) {
        this.params[b] = a
    },
    getParams: function() {
        return this.params
    },
    addVariable: function(b, a) {
        this.variables[b] = a
    },
    getVariable: function(a) {
        return this.variables[a]
    },
    getVariables: function() {
        return this.variables
    },
    getVariablePairs: function() {
        var c = new Array();
        var b;
        var a = this.getVariables();
        for (b in a) {
            c[c.length] = b + "=" + a[b]
        }
        return c
    },
    getSWFHTML: function() {
        var b = "";
        if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
            if (this.getAttribute("doExpressInstall")) {
                this.addVariable("MMplayerType", "PlugIn");
                this.setAttribute("swf", this.xiSWFPath)
            }
            b = '<embed type="application/x-shockwave-flash" src="' + this.getAttribute("swf") + '" width="' + this.getAttribute("width") + '" height="' + this.getAttribute("height") + '" style="' + this.getAttribute("style") + '"';
            b += ' id="' + this.getAttribute("id") + '" name="' + this.getAttribute("id") + '" ';
            var g = this.getParams();
            for (var f in g) {
                b += [f] + '="' + g[f] + '" '
            }
            var d = this.getVariablePairs().join("&");
            if (d.length > 0) {
                b += 'flashvars="' + d + '"'
            }
            b += "/>"
        } else {
            if (this.getAttribute("doExpressInstall")) {
                this.addVariable("MMplayerType", "ActiveX");
                this.setAttribute("swf", this.xiSWFPath)
            }
            b = '<object id="' + this.getAttribute("id") + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.getAttribute("width") + '" height="' + this.getAttribute("height") + '" style="' + this.getAttribute("style") + '">';
            b += '<param name="movie" value="' + this.getAttribute("swf") + '" />';
            var c = this.getParams();
            for (var f in c) {
                b += '<param name="' + f + '" value="' + c[f] + '" />'
            }
            var a = this.getVariablePairs().join("&");
            if (a.length > 0) {
                b += '<param name="flashvars" value="' + a + '" />'
            }
            b += "</object>"
        }
        return b
    },
    write: function(b) {
        if (this.getAttribute("useExpressInstall")) {
            var a = new deconcept.PlayerVersion([6, 0, 65]);
            if (this.installedVer.versionIsValid(a) && !this.installedVer.versionIsValid(this.getAttribute("version"))) {
                this.setAttribute("doExpressInstall", true);
                this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl")));
                document.title = document.title.slice(0, 47) + " - Flash Player Installation";
                this.addVariable("MMdoctitle", document.title)
            }
        }
        if (this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version"))) {
            var c = (typeof b == "string") ? document.getElementById(b) : b;
            c.innerHTML = this.getSWFHTML();
            return true
        } else {
            if (this.getAttribute("redirectUrl") != "") {
                document.location.replace(this.getAttribute("redirectUrl"))
            }
        }
        return false
    }
};
deconcept.SWFObjectUtil.getPlayerVersion = function() {
    var f = new deconcept.PlayerVersion([0, 0, 0]);
    if (navigator.plugins && navigator.mimeTypes.length) {
        var a = navigator.plugins["Shockwave Flash"];
        if (a && a.description) {
            f = new deconcept.PlayerVersion(a.description.replace(/([ a-zA-Z ]|\s)+/, "").replace(/(\s+r|\s+b[ 0-9 ]+)/, ".").split("."))
        }
    } else {
        if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0) {
            var b = 1;
            var c = 3;
            while (b) {
                try {
                    c++;
                    b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + c);
                    f = new deconcept.PlayerVersion([c, 0, 0])
                } catch(d) {
                    b = null
                }
            }
        } else {
            try {
                var b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")
            } catch(d) {
                try {
                    var b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                    f = new deconcept.PlayerVersion([6, 0, 21]);
                    b.AllowScriptAccess = "always"
                } catch(d) {
                    if (f.major == 6) {
                        return f
                    }
                }
                try {
                    b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
                } catch(d) {}
            }
            if (b != null) {
                f = new deconcept.PlayerVersion(b.GetVariable("$version").split(" ")[1].split(","))
            }
        }
    }
    return f
};
deconcept.PlayerVersion = function(a) {
    this.major = a[0] != null ? parseInt(a[0]) : 0;
    this.minor = a[1] != null ? parseInt(a[1]) : 0;
    this.rev = a[2] != null ? parseInt(a[2]) : 0
};
deconcept.PlayerVersion.prototype.versionIsValid = function(a) {
    if (this.major < a.major) {
        return false
    }
    if (this.major > a.major) {
        return true
    }
    if (this.minor < a.minor) {
        return false
    }
    if (this.minor > a.minor) {
        return true
    }
    if (this.rev < a.rev) {
        return false
    }
    return true
};
deconcept.util = {
    getRequestParameter: function(c) {
        var d = document.location.search || document.location.hash;
        if (c == null) {
            return d
        }
        if (d) {
            var b = d.substring(1).split("&");
            for (var a = 0; a < b.length; a++) {
                if (b[a].substring(0, b[a].indexOf("=")) == c) {
                    return b[a].substring((b[a].indexOf("=") + 1))
                }
            }
        }
        return ""
    }
};
deconcept.SWFObjectUtil.cleanupSWFs = function() {
    var b = document.getElementsByTagName("OBJECT");
    for (var c = b.length - 1; c >= 0; c--) {
        b[c].style.display = "none";
        for (var a in b[c]) {
            if (typeof b[c][a] == "function") {
                b[c][a] = function() {}
            }
        }
    }
};
if (deconcept.SWFObject.doPrepUnload) {
    if (!deconcept.unloadSet) {
        deconcept.SWFObjectUtil.prepUnload = function() {
            __flash_unloadHandler = function() {};
            __flash_savedUnloadHandler = function() {};
            window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs)
        };
        window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
        deconcept.unloadSet = true
    }
}
if (!document.getElementById && document.all) {
    document.getElementById = function(a) {
        return document.all[a]
    }
}
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject;
var SWFObject = deconcept.SWFObject;
function getFileName(c) {
    var a, d, f, b;
    d = (c.indexOf("/") >= 0) ? "/": "\\";
    f = c.substring(c.lastIndexOf(d) + 1);
    b = f.lastIndexOf(".");
    a = (b > 1) ? f.substring(0, b) : f;
    return a
}
function scrollToTop() {
    window.scrollTo(0, 0)
}
function e82VizPrintPopup(a) {
    setTimeout("centerPopup('" + a + "', 'Print', 800, 500, false, 1)", 1)
}
function e88deVizDetailPopup(a, b) {
    setTimeout("e88deVizDetailPopupAsync('" + a + "', '" + b + "')", 1)
}
function e88deVizDetailPopupAsync(a, b) {
    zoom = window.open("", "zoom", "status = no,toolbar = no,menubar =no,location = no,resizable = yes,titlebar = no,fullscreen = yes");
    zoom.document.open("text/html");
    zoom.document.write("<html>");
    zoom.document.write("<head>");
    zoom.document.write("<title>" + b + "</title>");
    zoom.document.write("<SCRIPT LANGUAGE=JavaScript>");
    zoom.document.write("function closeWindow() ");
    zoom.document.write("{");
    zoom.document.write("    window.close();     ");
    zoom.document.write("}");
    zoom.document.write("</SCRIPT>");
    zoom.document.write("</head>");
    zoom.document.write("");
    zoom.document.write("<body bgcolor='#000000'>");
    zoom.document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ');
    zoom.document.write('codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"');
    zoom.document.write('width="100%" height="100%" id="Zoom"align="middle">  ');
    zoom.document.write('<param name="allowScriptAccess"value="always" />  ');
    zoom.document.write('<param name="movie" value="http://www.bmw.de/de/de/bvcov1e88/Zoom.swf?image=' + a + '" />  ');
    zoom.document.write('<param name="quality" value="high" /><paramname="bgcolor" value="#000000" />  ');
    zoom.document.write('<embed src="http://www.bmw.de/de/de/bvcov1e88/Zoom.swf?image=' + a + '"  ');
    zoom.document.write('quality="high" bgcolor="#000000" width="100%" height="100%" name="Zoom" align="middle"  ');
    zoom.document.write('allowScriptAccess="always"  ');
    zoom.document.write('type="application/x-shockwave-flash"  ');
    zoom.document.write('pluginspage="http://www.macromedia.com/go/getflashplayer"/>  ');
    zoom.document.write("</body>");
    zoom.document.write("");
    zoom.document.write("</html>");
    zoom.document.write("");
    zoom.document.close()
}
function alterCSSClass(h, a, b) {
    var f = (document.all) ? "rules": (document.getElementById) ? "cssRules": false;
    if (f != false) {
        for (var g = 0; g < document.styleSheets.length; g++) {
            var d = document.styleSheets[g];
            for (var c = 0; c < d[f].length; c++) {
                var k = d[f][c];
                if (k.selectorText == h) {
                    k.style[a] = b
                }
            }
        }
    }
}
function setMainNavigationFolded(a, c, b) {}
function checkBottomNavi() {
    var a = getWindowInformation("winWidth");
    if (a < 982) {
        document.getElementById("metaNavigationInline").style.width = a + "px"
    } else {
        document.getElementById("metaNavigationInline").style.width = "982px"
    }
}
function getParameter(a) {
    var d = "";
    if (document.URL.indexOf("?") != -1) {
        var h = document.URL.indexOf("?") + 1;
        d = document.URL.substring(h);
        var g = new Array();
        g = d.split("&");
        var c = new Array(g.length);
        for (var b = 0; b < g.length; b++) {
            var f = g[b].split("=");
            if (f[0] == a) {
                return f[1]
            }
        }
    }
    return null
};
var browserName;
allowedDomain.push("://test1.bmw.com.cn");
allowedDomain.push("://testsecure1.bmw.com.cn");
function download(h) {
    if (confPersoEngineEnabled) {
        if (typeof parent.persoDownloadEventType != "undefined") {
            if (parent.persoDownloadEventType) {
                var c = parent.persoDownloadEventType;
                var e = parent.persoSeries;
                var d = parent.persoBodytype;
                var k = parent.persoModel;
                var g = parent.persoColor;
                var a = parent.persoRim;
                parent.createPersoEvent(c, e, d, k, g, a)
            }
        } else {
            if (typeof self.persoDownloadEventType != "undefined") {
                if (self.persoDownloadEventType) {
                    var c = self.persoDownloadEventType;
                    var e = self.persoSeries;
                    var d = self.persoBodytype;
                    var k = self.persoModel;
                    var g = self.persoColor;
                    var a = self.persoRim;
                    createPersoEvent(c, e, d, k, g, a)
                }
            }
        }
    }
    if (confTrackingEnabled == true) {
        if (typeof(dcsMultiTrack) == "undefined") {
            parent.dcsMultiTrack("DCS.file_name", h, "DCS.referrer_page", window.location.href)
        } else {
            dcsMultiTrack("DCS.file_name", h, "DCS.referrer_page", window.location.href)
        }
    }
    if (document.getElementById("download_iframe") == null) {
        var f = document.createElement("iframe");
        f.name = "download_iframe";
        f.id = "download_iframe";
        f.width = "0";
        f.height = "0";
        f.frameBorder = "0";
        document.body.appendChild(f)
    }
    var b = buildValidServerRelativeUrl(h) + "?download=true";
    document.getElementById("download_iframe").src = b
}
var BrowserDetector = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "unknown";
        this.versionFloat = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "unknown";
        this.version = this.integerVersion();
        this.OS = this.searchString(this.dataOS) || "unknown"
    },
    searchString: function(d) {
        for (var a = 0; a < d.length; a++) {
            this.versionSearchString = d[a].versionSearch || d[a].identity;
            var b = d[a].string;
            var c = d[a].prop;
            if (b) {
                if (b.indexOf(d[a].subString) != -1) {
                    return d[a].identity
                }
            } else {
                if (c) {
                    return d[a].identity
                }
            }
        }
    },
    searchVersion: function(b) {
        if (!this.versionSearchString) {
            return
        }
        var a = b.indexOf(this.versionSearchString);
        if (a == -1) {
            return
        }
        return parseFloat(b.substring(a + this.versionSearchString.length + 1))
    },
    integerVersion: function() {
        return parseInt(this.versionFloat)
    },
    dataBrowser: [{
        string: navigator.userAgent,
        subString: "Chrome",
        identity: "Chrome"
    },
    {
        string: navigator.userAgent,
        subString: "OmniWeb",
        versionSearch: "OmniWeb/",
        identity: "OmniWeb"
    },
    {
        string: navigator.vendor,
        subString: "Apple",
        identity: "Safari",
        versionSearch: "Version"
    },
    {
        prop: window.opera,
        identity: "Opera"
    },
    {
        string: navigator.vendor,
        subString: "iCab",
        identity: "iCab"
    },
    {
        string: navigator.vendor,
        subString: "KDE",
        identity: "Konqueror"
    },
    {
        string: navigator.userAgent,
        subString: "Firefox",
        identity: "Firefox"
    },
    {
        string: navigator.vendor,
        subString: "Camino",
        identity: "Camino"
    },
    {
        string: navigator.userAgent,
        subString: "Netscape",
        identity: "Netscape"
    },
    {
        string: navigator.userAgent,
        subString: "MSIE",
        identity: "IE",
        versionSearch: "MSIE"
    },
    {
        string: navigator.userAgent,
        subString: "Gecko",
        identity: "Mozilla",
        versionSearch: "rv"
    },
    {
        string: navigator.userAgent,
        subString: "Mozilla",
        identity: "Netscape",
        versionSearch: "Mozilla"
    }],
    dataOS: [{
        string: navigator.platform,
        subString: "Win",
        identity: "Windows"
    },
    {
        string: navigator.platform,
        subString: "Mac",
        identity: "Mac"
    },
    {
        string: navigator.platform,
        subString: "Linux",
        identity: "Linux"
    }]
};
function getParameterMap(b) {
    var a = new Object;
    var c = b.split("?");
    if (c == null) {
        return null
    }
    if (c.length < 2) {
        return null
    }
    var h = c[1];
    var e = h.split("&");
    if (e == null) {
        return null
    }
    if (e.length < 1) {
        return null
    }
    for (var g = 0; g < e.length; g++) {
        var d = e[g].split("=");
        if (d.length == 2) {
            a[d[0]] = d[1]
        } else {
            if (d.length > 2) {
                var k = "";
                for (var f = 1; f < d.length; f++) {
                    k += d[f];
                    if (f < (d.length - 1)) {
                        k += "="
                    }
                }
                a[d[0]] = k
            }
        }
    }
    return a
}
function getParameterFromUrl(b, a) {
    var c = getParameterMap(b);
    if (c != null) {
        if (a in c) {
            return c[a]
        }
    }
    return null
}
var cLoadStr = new String(onLoadFunctionsAddon.toString());
var i = cLoadStr.lastIndexOf("}");
cLoadStr = cLoadStr.substring(0, i);
var j = cLoadStr.indexOf("{");
cLoadStr = cLoadStr.substr(j);
cLoadStr += "\r\nvar url = decodeURI(document.location.href);\r\n";
cLoadStr += 'var downloadFile = getParameterFromUrl(url,"downloadFile");\r\n';
cLoadStr += "if (downloadFile!=null) {\r\n";
cLoadStr += "download(downloadFile);\r\n";
cLoadStr += "}\r\n}";
onLoadFunctionsAddon = new Function(cLoadStr);
BrowserDetector.init();
browserName = BrowserDetector.browser + BrowserDetector.version;
function goToTop() {
    if (!document.getElementById("outerDiv")) {
        return
    }
    if (!document.getElementById("autoTopAnchor")) {
        var b = document.createElement("div");
        b.setAttribute("id", "autoTopAnchor");
        b.setAttribute("style", "position:relative; top:0px; left:0px; height:0px; width:0px; overflow:hidden;");
        b.innerHTML = '<a name="autoTop"></a>';
        var a = document.getElementById("outerDiv");
        a.insertBefore(b, a.firstChild)
    }
    if (window.location.href.indexOf("#autoTop") != -1) {
        window.location = window.location
    } else {
        window.location = window.location + "#autoTop"
    }
}
function trackTeaserClick(b, d, c) {
    if (confTrackingEnabled) {
        if (b == undefined) {
            return true
        }
        var a = buildValidServerRelativeUrl(b) + "?target=" + escape(buildValidServerRelativeUrl(c)) + "&source=" + escape(self.location.pathname);
        trackAbsolute(a, d, false, false)
    }
    return true
}
function evaluateHighlighting(k, d) {
    var n = "dealers";
    var h = "";
    var p = "";
    var r = "";
    var l = "";
    var u = [];
    var t = "";
    var c = "";
    var o = "";
    var m = "";
    var a = [];
    var b = [];
    if (k.indexOf("?") != -1) {
        t = k.substring(0, k.lastIndexOf("?"));
        m = k.substring(k.lastIndexOf("?"), k.length);
        if (m.indexOf("&") != -1) {
            m = m.substring(0, m.indexOf("&"))
        }
    } else {
        t = k
    }
    if (t.charAt(t.length - 1) == "/") {
        t = t.substring(0, t.length - 1)
    }
    if (t.lastIndexOf("/") < t.lastIndexOf(".")) {
        o = t.substring(t.lastIndexOf("/") + 1, t.length);
        c = t.substring(0, t.lastIndexOf("/"))
    } else {
        c = t;
        o = ""
    }
    a = c.split("/");
    for (var q = 0; q < d.length; q++) {
        h = d[q];
        if (h.indexOf("javascript:") != -1 || h == "") {
            b.push(999);
            continue
        }
        if (h.indexOf("?") != -1) {
            l = h.substring(h.lastIndexOf("?"), h.length);
            if (l.indexOf("&") != -1) {
                l = l.substring(0, l.indexOf("&"))
            }
            h = h.substring(0, h.lastIndexOf("?"))
        } else {
            l = ""
        }
        if (h.charAt(h.length - 1) == "/") {
            h = h.substring(0, h.length - 1)
        }
        if (h.lastIndexOf("/") < h.lastIndexOf(".")) {
            r = h.substring(h.lastIndexOf("/") + 1, h.length);
            p = h.substring(0, h.lastIndexOf("/"))
        } else {
            p = h;
            r = ""
        }
        u = p.split("/");
        var e = 0;
        var f = 0;
        var g = false;
        var s = null;
        while (u[f] == a[e]) {
            f++;
            e++;
            if (e == a.length && f == u.length) {
                if (r == o) {
                    if (l == m) {
                        b.push( - 2);
                        g = true
                    } else {
                        b.push( - 1)
                    }
                } else {
                    s = stringCompare(r, o);
                    b.push(0.99 - (s / 100))
                }
                break
            } else {
                if (e == a.length) {
                    b.push(999);
                    break
                } else {
                    if (f == u.length) {
                        if (confCountryTopic != null && confLanguageTopic != null && u.length >= 2 && u[u.length - 1] == confLanguageTopic && u[u.length - 2] == confCountryTopic) {
                            b.push(999)
                        } else {
                            if (confCountryTopic != null && confLanguageTopic != null && u.length >= 2 && u[u.length - 2] == n && u[u.length - 3] == confLanguageTopic && u[u.length - 4] == confCountryTopic) {
                                b.push(999)
                            } else {
                                if (confCountryTopic != null && p.indexOf("/" + confCountryTopic + "/") == -1) {
                                    b.push(999)
                                } else {
                                    b.push(a.length - e)
                                }
                            }
                        }
                        break
                    } else {
                        if (u[f] != a[e]) {
                            b.push(999);
                            break
                        }
                    }
                }
            }
        }
        if (g) {
            break
        }
    }
    return b
}
function clickTracking(a) {
    if (typeof(window.dcsMultiTrack) != "undefined") {
        dcsMultiTrack("DCS.object", a)
    }
}
var oldCheckWindowSize = checkWindowSize;
checkWindowSize = function() {
    oldCheckWindowSize();
    if (window.$ && $("#outerDiv").length > 0) {
        $(document.body).css("overflow", "hidden");
        var a = $(window).width();
        var b = $(window).height();
        $("#outerDiv").css("position", "relative");
        $("#outerDiv").css("width", "100%");
        if (b != null) {
            $("#outerDiv").css("height", b - 27)
        }
        if (a < 980 && a > 730) {
            $("#metaNavigationInline").css("width", a)
        } else {
            if (a <= 730) {
                $("#metaNavigationInline").css("width", 730)
            } else {
                $("#metaNavigationInline").css("width", 982)
            }
        }
    }
};
var loadingBoxGif = "/_common/html/img/standard_elements/loading_box.gif";
var lensGif = "/_common/html/img/standard_elements/lens.gif";
var lensMouseOverGif = "/_common/html/img/standard_elements/lens-h.gif";
var transGif = "/_common/html/img/palette/1x1_trans.gif";
var p999999Gif = "/_common/html/img/palette/1x1_999999.gif";
var p003399Gif = "/_common/html/img/palette/1x1_003399.gif";
var p8c8c8cGif = "/_common/html/img/palette/1x1_8c8c8c.gif";
var pff0000Gif = "/_common/html/img/palette/1x1_ff0000.gif";
var pafafafGif = "/_common/html/img/palette/1x1_afafaf.gif";
var backgroundGif = "/_common/html/img/modul_navigation/scroller_background.gif";
var scrollerUpGif = "/_common/html/img/modul_navigation/scroller_up.gif";
var scrollerDownGif = "/_common/html/img/modul_navigation/scroller_down.gif";
var dropperGif = "/_common/html/img/modul_navigation/dropper.gif";
var dropperGifUp0 = "/_common/html/img/modul_navigation/dropper_up.gif";
var dropperGifUp1 = "/_common/html/img/modul_navigation/dropper_up-h.gif";
var dropperGifDown0 = "/_common/html/img/modul_navigation/dropper_down.gif";
var dropperGifDown1 = "/_common/html/img/modul_navigation/dropper_down-h.gif";
var pulldownGif = "/_common/html/img/forms/pulldown.gif";
var pulldownErrorGif = "/_common/html/img/forms/pulldown_error.gif";
var closeGif = "/_common/html/img/standard_elements/close.gif";
var close2Gif = "/_common/html/img/standard_elements/close-h.gif";
var highlightBoxSmall = "/_common/html/img/standard_elements/highlight_box_37x29.gif";
var downloadJSP = "/cms/_common/shared/jsp/download.jsp";
var videoTeaserFlashWrapper = "/_common/flash/wrapper_modules.swf";
var videoTeaserFlashmodule = "/_common/flash/modules/teaser/video_teaser.swf";
var isFolding, resetModulNaviTimer, moduleHeader;
var suspendMainNavigation;
function moduleNaviReset() {}
function highlightNavigations(c, b, a) {
    changeLinksAccordingToStage();
    if (document.getElementById("mainNavigation") !== undefined) {
        mainNavigation = new MainNavigation("mainNavigation");
        mainNavigation.init()
    }
    if (document.getElementById("moduleNavigation") != undefined) {
        moduleNavigation = new ModuleNavigation("moduleNavigation", c);
        moduleNavigation.init();
        clearTimeout(isFolding)
    }
    if (browserId == "Firefox" && platform == "mac os x" && document.getElementsByTagName("embed").length > 0) {
        document.getElementById("moduleNavigation").style.MozOpacity = "1";
        document.getElementById("moduleNavigation").style.opacity = "1"
    }
    highlightBottomNavigation()
}
function highlightBottomNavigation() {
    var f = document.getElementById("metaNavigationInline").getElementsByTagName("a");
    var b = new Array(f.length);
    for (var d = 0; d < f.length; d++) {
        if (f[d].href.indexOf("javascript:") == -1 && f[d].href.indexOf("http://") == -1) {
            b[d] = "http://" + window.location.hostname + "" + f[d].href
        } else {
            b[d] = f[d].href
        }
    }
    var c = evaluateHighlighting(location.href, b);
    var a = -1;
    var g = 999;
    for (var d = 0; d < c.length; d++) {
        if (c[d] < g) {
            g = c[d];
            a = d;
            if (c[d] == -2) {
                break
            }
        }
    }
    if (a != -1) {
        f[a].style.color = "#003399"
    }
}
function resetBottomNavigation() {}
function openChooseBandLayer(b, h, d, c) {
    var f = '<div id="contentHiBand"><h2>' + b + '</h2><span id="vSpace" style="padding-bottom:2px;"></span><p>' + h + '</p><span id="vSpace" style="padding-bottom:19px;"></span><ul class="linkList"><li><a href="javascript:changeToHiEndVersion();"><img src="/images/' + transGif + '" class="arrow" alt="" />' + d + '</a></li><li><a href="javascript:closeChooseBandLayer();"><img src="/images/' + transGif + '" class="arrow" alt="" />' + c + "</a></li></ul></div><div style=\"position:absolute; top:2px; right:2px; width:13px; height:12px;\"><a href=\"javascript:closeChooseBandLayer();\" onMouseOver=\"document.getElementsByTagName('img')['closeImgHighendLayer'].src='" + close2Gif + "';\" onMouseOut=\"document.getElementsByTagName('img')['closeImgHighendLayer'].src='" + closeGif + '\';"><img src="/images/' + closeGif + '" id="closeImgHighendLayer" preload="' + close2Gif + '" width="13" height="12" /></a></div>';
    var g = getWindowInformation("scrollTop");
    var a = document.createElement("div");
    a.id = "changeToHighend";
    a.style.position = "absolute";
    a.style.top = 157 + g + "px";
    a.style.left = "194px";
    a.style.width = "632px";
    a.style.height = "305px";
    a.style.border = "1px solid #acacac";
    a.style.backgroundColor = "#ffffff";
    a.style.zIndex = 922;
    a.innerHTML = f;
    if (!document.getElementById("changeToHighend")) {
        document.getElementsByTagName("body")[0].appendChild(a);
        document.getElementById("changeVersionLink").className = "menu linkHighlight";
        setCurtain(1);
        curtainInUse = true
    } else {
        closeChooseBandLayer();
        setCurtain(0);
        curtainInUse = false
    }
}
var mainNavigation = {
    nodeAction: function() {}
};
var MainNavigation = (function() {
    var c = 75;
    var g = false;
    var j = false;
    var a = false;
    var b;
    var o;
    var d;
    var k;
    var n;
    var i;
    var m = 1;
    var l = 10;
    var h;
    var f = 400;
    return (function(r) {
        var q = this;
        this.init = function() {
            o = document.getElementById("mainNavigationContainer");
            d = document.getElementById("idModuls");
            var y = document.getElementById("topic_1");
            var w = document.getElementById("topic_2");
            var x = document.getElementById("topic_3");
            v();
            jQuery("#primarynavigation").hover(function() {},
            function() {
                suspendMainNavigation = false;
                setCurtain(0);
                $(".dropDownContainer").parent().find("a.primary").map(function(z, A) {
                    if ($(this).hasClass("isHighLight") == false) {
                        $(this).css("color", "#fff")
                    }
                });
                jQuery(".showroom").removeClass("active");
                jQuery(".insights").removeClass("active")
            })
        };
        this.initFolding = function(x, w) {
            if (modulenaviAnimation != false) {
                m = (x !== undefined && typeof x == "number") ? x: m;
                l = (w !== undefined && typeof w == "number" && w > 200) ? w: l
            }
            if (!a) {
                o.style.top = 0;
                h = parseInt(o.style.top, 10);
                k = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement: window.document.body || null;
                document.onmousemove = s;
                i = window.setInterval(function() {
                    t()
                },
                200);
                a = true
            }
            t()
        };
        this.stopFolding = function() {
            o.style.top = 0;
            document.onmousemove = undefined;
            a = false;
            d.style.position = "absolute";
            window.clearInterval(i);
            window.clearInterval(n)
        };
        var v = function() {
            var A = document.getElementById(r);
            var B = A.getElementsByTagName("a");
            var x = [];
            for (var E = 0; E < B.length; E++) {
                if (B[E].href.indexOf("javascript:") == -1 && B[E].href.indexOf("http://") == -1) {
                    x[E] = "http://" + window.location.hostname + "" + B[E].href
                } else {
                    x[E] = B[E].href
                }
            }
            if ((window.location.pathname.indexOf("/allfacts/") != -1) && (window.location.pathname.indexOf("/newvehicles/") != -1)) {
                var z = window.location.pathname;
                if (z.indexOf("?") != -1) {
                    z = z.substr(0, z.indexOf("?"))
                }
                var z = z.substr(0, z.indexOf("allfacts")) + "allfacts/";
                var y = z;
                var F = y;
                var H = z.substr(0, z.indexOf("allfacts"));
                if (y.indexOf("http://") >= 0) {
                    F = y.substr("http://".length);
                    F = F.substr(window.location.hostname.length)
                }
                $("#mainNavigation").find("a.optimized").each(function(I, K) {
                    if (startsWith($(this).attr("href"), F) == true) {
                        var M = $(this).parent().parent().nextAll().length;
                        var L = $(this).parent().parent().siblings().length + 1;
                        var J = L - M - 1;
                        $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + J + ")>a").css("color", "#003399");
                        $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + J + ")>a").addClass("isHighLight");
                        $(this).parent().parent().parent().parent().parent().find("a.primary").css("color", "#003399");
                        $(this).parent().parent().parent().parent().parent().find("a.primary").addClass("isHighLight");
                        $(this).addClass("isHighLight");
                        $(this).css("color", "#003399");
                        if ($(this).hasClass("optimized") == true) {
                            $(this).css("background-position", "0px -11px")
                        }
                    }
                })
            } else {
                var w = evaluateHighlighting(window.location.href, x);
                var C = -1;
                var G = 999;
                for (var D = 0; D < w.length; D++) {
                    if (w[D] < G) {
                        G = w[D];
                        C = D;
                        if (w[D] == -2) {
                            break
                        }
                    }
                }
                if (C != -1) {
                    var y = B[C].href;
                    if ((y.indexOf("/insights/") >= 0) || (y.indexOf("/owners/") >= 0) || (y.indexOf("/usedvehicles/") >= 0)) {}
                    var F = "";
                    if (y.indexOf("http://") >= 0) {
                        F = y.substr("http://".length);
                        F = F.substr(window.location.hostname.length)
                    }
                    $("#mainNavigation").find("a.primary").each(function(I, J) {
                        J.style.color = ""
                    });
                    $("#mainNavigation").find("a[href='" + F + "']").map(function(L) {
                        $(this).addClass("isHighLight");
                        if ($(this).hasClass("optimized") == true) {
                            $(this).css("background-position", "0px -11px");
                            $(this).css("color", "#003399")
                        }
                        if (($(this).attr("id") == "home") || ($(this).hasClass("primary") == true)) {
                            $(this).css("color", "#003399")
                        } else {
                            $(this).css("color", "#003399")
                        }
                        if ((y.indexOf("/insights/") >= 0) || (y.indexOf("/owners/") >= 0) || (y.indexOf("/usedvehicles/") >= 0) || (y.indexOf("/about_dealer/") >= 0) || (y.indexOf("/service_parts/") >= 0)) {
                            $(this).parent().parent().parent().parent().parent().parent().parent().find("a:first").map(function(N) {
                                if (($(this).hasClass("arrow") == false) && ($(this).parent().hasClass("smallStandard") == false)) {
                                    $(this).css("color", "#003399");
                                    $(this).addClass("isHighLight")
                                }
                            })
                        } else {
                            if ((y.indexOf("/newvehicles/") >= 0) && ($(this).hasClass("optimized") == false)) {
                                var K = $(this).parent().parent();
                                var J = $(this).parent().parent().find("li:first").siblings().length + 1;
                                var M = $(this).parent().nextAll().length;
                                var I = J - M - 1;
                                $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + I + ")>a").css("color", "#003399");
                                $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + I + ")>a").addClass("isHighLight");
                                $(this).parent().parent().parent().parent().parent().find("a.primary").css("color", "#003399");
                                $(this).parent().parent().parent().parent().parent().find("a.primary").addClass("isHighLight")
                            } else {
                                if ((y.indexOf("/newvehicles/") >= 0) && ($(this).hasClass("optimized") == true)) {
                                    var M = $(this).parent().parent().nextAll().length;
                                    var J = $(this).parent().parent().siblings().length + 1;
                                    var I = J - M - 1;
                                    $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + I + ")>a").css("color", "#003399");
                                    $(this).parent().parent().parent().parent().find(".dropDownColumn>ul>li:eq(" + I + ")>a").addClass("isHighLight");
                                    $(this).parent().parent().parent().parent().parent().find("a.primary").css("color", "#003399");
                                    $(this).parent().parent().parent().parent().parent().find("a.primary").addClass("isHighLight")
                                }
                            }
                        }
                    })
                }
            }
        };
        var s = function(w) {
            if (!w) {
                w = window.event
            }
            f = w.pageY ? w.pageY: w.clientY + k.scrollTop
        };
        var t = function() {
            if (suspendMainNavigation == true) {
                return
            }
            var w = h + parseInt(o.offsetHeight, 10);
            if (!moduleNavigation.hidden && !moduleNavigation.folded) {
                w += parseInt(moduleNavigation.offsetHeight, 10)
            }
            if (f < w && h < 0) {
                window.clearInterval(n);
                n = window.setInterval(function() {
                    u()
                },
                l)
            } else {
                if (f > w && h > -c) {
                    if (!moduleNavigation.folded) {
                        moduleNavigation.startFold(false)
                    }
                    window.clearInterval(n);
                    n = window.setInterval(function() {
                        p()
                    },
                    l)
                }
            }
        };
        var u = function() {
            $(".dropDownContainer").parent().removeClass("active");
            suspendMainNavigation = false;
            setCurtain(0);
            $(".dropDownContainer").parent().find("a.primary").map(function(x, y) {
                if ($(this).hasClass("isHighLight") == false) {
                    $(this).css("color", "#fff")
                }
            });
            h = parseInt(o.style.top, 10);
            if (h < 0) {
                var w = (h + parseInt(c / m, 10));
                o.style.top = (w > 0) ? "0px": w + "px";
                d.style.top = (w > 0) ? "0px": w * ( - 1)
            } else {
                window.clearInterval(n);
                onMainNavigationMovedDown()
            }
        };
        var p = function() {
            $(".dropDownContainer").parent().removeClass("active");
            suspendMainNavigation = false;
            setCurtain(0);
            $(".dropDownContainer").parent().find("a.primary").map(function(x, y) {
                if ($(this).hasClass("isHighLight") == false) {
                    $(this).css("color", "#fff")
                }
            });
            h = parseInt(o.style.top, 10);
            if (h > -c) {
                var w = (h - parseInt(c / m, 10));
                o.style.top = (w < -c) ? -c + "px": w + "px";
                d.style.top = (w < -c) ? c + "px": w * ( - 1)
            } else {
                window.clearInterval(n);
                onMainNavigationMovedUp()
            }
        }
    })
})();
var modulenaviAnimation = true;
var hiddenModuleNavigation = false;
var moduleNavigation;
var ModuleNavigation = (function() {
    var o = 460;
    var s = 300;
    try {
        if (modulnavHeight) {
            o = modulnavHeight
        }
        if (modulnavHeightTeasermode) {
            s = modulnavHeightTeasermode
        }
    } catch(t) {}
    var j = 42;
    var r = 22;
    var b;
    var g = 42;
    var l = 0;
    var w = 10;
    var u = 20;
    var m = 100;
    var q = 20;
    var v;
    var a;
    var h;
    var i;
    var p;
    var n;
    var k;
    var f;
    var d;
    var c = false;
    return (function(E, D) {
        d = document.getElementById(E);
        this.folded = false;
        this.hidden = false;
        var J = this;
        this.init = function() {
            k = document.getElementById("scrollControll");
            f = document.getElementById("moduleNavigationList");
            b = o;
            if (f != undefined) {
                l = f.offsetHeight + f.offsetTop;
                if (D) {
                    addClassName(d, "closed");
                    this.folded = true
                }
                I();
                if (modulenaviAnimation == false) {
                    this.configureFoldingAnimation(1, 10)
                }
                if (hiddenModuleNavigation) {
                    d.style.height = "auto";
                    this.hideModuleNavigation(hiddenModuleNavigation)
                } else {
                    d.style.height = (D) ? g + "px": b + "px"
                }
            } else {
                if (hasClassName(d, "hidden")) {
                    this.hidden = true
                }
            }
        };
        var x = function(L) {
            if (L) {
                b = s;
                d.style.height = b;
                addClassName(d, "teaserMode")
            } else {
                b = o;
                d.style.height = b;
                removeClassName(d, "teaserMode")
            }
        };
        var I = function() {
            var L = f.getElementsByTagName("a");
            var R = [];
            for (var P = 0; P < L.length; P++) {
                if (L[P].href.indexOf("javascript:") == -1 && L[P].href.indexOf("http://") == -1) {
                    R[P] = "http://" + window.location.hostname + "" + L[P].href
                } else {
                    R[P] = L[P].href
                }
            }
            var O = evaluateHighlighting(window.location.href, R);
            var M = -1;
            var Q = 999;
            for (var N = 0; N < O.length; N++) {
                if (O[N] < Q) {
                    Q = O[N];
                    M = N;
                    if (O[N] == -2) {
                        break
                    }
                }
            }
            if (M != -1) {
                if (L[M].getAttribute("teasermode") == "true") {
                    x(true)
                }
                J.highlightCurrentLink(L[M])
            }
        };
        this.highlightCurrentLink = function(N) {
            addClassName(N, "moduleNaviHighlight");
            var M = N.getAttribute("navParent");
            if (M != undefined) {
                var O = document.getElementById(M);
                this.nodeAction(N, false);
                this.highlightCurrentLink(O);
                if (H(N) == 3) {
                    i = N.parentNode;
                    K(true)
                }
            } else {
                var L = C(N);
                if (L !== null) {
                    h = N.parentNode;
                    K(true)
                } else {
                    K(false)
                }
            }
        };
        var C = function(M) {
            if (M.nextSibling != undefined) {
                var L = M.nextSibling;
                while (L.nodeType != 1) {
                    if (L.nextSibling != null) {
                        L = L.nextSibling
                    } else {
                        return null
                    }
                }
                return L
            } else {
                return null
            }
        };
        var y = function(L) {
            var M = d.offsetHeight;
            if ((!J.folded && M > g) || (J.folded && M < b)) {
                if (M + L < g) {
                    d.style.height = g + "px"
                } else {
                    if (M + L > b) {
                        d.style.height = b + "px"
                    } else {
                        d.style.height = (M + L) + "px";
                        return true
                    }
                }
            }
            A()
        };
        this.startFold = function(L) {
            window.clearInterval(a);
            var M;
            if (!this.folded && (L == undefined || L === true)) {
                M = Math.round((g - d.offsetHeight) / w)
            } else {
                if (this.folded && (L == undefined || L === false)) {
                    M = Math.round((b - d.offsetHeight) / w)
                }
            }
            if (M != null && M != 0) {
                a = window.setInterval(function() {
                    y(M)
                },
                u)
            }
        };
        var A = function() {
            window.clearTimeout(a);
            if (J.folded) {
                removeClassName(d, "closed")
            } else {
                addClassName(d, "closed")
            }
            J.folded = !J.folded
        };
        this.configureFoldingAnimation = function(M, L) {
            w = M;
            u = L
        };
        var K = function(L) {
            if (L) {
                i = h;
                k.style.top = i.offsetTop + "px";
                k.style.height = i.offsetHeight - 10 + "px";
                n = i.getElementsByTagName("ul")[0];
                B()
            } else {
                i = null;
                k.style.display = "none"
            }
        };
        var H = function(N) {
            var M = N.parentNode;
            var L = 0;
            do {
                if ((M != null) && (M.tagName != undefined) && (typeof(M) != "undefined")) {
                    if (M.tagName == "UL") {
                        L++
                    }
                    if (M.getAttribute("id") == "moduleNavigation") {
                        break
                    }
                    M = M.parentNode
                }
            } while (( M != null ) && (M.tagName != undefined) && (typeof(M) != "undefined"));
            return L
        };
        var B = function() {
            if (i != undefined) {
                n.scrollTop = 0;
                var L = i.getElementsByTagName("ul")[0].firstChild;
                var M = 0;
                while (L != null) {
                    M += (L.offsetHeight != undefined) ? L.offsetHeight: 0;
                    L = L.nextSibling
                }
                M += i.getElementsByTagName("a")[0].offsetHeight;
                if (M + 4 > i.offsetHeight - 6 + 2) {
                    setTimeout(function() {
                        k.style.display = "block";
                        c = true;
                        z()
                    },
                    50)
                } else {
                    setTimeout(function() {
                        k.style.display = "none";
                        c = false
                    },
                    50)
                }
            }
        };
        var G = function(L) {
            if ((L > 0 && i.scrollTop < n.offsetHeight) || (L < 0 && n.scrollTop > 0)) {
                n.scrollTop += L
            } else {
                J.stopScroll()
            }
        };
        this.startScroll = function(M) {
            this.stopScroll();
            var L = (i.offsetHeight / m) * M;
            v = window.setInterval(function() {
                G(L)
            },
            q)
        };
        this.stopScroll = function() {
            window.clearInterval(v)
        };
        this.configureScrollAnimation = function(L, M) {
            m = L;
            q = M
        };
        this.hideModuleNavigation = function(L) {
            if (L) {
                addClassName(d, "hidden");
                this.hidden = true
            } else {
                removeClassName(d, "hidden");
                this.hidden = false
            }
        };
        var F = function(L, N) {
            var M = L;
            while (M.parentNode.id != "moduleNavigationList") {
                M = M.parentNode.parentNode;
                if (N) {
                    addClassName(M, "active")
                } else {
                    removeClassName(M, "active")
                }
            }
            return M
        };
        this.nodeAction = function(Q, N) {
            var P = hasClassName(Q.parentNode, "active");
            if (typeof p == "object" && p !== null) {
                var O = F(p, false);
                O.style.height = "auto";
                removeClassName(p, "active")
            }
            h = Q.parentNode;
            if (p == h && N) {
                x(true);
                if (N) {
                    K(false)
                }
                p = null
            } else {
                if (p != h && N && P) {
                    x(false);
                    F(p, false);
                    if (N) {
                        K(false)
                    }
                    p = null
                } else {
                    if (p == h && !N && P) {
                        x(false);
                        var M = F(h, true);
                        removeClassName(p, "active");
                        p = M;
                        if (N) {
                            K(false)
                        } else {
                            B()
                        }
                        if (n != undefined) {
                            n.style.position = "static";
                            n.style.position = "relative"
                        }
                    } else {
                        x(false);
                        var M = F(h, true);
                        var L = (b - l);
                        M.style.height = L + "px";
                        M.getElementsByTagName("ul")[0].style.height = L - 27 + "px";
                        addClassName(h, "active");
                        if (N) {
                            K(true)
                        } else {
                            B()
                        }
                        p = h
                    }
                }
            }
            return false
        };
        var z = function() {
            if (c) {
                var O = i.getElementsByTagName("ul")[0].firstChild;
                var R = 0;
                var N = 0;
                var L = 0;
                var Q = false;
                var P = 0;
                if (i.getElementsByTagName("a").length > 0) {
                    var M = i.getElementsByTagName("a")[0];
                    P = (M.offsetHeight != undefined) ? M.offsetHeight + 0 : 0
                }
                while (O != null) {
                    R += (O.offsetHeight != undefined) ? O.offsetHeight + 0 : 0;
                    if (p == O || (O.tagName && O.tagName.toLowerCase() == "li" && hasClassName(O, "active"))) {
                        Q = true;
                        L = (O.offsetHeight != undefined) ? O.offsetHeight + 0 : 0;
                        break
                    }
                    if (!Q) {
                        N += (O.offsetHeight != undefined) ? O.offsetHeight + 0 : 0
                    }
                    O = O.nextSibling
                }
                if (Q && (N + L + P) > i.offsetHeight - P) {
                    var S = N + L + P - i.offsetHeight;
                    n.scrollTop = S
                }
            }
        }
    })
})();
var gdelay = 700;
try {
    $(document).ready(function() {
        $(".dropDownContainer").mouseover(function(a) {
            suspendMainNavigation = true
        });
        $(".dropDownContainer").mouseout(function(f) {
            var b = f || window.event;
            var c = b.relatedTarget || b.fromElement;
            var a = $(this).parent().find("*");
            for (var d = 0; d < a.length; d++) {
                if (a[d] == c) {
                    return
                }
            }
            $(this).parent().removeClass("active");
            suspendMainNavigation = false;
            setCurtain(0);
            $(this).parent().find("a.primary").map(function(g, h) {
                if ($(this).hasClass("isHighLight") == false) {
                    $(this).css("color", "#fff")
                }
            })
        });
        $(".dropDownColumnOther").find("ul>li>a").hover(function(a) {
            if ($(this).attr("class") == "topicHeader") {
                return
            }
            $(this).css("background", "#003399");
            $(this).css("color", "#fff")
        },
        function(a) {
            if ($(this).attr("class") == "topicHeader") {
                return
            }
            $(this).css("background", "#fff");
            if ($(this).hasClass("isHighLight")) {
                $(this).css("color", "#003399")
            } else {
                $(this).css("color", "#4c4c4c")
            }
        });
        $(".leftItemHidden").hover(function(g) {
            var d = $(this).parent().parent().parent().parent().find(".showroomInfoDefault").siblings().map(function() {
                $(this).css("display", "none")
            });
            $(this).parent().parent().parent().parent().find(".dropDownColumnRight").find("div").map(function() {
                $(this).css("display", "none")
            });
            var a = $(this).parent().siblings().map(function(h) {
                $(this).css("background", "#fff")
            });
            var f = $(this).parent().siblings().find("a:first").map(function() {
                if ($(this).hasClass("topicHover") == true) {
                    $(this).removeClass("topicHover");
                    $(this).addClass("topic");
                    if ($(this).hasClass("isHighLight") == true) {
                        $(this).css("color", "#003399")
                    }
                }
            });
            var c = $(this).parent().parent().parent().parent();
            var b = jQuery(c.find(".showroomInfoDefault"));
            b.show()
        },
        function(a) {
            return
        });
        $(".leftItemHead").hover(function(d) {
            var j = $(this).parent().parent().parent().parent();
            var f = jQuery(j.find(".showroomInfoDefault"));
            var a = $(this).parent().parent().parent().parent().find(".showroomInfoDefault").siblings().map(function() {
                $(this).css("display", "none")
            });
            var h = $(this).parent().siblings().map(function(l) {
                $(this).css("background", "#fff")
            });
            var g = $(this);
            var k = d || window.event;
            var c = k.relatedTarget || k.fromElement;
            var i = $(this).parent().siblings().parent().length + 1;
            var b = $(this).parent().siblings().find("a:first").map(function() {
                if ($(this).hasClass("topicHover") == true) {
                    $(this).removeClass("topicHover");
                    $(this).addClass("topic");
                    if ($(this).hasClass("isHighLight") == true) {
                        $(this).css("color", "#003399")
                    }
                }
            });
            $(this).parent().parent().parent().parent().find(".dropDownColumnRight").find("div").map(function() {
                $(this).css("display", "none")
            });
            f.show()
        },
        function(a) {
            return
        });
        $(".leftItem").hover(function(f) {
            var j = $(this).parent().siblings().length + 1;
            var a = $(this).parent().nextAll().length;
            var d = j - a - 1;
            var b = $(this).parent().siblings();
            var l = $(this).parent().parent().parent().parent();
            var g = jQuery(l.find(".showroomInfo")[d - 1]);
            var i = $(this).parent().siblings().map(function(m) {
                $(this).css("background", "#fff")
            });
            var b = $(this).parent().siblings().find("a:first").map(function() {
                if ($(this).hasClass("topicHover") == true) {
                    $(this).removeClass("topicHover");
                    $(this).addClass("topic");
                    if ($(this).hasClass("isHighLight") == true) {
                        $(this).css("color", "#003399")
                    }
                }
            });
            $(this).parent().parent().parent().parent().find(".dropDownColumnRight").find("div").map(function() {
                $(this).css("display", "none")
            });
            $(this).parent().css("background", "#003399");
            if ($(this).hasClass("isHighLight") == true) {
                $(this).css("color", "#ffffff")
            }
            var h = $(this);
            var k = f || window.event;
            var c = k.relatedTarget || k.fromElement;
            hilite(h, false);
            g.show()
        },
        function(a) {
            return
        });
        $("#primarynavigation").find("li:first").find("a").mouseover(function(a) {
            $(this).parent().parent().find("li").map(function(b) {
                $(this).removeClass("active");
                $(this).find("a.primary").each(function(c, d) {
                    if ($(this).hasClass("isHighLight") == false) {
                        $(this).css("color", "#fff")
                    }
                });
                $(this).find("a.primary")
            });
            $(this).css("color", "#003399");
            $(this).parent().parent().find(".dropDownColumn").find("a").map(function() {
                if ($(this).hasClass("topicHover") == true) {
                    $(this).removeClass("topicHover");
                    $(this).addClass("topic");
                    $(this).parent().css("background", "#FFFFFF")
                }
            });
            $(this).parent().parent().find(".dropDownColumnRight").find("div").map(function() {
                $(this).css("display", "none")
            });
            setCurtain(0)
        });
        $("#primarynavigation").find("li:first").find("a").mouseout(function(a) {
            $(this).css("color", "#fff")
        });
        $("#primarynavigation").find(".primary").hover(function(a) {
            $(this).parent().parent().find("li").map(function(b) {
                $(this).removeClass("active")
            });
            $(this).parent().parent().find("li>a.primary").map(function(b) {
                if ($(this).hasClass("isHighLight") == false) {
                    $(this).css("color", "#fff")
                }
            });
            $(this).parent().addClass("active");
            $(this).parent().find(".dropDownColumn").find("a").map(function() {
                if ($(this).hasClass("topicHover") == true) {
                    $(this).removeClass("topicHover");
                    $(this).addClass("topic");
                    $(this).parent().css("background", "#FFFFFF")
                }
            });
            $(this).parent().find(".dropDownColumnRight").find("div").map(function() {
                $(this).css("display", "none")
            });
            $(this).parent().find(".dropDownColumnRight").find(".showroomInfoDefault").css("display", "block");
            setCurtain(1);
            $(this).css("color", "#003399")
        },
        function(h) {
            var b = h || window.event;
            var f = b.relatedTarget || b.fromElement;
            var a = $(this).parent().parent().find("*");
            var d = $(this).parent().parent().find("li:first");
            var c = $(this).parent().parent().find("li:first").find("a");
            for (var g = 0; g < a.length; g++) {
                if ((a[g] == f) || ($(this).parent().parent()[0] == f)) {
                    return
                }
            }
            setCurtain(0);
            suspendMainNavigation = false
        })
    })
} catch(e) {
    alert(e)
}
function hilite(b, a) {
    b.removeClass("topic");
    b.addClass("topicHover")
}
function normalize(a, b) {
    a.removeClass("topicHover");
    a.addClass("topic")
}
function EventEntry(a, c, f, b, d) {
    this.toShow = a;
    this.toHide = c;
    this.toHilite = f;
    this.toNormal = b;
    this.isHeader = d;
    this.timer = window.setTimeout("handleMouseOut()", 500)
}
function onMainNavigationMovedUp() {
    mainNavigationMask("show");
    try {
        thisMovie("mainFlash").mainnavigationClosed()
    } catch(a) {}
}
function onMainNavigationMovedDown() {
    mainNavigationMask("hide");
    try {
        thisMovie("mainFlash").mainnavigationOpened()
    } catch(a) {}
}
function mainNavigationMask(a) {
    if (jQuery("#mainNavigationMask").length == 0 && jQuery("#mainNavigationContainer").length == 1) {
        jQuery("#mainNavigationContainer").append("<div id='mainNavigationMask' style='height:90px; width:790px; position:absolute; left:0px; top:0px; z-index:1999;'></div>")
    }
    if (a == "show") {
        jQuery("#mainNavigationMask").css("display", "block")
    } else {
        if (a == "hide") {
            jQuery("#mainNavigationMask").css("display", "none")
        }
    }
}
function startsWith(b, a) {
    var c = a.length;
    if (b.substr(0, c) == a) {
        return true
    }
    return false
};
selectBoxes = new Array();
directOrder = new Array();
function selectBoxNotify(a) {}
function setOption(f, e, d, c, a, b) {
    formFieldValue = e;
    activeText = f;
    setVisibility("selectBoxContent" + d, 0, "none");
    writeIntoLayer("selectedValue" + d, "  " + f);
    if (b != "none") {
        if (typeof b != "undefined" && b != null && b != "") {
            if (document.forms.length > 0) {
                document.forms[b][d].value = formFieldValue
            }
        } else {
            if (document.forms.length > 0) {
                document.forms[0][d].value = formFieldValue
            }
        }
    }
    if (c) {
        selectBoxNotify(d, formFieldValue, a)
    }
}
function writeSelectBox(q, n, m, r, d, h, f, o, k, t, c) {
    var e = "";
    entryFound = false;
    var p = "#003399";
    var a = "#FF6600";
    var l = p003399Gif;
    var g = pulldownGif;
    var b = "";
    if (o == true) {
        p = "#ff0000";
        g = pulldownErrorGif;
        l = pff0000Gif
    }
    for (i = 0; i < n.length; i++) {
        if (n[i + 1] == h) {
            selectText = n[i];
            e = n[i + 1];
            entryFound = true;
            break
        }
        i++
    }
    if (!entryFound) {
        selectText = n[0];
        e = n[1]
    }
    selectBoxes.push(q);
    directOrder[q] = false;
    tdWidth = r - 20;
    if (d > (n.length / 2)) {
        d = (n.length / 2)
    }
    deep = (d * 16) + 14;
    if (k == true) {
        b += '<input type="text" class="defaultReadonly" readonly="readonly" value="' + selectText + '">';
        b += '<input type="hidden" name="' + q + '" value="' + e + '">'
    } else {
        if (ua.indexOf("opera") != -1) {
            b += '<div style="position:static;z-index:' + m + ';">'
        } else {
            b += '<div style="position:relative;z-index:' + m + ';">'
        }
        b += '<table width="' + r + '" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff">';
        b += '<colgroup><col width="1"><col width="' + tdWidth + '"><col width="18"><col width="1"></colgroup>';
        b += '<tr><td colspan="4" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + r + '" height="1"></td></tr>';
        b += "<tr>";
        b += '<td bgcolor="' + p + '"><img src="/images/' + l + '" width="1" height="16"></td>';
        b += '<td valign="middle" onClick="setVisibility(\'selectBoxContent' + q + "');\" onMouseover=\"directOrder['" + q + "']=true;\" onMouseout=\"directOrder['" + q + '\']=false;" style="cursor:pointer;"><span id="selectedValue' + q + '">  ' + selectText + "</span></td>";
        b += "<td><a href=\"javascript:setVisibility('selectBoxContent" + q + "');\" onMouseover=\"directOrder['" + q + "']=true;\" onMouseout=\"directOrder['" + q + '\']=false;"><img src="/images/' + g + '" width="18" height="16" border="0"></a></td>';
        b += '<td  bgcolor="' + p + '"><img src="/images/' + l + '" width="1" height="16"></td>';
        b += "</tr>";
        b += '<tr><td colspan="4" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + r + '" height="1"></td></tr>';
        b += "</table>";
        if (c) {
            if (t == "above") {
                b += '<div id="selectBoxContent' + q + '" class="selectBoxContent" style="width:' + c + "; top:" + -(deep + 1) + 'px;" >'
            } else {
                b += '<div id="selectBoxContent' + q + '" class="selectBoxContent" style="width:' + c + "; border-top:1px solid " + p + '; top:17px;">'
            }
            b += '<table width="' + c + '" cellspacing="0" cellpadding="0" border="0">'
        } else {
            if (t == "above") {
                b += '<div id="selectBoxContent' + q + '" class="selectBoxContent" style="top:' + -(deep + 1) + 'px;" >'
            } else {
                b += '<div id="selectBoxContent' + q + '" class="selectBoxContent">'
            }
            b += '<table width="' + r + '" cellspacing="0" cellpadding="0" border="0">'
        }
        if (t == "above") {
            if (c) {
                b += '<tr><td colspan="3" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + c + '" height="1"></td></tr>'
            } else {
                b += '<tr><td colspan="3" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + r + '" height="1"></td></tr>'
            }
        }
        b += "<tr>";
        b += '<td width="1" bgcolor="' + p + '"><img src="/images/' + transGif + '" width="1" height="1"></td>';
        b += '<td width="' + (tdWidth - 2) + '" valign="top">';
        if (c) {
            b += '<div style="width:' + (c - 2) + "px; height:" + deep + 'px; background-color:#ffffff; overflow:auto;">'
        } else {
            b += '<div style="width:' + (r - 2) + "px; height:" + deep + 'px; background-color:#ffffff; overflow:auto;">'
        }
        b += '<span id="vSpace" style="padding-bottom:7px;"></span>';
        for (i = 0; i < n.length; i++) {
            n[i + 1] = n[i + 1].replace(/'/g, "\\'");
            var s = n[i].replace(/'/g, "\\'");
            b += "<a href=\"javascript:setOption('" + s + "','" + n[i + 1] + "','" + q + "'," + f + "," + m + ');" class="selectboxEntry">  ' + n[i] + "</a>";
            i++
        }
        b += "</div>";
        b += "</td>";
        b += '<td width="1" bgcolor="' + p + '"><img src="/images/' + transGif + '" width="1" height="1"></td>';
        b += "</tr>";
        if (c) {
            b += '<tr><td colspan="3" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + c + '" height="1"></td></tr>'
        } else {
            b += '<tr><td colspan="3" bgcolor="' + p + '"><img src="/images/' + l + '" width="' + r + '" height="1"></td></tr>'
        }
        b += "</table>";
        b += "</div>";
        b += "</div>";
        b += '<div style="width:2px;height:2px;overflow:hidden;"></div>';
        b += '<input type="hidden" name="' + q + '" value="' + e + '">'
    }
    return b
}
function checkSelectBoxStatus() {
    for (j = 0; j < selectBoxes.length; j++) {
        if (!directOrder[selectBoxes[j]]) {
            setVisibility("selectBoxContent" + selectBoxes[j], 0, "none")
        }
    }
}
var scriptedCheckbox = "";
function writeCheckbox(s, p, d, o, q, m, n, r, k, g, f, e) {
    var a;
    var h;
    var c = "padding-left:23px;";
    var l;
    if (d != "true") {
        a = checkboxGif;
        h = checkboxGifHigh;
        if (k) {
            a = checkboxErrorGif;
            h = checkboxErrorGifHigh;
            c = "padding-left:23px;color:#ff0000;"
        }
        if (e) {
            a = checkboxDisabledGif;
            h = checkboxDisabledGifHigh;
            c = "padding-left:23px;color:#333333;";
            checkReadOnly.push(s)
        } else {
            for (i = 0; i < checkReadOnly.length; i++) {
                if (checkReadOnly[i] == s) {
                    checkReadOnly.slice(i, 1)
                }
            }
        }
    } else {
        a = checkboxGifHigh;
        h = checkboxGif;
        if (k) {
            a = checkboxErrorGifHigh;
            h = checkboxErrorGif;
            c = "padding-left:23px;color:#ff0000;"
        }
        if (e) {
            a = checkboxDisabledGifHigh;
            h = checkboxDisabledGif;
            c = "padding-left:23px;color:#333333;";
            checkReadOnly.push(s)
        } else {
            for (i = 0; i < checkReadOnly.length; i++) {
                if (checkReadOnly[i] == s) {
                    checkReadOnly.slice(i, 1)
                }
            }
        }
    }
    if (f) {
        l = "display:inline;"
    } else {
        l = "display:none;"
    }
    p = p.replace(/\n/g, "<br><br>");
    checkClient();
    if (browserId == "Safari") {
        var b = n - 19;
        scriptedCheckbox = '<span id="vSpace" class="formOffset2"></span><br><div class="' + g + '" style="position:relative; display: inline; width:' + n + "px; height:auto; z-index:" + m + ';"><div style="position:absolute; display:inline; top:13px; left:0; width:23px;"><img src="' + a + '" vspace="1" style="cursor:pointer;" id="checkboxImage' + q + '" preload="' + h + '" onClick="setCheckbox(this,\'' + s + "','" + o + '\');"></div><div style="display:inline;float:left;"><div style="' + c + ";display: block;width:" + b + 'px;">' + p + '<span id="mandatory_' + s + '" style="' + l + '">*</span></div></div><input type="hidden" name="' + o + '" value="' + d + '"></div>'
    } else {
        var b = n - 19;
        scriptedCheckbox = '<span id="vSpace" class="formOffset2"></span><br><div class="' + g + '" style="position:relative; display: inline; width:' + n + "px; height:auto; z-index:" + m + ';"><div style="display:inline;"><div style="' + c + ";display: block;width:" + b + 'px;">' + p + '<span id="mandatory_' + s + '" style="' + l + '">*</span></div></div><div style="position:absolute; top:0; left:0; width:23px;"><img src="' + a + '" vspace="1" style="cursor:pointer;" id="checkboxImage' + q + '" preload="' + h + '" onClick="setCheckbox(this,\'' + s + "','" + o + '\');"></div><input type="hidden" name="' + o + '" value="' + d + '"></div>'
    }
    return scriptedCheckbox
}
var allowSend = true;
function handleSubmit(a) {
    if (allowSend == true) {
        allowSend = false;
        if (a) {
            document.forms[0].elements.action.value = a
        }
        document.forms[0].submit()
    }
    return false
}
function writeButton(f, b, d, c, a) {
    var e = '<a href="#" onclick="return handleSubmit(\'' + c + '\')" id="defaultAnchorButton">' + a + "</a>";
    return e
};
var lTeaserThumbsHighCss = new Array();
lTeaserThumbsHighCss[3] = "left:866px; overflow:hidden;";
lTeaserThumbsHighCss[2] = "left:793px; overflow:hidden;";
lTeaserThumbsHighCss[1] = "left:719px; overflow:hidden;";
lTeaserThumbsHighCss[0] = "left:646px; overflow:hidden;";
var lTeaserThumbTextCss = new Array();
lTeaserThumbTextCss[3] = "position: absolute; visibility: hidden; margin-top: 2px; left: 217px; top: 55px;";
lTeaserThumbTextCss[2] = "position: absolute; visibility: hidden; margin-top: 2px; left: 146px; top: 55px;";
lTeaserThumbTextCss[1] = "position: absolute; visibility: hidden; margin-top: 2px; left: 75px; top: 55px;";
lTeaserThumbTextCss[0] = "position: absolute; visibility: hidden; margin-top: 2px; left: 04px; top: 55px;";
var transFileName = "1x1_trans.gif";
var currentLTeaserId = 0;
var handlerLTRotation;
var handlerSTRotation;
var sTeaserReadyCount = 0;
function rollOverThumb(a, b) {
    resetThumb();
    if (b == 1) {
        var c = $("#lTeaserThumb" + a).get(0).offsetLeft - 42;
        if (c < 0) {
            c = 0
        }
        $("#blueThumb" + a).css("visibility", "hidden");
        $("#lTeaserThumbsHigh" + a).css("display", "block");
        $("#lTeaserThumb" + a).css("display", "none");
        $("#lTeaserThumbText" + a).css("visibility", "visible");
        $("#lTeaserThumbText" + a).css("left", c + "px")
    } else {
        $("#lTeaserThumbsHigh" + a).css("display", "none");
        $("#lTeaserThumb" + a).css("display", "block");
        $("#lTeaserThumbText" + a).css("visibility", "hidden")
    }
    $("#blueThumb" + a).css("visibility", "visible")
}
function resetThumb() {
    for (x = 0; x < lTeasers.length; x++) {
        $("#lTeaserThumbsHigh" + x).css("display", "none");
        $("#lTeaserThumb" + x).css("display", "block");
        $("#lTeaserThumbText" + x).css("visibility", "hidden")
    }
}
function hideAllLTeaser() {
    for (var a = 0; a < lTeasers.length; a++) {
        $("#lTeaser_" + a).css("display", "none")
    }
}
function trackingShowLTeaser(a) {
    if (a >= 0 && a < lTeasers.length) {
        clickTracking("LargeTeaserThumbnailNarrow" + a);
        showLTeaser(a)
    }
}
function showLTeaser(b) {
    var c;
    if (b >= 0 && b < lTeasers.length) {
        c = b
    } else {
        if (currentLTeaserId >= 0 && currentLTeaserId < lTeasers.length - 1) {
            c = currentLTeaserId + 1
        } else {
            if (currentLTeaserId == lTeasers.length - 1) {
                c = 0
            }
        }
    }
    if (isLTeaserReady(c)) {
        currentLTeaserId = c;
        startLTRotate(lTeasers[currentLTeaserId]["duration"])
    } else {
        startLTRotate(lTeasers[currentLTeaserId]["duration"]);
        return
    }
    hideAllLTeaser();
    var d = lTeasers[currentLTeaserId]["link"]["internal_url"];
    if (d == "") {
        d = lTeasers[currentLTeaserId]["link"]["external_url"]
    }
    if (d != "") {
        if (lTeasers[currentLTeaserId]["link"]["parameter"]) {
            if (d.indexOf("?") == "-1") {
                d += "?" + lTeasers[currentLTeaserId]["link"]["parameter"]
            } else {
                d += "&" + lTeasers[currentLTeaserId]["link"]["parameter"]
            }
        }
        if ($("#LTHitLink").length > 0) {
            $("#LTHitLink").attr("target", lTeasers[currentLTeaserId]["link"]["target"]);
            $("#LTHitLink").attr("href", d)
        }
    } else {
        $("#LTHitLink").attr("href", "#")
    }
    if (isLTeaserReady(currentLTeaserId)) {
        $("#lTeaser_" + currentLTeaserId).css("display", "block");
        mouseOutLTeaser();
        hideLTeaserMask()
    } else {
        showLTeaserMask()
    }
    for (var a = 0; a < lTeasers.length; a++) {
        $("#thumbTitle" + a).css("color", "#000000");
        if ($("#blueThumb" + a).length > 0) {
            $("#blueThumb" + a).attr("src", transGif)
        }
    }
    $("#thumbTitle" + b).css("color", "#003399");
    $("#blueThumb" + currentLTeaserId).attr("src", p003399Gif)
}
function startLTRotate(a) {
    if (a < 0 || a > 600) {
        a = 30
    }
    window.clearTimeout(handlerLTRotation);
    handlerLTRotation = window.setTimeout("showLTeaser()", 1000 * a)
}
function startSTRotation() {
    window.clearTimeout(handlerSTRotation);
    $("#sTeaserRotationLink").get(0).onclick = showRight;
//	window.onerror=function(){alert(typeof($("#sTeaserRotationLink").get(0).onclick));return false;}
//	onerror=function(msg,url,l){txt="本页中存在错误。\n\n错误：" + msg + "\nURL: " + url + "\n行：" + l + "\n\n点击“确定”继续。\n\n";alert(txt);return true}
    handlerSTRotation = window.setTimeout("showRight('auto')", 1000 * 20)
}

function showRight(a) {
    if (a != "auto") {
        clickTracking("SmallTeaserRotate_58")
    }
    showSTeaser("right", distance);
    window.clearTimeout(handlerSTRotation);
    handlerSTRotation = window.setTimeout("showLeft('auto')", 1000 * 20)
}
function showLeft(a) {
    if (a != "auto") {
        clickTracking("SmallTeaserRotate_14")
    }
    showSTeaser("left", distance);
    window.clearTimeout(handlerSTRotation);
    handlerSTRotation = window.setTimeout("showRight('auto')", 1000 * 20)
}
function getSpeed(a) {
    if (a < 10) {
        return 1
    } else {
        if (a < 30) {
            return 2
        } else {
            if (a < 70) {
                return 4
            } else {
                if (a < 150) {
                    return 10
                } else {
                    if (a < 300) {
                        return 20
                    } else {
                        if (a < 500) {
                            return 30
                        } else {
                            if (a < 800) {
                                return 40
                            }
                        }
                    }
                }
            }
        }
    }
    return 20
}
function showSTeaser(d, b) {
    var e = getSpeed(b);
    var c = 10;
    var a = "sTeaserContent";
    if (d == "right") {
        if (b > 0 && b > e) {
            $("#" + a).css("left", $("#" + a).get(0).offsetLeft - e + "px");
            b -= e;
            window.setTimeout("showSTeaser('" + d + "'," + b + ")", c);
            $("#sTeaserRotationLink").get(0).onclick = function() {}
        } else {
            $("#" + a).css("left", $("#" + a).get(0).offsetLeft - b + "px");
            $("#sTeaserArrowDiv1").css("display", "none");
            $("#sTeaserArrowDiv2").css("display", "block");
            $("#sTeaserRotationLink").get(0).onclick = showLeft
        }
    } else {
        if (d == "left") {
            if (b > 0 && b > e) {
                $("#" + a).css("left", $("#" + a).get(0).offsetLeft + e + "px");
                b -= e;
                window.setTimeout("showSTeaser('" + d + "'," + b + ")", c);
                $("#sTeaserRotationLink").get(0).onclick = function() {}
            } else {
                $("#" + a).css("left", $("#" + a).get(0).offsetLeft + b + "px");
                $("#sTeaserArrowDiv1").css("display", "block");
                $("#sTeaserArrowDiv2").css("display", "none");
                $("#sTeaserRotationLink").get(0).onclick = showRight
            }
        } else {
            return
        }
    }
}
function w(a) {
    if (!a || a.length == 0) {
        return
    }
    return document.write(a)
}
function showLTeaserMask() {
    $("#lTeaserLoadingMask").css("display", "block")
}
function hideLTeaserMask() {
    $("#lTeaserLoadingMask").css("display", "none")
}
function setLTeaserReady(a) {
    if (lTeasers[a]) {
        lTeasers[a]["ready"] = true;
        if (currentLTeaserId == a) {
            showLTeaser(currentLTeaserId)
        }
    }
}
function isLTeaserReady(a) {
    if (lTeasers[a]) {
        return lTeasers[a]["ready"]
    }
    return false
}
function mouseOverLTeaser() {
    for (var a = 0; a < lTeasers[currentLTeaserId]["headline_copy"].length; a++) {
        $("#lTeaserCopy" + currentLTeaserId + "_" + a).css("color", lTeasers[currentLTeaserId]["headline_copy"][a]["font_color_mouseover"])
    }
    for (var a = 0; a < lTeasers[currentLTeaserId]["link_copy"].length; a++) {
        $("#lTeaserLinkText" + currentLTeaserId + "_" + a).css("color", lTeasers[currentLTeaserId]["link_copy"][a]["font_color_mouseover"]);
        $("#lTeaserLinkBG" + currentLTeaserId + "_" + a).css("backgroundColor", lTeasers[currentLTeaserId]["link_copy"][a]["background_color_mouseover"]);
        $("#lTeaserLinkBG" + currentLTeaserId + "_" + a).css("width", $("#lTeaserLinkCopy" + currentLTeaserId + "_" + a).get(0).offsetWidth + "px")
    }
}
function mouseOutLTeaser() {
    for (var a = 0; a < lTeasers[currentLTeaserId]["headline_copy"].length; a++) {
        $("#lTeaserCopy" + currentLTeaserId + "_" + a).css("color", lTeasers[currentLTeaserId]["headline_copy"][a]["font_color"])
    }
    for (var a = 0; a < lTeasers[currentLTeaserId]["link_copy"].length; a++) {
        $("#lTeaserLinkText" + currentLTeaserId + "_" + a).css("color", lTeasers[currentLTeaserId]["link_copy"][a]["font_color"]);
        $("#lTeaserLinkBG" + currentLTeaserId + "_" + a).css("backgroundColor", lTeasers[currentLTeaserId]["link_copy"][a]["background_color"]);
        $("#lTeaserLinkBG" + currentLTeaserId + "_" + a).css("width", $("#lTeaserLinkCopy" + currentLTeaserId + "_" + a).attr("offsetWidth") + "px")
    }
}
function writeLTeaser(b) {
    if (b >= 0 && b < lTeasers.length && $("#" + b).length == 0) {
        w('<div id="lTeaser_' + b + '" class="lTeaserHtml">');
        for (var a = 0; a < lTeasers[b]["headline_copy"].length; a++) {
            if (lTeasers[b]["headline_copy"][a]["text_type"] == "large") {
                w('<h1 id="lTeaserCopy' + b + "_" + a + '" class="lTeaserCopy" style="top:' + lTeasers[b]["headline_copy"][a]["position_top"] + "; left:" + lTeasers[b]["headline_copy"][a]["position_left"] + ';" >' + lTeasers[b]["headline_copy"][a]["text"] + "</h1>")
            } else {
                if (lTeasers[b]["headline_copy"][a]["text_type"] == "small") {
                    w('<h3 id="lTeaserCopy' + b + "_" + a + '" class="lTeaserCopy" style="top:' + lTeasers[b]["headline_copy"][a]["position_top"] + "; left:" + lTeasers[b]["headline_copy"][a]["position_left"] + ';" >' + lTeasers[b]["headline_copy"][a]["text"] + "</h3>")
                }
            }
        }
        for (var a = 0; a < lTeasers[b]["link_copy"].length; a++) {
            w('<div id="lTeaserLinkBG' + b + "_" + a + '" class="lTeaserLinkCopy  lTeaserLinkBG"   style="top:' + lTeasers[b]["link_copy"][a]["position_top"] + "; left:" + lTeasers[b]["link_copy"][a]["position_left"] + ';"></div>');
            w('<div id="lTeaserLinkCopy' + b + "_" + a + '" class="lTeaserLinkCopy" style="top:' + lTeasers[b]["link_copy"][a]["position_top"] + "; left:" + lTeasers[b]["link_copy"][a]["position_left"] + ';">');
            w('<a id="lTeaserLinkText' + b + "_" + a + '" class="lTeaserLinkText"><img alt="" class="arrowWhite" src="/images/' + transGif + '">' + lTeasers[b]["link_copy"][a]["text"] + "</a>");
            w("</div>")
        }
        if (b == 0) {
            w("<img height=\"363\" width=\"1020\" onload=\"theDelayedImageIsReady({'src':this.src,'type':'large','info':" + b + '});" id="lTeaserImg' + b + '"  src="' + lTeasers[b]["narrowband_large_image"] + '"/>')
        } else {
            w("<img height=\"363\" width=\"1020\" onload=\"theDelayedImageIsReady({'src':this.src,'type':'large','info':" + b + '});" id="lTeaserImg' + b + '"  src="' + transGif + '"  delayload="' + lTeasers[b]["narrowband_large_image"] + '"/>')
        }
        w("</div>");
        return true
    }
    return false
}
function lTeaserHigh() {
    var a = new SWFObject(lTeaserWrapper, "preflashTeaser", "1020", "385", "8", "#FFFFFF");
    a.addParam("allowScriptAccess", "always");
    a.addParam("wmode", "transparent");
    a.addParam("quality", "BEST");
    a.addParam("FlashVars", "largeTeaserXmlContent=" + largeTeaserXmlContent);
    if (window.versionIndex && versionIndex >= 8) {
        w(a.getSWFHTML())
    } else {
        lTeaserNarrow()
    }
}
function lTeaserNarrow() {
    w('<div id="lTeaserLoadingMask" class="lTeaserHtml"><div class="lTeaserWashMachine"><img width="44" height="44" src="/_common/html/img/standard_elements/loading.gif" ></div></div>');
    w('<div id="lTeaserHitArea" class="lTeaserHtml" ><a id="LTHitLink" onclick="clickTracking(\'LargeTeaser\' + currentLTeaserId);" href="" target=""  onmouseover="mouseOverLTeaser()" onmouseout="mouseOutLTeaser()"><img alt="" height="100%" width="100%" src="/_common/html/img/palette/1x1_trans.gif" ></a></div>');
    for (var a = lTeasers.length - 1; a >= 0; a--) {
        writeLTeaser(lTeasers.length - 1 - a)
    }
    w('<div class="lTeaserRotation" mouseover="resetThumb();">');
    w('<div class="lTeaserThumb lTeaserRightMask"></div>');
    var b = 0;
    for (var a = lTeasers.length - 1; a >= 0; a--) {
        b = a;
        w('<div id="lTeaserThumb' + a + '" class="lTeaserThumb" onmouseover="rollOverThumb(' + a + ',1)"><a href="javascript://"><img class="lTeaserThumbImg"  alt="" src="/images/' + lTeasers[a]["mouse_out_image"] + '"></a><br/><img width="70" height="3" border="0" style="visibility: visible;" alt="" id="blueThumb' + a + '" src="/images/' + transGif + '"></div>');
        w('<div id="lTeaserThumbsHigh' + a + '" class="lTeaserThumbHigh" style="' + lTeaserThumbsHighCss[b] + '" ><a onclick="trackingShowLTeaser(' + a + ')" href="javascript://"><img class="lTeaserThumbImgHigh" alt="" delayload="' + lTeasers[a]["mouse_over_image"] + "\"  onload=\"theDelayedImageIsReady({'src':this.src,'type':'largeThumbnail','info':" + a + '});"   src="' + transGif + '" ></a></div>');
        w('<div id="lTeaserThumbText' + a + '" class="lTeaserThumbText" style="' + lTeaserThumbTextCss[b] + '"><span id="thumbTitle' + a + '" class="thumbNormal" style="color: rgb(0, 0, 0);">' + lTeasers[a]["title"] + "</span></div>");
        $("#lTeaserThumb" + a).css("display", "block");
        $("#lTeaserThumbText" + a).css("display", "block")
    }
    w("</div>");
    w("<div class='lTeaserLine'></div>");
    showLTeaser(0)
}
$(document).ready(function() {
    $(".lTeaserRotation").hover(function() {},
    function() {
        resetThumb()
    });
    $(".lTeaserThumbHigh").hover(function() {},
    function() {
        resetThumb()
    });
    resetMainDivSize()
});
$(window).resize(function() {
    resetMainDivSize()
});
function resetMainDivSize() {
    if ($("#home_container").length > 0) {
        $(document.body).css("overflow", "hidden");
        var a = $(window).width();
        var b = $(window).height();
        $("#home_container").css("width", "100%");
        if (b != null) {
            $("#home_container").css("height", b - 27)
        }
        if (a < 980 && a > 730) {
            $("#metaNavigationInline").css("width", a)
        } else {
            if (a <= 730) {
                $("#metaNavigationInline").css("width", 730)
            } else {
                $("#metaNavigationInline").css("width", 982)
            }
        }
    }
}
function setOption(f, e, d, c, a, b) {
    if (d == "quickLinks" && e != "") {
        clickTracking("QuickLinkGo-" + e);
        document.location.href = e
    } else {
        if (d == "quickLinks" && e == "") {
            setVisibility("selectBoxContent" + d, 0, "none")
        } else {
            formFieldValue = e;
            activeText = f;
            setVisibility("selectBoxContent" + d, 0, "none");
            writeIntoLayer("selectedValue" + d, "  " + f);
            if (b != "none") {
                if (typeof b != "undefined" && b != null && b != "") {
                    if (document.forms.length > 0) {
                        document.forms[b][d].value = formFieldValue
                    }
                } else {
                    if (document.forms.length > 0) {
                        document.forms[0][d].value = formFieldValue
                    }
                }
            }
            if (c) {
                selectBoxNotify(d, formFieldValue, a)
            }
        }
    }
}
function writeQuickLinkDrop() {
    // if ($(window).height() < 730) {
        // document.getElementById("quickLinkContainer").innerHTML = writeSelectBox("quickLinks", quickLinks, 1, 170, 7, "", true, "", "", "above")
    // } else {
        // document.getElementById("quickLinkContainer").innerHTML = writeSelectBox("quickLinks", quickLinks, 1, 170, 7, "", true, "", "", "")
    // }
}
function onLoadFunctions() {
    scrollerCheckElements = new Array("completePageContent");
    scrollerSize = scrollerDefaultSize;
    window.onresize = resizeTheWindow;
    window.onclick = checkSelectBoxStatus;
    if (confBrowserCheckEnabled) {
        checkBrowser(confIncompatibleBrowserUrl)
    }
    checkWindowSize();
    highlightNavigations(false, moduleNavigation);
    if (document.preflashTeaser && document.preflashTeaser.onHtmlContentReady) {
        document.preflashTeaser.onHtmlContentReady()
    }
    loadDelayedImages()
}
function loadDelayedImages() {
    $("img").each(function(a, b) {
        b = jQuery(b);
        if (b.attr("delayload") && b.attr("delayload").length > 0) {
            b.attr("src", b.attr("delayload"))
        }
    })
}
function theDelayedImageIsReady(a) {
    if (a && a.src && a.src.toLowerCase().indexOf(transFileName) == -1) {
        if (typeof(a.type) == "unknow") {
            a.type = ""
        }
        if (typeof(a.info) == "unknow") {
            a.info = ""
        }
        switch (a.type) {
        case "small":
            sTeaserReadyCount++;
            if (sTeaserReadyCount == $(".sTeaserImage img[delayload]").length) {
                startSTRotation()
            }
            break;
        case "large":
            setLTeaserReady(a.info);
            break;
        case "largeThumbnail":
            break;
        default:
            break
        }
    }
}
function resizeTheWindow() {
    checkWindowSize();
    writeQuickLinkDrop()
}
function fireSTeaser(a) {
    if (typeof($("#" + a).get(0).click) != "undefined") {
        $("#" + a).get(0).click()
    }
}
jQuery(document).ready(function() {
    $(document.forms.search).submit(function() {
        clickTracking("search_" + document.forms.search.originalQuery.value);
        document.forms.search.originalQuery.value = document.forms.search.originalQuery.value.replace(search_headline, "");
        var a = document.forms.search.originalQuery;
        a.value = a.value.replace(/\"/g, "'");
        return true
    })
}); (function($) {
    var reEscape = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\"].join("|\\") + ")", "g");
    function fnFormatResult(value, data, currentValue) {
        var pattern = "(" + currentValue.replace(reEscape, "\\$1") + ")";
        return value.replace(new RegExp(pattern, "gi"), "<strong>$1</strong>")
    }
    function Autocomplete(el, options) {
        this.el = $(el);
        this.el.attr("autocomplete", "off");
        this.suggestions = [];
        this.data = [];
        this.badQueries = [];
        this.selectedIndex = -1;
        this.currentValue = this.el.val();
        this.intervalId = 0;
        this.cachedResponse = [];
        this.onChangeInterval = null;
        this.ignoreValueChange = false;
        this.serviceUrl = options.serviceUrl;
        this.isLocal = false;
        this.options = {
            autoSubmit: false,
            minChars: 1,
            maxHeight: 300,
            deferRequestBy: 0,
            width: 0,
            highlight: true,
            params: {},
            fnFormatResult: fnFormatResult,
            delimiter: null,
            parentElement: options.parentElement
        };
        this.initialize();
        this.setOptions(options)
    }
    $.fn.autocomplete = function(options) {
        return new Autocomplete(this.get(0), options)
    };
    Autocomplete.prototype = {
        killerFn: null,
        initialize: function() {
            var me, uid, autocompleteElId;
            me = this;
            uid = new Date().getTime();
            autocompleteElId = "Autocomplete_" + uid;
            this.killerFn = function(e) {
                if ($(e.target).parents(".autocomplete").size() === 0) {
                    me.killSuggestions();
                    me.disableKillerFn()
                }
            };
            if (!this.options.width) {
                this.options.width = this.el.width()
            }
            this.mainContainerId = "AutocompleteContainter_" + uid;
            var h = 1000;
            try {
                h = (window.innerHeight && typeof(window.innerHeight != "undefined")) ? window.innerHeight: document.body.clientHeight
            } catch(e) {}
            var autoCompleteClass = "autocomplete";
            var autoCompleteContainerClass = "autocomplete-container";
            $('<div id="' + this.mainContainerId + '" class="' + autoCompleteContainerClass + '"><div class="autocomplete-w1"><div class="' + autoCompleteClass + '" id="' + autocompleteElId + '" style="display:none; width:300px;"></div></div></div>').appendTo("#" + this.options.parentElement.id);
            $("#" + autocompleteElId).css("padding-left", "0px");
            this.container = $("#" + autocompleteElId);
            this.fixPosition();
            if (window.opera) {
                this.el.keypress(function(e) {
                    me.onKeyPress(e)
                })
            } else {
                this.el.keydown(function(e) {
                    me.onKeyPress(e)
                })
            }
            this.el.keyup(function(e) {
                me.onKeyUp(e)
            });
            this.el.blur(function() {
                me.enableKillerFn()
            });
            this.el.focus(function() {
                me.fixPosition()
            })
        },
        setOptions: function(options) {
            var o = this.options;
            $.extend(o, options);
            if (o.lookup) {
                this.isLocal = true;
                if ($.isArray(o.lookup)) {
                    o.lookup = {
                        suggestions: o.lookup,
                        data: []
                    }
                }
            }
            $("#" + this.mainContainerId).css({
                zIndex: o.zIndex
            });
            if ( - [1, ]) {
                this.container.css({
                    maxHeight: o.maxHeight + "px",
                    width: o.width
                })
            } else {
                this.container.css({
                    maxHeight: o.maxHeight + "px",
                    width: (o.width + 5)
                })
            }
            this.options.parentElement = options.parentElement
        },
        clearCache: function() {
            this.cachedResponse = [];
            this.badQueries = []
        },
        disable: function() {
            this.disabled = true
        },
        enable: function() {
            this.disabled = false
        },
        fixPosition: function() {
            var offset = this.el.offset();
            if (window.location.href.indexOf("/search/") != "-1") {
                var fixedOffsetTop = 12;
                var fixedOffsetLeft = 1;
                var fixedOffsetWidth = 429;
                $("#" + this.mainContainerId).css({
                    top: (offset.top + this.el.innerHeight() - fixedOffsetTop) + "px",
                    left: (offset.left - fixedOffsetLeft) + "px"
                });
                if ($.browser.msie == true) {
                    var fixedOffsetWidth = 431
                }
                $("#" + this.mainContainerId).find(".autocomplete").css({
                    width: fixedOffsetWidth + "px"
                })
            } else {
                if (window.location.pathname.match(/\/cn\/(zh|en)(\/)?(index\.html)?$/gi)) {
                    var fixedOffsetTop = 4;
                    var fixedOffsetLeft = -1;
                    var fixedOffsetWidth = 354;
                    $("#" + this.mainContainerId).css({
                        top: this.el.innerHeight() + fixedOffsetTop + "px",
                        left: fixedOffsetLeft + "px"
                    });
                    $("#" + this.mainContainerId).attr("originaltop", this.el.innerHeight() + fixedOffsetTop + "px");
                    if ($.browser.msie == true) {
                        var fixedOffsetWidth = 356
                    }
                    $("#" + this.mainContainerId).find(".autocomplete").css({
                        width: fixedOffsetWidth + "px"
                    })
                } else {
                    $("#" + this.mainContainerId).css({
                        top: this.el.innerHeight() + "px",
                        left: fixedOffsetLeft + "px"
                    })
                }
            }
        },
        enableKillerFn: function() {
            var me = this;
            $(document).bind("click", me.killerFn)
        },
        disableKillerFn: function() {
            var me = this;
            $(document).unbind("click", me.killerFn)
        },
        killSuggestions: function() {
            var me = this;
            this.stopKillSuggestions();
            this.intervalId = window.setInterval(function() {
                me.hide();
                me.stopKillSuggestions()
            },
            300)
        },
        stopKillSuggestions: function() {
            window.clearInterval(this.intervalId)
        },
        onKeyPress: function(e) {
            if (this.disabled || !this.enabled) {
                return
            }
            switch (e.keyCode) {
            case 27:
                this.el.val(this.currentValue);
                this.hide();
                break;
            case 9:
            case 13:
                if (this.selectedIndex === -1) {
                    this.hide();
                    return
                }
                this.select(this.selectedIndex);
                if (e.keyCode === 9) {
                    return
                }
                break;
            case 38:
                this.moveUp();
                break;
            case 40:
                this.moveDown();
                break;
            default:
                return
            }
            e.stopImmediatePropagation();
            e.preventDefault()
        },
        onKeyUp: function(e) {
            if (this.disabled) {
                return
            }
            switch (e.keyCode) {
            case 38:
            case 40:
                return
            }
            clearInterval(this.onChangeInterval);
            if (this.currentValue !== this.el.val()) {
                if (this.options.deferRequestBy > 0) {
                    var me = this;
                    this.onChangeInterval = setInterval(function() {
                        me.onValueChange()
                    },
                    this.options.deferRequestBy)
                } else {
                    this.onValueChange()
                }
            }
        },
        onValueChange: function() {
            clearInterval(this.onChangeInterval);
            this.currentValue = this.el.val();
            var q = this.getQuery(this.currentValue);
            this.selectedIndex = -1;
            if (this.ignoreValueChange) {
                this.ignoreValueChange = false;
                return
            }
            if (q === "" || q.length < this.options.minChars) {
                this.hide()
            } else {
                this.getSuggestions(q)
            }
        },
        getQuery: function(val) {
            var d, arr;
            d = this.options.delimiter;
            if (!d) {
                return $.trim(val)
            }
            arr = val.split(d);
            return $.trim(arr[arr.length - 1])
        },
        getSuggestionsLocal: function(q) {
            var ret, arr, len, val, i;
            arr = this.options.lookup;
            len = arr.suggestions.length;
            ret = {
                suggestions: [],
                data: []
            };
            q = q.toLowerCase();
            for (i = 0; i < len; i++) {
                val = arr.suggestions[i];
                if (val.toLowerCase().indexOf(q) === 0) {
                    ret.suggestions.push(val);
                    ret.data.push(arr.data[i])
                }
            }
            return ret
        },
        getSuggestions: function(q) {
            var cr, me;
            cr = this.isLocal ? this.getSuggestionsLocal(q) : this.cachedResponse[q];
            if (cr && $.isArray(cr.suggestions)) {
                this.suggestions = cr.suggestions;
                this.data = cr.data;
                this.suggest()
            } else {
                if (!this.isBadQuery(q)) {
                    me = this;
                    me.options.params.query = encodeURIComponent(q);
                    $.get(this.serviceUrl, me.options.params,
                    function(txt) {
                        me.processResponse(txt)
                    },
                    "text")
                }
            }
        },
        isBadQuery: function(q) {
            var i = this.badQueries.length;
            while (i--) {
                if (q.indexOf(this.badQueries[i]) === 0) {
                    return true
                }
            }
            return false
        },
        hide: function() {
            this.enabled = false;
            this.selectedIndex = -1;
            this.container.hide()
        },
        suggest: function() {
            if (this.suggestions.length === 0) {
                this.hide();
                return
            }
            var me, len, div, f, v, i, s, mOver, mClick;
            me = this;
            len = this.suggestions.length;
            f = this.options.fnFormatResult;
            v = this.getQuery(this.currentValue);
            mOver = function(xi) {
                return function() {
                    me.activate(xi)
                }
            };
            mClick = function(xi) {
                return function() {
                    me.select(xi)
                }
            };
            this.container.hide().empty();
            for (i = 0; i < len; i++) {
                s = this.suggestions[i];
                div = $((me.selectedIndex === i ? '<div style="background-color:#003399; padding-top:1px;padding-left: 3px;"': '<div style="padding-top:1px;padding-left: 3px;"') + ' title="' + s + '"  >' + f(s, this.data[i], v) + "</div>");
                div.mouseover(mOver(i));
                div.click(mClick(i));
                this.container.append(div)
            }
            this.enabled = true;
            this.container.show();
            if (window.location.pathname.match(/\/cn\/(zh|en)(\/)?(index\.html)?$/gi)) {
                if ($(window).height() < 730) {
                    var newTop = $("#" + this.mainContainerId).height();
                    $("#" + this.mainContainerId).css("top", "-" + newTop + "px")
                } else {
                    $("#" + this.mainContainerId).css("top", $("#" + this.mainContainerId).attr("originaltop"))
                }
            }
        },
        processResponse: function(text) {
            var response;
            try {
                response = eval("(" + text + ")")
            } catch(err) {
                return
            }
            if (!$.isArray(response.data)) {
                response.data = []
            }
            this.cachedResponse[response.query] = response;
            if (response.suggestions.length === 0) {
                this.badQueries.push(response.query)
            }
            if (response.query === this.getQuery(this.currentValue)) {
                this.suggestions = response.suggestions;
                this.data = response.data;
                this.suggest()
            }
        },
        activate: function(index) {
            var divs, activeItem;
            divs = this.container.children();
            if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
                $(divs.get(this.selectedIndex)).css("color", "#000000");
                $(divs.get(this.selectedIndex)).css("background-color", "")
            }
            this.selectedIndex = index;
            if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
                activeItem = divs.get(this.selectedIndex);
                $(activeItem).css("color", "#FFFFFF");
                $(activeItem).css("background-color", "#003399")
            }
            return activeItem
        },
        deactivate: function(div, index) {
            $(div).css("background-color", "");
            if (this.selectedIndex === index) {
                this.selectedIndex = -1
            }
        },
        select: function(i) {
            var selectedValue, f;
            selectedValue = this.suggestions[i];
            if (selectedValue) {
                this.el.val(selectedValue);
                if (this.options.autoSubmit) {
                    f = this.el.parents("form");
                    if (f.length > 0) {
                        f.get(0).submit()
                    }
                }
                this.ignoreValueChange = true;
                this.hide();
                this.onSelect(i)
            }
        },
        moveUp: function() {
            if (this.selectedIndex === -1) {
                return
            }
            if (this.selectedIndex === 0) {
                this.container.children().get(0).className = "";
                this.selectedIndex = -1;
                this.el.val(this.currentValue);
                return
            }
            this.adjustScroll(this.selectedIndex - 1)
        },
        moveDown: function() {
            if (this.selectedIndex === (this.suggestions.length - 1)) {
                return
            }
            this.adjustScroll(this.selectedIndex + 1)
        },
        adjustScroll: function(i) {
            var activeItem, offsetTop, upperBound, lowerBound;
            activeItem = this.activate(i);
            offsetTop = activeItem.offsetTop;
            upperBound = this.container.scrollTop();
            lowerBound = upperBound + this.options.maxHeight - 25;
            if (offsetTop < upperBound) {
                this.container.scrollTop(offsetTop)
            } else {
                if (offsetTop > lowerBound) {
                    this.container.scrollTop(offsetTop - this.options.maxHeight + 25)
                }
            }
        },
        onSelect: function(i) {
            var me, onSelect, getValue, s, d;
            me = this;
            onSelect = me.options.onSelect;
            getValue = function(value) {
                var del, currVal, arr;
                del = me.options.delimiter;
                if (!del) {
                    return value
                }
                currVal = me.currentValue;
                arr = currVal.split(del);
                if (arr.length === 1) {
                    return value
                }
                return currVal.substr(0, currVal.length - arr[arr.length - 1].length) + value
            };
            s = me.suggestions[i];
            d = me.data[i];
            me.el.val(getValue(s));
            if ($.isFunction(onSelect)) {
                onSelect(s, d)
            }
        }
    }
} (jQuery));
