function L(a){return a};
function tryStartup(){if(startup){startup()}}function myEval(A){eval(A)}function myEval(A){return eval(A)}function $(a){if(document.getElementById){$=function(b){return document.getElementById(b)};return $(a)}if(document.all){$=function(b){return document.all[b]};return $(a)}}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 IsNumeric(a){var d="0123456789.-",c=true,b;if(typeof a=="undefined"){return false}if(a==""){return false}for(i=0;i<a.length&&c==true;i++){b=a.charAt(i);if(d.indexOf(b)==-1){c=false}}return c}function IsPosInt(a){var d="0123456789",c=true,b;if(typeof a=="undefined"){return false}if(a==""){return false}for(i=0;i<a.length&&c==true;i++){b=a.charAt(i);if(d.indexOf(b)==-1){c=false}}return c}function nl2pnl(b){var a;if(b){b=escape(b);if(b.indexOf("%0D%0A")>-1){a=/%0D%0A/g}else{if(b.indexOf("%0A")>-1){a=/%0A/g}else{if(b.indexOf("%0D")>-1){a=/%0D/g}}}return unescape(b.replace(a,"\n"))}return b}function nl2br(c){var b,a;if(c){c=escape(c);if(c.indexOf("%0D%0A")>-1){b=/%0D%0A/g}else{if(c.indexOf("%0A")>-1){b=/%0A/g}else{if(c.indexOf("%0D")>-1){b=/%0D/g}}}a=unescape(c.replace(b,"<br />"));a=a.replace(/&lt;br\ \/&gt;/g,"<br />");return a}return c}function stripnl(b){var a;if(b){b=escape(b);if(b.indexOf("%0D%0A")>-1){a=/%0D%0A/g}else{if(b.indexOf("%0A")>-1){a=/%0A/g}else{if(b.indexOf("%0D")>-1){a=/%0D/g}}}return unescape(b.replace(a,""))}return b}function htmlspecialchars(a){if(a){a=a.replace(/\"/g,"&quot;");a=a.replace(/</g,"&lt;");a=a.replace(/>/g,"&gt;")}return a}function uni_unescape(a){return a.replace(/(%u([0-9A-F]{4}))/gi,"&#x$2;")}function stringFill(c,d){var a="";for(var b=0;b<d;b++){a+=c}return a}function ajax(b,c,e,a){var d=grabAjaxObj();if(!d){alert("It appears your browser does not support XMLHTTP requests. Some functions may not work correctly.");d=function(){return false};return false}d.onreadystatechange=function(){if(d.readyState==4){if(d.status==200){e(d.responseText)}else{a(d)}}};d.open("POST",b,true);d.setRequestHeader("Content-type","application/x-www-form-urlencoded");d.setRequestHeader("Content-length",c.length);d.setRequestHeader("Connection","close");d.send(c)}function defaultErrorHandler(a){switch(a.status){case 404:alert(L("This action could not be completed, 404: Unable to find page."));break;case 403:alert(L("This action could not be completed, 403: Access Denied."));break;case 500:alert(L("This action could not be completed, 500: Internal Server Error."));break;default:alert(L("This action could not be completed, Unknown error (")+a.status+")");break}}function grabAjaxObj(){var b;if(window.XMLHttpRequest){grabAjaxObj=function(){return new XMLHttpRequest()};return grabAjaxObj()}try{b=new ActiveXObject("Microsoft.XMLHTTP");grabAjaxObj=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}catch(a){b=new ActiveXObject("Msxml2.XMLHTTP");grabAjaxObj=function(){return new ActiveXObject("Msxml2.XMLHTTP")}}return b}function cleanData(a){var a=a.replace(/^\"/g,"");a=a.replace(/\\$/g,"");a=a.replace(/([^\\])\"/g,"$1");a=a.replace(/\\\"/g,'"');a=unescape(a);return a}function BindArgument(b,a){return function(){return b(a)}}function getPageSize(){var c,a,b,d;if(window.innerHeight&&window.scrollMaxY){c=document.body.scrollWidth;a=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;a=document.body.scrollHeight}else{c=document.body.offsetWidth;a=document.body.offsetHeight}}if(self.innerHeight){b=self.innerWidth;d=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else{if(document.body){b=document.body.clientWidth;d=document.body.clientHeight}}}if(a<d){pageHeight=d}else{pageHeight=a}if(c<b){pageWidth=b}else{pageWidth=c}arrayPageSize=new Array(pageWidth,pageHeight,b,d);return arrayPageSize}function getCookie(a){if(document.cookie.length>0){c_start=document.cookie.indexOf(a+"=");if(c_start!=-1){c_start=c_start+a.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1){c_end=document.cookie.length}return unescape(document.cookie.substring(c_start,c_end))}}return""}function setCookie(b,c,a){var d=new Date();d.setDate(d.getDate()+a);document.cookie=b+"="+escape(c)+((a==null)?"":";expires="+d.toGMTString())}function addListener(b,c,d,a){if(window.addEventListener){addListener=function(f,g,h,e){e=e||false;f.addEventListener(g,h,e);return true};return addListener(b,c,d,a)}else{if(window.attachEvent){addListener=function(f,g,h,e){f.attachEvent("on"+g,h);return true};return addListener(b,c,d,a)}else{addListener=function(f,g,h,e){return false};return addListener(b,c,d,a)}}}function ucFirst(a){var b=a.charAt(0);if(parseInt(a.length)==1){return b.toUpperCase()}else{return b.toUpperCase()+a.slice(1).toLowerCase()}}function trim(a){return a.replace(/(^\s+)([^\s]*)(\s+$)/,"$2")}function validEmail(a){var b=/^[A-Z0-9~!#$%^&*{}|\/=_'`?]?[A-Z0-9~!#$%^&*{}|\/=._'`\?+-]+[A-Z0-9~!#$%^&*{}|\/=_'`?-]?@([A-Z0-9._-]{0,}[A-Z_-]\.[A-Z]{2,3}|\[{0,1}[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\]{0,1})/i;return(null!=a.match(b))}function getNow(){return new Date().getTime()};
var execLogin=null,knownbaduser=new Array(),knownbadmail=new Array();function requestLogin(){var d=$("loginuser").value,b=$("loginpass").value,c="N",a="";if(d.length<1||d.length>100){a+=L("- Please enter a valid username.\n")}if(b.length<1||b.length>100){a+=L("- Please enter a valid password.\n")}if(d==b&&b!=""){a+=L("- This is not a valid password.\n")}if(a==""){setDisableLoginForm(true);formcontent="la=login&loginuser="+escape(d)+"&loginpass="+escape(b)+"&loginrem="+escape(c);ajax("ajax.php?a=l",formcontent,handleLoginResponds,defaultErrorHandler)}else{alert(a)}return false}function requstSignup(){var f=$("signupuser").value,e=$("signuppass1").value,d=$("signuppass2").value,a=$("signupmail").value,b="",c;if(f.length<1||f.length>100){b+=L("- Please enter a valid username.\n")}if(e.length<1||e.length>100){b+=L("- Please enter a valid password.\n")}if(e!=d&&e!=""){b+=L("- The passwords you entered did not match.\n")}if(f==e&&e!=""){b+=L("- This is not a valid password.\n")}for(c=0;c<knownbaduser.length;c++){if(knownbaduser[c]==f){b+=L("- This username is already in use.\n")}}if(a!=""){if(!validEmail(a)){b+=L("- This e-mail address is not valid.\n")}else{for(c=0;c<knownbadmail.length;c++){if(knownbadmail[c]==a){b+=L("- This e-mail address is already in use.\n")}}}}if(b==""){setDisableSignupForm(true);formcontent="la=signup&user="+escape(f)+"&pass="+escape(e)+"&mail="+escape(a);ajax("ajax.php?a=l",formcontent,handleSignupResponds,defaultErrorHandler)}else{alert(b)}}function handleSignupResponds(a){switch(a.substr(0,4)){case"suc:":curUser=myEval("("+a.substr(4)+")");$("usernamelabel").innerHTML=curUser.username;$("header_right_menu").style.display="";$("userava").className="noava";switch(curUser.avatar_type){case"0":$("userava").src="img/spacer.gif";break;case"1":$("userava").src="ava/"+curUser.avatar_arg+".jpg";break;case"2":$("userava").src=curUser.avatar_arg;break}previewBackground(curUser.background);closeSignupWindow();if(execLogin!=null){execLogin();execLogin=null}break;case"err:":alert(a.substr(4));break;case"dis:":alert(L("The server declined the request:\n")+a.substr(4));break;case"use:":switch(a.substr(4)){case"user":knownbaduser.push($("signupuser").value);alert(L("Your registration was not successful, username already in use."));break;case"mail":knownbadmail.push($("signupmail").value);alert(L("Your registration was not successful, e-mail address already in use."));break;case"both":knownbaduser.push($("signupuser").value);knownbadmail.push($("signupmail").value);alert(L("Your registration was not successful, username and e-mail address already in use."));break}break;default:alert(L("Your registration was not successful, the server was unable to handle your request. (")+a+")");break}setDisableSignupForm(false)}function handleLoginResponds(a){switch(a.substr(0,4)){case"suc:":curUser=myEval("("+a.substr(4)+")");$("usernamelabel").innerHTML=curUser.username;$("header_right_menu").style.display="";$("userava").className="noava";switch(curUser.avatar_type){case"0":$("userava").src="img/spacer.gif";break;case"1":$("userava").src="ava/"+curUser.avatar_arg+".jpg";break;case"2":$("userava").src=curUser.avatar_arg;break}previewBackground(curUser.background);closeLoginWindow();if(execLogin!=null){execLogin();execLogin=null}break;case"err:":alert(a.substr(4));break;default:alert(L("You have not been logged in, the server was unable to handle your request. (")+a+")");break}setDisableLoginForm(false)}function handleLogoutResponds(a){switch(a.substr(0,4)){case"err:":setCookie("ugsession","invalid");case"suc:":curUser={userID:"0"};$("usernamelabel").innerHTML=L("Guest (Click to login)");$("header_right_menu").style.display="none";$("userava").className="guestava";$("userava").src="img/spacer.gif";break}}function setDisableLoginForm(a){$("loginuser").disabled=a;$("loginpass").disabled=a;$("loginbutton").disabled=a;$("loginbutton").value=(a?L("Loading..."):L("Log-in"));$("loginbutton").className=(a?"loginbuttondis":"loginbutton");$("registerbutton").style.display=(a?"none":"");$("cancelbutton").style.display=(a?"none":"")}function setDisableSignupForm(a){$("signupuser").disabled=a;$("signuppass1").disabled=a;$("signuppass2").disabled=a;$("signupmail").disabled=a;$("signupbutton").disabled=a;$("signupbutton").value=(a?L("Loading..."):L("Save"));$("signupbutton").className=(a?"loginbuttondis":"loginbutton");$("signupcancelbutton").style.display=(a?"none":"")}function loginClick(){if(curUser.userID==0){return openLoginWindow()}}function menuClick(){if($("usermenu").style.display=="none"){$("usermenu").style.display=""}else{$("usermenu").style.display="none"}}function menuClose(){$("usermenu").style.display="none"}function doLogout(){ajax("ajax.php?a=l","la=logout",handleLogoutResponds,defaultErrorHandler);$("usermenu").style.display="none"}function searchMyTree(){top.location="bt.html#%26a"+curUser.username+"%7Cd1%7Ccall%7Cqt%3A0";$("usermenu").style.display="none"}function openLoginWindow(){blackBox();ajax("ajax.php?a=w","w=login",windowRespondsLogin,defaultErrorHandler)}function openSignupWindow(){blackBox();ajax("ajax.php?a=w","w=signup",windowRespondsSignup,defaultErrorHandler)}function openProfileWindow(){var b=getPageSize(),a=$("profilebox");blackBox();a.style.display="block";a.style.left=(b[2]/2)-(a.clientWidth/2)+"px";a.style.top=(b[3]/2)-(a.clientHeight/2)+"px"}function windowRespondsLogin(a){var b=document.createElement("div");b.innerHTML=a;document.body.appendChild(b);window.openLoginWindow=function(){blackBox();var d=$("loginbox");var c=getPageSize();d.style.display="block";d.style.left=(c[2]/2)-(d.clientWidth/2)+"px";d.style.top=(c[3]/2)-(d.clientHeight/2)+"px";setDisableLoginForm(false)};openLoginWindow()}function windowRespondsSignup(a){var b=document.createElement("div");b.innerHTML=a;document.body.appendChild(b);window.openSignupWindow=function(){blackBox();var d=$("signupbox");var c=getPageSize();d.style.display="block";d.style.left=(c[2]/2)-(d.clientWidth/2)+"px";d.style.top=(c[3]/2)-(d.clientHeight/2)+"px";setDisableSignupForm(false)};openSignupWindow()}function blackBox(){var b=getPageSize(),a=$("blackbox");a.style.display="block";a.style.height=b[1]+"px"}function closeLoginWindow(){$("loginbox").style.left="-100%";setDisableLoginForm(false);$("blackbox").style.display="none"}function closeProfileWindow(){$("profilebox").style.left="-100%";setDisableLoginForm(false);$("blackbox").style.display="none"}function signupButton(){$("loginbox").style.left="-100%";setDisableLoginForm(false);openSignupWindow()}function closeSignupWindow(){$("signupbox").style.left="-100%";setDisableSignupForm(false);$("blackbox").style.display="none"}function previewBackground(a){switch(a){case 0:document.body.style.backgroundImage="url(/img/arthas.png)";document.body.style.backgroundPosition="center 130px";break;case 1:document.body.style.backgroundImage="url(/img/illidan.png)";document.body.style.backgroundPosition="center 130px";break;case 2:document.body.style.backgroundImage="url(/img/illidan.png)";document.body.style.backgroundPosition="left 130px";break;case 3:document.body.style.backgroundImage="url(/img/illidan.png)";document.body.style.backgroundPosition="right 130px";break;case 4:document.body.style.backgroundImage="url(/img/kaelthasL.png)";document.body.style.backgroundPosition="left 130px";break;case 5:document.body.style.backgroundImage="url(/img/draeneiL.png)";document.body.style.backgroundPosition="left 130px";break;case 6:document.body.style.backgroundImage="url(/img/kaelthasR.png)";document.body.style.backgroundPosition="right 130px";break;case 7:document.body.style.backgroundImage="url(/img/draeneiR.png)";document.body.style.backgroundPosition="right 130px";break;case 8:document.body.style.backgroundImage="none";break}};
function TalentObj(a,d,e){this.tree=a;this.pos=e;this.row=d;this.talentname=L("Unused");this.desc=L("This talent is currently unused. Click the talent in edit mode to start using it.");this.numRanks=0;this.curRank=0;this.icon="Temp.jpg";this.reqs=new Array();this.type="empty";this.ranks=new Array(6);for(var c=0;c<=5;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.pos-1)+treel[a])+"px";this.butbg.style.top=(5+65*(this.row-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.pos-1)+treel[a])+"px";this.butbg.style.top=(5+65*(this.row-1)+treet[a])+"px";this.redraw("")};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.ActiveSpellType=="casttime")){this.ActiveSpellType="instant"}this.ActiveCastTime=a};TalentObj.prototype.setType=function setType(a){a=a.toLowerCase();if(a==this.type){return}if(this.row>getMaxi()){a="hidden"}switch(a.toLowerCase()){case"e":case"empty":this.setIcon("Temp.jpg");this.setNumRanks(0);this.setCurRank(0);this.removeReqs();this.talentname=L("Unused");this.desc=L("This talent is currently unused. Click the talent in edit mode to start using it.");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.numRanks){this.curRank=this.numRanks}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>5){d=1}var b=0,a=this.desc.indexOf("@",0),c=nl2br(htmlspecialchars(this.desc));while(a!=-1){b++;a=this.desc.indexOf("@",(a+1));if(b>10){return this.desc}}for(a=0;a<b;a++){c=c.replace(/@/,this.getRank(d,a))}return c};TalentObj.prototype.getPassiveDescEdit=function getPassiveDescEdit(d){var c=0,b=this.desc.indexOf("@",0);title=nl2br(htmlspecialchars(this.desc)),replacement="[";while(b!=-1){c++;b=this.desc.indexOf("@",(b+1));if(c>10){return this.desc}}for(b=0;b<c;b++){for(var a=1;a<=this.numRanks;a++){if(a!=1){replacement+="|"}if(this.curRank==a){replacement+="<em>"+this.getRank(a,b)+"</em>"}else{replacement+=this.getRank(a,b)}}replacement+="]";title=title.replace(/@/,replacement)}return title};TalentObj.prototype.getPassiveRanks=function getPassiveRanks(){var c=0,b=this.desc.indexOf("@",0),a;result="";while(b!=-1){c++;b=this.desc.indexOf("@",(b+1));if(c>10){return""}}for(a=0;a<c;a++){for(b=1;b<=this.numRanks;b++){if(result!=""){result+="|"}result+=this.getRank(b,a)}}return this.numRanks+result};TalentObj.prototype.getReqs=function getReqs(a){return this.reqs.join("|")};TalentObj.prototype.addReq=function addReq(b){this.reqs.push(b);var a=translateSticky(b);spawnArrow(this.tree,a[1],a[2],this.row,this.pos)};TalentObj.prototype.isReq=function isReq(b){var a;for(a=0;a<this.reqs.length;a++){if(this.reqs[a]==b){return true}}return false};TalentObj.prototype.removeReq=function removeReq(c){var b,a;for(var b=0;b<this.reqs.length;b++){if(this.reqs[b]!=c){continue}var a=translateSticky(this.reqs[b]);removeArrow(this.tree,a[1],a[2],this.row,this.pos);this.reqs.slice(b,1);return}};TalentObj.prototype.removeReqs=function removeReqs(){var b,a;for(var b=0;b<this.reqs.length;b++){a=translateSticky(this.reqs[b]);removeArrow(this.tree,a[1],a[2],this.row,this.pos)}this.reqs=new Array()};TalentObj.prototype.reqsAreOk=function reqsAreOk(){var d,b,a,e=(rowpoints*(this.row-1)),c=0;for(d=0;d<this.reqs.length;d++){a=translateSticky(this.reqs[d]);if(!treec[this.tree][a[1]][a[2]].isMaxRank()){return false}}if(e>0){for(d=1;d<this.row;d++){for(b=1;b<=4;b++){c+=parseInt(treec[this.tree][d][b].curRank)}}if(c<e){return false}}return true};TalentObj.prototype.addPoint=function addPoint(){var d=0,a=getMaxi(),c,b;if((this.curRank<this.numRanks)&&(pointlock==0||((((treep[1]+treep[2]+treep[3]))*levelBetweenPoints)+startLevel)<=pointlock)){this.setCurRank(this.curRank+1);this.redraw(false);for(c=1;c<=a;c++){for(b=1;b<=4;b++){d+=parseInt(treec[this.tree][c][b].curRank)}}treep[this.tree]=d;if((pointlock>0)&&((treep[1]+treep[2]+treep[3])>=pointlock)){redrawAll()}else{for(c=1;c<=a;c++){for(b=1;b<=4;b++){treec[this.tree][c][b].redraw(false)}}}return true}return false};TalentObj.prototype.subPoint=function subPoint(){var c=getMaxi(),e,d,b,a;if(this.curRank>0){this.setCurRank(this.curRank-1);treep[this.tree]--;for(e=this.row;e<=c;e++){for(d=1;d<=4;d++){if(treec[this.tree][e][d].curRank>0&&!treec[this.tree][e][d].reqsAreOk()){this.setCurRank(this.curRank+1);treep[this.tree]++;for(b=this.row;b<=e;b++){for(a=1;a<=4;a++){treec[this.tree][b][a].redraw(false)}}return false}else{treec[this.tree][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(){var e=this.ActiveCost,d=e.substring(0,1),c=e.substring(1,2),a=e.substring(2,3),b="";if(this.ActiveCostType=="runes"){if(parseInt(d)>0){b+=d+'<img src="img/spacer.gif" width="13" height="13" alt="Blood Runes" class="runeB" /> '}if(parseInt(c)>0){b+=c+'<img src="img/spacer.gif" width="13" height="13" alt="Unholy Runes" class="runeF" /> '}if(parseInt(a)>0){b+=a+'<img src="img/spacer.gif" width="13" height="13" alt="Frost Runes" class="runeU" /> '}return b}else{return htmlspecialchars(this.ActiveCost)+""+htmlspecialchars(this.getReadCostType())}};TalentObj.prototype.getReadCostType=function getReadCostType(){if(this.ActiveCostType=="procmana"){return L("% of base mana")}if(this.ActiveCostType=="procrmana"){return L("% of remaining mana")}if(this.ActiveCostType=="runic"){return L(" Runic Power")}return" "+L(ucFirst(this.ActiveCostType))};TalentObj.prototype.getReadRange=function getReadRange(){if(this.hasNoRange()){return""}if(this.ActiveRangeMin==0&&this.ActiveRangeMax>0){return this.ActiveRangeMax+L(" yd range")}if(this.ActiveRangeMin==this.ActiveRangeMax){return this.ActiveRangeMax+L(" yd range")}return this.ActiveRangeMin+"-"+this.ActiveRangeMax+L(" yd range")};TalentObj.prototype.getReadCasttime=function getReadCasttime(){if((this.ActiveCastTime==0)&&(this.ActiveSpellType=="casttime")){this.ActiveSpellType="instant"}if(this.ActiveSpellType=="channeled"){return L("Channeled")}if(this.ActiveSpellType=="nextmelee"){return L("Next Melee")}if(this.ActiveCost>0){if(this.ActiveSpellType=="instant"&&this.ActiveCostType=="mana"){return L("Instant cast")}if(this.ActiveSpellType=="instant"){return L("Instant")}if(this.ActiveCastTime<60){return this.ActiveCastTime+L(" sec cast")}if(this.ActiveCastTime%60==0){return parseInt(this.ActiveCastTime/60)+L(" min cast")}if(parseInt(this.ActiveCastTime%60)<10){return parseInt(this.ActiveCastTime/60)+L(" min ")+parseInt(this.ActiveCastTime%60)+L(" sec cast")}return parseInt(this.ActiveCastTime/60)+L(" min ")+parseInt(this.ActiveCastTime%60)+L(" sec cast")}else{if(this.ActiveSpellType=="instant"){return L("Instant")}if(this.ActiveCastTime<60){return this.ActiveCastTime+L(" sec")}if(this.ActiveCastTime%60==0){return parseInt(this.ActiveCastTime/60)+L(" min")}if(parseInt(this.ActiveCastTime%60)<10){return parseInt(this.ActiveCastTime/60)+L(" min ")+parseInt(this.ActiveCastTime%60)+L(" sec")}return parseInt(this.ActiveCastTime/60)+L(" min ")+parseInt(this.ActiveCastTime%60)+L(" sec")}};TalentObj.prototype.getReadCooldown=function getReadCooldown(){if(this.ActiveCooldown<60){return this.ActiveCooldown+L(" sec")}if(this.ActiveCooldown%60==0){return parseInt(this.ActiveCooldown/60)+L(" min")}if(parseInt(this.ActiveCooldown%60)<10){return parseInt(this.ActiveCooldown/60)+L(" min ")+parseInt(this.ActiveCooldown%60)+L(" sec")}return parseInt(this.ActiveCooldown/60)+L(" min ")+parseInt(this.ActiveCooldown%60)+L(" sec")};TalentObj.prototype.doTooltip=function doTooltip(){var e="<strong>"+htmlspecialchars(this.talentname)+"</strong><br />",c=(rowpoints*(this.row-1)),b,a,d,f;if(this.numRanks>0){e+=L("Rank ")+this.curRank+"/"+this.numRanks+"<br />"}if(c!=0){if(treep[this.tree]>=c){e+='<span class="reqmet">'}else{e+='<span class="reqnotmet">'}e+=L("Requires ")+(rowpoints*(this.row-1))+L(" points in ")+treen[this.tree]+L(" Talents.")+"</span><br />"}for(b=0;b<this.reqs.length;b++){a=translateSticky(this.reqs[b]);d=a[1];f=a[2];if(!treec[this.tree][d][f].isMaxRank()){e+='<span class="reqnotmet">'}else{e+='<span class="reqmet">'}e+=L("Requires ")+treec[this.tree][d][f].numRanks+" ";if(treec[this.tree][d][f].numRanks==1){e+=L("point")}else{e+=L("points")}e+=L(" in ")+htmlspecialchars(treec[this.tree][d][f].talentname)+".</span><br />"}if(this.type=="active"){if(this.ActiveCost>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.ActiveCooldown>0){e+='<span class="hright">'+htmlspecialchars(this.getReadCooldown())+L(" cooldown")+"</span>"}}else{if(this.hasNoRange()){e+='<span class="hleft">'+htmlspecialchars(this.getReadCasttime())+"</span>";if(this.ActiveCooldown>0){e+='<span class="hright">'+htmlspecialchars(this.getReadCooldown())+L(" cooldown")+"</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.ActiveCooldown>0){e+='<span class="hright">'+htmlspecialchars(this.getReadCooldown())+L(" cooldown")+"</span>"}}}e+='<div class="cb"></div>';if(this.ActiveReagents!=""){e+='<span class="left">'+L("Reagents: ")+uni_unescape(htmlspecialchars(this.ActiveReagents))+"</span>"}if(this.ActiveRequires!=""){e+='<span class="left">'+L("Requires ")+uni_unescape(htmlspecialchars(this.ActiveRequires))+"</span>"}e+='<div class="cb"></div>';e+='<span class="desc">'+nl2br(htmlspecialchars(this.desc))+"</span>"}else{if(this.type=="passive"){if(mode=="preview"){e+='<span class="desc">'+this.getPassiveDesc(this.curRank)+"</span>"}else{e+='<span class="desc">'+this.getPassiveDescEdit()+"</span>"}}else{e+='<span class="desc">'+nl2br(htmlspecialchars(this.desc))+"</span>"}}tooltipcelm.innerHTML=e;showTooltip(this.butbg);tooltipcelm.innerHTML=e};TalentObj.prototype.redraw=function redraw(b){var a;if(this.type=="hidden"){this.hideButton();this.butc.innerHTML="";return}if(mode=="preview"){if(this.type=="empty"){this.hideButton();this.butc.innerHTML="";return}else{this.showButton()}if(this.reqsAreOk()){if(pointlock>0&&((((treep[1]+treep[2]+treep[3])*levelBetweenPoints)+(startLevel-1))>=pointlock)&&this.curRank==0){this.butimg.style.backgroundPosition="0px 0px";setOpacity(this.butbg,10);this.butc.innerHTML="";a=this.icon.replace(/Spells\//gi,"SpellsGrey/");this.butbg.style.backgroundImage="url("+imagepath+a+")"}else{if(this.numRanks>0){this.butc.innerHTML=this.curRank+"/"+this.numRanks}else{this.butc.innerHTML="X"}if(this.curRank==this.numRanks){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.icon+")"}}else{this.butimg.style.backgroundPosition="0px 0px";setOpacity(this.butbg,10);this.butc.innerHTML="";a=this.icon.replace(/Spells\//gi,"SpellsGrey/");this.butbg.style.backgroundImage="url("+imagepath+a+")"}}else{this.showButton();this.butbg.style.backgroundImage="url("+imagepath+this.icon+")";if(curtree==this.tree&&currow==this.row&&curpos==this.pos){this.butimg.style.backgroundPosition="-112px 0px";this.butc.style.color="#0000FE";setOpacity(this.butbg,10);switch(this.type){case"active":this.butc.innerHTML="A";break;case"passive":this.butc.innerHTML="P"+this.numRanks;break;case"empty":this.butc.innerHTML="X";break;default:this.butc.innerHTML="";break}return}if(b){this.butimg.style.backgroundPosition="-168px 0px";this.butc.style.color="#FF3900";setOpacity(this.butbg,10);switch(this.type){case"active":this.butc.innerHTML="A";break;case"passive":this.butc.innerHTML="P"+this.numRanks;break;case"empty":this.butc.innerHTML="X";break;default:this.butc.innerHTML="";break}return}switch(this.type){case"active":this.butimg.style.backgroundPosition="-56px 0px";this.butc.style.color="#2EFF00";setOpacity(this.butbg,10);this.butc.innerHTML="A";break;case"passive":this.butimg.style.backgroundPosition="-224px 0px";this.butc.style.color="#FFD100";setOpacity(this.butbg,10);this.butc.innerHTML="P"+this.numRanks;break;default:case"empty":this.butimg.style.backgroundPosition="0px 0px";setOpacity(this.butbg,3);this.butc.innerHTML="";break}}};TalentObj.prototype.reposition=function reposition(){var b,a,c,d;this.butbg.style.left=(25+65*(this.pos-1)+treel[this.tree])+"px";this.butbg.style.top=(5+65*(this.row-1)+treet[this.tree])+"px";for(b=0;b<this.reqs.length;b++){a=translateSticky(this.reqs[b]);c=a[1];d=a[2];removeArrow(this.tree,c,d,this.row,this.pos);spawnArrow(this.tree,c,d,this.row,this.pos)}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.curRank==this.numRanks)};TalentObj.prototype.getActiveSave=function getActiveSave(){var a=this.ActiveCost;a+="|"+this.ActiveCostType;a+="|"+this.ActiveSpellType;a+="|"+this.ActiveCastTime;a+="|"+this.ActiveCooldown;a+="|"+this.ActiveRangeMin;a+="|"+this.ActiveRangeMax;a+="|"+this.ActiveReagents;a+="|"+this.ActiveRequires;return htmlspecialchars(a)};
var passiveCurrentNumber=-1;function openTalentWindow(){var m=$("adjustTalent"),o=0,f=$("treebox"),c=((document.body.clientWidth)?document.body.clientWidth:window.innerWidth),p=((obj_left(f)+f.offsetWidth+2)),r=$("talentwindowreqs"),l,s,g,e,a,q,d=false,i,h,b;closeSaveWindow();curtree=parseInt(curtree);currow=parseInt(currow);curpos=parseInt(curpos);if(c>=(p+300)){o=p}else{switch(curtree){case 1:o=obj_left($("tree2"));break;case 2:o=obj_left($("tree1"));break;case 3:o=obj_left($("tree2"));break}}m.style.left=o+"px";while(r.firstChild){r.removeChild(r.firstChild)}l=(rowpoints*(currow-1));if(l!=0){s=r.appendChild(document.createElement("tr"));g=s.appendChild(document.createElement("td"));g.appendChild(document.createTextNode(" "+L("Tree Requirement:")+" "));e=s.appendChild(document.createElement("td"));e.appendChild(document.createTextNode(L("Requires ")+(rowpoints*(currow-1))+L(" points in ")+treen[curtree]+L(" Talents.")))}if(currow>1){s=r.appendChild(document.createElement("tr"));g=s.appendChild(document.createElement("td"));g.appendChild(document.createTextNode(" "+L("Lower Requirement:")+" "));e=s.appendChild(document.createElement("td"));a=document.createElement("select");a.id="ptwr1r";q=document.createElement("option");q.value="0";q.text="None";try{a.add(q,null)}catch(n){a.add(q)}for(i=1;i<currow;i++){for(h=1;h<=4;h++){if(checkArrow(curtree,i,h,currow,curpos,true)||treec[curtree][currow][curpos].isReq(treec[curtree][i][h].getShortID())){b=document.createElement("option");b.value=treec[curtree][i][h].getShortID();b.text=treec[curtree][i][h].talentname;if(treec[curtree][currow][curpos].isReq(treec[curtree][i][h].getShortID())){b.selected=true;d=true}try{a.add(b,null)}catch(n){a.add(b)}}}}if(!d){q.selected=true}e.appendChild(a)}if(curpos<4){s=r.appendChild(document.createElement("tr"));g=s.appendChild(document.createElement("td"));g.appendChild(document.createTextNode(" "+L("Right Requirement:")+" "));e=s.appendChild(document.createElement("td"));a=document.createElement("select");a.id="ptwr2r";q=document.createElement("option");q.value="0";q.text="None";try{a.add(q,null)}catch(n){a.add(q)}d=false;for(h=(curpos+1);h<=4;h++){if(checkArrow(curtree,currow,h,currow,curpos,true)||treec[curtree][currow][curpos].isReq(treec[curtree][currow][h].getShortID())){b=document.createElement("option");b.value=treec[curtree][currow][h].getShortID();b.text=treec[curtree][currow][h].talentname;if(treec[curtree][currow][curpos].isReq(treec[curtree][currow][h].getShortID())){b.selected=true;d=true}try{a.add(b,null)}catch(n){a.add(b)}}}if(!d){q.selected=true}e.appendChild(a)}if(curpos>1){s=r.appendChild(document.createElement("tr"));g=s.appendChild(document.createElement("td"));g.appendChild(document.createTextNode(" "+L("Left Requirement:")+" "));e=s.appendChild(document.createElement("td"));a=document.createElement("select");a.id="ptwr3r";q=document.createElement("option");q.value="0";q.text="None";try{a.add(q,null)}catch(n){a.add(q)}d=false;for(h=1;h<curpos;h++){if(checkArrow(curtree,currow,h,currow,curpos,true)||treec[curtree][currow][curpos].isReq(treec[curtree][currow][h].getShortID())){var b=document.createElement("option");b.value=treec[curtree][currow][h].getShortID();b.text=treec[curtree][currow][h].talentname;if(treec[curtree][currow][curpos].isReq(treec[curtree][currow][h].getShortID())){b.selected=true;d=true}try{a.add(b,null)}catch(n){a.add(b)}}}if(!d){q.selected=true}e.appendChild(a)}switch(treec[curtree][currow][curpos].type){default:case"hidden":closeWindow();break;case"empty":defaultFields();break;case"active":loadTalentCommon(treec[curtree][currow][curpos]);loadTalentActive(treec[curtree][currow][curpos]);makeActive();break;case"passive":loadTalentCommon(treec[curtree][currow][curpos]);loadTalentPassive(treec[curtree][currow][curpos]);makePassive();break}m.style.display=""}function loadTalentCommon(a){$("talentName").value=a.talentname;setChangeTalentIconAbsolute(a.icon)}function loadTalentPassive(a){$("talentpDescription").value=a.desc;checkPassiveDescription()}function loadTalentActive(d){var e=d.ActiveCost,c,b,a;$("talentCost").value=e;$("talentCostType").value=d.ActiveCostType;switch(d.ActiveCostType){case"runes":$("talentCost").value="0";c=e.substring(0,1);b=e.substring(1,2);a=e.substring(2,3);$("talentCost1").value=c;$("talentCost2").value=b;$("talentCost3").value=a;break;default:$("talentCost").value=e;$("talentCost1").value="0";$("talentCost2").value="0";$("talentCost3").value="0";break}$("talentCasttime").value=d.ActiveCastTime;$("talentCooldown").value=d.ActiveCooldown;$("talentRangemin").value=d.ActiveRangeMin;$("talentRangemax").value=d.ActiveRangeMax;$("talentReagent").value=d.ActiveReagents;$("talentRequires").value=d.ActiveRequires;$("talentDescription").value=d.desc;$("talentDescription").value=d.desc;$("talentSpellType").value=d.ActiveSpellType;showHideCastTime($("talentSpellType"))}function defaultFields(){var a=$("talentmodea");a.innerHTML='<a href="javascript:makeActive();">'+L("Active")+"</a>";a=$("talentmodep");a.innerHTML='<a href="javascript:makePassive();">'+L("Passive")+"</a>";a=$("adjusttalentActive");a.style.display="none";a=$("adjusttalentPassive");a.style.display="none";$("talentName").value="";setChangeTalentIconAbsolute("Temp.jpg");$("talentpDescription").value="";$("talentCost").value="0";switch(currentClass){case"warrior":$("talentCostType").value="rage";$("talentSpellType").value="instant";$("talentRangemax").value="5";break;case"rogue":$("talentCostType").value="energy";$("talentSpellType").value="instant";$("talentRangemax").value="5";break;case"deathknight":$("talentCostType").value="runes";$("talentSpellType").value="instant";$("talentRangemax").value="0";break;case"pet":$("talentCostType").value="focus";$("talentSpellType").value="instant";$("talentRangemax").value="5";break;default:$("talentCostType").value="mana";$("talentSpellType").value="casttime";$("talentRangemax").value="0";break}$("talentCasttime").value="0";$("talentCooldown").value="0";$("talentRangemin").value="0";$("talentReagent").value="";$("talentRequires").value="";$("talentDescription").value="";$("talentCost1").value="0";$("talentCost2").value="0";$("talentCost3").value="0";showHideCastTime($("talentSpellType"));showHideCostType()}function validateCommon(){var a="",b=$("adjusttalentIMG");if($("talentName").value.length<1){a+=L("- Please enter a talentname\n")}if(b.src.substr((b.src.lastIndexOf("/")+1))=="Temp.jpg"){b.src="http://www.war-tools.com/Spells/Temp.jpg"}return a}function validateActive(){var a=validateCommon();showHideCastTime($("talentSpellType"));if(!IsNumeric($("talentCost").value)){a+=L("- Please enter a numeric Cost\n")}if(!IsNumeric($("talentCasttime").value)){a+=L("- Please enter a numeric Cast time\n")}if(!IsNumeric($("talentCooldown").value)){a+=L("- Please enter a numeric Cooldown\n")}if(!IsNumeric($("talentRangemin").value)){a+=L("- Please enter a numeric minimum range\n")}if(!IsNumeric($("talentRangemax").value)){a+=L("- Please enter a numeric maximum range\n")}if($("talentCostType").value==""){a+=L("- Please select a cost Type\n")}if($("talentDescription").value==""){a+=L("- Please enter a description\n")}return a}function validatePassive(){var a=validateCommon(),d=$("talentpDescription"),c=0,b=d.value.indexOf("@",0);if(d.value.length<1){a+=L("- Please enter a description\n")}else{while(b!=-1){c++;b=d.value.indexOf("@",(b+1))}if(c>10){a+=L("- Please enter a valid description, You can only have a maximum of 10 variable fields (You have ")+c+") \n"}else{if(c>0&&!validateRankRow(1)){a+=L("- Please enter atleast one valid set of ranks\n")}}}return a}function makeActive(){var a=validateCommon(),b=$("talentmodea");if(a!=""){alert(a);return}b.innerHTML="<strong>"+L("Active")+"</strong>";b=$("talentmodep");b.innerHTML='<a href="javascript:makePassive();">'+L("Passive")+"</a>";b=$("adjusttalentActive");b.style.display="";b=$("adjusttalentPassive");b.style.display="none";showHideCostType()}function makePassive(){var a=validateCommon(),b=$("talentmodea");if(a!=""){alert(a);return}b.innerHTML='<a href="javascript:makeActive();">'+L("Active")+"</a>";b=$("talentmodep");b.innerHTML="<strong>"+L("Passive")+"</strong>";b=$("adjusttalentActive");b.style.display="none";b=$("adjusttalentPassive");b.style.display="";checkPassiveDescription()}function deleteSelection(){var c=curtree+""+currow+""+curpos,b,a;for(b=currow;b<=9;b++){for(a=1;a<=4;a++){if(treec[curtree][b][a].isReq(c)){treec[curtree][b][a].removeReq(c)}}}treec[curtree][currow][curpos].setType("Empty");treec[curtree][currow][curpos].redraw(false);closeWindow()}function checkPassiveDescription(){var g=$("talentpDescription"),f=0,d=g.value.indexOf("@",0),e=$("talentPRows"),l,b,a,k,c,h;while(d!=-1){f++;d=g.value.indexOf("@",(d+1))}passiveCurrentNumber=f;if(f>10){alert(L("You can only have a maximum of 10 variable fields (You have ")+f+")")}else{while(e.firstChild){e.removeChild(e.firstChild)}for(d=1;d<=rowpoints;d++){l=e.appendChild(document.createElement("tr"));b=l.appendChild(document.createElement("td"));k=b.appendChild(document.createElement("abbr"));k.appendChild(document.createTextNode(L("Rank ")+d));k.title="";k.id="ptr"+d;k.onmouseover=function(){updateExample(this)};a=l.appendChild(document.createElement("td"));for(c=0;c<f;c++){h=document.createElement("input");h.type="text";h.id="ptr"+d+"r"+c;h.value=treec[curtree][currow][curpos].getRank(d,c);h.size=3;h.maxlength=4;a.appendChild(h)}}}}function updateExample(e){var d=$("talentpDescription"),b=0,a=d.value.indexOf("@",0),c=d.value;formelm;while(a!=-1){b++;a=d.value.indexOf("@",(a+1));if(b>10){e.title=L("Invalid Description");return}}for(a=0;a<b;a++){formelm=$(e.id+"r"+a);if(validateField(formelm.value)){c=c.replace(/@/,formelm.value)}else{c=L("Unused");break}}e.title=c}function validateField(a){if(a==""){return false}return(IsNumeric(a))}function setCommon(b){var a=$("adjusttalentIMG");b.setIcon(a.src);a=$("talentName");b.talentname=a.value;b.removeReqs();if(currow>1){a=$("ptwr1r");if(a.value!=0){b.addReq(a.value)}}if(curpos<4){a=$("ptwr2r");if(a.value!=0){b.addReq(a.value)}}if(curpos>1){a=$("ptwr3r");if(a.value!=0){b.addReq(a.value)}}}function SetPassiveTalent(){var g=$("talentpDescription"),d=0,c=g.value.indexOf("@",0),b="",f=treec[curtree][currow][curpos],e,d,a;while(c!=-1){d++;c=g.value.indexOf("@",(c+1))}if((passiveCurrentNumber!=d)&&(d!=0)){if(confirm(L("You must define values before adding this talent. Would you like to do this right now?"))){checkPassiveDescription()}return}if(b!=""){alert(b);return}f.setType("passive");setCommon(f);formelm=$("talentpDescription");f.desc=formelm.value;e=parseInt(countPassiveRanks());f.setNumRanks(e);for(c=1;c<=e;c++){d=0;a=formelm.value.indexOf("@",0);while(a!=-1){d++;a=formelm.value.indexOf("@",(a+1));if(d>10){break}}for(a=0;a<d;a++){g=$("ptr"+c+"r"+a);if(validateField(g.value)){f.setRank(c,a,g.value)}}}closeWindow()}function SetActiveTalent(){var a=validateActive(),b=treec[curtree][currow][curpos];if(a!=""){alert(a);return}b.setType("active");setCommon(b);b.desc=$("talentDescription").value;switch($("talentCostType").value){case"runes":b.ActiveCost=$("talentCost1").value+""+$("talentCost2").value+""+$("talentCost3").value;break;default:b.ActiveCost=$("talentCost").value;break}b.ActiveCostType=$("talentCostType").value;b.setActiveCastTime($("talentCasttime").value);b.ActiveCooldown=$("talentCooldown").value;b.ActiveRangeMin=$("talentRangemin").value;b.ActiveRangeMax=$("talentRangemax").value;b.ActiveReagents=$("talentReagent").value;b.ActiveRequires=$("talentRequires").value;b.ActiveSpellType=$("talentSpellType").value;closeWindow()}function closeWindow(){var c=$("adjusttalentActive"),b=$("adjusttalentPassive"),a=$("adjustTalent");a.style.display="none";c.style.display="none";b.style.display="none";clearSelection()}function countPassiveRanks(){var c=1,d=$("talentpDescription"),b=0,a=d.value.indexOf("@",0);while(a!=-1){b++;a=d.value.indexOf("@",(a+1));if(b>10){return 1}}if(b<=0){return 1}while(validateRankRow(c)){c++}return Math.max(1,(c-1))}function validateRankRow(c){var d=$("talentpDescription"),b=0,a=d.value.indexOf("@",0),e;if(c>rowpoints){return false}while(a!=-1){b++;a=d.value.indexOf("@",(a+1));if(b>10){return false}}for(a=0;a<b;a++){e=$("ptr"+c+"r"+a);if(!validateField(e.value)){return false}}return true}function showHideCastTime(b){var a=$("talentSpellTypeCT");if(b.value=="casttime"){a.style.display=""}else{a.style.display="none"}}function switchTalent(){var c=$("adjusttalentActive"),b=$("adjusttalentPassive"),a=$("adjustTalent");if(!confirm(L("Moving a talent will remove any requirements from this talent AND the target talent. If you wish to continue, please select the talent to switch with."))){return}a.style.display="none";c.style.display="none";b.style.display="none";switchActive=true}function showHideCostType(){switch($("talentCostType").value){case"mana":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("mana");break;case"procmana":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("% of base mana");break;case"procrmana":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("% of remaining mana");break;case"rage":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("Rage");break;case"energy":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("Energy");break;case"health":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("Health");break;case"focus":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("Focus");break;case"runic":$("cost_normal").style.display="";$("cost_runes").style.display="none";$("costtype_name").innerHTML=L("Runic Power");break;case"runes":$("cost_normal").style.display="none";$("cost_runes").style.display="";break}};
function spawnArrow(j,h,f,c,a){var e=$("tree"+j),b=(a-f),g,d;j=parseInt(j);h=parseInt(h);f=parseInt(f);c=parseInt(c);a=parseInt(a);if(!checkArrow(j,h,f,c,a,false)){return false}e=$("tree"+j);b=(a-f);if(b>0){g=e.appendChild(document.createElement("div"));if(h<c){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.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"+j+h+f+c+a}if(b<0){possideways=b*-1;g=e.appendChild(document.createElement("div"));if(h<c){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.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"+j+h+f+c+a}if(h<c){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"+j+h+f+c+a+"d"}b=(f-a);if(b<0){b*=-1;b-=1;for(d=0;d<b;d++){treec[j][h][f+(b-d)].setType("hidden");treec[j][h][f+(b-d)].redraw(false)}}else{b-=1;for(d=0;d<b;d++){treec[j][h][a-(d-b)].setType("hidden");treec[j][h][a-(d-b)].redraw(false)}}if(h<c){if((f-a)!=0){treec[j][h][a].setType("hidden");treec[j][h][a].redraw(false)}for(d=1;d<(c-h);d++){treec[j][h+d][a].setType("hidden");treec[j][h+d][a].redraw(false)}}}function checkArrow(j,h,f,c,a,e){var b,d=0;j=parseInt(j);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(j,h,f)){return false}if(!validArrowTalent(j,c,a)){if(!e){return false}}b=(f-a);if(b<0){b*=-1;b-=1;while(d<b){if(canArrow(j,h,f+(b-d))){d++}else{return false}}}else{b-=1;while(d<b){if(canArrow(j,h,a-(d-b))){d++}else{return false}}}if(h<c){if(!canArrow(j,h,a)&&((f-a)!=0)){return false}var g=c-h;for(d=1;d<g;d++){if(!canArrow(j,(h+d),a)){return false}}}return true}function removeArrow(j,h,f,c,a){var g=$("arrow"+j+h+f+c+a),b=(f-a),e;j=parseInt(j);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&&g){g.parentNode.removeChild(g)}if(h<c){g=$("arrow"+j+h+f+c+a+"d");if(g){var d=g.parentNode;d.removeChild(g)}}if(b<0){b*=-1;b-=1;for(e=0;e<b;e++){treec[j][h][f+(b-e)].setType("empty");treec[j][h][f+(b-e)].redraw(false)}}else{b-=1;for(e=0;e<b;e++){treec[j][h][a-(e-b)].setType("empty");treec[j][h][a-(e-b)].redraw(false)}}if(h<c){if((f-a)!=0){treec[j][h][a].setType("empty");treec[j][h][a].redraw(false)}for(e=1;e<(c-h);e++){treec[j][h+e][a].setType("empty");treec[j][h+e][a].redraw(false)}}}function canArrow(a,b,c){a=parseInt(a);b=parseInt(b);c=parseInt(c);if(treec[a][b][c].type=="active"){return false}if(treec[a][b][c].type=="passive"){return false}if(treec[a][b][c].type=="hidden"){return false}return true}function validArrowTalent(a,b,c){a=parseInt(a);b=parseInt(b);c=parseInt(c);if(treec[a][b][c].type=="active"){return true}if(treec[a][b][c].type=="passive"){return true}return false};
function createTreeSum(){var a="",b,d,c;for(b=1;b<=3;b++){for(d=1;d<=getMaxi();d++){for(c=1;c<=4;c++){a+=createTalentSum(b,d,c)}}}return a}function createTalentSum(b,d,e){var c=treec[b][d][e],a=b+""+d+""+e+"#";if(c.type=="hidden"||c.type=="empty"){return""}if(c.type=="active"){a+="A#"}else{a+="P#"}a+='"'+htmlspecialchars(c.talentname)+'"#';a+='"'+htmlspecialchars(c.icon.substr((c.icon.lastIndexOf("/")+1)))+'"#';a+='"'+nl2br(htmlspecialchars(c.desc))+'"#';a+=c.getReqs()+"#";if(c.type=="active"){a+=c.getActiveSave()+"#"}if(c.type=="passive"){a+=c.getPassiveRanks()+"#"}a=stripnl(a);a+="\n";return a}function checkContents(a){switch(a.substr(0,4)){case"suc:":alert(L("Your talents has been saved with ID ")+a.substr(4)+". You will be redirect to the view page in a moment.");top.location="t"+a.substr(4)+".html";break;case"err:":alert(L("Your talents have NOT been saved: ")+a.substr(4)+".");break;case"dis:":alert(L("Your talents have NOT been saved, the server declined the request.\n")+a.substr(4));break;case"ban:":alert(L("Your talents have NOT been saved, the server has this IP blacklisted.\n"));break;default:alert(L("Your talents have NOT been saved, the server was unable to handle your request. (")+a+")");break}};
function makeRequest(a){ajax("ajax.php?a=gt&id="+a,"",procesData,defaultErrorHandler)}function makeFullRequest(a){ajax("ajax.php?a=ft&dummy="+getNow()+"&id="+a,"",procesData,defaultErrorHandler)}function makeCountingRequest(b,a){ajax("ajax.php?a=v&id="+b,"",procesData,defaultErrorHandler)}function makeRequestUrl(a){ajax(a,"",procesData,defaultErrorHandler)}function procesData(h){var d=getMaxi(),f,l,g,b,o,c,a,m=null;if(h==""){alert("The selected information could not be loaded. Please try again later.");return}if(h=="err:404"){alert(L("The selected tree was not found."))}else{if(h.substr(0,4)!="jsn:"){if(h.substr(0,4)=="suc:"){h=h.substr(4)}for(f=1;f<=3;f++){for(l=1;l<=d;l++){for(g=1;g<=4;g++){treec[f][l][g].setType("empty");treec[f][l][g].redraw(false)}}}if(h.substr(0,1)=="c"){b=h.indexOf("#");o=h.substr(1,(b-2));c=h.substr((b-1),1);setClass(o);switch(c){case 0:treeTypeNormal();break;case 1:treeTypeTBC();break;case 2:treeTypeWotLK();break}}a=h.split("\n");for(l=0;l<a.length;l++){if(a[l].length>1){procesTalent(a[l])}}for(l=0;l<a.length;l++){if(a[l].length>1){procesTalentPreReqs(a[l])}}}else{h=h.substr(4);try{m=myEval("("+h+")")}catch(n){return}$("treeTitle").value=m.title;$("authorComments").value=m.authorcomment;$("isHidden").value=m.isHidden;setClass(m.pclass);switch(m.treetype){case"0":treeTypeNormal();break;case"1":treeTypeTBC();break;case"2":treeTypeWotLK();break}a=m.content.split("\n");for(l=0;l<a.length;l++){if(a[l].length>1){procesTalent(a[l])}}for(l=0;l<a.length;l++){if(a[l].length>1){procesTalentPreReqs(a[l])}}}}}function procesTalent(c){var e=/(\d+)#([AP])#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#([\d|]*)#(.*)#/i.exec(c),b=e[1],d,a,g,h,f;if(b.length>=3){d=translateSticky(e[1]);a=d[0];g=d[1];h=d[2];f=treec[a][g][h];f.setType(cleanData(e[2]));f.talentname=cleanData(e[3]);f.setIcon("Spells/"+cleanData(e[4]));f.desc=cleanData(e[5]);if(f.type=="active"){procesTalentActive(a,g,h,e[7])}if(f.type=="passive"){procesTalentPassive(a,g,h,e[7])}f.redraw(false)}}function procesTalentPreReqs(a){var c=/(\d+)#([AP])#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#\\{0,1}\"(.*)\\{0,1}\"#([\d|]*)#(.*)#/i.exec(a),b=translateSticky(c[1]);procesTalentReqs(b[0],b[1],b[2],c[6])}function procesTalentReqs(a,e,f,d){var c,b;if(d.length<3){return}c=d.split("|");for(b=0;b<c.length;b++){treec[a][e][f].addReq(c[b])}}function procesTalentActive(a,e,f,c){var b=c.split("|"),d;if(b.length==9){d=treec[a][e][f];d.ActiveCost=b[0];d.ActiveCostType=b[1];d.ActiveSpellType=b[2];d.setActiveCastTime(b[3]);d.ActiveCooldown=b[4];d.ActiveRangeMin=b[5];d.ActiveRangeMax=b[6];d.ActiveReagents=b[7];d.ActiveRequires=b[8]}}function procesTalentPassive(a,f,g,e){var c,d,b;if(e.length<3){treec[a][f][g].setNumRanks(1);return}c=e.split("|");d=e.substring(0,1);treec[a][f][g].setNumRanks(d);c[0]=c[0].substring(1);for(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])}};
var curtree=0,currow=0,curpos=0,treec=new Array(3),treep=new Array(3),treen=new Array(3),treee=new Array(3),treet=new Array(3),treel=new Array(3),switchActive=false,tooltipelm=null,tooltipcelm=null,pointlock=0,rowpoints=5,startLevel=10,levelBetweenPoints=1;function getMaxi(){if(currentClass=="pet"){return 5}switch(treeType){case"WotLK":return 11;case"TBC":return 9;case"normal":return 7}}function redrawAll(){var b=getMaxi(),a,d,c;for(a=1;a<=3;a++){for(d=1;d<=b;d++){for(c=1;c<=4;c++){treec[a][d][c].redraw(false)}}}}function setClass(a){if(a!=currentClass){currentClass=a;switch(a){case"unset":treen[1]=L("Blue");treen[2]=L("Red");treen[3]=L("Green");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"druid":treen[1]=L("Balance");treen[2]=L("Feral");treen[3]=L("Restoration");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"deathknight":treen[1]=L("Blood");treen[2]=L("Frost");treen[3]=L("Unholy");rowpoints=5;startLevel=10;levelBetweenPoints=1;treeTypeWotLK();break;case"hunter":treen[1]=L("Beast Mastery");treen[2]=L("Marksmanship");treen[3]=L("Survival");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"mage":treen[1]=L("Arcane");treen[2]=L("Fire");treen[3]=L("Frost");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"paladin":treen[1]=L("Holy");treen[2]=L("Protection");treen[3]=L("Retribution");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"priest":treen[1]=L("Discipline");treen[2]=L("Holy");treen[3]=L("Shadow");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"rogue":treen[1]=L("Assasination");treen[2]=L("Combat");treen[3]=L("Subtlety");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"shaman":treen[1]=L("Elemental");treen[2]=L("Enhancement");treen[3]=L("Restoration");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"warlock":treen[1]=L("Affliction");treen[2]=L("Demonology");treen[3]=L("Destruction");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"warrior":treen[1]=L("Arms");treen[2]=L("Fury");treen[3]=L("Protection");rowpoints=5;startLevel=10;levelBetweenPoints=1;resetTreeType();break;case"pet":treen[1]=L("Tenacity");treen[2]=L("Ferocity");treen[3]=L("Cunning");rowpoints=3;startLevel=20;levelBetweenPoints=4;treeTypeWotLK();break}}for(i=1;i<=3;i++){treee[i].style.backgroundImage="url(bg/"+treeType+a+i+".jpg)";$("treeheadertext"+i).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){var c,a,d,f,e;if(!b){b=event}if(b.target){e=b.target}if(b.srcElement){e=b.srcElement}c=translateElmId(e.id);a=c[0];d=c[1];f=c[2];e=$(treec[a][d][f].getID());treec[a][d][f].doTooltip();if(mode=="edit"){treec[a][d][f].redraw(true)}}function butmouseout(b){var c,a,d,e;if(!b){b=event}if(b.target){elm=b.target}if(b.srcElement){elm=b.srcElement}if(mode=="edit"){c=translateElmId(elm.id);a=c[0];d=c[1];e=c[2];treec[a][d][e].redraw(false)}hideTooltip()}function schoolHover(c){var a=getMaxi(),d,b;counts=0;countt=0;counta=0;countp=0;for(d=1;d<=a;d++){for(b=1;b<=4;b++){counts+=parseInt(treec[c][d][b].curRank);countt+=parseInt(treec[c][d][b].numRanks);if(treec[c][d][b].type=="active"){counta+=1}if(treec[c][d][b].type=="passive"){countp+=1}}}treep[c]=counts;tooltipcelm.innerHTML="<strong>"+treen[c]+"</strong><br />"+L("Points spend in this tree: ")+counts+"<br />"+L("Total points in this tree: ")+countt+"<br />"+L("Active talents in this tree: ")+counta+"<br />"+L("Passive talents in this tree: ")+countp;showTooltip($("treeheader"+c),true)}function hideTooltip(){tooltipelm.style.display="none"}function showTooltip(f,a){tooltipelm.style.display="";var c={x:(document.body.clientWidth)?document.body.clientWidth:window.innerWidth,y:(document.body.clientHeight)?document.body.clientHeight:window.innerHeight},b=(a==true?0:f.offsetWidth),e=obj_left(f)+b,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]};
window.onload=function(){var b,d,c,e,a;tooltipelm=$("tooltipbox");tooltipcelm=$("tooltipcontent");hideTooltip();for(b=1;b<=3;b++){treec[b]=new Array(11);treep[b]=0;treen[b]="";treee[b]=$("tree"+b);treet[b]=obj_top(treee[b]);treel[b]=obj_left(treee[b]);e=$("treeheader"+b);a=$("treeheaderimg"+b);addListener(e,"mouseover",BindArgument(schoolHover,b));addListener(e,"mouseout",hideTooltip);addListener(e,"mouseup",butclick2);addListener(e,"mousedown",butclick2);addListener(a,"mouseover",function(f){if(!f){f=event}if(f.target){elm=f.target}if(f.srcElement){elm=f.srcElement}elm.style.backgroundPosition="-9px -106px"});addListener(a,"mouseout",function(f){if(!f){f=event}if(f.target){elm=f.target}if(f.srcElement){elm=f.srcElement}elm.style.backgroundPosition="-29px -106px"});addListener(a,"mouseup",BindArgument(ResetTree,b));addListener(treee[b],"mouseup",butclick2);addListener(treee[b],"contextmenu",butclick2);addListener(treee[b],"mouseover",butclick2);addListener(treee[b],"mouseout",butclick2);addListener(treee[b],"dragstart",butclick2);addListener(treee[b],"selectstart",butclick2);for(d=1;d<=11;d++){treec[b][d]=new Array(4);for(c=1;c<=4;c++){treec[b][d][c]=new TalentObj(b,d,c)}}}setClass("unset");if(edittree==true&&loadid!=0){makeFullRequest(loadid)}};function quickLoad(){return;var a=getCookie("quicksave");if(a!=null&&a!=""){}setInterval(quickSave,2000)}function quickSave(){}function butclick(g){var b,a,i,h,e,c,f,d;if(!g){g=event}if(g.target){elm=g.target}if(g.srcElement){elm=g.srcElement}b=g.which?g.which:g.button;if(g.preventDefault){g.preventDefault()}else{g.returnResult=false}if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}a=translateElmId(elm.id);i=a[0];h=a[1];e=a[2];elm=$(treec[i][h][e].getID());if(i==curtree&&h==currow&&e==curpos){switchActive=false}if(mode=="edit"){if(switchActive){c=treec[i][h][e];f=treec[curtree][currow][curpos];c.setLoc(curtree,currow,curpos);f.setLoc(i,h,e);treec[curtree][currow][curpos]=c;treec[i][h][e]=f;c.redraw(false);f.redraw(false);switchActive=false;elm=$(treec[i][h][e].getID())}if(curtree!=0&&currow!=0&&curpos!=0){d=treec[curtree][currow][curpos];curtree=i;currow=h;curpos=e;d.redraw()}curtree=i;currow=h;curpos=e;treec[curtree][currow][curpos].redraw(true);openTalentWindow()}else{if(treec[i][h][e].type=="empty"){return false}if(g.shiftKey==true||b>1){treec[i][h][e].subPoint()}else{if(treec[i][h][e].reqsAreOk()){treec[i][h][e].addPoint()}}treec[i][h][e].doTooltip()}return false}function clearSelection(){var a=curtree,b=currow,c=curpos;curtree=0;currow=0;curpos=0;if(a!=0&&b!=0&&c!=0){treec[a][b][c].redraw()}}function setChangeTalentIcon(a){var b=$("adjusttalentIMG");b.src=imagepath+"Spells/"+a}function setChangeTalentIconAbsolute(a){var b=$("adjusttalentIMG");b.src=a}function previewMode(){var a=$("previewmodebut");mode="preview";a.innerHTML="<strong>"+L("Preview")+"</strong>";a=$("editmodebut");a.innerHTML='<a href="javascript:editMode()">'+L("Edit")+"</a>";clearSelection();redrawAll()}function editMode(){var a=$("previewmodebut");mode="edit";a.innerHTML='<a href="javascript:previewMode()">'+L("Preview")+"</a>";a=$("editmodebut");a.innerHTML="<strong>"+L("Edit")+"</strong>";clearSelection();redrawAll()}function showSaveTrees(){var b=getMaxi(),l="",e=0,c,f,d,h=$("saveTreeBox"),m=0,g=0,a=false;for(c=1;c<=3;c++){m=0;g=0;a=false;for(f=1;f<=b;f++){for(d=1;d<=4;d++){if(treec[c][f][d].type=="active"||treec[c][f][d].type=="passive"){if(parseInt(g)<parseInt(rowpoints*(f-1))&&!a){l+=L("- The ")+treen[c]+L(" tree does not have enough points to reach row ")+f+"\n";a=true}g+=parseInt(treec[c][f][d].numRanks);m++}}}if(m<7){e++}}if(e==3){l+=L("- Please have atleast 1 tree with 7 talents in it.\n")}if(currentClass=="unset"){l+=L("- Please select a class.\n")}if(l!=""){alert(L("Please correct these error(s) before you try to save your tree:\n\n")+l);return}if(!correctTreeType()){return}if(curUser.userID==0){execLogin=function(){showSaveTrees()};openLoginWindow();return}closeWindow();clearSelection();h.style.left="35%";h.style.display=""}function showLoadTrees(){var a=prompt(L("Please enter the ID of the talent tree you wish to load.\n\nNOTE: Loading a talent tree will RESET the current trees"),"");if(!a){return}if(isNaN(a)){alert(L("Unable to load, the ID is not a number"));return}else{makeRequest(a)}}function SaveTrees(){var b=$("treeTitle"),a=$("authorComments"),c=$("isHidden"),d="d="+escape(createTreeSum())+"&c="+escape(currentClass)+"&t="+escape(treeType)+"&ti="+escape(b.value)+"&ac="+escape(a.value)+"&ih="+escape(c.value);if(b.value==""){alert(L("Please enter a title"));return}if(edittree==true&&loadid!=0){ajax("ajax.php?a=et&id="+loadid+"&dummy="+getNow(),d,checkContents,defaultErrorHandler)}else{ajax("ajax.php?a=st&dummy="+getNow(),d,checkContents,defaultErrorHandler)}}function closeSaveWindow(){var a=$("saveTreeBox");a.style.left="-35%";a.style.display="none"}function ResetTrees(){var b=getMaxi(),a,d,c;if(mode=="edit"){if(confirm(L("Are you sure you wish to reset all trees?\n"))){for(a=1;a<=3;a++){for(d=1;d<=b;d++){for(c=1;c<=4;c++){treec[a][d][c].setType("empty");treec[a][d][c].redraw(false)}}}clearSelection()}}else{for(a=1;a<=3;a++){for(d=1;d<=11;d++){for(c=1;c<=4;c++){treec[a][d][c].setCurRank(0);treec[a][d][c].redraw(false)}}}}}function ResetTree(a){var b=getMaxi(),d,c;if(mode=="edit"){if(confirm(L("Are you sure you wish to reset the ")+treen[a]+L(" tree?\n"))){for(d=1;d<=b;d++){for(c=1;c<=4;c++){treec[a][d][c].setType("empty");treec[a][d][c].redraw(false)}}clearSelection()}}else{for(d=1;d<=11;d++){for(c=1;c<=4;c++){treec[a][d][c].setCurRank(0);treec[a][d][c].redraw(false)}}}}function DefaultTrees(){if(currentClass=="unset"){alert(L("Please select a class first"));return}closeWindow();if(confirm(L("Are you sure you wish to reset all trees and try to load the default tree for this class?\n"))){makeRequestUrl("data/"+currentClass+".dat")}}function treeTypeWotLK(){var b=getMaxi(),e=$("treeTypeNormal"),a,d,c;treeType="WotLK";e.innerHTML='<a href="javascript:treeTypeNormal()">'+L("Normal")+"</a>";e=$("treeTypeButTBC");e.innerHTML='<a href="javascript:treeTypeTBC()">'+L("TBC")+"</a>";e=$("treeTypeWotLK");e.innerHTML="<strong>"+L("WotLK")+"</strong>";setClass(currentClass);if(currentClass=="pet"){if(currow>5){clearSelection()}for(a=1;a<=3;a++){treee[a].height=336;for(d=6;d<=11;d++){for(c=1;c<=4;c++){treec[a][d][c].setType("hidden");treec[a][d][c].redraw(false)}}for(d=1;d<=b;d++){for(c=1;c<=4;c++){if(treec[a][d][c].numRanks>3){treec[a][d][c].setNumRanks(3);treec[a][d][c].redraw(false)}}}}}else{for(a=1;a<=3;a++){treee[a].height=714;for(d=5;d<=11;d++){for(c=1;c<=4;c++){if(treec[a][d][c].type=="hidden"){treec[a][d][c].setType("empty");treec[a][d][c].redraw(false)}}}for(d=1;d<=b;d++){for(c=1;c<=4;c++){if(treec[a][d][c].numRanks>3){treec[a][d][c].setNumRanks(3);treec[a][d][c].redraw(false)}}}}}}function treeTypeTBC(){var d=$("treeTypeNormal"),a,c,b;if(currentClass=="pet"){return alert("Pet trees did not exist in The Burning Crusade.")}if(currentClass=="deathknight"){return alert("The deathknight class did not exist in The Burning Crusade.")}treeType="TBC";d.innerHTML='<a href="javascript:treeTypeNormal()">'+L("Normal")+"</a>";d=$("treeTypeButTBC");d.innerHTML="<strong>"+L("TBC")+"</strong>";d=$("treeTypeWotLK");d.innerHTML='<a href="javascript:treeTypeWotLK()">'+L("WotLK")+"</a>";setClass(currentClass);for(a=1;a<=3;a++){treee[a].height=585;for(c=5;c<=9;c++){for(b=1;b<=4;b++){if(treec[a][c][b].type=="hidden"){treec[a][c][b].setType("empty");treec[a][c][b].redraw(false)}}}for(c=10;c<=11;c++){for(b=1;b<=4;b++){treec[a][c][b].setType("hidden");treec[a][c][b].redraw(false)}}}}function treeTypeNormal(){var d=$("treeTypeNormal"),a,c,b;if(currentClass=="pet"){return alert("Pet trees did not exist in the original World of Warcraft.")}if(currentClass=="deathknight"){return alert("The deathknight class did not exist in the original World of Warcraft.")}treeType="normal";d.innerHTML="<strong>"+L("Normal")+"</strong>";d=$("treeTypeButTBC");d.innerHTML='<a href="javascript:treeTypeTBC()">'+L("TBC")+"</a>";d=$("treeTypeWotLK");d.innerHTML='<a href="javascript:treeTypeWotLK()">'+L("WotLK")+"</a>";if(currow>7){clearSelection()}setClass(currentClass);for(a=1;a<=3;a++){treee[a].height=456;for(c=8;c<=11;c++){for(b=1;b<=4;b++){treec[a][c][b].setType("hidden");treec[a][c][b].redraw(false)}}}}function resetTreeType(){switch(treeType){case"WotLK":treeTypeWotLK();break;case"TBC":treeTypeTBC();break;case"normal":treeTypeNormal();break}}function correctTreeType(){var e=true,b=true,a,d,c;if(currentClass=="pet"){if(treeType=="normal"||treeType=="TBC"){treeTypeWotLK()}return true}if(currentClass=="deathknight"){if(treeType=="normal"||treeType=="TBC"){treeTypeWotLK()}return true}switch(treeType){case"normal":return true;case"TBC":for(a=1;a<=3;a++){for(d=8;d<=9;d++){for(c=1;c<=4;c++){if(treec[a][d][c].type!="empty"&&treec[a][d][c].type!="hidden"){e=false}}}}if(e){if(confirm(L('You are not using the "The Burning Crusade" rows of your trees. Do you wish to convert it to a normal tree?'))){treeTypeNormal()}}break;case"WotLK":for(var a=1;a<=3;a++){for(var d=8;d<=11;d++){for(var c=1;c<=4;c++){if(treec[a][d][c].type!="empty"&&treec[a][d][c].type!="hidden"){if(d<=9){e=false}else{b=false}}}}}if(e){if(confirm(L('You are not using the "Wrath of the Lich King" rows of your trees. Do you wish to convert it to a normal tree?'))){treeTypeNormal()}return true}if(b){if(confirm(L('You are not using the "Wrath of the Lich King" rows of your trees. Do you wish to convert it to a "The Burning Crusade" tree?'))){treeTypeTBC()}return true}break}return true};
