1751 lines
96 KiB
JavaScript

var pointlock = 51;
var treeType = "normal";
var classString = "11";
var buildVersionString = "11215875";
var fillOutString = "";
var talentPointsRequired = "5";
var layoutSwitch="&layout=slim";
var MENU_ITEMS_CLASSES = [
{pos:[15,160], itemoff:[0,159], leveloff:[22,0], style:TOPSTYLE, size:[22,160]},
{code:LANGTalent_ChooseClass, url:"javascript:;", sub:[
{itemoff:[23,0], style:STYLE_CLASS, size:[23,159]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_druid.png'/></td><td class='classDruidMenu'>&nbsp;Druid</td></tr></table>", url: "?talent=11215875_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_hunter.png'/></td><td class='classHunterMenu'>&nbsp;Hunter</td></tr></table>", url: "?talent=11215875_3"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_mage.png'/></td><td class='classMageMenu'>&nbsp;Mage</td></tr></table>", url: "?talent=11215875_8"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_paladin.png'/></td><td class='classPaladinMenu'>&nbsp;Paladin</td></tr></table>", url: "?talent=11215875_2"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_priest.png'/></td><td class='classPriestMenu'>&nbsp;Priest</td></tr></table>", url: "?talent=11215875_5"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_rogue.png'/></td><td class='classRogueMenu'>&nbsp;Rogue</td></tr></table>", url: "?talent=11215875_4"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_shaman.png'/></td><td class='classShamanMenu'>&nbsp;Shaman</td></tr></table>", url: "?talent=11215875_7"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_warlock.png'/></td><td class='classWarlockMenu'>&nbsp;Warlock</td></tr></table>", url: "?talent=11215875_9"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/class_warrior.png'/></td><td class='classWarriorMenu'>&nbsp;Warrior</td></tr></table>", url: "?talent=11215875_1"}
]
}
];
var MENU_ITEMS_VERSIONS = [
{pos:[15,257], itemoff:[0,159], leveloff:[22,0], style:TOPSTYLE, size:[22,160]},
{code:LANGTalent_ChooseVersion, url:"javascript:;", sub:[
{itemoff:[26,0], style:STYLE_VERSION, size:[26,159]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/talent/icon_wrath.png'/></td><td class='classWOTLKMenu'>&nbsp;WotLk</td></tr></table>", url: "javascript:;", leveloff:[0,160], sub:[
{itemoff:[23,0], leveloff:[0,160], style:STYLE_ITEM, size:[23,159]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8303 - Alpha</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018303_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8334 - Alpha</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018334_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8391 - Alpha</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018391_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8471 - Alpha</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018471_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8622 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018622_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8634 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018634_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8681 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018681_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8714 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018714_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8770 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018770_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8788 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3018788_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.1.8820 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=3018820_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.2.8885 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3028885_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.2.8970 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3028970_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.2.9038 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3029038_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.2.9056 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3029056_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.2.9061 - Beta</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3029061_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.3.9183</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3039183_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.0.8.9464</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3089464_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.1.0.9767</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3109767_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.1.1.9835</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=3119835_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>3.1.3.9947 - Live</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=3139947_11"},
]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/talent/icon_tbc.png'/></td><td class='classTBCMenu'>&nbsp;TBC</td></tr></table>", url: "javascript:;", leveloff:[0,160], sub:[
{itemoff:[23,0], leveloff:[0,160], style:STYLE_ITEM, size:[23,159]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.0.6080</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2006080_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.3.6299</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2036299_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.5.6320</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2056320_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.6.6337</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2066337_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.7.6383</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2076383_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.8.6403</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2086403_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.10.6448</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=20106448_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.0.12.6546</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=20126546_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.1.0.6692</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2106692_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.1.0.6729</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2106729_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.1.1.6739</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=2116739_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.1.2.6803</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2126803_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.1.3.6898</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2136898_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.2.0.7272</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2207272_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.2.2.7318</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2227318_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.2.3.7359</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2237359_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.3.0.7561</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2307561_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.3.2.7741</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2327741_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.3.3.7799</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2337799_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.4.0.8089</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2408089_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.4.1.8125</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=2418125_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.4.2.8278</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2428278_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>2.4.3.8606</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=2438606_11"},
]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/talent/icon_classic.png'/></td><td class='classClassicMenu'>&nbsp;WoW Classic</td></tr></table>", url: "javascript:;", leveloff:[0,160], sub:[
{itemoff:[23,0], leveloff:[0,160], style:STYLE_ITEM, size:[23,159]},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.1.2.4125 - US Start</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1124125_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.2.3.4211 - EU Start</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1234211_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.2.4.4222</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1244222_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.3.0.4284</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1304284_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.3.1.4297</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1314297_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.4.0.4341</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1404341_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.4.1.4364</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1414364_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.4.2.4375</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1424375_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.5.0.4442</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1504442_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.5.1.4449</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1514449_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.6.0.4500</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=1604500_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.6.1.4544</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1614544_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.7.0.4671</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1704671_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.7.1.4695</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1714695_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.8.0.4735</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1804735_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.8.1.4769</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1814769_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.8.2.4784</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1824784_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.8.3.4807</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1834807_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.8.4.4878</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1844878_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.9.0.4937</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1904937_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.9.1.4983</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=1914983_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.9.2.4996</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1924996_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.9.3.5059</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1935059_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.9.4.5086</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=1945086_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.10.0.5195</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11005195_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.10.1.5230</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11015230_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.10.2.5302</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11025302_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.11.0.5428</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11105428_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.11.1.5462</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11115462_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.11.2.5464</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11125464_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.12.0.5595</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[-207,161], url: "?talent=11205595_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.12.1.5875</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11215875_11"},
{code:"<table border='0' cellspacing='0' cellpadding='0'><tr><td><img border='0' src='/img/menu/icon/point.gif'/></td><td class='classWhiteMenu'>1.12.2.6005</td></tr></table>", style:STYLE_ITEM, size:[23,159], itemoff:[23,0], url: "?talent=11226005_11"},
]}
]
}
];
var menuVersions = new COOLjsMenu("menuVersions", MENU_ITEMS_VERSIONS);
var menuClasses = new COOLjsMenu("menuClasses", MENU_ITEMS_CLASSES);
function resetHoverOn(id)
{
document.getElementById(id).style.backgroundImage = "url(/img/talent/resetbutton_over.png)";
}
function resetHoverOff(id)
{
document.getElementById(id).style.backgroundImage = "url(/img/talent/resetbutton.png)";
}
function setOpacity(B,A){B.style.opacity=A/10;B.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity="+A*10+")"}
function obj_left(B){var A=B.offsetLeft;while((B=B.offsetParent)!=null){A+=B.offsetLeft}return A}
function obj_top(B){var A=B.offsetTop;while((B=B.offsetParent)!=null){A+=B.offsetTop}return A}
function selectBuildText()
{
document.getElementById("buildText").select();
}
//-------------------------------------------
// Talent Button
//-------------------------------------------
function TalentObj(A,D,E)
{
this.tree=A;
this.pos=E;
this.row=D;
this.talentname=L("-");
this.desc=L("-");
this.numRanks=0;
this.curRank=0;
this.icon="temp.png";
this.reqs=new Array();
this.type="empty";
this.ranks=new Array(6);
for(var C=0;C<=talentPointsRequired;C++)
{
this.ranks[C]=new Array(11);
for(var B=0;B<=10;B++)
{
this.ranks[C][B]=""
}
}
this.treeelm=treee[A];
this.butbg=$(this.getID());
this.butc=$(this.getID()+"c");
this.butimg=$(this.getID()+"i");
this.butbg.style.left=(25+65*(this.getPos()-1)+treel[A])+"px";
this.butbg.style.top=(5+65*(this.getRow()-1)+treet[A])+"px";
addListener(this.butbg,"mouseup",butclick);
addListener(this.butbg,"contextmenu",butclick2);
addListener(this.butbg,"mouseover",butmouseover);
addListener(this.butbg,"mouseout",butmouseout);
this.redraw(false)
}
TalentObj.prototype.setLoc=function setLoc(A,B,C)
{
this.removeReqs();
this.tree=A;
this.pos=C;
this.row=B;
this.treeelm=treee[A];
this.butbg=$(this.getID());
this.butc=$(this.getID()+"c");
this.butimg=$(this.getID()+"i");
this.butbg.style.left=(25+65*(this.getPos()-1)+treel[A])+"px";
this.butbg.style.top=(5+65*(this.getRow()-1)+treet[A])+"px";
this.redraw("")
};
TalentObj.prototype.getTree=function getTree(){return this.tree};
TalentObj.prototype.getPos=function getPos(){return this.pos};
TalentObj.prototype.getRow=function getRow(){return this.row};
TalentObj.prototype.getType=function getType(){return this.type};
TalentObj.prototype.getDescription=function getDescription(){return this.desc};
TalentObj.prototype.getRankDescription=function getRankDescription(tree, row, column, rank)
{
if (rank == 0)
rank = 1;
var tableIndex = tree.toString() + row.toString() + column.toString() + rank.toString();
return descriptionTable[tableIndex];
};
TalentObj.prototype.setDescription=function setDescription(A){this.desc=A};
TalentObj.prototype.getTalentname=function getTalentname(){return this.talentname};
TalentObj.prototype.setTalentname=function setTalentname(A){this.talentname=A};
TalentObj.prototype.getNumRanks=function getNumRanks(){return this.numRanks};
TalentObj.prototype.getCurRank=function getCurRank(){return this.curRank};
TalentObj.prototype.getActiveCost=function getActiveCost(){return this.ActiveCost};
TalentObj.prototype.setActiveCost=function setActiveCost(A){this.ActiveCost=A};
TalentObj.prototype.setActiveCostType=function setActiveCostType(A){this.ActiveCostType=A};
TalentObj.prototype.getActiveCostType=function getActiveCostType(){return this.ActiveCostType};
TalentObj.prototype.getActiveCastTime=function getActiveCastTime(){return this.ActiveCastTime};
TalentObj.prototype.setActiveSpellType=function setActiveSpellType(A){this.ActiveSpellType=A};
TalentObj.prototype.getActiveSpellType=function getActiveSpellType(){return this.ActiveSpellType};
TalentObj.prototype.getActiveCastTime=function getActiveCastTime(){return this.ActiveCastTime};
TalentObj.prototype.getActiveCooldown=function getActiveCooldown(){return this.ActiveCooldown};
TalentObj.prototype.setActiveCooldown=function setActiveCooldown(A){this.ActiveCooldown=A};
TalentObj.prototype.getActiveRangeMin=function getActiveRangeMin(){return this.ActiveRangeMin};
TalentObj.prototype.setActiveRangeMin=function setActiveRangeMin(A){this.ActiveRangeMin=A};
TalentObj.prototype.getActiveRangeMax=function getActiveRangeMax(){return this.ActiveRangeMax};
TalentObj.prototype.setActiveRangeMax=function setActiveRangeMax(A){this.ActiveRangeMax=A};
TalentObj.prototype.getActiveReagents=function getActiveReagents(){return this.ActiveReagents};
TalentObj.prototype.setActiveReagents=function setActiveReagents(A){this.ActiveReagents=A};
TalentObj.prototype.getActiveRequires=function getActiveRequires(){return this.ActiveRequires};
TalentObj.prototype.setActiveRequires=function setActiveRequires(A){this.ActiveRequires=A};
TalentObj.prototype.getActiveMaxRank=function getActiveMaxRank(){return this.ActiveMaxRank};
TalentObj.prototype.setActiveMaxRank=function setActiveMaxRank(A){this.ActiveMaxRank=A};
TalentObj.prototype.getIcon=function getIcon(){return this.icon};
TalentObj.prototype.setIcon=function setIcon(A){if(A.indexOf("/")!=-1){this.icon="Spells/"+A.substring((A.lastIndexOf("/")+1))}else{this.icon=A}};
TalentObj.prototype.setActiveCastTime=function setActiveCastTime(A){if((A==0)&&(this.getActiveSpellType()=="casttime")){this.setActiveSpellType("instant")}this.ActiveCastTime=A};
TalentObj.prototype.setType=function setType(A)
{
A=A.toLowerCase();
if(A==this.type)
{
return
}
if(this.getRow()>7&&treeType=="normal")
{
A="hidden"
}
switch(A.toLowerCase())
{
case"e":
case"empty":
this.setIcon("temp.png");
this.setNumRanks(0);
this.setCurRank(0);
this.removeReqs();
this.setTalentname(L("-"));
this.setDescription(L("-"));
this.type="empty";
break;
case"a":
case"active":
this.setNumRanks(1);
this.setCurRank(0);
this.type="active";
break;
case"p":
case"passive":
this.setCurRank(0);
this.type="passive";
break;
case"h":
case"hidden":
this.setNumRanks(0);
this.setCurRank(0);
this.removeReqs();
this.type="hidden";
break
}
};
TalentObj.prototype.setCurRank=function setCurRank(A){if(A>this.getNumRanks()){this.curRank=this.getNumRanks()}else{this.curRank=A}};
TalentObj.prototype.setNumRanks=function setNumRanks(A){this.numRanks=A;this.setCurRank(0)};
TalentObj.prototype.setRank=function setRank(C,A,B){this.ranks[C][A]=B};
TalentObj.prototype.getRank=function setRank(B,A){return this.ranks[B][A]};
TalentObj.prototype.getPassiveDesc=function getPassiveDesc(D){if(D<1||D>talentPointsRequired){D=1}var B=0;var A=this.desc.indexOf("@",0);while(A!=-1){B++;A=this.desc.indexOf("@",(A+1));if(B>10){return this.desc}}var C=nl2br(htmlspecialchars(this.desc));for(A=0;A<B;A++){C=C.replace(/@/,this.getRank(D,A))}return C};
TalentObj.prototype.getPassiveRanks=function getPassiveRanks(){var D=0;var C=this.desc.indexOf("@",0);while(C!=-1){D++;C=this.desc.indexOf("@",(C+1));if(D>10){return""}}var A="";for(var B=0;B<D;B++){for(C=1;C<=this.getNumRanks();C++){if(A!=""){A+="|"}A+=this.getRank(C,B)}}return this.getNumRanks()+A};
TalentObj.prototype.getReqs=function getReqs(A){return this.reqs.join("|")};
TalentObj.prototype.addReq=function addReq(C){this.reqs.push(C);var A=translateSticky(C);var B=A[1];var D=A[2];spawnArrow(this.getTree(),B,D,this.getRow(),this.getPos())};
TalentObj.prototype.isReq=function isReq(B){for(var A=0;A<this.reqs.length;A++){if(this.reqs[A]==B){return true}}return false};
TalentObj.prototype.removeReq=function removeReq(D){for(var B=0;B<this.reqs.length;B++){if(this.reqs[B]!=D){continue}var A=translateSticky(this.reqs[B]);var C=A[1];var E=A[2];removeArrow(this.getTree(),C,E,this.getRow(),this.getPos());this.reqs.slice(B,1);return }};
TalentObj.prototype.removeReqs=function removeReqs(){for(var B=0;B<this.reqs.length;B++){var A=translateSticky(this.reqs[B]);var C=A[1];var D=A[2];removeArrow(this.getTree(),C,D,this.getRow(),this.getPos())}this.reqs=new Array()};
TalentObj.prototype.reqsAreOk=function reqsAreOk(){for(var D=0;D<this.reqs.length;D++){var A=translateSticky(this.reqs[D]);var F=A[1];var G=A[2];if(!treec[this.getTree()][F][G].isMaxRank()){return false}}var E=(talentPointsRequired*(this.getRow()-1));if(E>0){var C=0;for(var D=1;D<this.getRow();D++){for(var B=1;B<=4;B++){C+=parseInt(treec[this.getTree()][D][B].getCurRank())}}if(C<E){return false}}return true};
TalentObj.prototype.addPoint=function addPoint(){if((this.getCurRank()<this.getNumRanks())&&(pointlock==0||((treep[1]+treep[2]+treep[3])<pointlock))){this.setCurRank(this.getCurRank()+1);this.redraw(false);var D=0;var A=getMaxi();for(var C=1;C<=A;C++){for(var B=1;B<=4;B++){D+=parseInt(treec[this.getTree()][C][B].getCurRank())}}treep[this.getTree()]=D;if((pointlock>0)&&((treep[1]+treep[2]+treep[3])>=pointlock)){redrawAll()}else{for(var C=1;C<=A;C++){for(var B=1;B<=4;B++){treec[this.getTree()][C][B].redraw(false)}}}return true}return false};
TalentObj.prototype.subPoint=function subPoint(){if(this.getCurRank()>0){this.setCurRank(this.getCurRank()-1);treep[this.getTree()]--;var C=getMaxi();for(var E=this.getRow();E<=C;E++){for(var D=1;D<=4;D++){if(treec[this.getTree()][E][D].getCurRank()>0&&!treec[this.getTree()][E][D].reqsAreOk()){this.setCurRank(this.getCurRank()+1);treep[this.getTree()]++;for(var B=this.getRow();B<=E;B++){for(var A=1;A<=4;A++){treec[this.getTree()][B][A].redraw(false)}}return false}else{treec[this.getTree()][E][D].redraw(false)}}}if(pointlock>0&&((treep[1]+treep[2]+treep[3])<pointlock)){redrawAll()}else{this.redraw(false)}return true}return false};
TalentObj.prototype.getReadCost=function getReadCost()
{
if(this.ActiveCostType=="runes")
{
var E=this.getActiveCost();
var D=E.substring(0,1);
var C=E.substring(1,2);
var A=E.substring(2,3);
var B="";
if(parseInt(D)>0)
{
B+=D+'<img src="/img/spacer.gif" width="13" height="13" alt="Blood Runes" class="runeB" /> '
}
if(parseInt(A)>0)
{
B+=A+'<img src="/img/spacer.gif" width="13" height="13" alt="Unholy Runes" class="runeF" /> '
}
if(parseInt(C)>0)
{
B+=C+'<img src="/img/spacer.gif" width="13" height="13" alt="Frost Runes" class="runeU" /> '
}
return B
}
else if(this.ActiveCostType=="runicpower")
{
return htmlspecialchars(LANGTalent_Requires+""+htmlspecialchars(this.getReadCostType()))
}
else
{
return htmlspecialchars(this.getActiveCost())+""+htmlspecialchars(this.getReadCostType())
}
};
TalentObj.prototype.getReadCostType=function getReadCostType()
{
if(this.ActiveCostType=="procmana")
{
return L(LANGTalent_Spell_BaseMana)
}
if(this.ActiveCostType=="procrmana")
{
return L(LANGTalent_Spell_RemainingMana)
}
if(this.ActiveCostType=="mana")
{
return " "+L(LANGTalent_Mana)
}
if(this.ActiveCostType=="focus")
{
return " "+L(LANGTalent_Focus)
}
if(this.ActiveCostType=="rage")
{
return " "+L(LANGTalent_Rage)
}
if(this.ActiveCostType=="energy")
{
return " "+L(LANGTalent_Energy)
}
if(this.ActiveCostType=="runicpower")
{
return L(LANGTalent_RunicPower)
}
return " "+L(this.ActiveCostType)
};
TalentObj.prototype.getReadRange=function getReadRange()
{
if(this.hasNoRange())
{
return ""
}
if(this.ActiveRangeMin==0&&this.ActiveRangeMax>0)
{
return LANGTalent_Spell_Range.replace("{0}", this.ActiveRangeMax)
}
if(this.ActiveRangeMin==this.ActiveRangeMax)
{
return LANGTalent_Spell_Range.replace("{0}", this.ActiveRangeMax)
}
return LANGTalent_Spell_Range.replace("{0}", this.ActiveRangeMin+"-"+this.ActiveRangeMax)
}
TalentObj.prototype.getReadCasttime=function getReadCasttime()
{
if((this.ActiveCastTime==0)&&(this.getActiveSpellType()=="casttime"))
{
this.setActiveSpellType("instant")
}
if(this.getActiveSpellType()=="channeled")
{
return L(LANGTalent_Spell_Channeled)
}
if(this.getActiveSpellType()=="nextmelee")
{
return L(LANGTalent_Spell_NextMelee)
}
if(this.getActiveCost()>0)
{
if(this.getActiveSpellType()=="instant" && this.getActiveCostType()=="mana")
{
return L(LANGTalent_Spell_InstantCast)
}
if(this.getActiveSpellType()=="instant")
{
return L(LANGTalent_Spell_Instant)
}
if(this.ActiveCastTime < 60)
{
return LANGTalent_Spell_CastTimeSec.replace("{0}", this.ActiveCastTime);
}
if(this.ActiveCastTime%60==0)
{
return LANGTalent_Spell_CastTimeMin.replace("{0}", parseInt(this.ActiveCastTime/60));
}
if(parseInt(this.ActiveCastTime%60)<10)
{
return LANGTalent_Spell_CastTimeMinSec.replace("{0}", parseInt(this.ActiveCastTime/60)).replace("{1}", parseInt(this.ActiveCastTime%60));
}
return LANGTalent_Spell_CastTimeMinSec.replace("{0}", parseInt(this.ActiveCastTime/60)).replace("{1}", parseInt(this.ActiveCastTime%60));
}
else
{
if(this.getActiveSpellType()=="instant" && this.getActiveCostType()=="Mana")
{
return L(LANGTalent_Spell_InstantCast)
}
if(this.getActiveSpellType()=="instant")
{
return L(LANGTalent_Spell_Instant)
}
if(this.ActiveCastTime<60)
{
return this.ActiveCastTime+L(LANGTalent_Spell_TimeSec)
}
if(this.ActiveCastTime%60==0)
{
return parseInt(this.ActiveCastTime/60)+L(LANGTalent_Spell_TimeMin)
}
if(parseInt(this.ActiveCastTime%60)<10)
{
return parseInt(this.ActiveCastTime/60)+L(LANGTalent_Min)+parseInt(this.ActiveCastTime%60)+L(LANGTalent_Spell_TimeSec)
}
return parseInt(this.ActiveCastTime/60)+L(LANGTalent_Min)+parseInt(this.ActiveCastTime%60)+L(LANGTalent_Spell_TimeSec)
}
};
TalentObj.prototype.getReadCooldown=function getReadCooldown(){if(this.ActiveCooldown<60){return this.ActiveCooldown+L(LANGTalent_Spell_TimeSec)}if(this.ActiveCooldown%60==0){return parseInt(this.ActiveCooldown/60)+L(LANGTalent_Spell_TimeMin)}if(parseInt(this.ActiveCooldown%60)<10){return parseInt(this.ActiveCooldown/60)+L(LANGTalent_Min)+parseInt(this.ActiveCooldown%60)+L(LANGTalent_Spell_TimeSec)}return parseInt(this.ActiveCooldown/60)+L(LANGTalent_Min)+parseInt(this.ActiveCooldown%60)+L(LANGTalent_Spell_TimeSec)};
TalentObj.prototype.doTooltip=function doTooltip()
{
var reqMet1 = true;
var reqMet2 = true;
var E='<span class="hleft"><strong>'+htmlspecialchars(this.talentname)+"</strong></span>";
if(this.getType()=="active")
{
E+='<span class="rankright">'+this.getActiveMaxRank()+"</span>"
}
E+='<div class="cb"></div>';
if(this.getNumRanks()>0)
{
E+=L(LANGTalent_Rank)+this.getCurRank()+"/"+this.getNumRanks()+"<br />"}
var C=(talentPointsRequired*(this.getRow()-1));
if(C!=0)
{
if(treep[this.getTree()]>=C)
{
E+='<span class="reqmet">'
}
else
{
E+='<span class="reqnotmet">'
reqMet1 = false;
}
E+=LANGTalent_RequiresPointsInTalents.replace("{0}", (talentPointsRequired*(this.getRow()-1))).replace("{1}", treen[this.getTree()])+"</span><br />"
}
for(var B=0;B<this.reqs.length;B++)
{
var A=translateSticky(this.reqs[B]);
var D=A[1];
var F=A[2];
if(!treec[this.getTree()][D][F].isMaxRank())
{
E+='<span class="reqnotmet">'
reqMet2 = false;
}
else
{
E+='<span class="reqmet">'
}
if(treec[this.getTree()][D][F].getNumRanks()==1)
{
E+=LANGTalent_RequiresPointInTalent.replace("{0}", treec[this.getTree()][D][F].getNumRanks()).replace("{1}", htmlspecialchars(treec[this.getTree()][D][F].getTalentname()));
}
else
{
E+=LANGTalent_RequiresPointsInTalent.replace("{0}", treec[this.getTree()][D][F].getNumRanks()).replace("{1}", htmlspecialchars(treec[this.getTree()][D][F].getTalentname()));
}
E+="</span><br />"
}
if(this.getType()=="active")
{
if(this.getActiveCost()>0)
{
E+='<span class="hleft">'+this.getReadCost()+"</span>";
if(!this.hasNoRange())
{
E+='<span class="hright">'+htmlspecialchars(this.getReadRange())+"</span>"
}
E+='<div class="cb"></div>';
E+='<span class="hleft">'+htmlspecialchars(this.getReadCasttime())+"</span>";
if(this.getActiveCooldown()>0)
{
E+='<span class="hright">'+LANGTalent_Spell_Cooldown.replace("{0}", htmlspecialchars(this.getReadCooldown()))+"</span>"
}
}
else
{
if(this.hasNoRange())
{
E+='<span class="hleft">'+htmlspecialchars(this.getReadCasttime())+"</span>";
if(this.getActiveCooldown()>0)
{
E+='<span class="hright">'+LANGTalent_Spell_Cooldown.replace("{0}", htmlspecialchars(this.getReadCooldown()))+"</span>"
}
}
else
{
E+='<span class="hleft">'+htmlspecialchars(this.getReadRange())+"</span>";
E+='<div class="cb"></div>';E+='<span class="hleft">'+htmlspecialchars(this.getReadCasttime())+"</span>";
if(this.getActiveCooldown()>0)
{
E+='<span class="hright">'+LANGTalent_Spell_Cooldown.replace("{0}", htmlspecialchars(this.getReadCooldown()))+"</span>"
}
}
}
E+='<div class="cb"></div>';
if(this.getActiveReagents()!="")
{
E+='<span class="left">'+L(LANGTalent_Spell_Reagents)+uni_unescape(htmlspecialchars(this.getActiveReagents()))+"</span>"
}
if(this.getActiveRequires()!="")
{
E+='<span class="left">'+L(LANGTalent_Requires)+uni_unescape(htmlspecialchars(this.getActiveRequires()))+"</span>"
}
E+='<div class="cb"></div>';
E+='<span class="desc">'+this.getRankDescription(this.getTree(), this.getRow(), this.getPos(), this.getCurRank())+"</span>"
}
else
{
if(this.getType()=="passive")
{
E+='<span class="desc">'+this.getRankDescription(this.getTree(), this.getRow(), this.getPos(), this.getCurRank())+"</span>"
}
else
{
E+='<span class="desc">'+this.getRankDescription(this.getTree(), this.getRow(), this.getPos(), this.getCurRank())+"</span>"
}
}
if (!this.isMaxRank() && this.getCurRank() > 0)
{
E+="<br/><br/>"+L(LANGTalent_NextRank)+"<br/>"
E+='<span class="desc">'+this.getRankDescription(this.getTree(), this.getRow(), this.getPos(), this.getCurRank() + 1)+"</span>"
}
var pointLockReached = (pointlock>0&&((treep[1]+treep[2]+treep[3])>=pointlock));
if (reqMet1 == true && reqMet2 == true && pointLockReached == false)
{
if (this.getCurRank() == 0)
{
E+='<br/><span class="reqmet">'+L(LANGTalent_ClickToLearn)+"</span>"
}
if (!this.isMaxRank() && this.getCurRank() > 0)
{
E+='<br/><span class="reqmet">'+L(LANGTalent_ClickToLearnNextRank)+"</span>"
}
}
if (this.isMaxRank())
{
E+='<br/><span class="reqnotmet">'+L(LANGTalent_RightClickToUnlearn)+"</span>"
}
tooltipcelm.innerHTML=E;
showTooltip(this.butbg);
tooltipcelm.innerHTML=E
};
TalentObj.prototype.redraw=function redraw(B)
{
if(this.getType()=="hidden")
{
this.hideButton();
this.butc.innerHTML="";
return
}
if(this.getType()=="empty")
{
this.hideButton();
this.butc.innerHTML="";
return;
}
else
{
this.showButton();
}
var arrowrd = document.getElementById("arrowrd" + this.tree + "" + this.row + "" + this.pos);
var arrowr = document.getElementById("arrowr" + this.tree + "" + this.row + "" + this.pos);
var arrowld = document.getElementById("arrowld" + this.tree + "" + this.row + "" + this.pos);
var arrowl = document.getElementById("arrowl" + this.tree + "" + this.row + "" + this.pos);
var arrowd = document.getElementById("arrowd" + this.tree + "" + this.row + "" + this.pos);
if(this.reqsAreOk())
{
var pointLockReached = (pointlock>0&&((treep[1]+treep[2]+treep[3])>=pointlock));
if(pointLockReached && this.getCurRank() == 0)
{
this.butimg.style.backgroundPosition="0px 0px";
setOpacity(this.butbg,10);
this.butc.innerHTML="";
var A=this.getIcon().replace(/Spells\//gi,"SpellsGrey/");
this.butbg.style.backgroundImage="url("+imagepath+A+")"
}
else
{
if(this.getNumRanks()>0)
{
this.butc.innerHTML=this.getCurRank()+"/"+this.getNumRanks()
}
else
{
this.butc.innerHTML="X"
}
if (arrowrd != null) arrowrd.className = "arrowrd_yellow";
if (arrowr != null) arrowr.className = "arrowr_yellow";
if (arrowld != null) arrowld.className = "arrowld_yellow";
if (arrowl != null) arrowl.className = "arrowl_yellow";
if (arrowd != null) arrowd.className = "arrowd_yellow";
if((this.getCurRank() == this.getNumRanks()) || pointLockReached)
{
this.butimg.style.backgroundPosition="-224px 0px";
this.butc.style.color="#FFD100"
}
else
{
this.butimg.style.backgroundPosition="-56px 0px";
this.butc.style.color="#2EFF00"
}
setOpacity(this.butbg,10);
this.butbg.style.backgroundImage="url("+imagepath+this.getIcon()+")"
}
}
else
{
if (arrowrd != null) arrowrd.className = "arrowrd";
if (arrowr != null) arrowr.className = "arrowr";
if (arrowld != null) arrowld.className = "arrowld";
if (arrowl != null) arrowl.className = "arrowl";
if (arrowd != null) arrowd.className = "arrowd";
this.butimg.style.backgroundPosition="0px 0px";
setOpacity(this.butbg,10);
this.butc.innerHTML="";
var A=this.getIcon().replace(/Spells\//gi,"SpellsGrey/");
this.butbg.style.backgroundImage="url("+imagepath+A+")"
}
};
TalentObj.prototype.reposition=function reposition(){this.butbg.style.left=(25+65*(this.getPos()-1)+treel[this.getTree()])+"px";this.butbg.style.top=(5+65*(this.getRow()-1)+treet[this.getTree()])+"px";for(var B=0;B<this.reqs.length;B++){var A=translateSticky(this.reqs[B]);var C=A[1];var D=A[2];removeArrow(this.getTree(),C,D,this.getRow(),this.getPos());spawnArrow(this.getTree(),C,D,this.getRow(),this.getPos())}this.redraw(false)};
TalentObj.prototype.showButton=function showButton(){this.butbg.style.display=""};
TalentObj.prototype.hideButton=function hideButton(){this.butbg.style.display="none"};
TalentObj.prototype.hasNoRange=function hasNoRange(){return(this.ActiveRangeMin==0&&this.ActiveRangeMax==0)};
TalentObj.prototype.getID=function getID(){return"t"+this.tree+"r"+this.row+"p"+this.pos};
TalentObj.prototype.getShortID=function getShortID(){return this.tree+""+this.row+""+this.pos};
TalentObj.prototype.isMaxRank=function isMaxRank(){return(this.getCurRank()==this.getNumRanks())};
TalentObj.prototype.getActiveSave=function getActiveSave(){var A=this.getActiveCost();A+="|"+this.getActiveCostType();A+="|"+this.getActiveSpellType();A+="|"+this.getActiveCastTime();A+="|"+this.getActiveCooldown();A+="|"+this.getActiveRangeMin();A+="|"+this.getActiveRangeMax();A+="|"+this.getActiveReagents();A+="|"+this.getActiveRequires();return htmlspecialchars(A)};
//-------------------------------------------
// Arrow Functions
//-------------------------------------------
function spawnArrow(I,H,F,C,A)
{
I=parseInt(I);
H=parseInt(H);
F=parseInt(F);
C=parseInt(C);
A=parseInt(A);
if(!checkArrow(I,H,F,C,A,false))
{
return false
}
var E=$("tree"+I);
var B=(A-F);
if(B>0)
{
var G=E.appendChild(document.createElement("div"));
if(H<C)
{
G.id="arrowrd"+I+C+A;
G.className="arrowrd";
G.style.left=(obj_left(E)+25)+65*(F-1)+47+"px";
G.style.top=(5+65*(H)+obj_top(E))-45+"px";
G.style.height="15px";
G.style.width=51+(65*(B-1))+"px"
}
else
{
G.id="arrowr"+I+C+A;
G.className="arrowr";
G.style.left=(obj_left(E)+25)+65*(F-1)+47+"px";
G.style.top=(5+65*(H)+obj_top(E))-45+"px";
G.style.height="15px";
G.style.width=25+(65*(B-1))+"px"
}
//G.id="arrow"+I+H+F+C+A
}
if(B<0)
{
possideways=B*-1;
var G=E.appendChild(document.createElement("div"));
if(H<C)
{
G.id="arrowld"+I+C+A;
G.className="arrowld";
G.style.width=51+(65*(possideways-1))+"px";
G.style.left=(obj_left(E)+25)+65*(F-1)-47-(65*(possideways-1))+"px";
G.style.top=(5+65*(H)+obj_top(E))-45+"px";
G.style.height="15px"
}
else
{
G.id="arrowl"+I+C+A;
G.className="arrowl";
G.style.width=25+(65*(possideways-1))+"px";
G.style.left=(obj_left(E)+25)+65*(F-1)-23-(65*(possideways-1))+"px";
G.style.top=(5+65*(H)+obj_top(E))-45+"px";
G.style.height="15px"
}
//G.id="arrow"+I+H+F+C+A
}
if(H<C)
{
var G=E.appendChild(document.createElement("div"));
G.className="arrowd";
G.style.left=(obj_left(E)+25)+65*(A-1)+18+"px";
if(B!=0)
{
G.style.top=(5+65*(H)+obj_top(E))-30+"px";
G.style.height=35+(65*((C-H)-1))+"px"
}
else
{
G.style.top=(5+65*(H)+obj_top(E))-18+"px";
G.style.height=22+(65*((C-H)-1))+"px"
}
G.style.width="15px";
//G.id="arrow"+I+H+F+C+A+"d"
G.id="arrowd"+I+C+A;
}
var B=(F-A);
if(B<0)
{
B*=-1;B-=1;
for(var D=0;D<B;D++)
{
treec[I][H][F+(B-D)].setType("hidden");
treec[I][H][F+(B-D)].redraw(false)
}
}
else
{
B-=1;
for(var D=0;D<B;D++)
{
treec[I][H][A-(D-B)].setType("hidden");
treec[I][H][A-(D-B)].redraw(false)
}
}
if(H<C)
{
if((F-A)!=0)
{
treec[I][H][A].setType("hidden");
treec[I][H][A].redraw(false)
}
for(D=1;D<(C-H);D++)
{
treec[I][H+D][A].setType("hidden");
treec[I][H+D][A].redraw(false)
}
}
}
function checkArrow(I,H,F,C,A,E){I=parseInt(I);H=parseInt(H);F=parseInt(F);C=parseInt(C);A=parseInt(A);if(H>C){return false}if(H==C&&F==A){return false}if((C-H)>4){return false}if(!validArrowTalent(I,H,F)){return false}if(!validArrowTalent(I,C,A)){if(!E){return false}}var B=(F-A);if(B<0){B*=-1;B-=1;var D=0;while(D<B){if(canArrow(I,H,F+(B-D))){D++}else{return false}}}else{B-=1;var D=0;while(D<B){if(canArrow(I,H,A-(D-B))){D++}else{return false}}}if(H<C){if(!canArrow(I,H,A)&&((F-A)!=0)){return false}var G=C-H;for(D=1;D<G;D++){if(!canArrow(I,(H+D),A)){return false}}}return true}
function removeArrow(I,H,F,C,A){I=parseInt(I);H=parseInt(H);F=parseInt(F);C=parseInt(C);A=parseInt(A);if(H>C){return false}if(H==C&&F==A){return false}if((F-A)!=0){var G=$("arrow"+I+H+F+C+A);if(G){var D=G.parentNode;D.removeChild(G)}}if(H<C){var G=$("arrow"+I+H+F+C+A+"d");if(G){var D=G.parentNode;D.removeChild(G)}}var B=(F-A);if(B<0){B*=-1;B-=1;for(var E=0;E<B;E++){treec[I][H][F+(B-E)].setType("empty");treec[I][H][F+(B-E)].redraw(false)}}else{B-=1;for(var E=0;E<B;E++){treec[I][H][A-(E-B)].setType("empty");treec[I][H][A-(E-B)].redraw(false)}}if(H<C){if((F-A)!=0){treec[I][H][A].setType("empty");treec[I][H][A].redraw(false)}for(E=1;E<(C-H);E++){treec[I][H+E][A].setType("empty");treec[I][H+E][A].redraw(false)}}}
function canArrow(A,B,C){A=parseInt(A);B=parseInt(B);C=parseInt(C);if(treec[A][B][C].getType()=="active"){return false}if(treec[A][B][C].getType()=="passive"){return false}if(treec[A][B][C].getType()=="hidden"){return false}return true}
function validArrowTalent(A,B,C){A=parseInt(A);B=parseInt(B);C=parseInt(C);if(treec[A][B][C].getType()=="active"){return true}if(treec[A][B][C].getType()=="passive"){return true}return false};
//-------------------------------------------
// Processing
//-------------------------------------------
function procesData(data){if(data=="err:404"){alert(L("The selected tree was not found."))}else{if(data.substr(0,4)!="jsn:"){if(data.substr(0,4)=="suc:"){data=data.substr(4)}var maxi=getMaxi();for(var k=1;k<=3;k++){for(var i=1;i<=maxi;i++){for(var j=1;j<=4;j++){treec[k][i][j].setType("empty");treec[k][i][j].redraw(false)}}}if(data.substr(0,1)=="c"){var firstIndex=data.indexOf("#");var thisclass=data.substr(1,(firstIndex-2));var treeType=data.substr((firstIndex-1),1);setClass(thisclass);switch(treeType){case 0:treeTypeNormal();break;case 1:treeTypeTBC();break;case 2:treeTypeWotLK();break}}var dataarray=data.split("\n");for(var i=0;i<dataarray.length;i++){if(dataarray[i].length>1){procesTalent(dataarray[i])}}for(var i=0;i<dataarray.length;i++){if(dataarray[i].length>1){procesTalentPreReqs(dataarray[i])}}}else{data=data.substr(4);var rdata=null;try{var rdata=eval("("+data+")")}catch(e){return }$("treeTitle").value=rdata.title;$("authorComments").value=rdata.authorcomment;$("isHidden").value=rdata.isHidden;setClass(rdata.pclass);switch(rdata.treetype){case"0":treeTypeNormal();break;case"1":treeTypeTBC();break;case"2":treeTypeWotLK();break}var dataarray=rdata.content.split("\n");for(var i=0;i<dataarray.length;i++){if(dataarray[i].length>1){procesTalent(dataarray[i])}}for(var i=0;i<dataarray.length;i++){if(dataarray[i].length>1){procesTalentPreReqs(dataarray[i])}}}}}
function procesTalent(C)
{
var E=/(\d+)#([AP])#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#([\d|]*)#(.*)#/i.exec(C);
var B=E[1];
if(B.length>=3)
{
var D=translateSticky(E[1]);
var A=D[0];
var G=D[1];
var H=D[2];
var F=treec[A][G][H];
F.setType(cleanData(E[2]));
F.setTalentname(cleanData(E[3]));
F.setIcon("Spells/"+cleanData(E[4]));
F.setDescription(cleanData(E[5]));
if(F.getType()=="active")
{
procesTalentActive(A,G,H,E[7])
}
if(F.getType()=="passive")
{
procesTalentPassive(A,G,H,E[7])
}
F.redraw(false)
}
}
function procesTalentPreReqs(C){var E=/(\d+)#([AP])#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#([\d|]*)#(.*)#/i.exec(C);var B=E[0];var D=translateSticky(E[1]);var A=D[0];var F=D[1];var G=D[2];procesTalentReqs(A,F,G,E[6])}
function procesTalentReqs(A,D,E,C)
{
if(C.length<3)
{
return
}
var B=C.split("|");
for(i=0;i<B.length;i++)
{
treec[A][D][E].addReq(B[i])
}
}
function procesTalentActive(A,E,F,C)
{
var B=C.split("|");
if(B.length==10)
{
var D=treec[A][E][F];
D.setActiveCost(B[0]);
D.setActiveCostType(B[1]);
D.setActiveSpellType(B[2]);
D.setActiveCastTime(B[3]);
D.setActiveCooldown(B[4]);
D.setActiveRangeMin(B[5]);
D.setActiveRangeMax(B[6]);
D.setActiveReagents(B[7]);
D.setActiveRequires(B[8]);
D.setActiveMaxRank(B[9])
}
}
function procesTalentPassive(A,F,G,E)
{
if(E.length<3)
{
treec[A][F][G].setNumRanks(1);
return
}
var C=E.split("|");
var D=E.substring(0,1);
treec[A][F][G].setNumRanks(D);
C[0]=C[0].substring(1);
for(var B=0;B<C.length;B++)
{
treec[A][F][G].setRank((parseInt(B%D)+1),(parseInt(Math.ceil((B+0.5)/D))-1),C[B])
}
}
//-------------------------------------------
// Global
//-------------------------------------------
var curtree=0;
var currow=0;
var curpos=0;
var treec=new Array(3);
var treep=new Array(3);
var treen=new Array(3);
var treeInternalName=new Array(3);
var treee=new Array(3);
var treet=new Array(3);
var treel=new Array(3);
var switchActive=false;
var tooltipelm=null;
var tooltipcelm=null;
var pointlock=0;
function getMaxi()
{
var A=9;
switch(treeType)
{
case"WotLK": return 11;
case"TBC": return 9;
case"normal": return 7;
case"hunterpet": return 5;
}
}
function redrawAll()
{
var B=getMaxi();
for(var A=1;A<=3;A++)
{
for(var D=1;D<=B;D++)
{
for(var C=1;C<=4;C++)
{
treec[A][D][C].redraw(false)
}
}
}
}
function setClass(A)
{
currentClass=A;
switch(A)
{
case"druid":
treeInternalName[1]="Balance";
treeInternalName[2]="Feral";
treeInternalName[3]="Restoration";
treen[1]=L(LANGTalent_Druid_Balance);
treen[2]=L(LANGTalent_Druid_Feral);
treen[3]=L(LANGTalent_Druid_Restoration);
break;
case"deathknight":
treeInternalName[1]="Blood";
treeInternalName[2]="Frost";
treeInternalName[3]="Unholy";
treen[1]=L(LANGTalent_Deathknight_Blood);
treen[2]=L(LANGTalent_Deathknight_Frost);
treen[3]=L(LANGTalent_Deathknight_Unholy);
break;
case"hunter":
treeInternalName[1]="BeastMastery";
treeInternalName[2]="Marksmanship";
treeInternalName[3]="Survival";
treen[1]=L(LANGTalent_Hunter_BeastMastery);
treen[2]=L(LANGTalent_Hunter_Marksmanship);
treen[3]=L(LANGTalent_Hunter_Survival);
break;
case"mage":
treeInternalName[1]="Arcane";
treeInternalName[2]="Fire";
treeInternalName[3]="Frost";
treen[1]=L(LANGTalent_Mage_Arcane);
treen[2]=L(LANGTalent_Mage_Fire);
treen[3]=L(LANGTalent_Mage_Frost);
break;
case"paladin":
treeInternalName[1]="Holy";
treeInternalName[2]="Protection";
treeInternalName[3]="Retribution";
treen[1]=L(LANGTalent_Paladin_Holy);
treen[2]=L(LANGTalent_Paladin_Protection);
treen[3]=L(LANGTalent_Paladin_Retribution);
break;
case"priest":
treeInternalName[1]="Discipline";
treeInternalName[2]="Holy";
treeInternalName[3]="Shadow";
treen[1]=L(LANGTalent_Priest_Discipline);
treen[2]=L(LANGTalent_Priest_Holy);
treen[3]=L(LANGTalent_Priest_Shadow);
break;
case"rogue":
treeInternalName[1]="Assassination";
treeInternalName[2]="Combat";
treeInternalName[3]="Subtlety";
treen[1]=L(LANGTalent_Rogue_Assassination);
treen[2]=L(LANGTalent_Rogue_Combat);
treen[3]=L(LANGTalent_Rogue_Subtlety);
break;
case"shaman":
treeInternalName[1]="Elemental";
treeInternalName[2]="Enhancement";
treeInternalName[3]="Restoration";
treen[1]=L(LANGTalent_Shaman_Elemental);
treen[2]=L(LANGTalent_Shaman_Enhancement);
treen[3]=L(LANGTalent_Shaman_Restoration);
break;
case"warlock":
treeInternalName[1]="Affliction";
treeInternalName[2]="Demonology";
treeInternalName[3]="Destruction";
treen[1]=L(LANGTalent_Warlock_Affliction);
treen[2]=L(LANGTalent_Warlock_Demonology);
treen[3]=L(LANGTalent_Warlock_Destruction);
break;
case"warrior":
treeInternalName[1]="Arms";
treeInternalName[2]="Fury";
treeInternalName[3]="Protection";
treen[1]=L(LANGTalent_Warrior_Arms);
treen[2]=L(LANGTalent_Warrior_Fury);
treen[3]=L(LANGTalent_Warrior_Protection);
break;
case"hunterpet":
treeInternalName[1]="Tenacity";
treeInternalName[2]="Ferocity";
treeInternalName[3]="Cunning";
treen[1]=L(LANGTalent_HunterPet_Tenacity);
treen[2]=L(LANGTalent_HunterPet_Ferocity);
treen[3]=L(LANGTalent_HunterPet_Cunning);
break;
}
for(i=1;i<=3;i++)
{
treee[i].style.backgroundImage="url(/img/talent/bg/"+treeType+"/"+A+treeInternalName[i]+".jpg)";
var B=$("treeheadertext"+i);
B.innerHTML=treen[i]
}
}
function butclick2(A){if(!A){A=event}if(A.preventDefault){A.preventDefault()}else{A.returnResult=false}if(A.stopPropagation){A.stopPropagation()}else{A.cancelBubble=true}return false}
function butmouseover(B){if(!B){B=event}if(B.target){elm=B.target}if(B.srcElement){elm=B.srcElement}var C=translateElmId(elm.id);var A=C[0];var D=C[1];var E=C[2];elm=$(treec[A][D][E].getID());treec[A][D][E].doTooltip();}
function butmouseout(B)
{
if(!B)
{
B=event
}
if(B.target)
{
elm=B.target
}
if(B.srcElement)
{
elm=B.srcElement
}
hideTooltip()
}
function getClientSize()
{
var width=0,height=0;
if(typeof window.innerWidth=="number")
{
width=window.innerWidth;
height=window.innerHeight
}
else
{
if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
{
width=document.documentElement.clientWidth;
height=document.documentElement.clientHeight
}
else
{
if(document.body&&(document.body.clientWidth||document.body.clientHeight))
{
width=document.body.clientWidth;
height=document.body.clientHeight
}
}
}
return {x:width,y:height}
}
function schoolHover(C){counts=0;countt=0;counta=0;countp=0;var A=getMaxi();for(var D=1;D<=A;D++){for(var B=1;B<=4;B++){counts+=parseInt(treec[C][D][B].getCurRank());countt+=parseInt(treec[C][D][B].getNumRanks());if(treec[C][D][B].getType()=="active"){counta+=1}if(treec[C][D][B].getType()=="passive"){countp+=1}}}treep[C]=counts;tooltipcelm.innerHTML="<strong>"+treen[C]+"</strong><br />"+L(LANGTalent_PointsSpendInThisTree)+counts+"<br />"+L(LANGTalent_TotalPointsInThisTree)+countt+"<br />"+L(LANGTalent_ActiveTalentsInThisTree)+counta+"<br />"+L(LANGTalent_PassiveTalentsInThisTree)+countp;var E=$("treeheader"+C);showTooltip(E,true)}
function hideTooltip(){tooltipelm.style.display="none"}
function showTooltip(F,A)
{
tooltipelm.style.display="";
var C=getClientSize();
var B=(A==true?0:F.offsetWidth);
var E=obj_left(F)+B;
var D=obj_top(F)-tooltipelm.offsetHeight;
if(E<0)
{
E=0
}
if(D<0)
{
D=obj_top(F)+F.offsetHeight
}
if(A==true)
{
if((E+tooltipelm.offsetWidth)+1>=C.x)
{
E=C.x-tooltipelm.offsetWidth
}
}
else
{
if((E+tooltipelm.offsetWidth+B)+1>=C.x)
{
E=obj_left(F)-tooltipelm.offsetWidth
}
}
if((D+tooltipelm.offsetHeight)+1>=C.y)
{
D=obj_top(F)-tooltipelm.offsetHeight
}
tooltipelm.style.top=D+"px";tooltipelm.style.left=E+"px"
}
function translateElmId(A){A.match(/t(\d+)r(\d+)p(\d+)/);return[RegExp.$1,RegExp.$2,RegExp.$3]}
function translateSlash(A){A.match(/(\d+)\/(\d+)\/(\d+)/);return[RegExp.$1,RegExp.$2,RegExp.$3]}
function translateSticky(A){A.match(/([1|2|3])(\d+)([1|2|3|4])/);return[RegExp.$1,RegExp.$2,RegExp.$3]};
var translator=new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
window.onload=function()
{
tooltipelm=$("tooltipbox");
tooltipcelm=$("tooltipcontent");
hideTooltip();
for(var C=1;C<=3;C++)
{
var B=getMaxi();
treec[C]=new Array(B);
treep[C]=0;treen[C]="";
treee[C]=$("tree"+C);
treet[C]=obj_top(treee[C]);
treel[C]=obj_left(treee[C]);
var F=$("treeheader"+C);
var A=$("treeheaderimg"+C);
addListener(F,"mouseover",BindArgument(schoolHover,C));
addListener(F,"mouseout",hideTooltip);
addListener(F,"mouseup",butclick2);
addListener(F,"mousedown",butclick2);
addListener(A,"mouseup",BindArgument(ResetTree,C));
addListener(treee[C],"mouseup",butclick2);
addListener(treee[C],"mousedown",butclick2);
addListener(treee[C],"contextmenu",butclick2);
addListener(treee[C],"mouseover",butclick2);
addListener(treee[C],"mouseout",butclick2);
addListener(treee[C],"dragstart",butclick2);
addListener(treee[C],"selectstart",butclick2);
for(var E=1;E<=B;E++){treec[C][E]=new Array(4);for(var D=1;D<=4;D++){treec[C][E][D]=new TalentObj(C,E,D)}}
}
var B=$("linkThisBuild");
B.innerHTML=LANGTalent_LinkBuild;
B=$("mostRecent");
B.innerHTML=LANGTalent_MostRecent;
B=$("lblRequiredLevel");
B.innerHTML=LANGTalent_RequiredLevel;
B=$("lblPointsLeft");
B.innerHTML=LANGTalent_PointsLeft;
B=$("lblPointsUsed");
B.innerHTML=LANGTalent_PointsUsed;
setClass(currentClass);
procesData(taldata);
loadBuild();
updatePointsOverview();
redrawAll()
};
function butclick(B){if(!B){B=event}if(B.target){elm=B.target}if(B.srcElement){elm=B.srcElement}var D=B.which?B.which:B.button;var C=translateElmId(elm.id);var A=C[0];var E=C[1];var F=C[2];if(treec[A][E][F].getType()=="empty"){return false}if(B.shiftKey==true||D>1){treec[A][E][F].subPoint();updatePointsOverview(A)}else{if(treec[A][E][F].reqsAreOk()){treec[A][E][F].addPoint();updatePointsOverview(A)}}treec[A][E][F].doTooltip();return false}
function ResetTrees(){var B=getMaxi();for(var A=1;A<=3;A++){treep[A]=0;for(var D=1;D<=B;D++){for(var C=1;C<=4;C++){treec[A][D][C].setCurRank(0);treec[A][D][C].redraw(false)}}}updatePointsOverview()}
function ResetTree(A){var B=getMaxi();for(var D=1;D<=B;D++){for(var C=1;C<=4;C++){treec[A][D][C].setCurRank(0);treec[A][D][C].redraw(false)}}treep[A]=0;updatePointsOverview()}
function redrawAll(){var B=getMaxi();for(var A=1;A<=3;A++){treep[A]=0;for(var D=1;D<=B;D++){for(var C=1;C<=4;C++){treep[A]+=parseInt(treec[A][D][C].getCurRank())}}}for(var A=1;A<=3;A++){for(var D=1;D<=B;D++){for(var C=1;C<=4;C++){treec[A][D][C].redraw(false)}}}updatePointsOverview()}
function updatePointsOverview()
{
var B=$("pointsused");
B.innerHTML=treep[1]+treep[2]+treep[3];
B=$("pointsleft");
B.innerHTML=pointlock - (treep[1]+treep[2]+treep[3]);
B=$("levelneeded");
if(treep[1]+treep[2]+treep[3]==0)
{
B.innerHTML="-";
}
else
{
B.innerHTML=treep[1]+treep[2]+treep[3] + 9;
}
for(var A=1;A<=3;A++)
{
$("treeheadertext"+A).innerHTML="<span class='yellowFont'>"+treen[A]+"</span><span class='stdText'> - "+treep[A]+" "+L(LANGTalent_Points)+"</span>"
}
var fullLink = "/?talent="+createBuildLink();
document.getElementById("buildText").value = rootUrl+fullLink;
var link_enUS = document.getElementById("link_enUS");
var link_deDE = document.getElementById("link_deDE");
var link_frFR = document.getElementById("link_frFR");
var link_esES = document.getElementById("link_esES");
var link_ruRU = document.getElementById("link_ruRU");
var link_zhCN = document.getElementById("link_zhCN");
var link_zhTW = document.getElementById("link_zhTW");
var link_koKR = document.getElementById("link_koKR");
var layoutLink = document.getElementById("layoutLink");
if (link_enUS != null) link_enUS.href = fullLink + "&language=enUS";
if (link_deDE != null) link_deDE.href = fullLink + "&language=deDE";
if (link_frFR != null) link_frFR.href = fullLink + "&language=frFR";
if (link_esES != null) link_esES.href = fullLink + "&language=esES";
if (link_ruRU != null) link_ruRU.href = fullLink + "&language=ruRU";
if (link_zhCN != null) link_zhCN.href = fullLink + "&language=zhCN";
if (link_zhTW != null) link_zhTW.href = fullLink + "&language=zhTW";
if (link_koKR != null) link_koKR.href = fullLink + "&language=koKR";
if (layoutLink != null) layoutLink.href = fullLink + layoutSwitch;
}
function loadBuild()
{
if(fillOutString.length==0)
{
return
}
switch(fillOutString.charAt(0))
{
case"9":
setPointLock(0);
fillOutString=fillOutString.substring(1);
break;
case"8":
setPointLock(51);
fillOutString=fillOutString.substring(1);
break;
case"7":
setPointLock(61);
fillOutString=fillOutString.substring(1);
break;
case"6":
setPointLock(71);
fillOutString=fillOutString.substring(1);
break;
case"5":
setPointLock(16);
fillOutString=fillOutString.substring(1);
break;
case"4":
setPointLock(20);
fillOutString=fillOutString.substring(1);
break;
default:
setPointLock(0);
break;
}
for(var C=(translator.length-1);C>1;C--)
{
fillOutString=fillOutString.replace(translator[C],stringFill("0",C))
}
var D="000";
for(var C=0;C<fillOutString.length;C++)
{
var B=translateSlash(D);
var A=B[0];
var E=B[1];
var F=B[2];
D=getNext(A,E,F);
if(D=="")
{
return
}
B=translateSlash(D);
A=B[0];
E=B[1];
F=B[2];
treec[A][E][F].setCurRank(parseInt(fillOutString.charAt(C)))
}
}
function getNext(A,F,G){var C=getMaxi();if(A==0&&F==0&&G==0){for(var B=1;B<=3;B++){for(var E=1;E<=C;E++){for(var D=1;D<=4;D++){if(treec[B][E][D].getType()=="passive"||treec[B][E][D].getType()=="active"){return B+"/"+E+"/"+D}}}}}else{A=Math.min(A,3);A=Math.max(A,1);F=Math.min(F,C);F=Math.max(F,1);G=Math.min(G,4);G=Math.max(G,1);for(var B=A;B<=3;B++){for(var E=1;E<=C;E++){if(A==B&&E<F){continue}for(var D=1;D<=4;D++){if(A==B&&F==E&&G==D){continue}if(A==B&&F==E&&D<G){continue}if(treec[B][E][D].getType()=="passive"||treec[B][E][D].getType()=="active"){return B+"/"+E+"/"+D}}}}}return""}
function createBuildLink()
{
var C=getMaxi();
var A="";
for(var B=1;B<=3;B++)
{
for(var E=1;E<=C;E++)
{
for(var D=1;D<=4;D++)
{
if(treec[B][E][D].getType()=="passive"||treec[B][E][D].getType()=="active")
{
A+=treec[B][E][D].getCurRank().toString();
}
}
}
}
for(var E=(translator.length-1);E>1;E--)
{
A=A.replace(stringFill("0",E),translator[E])
}
switch(pointlock)
{
default:
case 0:
A="9"+A;
break;
case 51:
A="8"+A;
break;
case 61:
A="7"+A;
break;
case 71:
A="6"+A;
break;
case 16:
A="5"+A;
break;
case 20:
A="4"+A;
break;
}
A=buildVersionString+"_"+classString+"_"+A;
return A;
}
function setPointLock(A)
{
switch(A)
{
case 71:
case 61:
case 51:
if(treep[1]+treep[2]+treep[3]>A)
{
redrawAll();
if(treep[1]+treep[2]+treep[3]>A)
{
alert(L(LANGTalent_UnableSetPoints));
return
}
}
break;
case 20:
{
if(treep[1]+treep[2]+treep[3]>A)
{
redrawAll();
if(treep[1]+treep[2]+treep[3]>A)
{
alert(L(LANGTalent_UnableSetPoints));
return
}
}
var B=$("link5Points");
B.innerHTML=LANGTalent_Remove5Points;
B.href="javascript:setPointLock(16);";
break;
}
case 16:
{
if(treep[1]+treep[2]+treep[3]>A)
{
redrawAll();
if(treep[1]+treep[2]+treep[3]>A)
{
alert(L(LANGTalent_UnableSetPoints));
return
}
}
var B=$("link5Points");
B.innerHTML=LANGTalent_Add5Points;
B.href="javascript:setPointLock(20);";
break;
}
default:
case 0:
break
}
pointlock=A;
redrawAll();
}
function reposAll(){for(var B=1;B<=3;B++){treet[B]=obj_top(treee[B]);treel[B]=obj_left(treee[B])}var A=getMaxi();for(var B=1;B<=3;B++){for(var D=1;D<=A;D++){for(var C=1;C<=4;C++){treec[B][D][C].reposition()}}}}
function showhideRedirect(A){if(A.value==1){$("redirecttargetbody").style.display=""}else{$("redirecttargetbody").style.display="none"}}
var currentClass = "druid";
taldata = "112#A#\"Nature\'s Grasp\"#\"spell_nature_natureswrath.png\"#\"\"##125|mana|casttime|0|60|0|0|||Rank 6#\n111#P#\"Improved Wrath\"#\"spell_nature_abolishmagic.png\"#\"\"##5|||||#\n122#P#\"Improved Moonfire\"#\"spell_nature_starfall.png\"#\"\"##5|||||#\n134#P#\"Nature\'s Reach\"#\"spell_nature_naturetouchgrow.png\"#\"\"##2||#\n124#P#\"Natural Shapeshifter\"#\"spell_nature_wispsplode.png\"#\"\"##3|||#\n131#P#\"Improved Thorns\"#\"spell_nature_thorns.png\"#\"\"##3|||#\n153#P#\"Moonglow\"#\"spell_nature_sentinal.png\"#\"\"##3|||#\n143#P#\"Improved Starfire\"#\"spell_arcane_starfire.png\"#\"\"##5|||||#\n121#P#\"Improved Entangling Roots\"#\"spell_nature_stranglevines.png\"#\"\"##3|||#\n133#A#\"Omen of Clarity\"#\"spell_nature_crystalball.png\"#\"\"#123#120|mana|casttime|0|0|0|0|||#\n152#P#\"Nature\'s Grace\"#\"spell_nature_naturesblessing.png\"#\"\"##1|#\n162#P#\"Moonfury\"#\"spell_nature_moonglow.png\"#\"\"#152#5|||||#\n123#P#\"Natural Weapons\"#\"inv_staff_01.png\"#\"\"##5|||||#\n142#P#\"Vengeance\"#\"spell_nature_purge.png\"#\"\"#122#5|||||#\n172#A#\"Moonkin Form\"#\"spell_nature_forceofnature.png\"#\"\"##35|procmana|casttime|0|0|0|0|||Shapeshift#\n113#P#\"Improved Nature\'s Grasp\"#\"spell_nature_natureswrath.png\"#\"\"#112#4||||#\n223#P#\"Thick Hide\"#\"inv_misc_pelt_bear_03.png\"#\"\"##5|||||#\n213#P#\"Feral Aggression\"#\"ability_druid_demoralizingroar.png\"#\"\"##5|||||#\n212#P#\"Ferocity\"#\"ability_hunter_pet_hyena.png\"#\"\"##5|||||#\n222#P#\"Brutal Impact\"#\"ability_druid_bash.png\"#\"\"##2||#\n233#P#\"Sharpened Claws\"#\"inv_misc_monsterclaw_04.png\"#\"\"##3|||#\n221#P#\"Feral Instinct\"#\"ability_ambush.png\"#\"\"##5|||||#\n243#P#\"Blood Frenzy\"#\"ability_ghoulfrenzy.png\"#\"\"#233#2||#\n244#P#\"Primal Fury\"#\"ability_racial_cannibalize.png\"#\"\"#233#2||#\n241#P#\"Improved Shred\"#\"spell_shadow_vampiricaura.png\"#\"\"##2||#\n242#P#\"Predatory Strikes\"#\"ability_hunter_pet_cat.png\"#\"\"##3|||#\n232#A#\"Feral Charge\"#\"ability_hunter_pet_bear.png\"#\"\"##5|rage|casttime|0|15|8|25|||#\n251#P#\"Savage Fury\"#\"ability_druid_ravage.png\"#\"\"##2||#\n231#P#\"Feline Swiftness\"#\"spell_nature_spiritwolf.png\"#\"\"##2||#\n262#P#\"Heart of the Wild\"#\"spell_holy_blessingofagility.png\"#\"\"#242#5|||||#\n272#P#\"Leader of the Pack\"#\"spell_nature_unyeildingstamina.png\"#\"\"##1|#\n253#A#\"Faerie Fire (Feral)\"#\"spell_nature_faeriefire.png\"#\"\"##0|energy|casttime|0|6|0|30|||Rank 4#\n312#P#\"Improved Mark of the Wild\"#\"spell_nature_regeneration.png\"#\"\"##5|||||#\n313#P#\"Furor\"#\"spell_holy_blessingofstamina.png\"#\"\"##5|||||#\n322#P#\"Nature\'s Focus\"#\"spell_nature_healingwavegreater.png\"#\"\"##5|||||#\n321#P#\"Improved Healing Touch\"#\"spell_nature_healingtouch.png\"#\"\"##5|||||#\n363#P#\"Improved Regrowth\"#\"spell_nature_resistnature.png\"#\"\"##5|||||#\n323#P#\"Improved Enrage\"#\"ability_druid_enrage.png\"#\"\"##2||#\n333#A#\"Insect Swarm\"#\"spell_nature_insectswarm.png\"#\"\"##160|mana|casttime|0|0|0|30|||Rank 5#\n353#P#\"Gift of Nature\"#\"spell_nature_protectionformnature.png\"#\"\"#333#5|||||#\n332#P#\"Reflection\"#\"spell_frost_windwalkon.png\"#\"\"##3|||#\n344#P#\"Improved Rejuvenation\"#\"spell_nature_rejuvenation.png\"#\"\"##3|||#\n351#A#\"Nature\'s Swiftness\"#\"spell_nature_ravenform.png\"#\"\"#321#0|mana|casttime|0|180|0|0|||#\n334#P#\"Subtlety\"#\"ability_eyeoftheowl.png\"#\"\"##5|||||#\n354#P#\"Improved Tranquility\"#\"spell_nature_tranquility.png\"#\"\"##2||#\n342#P#\"Tranquil Spirit\"#\"spell_holy_elunesgrace.png\"#\"\"##5|||||#\n372#A#\"Swiftmend\"#\"inv_relics_idolofrejuvenation.png\"#\"\"#342#20|procmana|casttime|0|15|0|40|||#\n";
var descriptionTable = new Array();
descriptionTable["1121"] = "While active, any time an enemy strikes the caster they have a 35% chance to become afflicted by Entangling Roots (Rank 6). Only useable outdoors. 1 charge. Lasts 45 sec."
descriptionTable["1111"] = "Reduces the cast time of your Wrath spell by 0.1 sec."
descriptionTable["1112"] = "Reduces the cast time of your Wrath spell by 0.2 sec."
descriptionTable["1113"] = "Reduces the cast time of your Wrath spell by 0.3 sec."
descriptionTable["1114"] = "Reduces the cast time of your Wrath spell by 0.4 sec."
descriptionTable["1115"] = "Reduces the cast time of your Wrath spell by 0.5 sec."
descriptionTable["1221"] = "Increases the damage and critical strike chance of your Moonfire spell by 2%."
descriptionTable["1222"] = "Increases the damage and critical strike chance of your Moonfire spell by 4%."
descriptionTable["1223"] = "Increases the damage and critical strike chance of your Moonfire spell by 6%."
descriptionTable["1224"] = "Increases the damage and critical strike chance of your Moonfire spell by 8%."
descriptionTable["1225"] = "Increases the damage and critical strike chance of your Moonfire spell by 10%."
descriptionTable["1341"] = "Increases the range of your Wrath, Entangling Roots, Faerie Fire, Moonfire, Starfire, and Hurricane spells by 10%."
descriptionTable["1342"] = "Increases the range of your Wrath, Entangling Roots, Faerie Fire, Moonfire, Starfire, and Hurricane spells by 20%."
descriptionTable["1241"] = "Reduces the mana cost of all shapeshifting by 10%."
descriptionTable["1242"] = "Reduces the mana cost of all shapeshifting by 20%."
descriptionTable["1243"] = "Reduces the mana cost of all shapeshifting by 30%."
descriptionTable["1311"] = "Increases damage caused by your Thorns spell by 25%."
descriptionTable["1312"] = "Increases damage caused by your Thorns spell by 50%."
descriptionTable["1313"] = "Increases damage caused by your Thorns spell by 75%."
descriptionTable["1531"] = "Reduces the Mana cost of your Moonfire, Starfire, Wrath, Healing Touch, Regrowth and Rejuvenation spells by 3%."
descriptionTable["1532"] = "Reduces the Mana cost of your Moonfire, Starfire, Wrath, Healing Touch, Regrowth and Rejuvenation spells by 6%."
descriptionTable["1533"] = "Reduces the Mana cost of your Moonfire, Starfire, Wrath, Healing Touch, Regrowth and Rejuvenation spells by 9%."
descriptionTable["1431"] = "Reduces the cast time of Starfire by 0.1 sec and has a 3% chance to stun the target for 3 sec."
descriptionTable["1432"] = "Reduces the cast time of Starfire by 0.2 sec and has a 6% chance to stun the target for 3 sec."
descriptionTable["1433"] = "Reduces the cast time of Starfire by 0.3 sec and has a 9% chance to stun the target for 3 sec."
descriptionTable["1434"] = "Reduces the cast time of Starfire by 0.4 sec and has a 12% chance to stun the target for 3 sec."
descriptionTable["1435"] = "Reduces the cast time of Starfire by 0.5 sec and has a 15% chance to stun the target for 3 sec."
descriptionTable["1211"] = "Gives you a 40% chance to avoid interruption caused by damage while casting Entangling Roots."
descriptionTable["1212"] = "Gives you a 70% chance to avoid interruption caused by damage while casting Entangling Roots."
descriptionTable["1213"] = "Gives you a 100% chance to avoid interruption caused by damage while casting Entangling Roots."
descriptionTable["1331"] = "Imbues the Druid with natural energy. Each of the Druid\'s melee attacks has a chance of causing the caster to enter a Clearcasting state. The Clearcasting state reduces the Mana, Rage or Energy cost of your next damage or healing spell or offensive ability by 100%. Lasts 10 min."
descriptionTable["1521"] = "All spell criticals grace you with a blessing of nature, reducing the casting time of your next spell by 0.5 sec."
descriptionTable["1621"] = "Increases the damage done by your Starfire, Moonfire and Wrath spells by 2%."
descriptionTable["1622"] = "Increases the damage done by your Starfire, Moonfire and Wrath spells by 4%."
descriptionTable["1623"] = "Increases the damage done by your Starfire, Moonfire and Wrath spells by 6%."
descriptionTable["1624"] = "Increases the damage done by your Starfire, Moonfire and Wrath spells by 8%."
descriptionTable["1625"] = "Increases the damage done by your Starfire, Moonfire and Wrath spells by 10%."
descriptionTable["1231"] = "Increases the damage you deal with physical attacks in all forms by 2%."
descriptionTable["1232"] = "Increases the damage you deal with physical attacks in all forms by 4%."
descriptionTable["1233"] = "Increases the damage you deal with physical attacks in all forms by 6%."
descriptionTable["1234"] = "Increases the damage you deal with physical attacks in all forms by 8%."
descriptionTable["1235"] = "Increases the damage you deal with physical attacks in all forms by 10%."
descriptionTable["1421"] = "Increases the critical strike damage bonus of your Starfire, Moonfire, and Wrath spells by 20%."
descriptionTable["1422"] = "Increases the critical strike damage bonus of your Starfire, Moonfire, and Wrath spells by 40%."
descriptionTable["1423"] = "Increases the critical strike damage bonus of your Starfire, Moonfire, and Wrath spells by 60%."
descriptionTable["1424"] = "Increases the critical strike damage bonus of your Starfire, Moonfire, and Wrath spells by 80%."
descriptionTable["1425"] = "Increases the critical strike damage bonus of your Starfire, Moonfire, and Wrath spells by 100%."
descriptionTable["1721"] = "Transforms the Druid into Moonkin Form. While in this form the armor contribution from items is increased by 360% and all party members within 30 yards have their spell critical chance increased by 3%. The Moonkin can only cast Balance spells while shapeshifted.<br><br>The act of shapeshifting frees the caster of Polymorph and Movement Impairing effects."
descriptionTable["1131"] = "Increases the chance for your Nature\'s Grasp to entangle an enemy by 15%."
descriptionTable["1132"] = "Increases the chance for your Nature\'s Grasp to entangle an enemy by 30%."
descriptionTable["1133"] = "Increases the chance for your Nature\'s Grasp to entangle an enemy by 45%."
descriptionTable["1134"] = "Increases the chance for your Nature\'s Grasp to entangle an enemy by 65%."
descriptionTable["2231"] = "Increases your Armor contribution from items by 2%."
descriptionTable["2232"] = "Increases your Armor contribution from items by 4%."
descriptionTable["2233"] = "Increases your Armor contribution from items by 6%."
descriptionTable["2234"] = "Increases your Armor contribution from items by 8%."
descriptionTable["2235"] = "Increases your Armor contribution from items by 10%."
descriptionTable["2131"] = "Increases the Attack Power reduction of your Demoralizing Roar by 8% and the damage caused by your Ferocious Bite by 3%."
descriptionTable["2132"] = "Increases the Attack Power reduction of your Demoralizing Roar by 16% and the damage caused by your Ferocious Bite by 6%."
descriptionTable["2133"] = "Increases the Attack Power reduction of your Demoralizing Roar by 24% and the damage caused by your Ferocious Bite by 9%."
descriptionTable["2134"] = "Increases the Attack Power reduction of your Demoralizing Roar by 32% and the damage caused by your Ferocious Bite by 12%."
descriptionTable["2135"] = "Increases the Attack Power reduction of your Demoralizing Roar by 40% and the damage caused by your Ferocious Bite by 15%."
descriptionTable["2121"] = "Reduces the cost of your Maul, Swipe, Claw, and Rake abilities by 1 Rage or Energy."
descriptionTable["2122"] = "Reduces the cost of your Maul, Swipe, Claw, and Rake abilities by 2 Rage or Energy."
descriptionTable["2123"] = "Reduces the cost of your Maul, Swipe, Claw, and Rake abilities by 3 Rage or Energy."
descriptionTable["2124"] = "Reduces the cost of your Maul, Swipe, Claw, and Rake abilities by 4 Rage or Energy."
descriptionTable["2125"] = "Reduces the cost of your Maul, Swipe, Claw, and Rake abilities by 5 Rage or Energy."
descriptionTable["2221"] = "Increases the stun duration of your Bash and Pounce abilities by 0.5 sec."
descriptionTable["2222"] = "Increases the stun duration of your Bash and Pounce abilities by 1 sec."
descriptionTable["2331"] = "Increases your critical strike chance while in Bear, Dire Bear or Cat Form by 2%."
descriptionTable["2332"] = "Increases your critical strike chance while in Bear, Dire Bear or Cat Form by 4%."
descriptionTable["2333"] = "Increases your critical strike chance while in Bear, Dire Bear or Cat Form by 6%."
descriptionTable["2211"] = "Increases threat caused in Bear and Dire Bear Form by 3% and reduces the chance enemies have to detect you while Prowling."
descriptionTable["2212"] = "Increases threat caused in Bear and Dire Bear Form by 6% and reduces the chance enemies have to detect you while Prowling."
descriptionTable["2213"] = "Increases threat caused in Bear and Dire Bear Form by 9% and reduces the chance enemies have to detect you while Prowling."
descriptionTable["2214"] = "Increases threat caused in Bear and Dire Bear Form by 12% and reduces the chance enemies have to detect you while Prowling."
descriptionTable["2215"] = "Increases threat caused in Bear and Dire Bear Form by 15% and reduces the chance enemies have to detect you while Prowling."
descriptionTable["2431"] = "Your critical strikes from Cat Form abilities that add combo points have a 50% chance to add an additional combo point."
descriptionTable["2432"] = "Your critical strikes from Cat Form abilities that add combo points have a 100% chance to add an additional combo point."
descriptionTable["2441"] = "Gives you a 50% chance to gain an additional 5 Rage anytime you get a critical strike while in Bear and Dire Bear Form."
descriptionTable["2442"] = "Gives you a 100% chance to gain an additional 5 Rage anytime you get a critical strike while in Bear and Dire Bear Form."
descriptionTable["2411"] = "Reduces the Energy cost of your Shred ability by 6."
descriptionTable["2412"] = "Reduces the Energy cost of your Shred ability by 12."
descriptionTable["2421"] = "Increases your melee attack power in Cat, Bear and Dire Bear Forms by 50% of your level."
descriptionTable["2422"] = "Increases your melee attack power in Cat, Bear and Dire Bear Forms by 100% of your level."
descriptionTable["2423"] = "Increases your melee attack power in Cat, Bear and Dire Bear Forms by 150% of your level."
descriptionTable["2321"] = "Causes you to charge an enemy, immobilizing and interrupting any spell being cast for 4 sec."
descriptionTable["2511"] = "Increases the damage caused by your Claw, Rake, Maul and Swipe abilities by 10%."
descriptionTable["2512"] = "Increases the damage caused by your Claw, Rake, Maul and Swipe abilities by 20%."
descriptionTable["2311"] = "Increases your movement speed by 15% while outdoors in Cat Form and increases your chance to dodge while in Cat Form by 2%."
descriptionTable["2312"] = "Increases your movement speed by 30% while outdoors in Cat Form and increases your chance to dodge while in Cat Form by 4%."
descriptionTable["2621"] = "Increases your Intellect by 4%. In addition, while in Bear or Dire Bear Form your Stamina is increased by 4% and while in Cat Form your Strength is increased by 4%."
descriptionTable["2622"] = "Increases your Intellect by 8%. In addition, while in Bear or Dire Bear Form your Stamina is increased by 8% and while in Cat Form your Strength is increased by 8%."
descriptionTable["2623"] = "Increases your Intellect by 12%. In addition, while in Bear or Dire Bear Form your Stamina is increased by 12% and while in Cat Form your Strength is increased by 12%."
descriptionTable["2624"] = "Increases your Intellect by 16%. In addition, while in Bear or Dire Bear Form your Stamina is increased by 16% and while in Cat Form your Strength is increased by 16%."
descriptionTable["2625"] = "Increases your Intellect by 20%. In addition, while in Bear or Dire Bear Form your Stamina is increased by 20% and while in Cat Form your Strength is increased by 20%."
descriptionTable["2721"] = "While in Cat, Bear or Dire Bear Form, the Leader of the Pack increases ranged and melee critical chance of all party members within 45 yards by 3%."
descriptionTable["2531"] = "Decrease the armor of the target by 505 for 40 sec. While affected, the target cannot stealth or turn invisible."
descriptionTable["3121"] = "Increases the effects of your Mark of the Wild and Gift of the Wild spells by 7%."
descriptionTable["3122"] = "Increases the effects of your Mark of the Wild and Gift of the Wild spells by 14%."
descriptionTable["3123"] = "Increases the effects of your Mark of the Wild and Gift of the Wild spells by 21%."
descriptionTable["3124"] = "Increases the effects of your Mark of the Wild and Gift of the Wild spells by 28%."
descriptionTable["3125"] = "Increases the effects of your Mark of the Wild and Gift of the Wild spells by 35%."
descriptionTable["3131"] = "Gives you 20% chance to gain 10 Rage when you shapeshift into Bear and Dire Bear Form or 40 Energy when you shapeshift into Cat Form."
descriptionTable["3132"] = "Gives you 40% chance to gain 10 Rage when you shapeshift into Bear and Dire Bear Form or 40 Energy when you shapeshift into Cat Form."
descriptionTable["3133"] = "Gives you 60% chance to gain 10 Rage when you shapeshift into Bear and Dire Bear Form or 40 Energy when you shapeshift into Cat Form."
descriptionTable["3134"] = "Gives you 80% chance to gain 10 Rage when you shapeshift into Bear and Dire Bear Form or 40 Energy when you shapeshift into Cat Form."
descriptionTable["3135"] = "Gives you 100% chance to gain 10 Rage when you shapeshift into Bear and Dire Bear Form or 40 Energy when you shapeshift into Cat Form."
descriptionTable["3221"] = "Gives you a 14% chance to avoid interruption caused by damage while casting the Healing Touch, Regrowth and Tranquility spells."
descriptionTable["3222"] = "Gives you a 28% chance to avoid interruption caused by damage while casting the Healing Touch, Regrowth and Tranquility spells."
descriptionTable["3223"] = "Gives you a 42% chance to avoid interruption caused by damage while casting the Healing Touch, Regrowth and Tranquility spells."
descriptionTable["3224"] = "Gives you a 56% chance to avoid interruption caused by damage while casting the Healing Touch, Regrowth and Tranquility spells."
descriptionTable["3225"] = "Gives you a 70% chance to avoid interruption caused by damage while casting the Healing Touch, Regrowth and Tranquility spells."
descriptionTable["3211"] = "Reduces the cast time of your Healing Touch spell by 0.1 sec."
descriptionTable["3212"] = "Reduces the cast time of your Healing Touch spell by 0.2 sec."
descriptionTable["3213"] = "Reduces the cast time of your Healing Touch spell by 0.3 sec."
descriptionTable["3214"] = "Reduces the cast time of your Healing Touch spell by 0.4 sec."
descriptionTable["3215"] = "Reduces the cast time of your Healing Touch spell by 0.5 sec."
descriptionTable["3631"] = "Increases the critical effect chance of your Regrowth spell by 10%."
descriptionTable["3632"] = "Increases the critical effect chance of your Regrowth spell by 20%."
descriptionTable["3633"] = "Increases the critical effect chance of your Regrowth spell by 30%."
descriptionTable["3634"] = "Increases the critical effect chance of your Regrowth spell by 40%."
descriptionTable["3635"] = "Increases the critical effect chance of your Regrowth spell by 50%."
descriptionTable["3231"] = "The Enrage ability now instantly generates 5 Rage."
descriptionTable["3232"] = "The Enrage ability now instantly generates 10 Rage."
descriptionTable["3331"] = "The enemy target is swarmed by insects, decreasing their chance to hit by 2% and causing 324 Nature damage over 12 sec."
descriptionTable["3531"] = "Increases the effect of all healing spells by 2%."
descriptionTable["3532"] = "Increases the effect of all healing spells by 4%."
descriptionTable["3533"] = "Increases the effect of all healing spells by 6%."
descriptionTable["3534"] = "Increases the effect of all healing spells by 8%."
descriptionTable["3535"] = "Increases the effect of all healing spells by 10%."
descriptionTable["3321"] = "Allows 5% of your Mana regeneration to continue while casting."
descriptionTable["3322"] = "Allows 10% of your Mana regeneration to continue while casting."
descriptionTable["3323"] = "Allows 15% of your Mana regeneration to continue while casting."
descriptionTable["3441"] = "Increases the effect of your Rejuvenation spell by 5%."
descriptionTable["3442"] = "Increases the effect of your Rejuvenation spell by 10%."
descriptionTable["3443"] = "Increases the effect of your Rejuvenation spell by 15%."
descriptionTable["3511"] = "When activated, your next Nature spell becomes an instant cast spell."
descriptionTable["3341"] = "Reduces the threat generated by your Healing spells by 4%."
descriptionTable["3342"] = "Reduces the threat generated by your Healing spells by 8%."
descriptionTable["3343"] = "Reduces the threat generated by your Healing spells by 12%."
descriptionTable["3344"] = "Reduces the threat generated by your Healing spells by 16%."
descriptionTable["3345"] = "Reduces the threat generated by your Healing spells by 20%."
descriptionTable["3541"] = "Reduces threat caused by Tranquility by 50%."
descriptionTable["3542"] = "Reduces threat caused by Tranquility by 100%."
descriptionTable["3421"] = "Reduces the mana cost of your Healing Touch and Tranquility spells by 2%."
descriptionTable["3422"] = "Reduces the mana cost of your Healing Touch and Tranquility spells by 4%."
descriptionTable["3423"] = "Reduces the mana cost of your Healing Touch and Tranquility spells by 6%."
descriptionTable["3424"] = "Reduces the mana cost of your Healing Touch and Tranquility spells by 8%."
descriptionTable["3425"] = "Reduces the mana cost of your Healing Touch and Tranquility spells by 10%."
descriptionTable["3721"] = "Consumes a Rejuvenation or Regrowth effect on a friendly target to instantly heal them an amount equal to 12 sec. of Rejuvenation or 18 sec. of Regrowth."
var LANGTalent_Spell_Instant = "Instant";
var LANGTalent_Spell_InstantCast = "Instant cast";
var LANGTalent_Spell_Channeled = "Channeled";
var LANGTalent_Spell_NextMelee = "Next Melee";
var LANGTalent_Spell_CastTimeSec = "{0} sec cast";
var LANGTalent_Spell_CastTimeMin = "{0} min cast";
var LANGTalent_Spell_CastTimeMinSec = "{0} min {1} sec cast";
var LANGTalent_Spell_TimeSec = " sec";
var LANGTalent_Spell_TimeMin = " min";
var LANGTalent_Spell_Cooldown = "{0} cooldown";
var LANGTalent_Spell_Reagents = "Reagents: ";
var LANGTalent_Spell_BaseMana = "% of base mana";
var LANGTalent_Spell_RemainingMana = "% of remaining mana";
var LANGTalent_Spell_Range = "{0} yd range";
var LANGTalent_Rank = "Rank ";
var LANGTalent_Requires = "Requires ";
var LANGTalent_RequiresPointsInTalents = "Requires {0} points in {1} Talents";
var LANGTalent_RequiresPointInTalent = "Requires {0} point in {1}";
var LANGTalent_RequiresPointsInTalent = "Requires {0} points in {1}";
var LANGTalent_NextRank = "Next rank:";
var LANGTalent_ClickToLearn = "Click to learn";
var LANGTalent_ClickToLearnNextRank = "Click to learn next rank";
var LANGTalent_RightClickToUnlearn = "Right-Click to unlearn";
var LANGTalent_PointsUsed = "Points spent: ";
var LANGTalent_PointsLeft = "Points left: ";
var LANGTalent_RequiredLevel = "Required level: ";
var LANGTalent_Min = " min ";
var LANGTalent_Mana = "Mana";
var LANGTalent_Rage = "Rage";
var LANGTalent_Energy = "Energy";
var LANGTalent_Focus = "Focus";
var LANGTalent_RunicPower = "Runic Power";
var LANGTalent_Points = "points";
var LANGTalent_PointsSpendInThisTree = "Points spend in this tree: ";
var LANGTalent_TotalPointsInThisTree = "Total points in this tree: ";
var LANGTalent_ActiveTalentsInThisTree = "Active talents in this tree: ";
var LANGTalent_PassiveTalentsInThisTree = "Passive talents in this tree: ";
var LANGTalent_UnableSetPoints = "Unable to set a new maximum level, you used too much points for this level.";
var LANGTalent_ChooseClass = "Choose class";
var LANGTalent_ChooseVersion = "Select version";
var LANGTalent_LinkBuild = "Link this build: ";
var LANGTalent_MostRecent = "Most recent:";
var LANGTalent_Add5Points = "Add 4 points";
var LANGTalent_Remove5Points = "Remove 4 points";
var LANGTalent_Druid_Balance = "Balance";
var LANGTalent_Druid_Feral = "Feral";
var LANGTalent_Druid_Restoration = "Restoration";
var LANGTalent_Deathknight_Blood = "Blood";
var LANGTalent_Deathknight_Frost = "Frost";
var LANGTalent_Deathknight_Unholy = "Unholy";
var LANGTalent_Hunter_BeastMastery = "Beast Mastery";
var LANGTalent_Hunter_Marksmanship = "Marksmanship";
var LANGTalent_Hunter_Survival = "Survival";
var LANGTalent_Mage_Arcane = "Arcane";
var LANGTalent_Mage_Fire = "Fire";
var LANGTalent_Mage_Frost = "Frost";
var LANGTalent_Paladin_Holy = "Holy";
var LANGTalent_Paladin_Protection = "Protection";
var LANGTalent_Paladin_Retribution = "Retribution";
var LANGTalent_Priest_Discipline = "Discipline";
var LANGTalent_Priest_Holy = "Holy";
var LANGTalent_Priest_Shadow = "Shadow";
var LANGTalent_Rogue_Assassination = "Assassination";
var LANGTalent_Rogue_Combat = "Combat";
var LANGTalent_Rogue_Subtlety = "Subtlety";
var LANGTalent_Shaman_Elemental = "Elemental";
var LANGTalent_Shaman_Enhancement = "Enhancement";
var LANGTalent_Shaman_Restoration = "Restoration";
var LANGTalent_Warlock_Affliction = "Affliction";
var LANGTalent_Warlock_Demonology = "Demonology";
var LANGTalent_Warlock_Destruction = "Destruction";
var LANGTalent_Warrior_Arms = "Arms";
var LANGTalent_Warrior_Fury = "Fury";
var LANGTalent_Warrior_Protection = "Protection";
var LANGTalent_HunterPet_Tenacity = "Tenacity";
var LANGTalent_HunterPet_Ferocity = "Ferocity";
var LANGTalent_HunterPet_Cunning = "Cunning";