var $WowheadPetCalculator;
function PetCalculator(){
    $WowheadPetCalculator = this;
    var q = 12;
    var AJ = {};
    var v = {};
    var AD = {};
    var r = -1, U = -1;
    var w = 0;
    var z = 16;
    var J = 0;
    var Y = (Browser.opera);
    var s = 0;
    var R = "0zMcmVokRsaqbdrfwihuGINALpTjnyxtgevE";
    var AE = [7, 24, 26, 27, 30, 34, 37, 38];
    var y = 1;
    var B;
    var AF = 0;
    var n = 0;
    var D;
    var H, AG;
    var AH;
    var t;
    var k;
    var f = 0;
    var AB;
    var O, M, I, a, G, F;
    var AL;
    this.setFamily = function(AM){
        g();
        j(AM)
    };
    this.initialize = function(AN){
        J = (AN.mode ? AN.mode : 0);
        Z();
        AB = ge("petStats");
        var AT = gE(AB, "b");
        AH = AT[0].firstChild;
        t = AT[1].firstChild;
        k = AT[2].firstChild;
        H = ge("petTabs");
        AG = gE(H, "span");
        _calc = ge("petTalents");
        D = ge("petLink");
        O = ge("petMenu2");
        M = ge("petMenu3");
        I = ge("petMenu4");
        a = ge("petMenu4b");
        G = ge("petMenu5");
        G.onselectstart = G.ondragstart = rf;
        F = gE(M, "a");
        D.firstChild.nodeValue = LANG.tc_link;
        ge("petClearAll").firstChild.nodeValue = LANG.tc_resetall;
        ge("petLockToggler").firstChild.nodeValue = LANG.tc_lock;
        array_apply(gE(H, "a"), function(AU){
            AU.firstChild.nodeValue = LANG.tc_reset
        });
        AH.parentNode.previousSibling.nodeValue = LANG.tc_ptsleft;
        k.parentNode.previousSibling.nodeValue = LANG.tc_ptsspent;
        t.parentNode.previousSibling.nodeValue = LANG.tc_reqlevel;
        var AS = ge("petLevelCap");
        if (AS) {
            AS.previousSibling.nodeValue = LANG.tc_levelcap
        }
        var AS = ge("petBonusPoints");
        if (AS) {
            AS.previousSibling.nodeValue = LANG.tc_bonuspts
        }
        if (AN.whBuild) {
            var AQ = AN.whBuild, AM = 0;
            var AP = R.indexOf(AQ.charAt(0)) * 10;
            var AR = R.indexOf(AQ.charAt(1));
            if (AR % 2 == 1) {
                AM = 1;
                --AR
            }
            AR = AP + (AR / 2);
            if (g_pet_families[AR] != null) {
                var AO = AR;
                v = {
                    familyId: AO,
                    wh: AQ.substr(2),
                    bonus: AM
                };
                j(AO)
            }
        }
        else {
            if (AN.familyId > 0 && g_pet_families[AN.familyId]) {
                j(AN.familyId)
            }
        }
        if (r < 0) {
            P()
        }
    };
    this.menuOver = function(){
        clearTimeout(B);
        if (!y && r >= 0) {
            B = setTimeout(P.bind(this, 1), 333)
        }
    };
    this.menuOut = function(){
        clearTimeout(B);
        if (y && r >= 0) {
            B = setTimeout(m.bind(this), 250)
        }
    };
    this.registerFamily = function(AO){
        if (AJ[AO] == null) {
            AJ[AO] = {};
            for (var AN = 0; AN < pet_talents.length; ++AN) {
                if (in_array(pet_talents[AN].f, AO) >= 0) {
                    AJ[AO].n = pet_talents[AN].n;
                    AJ[AO].j = AN;
                    AJ[AO].t = [];
                    for (var AM = 0; AM < pet_talents[AN].t.length; ++AM) {
                        AJ[AO].t[AM] = {};
                        cO(AJ[AO].t[AM], pet_talents[AN].t[AM])
                    }
                    L(AN);
                    X(AO)
                }
            }
        }
    };
    this.resetAll = function(){
        A()
    };
    this.showSummary = function(AR){
        if (r < 0) {
            alert(LANG.alert_choosefamily);
            return
        }
        var AS = AJ[r];
        if (!AS.k) {
            alert(LANG.alert_buildempty);
            return
        }
        var AQ = window.open("", "", "toolbar=no,menubar=yes,status=yes,scrollbars=yes,resizable=yes");
        var AP, AO, AN;
        var AM = "<html><head><title>" + document.title + '</title></head><body style="font-family: Arial, sans-serif; font-size: 13px">';
        AQ.document.open();
        if (AR) {
            AM += "<h2>" + sprintf(LANG.tc_printh, ((AS.k * 4) + 16), g_pet_families[r]) + "</h2>";
            AM += "<p></p>";
            AM += "<h3>" + AS.n + " (" + AS.k + " " + LANG[AS.k == 1 ? "tc_point" : "tc_points"] + ")</h3>";
            AM += "<blockquote>";
            AN = 0;
            for (AO = 0; AO < AS.t.length; ++AO) {
                if (AS.t[AO].k) {
                    if (AN) {
                        AM += "<br /><br />"
                    }
                    AM += "<b>" + AS.t[AO].n + "</b>" + LANG.hyphen + sprintf(LANG.tc_rank, AS.t[AO].k, AS.t[AO].m) + "<br />";
                    AM += AK(AS.t[AO]);
                    ++AN
                }
            }
            if (AN == 0) {
                AM += LANG.tc_none
            }
            AM += "</blockquote>";
			AM += "---------- 多玩魔兽专区 ---------- [wow.duowan.com] ----------\n"

        }
        else {
            AM += "<pre>";
            AM += "<b>" + AS.n + " (" + AS.k + " " + LANG[AS.k == 1 ? "tc_point" : "tc_points"] + ")</b>\n\n";
            AN = 0;
            for (AO = 0; AO < AS.t.length; ++AO) {
                if (AS.t[AO].k) {
                    AM += "&nbsp;&nbsp;&nbsp;&nbsp;" + AS.t[AO].k + "/" + AS.t[AO].m + " " + AS.t[AO].n + "\n";
                    ++AN
                }
            }
            if (AN == 0) {
                AM += "&nbsp;&nbsp;&nbsp;&nbsp;" + LANG.tc_none + "\n";
				AJ += "---------- 多玩魔兽专区 ---------- [wow.duowan.com] ----------\n"
            }
            AM += "\n";
            AM += "</pre>"
        }
        AM += "</body></html>";
        AQ.document.write(AM);
        AQ.document.close()
    };
    this.toggleLock = function(AM){
        K()
    };
    this.toggleLevelCap = function(AN, AM){
        Tooltip.hide();
        g();
        o();
        this.showLevelCapTooltip(AM);
        AC()
    };
    this.showLevelCapTooltip = function(AM){
        if (z == 13) {
            Tooltip.showAtCursor(AM, LANG.tc_inccap, 0, 0, "q2")
        }
        else {
            Tooltip.showAtCursor(AM, LANG.tc_deccap, 0, 0, "q7")
        }
    };
    this.toggleBonusPoints = function(AN, AM){
        Tooltip.hide();
        g();
        T();
        this.showBonusPointsTooltip(AM);
        AC()
    };
    this.showBonusPointsTooltip = function(AM){
        if (f == 0) {
            Tooltip.showAtCursor(AM, LANG.tc_addbon, 0, 0, "q2")
        }
        else {
            Tooltip.showAtCursor(AM, LANG.tc_rembon, 0, 0, "q7")
        }
    };
    this.toggleMenu = function(){
        clearTimeout(B);
        if (!y) {
            P(0)
        }
        else {
            if (r >= 0 && !AF) {
                m()
            }
        }
    };
    this.setLevelCap = function(AM, AN){
        if (AM < 1 || AM > 70) {
            return
        }
        var AO = z + f;
        z = Math.max(0, Math.floor((AM - 16) / 4));
        if ((z + f) < AO) {
            e()
        }
        if (!AN) {
            AC()
        }
    };
    function d(AN){
        for (var AM = 0; AM < F.length; ++AM) {
            if (F[AM].rel == AN) {
                n = (AM > 15 ? 1 : 0);
                return AM
            }
        }
        return 0
    }
    function j(AM){
        if (g_pet_families[AM] == null) {
            return
        }
        g();
        if (AM != r) {
            U = r;
            r = AM;
            var AN = F[d(AM)];
            AN.className += " selected";
            if (U >= 0) {
                AN = F[d(U)];
                AN.className = AN.className.replace("selected", "")
            }
            p(AM)
        }
        m()
    }
    function x(AM){
        return AM.y * 3
    }
    function AI(AR, AQ, AT){
        var AS = AJ[AR.familyId], AO, AN;
        if (AR.k > 0 && (AQ == 0 || !w)) {
            if (AR.links) {
                for (AO = 0; AO < AR.links.length; ++AO) {
                    if (AS.t[AR.links[AO]].k) {
                        return
                    }
                }
            }
            var AP = 0;
            AR.k--;
            for (AO = 0; AO < AD[AS.j].length; ++AO) {
                var AM = AS.t[AD[AS.j][AO]];
                if (AM.k) {
                    if (AP < x(AM)) {
                        AR.k++;
                        return
                    }
                }
                AP += AM.k
            }
            AS.k--;
            E(AQ);
            if (AQ) {
                V(AT)
            }
        }
        S();
        c()
    }
    function h(AN, AM, AQ){
        if (w) {
            var AO = Math.max(0, AN.k - 1);
            window.open("http://db.duowan.com/wow/spell-" + AN.s[AO]+".html");
            return
        }
        var AP = AJ[AN.familyId];
        if (J == 0 && AM == 0 && AP.k == (z + f)) {
            o()
        }
        if (AP.k < (z + f)) {
            if (AN.k < AN.m && AN.enabled) {
                AN.k++;
                AP.k++;
                E(AM, AN.familyId);
                if (AM) {
                    V(AQ);
                    S();
                    c()
                }
            }
        }
    }
    function X(AN){
        var AO = AJ[AN];
        var AM;
        C(AN);
        if (v.familyId == AN) {
            E(0, AN);
            if (v.bonus) {
                T()
            }
            if (v.wh) {
                Q(v.wh, AN);
                K()
            }
        }
        v = {};
        if (AN == r) {
            AA();
            AO.div.style.display = ""
        }
        E(1, AN)
    }
    function C(AO){
        var Ag = AJ[AO];
        var AV = gE(ge("petArrowsTemplate"), "div");
        var AP = ge("petTemplate").firstChild;
        var Ai, Ad;
        var AX = ["Container", "Icon", "Tile", "Border", "Bubble", "Highlight", "Arrow"];
        Ag.div = ce("div");
        Ag.div.style.display = "none";
        ae(_calc, Ag.div);
        Ag.talents = ce("div");
        Ag.talents.style.cssFloat = Ag.talents.style.styleFloat = "left";
        ae(Ag.div, Ag.talents);
        Ag.k = 0;
        Ai = Ag.talents.style;
        Ai.backgroundImage = "url(images/pet/petcalc/bg_" + (Ag.j + 1) + ".jpg" + (!Browser.ie6 ? "?" + q : "") + ")";
        Ai.backgroundRepeat = "no-repeat";
        Ag.talents.appendChild(AP.cloneNode(1));
        var Ae = gE(Ag.talents, "td");
        var AW = "url(images/pet/petcalc/icons_" + (Ag.j + 1) + ".jpg" + (!Browser.ie6 ? "?" + q : "") + ")";
        for (Ad = Ag.t.length - 1; Ad >= 0; --Ad) {
            var AN = Ag.t[Ad];
            var Ah = (AN.y * 4 + AN.x + 1) - 1;
            if ((Ah == 1 && ((in_array(AE, AO) >= 0 && Ad == 1) || (in_array(AE, AO) < 0 && Ad == 2))) || (Ah == 5 && AN.r && ((in_array(AE, AO) >= 0 && AN.r[0] == 1) || (in_array(AE, AO) < 0 && AN.r[0] == 2))) || (Ah == 11 && ((in_array(AE, AO) >= 0 && Ad == 11) || (in_array(AE, AO) < 0 && Ad == 12)))) {
                AN.hidden = 1
            }
            AN.k = 0;
            AN.i = Ad;
            AN.familyId = AO;
            var Ab = [];
            for (var Ac = 0; Ac < 5; ++Ac) {
                Ab[Ac] = ce("div");
                Ab[Ac].className = "mtwtc" + AX[Ac]
            }
            ns(Ab[0]);
            Ab[0].oncontextmenu = rf;
            var AM = ce("div");
            AM.className = "mtwtcHighlight";
            AM.onmousedown = rf;
            AM.onmouseup = N;
            AM.onmouseover = W;
            AM.onmouseout = l;
            AM.oncontextmenu = u;
            Ab.push(AM);
            if (AN.r) {
                var AQ = Ag.t[AN.r[0]];
                var AT = AN.x - AQ.x;
                var AS = AN.y - AQ.y;
                var Aa, AZ, AY, Af;
                var AU = -1;
                if (!AQ.links) {
                    AQ.links = [Ad]
                }
                else {
                    AQ.links.push(Ad)
                }
                if (AS > 0) {
                    if (AT == 0) {
                        AU = 0
                    }
                    else {
                        if (AT < 0) {
                            AU = 1
                        }
                        else {
                            AU = 2
                        }
                    }
                }
                else {
                    if (AS == 0) {
                        if (AT > 0) {
                            AU = 3
                        }
                        else {
                            if (AT < 0) {
                                AU = 4
                            }
                        }
                    }
                }
                AY = (Math.abs(AT) - 1) * 64;
                Af = (Math.abs(AS) - 1) * 64;
                switch (AU) {
                    case 0:
                        AY = 15;
                        Af += 29;
                        Aa = 25;
                        AZ = 16 - Af;
                        break;
                    case 1:
                        AY += 51;
                        Af += 54;
                        Aa = 24;
                        AZ = 15 - Af;
                        break;
                    case 2:
                        AY += 51;
                        Af += 54;
                        Aa = -AY + 40;
                        AZ = 15 - Af;
                        break;
                    case 3:
                        AY += 29;
                        Af = 15;
                        Aa = -11;
                        AZ = 24;
                        break;
                    case 4:
                        AY += 29;
                        Af = 15;
                        Aa = 46;
                        AZ = 24;
                        break
                }
                var AR = AV[AU].cloneNode(1);
                Ai = AR.style;
                Ai.left = Aa + "px";
                Ai.top = AZ + "px";
                Ai.width = AY + "px";
                Ai.height = Af + "px";
                Ab.push(AR)
            }
            for (Ac = 1; Ac < Ab.length; ++Ac) {
                Ab[0].appendChild(Ab[Ac])
            }
            for (Ac = 0; Ac < Ab.length; ++Ac) {
                AN[AX[Ac].toLowerCase()] = Ab[Ac]
            }
            AN.highlight.talent = AN;
            AN.icon.style.backgroundImage = AW;
            if (AN.hidden) {
                Ab[0].style.display = "none"
            }
            Ab[0].style.position = "relative";
            Ae[Ah].appendChild(Ab[0])
        }
        Ag.talents = Ag.div.childNodes
    }
    function AK(AO, AM){
        var AN = AO.d;
        var AP = Math.max(0, AO.k - 1) + (AM ? 1 : 0);
        return AO.d[AP]
    }
    function m(){
        y = 0;
        if (U < 0) {
            AB.style.display = "block";
            H.style.display = "block";
            ge("kebwrkwbet63").style.display = "block";
            ge("kebwrkwbet64").style.display = "block"
        }
        O.className = "mtwtcMenuBorder mtwtcMenuClip";
        M.className = "";
        M.style.top = -((d(r) - (n * 16)) + 1) * 22 - 3 + "px";
        G.style.backgroundPosition = "right 2px";
        if (n) {
            I.style.display = "none";
            a.style.width = "255px";
            a.style.left = "0"
        }
        else {
            a.style.display = "none";
            I.style.width = "255px"
        }
    }
    function N(AM){
        if (!AM) {
            AM = event
        }
        var AN = AM.which ? AM.which : AM.button;
        if (AN >= 2) {
            if (s != 2) {
                s = 1;
                AI(this.talent, 1, this)
            }
        }
        else {
            if (AM.shiftKey || AM.ctrlKey) {
                AI(this.talent, 1, this)
            }
            else {
                h(this.talent, 1, this)
            }
        }
    }
    function u(){
        if (s == 1) {
            return
        }
        s = 2;
        AI(this.talent, 1, this)
    }
    function l(){
        Tooltip.hide();
        this.style.backgroundPosition = "0"
    }
    function W(){
        V(this);
        this.style.backgroundPosition = (this.talent.enabled ? "-76px" : "-38px")
    }
    function p(AN){
        if (AJ[AN]) {
            AA();
            var AO = AJ[AN];
            AO.div.style.display = ""
        }
        else {
            if (Browser.ie6) {
                var AM = ce("img");
                AM.src = "images/talent/classes/backgrounds/hunter_1.jpg" + (!Browser.ie6 ? "?" + q : "");
                ae(AL, AM)
            }
            $WowheadPetCalculator.registerFamily(AN)
        }
        if (AJ[U]) {
            AJ[U].div.style.display = "none"
        }
    }
    function Q(AW, AN){
        var AV = AJ[AN];
        var AU = 0;
        var AX = [];
        var AQ = null, AO;
        for (var AT = 0; AT < AW.length; ++AT) {
            var AM = AW.charAt(AT);
            var AP = R.indexOf(AM);
            if (AP < 0) {
                continue
            }
            AX[1] = AP % 6;
            AX[0] = (AP - AX[1]) / 6;
            for (var AS = 0; AS < 2; ++AS) {
                AP = Math.min(AX[AS], AV.t[AU].m);
                AV.t[AU].enabled = 1;
                for (var AR = 0; AR < AP; ++AR) {
                    h(AV.t[AU], 0)
                }
                if (AQ) {
                    for (var AR = 0; AR < AO; ++AR) {
                        h(AQ, 0)
                    }
                    AQ = null
                }
                if (AV.t[AU].k < AP) {
                    AQ = AV.t[AU];
                    AO = AP - AV.t[AU].k
                }
                if (++AU >= AV.t.length) {
                    break
                }
            }
            if (AU >= AV.t.length) {
                return
            }
        }
        e()
    }
    function L(AM){
        if (AD[AM] == null) {
            AD[AM] = [];
            var AQ = [], AP, AO;
            for (AP = 0; AP < pet_talents[AM].t.length; ++AP) {
                var AN = x(pet_talents[AM].t[AP]);
                if (!AQ[AN]) {
                    AQ[AN] = []
                }
                AQ[AN].push(AP)
            }
            for (AP = 0; AP < AQ.length; ++AP) {
                if (!AQ[AP]) {
                    continue
                }
                for (AO = 0; AO < AQ[AP].length; ++AO) {
                    AD[AM].push(AQ[AP][AO])
                }
            }
        }
    }
    function Z(){
        if (Browser.ie6) {
            var AP = ["border", "tile", "bubble", "arrows/down", "arrows/down2", "arrows/leftdown", "arrows/leftdown2", "arrows/rightdown", "arrows/rightdown2", "arrows/right", "arrows/right2"];
            var AO = ce("div");
            for (var AN = 0; AN < AP.length; ++AN) {
                var AM = ce("img");
                AM.src = "images/talent/" + AP[AN] + ".gif";
                ae(AO, AM)
            }
            AO.style.position = "absolute";
            AO.style.left = AO.style.top = "-2323px";
            AO.style.visibility = "hidden";
            ae(ge("layers"), AO);
            AL = AO
        }
    }
    function AC(AM){
        E(1, AM);
        S();
        c()
    }
    function c(){
        var AR = AJ[r];
        var AN = "", AQ = "", AM = [], AP;
        for (AP = 0; AP < AR.t.length; ++AP) {
            AQ += AR.t[AP].k
        }
        AQ = rtrim(AQ, "0");
        for (AP = 0; AP < AQ.length; AP += 2) {
            for (var AO = 0; AO < 2; ++AO) {
                AM[AO] = parseInt(AQ.substring(AP + AO, AP + AO + 1));
                if (isNaN(AM[AO])) {
                    AM[AO] = 0
                }
            }
            AN += R.charAt(AM[0] * 6 + AM[1])
        }
        D.href = location.pathname + "?petcalc=" + R.charAt(Math.floor(r / 10)) + R.charAt((2 * (r % 10)) + (f ? 1 : 0)) + rtrim(AN, 0)
    }
    function S(){
        var AO = AJ[r];
        AH.nodeValue = (z + f) - AO.k;
        k.nodeValue = AO.k;
        t.nodeValue = (AO.k || f ? Math.max((((AO.k - f) * 4) + 16), (f ? 60 : 0)) : "-");
        AG[0].childNodes[1].nodeValue = " (" + AO.k + ")";
        if (J == 0) {
            var AM = document.title;
            var AN = AM.indexOf("-");
            if (AN != -1) {
                AM = AM.substring(AN + 2)
            }
            document.title = g_pet_families[r] + " (" + AO.k + ") - " + AM
        }
    }
    function A(){
        if (r >= 0) {
            g();
            b();
            AC()
        }
    }
    function b(AO, AN){
        var AP = (AO >= 0 ? AJ[AO] : AJ[r]);
        var AM;
        for (AM = 0; AM < AP.t.length; ++AM) {
            AP.t[AM].k = 0
        }
        AP.k = 0;
        if (AN) {
            E(1);
            S();
            c()
        }
    }
    function P(AM){
        AF = AM;
        y = 1;
        if (r >= 0) {
            O.className = "";
            M.className = "mtwtcMenuBorder";
            M.style.top = "0";
            I.style.display = "";
            a.style.display = "";
            I.style.width = "";
            a.style.width = "";
            a.style.left = ""
        }
    }
    function V(AP){
        var AN = AP.talent;
        var AO = AJ[AN.familyId];
        var AM = "<table><tr><td><b>";
        if (AN.z) {
            AM += '<span style="float: right" class="q0">' + AN.z + "</span>"
        }
        AM += AN.n + "</b><br />" + sprintf(LANG.tc_rank, AN.k, AN.m) + "<br />";
        if (AN.r) {
            if (AO.t[AN.r[0]].k < AN.r[1]) {
                AM += '<span class="q7">';
                AM += sprintf(LANG[AN.r[1] == 1 ? "tc_prereq" : "tc_prereqpl"], AN.r[1], AO.t[AN.r[0]].n);
                AM += "</span><br />"
            }
        }
        if (AO.k < x(AN)) {
            AM += '<span class="q7">' + sprintf(LANG.tc_tier, x(AN), AO.n) + "</span><br />"
        }
        if (AN.t && AN.t.length >= 1) {
            AM += AN.t[0]
        }
        AM += "</td></tr></table><table><tr><td>";
        if (AN.t && AN.t.length > 1) {
            AM += AN.t[1] + "<br />"
        }
        AM += '<span class="q">' + AK(AN) + "</span><br />";
        if (w) {
            AM += '<span class="q2">' + LANG.tc_view + "</span><br />"
        }
        else {
            if (AN.enabled) {
                if (!AN.k) {
                    AM += '<span class="q2">' + LANG.tc_learn + "</span><br />"
                }
                else {
                    if (AN.k == AN.m) {
                        AM += '<span class="q7">' + LANG[Y ? "tc_unlearn2" : "tc_unlearn"] + "</span><br />"
                    }
                }
                if (AN.k && AN.k < AN.m) {
                    AM += "<br />" + LANG.tc_nextrank + '<br /><span class="q">' + AK(AN, 1) + "</span><br />"
                }
            }
        }
        AM += "</td></tr></table>";
        Tooltip.show(AP, AM, 0, 0)
    }
    function E(AN, AO){
        var AQ = (AO >= 0 ? AJ[AO] : AJ[r]);
        for (i = 0; i < AQ.t.length; ++i) {
            var AP = AQ.t[i];
            if ((w || AQ.k == (z + f)) && !AP.k) {
                AP.enabled = 0
            }
            else {
                if (AQ.k >= x(AP)) {
                    if (AP.r) {
                        if (AQ.t[AP.r[0]].k >= AP.r[1]) {
                            AP.enabled = 1
                        }
                        else {
                            AP.enabled = 0
                        }
                    }
                    else {
                        AP.enabled = 1
                    }
                }
                else {
                    AP.enabled = 0
                }
            }
            if (AN) {
                var AM;
                if (AP.enabled) {
                    if ((AP.k == AP.m)) {
                        AP.border.style.backgroundPosition = "-42px";
                        AP.bubble.style.color = "#E7BA00"
                    }
                    else {
                        AP.border.style.backgroundPosition = "-84px";
                        AP.bubble.style.color = "#17FD17"
                    }
                    AP.icon.style.backgroundPosition = -i * 36 + "px 0";
                    AP.bubble.style.visibility = "visible";
                    if (AP.r) {
                        AM = AP.arrow.firstChild;
                        if (AM.className.indexOf("2") == -1) {
                            AM.className += "2"
                        }
                    }
                }
                else {
                    AP.border.style.backgroundPosition = 0;
                    AP.icon.style.backgroundPosition = -i * 36 + "px -36px";
                    AP.bubble.style.visibility = "hidden";
                    if (AP.r) {
                        AM = AP.arrow.firstChild;
                        if (AM.className.indexOf("2") != -1) {
                            AM.className = AM.className.replace("2", "")
                        }
                    }
                }
                AP.bubble.innerHTML = AP.k
            }
        }
    }
    function AA(){
        var AM = AJ[r];
        AG[0].firstChild.firstChild.nodeValue = AM.n;
        AG[0].style.backgroundImage = "url(images/talent/classes/trees/hunter_1.gif?" + q + ")";
        e();
        AC()
    }
    function K(){
        var AM = ge("petLockToggler");
        w = !w;
        if (w) {
            AM.firstChild.nodeValue = LANG.tc_unlock;
            AM.style.backgroundPosition = "-110px center"
        }
        else {
            AM.firstChild.nodeValue = LANG.tc_lock;
            AM.style.backgroundPosition = "left center"
        }
        AC()
    }
    function g(){
        if (w) {
            K()
        }
    }
    function o(){
        var AN = ge("petLevelCap");
        var AM = z + f;
        z = (z == 16 ? 13 : 16);
        if (AN) {
            AN.firstChild.nodeValue = (z == 16 ? 80 : 70)
        }
        if ((z + f) < AM) {
            e()
        }
        E(0)
    }
    function T(){
        var AN = ge("petBonusPoints");
        var AM = z + f;
        f = (f ? 0 : 4);
        AN.firstChild.nodeValue = f;
        if ((z + f) < AM) {
            e()
        }
        E(0)
    }
    function e(){
        var AR = AJ[r];
        if (AR.k > (z + f)) {
            for (var AO = AR.t.length - 1; AO >= 0; --AO) {
                var AM = AR.t[AO].k;
                for (var AN = 0; AN < AM; ++AN) {
                    AI(AR.t[AO], 0);
                    if (AR.k <= (z + f)) {
                        return
                    }
                }
            }
        }
        var AP = 0;
        for (var AO = 0; AO < AD[AR.j].length; ++AO) {
            var AQ = AR.t[AD[AR.j][AO]];
            if (AQ.k) {
                if (AP < x(AQ)) {
                    for (var AM = AQ.k; AM > 0; --AM) {
                        AI(AQ, 0)
                    }
                }
            }
            AP += AQ.k
        }
    }
};
