var g_locale = {
    id: 0,
    name: "enus"
};
function cO(C, A) {
    for (var B in A) {
        C[B] = A[B]
    }
}
function cl(C) {
    if (arguments.length > 1) {
        var D = [];
        for (var B = 0,A = arguments.length; B < A; ++B) {
            D.push(cl(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 = cl(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 = cl(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 : "双方"
};