if(typeof $WowheadPower=="undefined"){
	var $WowheadPower=new function(){
		function Q(ar,aq){
			var ap=document.createElement(ar);
			if(aq){
			ah(ap,aq)}
		return ap}
		function m(ap,aq){
		return ap.appendChild(aq)}
		function P(aq,ar,ap){
			if(window.attachEvent){
			aq.attachEvent("on"+ar,ap)}
			else{
			aq.addEventListener(ar,ap,false)}
		}
		function ah(ar,ap){
			for(var aq in ap){
				if(typeof ap[aq]=="object"){
					if(!ar[aq]){
						ar[aq]={
						}
					}
				ah(ar[aq],ap[aq])}
				else{
				ar[aq]=ap[aq]}
			}
		}
		function J(ap){
			if(!ap){
			ap=event}
			if(!ap._button){
				ap._button=ap.which?ap.which:ap.button;
			ap._target=ap.target?ap.target:ap.srcElement}
		return ap}
		function X(){
			var ap=0,aq=0;
			if(typeof window.innerWidth=="number"){
				ap=window.innerWidth;
			aq=window.innerHeight}
			else{
				if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
					ap=document.documentElement.clientWidth;
				aq=document.documentElement.clientHeight}
				else{
					if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
						ap=document.body.clientWidth;
					aq=document.body.clientHeight}
				}
			}
			return{
			w:ap,h:aq}
		}
		function z(){
			var ap=0,aq=0;
			if(typeof(window.pageYOffset)=="number"){
				ap=window.pageXOffset;
			aq=window.pageYOffset}
			else{
				if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){
					ap=document.body.scrollLeft;
				aq=document.body.scrollTop}
				else{
					if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){
						ap=document.documentElement.scrollLeft;
					aq=document.documentElement.scrollTop}
				}
			}
			return{
			x:ap,y:aq}
		}
		function ad(ar){
			var ap,at;
			if(window.innerHeight){
				ap=ar.pageX;
			at=ar.pageY}
			else{
				var aq=z();
				ap=ar.clientX+aq.x;
			at=ar.clientY+aq.y}
			return{
			x:ap,y:at}
		}
		function A(ap){
			var aq=A.L;
		return(aq[ap]?aq[ap]:0)}
		A.L={
		fr:2,de:3,es:6,ru:7,wotlk:0,ptr:0}
		;
		function ab(aq){
			var ap=ab.L;
		return(ap[aq]?ap[aq]:-1)}
		ab.L={
		npc:1,object:2,item:3,itemset:4,quest:5,spell:6,zone:7,faction:8,pet:9,achievement:10}
		;
		function L(av,aq,au){
			var at={
			12:1.5,13:12,14:15,15:5,16:10,17:10,18:8,19:14,20:14,21:14,22:10,23:10,24:0,25:0,26:0,27:0,28:10,29:10,30:10,31:10,32:14,33:0,34:0,35:25,36:10,37:2.5,44:4.69512176513672}
			;
			if(av<0){
			av=1}
			else{
				if(av>80){
				av=80}
			}
			if((aq==14||aq==12||aq==15)&&av<34){
			av=34}
			if(au<0){
			au=0}
			var ap;
			if(at[aq]==null){
			ap=0}
			else{
				var ar;
				if(av>70){
				ar=(82/52)*Math.pow((131/63),((av-70)/10))}
				else{
					if(av>60){
					ar=(82/(262-3*av))}
					else{
						if(av>10){
						ar=((av-8)/52)}
						else{
						ar=2/52}
					}
				}
			ap=au/at[aq]/ar}
		return ap}
		var y={
		applyto:3}
		,h,W,ac,O,u,U,S,p=document.getElementsByTagName("head")[0],C={
		}
		,M={
		}
		,ae={
		}
		,ao={
		}
		,s,x,am,B,af,ai=1,E=0,V=!!(window.attachEvent&&!window.opera),r=navigator.userAgent.indexOf("MSIE 7.0")!=-1,t=navigator.userAgent.indexOf("MSIE 6.0")!=-1&&!r,F={
		loading:"Loading...",noresponse:"No response from server :("}
		,aa=0,Z=1,i=2,v=3,Y=4,G=3,N=5,w=6,l=10,o=15,I=15,q={
		3:[C,"item","Item"],5:[M,"quest","Quest"],6:[ae,"spell","Spell"],10:[ao,"achievement","Achievement"]}
		,f={
		0:"enus",2:"frfr",3:"dede",6:"eses",7:"ruru",25:"ptr"}
		;
		function aj(){
			m(p,Q("link",{
			type:"text/css",href:"/css/power/power.css",rel:"stylesheet"}
			));
			if(V){
				m(p,Q("link",{
				type:"text/css",href:"/css/power/power_ie.css?3",rel:"stylesheet"}
				));
				if(t){
					m(p,Q("link",{
					type:"text/css",href:"/css/power/power_ie6.css?3",rel:"stylesheet"}
				))}
			}
		P(document,"mouseover",D)}
		function n(ap){
			var aq=ad(ap);
			U=aq.x;
		S=aq.y}
		function al(aA,ay){	// test for wowhead link
			if(aA.nodeName!="A"&&aA.nodeName!="AREA"){
			return -2323}
			if(!aA.href.length){
			return}
			var av,au,ar,aq,aw={
			}
			;
			var ap=function(aB,aD,aC){
				if(aD=="buff"||aD=="sock"){
				aw[aD]=true}
				else{
					if(aD=="rand"||aD=="ench"||aD=="lvl"||aD=="c"){
					aw[aD]=parseInt(aC)}
					else{
						if(aD=="gems"||aD=="pcs"){
						aw[aD]=aC.split(":")}
						else{
							if(aD=="who"||aD=="domain"){
							aw[aD]=aC}
							else{
								if(aD=="when"){
								aw[aD]=aC}
							}
						}
					}
				}
			}
			;
			if(y.applyto&1){
				av=1;
				au=2;
				ar=3;
				aq=aA.href.match(/^http:\/\/(www|dev|fr|es|de|ru|wotlk|ptr)?\.?wowhead\.com\/\?(item|quest|spell|achievement)=([0-9]+)/);
			E=0}
			if(aq==null&&(y.applyto&2)&&aA.rel){
				av=0;
				au=1;
				ar=2;
				aq=aA.rel.match(/(item|quest|spell|achievement).?([0-9]+)/);
			E=1}
			if(aA.rel){
				aA.rel.replace(/([a-zA-Z]+)=?([a-zA-Z0-9:\/-]*)/g,ap);
				if(aw.gems&&aw.gems.length>0){
					var ax;
					for(ax=Math.min(3,aw.gems.length-1);
					ax>=0;
					--ax){
						if(parseInt(aw.gems[ax])){
						break}
					}
					++ax;
					if(ax==0){
					delete aw.gems}
					else{
						if(ax<aw.gems.length){
						aw.gems=aw.gems.slice(0,ax)}
					}
				}
			}
			if(aq){
				var az,at="www";
				if(aw.domain){
				at=aw.domain}
				else{
					if(av&&aq[av]){
					at=aq[av]}
				}
				az=A(at);
				if(at=="wotlk"||at=="ptr"){
				at="www"}
				O=at;
				if(!aA.onmousemove){
					aA.onmousemove=b;
				aA.onmouseout=ak}
				n(ay);
			H(ab(aq[au]),aq[ar],az,aw)}
		}
		function D(ar){
			ar=J(ar); //resolve mouseover object
			var aq=ar._target;
			var ap=0;
			while(aq!=null&&ap<3&&al(aq,ar)==-2323){ //go up in levels until you reach 3, null, or a wowhead link
				aq=aq.parentNode;
			++ap}
		}
		function b(ap){
			ap=J(ap);
			n(ap);
		K()}
		function ak(){
			h=null;
		R()}
		function e(){
			if(!s){
				var av=Q("div"),az=Q("table"),aq=Q("tbody"),au=Q("tr"),ar=Q("tr"),ap=Q("td"),ay=Q("th"),ax=Q("th"),aw=Q("th");
				av.className="wowhead-tooltip";
				ay.style.backgroundPosition="top right";
				ax.style.backgroundPosition="bottom left";
				aw.style.backgroundPosition="bottom right";
				m(au,ap);
				m(au,ay);
				m(aq,au);
				m(ar,ax);
				m(ar,aw);
				m(aq,ar);
				m(az,aq);
				B=Q("p");
				B.style.display="none";
				m(B,Q("div"));
				m(av,B);
				m(av,az);
				m(document.body,av);
				s=av;
				x=az;
				am=ap;
				var at=Q("div");
				at.className="wowhead-tooltip-powered";
				m(av,at);
				af=at;
			R()}
		}
		function an(at,au){
			var av=false;
			if(!s){
			e()}
			if(!at){
				at=q[h][2]+" not found :(";
				au="inv_misc_questionmark";
			av=true}
			else{
				if(u!=null){
					if(u.pcs&&u.pcs.length){
						var aw=0;
						for(var ar=0,aq=u.pcs.length;
						ar<aq;
						++ar){
							var ap;
							if(ap=at.match(new RegExp("<span><!--si([0-9]+:)*"+u.pcs[ar]+"(:[0-9]+)*-->"))){
								at=at.replace(ap[0],'<span class="q8"><!--si'+u.pcs[ar]+"-->");
							++aw}
						}
						if(aw>0){
							at=at.replace("(0/","("+aw+"/");
						at=at.replace(new RegExp("<span>\\(([0-"+aw+"])\\)","g"),'<span class="q2">($1)')}
					}
					if(u.c){
						at=at.replace(/<span class="c([0-9]+?)">(.+?)<\/span><br \/>/g,'<span class="c$1" style="display: none">$2</span>');
					at=at.replace(new RegExp('<span class="c('+u.c+')" style="display: none">(.+?)</span>',"g"),'<span class="c$1">$2</span><br />')}
					if(u.lvl){
						at=at.replace(/\(<!--r([0-9]+):([0-9]+):([0-9]+)-->([0-9.%]+)(.+?)([0-9]+)\)/g,function(aA,aC,aB,az,ax,aE,ay){
							var aD=L(u.lvl,aB,az);
							aD=(Math.round(aD*100)/100);
							if(aB!=12&&aB!=37){
							aD+="%"}
						return"(<!--r"+u.lvl+":"+aB+":"+az+"-->"+aD+aE+u.lvl+")"}
					)}
					if(u.who&&u.when){
						at=at.replace("<table><tr><td><br />",'<table><tr><td><span class="q2" style="white-space:nowrap"><small>Achievement completed on ' + u.when + '</small></span><br /><br />');
					at=at.replace(/class="q0"/g,'class="r3"')}
					at=at.replace(/<br \/><br \/><span.+?>Criteria:<\/span>/,'');
					at=at.replace(/- [^<]+(<br \/>)?/g,'');
				}
			}
			if(af){
			af.style.display=(E&&!av?"":"none")}
			if(ai&&au){
				B.style.backgroundImage="url(http://static.wowhead.com/images/wow/icons/medium/"+au.toLowerCase()+".jpg)";
			B.style.display=""}
			else{
				B.style.backgroundImage="none";
			B.style.display="none"}
			s.style.display="";
			s.style.width="320px";
			am.innerHTML=at;
			d();
			K();
		s.style.visibility="visible"}
		function R(){
			if(!s){
			return}
			s.style.display="none";
		s.style.visibility="hidden"}
		function d(){
			var aq=am.childNodes;
			if(aq.length>=2&&aq[0].nodeName=="TABLE"&&aq[1].nodeName=="TABLE"){
				aq[0].style.whiteSpace="nowrap";
				var ap;
				if(aq[1].offsetWidth>300){
				ap=Math.max(300,aq[0].offsetWidth)+20}
				else{
				ap=Math.max(aq[0].offsetWidth,aq[1].offsetWidth)+20}
				if(ap>20){
					s.style.width=ap+"px";
				aq[0].style.width=aq[1].style.width="100%"}
			}
			else{
			s.style.width=x.offsetWidth+"px"}
		}
		function K(){
			if(!s){
			return}
			if(U==null){
			return}
			var az=X(),aA=z(),aw=az.w,at=az.h,av=aA.x,ar=aA.y,au=x.offsetWidth,ap=x.offsetHeight,aq=U+o,ay=S-ap-I;
			if(aq+o+au+4>=av+aw){
				var ax=U-au-o;
				if(ax>=0){
				aq=ax}
				else{
				aq=av+aw-au-o-4}
			}
			if(ay<ar){
				ay=S+I;
				if(ay+ap>ar+at){
					ay=ar+at-ap;
					if(ai){
						if(U>=aq-48&&U<=aq&&S>=ay-4&&S<=ay+48){
						ay-=48-(S-ay)}
					}
				}
			}
			s.style.left=aq+"px";
		s.style.top=ay+"px"}
		function ag(ap){
		return(u&&u.buff?"buff_":"tooltip_")+f[ap]}
		function j(aq,at,ar){
			var ap=q[aq][0];
			if(ap[at]==null){
				ap[at]={
				}
			}
			if(ap[at].status==null){
				ap[at].status={
				}
			}
			if(ap[at].status[ar]==null){
			ap[at].status[ar]=aa}
		}
		function H(aq,av,at,au){
			if(!au){
				au={
				}
			}
			var ar=g(av,au);
			h=aq;
			W=ar;
			ac=at;
			u=au;
			j(aq,ar,at);
			var ap=q[aq][0];
			if(ap[ar].status[at]==Y||ap[ar].status[at]==v){
			an(ap[ar][ag(at)],ap[ar].icon)}
			else{
				if(ap[ar].status[at]==Z){
				an(F.tooltip_loading)}
				else{
				c(aq,av,at,null,au)}
			}
		}
		function c(ax,at,ay,aq,au){
			var ap=g(at,au);
			var aw=q[ax][0];
			if(aw[ap].status[ay]!=aa&&aw[ap].status[ay]!=i){
			return}
			aw[ap].status[ay]=Z;
			if(!aq){
				aw[ap].timer=setTimeout(function(){
				k.apply(this,[ax,ap,ay])}
			,333)}
			var ar="";
			for(var av in au){
				if(av!="rand"&&av!="ench"&&av!="gems"&&av!="sock"){
				continue}
				if(typeof au[av]=="object"){
				ar+="&"+av+"="+au[av].join(":")}
				else{
					if(av=="sock"){
					ar+="&sock"}
					else{
					ar+="&"+av+"="+au[av]}
				}
			}
		a("http://"+O+".wowhead.com/?"+q[ax][1]+"="+at+ar+"&power&lol")}
		function a(ap){
			m(p,Q("script",{
			type:"text/javascript",src:ap}
		))}
		function k(aq,at,ar){
			if(h==aq&&W==at&&ac==ar){
				an(F.loading);
				var ap=q[aq][0];
				ap[at].timer=setTimeout(function(){
				T.apply(this,[aq,at,ar])}
			,3850)}
		}
		function T(aq,at,ar){
			var ap=q[aq][0];
			ap[at].status[ar]=i;
			if(h==aq&&W==at&&ac==ar){
			an(F.tooltip_noresponse)}
		}
		function g(aq,ap){
		return aq+(ap.rand?"r"+ap.rand:"")+(ap.ench?"e"+ap.ench:"")+(ap.gems?"g"+ap.gems.join(","):"")+(ap.sock?"s":"")}
		this.register=function(ar,au,at,aq){
			var ap=q[ar][0];
			clearTimeout(ap[au].timer);
			ah(ap[au],aq);
			if(ap[au][ag(at)]){
			ap[au].status[at]=Y}
			else{
			ap[au].status[at]=v}
			if(h==ar&&au==W&&ac==at){
			an(ap[au][ag(at)],ap[au].icon)}
		}
		;
		this.registerItem=function(ar,aq,ap){
		this.register(G,ar,aq,ap)}
		;
		this.registerQuest=function(ar,aq,ap){
		this.register(N,ar,aq,ap)}
		;
		this.registerSpell=function(ar,aq,ap){
		this.register(w,ar,aq,ap)}
		;
		this.registerAchievement=function(ar,aq,ap){
		this.register(l,ar,aq,ap)}
		;
		this.set=function(ap){
		ah(y,ap)}
		;
		this.showTooltip=function(ar,ap,aq){
			n(ar);
		an(ap,aq)}
		;
		this.hideTooltip=function(){
		R()}
		;
		this.moveTooltip=function(ap){
		b(ap)}
		;
	aj()}
}
;

