Tribal Wars eXtension english v3.0.2.9

By Anonymous User Last update Mar 11, 2008 — Installed 2,286 times.

the source is over 100KB, syntax highlighting in the browser is too slow

// ==UserScript==
// @name          Tribal Wars eXtension english v3.0.2.9
// @namespace     http://none
// @description   GARGBOY's script updated. Tribal eXtension + Tribalfox + Tribalmaps
// @include       http://*.tribalwars.*/game.php*
// @include       http://*.plemiona.*/game.php*
// @include       http://*.triburile.*/game.php*
// @include       http://s*.tribalwars.*/*
// @include       http://en*.tribalwars.net/*
// @version       3.0.2.9
// ==/UserScript==
//____________________________________________________________________________________________________________

______//

//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006 Valerio Proietti, <http://mad4milk.net>, 

MIT Style License.
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29)

:c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return 

d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new 

RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('o bF={\'bG\':1.1};k $8a(O){m(O!=b9)};k $F(O){B(!$8a(O))m 

N;B(O.4Y)m\'G\';o F=7g O;B(F==\'2C\'&&O.c4){23(O.7s){12 1:m\'G\';12 

3:m/\\S/.2t(O.8Z)?\'bk\':\'bu\'}}B(F==\'2C\'||F==\'k\'){23(O.aR){12 2I:m\'1B\';12 7V:m\'5n\';12 

18:m\'4O\'}B(7g O.V==\'4S\'){B(O.3h)m\'cT\';B(O.8r)m\'1c\'}}m F};k $2c(){o 4R={};M(o i=0;i<1c.V;i++){M(o K 1b 

1c[i]){o ap=1c[i][K];o 6R=4R[K];B(6R&&$F(ap)==\'2C\'&&$F(6R)==\'2C\')4R[K]=$2c(6R,ap);17 4R[K]=ap}}m 4R};o 

$R=7c.R=k(){o 1q=1c;B(!1q[1])1q=[c,1q[0]];M(o K 1b 1q[1])1q[0][K]=1q[1][K];m 1q[0]};o $4Q=7c.cW=k(){M(o 

i=0,l=1c.V;i<l;i++){1c[i].R=k(1W){M(o 1V 1b 

1W){B(!c.1L[1V])c.1L[1V]=1W[1V];B(!c[1V])c[1V]=$4Q.6P(1V)}}}};$4Q.6P=k(1V){m k(Y){m 

c.1L[1V].3U(Y,2I.1L.aI.1S(1c,1))}};$4Q(7S,2I,6W,ao);o 3y=k(O){O=O||{};O.R=$R;m O};o cX=L 3y(U);o cM=L 

3y(P);P.6s=P.35(\'6s\')[0];k $2B(O){m!!(O||O===0)};k $5F(O,a8){m $8a(O)?O:a8};k $7X(3p,1z){m 

1d.an(1d.7X()*(1z-3p+1)+3p)};k $3A(){m L 97().bf()};k $4Z(1H){ci(1H);cn(1H);m 

1F};U.43=!!(P.5M);B(U.aO)U.31=U[U.7d?\'cl\':\'aY\']=1e;17 

B(P.9A&&!P.bz&&!bl.bM)U.cS=U.4M=U[U.43?\'cg\':\'65\']=1e;17 B(P.cb!=1F)U.7W=1e;B(7g 5O==\'b9\'){o 

5O=k(){};B(U.4M)P.aq("cJ");5O.1L=(U.4M)?U["[[bA.1L]]"]:{}}5O.1L.4Y=1e;B(U.aY)5f{P.bK("cc",N,1e)}4X(e){};o 

18=k(1K){o 63=k(){m(1c[0]!==1F&&c.1j&&$F(c.1j)==\'k\')?c.1j.3U(c,1c):c};$R(63,c);63.1L=1K;63.aR=18;m 

63};18.1m=k(){};18.1L={R:k(1K){o 7k=L c(1F);M(o K 1b 1K){o aP=7k[K];7k[K]=18.aL(aP,1K[K])}m L 

18(7k)},3q:k(){M(o i=0,l=1c.V;i<l;i++)$R(c.1L,1c[i])}};18.aL=k(2o,2a){B(2o&&2o!=2a){o F=$F(2a);B(F!=$F(2o))m 

2a;23(F){12\'k\':o 7E=k(){c.1r=1c.8r.1r;m 2a.3U(c,1c)};7E.1r=2o;m 7E;12\'2C\':m $2c(2o,2a)}}m 2a};o 8b=L 

18({bD:k(W){c.4j=c.4j||[];c.4j.1k(W);m c},7t:k(){B(c.4j&&c.4j.V)c.4j.9W().2k(10,c)},bC:k(){c.4j=[]}});o 2q=L 

18({1I:k(F,W){B(W!=18.1m){c.$19=c.$19||{};c.$19[F]=c.$19[F]||[];c.$19[F].5w(W)}m 

c},1i:k(F,1q,2k){B(c.$19&&c.$19[F]){c.$19[F].1o(k(W){W.3a({\'Y\':c,\'2k\':2k,\'1c\':1q})()},c)}m 

c},3Z:k(F,W){B(c.$19&&c.$19[F])c.$19[F].2H(W);m c}});o 4i=L 18({2U:k(){c.C=$2c.3U(1F,[c.C].R(1c));B(!c.1I)m 

c;M(o 3B 1b c.C){B($F(c.C[3B]==\'k\')&&3B.2t(/^5C[A-Z]/))c.1I(3B,c.C[3B])}m c}});2I.R({7l:k(W,Y){M(o 

i=0,j=c.V;i<j;i++)W.1S(Y,c[i],i,c)},3f:k(W,Y){o 54=[];M(o i=0,j=c.V;i<j;i++){B(W.1S(Y,c[i],i,c))54.1k(c[i])}m 

54},2K:k(W,Y){o 54=[];M(o i=0,j=c.V;i<j;i++)54[i]=W.1S(Y,c[i],i,c);m 54},4v:k(W,Y){M(o 

i=0,j=c.V;i<j;i++){B(!W.1S(Y,c[i],i,c))m N}m 1e},bo:k(W,Y){M(o i=0,j=c.V;i<j;i++){B(W.1S(Y,c[i],i,c))m 1e}m 

N},3S:k(3h,15){o 3N=c.V;M(o i=(15<0)?1d.1z(0,3N+15):15||0;i<3N;i++){B(c[i]===3h)m 

i}m-1},8m:k(1h,V){1h=1h||0;B(1h<0)1h=c.V+1h;V=V||(c.V-1h);o 89=[];M(o i=0;i<V;i++)89[i]=c[1h++];m 

89},2H:k(3h){o i=0;o 3N=c.V;6Y(i<3N){B(c[i]===3h){c.6y(i,1);3N--}17{i++}}m c},1l:k(3h,15){m 

c.3S(3h,15)!=-1},bm:k(1P){o O={},V=1d.3p(c.V,1P.V);M(o i=0;i<V;i++)O[1P[i]]=c[i];m O},R:k(1B){M(o 

i=0,j=1B.V;i<j;i++)c.1k(1B[i]);m c},2c:k(1B){M(o i=0,l=1B.V;i<l;i++)c.5w(1B[i]);m 

c},5w:k(3h){B(!c.1l(3h))c.1k(3h);m c},bp:k(){m c[$7X(0,c.V-1)]||N},7Y:k(){m 

c[c.V-1]||N}});2I.1L.1o=2I.1L.7l;2I.1L.2t=2I.1L.1l;k $A(1B){m 2I.8m(1B)};k $1o(3W,W,Y){B(3W&&7g 

3W.V==\'4S\'&&$F(3W)!=\'2C\')2I.7l(3W,W,Y);17 M(o 1w 1b 

3W)W.1S(Y||3W,3W[1w],1w)};6W.R({2t:k(6o,2S){m(($F(6o)==\'2E\')?L 7V(6o,2S):6o).2t(c)},3c:k(){m 

5X(c,10)},b4:k(){m 69(c)},7N:k(){m c.3l(/-\\D/g,k(2T){m 2T.7T(1).aJ()})},9o:k(){m 

c.3l(/\\w[A-Z]/g,k(2T){m(2T.7T(0)+\'-\'+2T.7T(1).5B())})},8I:k(){m c.3l(/\\b[a-z]/g,k(2T){m 

2T.aJ()})},5Y:k(){m c.3l(/^\\s+|\\s+$/g,\'\')},7w:k(){m c.3l(/\\s{2,}/g,\' \').5Y()},5I:k(1B){o 

1v=c.2T(/\\d{1,3}/g);m(1v)?1v.5I(1B):N},5H:k(1B){o 

3C=c.2T(/^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$/);m(3C)?3C.aI(1).5H(1B):N},1l:k(2E,s){m(s)?(s+c+s).3S(s+2E+s)>-1:c

.3S(2E)>-1},aK:k(){m c.3l(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});2I.R({5I:k(1B){B(c.V<3)m 

N;B(c.V==4&&c[3]==0&&!1B)m\'c5\';o 3C=[];M(o i=0;i<3;i++){o 52=(c[i]-0).4u(16);3C.1k((52.V==1)?\'0\'+52:52)}m 

1B?3C:\'#\'+3C.2h(\'\')},5H:k(1B){B(c.V!=3)m N;o 1v=[];M(o 

i=0;i<3;i++){1v.1k(5X((c[i].V==1)?c[i]+c[i]:c[i],16))}m 1B?1v:\'1v(\'+1v.2h(\',\')+\')\'}});7S.R({3a:k(C){o 

W=c;C=$2c({\'Y\':W,\'I\':N,\'1c\':1F,\'2k\':N,\'4f\':N,\'6J\':N},C);B($2B(C.1c)&&$F(C.1c)!=\'1B\')C.1c=[C.1c];

m k(I){o 1q;B(C.I){I=I||U.I;1q=[(C.I===1e)?I:L C.I(I)];B(C.1c)1q.R(C.1c)}17 1q=C.1c||1c;o 3P=k(){m 

W.3U($5F(C.Y,W),1q)};B(C.2k)m 9H(3P,C.2k);B(C.4f)m cI(3P,C.4f);B(C.6J)5f{m 3P()}4X(cE){m N};m 

3P()}},cL:k(1q,Y){m c.3a({\'1c\':1q,\'Y\':Y})},6J:k(1q,Y){m c.3a({\'1c\':1q,\'Y\':Y,\'6J\':1e})()},Y:k(Y,1q){m 

c.3a({\'Y\':Y,\'1c\':1q})},cU:k(Y,1q){m c.3a({\'Y\':Y,\'I\':1e,\'1c\':1q})},2k:k(2k,Y,1q){m 

c.3a({\'2k\':2k,\'Y\':Y,\'1c\':1q})()},4f:k(at,Y,1q){m c.3a({\'4f\':at,\'Y\':Y,\'1c\':1q})()}});ao.R({3c:k(){m 

5X(c)},b4:k(){m 69(c)},1E:k(3p,1z){m 1d.3p(1z,1d.1z(3p,c))},2r:k(5L){5L=1d.3J(10,5L||0);m 

1d.2r(c*5L)/5L},cN:k(W){M(o i=0;i<c;i++)W(i)}});o Q=L 

18({1j:k(el,1W){B($F(el)==\'2E\'){B(U.31&&1W&&(1W.1w||1W.F)){o 1w=(1W.1w)?\' 1w="\'+1W.1w+\'"\':\'\';o 

F=(1W.F)?\' F="\'+1W.F+\'"\':\'\';5j 1W.1w;5j 

1W.F;el=\'<\'+el+1w+F+\'>\'}el=P.aq(el)}el=$(el);m(!1W||!el)?el:el.2i(1W)}});o 29=L 

18({1j:k(T){m(T)?$R(T,c):c}});29.R=k(1W){M(o 1V 1b 1W){c.1L[1V]=1W[1V];c[1V]=$4Q.6P(1V)}};k $(el){B(!el)m 

N;B(el.4Y)m 33.4V(el);B([U,P].1l(el))m el;o F=$F(el);B(F==\'2E\'){el=P.7f(el);F=(el)?\'G\':N}B(F!=\'G\')m 

N;B(el.4Y)m 33.4V(el);B([\'2C\',\'cx\'].1l(el.6k.5B()))m el;$R(el,Q.1L);el.4Y=1e;m 33.4V(el)};P.77=P.35;k 

$$(){o T=[];M(o i=0,j=1c.V;i<j;i++){o 1Q=1c[i];23($F(1Q)){12\'G\':T.1k(1Q);12\'ce\':1D;12 

N:1D;12\'2E\':1Q=P.77(1Q,1e);5D:T.R(1Q)}}m $$.5R(T)};$$.5R=k(1B){o T=[];M(o 

i=0,l=1B.V;i<l;i++){B(1B[i].$6T)6C;o G=$(1B[i]);B(G&&!G.$6T){G.$6T=1e;T.1k(G)}}M(o 

i=0,l=T.V;i<l;i++)T[i].$6T=1F;m L 29(T)};29.6D=k(K){m k(){o 1q=1c;o 1y=[];o T=1e;M(o 

i=0,j=c.V,3P;i<j;i++){3P=c[i][K].3U(c[i],1q);B($F(3P)!=\'G\')T=N;1y.1k(3P)};m(T)?$$.5R(1y):1y}};Q.R=k(1K){M(o 

K 1b 1K){5O.1L[K]=1K[K];Q.1L[K]=1K[K];Q[K]=$4Q.6P(K);o 

aF=(2I.1L[K])?K+\'29\':K;29.1L[aF]=29.6D(K)}};Q.R({2i:k(1W){M(o 1V 1b 1W){o 

4x=1W[1V];23(1V){12\'8A\':c.4z(4x);1D;12\'19\':B(c.6B)c.6B(4x);1D;12\'1K\':c.6j(4x);1D;5D:c.7b(1V,4x)}}m 

c},25:k(el,aH){el=$(el);23(aH){12\'aA\':el.3r.7G(c,el);1D;12\'aB\':o 3v=el.8x();B(!3v)el.3r.81(c);17 

el.3r.7G(c,3v);1D;12\'1n\':o 84=el.9i;B(84){el.7G(c,84);1D}5D:el.81(c)}m c},8o:k(el){m 

c.25(el,\'aA\')},6O:k(el){m c.25(el,\'aB\')},ca:k(el){m c.25(el,\'3O\')},ct:k(el){m c.25(el,\'1n\')},b8:k(){o 

T=[];$1o(1c,k(4n){T=T.7y(4n)});$$(T).25(c);m c},2H:k(){m c.3r.cv(c)},9M:k(b3){o el=$(c.cp(b3!==N));B(!el.$19)m 

el;el.$19={};M(o F 1b c.$19)el.$19[F]={\'1P\':$A(c.$19[F].1P),\'1J\':$A(c.$19[F].1J)};m 

el.6G()},ck:k(el){el=$(el);c.3r.cm(el,c);m el},co:k(21){B(U.31){23(c.57()){12\'1Z\':c.c6.b7=21;m c;12\'2W\':m 

c.7b(\'21\',21)}}c.81(P.c7(21));m c},7F:k(1A){m c.1A.1l(1A,\' \')},bh:k(1A){B(!c.7F(1A))c.1A=(c.1A+\' 

\'+1A).7w();m c},b5:k(1A){c.1A=c.1A.3l(L 7V(\'(^|\\\\s)\'+1A+\'(?:\\\\s|$)\'),\'$1\').7w();m c},ch:k(1A){m 

c.7F(1A)?c.b5(1A):c.bh(1A)},1O:k(K,J){23(K){12\'22\':m 

c.bi(69(J));12\'by\':K=(U.31)?\'bn\':\'bW\'}K=K.7N();23($F(J)){12\'4S\':B(![\'bH\',\'am\'].1l(K))J+=\'5a\';1D;

12\'1B\':J=\'1v(\'+J.2h(\',\')+\')\'}c.1Z[K]=J;m 

c},4z:k(1Y){23($F(1Y)){12\'2C\':Q.6w(c,\'1O\',1Y);1D;12\'2E\':c.1Z.b7=1Y}m 

c},bi:k(22){B(22==0){B(c.1Z.4G!="4y")c.1Z.4G="4y"}17{B(c.1Z.4G!="8D")c.1Z.4G="8D"}B(!c.71||!c.71.cR)c.1Z.am=1;

B(U.31)c.1Z.3f=(22==1)?\'\':"6Z(22="+22*3b+")";c.1Z.22=c.$1X.22=22;m c},2j:k(K){K=K.7N();o 

1N=c.1Z[K];B(!$2B(1N)){B(K==\'22\')m c.$1X.22;o 1N=[];M(o 1Z 1b Q.4e){B(K==1Z){Q.4e[1Z].1o(k(s){o 

1Z=c.2j(s);1N.1k(5X(1Z)?1Z:\'8W\')},c);B(K==\'2Y\'){o 4v=1N.4v(k(52){m(52==1N[0])});m(4v)?1N[0]:N}m 1N.2h(\' 

\')}}B(K.1l(\'2Y\')){B(Q.4e.2Y.1l(K)){m[\'8X\',\'82\',\'2M\'].2K(k(p){m c.2j(K+p)},c).2h(\' \')}17 

B(Q.92.1l(K)){m[\'8S\',\'8T\',\'8U\',\'8V\'].2K(k(p){m c.2j(\'2Y\'+p+K.3l(\'2Y\',\'\'))},c).2h(\' 

\')}}B(P.9n)1N=P.9n.bL(c,1F).bN(K.9o());17 

B(c.71)1N=c.71[K]}B(U.31)1N=Q.91(K,1N,c);B(1N&&K.2t(/2G/i)&&1N.1l(\'1v\')){m 1N.66(\'1v\').6y(1,4).2K(k(2G){m 

2G.5I()}).2h(\' \')}m 1N},ba:k(){m Q.7D(c,\'2j\',1c)},5U:k(6U,1h){6U+=\'bZ\';o 

el=(1h)?c[1h]:c[6U];6Y(el&&$F(el)!=\'G\')el=el[6U];m $(el)},9F:k(){m c.5U(\'2o\')},8x:k(){m 

c.5U(\'3v\')},bq:k(){m c.5U(\'3v\',\'9i\')},7Y:k(){m c.5U(\'2o\',\'bx\')},cD:k(){m $(c.3r)},8F:k(){m 

$$(c.9A)},7Z:k(el){m!!$A(c.35(\'*\')).1l(el)},6n:k(K){o 26=Q.6z[K];B(26)m c[26];B(!U.31)m c.cK(K);o 

7z=c.cO[K];m(7z)?7z.8Z:1F},c8:k(K){o 26=Q.6z[K];B(26)c[26]=\'\';17 c.94(K);m c},c9:k(){m 

Q.7D(c,\'6n\',1c)},7b:k(K,J){o 26=Q.6z[K];B(26)c[26]=J;17 c.cq(K,J);m c},6j:k(1Y){m 

Q.6w(c,\'7b\',1Y)},5Q:k(){c.cH=$A(1c).2h(\'\');m c},57:k(){m c.6k.5B()},1m:k(){33.44(c.35(\'*\'));m 

c.5Q(\'\')}});Q.91=k(K,1N,G){B($2B(5X(1N)))m 1N;B([\'2N\',\'2z\'].1l(K)){o 

1J=(K==\'2z\')?[\'1t\',\'4k\']:[\'1n\',\'3O\'];o 

3n=0;1J.1o(k(J){3n+=G.2j(\'2Y-\'+J+\'-2z\').3c()+G.2j(\'4F-\'+J).3c()});m G[\'1C\'+K.8I()]-3n+\'5a\'}17 

B(K.2t(/2Y(.+)8X|34|4F/)){m\'8W\'}m 

1N};Q.4e={\'2Y\':[],\'4F\':[],\'34\':[]};[\'8S\',\'8T\',\'8U\',\'8V\'].1o(k(5Z){M(o 1Z 1b 

Q.4e)Q.4e[1Z].1k(1Z+5Z)});Q.92=[\'cr\',\'cs\',\'cj\'];Q.7D=k(el,28,1P){o 

1N={};$1o(1P,k(1s){1N[1s]=el[28](1s)});m 1N};Q.6w=k(el,28,80){M(o 1s 1b 80)el[28](1s,80[1s]);m el};Q.6z=L 

3y({\'4O\':\'1A\',\'M\':\'cf\',\'cw\':\'cQ\',\'cP\':\'cC\',\'cB\':\'cA\',\'cy\':\'cz\',\'cF\':\'cG\',\'cY\':\'

bV\',\'J\':\'J\',\'7M\':\'7M\',\'7P\':\'7P\',\'7O\':\'7O\'});Q.2F={7a:{2A:k(F,W){B(c.7v)c.7v(F,W,N);17 

c.bw(\'5C\'+F,W);m c},3j:k(F,W){B(c.ad)c.ad(F,W,N);17 c.bv(\'5C\'+F,W);m 

c}}};U.R(Q.2F.7a);P.R(Q.2F.7a);Q.R(Q.2F.7a);o 33={T:[],4V:k(el){B(!el.$1X){33.T.1k(el);el.$1X={\'22\':1}}m 

el},44:k(T){M(o i=0,j=T.V,el;i<j;i++){B(!(el=T[i])||!el.$1X)6C;B(el.$19)el.1i(\'44\').6G();M(o p 1b 

el.$1X)el.$1X[p]=1F;M(o p 1b 

Q.1L)el[p]=1F;el.4Y=el.$1X=el=1F;33.T.2H(el)}},1m:k(){33.4V(U);33.4V(P);33.44(33.T)}};U.2A(\'bt\',k(){U.2A(\'a

f\',33.1m);B(U.31)U.2A(\'af\',bB)});o 2R=L 18({1j:k(I){B(I&&I.$9J)m 

I;c.$9J=1e;I=I||U.I;c.I=I;c.F=I.F;c.3u=I.3u||I.bs;B(c.3u.7s==3)c.3u=c.3u.3r;c.9W=I.bU;c.bS=I.bT;c.bX=I.bY;c.c3

=I.c2;B([\'9L\',\'5r\'].1l(c.F)){c.c1=(I.9X)?I.9X/c0:-(I.bR||0)/3}17 B(c.F.1l(\'1s\')){c.6Q=I.9P||I.bQ;M(o 1w 

1b 2R.1P){B(2R.1P[1w]==c.6Q){c.1s=1w;1D}}B(c.F==\'bI\'){o 

7i=c.6Q-bE;B(7i>0&&7i<13)c.1s=\'f\'+7i}c.1s=c.1s||6W.bP(c.6Q).5B()}17 

B(c.F.2t(/(8p|3i|bO)/)){c.1M={\'x\':I.7p||I.9h+P.2X.67,\'y\':I.7q||I.9R+P.2X.6a};c.9d={\'x\':I.7p?I.7p-U.9v:I.

9h,\'y\':I.7q?I.7q-U.9t:I.9R};c.dw=(I.9P==3)||(I.eJ==2);23(c.F){12\'9E\':c.2p=I.2p||I.eK;1D;12\'9D\':c.2p=I.2p

||I.8z}c.9U()}m c},1R:k(){m c.6V().76()},6V:k(){B(c.I.6V)c.I.6V();17 c.I.eI=1e;m 

c},76:k(){B(c.I.76)c.I.76();17 c.I.eH=N;m 

c}});2R.6d={2p:k(){B(c.2p&&c.2p.7s==3)c.2p=c.2p.3r},9Y:k(){5f{2R.6d.2p.1S(c)}4X(e){c.2p=c.3u}}};2R.1L.9U=(U.7W

)?2R.6d.9Y:2R.6d.2p;2R.1P=L 

3y({\'eG\':13,\'8B\':38,\'8C\':40,\'1t\':37,\'4k\':39,\'eL\':27,\'eM\':32,\'eR\':8,\'eS\':9,\'5j\':46});Q.2F.2

q={1I:k(F,W){c.$19=c.$19||{};c.$19[F]=c.$19[F]||{\'1P\':[],\'1J\':[]};B(c.$19[F].1P.1l(W))m 

c;c.$19[F].1P.1k(W);o 7u=F;o 

2w=Q.2q[F];B(2w){B(2w.7I)2w.7I.1S(c,W);B(2w.2K)W=2w.2K;B(2w.F)7u=2w.F}B(!c.7v)W=W.3a({\'Y\':c,\'I\':1e});c.$19

[F].1J.1k(W);m c.2A(7u,W)},3Z:k(F,W){B(!c.$19||!c.$19[F])m c;o 1p=c.$19[F].1P.3S(W);B(1p==-1)m c;o 

1s=c.$19[F].1P.6y(1p,1)[0];o J=c.$19[F].1J.6y(1p,1)[0];o 

2w=Q.2q[F];B(2w){B(2w.2H)2w.2H.1S(c,W);B(2w.F)F=2w.F}m c.3j(F,J)},6B:k(1Y){m 

Q.6w(c,\'1I\',1Y)},6G:k(F){B(!c.$19)m c;B(!F){M(o 6t 1b c.$19)c.6G(6t);c.$19=1F}17 

B(c.$19[F]){c.$19[F].1P.1o(k(W){c.3Z(F,W)},c);c.$19[F]=1F}m c},1i:k(F,1q,2k){B(!c.$19||!c.$19[F])m 

c;c.$19[F].1P.1o(k(W){W.3a({\'Y\':c,\'2k\':2k,\'1c\':1q})()},c);m c},9G:k(15,F){B(!15.$19)m c;B(!F){M(o 6t 1b 

15.$19)c.9G(15,6t)}17 B(15.$19[F]){15.$19[F].1P.1o(k(W){c.1I(F,W)},c)}m 

c}};U.R(Q.2F.2q);P.R(Q.2F.2q);Q.R(Q.2F.2q);Q.2q=L 3y({\'8k\':{F:\'9E\',2K:k(I){I=L 

2R(I);B(I.2p==c||c.7Z(I.2p))m;c.1i(\'8k\',I)}},\'8h\':{F:\'9D\',2K:k(I){I=L 

2R(I);B(I.2p==c||c.7Z(I.2p))m;c.1i(\'8h\',I)}},\'5r\':{F:(U.7W)?\'9L\':\'5r\'}});7S.R({3g:k(Y,1q){m 

c.3a({\'Y\':Y,\'1c\':1q,\'I\':2R})}});29.R({eQ:k(a0){m L 29(c.3f(k(el){m(Q.57(el)==a0)}))},ai:k(1A,2D){o 

T=c.3f(k(el){m(el.1A&&el.1A.1l(1A,\' \'))});m(2D)?T:L 29(T)},ah:k(4w,2D){o 

T=c.3f(k(el){m(el.4w==4w)});m(2D)?T:L 29(T)},al:k(1w,7x,J,2D){o T=c.3f(k(el){o 2a=Q.6n(el,1w);B(!2a)m 

N;B(!7x)m 

1e;23(7x){12\'=\':m(2a==J);12\'*=\':m(2a.1l(J));12\'^=\':m(2a.6p(0,J.V)==J);12\'$=\':m(2a.6p(2a.V-J.V)==J);12\

'!=\':m(2a!=J);12\'~=\':m 2a.1l(J,\' \')}m N});m(2D)?T:L 29(T)}});k $E(1Q,3f){m($(3f)||P).a5(1Q)};k 

$eP(1Q,3f){m($(3f)||P).77(1Q)};$$.3M={\'5n\':/^(\\w*|\\*)(?:#([\\w-]+)|\\.([\\w-]+))?(?:\\[(\\w+)(?:([!*^$]?=)

["\']?([^"\'\\]]*)["\']?)?])?$/,\'43\':{7C:k(1y,36,1f,i){o 

2s=[36.eN?\'87:\':\'\',1f[1]];B(1f[2])2s.1k(\'[@4w="\',1f[2],\'"]\');B(1f[3])2s.1k(\'[1l(7y(" ", @4O, " "), " 

\',1f[3],\' ")]\');B(1f[4]){B(1f[5]&&1f[6]){23(1f[5]){12\'*=\':2s.1k(\'[1l(@\',1f[4],\', 

"\',1f[6],\'")]\');1D;12\'^=\':2s.1k(\'[cZ-eO(@\',1f[4],\', 

"\',1f[6],\'")]\');1D;12\'$=\':2s.1k(\'[eE(@\',1f[4],\', 2E-V(@\',1f[4],\') - \',1f[6].V,\' + 1) = 

"\',1f[6],\'"]\');1D;12\'=\':2s.1k(\'[@\',1f[4],\'="\',1f[6],\'"]\');1D;12\'!=\':2s.1k(\'[@\',1f[4],\'!="\',1f

[6],\'"]\')}}17{2s.1k(\'[@\',1f[4],\']\')}}1y.1k(2s.2h(\'\'));m 1y},7B:k(1y,36,2D){o T=[];o 

43=P.5M(\'.//\'+1y.2h(\'//\'),36,$$.3M.ak,eD.et,1F);M(o i=0,j=43.eu;i<j;i++)T.1k(43.es(i));m(2D)?T:L 

29(T.2K($))}},\'a3\':{7C:k(1y,36,1f,i){B(i==0){B(1f[2]){o 

el=36.7f(1f[2]);B(!el||((1f[1]!=\'*\')&&(Q.57(el)!=1f[1])))m 

N;1y=[el]}17{1y=$A(36.35(1f[1]))}}17{1y=$$.3M.35(1y,1f[1]);B(1f[2])1y=29.ah(1y,1f[2],1e)}B(1f[3])1y=29.ai(1y,1

f[3],1e);B(1f[4])1y=29.al(1y,1f[4],1f[5],1f[6],1e);m 

1y},7B:k(1y,36,2D){m(2D)?1y:$$.5R(1y)}},ak:k(aj){m(aj==\'87\')?\'96://aQ.er.eo/ep/87\':N},35:k(36,6k){o 

7Q=[];M(o i=0,j=36.V;i<j;i++)7Q.R(36[i].35(6k));m 7Q}};$$.3M.28=(U.43)?\'43\':\'a3\';Q.2F.7H={7e:k(1Q,2D){o 

1y=[];1Q=1Q.5Y().66(\' \');M(o i=0,j=1Q.V;i<j;i++){o a2=1Q[i];o 

1f=a2.2T($$.3M.5n);B(!1f)1D;1f[1]=1f[1]||\'*\';o 2s=$$.3M[$$.3M.28].7C(1y,c,1f,i);B(!2s)1D;1y=2s}m 

$$.3M[$$.3M.28].7B(1y,c,2D)},a5:k(1Q){m $(c.7e(1Q,1e)[0]||N)},77:k(1Q,2D){o T=[];1Q=1Q.66(\',\');M(o 

i=0,j=1Q.V;i<j;i++)T=T.7y(c.7e(1Q[i],1e));m(2D)?T:$$.5R(T)},ew:k(1A){m c.7e(\'.\'+1A)}};Q.R({7f:k(4w){o 

el=P.7f(4w);B(!el)m N;M(o 1r=el.3r;1r!=c;1r=1r.3r){B(!1r)m N}m 

el}});P.R(Q.2F.7H);Q.R(Q.2F.7H);Q.R({4b:k(){23(c.57()){12\'4o\':o 

1J=[];$1o(c.C,k(3B){B(3B.eB)1J.1k($5F(3B.J,3B.21))});m(c.7O)?1J:1J[0];12\'99\':B(!(c.7P&&[\'eC\',\'eA\'].1l(c.

F))&&![\'4y\',\'21\',\'ez\'].1l(c.F))1D;12\'9c\':m c.J}m N},9b:k(){m 

$$(c.35(\'99\'),c.35(\'4o\'),c.35(\'9c\'))},5l:k(){o 51=[];c.9b().1o(k(el){o 1w=el.1w;o 

J=el.4b();B(J===N||!1w||el.7M)m;o 7L=k(4x){51.1k(1w+\'=\'+6e(4x))};B($F(J)==\'1B\')J.1o(7L);17 7L(J)});m 

51.2h(\'&\')}});Q.R({3x:k(x,y){c.67=x;c.6a=y},6N:k(){m{\'2J\':{\'x\':c.67,\'y\':c.6a},\'3n\':{\'x\':c.42,\'y\'

:c.3T},\'6M\':{\'x\':c.6H,\'y\':c.5N}}},3o:k(2m){2m=2m||[];o 

el=c,1t=0,1n=0;do{1t+=el.ex||0;1n+=el.ey||0;el=el.eT}6Y(el);2m.1o(k(G){1t-=G.67||0;1n-=G.6a||0});m{\'x\':1t,\'

y\':1n}},aX:k(2m){m c.3o(2m).y},aW:k(2m){m c.3o(2m).x},4A:k(2m){o 1u=c.3o(2m);o 

O={\'2z\':c.42,\'2N\':c.3T,\'1t\':1u.x,\'1n\':1u.y};O.4k=O.1t+O.2z;O.3O=O.1n+O.2N;m 

O}});Q.2q.7K={7I:k(W){B(U.70){W.1S(c);m}o 

5V=k(){B(U.70)m;U.70=1e;U.1H=$4Z(U.1H);c.1i(\'7K\')}.Y(c);B(P.5c&&U.4M){U.1H=k(){B([\'70\',\'8q\'].1l(P.5c))5V

()}.4f(50)}17 B(P.5c&&U.31){B(!$(\'7J\')){o 59=(U.5b.f5==\'f7:\')?\'://0\':\'8n:f9(0)\';P.f3(\'<2W 4w="7J" eX 

59="\'+59+\'"><\\/2W>\');$(\'7J\').6c=k(){B(c.5c==\'8q\')5V()}}}17{U.2A("4r",5V);P.2A("eV",5V)}}};U.f2=k(W){m 

c.1I(\'7K\',W)};U.R({8f:k(){B(c.65)m c.f0;B(c.8Y)m P.4H.90;m P.2X.90},8l:k(){B(c.65)m c.eZ;B(c.8Y)m P.4H.9e;m 

P.2X.9e},9w:k(){B(c.31)m 1d.1z(P.2X.42,P.2X.6H);B(c.4M)m P.4H.6H;m P.2X.6H},9x:k(){B(c.31)m 

1d.1z(P.2X.3T,P.2X.5N);B(c.4M)m P.4H.5N;m P.2X.5N},8s:k(){m c.9v||P.2X.67},8u:k(){m 

c.9t||P.2X.6a},6N:k(){m{\'3n\':{\'x\':c.8f(),\'y\':c.8l()},\'6M\':{\'x\':c.9w(),\'y\':c.9x()},\'2J\':{\'x\':c.

8s(),\'y\':c.8u()}}},3o:k(){m{\'x\':0,\'y\':0}}});o 1g={f8:{}};1g.2O=L 

18({C:{45:18.1m,1T:18.1m,7m:18.1m,2b:k(p){m-(1d.as(1d.85*p)-1)/2},49:eY,2u:\'5a\',3Q:1e,9z:50},1j:k(C){c.G=c.G

||1F;c.2U(C);B(c.C.1j)c.C.1j.1S(c)},2l:k(){o 

3A=$3A();B(3A<c.3A+c.C.49){c.4l=c.C.2b((3A-c.3A)/c.C.49);c.4s();c.4p()}17{c.1R(1e);c.2i(c.14);c.1i(\'1T\',c.G,

10);c.7t()}},2i:k(14){c.1a=14;c.4p();m 

c},4s:k(){c.1a=c.4t(c.15,c.14)},4t:k(15,14){m(14-15)*c.4l+15},1h:k(15,14){B(!c.C.3Q)c.1R();17 B(c.1H)m 

c;c.15=15;c.14=14;c.4h=c.14-c.15;c.3A=$3A();c.1H=c.2l.4f(1d.2r(ax/c.C.9z),c);c.1i(\'45\',c.G);m 

c},1R:k(2f){B(!c.1H)m c;c.1H=$4Z(c.1H);B(!2f)c.1i(\'7m\',c.G);m c},2w:k(15,14){m c.1h(15,14)},eW:k(2f){m 

c.1R(2f)}});1g.2O.3q(L 8b,L 2q,L 4i);1g.3s={4o:k(K,14){B(K.2t(/2G/i))m c.2M;B(14.1l&&14.1l(\' \'))m c.6D;m 

c.9q},2P:k(el,K,5d){B(!5d.1k)5d=[5d];o 15=5d[0],14=5d[1];B(!14&&14!=0){14=15;15=el.2j(K)}o 

1x=c.4o(K,14);m{15:1x.2P(15),14:1x.2P(14),1x:1x}}};1g.3s.9q={2P:k(J){m 69(J)},55:k(15,14,2x){m 

2x.4t(15,14)},4b:k(J,2u,K){B(2u==\'5a\'&&K!=\'22\')J=1d.2r(J);m J+2u}};1g.3s.6D={2P:k(J){m J.1k?J:J.66(\' 

\').2K(k(v){m 69(v)})},55:k(15,14,2x){o 1a=[];M(o i=0;i<15.V;i++)1a[i]=2x.4t(15[i],14[i]);m 

1a},4b:k(J,2u,K){B(2u==\'5a\'&&K!=\'22\')J=J.2K(1d.2r);m J.2h(2u+\' \')+2u}};1g.3s.2M={2P:k(J){m 

J.1k?J:J.5H(1e)},55:k(15,14,2x){o 1a=[];M(o i=0;i<15.V;i++)1a[i]=1d.2r(2x.4t(15[i],14[i]));m 

1a},4b:k(J){m\'1v(\'+J.2h(\',\')+\')\'}};1g.82=1g.2O.R({1j:k(el,K,C){c.G=$(el);c.K=K;c.1r(C)},5k:k(){m 

c.2i(0)},4s:k(){c.1a=c.1x.55(c.15,c.14,c)},2i:k(14){c.1x=1g.3s.4o(c.K,14);m 

c.1r(c.1x.2P(14))},1h:k(15,14){B(c.1H&&c.C.3Q)m c;o 2e=1g.3s.2P(c.G,c.K,[15,14]);c.1x=2e.1x;m 

c.1r(2e.15,2e.14)},4p:k(){c.G.1O(c.K,c.1x.4b(c.1a,c.C.2u,c.K))}});Q.R({f1:k(K,C){m L 

1g.82(c,K,C)}});1g.4e=1g.2O.R({1j:k(el,C){c.G=$(el);c.1r(C)},4s:k(){M(o p 1b 

c.15)c.1a[p]=c.1x[p].55(c.15[p],c.14[p],c)},2i:k(14){o 2e={};c.1x={};M(o p 1b 

14){c.1x[p]=1g.3s.4o(p,14[p]);2e[p]=c.1x[p].2P(14[p])}m c.1r(2e)},1h:k(O){B(c.1H&&c.C.3Q)m c;c.1a={};c.1x={};o 

15={},14={};M(o p 1b O){o 2e=1g.3s.2P(c.G,p,O[p]);15[p]=2e.15;14[p]=2e.14;c.1x[p]=2e.1x}m 

c.1r(15,14)},4p:k(){M(o p 1b c.1a)c.G.1O(p,c.1x[p].4b(c.1a[p],c.C.2u,p))}});Q.R({3t:k(C){m L 

1g.4e(c,C)}});1g.29=1g.2O.R({1j:k(T,C){c.T=$$(T);c.1r(C)},4s:k(){M(o i 1b c.15){o 

5o=c.15[i],4a=c.14[i],3z=c.1x[i],5s=c.1a[i]={};M(o p 1b 5o)5s[p]=3z[p].55(5o[p],4a[p],c)}},2i:k(14){o 

2e={};c.1x={};M(o i 1b 14){o 4a=14[i],3z=c.1x[i]={},9l=2e[i]={};M(o p 1b 

4a){3z[p]=1g.3s.4o(p,4a[p]);9l[p]=3z[p].2P(4a[p])}}m c.1r(2e)},1h:k(O){B(c.1H&&c.C.3Q)m c;c.1a={};c.1x={};o 

15={},14={};M(o i 1b O){o 7A=O[i],5o=15[i]={},4a=14[i]={},3z=c.1x[i]={};M(o p 1b 7A){o 

2e=1g.3s.2P(c.T[i],p,7A[p]);5o[p]=2e.15;4a[p]=2e.14;3z[p]=2e.1x}}m c.1r(15,14)},4p:k(){M(o i 1b c.1a){o 

5s=c.1a[i],3z=c.1x[i];M(o p 1b 

5s)c.T[i].1O(p,3z[p].4b(5s[p],c.C.2u,p))}}});1g.ac=1g.2O.R({C:{2m:[],1C:{\'x\':0,\'y\':0}},1j:k(G,C){c.1a=[];c

.G=$(G);c.1G={\'1R\':c.1R.Y(c,N)};c.1I(\'45\',k(){P.1I(\'5r\',c.1G.1R)}.Y(c));c.3Z(\'1T\',k(){P.3Z(\'5r\',c.1G

.1R)}.Y(c));c.1r(C)},4s:k(){M(o i=0;i<2;i++)c.1a[i]=c.4t(c.15[i],c.14[i])},3x:k(x,y){B(c.1H&&c.C.3Q)m c;o 

el=c.G.6N();o 1J={\'x\':x,\'y\':y};M(o z 1b el.3n){o 

1z=el.6M[z]-el.3n[z];B($2B(1J[z]))1J[z]=($F(1J[z])==\'4S\')?1J[z].1E(0,1z):1z;17 

1J[z]=el.2J[z];1J[z]+=c.C.1C[z]}m c.1h([el.2J.x,el.2J.y],[1J.x,1J.y])},dr:k(){m c.3x(N,0)},dq:k(){m 

c.3x(N,\'bg\')},dl:k(){m c.3x(0,N)},dm:k(){m c.3x(\'bg\',N)},8z:k(el){o 1r=c.G.3o(c.C.2m);o 

3u=$(el).3o(c.C.2m);m 

c.3x(3u.x-1r.x,3u.y-1r.y)},4p:k(){c.G.3x(c.1a[0],c.1a[1])}});1g.dn=1g.2O.R({C:{2d:\'8J\'},1j:k(el,C){c.G=$(el)

;c.3d=L 

Q(\'4K\',{\'8A\':$R(c.G.ba(\'34\'),{\'aT\':\'4y\'})}).6O(c.G).b8(c.G);c.G.1O(\'34\',0);c.2U(C);c.1a=[];c.1r(c.

C);B(U.65)c.1I(\'1T\',k(){c.G.2H().25(c.3d)})},4s:k(){M(o 

i=0;i<2;i++)c.1a[i]=c.4t(c.15[i],c.14[i])},8J:k(){c.34=\'34-1n\';c.5z=\'2N\';c.1C=c.G.3T},8K:k(){c.34=\'34-1t\

';c.5z=\'2z\';c.1C=c.G.42},bc:k(2d){c[2d||c.C.2d]();m 

c.1h([c.G.2j(c.34).3c(),c.3d.2j(c.5z).3c()],[0,c.1C])},be:k(2d){c[2d||c.C.2d]();m 

c.1h([c.G.2j(c.34).3c(),c.3d.2j(c.5z).3c()],[-c.1C,0])},5k:k(2d){c[2d||c.C.2d]();m 

c.2i([-c.1C,0])},41:k(2d){c[2d||c.C.2d]();m c.2i([0,c.1C])},en:k(2d){B(c.3d.3T==0||c.3d.42==0)m c.bc(2d);m 

c.be(2d)},4p:k(){c.G.1O(c.34,c.1a[0]+c.C.2u);c.3d.1O(c.5z,c.1a[1]+c.C.2u)}});1g.86=k(2b,2S){2S=2S||[];B($F(2S)

!=\'1B\')2S=[2S];m $R(2b,{dC:k(1p){m 2b(1p,2S)},dD:k(1p){m 

1-2b(1-1p,2S)},dE:k(1p){m(1p<=0.5)?2b(2*1p,2S)/2:(2-2b(2*(1-1p),2S))/2}})};1g.3m=L 3y({dB:k(p){m 

p}});1g.3m.R=k(7R){M(o 2b 1b 7R){1g.3m[2b]=L 

1g.86(7R[2b]);1g.3m.88(2b)}};1g.3m.88=k(2b){[\'dA\',\'dx\',\'dy\'].1o(k(83){1g.3m[2b.5B()+83]=1g.3m[2b][\'dk\'

+83]})};1g.3m.R({dj:k(p,x){m 1d.3J(p,x[0]||6)},d6:k(p){m 1d.3J(2,8*(p-1))},d7:k(p){m 

1-1d.aD(1d.d8(p))},d5:k(p){m 1-1d.aD((1-p)*1d.85/2)},d4:k(p,x){x=x[0]||1.d0;m 

1d.3J(p,2)*((x+1)*p-x)},d1:k(p){o J;M(o 

a=0,b=1;1;a+=b,b/=2){B(p>=(7-4*a)/11){J=-1d.3J((11-6*a-11*p)/4,2)+b*b;1D}}m J},d2:k(p,x){m 

1d.3J(2,10*--p)*1d.as(20*p*1d.85*(x[0]||1)/3)}});[\'d9\',\'da\',\'dg\',\'dh\'].1o(k(2b,i){1g.3m[2b]=L 

1g.86(k(p){m 1d.3J(p,[i+2])});1g.3m.88(2b)});o 3Y={};3Y.2O=L 

18({C:{3K:N,2u:\'5a\',45:18.1m,au:18.1m,1T:18.1m,av:18.1m,8M:18.1m,1E:N,3F:{x:\'1t\',y:\'1n\'},4E:N,6u:6},1j:k

(el,C){c.2U(C);c.G=$(el);c.3K=$(c.C.3K)||c.G;c.3i={\'1a\':{},\'1p\':{}};c.J={\'1h\':{},\'1a\':{}};c.1G={\'1h\'

:c.1h.3g(c),\'3V\':c.3V.3g(c),\'3L\':c.3L.3g(c),\'1R\':c.1R.Y(c)};c.6K();B(c.C.1j)c.C.1j.1S(c)},6K:k(){c.3K.1I

(\'64\',c.1G.1h);m c},9K:k(){c.3K.3Z(\'64\',c.1G.1h);m c},1h:k(I){c.1i(\'au\',c.G);c.3i.1h=I.1M;o 

1E=c.C.1E;c.1E={\'x\':[],\'y\':[]};M(o z 1b 

c.C.3F){B(!c.C.3F[z])6C;c.J.1a[z]=c.G.2j(c.C.3F[z]).3c();c.3i.1p[z]=I.1M[z]-c.J.1a[z];B(1E&&1E[z]){M(o 

i=0;i<2;i++){B($2B(1E[z][i]))c.1E[z][i]=($F(1E[z][i])==\'k\')?1E[z][i]():1E[z][i]}}}B($F(c.C.4E)==\'4S\')c.C.4

E={\'x\':c.C.4E,\'y\':c.C.4E};P.2A(\'2V\',c.1G.3V);P.2A(\'6S\',c.1G.1R);c.1i(\'45\',c.G);I.1R()},3V:k(I){o 

aw=1d.2r(1d.dd(1d.3J(I.1M.x-c.3i.1h.x,2)+1d.3J(I.1M.y-c.3i.1h.y,2)));B(aw>c.C.6u){P.3j(\'2V\',c.1G.3V);P.2A(\'

2V\',c.1G.3L);c.3L(I);c.1i(\'av\',c.G)}I.1R()},3L:k(I){c.5K=N;c.3i.1a=I.1M;M(o z 1b 

c.C.3F){B(!c.C.3F[z])6C;c.J.1a[z]=c.3i.1a[z]-c.3i.1p[z];B(c.1E[z]){B($2B(c.1E[z][1])&&(c.J.1a[z]>c.1E[z][1])){

c.J.1a[z]=c.1E[z][1];c.5K=1e}17 

B($2B(c.1E[z][0])&&(c.J.1a[z]<c.1E[z][0])){c.J.1a[z]=c.1E[z][0];c.5K=1e}}B(c.C.4E[z])c.J.1a[z]-=(c.J.1a[z]%c.C

.4E[z]);c.G.1O(c.C.3F[z],c.J.1a[z]+c.C.2u)}c.1i(\'8M\',c.G);I.1R()},1R:k(){P.3j(\'2V\',c.1G.3V);P.3j(\'2V\',c.

1G.3L);P.3j(\'6S\',c.1G.1R);c.1i(\'1T\',c.G)}});3Y.2O.3q(L 2q,L 4i);Q.R({e8:k(C){m L 

3Y.2O(c,$2c({3F:{x:\'2z\',y:\'2N\'}},C))}});3Y.aM=3Y.2O.R({C:{6q:[],2g:N,2m:[]},1j:k(el,C){c.2U(C);c.G=$(el);c

.6q=$$(c.C.6q);c.2g=$(c.C.2g);c.1u={\'G\':c.G.2j(\'1u\'),\'2g\':N};B(c.2g)c.1u.2g=c.2g.2j(\'1u\');B(![\'3X\',\

'7h\'].1l(c.1u.G))c.1u.G=\'3X\';o 1n=c.G.2j(\'1n\').3c();o 

1t=c.G.2j(\'1t\').3c();B(c.1u.G==\'3X\'&&![\'7h\',\'3X\',\'5S\'].1l(c.1u.2g)){1n=$2B(1n)?1n:c.G.aX(c.C.2m);1t=

$2B(1t)?1t:c.G.aW(c.C.2m)}17{1n=$2B(1n)?1n:0;1t=$2B(1t)?1t:0}c.G.4z({\'1n\':1n,\'1t\':1t,\'1u\':c.1u.G});c.1r(

c.G)},1h:k(I){c.3e=1F;B(c.2g){o 4J=c.2g.4A();o 

el=c.G.4A();B(c.1u.G==\'3X\'&&![\'7h\',\'3X\',\'5S\'].1l(c.1u.2g)){c.C.1E={\'x\':[4J.1t,4J.4k-el.2z],\'y\':[4J

.1n,4J.3O-el.2N]}}17{c.C.1E={\'y\':[0,4J.2N-el.2N],\'x\':[0,4J.2z-el.2z]}}}c.1r(I)},3L:k(I){c.1r(I);o 

3e=c.5K?N:c.6q.3f(c.b1,c).7Y();B(c.3e!=3e){B(c.3e)c.3e.1i(\'e2\',[c.G,c]);c.3e=3e?3e.1i(\'e3\',[c.G,c]):1F}m 

c},b1:k(el){el=el.4A(c.C.2m);o 

1a=c.3i.1a;m(1a.x>el.1t&&1a.x<el.4k&&1a.y<el.3O&&1a.y>el.1n)},1R:k(){B(c.3e&&!c.5K)c.3e.1i(\'eb\',[c.G,c]);17 

c.G.1i(\'ec\',c);c.1r();m c}});Q.R({ei:k(C){m L 3Y.aM(c,C)}});o 6h=L 

18({C:{28:\'4T\',9p:1e,93:18.1m,4L:18.1m,6E:18.1m,aS:1e,5J:\'ej-8\',9m:N,4B:{}},7r:k(){c.2y=(U.7d)?L 

7d():(U.31?L aO(\'ek.eh\'):N);m 

c},1j:k(C){c.7r().2U(C);c.C.5G=c.C.5G||c.5G;c.4B={};B(c.C.aS&&c.C.28==\'4T\'){o 5J=(c.C.5J)?\'; 

eg=\'+c.C.5J:\'\';c.5i(\'9Q-F\',\'ab/x-aQ-ed-ee\'+5J)}B(c.C.1j)c.C.1j.1S(c)},9g:k(){B(c.2y.5c!=4||!c.4W)m;c.4W

=N;o 4C=0;5f{4C=c.2y.4C}4X(e){};B(c.C.5G.1S(c,4C))c.4L();17 

c.6E();c.2y.6c=18.1m},5G:k(4C){m((4C>=e0)&&(4C<dN))},4L:k(){c.3w={\'21\':c.2y.dO,\'5q\':c.2y.dP};c.1i(\'4L\',[

c.3w.21,c.3w.5q]);c.7t()},6E:k(){c.1i(\'6E\',c.2y)},5i:k(1w,J){c.4B[1w]=J;m c},5y:k(2L,1U){B(c.C.9m)c.98();17 

B(c.4W)m 

c;c.4W=1e;B(1U&&c.C.28==\'4N\')2L=2L+(2L.1l(\'?\')?\'&\':\'?\')+1U,1U=1F;c.2y.dM(c.C.28,2L,c.C.9p);c.2y.6c=c.9

g.Y(c);B((c.C.28==\'4T\')&&c.2y.dL)c.5i(\'dH\',\'dI\');$R(c.4B,c.C.4B);M(o F 1b 

c.4B)5f{c.2y.dJ(F,c.4B[F])}4X(e){};c.1i(\'93\');c.2y.5y($5F(1U,1F));m c},98:k(){B(!c.4W)m 

c;c.4W=N;c.2y.aC();c.2y.6c=18.1m;c.7r();c.1i(\'7m\');m c}});6h.3q(L 8b,L 2q,L 4i);o 

a9=6h.R({C:{1U:1F,7o:1F,1T:18.1m,72:N,7U:N},1j:k(2L,C){c.1I(\'4L\',c.1T);c.2U(C);c.C.1U=c.C.1U||c.C.a7;B(![\'4

T\',\'4N\'].1l(c.C.28)){c.5p=\'5p=\'+c.C.28;c.C.28=\'4T\'}c.1r();c.5i(\'X-dR-dX\',\'7d\');c.5i(\'dY\',\'21/8n, 

21/dZ, ab/5q, 21/5q, 

*/*\');c.2L=2L},1T:k(){B(c.C.7o)$(c.C.7o).1m().5Q(c.3w.21);B(c.C.72||c.C.7U)c.72();c.1i(\'1T\',[c.3w.21,c.3w.5

q],20)},9C:k(1U){1U=1U||c.C.1U;23($F(1U)){12\'G\':1U=$(1U).5l();1D;12\'2C\':1U=7c.5l(1U)}B(c.5p)1U=(1U)?[c.5p,

1U].2h(\'&\'):c.5p;m c.5y(c.2L,1U)},72:k(){B(c.C.7U||/(dT|dU)2W/.2t(c.9Z(\'9Q-F\')))o 4d=c.3w.21;17{o 

2W,4d=[],5n=/<2W[^>]*>([\\s\\S]*?)<\\/2W>/dS;6Y((2W=5n.dV(c.3w.21)))4d.1k(2W[1]);4d=4d.2h(\'\\n\')}B(4d)(U.9N)

?U.9N(4d):U.9H(4d,0)},9Z:k(1w){5f{m c.2y.dW(1w)}4X(e){};m 1F}});7c.5l=k(1Y){o 51=[];M(o K 1b 

1Y)51.1k(6e(K)+\'=\'+6e(1Y[K]));m 51.2h(\'&\')};Q.R({5y:k(C){m L 

a9(c.6n(\'dQ\'),$2c({a7:c.5l()},C,{28:\'4T\'})).9C()}});o 3I=L 

3y({C:{6f:N,6i:N,49:N,56:N},2i:k(1s,J,C){C=$2c(c.C,C);J=6e(J);B(C.6f)J+=\'; 6f=\'+C.6f;B(C.6i)J+=\'; 

6i=\'+C.6i;B(C.49){o 6x=L 97();6x.dK(6x.bf()+C.49*24*60*60*ax);J+=\'; e1=\'+6x.ef()}B(C.56)J+=\'; 

56\';P.4D=1s+\'=\'+J;m $R(C,{\'1s\':1s,\'J\':J})},4N:k(1s){o 

J=P.4D.2T(\'(?:^|;)\\\\s*\'+1s.aK()+\'=([^;]*)\');m 

J?e5(J[1]):N},2H:k(4D,C){B($F(4D)==\'2C\')c.2i(4D.1s,\'\',$2c(4D,{49:-1}));17 

c.2i(4D,\'\',$2c(C,{49:-1}))}});o 

3G={4u:k(O){23($F(O)){12\'2E\':m\'"\'+O.3l(/(["\\\\])/g,\'\\\\$1\')+\'"\';12\'1B\':m\'[\'+O.2K(3G.4u).2h(\',\'

)+\']\';12\'2C\':o 2E=[];M(o K 1b O)2E.1k(3G.4u(K)+\':\'+3G.4u(O[K]));m\'{\'+2E.2h(\',\')+\'}\'}m 

6W(O)},5M:k(4q,56){m(($F(4q)!=\'2E\')||(56&&!4q.2t(/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+e4-u 

\\n\\r\\t])+?$/)))?N:e6(\'(\'+4q+\')\')}};3G.e7=6h.R({1j:k(2L,C){c.2L=2L;c.1I(\'4L\',c.1T);c.1r(C);c.5i(\'X-ea

\',\'e9\')},5y:k(O){m c.1r(c.2L,\'dG=\'+3G.4u(O))},1T:k(){c.1i(\'1T\',3G.5M(c.3w.21,c.C.56))}});o bb=L 

3y({8n:k(1Y,1K){1K=$2c({\'5A\':18.1m},1K);o 2W=L 

Q(\'2W\',{\'59\':1Y}).6B({\'4r\':1K.5A,\'dF\':k(){B(c.5c==\'8q\')c.1i(\'4r\')}});5j 1K.5A;m 

2W.6j(1K).25(P.6s)},1x:k(1Y,1K){m L 

Q(\'4m\',$2c({\'95\':\'dc\',\'db\':\'de\',\'F\':\'21/1x\',\'5h\':1Y},1K)).25(P.6s)},58:k(1Y,1K){1K=$2c({\'5A\'

:18.1m,\'df\':18.1m,\'di\':18.1m},1K);o 58=L d3();58.59=1Y;o G=L 

Q(\'8t\',{\'59\':1Y});[\'4r\',\'aC\',\'dz\'].1o(k(F){o I=1K[\'5C\'+F];5j 

1K[\'5C\'+F];G.1I(F,k(){c.3Z(F,1c.8r);I.1S(c)})});B(58.2z&&58.2N)G.1i(\'4r\',G,1);m 

G.6j(1K)},6F:k(5e,C){C=$2c({1T:18.1m,b6:18.1m},C);B(!5e.1k)5e=[5e];o 6F=[];o 6m=0;5e.1o(k(1Y){o 8t=L 

bb.58(1Y,{\'5A\':k(){C.b6.1S(c,6m);6m++;B(6m==5e.V)C.1T()}});6F.1k(8t)});m L 29(6F)}});o 3H=L 

18({V:0,1j:k(2C){c.O=2C||{};c.5u()},4N:k(1s){m(c.6L(1s))?c.O[1s]:1F},6L:k(1s){m(1s 1b 

c.O)},2i:k(1s,J){B(!c.6L(1s))c.V++;c.O[1s]=J;m c},5u:k(){c.V=0;M(o p 1b c.O)c.V++;m c},2H:k(1s){B(!c.6L(1s))m 

c;5j c.O[1s];c.V--;m c},1o:k(W,Y){$1o(c.O,W,Y)},R:k(O){$R(c.O,O);m c.5u()},2c:k(){c.O=$2c.3U(1F,[c.O].R(1c));m 

c.5u()},1m:k(){c.O={};c.V=0;m c},1P:k(){o 1P=[];M(o K 1b c.O)1P.1k(K);m 1P},1J:k(){o 1J=[];M(o K 1b 

c.O)1J.1k(c.O[K]);m 1J}});k $H(O){m L 

3H(O)};3H.3I=3H.R({1j:k(1w,C){c.1w=1w;c.C=$R({\'bj\':1e},C||{});c.4r()},bd:k(){B(c.V==0){3I.2H(c.1w,c.C);m 

1e}o 4q=3G.4u(c.O);B(4q.V>dv)m N;3I.2i(c.1w,4q,c.C);m 

1e},4r:k(){c.O=3G.5M(3I.4N(c.1w),1e)||{};c.5u()}});3H.3I.2F={};[\'R\',\'2i\',\'2c\',\'1m\',\'2H\'].1o(k(28){3H

.3I.2F[28]=k(){3H.1L[28].3U(c,1c);B(c.C.bj)c.bd();m c}});3H.3I.3q(3H.3I.2F);o 2M=L 

18({1j:k(2G,F){F=F||(2G.1k?\'1v\':\'3C\');o 

1v,2n;23(F){12\'1v\':1v=2G;2n=1v.8d();1D;12\'2n\':1v=2G.9r();2n=2G;1D;5D:1v=2G.5H(1e);2n=1v.8d()}1v.2n=2n;1v.3

C=1v.5I();m $R(1v,2M.1L)},4R:k(){o 5m=$A(1c);o 6Z=($F(5m[5m.V-1])==\'4S\')?5m.dp():50;o 

1v=c.8m();5m.1o(k(2G){2G=L 2M(2G);M(o i=0;i<3;i++)1v[i]=1d.2r((1v[i]/ 3b * (3b - 6Z)) + (2G[i] /3b*6Z))});m L 

2M(1v,\'1v\')},du:k(){m L 2M(c.2K(k(J){m 53-J}))},dt:k(J){m L 2M([J,c.2n[1],c.2n[2]],\'2n\')},ds:k(6X){m L 

2M([c.2n[0],6X,c.2n[2]],\'2n\')},em:k(6X){m L 2M([c.2n[0],c.2n[1],6X],\'2n\')}});k $eq(r,g,b){m L 

2M([r,g,b],\'1v\')};k $f6(h,s,b){m L 2M([h,s,b],\'2n\')};2I.R({8d:k(){o 5t=c[0],5v=c[1],73=c[2];o 2Z,6l,8g;o 

1z=1d.1z(5t,5v,73),3p=1d.3p(5t,5v,73);o 4l=1z-3p;8g=1z/53;6l=(1z!=0)?4l/1z:0;B(6l==0){2Z=0}17{o 

8c=(1z-5t)/4l;o 8R=(1z-5v)/4l;o br=(1z-73)/4l;B(5t==1z)2Z=br-8R;17 B(5v==1z)2Z=2+8c-br;17 

2Z=4+8R-8c;2Z/=6;B(2Z<0)2Z++}m[1d.2r(2Z*9y),1d.2r(6l*3b),1d.2r(8g*3b)]},9r:k(){o 

br=1d.2r(c[2]/3b*53);B(c[1]==0){m[br,br,br]}17{o 2Z=c[0]%9y;o f=2Z%60;o p=1d.2r((c[2]*(3b-c[1]))/f4*53);o 

q=1d.2r((c[2]*(9s-c[1]*f))/9u*53);o t=1d.2r((c[2]*(9s-c[1]*(60-f)))/9u*53);23(1d.an(2Z/60)){12 0:m[br,t,p];12 

1:m[q,br,p];12 2:m[p,br,t];12 3:m[p,q,br];12 4:m[t,p,br];12 5:m[br,p,q]}}m N}});o 9B=L 

18({C:{5W:20,8w:1,79:k(x,y){c.G.3x(x,y)}},1j:k(G,C){c.2U(C);c.G=$(G);c.8j=([U,P].1l(G))?$(P.4H):c.G},1h:k(){c.

8i=c.9a.3g(c);c.8j.2A(\'2V\',c.8i)},1R:k(){c.8j.3j(\'2V\',c.8i);c.1H=$4Z(c.1H)},9a:k(I){c.1M=(c.G==U)?I.9d:I.1

M;B(!c.1H)c.1H=c.2J.4f(50,c)},2J:k(){o el=c.G.6N();o 1p=c.G.3o();o 4h={\'x\':0,\'y\':0};M(o z 1b 

c.1M){B(c.1M[z]<(c.C.5W+1p[z])&&el.2J[z]!=0)4h[z]=(c.1M[z]-c.C.5W-1p[z])*c.C.8w;17 

B(c.1M[z]+c.C.5W>(el.3n[z]+1p[z])&&el.2J[z]+el.3n[z]!=el.6M[z])4h[z]=(c.1M[z]-el.3n[z]+c.C.5W-1p[z])*c.C.8w}B(

4h.y||4h.x)c.1i(\'79\',[el.2J.x+4h.x,el.2J.y+4h.y])}});9B.3q(L 2q,L 4i);o 8G=L 

18({C:{79:18.1m,1T:18.1m,8P:k(1p){c.48.1O(c.p,1p)},2d:\'8K\',6r:3b,1C:0},1j:k(el,48,C){c.G=$(el);c.48=$(48);c.

2U(C);c.8O=-1;c.8N=-1;c.2l=-1;c.G.1I(\'64\',c.aa.3g(c));o 

7j,1C;23(c.C.2d){12\'8K\':c.z=\'x\';c.p=\'1t\';7j={\'x\':\'1t\',\'y\':N};1C=\'42\';1D;12\'8J\':c.z=\'y\';c.p=\

'1n\';7j={\'x\':N,\'y\':\'1n\'};1C=\'3T\'}c.1z=c.G[1C]-c.48[1C]+(c.C.1C*2);c.a1=c.48[1C]/2;c.a6=c.G[\'4N\'+c.p

.8I()].Y(c.G);c.48.1O(\'1u\',\'7h\').1O(c.p,-c.C.1C);o 8L={};8L[c.z]=[-c.C.1C,c.1z-c.C.1C];c.3L=L 

3Y.2O(c.48,{1E:8L,3F:7j,6u:0,45:k(){c.75()}.Y(c),8M:k(){c.75()}.Y(c),1T:k(){c.75();c.2f()}.Y(c)});B(c.C.1j)c.C

.1j.1S(c)},2i:k(2l){c.2l=2l.1E(0,c.C.6r);c.78();c.2f();c.1i(\'8P\',c.a4(c.2l));m c},aa:k(I){o 

1u=I.1M[c.z]-c.a6()-c.a1;1u=1u.1E(-c.C.1C,c.1z-c.C.1C);c.2l=c.8H(1u);c.78();c.2f();c.1i(\'8P\',1u)},75:k(){c.2

l=c.8H(c.3L.J.1a[c.z]);c.78()},78:k(){B(c.8O!=c.2l){c.8O=c.2l;c.1i(\'79\',c.2l)}},2f:k(){B(c.8N!==c.2l){c.8N=c

.2l;c.1i(\'1T\',c.2l+\'\')}},8H:k(1u){m 1d.2r((1u+c.C.1C)/c.1z*c.C.6r)},a4:k(2l){m c.1z*2l/c.C.6r}});8G.3q(L 

2q);8G.3q(L 4i);o ev=1g.ac.R({1j:k(C){c.1r(U,C);c.68=(c.C.68)?$$(c.C.68):$$(P.68);o 

5b=U.5b.5h.2T(/^[^#]*/)[0]+\'#\';c.68.1o(k(4m){B(4m.5h.3S(5b)!=0)m;o 

3E=4m.5h.6p(5b.V);B(3E&&$(3E))c.ag(4m,3E)},c);B(!U.65)c.1I(\'1T\',k(){U.5b.eU=c.3E})},ag:k(4m,3E){4m.1I(\'8p\'

,k(I){c.3E=3E;c.8z(3E);I.1R()}.3g(c))}});o 9S=L 

18({C:{4I:N,45:18.1m,1T:18.1m,2Q:1e,6u:3,9I:k(G,2Q){2Q.1O(\'22\',0.7);G.1O(\'22\',0.7)},9T:k(G,2Q){G.1O(\'22\'

,1);2Q.2H();c.44.2H()}},1j:k(4U,C){c.2U(C);c.4U=$(4U);c.T=c.4U.8F();c.4I=(c.C.4I)?$$(c.C.4I):c.T;c.1G={\'1h\':

[],\'62\':c.62.3g(c)};M(o 

i=0,l=c.4I.V;i<l;i++){c.1G.1h[i]=c.1h.3g(c,c.T[i])}c.6K();B(c.C.1j)c.C.1j.1S(c);c.1G.61=c.61.3g(c);c.1G.2f=c.2

f.Y(c)},6K:k(){c.4I.1o(k(3K,i){3K.1I(\'64\',c.1G.1h[i])},c)},9K:k(){c.4I.1o(k(3K,i){3K.3Z(\'64\',c.1G.1h[i])},

c)},1h:k(I,el){c.3R=el;c.8y=c.4U.4A();B(c.C.2Q){o 1u=el.3o();c.1C=I.1M.y-1u.y;c.44=L 

Q(\'4K\').25(P.4H);c.2Q=el.9M().25(c.44).4z({\'1u\':\'3X\',\'1t\':1u.x,\'1n\':I.1M.y-c.1C});P.2A(\'2V\',c.1G.6

2);c.1i(\'9I\',[el,c.2Q])}P.2A(\'2V\',c.1G.61);P.2A(\'6S\',c.1G.2f);c.1i(\'45\',el);I.1R()},62:k(I){o 

J=I.1M.y-c.1C;J=J.1E(c.8y.1n,c.8y.3O-c.2Q.3T);c.2Q.1O(\'1n\',J);I.1R()},61:k(I){c.3R.3R=1e;c.2o=c.2o||I.1M.y;c

.1a=I.1M.y;o 5Z=((c.2o-c.1a)<=0)?\'8C\':\'8B\';o 6v=c.3R.9F();o 3v=c.3R.8x();B(6v&&5Z==\'8B\'){o 

9O=6v.4A();B(I.1M.y<9O.3O)c.3R.8o(6v)}B(3v&&5Z==\'8C\'){o 

9V=3v.4A();B(I.1M.y>9V.1n)c.3R.6O(3v)}c.2o=I.1M.y},eF:k(){o 8E=[];c.4U.8F().1o(k(el,i){8E[i]=c.T.3S(el)},c);m 

8E},2f:k(){c.2o=1F;P.3j(\'2V\',c.1G.61);P.3j(\'6S\',c.1G.2f);B(c.C.2Q){P.3j(\'2V\',c.1G.62);c.1i(\'9T\',[c.3R,

c.2Q])}c.1i(\'1T\',c.3R)}});9S.3q(L 2q,L 4i);o ar=L 

18({C:{az:k(4c){4c.1O(\'4G\',\'8D\')},ay:k(4c){4c.1O(\'4G\',\'4y\')},8v:30,9j:3b,9k:3b,1A:\'bJ\',5P:{\'x\':16,

\'y\':16},5S:N},1j:k(T,C){c.2U(C);c.4g=L 

Q(\'4K\',{\'4O\':c.C.1A+\'-4c\',\'8A\':{\'1u\':\'3X\',\'1n\':\'0\',\'1t\':\'0\',\'4G\':\'4y\'}}).25(P.4H);c.3d

=L 

Q(\'4K\').25(c.4g);$$(T).1o(c.ae,c);B(c.C.1j)c.C.1j.1S(c)},ae:k(el){el.$1X.47=(el.5h&&el.57()==\'a\')?el.5h.3l

(\'96://\',\'\'):(el.95||N);B(el.5g){o 

6b=el.5g.66(\'::\');B(6b.V>1){el.$1X.47=6b[0].5Y();el.$1X.5T=6b[1].5Y()}17{el.$1X.5T=el.5g}el.94(\'5g\')}17{el

.$1X.5T=N}B(el.$1X.47&&el.$1X.47.V>c.C.8v)el.$1X.47=el.$1X.47.6p(0,c.C.8v-1)+"&cu;";el.1I(\'8k\',k(I){c.1h(el)

;B(!c.C.5S)c.8e(I);17 c.1u(el)}.Y(c));B(!c.C.5S)el.1I(\'2V\',c.8e.3g(c));o 

2f=c.2f.Y(c);el.1I(\'8h\',2f);el.1I(\'44\',2f)},1h:k(el){c.3d.1m();B(el.$1X.47){c.5g=L Q(\'9f\').25(L 

Q(\'4K\',{\'4O\':c.C.1A+\'-5g\'}).25(c.3d)).5Q(el.$1X.47)}B(el.$1X.5T){c.21=L Q(\'9f\').25(L 

Q(\'4K\',{\'4O\':c.C.1A+\'-21\'}).25(c.3d)).5Q(el.$1X.5T)}$4Z(c.1H);c.1H=c.41.2k(c.C.9j,c)},2f:k(I){$4Z(c.1H);

c.1H=c.5k.2k(c.C.9k,c)},1u:k(G){o 1p=G.3o();c.4g.4z({\'1t\':1p.x+c.C.5P.x,\'1n\':1p.y+c.C.5P.y})},8e:k(I){o 

aE={\'x\':U.8f(),\'y\':U.8l()};o 2J={\'x\':U.8s(),\'y\':U.8u()};o 4c={\'x\':c.4g.42,\'y\':c.4g.3T};o 

1V={\'x\':\'1t\',\'y\':\'1n\'};M(o z 1b 1V){o 

1p=I.1M[z]+c.C.5P[z];B((1p+4c[z]-2J[z])>aE[z])1p=I.1M[z]-c.C.5P[z]-4c[z];c.4g.1O(1V[z],1p)}},41:k(){B(c.C.aG)c

.1H=c.5k.2k(c.C.aG,c);c.1i(\'az\',[c.4g])},5k:k(){c.1i(\'ay\',[c.4g])}});ar.3q(L 2q,L 4i);o cd=L 

18({1j:k(){c.5E=$A(1c);c.19={};c.4P={}},1I:k(F,W){c.4P[F]=c.4P[F]||{};c.19[F]=c.19[F]||[];B(c.19[F].1l(W))m 

N;17 c.19[F].1k(W);c.5E.1o(k(5x,i){5x.1I(F,c.3V.Y(c,[F,5x,i]))},c);m c},3V:k(F,5x,i){c.4P[F][i]=1e;o 

4v=c.5E.4v(k(2a,j){m 

c.4P[F][j]||N},c);B(!4v)m;c.5E.1o(k(2a,j){c.4P[F][j]=N},c);c.19[F].1o(k(I){I.1S(c,c.5E,5x)},c)}});o 

7n=1g.29.R({C:{8Q:18.1m,aN:18.1m,3D:0,41:N,2N:1e,2z:N,22:1e,6g:N,6A:N,3Q:N,74:N},1j:k(){o 

C,2v,T,2g;$1o(1c,k(4n,i){23($F(4n)){12\'2C\':C=4n;1D;12\'G\':2g=$(4n);1D;5D:o 2s=$$(4n);B(!2v)2v=2s;17 

T=2s}});c.2v=2v||[];c.T=T||[];c.2g=$(2g);c.2U(C);c.2o=-1;B(c.C.74)c.C.3Q=1e;B($2B(c.C.41)){c.C.3D=N;c.2o=c.C.4

1}B(c.C.1h){c.C.3D=N;c.C.41=N}c.3t={};B(c.C.22)c.3t.22=\'b2\';B(c.C.2z)c.3t.2z=c.C.6A?\'b0\':\'42\';B(c.C.2N)c

.3t.2N=c.C.6g?\'aU\':\'5N\';M(o 

i=0,l=c.2v.V;i<l;i++)c.aV(c.2v[i],c.T[i]);c.T.1o(k(el,i){B(c.C.41===i)c.1i(\'8Q\',[c.2v[i],el]);17 M(o 2x 1b 

c.3t)el.1O(2x,0)},c);c.1r(c.T);B($2B(c.C.3D))c.3D(c.C.3D)},aV:k(3k,G,1p){3k=$(3k);G=$(G);o 2t=c.2v.1l(3k);o 

3N=c.2v.V;c.2v.5w(3k);c.T.5w(G);B(3N&&(!2t||1p)){1p=$5F(1p,3N-1);3k.8o(c.2v[1p]);G.6O(3k)}17 

B(c.2g&&!2t){3k.25(c.2g);G.25(c.2g)}o 

aZ=c.2v.3S(3k);3k.1I(\'8p\',c.3D.Y(c,aZ));B(c.C.2N)G.4z({\'4F-1n\':0,\'2Y-1n\':\'6I\',\'4F-3O\':0,\'2Y-3O\':\'

6I\'});B(c.C.2z)G.4z({\'4F-1t\':0,\'2Y-1t\':\'6I\',\'4F-4k\':0,\'2Y-4k\':\'6I\'});G.b2=1;B(c.C.6A)G.b0=c.C.6A;

B(c.C.6g)G.aU=c.C.6g;G.1O(\'aT\',\'4y\');B(!2t)M(o 2x 1b c.3t)G.1O(2x,0);m 

c},3D:k(26){26=($F(26)==\'G\')?c.T.3S(26):26;B((c.1H&&c.C.3Q)||(26===c.2o&&!c.C.74))m c;c.2o=26;o 

O={};c.T.1o(k(el,i){O[i]={};B((i!=26)||(c.C.74&&(el.3T>0))){c.1i(\'aN\',[c.2v[i],el]);M(o 2x 1b 

c.3t)O[i][2x]=0}17{c.1i(\'8Q\',[c.2v[i],el]);M(o 2x 1b c.3t)O[i][2x]=el[c.3t[2x]]}},c);m c.1h(O)},cV:k(26){m 

c.3D(26)}});1g.7n=7n;',62,940,'||||||||||||this||||||||function||return||var|||||||||||||if|options|||type|ele

ment||event|value|property|new|for|false|obj|document|Element|extend||elements|window|length|fn||bind||||case|

|to|from||else|Class|events|now|in|arguments|Math|true|param|Fx|start|fireEvent|initialize|push|contains|empty

|top|each|pos|args|parent|key|left|position|rgb|name|css|items|max|className|array|offset|break|limit|null|bou

nd|timer|addEvent|values|properties|prototype|page|result|setStyle|keys|selector|stop|call|onComplete|data|pro

p|props|tmp|source|style||text|opacity|switch||inject|index||method|Elements|current|transition|merge|mode|par

sed|end|container|join|set|getStyle|delay|step|overflown|hsb|previous|relatedTarget|Events|round|temp|test|uni

t|togglers|custom|fx|transport|width|addListener|chk|object|nocash|string|Methods|color|remove|Array|scroll|ma

p|url|Color|height|Base|parse|ghost|Event|params|match|setOptions|mousemove|script|documentElement|border|hue|

|ie||Garbage|margin|getElementsByTagName|context||||create|100|toInt|wrapper|overed|filter|bindWithEvent|item|

mouse|removeListener|toggler|replace|Transitions|size|getPosition|min|implement|parentNode|CSS|effects|target|

next|response|scrollTo|Abstract|iCss|time|option|hex|display|anchor|modifiers|Json|Hash|Cookie|pow|handle|drag

|shared|len|bottom|returns|wait|active|indexOf|offsetHeight|apply|check|iterable|absolute|Drag|removeEvent||sh

ow|offsetWidth|xpath|trash|onStart||myTitle|knob|duration|iTo|getValue|tip|scripts|Styles|periodical|toolTip|c

hange|Options|chains|right|delta|link|argument|select|increase|str|load|setNow|compute|toString|every|id|val|h

idden|setStyles|getCoordinates|headers|status|cookie|grid|padding|visibility|body|handles|cont|div|onSuccess|w

ebkit|get|class|checker|native|mix|number|post|list|collect|running|catch|htmlElement|clear||queryString|bit|2

55|results|getNow|secure|getTag|image|src|px|location|readyState|fromTo|sources|try|title|href|setHeader|delet

e|hide|toQueryString|colors|regexp|iFrom|_method|xml|mousewheel|iNow|red|setLength|green|include|instance|send

|layout|onload|toLowerCase|on|default|instances|pick|isSuccess|hexToRgb|rgbToHex|encoding|out|precision|evalua

te|scrollHeight|HTMLElement|offsets|setHTML|unique|fixed|myText|walk|domReady|area|parseInt|trim|direction||mo

ve|moveGhost|klass|mousedown|webkit419|split|scrollLeft|links|parseFloat|scrollTop|dual|onreadystatechange|fix

|encodeURIComponent|domain|fixedHeight|XHR|path|setProperties|tagName|saturation|counter|getProperty|regex|sub

str|droppables|steps|head|evType|snap|prev|setMany|date|splice|Properties|fixedWidth|addEvents|continue|Multi|

onFailure|images|removeEvents|scrollWidth|none|attempt|attach|hasKey|scrollSize|getSize|injectAfter|generic|co

de|mp|mouseup|included|brother|stopPropagation|String|percent|while|alpha|loaded|currentStyle|evalScripts|blue

|alwaysHide|draggedKnob|preventDefault|getElementsBySelector|checkStep|onChange|Listeners|setProperty|Object|X

MLHttpRequest|getElements|getElementById|typeof|relative|fKey|mod|proto|forEach|onCancel|Accordion|update|page

X|pageY|setTransport|nodeType|callChain|realType|addEventListener|clean|operator|concat|node|iProps|getItems|g

etParam|getMany|merged|hasClass|insertBefore|Dom|add|ie_ready|domready|qs|disabled|camelCase|multiple|checked|

found|transitions|Function|charAt|evalResponse|RegExp|gecko|random|getLast|hasChild|pairs|appendChild|Style|ea

seType|first|PI|Transition|xhtml|compat|newArray|defined|Chain|rr|rgbToHsb|locate|getWidth|brightness|mouselea

ve|coord|mousemover|mouseenter|getHeight|copy|javascript|injectBefore|click|complete|callee|getScrollLeft|img|

getScrollTop|maxTitleChars|velocity|getNext|coordinates|toElement|styles|up|down|visible|serial|getChildren|Sl

ider|toStep|capitalize|vertical|horizontal|lim|onDrag|previousEnd|previousChange|onTick|onActive|gr|Top|Right|

Bottom|Left|0px|Width|opera|nodeValue|clientWidth|fixStyle|borderShort|onRequest|removeAttribute|rel|http|Date

|cancel|input|getCoords|getFormElements|textarea|client|clientHeight|span|onStateChange|clientX|firstChild|sho

wDelay|hideDelay|iParsed|autoCancel|defaultView|hyphenate|async|Single|hsbToRgb|6000|pageYOffset|600000|pageXO

ffset|getScrollWidth|getScrollHeight|360|fps|childNodes|Scroller|request|mouseout|mouseover|getPrevious|cloneE

vents|setTimeout|onDragStart|extended|detach|DOMMouseScroll|clone|execScript|prevPos|which|Content|clientY|Sor

tables|onDragComplete|fixRelatedTarget|nextPos|shift|wheelDelta|relatedTargetGecko|getHeader|tag|half|sel|norm

al|toPosition|getElement|getPos|postBody|picked|Ajax|clickedElement|application|Scroll|removeEventListener|bui

ld|unload|useLink|filterById|filterByClass|prefix|resolver|filterByAttribute|zoom|floor|Number||createElement|

Tips|cos|interval|onBeforeStart|onSnap|distance|1000|onHide|onShow|before|after|abort|sin|win|elementsProperty

|timeout|where|slice|toUpperCase|escapeRegExp|Merge|Move|onBackground|ActiveXObject|pp|www|constructor|urlEnco

ded|overflow|fullHeight|addSection|getLeft|getTop|ie6|idx|fullWidth|checkAgainst|fullOpacity|contents|toFloat|

removeClass|onProgress|cssText|adopt|undefined|getStyles|Asset|slideIn|save|slideOut|getTime|full|addClass|set

Opacity|autoSave|textnode|navigator|associate|styleFloat|some|getRandom|getFirst||srcElement|beforeunload|whit

espace|detachEvent|attachEvent|lastChild|float|all|DOMElement|CollectGarbage|clearChain|chain|111|MooTools|ver

sion|zIndex|keydown|tool|execCommand|getComputedStyle|taintEnabled|getPropertyValue|menu|fromCharCode|keyCode|

detail|control|ctrlKey|shiftKey|readOnly|cssFloat|alt|altKey|Sibling|120|wheel|metaKey|meta|nodeName|transpare

nt|styleSheet|createTextNode|removeProperty|getProperties|injectInside|getBoxObjectFor|BackgroundImageCache|Gr

oup|boolean|htmlFor|webkit420|toggleClass|clearTimeout|borderColor|replaceWith|ie7|replaceChild|clearInterval|

appendText|cloneNode|setAttribute|borderWidth|borderStyle|injectTop|hellip|removeChild|colspan|embed|tabindex|

tabIndex|accessKey|accesskey|rowSpan|getParent|err|maxlength|maxLength|innerHTML|setInterval|iframe|getAttribu

te|pass|Document|times|attributes|rowspan|colSpan|hasLayout|khtml|collection|bindAsEventListener|showThisHideO

pen|Native|Window|readonly|starts|618|Bounce|Elastic|Image|Back|Sine|Expo|Circ|acos|Quad|Cubic|media|styleshee

t|sqrt|screen|onabort|Quart|Quint|onerror|Pow|ease|toLeft|toRight|Slide||pop|toBottom|toTop|setSaturation|setH

ue|invert|4096|rightClick|Out|InOut|error|In|linear|easeIn|easeOut|easeInOut|readystatechange|json|Connection|

close|setRequestHeader|setTime|overrideMimeType|open|300|responseText|responseXML|action|Requested|gi|ecma|jav

a|exec|getResponseHeader|With|Accept|html|200|expires|leave|over|Eaeflnr|decodeURIComponent|eval|Remote|makeRe

sizable|JSON|Request|drop|emptydrop|form|urlencoded|toGMTString|charset|XMLHTTP|makeDraggable|utf|Microsoft||s

etBrightness|toggle|org|1999|RGB|w3|snapshotItem|UNORDERED_NODE_SNAPSHOT_TYPE|snapshotLength|SmoothScroll|getE

lementsByClassName|offsetLeft|offsetTop|password|radio|selected|checkbox|XPathResult|substring|serialize|enter

|returnValue|cancelBubble|button|fromElement|esc|space|namespaceURI|with|ES|filterByTag|backspace|tab|offsetPa

rent|hash|DOMContentLoaded|clearTimer|defer|500|innerHeight|innerWidth|effect|onDomReady|write|10000|protocol|

HSB|https|Shared|void'.split('|'),0,{}))
//____________________________________________________________________________________________________________

______//

// -> [FUNCIONES GENERALES]	
//		-> addGlobalJS(js)
//		-> addGlobalStyle(css)
//		-> getParam(name)
//		-> twHideFrame()
//		-> twEditOriginalElements()
//		-> twNumFormat(Qty)
//		-> twLoadingData(mode)
//
// -> [INICIALIZACIÓN]			
//		-> twInitialize()
//		-> twInitInterface()
//		-> twInitNewCSS()
//
// -> [OBTENCIÓN DE DATOS]
//		-> twGlobalResumeArmy_AddVillageInfo(village)
//		-> twGlobalResumeArmy()
//		-> twShowInfoArmy(village_id)
//		-> twShowInfoFarm()twShowInfoResources()
//		-> twGetVillageBuildingsLevel(village_id)
//		-> twGetVillageArmy(village_id, mode)
//		-> twGetpID()twInitVillageArmy(village_id)
//		-> twInitVillageBuildingsLevel(village_id)
//		-> twDataLoader(village_id, _load)
//
// -> [MENÚ PUEBLOS]	
//		-> twVillagesNavigator()
//		-> twVillagesListGenerator(min, max)
//		-> twGetVillageNum(id)
//		-> twInitVillagesList()
//		-> twGetVillagesList()
//
// -> [MAPA]
//		-> twMap()
//		-> twGlobalMap()
//	
// -> [BUSCADOR DE PUEBLOS]
// 		-> twVillagesFinderInterface()
// 		-> twVillagesFinder() 		
//
// -> [COMPACTADOR]
// 		-> twReportInterface()
// 		-> twPreviewReportGenerator(reportWithForumTags)
// 		-> twReportGenerator(reportInfo)
// 		-> twReportData()
//
// -> [NUEVAS FUNCIONALIDADES]	
// 		-> twSetSim()
//		-> TwSetVillageInfo()
//		-> twSetReport()	
//									
// -> [INIT]													

	


var DebugMode = 0 // 0 = off, 1 = on. Activa todos los GM_logs.
var version= "3.0.2.7";

// Identificador del world
// nombre del world más el idioma, ej. w3es
var baseURL = getParam('GETURL');	// Url del world al que estamos conectados
var language = baseURL.match(/(es)|(de)|(pl)|(it)|(fr)|(ro)|(nl)|(net)/g);  // Idioma seleccionado
	if(language == null) {language = "es";}
	
var wID = baseURL.match(/\b[ds|tw|pl|w]\d+\b/g) + language;  // Mundo en el que nos encontramos
var wNum = baseURL.match(/[0-9]+/); // Numero que identifica el mundo

var wVersion = GM_getValue(wID+"_version", "0");

var	pID = 0												// 

Identificador del jugador
var twGlobalInfo = new Array();	// Array con los datos globales del pueblo seleccionado
var twLinks = new Array();				// Array con todos los enlaces del TW.
var	twMenuLabel = new Array();
var vID = 0;											// 

Identificador del Pueblo
var twUrlScreen = "";							// Url que srive de path para tw
var Attacking = "";
var Army = new Array();					// Contiene las Army de cada Pueblo
var Villages = new Array();			// Listado de pueblos
var nVillages = 0;								// Cantidad de Pueblos
var presentURL = ""	;							// Url Actual
//var language = "";								// Idioma seleccionado
var twLanguage = new Array();		// Matriz de idiomas
var twMenuLine = new Array();
var villagesBuildingsLevel = new Array(0);  // Listado de los niveles de cada edificio
var infoPlayer = new Array();
var UnitNum = 0;

var extImgsPath = "http://s184.photobucket.com/albums/x195/twextension/"; // Ruta de las imágenes
var twImgsPath = "http://www.tribalwars.es/graphic/"; 								

		//  Ruta para las imágenes originales de tw
// http://i184.photobucket.com/albums/x195/twextension/
var twUnitsNamesArray = new Array();
var twCostsByUnit = new Array();
var twFarmVillagersByUnit = new Array();
var twSpeedByUnit = new Array();

var twBuildingsNamesArray = new Array();

var twBuildingsModesArray = new Array("build", "destroy", "command", "units", "sim", "send", "own_offer", 

"other_offer", "traders");

var twOtherNamesArray = new Array("holz", "lehm", "eisen", "res", "face","new_report", "read_mail", "links", 

"rechts", "unten", "oben","villages", "ally_forum");


// 

==============================================================================================================

===//
// FUNCIONES GENERALES
// 

==============================================================================================================

===//

// Method: resetValue
// Summary: reset  world value
// Params: nothing
// Returns: nothing
function initWorld() {

if (wVersion != version){
	GM_setValue (wID+"_version", version);
	GM_setValue (wID+"_UnitsArmy", 0);
	GM_setValue (wID+"_WorldBuildings",0);
	return false;
	}
	else
	{
	var InitValue = twInitWorldArmy() & twInitWorldBuildings();
	return (InitValue);
	}
}
//____________________________________________________________________________________________________________

______//



// Method: addGlobalJS
// Summary: Agrega una script al head del documento html.
// Params: js
// Returns: nothing
function addGlobalJS(js) {
    var head, jscript;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    jscript = document.createElement('script');
    jscript.type = 'text/javascript';
    jscript.innerHTML = js;
    head.appendChild(jscript);
}
//____________________________________________________________________________________________________________

______//

// Method: addGlobalStyle
// Summary: Permite editar/modificar las hojas de estilo
// Params: css
// Returns: nothing
function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}
//____________________________________________________________________________________________________________

______//

// Method: getParam
// Summary: Busca y devuelve en la url en la que nos encontramos el string indicado (@name), sino lo encuentra
//					devuelve una cadena vacía.
// Params: name
// Returns: null o array de strings
function getParam(name) {
  if (name == 'GETURL') {
    var regexS = "(.*)/(.*)";
    var regex = new RegExp( regexS );
    var tmpURL = window.location.href;
    var results = regex.exec( tmpURL );
  } else {
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var tmpURL = window.location.href;
    var results = regex.exec( tmpURL );
  }
  if( results == null )
    return "";
  else
    return results[1];
};
//____________________________________________________________________________________________________________

______//
// Method: twHidesFrame
// Summary: Esconde el frame de publicidad
// Params: nothing
// Returns: nothing
function twHidesFrame()
{
//return true;
/*	var adsFrame = window.parent.document.getElementById('main');
	if (window.parent.document.title =="Tribal Wars"){
	if (adsFrame){
		window.parent.location.href = window.parent.location.href.replace("&top","")+"&sky";
		return false;
	}
	else{
		var elemF = window.parent.document.getElementsByTagName('iframe');
		elemF[1].parentNode.style.width = "0px";
		elemF[0].parentNode.style.right = "0px";
	
		return true;
	}
	}
*/
/*	var adsFrame = window.parent.document.getElementsByName('ad');
	if(adsFrame[0] == null){
		url = document.location.href 
		alert (url);
		//window.parent.location.href = window.parent.location.href.replace("&top","")+"&sky";
		//window.parent.location.href = url+"&sky";
		return false;
	}
	else{
		window.parent.document.getElementsByTagName('frameset')[0].cols = "*, 0";
		return true;
	}
*/
	var adsFrame = window.parent.document.getElementsByTagName('frameset')[0].cols;
	if(adsFrame == ""){
		url = document.location.href; 
		window.parent.location.href = window.parent.location.href.replace("&top","")+"&sky";
		return false;
	}
	else{
		window.parent.document.getElementsByTagName('frameset')[0].cols = "*, 0";
		return true;
	}
}
//____________________________________________________________________________________________________________

______//
// Method: twEditOriginalElements
// Summary: 
// Params: nothing
// Returns: nothing
function twEditOriginalElements()
{
	//for(var i=0;i<$$('table').length;i++)
	//	GM_log($$('table')[i].innerTEXT)
	$$('table')[3].parentNode.removeChild($$('table')[3]);	
	$$('table')[2].parentNode.removeChild($$('table')[2]);
	$$('hr')[0].parentNode.removeChild($$('hr')[0]);

	// Reposicionar la tabla principal y mostrar barras de desplazamiento en el body.
	$$('.main')[0].setAttribute('align','');
	$$('.main')[0].setAttribute('width','');
	$$('.main')[0].setAttribute('style','top:0;left:0;width:840px;margin: 160px 0 0 

96px;padding:0;z-index:40;');
	

$$('body')[0].setAttribute('style','overflow:auto;background-image:url("'+twGlobalInfo["InterfaceBackgroundPar

ts"][28]+'")')
	
}
//____________________________________________________________________________________________________________

______//
// Method: twNumFormat
// Summary: 
// Params: nothing
// Returns: nothing
function twNumFormat(Qty)
{
	var numFormated ="";
	Qty += '';
	Qty = Qty.split("");
	for(var i=0;i<Qty.length;i++){
		numFormated += Qty[i];
		if((Qty.length-(i+1)) % 3 == 0 && (Qty.length-(i+1)) != 0) numFormated += ".";
	}
	return numFormated;
}

//____________________________________________________________________________________________________________

______//
// Method: t_format2
// Summary: 
// Params: string
// Returns: nothing
function t_format2(s) {
	if (s > -1)  {
		stunden = Math.floor(s/3600);
		minuten = Math.floor(s/60) % 60;
		sekunden = s % 60;
		t = stunden + ":";
		if (minuten < 10) {
			t += "0";
		}
		t += minuten + ":";
		if (sekunden < 10){
			t += "0";
		}
		t += sekunden;
	} else {
		t = "0:00:0?";
	}
	return t;
}

//____________________________________________________________________________________________________________

______//

// Method ArrayIndice
//Summary:
// Params: string
// Returns:Indice in array
 
Array.prototype.ArrayIndice=function(valeur){
var place=-1
  for (var value in this){
	place++
   if(this[value]== valeur){return place;}
   }
   return "not in array" ;
}

//____________________________________________________________________________________________________________

______//



// Method: twLoadingData
// Summary: 
// Params: flag
// Returns: nothing
function twLoadingData(mode)
{
	if(mode == 0)
	{ 
		var newHTML = document.createElement("div");
		newHTML.setAttribute('id', 'LoadingData');
		newHTML.style.width = (document.body.scrollWidth < window.innerWidth?window.innerWidth: 

document.body.scrollWidth) + 'px';
		newHTML.style.height = (document.body.scrollHeight < window.innerHeight?window.innerHeight: 

document.body.scrollHeight) + 'px';
		newHTML.innerHTML = '<div 

style="width:300px;margin-top:150px;margin-bottom:auto;background-color:#F8F4E8;border:2px solid 

#804000;padding:30px 30px 30px 40px;margin-left:auto; margin-right:auto;"><img 

src="http://i184.photobucket.com/albums/x195/twextension/loading.gif" border="0" hspace=20 

align="middle"><b>'+twLanguage['general'][0]+'</b></div>';
		document.body.insertBefore(newHTML, document.body.childNodes[0]);
	}
	else
		$('LoadingData').parentNode.removeChild($('LoadingData'));
}
//____________________________________________________________________________________________________________

______//

// Method: 
// Summary: Evita el molesto mensaje y la redirección obligatoria a la zona premium.
// Params: nothing
// Returns: nothing
/*
function(){
	//if(document.body.search(/window.setTimeout("scan_toolbox()", 200);/))
		document.replace('window.setTimeout("scan_toolbox()", 200);', '');
}*/

//____________________________________________________________________________________________________________

______//
// 

==============================================================================================================

===//


// 

==============================================================================================================

===//
// [INICIALIZACIÓN]
// 

==============================================================================================================

===//

// Method: twInitialize
// Summary: Inicializa Tribal eXtension
// Params: nothing
// Returns: nothing
function twInitialize()
{

	if(getParam('screen') != "")
		presentURL += 	 "&screen="+getParam('screen');
	if(getParam('mode')!= "")
		presentURL += 	 "&mode="+getParam('mode');
	if(getParam('id') != "")
		presentURL += 	 "&id="+getParam('id');
	if(getParam('start') != "")
		presentURL += 	 "&id="+getParam('start');

	twUrlScreen = baseURL+'/game.php?';
	
/*	vID = 

document.evaluate('html/body/table[2]/tbody/tr/td',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).sin

gleNodeValue.innerHTML;
	vID = vID.substring( vID.indexOf("e=",0)+2, vID.indexOf("&amp;sc",0) );
*/	
	pIDold = GM_getValue(wID+"_pID", 0);
	//alert (pIDold);
	vID = 

document.evaluate('html/body/table[2]/tbody/tr/td',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).sin

gleNodeValue.innerHTML;
	vID = vID.substring( vID.indexOf("e=",0)+2, vID.indexOf("&amp;sc",0) );
	//alert (vID);
	if(getParam('screen') == 'map'){
		pID = pIDold;}
		else {	
		if(pID == 0 || pID != pIDold){
		twGetpID(); 
		while ((pID != pIDold) || (pID == 0)){pID = GM_getValue(wID+"_pID", 0);}
		//return;
		}
		}
		// Detecta si esta el modo vacaciones ON
	if( getParam('t') != ""){
		pID = getParam('t');
		twUrlScreen += 't='+pID+'&';
	}
	
	nVillages = GM_getValue(wID+"_"+pID+"_nVillages", 1);
	
	twLinks["twMainMenuArray"] = new Array();
	twMenuLine["twMainMenuArray"] = new Array();
	twLanguage["mainMenu"] = new Array();
	twMenuLabel["mainMenu"] = new Array();

//	var patt = /screen=info_player/;
	var targetPlayer = window.document.body.getElementsByTagName("a");
	var tarNumb = targetPlayer.length;
		for (var a=0 ; a < tarNumb; a++){
		var pmatch = targetPlayer[a].toString().match("screen=info_player");
			if (pmatch) {
			var newinfoPlayer = document.createElement("div");
			newinfoPlayer.setAttribute('id','btnPlayerPopUp'+a);
			newinfoPlayer.setAttribute('class','btnPlayerPopUp');
			targetPlayer[a].parentNode.insertBefore(newinfoPlayer,targetPlayer[a]);
			newinfoPlayer.appendChild(targetPlayer[a]);
			}
		}
	// Eventos
		for (var a=0 ; a < tarNumb; a++){
		if($('btnPlayerPopUp'+a)){
			$('btnPlayerPopUp'+a).addEventListener('mouseover', function(Event) {
					twPlayerPopUp(Event)
			}, true );		
		}
		}
		
	
	twLinks["twMainMenuArray"]["map"] =  twUrlScreen+"village="+vID+"&screen=map"; 
	twLinks["twMainMenuArray"]["villages"] =  twUrlScreen+"village="+vID+"&screen=overview_villages"; 
	twLinks["twMainMenuArray"]["overview"] =  twUrlScreen+"village="+vID+"&screen=overview"; 
	twLinks["twMainMenuArray"]["graphicView"] = "";
	twLinks["twMainMenuArray"]["textView"] = "";
	
	// Enlaces: Edificios
	twLinks["twMainScreens"] = new Array();
	for(var i=0; i<twBuildingsNamesArray.length;i++)
		twLinks["twMainScreens"][i] = twUrlScreen+"village="+vID+"&screen="+twBuildingsNamesArray[i];
	
	// Enlaces: Subpantallas de los edificios
	twLinks["twSubScreens"] = new Array();
	for(var i=0; i<3;i++){
		for(var j=0; i<twBuildingsModesArray.length;i++)
			twLinks["twSubScreens"][i] = 

twLinks["twMainScreens"][i]+"&mode="+twBuildingsModesArray[j] ;
	}
	
/*	// Enlaces: MiniImágenes de los Edificios	
	twLinks["twBuildingsImg"] = new Array();
	for(var i=0; i<twBuildingsNamesArray.length;i++)
		twLinks["twBuildingsImg"][i] = twImgsPath+"buildings/"+twBuildingsNamesArray[i]+".png";	
*/	
	// Enlaces: MiniImágenes de las Unidades
/*	twLinks["twUnitsImg"] = new Array();
	for(var i=0; i<twUnitsNamesArray.length;i++)
		twLinks["twUnitsImg"][i] = twImgsPath+"unit/unit_"+twUnitsNamesArray[i]+".png";
*/
	// Enlaces: MiniImágenes de los Recursos, granja y otros
	twLinks["twOtherImg"] = new Array();
	for(var i=0; i<twOtherNamesArray.length;i++)
		twLinks["twOtherImg"][i] = twImgsPath+twOtherNamesArray[i]+".png";
	
	// Enlaces: Herramientas y Utilidades
	twLinks["twUtils"] = new Array();
	twLinks["twUtils"][0] = "http://www.compactador.com.ar/TW/index.php";
	twLinks["twUtils"][1] = "http://www.tribalpacker.mx.gs";
	twLinks["twUtils"][2] = "http://www.prosur.com/tribalwars/inicio.php";
	twLinks["twUtils"][3] = "http://tribalwars.servegame.org";
	twLinks["twUtils"][4] = "http://www.guscreations.com/item.php?key=buscador_tribalwars";
	twLinks["twUtils"][5] = "http://www.savefile.com/files/489797";
	twLinks["twUtils"][6] = "http://granjerodepro.es.kz";
	twLinks["twUtils"][7] = "http://www.tw-tools.com/";
	twLinks["twUtils"][8] = "http://w1.dsplus.de/index.php?tool=units";
	twLinks["twUtils"][9] = "http://w1.dsplus.de/index.php?tool=buildings";	
	twLinks["twUtils"][10] = "http://tribal.texplico.com/tribal/index.php";
	
	// Datos sobre los Recursos:
	// 0->Madera Almacenada, 1->Barro Almacenado, 2->Hierro Almacenado, 3->Capacidad Almacén
	var resourcesPath = "/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody";	
	twGlobalInfo["resources"] = new Array();
	twLanguage["resources"] = new Array ();
	// wood
	twLanguage["resources"][0]= document.evaluate(resourcesPath+"/tr/td[1]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML.toString().match("(title=\")(.*(?=\" 

alt))")[2];
	twGlobalInfo["resources"][0] = document.evaluate(resourcesPath+"/tr/td[2]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML;
	//stone
	twLanguage["resources"][1]= document.evaluate(resourcesPath+"/tr/td[3]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML.toString().match("(title=\")(.*(?=\" 

alt))")[2];
	twGlobalInfo["resources"][1] = document.evaluate(resourcesPath+"/tr/td[4]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML;
	//iron
	twLanguage["resources"][2]= document.evaluate(resourcesPath+"/tr/td[5]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML.toString().match("(title=\")(.*(?=\" 

alt))")[2];
	twGlobalInfo["resources"][2] = document.evaluate(resourcesPath+"/tr/td[6]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML;
	//storage capacity
	twLanguage["resources"][3]= document.evaluate(resourcesPath+"/tr/td[7]",document, 

null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML.toString().match("(title=\")(.*(?=\" 

alt))")[2];
	twGlobalInfo["resources"][3] = 

document.evaluate('//*[@id="storage"]',document,null,XPathResult.STRING_TYPE,null).stringValue; 
	
	//Datos de la Granja:
	// 0->Espacios Usados, 1->Espacios Totales, 2->Espacios libres
	twGlobalInfo["farm"] = 

document.evaluate('/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td[2]/table/tbody/tr/td[2]',document,null

,XPathResult.STRING_TYPE,null).stringValue.split("/");
	twGlobalInfo["farm"][2] = twGlobalInfo["farm"][1] - twGlobalInfo["farm"][0];
	
	// Imágenes de la interfaz:
	twGlobalInfo["InterfaceBackgroundParts"] = new Array();
		twGlobalInfo["InterfaceBackgroundParts"][0] = extImgsPath+"Interface6_01.png";
		twGlobalInfo["InterfaceBackgroundParts"][1] = extImgsPath+"Interface6_02.png";
		twGlobalInfo["InterfaceBackgroundParts"][2] = extImgsPath+"Interface6_03.png";	
		twGlobalInfo["InterfaceBackgroundParts"][3] = extImgsPath+"Interface6_04.png";
		twGlobalInfo["InterfaceBackgroundParts"][4] = extImgsPath+"Interface6_05.png";
		twGlobalInfo["InterfaceBackgroundParts"][5] = extImgsPath+"Interface6_07.png";
		twGlobalInfo["InterfaceBackgroundParts"][6] = extImgsPath+"Interface6_08.png";
		twGlobalInfo["InterfaceBackgroundParts"][7] = extImgsPath+"Interface6_09.png";
		twGlobalInfo["InterfaceBackgroundParts"][8] = extImgsPath+"Interface6_10.png";
		twGlobalInfo["InterfaceBackgroundParts"][9] = extImgsPath+"Interface6_11.png";
		twGlobalInfo["InterfaceBackgroundParts"][10] = extImgsPath+"Interface6_12.png";
		twGlobalInfo["InterfaceBackgroundParts"][11] = extImgsPath+"Interface6_13.png";
		twGlobalInfo["InterfaceBackgroundParts"][12] = extImgsPath+"Interface6_14.png";
		twGlobalInfo["InterfaceBackgroundParts"][13] = extImgsPath+"Interface6_15.png";
		twGlobalInfo["InterfaceBackgroundParts"][14] = extImgsPath+"Interface6_16.png";
		twGlobalInfo["InterfaceBackgroundParts"][15] = extImgsPath+"Interface6_17.png";
		twGlobalInfo["InterfaceBackgroundParts"][16] = extImgsPath+"Interface6_26.png";
		twGlobalInfo["InterfaceBackgroundParts"][17] = extImgsPath+"Interface6_20.png";
		twGlobalInfo["InterfaceBackgroundParts"][18] = extImgsPath+"Interface6_22.png";
		twGlobalInfo["InterfaceBackgroundParts"][19] = extImgsPath+"Interface_25.png";
		twGlobalInfo["InterfaceBackgroundParts"][20] = extImgsPath+"Interface_23.png";
		twGlobalInfo["InterfaceBackgroundParts"][21] = extImgsPath+"Interface_24.png";
		twGlobalInfo["InterfaceBackgroundParts"][22] = extImgsPath+"Interface6_06.png";
		twGlobalInfo["InterfaceBackgroundParts"][23] = extImgsPath+"Interface6_18.png";
		twGlobalInfo["InterfaceBackgroundParts"][24] = extImgsPath+"Interface6_21.png";
		twGlobalInfo["InterfaceBackgroundParts"][25] = extImgsPath+"Interface6_28.png";
		twGlobalInfo["InterfaceBackgroundParts"][26] = extImgsPath+"Interface6_29.png";
		twGlobalInfo["InterfaceBackgroundParts"][27] = extImgsPath+"Interface6_30.png";
		//twGlobalInfo["InterfaceBackgroundParts"][28] = extImgsPath+"background.jpg";
		twGlobalInfo["InterfaceBackgroundParts"][28] = "";
		twGlobalInfo["InterfaceBackgroundParts"][29] = extImgsPath+"roundedTopMainTable.png";
		twGlobalInfo["InterfaceBackgroundParts"][30] = extImgsPath+"roundedBottomMainTable.png";
		

	twGlobalInfo["InterfaceItems"] = new Array();
		//twGlobalInfo["InterfaceItems"][0] = extImgsPath+"SliderBar.png";
		twGlobalInfo["InterfaceItems"][0] = extImgsPath+"SliderBar2.png";
		twGlobalInfo["InterfaceItems"][1] = extImgsPath+"SliderItem.png";  
		twGlobalInfo["InterfaceItems"][2] = extImgsPath+"SliderDownArrow.png";
		twGlobalInfo["InterfaceItems"][3] = extImgsPath+"SliderUpArrow.png";
//		twGlobalInfo["InterfaceItems"][4] = extImgsPath+"overview.png";
		twGlobalInfo["InterfaceItems"][4] = 

"http://s184.photobucket.com/albums/x195/twextension/overview.png";
		twGlobalInfo["InterfaceItems"][5] = extImgsPath+"map.png";
		twGlobalInfo["InterfaceItems"][6] = extImgsPath+"armyResume.png";
		twGlobalInfo["InterfaceItems"][7] = extImgsPath+"reload.png";
		twGlobalInfo["InterfaceItems"][8] = extImgsPath+"villagesOverview.png";
		twGlobalInfo["InterfaceItems"][9] = extImgsPath+"rankIcon.png";
		twGlobalInfo["InterfaceItems"][10] = extImgsPath+"rankbody.png";
		twGlobalInfo["InterfaceItems"][11] = extImgsPath+"rankrounded.png";
		twGlobalInfo["InterfaceItems"][12] = extImgsPath+"notBuilded.png";
		
	twGlobalInfo["InterfaceIcons"]	 = new Array();
		twGlobalInfo["InterfaceIcons"][0] = "";
	
	
	// Te atacan?
	

if(document.evaluate("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td[3]/table/tbody/tr/td",document, 

null,XPathResult.STRING_TYPE,null).stringValue != "")
		Attacking = '<div style="color:#DE6706;margin-right:15px;width:50px;"><img 

src="'+twLinks["twBuildingsImg"][1]+'" 

/><b>'+document.evaluate("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td[3]/table/tbody/tr/td",document, 

null,XPathResult.STRING_TYPE,null).stringValue+'</b></div>';
	
}

// Method: twLanguageData
// Summary: Inicializa Tribal eXtension Languages 
// Params: nothing
// Returns: nothing
function twLanguageData()
{	
if (language =="es"){	
	twLanguage["mainMenuTitle"] = new Array("Tropas", "Recursos", "Granja", "Pueblo");
//	twLanguage["resources"] = new Array ("Madera", "Barro", "Hierro", "Almac&eacute;n");
	twLanguage["VillageNav"] = new Array("Actualizar los datos", "Visi&oacute;n General del Pueblo", "Ir 

al Mapa", "Resumen global de Pueblos", "Resumen global de Tropas");

	twLanguage["reportKeys"] = new Array("Bot&iacute;n:", "Da&ntilde;o con arietes", "Da&ntilde;o causado 

con catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
	twLanguage["report"] = new Array("Bot&iacute;n", "Da&ntilde;o con arietes", "Da&ntilde;o causado con 

catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
	twLanguage["farm"] = new Array("Espacios Usados", "Espacios Totales", "Espacios libres");
	twLanguage["VillageInfo"] = new Array();
		twLanguage["VillageInfo"]["Info"] ="Informaci&oacute;n del Pueblo";
		twLanguage["VillageInfo"]["Coords"] ="Coordenadas";
		twLanguage["VillageInfo"]["Points"] ="Puntos";
		twLanguage["VillageInfo"]["Player"] ="Jugador";
		twLanguage["VillageInfo"]["Tribe"] ="Tribu";
		twLanguage["VillageInfo"]["Action"] ="Acciones";
		twLanguage["VillageInfo"]["Map"] ="Ver Mapa";
		twLanguage["VillageInfo"]["Units"] ="Unidad";
		twLanguage["VillageInfo"]["Time"] ="Tiempo";
		twLanguage["VillageInfo"]["Details"] ="Informaci&oacute;n Detallada";
		twLanguage["VillageInfo"]["PlayerHistory"] ="Ver Historial del Jugador";
		twLanguage["VillageInfo"]["TribeHistory"] ="Ver Historial de la Tribu";
	twLanguage["general"]= new Array ("Actualizando datos...");

}

if (language =="fr"){	
	twLanguage["mainMenuTitle"] = new Array("Troupes", "Ressources", "Population", "Village");
//	twLanguage["resources"] = new Array ("Bois", "Argile", "Fer", 

"Capacit&eacute;&nbsp;de&nbsp;stockage");
	twLanguage["VillageNav"] = new Array("Actualiser&nbsp;les&nbsp;données", 

"Vue&nbsp;générale&nbsp;du&nbsp;village","Carte","Liste&nbsp;des&nbsp;villages","Liste&nbsp;des&nbsp;troupes")

;
	twLanguage["reportKeys"] = new Array("Bot&iacute;n:", "Da&ntilde;o con arietes", "Da&ntilde;o causado 

con catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
	twLanguage["report"] = new Array("Bot&iacute;n", "Da&ntilde;o con arietes", "Da&ntilde;o causado con 

catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
	twLanguage["farm"] = new Array("Villageois&nbsp;occup&eacute;s", "Population&nbsp;totale", 

"Villageois&nbsp;libres");
	twLanguage["VillageInfo"] = new Array();
		twLanguage["VillageInfo"]["Info"] ="Informations"; 
		twLanguage["VillageInfo"]["Coords"] ="Coordonnées"; 
		twLanguage["VillageInfo"]["Points"] ="Points"; 
		twLanguage["VillageInfo"]["Player"] ="Joueur"; 
		twLanguage["VillageInfo"]["Tribe"] ="Tribu"; 
		twLanguage["VillageInfo"]["Action"] ="Action"; 
		twLanguage["VillageInfo"]["Map"] ="Centrer sur la carte"; 
		twLanguage["VillageInfo"]["Units"] ="Unités"; 
		twLanguage["VillageInfo"]["Time"] ="Durée"; 
		twLanguage["VillageInfo"]["Details"] ="Informations détaillées"; 
		twLanguage["VillageInfo"]["PlayerHistory"] ="Informations sur le joueur"; 
		twLanguage["VillageInfo"]["TribeHistory"] ="Informations sur la Tribu";
	twLanguage["general"]= new Array ("Mise à jour des données ...");
}

if (language =="net"){	
	twLanguage["mainMenuTitle"] = new Array(":Troops", ":Resources", ":Population", "Village");
//	twLanguage["resources"] = new Array ("Wood", "Clay", "Iron", "Capacit&eacute;&nbsp;de&nbsp;stockage");
	twLanguage["VillageNav"] = new Array("Refresh", 

"Village_Overview","Map","Villages_List","Troops_List");
	twLanguage["reportKeys"] = new Array("Bot&iacute;n:", "Da&ntilde;o con arietes", "Da&ntilde;o causado 

con catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
	twLanguage["report"] = new Array("Bot&iacute;n", "Da&ntilde;o con arietes", "Da&ntilde;o causado con 

catapultas", "Aprobaci&oacute;n disminuida", "Edificios", "unidades fuera", "Materias Primas espionados");
  	twLanguage["farm"] = new Array("Occupied_Population", "Total_Population", "Free_Population");
	twLanguage["VillageInfo"] = new Array();
		twLanguage["VillageInfo"]["Info"] ="Information"; 
		twLanguage["VillageInfo"]["Coords"] ="Coordinates"; 
		twLanguage["VillageInfo"]["Points"] ="Points"; 
		twLanguage["VillageInfo"]["Player"] ="Player"; 
		twLanguage["VillageInfo"]["Tribe"] ="Tribe"; 
		twLanguage["VillageInfo"]["Action"] ="Action"; 
		twLanguage["VillageInfo"]["Map"] ="Center Map"; 
		twLanguage["VillageInfo"]["Units"] ="Units"; 
		twLanguage["VillageInfo"]["Time"] ="Duration"; 
		twLanguage["VillageInfo"]["Details"] ="Information"; 
		twLanguage["VillageInfo"]["PlayerHistory"] ="Player Information"; 
		twLanguage["VillageInfo"]["TribeHistory"] ="Tribe Information";
	twLanguage["general"]= new Array ("Updating data...");
      
      }	
}
//____________________________________________________________________________________________________________

______//

// Method: twInitNewCSS
// Summary: Escribe y carga las nuevas hojas de estilo
// Params: nothing
// Returns: nothing
function twInitNewCSS()
{
	var newCSS = "";
	// Css TwMenu
	newCSS += '.twMenu {font:12px arial;z-index:1000;text-align:center}';
	newCSS += '.twMenu, .twMenu ul { padding: 0;	margin: 0; list-style: none; float : left; width : 

80px;}';
	newCSS += '.twMenu li {position : relative;float : left;line-height : 1.25em;margin-bottom : 

-1px;width: 80px;border-bottom:1px solid #DED3B9;padding:2px;}';
	newCSS += '.twMenu li ul { position : absolute; left: -999em;	margin-left : 80px;margin-top : 

-1.35em;width:175px;background-color:#F1EBDD;border:2px solid #DED3B9;z-index:1001}';
	newCSS += '.twMenu li ul li, .twMenu li ul li a {width:170px;}';
	newCSS += '.twMenu li ul ul { left: -999em;background-color:#F1EBDD;}';
	newCSS += '.twMenu li a { width: 80px;display : block;	font-weight : bold;	text-decoration : 

none;}';
	newCSS += '.twMenu li a:hover {color:#0082BE; background:#FFF;}';
	newCSS += '.twMenu li:hover ul ul, .twMenu li:hover ul ul ul {left: -999em;z-index:1002}';
	newCSS += '.twMenu li:hover ul, .twMenu li li:hover ul, .twMenu li li li:hover ul {left: 

auto;background-color:#fff;z-index:1002}';
	newCSS += '.twMenu li ul li ul {margin-left : 170px;}';	

	newCSS += '.btnPlayerPopUp, .btnPlayerPopUp div {display: 

inline;opacity:1;background-color:#F1EBDD;}';
	newCSS += '.btnPlayerPopUp div ul, .btnPlayerPopUp div ul ul, .btnPlayerPopUp div ul ul ul 

{display:none; }';	
	newCSS += '.btnPlayerPopUp ul {position:absolute; display:none; padding:0; list-style: none; 

border:2px solid #DED3B9; background-color:#F8F4E8;}';
	newCSS += '.btnPlayerPopUp li {position:relative; float:left; line-height:1.25em; width:98px; 

margin-bottom:-1px;  border-bottom:1px solid #DED3B9; padding:2px; text-align:center; 

background:transparent}';
	newCSS += '.btnPlayerPopUp li a {display : block;	font-weight : bold;	text-decoration : 

none;background:transparent}';
	newCSS += '.btnPlayerPopUp li a:hover {color:#0082BE; background:#FFF;opacity:10;}';
	newCSS += '.btnPlayerPopUp:hover div {display:inline; list-style: none;}';
	newCSS += '.btnPlayerPopUp:hover div ul {display:inline; width:100px;margin-top:0em; opacity:0.3;}';
	newCSS += '.btnPlayerPopUp:hover div:hover ul {opacity:1;}';
	newCSS += '.btnPlayerPopUp:hover div ul div,.btnPlayerPopUp:hover div ul ul, .btnPlayerPopUp:hover div 

ul ul ul {display:none;}';	
	
	// Css para situar los datos de la granja
	newCSS += '#twFarmInfo {position:absolute;top:155px;margin-left:70px;z-index:1000;}';
	// Css situar los recursos
	newCSS += '#twResourcesInfo {position:absolute;top:131px;margin-left:100px;z-index:1000;}';
	
	// Css de la pantalla 'Cargando...'
	newCSS += '#LoadingData 

{position:absolute;top:0;left:0;opacity:1;Background-color:#DED3B9;color:#804000;text-align:center;z-index:100

000}';
	 
	// Css Menú desplegable de los pueblos
	newCSS += '#VillageNavigator 

{position:absolute;top:80px;left:0;margin-left:360px;z-index:1001;width:443px;text-align:left;}';
	
	newCSS += '#twVillagesList 

{margin:0;padding:0;height:230px;width:440px;background-color:#F8F4E8;border:1px solid 

#804000;margin-top:9px;opacity:0.90;z-index:1001;}';
	newCSS += '#twVillagesList ul {float:left;height:230px;width:415px; margin:0; 

padding:0;border-right:1px solid #DED3B9;}';
	newCSS += '#twVillagesList li {text-decoration:none;display:block;padding:4px;border:1px solid 

#DED3B9;border-top:0;border-right:0;}';

	newCSS += '#DownArrow {position:absolute;top:3px;margin-left:425px;}';
	newCSS += '#LeftArrow {position:absolute;top:3px;margin-left:459px;width:12px;height:12px}';
	newCSS += '#RightArrow{position:absolute;top:3px;margin-left:489px;width:12px;height:12px}';

	newCSS += '#vSlider {margin:15px 0 0 0;padding:0 2px 0 2px;float:right;background:transparent 

url("http://i184.photobucket.com/albums/x195/twextension/SliderBar.png") no-repeat scroll 

center;height:200px;width:19px;}'
	newCSS += '#vItem {background:transparent 

url("http://i184.photobucket.com/albums/x195/twextension/SliderItem.png") no-repeat scroll 

center;cursor:pointer;height:27px;width:19px;}'


	// Css de la barra de Navegación
	newCSS += '#twVillageNavBar{position:absolute;top:0;left:0;}';
	
	newCSS += '#VillageLinks 

{position:absolute;top:74px;left:0;margin-left:185px;z-index:1000;width:300px;}';
	newCSS += '#VillageInfoArmy {position:absolute;top:14px;left:0;margin-left:160px;z-index:1000;}';
	newCSS += '#VillageInfoResources {position:absolute;top:43px;left:0;margin-left:160px;z-index:1000;}';
	newCSS += '#VillageInfoFarm {position:absolute;top:43px;left:0;margin-left:625px;z-index:1000;}';
	newCSS += '#VillageBuildings {position:absolute;top:0;left:0;}';

	
	// Css Efectos del compactador
	newCSS += '#reportEffect {margin-top:0}';
	newCSS += '#reportEffect h2 {font-size:14pt;}';
	newCSS += '#reportEffect dt {background-color:#DED3B9;padding:2px;}';
	newCSS += '#reportEffect dd {background-color:#F8F4E8;border-left:1px solid #DED3B9;padding:4px;}';
	
	// Css del menú de utilidades y herramientas
	newCSS += '#utils {position:absolute;top:375px;left:0;z-index:1000}';
	// Css del menú principal
	newCSS += '#mainMenu {position:absolute;top:157px;left:0;width:100px;margin:0;z-index:1000;}';
	// CSS del Menú de Edificios
	newCSS += '#BuildingsBar {position:absolute;top:0;left:0;}';
	newCSS += '.iconBuilding {position:absolute;top:0;left:0;height:14px;border:1px solid 

#804000;background-color:#F1EBDD;border-right:0;padding:2px;}';

	// CSS para situar la Interfaz de Tribal eXtension
	newCSS += '#interface {position:absolute;top:0;left:0}';

	// Css Para posicionar la Barra de Navegación superior
	newCSS += '#twNavBar {width:850px;height:150px;margin-top:40px;z-index:1010}';
	
	// Css para posicionar el popup de información de cada jugador
	newCSS += '#playerCurriculum 

{position:absolute;top:0;left:0;opacity:0.9;Background-color:#DED3B9;color:#804000;text-align:center;z-index:1

0000 }'
	
	// Agregamos las nuevas Hojas de estilo
	addGlobalStyle(newCSS);
}
//____________________________________________________________________________________________________________

______//

// Method: twInitInterface
// Summary: 
// Params: nothing
// Returns: nothing
function twInitInterface()
{
	var newHTML = '';
	newHTML += '<div style="position:absolute; left:0px; top:0px; width:67px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][0]+'" width="67" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:67px; top:0px; width:66px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][1]+'" width="66" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:133px; top:0px; width:67px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][2]+'" width="67" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:200px; top:0px; width:722px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][3]+'" width="722" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:922px; top:0px; width:26px; height:118px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][4]+'" width="26" height="118" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:0px; top:59px; width:67px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][5]+'" width="67" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:67px; top:59px; width:66px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][6]+'" width="66" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:133px; top:59px; width:67px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][7]+'" width="67" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:200px; top:59px; width:148px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][8]+'" width="148" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:348px; top:59px; width:19px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][9]+'" width="19" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:367px; top:59px; width:401px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][10]+'" width="401" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:768px; top:59px; width:42px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][11]+'" width="42" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:810px; top:59px; width:57px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][12]+'" width="57" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:867px; top:59px; width:55px; height:59px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][13]+'" width="55" height="59" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:0px; top:118px; width:67px; height:39px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][14]+'" width="67" height="39" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:67px; top:118px; width:66px; height:39px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][15]+'" width="66" height="39" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:0px; top:157px; width:100px; height:190px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][17]+'" width="100" height="190" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:0px; top:347px; width:100px; height:22px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][18]+'" width="100" height="22" 

alt="">';
	newHTML += '</div>';
/*
	newHTML += '<div style="position:absolute; left:220px; top:16px; width:15px; height:28px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][19]+'" width="15" height="28" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:240px; top:45px; width:15px; height:29px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][20]+'" width="15" height="29" 

alt="">';
	newHTML += '</div>';
	newHTML += '<div style="position:absolute; left:710px; top:45px; width:15px; height:29px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][20]+'" width="15" height="29" 

alt="">';
	newHTML += '</div>';
*/
	newHTML += '<div style="position:absolute; left:150px; top:12px; width:14px; height:67px;">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][21]+'" width="14" height="67" 

alt="">';
	newHTML += '</div>';
	
	newHTML += '<div style="position:absolute; left:101px; top:150px; width:840px; 

height:17px;z-index:999">';
	newHTML += '	<img src="'+twGlobalInfo["InterfaceBackgroundParts"][29]+'" width="840" height="17" 

alt="">';
	newHTML += '</div>';

	
	// Añadida la barra de edificios
	newHTML += twRankingBar();
	newHTML += twBuildingsBar();
	
	
	var div = document.createElement("div");
	div.setAttribute('id','interface_');
	div.innerHTML = newHTML;
	document.body.insertBefore(div, document.body.childNodes[1]);

	//$('interface').innerHTML = newHTML;
	
	// Eventos de los botones
	//	var mySlide1 = new Fx.Slide('mBarracks', {duration: 500});
	//	mySlide1.toggle('horizontal');

}
//____________________________________________________________________________________________________________

______//
// 

==============================================================================================================

===//


// 

==============================================================================================================

===//
// [OBTENCIÓN DE DATOS]
// 

==============================================================================================================

===//
// Method: twDataLoader
// Summary: 
// Params: nothing
// Returns: nothing
function twDataLoader(village_id, _load)
{		
		//if(pID == 0){ twGetpID(); return;}
		
		twInitVillagesList();
		twInitVillageArmy(village_id);
		twInitVillageBuildingsLevel(village_id);
		
		twShowInfoArmy(village_id);		
		twShowBuildingsLevel();

		// Listado de pueblos
		if(_load[0] == 1 || twGetVillageNum(village_id) == -1){
			//if(!$('LoadingData')) twLoadingData(0);
			if(DebugMode == 1) GM_log("Loading villages list...");
			twGetVillagesList();
		}
		else
		{
			// Niveles de Edificios
			if(_load[1] == 1 ||GM_setValue(wID+"_"+pID+"_"+vID+"_LVL_"+twBuildingsNamesArray[0], 

-1) < 0 )
				twGetVillageBuildingsLevel(village_id);
			// Tropas
			if(_load[2] == 1 || 

GM_getValue(wID+"_"+pID+"_"+"_"+village_id+"_"+twUnitsNamesArray[0], -1) < 0 ){
			//	if(!$('LoadingData')) twLoadingData(0);
				if(DebugMode == 1) GM_log("Loading villages's Army...");
				twGetVillageArmy(village_id, 'single');
			}
		}

		 

}
//____________________________________________________________________________________________________________

______//

// Method: twInitVillageBuildingsLevel
// Summary: 
// Params: nothing
// Returns: nothing
function twInitVillageBuildingsLevel(village_id)
{
	var village = twGetVillageNum(village_id);
	// Inicializa la matriz de tropas del pueblo seleccionado
	villagesBuildingsLevel[village] = new Array();
	for(var i=0;i<twBuildingsNamesArray.length;i++)
		villagesBuildingsLevel[village][twBuildingsNamesArray[i]] = 

GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_"+twBuildingsNamesArray[i], 0);
}
//____________________________________________________________________________________________________________

______//

// Method: twInitVillageArmy
// Summary: 
// Params: village_id
// Returns: nothing
function twInitVillageArmy(village_id)
{
	var village = twGetVillageNum(village_id);
	// Inicializa la matriz de tropas del pueblo seleccionado
	Army[village] = new Array();
	for(var i=0; i<UnitNum ;i++)
		Army[village][""+twUnitsNamesArray[i]+""] = 

GM_getValue(wID+"_"+pID+"_"+"_"+vID+"_"+twUnitsNamesArray[i], 0);
}
//____________________________________________________________________________________________________________

______//

// Method: twInitWorldArmy
// Summary: 
// Params:
// Returns: nothing
function twInitWorldArmy()
{
	var WorldUnits = GM_getValue(wID+"_UnitsArmy" ,0);
	if(WorldUnits == 0) {
	return false;
	}
	else
	{
	twUnitsNamesArray = new Array();
	twCostsByUnit = new Array();
	twFarmVillagersByUnit = new Array();
	twSpeedByUnit = new Array();
	twLinks["twUnitsImg"] = new Array();
	twLanguage["units"] = new Array();
	
	var UnitParam = new Array();
	var UnitsRaw = WorldUnits.split("UnitRaw=");
	UnitNum = UnitsRaw.length-1;
	for (var i=1; i<=UnitNum;i++){
		//alert (UnitsRaw[i]);
		UnitParam = UnitsRaw[i].split(";;");
		//var ParamNum = UnitParam.length;
		twUnitsNamesArray[i-1] = UnitParam[0];
		twCostsByUnit[i-1] = new Array(UnitParam[3],UnitParam[4],UnitParam[5]);
		twFarmVillagersByUnit[i-1] = UnitParam[6];
		twSpeedByUnit[i-1] = UnitParam[11];
		twLanguage["units"][i-1] = UnitParam[1];
		// Enlaces: MiniImágenes de las Unidades
		twLinks["twUnitsImg"][i-1] = UnitParam[2];
		}
	return true;
	}
}
//____________________________________________________________________________________________________________

______//

// Method: twGetWorldUnits
// Summary:  Names of units
// Params: 
// Returns: nothing
function twGetWorldArmy()
{
	GM_xmlhttpRequest({ 
		method: 'GET',
		url: baseURL+'/help.php?mode=units',
		headers: { 'User-agent': 'Mozilla/4.0', 'Accept': 'text/xml',},
		onload: function(responseDetails) 
		{
			var newHTML = document.createElement("div");
			newHTML.setAttribute('id', 'WorldUnits');
			newHTML.innerHTML = responseDetails.responseText;
			document.body.insertBefore(newHTML, document.body.childNodes[0]);
			var path = 'html/body/div/table/tbody/tr/td/table[2]/tbody/tr/td[2]/table/tbody';	

	
			var subHTML = 

document.evaluate(path,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue ;
			var rawsArmy = subHTML.getElementsByTagName("tr").length;
			var UnitsCollection= "";
			var UnitNode ="";
			var i=0;
			var j=0;
			for( i = 2; i <= rawsArmy; i++){
			UnitsCollection += "UnitRaw=";
			UnitNode = document.evaluate(path + 

'/tr['+i+']',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;
			
//Nom natif;; Nom ;;icone path;; Bois ;; Argile ;; Fer ;; Villageois ;; Force offensive ;; Défense générale ;; 

Défense de la cavalerie ;; Défense archers ;; Vitesse ;; Butin;;
			UnitsCollection += 

UnitNode.childNodes[1].innerHTML.toString().match("(unit=)(.*(?=',))")[2]+";;";
			UnitsCollection += UnitNode.childNodes[1].childNodes[0].text.match("( )(.*)")[2]+";;";
			UnitsCollection += UnitNode.getElementsByTagName("img")[0].src+";;";
			
			for ( j = 1 ; j < 11 ; j++){UnitsCollection += 

UnitNode.getElementsByTagName("td")[j].textContent+";;" ;}
			}
			
			GM_setValue(wID+"_UnitsArmy", UnitsCollection);			
			newHTML.parentNode.removeChild(newHTML);
		}
	})
return true;
}

//____________________________________________________________________________________________________________

______//

// Method: twInitWorldBuildings
// Summary: 
// Params:
// Returns: nothing
function twInitWorldBuildings()
{
	var BuildingsList = GM_getValue(wID+"_WorldBuildings" ,0);
	if(BuildingsList == 0) {
	return false;
	}
	else
	{
	twBuildingsNamesArray = new Array();
	twLinks["twBuildingsImg"] = new Array();
	twLanguage["buildings"] = new Array();
	
	var BuildingParam = new Array();
	var BuildingsRaw = BuildingsList.split("BuildingRaw=");
	var BuildingsNum = BuildingsRaw.length-1;
	for (var i=1; i<=BuildingsNum;i++){
		BuildingParam = BuildingsRaw[i].split(";;");
		twBuildingsNamesArray[i-1] = BuildingParam[0];
		twLanguage["buildings"][i-1] = BuildingParam[1];
		twLinks["twBuildingsImg"][i-1] = BuildingParam[2];
		}
	return true;
	}
}
//____________________________________________________________________________________________________________

______//

// Method: twGetWorldBuildings
// Summary:  Names of buildings
// Params: 
// Returns: nothing
function twGetWorldBuildings()
{
	GM_xmlhttpRequest({ 
		method: 'GET',
		url: baseURL+'/help.php?mode=buildings',
		headers: { 'User-agent': 'Mozilla/4.0', 'Accept': 'text/xml',},
		onload: function(responseDetails) 
		{
			var newHTML = document.createElement("div");
			newHTML.setAttribute('id', 'WorldBuildings');
			newHTML.innerHTML = responseDetails.responseText;
			document.body.insertBefore(newHTML, document.body.childNodes[0]);
			var path = '/html/body/div/table/tbody/tr/td/table[2]/tbody/tr/td[2]/table/tbody';	

	
			var subHTML = 

document.evaluate(path,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue ;
			var rawsBuilding = subHTML.getElementsByTagName("tr").length;
			var BuildingsCollection= "";
			var i=0;
			for(i = 1; i <= rawsBuilding; i++)
			{
			BuildingsCollection += "BuildingRaw=";
			var BuildingNode = (document.evaluate(path + 

'/tr['+i+']',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue);
			
//Nom natif;; Nom ;;icone path;; 
			BuildingsCollection += 

BuildingNode.childNodes[1].innerHTML.toString().match("(building=)(.*(?=',))")[2]+";;";
			BuildingsCollection += BuildingNode.childNodes[1].childNodes[1].text.match("( 

)(.*)")[2]+";;";
			BuildingsCollection += BuildingNode.getElementsByTagName("img")[0].src+";;";
				
			}
			GM_setValue(wID+"_WorldBuildings", BuildingsCollection);	
			newHTML.parentNode.removeChild(newHTML);
		}
	})
return true;
}

//____________________________________________________________________________________________________________

______//

// Method: twGetpiD
// Summary: 
// Params: nothing
// Returns: nothing
function twGetpID()
{
	// si el pID no esta cargado empieza con la carga de todos los datos
	if(pID == 0||pIDold != pID)
	{	
		//if(!$('LoadingData')) twLoadingData(0);
		GM_xmlhttpRequest({
			method: 'GET',
			url: baseURL+'/guest.php?screen=info_village&id='+vID,
			headers: {'User-agent': 'Mozilla/4.0','Accept': 'text/html'},
			onload: function(responseDetails) {
				httpRequest  = responseDetails.responseText;
				var newHTML = document.createElement("div");
				newHTML.setAttribute('id', 'loadVillages');
				newHTML.innerHTML = httpRequest;
				document.body.insertBefore(newHTML, document.body.childNodes[1]);
				
				// Carga del id del usuario
				pID = 

document.evaluate('/html/body/div/table/tbody/tr/td/table[2]/tbody/tr[4]/td[2]',document,null,XPathResult.FIRS

T_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML;
				pID = pID.substring(pID.indexOf("d=",0)+2, pID.indexOf("\">",0));
				if(DebugMode == 1) GM_log("[twGetpID()] pID = "+pID);
				GM_setValue(wID+"_pID", pID);
				newHTML.parentNode.removeChild(newHTML);
				twDataLoader(vID, new Array(1,1,1));
				},
		});
	}
}
//____________________________________________________________________________________________________________

______//

// Method: twGetVillageArmy
// Summary: 
// Params: nothing
// Returns: nothing

function twGetVillageArmy(village_id, mode)
{
	// Inicializa la matriz de tropas del pueblo
	twInitVillageArmy(village_id);
	// Empieza la carga de las tropas del pueblo
	GM_xmlhttpRequest({ 
		method: 'GET',
		url: twUrlScreen+'village='+village_id+'&screen=place&mode=units',
		headers: { 'User-agent': 'Mozilla/4.0', 'Accept': 'text/xml',},
		onload: function(responseDetails) 
		{
			var newHTML = document.createElement("div");
			newHTML.setAttribute('id', 'loadArmy');
			newHTML.innerHTML = responseDetails.responseText;
			document.body.insertBefore(newHTML, document.body.childNodes[0]);
			var k = 2, i = 0;
			while(i<UnitNum){
				Army[twGetVillageNum(village_id)][twUnitsNamesArray[i]] = 

document.evaluate('/html/body/div/table/tbody/tr/td/table[2]/tbody/tr/td[2]/form/table/tbody/tr[2]/td['+k+']',

document,null,XPathResult.STRING_TYPE,null).stringValue;
				GM_setValue(wID+"_"+pID+"_"+"_"+village_id+"_"+twUnitsNamesArray[i], 

Army[twGetVillageNum(village_id)][twUnitsNamesArray[i]]);
				i++;
				k++;
			}									
			if(DebugMode == 1) GM_log("[twGetVillageArmy] = OK!");
			newHTML.parentNode.removeChild(newHTML);
			// Mostramos los datos
			if(mode == 'single')
				twShowInfoArmy(village_id);
			else if(mode == 'all')
				twGlobalResumeArmy_AddVillageInfo(twGetVillageNum(village_id));
				
			if($('LoadingData')) twLoadingData(1);
			if(DebugMode == 1) GM_log("Army of Village "+twGetVillageNum(village_id)+" => 

loaded!");
		}
	});
}
//____________________________________________________________________________________________________________

______//

// Method: twGetVillageBuildingsLevel
// Summary: 
// Params: nothing
// Returns: nothing
function twGetVillageBuildingsLevel(village_id)
{
	if(DebugMode == 1) GM_log("Loading Village Buildings Level...");
	// Inicializa la matriz de tropas del pueblo
	twInitVillageBuildingsLevel(village_id);
	// Empieza la carga de las tropas del pueblo
	GM_xmlhttpRequest({ 
		method: 'GET',
		url: twUrlScreen+'village='+village_id+'&screen=main',
		headers: { 'User-agent': 'Mozilla/4.0', 'Accept': 'text/xml',},
		onload: function(responseDetails) 
		{
			var txt = responseDetails.responseText;
			var newHTML = document.createElement("div");

			newHTML.setAttribute('id', 'loadBuildings');
			newHTML.innerHTML = txt;
			document.body.insertBefore(newHTML, document.body.childNodes[0]);
			var k = 2, str = "", building = "", lvl = 0, path = 

"/html/body/div/table[3]/tbody/tr/td/table[2]/tbody/ ";
			if(txt.test(/action=cancel/) && txt.test(/mode=destroy/)){
				path = 

'/html/body/div/table[3]/tbody/tr/td/table[3]/tbody/tr[2]/td/table['+(txt.split(/screen=premium/).length -1) 

+']/tbody/';}
			if(!txt.test(/action=cancel/) && txt.test(/mode=destroy/)){
				path = 

"/html/body/div/table[3]/tbody/tr/td/table[2]/tbody/tr[2]/td/table/tbody/";}
			if(txt.test(/action=cancel/) && !txt.test(/mode=destroy/)){
				path = "/html/body/div/table[3]/tbody/tr/td/table["+ 

(txt.split(/screen=premium/).length + 1) +"]/tbody/";
				}
		/*	if(txt.test(/action=cancel/) && txt.test(/mode=destroy/)) path = 

"/html/body/div/table[3]/tbody/tr/td/table[3]/tbody/tr[2]/td/table[2]/tbody/";
			if(!txt.test(/action=cancel/) && txt.test(/mode=destroy/)) path = 

"/html/body/div/table[3]/tbody/tr/td/table[2]/tbody/tr[2]/td/table/tbody/";
			if(txt.test(/action=cancel/) && !txt.test(/mode=destroy/)) path = 

"/html/body/div/table[3]/tbody/tr/td/table[3]/tbody/"
		*/		
			do
			{
				str = ""; 		
				

if(document.evaluate(path+'tr['+k+']/td',document,null,XPathResult.STRING_TYPE,null).stringValue != "")
					str = 

document.evaluate(path+'tr['+k+']/td',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.

innerHTML;
			
				if(str != "" ){
					lvl = str.substring(str.lastIndexOf(" "), str.lastIndexOf(")"));
					building = str.substring(str.indexOf("screen=")+7, 

str.indexOf("\">"));
					if(DebugMode == 1) GM_log(building+" => "+lvl)
					GM_setValue(wID+"_"+pID+"_"+vID+"_LVL_"+building, lvl);
				}
				k++;
			}while(str != "");	
			if(DebugMode == 1) GM_log("Buildings Level loaded. OK!");
			newHTML.parentNode.removeChild(newHTML);
			twShowBuildingsLevel()
		}
	});
}
//____________________________________________________________________________________________________________

______//


// Method: twShowBuildingsLevel
// Summary: 
// Params: nothing
// Returns: nothing
function twShowBuildingsLevel()
{
	var num = 0;
	var newDiv = "";
	
	
	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_main"))
	//alert (num);
	if(!isNaN(num)){
		if(num > 9)  newDiv += '<div 

style="position:absolute;top:147px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else  newDiv += '<div 

style="position:absolute;top:147px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:146px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';
	
	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_barracks"))
	if(!isNaN(num)){
		if(num > 9)  newDiv += '<div 

style="position:absolute;top:184px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else  newDiv += '<div 

style="position:absolute;top:184px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:183px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';

	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_stable"))
	if(!isNaN(num)){
		if(num > 9) newDiv += '<div 

style="position:absolute;top:222px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else  newDiv += '<div 

style="position:absolute;top:222px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:220px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';

	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_garage"))
	if(!isNaN(num)){
	 if(num > 9) newDiv += '<div 

style="position:absolute;top:258px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
	 else newDiv += '<div 

style="position:absolute;top:258px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:257px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';
	
	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_snob"))
	if(!isNaN(num)){
		if(num > 9) newDiv += '<div 

style="position:absolute;top:295px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else newDiv += '<div 

style="position:absolute;top:295px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	} 
	else newDiv += '<div style="position:absolute;top:292px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';
	
	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_place"))
	if(!isNaN(num)){
		if(num > 9)  newDiv += '<div 

style="position:absolute;top:331px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else  newDiv += '<div 

style="position:absolute;top:331px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:329px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';
	
	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_smith"))
	if(!isNaN(num)){
	 if(num > 9) newDiv += '<div 

style="position:absolute;top:368px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
	 else newDiv += '<div 

style="position:absolute;top:368px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:367px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';

	num = parseInt(GM_getValue(wID+"_"+pID+"_"+vID+"_LVL_market"))
	if(!isNaN(num)){
		if(num > 9) newDiv += '<div 

style="position:absolute;top:405px;left:985px;font-size:6pt;"><b>'+num+'</b></div>';
		else newDiv += '<div 

style="position:absolute;top:405px;left:988px;font-size:6pt;"><b>'+num+'</b></div>';
	}
	else newDiv += '<div style="position:absolute;top:403px;left:984px;font-size:6pt;"><img 

src="'+twGlobalInfo["InterfaceItems"][12]+'" title="Edificio Sin Construir"></div>';


	if($('BuildingsLvL')) $('BuildingsLvL').innerHTML ="";
	$('BuildingsLvL').innerHTML += newDiv;
}
//____________________________________________________________________________________________________________

______//

// Method: twShowInfoResources
// Summary: 
// Params: nothing
// Returns: nothing
function twShowInfoResources()
{
	//twLanguage["resources"] = new Array ("Madera", "Barro", "Hierro", "Almac&eacute;n");
	var newDiv = "";
	newDiv += "<div id='VillageInfoResources'>";
	newDiv += "<table>";
	newDiv += "		<tbody>";
	newDiv += "			<tr>";
	newDiv += "				<th 

style='color:#F1EBDD;background:url("+twGlobalInfo["InterfaceBackgroundParts"][20]+") #804000 right no-repeat; 

width:auto;height:29px;padding:2px 10px 2px 2px;margin-right:5px'>"+twLanguage["mainMenuTitle"][1]+': </th>';
	newDiv += "				<td title=\""+twLanguage['resources'][0]+"\" style='padding:0 

0 0 15px'><img src='"+twLinks["twOtherImg"][0]+"' /></td><td>"+twGlobalInfo["resources"][0]+"</td>";
	newDiv += "				<td title=\""+twLanguage['resources'][1]+"\"><img 

src='"+twLinks["twOtherImg"][1]+"' /></td><td>"+twGlobalInfo["resources"][1]+"</td>";
	newDiv += "				<td title=\""+twLanguage['resources'][2]+"\"><img 

src='"+twLinks["twOtherImg"][2]+"' /></td><td>"+twGlobalInfo["resources"][2]+"</td>";
	newDiv += "				<td title=\""+twLanguage['resources'][3]+"\"><img 

src='"+twLinks["twOtherImg"][3]+"' /></td><td id='storage'>"+twGlobalInfo["resources"][3]+"</td>";
	newDiv += "			</tr>";
	newDiv += "		</tbody>";
	newDiv += "	</table>";
	newDiv += "</div>";
	// Añadimos los recursos a la Barra de navegación
	if($('VillageInfoResources')) 

$('VillageInfoResources').parentNode.removeChild($('VillageInfoResources'));
	$('twVillageNavBar').innerHTML += newDiv;


	var bois = document.getElementById('wood');
	var pierre = document.getElementById('stone');
	var fer = document.getElementById('iron');
	var store = parseInt(document.getElementById('storage').innerHTML);

	var secFull,fullStr;

	secFull = (3600*(store-parseInt(bois.innerHTML))/parseInt(bois.title));
	fullStr = t_format2(Math.ceil(Math.max(0,secFull))).slice(0,-3);
	if (parseInt(bois.title)==store)
		fullStr = "<b>" + fullStr + "</b>";
	bois.innerHTML=bois.innerHTML+"<br />"+fullStr;
	bois.style.fontSize="8pt";

	secFull = (3600*(store-parseInt(pierre.innerHTML))/parseInt(pierre.title));
	fullStr = t_format2(Math.ceil(Math.max(0,secFull))).slice(0,-3);
	if (parseInt(pierre.title)==store)
		fullStr = "<b>" + fullStr + "</b>";
	pierre.innerHTML=pierre.innerHTML+"<br />"+fullStr;
	pierre.style.fontSize="8pt";
	
	secFull = (3600*(store-parseInt(fer.innerHTML))/parseInt(fer.title));
	fullStr = t_format2(Math.ceil(Math.max(0,secFull))).slice(0,-3);
	if (parseInt(fer.title)==store)
		fullStr = "<b>" + fullStr + "</b>";
	fer.innerHTML=fer.innerHTML+"<br />"+fullStr;
	fer.style.fontSize="8pt";


	return newDiv;
}
//____________________________________________________________________________________________________________

______//

// Method: twShowInfoFarm
// Summary: 
// Params: nothing
// Returns: nothing
function twShowInfoFarm()
{
	var newDiv = "";
	newDiv += "<div id='VillageInfoFarm'>";
	newDiv += "	<table>";
	newDiv += "	<tbody>";
	newDiv += "		<tr>";
	newDiv += "			<th 

style='background:url("+twGlobalInfo["InterfaceBackgroundParts"][20]+") #804000 right 

no-repeat;color:#F1EBDD;width:auto;height:29px;padding:2px 10px 2px 8px;'>"+twLanguage["mainMenuTitle"][2]+": 

</th>";
	newDiv += "			<td title="+twLanguage["farm"][0]+" style='padding:0 0 0 12px'><img 

src='"+twLinks["twOtherImg"][4]+"' /></td><td>"+twGlobalInfo["farm"][0] +"</td>";
	newDiv += "			<td title="+twLanguage["farm"][1]+"><img 

src='"+twLinks["twOtherImg"][4]+"' /></td><td>"+twGlobalInfo["farm"][1]+"</td>";
	newDiv += "			<td title="+twLanguage["farm"][2]+"><img 

src='"+twLinks["twOtherImg"][4]+"' /></td><td style='color:green;'><b>"+twGlobalInfo["farm"][2]+"</b></td>";
	newDiv += "		</tr>";
	newDiv += "	</tbody>";
	newDiv += "</table>";
	newDiv += "</div>";
	// Añadimos los datos de la granja a la Barra de Navegación
	if($('VillageInfoFarm')) $('VillageInfoFarm').parentNode.removeChild($('VillageInfoFarm'));
	$('twVillageNavBar').innerHTML += newDiv;
	return newDiv;
}
//____________________________________________________________________________________________________________

______//

// Method: twShowInfoArmy
// Summary: 
// Params: village_id
// Returns: nothing
function twShowInfoArmy(village_id)
{
	var village = twGetVillageNum(village_id);
	var newDiv = "";
	newDiv += "<table>";
	newDiv += "	<tbody>";
	newDiv += "		<tr>";
	newDiv += "			<th style='background: 

url("+twGlobalInfo["InterfaceBackgroundParts"][19]+") #804000 right 

no-repeat;color:#F1EBDD;width:auto;height:28px;padding:2px 10px 2px 

2px;'>"+twLanguage["mainMenuTitle"][0]+":";
//	newDiv += '<img src="'+twGlobalInfo["InterfaceBackgroundParts"][20]+'" width="15px" height="28" 

alt=""></th>';
	for(var i=0;i<UnitNum;i++){
		if(Army[village][twUnitsNamesArray[i]] > 0 && Army[village][twUnitsNamesArray[i]] != null) 

newDiv += "		<td title=\""+twLanguage["units"][i]+"\" style='padding:0 5px 0 15px;'><img 

src='"+twLinks["twUnitsImg"][i]+"'></td><td>"+Army[village][twUnitsNamesArray[i]]+"</td>";
	}
	newDiv += "		</tr>";
	newDiv += "	</tbody>";
	newDiv += "</table>";

	if($('VillageInfoArmy')) 
		$('VillageInfoArmy').innerHTML = newDiv
	else
		$('twVillageNavBar').innerHTML += "<div id='VillageInfoArmy' style='border:0;padding:0'>" 

+newDiv+"</div>";
		
	twVillagesNavigator();
	return newDiv;
}
//____________________________________________________________________________________________________________

______//


// Method: twGlobalResumeArmy
// Summary: 
// Params: nothing
// Returns: nothing
function twGlobalResumeArmy()
{
		
		var newHTML ="";
		newHTML += "<h2>"+twLanguage["VillageNav"][4]+"</h2>";
/*		newHTML += "<table id='GlobalArmyInfo' width=100% style='text-align:left;'>"
		newHTML += "	<tr style='text-align:center'><th rowspan=2>Nombre</th><th 

rowspan=2>Puntos</th><th colspan=9 width:80% align='center'>Tropas</th></tr>";
		newHTML += "	<tr>";
		
		for(i=0;i<twUnitsNamesArray.length;i++)
			newHTML += "<th><img src='"+twLinks["twUnitsImg"][i]+"'></th>";
		 
		newHTML += "	</tr>";
		newHTML += "</table>";
	*/
		newHTML += "<table id='GlobalArmyInfo' width=100% style='text-align:left;'>"
		newHTML += "	<tr style='text-align:center'><th 

rowspan=2>"+twLanguage["mainMenuTitle"][3]+"</th><th rowspan=2>"+twLanguage["VillageInfo"]["Points"]+"</th><th 

colspan="+UnitNum+" style='width:70%; text-align:center'>"+twLanguage["mainMenuTitle"][0]+"</th></tr>";
		newHTML += "	<tr>";
		
		for(i=0;i<UnitNum;i++)
			newHTML += "<th title=\""+twLanguage["units"][i]+"\"><center><img 

src='"+twLinks["twUnitsImg"][i]+"'></center></th>";
		 
		newHTML += "	</tr>";
		newHTML += "</table>";
	
		var elem = 

document.evaluate('/html/body/table/tbody/tr/td',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
		elem.singleNodeValue.textContent = '';
		elem.singleNodeValue.innerHTML = newHTML;
		//document.createElement("table")
		//document.createTextNode("<tr><th>Nº</th><th>Pueblo</th><th colspan='9'>Unidades</th");
		//document.body.appendChild("main");
		
		for(var i=0;i<Villages.length;i++)
			twGetVillageArmy(Villages[i]["id"], 'all');
}
//____________________________________________________________________________________________________________

______//

function twGlobalResumeArmy_AddVillageInfo(village)
{
	//var newDiv = "<tr>";
	var newTR = document.createElement("tr")
	var newA = "";
	var newTD = "";
	var txt = "";

	newA = document.createElement("a");
	newA.setAttribute("href", twUrlScreen+"village="+Villages[village]["id"]+"&screen=overview" )
	txt = document.createTextNode(Villages[village]["name"]+" ("+Villages[village]["coords"]+")")
	newA.appendChild(txt);
	
	newTD = document.createElement("td")
	newTD.appendChild(newA);
	newTR.appendChild(newTD);
	
	newTD = document.createElement("td")
	newTD.setAttribute("style", "padding:0 5px 0 5px; text-align:right;")
	txt = document.createTextN