var g_locale = {
    id: 0,
    name: "enus"
};
function cO(C, A) {
    for (var B in A) {
        C[B] = A[B]
    }
}
function $(C) {
    if (arguments.length > 1) {
        var D = [];
        for (var B = 0,
        A = arguments.length; B < A; ++B) {
            D.push($(arguments[B]))
        }
        return D
    }
    if (typeof C == "string") {
        C = ge(C)
    }
    return C
}
function ge(A) {
    return document.getElementById(A)
}
function ce(C, B) {
    var A = document.createElement(C);
    if (B) {
        cOr(A, B)
    }
    return A
}
function cOr(C, A) {
    for (var B in A) {
        if (typeof A[B] == "object") {
            if (!C[B]) {
                C[B] = {}
            }
            cOr(C[B], A[B])
        } else {
            C[B] = A[B]
        }
    }
}
function ns(A) {
        A.onfocus = tb;
        A.onmousedown = A.onselectstart = A.ondragstart = rf

}
function tb() {
    this.blur()
}
function rf() {
    return false
}
function g_createGlow(A, G) {
    var D = ce("span");
    for (var C = -1; C <= 1; ++C) {
        for (var B = -1; B <= 1; ++B) {
            var F = ce("div");
            F.style.position = "absolute";
            F.style.whiteSpace = "nowrap";
            F.style.left = C + "px";
            F.style.top = B + "px";
            if (C == 0 && B == 0) {
                F.style.zIndex = 4
            } else {
                F.style.color = "black";
                F.style.zIndex = 2
            }
            ae(F, ct(A));
            ae(D, F)
        }
    }
    D.style.position = "relative";
    D.className = "glow" + (G != null ? " " + G: "");
    var E = ce("span");
    E.style.visibility = "hidden";
    ae(E, ct(A));
    ae(D, E);
    return D
}
function ae(A, B) {
    return A.appendChild(B)
}
function ct(A) {
    return document.createTextNode(A)
}
Function.prototype.bind = function() {
    var A = this,
    C = $A(arguments),
    B = C.shift();
    return function() {
        return A.apply(B, C.concat($A(arguments)))
    }
};
function $A(B) {
    var D = [];
    for (var C = 0,
    A = B.length; C < A; ++C) {
        D.push(B[C])
    }
    return D
}
function de(A) {
    A.parentNode.removeChild(A)
}
function g_setTextNodes(C, B) {
    if (C.nodeType == 3) {
        C.nodeValue = B
    } else {
        for (var A = 0; A < C.childNodes.length; ++A) {
            g_setTextNodes(C.childNodes[A], B)
        }
    }
}
function g_scrollTo(C, B) {
    var M, K = g_getWindowSize(),
    L = g_getScroll(),
    I = K.w,
    E = K.h,
    G = L.x,
    D = L.y;
    C = $(C);
    if (B == null) {
        B = []
    } else {
        if (typeof B == "number") {
            B = [B]
        }
    }
    M = B.length;
    if (M == 0) {
        B[0] = B[1] = B[2] = B[3] = 0
    } else {
        if (M == 1) {
            B[1] = B[2] = B[3] = B[0]
        } else {
            if (M == 2) {
                B[2] = B[0];
                B[3] = B[1]
            } else {
                if (M == 3) {
                    B[3] = B[1]
                }
            }
        }
    }
    M = ac(C);
    var A = M[0] - B[3];
    var H = M[1] - B[0];
    var J = M[0] + C.offsetWidth + B[1];
    var F = M[1] + C.offsetHeight + B[2];
    if (J - A > I || A < G) {
        G = A
    } else {
        if (J - I > G) {
            G = J - I
        }
    }
    if (F - H > E || H < D) {
        D = H
    } else {
        if (F - E > D) {
            D = F - E
        }
    }
    scrollTo(G, D)
}
function g_getWindowSize() {
    var B = 0,
    A = 0;
    if (typeof window.innerWidth == "number") {
        B = window.innerWidth;
        A = window.innerHeight
    } else {
        if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            B = document.documentElement.clientWidth;
            A = document.documentElement.clientHeight
        } else {
            if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                B = document.body.clientWidth;
                A = document.body.clientHeight
            }
        }
    }
    return {
        w: B,
        h: A
    }
}
function g_getScroll() {
    var A = 0,
    B = 0;
    if (typeof(window.pageYOffset) == "number") {
        A = window.pageXOffset;
        B = window.pageYOffset
    } else {
        if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            A = document.body.scrollLeft;
            B = document.body.scrollTop
        } else {
            if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
                A = document.documentElement.scrollLeft;
                B = document.documentElement.scrollTop
            }
        }
    }
    return {
        x: A,
        y: B
    }
}
function ac(C) {
    var B = 0,
    D = 0;
    while (C) {
        B += C.offsetLeft;
        D += C.offsetTop;
        C = C.offsetParent
    }
    var A = [B, D];
    A.x = B;
    A.y = D;
    return A
}
function sprintf(B) {
    var A;
    for (A = 1, len = arguments.length; A < len; ++A) {
        B = B.replace("$" + A, arguments[A])
    }
    return B
}
function $E(A) {
    if (!A) {
        if (typeof event != "undefined") {
            A = event
        } else {
            return null
        }
    }
    A._button = A.which ? A.which: A.button;
    A._target = A.target ? A.target: A.srcElement;
    return A
}

var CTooltip = {
    clip: "main-contents",
    create: function(G) {
        var E = ce("div"),
        J = ce("table"),
        C = ce("tbody"),
        D = ce("tr"),
        B = ce("tr"),
        A = ce("td"),
        I = ce("th"),
        H = ce("th"),
        F = ce("th");
        E.className = "tooltip";
        I.style.backgroundPosition = "top right";
        H.style.backgroundPosition = "bottom left";
        F.style.backgroundPosition = "bottom right";
        if (G) {
            A.innerHTML = G
        }
        ae(D, A);
        ae(D, I);
        ae(C, D);
        ae(B, H);
        ae(B, F);
        ae(C, B);
        ae(J, C);
        CTooltip.icon = ce("p");
        CTooltip.icon.style.visibility = "hidden";
        ae(CTooltip.icon, ce("div"));
        ae(E, CTooltip.icon);
        ae(E, J);
        return E
    },
    fix: function(D, B, E) {
        var C = gE(D, "table")[0],
        G = gE(C, "td")[0],
        F = G.childNodes;
        if (F.length >= 2 && F[0].nodeName == "TABLE" && F[1].nodeName == "TABLE") {
            F[0].style.whiteSpace = "nowrap";
            var A;
            if (F[1].offsetWidth > 300) {
                A = Math.max(300, F[0].offsetWidth) + 20
            } else {
                A = Math.max(F[0].offsetWidth, F[1].offsetWidth) + 20
            }
            if (A > 20) {
                D.style.width = A + "px";
                F[0].style.width = F[1].style.width = "100%";
                if (!B && D.offsetHeight > document.body.clientHeight) {
                    C.className = "shrink"
                }
            }
        }
        if (E) {
            D.style.visibility = "visible"
        }
    },
    fixSafe: function(C, B, A) {
        if (Browser.ie) {
            setTimeout(CTooltip.fix.bind(this, C, B, A), 1)
        } else {
            CTooltip.fix(C, B, A)
        }
    },
    append: function(B, A) {
        var B = $(B);
        var C = CTooltip.create(A);
        ae(B, C);
        CTooltip.fixSafe(C, 1, 1)
    },
    prepare: function() {
        if (!CTooltip.tooltip) {
            var B = CTooltip.create();
            B.style.position = "absolute";
            B.style.left = B.style.top = "-2323px";
            var A = ge("layers");
            ae(A, B);
            CTooltip.tooltip = B;
            CTooltip.tooltipTable = gE(B, "table")[0];
            CTooltip.tooltipTd = gE(B, "td")[0];
            if (Browser.ie6) {
                B = ce("iframe");
                B.src = "javascript:0;";
                B.frameBorder = 0;
                ae(A, B);
                Tooltip.iframe = B
            }
        }
    },
    move: function(O, M, P, K, B, A, U, H, N, T) {
        if (!CTooltip.tooltipTable) {
            return
        }
        var W, G = O,
        R = M,
        J = O,
        I = M,
        F = 0,
        E = 0,
        Q = g_getWindowSize(),
        D = g_getScroll(),
        L = Q.w,
        S = Q.h,
        C = D.x,
        V = D.y;
        if (U == null) {
            U = CTooltip.clip
        }
        if (H == null) {
            H = CTooltip.tooltip;
            N = CTooltip.tooltipTable.offsetWidth;
            T = CTooltip.tooltipTable.offsetHeight
        }
        H.style.width = N + "px";
        if (U) {
            W = ge(U);
            if (W) {
                c = ac(W);
                F = c[0];
                E = c[1];
                if (W.offsetWidth + F <= C + L) {
                    L = W.offsetWidth + F - C
                }
                if (W.offsetHeight + E <= V + S) {
                    S = W.offsetHeight + E - V
                }
            }
        }
        if (G + P + N > L) {
            G = Math.max(G - N, F) - B
        } else {
            G += P + B
        }
        if (G < F) {
            G = F
        } else {
            if (G + N > C + L) {
                G = C + L - N
            }
        }
        if (R - T > Math.max(V, E)) {
            R -= T + A
        } else {
            R += K + A
        }
        if (R < E) {
            R = E
        } else {
            if (R + T > V + S) {
                R = Math.max(V, V + S - T)
            }
        }
        if (Tooltip.iconVisible) {
            if (J >= G - 48 && J <= G && I >= R - 4 && I <= R + 48) {
                R -= 48 - (I - R)
            }
        }
        H.style.left = G + "px";
        H.style.top = R + "px";
        H.style.visibility = "visible";
        if (Browser.ie6 && CTooltip.iframe) {
            W = CTooltip.iframe;
            W.style.left = G + "px";
            W.style.top = R + "px";
            W.style.width = N + "px";
            W.style.height = T + "px";
            W.style.display = "";
            W.style.visibility = "visible"
        }
    },
    show: function(G, E, A, F, C) {
        if (CTooltip.disabled) {
            return
        }
        var B;
        CTooltip.prepare();
        if (C) {
            E = '<span class="' + C + '">' + E + "</span>"
        }
        B = CTooltip.tooltip;
        B.style.width = "550px";
        B.style.left = "-2323px";
        B.style.top = "-2323px";
        CTooltip.tooltipTd.innerHTML = E;
        B.style.display = "";
        var D = ac(G);
        CTooltip.fix(B, 0, 0);
        CTooltip.move(D[0], D[1], G.offsetWidth, G.offsetHeight, A, F)
    },
    showAtCursor: function(B, E, A, G, D) {
        if (CTooltip.disabled) {
            return
        }
        if (!A || A < 10) {
            A = 10
        }
        if (!G || G < 10) {
            G = 10
        }
        B = $E(B);
        CTooltip.prepare();
        if (D) {
            E = '<span class="' + D + '">' + E + "</span>"
        }
        var C;
        C = CTooltip.tooltip;
        C.style.width = "550px";
        C.style.left = "-2323px";
        C.style.top = "-2323px";
        CTooltip.tooltipTd.innerHTML = E;
        C.style.display = "";
        var F = g_getCursorPos(B);
        CTooltip.fix(C, 0, 0);
        CTooltip.move(F.x, F.y, 0, 0, A, G)
    },
    showAtXY: function(E, A, F, D, C) {
        if (CTooltip.disabled) {
            return
        }
        CTooltip.prepare();
        var B;
        B = CTooltip.tooltip;
        B.style.width = "550px";
        B.style.left = "-2323px";
        B.style.top = "-2323px";
        Tooltip.tooltipTd.innerHTML = E;
        B.style.display = "";
        CTooltip.fix(B, 0, 0);
        CTooltip.move(A, F, 0, 0, D, C, null, null, null, null)
    },
    cursorUpdate: function(B, A, D) {
        if (CTooltip.disabled || !CTooltip.tooltip) {
            return
        }
        B = $E(B);
        if (!A || A < 10) {
            A = 10
        }
        if (!D || D < 10) {
            D = 10
        }
        var C = g_getCursorPos(B);
        CTooltip.move(C.x, C.y, 0, 0, A, D)
    },
    hide: function() {
        if (CTooltip.tooltip) {
            CTooltip.tooltip.style.display = "none";
            CTooltip.tooltip.visibility = "hidden";
            CTooltip.tooltipTable.className = "";
            if (Browser.ie6) {
                CTooltip.iframe.style.display = "none"
            }
            CTooltip.setIcon(null)
        }
    },
    setIcon: function(A) {
        CTooltip.prepare();
        if (A) {
            CTooltip.icon.style.backgroundImage = "url(http://static.wowhead.com/images/icons/medium/" + A.toLowerCase() + ".jpg)";
            CTooltip.icon.style.visibility = "visible"
        } else {
            CTooltip.icon.style.backgroundImage = "none";
            CTooltip.icon.style.visibility = "hidden"
        }
        CTooltip.iconVisible = A ? 1 : 0
    }
};

function sp(A) {
    if (!A) {
        A = event
    }
    if (Browser.ie) {
        A.cancelBubble = true
    } else {
        A.stopPropagation()
    }
}
function str_replace(C, B, A) {
    while (C.indexOf(B) != -1) {
        C = C.replace(B, A)
    }
    return C
}
function gE(A, B) {
    return A.getElementsByTagName(B)
}
var Browser = {
    ie: !!(window.attachEvent && !window.opera),
    opera: !!window.opera,
    safari: navigator.userAgent.indexOf("Safari") != -1,
    gecko: navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("KHTML") == -1
};
Browser.ie7 = Browser.ie && navigator.userAgent.indexOf("MSIE 7.0") != -1;
Browser.ie6 = Browser.ie && navigator.userAgent.indexOf("MSIE 6.0") != -1 && !Browser.ie7;
navigator.userAgent.match(/Gecko\/([0-9]+)/);
Browser.geckoVersion = parseInt(RegExp.$1) | 0;


var g_zones = {
1 : "丹莫罗",
3 : "荒芜之地",
4 : "诅咒之地",
8 : "悲伤沼泽",
9 : "北郡山谷",
10 : "暮色森林",
11 : "湿地",
12 : "艾尔文森林",
14 : "杜隆塔尔",
15 : "尘泥沼泽",
16 : "艾萨拉",
17 : "贫瘠之地",
19 : "祖尔格拉布",
24 : "北郡修道院",
25 : "黑石山",
28 : "西瘟疫之地",
33 : "荆棘谷",
35 : "藏宝海湾",
36 : "奥特兰克山脉",
38 : "洛克莫丹",
40 : "西部荒野",
41 : "逆风小径",
44 : "赤脊山",
45 : "阿拉希高地",
46 : "燃烧平原",
47 : "辛特兰",
51 : "灼热峡谷",
65 : "龙骨荒野",
66 : "祖达克",
67 : "风暴峭壁",
85 : "提瑞斯法林地",
130 : "银松森林",
131 : "卡拉诺斯",
132 : "寒脊山谷",
133 : "诺莫瑞根",
139 : "东瘟疫之地",
141 : "泰达希尔",
148 : "黑海岸",
154 : "丧钟镇",
188 : "幽影谷",
206 : "乌特加德城堡",
209 : "影牙城堡",
210 : "冰冠冰川",
215 : "莫高雷",
220 : "红云台地",
221 : "纳拉其营地",
267 : "希尔斯布莱德丘陵",
279 : "达拉然巨坑",
331 : "灰谷",
357 : "菲拉斯",
361 : "费伍德森林",
363 : "试炼谷",
394 : "灰熊丘陵",
400 : "千针石林",
405 : "凄凉之地",
406 : "石爪山脉",
440 : "塔纳利斯",
457 : "迷雾之海",
490 : "安戈洛环形山",
491 : "剃刀沼泽",
493 : "月光林地",
495 : "嚎风峡湾",
618 : "冬泉谷",
702 : "鲁瑟兰村",
717 : "监狱",
718 : "哀嚎洞穴",
719 : "黑暗深渊",
722 : "剃刀高地",
796 : "血色修道院",
978 : "祖尔法拉克",
1116 : "羽月要塞",
1196 : "乌特加德之巅",
1216 : "木喉要塞",
1337 : "奥达曼",
1377 : "希利苏斯",
1417 : "沉没的神庙",
1497 : "幽暗城",
1519 : "暴风城",
1537 : "铁炉堡",
1581 : "死亡矿井",
1583 : "黑石塔",
1584 : "黑石深渊",
1637 : "奥格瑞玛",
1638 : "雷霆崖",
1657 : "达纳苏斯",
1941 : "时光之穴",
2017 : "斯坦索姆",
2057 : "通灵学院",
2079 : "奥卡兹岛",
2100 : "玛拉顿",
2159 : "奥妮克希亚的巢穴",
2257 : "矿道地铁",
2366 : "黑色沼泽",
2367 : "旧希尔斯布莱德丘陵",
2437 : "怒焰裂谷",
2557 : "厄运之槌",
2562 : "卡拉赞",
2597 : "奥特兰克山谷",
2677 : "黑翼之巢",
2717 : "熔火之心",
2817 : "晶歌森林",
2917 : "传说大厅",
2918 : "勇士大厅",
3277 : "战歌峡谷",
3358 : "阿拉希盆地",
3428 : "安其拉",
3429 : "安其拉废墟",
3430 : "永歌森林",
3431 : "逐日岛",
3433 : "幽魂之地",
3456 : "纳克萨玛斯",
3477 : "艾卓-尼鲁布",
3483 : "地狱火半岛",
3487 : "银月城",
3518 : "纳格兰",
3519 : "泰罗卡森林",
3520 : "影月谷",
3521 : "赞加沼泽",
3522 : "刀锋山",
3523 : "虚空风暴",
3524 : "秘蓝岛",
3525 : "秘血岛",
3526 : "埃门谷",
3535 : "地狱火堡垒",
3537 : "北风苔原",
3557 : "埃索达",
3562 : "地狱火城墙",
3606 : "海加尔峰",
3607 : "毒蛇神殿",
3618 : "格鲁尔的巢穴",
3679 : "斯克提斯",
3688 : "奥金顿",
3696 : "壁垒山",
3698 : "纳格兰竞技场",
3702 : "刀锋山竞技场",
3703 : "沙塔斯城",
3711 : "索拉查盆地",
3713 : "鲜血熔炉",
3714 : "破碎大厅",
3715 : "蒸汽地窟",
3716 : "幽暗沼泽",
3717 : "奴隶围栏",
3789 : "暗影迷宫",
3790 : "奥金尼地穴",
3791 : "塞泰克大厅",
3792 : "法力陵墓",
3805 : "祖阿曼",
3820 : "风暴之眼",
3836 : "玛瑟里顿的巢穴",
3840 : "黑暗神殿",
3842 : "风暴要塞",
3845 : "风暴要塞",
3846 : "禁魔监狱",
3847 : "生态船",
3849 : "能源舰",
3905 : "盘牙水库",
3959 : "黑暗神殿",
3968 : "洛丹伦废墟",
4024 : "考达拉",
4075 : "太阳之井高地",
4080 : "奎尔丹纳斯岛",
4095 : "魔导师平台",
4100 : "净化斯坦索姆",
4120 : "魔枢",
4196 : "达克萨隆要塞",
4197 : "冬拥湖",
4228 : "魔环",
4264 : "岩石大厅",
4272 : "闪电大厅",
4298 : "东瘟疫之地：血色领地",
4375 : "古达克",
4378 : "达拉然竞技场",
4384 : "远古海滩",
4395 : "达拉然",
4406 : "勇气竞技场",
4415 : "紫罗兰监狱",
4493 : "黑曜石圣殿",
4494 : "安卡赫特：古代王国",
4500 : "永恒之眼",
4603 : "阿尔卡冯的宝库"
};
var g_zone_categories = {
    0 : "Eastern Kingdoms",
    1 : "Kalimdor",
    8 : "Outland",
    10 : "Northrend",
    2 : "Dungeons",
    3 : "Raids",
    6 : "Battlegrounds",
    9 : "Arenas"
};
var g_zone_instancetypes = {
    1 : "Transit",
    2 : "Dungeon",
    3 : "Raid",
    4 : "Battleground",
    5 : "Dungeon",
    6 : "Arena",
    7 : "Raid"
};
var g_zone_territories = {
    0 : "Alliance",
    1 : "Horde",
    2 : "Contested",
    3 : "Sanctuary",
    4 : "PvP"
};
var g_sides = {
    1 : "联盟",
    2 : "部落",
    3 : "双方"
};