Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/inestedsortable.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/inestedsortable.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/inestedsortable.js	(revision 80)
@@ -0,0 +1,23 @@
+/**
+ * 
+ * Nested Sortable Plugin for jQuery/Interface.
+ * 
+ * Version 1.0.1
+ *  
+ *Change Log:
+ * 1.0 
+ *       Initial Release
+ * 1.0.1
+ *       Added noNestingClass option to prevent nesting in some elements.
+ *
+ * Copyright (c) 2007 Bernardo de Padua dos Santos
+ * Dual licensed under the MIT (MIT-LICENSE.txt) 
+ * and GPL (GPL-LICENSE.txt) licenses.
+ * 
+ * http://code.google.com/p/nestedsortables/
+ * 
+ * Compressed using Dean Edwards' Packer (http://dean.edwards.name/packer/)
+ * 
+ */
+
+eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('2.6={28:9(e,o){5(e.L){2.6.1R(e);8 2.6.1K(e)}r{8 2.6.1D(e,o)}},1D:2.p.2b,1K:9(e){5(!2.v.A){8}5(!(e.1q.1r.1k()>0)){8}5(!e.3.Z){2.p.2n(e);e.3.Z=C}7 a=2.6.1A(e);7 b=2.6.1v(e,a);7 c=(!a)?2.6.24(e):n;7 d=n;5(a){5(e.3.1m===a&&e.3.1W===b){d=C}}r 5(e.3.1m===a&&e.3.1V===c){d=C}e.3.1m=a;e.3.1W=b;e.3.1V=c;5(d){8}5(a!==N){5(b){2.6.1U(e,a)}r{2.6.1Q(e,a)}}r 5(c){2.6.1P(e)}},1R:9(e){5(!e.3.16){8 n}7 a=e.3.15;7 b=e.3.14;7 c=2.v.A.B.2o;7 d=2.1i.1L();5((c.y-d.M)-d.t>-a){1H.1F(0,b)}5(c.y-d.t<a){1H.1F(0,-b)}},18:9(a){2.6.1C(a);8 2.6.1B(a)},1B:2.p.18,1C:9(a){5(2.6.S&&2.6.D){2.6.D.1y(2.6.S);2.6.D=N;2.6.S=""}5(2.1d.1w.L){2.1d.1w.3.Z=n}},X:9(s){5(2(\'#\'+s).q(0).L){8 2.6.27(s)}r{8 2.6.29(s)}},29:2.p.X,27:9(s){7 i;7 h=\'\';7 j=\'\';7 o={};7 e;7 k=9(f){7 g=[];1X=2(f).J(\'.\'+2.p.1b[s]);1X.1p(9(i){7 a=2.2s(m,\'1l\');5(a&&a.1S){a=a.1S(e.3.11)[0]}5(h.I>0){h+=\'&\'}h+=s+j+\'[\'+i+\'][1l]=\'+a;g[i]={1l:a};7 b=2(m).J(e.3.G+"."+e.3.W.V(" ").T(".")).q(0);7 c=j;j+=\'[\'+i+\'][J]\';7 d=k(b);5(d.I>0){g[i].J=d}j=c});8 g};5(s){5(2.p.1b[s]){e=2(\'#\'+s).q(0);o[s]=k(e)}r{1O(a 1N s){5(2.p.1b[s[a]]){e=2(\'#\'+s[a]).q(0);o[s[a]]=k(e)}}}}r{1O(i 1N 2.p.1b){e=2(\'#\'+i).q(0);o[i]=k(e)}}8{2p:h,o:o}},1A:9(e){7 d=0;7 f=2.1M(e.1q.1r,9(i){7 a=(i.z.y<2.v.A.B.1j)&&(i.z.y>d);5(!a){8 n}7 b;5(e.3.Q){b=(i.z.x+i.z.13+e.3.P>2.v.A.B.12+2.v.A.B.1h.13)}r{b=(i.z.x-e.3.P<2.v.A.B.12)}5(!b){8 n}7 c=2.6.1g(e,i);5(c){8 n}d=i.z.y;8 C});5(f.I>0){8 f[(f.I-1)]}r{8 N}},24:9(e){7 c;7 d=2.1M(e.1q.1r,9(i){7 a=(c===1J||i.z.y<c);5(!a){8 n}7 b=2.6.1g(e,i);5(b){8 n}c=i.z.y;8 C});5(d.I>0){d=d[(d.I-1)];8 d.z.y<2.v.A.B.1j+2.v.A.B.1h.2m&&d.z.y>2.v.A.B.1j}r{8 n}},1g:9(e,a){7 b=2.v.A;5(!b){8 n}5(a==b){8 C}5(2(a).2l("."+e.1I.1f.V(" ").T(".")).1G(9(){8 m==b}).I!==0){8 C}r{8 n}},1v:9(e,a){5(!a){8 n}5(e.3.O&&2(a).1G("."+e.3.O).q(0)===a){8 n}5(e.3.Q){8 a.z.x+a.z.13-(e.3.H-e.3.P)>2.v.A.B.12+2.v.A.B.1h.13}r{8 a.z.x+(e.3.H-e.3.P)<2.v.A.B.12}},1U:9(e,a){7 b=2(a).J(e.3.G+"."+e.3.W.V(" ").T("."));7 c=2.p.U;1E=c.q(0).2k;1E.2j=\'2i\';5(!b.1k()){7 d="<"+e.3.G+" 2h=\'"+e.3.W+"\'></"+e.3.G+">";b=2(a).2g(d).J(e.3.G).1z(e.3.1e)}2.6.17(e,b);2.6.Y(e);b.1x(c.q(0));2.6.1a(e)},1Q:9(e,a){2.6.17(e,2(a).1t());2.6.Y(e);2(a).2f(2.p.U.q(0));2.6.1a(e)},1P:9(e){2.6.17(e,e);2.6.Y(e);2(e).1x(2.p.U.q(0));2.6.1a(e)},Y:9(e){7 a=2.p.U.1t(e.3.G+"."+e.3.W.V(" ").T("."));7 b=a.J("."+e.1I.1f.V(" ").T(".")+":2e").1k();5(b===0&&a.q(0)!==e){a.2d()}},1a:9(e){7 a=2.p.U.1t();5(a.q(0)!==e){a.2c()}e.3.Z=n},17:9(e,a){7 b=2(a);5((e.3.K)&&(!2.6.D||b.q(0)!=2.6.D.q(0))){5(2.6.D){2.6.D.1y(e.3.K)}5(b.q(0)!=e){2.6.D=b;b.2E(e.3.K);2.6.S=e.3.K}r{2.6.D=N;2.6.S=""}}},2a:9(){8 m.1p(9(){5(m.L){m.3=N;m.L=N;2(m).2D()}})},26:9(a){5(a.1f&&2.1i&&2.v&&2.1d&&2.p){m.1p(9(){m.L=C;m.3={O:a.O?a.O:n,Q:a.Q?C:n,H:25(a.H,10)||2C,K:a.K?a.K:"",1u:a.1u?a.1u:n,16:a.16!==1J?a.16==C:C,15:a.15?a.15:20,14:a.14?a.14:20,11:a.11?a.11:/[^\\-]*$/};m.3.P=25(m.3.H*0.4,10);m.3.G=m.2B;m.3.W=m.2A;m.3.1e=(m.3.Q)?{"1c-21":0,"1c-1Z":m.3.H+\'1Y\'}:{"1c-21":m.3.H+\'1Y\',"1c-1Z":0};2(m.3.G,m).1z(m.3.1e)});2.p.2b=2.6.28;2.p.18=2.6.18;2.p.X=2.6.X}8 m.2z(a)}};2.2y.2x({2w:2.6.26,2v:2.6.2a});2.1i.1L=9(e){7 t,l,w,h,R,M;5(e&&e.2u.2t()!=\'F\'){t=e.19;l=e.1o;w=e.1n;h=e.1s;R=0;M=0}r{5(u.E&&u.E.19){t=u.E.19;l=u.E.1o;w=u.E.1n;h=u.E.1s}r 5(u.F){t=u.F.19;l=u.F.1o;w=u.F.1n;h=u.F.1s}R=1T.2r||u.E.23||u.F.23||0;M=1T.2q||u.E.22||u.F.22||0}8{t:t,l:l,w:w,h:h,R:R,M:M}};',62,165,'||jQuery|nestedSortCfg||if|iNestedSortable|var|return|function|||||||||||||this|false||iSort|get|else|||document|iDrag||||pos|dragged|dragCfg|true|currentNesting|documentElement|body|nestingTag|nestingPxSpace|length|children|currentNestingClass|isNestedSortable|ih|null|noNestingClass|snapTolerance|rightToLeft|iw|latestNestingClass|join|helper|split|nestingTagClass|serialize|beforeHelperRemove|remeasured||serializeRegExp|nx|wb|scrollSpeed|scrollSensitivity|autoScroll|updateCurrentNestingClass|check|scrollTop|afterHelperInsert|collected|padding|iDrop|styleToAttach|accept|isBeingDragged|oC|iUtil|ny|size|id|lastPrecedingItem|scrollWidth|scrollLeft|each|dropCfg|el|scrollHeight|parent|nestingLimit|shouldNestItem|overzone|prepend|removeClass|css|findPrecedingItem|oldCheck|newCheck|oldCheckHover|styleHelper|scrollBy|filter|window|sortCfg|undefined|newCheckHover|getScroll|grep|in|for|insertOnTop|appendItem|scroll|match|self|nestItem|lastTouchingFirst|lastShouldNest|thisChildren|px|right||left|clientHeight|clientWidth|isTouchingFirstItem|parseInt|build|newSerialize|checkHover|oldSerialize|destroy|checkhover|show|hide|visible|after|append|class|auto|width|style|parents|hb|measure|currentPointer|hash|innerHeight|innerWidth|attr|toLowerCase|nodeName|NestedSortableDestroy|NestedSortable|extend|fn|Sortable|className|tagName|30|SortableDestroy|addClass'.split('|'),0,{}))
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/interface.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/interface.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/interface.js	(revision 80)
@@ -0,0 +1,12 @@
+/**
+ * Interface Elements for jQuery
+ * 
+ * http://interface.eyecon.ro
+ * 
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt) 
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *   
+ *
+ */
+ 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}('k.f2={2r:u(M){E q.1E(u(){if(!M.aR||!M.aZ)E;D el=q;el.2l={aq:M.aq||cO,aR:M.aR,aZ:M.aZ,8e:M.8e||\'fV\',aJ:M.aJ||\'fV\',2Y:M.2Y&&2g M.2Y==\'u\'?M.2Y:I,3i:M.2Y&&2g M.3i==\'u\'?M.3i:I,7U:M.7U&&2g M.7U==\'u\'?M.7U:I,as:k(M.aR,q),8f:k(M.aZ,q),H:M.H||8J,67:M.67||0};el.2l.8f.2G().B(\'W\',\'9R\').eq(0).B({W:el.2l.aq+\'U\',19:\'2B\'}).2T();el.2l.as.1E(u(2N){q.7X=2N}).gC(u(){k(q).2R(el.2l.aJ)},u(){k(q).4i(el.2l.aJ)}).1J(\'5h\',u(e){if(el.2l.67==q.7X)E;el.2l.as.eq(el.2l.67).4i(el.2l.8e).2T().eq(q.7X).2R(el.2l.8e).2T();el.2l.8f.eq(el.2l.67).5w({W:0},el.2l.H,u(){q.14.19=\'1o\';if(el.2l.3i){el.2l.3i.1D(el,[q])}}).2T().eq(q.7X).1Y().5w({W:el.2l.aq},el.2l.H,u(){q.14.19=\'2B\';if(el.2l.2Y){el.2l.2Y.1D(el,[q])}}).2T();if(el.2l.7U){el.2l.7U.1D(el,[q,el.2l.8f.K(q.7X),el.2l.as.K(el.2l.67),el.2l.8f.K(el.2l.67)])}el.2l.67=q.7X}).eq(0).2R(el.2l.8e).2T();k(q).B(\'W\',k(q).B(\'W\')).B(\'2U\',\'2K\')})}};k.fn.gN=k.f2.2r;k.aA={2r:u(M){E q.1E(u(){D el=q;D 7E=2*18.2Q/f1;D an=2*18.2Q;if(k(el).B(\'Y\')!=\'2s\'&&k(el).B(\'Y\')!=\'1P\'){k(el).B(\'Y\',\'2s\')}el.1l={1R:k(M.1R,q),2F:M.2F,6q:M.6q,aD:M.aD,an:an,1N:k.1a.2o(q),Y:k.1a.3w(q),26:18.2Q/2,bi:M.bi,8p:M.6r,6r:[],aG:I,7E:2*18.2Q/f1};el.1l.fB=(el.1l.1N.w-el.1l.2F)/2;el.1l.7D=(el.1l.1N.h-el.1l.6q-el.1l.6q*el.1l.8p)/2;el.1l.2D=2*18.2Q/el.1l.1R.1N();el.1l.ba=el.1l.1N.w/2;el.1l.b9=el.1l.1N.h/2-el.1l.6q*el.1l.8p;D ak=1h.3F(\'22\');k(ak).B({Y:\'1P\',3I:1,Q:0,O:0});k(el).1S(ak);el.1l.1R.1E(u(2N){a6=k(\'1T\',q).K(0);W=T(el.1l.6q*el.1l.8p);if(k.3a.4t){3E=1h.3F(\'1T\');k(3E).B(\'Y\',\'1P\');3E.2J=a6.2J;3E.14.5E=\'gE 9n:9w.9y.cC(1G=60, 14=1, gB=0, gA=0, gv=0, gF=0)\'}P{3E=1h.3F(\'3E\');if(3E.fD){4L=3E.fD("2d");3E.14.Y=\'1P\';3E.14.W=W+\'U\';3E.14.Z=el.1l.2F+\'U\';3E.W=W;3E.Z=el.1l.2F;4L.gu();4L.gO(0,W);4L.gk(1,-1);4L.gp(a6,0,0,el.1l.2F,W);4L.6H();4L.gm="gG-4l";D ap=4L.hy(0,0,0,W);ap.fs(1,"fr(1V, 1V, 1V, 1)");ap.fs(0,"fr(1V, 1V, 1V, 0.6)");4L.hx=ap;if(hA.hB.3J(\'hw\')!=-1){4L.hv()}P{4L.hu(0,0,el.1l.2F,W)}}}el.1l.6r[2N]=3E;k(ak).1S(3E)}).1J(\'9z\',u(e){el.1l.aG=1b;el.1l.H=el.1l.7E*0.1*el.1l.H/18.3S(el.1l.H);E I}).1J(\'8B\',u(e){el.1l.aG=I;E I});k.aA.7T(el);el.1l.H=el.1l.7E*0.2;el.1l.ht=1X.6V(u(){el.1l.26+=el.1l.H;if(el.1l.26>an)el.1l.26=0;k.aA.7T(el)},20);k(el).1J(\'8B\',u(){el.1l.H=el.1l.7E*0.2*el.1l.H/18.3S(el.1l.H)}).1J(\'3D\',u(e){if(el.1l.aG==I){1s=k.1a.4a(e);fz=el.1l.1N.w-1s.x+el.1l.Y.x;el.1l.H=el.1l.bi*el.1l.7E*(el.1l.1N.w/2-fz)/(el.1l.1N.w/2)}})})},7T:u(el){el.1l.1R.1E(u(2N){b8=el.1l.26+2N*el.1l.2D;x=el.1l.fB*18.5H(b8);y=el.1l.7D*18.83(b8);f9=T(2a*(el.1l.7D+y)/(2*el.1l.7D));fk=(el.1l.7D+y)/(2*el.1l.7D);Z=T((el.1l.2F-el.1l.aD)*fk+el.1l.aD);W=T(Z*el.1l.6q/el.1l.2F);q.14.Q=el.1l.b9+y-W/2+"U";q.14.O=el.1l.ba+x-Z/2+"U";q.14.Z=Z+"U";q.14.W=W+"U";q.14.3I=f9;el.1l.6r[2N].14.Q=T(el.1l.b9+y+W-1-W/2)+"U";el.1l.6r[2N].14.O=T(el.1l.ba+x-Z/2)+"U";el.1l.6r[2N].14.Z=Z+"U";el.1l.6r[2N].14.W=T(W*el.1l.8p)+"U"})}};k.fn.hI=k.aA.2r;k.23({G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W},hK:u(p,n,1W,1H,1m){E 1H*(n/=1m)*n*n+1W},fl:u(p,n,1W,1H,1m){E-1H*((n=n/1m-1)*n*n*n-1)+1W},hm:u(p,n,1W,1H,1m){if((n/=1m/2)<1)E 1H/2*n*n*n*n+1W;E-1H/2*((n-=2)*n*n*n-2)+1W},8l:u(p,n,1W,1H,1m){if((n/=1m)<(1/2.75)){E 1H*(7.aB*n*n)+1W}P if(n<(2/2.75)){E 1H*(7.aB*(n-=(1.5/2.75))*n+.75)+1W}P if(n<(2.5/2.75)){E 1H*(7.aB*(n-=(2.25/2.75))*n+.gY)+1W}P{E 1H*(7.aB*(n-=(2.h2/2.75))*n+.gX)+1W}},cr:u(p,n,1W,1H,1m){if(k.G.8l)E 1H-k.G.8l(p,1m-n,0,1H,1m)+1W;E 1W+1H},gW:u(p,n,1W,1H,1m){if(k.G.cr&&k.G.8l)if(n<1m/2)E k.G.cr(p,n*2,0,1H,1m)*.5+1W;E k.G.8l(p,n*2-1m,0,1H,1m)*.5+1H*.5+1W;E 1W+1H},gQ:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m)==1)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E-(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W},gT:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E a*18.6b(2,-10*n)*18.83((n*1m-s)*(2*18.2Q)/p)+1H+1W},gV:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}if(n<1){E-.5*(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W}E a*18.6b(2,-10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p)*.5+1H+1W}}});k.6n={2r:u(M){E q.1E(u(){D el=q;el.1F={1R:k(M.1R,q),1Z:k(M.1Z,q),1M:k.1a.3w(q),2F:M.2F,ax:M.ax,7Y:M.7Y,ge:M.ge,51:M.51,6x:M.6x};k.6n.aH(el,0);k(1X).1J(\'gU\',u(){el.1F.1M=k.1a.3w(el);k.6n.aH(el,0);k.6n.7T(el)});k.6n.7T(el);el.1F.1R.1J(\'9z\',u(){k(el.1F.ax,q).K(0).14.19=\'2B\'}).1J(\'8B\',u(){k(el.1F.ax,q).K(0).14.19=\'1o\'});k(1h).1J(\'3D\',u(e){D 1s=k.1a.4a(e);D 5s=0;if(el.1F.51&&el.1F.51==\'cv\')D aI=1s.x-el.1F.1M.x-(el.4c-el.1F.2F*el.1F.1R.1N())/2-el.1F.2F/2;P if(el.1F.51&&el.1F.51==\'2L\')D aI=1s.x-el.1F.1M.x-el.4c+el.1F.2F*el.1F.1R.1N();P D aI=1s.x-el.1F.1M.x;D fP=18.6b(1s.y-el.1F.1M.y-el.5W/2,2);el.1F.1R.1E(u(2N){45=18.ez(18.6b(aI-2N*el.1F.2F,2)+fP);45-=el.1F.2F/2;45=45<0?0:45;45=45>el.1F.7Y?el.1F.7Y:45;45=el.1F.7Y-45;bB=el.1F.6x*45/el.1F.7Y;q.14.Z=el.1F.2F+bB+\'U\';q.14.O=el.1F.2F*2N+5s+\'U\';5s+=bB});k.6n.aH(el,5s)})})},aH:u(el,5s){if(el.1F.51)if(el.1F.51==\'cv\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())/2-5s/2+\'U\';P if(el.1F.51==\'O\')el.1F.1Z.K(0).14.O=-5s/el.1F.1R.1N()+\'U\';P if(el.1F.51==\'2L\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())-5s/2+\'U\';el.1F.1Z.K(0).14.Z=el.1F.2F*el.1F.1R.1N()+5s+\'U\'},7T:u(el){el.1F.1R.1E(u(2N){q.14.Z=el.1F.2F+\'U\';q.14.O=el.1F.2F*2N+\'U\'})}};k.fn.hi=k.6n.2r;k.N={1c:S,8R:S,3A:S,2I:S,4y:S,cl:S,1d:S,2h:S,1R:S,5o:u(){k.N.8R.5o();if(k.N.3A){k.N.3A.2G()}},4w:u(){k.N.1R=S;k.N.2h=S;k.N.4y=k.N.1d.2y;if(k.N.1c.B(\'19\')==\'2B\'){if(k.N.1d.1f.fx){3m(k.N.1d.1f.fx.1u){1e\'c6\':k.N.1c.7a(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'1z\':k.N.1c.fq(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'a7\':k.N.1c.g3(k.N.1d.1f.fx.1m,k.N.5o);1r}}P{k.N.1c.2G()}if(k.N.1d.1f.3i)k.N.1d.1f.3i.1D(k.N.1d,[k.N.1c,k.N.3A])}P{k.N.5o()}1X.bH(k.N.2I)},dQ:u(){D 1d=k.N.1d;D 4d=k.N.aY(1d);if(1d&&4d.3o!=k.N.4y&&4d.3o.1g>=1d.1f.aL){k.N.4y=4d.3o;k.N.cl=4d.3o;81={2n:k(1d).1p(\'hj\')||\'2n\',2y:4d.3o};k.hl({1u:\'hk\',81:k.hf(81),he:u(fZ){1d.1f.4e=k(\'3o\',fZ);1N=1d.1f.4e.1N();if(1N>0){D 5p=\'\';1d.1f.4e.1E(u(2N){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'});if(1d.1f.aU){D 3M=k(\'2y\',1d.1f.4e.K(0)).3g();1d.2y=4d.3j+3M+1d.1f.3N+4d.66;k.N.6J(1d,4d.3o.1g!=3M.1g?(4d.3j.1g+4d.3o.1g):3M.1g,4d.3o.1g!=3M.1g?(4d.3j.1g+3M.1g):3M.1g)}if(1N>0){k.N.cj(1d,5p)}P{k.N.4w()}}P{k.N.4w()}},5N:1d.1f.aN})}},cj:u(1d,5p){k.N.8R.3x(5p);k.N.1R=k(\'8P\',k.N.8R.K(0));k.N.1R.9z(k.N.di).1J(\'5h\',k.N.dj);D Y=k.1a.3w(1d);D 1N=k.1a.2o(1d);k.N.1c.B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').2R(1d.1f.aM);if(k.N.3A){k.N.3A.B(\'19\',\'2B\').B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').B(\'Z\',k.N.1c.B(\'Z\')).B(\'W\',k.N.1c.B(\'W\'))}k.N.2h=0;k.N.1R.K(0).3l=1d.1f.7H;k.N.8Q(1d,1d.1f.4e.K(0),\'7J\');if(k.N.1c.B(\'19\')==\'1o\'){if(1d.1f.bV){D cp=k.1a.aT(1d,1b);D cm=k.1a.6U(1d,1b);k.N.1c.B(\'Z\',1d.4c-(k.dF?(cp.l+cp.r+cm.l+cm.r):0)+\'U\')}if(1d.1f.fx){3m(1d.1f.fx.1u){1e\'c6\':k.N.1c.7f(1d.1f.fx.1m);1r;1e\'1z\':k.N.1c.fo(1d.1f.fx.1m);1r;1e\'a7\':k.N.1c.gb(1d.1f.fx.1m);1r}}P{k.N.1c.1Y()}if(k.N.1d.1f.2Y)k.N.1d.1f.2Y.1D(k.N.1d,[k.N.1c,k.N.3A])}},dO:u(){D 1d=q;if(1d.1f.4e){k.N.4y=1d.2y;k.N.cl=1d.2y;D 5p=\'\';1d.1f.4e.1E(u(2N){2y=k(\'2y\',q).3g().6c();fY=1d.2y.6c();if(2y.3J(fY)==0){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'}});if(5p!=\'\'){k.N.cj(1d,5p);q.1f.9x=1b;E}}1d.1f.4e=S;q.1f.9x=I},6J:u(2n,26,2T){if(2n.b1){D 6t=2n.b1();6t.hp(1b);6t.dI("ck",26);6t.ha("ck",-2T+26);6t.8C()}P if(2n.aF){2n.aF(26,2T)}P{if(2n.5q){2n.5q=26;2n.dN=2T}}2n.6K()},f0:u(2n){if(2n.5q)E 2n.5q;P if(2n.b1){D 6t=1h.6J.dZ();D eX=6t.h9();E 0-eX.dI(\'ck\',-h6)}},aY:u(2n){D 4P={2y:2n.2y,3j:\'\',66:\'\',3o:\'\'};if(2n.1f.aQ){D 8N=I;D 5q=k.N.f0(2n)||0;D 4T=4P.2y.7C(2n.1f.3N);24(D i=0;i<4T.1g;i++){if((4P.3j.1g+4T[i].1g>=5q||5q==0)&&!8N){if(4P.3j.1g<=5q)4P.3o=4T[i];P 4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\');8N=1b}P if(8N){4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\')}if(!8N){4P.3j+=4T[i]+(4T.1g>1?2n.1f.3N:\'\')}}}P{4P.3o=4P.2y}E 4P},bU:u(e){1X.bH(k.N.2I);D 1d=k.N.aY(q);D 3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40|9/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';P k.N.2h=-1;3m(3K){1e 9:1e 13:if(k.N.2h==-1)k.N.2h=0;D 2h=k.N.1R.K(k.N.2h||0);D 3M=2h.5C(\'4I\');q.2y=1d.3j+3M+q.1f.3N+1d.66;k.N.4y=1d.3o;k.N.6J(q,1d.3j.1g+3M.1g+q.1f.3N.1g,1d.3j.1g+3M.1g+q.1f.3N.1g);k.N.4w();if(q.1f.68){4u=T(2h.5C(\'8K\'))||0;k.N.8Q(q,q.1f.4e.K(4u),\'68\')}if(q.7W)q.7W(I);E 3K!=13;1r;1e 27:q.2y=1d.3j+k.N.4y+q.1f.3N+1d.66;q.1f.4e=S;k.N.4w();if(q.7W)q.7W(I);E I;1r;1e 35:k.N.2h=k.N.1R.1N()-1;1r;1e 36:k.N.2h=0;1r;1e 38:k.N.2h--;if(k.N.2h<0)k.N.2h=k.N.1R.1N()-1;1r;1e 40:k.N.2h++;if(k.N.2h==k.N.1R.1N())k.N.2h=0;1r}k.N.8Q(q,q.1f.4e.K(k.N.2h||0),\'7J\');k.N.1R.K(k.N.2h||0).3l=q.1f.7H;if(k.N.1R.K(k.N.2h||0).7W)k.N.1R.K(k.N.2h||0).7W(I);if(q.1f.aU){D aK=k.N.1R.K(k.N.2h||0).5C(\'4I\');q.2y=1d.3j+aK+q.1f.3N+1d.66;if(k.N.4y.1g!=aK.1g)k.N.6J(q,1d.3j.1g+k.N.4y.1g,1d.3j.1g+aK.1g)}E I}k.N.dO.1D(q);if(q.1f.9x==I){if(1d.3o!=k.N.4y&&1d.3o.1g>=q.1f.aL)k.N.2I=1X.9T(k.N.dQ,q.1f.54);if(k.N.1R){k.N.4w()}}E 1b},8Q:u(2n,3o,1u){if(2n.1f[1u]){D 81={};ar=3o.f3(\'*\');24(i=0;i<ar.1g;i++){81[ar[i].4Y]=ar[i].7c.h4}2n.1f[1u].1D(2n,[81])}},di:u(e){if(k.N.1R){if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';k.N.1R.K(k.N.2h||0).3l=\'\';k.N.2h=T(q.5C(\'8K\'))||0;k.N.1R.K(k.N.2h||0).3l=k.N.1d.1f.7H}},dj:u(2k){1X.bH(k.N.2I);2k=2k||k.2k.gS(1X.2k);2k.aP();2k.aW();D 1d=k.N.aY(k.N.1d);D 3M=q.5C(\'4I\');k.N.1d.2y=1d.3j+3M+k.N.1d.1f.3N+1d.66;k.N.4y=q.5C(\'4I\');k.N.6J(k.N.1d,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g);k.N.4w();if(k.N.1d.1f.68){4u=T(q.5C(\'8K\'))||0;k.N.8Q(k.N.1d,k.N.1d.1f.4e.K(4u),\'68\')}E I},eJ:u(e){3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}E I}},2r:u(M){if(!M.aN||!k.1a){E}if(!k.N.1c){if(k.3a.4t){k(\'2e\',1h).1S(\'<3A 14="19:1o;Y:1P;5E:9n:9w.9y.cC(1G=0);" id="ds" 2J="ek:I;" ej="0" ep="cD"></3A>\');k.N.3A=k(\'#ds\')}k(\'2e\',1h).1S(\'<22 id="dr" 14="Y: 1P; Q: 0; O: 0; z-cZ: h3; 19: 1o;"><9h 14="6w: 0;8F: 0; h1-14: 1o; z-cZ: h0;">&7k;</9h></22>\');k.N.1c=k(\'#dr\');k.N.8R=k(\'9h\',k.N.1c)}E q.1E(u(){if(q.4Y!=\'ch\'&&q.5C(\'1u\')!=\'3g\')E;q.1f={};q.1f.aN=M.aN;q.1f.aL=18.3S(T(M.aL)||1);q.1f.aM=M.aM?M.aM:\'\';q.1f.7H=M.7H?M.7H:\'\';q.1f.68=M.68&&M.68.1K==2A?M.68:S;q.1f.2Y=M.2Y&&M.2Y.1K==2A?M.2Y:S;q.1f.3i=M.3i&&M.3i.1K==2A?M.3i:S;q.1f.7J=M.7J&&M.7J.1K==2A?M.7J:S;q.1f.bV=M.bV||I;q.1f.aQ=M.aQ||I;q.1f.3N=q.1f.aQ?(M.3N||\', \'):\'\';q.1f.aU=M.aU?1b:I;q.1f.54=18.3S(T(M.54)||aC);if(M.fx&&M.fx.1K==7M){if(!M.fx.1u||!/c6|1z|a7/.48(M.fx.1u)){M.fx.1u=\'1z\'}if(M.fx.1u==\'1z\'&&!k.fx.1z)E;if(M.fx.1u==\'a7\'&&!k.fx.61)E;M.fx.1m=18.3S(T(M.fx.1m)||8J);if(M.fx.1m>q.1f.54){M.fx.1m=q.1f.54-2a}q.1f.fx=M.fx}q.1f.4e=S;q.1f.9x=I;k(q).1p(\'bU\',\'eN\').6K(u(){k.N.1d=q;k.N.4y=q.2y}).dH(k.N.eJ).6y(k.N.bU).5B(u(){k.N.2I=1X.9T(k.N.4w,hM)})})}};k.fn.hR=k.N.2r;k.1y={2I:S,4Q:S,29:S,2D:10,26:u(el,4J,2D,eG){k.1y.4Q=el;k.1y.29=4J;k.1y.2D=T(2D)||10;k.1y.2I=1X.6V(k.1y.eF,T(eG)||40)},eF:u(){24(i=0;i<k.1y.29.1g;i++){if(!k.1y.29[i].2X){k.1y.29[i].2X=k.23(k.1a.7G(k.1y.29[i]),k.1a.74(k.1y.29[i]),k.1a.6z(k.1y.29[i]))}P{k.1y.29[i].2X.t=k.1y.29[i].3d;k.1y.29[i].2X.l=k.1y.29[i].3c}if(k.1y.4Q.A&&k.1y.4Q.A.7q==1b){69={x:k.1y.4Q.A.2v,y:k.1y.4Q.A.2q,1C:k.1y.4Q.A.1B.1C,hb:k.1y.4Q.A.1B.hb}}P{69=k.23(k.1a.7G(k.1y.4Q),k.1a.74(k.1y.4Q))}if(k.1y.29[i].2X.t>0&&k.1y.29[i].2X.y+k.1y.29[i].2X.t>69.y){k.1y.29[i].3d-=k.1y.2D}P if(k.1y.29[i].2X.t<=k.1y.29[i].2X.h&&k.1y.29[i].2X.t+k.1y.29[i].2X.hb<69.y+69.hb){k.1y.29[i].3d+=k.1y.2D}if(k.1y.29[i].2X.l>0&&k.1y.29[i].2X.x+k.1y.29[i].2X.l>69.x){k.1y.29[i].3c-=k.1y.2D}P if(k.1y.29[i].2X.l<=k.1y.29[i].2X.hP&&k.1y.29[i].2X.l+k.1y.29[i].2X.1C<69.x+69.1C){k.1y.29[i].3c+=k.1y.2D}}},8o:u(){1X.5T(k.1y.2I);k.1y.4Q=S;k.1y.29=S;24(i in k.1y.29){k.1y.29[i].2X=S}}};k.11={1c:S,F:S,4U:u(){E q.1E(u(){if(q.9I){q.A.5e.3q(\'5v\',k.11.bN);q.A=S;q.9I=I;if(k.3a.4t){q.bE="eN"}P{q.14.hq=\'\';q.14.e1=\'\';q.14.e7=\'\'}}})},bN:u(e){if(k.11.F!=S){k.11.9A(e);E I}D C=q.3U;k(1h).1J(\'3D\',k.11.bX).1J(\'5P\',k.11.9A);C.A.1s=k.1a.4a(e);C.A.4B=C.A.1s;C.A.7q=I;C.A.ho=q!=q.3U;k.11.F=C;if(C.A.5i&&q!=q.3U){bS=k.1a.3w(C.31);bQ=k.1a.2o(C);bR={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};dx=C.A.4B.x-bS.x-bQ.1C/2-bR.x;dy=C.A.4B.y-bS.y-bQ.hb/2-bR.y;k.3b.5c(C,[dx,dy])}E k.7n||I},ea:u(e){D C=k.11.F;C.A.7q=1b;D 9G=C.14;C.A.7V=k.B(C,\'19\');C.A.4n=k.B(C,\'Y\');if(!C.A.cz)C.A.cz=C.A.4n;C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.9B=0;C.A.ai=0;if(k.3a.4t){D bW=k.1a.6U(C,1b);C.A.9B=bW.l||0;C.A.ai=bW.t||0}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){9G.Y=\'2s\'}k.11.1c.5o();D 5g=C.fI(1b);k(5g).B({19:\'2B\',O:\'2P\',Q:\'2P\'});5g.14.5K=\'0\';5g.14.5z=\'0\';5g.14.5k=\'0\';5g.14.5j=\'0\';k.11.1c.1S(5g);D 3Y=k.11.1c.K(0).14;if(C.A.bD){3Y.Z=\'9F\';3Y.W=\'9F\'}P{3Y.W=C.A.1B.hb+\'U\';3Y.Z=C.A.1B.1C+\'U\'}3Y.19=\'2B\';3Y.5K=\'2P\';3Y.5z=\'2P\';3Y.5k=\'2P\';3Y.5j=\'2P\';k.23(C.A.1B,k.1a.2o(5g));if(C.A.2V){if(C.A.2V.O){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.2V.O;C.A.1B.x=C.A.1s.x-C.A.2V.O}if(C.A.2V.Q){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.2V.Q;C.A.1B.y=C.A.1s.y-C.A.2V.Q}if(C.A.2V.2L){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.1B.hb+C.A.2V.2L;C.A.1B.x=C.A.1s.x-C.A.1B.1C+C.A.2V.2L}if(C.A.2V.4D){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.1B.hb+C.A.2V.4D;C.A.1B.y=C.A.1s.y-C.A.1B.hb+C.A.2V.4D}}C.A.2v=C.A.2c.x;C.A.2q=C.A.2c.y;if(C.A.8s||C.A.2p==\'94\'){8U=k.1a.6U(C.31,1b);C.A.1B.x=C.8t+(k.3a.4t?0:k.3a.7I?-8U.l:8U.l);C.A.1B.y=C.8G+(k.3a.4t?0:k.3a.7I?-8U.t:8U.t);k(C.31).1S(k.11.1c.K(0))}if(C.A.2p){k.11.c5(C);C.A.5t.2p=k.11.ce}if(C.A.5i){k.3b.ct(C)}3Y.O=C.A.1B.x-C.A.9B+\'U\';3Y.Q=C.A.1B.y-C.A.ai+\'U\';3Y.Z=C.A.1B.1C+\'U\';3Y.W=C.A.1B.hb+\'U\';k.11.F.A.9E=I;if(C.A.gx){C.A.5t.6a=k.11.c7}if(C.A.3I!=I){k.11.1c.B(\'3I\',C.A.3I)}if(C.A.1G){k.11.1c.B(\'1G\',C.A.1G);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=\'+C.A.1G*2a+\')\')}}if(C.A.7O){k.11.1c.2R(C.A.7O);k.11.1c.K(0).7c.14.19=\'1o\'}if(C.A.4o)C.A.4o.1D(C,[5g,C.A.2c.x,C.A.2c.y]);if(k.1x&&k.1x.8D>0){k.1x.ed(C)}if(C.A.46==I){9G.19=\'1o\'}E I},c5:u(C){if(C.A.2p.1K==b0){if(C.A.2p==\'94\'){C.A.28=k.23({x:0,y:0},k.1a.2o(C.31));D 8S=k.1a.6U(C.31,1b);C.A.28.w=C.A.28.1C-8S.l-8S.r;C.A.28.h=C.A.28.hb-8S.t-8S.b}P if(C.A.2p==\'1h\'){D bY=k.1a.bm();C.A.28={x:0,y:0,w:bY.w,h:bY.h}}}P if(C.A.2p.1K==7F){C.A.28={x:T(C.A.2p[0])||0,y:T(C.A.2p[1])||0,w:T(C.A.2p[2])||0,h:T(C.A.2p[3])||0}}C.A.28.dx=C.A.28.x-C.A.1B.x;C.A.28.dy=C.A.28.y-C.A.1B.y},9H:u(F){if(F.A.8s||F.A.2p==\'94\'){k(\'2e\',1h).1S(k.11.1c.K(0))}k.11.1c.5o().2G().B(\'1G\',1);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=2a)\')}},9A:u(e){k(1h).3q(\'3D\',k.11.bX).3q(\'5P\',k.11.9A);if(k.11.F==S){E}D F=k.11.F;k.11.F=S;if(F.A.7q==I){E I}if(F.A.44==1b){k(F).B(\'Y\',F.A.4n)}D 9G=F.14;if(F.5i){k.11.1c.B(\'9b\',\'8j\')}if(F.A.7O){k.11.1c.4i(F.A.7O)}if(F.A.6N==I){if(F.A.fx>0){if(!F.A.1O||F.A.1O==\'4j\'){D x=12 k.fx(F,{1m:F.A.fx},\'O\');x.1L(F.A.2c.x,F.A.8y)}if(!F.A.1O||F.A.1O==\'49\'){D y=12 k.fx(F,{1m:F.A.fx},\'Q\');y.1L(F.A.2c.y,F.A.8v)}}P{if(!F.A.1O||F.A.1O==\'4j\')F.14.O=F.A.8y+\'U\';if(!F.A.1O||F.A.1O==\'49\')F.14.Q=F.A.8v+\'U\'}k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}P if(F.A.fx>0){F.A.9E=1b;D dh=I;if(k.1x&&k.1t&&F.A.44){dh=k.1a.3w(k.1t.1c.K(0))}k.11.1c.5w({O:dh?dh.x:F.A.1B.x,Q:dh?dh.y:F.A.1B.y},F.A.fx,u(){F.A.9E=I;if(F.A.46==I){F.14.19=F.A.7V}k.11.9H(F)})}P{k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}if(k.1x&&k.1x.8D>0){k.1x.eO(F)}if(k.1t&&F.A.44){k.1t.fC(F)}if(F.A.2Z&&(F.A.8y!=F.A.2c.x||F.A.8v!=F.A.2c.y)){F.A.2Z.1D(F,F.A.b3||[0,0,F.A.8y,F.A.8v])}if(F.A.3T)F.A.3T.1D(F);E I},c7:u(x,y,dx,dy){if(dx!=0)dx=T((dx+(q.A.gx*dx/18.3S(dx))/2)/q.A.gx)*q.A.gx;if(dy!=0)dy=T((dy+(q.A.gy*dy/18.3S(dy))/2)/q.A.gy)*q.A.gy;E{dx:dx,dy:dy,x:0,y:0}},ce:u(x,y,dx,dy){dx=18.3L(18.3r(dx,q.A.28.dx),q.A.28.w+q.A.28.dx-q.A.1B.1C);dy=18.3L(18.3r(dy,q.A.28.dy),q.A.28.h+q.A.28.dy-q.A.1B.hb);E{dx:dx,dy:dy,x:0,y:0}},bX:u(e){if(k.11.F==S||k.11.F.A.9E==1b){E}D F=k.11.F;F.A.4B=k.1a.4a(e);if(F.A.7q==I){45=18.ez(18.6b(F.A.1s.x-F.A.4B.x,2)+18.6b(F.A.1s.y-F.A.4B.y,2));if(45<F.A.6M){E}P{k.11.ea(e)}}D dx=F.A.4B.x-F.A.1s.x;D dy=F.A.4B.y-F.A.1s.y;24(D i in F.A.5t){D 3y=F.A.5t[i].1D(F,[F.A.2c.x+dx,F.A.2c.y+dy,dx,dy]);if(3y&&3y.1K==7M){dx=i!=\'7R\'?3y.dx:(3y.x-F.A.2c.x);dy=i!=\'7R\'?3y.dy:(3y.y-F.A.2c.y)}}F.A.2v=F.A.1B.x+dx-F.A.9B;F.A.2q=F.A.1B.y+dy-F.A.ai;if(F.A.5i&&(F.A.3H||F.A.2Z)){k.3b.3H(F,F.A.2v,F.A.2q)}if(F.A.4m)F.A.4m.1D(F,[F.A.2c.x+dx,F.A.2c.y+dy]);if(!F.A.1O||F.A.1O==\'4j\'){F.A.8y=F.A.2c.x+dx;k.11.1c.K(0).14.O=F.A.2v+\'U\'}if(!F.A.1O||F.A.1O==\'49\'){F.A.8v=F.A.2c.y+dy;k.11.1c.K(0).14.Q=F.A.2q+\'U\'}if(k.1x&&k.1x.8D>0){k.1x.al(F)}E I},2r:u(o){if(!k.11.1c){k(\'2e\',1h).1S(\'<22 id="e8"></22>\');k.11.1c=k(\'#e8\');D el=k.11.1c.K(0);D 4J=el.14;4J.Y=\'1P\';4J.19=\'1o\';4J.9b=\'8j\';4J.eu=\'1o\';4J.2U=\'2K\';if(1X.71){el.bE="e4"}P{4J.gi=\'1o\';4J.e7=\'1o\';4J.e1=\'1o\'}}if(!o){o={}}E q.1E(u(){if(q.9I||!k.1a)E;if(1X.71){q.gh=u(){E I};q.gj=u(){E I}}D el=q;D 5e=o.3v?k(q).gf(o.3v):k(q);if(k.3a.4t){5e.1E(u(){q.bE="e4"})}P{5e.B(\'-gI-7R-8C\',\'1o\');5e.B(\'7R-8C\',\'1o\');5e.B(\'-gH-7R-8C\',\'1o\')}q.A={5e:5e,6N:o.6N?1b:I,46:o.46?1b:I,44:o.44?o.44:I,5i:o.5i?o.5i:I,8s:o.8s?o.8s:I,3I:o.3I?T(o.3I)||0:I,1G:o.1G?2m(o.1G):I,fx:T(o.fx)||S,6R:o.6R?o.6R:I,5t:{},1s:{},4o:o.4o&&o.4o.1K==2A?o.4o:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:0,2V:o.2V?o.2V:I,bD:o.bD?1b:I,7O:o.7O||I};if(o.5t&&o.5t.1K==2A)q.A.5t.7R=o.5t;if(o.4m&&o.4m.1K==2A)q.A.4m=o.4m;if(o.2p&&((o.2p.1K==b0&&(o.2p==\'94\'||o.2p==\'1h\'))||(o.2p.1K==7F&&o.2p.1g==4))){q.A.2p=o.2p}if(o.2O){q.A.2O=o.2O}if(o.6a){if(2g o.6a==\'gz\'){q.A.gx=T(o.6a)||1;q.A.gy=T(o.6a)||1}P if(o.6a.1g==2){q.A.gx=T(o.6a[0])||1;q.A.gy=T(o.6a[1])||1}}if(o.3H&&o.3H.1K==2A){q.A.3H=o.3H}q.9I=1b;5e.1E(u(){q.3U=el});5e.1J(\'5v\',k.11.bN)})}};k.fn.23({aS:k.11.4U,7t:k.11.2r});k.1x={du:u(5J,5G,7Q,7S){E 5J<=k.11.F.A.2v&&(5J+7Q)>=(k.11.F.A.2v+k.11.F.A.1B.w)&&5G<=k.11.F.A.2q&&(5G+7S)>=(k.11.F.A.2q+k.11.F.A.1B.h)?1b:I},cV:u(5J,5G,7Q,7S){E!(5J>(k.11.F.A.2v+k.11.F.A.1B.w)||(5J+7Q)<k.11.F.A.2v||5G>(k.11.F.A.2q+k.11.F.A.1B.h)||(5G+7S)<k.11.F.A.2q)?1b:I},1s:u(5J,5G,7Q,7S){E 5J<k.11.F.A.4B.x&&(5J+7Q)>k.11.F.A.4B.x&&5G<k.11.F.A.4B.y&&(5G+7S)>k.11.F.A.4B.y?1b:I},5r:I,3Q:{},8D:0,3P:{},ed:u(C){if(k.11.F==S){E}D i;k.1x.3Q={};D bJ=I;24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){if(1j.1i.m==I){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));1j.1i.m=1b}if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);1j.1i.ay=k.1t.8x(k.1p(1j,\'id\')).7l;C.14.19=C.A.7V;bJ=1b}if(1j.1i.9i){1j.1i.9i.1D(k.1x.3P[i].K(0),[k.11.F])}}}}if(bJ){k.1t.26()}},dS:u(){k.1x.3Q={};24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);C.14.19=C.A.7V}}}}},al:u(e){if(k.11.F==S){E}k.1x.5r=I;D i;D bK=I;D eQ=0;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(k.1x.5r==I&&k.1x[1j.1i.t](1j.1i.p.x,1j.1i.p.y,1j.1i.p.1C,1j.1i.p.hb)){if(1j.1i.hc&&1j.1i.h==I){k.1x.3Q[i].2R(1j.1i.hc)}if(1j.1i.h==I&&1j.1i.7x){bK=1b}1j.1i.h=1b;k.1x.5r=1j;if(k.1t&&1j.1i.s&&k.11.F.A.44){k.1t.1c.K(0).3l=1j.1i.eV;k.1t.al(1j)}eQ++}P if(1j.1i.h==1b){if(1j.1i.7y){1j.1i.7y.1D(1j,[e,k.11.1c.K(0).7c,1j.1i.fx])}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}1j.1i.h=I}}if(k.1t&&!k.1x.5r&&k.11.F.44){k.1t.1c.K(0).14.19=\'1o\'}if(bK){k.1x.5r.1i.7x.1D(k.1x.5r,[e,k.11.1c.K(0).7c])}},eO:u(e){D i;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(1j.1i.ac){k.1x.3Q[i].4i(1j.1i.ac)}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}if(1j.1i.s){k.1t.7s[k.1t.7s.1g]=i}if(1j.1i.9l&&1j.1i.h==1b){1j.1i.h=I;1j.1i.9l.1D(1j,[e,1j.1i.fx])}1j.1i.m=I;1j.1i.h=I}k.1x.3Q={}},4U:u(){E q.1E(u(){if(q.9j){if(q.1i.s){id=k.1p(q,\'id\');k.1t.5L[id]=S;k(\'.\'+q.1i.a,q).aS()}k.1x.3P[\'d\'+q.c2]=S;q.9j=I;q.f=S}})},2r:u(o){E q.1E(u(){if(q.9j==1b||!o.3C||!k.1a||!k.11){E}q.1i={a:o.3C,ac:o.9J||I,hc:o.a5||I,eV:o.58||I,9l:o.gq||o.9l||I,7x:o.7x||o.dC||I,7y:o.7y||o.fO||I,9i:o.9i||I,t:o.6I&&(o.6I==\'du\'||o.6I==\'cV\')?o.6I:\'1s\',fx:o.fx?o.fx:I,m:I,h:I};if(o.cQ==1b&&k.1t){id=k.1p(q,\'id\');k.1t.5L[id]=q.1i.a;q.1i.s=1b;if(o.2Z){q.1i.2Z=o.2Z;q.1i.ay=k.1t.8x(id).7l}}q.9j=1b;q.c2=T(18.6o()*c9);k.1x.3P[\'d\'+q.c2]=k(q);k.1x.8D++})}};k.fn.23({dR:k.1x.4U,do:k.1x.2r});k.gD=k.1x.dS;k.3B={1c:S,8L:u(){3g=q.2y;if(!3g)E;14={dz:k(q).B(\'dz\')||\'\',4A:k(q).B(\'4A\')||\'\',8Z:k(q).B(\'8Z\')||\'\',dP:k(q).B(\'dP\')||\'\',dT:k(q).B(\'dT\')||\'\',dU:k(q).B(\'dU\')||\'\',c3:k(q).B(\'c3\')||\'\',dY:k(q).B(\'dY\')||\'\'};k.3B.1c.B(14);3x=k.3B.dX(3g);3x=3x.4E(12 bb("\\\\n","g"),"<br />");k.3B.1c.3x(\'gL\');ci=k.3B.1c.K(0).4c;k.3B.1c.3x(3x);Z=k.3B.1c.K(0).4c+ci;if(q.6l.2M&&Z>q.6l.2M[0]){Z=q.6l.2M[0]}q.14.Z=Z+\'U\';if(q.4Y==\'cf\'){W=k.3B.1c.K(0).5W+ci;if(q.6l.2M&&W>q.6l.2M[1]){W=q.6l.2M[1]}q.14.W=W+\'U\'}},dX:u(3g){cg={\'&\':\'&gK;\',\'<\':\'&gJ;\',\'>\':\'&gt;\',\'"\':\'&gs;\'};24(i in cg){3g=3g.4E(12 bb(i,\'g\'),cg[i])}E 3g},2r:u(2M){if(k.3B.1c==S){k(\'2e\',1h).1S(\'<22 id="dE" 14="Y: 1P; Q: 0; O: 0; 3n: 2K;"></22>\');k.3B.1c=k(\'#dE\')}E q.1E(u(){if(/cf|ch/.48(q.4Y)){if(q.4Y==\'ch\'){dB=q.5C(\'1u\');if(!/3g|gr/.48(dB)){E}}if(2M&&(2M.1K==bn||(2M.1K==7F&&2M.1g==2))){if(2M.1K==bn)2M=[2M,2M];P{2M[0]=T(2M[0])||8J;2M[1]=T(2M[1])||8J}q.6l={2M:2M}}k(q).5B(k.3B.8L).6y(k.3B.8L).dH(k.3B.8L);k.3B.8L.1D(q)}})}};k.fn.kc=k.3B.2r;k.4K=u(e){if(/^kd$|^ke$|^ka$|^6L$|^k9$|^k5$|^k4$|^k6$|^k7$|^2e$|^k8$|^kf$|^kg$|^kn$|^ko$|^kp$|^kq$/i.48(e.9N))E I;P E 1b};k.fx.a0=u(e,65){D c=e.7c;D cs=c.14;cs.Y=65.Y;cs.5K=65.3G.t;cs.5j=65.3G.l;cs.5k=65.3G.b;cs.5z=65.3G.r;cs.Q=65.Q+\'U\';cs.O=65.O+\'U\';e.31.ew(c,e);e.31.km(e)};k.fx.9P=u(e){if(!k.4K(e))E I;D t=k(e);D es=e.14;D 73=I;if(t.B(\'19\')==\'1o\'){5Y=t.B(\'3n\');t.B(\'3n\',\'2K\').1Y();73=1b}D V={};V.Y=t.B(\'Y\');V.1q=k.1a.2o(e);V.3G=k.1a.cy(e);D co=e.4Z?e.4Z.ei:t.B(\'hU\');V.Q=T(t.B(\'Q\'))||0;V.O=T(t.B(\'O\'))||0;D eo=\'kl\'+T(18.6o()*c9);D 6u=1h.3F(/^1T$|^br$|^kh$|^hr$|^8C$|^kj$|^8T$|^3A$|^kk$|^k3$|^k2$|^9h$|^dl$|^jM$/i.48(e.9N)?\'22\':e.9N);k.1p(6u,\'id\',eo);D jN=k(6u).2R(\'jO\');D 4h=6u.14;D Q=0;D O=0;if(V.Y==\'2s\'||V.Y==\'1P\'){Q=V.Q;O=V.O}4h.Q=Q+\'U\';4h.O=O+\'U\';4h.Y=V.Y!=\'2s\'&&V.Y!=\'1P\'?\'2s\':V.Y;4h.W=V.1q.hb+\'U\';4h.Z=V.1q.1C+\'U\';4h.5K=V.3G.t;4h.5z=V.3G.r;4h.5k=V.3G.b;4h.5j=V.3G.l;4h.2U=\'2K\';if(k.3a.4t){4h.ei=co}P{4h.jK=co}if(k.3a=="4t"){es.5E="8V(1G="+0.ex*2a+")"}es.1G=0.ex;e.31.ew(6u,e);6u.jF(e);es.5K=\'2P\';es.5z=\'2P\';es.5k=\'2P\';es.5j=\'2P\';es.Y=\'1P\';es.eu=\'1o\';es.Q=\'2P\';es.O=\'2P\';if(73){t.2G();es.3n=5Y}E{V:V,3p:k(6u)}};k.fx.8E={jE:[0,1V,1V],jG:[eD,1V,1V],jH:[e6,e6,jI],jP:[0,0,0],ks:[0,0,1V],jY:[dv,42,42],jZ:[0,1V,1V],k0:[0,0,7w],k1:[0,7w,7w],jX:[cn,cn,cn],jS:[0,2a,0],jR:[jT,jU,eb],jV:[7w,0,7w],kr:[85,eb,47],kP:[1V,eA,0],kN:[kO,50,kx],kF:[7w,0,0],kD:[ku,f8,kt],ky:[kH,0,9C],kL:[1V,0,1V],kM:[1V,kJ,0],kv:[0,6C,0],kA:[75,0,kE],kC:[eD,eB,eA],kG:[kI,kB,eB],kw:[e0,1V,1V],kz:[eL,kK,eL],kQ:[9C,9C,9C],jC:[1V,iy,iz],iA:[1V,1V,e0],iB:[0,1V,0],ix:[1V,0,1V],iv:[6C,0,0],iq:[0,0,6C],ip:[6C,6C,0],ir:[1V,dv,0],it:[1V,ah,iu],iC:[6C,0,6C],iD:[1V,0,0],iK:[ah,ah,ah],iL:[1V,1V,1V],iM:[1V,1V,0]};k.fx.6D=u(4x,dm){if(k.fx.8E[4x])E{r:k.fx.8E[4x][0],g:k.fx.8E[4x][1],b:k.fx.8E[4x][2]};P if(2W=/^6Y\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.a4(4x))E{r:T(2W[1]),g:T(2W[2]),b:T(2W[3])};P if(2W=/6Y\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.a4(4x))E{r:2m(2W[1])*2.55,g:2m(2W[2])*2.55,b:2m(2W[3])*2.55};P if(2W=/^#([a-fA-79-9])([a-fA-79-9])([a-fA-79-9])$/.a4(4x))E{r:T("77"+2W[1]+2W[1]),g:T("77"+2W[2]+2W[2]),b:T("77"+2W[3]+2W[3])};P if(2W=/^#([a-fA-79-9]{2})([a-fA-79-9]{2})([a-fA-79-9]{2})$/.a4(4x))E{r:T("77"+2W[1]),g:T("77"+2W[2]),b:T("77"+2W[3])};P E dm==1b?I:{r:1V,g:1V,b:1V}};k.fx.dD={5Q:1,5b:1,5O:1,4S:1,4D:1,4A:1,W:1,O:1,c3:1,iI:1,5k:1,5j:1,5z:1,5K:1,8b:1,6x:1,8c:1,av:1,1G:1,iE:1,iF:1,5n:1,4X:1,5U:1,5M:1,2L:1,jD:1,Q:1,Z:1,3I:1};k.fx.dA={7i:1,iG:1,iH:1,io:1,im:1,4x:1,i2:1};k.fx.8A=[\'i3\',\'i4\',\'i5\',\'i1\'];k.fx.cc={\'cd\':[\'2E\',\'dK\'],\'a8\':[\'2E\',\'bh\'],\'6w\':[\'6w\',\'\'],\'8F\':[\'8F\',\'\']};k.fn.23({5w:u(5X,H,G,J){E q.1w(u(){D a1=k.H(H,G,J);D e=12 k.dM(q,a1,5X)})},c4:u(H,J){E q.1w(u(){D a1=k.H(H,J);D e=12 k.c4(q,a1)})},8o:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D)})},i0:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D);if(q.1w&&q.1w[\'fx\'])q.1w.fx=[]})}});k.23({c4:u(2f,M){D z=q,3t;z.2D=u(){if(k.fQ(M.21))M.21.1D(2f)};z.2I=6V(u(){z.2D()},M.1m);2f.6d=z},G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W}},dM:u(2f,M,5X){D z=q,3t;D y=2f.14;D fR=k.B(2f,"2U");D 72=k.B(2f,"19");D 2j={};z.9O=(12 7g()).7z();M.G=M.G&&k.G[M.G]?M.G:\'c8\';z.ag=u(2w,43){if(k.fx.dD[2w]){if(43==\'1Y\'||43==\'2G\'||43==\'3R\'){if(!2f.6v)2f.6v={};D r=2m(k.6E(2f,2w));2f.6v[2w]=r&&r>-c9?r:(2m(k.B(2f,2w))||0);43=43==\'3R\'?(72==\'1o\'?\'1Y\':\'2G\'):43;M[43]=1b;2j[2w]=43==\'1Y\'?[0,2f.6v[2w]]:[2f.6v[2w],0];if(2w!=\'1G\')y[2w]=2j[2w][0]+(2w!=\'3I\'&&2w!=\'8Z\'?\'U\':\'\');P k.1p(y,"1G",2j[2w][0])}P{2j[2w]=[2m(k.6E(2f,2w)),2m(43)||0]}}P if(k.fx.dA[2w])2j[2w]=[k.fx.6D(k.6E(2f,2w)),k.fx.6D(43)];P if(/^6w$|8F$|2E$|a8$|cd$/i.48(2w)){D m=43.4E(/\\s+/g,\' \').4E(/6Y\\s*\\(\\s*/g,\'6Y(\').4E(/\\s*,\\s*/g,\',\').4E(/\\s*\\)/g,\')\').d5(/([^\\s]+)/g);3m(2w){1e\'6w\':1e\'8F\':1e\'cd\':1e\'a8\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];24(D i=0;i<k.fx.8A.1g;i++){D 64=k.fx.cc[2w][0]+k.fx.8A[i]+k.fx.cc[2w][1];2j[64]=2w==\'a8\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),2m(m[i])]}1r;1e\'2E\':24(D i=0;i<m.1g;i++){D bd=2m(m[i]);D a9=!hX(bd)?\'dK\':(!/cu|1o|2K|hY|hZ|i6|i7|ii|ij|ik|il/i.48(m[i])?\'bh\':I);if(a9){24(D j=0;j<k.fx.8A.1g;j++){64=\'2E\'+k.fx.8A[j]+a9;2j[64]=a9==\'bh\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),bd]}}P{y[\'ie\']=m[i]}}1r}}P{y[2w]=43}E I};24(p in 5X){if(p==\'14\'){D 5f=k.bl(5X[p]);24(7A in 5f){q.ag(7A,5f[7A])}}P if(p==\'3l\'){if(1h.af)24(D i=0;i<1h.af.1g;i++){D 7e=1h.af[i].7e||1h.af[i].i9||S;if(7e){24(D j=0;j<7e.1g;j++){if(7e[j].i8==\'.\'+5X[p]){D 6X=12 bb(\'\\.\'+5X[p]+\' {\');D 5Z=7e[j].14.9X;D 5f=k.bl(5Z.4E(6X,\'\').4E(/}/g,\'\'));24(7A in 5f){q.ag(7A,5f[7A])}}}}}}P{q.ag(p,5X[p])}}y.19=72==\'1o\'?\'2B\':72;y.2U=\'2K\';z.2D=u(){D t=(12 7g()).7z();if(t>M.1m+z.9O){5T(z.2I);z.2I=S;24(p in 2j){if(p=="1G")k.1p(y,"1G",2j[p][1]);P if(2g 2j[p][1]==\'8T\')y[p]=\'6Y(\'+2j[p][1].r+\',\'+2j[p][1].g+\',\'+2j[p][1].b+\')\';P y[p]=2j[p][1]+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}if(M.2G||M.1Y)24(D p in 2f.6v)if(p=="1G")k.1p(y,p,2f.6v[p]);P y[p]="";y.19=M.2G?\'1o\':(72!=\'1o\'?72:\'2B\');y.2U=fR;2f.6d=S;if(k.fQ(M.21))M.21.1D(2f)}P{D n=t-q.9O;D 8w=n/M.1m;24(p in 2j){if(2g 2j[p][1]==\'8T\'){y[p]=\'6Y(\'+T(k.G[M.G](8w,n,2j[p][0].r,(2j[p][1].r-2j[p][0].r),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].g,(2j[p][1].g-2j[p][0].g),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].b,(2j[p][1].b-2j[p][0].b),M.1m))+\')\'}P{D bz=k.G[M.G](8w,n,2j[p][0],(2j[p][1]-2j[p][0]),M.1m);if(p=="1G")k.1p(y,"1G",bz);P y[p]=bz+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}}}};z.2I=6V(u(){z.2D()},13);2f.6d=z},by:u(2f,2D){if(2D)2f.6d.9O-=iO;P{1X.5T(2f.6d.2I);2f.6d=S;k.2H(2f,"fx")}}});k.bl=u(5Z){D 5f={};if(2g 5Z==\'4V\'){5Z=5Z.6c().7C(\';\');24(D i=0;i<5Z.1g;i++){6X=5Z[i].7C(\':\');if(6X.1g==2){5f[k.g6(6X[0].4E(/\\-(\\w)/g,u(m,c){E c.jo()}))]=k.g6(6X[1])}}}E 5f};k.fn.23({g3:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4F\',G)})},gb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4r\',G)})},jl:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fJ\',G)})},jk:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'O\',G)})},jg:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'2L\',G)})},jf:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fh\',G)})}});k.fx.61=u(e,H,J,2S,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.1N=k.1a.2o(e);z.G=2g J==\'4V\'?J:G||S;if(!e.4s)e.4s=z.el.B(\'19\');if(2S==\'fJ\'){2S=z.el.B(\'19\')==\'1o\'?\'4r\':\'4F\'}P if(2S==\'fh\'){2S=z.el.B(\'19\')==\'1o\'?\'2L\':\'O\'}z.el.1Y();z.H=H;z.J=2g J==\'u\'?J:S;z.fx=k.fx.9P(e);z.2S=2S;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.2S==\'4r\'||z.2S==\'2L\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(z.fx.V.1q.hb,0);1r;1e\'4r\':z.fx.3p.B(\'W\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(0,z.fx.V.1q.hb);1r;1e\'O\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(z.fx.V.1q.1C,0);1r;1e\'2L\':z.fx.3p.B(\'Z\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(0,z.fx.V.1q.1C);1r}};k.fn.ji=u(5D,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.f4(q,5D,J);e.bp()})};k.fx.f4=u(e,5D,J){D z=q;z.el=k(e);z.el.1Y();z.J=J;z.5D=T(5D)||40;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.3V=5;z.5y=1;z.bp=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:jj,21:u(){z.e=12 k.fx(z.el.K(0),{1m:80,21:u(){z.5D=T(z.5D/2);if(z.5y<=z.3V)z.bp();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'Q\');z.e.1L(z.V.Q-z.5D,z.V.Q)}},\'Q\');z.e.1L(z.V.Q,z.V.Q-z.5D)}};k.fn.23({jy:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'4l\',G)})},jz:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'in\',G)})},jA:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'3R\',G)})},jB:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'4l\',G)})},jx:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'in\',G)})},jw:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'3R\',G)})},js:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'4l\',G)})},jt:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'in\',G)})},ju:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'3R\',G)})},jv:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'4l\',G)})},je:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'in\',G)})},jd:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'3R\',G)})}});k.fx.4f=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(!e.4s)e.4s=z.el.B(\'19\');if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}z.el.1Y();if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.1u=1u;J=2g J==\'u\'?J:S;8H=1;3m(2S){1e\'4F\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;8H=-1;1r;1e\'4r\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;1r;1e\'2L\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;1r;1e\'O\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;8H=-1;1r}z.e2=12 k.fx(z.el.K(0),k.H(H,z.G,u(){z.el.B(z.V);if(z.1u==\'4l\'){z.el.B(\'19\',\'1o\')}P z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s);k.2H(z.el.K(0),\'1n\')}),\'1G\');if(1u==\'in\'){z.e.1L(z.62+2a*8H,z.62);z.e2.1L(0,1)}P{z.e.1L(z.62,z.62+2a*8H);z.e2.1L(1,0)}};k.fn.23({j0:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'fp\',G)})},iW:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'9M\',G)})},iV:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'3R\',G)})}});k.fx.9L=u(e,H,W,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'9M\':\'fp\'}z.H=H;z.W=W&&W.1K==bn?W:20;z.fx=k.fx.9P(e);z.1u=1u;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.1u==\'9M\'){z.el.1Y()}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};if(z.1u==\'9M\'){z.el.1Y();z.fx.3p.B(\'W\',z.W+\'U\').B(\'Z\',\'9R\');z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');z.ef.1L(z.W,z.fx.V.1q.hb)}),\'Z\');z.ef.1L(0,z.fx.V.1q.1C)}P{z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');z.ef.1L(z.fx.V.1q.1C,0)}),\'W\');z.ef.1L(z.fx.V.1q.hb,z.W)}};k.fn.iR=u(H,4x,J,G){E q.1w(\'fv\',u(){q.6W=k(q).1p("14")||\'\';G=2g J==\'4V\'?J:G||S;J=2g J==\'u\'?J:S;D 9S=k(q).B(\'7i\');D 8I=q.31;7d(9S==\'cu\'&&8I){9S=k(8I).B(\'7i\');8I=8I.31}k(q).B(\'7i\',4x);if(2g q.6W==\'8T\')q.6W=q.6W["9X"];k(q).5w({\'7i\':9S},H,G,u(){k.2H(q,\'fv\');if(2g k(q).1p("14")==\'8T\'){k(q).1p("14")["9X"]="";k(q).1p("14")["9X"]=q.6W}P{k(q).1p("14",q.6W)}if(J)J.1D(q)})})};k.fn.23({iT:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6g\',G)})},iU:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)})},j1:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)}})},j2:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'49\',\'6g\',G)}})},j9:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)})},ja:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)})}});k.fx.5m=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;D 73=I;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1u=1u;z.H=H;z.2i=k.1a.2o(e);z.V={};z.V.Y=z.el.B(\'Y\');z.V.19=z.el.B(\'19\');if(z.V.19==\'1o\'){5Y=z.el.B(\'3n\');z.el.1Y();73=1b}z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(73){z.el.2G();z.el.B(\'3n\',5Y)}z.V.Z=z.2i.w+\'U\';z.V.W=z.2i.h+\'U\';z.V.2U=z.el.B(\'2U\');z.2i.Q=T(z.V.Q)||0;z.2i.O=T(z.V.O)||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\').B(\'W\',1u==\'6Z\'&&2S==\'49\'?1:z.2i.h+\'U\').B(\'Z\',1u==\'6Z\'&&2S==\'4j\'?1:z.2i.w+\'U\');z.21=u(){z.el.B(z.V);if(z.1u==\'6g\')z.el.2G();P z.el.1Y();k.2H(z.el.K(0),\'1n\')};3m(2S){1e\'49\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'W\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'6g\'){z.eh.1L(z.2i.h,0);z.et.1L(z.2i.Q,z.2i.Q+z.2i.h/2)}P{z.eh.1L(0,z.2i.h);z.et.1L(z.2i.Q+z.2i.h/2,z.2i.Q)}1r;1e\'4j\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Z\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'6g\'){z.eh.1L(z.2i.w,0);z.et.1L(z.2i.O,z.2i.O+z.2i.w/2)}P{z.eh.1L(0,z.2i.w);z.et.1L(z.2i.O+z.2i.w/2,z.2i.O)}1r}};k.fn.bg=u(H,3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D fx=12 k.fx.bg(q,H,3V,J);fx.bf()})};k.fx.bg=u(el,H,3V,J){D z=q;z.3V=3V;z.5y=1;z.el=el;z.H=H;z.J=J;k(z.el).1Y();z.bf=u(){z.5y++;z.e=12 k.fx(z.el,k.H(z.H,u(){z.ef=12 k.fx(z.el,k.H(z.H,u(){if(z.5y<=z.3V)z.bf();P{k.2H(z.el,\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el)}}}),\'1G\');z.ef.1L(0,1)}),\'1G\');z.e.1L(1,0)}};k.fn.23({jb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,1,2a,1b,J,\'fa\',G)})},jc:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,2a,1,1b,J,\'b4\',G)})},j8:u(H,J,G){E q.1w(\'1n\',u(){D G=G||\'fl\';12 k.fx.6G(q,H,2a,f8,1b,J,\'6h\',G)})},6G:u(H,57,30,6H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,57,30,6H,J,\'6G\',G)})}});k.fx.6G=u(e,H,57,30,6H,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.57=T(57)||2a;z.30=T(30)||2a;z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1m=k.H(H).1m;z.6H=6H||S;z.2i=k.1a.2o(e);z.V={Z:z.el.B(\'Z\'),W:z.el.B(\'W\'),4A:z.el.B(\'4A\')||\'2a%\',Y:z.el.B(\'Y\'),19:z.el.B(\'19\'),Q:z.el.B(\'Q\'),O:z.el.B(\'O\'),2U:z.el.B(\'2U\'),4S:z.el.B(\'4S\'),5O:z.el.B(\'5O\'),5Q:z.el.B(\'5Q\'),5b:z.el.B(\'5b\'),5M:z.el.B(\'5M\'),5U:z.el.B(\'5U\'),5n:z.el.B(\'5n\'),4X:z.el.B(\'4X\')};z.Z=T(z.V.Z)||e.4c||0;z.W=T(z.V.W)||e.5W||0;z.Q=T(z.V.Q)||0;z.O=T(z.V.O)||0;1q=[\'em\',\'U\',\'j7\',\'%\'];24(i in 1q){if(z.V.4A.3J(1q[i])>0){z.fg=1q[i];z.4A=2m(z.V.4A)}if(z.V.4S.3J(1q[i])>0){z.fc=1q[i];z.bw=2m(z.V.4S)||0}if(z.V.5O.3J(1q[i])>0){z.fe=1q[i];z.bc=2m(z.V.5O)||0}if(z.V.5Q.3J(1q[i])>0){z.fL=1q[i];z.bA=2m(z.V.5Q)||0}if(z.V.5b.3J(1q[i])>0){z.g8=1q[i];z.bt=2m(z.V.5b)||0}if(z.V.5M.3J(1q[i])>0){z.g4=1q[i];z.bx=2m(z.V.5M)||0}if(z.V.5U.3J(1q[i])>0){z.g9=1q[i];z.bv=2m(z.V.5U)||0}if(z.V.5n.3J(1q[i])>0){z.gc=1q[i];z.bj=2m(z.V.5n)||0}if(z.V.4X.3J(1q[i])>0){z.fK=1q[i];z.b7=2m(z.V.4X)||0}}if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\');z.1u=1u;3m(z.1u){1e\'fa\':z.4b=z.Q+z.2i.h/2;z.5a=z.Q;z.4k=z.O+z.2i.w/2;z.59=z.O;1r;1e\'b4\':z.5a=z.Q+z.2i.h/2;z.4b=z.Q;z.59=z.O+z.2i.w/2;z.4k=z.O;1r;1e\'6h\':z.5a=z.Q-z.2i.h/4;z.4b=z.Q;z.59=z.O-z.2i.w/4;z.4k=z.O;1r}z.be=I;z.t=(12 7g).7z();z.4w=u(){5T(z.2I);z.2I=S};z.2D=u(){if(z.be==I){z.el.1Y();z.be=1b}D t=(12 7g).7z();D n=t-z.t;D p=n/z.1m;if(t>=z.1m+z.t){9T(u(){o=1;if(z.1u){t=z.5a;l=z.59;if(z.1u==\'6h\')o=0}z.bs(z.30,l,t,1b,o)},13);z.4w()}P{o=1;if(!k.G||!k.G[z.G]){s=((-18.5H(p*18.2Q)/2)+0.5)*(z.30-z.57)+z.57}P{s=k.G[z.G](p,n,z.57,(z.30-z.57),z.1m)}if(z.1u){if(!k.G||!k.G[z.G]){t=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b;l=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k;if(z.1u==\'6h\')o=((-18.5H(p*18.2Q)/2)+0.5)*(-0.9Y)+0.9Y}P{t=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.1m);l=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.1m);if(z.1u==\'6h\')o=k.G[z.G](p,n,0.9Y,-0.9Y,z.1m)}}z.bs(s,l,t,I,o)}};z.2I=6V(u(){z.2D()},13);z.bs=u(4q,O,Q,fM,1G){z.el.B(\'W\',z.W*4q/2a+\'U\').B(\'Z\',z.Z*4q/2a+\'U\').B(\'O\',O+\'U\').B(\'Q\',Q+\'U\').B(\'4A\',z.4A*4q/2a+z.fg);if(z.bw)z.el.B(\'4S\',z.bw*4q/2a+z.fc);if(z.bc)z.el.B(\'5O\',z.bc*4q/2a+z.fe);if(z.bA)z.el.B(\'5Q\',z.bA*4q/2a+z.fL);if(z.bt)z.el.B(\'5b\',z.bt*4q/2a+z.g8);if(z.bx)z.el.B(\'5M\',z.bx*4q/2a+z.g4);if(z.bv)z.el.B(\'5U\',z.bv*4q/2a+z.g9);if(z.bj)z.el.B(\'5n\',z.bj*4q/2a+z.gc);if(z.b7)z.el.B(\'4X\',z.b7*4q/2a+z.fK);if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+1G*2a+")";z.el.K(0).14.1G=1G}if(fM){if(z.6H){z.el.B(z.V)}if(z.1u==\'b4\'||z.1u==\'6h\'){z.el.B(\'19\',\'1o\');if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+2a+")";z.el.K(0).14.1G=1}}P z.el.B(\'19\',\'2B\');if(z.J)z.J.1D(z.el.K(0));k.2H(z.el.K(0),\'1n\')}}};k.fn.23({9U:u(H,1O,G){o=k.H(H);E q.1w(\'1n\',u(){12 k.fx.9U(q,o,1O,G)})},j6:u(H,1O,G){E q.1E(u(){k(\'a[@3h*="#"]\',q).5h(u(e){fW=q.3h.7C(\'#\');k(\'#\'+fW[1]).9U(H,1O,G);E I})})}});k.fx.9U=u(e,o,1O,G){D z=q;z.o=o;z.e=e;z.1O=/fT|gd/.48(1O)?1O:I;z.G=G;p=k.1a.3w(e);s=k.1a.6z();z.4w=u(){5T(z.2I);z.2I=S;k.2H(z.e,\'1n\')};z.t=(12 7g).7z();s.h=s.h>s.ih?(s.h-s.ih):s.h;s.w=s.w>s.iw?(s.w-s.iw):s.w;z.5a=p.y>s.h?s.h:p.y;z.59=p.x>s.w?s.w:p.x;z.4b=s.t;z.4k=s.l;z.2D=u(){D t=(12 7g).7z();D n=t-z.t;D p=n/z.o.1m;if(t>=z.o.1m+z.t){z.4w();9T(u(){z.d3(z.5a,z.59)},13)}P{if(!z.1O||z.1O==\'fT\'){if(!k.G||!k.G[z.G]){9V=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b}P{9V=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.o.1m)}}P{9V=z.4b}if(!z.1O||z.1O==\'gd\'){if(!k.G||!k.G[z.G]){9W=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k}P{9W=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.o.1m)}}P{9W=z.4k}z.d3(9V,9W)}};z.d3=u(t,l){1X.j4(l,t)};z.2I=6V(u(){z.2D()},13)};k.fn.cY=u(3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.cY(q,3V,J);e.cG()})};k.fx.cY=u(e,3V,J){D z=q;z.el=k(e);z.el.1Y();z.3V=T(3V)||3;z.J=J;z.5y=1;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.cG=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(e,{1m:60,21:u(){if(z.5y<=z.3V)z.cG();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'O\');z.e.1L(z.V.O-20,z.V.O)}},\'O\');z.e.1L(z.V.O+20,z.V.O-20)}},\'O\');z.e.1L(z.V.O,z.V.O+20)}};k.fn.23({fo:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'in\',G)})},fq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'4l\',G)})},iY:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'3R\',G)})},iX:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'in\',G)})},jr:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'4l\',G)})},jq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'3R\',G)})},jp:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'in\',G)})},jn:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'4l\',G)})},jm:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'3R\',G)})},iP:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'in\',G)})},ic:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'4l\',G)})},ib:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'3R\',G)})}});k.fx.1z=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}if(!e.4s)e.4s=z.el.B(\'19\');z.el.1Y();z.H=H;z.fx=k.fx.9P(e);z.1u=1u;z.2S=2S;z.21=u(){if(z.1u==\'4l\')z.el.B(\'3n\',\'2K\');k.fx.a0(z.fx.3p.K(0),z.fx.V);if(z.1u==\'in\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.B(\'19\',\'1o\');z.el.B(\'3n\',\'dd\')}if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'W\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.hb,0);z.7v.1L(0,z.fx.V.1q.hb)}P{z.ef.1L(0,-z.fx.V.1q.hb);z.7v.1L(z.fx.V.1q.hb,0)}1r;1e\'4r\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.hb,0)}P{z.ef.1L(0,z.fx.V.1q.hb)}1r;1e\'O\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'Z\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.1C,0);z.7v.1L(0,z.fx.V.1q.1C)}P{z.ef.1L(0,-z.fx.V.1q.1C);z.7v.1L(z.fx.V.1q.1C,0)}1r;1e\'2L\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.1C,0)}P{z.ef.1L(0,z.fx.V.1q.1C)}1r}};k.3f=S;k.fn.ig=u(o){E q.1w(\'1n\',u(){12 k.fx.dG(q,o)})};k.fx.dG=u(e,o){if(k.3f==S){k(\'2e\',1h).1S(\'<22 id="3f"></22>\');k.3f=k(\'#3f\')}k.3f.B(\'19\',\'2B\').B(\'Y\',\'1P\');D z=q;z.el=k(e);if(!o||!o.30){E}if(o.30.1K==b0&&1h.9e(o.30)){o.30=1h.9e(o.30)}P if(!o.30.dq){E}if(!o.1m){o.1m=g5}z.1m=o.1m;z.30=o.30;z.8r=o.3l;z.21=o.21;if(z.8r){k.3f.2R(z.8r)}z.a3=0;z.a2=0;if(k.dF){z.a3=(T(k.3f.B(\'5b\'))||0)+(T(k.3f.B(\'5O\'))||0)+(T(k.3f.B(\'4X\'))||0)+(T(k.3f.B(\'5U\'))||0);z.a2=(T(k.3f.B(\'4S\'))||0)+(T(k.3f.B(\'5Q\'))||0)+(T(k.3f.B(\'5M\'))||0)+(T(k.3f.B(\'5n\'))||0)}z.26=k.23(k.1a.3w(z.el.K(0)),k.1a.2o(z.el.K(0)));z.2T=k.23(k.1a.3w(z.30),k.1a.2o(z.30));z.26.1C-=z.a3;z.26.hb-=z.a2;z.2T.1C-=z.a3;z.2T.hb-=z.a2;z.J=o.21;k.3f.B(\'Z\',z.26.1C+\'U\').B(\'W\',z.26.hb+\'U\').B(\'Q\',z.26.y+\'U\').B(\'O\',z.26.x+\'U\').5w({Q:z.2T.y,O:z.2T.x,Z:z.2T.1C,W:z.2T.hb},z.1m,u(){if(z.8r)k.3f.4i(z.8r);k.3f.B(\'19\',\'1o\');if(z.21&&z.21.1K==2A){z.21.1D(z.el.K(0),[z.30])}k.2H(z.el.K(0),\'1n\')})};k.1v={M:{2E:10,ec:\'1Q/iJ.eZ\',e3:\'<1T 2J="1Q/6g.da" />\',eW:0.8,d8:\'iN a6\',dc:\'57\',3W:8J},jQ:I,jW:I,6j:S,8m:I,8k:I,d1:u(2k){if(!k.1v.8k||k.1v.8m)E;D 3K=2k.7L||2k.7K||-1;3m(3K){1e 35:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jJ\').K(0));1r;1e 36:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jL\').K(0));1r;1e 37:1e 8:1e 33:1e 80:1e kb:D 9p=k(\'#87\');if(9p.K(0).53!=S){9p.K(0).53.1D(9p.K(0))}1r;1e 38:1r;1e 39:1e 34:1e 32:1e gl:1e 78:D 9k=k(\'#88\');if(9k.K(0).53!=S){9k.K(0).53.1D(9k.K(0))}1r;1e 40:1r;1e 27:k.1v.au();1r}},7q:u(M){if(M)k.23(k.1v.M,M);if(1X.2k){k(\'2e\',1h).1J(\'6y\',k.1v.d1)}P{k(1h).1J(\'6y\',k.1v.d1)}k(\'a\').1E(u(){el=k(q);en=el.1p(\'4I\')||\'\';e9=el.1p(\'3h\')||\'\';ev=/\\.da|\\.gw|\\.8X|\\.eZ|\\.gn/g;if(e9.6c().d5(ev)!=S&&en.6c().3J(\'eU\')==0){el.1J(\'5h\',k.1v.26)}});if(k.3a.4t){3A=1h.3F(\'3A\');k(3A).1p({id:\'cN\',2J:\'ek:I;\',ej:\'cD\',ep:\'cD\'}).B({19:\'1o\',Y:\'1P\',Q:\'0\',O:\'0\',5E:\'9n:9w.9y.cC(1G=0)\'});k(\'2e\').1S(3A)}8n=1h.3F(\'22\');k(8n).1p(\'id\',\'cP\').B({Y:\'1P\',19:\'1o\',Q:\'0\',O:\'0\',1G:0}).1S(1h.8M(\' \')).1J(\'5h\',k.1v.au);6A=1h.3F(\'22\');k(6A).1p(\'id\',\'eK\').B({4X:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cE=1h.3F(\'22\');k(cE).1p(\'id\',\'dg\').B({4X:k.1v.M.2E+\'U\',5n:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cF=1h.3F(\'a\');k(cF).1p({id:\'gg\',3h:\'#\'}).B({Y:\'1P\',2L:k.1v.M.2E+\'U\',Q:\'0\'}).1S(k.1v.M.e3).1J(\'5h\',k.1v.au);7m=1h.3F(\'22\');k(7m).1p(\'id\',\'cM\').B({Y:\'2s\',cA:\'O\',6w:\'0 9F\',3I:1}).1S(6A).1S(cE).1S(cF);2b=1h.3F(\'1T\');2b.2J=k.1v.M.ec;k(2b).1p(\'id\',\'eM\').B({Y:\'1P\'});4G=1h.3F(\'a\');k(4G).1p({id:\'87\',3h:\'#\'}).B({Y:\'1P\',19:\'1o\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));4M=1h.3F(\'a\');k(4M).1p({id:\'88\',3h:\'#\'}).B({Y:\'1P\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));1Z=1h.3F(\'22\');k(1Z).1p(\'id\',\'eE\').B({19:\'1o\',Y:\'2s\',2U:\'2K\',cA:\'O\',6w:\'0 9F\',Q:\'0\',O:\'0\',3I:2}).1S([2b,4G,4M]);6F=1h.3F(\'22\');k(6F).1p(\'id\',\'ao\').B({19:\'1o\',Y:\'1P\',2U:\'2K\',Q:\'0\',O:\'0\',cA:\'cv\',7i:\'cu\',hC:\'0\'}).1S([1Z,7m]);k(\'2e\').1S(8n).1S(6F)},26:u(e,C){el=C?k(C):k(q);9t=el.1p(\'4I\');D 6B,4u,4G,4M;if(9t!=\'eU\'){k.1v.6j=9t;8Y=k(\'a[@4I=\'+9t+\']\');6B=8Y.1N();4u=8Y.cZ(C?C:q);4G=8Y.K(4u-1);4M=8Y.K(4u+1)}89=el.1p(\'3h\');6A=el.1p(\'4g\');3O=k.1a.6z();8n=k(\'#cP\');if(!k.1v.8k){k.1v.8k=1b;if(k.3a.4t){k(\'#cN\').B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y()}8n.B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y().fX(cO,k.1v.M.eW,u(){k.1v.cw(89,6A,3O,6B,4u,4G,4M)});k(\'#ao\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\')}P{k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.cw(89,6A,3O,6B,4u,4G,4M)}E I},cw:u(89,gP,3O,6B,4u,4G,4M){k(\'#cW\').bk();aX=k(\'#87\');aX.2G();aO=k(\'#88\');aO.2G();2b=k(\'#eM\');1Z=k(\'#eE\');6F=k(\'#ao\');7m=k(\'#cM\').B(\'3n\',\'2K\');k(\'#eK\').3x(6A);k.1v.8m=1b;if(6B)k(\'#dg\').3x(k.1v.M.d8+\' \'+(4u+1)+\' \'+k.1v.M.dc+\' \'+6B);if(4G){aX.K(0).53=u(){q.5B();k.1v.26(S,4G);E I}}if(4M){aO.K(0).53=u(){q.5B();k.1v.26(S,4M);E I}}2b.1Y();82=k.1a.2o(1Z.K(0));56=18.3r(82.1C,2b.K(0).Z+k.1v.M.2E*2);6f=18.3r(82.hb,2b.K(0).W+k.1v.M.2E*2);2b.B({O:(56-2b.K(0).Z)/2+\'U\',Q:(6f-2b.K(0).W)/2+\'U\'});1Z.B({Z:56+\'U\',W:6f+\'U\'}).1Y();dw=k.1a.bm();6F.B(\'Q\',3O.t+(dw.h/15)+\'U\');if(6F.B(\'19\')==\'1o\'){6F.1Y().7f(k.1v.M.3W)}6k=12 9s;k(6k).1p(\'id\',\'cW\').1J(\'hJ\',u(){56=6k.Z+k.1v.M.2E*2;6f=6k.W+k.1v.M.2E*2;2b.2G();1Z.5w({W:6f},82.hb!=6f?k.1v.M.3W:1,u(){1Z.5w({Z:56},82.1C!=56?k.1v.M.3W:1,u(){1Z.bG(6k);k(6k).B({Y:\'1P\',O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\'}).7f(k.1v.M.3W,u(){db=k.1a.2o(7m.K(0));if(4G){aX.B({O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}if(4M){aO.B({O:56/2+k.1v.M.2E*2+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}7m.B({Z:56+\'U\',Q:-db.hb+\'U\',3n:\'dd\'}).5w({Q:-1},k.1v.M.3W,u(){k.1v.8m=I})})})})});6k.2J=89},au:u(){k(\'#cW\').bk();k(\'#ao\').2G();k(\'#cM\').B(\'3n\',\'2K\');k(\'#cP\').fX(cO,0,u(){k(q).2G();if(k.3a.4t){k(\'#cN\').2G()}});k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.6j=S;k.1v.8k=I;k.1v.8m=I;E I}};k.R={1A:S,41:S,F:S,1s:S,1q:S,Y:S,9a:u(e){k.R.F=(q.d0)?q.d0:q;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(k.R.F).B(\'Z\'))||0,W:T(k(k.R.F).B(\'W\'))||0};k.R.Y={Q:T(k(k.R.F).B(\'Q\'))||0,O:T(k(k.R.F).B(\'O\'))||0};k(1h).1J(\'3D\',k.R.cR).1J(\'5P\',k.R.cK);if(2g k.R.F.1k.g2===\'u\'){k.R.F.1k.g2.1D(k.R.F)}E I},cK:u(e){k(1h).3q(\'3D\',k.R.cR).3q(\'5P\',k.R.cK);if(2g k.R.F.1k.fN===\'u\'){k.R.F.1k.fN.1D(k.R.F)}k.R.F=S},cR:u(e){if(!k.R.F){E}1s=k.1a.4a(e);7p=k.R.Y.Q-k.R.1s.y+1s.y;7r=k.R.Y.O-k.R.1s.x+1s.x;7p=18.3r(18.3L(7p,k.R.F.1k.8g-k.R.1q.W),k.R.F.1k.7h);7r=18.3r(18.3L(7r,k.R.F.1k.8h-k.R.1q.Z),k.R.F.1k.70);if(2g k.R.F.1k.4m===\'u\'){D 8a=k.R.F.1k.4m.1D(k.R.F,[7r,7p]);if(2g 8a==\'hh\'&&8a.1g==2){7r=8a[0];7p=8a[1]}}k.R.F.14.Q=7p+\'U\';k.R.F.14.O=7r+\'U\';E I},26:u(e){k(1h).1J(\'3D\',k.R.8j).1J(\'5P\',k.R.8o);k.R.1A=q.1A;k.R.41=q.41;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(q.1A).B(\'Z\'))||0,W:T(k(q.1A).B(\'W\'))||0};k.R.Y={Q:T(k(q.1A).B(\'Q\'))||0,O:T(k(q.1A).B(\'O\'))||0};if(k.R.1A.1k.4o){k.R.1A.1k.4o.1D(k.R.1A,[q])}E I},8o:u(){k(1h).3q(\'3D\',k.R.8j).3q(\'5P\',k.R.8o);if(k.R.1A.1k.3T){k.R.1A.1k.3T.1D(k.R.1A,[k.R.41])}k.R.1A=S;k.R.41=S},6i:u(dx,az){E 18.3L(18.3r(k.R.1q.Z+dx*az,k.R.1A.1k.av),k.R.1A.1k.6x)},6m:u(dy,az){E 18.3L(18.3r(k.R.1q.W+dy*az,k.R.1A.1k.8c),k.R.1A.1k.8b)},fb:u(W){E 18.3L(18.3r(W,k.R.1A.1k.8c),k.R.1A.1k.8b)},8j:u(e){if(k.R.1A==S){E}1s=k.1a.4a(e);dx=1s.x-k.R.1s.x;dy=1s.y-k.R.1s.y;1I={Z:k.R.1q.Z,W:k.R.1q.W};2z={Q:k.R.Y.Q,O:k.R.Y.O};3m(k.R.41){1e\'e\':1I.Z=k.R.6i(dx,1);1r;1e\'fj\':1I.Z=k.R.6i(dx,1);1I.W=k.R.6m(dy,1);1r;1e\'w\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'5F\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1I.W=k.R.6m(dy,1);1r;1e\'76\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'n\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1r;1e\'at\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,1);1r;1e\'s\':1I.W=k.R.6m(dy,1);1r}if(k.R.1A.1k.4v){if(k.R.41==\'n\'||k.R.41==\'s\')4p=1I.W*k.R.1A.1k.4v;P 4p=1I.Z;4W=k.R.fb(4p*k.R.1A.1k.4v);4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.W=4W;1I.Z=4p}if(2z.Q<k.R.1A.1k.7h){4W=1I.W+2z.Q-k.R.1A.1k.7h;2z.Q=k.R.1A.1k.7h;if(k.R.1A.1k.4v){4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.Z=4p}1I.W=4W}if(2z.O<k.R.1A.1k.70){4p=1I.Z+2z.O-k.R.1A.1k.70;2z.O=k.R.1A.1k.70;if(k.R.1A.1k.4v){4W=4p*k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}1I.W=4W}1I.Z=4p}if(2z.Q+1I.W>k.R.1A.1k.8g){1I.W=k.R.1A.1k.8g-2z.Q;if(k.R.1A.1k.4v){1I.Z=1I.W/k.R.1A.1k.4v}}if(2z.O+1I.Z>k.R.1A.1k.8h){1I.Z=k.R.1A.1k.8h-2z.O;if(k.R.1A.1k.4v){1I.W=1I.Z*k.R.1A.1k.4v}}D 6p=I;if(k.R.1A.1k.f7){6p=k.R.1A.1k.f7.1D(k.R.1A,[1I,2z]);if(6p){if(6p.1q){k.23(1I,6p.1q)}if(6p.Y){k.23(2z,6p.Y)}}}8d=k.R.1A.14;8d.O=2z.O+\'U\';8d.Q=2z.Q+\'U\';8d.Z=1I.Z+\'U\';8d.W=1I.W+\'U\';E I},2r:u(M){if(!M||!M.3Z||M.3Z.1K!=7M){E}E q.1E(u(){D el=q;el.1k=M;el.1k.av=M.av||10;el.1k.8c=M.8c||10;el.1k.6x=M.6x||6P;el.1k.8b=M.8b||6P;el.1k.7h=M.7h||-aC;el.1k.70=M.70||-aC;el.1k.8h=M.8h||6P;el.1k.8g=M.8g||6P;d6=k(el).B(\'Y\');if(!(d6==\'2s\'||d6==\'1P\')){el.14.Y=\'2s\'}fS=/n|at|e|fj|s|5F|w|76/g;24(i in el.1k.3Z){if(i.6c().d5(fS)!=S){if(el.1k.3Z[i].1K==b0){3v=k(el.1k.3Z[i]);if(3v.1N()>0){el.1k.3Z[i]=3v.K(0)}}if(el.1k.3Z[i].4Y){el.1k.3Z[i].1A=el;el.1k.3Z[i].41=i;k(el.1k.3Z[i]).1J(\'5v\',k.R.26)}}}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){aV=k(el.1k.5S);if(aV.1N()>0){aV.1E(u(){q.d0=el});aV.1J(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).1J(\'5v\',k.R.9a)}}})},4U:u(){E q.1E(u(){D el=q;24(i in el.1k.3Z){el.1k.3Z[i].1A=S;el.1k.3Z[i].41=S;k(el.1k.3Z[i]).3q(\'5v\',k.R.26)}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){3v=k(el.1k.5S);if(3v.1N()>0){3v.3q(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).3q(\'5v\',k.R.9a)}}el.1k=S})}};k.fn.23({hz:k.R.2r,hs:k.R.4U});k.2C=S;k.7n=I;k.3k=S;k.7o=[];k.9v=u(e){D 3K=e.7L||e.7K||-1;if(3K==17||3K==16){k.7n=1b}};k.9u=u(e){k.7n=I};k.dL=u(e){q.f.1s=k.1a.4a(e);q.f.1M=k.23(k.1a.3w(q),k.1a.2o(q));q.f.3e=k.1a.6z(q);q.f.1s.x-=q.f.1M.x;q.f.1s.y-=q.f.1M.y;k(q).1S(k.2C.K(0));if(q.f.hc)k.2C.2R(q.f.hc).B(\'19\',\'2B\');k.2C.B({19:\'2B\',Z:\'2P\',W:\'2P\'});if(q.f.o){k.2C.B(\'1G\',q.f.o)}k.3k=q;k.96=I;k.7o=[];q.f.el.1E(u(){q.1M={x:q.8t+(q.4Z&&!k.3a.7I?T(q.4Z.5b)||0:0)+(k.3k.3c||0),y:q.8G+(q.4Z&&!k.3a.7I?T(q.4Z.4S)||0:0)+(k.3k.3d||0),1C:q.4c,hb:q.5W};if(q.s==1b){if(k.7n==I){q.s=I;k(q).4i(k.3k.f.7j)}P{k.96=1b;k.7o[k.7o.1g]=k.1p(q,\'id\')}}});k.am.1D(q,[e]);k(1h).1J(\'3D\',k.am).1J(\'5P\',k.cX);E I};k.am=u(e){if(!k.3k)E;k.fd.1D(k.3k,[e])};k.fd=u(e){if(!k.3k)E;D 1s=k.1a.4a(e);D 3e=k.1a.6z(k.3k);1s.x+=3e.l-q.f.3e.l-q.f.1M.x;1s.y+=3e.t-q.f.3e.t-q.f.1M.y;D 93=18.3L(1s.x,q.f.1s.x);D 5F=18.3L(18.3S(1s.x-q.f.1s.x),18.3S(q.f.3e.w-93));D 99=18.3L(1s.y,q.f.1s.y);D 9g=18.3L(18.3S(1s.y-q.f.1s.y),18.3S(q.f.3e.h-99));if(q.3d>0&&1s.y-20<q.3d){D 3X=18.3L(3e.t,10);99-=3X;9g+=3X;q.3d-=3X}P if(q.3d+q.f.1M.h<q.f.3e.h&&1s.y+20>q.3d+q.f.1M.h){D 3X=18.3L(q.f.3e.h-q.3d,10);q.3d+=3X;if(q.3d!=3e.t)9g+=3X}if(q.3c>0&&1s.x-20<q.3c){D 3X=18.3L(3e.l,10);93-=3X;5F+=3X;q.3c-=3X}P if(q.3c+q.f.1M.w<q.f.3e.w&&1s.x+20>q.3c+q.f.1M.w){D 3X=18.3L(q.f.3e.w-q.3c,10);q.3c+=3X;if(q.3c!=3e.l)5F+=3X}k.2C.B({O:93+\'U\',Q:99+\'U\',Z:5F+\'U\',W:9g+\'U\'});k.2C.l=93+q.f.3e.l;k.2C.t=99+q.f.3e.t;k.2C.r=k.2C.l+5F;k.2C.b=k.2C.t+9g;k.96=I;q.f.el.1E(u(){aw=k.7o.3J(k.1p(q,\'id\'));if(!(q.1M.x>k.2C.r||(q.1M.x+q.1M.1C)<k.2C.l||q.1M.y>k.2C.b||(q.1M.y+q.1M.hb)<k.2C.t)){k.96=1b;if(q.s!=1b){q.s=1b;k(q).2R(k.3k.f.7j)}if(aw!=-1){q.s=I;k(q).4i(k.3k.f.7j)}}P if((q.s==1b)&&(aw==-1)){q.s=I;k(q).4i(k.3k.f.7j)}P if((!q.s)&&(k.7n==1b)&&(aw!=-1)){q.s=1b;k(q).2R(k.3k.f.7j)}});E I};k.cX=u(e){if(!k.3k)E;k.g0.1D(k.3k,[e])};k.g0=u(e){k(1h).3q(\'3D\',k.am).3q(\'5P\',k.cX);if(!k.3k)E;k.2C.B(\'19\',\'1o\');if(q.f.hc)k.2C.4i(q.f.hc);k.3k=I;k(\'2e\').1S(k.2C.K(0));if(k.96==1b){if(q.f.98)q.f.98(k.cJ(k.1p(q,\'id\')))}P{if(q.f.9d)q.f.9d(k.cJ(k.1p(q,\'id\')))}k.7o=[]};k.cJ=u(s){D h=\'\';D o=[];if(a=k(\'#\'+s)){a.K(0).f.el.1E(u(){if(q.s==1b){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[o.1g]=k.1p(q,\'id\')}})}E{7l:h,o:o}};k.fn.gZ=u(o){if(!k.2C){k(\'2e\',1h).1S(\'<22 id="2C"></22>\').1J(\'7B\',k.9v).1J(\'6y\',k.9u);k.2C=k(\'#2C\');k.2C.B({Y:\'1P\',19:\'1o\'});if(1X.2k){k(\'2e\',1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}P{k(1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}}if(!o){o={}}E q.1E(u(){if(q.eP)E;q.eP=1b;q.f={a:o.3C,o:o.1G?2m(o.1G):I,7j:o.eS?o.eS:I,hc:o.58?o.58:I,98:o.98?o.98:I,9d:o.9d?o.9d:I};q.f.el=k(\'.\'+o.3C);k(q).1J(\'5v\',k.dL).B(\'Y\',\'2s\')})};k.3b={bM:1,eH:u(3t){D 3t=3t;E q.1E(u(){q.4z.6s.1E(u(ab){k.3b.5c(q,3t[ab])})})},K:u(){D 3t=[];q.1E(u(cL){if(q.bI){3t[cL]=[];D C=q;D 1q=k.1a.2o(q);q.4z.6s.1E(u(ab){D x=q.8t;D y=q.8G;92=T(x*2a/(1q.w-q.4c));91=T(y*2a/(1q.h-q.5W));3t[cL][ab]=[92||0,91||0,x||0,y||0]})}});E 3t},ct:u(C){C.A.fu=C.A.28.w-C.A.1B.1C;C.A.fw=C.A.28.h-C.A.1B.hb;if(C.9r.4z.bC){9Z=C.9r.4z.6s.K(C.bF+1);if(9Z){C.A.28.w=(T(k(9Z).B(\'O\'))||0)+C.A.1B.1C;C.A.28.h=(T(k(9Z).B(\'Q\'))||0)+C.A.1B.hb}9Q=C.9r.4z.6s.K(C.bF-1);if(9Q){D cU=T(k(9Q).B(\'O\'))||0;D cH=T(k(9Q).B(\'O\'))||0;C.A.28.x+=cU;C.A.28.y+=cH;C.A.28.w-=cU;C.A.28.h-=cH}}C.A.g7=C.A.28.w-C.A.1B.1C;C.A.eC=C.A.28.h-C.A.1B.hb;if(C.A.2O){C.A.gx=((C.A.28.w-C.A.1B.1C)/C.A.2O)||1;C.A.gy=((C.A.28.h-C.A.1B.hb)/C.A.2O)||1;C.A.fU=C.A.g7/C.A.2O;C.A.fH=C.A.eC/C.A.2O}C.A.28.dx=C.A.28.x-C.A.2c.x;C.A.28.dy=C.A.28.y-C.A.2c.y;k.11.1c.B(\'9b\',\'ad\')},3H:u(C,x,y){if(C.A.2O){fE=T(x/C.A.fU);92=fE*2a/C.A.2O;ft=T(y/C.A.fH);91=ft*2a/C.A.2O}P{92=T(x*2a/C.A.fu);91=T(y*2a/C.A.fw)}C.A.b3=[92||0,91||0,x||0,y||0];if(C.A.3H)C.A.3H.1D(C,C.A.b3)},eI:u(2k){3K=2k.7L||2k.7K||-1;3m(3K){1e 35:k.3b.5c(q.3U,[ae,ae]);1r;1e 36:k.3b.5c(q.3U,[-ae,-ae]);1r;1e 37:k.3b.5c(q.3U,[-q.3U.A.gx||-1,0]);1r;1e 38:k.3b.5c(q.3U,[0,-q.3U.A.gy||-1]);1r;1e 39:k.3b.5c(q.3U,[q.3U.A.gx||1,0]);1r;1e 40:k.11.5c(q.3U,[0,q.3U.A.gy||1]);1r}},5c:u(C,Y){if(!C.A){E}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.4n=k.B(C,\'Y\');if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){C.14.Y=\'2s\'}k.11.c5(C);k.3b.ct(C);dx=T(Y[0])||0;dy=T(Y[1])||0;2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.2O){3y=k.11.c7.1D(C,[2v,2q,dx,dy]);if(3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy}3y=k.11.ce.1D(C,[2v,2q,dx,dy]);if(3y&&3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.5i&&(C.A.3H||C.A.2Z)){k.3b.3H(C,2v,2q)}2v=!C.A.1O||C.A.1O==\'4j\'?2v:C.A.2c.x||0;2q=!C.A.1O||C.A.1O==\'49\'?2q:C.A.2c.y||0;C.14.O=2v+\'U\';C.14.Q=2q+\'U\'},2r:u(o){E q.1E(u(){if(q.bI==1b||!o.3C||!k.1a||!k.11||!k.1x){E}5x=k(o.3C,q);if(5x.1N()==0){E}D 4N={2p:\'94\',5i:1b,3H:o.3H&&o.3H.1K==2A?o.3H:S,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:S,3v:q,1G:o.1G||I};if(o.2O&&T(o.2O)){4N.2O=T(o.2O)||1;4N.2O=4N.2O>0?4N.2O:1}if(5x.1N()==1)5x.7t(4N);P{k(5x.K(0)).7t(4N);4N.3v=S;5x.7t(4N)}5x.7B(k.3b.eI);5x.1p(\'bM\',k.3b.bM++);q.bI=1b;q.4z={};q.4z.er=4N.er;q.4z.2O=4N.2O;q.4z.6s=5x;q.4z.bC=o.bC?1b:I;bZ=q;bZ.4z.6s.1E(u(2N){q.bF=2N;q.9r=bZ});if(o.3t&&o.3t.1K==7F){24(i=o.3t.1g-1;i>=0;i--){if(o.3t[i].1K==7F&&o.3t[i].1g==2){el=q.4z.6s.K(i);if(el.4Y){k.3b.5c(el,o.3t[i])}}}}})}};k.fn.23({hN:k.3b.2r,hS:k.3b.eH,hG:k.3b.K});k.2u={5I:[],eg:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},dp:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u-1;1Q=k(\'1T\',X.L.5u);if(1z<1){1z=X.L.1Q.1g}X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},2I:u(c){X=1h.9e(c);if(X.L.6o){1z=X.L.3u;7d(1z==X.L.3u){1z=1+T(18.6o()*X.L.1Q.1g)}}P{1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},go:u(o){D X;if(o&&o.1K==7M){if(o.2b){X=1h.9e(o.2b.X);5N=1X.hn.3h.7C("#");o.2b.6S=S;if(5N.1g==2){1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}P{1z=1}}if(o.90){o.90.5B();X=o.90.31.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}5N=o.90.3h.7C("#");1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}if(X.L.1Q.1g<1z||1z<1){1z=1}X.L.3u=1z;52=k.1a.2o(X);dt=k.1a.aT(X);d9=k.1a.6U(X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}if(X.L.2b){y=T(dt.t)+T(d9.t);if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}if(!X.L.c1){X.L.df=o.2b?o.2b.W:(T(X.L.2b.B(\'W\'))||0);X.L.c1=o.2b?o.2b.Z:(T(X.L.2b.B(\'Z\'))||0)}X.L.2b.B(\'Q\',y+(52.h-X.L.df)/2+\'U\');X.L.2b.B(\'O\',(52.1C-X.L.c1)/2+\'U\');X.L.2b.B(\'19\',\'2B\')}1Q=k(\'1T\',X.L.5u);if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}P{aj=k(\'a\',X.L.1U.o).K(1z-1);k(aj).2R(X.L.1U.5R);D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=1z-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[1z-1].6L)}}}},95:u(){X=q.31.31;X.L.5u.B(\'19\',\'1o\');if(X.L.1U.5R){aj=k(\'a\',X.L.1U.o).4i(X.L.1U.5R).K(X.L.3u-1);k(aj).2R(X.L.1U.5R)}D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=X.L.3u-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[X.L.3u-1].6L)}},19:u(){X=1h.9e(q.X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}52=k.1a.2o(X);y=0;if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}hg=k(\'.ca\',X);y=y+(52.h-q.W)/2;x=(52.1C-q.Z)/2;X.L.5u.B(\'Q\',y+\'U\').B(\'O\',x+\'U\').3x(\'<1T 2J="\'+q.2J+\'" />\');X.L.5u.7f(X.L.3W);3s=X.L.3u+1;if(3s>X.L.1Q.1g){3s=1}3z=X.L.3u-1;if(3z<1){3z=X.L.1Q.1g}X.L.3s.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+2*q.Z/3+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3s-1].6L);X.L.3s.o.K(0).3h=\'#\'+3s+k.1p(X,\'id\');X.L.3z.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3z-1].6L);X.L.3z.o.K(0).3h=\'#\'+3z+k.1p(X,\'id\')},2r:u(o){if(!o||!o.1Z||k.2u.5I[o.1Z])E;D 1Z=k(\'#\'+o.1Z);D el=1Z.K(0);if(el.14.Y!=\'1P\'&&el.14.Y!=\'2s\'){el.14.Y=\'2s\'}el.14.2U=\'2K\';if(1Z.1N()==0)E;el.L={};el.L.1Q=o.1Q?o.1Q:[];el.L.6o=o.6o&&o.6o==1b||I;97=el.f3(\'hL\');24(i=0;i<97.1g;i++){7Z=el.L.1Q.1g;el.L.1Q[7Z]={2J:97[i].2J,6L:97[i].4g||97[i].hD||\'\'}}if(el.L.1Q.1g==0){E}el.L.4n=k.23(k.1a.3w(el),k.1a.2o(el));el.L.b5=k.1a.aT(el);el.L.bu=k.1a.6U(el);t=T(el.L.b5.t)+T(el.L.bu.t);b=T(el.L.b5.b)+T(el.L.bu.b);k(\'1T\',el).bk();el.L.3W=o.3W?o.3W:g5;if(o.5A||o.9f||o.5R){el.L.1U={};1Z.1S(\'<22 6T="g1"></22>\');el.L.1U.o=k(\'.g1\',el);if(o.9f){el.L.1U.9f=o.9f;el.L.1U.o.2R(o.9f)}if(o.5R){el.L.1U.5R=o.5R}el.L.1U.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.5A&&o.5A==\'Q\'){el.L.1U.5A=\'Q\';el.L.1U.o.B(\'Q\',t+\'U\')}P{el.L.1U.5A=\'4D\';el.L.1U.o.B(\'4D\',b+\'U\')}el.L.1U.aE=o.aE?o.aE:\' \';24(D i=0;i<el.L.1Q.1g;i++){7Z=T(i)+1;el.L.1U.o.1S(\'<a 3h="#\'+7Z+o.1Z+\'" 6T="gR" 4g="\'+el.L.1Q[i].6L+\'">\'+7Z+\'</a>\'+(7Z!=el.L.1Q.1g?el.L.1U.aE:\'\'))}k(\'a\',el.L.1U.o).1J(\'5h\',u(){k.2u.go({90:q})});el.L.1U.4C=k.1a.2o(el.L.1U.o.K(0))}if(o.6Q||o.9c){el.L.2x={};1Z.1S(\'<22 6T="dn">&7k;</22>\');el.L.2x.o=k(\'.dn\',el);if(o.9c){el.L.2x.9c=o.9c;el.L.2x.o.2R(o.9c)}el.L.2x.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.6Q&&o.6Q==\'Q\'){el.L.2x.6Q=\'Q\';el.L.2x.o.B(\'Q\',(el.L.1U&&el.L.1U.5A==\'Q\'?el.L.1U.4C.hb+t:t)+\'U\')}P{el.L.2x.6Q=\'4D\';el.L.2x.o.B(\'4D\',(el.L.1U&&el.L.1U.5A==\'4D\'?el.L.1U.4C.hb+b:b)+\'U\')}el.L.2x.4C=k.1a.2o(el.L.2x.o.K(0))}if(o.9D){el.L.3s={9D:o.9D};1Z.1S(\'<a 3h="#2\'+o.1Z+\'" 6T="eY">&7k;</a>\');el.L.3s.o=k(\'.eY\',el);el.L.3s.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3s.9D);el.L.3s.o.1J(\'5h\',k.2u.eg)}if(o.9o){el.L.3z={9o:o.9o};1Z.1S(\'<a 3h="#0\'+o.1Z+\'" 6T="ee">&7k;</a>\');el.L.3z.o=k(\'.ee\',el);el.L.3z.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3z.9o);el.L.3z.o.1J(\'5h\',k.2u.dp)}1Z.bG(\'<22 6T="ca"></22>\');el.L.5u=k(\'.ca\',el);el.L.5u.B(\'Y\',\'1P\').B(\'Q\',\'2P\').B(\'O\',\'2P\').B(\'19\',\'1o\');if(o.2b){1Z.bG(\'<22 6T="dW" 14="19: 1o;"><1T 2J="\'+o.2b+\'" /></22>\');el.L.2b=k(\'.dW\',el);el.L.2b.B(\'Y\',\'1P\');D 1T=12 9s();1T.X=o.1Z;1T.2J=o.2b;if(1T.21){1T.6S=S;k.2u.go({2b:1T})}P{1T.6S=u(){k.2u.go({2b:q})}}}P{k.2u.go({1Z:el})}if(o.cS){fi=T(o.cS)*aC}k.2u.5I[o.1Z]=o.cS?1X.6V(\'k.2u.2I(\\\'\'+o.1Z+\'\\\')\',fi):S}};k.X=k.2u.2r;k.1t={7s:[],5L:{},1c:I,7u:S,26:u(){if(k.11.F==S){E}D 4O,3G,c,cs;k.1t.1c.K(0).3l=k.11.F.A.6R;4O=k.1t.1c.K(0).14;4O.19=\'2B\';k.1t.1c.1B=k.23(k.1a.3w(k.1t.1c.K(0)),k.1a.2o(k.1t.1c.K(0)));4O.Z=k.11.F.A.1B.1C+\'U\';4O.W=k.11.F.A.1B.hb+\'U\';3G=k.1a.cy(k.11.F);4O.5K=3G.t;4O.5z=3G.r;4O.5k=3G.b;4O.5j=3G.l;if(k.11.F.A.46==1b){c=k.11.F.fI(1b);cs=c.14;cs.5K=\'2P\';cs.5z=\'2P\';cs.5k=\'2P\';cs.5j=\'2P\';cs.19=\'2B\';k.1t.1c.5o().1S(c)}k(k.11.F).f5(k.1t.1c.K(0));k.11.F.14.19=\'1o\'},fC:u(e){if(!e.A.44&&k.1x.5r.cQ){if(e.A.3T)e.A.3T.1D(F);k(e).B(\'Y\',e.A.cz||e.A.4n);k(e).aS();k(k.1x.5r).f6(e)}k.1t.1c.4i(e.A.6R).3x(\'&7k;\');k.1t.7u=S;D 4O=k.1t.1c.K(0).14;4O.19=\'1o\';k.1t.1c.f5(e);if(e.A.fx>0){k(e).7f(e.A.fx)}k(\'2e\').1S(k.1t.1c.K(0));D 86=[];D 8q=I;24(D i=0;i<k.1t.7s.1g;i++){D 1j=k.1x.3P[k.1t.7s[i]].K(0);D id=k.1p(1j,\'id\');D 8i=k.1t.8x(id);if(1j.1i.ay!=8i.7l){1j.1i.ay=8i.7l;if(8q==I&&1j.1i.2Z){8q=1j.1i.2Z}8i.id=id;86[86.1g]=8i}}k.1t.7s=[];if(8q!=I&&86.1g>0){8q(86)}},al:u(e,o){if(!k.11.F)E;D 6e=I;D i=0;if(e.1i.el.1N()>0){24(i=e.1i.el.1N();i>0;i--){if(e.1i.el.K(i-1)!=k.11.F){if(!e.5V.b2){if((e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}P{1r}}P{if((e.1i.el.K(i-1).1M.x+e.1i.el.K(i-1).1M.1C/2)>k.11.F.A.2v&&(e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}}}}}if(6e&&k.1t.7u!=6e){k.1t.7u=6e;k(6e).h5(k.1t.1c.K(0))}P if(!6e&&(k.1t.7u!=S||k.1t.1c.K(0).31!=e)){k.1t.7u=S;k(e).1S(k.1t.1c.K(0))}k.1t.1c.K(0).14.19=\'2B\'},cT:u(e){if(k.11.F==S){E}e.1i.el.1E(u(){q.1M=k.23(k.1a.74(q),k.1a.7G(q))})},8x:u(s){D i;D h=\'\';D o={};if(s){if(k.1t.5L[s]){o[s]=[];k(\'#\'+s+\' .\'+k.1t.5L[s]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[s][o[s].1g]=k.1p(q,\'id\')})}P{24(a in s){if(k.1t.5L[s[a]]){o[s[a]]=[];k(\'#\'+s[a]+\' .\'+k.1t.5L[s[a]]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s[a]+\'[]=\'+k.1p(q,\'id\');o[s[a]][o[s[a]].1g]=k.1p(q,\'id\')})}}}}P{24(i in k.1t.5L){o[i]=[];k(\'#\'+i+\' .\'+k.1t.5L[i]).1E(u(){if(h.1g>0){h+=\'&\'}h+=i+\'[]=\'+k.1p(q,\'id\');o[i][o[i].1g]=k.1p(q,\'id\')})}}E{7l:h,o:o}},fF:u(e){if(!e.dq){E}E q.1E(u(){if(!q.5V||!k(e).is(\'.\'+q.5V.3C))k(e).2R(q.5V.3C);k(e).7t(q.5V.A)})},4U:u(){E q.1E(u(){k(\'.\'+q.5V.3C).aS();k(q).dR();q.5V=S;q.fm=S})},2r:u(o){if(o.3C&&k.1a&&k.11&&k.1x){if(!k.1t.1c){k(\'2e\',1h).1S(\'<22 id="e5">&7k;</22>\');k.1t.1c=k(\'#e5\');k.1t.1c.K(0).14.19=\'1o\'}q.do({3C:o.3C,9J:o.9J?o.9J:I,a5:o.a5?o.a5:I,58:o.58?o.58:I,7x:o.7x||o.dC,7y:o.7y||o.fO,cQ:1b,2Z:o.2Z||o.ia,fx:o.fx?o.fx:I,46:o.46?1b:I,6I:o.6I?o.6I:\'cV\'});E q.1E(u(){D A={6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,4o:o.4o&&o.4o.1K==2A?o.4o:I,4m:o.4m&&o.4m.1K==2A?o.4m:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:I,2V:o.2V?o.2V:I};k(\'.\'+o.3C,q).7t(A);q.fm=1b;q.5V={3C:o.3C,6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,b2:o.b2?1b:I,A:A}})}}};k.fn.23({j3:k.1t.2r,f6:k.1t.fF,iS:k.1t.4U});k.iZ=k.1t.8x;k.2t={6O:S,7b:I,9m:S,6K:u(e){k.2t.7b=1b;k.2t.1Y(e,q,1b)},cq:u(e){if(k.2t.6O!=q)E;k.2t.7b=I;k.2t.2G(e,q)},1Y:u(e,el,7b){if(k.2t.6O!=S)E;if(!el){el=q}k.2t.6O=el;1M=k.23(k.1a.3w(el),k.1a.2o(el));8u=k(el);4g=8u.1p(\'4g\');3h=8u.1p(\'3h\');if(4g){k.2t.9m=4g;8u.1p(\'4g\',\'\');k(\'#eT\').3x(4g);if(3h)k(\'#bL\').3x(3h.4E(\'jh://\',\'\'));P k(\'#bL\').3x(\'\');1c=k(\'#8z\');if(el.4H.3l){1c.K(0).3l=el.4H.3l}P{1c.K(0).3l=\'\'}bo=k.1a.2o(1c.K(0));ga=7b&&el.4H.Y==\'bO\'?\'4D\':el.4H.Y;3m(ga){1e\'Q\':2q=1M.y-bo.hb;2v=1M.x;1r;1e\'O\':2q=1M.y;2v=1M.x-bo.1C;1r;1e\'2L\':2q=1M.y;2v=1M.x+1M.1C;1r;1e\'bO\':k(\'2e\').1J(\'3D\',k.2t.3D);1s=k.1a.4a(e);2q=1s.y+15;2v=1s.x+15;1r;ad:2q=1M.y+1M.hb;2v=1M.x;1r}1c.B({Q:2q+\'U\',O:2v+\'U\'});if(el.4H.54==I){1c.1Y()}P{1c.7f(el.4H.54)}if(el.4H.2Y)el.4H.2Y.1D(el);8u.1J(\'8B\',k.2t.2G).1J(\'5B\',k.2t.cq)}},3D:u(e){if(k.2t.6O==S){k(\'2e\').3q(\'3D\',k.2t.3D);E}1s=k.1a.4a(e);k(\'#8z\').B({Q:1s.y+15+\'U\',O:1s.x+15+\'U\'})},2G:u(e,el){if(!el){el=q}if(k.2t.7b!=1b&&k.2t.6O==el){k.2t.6O=S;k(\'#8z\').7a(1);k(el).1p(\'4g\',k.2t.9m).3q(\'8B\',k.2t.2G).3q(\'5B\',k.2t.cq);if(el.4H.3i)el.4H.3i.1D(el);k.2t.9m=S}},2r:u(M){if(!k.2t.1c){k(\'2e\').1S(\'<22 id="8z"><22 id="eT"></22><22 id="bL"></22></22>\');k(\'#8z\').B({Y:\'1P\',3I:6P,19:\'1o\'});k.2t.1c=1b}E q.1E(u(){if(k.1p(q,\'4g\')){q.4H={Y:/Q|4D|O|2L|bO/.48(M.Y)?M.Y:\'4D\',3l:M.3l?M.3l:I,54:M.54?M.54:I,2Y:M.2Y&&M.2Y.1K==2A?M.2Y:I,3i:M.3i&&M.3i.1K==2A?M.3i:I};D el=k(q);el.1J(\'9z\',k.2t.1Y);el.1J(\'6K\',k.2t.6K)}})}};k.fn.hO=k.2t.2r;k.84={bq:u(e){3K=e.7L||e.7K||-1;if(3K==9){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(q.b1){1h.6J.dZ().3g="\\t";q.dV=u(){q.6K();q.dV=S}}P if(q.aF){26=q.5q;2T=q.dN;q.2y=q.2y.hd(0,26)+"\\t"+q.2y.h8(2T);q.aF(26+1,26+1);q.6K()}E I}},4U:u(){E q.1E(u(){if(q.7P&&q.7P==1b){k(q).3q(\'7B\',k.84.bq);q.7P=I}})},2r:u(){E q.1E(u(){if(q.4Y==\'cf\'&&(!q.7P||q.7P==I)){k(q).1J(\'7B\',k.84.bq);q.7P=1b}})}};k.fn.23({j5:k.84.2r,hH:k.84.4U});k.1a={3w:u(e){D x=0;D y=0;D es=e.14;D bP=I;if(k(e).B(\'19\')==\'1o\'){D 5Y=es.3n;D 9q=es.Y;bP=1b;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\'}D el=e;7d(el){x+=el.8t+(el.4Z&&!k.3a.7I?T(el.4Z.5b)||0:0);y+=el.8G+(el.4Z&&!k.3a.7I?T(el.4Z.4S)||0:0);el=el.dJ}el=e;7d(el&&el.4Y&&el.4Y.6c()!=\'2e\'){x-=el.3c||0;y-=el.3d||0;el=el.31}if(bP==1b){es.19=\'1o\';es.Y=9q;es.3n=5Y}E{x:x,y:y}},7G:u(el){D x=0,y=0;7d(el){x+=el.8t||0;y+=el.8G||0;el=el.dJ}E{x:x,y:y}},2o:u(e){D w=k.B(e,\'Z\');D h=k.B(e,\'W\');D 1C=0;D hb=0;D es=e.14;if(k(e).B(\'19\')!=\'1o\'){1C=e.4c;hb=e.5W}P{D 5Y=es.3n;D 9q=es.Y;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\';1C=e.4c;hb=e.5W;es.19=\'1o\';es.Y=9q;es.3n=5Y}E{w:w,h:h,1C:1C,hb:hb}},74:u(el){E{1C:el.4c||0,hb:el.5W||0}},bm:u(e){D h,w,de;if(e){w=e.8W;h=e.8O}P{de=1h.5d;w=1X.d4||aa.d4||(de&&de.8W)||1h.2e.8W;h=1X.cB||aa.cB||(de&&de.8O)||1h.2e.8O}E{w:w,h:h}},6z:u(e){D t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.9N.6c()!=\'2e\'){t=e.3d;l=e.3c;w=e.d7;h=e.d2;iw=0;ih=0}P{if(1h.5d){t=1h.5d.3d;l=1h.5d.3c;w=1h.5d.d7;h=1h.5d.d2}P if(1h.2e){t=1h.2e.3d;l=1h.2e.3c;w=1h.2e.d7;h=1h.2e.d2}iw=aa.d4||1h.5d.8W||1h.2e.8W||0;ih=aa.cB||1h.5d.8O||1h.2e.8O||0}E{t:t,l:l,w:w,h:h,iw:iw,ih:ih}},cy:u(e,7N){D el=k(e);D t=el.B(\'5K\')||\'\';D r=el.B(\'5z\')||\'\';D b=el.B(\'5k\')||\'\';D l=el.B(\'5j\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},aT:u(e,7N){D el=k(e);D t=el.B(\'5M\')||\'\';D r=el.B(\'5U\')||\'\';D b=el.B(\'5n\')||\'\';D l=el.B(\'4X\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},6U:u(e,7N){D el=k(e);D t=el.B(\'4S\')||\'\';D r=el.B(\'5O\')||\'\';D b=el.B(\'5Q\')||\'\';D l=el.B(\'5b\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)||0};P E{t:t,r:r,b:b,l:l}},4a:u(2k){D x=2k.hT||(2k.gM+(1h.5d.3c||1h.2e.3c))||0;D y=2k.ki||(2k.iQ+(1h.5d.3d||1h.2e.3d))||0;E{x:x,y:y}},cI:u(4R,cx){cx(4R);4R=4R.7c;7d(4R){k.1a.cI(4R,cx);4R=4R.hQ}},h7:u(4R){k.1a.cI(4R,u(el){24(D 1p in el){if(2g el[1p]===\'u\'){el[1p]=S}}})},hV:u(el,1O){D 5l=k.1a.6z();D b6=k.1a.2o(el);if(!1O||1O==\'49\')k(el).B({Q:5l.t+((18.3r(5l.h,5l.ih)-5l.t-b6.hb)/2)+\'U\'});if(!1O||1O==\'4j\')k(el).B({O:5l.l+((18.3r(5l.w,5l.iw)-5l.l-b6.1C)/2)+\'U\'})},hW:u(el,dk){D 1Q=k(\'1T[@2J*="8X"]\',el||1h),8X;1Q.1E(u(){8X=q.2J;q.2J=dk;q.14.5E="9n:9w.9y.hE(2J=\'"+8X+"\')"})}};[].3J||(7F.hF.3J=u(v,n){n=(n==S)?0:n;D m=q.1g;24(D i=n;i<m;i++)if(q[i]==v)E i;E-1});',62,1293,'||||||||||||||||||||jQuery||||||this||||function||||||dragCfg|css|elm|var|return|dragged|easing|speed|false|callback|get|ss|options|iAuto|left|else|top|iResize|null|parseInt|px|oldStyle|height|slideshow|position|width||iDrag|new||style||||Math|display|iUtil|true|helper|subject|case|autoCFG|length|document|dropCfg|iEL|resizeOptions|carouselCfg|duration|interfaceFX|none|attr|sizes|break|pointer|iSort|type|ImageBox|queue|iDrop|iAutoscroller|slide|resizeElement|oC|wb|apply|each|fisheyeCfg|opacity|delta|newSizes|bind|constructor|custom|pos|size|axis|absolute|images|items|append|img|slideslinks|255|firstNum|window|show|container||complete|div|extend|for||start||cont|elsToScroll|100|loader|oR||body|elem|typeof|selectedItem|oldP|props|event|accordionCfg|parseFloat|field|getSize|containment|ny|build|relative|iTooltip|islideshow|nx|tp|slideCaption|value|newPosition|Function|block|selectHelper|step|border|itemWidth|hide|dequeue|timer|src|hidden|right|limit|nr|fractions|0px|PI|addClass|direction|end|overflow|cursorAt|result|parentData|onShow|onChange|to|parentNode|||||||||browser|iSlider|scrollLeft|scrollTop|scr|transferHelper|text|href|onHide|pre|selectdrug|className|switch|visibility|item|wrapper|unbind|max|nextslide|values|currentslide|handle|getPosition|html|newCoords|prevslide|iframe|iExpander|accept|mousemove|canvas|createElement|margins|onSlide|zIndex|indexOf|pressedKey|min|valueToAdd|multipleSeparator|pageSize|zones|highlighted|toggle|abs|onStop|dragElem|times|fadeDuration|diff|dhs|handlers||resizeDirection||vp|so|distance|ghosting||test|vertically|getPointer|startTop|offsetWidth|subjectValue|lastSuggestion|DropOutDirectiont|title|wrs|removeClass|horizontally|startLeft|out|onDrag|oP|onStart|nWidth|percent|down|ifxFirstDisplay|msie|iteration|ratio|clear|color|lastValue|slideCfg|fontSize|currentPointer|dimm|bottom|replace|up|prevImage|tooltipCFG|rel|els|fxCheckTag|context|nextImage|params|shs|fieldData|elToScroll|nodeEl|borderTopWidth|chunks|destroy|string|nHeight|paddingLeft|tagName|currentStyle||halign|slidePos|onclick|delay||containerW|from|helperclass|endLeft|endTop|borderLeftWidth|dragmoveBy|documentElement|dhe|newStyles|clonedEl|click|si|marginLeft|marginBottom|clientScroll|OpenClose|paddingBottom|empty|toWrite|selectionStart|overzone|toAdd|onDragModifier|holder|mousedown|animate|toDrag|cnt|marginRight|linksPosition|blur|getAttribute|hight|filter|sw|zoney|cos|slideshows|zonex|marginTop|collected|paddingTop|url|borderRightWidth|mouseup|borderBottomWidth|activeLinkClass|dragHandle|clearInterval|paddingRight|sortCfg|offsetHeight|prop|oldVisibility|styles||BlindDirection|point|fxh|nmp|old|post|currentPanel|onSelect|elementData|grid|pow|toLowerCase|animationHandler|cur|containerH|close|puff|getWidth|currentRel|imageEl|Expander|getHeight|iFisheye|random|newDimensions|itemHeight|reflections|sliders|selRange|wr|orig|margin|maxWidth|keyup|getScroll|captionText|totalImages|128|parseColor|curCSS|outerContainer|Scale|restore|tolerance|selection|focus|caption|snapDistance|revert|current|3000|captionPosition|hpc|onload|class|getBorder|setInterval|oldStyleAttr|rule|rgb|open|minLeft|ActiveXObject|oldDisplay|restoreStyle|getSizeLite||nw|0x||F0|fadeOut|focused|firstChild|while|cssRules|fadeIn|Date|minTop|backgroundColor|sc|nbsp|hash|captionEl|selectKeyHelper|selectCurrent|newTop|init|newLeft|changed|Draggable|inFrontOf|efx|139|onHover|onOut|getTime|np|keydown|split|radiusY|increment|Array|getPositionLite|selectClass|opera|onHighlight|keyCode|charCode|Object|toInteger|frameClass|hasTabsEnabled|zonew|user|zoneh|positionItems|onClick|oD|scrollIntoView|accordionPos|proximity|indic||data|containerSize|sin|iTTabs||ts|ImageBoxPrevImage|ImageBoxNextImage|imageSrc|newPos|maxHeight|minHeight|elS|activeClass|panels|maxBottom|maxRight|ser|move|opened|bounceout|animationInProgress|overlay|stop|reflectionSize|fnc|classname|insideParent|offsetLeft|jEl|nRy|pr|serialize|nRx|tooltipHelper|cssSides|mouseout|select|count|namedColors|padding|offsetTop|directionIncrement|parentEl|400|dir|expand|createTextNode|finishedPre|clientHeight|li|applyOn|content|contBorders|object|parentBorders|alpha|clientWidth|png|gallery|fontWeight|link|yproc|xproc|sx|parent|showImage|selectedone|imgs|onselect|sy|startDrag|cursor|captionClass|onselectstop|getElementById|linksClass|sh|ul|onActivate|isDroppable|nextEl|onDrop|oldTitle|progid|prevslideClass|prevEl|oldPosition|SliderContainer|Image|linkRel|selectKeyUp|selectKeyDown|DXImageTransform|inCache|Microsoft|mouseover|dragstop|diffX|211|nextslideClass|prot|auto|dEs|hidehelper|isDraggable|activeclass|unit|DoFold|unfold|nodeName|startTime|buildWrapper|prev|1px|oldColor|setTimeout|ScrollTo|st|sl|cssText|9999|next|destroyWrapper|opt|diffHeight|diffWidth|exec|hoverclass|image|blind|borderColor|sideEnd|self|key||default|2000|styleSheets|getValues|192|diffY|lnk|reflexions|checkhover|selectcheck|maxRotation|ImageBoxOuterContainer|gradient|panelHeight|childs|headers|ne|hideImage|minWidth|iIndex|itemsText|os|side|iCarousel|5625|1000|itemMinWidth|linksSeparator|setSelectionRange|protectRotation|positionContainer|posx|hoverClass|valToAdd|minchars|helperClass|source|nextImageEl|preventDefault|multiple|headerSelector|DraggableDestroy|getPadding|autofill|handleEl|stopPropagation|prevImageEl|getFieldValues|panelSelector|String|createTextRange|floats|lastSi|shrink|oPad|windowSize|paddingLeftSize|angle|paddingY|paddingX|RegExp|borderRightSize|floatVal|firstStep|pulse|Pulsate|Color|rotationSpeed|paddingBottomSize|remove|parseStyle|getClient|Number|helperSize|bounce|doTab||zoom|borderLeftSize|oBor|paddingRightSize|borderTopSize|paddingTopSize|stopAnim|pValue|borderBottomSize|extraWidth|restricted|autoSize|unselectable|SliderIteration|prepend|clearTimeout|isSlider|oneIsSortable|applyOnHover|tooltipURL|tabindex|draginit|mouse|restoreStyles|sliderSize|sliderPos|parentPos|cancelBubble|autocomplete|inputWidth|oldBorder|dragmove|clnt|sliderEl|returnValue|loaderWidth|idsa|letterSpacing|pause|getContainment|fade|snapToGrid|linear|10000|slideshowHolder|asin|cssSidesEnd|borderWidth|fitToContainer|TEXTAREA|entities|INPUT|spacer|writeItems|character|currentValue|paddings|169|oldFloat|borders|hidefocused|bouncein||modifyContainer|transparent|center|loadImage|func|getMargins|initialPosition|textAlign|innerHeight|Alpha|no|captionImages|closeEl|shake|prevTop|traverseDOM|Selectserialize|stopDrag|slider|ImageBoxCaption|ImageBoxIframe|300|ImageBoxOverlay|sortable|moveDrag|autoplay|measure|prevLeft|intersect|ImageBoxCurrentImage|selectstop|Shake|index|dragEl|keyPressed|scrollHeight|scroll|innerWidth|match|elPosition|scrollWidth|textImage|slideBor|jpg|captionSize|textImageFrom|visible||loaderHeight|ImageBoxCaptionImages||hoverItem|clickItem|emptyGIF||notColor|slideshowCaption|Droppable|goprev|childNodes|autocompleteHelper|autocompleteIframe|slidePad|fit|165|clientSize|||fontFamily|colorCssProps|elType|onhover|cssProps|expanderHelper|boxModel|itransferTo|keypress|moveStart|offsetParent|Width|selectstart|fxe|selectionEnd|checkCache|fontStyle|update|DroppableDestroy|remeasure|fontStretch|fontVariant|onblur|slideshowLoader|htmlEntities|wordSpacing|createRange|224|KhtmlUserSelect||closeHTML|on|sortHelper|245|userSelect|dragHelper|hrefAttr|dragstart|107|loaderSRC|highlight|slideshowPrevslide||gonext||styleFloat|frameborder|javascript|||relAttr|wid|scrolling||onslide|||listStyle|imageTypes|insertBefore|999|textDecoration|sqrt|140|230|maxy|240|ImageBoxContainer|doScroll|interval|set|dragmoveByKey|protect|ImageBoxCaptionText|144|ImageBoxLoader|off|checkdrop|isSelectable|hlt|30px|selectedclass|tooltipTitle|imagebox|shc|overlayOpacity|selRange2|slideshowNextSlide|gif|getSelectionStart|360|iAccordion|getElementsByTagName|iBounce|after|SortableAddItem|onResize|150|itemZIndex|grow|getHeightMinMax|borderTopUnit|selectcheckApply|borderRightUnit|zindex|fontUnit|togglehor|time|se|parte|easeout|isSortable||SlideInUp|fold|SlideOutUp|rgba|addColorStop|yfrac|containerMaxx|interfaceColorFX|containerMaxy||leftUnit|mousex||radiusX|check|getContext|xfrac|addItem|topUnit|fracH|cloneNode|togglever|paddingLeftUnit|borderBottomUnit|finish|onDragStop|onout|posy|isFunction|oldOverflow|directions|vertical|fracW|fakeAccordionClass|parts|fadeTo|inputValue|xml|selectstopApply|slideshowLinks|onDragStart|BlindUp|paddingTopUnit|500|trim|maxx|borderLeftUnit|paddingRightUnit|filteredPosition|BlindDown|paddingBottomUnit|horizontal|valign|find|ImageBoxClose|onselectstart|mozUserSelect|ondragstart|scale|110|globalCompositeOperation|bmp||drawImage|ondrop|password|quot||save|starty|jpeg|||number|startx|finishOpacity|hover|recallDroppables|flipv|finishx|destination|khtml|moz|lt|amp|pW|clientX|Accordion|translate|captiontext|elasticin|slideshowLink|fix|elasticout|resize|elasticboth|bounceboth|984375|9375|Selectable|30002|list|625|30001|nodeValue|before|100000|purgeEvents|substr|duplicate|moveEnd|||substring|success|param|par|array|Fisheye|name|POST|ajax|easeboth|location|fromHandler|collapse|MozUserSelect||ResizableDestroy|rotationTimer|fillRect|fill|WebKit|fillStyle|createLinearGradient|Resizable|navigator|appVersion|lineHeigt|alt|AlphaImageLoader|prototype|SliderGetValues|DisableTabs|Carousel|load|easein|IMG|200|Slider|ToolTip|wh|nextSibling|Autocomplete|SliderSetValues|pageX|float|centerEl|fixPNG|isNaN|dotted|dashed|stopAll|Left|outlineColor|Top|Right|Bottom|solid|double|selectorText|rules|onchange|SlideToggleRight|SlideOutRight||borderStyle||TransferTo||groove|ridge|inset|outset|borderTopColor||borderRightColor|olive|navy|orange||pink|203|maroon||magenta|182|193|lightyellow|lime|purple|red|outlineOffset|outlineWidth|borderBottomColor|borderLeftColor|lineHeight|loading|silver|white|yellow|Showing|100000000|SlideInRight|clientY|Highlight|SortableDestroy|CloseVertically|CloseHorizontally|FoldToggle|UnFold|SlideInDown|SlideToggleUp|SortSerialize|Fold|SwitchHorizontally|SwitchVertically|Sortable|scrollTo|EnableTabs|ScrollToAnchors|pt|Puff|OpenVertically|OpenHorizontally|Grow|Shrink|DropToggleRight|DropInRight|BlindToggleHorizontally|BlindRight|http|Bounce|120|BlindLeft|BlindToggleVertically|SlideToggleLeft|SlideOutLeft|toUpperCase|SlideInLeft|SlideToggleDown|SlideOutDown|DropOutLeft|DropInLeft|DropToggleLeft|DropOutRight|DropToggleUp|DropInUp|DropOutDown|DropInDown|DropToggleDown|DropOutUp|lightpink|textIndent|aqua|appendChild|azure|beige|220|last|cssFloat|first|ol|wrapEl|fxWrapper|black|imageLoaded|darkkhaki|darkgreen|189|183|darkmagenta|firstResize|darkgrey|brown|cyan|darkblue|darkcyan|table|form|col|tfoot|colgroup|th|header|thead|tbody|112|Autoexpand|tr|td|script|frame|input|pageY|textarea|button|w_|removeChild|frameset|option|optgroup|meta|darkolivegreen|blue|122|233|green|lightcyan|204|darkviolet|lightgreen|indigo|216|khaki|darksalmon|130|darkred|lightblue|148|173|215|238|fuchsia|gold|darkorchid|153|darkorange|lightgrey'.split('|'),0,{}))
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/javascript-public.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/javascript-public.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/javascript-public.js	(revision 80)
@@ -0,0 +1,11 @@
+function popup_page(gabarit, largeur, hauteur){
+  var top=(screen.height /2)-(hauteur /2);
+  var left=(screen.width /2)-(largeur /2);
+  var params = "top="+ top + ",left=" + left + ",width=" + largeur + ",height=" + hauteur + ",scrollbars=yes,resizable=yes";
+fenetre = window.open(gabarit,'',params);
+}
+
+function montrele(leid) {
+$(leid).slideToggle();
+}
+
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jd.gallery.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jd.gallery.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jd.gallery.js	(revision 80)
@@ -0,0 +1,436 @@
+/*
+    This file is part of JonDesign's SmoothGallery v1.0.1.
+
+    JonDesign's SmoothGallery is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    JonDesign's SmoothGallery is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with JonDesign's SmoothGallery; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)
+    Contributed code by:
+    - Christian Ehret (bugfix)
+	- Nitrix (bugfix)
+	- Valerio from Mad4Milk for his great help with the carousel scrolling and many other things.
+	- Archie Cowan for helping me find a bugfix on carousel inner width problem.
+	Many thanks to:
+	- The mootools team for the great mootools lib, and it's help and support throughout the project.
+*/
+
+
+var $removeEvents = function (object, type)
+{
+	if (!object.events) return object;
+	if (type){
+		if (!object.events[type]) return object;
+		for (var fn in object.events[type]) object.removeEvent(type, fn);
+		object.events[type] = null;
+	} else {
+		for (var evType in object.events) object.removeEvents(evType);
+		object.events = null;
+	}
+	return object;
+};
+		
+		
+// declaring the class
+var gallery = new Class({
+	initialize: function(element, options) {
+		this.setOptions({
+			showArrows: true,
+			showCarousel: true,
+			showInfopane: true,
+			thumbHeight: 75,
+			thumbWidth: 100,
+			thumbSpacing: 10,
+			embedLinks: true,
+			fadeDuration: 500,
+			timed: false,
+			delay: 9000,
+			preloader: true,
+			manualData: [],
+			populateData: true,
+			elementSelector: "div.imageElement",
+			titleSelector: "h3",
+			subtitleSelector: "p",
+			linkSelector: "a.open",
+			imageSelector: "img.full",
+			thumbnailSelector: "img.thumbnail",
+			slideInfoZoneOpacity: 0.7,
+			carouselMinimizedOpacity: 0.4,
+			carouselMinimizedHeight: 20,
+			carouselMaximizedOpacity: 0.7, 
+			destroyAfterPopulate: true,
+			baseClass: 'jdGallery',
+			withArrowsClass: 'withArrows',
+			textShowCarousel: 'Pictures',
+			useThumbGenerator: false,
+			thumbGenerator: 'resizer.php'
+		}, options);
+		this.fireEvent('onInit');
+		this.currentIter = 0;
+		this.lastIter = 0;
+		this.maxIter = 0;
+		this.galleryElement = element;
+		this.galleryData = this.options.manualData;
+		this.galleryInit = 1;
+		this.galleryElements = Array();
+		this.thumbnailElements = Array();
+		this.galleryElement.addClass(this.options.baseClass);
+		if (this.options.populateData)
+			this.populateData();
+		element.style.display="block";
+		
+		if (this.options.embedLinks)
+		{
+			this.currentLink = new Element('a').addClass('open').setProperties({
+				href: '#',
+				title: ''
+			}).injectInside(element);
+			if ((!this.options.showArrows) && (!this.options.showCarousel))
+				this.galleryElement = element = this.currentLink;
+			else
+				this.currentLink.setStyle('display', 'none');
+		}
+		
+		this.constructElements();
+		if ((data.length>1)&&(this.options.showArrows))
+		{
+			var leftArrow = new Element('a').addClass('left').addEvent(
+				'click',
+				this.prevItem.bind(this)
+			).injectInside(element);
+			var rightArrow = new Element('a').addClass('right').addEvent(
+				'click',
+				this.nextItem.bind(this)
+			).injectInside(element);
+			this.galleryElement.addClass(this.options.withArrowsClass);
+		}
+		this.loadingElement = new Element('div').addClass('loadingElement').injectInside(element);
+		if (this.options.showInfopane) this.initInfoSlideshow();
+		if (this.options.showCarousel) this.initCarousel();
+		this.doSlideShow(1);
+	},
+	populateData: function() {
+		currentArrayPlace = this.galleryData.length;
+		options = this.options;
+		data = this.galleryData;
+		this.galleryElement.getElements(options.elementSelector).each(function(el) {
+			elementDict = {
+				image: el.getElement(options.imageSelector).getProperty('src'),
+				number: currentArrayPlace
+			};
+			if ((options.showInfopane) | (options.showCarousel))
+				Object.extend(elementDict, {
+					title: el.getElement(options.titleSelector).innerHTML,
+					description: el.getElement(options.subtitleSelector).innerHTML
+				});
+			if (options.embedLinks)
+				Object.extend(elementDict, {
+					link: el.getElement(options.linkSelector).href||false,
+					linkTitle: el.getElement(options.linkSelector).title||false
+				});
+			if ((!options.useThumbGenerator) && (options.showCarousel))
+				Object.extend(elementDict, {
+					thumbnail: el.getElement(options.thumbnailSelector).src
+				});
+			else if (options.useThumbGenerator)
+				Object.extend(elementDict, {
+					thumbnail: 'resizer.php?imgfile=' + elementDict.image + '&max_width=' + options.thumbWidth + '&max_height=' + options.thumbHeight
+				});
+			
+			data[currentArrayPlace] = elementDict;
+			currentArrayPlace++;
+			if (this.options.destroyAfterPopulate)
+				el.remove();
+		});
+		this.galleryData = data;
+		this.fireEvent('onPopulated');
+	},
+	constructElements: function() {
+		el = this.galleryElement;
+		this.maxIter = this.galleryData.length;
+		var currentImg;
+		for(i=0;i<this.galleryData.length;i++)
+		{
+			var currentImg = new Fx.Style(
+				new Element('div').addClass('slideElement').setStyles({
+					'position':'absolute',
+					'left':'0px',
+					'right':'0px',
+					'margin':'0px',
+					'padding':'0px',
+					'backgroundImage':"url('" + this.galleryData[i].image + "')",
+					'backgroundPosition':"center center",
+					'opacity':'0'
+				}).injectInside(el),
+				'opacity',
+				{duration: this.options.fadeDuration}
+			);
+			this.galleryElements[parseInt(i)] = currentImg;
+		}
+	},
+	destroySlideShow: function(element) {
+		var myClassName = element.className;
+		var newElement = new Element('div').addClass('myClassName');
+		element.parentNode.replaceChild(newElement, element);
+	},
+	startSlideShow: function() {
+		this.fireEvent('onStart');
+		this.loadingElement.style.display = "none";
+		this.lastIter = this.maxIter - 1;
+		this.currentIter = 0;
+		this.galleryInit = 0;
+		this.galleryElements[parseInt(this.currentIter)].set(1);
+		if (this.options.showInfopane)
+			this.showInfoSlideShow.delay(1000, this);
+		this.prepareTimer();
+		if (this.options.embedLinks)
+			this.makeLink(this.currentIter);
+	},
+	nextItem: function() {
+		this.fireEvent('onNextCalled');
+		this.nextIter = this.currentIter+1;
+		if (this.nextIter >= this.maxIter)
+			this.nextIter = 0;
+		this.galleryInit = 0;
+		this.goTo(this.nextIter);
+	},
+	prevItem: function() {
+		this.fireEvent('onPreviousCalled');
+		this.nextIter = this.currentIter-1;
+		if (this.nextIter <= -1)
+			this.nextIter = this.maxIter - 1;
+		this.galleryInit = 0;
+		this.goTo(this.nextIter);
+	},
+	goTo: function(num) {
+		this.clearTimer();
+		if (this.options.embedLinks)
+			this.clearLink();
+		if (this.options.showInfopane)
+		{
+			this.slideInfoZone.clearChain();
+			this.hideInfoSlideShow().chain(this.changeItem.pass(num, this));
+		} else
+			this.changeItem.delay(500, this, num);
+		if (this.options.embedLinks)
+			this.makeLink(num);
+		this.prepareTimer();
+		/*if (this.options.showCarousel)
+			this.clearThumbnailsHighlights();*/
+	},
+	changeItem: function(num) {
+		this.fireEvent('onStartChanging');
+		this.galleryInit = 0;
+		if (this.currentIter != num)
+		{
+			for(i=0;i<this.maxIter;i++)
+			{
+				if ((i != this.currentIter)) this.galleryElements[i].set(0);
+			}
+			if (num > this.currentIter) this.galleryElements[num].custom(1);
+			else
+			{
+				this.galleryElements[num].set(1);
+				this.galleryElements[this.currentIter].custom(0);
+			}
+			this.currentIter = num;
+		}
+		this.doSlideShow.bind(this)();
+		this.fireEvent('onChanged');
+	},
+	clearTimer: function() {
+		if (this.options.timed)
+			$clear(this.timer);
+	},
+	prepareTimer: function() {
+		if (this.options.timed)
+			this.timer = this.nextItem.delay(this.options.delay, this);
+	},
+	doSlideShow: function(position) {
+		if (this.galleryInit == 1)
+		{
+			imgPreloader = new Image();
+			imgPreloader.onload=function(){
+				this.startSlideShow.delay(10, this);
+			}.bind(this);
+			imgPreloader.src = this.galleryData[0].image;
+		} else {
+			if (this.options.showInfopane)
+			{
+				if (this.options.showInfopane)
+				{
+					this.showInfoSlideShow.delay((500 + this.options.fadeDuration), this);
+				} else
+					if (this.options.showCarousel)
+						this.centerCarouselOn(position);
+			}
+		}
+	},
+	initCarousel: function () {
+		var carouselContainerElement = new Element('div').addClass('carouselContainer').injectInside(this.galleryElement);
+		this.carouselContainer = new Fx.Styles(carouselContainerElement, {transition: Fx.Transitions.expoOut});
+		this.carouselContainer.normalHeight = carouselContainerElement.offsetHeight;
+		this.carouselContainer.set({'opacity': this.options.carouselMinimizedOpacity, 'top': (this.options.carouselMinimizedHeight - this.carouselContainer.normalHeight)});
+		
+		this.carouselBtn = new Element('a').addClass('carouselBtn').setProperties({
+			title: this.options.textShowCarousel
+		}).setHTML(this.options.textShowCarousel).injectInside(carouselContainerElement);
+		
+		this.carouselBtn.addEvent(
+			'click',
+			function () {
+				this.carouselContainer.clearTimer();
+				this.toggleCarousel();
+			}.bind(this)
+		);
+		this.carouselActive = false;
+
+		var carouselElement = new Element('div').addClass('carousel').injectInside(carouselContainerElement);
+		this.carousel = new Fx.Styles(carouselElement);
+		
+		this.carouselLabel = new Element('p').addClass('label').injectInside(this.carousel.element);
+		this.carouselWrapper = new Element('div').addClass('carouselWrapper').injectInside(this.carousel.element);
+		this.carouselInner = new Element('div').addClass('carouselInner').injectInside(this.carouselWrapper);
+
+		this.carouselWrapper.scroller = new Scroller(this.carouselWrapper, {
+			area: 100,
+			velocity: 0.2
+		})
+		
+		this.carouselWrapper.elementScroller = new Fx.Scroll(this.carouselWrapper, {
+			duration: 400,
+			onStart: this.carouselWrapper.scroller.stop.bind(this.carouselWrapper.scroller),
+			onComplete: this.carouselWrapper.scroller.start.bind(this.carouselWrapper.scroller)
+		});
+
+		this.constructThumbnails();
+
+		this.carouselInner.style.width = ((this.maxIter * (this.options.thumbWidth + this.options.thumbSpacing)) - this.options.thumbSpacing + this.options.thumbWidth) + "px";
+	},
+	toggleCarousel: function() {
+		if (this.carouselActive)
+			this.hideCarousel();
+		else
+			this.showCarousel();
+	},
+	showCarousel: function () {
+		this.fireEvent('onShowCarousel');
+		this.carouselContainer.custom({
+			'opacity': this.options.carouselMaximizedOpacity,
+			'top': 0
+		}).addEvent('onComplete', function() { this.carouselActive = true; this.carouselWrapper.scroller.start(); }.bind(this));
+	},
+	hideCarousel: function () {
+		this.fireEvent('onHideCarousel');
+		this.carouselContainer.custom({
+			'opacity': this.options.carouselMinimizedOpacity,
+			'top': (this.options.carouselMinimizedHeight - this.carouselContainer.normalHeight)
+		}).addEvent('onComplete', function() { this.carouselActive = false; this.carouselWrapper.scroller.stop(); }.bind(this));
+	},
+	constructThumbnails: function () {
+		element = this.carouselInner;
+		for(i=0;i<this.galleryData.length;i++)
+		{
+			var currentImg = new Fx.Style(new Element ('div').addClass("thumbnail").setStyles({
+					backgroundImage: "url('" + this.galleryData[i].thumbnail + "')",
+					backgroundPosition: "center center",
+					backgroundRepeat: 'no-repeat',
+					marginLeft: this.options.thumbSpacing + "px",
+					width: this.options.thumbWidth + "px",
+					height: this.options.thumbHeight + "px"
+				}).injectInside(element), "opacity", {duration: 200}).set(0.2);
+			currentImg.element.addEvents({
+				'mouseover': function (myself) {
+					myself.clearTimer();
+					myself.custom(0.99);
+					$(this.carouselLabel).setHTML('<span class="number">' + (myself.relatedImage.number + 1) + "/" + this.maxIter + ":</span> " + myself.relatedImage.title);
+				}.pass(currentImg, this),
+				'mouseout': function (myself) {
+					myself.clearTimer();
+					myself.custom(0.2);
+				}.pass(currentImg, this),
+				'click': function (myself) {
+					this.goTo(myself.relatedImage.number);
+				}.pass(currentImg, this)
+			});
+			
+			currentImg.relatedImage = this.galleryData[i];
+			this.thumbnailElements[parseInt(i)] = currentImg;
+		}
+	},
+	clearThumbnailsHighlights: function()
+	{
+		for(i=0;i<this.galleryData.length;i++)
+		{
+			this.thumbnailElements[i].clearTimer();
+			this.thumbnailElements[i].custom(0.2);
+		}
+	},
+	centerCarouselOn: function(num) {
+		var carouselElement = this.thumbnailElements[num];
+		var position = carouselElement.element.offsetLeft + (carouselElement.element.offsetWidth / 2);
+		var carouselWidth = this.carouselWrapper.offsetWidth;
+		var carouselInnerWidth = this.carouselInner.offsetWidth;
+		var diffWidth = carouselWidth / 2;
+		var scrollPos = position-diffWidth;
+		this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
+	},
+	initInfoSlideshow: function() {
+		/*if (this.slideInfoZone.element)
+			this.slideInfoZone.element.remove();*/
+		this.slideInfoZone = new Fx.Styles(new Element('div').addClass('slideInfoZone').injectInside($(this.galleryElement))).set({'opacity':0});
+		var slideInfoZoneTitle = new Element('h2').injectInside(this.slideInfoZone.element);
+		var slideInfoZoneDescription = new Element('p').injectInside(this.slideInfoZone.element);
+		this.slideInfoZone.normalHeight = this.slideInfoZone.element.offsetHeight;
+		this.slideInfoZone.element.setStyle('opacity',0);
+	},
+	changeInfoSlideShow: function()
+	{
+		this.hideInfoSlideShow.delay(10, this);
+		this.showInfoSlideShow.delay(500, this);
+	},
+	showInfoSlideShow: function() {
+		this.fireEvent('onShowInfopane');
+		this.slideInfoZone.clearTimer();
+		element = this.slideInfoZone.element;
+		element.getElement('h2').setHTML(this.galleryData[this.currentIter].title);
+		element.getElement('p').setHTML(this.galleryData[this.currentIter].description);
+		this.slideInfoZone.custom({'opacity': [0, this.options.slideInfoZoneOpacity], 'height': [0, this.slideInfoZone.normalHeight]});
+		if (this.options.showCarousel)
+			this.slideInfoZone.chain(this.centerCarouselOn.pass(this.currentIter, this));
+		return this.slideInfoZone;
+	},
+	hideInfoSlideShow: function() {
+		this.fireEvent('onHideInfopane');
+		this.slideInfoZone.clearTimer();
+		this.slideInfoZone.custom({'opacity': 0, 'height': 0});
+		return this.slideInfoZone;
+	},
+	makeLink: function(num) {
+		this.currentLink.setProperties({
+			href: this.galleryData[num].link,
+			title: this.galleryData[num].linkTitle
+		})
+		if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
+			this.currentLink.setStyle('display', 'block');
+	},
+	clearLink: function() {
+		this.currentLink.setProperties({href: '', title: ''});
+		if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
+			this.currentLink.setStyle('display', 'none');
+	}
+});
+gallery.implement(new Events);
+gallery.implement(new Options);
+
+/* All code copyright 2006 Jonathan Schemoul */
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.1.1.3.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.1.1.3.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.1.1.3.js	(revision 80)
@@ -0,0 +1,11 @@
+/*
+ * jQuery 1.1.3.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2007-07-05 00:43:24 -0400 (Thu, 05 Jul 2007) $
+ * $Rev: 2243 $
+ */
+eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('7(1g 18.6=="I"){18.I=18.I;u 6=q(a,c){7(18==9||!9.3X)v 14 6(a,c);v 9.3X(a,c)};7(1g $!="I")6.1I$=$;u $=6;6.11=6.8r={3X:q(a,c){a=a||P;7(6.16(a))v 14 6(P)[6.11.1G?"1G":"1W"](a);7(1g a=="1s"){u m=/^[^<]*(<(.|\\s)+>)[^>]*$/.1V(a);7(m)a=6.31([m[1]]);B v 14 6(c).1L(a)}v 9.4E(a.15==2b&&a||(a.3C||a.C&&a!=18&&!a.1q&&a[0]!=I&&a[0].1q)&&6.2L(a)||[a])},3C:"1.1.3.1",7W:q(){v 9.C},C:0,1M:q(a){v a==I?6.2L(9):9[a]},1Z:q(a){u b=6(a);b.5q=9;v b},4E:q(a){9.C=0;[].R.O(9,a);v 9},F:q(a,b){v 6.F(9,a,b)},2p:q(a){u b=-1;9.F(q(i){7(9==a)b=i});v b},1b:q(f,d,e){u c=f;7(f.15==33)7(d==I)v 9.C&&6[e||"1b"](9[0],f)||I;B{c={};c[f]=d}v 9.F(q(a){E(u b V c)6.1b(e?9.T:9,b,6.4H(9,c[b],e,a,b))})},1f:q(b,a){v 9.1b(b,a,"2z")},2A:q(e){7(1g e=="1s")v 9.2Y().3e(P.66(e));u t="";6.F(e||9,q(){6.F(9.2S,q(){7(9.1q!=8)t+=9.1q!=1?9.5R:6.11.2A([9])})});v t},8b:q(){u a,1S=19;v 9.F(q(){7(!a)a=6.31(1S,9.2O);u b=a[0].3s(K);9.L.2K(b,9);1v(b.1d)b=b.1d;b.4g(9)})},3e:q(){v 9.2F(19,K,1,q(a){9.4g(a)})},5w:q(){v 9.2F(19,K,-1,q(a){9.2K(a,9.1d)})},5t:q(){v 9.2F(19,N,1,q(a){9.L.2K(a,9)})},5s:q(){v 9.2F(19,N,-1,q(a){9.L.2K(a,9.1X)})},2U:q(){v 9.5q||6([])},1L:q(t){u b=6.3k(9,q(a){v 6.1L(t,a)});v 9.1Z(/[^+>] [^+>]/.17(t)||t.J("..")>-1?6.5g(b):b)},7x:q(e){u d=9.1A(9.1L("*"));d.F(q(){9.1I$1a={};E(u a V 9.$1a)9.1I$1a[a]=6.1c({},9.$1a[a])}).3U();u r=9.1Z(6.3k(9,q(a){v a.3s(e!=I?e:K)}));d.F(q(){u b=9.1I$1a;E(u a V b)E(u c V b[a])6.S.1A(9,a,b[a][c],b[a][c].W);9.1I$1a=H});v r},1i:q(t){v 9.1Z(6.16(t)&&6.2s(9,q(b,a){v t.O(b,[a])})||6.2x(t,9))},4Y:q(t){v 9.1Z(t.15==33&&6.2x(t,9,K)||6.2s(9,q(a){v(t.15==2b||t.3C)?6.2w(a,t)<0:a!=t}))},1A:q(t){v 9.1Z(6.1T(9.1M(),t.15==33?6(t).1M():t.C!=I&&(!t.Q||t.Q=="6Z")?t:[t]))},37:q(a){v a?6.2x(a,9).C>0:N},6R:q(a){v a==I?(9.C?9[0].2v:H):9.1b("2v",a)},3F:q(a){v a==I?(9.C?9[0].27:H):9.2Y().3e(a)},2F:q(f,d,g,e){u c=9.C>1,a;v 9.F(q(){7(!a){a=6.31(f,9.2O);7(g<0)a.6E()}u b=9;7(d&&6.Q(9,"1r")&&6.Q(a[0],"2V"))b=9.3R("1z")[0]||9.4g(P.5h("1z"));6.F(a,q(){e.O(b,[c?9.3s(K):9])})})}};6.1c=6.11.1c=q(){u c=19[0],a=1;7(19.C==1){c=9;a=0}u b;1v((b=19[a++])!=H)E(u i V b)c[i]=b[i];v c};6.1c({6n:q(){7(6.1I$)$=6.1I$;v 6},16:q(a){v!!a&&1g a!="1s"&&!a.Q&&a.15!=2b&&/q/i.17(a+"")},40:q(a){v a.4z&&a.2O&&!a.2O.4y},Q:q(b,a){v b.Q&&b.Q.1D()==a.1D()},F:q(a,b,c){7(a.C==I)E(u i V a)b.O(a[i],c||[i,a[i]]);B E(u i=0,4x=a.C;i<4x;i++)7(b.O(a[i],c||[i,a[i]])===N)1F;v a},4H:q(c,b,d,e,a){7(6.16(b))b=b.3D(c,[e]);u f=/z-?2p|5Y-?8p|1e|5U|8i-?1u/i;v b&&b.15==3y&&d=="2z"&&!f.17(a)?b+"4o":b},12:{1A:q(b,c){6.F(c.2R(/\\s+/),q(i,a){7(!6.12.3w(b.12,a))b.12+=(b.12?" ":"")+a})},1E:q(b,c){b.12=c!=I?6.2s(b.12.2R(/\\s+/),q(a){v!6.12.3w(c,a)}).5M(" "):""},3w:q(t,c){v 6.2w(c,(t.12||t).3v().2R(/\\s+/))>-1}},4m:q(e,o,f){E(u i V o){e.T["2N"+i]=e.T[i];e.T[i]=o[i]}f.O(e,[]);E(u i V o)e.T[i]=e.T["2N"+i]},1f:q(e,p){7(p=="1u"||p=="29"){u b={},3r,3p,d=["83","81","80","7Y"];6.F(d,q(){b["7V"+9]=0;b["7T"+9+"7S"]=0});6.4m(e,b,q(){7(6(e).37(\':4f\')){3r=e.7Q;3p=e.7O}B{e=6(e.3s(K)).1L(":4b").5v("2B").2U().1f({48:"1y",3i:"7L",U:"2h",7K:"0",7I:"0"}).5o(e.L)[0];u a=6.1f(e.L,"3i")||"3n";7(a=="3n")e.L.T.3i="7G";3r=e.7E;3p=e.7D;7(a=="3n")e.L.T.3i="3n";e.L.3q(e)}});v p=="1u"?3r:3p}v 6.2z(e,p)},2z:q(e,a,d){u g;7(a=="1e"&&6.M.1h){g=6.1b(e.T,"1e");v g==""?"1":g}7(a.3t(/3x/i))a=6.1U;7(!d&&e.T[a])g=e.T[a];B 7(P.3f&&P.3f.3Y){7(a.3t(/3x/i))a="3x";a=a.1o(/([A-Z])/g,"-$1").2H();u b=P.3f.3Y(e,H);7(b)g=b.57(a);B 7(a=="U")g="1P";B 6.4m(e,{U:"2h"},q(){u c=P.3f.3Y(9,"");g=c&&c.57(a)||""})}B 7(e.3S){u f=a.1o(/\\-(\\w)/g,q(m,c){v c.1D()});g=e.3S[a]||e.3S[f]}v g},31:q(a,c){u r=[];c=c||P;6.F(a,q(i,b){7(!b)v;7(b.15==3y)b=b.3v();7(1g b=="1s"){u s=6.2C(b).2H(),1x=c.5h("1x"),1N=[];u a=!s.J("<1H")&&[1,"<2y>","</2y>"]||!s.J("<7g")&&[1,"<52>","</52>"]||(!s.J("<7c")||!s.J("<1z")||!s.J("<7a")||!s.J("<78"))&&[1,"<1r>","</1r>"]||!s.J("<2V")&&[2,"<1r><1z>","</1z></1r>"]||(!s.J("<75")||!s.J("<74"))&&[3,"<1r><1z><2V>","</2V></1z></1r>"]||!s.J("<73")&&[2,"<1r><4W>","</4W></1r>"]||[0,"",""];1x.27=a[1]+b+a[2];1v(a[0]--)1x=1x.1d;7(6.M.1h){7(!s.J("<1r")&&s.J("<1z")<0)1N=1x.1d&&1x.1d.2S;B 7(a[1]=="<1r>"&&s.J("<1z")<0)1N=1x.2S;E(u n=1N.C-1;n>=0;--n)7(6.Q(1N[n],"1z")&&!1N[n].2S.C)1N[n].L.3q(1N[n])}b=6.2L(1x.2S)}7(0===b.C&&(!6.Q(b,"34")&&!6.Q(b,"2y")))v;7(b[0]==I||6.Q(b,"34")||b.71)r.R(b);B r=6.1T(r,b)});v r},1b:q(c,d,a){u e=6.40(c)?{}:6.3H;7(e[d]){7(a!=I)c[e[d]]=a;v c[e[d]]}B 7(a==I&&6.M.1h&&6.Q(c,"34")&&(d=="70"||d=="6Y"))v c.6W(d).5R;B 7(c.4z){7(a!=I)c.6U(d,a);7(6.M.1h&&/4M|2u/.17(d)&&!6.40(c))v c.35(d,2);v c.35(d)}B{7(d=="1e"&&6.M.1h){7(a!=I){c.5U=1;c.1i=(c.1i||"").1o(/4L\\([^)]*\\)/,"")+(39(a).3v()=="6M"?"":"4L(1e="+a*4X+")")}v c.1i?(39(c.1i.3t(/1e=([^)]*)/)[1])/4X).3v():""}d=d.1o(/-([a-z])/6K,q(z,b){v b.1D()});7(a!=I)c[d]=a;v c[d]}},2C:q(t){v t.1o(/^\\s+|\\s+$/g,"")},2L:q(a){u r=[];7(1g a!="6I")E(u i=0,26=a.C;i<26;i++)r.R(a[i]);B r=a.51(0);v r},2w:q(b,a){E(u i=0,26=a.C;i<26;i++)7(a[i]==b)v i;v-1},1T:q(a,b){E(u i=0;b[i];i++)a.R(b[i]);v a},5g:q(a){u r=[],3P=6.1k++;E(u i=0,4G=a.C;i<4G;i++)7(3P!=a[i].1k){a[i].1k=3P;r.R(a[i])}v r},1k:0,2s:q(c,b,d){7(1g b=="1s")b=14 45("a","i","v "+b);u a=[];E(u i=0,30=c.C;i<30;i++)7(!d&&b(c[i],i)||d&&!b(c[i],i))a.R(c[i]);v a},3k:q(c,b){7(1g b=="1s")b=14 45("a","v "+b);u d=[];E(u i=0,30=c.C;i<30;i++){u a=b(c[i],i);7(a!==H&&a!=I){7(a.15!=2b)a=[a];d=d.6v(a)}}v d}});14 q(){u b=6u.6t.2H();6.M={4D:(b.3t(/.+(?:6s|6q|6o|6m)[\\/: ]([\\d.]+)/)||[])[1],20:/5l/.17(b),2a:/2a/.17(b),1h:/1h/.17(b)&&!/2a/.17(b),3j:/3j/.17(b)&&!/(6h|5l)/.17(b)};6.6g=!6.M.1h||P.6f=="6c";6.1U=6.M.1h?"1U":"5x",6.3H={"E":"68","67":"12","3x":6.1U,5x:6.1U,1U:6.1U,27:"27",12:"12",2v:"2v",2r:"2r",2B:"2B",65:"63",2T:"2T",62:"5Z"}};6.F({4v:"a.L",4p:"6.4p(a)",8o:"6.22(a,2,\'1X\')",8n:"6.22(a,2,\'4t\')",8k:"6.4q(a.L.1d,a)",8h:"6.4q(a.1d)"},q(i,n){6.11[i]=q(a){u b=6.3k(9,n);7(a&&1g a=="1s")b=6.2x(a,b);v 9.1Z(b)}});6.F({5o:"3e",8g:"5w",2K:"5t",8f:"5s"},q(i,n){6.11[i]=q(){u a=19;v 9.F(q(){E(u j=0,26=a.C;j<26;j++)6(a[j])[n](9)})}});6.F({5v:q(a){6.1b(9,a,"");9.8d(a)},8c:q(c){6.12.1A(9,c)},88:q(c){6.12.1E(9,c)},87:q(c){6.12[6.12.3w(9,c)?"1E":"1A"](9,c)},1E:q(a){7(!a||6.1i(a,[9]).r.C)9.L.3q(9)},2Y:q(){1v(9.1d)9.3q(9.1d)}},q(i,n){6.11[i]=q(){v 9.F(n,19)}});6.F(["5Q","5P","5O","5N"],q(i,n){6.11[n]=q(a,b){v 9.1i(":"+n+"("+a+")",b)}});6.F(["1u","29"],q(i,n){6.11[n]=q(h){v h==I?(9.C?6.1f(9[0],n):H):9.1f(n,h.15==33?h:h+"4o")}});6.1c({4n:{"":"m[2]==\'*\'||6.Q(a,m[2])","#":"a.35(\'2m\')==m[2]",":":{5P:"i<m[3]-0",5O:"i>m[3]-0",22:"m[3]-0==i",5Q:"m[3]-0==i",2Q:"i==0",2P:"i==r.C-1",5L:"i%2==0",5K:"i%2","2Q-3u":"a.L.3R(\'*\')[0]==a","2P-3u":"6.22(a.L.5J,1,\'4t\')==a","86-3u":"!6.22(a.L.5J,2,\'4t\')",4v:"a.1d",2Y:"!a.1d",5N:"(a.5H||a.85||\'\').J(m[3])>=0",4f:\'"1y"!=a.G&&6.1f(a,"U")!="1P"&&6.1f(a,"48")!="1y"\',1y:\'"1y"==a.G||6.1f(a,"U")=="1P"||6.1f(a,"48")=="1y"\',84:"!a.2r",2r:"a.2r",2B:"a.2B",2T:"a.2T||6.1b(a,\'2T\')",2A:"\'2A\'==a.G",4b:"\'4b\'==a.G",5F:"\'5F\'==a.G",4l:"\'4l\'==a.G",5E:"\'5E\'==a.G",4k:"\'4k\'==a.G",5D:"\'5D\'==a.G",5C:"\'5C\'==a.G",1J:\'"1J"==a.G||6.Q(a,"1J")\',5B:"/5B|2y|82|1J/i.17(a.Q)"},"[":"6.1L(m[2],a).C"},5A:[/^\\[ *(@)([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,14 3o("^([:.#]*)("+(6.2J=6.M.20&&6.M.4D<"3.0.0"?"\\\\w":"(?:[\\\\w\\7Z-\\7X*1I-]|\\\\\\\\.)")+"+)")],2x:q(a,c,b){u d,1K=[];1v(a&&a!=d){d=a;u f=6.1i(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1K=b?c=f.r:6.1T(1K,f.r)}v 1K},1L:q(t,l){7(1g t!="1s")v[t];7(l&&!l.1q)l=H;l=l||P;7(!t.J("//")){l=l.4h;t=t.2G(2,t.C)}B 7(!t.J("/")&&!l.2O){l=l.4h;t=t.2G(1,t.C);7(t.J("/")>=1)t=t.2G(t.J("/"),t.C)}u b=[l],2j=[],2P;1v(t&&2P!=t){u r=[];2P=t;t=6.2C(t).1o(/^\\/\\//,"");u k=N;u g=14 3o("^[/>]\\\\s*("+6.2J+"+)");u m=g.1V(t);7(m){u o=m[1].1D();E(u i=0;b[i];i++)E(u c=b[i].1d;c;c=c.1X)7(c.1q==1&&(o=="*"||c.Q.1D()==o.1D()))r.R(c);b=r;t=t.1o(g,"");7(t.J(" ")==0)7R;k=K}B{g=/^((\\/?\\.\\.)|([>\\/+~]))\\s*([a-z]*)/i;7((m=g.1V(t))!=H){r=[];u o=m[4],1k=6.1k++;m=m[1];E(u j=0,2e=b.C;j<2e;j++)7(m.J("..")<0){u n=m=="~"||m=="+"?b[j].1X:b[j].1d;E(;n;n=n.1X)7(n.1q==1){7(m=="~"&&n.1k==1k)1F;7(!o||n.Q.1D()==o.1D()){7(m=="~")n.1k=1k;r.R(n)}7(m=="+")1F}}B r.R(b[j].L);b=r;t=6.2C(t.1o(g,""));k=K}}7(t&&!k){7(!t.J(",")){7(l==b[0])b.4e();2j=6.1T(2j,b);r=b=[l];t=" "+t.2G(1,t.C)}B{u h=14 3o("^("+6.2J+"+)(#)("+6.2J+"+)");u m=h.1V(t);7(m){m=[0,m[2],m[3],m[1]]}B{h=14 3o("^([#.]?)("+6.2J+"*)");m=h.1V(t)}m[2]=m[2].1o(/\\\\/g,"");u f=b[b.C-1];7(m[1]=="#"&&f&&f.4d){u p=f.4d(m[2]);7((6.M.1h||6.M.2a)&&p&&1g p.2m=="1s"&&p.2m!=m[2])p=6(\'[@2m="\'+m[2]+\'"]\',f)[0];b=r=p&&(!m[3]||6.Q(p,m[3]))?[p]:[]}B{E(u i=0;b[i];i++){u a=m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&b[i].Q.2H()=="7P")a="2E";r=6.1T(r,b[i].3R(a))}7(m[1]==".")r=6.4c(r,m[2]);7(m[1]=="#"){u e=[];E(u i=0;r[i];i++)7(r[i].35("2m")==m[2]){e=[r[i]];1F}r=e}b=r}t=t.1o(h,"")}}7(t){u d=6.1i(t,r);b=r=d.r;t=6.2C(d.t)}}7(t)b=[];7(b&&l==b[0])b.4e();2j=6.1T(2j,b);v 2j},4c:q(r,m,a){m=" "+m+" ";u b=[];E(u i=0;r[i];i++){u c=(" "+r[i].12+" ").J(m)>=0;7(!a&&c||a&&!c)b.R(r[i])}v b},1i:q(t,r,h){u d;1v(t&&t!=d){d=t;u p=6.5A,m;E(u i=0;p[i];i++){m=p[i].1V(t);7(m){t=t.7N(m[0].C);m[2]=m[2].1o(/\\\\/g,"");1F}}7(!m)1F;7(m[1]==":"&&m[2]=="4Y")r=6.1i(m[3],r,K).r;B 7(m[1]==".")r=6.4c(r,m[2],h);B 7(m[1]=="@"){u g=[],G=m[3];E(u i=0,2e=r.C;i<2e;i++){u a=r[i],z=a[6.3H[m[2]]||m[2]];7(z==H||/4M|2u/.17(m[2]))z=6.1b(a,m[2])||\'\';7((G==""&&!!z||G=="="&&z==m[5]||G=="!="&&z!=m[5]||G=="^="&&z&&!z.J(m[5])||G=="$="&&z.2G(z.C-m[5].C)==m[5]||(G=="*="||G=="~=")&&z.J(m[5])>=0)^h)g.R(a)}r=g}B 7(m[1]==":"&&m[2]=="22-3u"){u e=6.1k++,g=[],17=/(\\d*)n\\+?(\\d*)/.1V(m[3]=="5L"&&"2n"||m[3]=="5K"&&"2n+1"||!/\\D/.17(m[3])&&"n+"+m[3]||m[3]),2Q=(17[1]||1)-0,d=17[2]-0;E(u i=0,2e=r.C;i<2e;i++){u j=r[i],L=j.L;7(e!=L.1k){u c=1;E(u n=L.1d;n;n=n.1X)7(n.1q==1)n.4a=c++;L.1k=e}u b=N;7(2Q==1){7(d==0||j.4a==d)b=K}B 7((j.4a+d)%2Q==0)b=K;7(b^h)g.R(j)}r=g}B{u f=6.4n[m[1]];7(1g f!="1s")f=6.4n[m[1]][m[2]];49("f = q(a,i){v "+f+"}");r=6.2s(r,f,h)}}v{r:r,t:t}},4p:q(c){u b=[];u a=c.L;1v(a&&a!=P){b.R(a);a=a.L}v b},22:q(a,e,c,b){e=e||1;u d=0;E(;a;a=a[c])7(a.1q==1&&++d==e)1F;v a},4q:q(n,a){u r=[];E(;n;n=n.1X){7(n.1q==1&&(!a||n!=a))r.R(n)}v r}});6.S={1A:q(d,e,c,b){7(6.M.1h&&d.3m!=I)d=18;7(!c.1Q)c.1Q=9.1Q++;7(b!=I){u f=c;c=q(){v f.O(9,19)};c.W=b;c.1Q=f.1Q}7(!d.$1a)d.$1a={};7(!d.$1p)d.$1p=q(){u a;7(1g 6=="I"||6.S.47)v a;a=6.S.1p.O(d,19);v a};u g=d.$1a[e];7(!g){g=d.$1a[e]={};7(d.46)d.46(e,d.$1p,N);B d.7M("5r"+e,d.$1p)}g[c.1Q]=c;7(!9.Y[e])9.Y[e]=[];7(6.2w(d,9.Y[e])==-1)9.Y[e].R(d)},1Q:1,Y:{},1E:q(b,c,a){u d=b.$1a,1Y,2p;7(d){7(c&&c.G){a=c.44;c=c.G}7(!c){E(c V d)9.1E(b,c)}B 7(d[c]){7(a)3l d[c][a.1Q];B E(a V b.$1a[c])3l d[c][a];E(1Y V d[c])1F;7(!1Y){7(b.43)b.43(c,b.$1p,N);B b.7J("5r"+c,b.$1p);1Y=H;3l d[c];1v(9.Y[c]&&((2p=6.2w(b,9.Y[c]))>=0))3l 9.Y[c][2p]}}E(1Y V d)1F;7(!1Y)b.$1p=b.$1a=H}},1t:q(c,b,d){b=6.2L(b||[]);7(!d)6.F(9.Y[c]||[],q(){6.S.1t(c,b,9)});B{u a,1Y,11=6.16(d[c]||H);b.5p(9.42({G:c,1O:d}));7(6.16(d.$1p)&&(a=d.$1p.O(d,b))!==N)9.47=K;7(11&&a!==N&&!6.Q(d,\'a\'))d[c]();9.47=N}},1p:q(b){u a;b=6.S.42(b||18.S||{});u c=9.$1a&&9.$1a[b.G],1S=[].51.3D(19,1);1S.5p(b);E(u j V c){1S[0].44=c[j];1S[0].W=c[j].W;7(c[j].O(9,1S)===N){b.2d();b.2D();a=N}}7(6.M.1h)b.1O=b.2d=b.2D=b.44=b.W=H;v a},42:q(c){u a=c;c=6.1c({},a);c.2d=q(){7(a.2d)v a.2d();a.7H=N};c.2D=q(){7(a.2D)v a.2D();a.7F=K};7(!c.1O&&c.5n)c.1O=c.5n;7(6.M.20&&c.1O.1q==3)c.1O=a.1O.L;7(!c.41&&c.4j)c.41=c.4j==c.1O?c.7C:c.4j;7(c.5k==H&&c.5j!=H){u e=P.4h,b=P.4y;c.5k=c.5j+(e&&e.5i||b.5i);c.7z=c.7y+(e&&e.5f||b.5f)}7(!c.3h&&(c.5e||c.5d))c.3h=c.5e||c.5d;7(!c.5c&&c.5b)c.5c=c.5b;7(!c.3h&&c.1J)c.3h=(c.1J&1?1:(c.1J&2?3:(c.1J&4?2:0)));v c}};6.11.1c({3g:q(c,a,b){v c=="3z"?9.3Z(c,a,b):9.F(q(){6.S.1A(9,c,b||a,b&&a)})},3Z:q(d,b,c){v 9.F(q(){6.S.1A(9,d,q(a){6(9).3U(a);v(c||b).O(9,19)},c&&b)})},3U:q(a,b){v 9.F(q(){6.S.1E(9,a,b)})},1t:q(a,b){v 9.F(q(){6.S.1t(a,b,9)})},1R:q(){u a=19;v 9.5a(q(e){9.4u=0==9.4u?1:0;e.2d();v a[9.4u].O(9,[e])||N})},7w:q(f,g){q 3W(e){u p=e.41;1v(p&&p!=9)2g{p=p.L}25(e){p=9};7(p==9)v N;v(e.G=="3V"?f:g).O(9,[e])}v 9.3V(3W).59(3W)},1G:q(f){7(6.3d)f.O(P,[6]);B 6.2q.R(q(){v f.O(9,[6])});v 9}});6.1c({3d:N,2q:[],1G:q(){7(!6.3d){6.3d=K;7(6.2q){6.F(6.2q,q(){9.O(P)});6.2q=H}7(6.M.3j||6.M.2a)P.43("58",6.1G,N);7(!18.7v.C)6(18).1W(q(){6("#3T").1E()})}}});14 q(){6.F(("7u,7t,1W,7s,7r,3z,5a,7q,"+"7p,7o,7n,3V,59,7m,2y,"+"4k,7l,7k,7j,2c").2R(","),q(i,o){6.11[o]=q(f){v f?9.3g(o,f):9.1t(o)}});7(6.M.3j||6.M.2a)P.46("58",6.1G,N);B 7(6.M.1h){P.7i("<7h"+"7f 2m=3T 7e=K "+"2u=//:><\\/3b>");u a=P.4d("3T");7(a)a.7d=q(){7(9.3a!="1n")v;6.1G()};a=H}B 7(6.M.20)6.3N=3m(q(){7(P.3a=="79"||P.3a=="1n"){3M(6.3N);6.3N=H;6.1G()}},10);6.S.1A(18,"1W",6.1G)};7(6.M.1h)6(18).3Z("3z",q(){u a=6.S.Y;E(u b V a){u c=a[b],i=c.C;7(i&&b!=\'3z\')77 c[i-1]&&6.S.1E(c[i-1],b);1v(--i)}});6.11.1c({76:q(c,b,a){9.1W(c,b,a,1)},1W:q(g,d,c,e){7(6.16(g))v 9.3g("1W",g);c=c||q(){};u f="3K";7(d)7(6.16(d)){c=d;d=H}B{d=6.2E(d);f="50"}u h=9;6.2Z({1C:g,G:f,W:d,2t:e,1n:q(a,b){7(b=="28"||!e&&b=="4V")h.1b("27",a.3c).3J().F(c,[a.3c,b,a]);B c.O(h,[a.3c,b,a])}});v 9},72:q(){v 6.2E(9)},3J:q(){v 9.1L("3b").F(q(){7(9.2u)6.4U(9.2u);B 6.3I(9.2A||9.5H||9.27||"")}).2U()}});6.F("4T,4I,4S,4R,4Q,4P".2R(","),q(i,o){6.11[o]=q(f){v 9.3g(o,f)}});6.1c({1M:q(e,c,a,d,b){7(6.16(c)){a=c;c=H}v 6.2Z({G:"3K",1C:e,W:c,28:a,3G:d,2t:b})},6X:q(d,b,a,c){v 6.1M(d,b,a,c,1)},4U:q(b,a){v 6.1M(b,H,a,"3b")},6V:q(c,b,a){v 6.1M(c,b,a,"4N")},6T:q(d,b,a,c){7(6.16(b)){a=b;b={}}v 6.2Z({G:"50",1C:d,W:b,28:a,3G:c})},6S:q(a){6.36.21=a},6Q:q(a){6.1c(6.36,a)},36:{Y:K,G:"3K",21:0,4O:"6P/x-6O-34-6N",4K:K,38:K,W:H},32:{},2Z:q(s){s=6.1c({},6.36,s);7(s.W){7(s.4K&&1g s.W!="1s")s.W=6.2E(s.W);7(s.G.2H()=="1M"){s.1C+=((s.1C.J("?")>-1)?"&":"?")+s.W;s.W=H}}7(s.Y&&!6.3L++)6.S.1t("4T");u f=N;u h=18.4Z?14 4Z("6L.6J"):14 4J();h.7b(s.G,s.1C,s.38);7(s.W)h.3Q("6H-6G",s.4O);7(s.2t)h.3Q("6F-3O-6D",6.32[s.1C]||"6C, 6B 6A 6z 4r:4r:4r 6y");h.3Q("X-6x-6w","4J");7(s.56)s.56(h);7(s.Y)6.S.1t("4P",[h,s]);u g=q(d){7(h&&(h.3a==4||d=="21")){f=K;7(i){3M(i);i=H}u c;2g{c=6.54(h)&&d!="21"?s.2t&&6.4F(h,s.1C)?"4V":"28":"2c";7(c!="2c"){u b;2g{b=h.3E("53-3O")}25(e){}7(s.2t&&b)6.32[s.1C]=b;u a=6.55(h,s.3G);7(s.28)s.28(a,c);7(s.Y)6.S.1t("4Q",[h,s])}B 6.2X(s,h,c)}25(e){c="2c";6.2X(s,h,c,e)}7(s.Y)6.S.1t("4S",[h,s]);7(s.Y&&!--6.3L)6.S.1t("4I");7(s.1n)s.1n(h,c);7(s.38)h=H}};u i=3m(g,13);7(s.21>0)4C(q(){7(h){h.6r();7(!f)g("21")}},s.21);2g{h.6p(s.W)}25(e){6.2X(s,h,H,e)}7(!s.38)g();v h},2X:q(s,a,b,e){7(s.2c)s.2c(a,b,e);7(s.Y)6.S.1t("4R",[a,s,e])},3L:0,54:q(r){2g{v!r.23&&7A.7B=="4l:"||(r.23>=5u&&r.23<6l)||r.23==5m||6.M.20&&r.23==I}25(e){}v N},4F:q(a,c){2g{u b=a.3E("53-3O");v a.23==5m||b==6.32[c]||6.M.20&&a.23==I}25(e){}v N},55:q(r,b){u c=r.3E("6k-G");u a=!b&&c&&c.J("4B")>=0;a=b=="4B"||a?r.6j:r.3c;7(b=="3b")6.3I(a);7(b=="4N")a=49("("+a+")");7(b=="3F")6("<1x>").3F(a).3J();v a},2E:q(a){u s=[];7(a.15==2b||a.3C)6.F(a,q(){s.R(2l(9.6i)+"="+2l(9.2v))});B E(u j V a)7(a[j]&&a[j].15==2b)6.F(a[j],q(){s.R(2l(j)+"="+2l(9))});B s.R(2l(j)+"="+2l(a[j]));v s.5M("&")},3I:q(a){7(18.4A)18.4A(a);B 7(6.M.20)18.4C(a,0);B 49.3D(18,a)}});6.11.1c({1m:q(b,a){v b?9.1w({1u:"1m",29:"1m",1e:"1m"},b,a):9.1i(":1y").F(q(){9.T.U=9.2i?9.2i:"";7(6.1f(9,"U")=="1P")9.T.U="2h"}).2U()},1j:q(b,a){v b?9.1w({1u:"1j",29:"1j",1e:"1j"},b,a):9.1i(":4f").F(q(){9.2i=9.2i||6.1f(9,"U");7(9.2i=="1P")9.2i="2h";9.T.U="1P"}).2U()},5G:6.11.1R,1R:q(a,b){v 6.16(a)&&6.16(b)?9.5G(a,b):a?9.1w({1u:"1R",29:"1R",1e:"1R"},a,b):9.F(q(){6(9)[6(9).37(":1y")?"1m":"1j"]()})},6e:q(b,a){v 9.1w({1u:"1m"},b,a)},6d:q(b,a){v 9.1w({1u:"1j"},b,a)},6b:q(b,a){v 9.1w({1u:"1R"},b,a)},6a:q(b,a){v 9.1w({1e:"1m"},b,a)},69:q(b,a){v 9.1w({1e:"1j"},b,a)},7U:q(c,a,b){v 9.1w({1e:a},c,b)},1w:q(d,h,f,g){v 9.1l(q(){u c=6(9).37(":1y"),1H=6.5z(h,f,g),5y=9;E(u p V d){7(d[p]=="1j"&&c||d[p]=="1m"&&!c)v 6.16(1H.1n)&&1H.1n.O(9);7(p=="1u"||p=="29"){1H.U=6.1f(9,"U");1H.2f=9.T.2f}}7(1H.2f!=H)9.T.2f="1y";9.2k=6.1c({},d);6.F(d,q(a,b){u e=14 6.2M(5y,1H,a);7(b.15==3y)e.2W(e.1K(),b);B e[b=="1R"?c?"1m":"1j":b](d)})})},1l:q(a,b){7(!b){b=a;a="2M"}v 9.F(q(){7(!9.1l)9.1l={};7(!9.1l[a])9.1l[a]=[];9.1l[a].R(b);7(9.1l[a].C==1)b.O(9)})}});6.1c({5z:q(b,a,c){u d=b&&b.15==64?b:{1n:c||!c&&a||6.16(b)&&b,1B:b,2I:c&&a||a&&a.15!=45&&a||(6.2I.4i?"4i":"4w")};d.1B=(d.1B&&d.1B.15==3y?d.1B:{61:60,89:5u}[d.1B])||8a;d.2N=d.1n;d.1n=q(){6.5I(9,"2M");7(6.16(d.2N))d.2N.O(9)};v d},2I:{4w:q(p,n,b,a){v b+a*p},4i:q(p,n,b,a){v((-5W.5X(p*5W.8e)/2)+0.5)*a+b}},1l:{},5I:q(b,a){a=a||"2M";7(b.1l&&b.1l[a]){b.1l[a].4e();u f=b.1l[a][0];7(f)f.O(b)}},3B:[],2M:q(f,e,g){u z=9;u y=f.T;z.a=q(){7(e.3A)e.3A.O(f,[z.2o]);7(g=="1e")6.1b(y,"1e",z.2o);B{y[g]=8m(z.2o)+"4o";y.U="2h"}};z.5V=q(){v 39(6.1f(f,g))};z.1K=q(){u r=39(6.2z(f,g));v r&&r>-8l?r:z.5V()};z.2W=q(c,b){z.4s=(14 5T()).5S();z.2o=c;z.a();6.3B.R(q(){v z.3A(c,b)});7(6.3B.C==1){u d=3m(q(){u a=6.3B;E(u i=0;i<a.C;i++)7(!a[i]())a.8j(i--,1);7(!a.C)3M(d)},13)}};z.1m=q(){7(!f.24)f.24={};f.24[g]=6.1b(f.T,g);e.1m=K;z.2W(0,9.1K());7(g!="1e")y[g]="8q";6(f).1m()};z.1j=q(){7(!f.24)f.24={};f.24[g]=6.1b(f.T,g);e.1j=K;z.2W(9.1K(),0)};z.3A=q(a,c){u t=(14 5T()).5S();7(t>e.1B+z.4s){z.2o=c;z.a();7(f.2k)f.2k[g]=K;u b=K;E(u i V f.2k)7(f.2k[i]!==K)b=N;7(b){7(e.U!=H){y.2f=e.2f;y.U=e.U;7(6.1f(f,"U")=="1P")y.U="2h"}7(e.1j)y.U="1P";7(e.1j||e.1m)E(u p V f.2k)6.1b(y,p,f.24[p])}7(b&&6.16(e.1n))e.1n.O(f);v N}B{u n=t-9.4s;u p=n/e.1B;z.2o=6.2I[e.2I](p,n,a,(c-a),e.1B);z.a()}v K}}})}',62,524,'||||||jQuery|if||this|||||||||||||||||function||||var|return||||||else|length||for|each|type|null|undefined|indexOf|true|parentNode|browser|false|apply|document|nodeName|push|event|style|display|in|data||global|||fn|className||new|constructor|isFunction|test|window|arguments|events|attr|extend|firstChild|opacity|css|typeof|msie|filter|hide|mergeNum|queue|show|complete|replace|handle|nodeType|table|string|trigger|height|while|animate|div|hidden|tbody|add|duration|url|toUpperCase|remove|break|ready|opt|_|button|cur|find|get|tb|target|none|guid|toggle|args|merge|styleFloat|exec|load|nextSibling|ret|pushStack|safari|timeout|nth|status|orig|catch|al|innerHTML|success|width|opera|Array|error|preventDefault|rl|overflow|try|block|oldblock|done|curAnim|encodeURIComponent|id||now|index|readyList|disabled|grep|ifModified|src|value|inArray|multiFilter|select|curCSS|text|checked|trim|stopPropagation|param|domManip|substr|toLowerCase|easing|chars|insertBefore|makeArray|fx|old|ownerDocument|last|first|split|childNodes|selected|end|tr|custom|handleError|empty|ajax|el|clean|lastModified|String|form|getAttribute|ajaxSettings|is|async|parseFloat|readyState|script|responseText|isReady|append|defaultView|bind|which|position|mozilla|map|delete|setInterval|static|RegExp|oWidth|removeChild|oHeight|cloneNode|match|child|toString|has|float|Number|unload|step|timers|jquery|call|getResponseHeader|html|dataType|props|globalEval|evalScripts|GET|active|clearInterval|safariTimer|Modified|num|setRequestHeader|getElementsByTagName|currentStyle|__ie_init|unbind|mouseover|handleHover|init|getComputedStyle|one|isXMLDoc|relatedTarget|fix|removeEventListener|handler|Function|addEventListener|triggered|visibility|eval|nodeIndex|radio|classFilter|getElementById|shift|visible|appendChild|documentElement|swing|fromElement|submit|file|swap|expr|px|parents|sibling|00|startTime|previousSibling|lastToggle|parent|linear|ol|body|tagName|execScript|xml|setTimeout|version|setArray|httpNotModified|fl|prop|ajaxStop|XMLHttpRequest|processData|alpha|href|json|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxComplete|ajaxStart|getScript|notmodified|colgroup|100|not|ActiveXObject|POST|slice|fieldset|Last|httpSuccess|httpData|beforeSend|getPropertyValue|DOMContentLoaded|mouseout|click|ctrlKey|metaKey|keyCode|charCode|scrollTop|unique|createElement|scrollLeft|clientX|pageX|webkit|304|srcElement|appendTo|unshift|prevObject|on|after|before|200|removeAttr|prepend|cssFloat|self|speed|parse|input|reset|image|password|checkbox|_toggle|textContent|dequeue|lastChild|odd|even|join|contains|gt|lt|eq|nodeValue|getTime|Date|zoom|max|Math|cos|font|maxLength|600|slow|maxlength|readOnly|Object|readonly|createTextNode|class|htmlFor|fadeOut|fadeIn|slideToggle|CSS1Compat|slideUp|slideDown|compatMode|boxModel|compatible|name|responseXML|content|300|ie|noConflict|ra|send|it|abort|rv|userAgent|navigator|concat|With|Requested|GMT|1970|Jan|01|Thu|Since|reverse|If|Type|Content|array|XMLHTTP|ig|Microsoft|NaN|urlencoded|www|application|ajaxSetup|val|ajaxTimeout|post|setAttribute|getJSON|getAttributeNode|getIfModified|method|FORM|action|options|serialize|col|th|td|loadIfModified|do|colg|loaded|tfoot|open|thead|onreadystatechange|defer|ipt|leg|scr|write|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|dblclick|scroll|resize|focus|blur|frames|hover|clone|clientY|pageY|location|protocol|toElement|clientWidth|clientHeight|cancelBubble|relative|returnValue|left|detachEvent|right|absolute|attachEvent|substring|offsetWidth|object|offsetHeight|continue|Width|border|fadeTo|padding|size|uFFFF|Left|u0128|Right|Bottom|textarea|Top|enabled|innerText|only|toggleClass|removeClass|fast|400|wrap|addClass|removeAttribute|PI|insertAfter|prependTo|children|line|splice|siblings|10000|parseInt|prev|next|weight|1px|prototype'.split('|'),0,{}))
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.2.6.pack.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.2.6.pack.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/jquery-1.2.6.pack.js	(revision 80)
@@ -0,0 +1,11 @@
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
+ * $Rev: 5685 $
+ */
+eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i<K;i++)G((15=19[i])!=U)R(J c 1n 15){J a=b[c],2w=15[c];G(b===2w)6M;G(4x&&2w&&1j 2w=="49"&&!2w.16)b[c]=D.1l(4x,a||(2w.K!=U?[]:{}),2w);N G(2w!==12)b[c]=2w}I b};J E="4M"+1z(),6K=0,5r={},6G=/z-?5i|8B-?8A|1y|6B|8v-?1Z/i,3P=S.3P||{};D.1l({8u:H(a){1b.$=3m$;G(a)1b.4M=w;I D},1D:H(a){I!!a&&1j a!="23"&&!a.Y&&a.1q!=2p&&/^[\\s[]?H/.11(a+"")},4n:H(a){I a.1C&&!a.1c||a.2j&&a.2z&&!a.2z.1c},5u:H(a){a=D.3k(a);G(a){J b=S.3H("6w")[0]||S.1C,1m=S.3h("1m");1m.O="1r/4t";G(D.14.1f)1m.1r=a;N 1m.3U(S.5F(a));b.39(1m,b.1x);b.37(1m)}},Y:H(b,a){I b.Y&&b.Y.2r()==a.2r()},1Y:{},L:H(c,d,b){c=c==1b?5r:c;J a=c[E];G(!a)a=c[E]=++6K;G(d&&!D.1Y[a])D.1Y[a]={};G(b!==12)D.1Y[a][d]=b;I d?D.1Y[a][d]:a},3b:H(c,b){c=c==1b?5r:c;J a=c[E];G(b){G(D.1Y[a]){2U D.1Y[a][b];b="";R(b 1n D.1Y[a])1X;G(!b)D.3b(c)}}N{1U{2U c[E]}1V(e){G(c.5l)c.5l(E)}2U D.1Y[a]}},P:H(d,a,c){J e,i=0,K=d.K;G(c){G(K==12){R(e 1n d)G(a.1w(d[e],c)===Q)1X}N R(;i<K;)G(a.1w(d[i++],c)===Q)1X}N{G(K==12){R(e 1n d)G(a.1k(d[e],e,d[e])===Q)1X}N R(J b=d[0];i<K&&a.1k(b,i,b)!==Q;b=d[++i]){}}I d},1i:H(b,a,c,i,d){G(D.1D(a))a=a.1k(b,i);I a&&a.1q==4L&&c=="2a"&&!6G.11(d)?a+"2X":a},1F:{1e:H(c,b){D.P((b||"").1R(/\\s+/),H(i,a){G(c.16==1&&!D.1F.3T(c.1F,a))c.1F+=(c.1F?" ":"")+a})},21:H(c,b){G(c.16==1)c.1F=b!=12?D.3C(c.1F.1R(/\\s+/),H(a){I!D.1F.3T(b,a)}).6s(" "):""},3T:H(b,a){I D.2L(a,(b.1F||b).6r().1R(/\\s+/))>-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i<g.K;i++)G(g[i]!=U)2E[i].V.18=g[i]}G(l=="1y"&&e=="")e="1"}N G(f.4g){J h=l.1o(/\\-(\\w)/g,H(a,b){I b.2r()});e=f.4g[l]||f.4g[h];G(!/^\\d+(2X)?$/i.11(e)&&/^\\d/.11(e)){J j=V.1A,66=f.65.1A;f.65.1A=f.4g.1A;V.1A=e||0;e=V.aM+"2X";V.1A=j;f.65.1A=66}}I e},4h:H(l,h){J k=[];h=h||S;G(1j h.3h==\'12\')h=h.2z||h[0]&&h[0].2z||S;D.P(l,H(i,d){G(!d)I;G(d.1q==4L)d+=\'\';G(1j d=="23"){d=d.1o(/(<(\\w+)[^>]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+"></"+c+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("<au")&&[1,"<2A 7w=\'7w\'>","</2A>"]||!f.1h("<ar")&&[1,"<7v>","</7v>"]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>","</1T>"]||!f.1h("<4F")&&[2,"<1T><22>","</22></1T>"]||(!f.1h("<af")||!f.1h("<ad"))&&[3,"<1T><22><4F>","</4F></22></1T>"]||!f.1h("<7E")&&[2,"<1T><22></22><7q>","</7q></1T>"]||D.14.1f&&[1,"1v<1v>","</1v>"]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i<K;i++)G(a[i]===b)I i;I-1},2R:H(a,b){J i=0,T,2S=a.K;G(D.14.1f){1B(T=b[i++])G(T.16!=8)a[2S++]=T}N 1B(T=b[i++])a[2S++]=T;I a},4r:H(a){J c=[],2o={};1U{R(J i=0,K=a.K;i<K;i++){J b=D.L(a[i]);G(!2o[b]){2o[b]=M;c.1p(a[i])}}}1V(e){c=a}I c},3C:H(c,a,d){J b=[];R(J i=0,K=c.K;i<K;i++)G(!d!=!a(c[i],i))b.1p(c[i]);I b},2l:H(d,a){J c=[];R(J i=0,K=d.K;i<K;i++){J b=a(d[i],i);G(b!=U)c[c.K]=b}I c.7d.1w([],c)}});J v=9B.9A.3y();D.14={5B:(v.1I(/.+(?:9y|9x|9w|9v)[\\/: ]([\\d.]+)/)||[])[1],2k:/75/.11(v),2G:/2G/.11(v),1f:/1f/.11(v)&&!/2G/.11(v),42:/42/.11(v)&&!/(9s|75)/.11(v)};J y=D.14.1f?"7o":"72";D.1l({71:!D.14.1f||S.70=="6Z",3X:{"R":"9n","9k":"1F","4i":y,72:y,7o:y,9h:"9f",9e:"9d",9b:"99"}});D.P({6W:H(a){I a.1d},97:H(a){I D.4S(a,"1d")},95:H(a){I D.3a(a,2,"2H")},91:H(a){I D.3a(a,2,"4l")},8Z:H(a){I D.4S(a,"2H")},8X:H(a){I D.4S(a,"4l")},8W:H(a){I D.5v(a.1d.1x,a)},8V:H(a){I D.5v(a.1x)},6Q:H(a){I D.Y(a,"8U")?a.8T||a.8S.S:D.2d(a.3t)}},H(c,d){D.17[c]=H(b){J a=D.2l(7,d);G(b&&1j b=="23")a=D.3g(b,a);I 7.2I(D.4r(a))}});D.P({6P:"3v",8Q:"6F",39:"6E",8P:"5q",8O:"7b"},H(c,b){D.17[c]=H(){J a=19;I 7.P(H(){R(J i=0,K=a.K;i<K;i++)D(a[i])[b](7)})}});D.P({8N:H(a){D.1K(7,a,"");G(7.16==1)7.5l(a)},8M:H(a){D.1F.1e(7,a)},8L:H(a){D.1F.21(7,a)},8K:H(a){D.1F[D.1F.3T(7,a)?"21":"1e"](7,a)},21:H(a){G(!a||D.1E(a,[7]).r.K){D("*",7).1e(7).P(H(){D.W.21(7);D.3b(7)});G(7.1d)7.1d.37(7)}},4E:H(){D(">*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I i<m[3]-0},8C:H(a,i,m){I i>m[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i<c.K)D.W.3M(b,c[i++]);I 7.4V(D.W.3M(b,H(a){7.4Z=(7.4Z||0)%i;a.32();I c[7.4Z++].1w(7,19)||Q}))},7X:H(a,b){I 7.2O(\'3D\',a).2O(\'3N\',b)},27:H(a){55();G(D.2Q)a.1k(S,D);N D.3A.1p(H(){I a.1k(7,D)});I 7}});D.1l({2Q:Q,3A:[],27:H(){G(!D.2Q){D.2Q=M;G(D.3A){D.P(D.3A,H(){7.1k(S)});D.3A=U}D(S).5C("27")}}});J x=Q;H 55(){G(x)I;x=M;G(S.3K&&!D.14.2G)S.3K("69",D.27,Q);G(D.14.1f&&1b==1S)(H(){G(D.2Q)I;1U{S.1C.7V("1A")}1V(3e){3B(19.3L,0);I}D.27()})();G(D.14.2G)S.3K("69",H(){G(D.2Q)I;R(J i=0;i<S.4W.K;i++)G(S.4W[i].3R){3B(19.3L,0);I}D.27()},Q);G(D.14.2k){J a;(H(){G(D.2Q)I;G(S.3f!="68"&&S.3f!="1J"){3B(19.3L,0);I}G(a===12)a=D("V, 7A[7U=7S]").K;G(S.4W.K!=a){3B(19.3L,0);I}D.27()})()}D.W.1e(1b,"43",D.27)}D.P(("7R,7Q,43,85,4y,4X,4V,7P,"+"7O,7N,89,53,51,7M,2A,"+"5o,7L,7K,8d,3e").1R(","),H(i,b){D.17[b]=H(a){I a?7.2O(b,a):7.1P(b)}});J F=H(a,c){J b=a.4k;1B(b&&b!=c)1U{b=b.1d}1V(3e){b=c}I b==c};D(1b).2O("4X",H(){D("*").1e(S).4e()});D.17.1l({67:D.17.43,43:H(g,d,c){G(1j g!=\'23\')I 7.67(g);J e=g.1h(" ");G(e>=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i<a.K;i++)G(!a[i]())a.7n(i--,1);G(!a.K){7k(D.48);D.48=U}},13)}},1N:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1N=M;7.3G(0,7.1t());G(7.1i=="2h"||7.1i=="1Z")7.T.V[7.1i]="9m";D(7.T).1N()},1M:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1M=M;7.3G(7.1t(),0)},2Y:H(a){J t=1z();G(a||t>7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{}))
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_gabarit.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_gabarit.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_gabarit.js	(revision 80)
@@ -0,0 +1,63 @@
+$(document).ready(function(){
+makesortable();
+
+$("#avance .bloc").hide();
+
+$("#avance li").eq(0).css("cursor","pointer").click(function(){
+$("#avance .bloc").toggle();
+});
+
+});
+
+function makesortable() {
+  $('.conteneur_bloc').Sortable(
+  {
+  	accept: 'bloc',
+  	handle: 'div.poignee',
+  	helperclass: 'sortHelper',
+  	activeclass : 	'sortableactive',
+  	hoverclass : 	'sortablehover',
+  	//handle: 'div.itemHeader',
+  	tolerance: 'pointer',
+  	opacity: 0.5,
+
+  	
+  	onStart : function()
+  	{
+  		$.iAutoscroller.start(this, document.getElementsByTagName('body'));
+  	},
+  	onStop : function()
+  	{
+  		$.iAutoscroller.stop();
+  		$('#reponse').html('');
+  		$('#bloc_sauver').css({background: "red", border: "1px solid black"});
+    }
+  }
+  );
+    
+}
+
+function sauver (gabarit,urlretour) {
+	$('#search').css({visibility: 'visible'});
+	serial = $.SortSerialize();
+	// ici recuperer les valeurs des parametres dans les blocs pour les ajouter a la base
+	parametres = "";
+	$('.selecteur-param').each(function() { 
+		lecheck=this.value;
+		lebloc=this.name;
+		parametres = parametres + "&" + lebloc + "=" + lecheck
+		// ici, formater pour le post
+		});	
+
+	$.post("?exec=gabarit&mode=ajax", serial.hash + "&gabarit="+gabarit + parametres, function (reponse) {
+		$('#reponse').html(reponse);
+		$('#search').css({visibility: 'hidden'});
+		$('#bloc_sauver').css({background: "green", border: "1px solid green"});
+		if (urlretour){
+			window.location=urlretour;
+			}
+		});
+	
+	}
+
+
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_menu.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_menu.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/manip_menu.js	(revision 80)
@@ -0,0 +1,155 @@
+$(document).ready(function(){
+
+  $('.ajouter').each(function(){
+    $(this).click(function(){
+      titre = $(this).siblings("span").text();
+      regex = /(id_rubrique|id_article|id_groupe|id_mot)=([0-9]+)/;
+      matches = regex.exec(this.getAttribute('href'));
+      if (matches.length > 2) {
+        if (matches[1] == "id_rubrique" && !isNaN(matches[2] && !$('#r'+matches[2]).length)) {
+          $("#selection").append('<li id="r'+matches[2]+'" class="sortable">'+titre+" <span class='url_petit'>("+traductions['rubrique']+")</span> <a href=\"javascript:supprimer('#r"+matches[2]+"')\">x</a></li>");
+        } else if (matches[1] == "id_article" && !isNaN(matches[2]) && !$('#a'+matches[2]).length) {
+          $("#selection").append('<li id="a'+matches[2]+'" class="sortable">'+titre+" <span class='url_petit'>("+traductions['article']+")</span> <a href=\"javascript:supprimer('#a"+matches[2]+"')\">x</a></li>");
+        } else if (matches[1] == "id_groupe" && !isNaN(matches[2]) && !$('#g'+matches[2]).length) {
+          $("#selection").append('<li id="g'+matches[2]+'" class="sortable">'+titre+" <span class='url_petit'>("+traductions['groupe']+")</span> <a href=\"javascript:supprimer('#g"+matches[2]+"')\">x</a></li>");
+        } else if (matches[1] == "id_mot" && !isNaN(matches[2]) && !$('#m'+matches[2]).length) {
+          $("#selection").append('<li id="m'+matches[2]+'" class="sortable">'+titre+" <span class='url_petit'>("+traductions['mot']+")</span> <a href=\"javascript:supprimer('#m"+matches[2]+"')\">x</a></li>");
+        }
+      }
+      
+      $('#bloc_sauver').css({background: "red"});
+     
+      makesortable();
+      return false;
+    });
+  });
+});
+
+function makesortable() {
+  if (type_sortable == "flat") {
+
+  $('#selection').Sortable(
+  {
+  	accept: 'sortable',
+  	helperclass: 'sortHelper',
+  	activeclass : 	'sortableactive',
+  	hoverclass : 	'sortablehover',
+  	//handle: 'div.itemHeader',
+  	tolerance: 'pointer',
+  	opacity: 0.5,
+  	onChange : function(ser)
+  	{
+  	},
+  	onStart : function()
+  	{
+  		$.iAutoscroller.start(this, document.getElementsByTagName('body'));
+  	},
+  	onStop : function()
+  	{
+  		$.iAutoscroller.stop();
+      $('#bloc_sauver').css({background: "red"});
+
+    }
+  }
+  );
+  
+  } else if (type_sortable = "nested") {
+
+  $('#selection').NestedSortable(
+  {
+  	accept: 'sortable',
+  	helperclass: 'sortHelper',
+  	activeclass : 	'sortableactive',
+  	hoverclass : 	'sortablehover',
+  	//handle: 'div.itemHeader',
+  	tolerance: 'pointer',
+  	opacity: 0.5,
+  	onChange : function(ser)
+  	{
+  	},
+  	onStart : function()
+  	{
+  		$.iAutoscroller.start(this, document.getElementsByTagName('body'));
+  	},
+  	onStop : function()
+  	{
+  		$.iAutoscroller.stop();
+      $('#bloc_sauver').css({background: "red"});
+
+    }
+  }
+  );  
+  
+  }
+}
+
+function ajouter_lien() {
+  nom = $('#nom_lien').attr('value');
+  lurl = $('#url_lien').attr('value');
+  if(!nom || !lurl) { return; }
+  
+  afficheurl = lurl;
+  affichenom = nom;
+  nom = nom.replace(/\|/g, "");
+  lurl = lurl.replace(/\|/g, "");
+  
+  // correctif pour le sortable.hash qui merde
+  id = htmlentities('|' + nom+'|'+ lurl);
+  
+  // trouver un id factice superieur Ã  90000
+  base=90000;
+  unique=0;
+  
+  while(unique==0){
+  	if ($("#selection li[@id^=l"+ base+"]").length > 0){
+  	base++;
+  	} else {
+  		unique=1;
+  	}
+  }
+  
+  id="l" + base + id;
+    $("#selection").append('<li id="'+id+'" class="sortable">'+affichenom+" <span class='url_petit'>("+ afficheurl+")</span> <a href='javascript:supprimer_lien(\""+id+"\")'>x</a></li>");
+  $('#bloc_sauver').css({background: "red"});
+  makesortable();
+}
+
+function sauver(langue){
+		$('#search').css({visibility: 'visible'});
+
+  if (type_sortable == "nested") {
+    serial = $.iNestedSortable.serialize('selection');
+  } else {
+    serial = $.SortSerialize();
+  }
+	$.post("?exec=menu&mode=sauver&langue_menu=" + langue + "&niveaux=" + type_sortable, serial.hash, function (reponse) {
+		//console.log(reponse);
+		$('#search').css({visibility: 'hidden'});
+    $('#bloc_sauver').css({background: "green"});
+	});
+}
+
+function supprimer(elem) {
+ jQuery(elem).remove();
+       $('#bloc_sauver').css({background: "red"});
+
+}
+function supprimer_lien(elem) {
+elem = document.getElementById(elem);
+ jQuery(elem).remove();
+       $('#bloc_sauver').css({background: "red"});
+
+}
+
+function htmlentities(str) {
+    var i,output="",len;
+    len = str.length;
+    for(i=0;i<len;i++){
+    	char = str[i].charCodeAt(0);
+       if(char == 34) { output+="ggguiii"; }
+       else if(char ==39) { output +="aaapooo"; }
+       else if(char==45){ output +="tttirrr"; }
+  	else { output += str[i]; }
+    }
+    return output;
+}
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/mootools.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/mootools.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/mootools.js	(revision 80)
@@ -0,0 +1,4084 @@
+/*
+Script: Moo.js
+	My Object Oriented javascript.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+
+Credits:
+	- Class is slightly based on Base.js <http://dean.edwards.name/weblog/2006/03/base/> (c) 2006 Dean Edwards, License <http://creativecommons.org/licenses/LGPL/2.1/>
+	- Some functions are based on those found in prototype.js <http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio [dot] net, MIT-style license
+	- Documentation by Aaron Newton (aaron.newton [at] cnet [dot] com) and Valerio Proietti.
+*/
+
+/*
+Class: Class
+	The base class object of the <http://mootools.net> framework.
+
+Arguments:
+	properties - the collection of properties that apply to the class. Creates a new class, its initialize method will fire upon class instantiation.
+
+Example:
+	(start code)
+	var Cat = new Class({
+		initialize: function(name){
+			this.name = name;
+		}
+	});
+	var myCat = new Cat('Micia');
+	alert myCat.name; //alerts 'Micia'
+	(end)
+*/
+
+var Class = function(properties){
+	var klass = function(){
+		if (this.initialize && arguments[0] != 'noinit') return this.initialize.apply(this, arguments);
+		else return this;
+	};
+	for (var property in this) klass[property] = this[property];
+	klass.prototype = properties;
+	return klass;
+};
+
+/*
+Property: empty
+	Returns an empty function
+*/
+
+Class.empty = function(){};
+
+Class.prototype = {
+
+	/*
+	Property: extend
+		Returns the copy of the Class extended with the passed in properties.
+
+	Arguments:
+		properties - the properties to add to the base class in this new Class.
+
+	Example:
+		(start code)
+		var Animal = new Class({
+			initialize: function(age){
+				this.age = age;
+			}
+		});
+		var Cat = Animal.extend({
+			initialize: function(name, age){
+				this.parent(age); //will call the previous initialize;
+				this.name = name;
+			}
+		});
+		var myCat = new Cat('Micia', 20);
+		alert myCat.name; //alerts 'Micia'
+		alert myCat.age; //alerts 20
+		(end)
+	*/
+
+	extend: function(properties){
+		var pr0t0typ3 = new this('noinit');
+
+		var parentize = function(previous, current){
+			if (!previous.apply || !current.apply) return false;
+			return function(){
+				this.parent = previous;
+				return current.apply(this, arguments);
+			};
+		};
+
+		for (var property in properties){
+			var previous = pr0t0typ3[property];
+			var current = properties[property];
+			if (previous && previous != current) current = parentize(previous, current) || current;
+			pr0t0typ3[property] = current;
+		}
+		return new Class(pr0t0typ3);
+	},
+
+	/*
+	Property: implement
+		Implements the passed in properties to the base Class prototypes, altering the base class, unlike <Class.extend>.
+
+	Arguments:
+		properties - the properties to add to the base class.
+
+	Example:
+		(start code)
+		var Animal = new Class({
+			initialize: function(age){
+				this.age = age;
+			}
+		});
+		Animal.implement({
+			setName: function(name){
+				this.name = name
+			}
+		});
+		var myAnimal = new Animal(20);
+		myAnimal.setName('Micia');
+		alert(myAnimal.name); //alerts 'Micia'
+		(end)
+	*/
+
+	implement: function(properties){
+		for (var property in properties) this.prototype[property] = properties[property];
+	}
+
+};
+
+/* Section: Object related Functions */
+
+/*
+Function: Object.extend
+	Copies all the properties from the second passed object to the first passed Object.
+	If you do myWhatever.extend = Object.extend the first parameter will become myWhatever, and your extend function will only need one parameter.
+
+Example:
+	(start code)
+	var firstOb = {
+		'name': 'John',
+		'lastName': 'Doe'
+	};
+	var secondOb = {
+		'age': '20',
+		'sex': 'male',
+		'lastName': 'Dorian'
+	};
+	Object.extend(firstOb, secondOb);
+	//firstOb will become: 
+	{
+		'name': 'John',
+		'lastName': 'Dorian',
+		'age': '20',
+		'sex': 'male'
+	};
+	(end)
+
+Returns:
+	The first object, extended.
+*/
+
+Object.extend = function(){
+	var args = arguments;
+	args = (args[1]) ? [args[0], args[1]] : [this, args[0]];
+	for (var property in args[1]) args[0][property] = args[1][property];
+	return args[0];
+};
+
+/*
+Function: Object.Native
+	Will add a .extend method to the objects passed as a parameter, equivalent to <Class.implement>
+
+Arguments:
+	a number of classes/native javascript objects
+
+*/
+
+Object.Native = function(){
+	for (var i = 0; i < arguments.length; i++) arguments[i].extend = Class.prototype.implement;
+};
+
+new Object.Native(Function, Array, String, Number, Class);
+
+/*
+Script: Utility.js
+	Contains Utility functions
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+//htmlelement mapping
+
+if (typeof HTMLElement == 'undefined'){
+	var HTMLElement = Class.empty;
+	HTMLElement.prototype = {};
+}
+
+/*
+Function: $type
+	Returns the type of object that matches the element passed in.
+
+Arguments:
+	obj - the object to inspect.
+
+Example:
+	>var myString = 'hello';
+	>$type(myString); //returns "string"
+
+Returns:
+	'element' - if obj is a DOM element node
+	'textnode' - if obj is a DOM text node
+	'whitespace' - if obj is a DOM whitespace node
+	'array' - if obj is an array
+	'object' - if obj is an object
+	'string' - if obj is a string
+	'number' - if obj is a number
+	'boolean' - if obj is a boolean
+	'function' - if obj is a function
+	false - (boolean) if the object is not defined or none of the above.
+*/
+
+function $type(obj){
+	if (obj === null || obj === undefined) return false;
+	var type = typeof obj;
+	if (type == 'object'){
+		if (obj instanceof HTMLElement) return 'element';
+		if (obj instanceof Array) return 'array';
+		if (obj.nodeName){
+			switch (obj.nodeType){
+				case 1: return 'element';
+				case 3: return obj.nodeValue.test('\\S') ? 'textnode' : 'whitespace';
+			}
+		}
+	}
+	return type;
+};
+
+/*
+Function: $chk
+	Returns true if the passed in value/object exists or is 0, otherwise returns false.
+	Useful to accept zeroes.
+*/
+
+function $chk(obj){
+	return !!(obj || obj === 0);
+};
+
+/*
+Function: $pick
+	Returns the first object if defined, otherwise returns the second.
+*/
+
+function $pick(obj, picked){
+	return ($type(obj)) ? obj : picked;
+};
+
+/*
+Function: $random
+	Returns a random integer number between the two passed in values.
+
+Arguments:
+	min - integer, the minimum value (inclusive).
+	max - integer, the maximum value (inclusive).
+
+Returns:
+	a random integer between min and max.
+*/
+
+function $random(min, max){
+	return Math.floor(Math.random() * (max - min + 1) + min);
+};
+
+/*
+Function: $clear
+	clears a timeout or an Interval.
+
+Returns:
+	null
+
+Arguments:
+	timer - the setInterval or setTimeout to clear.
+
+Example:
+	>var myTimer = myFunction.delay(5000); //wait 5 seconds and execute my function.
+	>myTimer = $clear(myTimer); //nevermind
+
+See also:
+	<Function.delay>, <Function.periodical>
+*/
+
+function $clear(timer){
+	clearTimeout(timer);
+	clearInterval(timer);
+	return null;
+};
+
+/* Section: Browser Detection */
+
+/*
+Properties:
+	window.ie - will be set to true if the current browser is internet explorer (any).
+	window.ie6 - will be set to true if the current browser is internet explorer 6.
+	window.ie7 - will be set to true if the current browser is internet explorer 7.
+	window.khtml - will be set to true if the current browser is Safari/Konqueror.
+	window.gecko - will be set to true if the current browser is Mozilla/Gecko.
+*/
+
+if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
+else if (document.childNodes && !document.all && !navigator.taintEnabled) window.khtml = true;
+else if (document.getBoxObjectFor != null) window.gecko = true;
+
+/*
+Script: Array.js
+	Contains Array prototypes and the function <$A>;
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Array
+	A collection of The Array Object prototype methods.
+*/
+
+//emulated methods
+
+/*
+Property: forEach
+	Iterates through an array; This method is only available for browsers without native *forEach* support.
+	For more info see <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:forEach>
+*/
+
+Array.prototype.forEach = Array.prototype.forEach || function(fn, bind){
+	for (var i = 0; i < this.length; i++) fn.call(bind, this[i], i, this);
+};
+
+/*
+Property: map
+	This method is provided only for browsers without native *map* support.
+	For more info see <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:map>
+*/
+
+Array.prototype.map = Array.prototype.map || function(fn, bind){
+	var results = [];
+	for (var i = 0; i < this.length; i++) results[i] = fn.call(bind, this[i], i, this);
+	return results;
+};
+
+/*
+Property: every
+	This method is provided only for browsers without native *every* support.
+	For more info see <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:every>
+*/
+
+Array.prototype.every = Array.prototype.every || function(fn, bind){
+	for (var i = 0; i < this.length; i++){
+		if (!fn.call(bind, this[i], i, this)) return false;
+	}
+	return true;
+};
+
+/*
+Property: some
+	This method is provided only for browsers without native *some* support.
+	For more info see <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:some>
+*/
+
+Array.prototype.some = Array.prototype.some || function(fn, bind){
+	for (var i = 0; i < this.length; i++){
+		if (fn.call(bind, this[i], i, this)) return true;
+	}
+	return false;
+};
+
+/*
+Property: indexOf
+	This method is provided only for browsers without native *indexOf* support.
+	For more info see <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf>
+*/
+
+Array.prototype.indexOf = Array.prototype.indexOf || function(item, from){
+	from = from || 0;
+	if (from < 0) from = Math.max(0, this.length + from);
+	while (from < this.length){
+		if(this[from] === item) return from;
+		from++;
+	}
+	return -1;
+};
+
+//custom methods
+
+Array.extend({
+
+	/*
+	Property: each
+		Same as <Array.forEach>.
+
+	Arguments:
+		fn - the function to execute with each item in the array
+		bind - optional, the object that the "this" of the function will refer to.
+
+	Example:
+		>var Animals = ['Cat', 'Dog', 'Coala'];
+		>Animals.forEach(function(animal){
+		>	document.write(animal)
+		>});
+	*/
+
+	each: Array.prototype.forEach,
+
+	/*
+	Property: copy
+		Copy the array and returns it.
+
+	Returns:
+		an Array
+
+	Example:
+		>var letters = ["a","b","c"];
+		>var copy = ["a","b","c"].copy();
+	*/
+
+	copy: function(){
+		var newArray = [];
+		for (var i = 0; i < this.length; i++) newArray[i] = this[i];
+		return newArray;
+	},
+
+	/*
+	Property: remove
+		Removes all occurrences of an item from the array.
+
+	Arguments:
+		item - the item to remove
+
+	Returns:
+		the Array with all occurrences of the item removed.
+
+	Example:
+		>["1","2","3","2"].remove("2") // ["1","3"];
+	*/
+
+	remove: function(item){
+		var i = 0;
+		while (i < this.length){
+			if (this[i] == item) this.splice(i, 1);
+			else i++;
+		}
+		return this;
+	},
+
+	/*
+	Property: test
+		Tests an array for the presence of an item.
+
+	Arguments:
+		item - the item to search for in the array.
+		from - optional, the index at which to begin the search, default is 0. If negative, it is taken as the offset from the end of the array.
+
+	Returns:
+		true - the item was found
+		false - it wasn't
+
+	Example:
+		>["a","b","c"].test("a"); // true
+		>["a","b","c"].test("d"); // false
+	*/
+
+	test: function(item, from){
+		return this.indexOf(item, from) != -1;
+	},
+
+	/*
+	Property: extend
+		Extends an array with another
+
+	Arguments:
+		newArray - the array to extend ours with
+
+	Example:
+		>var Animals = ['Cat', 'Dog', 'Coala'];
+		>Animals.extend(['Lizard']);
+		>//Animals is now: ['Cat', 'Dog', 'Coala', 'Lizard'];
+	*/
+
+	extend: function(newArray){
+		for (var i = 0; i < newArray.length; i++) this.push(newArray[i]);
+		return this;
+	},
+
+	/*
+	Property: associate
+		Creates an object with key-value pairs based on the array of keywords passed in
+		and the current content of the array.
+
+	Arguments:
+		keys - the array of keywords.
+
+	Example:
+		(start code)
+		var Animals = ['Cat', 'Dog', 'Coala', 'Lizard'];
+		var Speech = ['Miao', 'Bau', 'Fruuu', 'Mute'];
+		var Speeches = Animals.associate(speech);
+		//Speeches['Miao'] is now Cat.
+		//Speeches['Bau'] is now Dog.
+		//...
+		(end)
+	*/
+
+	associate: function(keys){
+		var obj = {}, length = Math.min(this.length, keys.length);
+		for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
+		return obj;
+	}
+
+});
+
+/* Section: Utility Functions */
+
+/*
+Function: $A()
+	Same as <Array.copy>, but as function.
+	Useful to apply Array prototypes to iterable objects, as a collection of DOM elements or the arguments object.
+
+Example:
+	(start code)
+	function myFunction(){
+		$A(arguments).each(argument, function(){
+			alert(argument);
+		});
+	};
+	//the above will alert all the arguments passed to the function myFunction.
+	(end)
+*/
+
+function $A(array){
+	return Array.prototype.copy.call(array);
+};
+
+/*
+Function: $each
+	use to iterate through iterables that are not regular arrays, such as builtin getElementsByTagName calls, or arguments of a function.
+
+Arguments:
+	iterable - an iterable element.
+	function - function to apply to the iterable.
+	bind - optional, the 'this' of the function will refer to this object.
+*/
+
+function $each(iterable, fn, bind){
+	return Array.prototype.forEach.call(iterable, fn, bind);
+};
+
+/*
+Script: String.js
+	Contains String prototypes and Number prototypes.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: String
+	A collection of The String Object prototype methods.
+*/
+
+String.extend({
+
+	/*
+	Property: test
+		Tests a string with a regular expression.
+
+	Arguments:
+		regex - the regular expression you want to match the string with
+		params - optional, any parameters you want to pass to the regex ('g' has no effect)
+
+	Returns:
+		true if a match for the regular expression is found in the string, false if not.
+		See <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:RegExp:test>
+
+	Example:
+		>"I like cookies".test("cookie"); // returns true
+		>"I like cookies".test("COOKIE", "i") // ignore case, returns true
+		>"I like cookies".test("cake"); // returns false
+	*/
+
+	test: function(regex, params){
+		return new RegExp(regex, params).test(this);
+	},
+
+	/*
+	Property: toInt
+		parses a string to an integer.
+
+	Returns:
+		either an int or "NaN" if the string is not a number.
+
+	Example:
+		>var value = "10px".toInt(); // value is 10
+	*/
+
+	toInt: function(){
+		return parseInt(this);
+	},
+
+	toFloat: function(){
+		return parseFloat(this);
+	},
+
+	/*
+	Property: camelCase
+		Converts a hiphenated string to a camelcase string.
+
+	Example:
+		>"I-like-cookies".camelCase(); //"ILikeCookies"
+
+	Returns:
+		the camel cased string
+	*/
+
+	camelCase: function(){
+		return this.replace(/-\D/g, function(match){
+			return match.charAt(1).toUpperCase();
+		});
+	},
+
+	/*
+	Property: hyphenate
+		Converts a camelCased string to a hyphen-ated string.
+
+	Example:
+		>"ILikeCookies".hyphenate(); //"I-like-cookies"
+	*/
+
+	hyphenate: function(){
+		return this.replace(/\w[A-Z]/g, function(match){
+			return (match.charAt(0)+'-'+match.charAt(1).toLowerCase());
+		});
+	},
+
+	/*
+	Property: capitalize
+		Converts the first letter in each word of a string to Uppercase.
+
+	Example:
+		>"i like cookies".capitalize(); //"I Like Cookies"
+
+	Returns:
+		the capitalized string
+	*/
+
+	capitalize: function(){
+		return this.toLowerCase().replace(/\b[a-z]/g, function(match){
+			return match.toUpperCase();
+		});
+	},
+
+	/*
+	Property: trim
+		Trims the leading and trailing spaces off a string.
+
+	Example:
+		>"    i like cookies     ".trim() //"i like cookies"
+
+	Returns:
+		the trimmed string
+	*/
+
+	trim: function(){
+		return this.replace(/^\s+|\s+$/g, '');
+	},
+
+	/*
+	Property: clean
+		trims (<String.trim>) a string AND removes all the double spaces in a string.
+
+	Returns:
+		the cleaned string
+
+	Example:
+		>" i      like     cookies      \n\n".clean() //"i like cookies"
+	*/
+
+	clean: function(){
+		return this.replace(/\s{2,}/g, ' ').trim();
+	},
+
+	/*
+	Property: rgbToHex
+		Converts an RGB value to hexidecimal. The string must be in the format of "rgb(255, 255, 255)" or "rgba(255, 255, 255, 1)";
+
+	Arguments:
+		array - boolean value, defaults to false. Use true if you want the array ['FF', '33', '00'] as output instead of #FF3300
+
+	Returns:
+		hex string or array. returns transparent if the fourth value of rgba in input string is 0,
+
+	Example:
+		>"rgb(17,34,51)".rgbToHex(); //"#112233"
+		>"rgba(17,34,51,0)".rgbToHex(); //"transparent"
+		>"rgb(17,34,51)".rgbToHex(true); //[11,22,33]
+	*/
+
+	rgbToHex: function(array){
+		var rgb = this.match(/\d{1,3}/g);
+		return (rgb) ? rgb.rgbToHex(array) : false;
+	},
+
+	/*
+	Property: hexToRgb
+		Converts a hexidecimal color value to RGB. Input string must be the hex color value (with or without the hash). Also accepts triplets ('333');
+
+	Arguments:
+		array - boolean value, defaults to false. Use true if you want the array ['255', '255', '255'] as output instead of "rgb(255,255,255)";
+
+	Returns:
+		rgb string or array.
+
+	Example:
+		>"#112233".hexToRgb(); //"rgb(17,34,51)"
+		>"#112233".hexToRgb(true); //[17,34,51]
+	*/
+
+	hexToRgb: function(array){
+		var hex = this.match('^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$');
+		return (hex) ? hex.hexToRgb(array) : false;
+	}
+
+});
+
+Array.extend({
+	
+	rgbToHex: function(array){
+		if (this.length < 3) return false;
+		if (this[3] && this[3] == 0) return 'transparent';
+		var hex = [];
+		for (var i = 0; i < 3; i++){
+			var bit = (this[i]-0).toString(16);
+			hex.push(bit.length == 1 ? '0'+bit : bit);
+		}
+		return array ? hex : '#'+hex.join('');
+	},
+	
+	hexToRgb: function(array){
+		if (this.length != 4) return false;
+		var rgb = [];
+		for (var i = 1; i < 4; i++){
+			if (this[i].length == 1) this[i] += this[i];
+			rgb.push(parseInt(this[i], 16));
+		}
+		return array ? rgb : 'rgb('+rgb.join(',')+')';
+	}
+
+});
+
+/*
+Class: Number
+	contains the internal method toInt.
+*/
+
+Number.extend({
+
+	/*
+	Property: toInt
+		Returns this number; useful because toInt must work on both Strings and Numbers.
+	*/
+
+	toInt: function(){
+		return parseInt(this);
+	},
+
+	toFloat: function(){
+		return parseFloat(this);
+	}
+
+});
+
+/* 
+Script: Function.js
+	Contains Function prototypes and utility functions .
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+
+Credits:
+	- Some functions are inspired by those found in prototype.js <http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio [dot] net, MIT-style license
+*/
+
+/*
+Class: Function
+	A collection of The Function Object prototype methods.
+*/
+
+Function.extend({
+
+	create: function(options){
+		var fn = this;
+		options = Object.extend({
+			'bind': fn,
+			'event': false,
+			'arguments': null,
+			'delay': false,
+			'periodical': false,
+			'attempt': false
+		}, options || {});
+		if (options.arguments != null && typeof options.arguments != 'undefined' && !(options.arguments instanceof Array))
+			options.arguments = [options.arguments];
+		return function(event){
+			var args = options.arguments || arguments;
+			if (options.event){
+				event = (options.event === true) ? event || window.event : new options.event(event);
+				args = [event].concat(args);
+			}
+			var returns = function(){
+				return fn.apply(options.bind, args);
+			};
+			if (options.delay) return setTimeout(returns, options.delay);
+			if (options.periodical) return setInterval(returns, options.periodical);
+			if (options.attempt){
+				try {
+					var result = returns();
+				} catch(err){
+					result = err;
+				} finally {
+					return result;
+				}
+			} else return returns();
+		};
+	},
+
+	/*
+	Property: pass
+		Shortcut to create closures with arguments and bind.
+
+	Returns:
+		a function.
+
+	Arguments:
+		args - the arguments passed. must be an array if arguments > 1
+		bind - optional, the object that the "this" of the function will refer to.
+
+	Example:
+		>myFunction.pass([arg1, arg2], myElement);
+	*/
+
+	pass: function(args, bind){
+		return this.create({'arguments': args, 'bind': bind});
+	},
+	
+	/*
+	Property: attempt
+		Tries to execute the function, returns either the function results or the error.
+
+	Arguments:
+		args - the arguments passed. must be an array if arguments > 1
+		bind - optional, the object that the "this" of the function will refer to.
+
+	Example:
+		>myFunction.attempt([arg1, arg2], myElement);
+	*/
+
+	attempt: function(args, bind){
+		return this.create({'arguments': args, 'bind': bind, 'attempt': true})();
+	},
+
+	/*
+	Property: bind
+		method to easily create closures with "this" altered.
+
+	Arguments:
+		bind - optional, the object that the "this" of the function will refer to.
+		args - optional, the arguments passed. must be an array if arguments > 1
+
+	Returns:
+		a function.
+
+	Example:
+		>function myFunction(){
+		>	this.setStyle('color', 'red');
+		>	// note that 'this' here refers to myFunction, not an element
+		>	// we'll need to bind this function to the element we want to alter
+		>};
+		>var myBoundFunction = myFunction.bind(myElement);
+		>myBoundFunction(); // this will make the element myElement red.
+	*/
+
+	bind: function(bind, args){
+		return this.create({'bind': bind, 'arguments': args});
+	},
+
+	/*
+	Property: bindAsEventListener
+		cross browser method to pass event firer
+
+	Arguments:
+		bind - optional, the object that the "this" of the function will refer to.
+		args - optional, the arguments passed. must be an array if arguments > 1
+
+	Returns:
+		a function with the parameter bind as its "this" and as a pre-passed argument event or window.event, depending on the browser.
+
+	Example:
+		>function myFunction(event){
+		>	alert(event.clientx) //returns the coordinates of the mouse..
+		>};
+		>myElement.onclick = myFunction.bindAsEventListener(myElement);
+	*/
+
+	bindAsEventListener: function(bind, args){
+		return this.create({'bind': bind, 'event': true, 'arguments': args});
+	},
+
+	/*
+	Property: delay
+		Delays the execution of a function by a specified duration.
+
+	Arguments:
+		ms - the duration to wait in milliseconds
+		bind - optional, the object that the "this" of the function will refer to.
+		args - optional, the arguments passed. must be an array if arguments > 1
+
+	Example:
+		>myFunction.delay(50, myElement) //wait 50 milliseconds, then call myFunction and bind myElement to it
+		>(function(){alert('one second later...')}).delay(1000); //wait a second and alert
+	*/
+
+	delay: function(ms, bind, args){
+		return this.create({'delay': ms, 'bind': bind, 'arguments': args})();
+	},
+
+	/*
+	Property: periodical
+		Executes a function in the specified intervals of time
+
+	Arguments:
+		ms - the duration of the intervals between executions.
+		bind - optional, the object that the "this" of the function will refer to.
+		args - optional, the arguments passed. must be an array if arguments > 1
+	*/
+
+	periodical: function(ms, bind, args){
+		return this.create({'periodical': ms, 'bind': bind, 'arguments': args})();
+	}
+
+});
+
+/*
+Script: Element.js
+	Contains useful Element prototypes, to be used with the dollar function <$>.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+
+Credits:
+	- Some functions are inspired by those found in prototype.js <http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio [dot] net, MIT-style license
+*/
+
+/*
+Class: Element
+	Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>.
+*/
+
+var Element = new Class({
+
+	/*
+	Property: initialize
+		Creates a new element of the type passed in.
+
+	Arguments:
+		el - the tag name for the element you wish to create.
+
+	Example:
+		>var div = new Element('div');
+	*/
+
+	initialize: function(el){
+		if ($type(el) == 'string') el = document.createElement(el);
+		return $(el);
+	}
+
+});
+
+/*
+Function: $()
+	returns the element passed in with all the Element prototypes applied.
+
+Arguments:
+	el - a reference to an actual element or a string representing the id of an element
+
+Example:
+	>$('myElement') // gets a DOM element by id with all the Element prototypes applied.
+	>var div = document.getElementById('myElement');
+	>$(div) //returns an Element also with all the mootools extentions applied.
+
+	You'll use this when you aren't sure if a variable is an actual element or an id, as
+	well as just shorthand for document.getElementById().
+
+Returns:
+	a DOM element or false (if no id was found).
+
+Note:
+	you need to call $ on an element only once to get all the prototypes.
+	But its no harm to call it multiple times, as it will detect if it has been already extended.
+*/
+
+function $(el){
+	if (!el) return false;
+	if (el._element_extended_ || [window, document].test(el)) return el;
+	if ($type(el) == 'string') el = document.getElementById(el);
+	if ($type(el) != 'element') return false;
+	if (['object', 'embed'].test(el.tagName.toLowerCase()) || el.extend) return el;
+	el._element_extended_ = true;
+	Garbage.collect(el);
+	el.extend = Object.extend;
+	if (!(el instanceof HTMLElement)) el.extend(Element.prototype);
+	return el;
+};
+
+//elements class
+
+var Elements = new Class({});
+
+new Object.Native(Elements);
+
+document.getElementsBySelector = document.getElementsByTagName;
+
+/*
+Function: $$()
+	Selects, and extends DOM elements.
+
+Arguments:
+	HTMLCollection(document.getElementsByTagName, element.childNodes), an array of elements, a string.
+
+Note:
+	if you loaded <Dom.js>, $$ will also accept CSS Selectors.
+
+Example:
+	>$$('a') //an array of all anchor tags on the page
+	>$$('a', 'b') //an array of all anchor and bold tags on the page
+	>$$('#myElement') //array containing only the element with id = myElement. (only with <Dom.js>)
+	>$$('#myElement a.myClass') //an array of all anchor tags with the class "myClass" within the DOM element with id "myElement" (only with <Dom.js>)
+
+Returns:
+	array - array of all the dom elements matched
+*/
+
+function $$(){
+	if (!arguments) return false;
+	if (arguments.length == 1){
+		if (!arguments[0]) return false;
+		if (arguments[0]._elements_extended_) return arguments[0];
+	}
+	var elements = [];
+	$each(arguments, function(selector){
+		switch ($type(selector)){
+			case 'element': elements.push($(selector)); break;
+			case 'string': selector = document.getElementsBySelector(selector);
+			default:
+			if (selector.length){
+				$each(selector, function(el){
+					if ($(el)) elements.push(el);
+				});
+			}
+		}
+	});
+	elements._elements_extended_ = true;
+	return Object.extend(elements, new Elements);
+};
+
+Elements.Multi = function(property){
+	return function(){
+		var args = arguments;
+		var items = [];
+		var elements = true;
+		$each(this, function(el){
+			var returns = el[property].apply(el, args);
+			if ($type(returns) != 'element') elements = false;
+			items.push(returns);
+		});
+		if (elements) items = $$(items);
+		return items;
+	};
+};
+
+Element.extend = function(properties){
+	for (var property in properties){
+		HTMLElement.prototype[property] = properties[property];
+		Element.prototype[property] = properties[property];
+		Elements.prototype[property] = Elements.Multi(property);
+	}
+};
+
+Element.extend({
+
+	inject: function(el, where){
+		el = $(el) || new Element(el);
+		switch (where){
+			case "before": $(el.parentNode).insertBefore(this, el); break;
+			case "after":
+				if (!el.getNext()) $(el.parentNode).appendChild(this);
+				else $(el.parentNode).insertBefore(this, el.getNext());
+				break;
+			case "inside": el.appendChild(this);
+		}
+		return this;
+	},
+
+	/*
+	Property: injectBefore
+		Inserts the Element before the passed element.
+
+	Parameteres:
+		el - a string representing the element to be injected in (myElementId, or div), or an element reference.
+		If you pass div or another tag, the element will be created.
+
+	Example:
+		>html:
+		><div id="myElement"></div>
+		><div id="mySecondElement"></div>
+		>js:
+		>$('mySecondElement').injectBefore('myElement');
+		>resulting html:
+		><div id="mySecondElement"></div>
+		><div id="myElement"></div>
+
+	*/
+
+	injectBefore: function(el){
+		return this.inject(el, 'before');
+	},
+
+	/*
+	Property: injectAfter
+		Same as <Element.injectBefore>, but inserts the element after.
+	*/
+
+	injectAfter: function(el){
+		return this.inject(el, 'after');
+	},
+
+	/*
+	Property: injectInside
+		Same as <Element.injectBefore>, but inserts the element inside.
+	*/
+
+	injectInside: function(el){
+		return this.inject(el, 'inside');
+	},
+
+	/*
+	Property: adopt
+		Inserts the passed element inside the Element. Works as <Element.injectInside> but in reverse.
+
+	Parameteres:
+		el - a string representing the element to be injected in (myElementId, or div), or an element reference.
+		If you pass div or another tag, the element will be created.
+	*/
+
+	adopt: function(el){
+		this.appendChild($(el) || new Element(el));
+		return this;
+	},
+
+	/*
+	Property: remove
+		Removes the Element from the DOM.
+
+	Example:
+		>$('myElement').remove() //bye bye
+	*/
+
+	remove: function(){
+		this.parentNode.removeChild(this);
+		return this;
+	},
+
+	/*
+	Property: clone
+		Clones the Element and returns the cloned one.
+
+	Returns: 
+		the cloned element
+
+	Example:
+		>var clone = $('myElement').clone().injectAfter('myElement');
+		>//clones the Element and append the clone after the Element.
+	*/
+
+	clone: function(contents){
+		var el = this.cloneNode(contents !== false);
+		return $(el);
+	},
+
+	/*
+	Property: replaceWith
+		Replaces the Element with an element passed.
+
+	Parameteres:
+		el - a string representing the element to be injected in (myElementId, or div), or an element reference.
+		If you pass div or another tag, the element will be created.
+
+	Returns:
+		the passed in element
+
+	Example:
+		>$('myOldElement').replaceWith($('myNewElement')); //$('myOldElement') is gone, and $('myNewElement') is in its place.
+	*/
+
+	replaceWith: function(el){
+		el = $(el) || new Element(el);
+		this.parentNode.replaceChild(el, this);
+		return el;
+	},
+
+	/*
+	Property: appendText
+		Appends text node to a DOM element.
+
+	Arguments:
+		text - the text to append.
+
+	Example:
+		><div id="myElement">hey</div>
+		>$('myElement').appendText(' howdy'); //myElement innerHTML is now "hey howdy"
+	*/
+
+	appendText: function(text){
+		if (window.ie){
+			switch(this.getTag()){
+				case 'style': this.styleSheet.cssText = text; return this;
+				case 'script': this.setProperty('text', text); return this;
+			}
+		}
+		this.appendChild(document.createTextNode(text));
+		return this;
+	},
+
+	/*
+	Property: hasClass
+		Tests the Element to see if it has the passed in className.
+
+	Returns:
+	 	true - the Element has the class
+	 	false - it doesn't
+	 
+	Arguments:
+		className - the class name to test.
+	 
+	Example:
+		><div id="myElement" class="testClass"></div>
+		>$('myElement').hasClass('testClass'); //returns true
+	*/
+
+	hasClass: function(className){
+		return this.className.test('(?:^|\\s+)' + className + '(?:\\s+|$)');
+	},
+
+	/*
+	Property: addClass
+		Adds the passed in class to the Element, if the element doesnt already have it.
+
+	Arguments:
+		className - the class name to add
+
+	Example: 
+		><div id="myElement" class="testClass"></div>
+		>$('myElement').addClass('newClass'); //<div id="myElement" class="testClass newClass"></div>
+	*/
+
+	addClass: function(className){
+		if (!this.hasClass(className)) this.className = (this.className+' '+className).clean();
+		return this;
+	},
+
+	/*
+	Property: removeClass
+		works like <Element.addClass>, but removes the class from the element.
+	*/
+
+	removeClass: function(className){
+		if (this.hasClass(className)) this.className = this.className.replace(className, '').clean();
+		return this;
+	},
+
+	/*
+	Property: toggleClass
+		Adds or removes the passed in class name to the element, depending on if it's present or not.
+
+	Arguments:
+		className - the class to add or remove
+
+	Example:
+		><div id="myElement" class="myClass"></div>
+		>$('myElement').toggleClass('myClass');
+		><div id="myElement" class=""></div>
+		>$('myElement').toggleClass('myClass');
+		><div id="myElement" class="myClass"></div>
+	*/
+
+	toggleClass: function(className){
+		return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
+	},
+
+	/*
+	Property: setStyle
+		Sets a css property to the Element.
+
+		Arguments:
+			property - the property to set
+			value - the value to which to set it
+
+		Example:
+			>$('myElement').setStyle('width', '300px'); //the width is now 300px
+	*/
+
+	setStyle: function(property, value){
+		if (property == 'opacity') this.setOpacity(parseFloat(value));
+		else this.style[property.camelCase()] = (value.push) ? value.rgbToHex() : value;
+		return this;
+	},
+
+	/*
+	Property: setStyles
+		Applies a collection of styles to the Element.
+
+	Arguments:
+		source - an object or string containing all the styles to apply
+
+	Examples:
+		>$('myElement').setStyles({
+		>	border: '1px solid #000',
+		>	width: '300px',
+		>	height: '400px'
+		>});
+
+		OR
+
+		>$('myElement').setStyle('border: 1px solid #000; width: 300px; height: 400px;');
+	*/
+
+	setStyles: function(source){
+		switch ($type(source)){
+			case 'object':
+				for (var property in source) this.setStyle(property, source[property]);
+				break;
+			case 'string':
+				if (window.ie) this.cssText = source;
+				else this.setAttribute('style', source);
+		}
+		return this;
+	},
+
+	/*
+	Property: setOpacity
+		Sets the opacity of the Element, and sets also visibility == "hidden" if opacity == 0, and visibility = "visible" if opacity == 1.
+
+	Arguments:
+		opacity - Accepts numbers from 0 to 1.
+
+	Example:
+		>$('myElement').setOpacity(0.5) //make it 50% transparent
+	*/
+
+	setOpacity: function(opacity){
+		if (opacity == 0){
+			if(this.style.visibility != "hidden") this.style.visibility = "hidden";
+		} else {
+			if(this.style.visibility != "visible") this.style.visibility = "visible";
+		}
+		if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
+		if (window.ie) this.style.filter = "alpha(opacity=" + opacity*100 + ")";
+		this.style.opacity = this.opacity = opacity;
+		return this;
+	},
+
+	/*
+	Property: getStyle
+		Returns the style of the Element given the property passed in.
+
+	Arguments:
+		property - the css style property you want to retrieve
+
+	Example:
+		>$('myElement').getStyle('width'); //returns "400px"
+		>//but you can also use
+		>$('myElement').getStyle('width').toInt(); //returns "400"
+
+	Returns:
+		the style as a string
+	*/
+
+	getStyle: function(property){
+		property = property.camelCase();
+		var style = this.style[property] || false;
+		if (!$chk(style)){
+			if (property == 'opacity') return $chk(this.opacity) ? this.opacity : 1;
+			if (['margin', 'padding'].test(property)){
+				return [this.getStyle(property+'-top') || 0, this.getStyle(property+'-right') || 0,
+						this.getStyle(property+'-bottom') || 0, this.getStyle(property+'-left') || 0].join(' ');
+			}
+			if (document.defaultView) style = document.defaultView.getComputedStyle(this, null).getPropertyValue(property.hyphenate());
+			else if (this.currentStyle) style = this.currentStyle[property];
+		}
+		return (style && property.test('color', 'i') && style.test('rgb')) ? style.rgbToHex() : style;
+	},
+
+	/*
+	Property: addEvent
+		Attaches an event listener to a DOM element.
+
+	Arguments:
+		type - the event to monitor ('click', 'load', etc) without the prefix 'on'.
+		fn - the function to execute
+
+	Example:
+		>$('myElement').addEvent('click', function(){alert('clicked!')});
+	*/
+
+	addEvent: function(type, fn){
+		this.events = this.events || {};
+		this.events[type] = this.events[type] || {'keys': [], 'values': []};
+		if (!this.events[type].keys){
+			this.events[type].keys = [];
+		}
+		if (!this.events[type].values){
+			this.events[type].values = [];
+		}
+		if (!this.events[type].keys.test(fn)){
+			this.events[type].keys.push(fn);
+			if (this.addEventListener){
+				this.addEventListener((type == 'mousewheel' && window.gecko) ? 'DOMMouseScroll' : type, fn, false);
+			} else {
+				fn = fn.bind(this);
+				this.attachEvent('on'+type, fn);
+				this.events[type].values.push(fn);
+			}
+		}
+		return this;
+	},
+
+	addEvents: function(source){
+		if (source){
+			for (var type in source) this.addEvent(type, source[type]);
+		}
+		return this;
+	},
+
+	/*
+	Property: removeEvent
+		Works as Element.addEvent, but instead removes the previously added event listener.
+	*/
+
+	removeEvent: function(type, fn){
+		if (this.events && this.events[type]){
+			var pos = this.events[type].keys.indexOf(fn);
+			if (pos == -1) return this;
+			var key = this.events[type].keys.splice(pos,1)[0];
+			if (this.removeEventListener){
+				this.removeEventListener((type == 'mousewheel' && window.gecko) ? 'DOMMouseScroll' : type, key, false);
+			} else {
+				this.detachEvent('on'+type, this.events[type].values.splice(pos,1)[0]);
+			}
+		}
+		return this;
+	},
+
+	/*
+	Property: removeEvents
+		removes all events of a certain type from an element. if no argument is passed in, removes all events.
+	*/
+
+	removeEvents: function(type){
+		if (this.events){
+			if (type){
+				if (this.events[type]){
+					this.events[type].keys.each(function(fn){
+						this.removeEvent(type, fn);
+					}, this);
+					this.events[type] = null;
+				}
+			} else {
+				for (var evType in this.events) this.removeEvents(evType);
+				this.events = null;
+			}
+		}
+		return this;
+	},
+
+	/*
+	Property: fireEvent
+		executes all events of the specified type present in the element.
+	*/
+
+	fireEvent: function(type, args){
+		if (this.events && this.events[type]){
+			args = args || [];
+			if ($type(args) != 'array') args = [args];
+			this.events[type].keys.each(function(fn){
+				fn.apply(this, args);
+			}, this);
+		}
+	},
+
+	getBrother: function(what){
+		var el = this[what+'Sibling'];
+		while ($type(el) == 'whitespace') el = el[what+'Sibling'];
+		return $(el);
+	},
+
+	/*
+	Property: getPrevious
+		Returns the previousSibling of the Element, excluding text nodes.
+
+	Example:
+		>$('myElement').getPrevious(); //get the previous DOM element from myElement
+
+	Returns:
+		the sibling element or undefined if none found.
+	*/
+
+	getPrevious: function(){
+		return this.getBrother('previous');
+	},
+
+	/*
+	Property: getNext
+		Works as Element.getPrevious, but tries to find the nextSibling.
+	*/
+
+	getNext: function(){
+		return this.getBrother('next');
+	},
+
+	/*
+	Property: getFirst
+		Works as <Element.getPrevious>, but tries to find the firstChild.
+	*/
+
+	getFirst: function(){
+		var el = this.firstChild;
+		while ($type(el) == 'whitespace') el = el.nextSibling;
+		return $(el);
+	},
+
+	/*
+	Property: getLast
+		Works as <Element.getPrevious>, but tries to find the lastChild.
+	*/
+
+	getLast: function(){
+		var el = this.lastChild;
+		while ($type(el) == 'whitespace') el = el.previousSibling;
+		return $(el);
+	},
+	
+	/*
+	Property: getParent
+		returns the $(element.parentNode)
+	*/
+
+	getParent: function(){
+		return $(this.parentNode);
+	},
+	
+	/*
+	Property: getChildren
+		returns all the $(element.childNodes), excluding text nodes. Returns as <Elements>.
+	*/
+
+	getChildren: function(){
+		return $$(this.childNodes);
+	},
+
+	/*
+	Property: setProperty
+		Sets an attribute for the Element.
+
+	Arguments:
+		property - the property to assign the value passed in
+		value - the value to assign to the property passed in
+
+	Example:
+		>$('myImage').setProperty('src', 'whatever.gif'); //myImage now points to whatever.gif for its source
+	*/
+
+	setProperty: function(property, value){
+		switch (property){
+			case 'class': this.className = value; break;
+			case 'style': this.setStyles(value); break;
+			case 'name': if (window.ie6){
+				var el = $(document.createElement('<'+this.getTag()+' name="'+value+'" />'));
+				$each(this.attributes, function(attribute){
+					if (attribute.name != 'name') el.setProperty(attribute.name, attribute.value);
+				});
+				if (this.parentNode) this.replaceWith(el);
+				return el;
+			}
+			default: this.setAttribute(property, value);
+		}
+		return this;
+	},
+
+	/*
+	Property: setProperties
+		Sets numerous attributes for the Element.
+
+	Arguments:
+		source - an object with key/value pairs.
+
+	Example:
+		>$('myElement').setProperties({
+		>	src: 'whatever.gif',
+		>	alt: 'whatever dude'
+		>});
+		><img src="whatever.gif" alt="whatever dude">
+	*/
+
+	setProperties: function(source){
+		for (var property in source) this.setProperty(property, source[property]);
+		return this;
+	},
+
+	/*
+	Property: setHTML
+		Sets the innerHTML of the Element.
+
+	Arguments:
+		html - the new innerHTML for the element.
+
+	Example:
+		>$('myElement').setHTML(newHTML) //the innerHTML of myElement is now = newHTML
+	*/
+
+	setHTML: function(html){
+		this.innerHTML = html;
+		return this;
+	},
+
+	/*
+	Property: getProperty
+		Gets the an attribute of the Element.
+
+	Arguments:
+		property - the attribute to retrieve
+
+	Example:
+		>$('myImage').getProperty('src') // returns whatever.gif
+
+	Returns:
+		the value, or an empty string
+	*/
+
+	getProperty: function(property){
+		return (property == 'class') ? this.className : this.getAttribute(property);
+	},
+
+	/*
+	Property: getTag
+		Returns the tagName of the element in lower case.
+
+	Example:
+		>$('myImage').getTag() // returns 'img'
+
+	Returns:
+		The tag name in lower case
+	*/
+
+	getTag: function(){
+		return this.tagName.toLowerCase();
+	},
+
+	getOffsets: function(){
+		var el = this, offsetLeft = 0, offsetTop = 0;
+		do {
+			offsetLeft += el.offsetLeft || 0;
+			offsetTop += el.offsetTop || 0;
+			el = el.offsetParent;
+		} while (el);
+		return {'x': offsetLeft, 'y': offsetTop};
+	},
+
+	/*
+	Property: scrollTo
+		scrolls the element to the specified coordinated (if the element has an overflow)
+
+	Arguments:
+		x - the x coordinate
+		y - the y coordinate
+
+	Example:
+		>$('myElement').scrollTo(0, 100)
+	*/
+
+	scrollTo: function(x, y){
+		this.scrollLeft = x;
+		this.scrollTop = y;
+	},
+
+	/*
+	Property: getSize
+		return an Object representing the size/scroll values of the element.
+
+	Example:
+		(start code)
+		$('myElement').getSize();
+		(end)
+
+	Returns:
+		(start code)
+		{
+			'scroll': {'x': 100, 'y': 100},
+			'size': {'x': 200, 'y': 400},
+			'scrollSize': {'x': 300, 'y': 500}
+		}
+		(end)
+	*/
+
+	getSize: function(){
+		return {
+			'scroll': {'x': this.scrollLeft, 'y': this.scrollTop},
+			'size': {'x': this.offsetWidth, 'y': this.offsetHeight},
+			'scrollSize': {'x': this.scrollWidth, 'y': this.scrollHeight}
+		};
+	},
+
+	/*
+	Property: getTop
+		Returns the distance from the top of the window to the Element.
+	*/
+
+	getTop: function(){
+		return this.getOffsets().y;
+	},
+
+	/*
+	Property: getLeft
+		Returns the distance from the left of the window to the Element.
+	*/
+
+	getLeft: function(){
+		return this.getOffsets().x;
+	},
+
+	/*
+	Property: getPosition
+		Returns an object with width, height, left, right, top, and bottom, representing the values of the Element
+
+	Example:
+		(start code)
+		var myValues = $('myElement').getPosition();
+		(end)
+
+	Returns:
+		(start code)
+		{
+			width: 200,
+			height: 300,
+			left: 100,
+			top: 50,
+			right: 300,
+			bottom: 350
+		}
+		(end)
+	*/
+
+	getPosition: function(){
+		var offs = this.getOffsets();
+		var obj = {
+			'width': this.offsetWidth,
+			'height': this.offsetHeight,
+			'left': offs.x,
+			'top': offs.y
+		};
+		obj.right = obj.left + obj.width;
+		obj.bottom = obj.top + obj.height;
+		return obj;
+	},
+
+	/*
+	Property: getValue
+		Returns the value of the Element, if its tag is textarea, select or input. no multiple select support.
+	*/
+
+	getValue: function(){
+		switch (this.getTag()){
+			case 'select': if (this.selectedIndex != -1) return this.options[this.selectedIndex].value; break;
+			case 'input': if (!(this.checked && ['checkbox', 'radio'].test(this.type)) && !['hidden', 'text', 'password'].test(this.type)) break;
+			case 'textarea': return this.value;
+		}
+		return false;
+	}
+
+});
+
+var Window = window;
+
+window.addEvent = document.addEvent = Element.prototype.addEvent;
+window.removeEvent = document.removeEvent = Element.prototype.removeEvent;
+
+var Garbage = {
+
+	elements: [],
+
+	collect: function(element){
+		Garbage.elements.push(element);
+	},
+
+	trash: function(){
+		window.removeEvent('unload', Garbage.trash);
+		Garbage.elements.each(function(el){
+			el.removeEvents();
+			for (var p in Element.prototype) HTMLElement[p] = window[p] = document[p] = el[p] = null;
+			el.extend = null;
+		});
+	}
+
+};
+
+window.addEvent('unload', Garbage.trash);
+
+/*
+Script: Event.js
+	Event class
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>, Michael Jackson, <http://ajaxon.com/michael>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Event
+	Cross browser methods to manage events.
+
+Arguments:
+	event - the event
+
+Properties:
+	shift - true if the user pressed the shift
+	control - true if the user pressed the control 
+	alt - true if the user pressed the alt
+	meta - true if the user pressed the meta key
+	code - the keycode of the key pressed
+	page.x - the x position of the mouse, relative to the full window
+	page.y - the y position of the mouse, relative to the full window
+	client.x - the x position of the mouse, relative to the viewport
+	client.y - the y position of the mouse, relative to the viewport
+	key - the key pressed as a lowercase string. key also returns 'enter', 'up', 'down', 'left', 'right', 'space', 'backspace', 'delete', 'esc'. Handy for these special keys.
+	target - the event target
+	relatedTarget - the event related target
+
+Example:
+	(start code)
+	$('myLink').onkeydown = function(event){
+		var event = new Event(event);
+		//event is now the Event class.
+		alert(event.key); //returns the lowercase letter pressed
+		alert(event.shift); //returns true if the key pressed is shift
+		if (event.key == 's' && event.control) alert('document saved');
+	};
+	(end)
+*/
+
+var Event = new Class({
+
+	initialize: function(event){
+		this.event = event || window.event;
+		this.type = this.event.type;
+		this.target = this.event.target || this.event.srcElement;
+		if (this.target.nodeType == 3) this.target = this.target.parentNode; // Safari
+		this.shift = this.event.shiftKey;
+		this.control = this.event.ctrlKey;
+		this.alt = this.event.altKey;
+		this.meta = this.event.metaKey;
+		if (['DOMMouseScroll', 'mousewheel'].test(this.type)){
+			this.wheel = this.event.wheelDelta ? (this.event.wheelDelta / (window.opera ? -120 : 120)) : -(this.event.detail || 0) / 3;
+		} else if (this.type.test('key')){
+			this.code = this.event.which || this.event.keyCode;
+			for (var name in Event.keys){
+				if (Event.keys[name] == this.code) var special = name;
+			}
+			this.key = special || String.fromCharCode(this.code).toLowerCase();
+
+		} else if (this.type.test('mouse') || this.type == 'click'){
+			this.page = {
+				'x': this.event.pageX || this.event.clientX + document.documentElement.scrollLeft,
+				'y': this.event.pageY || this.event.clientY + document.documentElement.scrollTop
+			};
+			this.client = {
+				'x': this.event.pageX ? this.event.pageX - window.pageXOffset : this.event.clientX,
+				'y': this.event.pageY ? this.event.pageY - window.pageYOffset : this.event.clientY
+			};
+			this.rightClick = (this.event.which == 3) || (this.event.button == 2);
+			switch (this.type){
+				case 'mouseover': this.relatedTarget = this.event.relatedTarget || this.event.fromElement; break;
+				case 'mouseout': this.relatedTarget = this.event.relatedTarget || this.event.toElement;
+			}
+		}
+	},
+
+	/*
+	Property: stop
+		cross browser method to stop an event
+	*/
+
+	stop: function() {
+		this.stopPropagation();
+		this.preventDefault();
+		return this;
+	},
+
+	/*
+	Property: stopPropagation
+		cross browser method to stop the propagation of an event
+	*/
+
+	stopPropagation: function(){
+		if (this.event.stopPropagation) this.event.stopPropagation();
+		else this.event.cancelBubble = true;
+		return this;
+    },
+
+	/*
+	Property: preventDefault
+		cross browser method to prevent the default action of the event
+	*/
+
+	preventDefault: function(){
+		if (this.event.preventDefault) this.event.preventDefault();
+		else this.event.returnValue = false;
+		return this;
+	}
+
+});
+
+Event.keys = {
+	'enter': 13,
+	'up': 38,
+	'down': 40,
+	'left': 37,
+	'right': 39,
+	'esc': 27,
+	'space': 32,
+	'backspace': 8,
+	'delete': 46
+};
+
+Function.extend({
+
+	/*
+	Property: bindWithEvent
+		automatically passes mootools Event Class.
+
+	Arguments:
+		bind - optional, the object that the "this" of the function will refer to.
+
+	Returns:
+		a function with the parameter bind as its "this" and as a pre-passed argument event or window.event, depending on the browser.
+
+	Example:
+		>function myFunction(event){
+		>	alert(event.clientx) //returns the coordinates of the mouse..
+		>};
+		>myElement.onclick = myFunction.bindWithEvent(myElement);
+	*/
+
+	bindWithEvent: function(bind, args){
+		return this.create({'bind': bind, 'arguments': args, 'event': Event});
+	}
+
+});
+
+
+/*
+Script: Common.js
+	Contains common implementations for custom classes. In Mootools is implemented in <Ajax> and <Fx>.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Chain
+	An "Utility" Class. Its methods can be implemented with <Class.implement> into any <Class>.
+	Currently implemented in <Fx> and <Ajax>. In <Fx> for example, is used to execute a list of function, one after another, once the effect is completed.
+	The functions will not be fired all togheter, but one every completion, to create custom complex animations.
+
+Example:
+	(start code)
+	var myFx = new Fx.Style('element', 'opacity');
+
+	myFx.start(1,0).chain(function(){
+		myFx.start(0,1);
+	}).chain(function(){
+		myFx.start(1,0);
+	}).chain(function(){
+		myFx.start(0,1);
+	});
+	//the element will appear and disappear three times
+	(end)
+*/
+
+var Chain = new Class({
+
+	/*
+	Property: chain
+		adds a function to the Chain instance stack.
+
+	Arguments:
+		fn - the function to append.
+	*/
+
+	chain: function(fn){
+		this.chains = this.chains || [];
+		this.chains.push(fn);
+		return this;
+	},
+
+	/*
+	Property: callChain
+		Executes the first function of the Chain instance stack, then removes it. The first function will then become the second.
+	*/
+
+	callChain: function(){
+		if (this.chains && this.chains.length) this.chains.splice(0, 1)[0].delay(10, this);
+	},
+
+	/*
+	Property: clearChain
+		Clears the stack of a Chain instance.
+	*/
+
+	clearChain: function(){
+		this.chains = [];
+	}
+
+});
+
+/*
+Class: Events
+	An "Utility" Class. Its methods can be implemented with <Class.implement> into any <Class>.
+	In <Fx> Class, for example, is used to give the possibility add any number of functions to the Effects events, like onComplete, onStart, onCancel
+
+Example:
+	(start code)
+	var myFx = new Fx.Style('element', 'opacity').addEvent('onComplete', function(){
+		alert('the effect is completed');
+	}).addEvent('onComplete', function(){
+		alert('I told you the effect is completed');
+	});
+
+	myFx.start(0,1);
+	//upon completion it will display the 2 alerts, in order.
+	(end)
+*/
+
+var Events = new Class({
+
+	/*
+	Property: addEvent
+		adds an event to the stack of events of the Class instance.
+	*/
+
+	addEvent: function(type, fn){
+		if (fn != Class.empty){
+			this.events = this.events || {};
+			this.events[type] = this.events[type] || [];
+			if (!this.events[type].test(fn)) this.events[type].push(fn);
+		}
+		return this;
+	},
+
+	/*
+	Property: fireEvent
+		fires all events of the specified type in the Class instance.
+	*/
+
+	fireEvent: function(type, args, delay){
+		if (this.events && this.events[type]){
+			this.events[type].each(function(fn){
+				fn.create({'bind': this, 'delay': delay, 'arguments': args})();
+			}, this);
+		}
+		return this;
+	},
+
+	/*
+	Property: removeEvent
+		removes an event from the stack of events of the Class instance.
+	*/
+
+	removeEvent: function(type, fn){
+		if (this.events && this.events[type]) this.events[type].remove(fn);
+		return this;
+	}
+
+});
+
+/*
+Class: Options
+	An "Utility" Class. Its methods can be implemented with <Class.implement> into any <Class>.
+	Used to automate the options settings, also adding Class <Events> when the option begins with on.
+*/
+
+var Options = new Class({
+
+	/*
+	Property: setOptions
+		sets this.options
+
+	Arguments:
+		defaults - the default set of options
+		options - the user entered options. can be empty too.
+
+	Note:
+		if your Class has <Events> implemented, every option beginning with on, followed by a capital letter (onComplete) becomes an Class instance event.
+	*/
+
+	setOptions: function(defaults, options){
+		this.options = Object.extend(defaults, options);
+		if (this.addEvent){
+			for (var option in this.options){
+				if (($type(this.options[option]) == 'function') && option.test('^on[A-Z]')) this.addEvent(option, this.options[option]);
+			}
+		}
+		return this;
+	}
+
+});
+
+/*
+Script: Dom.js
+	Css Query related function and <Element> extensions
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/* Section: Utility Functions */
+
+/* 
+Function: $E 
+	Selects a single (i.e. the first found) Element based on the selector passed in and an optional filter element.
+
+Arguments:
+	selector - the css selector to match
+	filter - optional; a DOM element to limit the scope of the selector match; defaults to document.
+
+Example:
+	>$E('a', 'myElement') //find the first anchor tag inside the DOM element with id 'myElement'
+
+Returns:
+	a DOM element - the first element that matches the selector
+*/
+
+function $E(selector, filter){
+	return ($(filter) || document).getElement(selector);
+};
+
+/*
+Function: $ES
+	Returns a collection of Elements that match the selector passed in limited to the scope of the optional filter.
+	See Also: <Element.getElements> for an alternate syntax.
+
+Returns:
+	an array of dom elements that match the selector within the filter
+
+Arguments:
+	selector - css selector to match
+	filter - optional; a DOM element to limit the scope of the selector match; defaults to document.
+
+Examples:
+	>$ES("a") //gets all the anchor tags; synonymous with $$("a")
+	>$ES('a','myElement') //get all the anchor tags within $('myElement')
+*/
+
+function $ES(selector, filter){
+	return ($(filter) || document).getElementsBySelector(selector);
+};
+
+/*
+Class: Element
+	Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>.
+*/
+
+Element.extend({
+
+	/*
+	Property: getElements 
+		Gets all the elements within an element that match the given (single) selector.
+
+	Arguments:
+		selector - the css selector to match
+
+	Example:
+		>$('myElement').getElements('a'); // get all anchors within myElement
+
+	Credits:
+		Say thanks to Christophe Beyls <http://digitalia.be> for the new regular expression that rules getElements, a big step forward in terms of speed.
+	*/
+
+	getElements: function(selector){
+		var filters = [];
+		selector.clean().split(' ').each(function(sel, i){
+			var param = sel.match('^(\\w*|\\*)(?:#([\\w_-]+)|\\.([\\w_-]+))?(?:\\[["\']?(\\w+)["\']?(?:([\\*\\^\\$]?=)["\']?(\\w*)["\']?)?\\])?$');
+			//PARAM ARRAY: 0 = full string: 1 = tag; 2 = id; 3 = class; 4 = attribute; 5 = operator; 6 = value;
+			if (!param) return;
+			param[1] = param[1] || '*';
+			if (i == 0){
+				if (param[2]){
+					var el = this.getElementById(param[2]);
+					if (!el || ((param[1] != '*') && (Element.prototype.getTag.call(el) != param[1]))) return;
+					filters = [el];
+				} else {
+					filters = $A(this.getElementsByTagName(param[1]));
+				}
+			} else {
+				filters = Elements.prototype.filterByTagName.call(filters, param[1]);
+				if (param[2]) filters = Elements.prototype.filterById.call(filters, param[2]);
+			}
+			if (param[3]) filters = Elements.prototype.filterByClassName.call(filters, param[3]);
+			if (param[4]) filters = Elements.prototype.filterByAttribute.call(filters, param[4], param[6], param[5]);
+		}, this);
+		return $$(filters);
+	},
+
+	/*
+	Property: getElementById
+		Targets an element with the specified id found inside the Element. Does not overwrite document.getElementById.
+
+	Arguments:
+		id - the id of the element to find.
+	*/
+
+	getElementById: function(id){
+		var el = document.getElementById(id);
+		if (!el) return false;
+		for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
+			if (!parent) return false;
+		}
+		return el;
+	},
+
+	/*
+	Property: getElement
+		Same as <Element.getElements>, but returns only the first. Alternate syntax for <$E>, where filter is the Element.
+	*/
+
+	getElement: function(selector){
+		return this.getElementsBySelector(selector)[0];
+	},
+
+	/*
+	Property: getElementsBySelector
+		Same as <Element.getElements>, but allows for comma separated selectors, as in css. Alternate syntax for <$$>, where filter is the Element.
+
+	*/
+
+	getElementsBySelector: function(selector){
+		var els = [];
+		selector.split(',').each(function(sel){
+			els.extend(this.getElements(sel));
+		}, this);
+		return $$(els);
+	}
+
+});
+
+document.extend = Object.extend;
+
+/* Section: document related functions */
+
+document.extend({
+	/*
+	Function: document.getElementsByClassName 
+		Returns all the elements that match a specific class name. 
+		Here for compatibility purposes. can also be written: document.getElements('.className'), or $$('.className')
+	*/
+
+	getElementsByClassName: function(className){
+		return document.getElements('.'+className);
+	},
+	getElement: Element.prototype.getElement,
+	getElements: Element.prototype.getElements,
+	getElementsBySelector: Element.prototype.getElementsBySelector
+
+});
+
+/*
+Class: Elements
+	Methods for dom queries arrays, as <$$>.
+*/
+
+Elements.extend({
+
+	//internal methods
+
+	filterById: function(id, tag){
+		var found = [];
+		this.each(function(el){
+			if (el.id == id) found.push(el);
+		});
+		return found;
+	},
+
+	filterByClassName: function(className){
+		var found = [];
+		this.each(function(el){
+			if (Element.prototype.hasClass.call(el, className)) found.push(el);
+		});
+		return found;
+	},
+
+	filterByTagName: function(tagName){
+		var found = [];
+		this.each(function(el){
+			found.extend(el.getElementsByTagName(tagName));
+		});
+		return found;
+	},
+
+	filterByAttribute: function(name, value, operator){
+		var found = [];
+		this.each(function(el){
+			var att = el.getAttribute(name);
+			if (!att) return found;
+			if (!operator) return found.push(el);
+
+			switch (operator){
+				case '*=': if (att.test(value)) found.push(el); break;
+				case '=': if (att == value) found.push(el); break;
+				case '^=': if (att.test('^'+value)) found.push(el); break;
+				case '$=': if (att.test(value+'$')) found.push(el);
+			}
+			return found;
+		});
+		return found;
+	}
+
+});
+
+/*
+Script: Hash.js
+	Contains the class Hash.
+
+Author:
+	Christophe Beyls <http://digitalia.be>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Hash
+	It wraps an object that it uses internally as a map. The user must use put(), get(), and remove() to add/change, retrieve and remove values, it must not access the internal object directly. With this implementation, null values are not allowed.
+
+Example:
+	(start code)
+	var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
+	hash.remove('b'); // b is removed.
+	hash.set('c', 'hello');
+	hash.get('c'); // returns 'hello'
+	hash.length // returns 2 (a and b)
+	(end)
+*/
+
+var Hash = new Class({
+
+	length: 0,
+
+	initialize: function(obj) {
+		this.obj = {};
+		for (var property in obj) {
+			this.obj[property] = obj[property];
+			this.length++;
+		}
+	},
+
+	get: function(key) {
+		return this.obj[key];
+	},
+
+	set: function(key, value) {
+		if (value == null) return false;
+		if (this.obj[key] == undefined) this.length++;
+		this.obj[key] = value;
+		return this;
+	},
+
+	remove: function(key) {
+		if (this.obj[key] == undefined) return false;
+		var obj = {};
+		this.length--;
+		for (var property in this.obj){
+			if (property != key) obj[property] = this.obj[property];
+		}
+		this.obj = obj;
+		return this;
+	},
+
+	each: function(fn, bind) {
+		for (var property in this.obj) fn.call(bind || this, property, this.obj[property]);
+	},
+	
+	extend: function(obj){
+		this.initialize(Object.extend(this.obj, obj));
+		return this;
+	},
+
+	empty: function() {
+		return (this.length == 0);
+	},
+
+	keys: function() {
+		var keys = [];
+		for (var property in this.obj) keys.push(property);
+		return keys;
+	},
+
+	values: function() {
+		var values = [];
+		for (var property in this.obj) values.push(this.obj[property]);
+		return values;
+	}
+
+});
+
+/*
+Function: $H
+	Shortcut to create an Hash from an Object.
+*/
+
+function $H(obj) {
+	return new Hash(obj);
+};
+
+/*
+Script: Color.js
+	Contains the Color class.
+
+Author:
+	Michael Jackson <http://ajaxon.com/michael>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Color
+	Creates a new Color Object, which is an array with some color specific methods.
+
+Example:
+	(start code)
+	var black = new Color('#000');
+	var purple = new Color([255,0,255]);
+	// mix black with white and purple, each time at 10% of the new color
+	var darkpurple = black.mix('#fff', purple, 10);
+	$('myDiv').setStyle('background-color', darkpurple);
+	(end)
+*/
+
+var Color = new Class({
+
+	initialize: function(color){
+		if (color.mix && color.invert) return color;
+		var rgb = (color.push) ? color : color.hexToRgb(true);
+		return Object.extend(rgb, Color.prototype);
+	},
+	
+	mix: function(){
+		var colors = $A(arguments);
+		var alpha = 50;
+		if ($type(colors[colors.length-1]) == 'number') alpha = colors.pop();
+		var rgb = this.copy();
+		colors.each(function(color){
+			color = new Color(color);
+			for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));
+		});
+		return new Color(rgb);
+	},
+
+	invert: function(){
+		var rgb = [];
+		for (var i = 0; i < 3; i++) rgb.push(255 - this[i]);
+		return new Color(rgb);
+	}
+
+});
+
+function $C(color){
+	return new Color(color);
+};
+
+/*
+Script: Window.Base.js
+	Contains Window.onDomReady and Window.disableImageCache
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Window
+	Cross browser methods to get the window size, onDomReady method.
+*/
+
+window.extend = Object.extend;
+
+window.extend({
+
+	/*
+	Function: window.disableImageCache
+		Disables background image chache for internex explorer, to prevent flickering. 
+		To be called if you have effects with background images, and they flicker.
+
+	Example:
+		Window.disableImageCache();
+	*/
+
+	disableImageCache: function(){
+		if (this.ie6) try {document.execCommand("BackgroundImageCache", false, true);} catch (e){};
+	},
+
+	addEvent: function(type, fn){
+		if (type == 'domready'){
+			if (this.loaded) fn();
+			else if (!this.events || !this.events.domready){
+				var domReady = function(){
+					if (this.loaded) return;
+					this.loaded = true;
+					if (this.timer) this.timer = $clear(this.timer);
+					Element.prototype.fireEvent.call(this, 'domready');
+					this.events.domready = null;
+				}.bind(this);
+				if (document.readyState && this.khtml){ //safari and konqueror
+					this.timer = function(){
+						if (['loaded','complete'].test(document.readyState)) domReady();
+					}.periodical(50);
+				}
+				else if (document.readyState && this.ie){ //ie
+					document.write("<script id=ie_ready defer src=javascript:void(0)><\/script>");
+					$('ie_ready').onreadystatechange = function(){
+						if (this.readyState == 'complete') domReady();
+					};
+				} else { //others
+					this.addEvent("load", domReady);
+					document.addEvent("DOMContentLoaded", domReady);
+				}
+			}
+		}
+		Element.prototype.addEvent.call(this, type, fn);
+		return this;
+	},
+
+	/*
+	Function: window.onDomReady
+		Executes the passed in function when the DOM is ready (when the document tree has loaded, not waiting for images).
+		Same as window.addEvent('domready', init);
+
+	Credits:
+		(c) Dean Edwards/Matthias Miller/John Resig, remastered for mootools. Later touched up by Christophe Beyls <http://digitalia.be>.
+
+	Arguments:
+		init - the function to execute when the DOM is ready
+
+	Example:
+		> window.addEvent('domready', function(){alert('the dom is ready')});
+	*/
+
+	onDomReady: function(init){
+		return this.addEvent('domready', init);
+	}
+
+});
+
+/*
+Script: Window.Size.js
+	Window cross-browser dimensions methods.
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: window
+	Cross browser methods to get the window size, onDomReady method.
+*/
+
+window.extend({
+
+	/*
+	Property: getWidth
+		Returns an integer representing the width of the browser.
+	*/
+
+	getWidth: function(){
+		if (this.khtml || this.opera) return this.innerWidth;
+		else return document.documentElement.clientWidth || document.body.clientWidth;
+	},
+
+	/*
+	Property: getHeight
+		Returns an integer representing the height of the browser.
+	*/
+
+	getHeight: function(){
+		if (this.khtml || this.opera) return this.innerHeight;
+		return document.documentElement.clientHeight || document.body.clientHeight;
+	},
+
+	/*
+	Property: getScrollHeight
+		Returns an integer representing the scrollHeight of the window.
+
+	See Also:
+		<http://developer.mozilla.org/en/docs/DOM:element.scrollHeight>
+	*/
+
+	getScrollHeight: function(){
+		return document.documentElement.scrollHeight;
+	},
+
+	/*
+	Property: getScrollWidth
+		Returns an integer representing the scrollWidth of the window.
+
+	See Also:
+		<http://developer.mozilla.org/en/docs/DOM:element.scrollWidth>
+	*/
+
+	getScrollWidth: function(){
+		return document.documentElement.scrollWidth;
+	},
+
+	/*
+	Property: getScrollTop
+		Returns an integer representing the scrollTop of the window (the number of pixels the window has scrolled from the top).
+
+	See Also:
+		<http://developer.mozilla.org/en/docs/DOM:element.scrollTop>
+	*/
+
+	getScrollTop: function(){
+		return this.pageYOffset || document.documentElement.scrollTop;
+	},
+
+	/*
+	Property: getScrollLeft
+		Returns an integer representing the scrollLeft of the window (the number of pixels the window has scrolled from the left).
+
+	See Also:
+		<http://developer.mozilla.org/en/docs/DOM:element.scrollLeft>
+	*/
+
+	getScrollLeft: function(){
+		return this.pageXOffset || document.documentElement.scrollLeft;
+	},
+
+	/*
+	Property: getSize
+		Same as <Element.getSize>
+	*/
+
+	getSize: function(){
+		return {
+			'scroll': {'x': this.getScrollLeft(), 'y': this.getScrollTop()},
+			'size': {'x': this.getWidth(), 'y': this.getHeight()},
+			'scrollSize': {'x': this.getScrollWidth(), 'y': this.getScrollHeight()}
+		};
+	},
+
+	//ignore
+	getOffsets: function(){return {'x': 0, 'y': 0}}
+
+});
+
+/*
+Script: Fx.Base.js
+	Contains <Fx.Base> and two Transitions.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+var Fx = {};
+
+/*
+Class: Fx.Base
+	Base class for the Mootools Effects (Moo.Fx) library.
+
+Options:
+	onStart - the function to execute as the effect begins; nothing (<Class.empty>) by default.
+	onComplete - the function to execute after the effect has processed; nothing (<Class.empty>) by default.
+	transition - the equation to use for the effect see <Fx.Transitions>; default is <Fx.Transitions.sineInOut>
+	duration - the duration of the effect in ms; 500 is the default.
+	unit - the unit is 'px' by default (other values include things like 'em' for fonts or '%').
+	wait - boolean: to wait or not to wait for a current transition to end before running another of the same instance. defaults to true.
+	fps - the frames per second for the transition; default is 30
+*/
+
+Fx.Base = new Class({
+
+	getOptions: function(){
+		return {
+			onStart: Class.empty,
+			onComplete: Class.empty,
+			onCancel: Class.empty,
+			transition: Fx.Transitions.sineInOut,
+			duration: 500,
+			unit: 'px',
+			wait: true,
+			fps: 50
+		};
+	},
+
+	initialize: function(options){
+		this.element = this.element || null;
+		this.setOptions(this.getOptions(), options);
+		if (this.options.initialize) this.options.initialize.call(this);
+	},
+
+	step: function(){
+		var time = new Date().getTime();
+		if (time < this.time + this.options.duration){
+			this.cTime = time - this.time;
+			this.setNow();
+			this.increase();
+		} else {
+			this.stop(true);
+			this.now = this.to;
+			this.increase();
+			this.fireEvent('onComplete', this.element, 10);
+			this.callChain();
+		}
+	},
+
+	/*
+	Property: set
+		Immediately sets the value with no transition.
+
+	Arguments:
+		to - the point to jump to
+
+	Example:
+		>var myFx = new Fx.Style('myElement', 'opacity').set(0); //will make it immediately transparent
+	*/
+
+	set: function(to){
+		this.now = to;
+		this.increase();
+		return this;
+	},
+
+	setNow: function(){
+		this.now = this.compute(this.from, this.to);
+	},
+
+	compute: function(from, to){
+		return this.options.transition(this.cTime, from, (to - from), this.options.duration);
+	},
+
+	/*
+	Property: start
+		Executes an effect from one position to the other.
+
+	Arguments:
+		from - integer: staring value
+		to - integer: the ending value
+
+	Examples:
+		>var myFx = new Fx.Style('myElement', 'opacity').start(0,1); //display a transition from transparent to opaque.
+	*/
+
+	start: function(from, to){
+		if (!this.options.wait) this.stop();
+		else if (this.timer) return this;
+		this.from = from;
+		this.to = to;
+		this.time = new Date().getTime();
+		this.timer = this.step.periodical(Math.round(1000/this.options.fps), this);
+		this.fireEvent('onStart', this.element);
+		return this;
+	},
+
+	/*
+	Property: stop
+		Stops the transition.
+	*/
+
+	stop: function(end){
+		if (!this.timer) return this;
+		this.timer = $clear(this.timer);
+		if (!end) this.fireEvent('onCancel', this.element);
+		return this;
+	},
+
+	//compat
+	custom: function(from, to){return this.start(from, to)},
+	clearTimer: function(end){return this.stop(end)}
+
+});
+
+Fx.Base.implement(new Chain);
+Fx.Base.implement(new Events);
+Fx.Base.implement(new Options);
+
+/*
+Class: Fx.Transitions
+	A collection of transition equations for use with the <Fx> Class.
+
+See Also:
+	<Fxtransitions.js> for a whole bunch of transitions.
+
+Credits:
+	Easing Equations, (c) 2003 Robert Penner (http://www.robertpenner.com/easing/), Open Source BSD License.
+*/
+
+Fx.Transitions = {
+
+	/* Property: linear */
+	linear: function(t, b, c, d){
+		return c*t/d + b;
+	},
+
+	/* Property: sineInOut */
+	sineInOut: function(t, b, c, d){
+		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
+	}
+
+};
+
+/*
+Script: Fx.CSS.js
+	Css parsing class for effects. Required by <Fx.Style>, <Fx.Styles>, <Fx.Elements>. No documentation needed, as its used internally.
+
+Author:
+	Christophe Beyls, <http://www.digitalia.be>,
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+Fx.CSS = {
+
+	select: function(property, to){
+		if (property.test('color', 'i')) return this.Color;
+		if (to.test && to.test(' ')) return this.Multi;
+		return this.Single;
+	},
+
+	parse: function(el, property, fromTo){
+		if (!fromTo.push) fromTo = [fromTo];
+		var from = fromTo[0], to = fromTo[1];
+		if (!to && to != 0){
+			to = from;
+			from = el.getStyle(property);
+		}
+		var css = this.select(property, to);
+		return {from: css.parse(from), to: css.parse(to), css: css};
+	}
+
+};
+
+Fx.CSS.Single = {
+
+	parse: function(value){
+		return parseFloat(value);
+	},
+
+	getNow: function(from, to, fx){
+		return fx.compute(from, to);
+	},
+
+	getValue: function(value, unit){
+		return value+unit;
+	}
+
+};
+
+Fx.CSS.Multi = {
+
+	parse: function(value){
+		return value.push ? value : value.split(' ').map(function(v){
+			return parseFloat(v);
+		});
+	},
+
+	getNow: function(from, to, fx){
+		var now = [];
+		for (var i = 0; i < from.length; i++) now[i] = fx.compute(from[i], to[i]);
+		return now;
+	},
+
+	getValue: function(value, unit){
+		return value.join(unit+' ')+unit;
+	}
+
+};
+
+Fx.CSS.Color = {
+
+	parse: function(value){
+		return value.push ? value : value.hexToRgb(true);
+	},
+
+	getNow: function(from, to, fx){
+		var now = [];
+		for (var i = 0; i < from.length; i++) now[i] = Math.round(fx.compute(from[i], to[i]));
+		return now;
+	},
+
+	getValue: function(value){
+		return 'rgb('+value.join(',')+')';
+	}
+
+};
+
+/*
+Script: Fx.Style.js
+	Contains <Fx.Style>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Fx.Style
+	The Style effect; Extends <Fx.Base>, inherits all its properties. Used to transition any css property from one value to another. Includes colors.
+	Colors must be in hex format.
+
+Arguments:
+	el - the $(element) to apply the style transition to
+	property - the property to transition
+	options - the Fx.Base options (see: <Fx.Base>)
+
+Example:
+	>var marginChange = new Fx.Style('myElement', 'margin-top', {duration:500});
+	>marginChange.start(10, 100);
+*/
+
+Fx.Style = Fx.Base.extend({
+
+	initialize: function(el, property, options){
+		this.element = $(el);
+		this.property = property;
+		this.parent(options);
+	},
+
+	/*
+	Property: hide
+		Same as <Fx.Base.set>(0)
+	*/
+
+	hide: function(){
+		return this.set(0);
+	},
+
+	setNow: function(){
+		this.now = this.css.getNow(this.from, this.to, this);
+	},
+
+	set: function(to){
+		this.css = Fx.CSS.select(this.property, to);
+		return this.parent(this.css.parse(to));
+	},
+
+	/*
+	Property: start
+		displays the transition to the value/values passed in
+
+	Example:
+		(start code)
+		var var marginChange = new Fx.Style('myElement', 'margin-top', {duration:500});
+		marginChange.start(10); //tries to read current margin top value and goes from current to 10
+		(end)
+	*/
+
+	start: function(from, to){
+		if (this.timer && this.options.wait) return this;
+		var parsed = Fx.CSS.parse(this.element, this.property, [from, to]);
+		this.css = parsed.css;
+		return this.parent(parsed.from, parsed.to);
+	},
+
+	increase: function(){
+		this.element.setStyle(this.property, this.css.getValue(this.now, this.options.unit));
+	}
+
+});
+
+/*
+Class: Element
+	Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>.
+*/
+
+Element.extend({
+
+	/*
+	Property: effect
+		Applies an <Fx.Style> to the Element; This a shortcut for <Fx.Style>.
+
+	Example:
+		>var myEffect = $('myElement').effect('height', {duration: 1000, transition: Fx.Transitions.linear});
+		>myEffect.start(10, 100);
+	*/
+
+	effect: function(property, options){
+		return new Fx.Style(this, property, options);
+	}
+
+});
+
+/*
+Script: Fx.Styles.js
+	Contains <Fx.Styles>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Fx.Styles
+	Allows you to animate multiple css properties at once; Extends <Fx.Base>, inherits all its properties. Includes colors.
+	Colors must be in hex format.
+
+Arguments:
+	el - the $(element) to apply the styles transition to
+	options - the fx options (see: <Fx.Base>)
+
+Example:
+	(start code)
+	var myEffects = new Fx.Styles('myElement', {duration: 1000, transition: Fx.Transitions.linear});
+
+	//height from 10 to 100 and width from 900 to 300
+	myEffects.start({
+		'height': [10, 100],
+		'width': [900, 300]
+	});
+
+	//or height from current height to 100 and width from current width to 300
+	myEffects.start({
+		'height': 100,
+		'width': 300
+	});
+	(end)
+*/
+
+Fx.Styles = Fx.Base.extend({
+
+	initialize: function(el, options){
+		this.element = $(el);
+		this.parent(options);
+	},
+
+	setNow: function(){
+		for (var p in this.from) this.now[p] = this.css[p].getNow(this.from[p], this.to[p], this);
+	},
+
+	set: function(to){
+		var parsed = {};
+		this.css = {};
+		for (var p in to){
+			this.css[p] = Fx.CSS.select(p, to[p]);
+			parsed[p] = this.css[p].parse(to[p]);
+		}
+		return this.parent(parsed);
+	},
+
+	/*
+	Property: start
+		The function you'll actually use to execute a transition.
+
+	Arguments:
+		an object
+
+	Example:
+		see <Fx.Styles>
+	*/
+
+	start: function(obj){
+		if (this.timer && this.options.wait) return this;
+		this.now = {};
+		this.css = {};
+		var from = {}, to = {};
+		for (var p in obj){
+			var parsed = Fx.CSS.parse(this.element, p, obj[p]);
+			from[p] = parsed.from;
+			to[p] = parsed.to;
+			this.css[p] = parsed.css;
+		}
+		return this.parent(from, to);
+	},
+
+	increase: function(){
+		for (var p in this.now) this.element.setStyle(p, this.css[p].getValue(this.now[p], this.options.unit));
+	}
+
+});
+
+/*
+Class: Element
+	Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>.
+*/
+
+Element.extend({
+
+	/*
+	Property: effects
+		Applies an <Fx.Styles> to the Element; This a shortcut for <Fx.Styles>.
+
+	Example:
+		>var myEffects = $(myElement).effects({duration: 1000, transition: Fx.Transitions.sineInOut});
+ 		>myEffects.start({'height': [10, 100], 'width': [900, 300]});
+	*/
+
+	effects: function(options){
+		return new Fx.Styles(this, options);
+	}
+
+});
+
+/*
+Script: Fx.Elements.js
+	Contains <Fx.Elements>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Fx.Elements
+	Fx.Elements allows you to apply any number of styles transitions to a selection of elements. Includes colors (must be in hex format).
+
+Arguments:
+	elements - a collection of elements the effects will be applied to.
+	options - same as <Fx.Base> options.
+*/
+
+Fx.Elements = Fx.Base.extend({
+
+	initialize: function(elements, options){
+		this.elements = $$(elements);
+		this.parent(options);
+	},
+
+	setNow: function(){
+		for (var i in this.from){
+			var iFrom = this.from[i], iTo = this.to[i], iCss = this.css[i], iNow = this.now[i] = {};
+			for (var p in iFrom) iNow[p] = iCss[p].getNow(iFrom[p], iTo[p], this);
+		}
+	},
+
+	set: function(to){
+		var parsed = {};
+		this.css = {};
+		for (var i in to){
+			var iTo = to[i], iCss = this.css[i] = {}, iParsed = parsed[i] = {};
+			for (var p in iTo){
+				iCss[p] = Fx.CSS.select(p, iTo[p]);
+				iParsed[p] = iCss[p].parse(iTo[p]);
+			}
+		}
+		return this.parent(parsed);
+	},
+
+	/*
+	Property: start
+		Applies the passed in style transitions to each object named (see example). Each item in the collection is refered to as a numerical string ("1" for instance). The first item is "0", the second "1", etc.
+
+	Example:
+		(start code)
+		var myElementsEffects = new Fx.Elements($$('a'));
+		myElementsEffects.start({
+			'0': { //let's change the first element's opacity and width
+				'opacity': [0,1],
+				'width': [100,200]
+			},
+			'1': { //and the second one's opacity
+				'opacity': [0.2, 0.5]
+			}
+		});
+		(end)
+	*/
+
+	start: function(obj){
+		if (this.timer && this.options.wait) return this;
+		this.now = {};
+		this.css = {};
+		var from = {}, to = {};
+		for (var i in obj){
+			var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {}, iCss = this.css[i] = {};
+			for (var p in iProps){
+				var parsed = Fx.CSS.parse(this.elements[i], p, iProps[p]);
+				iFrom[p] = parsed.from;
+				iTo[p] = parsed.to;
+				iCss[p] = parsed.css;
+			}
+		}
+		return this.parent(from, to);
+	},
+
+	increase: function(){
+		for (var i in this.now){
+			var iNow = this.now[i], iCss = this.css[i];
+			for (var p in iNow) this.elements[i].setStyle(p, iCss[p].getValue(iNow[p], this.options.unit));
+		}
+	}
+
+});
+
+/*
+Script: Fx.Scroll.js
+	Contains <Fx.Scroll>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Fx.Scroll
+	Scroll any element with an overflow, including the window element.
+
+Arguments:
+	element - the element to scroll
+	options - same as <Fx.Base> options.
+*/
+
+Fx.Scroll = Fx.Base.extend({
+
+	initialize: function(element, options){
+		this.now = [];
+		this.element = $(element);
+		this.addEvent('onStart', function(){
+			this.element.addEvent('mousewheel', this.stop.bind(this, false));
+		}.bind(this));
+		this.removeEvent('onComplete', function(){
+			this.element.removeEvent('mousewheel', this.stop.bind(this, false));
+		}.bind(this));
+		this.parent(options);
+	},
+
+	setNow: function(){
+		for (var i = 0; i < 2; i++) this.now[i] = this.compute(this.from[i], this.to[i]);
+	},
+
+	/*
+	Property: scrollTo
+		Scrolls the chosen element to the x/y coordinates.
+
+	Arguments:
+		x - the x coordinate to scroll the element to
+		y - the y coordinate to scroll the element to
+	*/
+
+	scrollTo: function(x, y){
+		if (this.timer && this.options.wait) return this;
+		var el = this.element.getSize();
+		var values = {'x': x, 'y': y};
+		for (var z in el.size){
+			var max = el.scrollSize[z] - el.size[z];
+			if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? Math.max(Math.min(values[z], max), 0) : max;
+			else values[z] = el.scroll[z];
+		}
+		return this.start([el.scroll.x, el.scroll.y], [values.x, values.y]);
+	},
+
+	/*
+	Property: toTop
+		Scrolls the chosen element to its maximum top.
+	*/
+
+	toTop: function(){
+		return this.scrollTo(false, 0);
+	},
+
+	/*
+	Property: toBottom
+		Scrolls the chosen element to its maximum bottom.
+	*/
+
+	toBottom: function(){
+		return this.scrollTo(false, 'full');
+	},
+
+	/*
+	Property: toLeft
+		Scrolls the chosen element to its maximum left.
+	*/
+
+	toLeft: function(){
+		return this.scrollTo(0, false);
+	},
+
+	/*
+	Property: toRight
+		Scrolls the chosen element to its maximum right.
+	*/
+
+	toRight: function(){
+		return this.scrollTo('full', false);
+	},
+
+	/*
+	Property: toElement
+		Scrolls the specified element to the position the passed in element is found. Only usable if the chosen element is == window.
+
+	Arguments:
+		el - the $(element) to scroll the window to
+	*/
+
+	toElement: function(el){
+		return this.scrollTo($(el).getLeft(), $(el).getTop());
+	},
+
+	increase: function(){
+		this.element.scrollTo(this.now[0], this.now[1]);
+	}
+
+});
+
+/*
+Script: Fx.Slide.js
+	Contains <Fx.Slide>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Fx.Slide
+	The slide effect; slides an element in horizontally or vertically, the contents will fold inside. Extends <Fx.Base>, inherits all its properties.
+
+Note:
+	This effect works on any block element, but the element *cannot be positioned*; no margins or absolute positions. To position the element, put it inside another element (a wrapper div, for instance) and position that instead.
+
+Options:
+	mode - set it to vertical or horizontal. Defaults to vertical.
+	and all the <Fx.Base> options
+
+Example:
+	(start code)
+	var mySlider = new Fx.Slide('myElement', {duration: 500});
+	mySlider.toggle() //toggle the slider up and down.
+	(end)
+*/
+
+Fx.Slide = Fx.Base.extend({
+
+	initialize: function(el, options){
+		this.element = $(el).setStyle('margin', 0);
+		this.wrapper = new Element('div').injectAfter(this.element).setStyle('overflow', 'hidden').adopt(this.element);
+		this.setOptions({'mode': 'vertical'}, options);
+		this.now = [];
+		this.parent(this.options);
+	},
+
+	setNow: function(){
+		for (var i = 0; i < 2; i++) this.now[i] = this.compute(this.from[i], this.to[i]);
+	},
+
+	vertical: function(){
+		this.margin = 'top';
+		this.layout = 'height';
+		this.offset = this.element.offsetHeight;
+		return [this.element.getStyle('margin-top').toInt(), this.wrapper.getStyle('height').toInt()];
+	},
+
+	horizontal: function(){
+		this.margin = 'left';
+		this.layout = 'width';
+		this.offset = this.element.offsetWidth;
+		return [this.element.getStyle('margin-left').toInt(), this.wrapper.getStyle('width').toInt()];
+	},
+
+	/*
+	Property: slideIn
+		slides the elements in view horizontally or vertically, depending on the mode parameter or options.mode.
+	*/
+
+	slideIn: function(mode){
+		return this.start(this[mode || this.options.mode](), [0, this.offset]);
+	},
+
+	/*
+	Property: slideOut
+		slides the elements out of the view horizontally or vertically, depending on the mode parameter or options.mode.
+	*/
+
+	slideOut: function(mode){
+		return this.start(this[mode || this.options.mode](), [-this.offset, 0]);
+	},
+
+	/*
+	Property: hide
+		Hides the element without a transition.
+	*/
+
+	hide: function(mode){
+		this[mode || this.options.mode]();
+		return this.set([-this.offset, 0]);
+	},
+
+	/*
+	Property: show
+		Shows the element without a transition.
+	*/
+
+	show: function(mode){
+		this[mode || this.options.mode]();
+		return this.set([0, this.offset]);
+	},
+
+	/*
+	Property: toggle
+		Slides in or Out the element, depending on its state
+	*/
+
+	toggle: function(mode){
+		if (this.wrapper.offsetHeight == 0 || this.wrapper.offsetWidth == 0) return this.slideIn(mode);
+		else return this.slideOut(mode);
+	},
+
+	increase: function(){
+		this.element.setStyle('margin-'+this.margin, this.now[0]+this.options.unit);
+		this.wrapper.setStyle(this.layout, this.now[1]+this.options.unit);
+	}
+
+});
+
+/*
+Script: Fx.Transitions.js
+	Cool transitions, to be used with all the effects.
+
+Author:
+	Robert Penner, <http://www.robertpenner.com/easing/>, modified to be used with mootools.
+
+License:
+	Easing Equations v1.5, (c) 2003 Robert Penner, all rights reserved. Open Source BSD License.
+*/
+
+/*
+Class: Fx.Transitions
+	A collection of tweaning transitions for use with the <Fx.Base> classes.
+*/
+
+Fx.Transitions = {
+
+	/* Property: linear */
+	linear: function(t, b, c, d){
+		return c*t/d + b;
+	},
+
+	/* Property: quadIn */
+	quadIn: function(t, b, c, d){
+		return c*(t/=d)*t + b;
+	},
+
+	/* Property: quatOut */
+	quadOut: function(t, b, c, d){
+		return -c *(t/=d)*(t-2) + b;
+	},
+
+	/* Property: quadInOut */
+	quadInOut: function(t, b, c, d){
+		if ((t/=d/2) < 1) return c/2*t*t + b;
+		return -c/2 * ((--t)*(t-2) - 1) + b;
+	},
+
+	/* Property: cubicIn */
+	cubicIn: function(t, b, c, d){
+		return c*(t/=d)*t*t + b;
+	},
+
+	/* Property: cubicOut */
+	cubicOut: function(t, b, c, d){
+		return c*((t=t/d-1)*t*t + 1) + b;
+	},
+
+	/* Property: cubicInOut */
+	cubicInOut: function(t, b, c, d){
+		if ((t/=d/2) < 1) return c/2*t*t*t + b;
+		return c/2*((t-=2)*t*t + 2) + b;
+	},
+
+	/* Property: quartIn */
+	quartIn: function(t, b, c, d){
+		return c*(t/=d)*t*t*t + b;
+	},
+
+	/* Property: quartOut */
+	quartOut: function(t, b, c, d){
+		return -c * ((t=t/d-1)*t*t*t - 1) + b;
+	},
+
+	/* Property: quartInOut */
+	quartInOut: function(t, b, c, d){
+		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
+		return -c/2 * ((t-=2)*t*t*t - 2) + b;
+	},
+
+	/* Property: quintIn */
+	quintIn: function(t, b, c, d){
+		return c*(t/=d)*t*t*t*t + b;
+	},
+
+	/* Property: quintOut */
+	quintOut: function(t, b, c, d){
+		return c*((t=t/d-1)*t*t*t*t + 1) + b;
+	},
+
+	/* Property: quintInOut */
+	quintInOut: function(t, b, c, d){
+		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+		return c/2*((t-=2)*t*t*t*t + 2) + b;
+	},
+
+	/* Property: sineIn */
+	sineIn: function(t, b, c, d){
+		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
+	},
+
+	/* Property: sineOut */
+	sineOut: function(t, b, c, d){
+		return c * Math.sin(t/d * (Math.PI/2)) + b;
+	},
+
+	/* Property: sineInOut */
+	sineInOut: function(t, b, c, d){
+		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
+	},
+
+	/* Property: expoIn */
+	expoIn: function(t, b, c, d){
+		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
+	},
+
+	/* Property: expoOut */
+	expoOut: function(t, b, c, d){
+		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
+	},
+
+	/* Property: expoInOut */
+	expoInOut: function(t, b, c, d){
+		if (t==0) return b;
+		if (t==d) return b+c;
+		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
+		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
+	},
+
+	/* Property: circIn */
+	circIn: function(t, b, c, d){
+		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
+	},
+
+	/* Property: circOut */
+	circOut: function(t, b, c, d){
+		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
+	},
+
+	/* Property: circInOut */
+	circInOut: function(t, b, c, d){
+		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
+		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
+	},
+
+	/* Property: elasticIn */
+	elasticIn: function(t, b, c, d, a, p){
+		if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (!a) a = 1;
+		if (a < Math.abs(c)){ a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin(c/a);
+		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+	},
+
+	/* Property: elasticOut */
+	elasticOut: function(t, b, c, d, a, p){
+		if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (!a) a = 1;
+		if (a < Math.abs(c)){ a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin(c/a);
+		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+	},
+
+	/* Property: elasticInOut */
+	elasticInOut: function(t, b, c, d, a, p){
+		if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); if (!a) a = 1;
+		if (a < Math.abs(c)){ a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin(c/a);
+		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
+	},
+
+	/* Property: backIn */
+	backIn: function(t, b, c, d, s){
+		if (!s) s = 1.70158;
+		return c*(t/=d)*t*((s+1)*t - s) + b;
+	},
+
+	/* Property: backOut */
+	backOut: function(t, b, c, d, s){
+		if (!s) s = 1.70158;
+		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
+	},
+
+	/* Property: backInOut */
+	backInOut: function(t, b, c, d, s){
+		if (!s) s = 1.70158;
+		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
+		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
+	},
+
+	/* Property: bounceIn */
+	bounceIn: function(t, b, c, d){
+		return c - Fx.Transitions.bounceOut (d-t, 0, c, d) + b;
+	},
+
+	/* Property: bounceOut */
+	bounceOut: function(t, b, c, d){
+		if ((t/=d) < (1/2.75)){
+			return c*(7.5625*t*t) + b;
+		} else if (t < (2/2.75)){
+			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
+		} else if (t < (2.5/2.75)){
+			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
+		} else {
+			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
+		}
+	},
+
+	/* Property: bounceInOut */
+	bounceInOut: function(t, b, c, d){
+		if (t < d/2) return Fx.Transitions.bounceIn(t*2, 0, c, d) * .5 + b;
+		return Fx.Transitions.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b;
+	}
+
+};
+
+/*
+Script: Drag.Base.js
+	Contains <Drag.Base>, <Element.makeResizable>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+var Drag = {};
+
+/*
+Class: Drag.Base
+	Modify two css properties of an element based on the position of the mouse.
+
+Arguments:
+	el - the $(element) to apply the transformations to.
+	options - optional. The options object.
+
+Options:
+	handle - the $(element) to act as the handle for the draggable element. defaults to the $(element) itself.
+	modifiers - an object. see Modifiers Below.
+	onStart - optional, function to execute when the user starts to drag (on mousedown);
+	onComplete - optional, function to execute when the user completes the drag.
+	onDrag - optional, function to execute at every step of the drag
+	limit - an object, see Limit below.
+	snap - optional, the distance you have to drag before the element starts to respond to the drag. defaults to false
+
+	modifiers:
+		x - string, the style you want to modify when the mouse moves in an horizontal direction. defaults to 'left'
+		y - string, the style you want to modify when the mouse moves in a vertical direction. defaults to 'top'
+
+	limit:
+		x - array with start and end limit relative to modifiers.x
+		y - array with start and end limit relative to modifiers.y
+*/
+
+Drag.Base = new Class({
+
+	getOptions: function(){
+		return {
+			handle: false,
+			unit: 'px',
+			onStart: Class.empty, 
+			onComplete: Class.empty,
+			onSnap: Class.empty,
+			onDrag: Class.empty,
+			limit: false,
+			modifiers: {x: 'left', y: 'top'},
+			snap: 6
+		};
+	},
+
+	initialize: function(el, options){
+		this.setOptions(this.getOptions(), options);
+		this.element = $(el);
+		this.handle = $(this.options.handle) || this.element;
+		this.mouse = {'now': {}, 'pos': {}};
+		this.value = {'start': {}, 'now': {}};
+		this.bound = {'start': this.start.bindWithEvent(this)};
+		this.handle.addEvent('mousedown', this.bound.start);
+		if (this.options.initialize) this.options.initialize.call(this);
+	},
+
+	start: function(event){
+		this.mouse.start = event.page;
+		var limit = this.options.limit;
+		this.limit = {'x': [], 'y': []};
+		for (var z in this.options.modifiers){
+			this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();
+			this.mouse.pos[z] = event.page[z] - this.value.now[z];
+			if (limit && limit[z]){
+				for (var i = 0; i < 2; i++){
+					if ($chk(limit[z][i])) this.limit[z][i] = limit[z][i].apply ? limit[z][i].call(this) : limit[z][i];
+				}
+			}
+		}
+		this.bound.drag = this.drag.bindWithEvent(this);
+		this.bound.checkAndDrag = this.checkAndDrag.bindWithEvent(this);
+		this.bound.stop = this.stop.bind(this);
+		document.addEvent('mousemove', this.options.snap ? this.bound.checkAndDrag : this.bound.drag);
+		document.addEvent('mouseup', this.bound.stop);
+		this.fireEvent('onStart', this.element);
+		event.stop();
+	},
+
+	checkAndDrag: function(event){
+		var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
+		if (distance > this.options.snap){
+			document.removeEvent('mousemove', this.bound.checkAndDrag);
+			document.addEvent('mousemove', this.bound.drag);
+			this.drag(event);
+			this.fireEvent('onSnap', this.element);
+		}
+		event.stop();
+	},
+
+	drag: function(event){
+		this.out = false;
+		this.mouse.now = event.page;
+		for (var z in this.options.modifiers){
+			this.value.now[z] = event.page[z] - this.mouse.pos[z];
+			if (this.limit[z]){
+				if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){
+					this.value.now[z] = this.limit[z][1];
+					this.out = true;
+				} else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){
+					this.value.now[z] = this.limit[z][0];
+					this.out = true;
+				}
+			}
+			this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);
+		}
+		this.fireEvent('onDrag', this.element);
+		event.stop();
+	},
+	
+	detach: function(){
+		this.handle.removeEvent('mousedown', this.bound.start);
+	},
+
+	stop: function(){
+		document.removeEvent('mousemove', this.bound.drag);
+		document.removeEvent('mouseup', this.bound.stop);
+		this.fireEvent('onComplete', this.element);
+	}
+
+});
+
+Drag.Base.implement(new Events);
+Drag.Base.implement(new Options);
+
+/*
+Class: Element
+	Custom class to allow all of its methods to be used with any DOM element via the dollar function <$>.
+*/
+
+Element.extend({
+
+	/*
+	Property: makeResizable
+		Makes an element resizable (by dragging) with the supplied options.
+
+	Arguments:
+		options - see <Drag.Base> for acceptable options.
+	*/
+
+	makeResizable: function(options){
+		return new Drag.Base(this, Object.extend(options || {}, {modifiers: {x: 'width', y: 'height'}}));
+	}
+
+});
+
+/*
+Script: Scroller.js
+	Contains the <Scroller>.
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Scroller
+	The Scroller is a class to scroll any element with an overflow (including the window) when the mouse cursor reaches certain buondaries of that element.
+	You must call its start method to start listening to mouse movements.
+
+Arguments:
+	element - required, the element to scroll.
+	options - optional, see options below, and <Fx.Base> options.
+
+Options:
+	area - integer, the necessary boundaries to make the element scroll.
+	velocity - integer, velocity ratio, the modifier for the window scrolling speed.
+	onChange - optionally, when the mouse reaches some boundaries, you can choose to alter some other values, instead of the scrolling offsets.
+		Automatically passes as parameters x and y values.
+*/
+
+var Scroller = new Class({
+
+	getOptions: function(){
+		return {
+			area: 20,
+			velocity: 1,
+			onChange: function(x, y){
+				this.element.scrollTo(x, y);
+			}
+		};
+	},
+
+	initialize: function(element, options){
+		this.setOptions(this.getOptions(), options);
+		this.element = $(element);
+		this.mousemover = ([window, document].test(element)) ? $(document.body) : this.element;
+	},
+
+	/*
+	Property: start
+		The scroller starts listening to mouse movements.
+	*/
+
+	start: function(){
+		this.coord = this.getCoords.bindWithEvent(this);
+		this.mousemover.addEvent('mousemove', this.coord);
+	},
+
+	/*
+	Property: stop
+		The scroller stops listening to mouse movements.
+	*/
+
+	stop: function(){
+		this.mousemover.removeEvent('mousemove', this.coord);
+		this.timer = $clear(this.timer);
+	},
+
+	getCoords: function(event){
+		this.page = (this.element == window) ? event.client : event.page;
+		if (!this.timer) this.timer = this.scroll.periodical(50, this);
+	},
+
+	scroll: function(){
+		var el = this.element.getSize();
+		var pos = this.element.getOffsets();
+
+		var change = {'x': 0, 'y': 0};
+		for (var z in this.page){
+			if (this.page[z] < (this.options.area + pos[z]) && el.scroll[z] != 0)
+				change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;
+			else if (this.page[z] + this.options.area > (el.size[z] + pos[z]) && el.scroll[z] + el.size[z] != el.scrollSize[z])
+				change[z] = (this.page[z] - el.size[z] + this.options.area - pos[z]) * this.options.velocity;
+		}
+		if (change.y || change.x) this.fireEvent('onChange', [el.scroll.x + change.x, el.scroll.y + change.y]);
+	}
+
+});
+
+Scroller.implement(new Events);
+Scroller.implement(new Options);
+
+/*
+Script: Slider.js
+	Contains <Slider>
+
+Author:
+	Valerio Proietti, <http://mad4milk.net>
+
+License:
+	MIT-style license.
+*/
+
+/*
+Class: Slider
+	Creates a slider with two elements: a knob and a container. Returns the values.
+
+Arguments:
+	element - the knob container
+	knob - the handle
+	options - see Options below
+
+Options:
+	onChange - a function to fire when the value changes.
+	onComplete - a function to fire when you're done dragging.
+	onTick - optionally, you can alter the onTick behavior, for example displaying an effect of the knob moving to the desired position. 
+		Passes as parameter the new position.
+	steps - the number of steps for your slider.
+	mode - either 'horizontal' or 'vertical'. defaults to horizontal.
+	wheel - experimental! Also use the mouse wheel to control the slider. defaults to false.
+*/
+
+var Slider = new Class({
+
+	getOptions: function(){
+		return {
+			onChange: Class.empty,
+			onComplete: Class.empty,
+			onTick: function(pos){
+				this.knob.setStyle(this.p, pos+'px');
+			},
+			steps: 100,
+			mode: 'horizontal',
+			wheel: false
+		};
+	},
+
+	initialize: function(el, knob, options){
+		this.element = $(el);
+		this.knob = $(knob);
+		this.setOptions(this.getOptions(), options);
+
+		this.previousChange = -1;
+		this.previousEnd = -1;
+		this.step = -1;
+
+		this.element.addEvent('mousedown', this.clickedElement.bindWithEvent(this));
+
+		if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement.bindWithEvent(this));
+
+		if (this.options.mode == 'horizontal'){
+			this.z = 'x'; this.p = 'left';
+			this.max = this.element.offsetWidth-this.knob.offsetWidth;
+			this.half = this.knob.offsetWidth/2;
+			this.getPos = this.element.getLeft.bind(this.element);
+		} else if (this.options.mode == 'vertical'){
+			this.z = 'y'; this.p = 'top';
+			this.max = this.element.offsetHeight-this.knob.offsetHeight;
+			this.half = this.knob.offsetHeight/2;
+			this.getPos = this.element.getTop.bind(this.element);
+		}
+
+		this.knob.setStyle('position', 'relative').setStyle(this.p, 0);
+
+		var modSlide = {}, limSlide = {};
+
+		limSlide[this.z] = [0, this.max];
+		modSlide[this.z] = this.p;
+
+		this.drag = new Drag.Base(this.knob, {
+			limit: limSlide,
+			snap: 0,
+			modifiers: modSlide,
+			onStart: function(){
+				this.draggedKnob();
+			}.bind(this),
+			onDrag: function(){
+				this.draggedKnob();
+			}.bind(this),
+			onComplete: function(){
+				this.draggedKnob();
+				this.end();
+			}.bind(this)
+		});
+		if (this.options.initialize) this.options.initialize.call(this);
+	},
+
+	/*
+	Property: set
+		The slider will get the step you pass.
+
+	Arguments:
+		step - one integer
+	*/
+
+	set: function(step){
+		if (step > this.options.steps) step = this.options.steps;
+		else if (step < 0) step = 0;
+		this.step = step;
+		this.checkStep();
+		this.end();
+		this.fireEvent('onTick', this.toPosition(this.step)+'');
+		return this;
+	},
+
+	scrolledElement: function(event){
+		if (event.wheel < 0) this.set(this.step + 1);
+		else if (event.wheel > 0) this.set(this.step - 1);
+		event.stop();
+	},
+
+	clickedElement: function(event){
+		var position = event.page[this.z] - this.getPos() - this.half;
+		if (position > this.max) position = this.max;
+		else if (position < 0) position = 0;
+		this.step = this.toStep(position);
+		this.checkStep();
+		this.end();
+		this.fireEvent('onTick', position+'');
+	},
+
+	draggedKnob: function(){
+		this.step = this.toStep(this.drag.value.now[this.z]);
+		this.checkStep();
+	},
+
+	checkStep: function(){
+		if (this.previousChange != this.step){
+			this.previousChange = this.step;
+			this.fireEvent('onChange', this.step);
+		}
+	},
+
+	end: function(){
+		if (this.previousEnd !== this.step){
+			this.previousEnd = this.step;
+			this.fireEvent('onComplete', this.step+'');
+		}
+	},
+
+	toStep: function(position){
+		return Math.round(position/this.max*this.options.steps);
+	},
+
+	toPosition: function(step){
+		return (this.max)*step/this.options.steps;
+	}
+
+});
+
+Slider.implement(new Events);
+Slider.implement(new Options);
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/news-sticker.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/news-sticker.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/news-sticker.js	(revision 80)
@@ -0,0 +1,67 @@
+/*
+*
+* Copyright (c) 2006 Sam Collett (http://www.texotela.co.uk)
+* Licensed under the MIT License:
+* http://www.opensource.org/licenses/mit-license.php
+*
+*/
+
+/*
+* Un affichage d'actus simple
+*
+* @nom     newsticker (ou newsTicker)
+* @param    delay      Delai (en millisecondes) entre les iterations. Par default 4 secondes (4000ms)
+* @autheur   Sam Collett (http://www.texotela.co.uk)
+* @adaptation Allergie aka Philippe Auriol
+* @exemple  $("#news").newsticker(); // ou jQuery("#news").newsticker(5000);
+*
+*/
+jQuery.fn.newsTicker = jQuery.fn.newsticker = function(delay)
+{
+        return this.each(
+                function()
+                {
+                        if(this.nodeName.toLowerCase()!= "ul") return;
+                        delay = delay || 6000;
+                        var self = this;
+                        self.items = jQuery("li", self);
+                        // cache tous les items (sauf le premier)
+                        self.items.not(":eq(0)").hide().end();
+                        //  item courant
+                        self.currentitem = 0;
+                        var doTick = function()
+                        {
+                                jQuery.newsticker(self);
+                        }
+                        setInterval(doTick,delay);
+                }
+        )
+        .addClass("newsticker")
+        .hover(
+                function()
+                {
+                        // se met en pause si on passe la souris dessus
+                        this.pause = true;
+                },
+                function()
+                {
+                        // stop la pause quand on enleve la souris de l'item
+                        this.pause = false;
+                }
+        );
+}
+jQuery.newsticker = function(el)
+{
+        // retour si la souris passe dessus
+        if(el.pause) return;
+        // cache l'item courant
+        jQuery(el.items[el.currentitem]).fadeOut("slow",
+                function()
+                {
+                        jQuery(this).hide();
+                        // passe a l'objet suivant et le montre
+                        el.currentitem = ++el.currentitem % (el.items.size());
+                        jQuery(el.items[el.currentitem]).fadeIn("slow");
+                }
+        );
+}
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/pngfix.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/pngfix.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/pngfix.js	(revision 80)
@@ -0,0 +1,39 @@
+/*
+ 
+Correctly handle PNG transparency in Win IE 5.5 & 6.
+http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
+
+Use in <HEAD> with DEFER keyword wrapped in conditional comments:
+<!--[if lt IE 7]>
+<script defer type="text/javascript" src="pngfix.js"></script>
+<![endif]-->
+
+*/
+
+var arVersion = navigator.appVersion.split("MSIE")
+var version = parseFloat(arVersion[1])
+
+if ((version >= 5.5) && (document.body.filters)) 
+{
+   for(var i=0; i<document.images.length; i++)
+   {
+      var img = document.images[i]
+      var imgName = img.src.toUpperCase()
+      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
+      {
+         var imgID = (img.id) ? "id='" + img.id + "' " : ""
+         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
+         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
+         var imgStyle = "display:inline-block;" + img.style.cssText 
+         if (img.align == "left") imgStyle = "float:left;" + imgStyle
+         if (img.align == "right") imgStyle = "float:right;" + imgStyle
+         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
+         var strNewHTML = "<span " + imgID + imgClass + imgTitle
+         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
+         img.outerHTML = strNewHTML
+         i = i-1
+      }
+   }
+}
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/quickSearch.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/quickSearch.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/quickSearch.js	(revision 80)
@@ -0,0 +1,275 @@
+jQuery.fn.quicksearch = function (options) {
+	
+	this.timeout = null;
+	
+	this.settings = $.extend({
+		
+		position: 'prepend',
+		attached: 'body',
+		formId: 'quicksearch',
+		labelText: 'Quick Search',
+		labelClass: 'qs_label',
+		inputText: null,
+		inputClass: 'qs_input',
+		loaderId: 'loader',
+		loaderClass: 'loader',
+		loaderImg: null,
+		loaderText: 'Loading...',
+		stripeRowClass: null,
+		hideElement: null,
+		delay: 500,
+		focusOnLoad: false,
+		randomElement: 'qs'+Math.floor(Math.random()*1000000)
+	}, options || {});
+	
+	var el 		= this;
+		
+	var form1 	= new jQuery._form(this.settings);
+	var key1	= new jQuery._key(this.settings);
+	var loader	= new jQuery._loader(this.settings);
+	var stripes = new jQuery._stripe(this.settings.stripeRowClass);	
+	
+	form1.initialize();
+	loader.setTo('hide');	
+	
+	if(this.settings.stripeRowClass != null) {
+		$(el).each(function () {			
+			if(el.settings.hideElement == "grandparent") {
+				stripes.go(this.parentNode.parentNode);
+			} else if (el.settings.hideElement == "parent") {
+				stripes.go(this.parentNode);
+			} else {
+				stripes.go(this);
+			}
+		})
+		stripes.reset();
+	}		
+	
+	$('form.quicksearch').submit( function () { return false; });
+	
+	$('input[@rel="'+this.settings.randomElement+'"]').keydown(function(e) {
+		switch(e.keyCode) {
+			case 9: 
+			case 13:
+			case 38: 
+			case 40:
+				e.preventDefault();
+				break;
+			default:
+				clearTimeout(this.timeout);				
+			
+				this.timeout = setTimeout(function () {
+						loader.setTo('show');
+						setTimeout( function () {
+						
+							key1.setKey();
+							
+							$(el).each( function () {
+							
+								if(el.settings.hideElement == "grandparent") {
+									var hide = $(this).parent().parent();
+								} else if (el.settings.hideElement == "parent") {
+									var hide = $(this).parent();
+								} else {
+									var hide = $(this)
+								}
+							
+								if(key1.test(this)) {
+											
+									$(hide).show();
+								} else {
+									$(hide).hide();
+								}	
+								if(el.settings.stripeRowClass != null) {									
+									if(el.settings.hideElement == "grandparent") {
+										stripes.go(this.parentNode.parentNode);
+									} else if (el.settings.hideElement == "parent") {
+										stripes.go(this.parentNode);
+									} else {
+										stripes.go(this);
+									}
+								}				
+							});						
+							stripes.reset();
+						}, el.settings.delay);						
+						setTimeout( function () { 
+							loader.setTo('hide');
+						}, el.settings.delay);			
+				}, el.settings.delay);
+				break;
+		}
+	});
+
+	
+	
+	
+}
+
+
+jQuery._key = function (set) {
+	
+	this.key = "";
+	this.settings = set;
+	this.getKey = function ()  {
+		return this.key;
+	};
+	this.setKey = function () {
+		var input = $('input[@rel="'+this.settings.randomElement+'"]').val();
+		var string = input.replace(/\s{2,}/g, " ").toLowerCase();
+		var arr = string.split(" ");
+		for(var i in arr) {
+			var regexp = new RegExp(/([^A-Za-z0-9])/gi);
+			if(arr[i] == "") {
+				arr.splice(i,1);
+			}
+		}
+		this.key = arr;
+	};
+	this.test = function (el) {
+		if( this.getKey() == '' ) {
+			return true;
+		} else {			
+			var searchStrings = this.getKey();
+			var text = $._stripHtml( $(el).html() );	
+			for (var i = 0; i < searchStrings.length; i++) {
+				var test = text.indexOf(searchStrings[i]);	
+				if (test == -1) {	
+					return false;
+				}
+			}			
+			return true;
+		}
+	}	
+}
+
+jQuery._form = function (set) {	
+	
+	this.settings = set;
+	
+	this.initialize = function () {
+		this.placeForm();
+		if(this.settings.focusOnLoad) {
+			this.focusOnLoad();
+		}
+		if(this.settings.inputText != "" && this.settings.inputText != null) {
+			this.toggleText();
+		}
+	};
+	this.placeForm = function () {
+		var formPosition 	= this.settings.position;
+		var formAttached 	= this.settings.attached;
+					
+		if(formPosition == 'before') {
+			$(formAttached).before( jQuery._makeForm(this.settings) );
+		} else if(formPosition == 'prepend') {
+			$(formAttached).prepend( jQuery._makeForm(this.settings) );
+		} else if(formPosition == 'append') {
+			$(formAttached).append( jQuery._makeForm(this.settings) );
+		} else {
+			$(formAttached).after( jQuery._makeForm(this.settings) );
+		}
+	};
+	this.focusOnLoad = function () {
+		$('input[@rel="'+this.settings.randomElement+'"]').get(0).focus();
+	};
+	this.toggleText = function () {
+		var el = this;
+		$('input[@rel="'+this.settings.randomElement+'"]').focus(function () {
+			if($(this).val() == el.settings.inputText) {
+				$(this).val('');
+			}
+		}),
+		$('input[@rel="'+this.settings.randomElement+'"]').blur(function () {
+			if($(this).val() == "") {
+				$(this).val(el.settings.inputText);
+			}
+		})
+	};	
+};
+
+jQuery._loader = function (set) {
+	this.settings = set;
+	this.setTo = function (to) {
+		if(this.settings.loaderId) {
+			if(to == 'hide') {
+				$('input[@rel="'+this.settings.randomElement+'"]').parent().find('.loader').hide();
+			} else {
+				$('input[@rel="'+this.settings.randomElement+'"]').parent().find('.loader').show();
+			}			
+		}
+	}
+}
+
+jQuery._makeForm = function (set) {
+	this.settings = set;
+	this.mform = function () {
+		return '<form action="#" ' + 
+						'id="'+ this.settings.formId + '" ' +
+						'class="quicksearch">' +
+						this.mlabel() +
+						this.minput() +
+						this.mloader() +		
+						'</form>';
+	};
+	this.mlabel = function () {
+		if(!this.isEmpty(this.settings.labelText)) {
+			return '<label for="' + this.settings.inputId + '" '+
+						'class="' + this.settings.labelClass + '">'
+						+ this.settings.labelText
+						+ '</label> ';	
+		}
+		return '';
+	};
+	this.minput = function () {			
+		var val = (!this.isEmpty(this.settings.inputText)) ? this.settings.inputText : ""
+		return '<input type="text" ' +
+					'value="' + val + '" ' + 
+					'rel="' + this.settings.randomElement  + '" ' +
+					'class="' + this.settings.inputClass + '" ' +
+					'/> ';	
+	};
+	this.mloader = function () {
+		if(!this.isEmpty(this.settings.loaderImg)) {
+			return '<img src="' + this.settings.loaderImg + '" alt="Loading" id="' + this.settings.loaderId + '" class="' + this.settings.loaderClass + '" />';
+		} else {
+			return '<span id="' + this.settings.loaderId + '" class="' + this.settings.loaderClass + '">' + this.settings.loaderText + '</span>';
+		}
+	};
+	this.isEmpty = function (input) {
+		return (input == null || input == undefined || input == '' || input == 0) ? true: false;
+	};
+	return this.mform();
+}
+
+jQuery._stripHtml = function (input) {
+	var regexp = new RegExp( /\<[^\<]+\>/g );
+	var output = input.replace(regexp, "");
+	output = output.toLowerCase();
+	return output;
+}
+
+jQuery._stripe = function (set) {
+	this.i = 0;
+	this.set = set;
+	this.go = function (el) {
+		this.removeClasses(el);
+		if(el.getAttribute('style') != "display: none;") {				
+			$(el).addClass(this.set[this.i%this.set.length]);
+			this.i += 1;
+		}
+	}; 
+	this.removeClasses = function (el) {
+		for(var j = 0; j < this.set.length; j++) {
+			if(this.i%this.set.length != j) {
+				$(el).removeClass(this.set[j]);
+			}
+		}
+	};
+	this.reset = function () {
+		this.i = 0;
+	}
+}
+
+
+
+
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/selecteur_priv.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/selecteur_priv.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/selecteur_priv.js	(revision 80)
@@ -0,0 +1,23 @@
+var icone_haut;
+var icone_bas;
+
+$(document).ready(function(){
+ if ($(".fleche").length){
+  icone_haut = $(".fleche")[0].getAttribute('src');
+  icone_bas = icone_haut.replace(/deplierhaut\.gif/, 'deplierbas.gif');
+ }
+});
+
+function montrer_item(leitem) {
+	jQuery(leitem).toggle(); 	
+}
+
+function deplier_contenu(elem) {
+  if ($(elem).attr("src") == icone_haut) {
+    $(elem).attr({src: icone_bas});
+    $(elem).siblings("ul").css({display: "block"});
+  } else {
+    $(elem).attr({src: icone_haut});
+    $(elem).siblings("ul").css({display: "none"});
+  }
+}
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/slightbox.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/slightbox.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/slightbox.js	(revision 80)
@@ -0,0 +1,377 @@
+/* All code copyright 2007 Taras Mankovski */
+/* email: tarasm@gmail.com */
+/* website: http://www.oscandy.com/author/taras */
+
+// This class adds lightbox functionality to smoothgallery
+gallery = gallery.extend({
+	initialize: function(element, options) {
+		this.parent(element, options);
+		this.addEvent('onPopulated', this.makeLink.bind(this));
+		if (options.lightbox) this.lightbox = new lightboxforsmoothgallery(this.galleryData, {});
+	},
+	populateData: function() {
+		currentArrayPlace = this.galleryData.length;
+		options = this.options;
+		data = this.galleryData;
+		this.galleryElement.getElements(options.elementSelector).each(function(el) {
+			elementDict = {
+				imagepath: el.getElement(options.linkSelector).getProperty('href'),
+				image: el.getElement(options.imageSelector).getProperty('src'),
+				number: currentArrayPlace
+			};
+			if ((options.showInfopane) | (options.showCarousel))
+				Object.extend(elementDict, {
+					title: el.getElement(options.titleSelector).innerHTML,
+					description: el.getElement(options.subtitleSelector).innerHTML
+				});
+			if (options.embedLinks)
+				Object.extend(elementDict, {
+					link: el.getElement(options.linkSelector).href||false,
+					linkTitle: el.getElement(options.linkSelector).title||false
+				});
+			if ((!options.useThumbGenerator) && (options.showCarousel))
+				Object.extend(elementDict, {
+					thumbnail: el.getElement(options.thumbnailSelector).src
+				});
+			else if (options.useThumbGenerator)
+				Object.extend(elementDict, {
+					thumbnail: 'resizer.php?imgfile=' + elementDict.image + '&max_width=' + options.thumbWidth + '&max_height=' + options.thumbHeight
+				});
+			
+			data[currentArrayPlace] = elementDict;
+			currentArrayPlace++;
+			if (this.options.destroyAfterPopulate)
+				el.remove();
+		});
+		this.galleryData = data;
+		this.fireEvent('onPopulated');
+	},
+	makeLink: function (num) {
+		this.currentLink.setProperties({
+			href: this.galleryData[num].link,
+			title: this.galleryData[num].linkTitle
+		})
+		if (options.lightbox) this.currentLink.onclick = this.lightbox.open.pass(num, this.lightbox);
+		if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
+			this.currentLink.setStyle('display', 'block');	
+	}
+});
+
+/*
+	Slimbox v1.22 - The ultimate lightweight Lightbox clone
+	by Christophe Beyls (http://www.digitalia.be) - MIT-style license.
+	Inspired by the original Lightbox v2 by Lokesh Dhakar.
+*/
+
+var Lightbox = new Class({
+	
+	initialize: function(options) {
+		this.options = Object.extend({
+			resizeDuration: 400,		// Duration of height and width resizing (ms)
+			initialWidth: 250,		// Initial width of the box (px)
+			initialHeight: 250,		// Initial height of the box (px)
+			animateCaption: true		// Enable/Disable caption animation
+		}, options || {});
+		this.anchors = [];
+		$A(document.getElementsByTagName('a')).each(function(el){
+			if(el.rel && el.href && el.rel.test('^lightbox', 'i')) {
+				el.onclick = this.click.pass(el, this);
+				this.anchors.push(el);
+			}
+		}, this);
+
+		this.eventKeyDown = this.keyboardListener.bindAsEventListener(this);
+		this.eventPosition = this.position.bind(this);
+
+		this.buildbox();
+
+		var nextEffect = this.nextEffect.bind(this);
+		this.fx = {
+			overlay: this.overlay.effect('opacity', { duration: 500 }).hide(),
+			resize: this.center.effects({ duration: this.options.resizeDuration, onComplete: nextEffect }),
+			image: this.image.effect('opacity', { duration: 500, onComplete: nextEffect }),
+			bottom: this.bottom.effects({ duration: 400, onComplete: nextEffect })
+		};
+		
+		this.preloadPrev = new Image();
+		this.preloadNext = new Image();
+	},
+	buildbox : function () {
+		this.overlay = new Element('div').setProperty('id', 'lbOverlay').injectInside(document.body);	
+		this.center = new Element('div').setProperty('id', 'lbCenter').setStyles({width: this.options.initialWidth+'px', height: this.options.initialHeight+'px', marginLeft: '-'+(this.options.initialWidth/2)+'px', display: 'none'}).injectInside(document.body);
+		this.image = new Element('div').setProperty('id', 'lbImage').injectInside(this.center);
+		this.prevLink = new Element('a').setProperties({id: 'lbPrevLink', href: '#'}).setStyle('display', 'none').injectInside(this.image);
+		this.nextLink = this.prevLink.clone().setProperty('id', 'lbNextLink').injectInside(this.image);
+		this.prevLink.onclick = this.previous.bind(this);
+		this.nextLink.onclick = this.next.bind(this);
+	
+		this.bottom = new Element('div').setProperty('id', 'lbBottom').setStyle('display', 'none').injectInside(document.body);
+		new Element('a').setProperties({id: 'lbCloseLink', href: '#'}).injectInside(this.bottom).onclick = this.overlay.onclick = this.close.bind(this);
+		this.number = new Element('div').setProperty('id', 'lbNumber').injectInside(this.bottom);
+		this.caption = new Element('div').setProperty('id', 'lbCaption').injectInside(this.bottom);
+		new Element('div').setStyle('clear', 'both').injectInside(this.bottom);
+	},
+	click: function(link) {
+		if(link.rel.length == 8) {
+			return this.show(link.href, link.title);
+		}
+		var j, imageNum, images = [];
+		this.anchors.each(function(el){
+			if(el.rel == link.rel) {
+				for(j = 0; j < images.length; j++)
+					if(images[j][0] == el.href) break;
+				if(j == images.length) {			
+					images.push([el.href, el.title]);
+					if(el.href == link.href) imageNum = j;
+				}
+			}
+		}, this);
+		return this.open(images, imageNum);
+	},
+
+	show: function(url, title) {
+		return this.open([[url, title]], 0);
+	},
+
+	open: function(images, imageNum) {
+		this.images = images;
+		this.position();
+		this.setup(true);
+		this.top = Window.getScrollTop() + (Window.getHeight() / 15);
+		this.center.setStyles({top: this.top+'px', display: ''});
+		this.fx.overlay.custom(0.8);
+		return this.changeImage(imageNum);
+	},
+
+	position: function() {
+		this.overlay.setStyles({top: Window.getScrollTop()+'px', height: Window.getHeight()+'px'});
+	},
+
+	setup: function(open) {
+		var elements = $A(document.getElementsByTagName('object'));
+		elements.extend(document.getElementsByTagName(window.ActiveXObject ? 'select' : 'embed'));
+		elements.each(function(el){ el.style.visibility = open ? 'hidden' : ''; });
+		var fn = open ? 'addEvent' : 'removeEvent';
+		window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
+		document[fn]('keydown', this.eventKeyDown);
+		this.step = 0;
+	},
+
+	keyboardListener: function(event) {
+		switch(event.keyCode) {
+			case 27: case 88: case 67: this.close(); break;
+			case 37: case 80: this.previous(); break;	
+			case 39: case 78: this.next();
+		}
+	},
+
+	previous: function() {
+		return this.changeImage(this.activeImage-1);
+	},
+
+	next: function() {
+		return this.changeImage(this.activeImage+1);
+	},
+
+	changeImage: function(imageNum) {		
+		if(this.step || (imageNum < 0) || (imageNum >= this.images.length)) return false;
+		this.step = 1;
+		this.activeImage = imageNum;
+		
+		this.prevLink.style.display = this.nextLink.style.display = 'none';
+		this.bottom.setStyles({opacity: '0', height: '0px', display: 'none'});
+		this.fx.image.hide();
+		this.center.className = 'lbLoading';
+		
+		this.preload = new Image();
+		this.preload.onload = this.nextEffect.bind(this);
+		this.preload.src = this.images[imageNum][0];
+		return false;
+	},
+
+	nextEffect: function() {
+		switch(this.step++) {
+		case 1:
+			this.center.className = '';
+			this.image.setStyles({backgroundImage: 'url('+this.images[this.activeImage][0]+')', width: this.preload.width+'px'});
+			this.image.style.height = this.prevLink.style.height = this.nextLink.style.height = this.preload.height+'px';
+			
+			this.caption.setHTML(this.images[this.activeImage][1] || '');
+			this.number.setHTML((this.images.length == 1) ? '' : 'Image '+(this.activeImage+1)+' of '+this.images.length);
+			
+			if(this.activeImage != 0) this.preloadPrev.src = this.images[this.activeImage - 1][0];
+			if(this.activeImage != (this.images.length - 1)) this.preloadNext.src = this.images[this.activeImage + 1][0];
+			if(this.center.clientHeight != this.image.offsetHeight+20) {
+				this.fx.resize.custom({height: [this.center.clientHeight, this.image.offsetHeight]});
+				break;
+			}
+			this.step++;
+		case 2:
+			if(this.center.clientWidth != this.image.offsetWidth+20) {
+				this.fx.resize.custom({width: [this.center.clientWidth, this.image.offsetWidth], marginLeft: [-this.center.clientWidth/2, -this.image.offsetWidth/2]});
+				break;
+			}
+			this.step++;
+		case 3:
+			this.bottom.setStyles({top: (this.top + this.center.clientHeight)+'px', width: this.image.style.width, marginLeft: this.center.style.marginLeft, display: ''});
+			this.fx.image.custom(0, 1);
+			break;
+		case 4:
+			if(this.options.animateCaption) {
+				this.fx.bottom.custom({opacity: [0, 1], height: [0, this.bottom.scrollHeight]});
+				break;
+			}
+			this.bottom.setStyles({opacity: '1', height: this.bottom.scrollHeight+'px'});
+		case 5:
+			if(this.activeImage != 0) this.prevLink.style.display = '';
+			if(this.activeImage != (this.images.length - 1)) this.nextLink.style.display = '';
+			this.step = 0;
+		}
+	},
+
+	close: function() {
+		if(this.step < 0) return;
+		this.step = -1;
+		if(this.preload) {
+			this.preload.onload = Class.empty;
+			this.preload = null;
+		}
+		for(var f in this.fx) this.fx[f].clearTimer();
+		this.center.style.display = this.bottom.style.display = 'none';
+		this.fx.overlay.chain(this.setup.pass(false, this)).custom(0);
+		return false;
+	}
+});
+
+/* All code copyright 2007 Taras Mankovski */
+/* email: tarasm@gmail.com */
+/* website: http://www.oscandy.com/author/taras */
+
+// This class extends lightbox class and makes the lightbox compatible with smoothgallery
+var lightboxforsmoothgallery = Lightbox.extend({
+	initialize: function(galleryData, options) {
+		this.options = Object.extend({
+			resizeDuration: 400,	// Duration of height and width resizing (ms)
+			initialWidth: 250,		// Initial width of the box (px)
+			initialHeight: 250,		// Initial height of the box (px)
+			animateCaption: true	// Enable/Disable caption animation
+		}, options || {});
+		
+		this.images = galleryData;
+		
+		this.eventKeyDown = this.keyboardListener.bindAsEventListener(this);
+		this.eventPosition = this.position.bind(this);
+		
+		this.overlay = new Element('div').setProperty('id', 'lbOverlay').injectInside(document.body);
+		
+		this.center = new Element('div').setProperty('id', 'lbCenter').setStyles({width: this.options.initialWidth+'px', height: this.options.initialHeight+'px', marginLeft: '-'+(this.options.initialWidth/2)+'px', display: 'none'}).injectInside(document.body);
+		this.image = new Element('div').setProperty('id', 'lbImage').injectInside(this.center);
+		this.prevLink = new Element('a').setProperties({id: 'lbPrevLink', href: '#'}).setStyle('display', 'none').injectInside(this.image);
+		this.nextLink = this.prevLink.clone().setProperty('id', 'lbNextLink').injectInside(this.image);
+		this.prevLink.onclick = this.previous.bind(this);
+		this.nextLink.onclick = this.next.bind(this);
+		
+		this.bottom = new Element('div').setProperty('id', 'lbBottom').setStyle('display', 'none').injectInside(document.body);
+		this.close = new Element('a').setProperties({id: 'lbCloseLink', href: '#'}).injectInside(this.bottom).onclick = this.overlay.onclick = this.close.bind(this);
+		this.number = new Element('div').setProperty('id', 'lbNumber').addClass('gallery').injectInside(this.bottom);
+		this.description = new Element('div').setProperty('id', 'lbDescription').injectInside(this.bottom);
+		this.title = new Element('div').setProperty('id', 'lbTitle').injectInside(this.description);
+		new Element('div').setStyle('clear', 'both').injectInside(this.description);
+		this.caption = new Element('div').setProperty('id', 'lbCaption').injectInside(this.description);
+		new Element('div').setStyle('clear', 'both').injectInside(this.bottom);
+		
+		var nextEffect = this.nextEffect.bind(this);
+		this.fx = {
+			overlay: this.overlay.effect('opacity', { duration: 500 }).hide(),
+			resize: this.center.effects({ duration: this.options.resizeDuration, onComplete: nextEffect }),
+			image: this.image.effect('opacity', { duration: 500, onComplete: nextEffect }),
+			bottom: this.bottom.effects({ duration: 400, onComplete: nextEffect })
+		};
+		
+		this.preloadPrev = new Image();
+		this.preloadNext = new Image();
+		
+		this.open.bind(this);
+		this.changeImage.bind(this);		
+	},
+	buildbox : function () {
+		this.overlay = new Element('div').setProperty('id', 'lbOverlay').injectInside(document.body);	
+		this.center = new Element('div').setProperty('id', 'lbCenter').setStyles({width: this.options.initialWidth+'px', height: this.options.initialHeight+'px', marginLeft: '-'+(this.options.initialWidth/2)+'px', display: 'none'}).injectInside(document.body);
+		this.image = new Element('div').setProperty('id', 'lbImage').injectInside(this.center);
+		this.prevLink = new Element('a').setProperties({id: 'lbPrevLink', href: '#'}).setStyle('display', 'none').injectInside(this.image);
+		this.nextLink = this.prevLink.clone().setProperty('id', 'lbNextLink').injectInside(this.image);
+		this.prevLink.onclick = this.previous.bind(this);
+		this.nextLink.onclick = this.next.bind(this);
+	
+		this.bottom = new Element('div').setProperty('id', 'lbBottom').setStyle('display', 'none').injectInside(document.body);
+		new Element('a').setProperties({id: 'lbCloseLink', href: '#'}).injectInside(this.bottom).onclick = this.overlay.onclick = this.close.bind(this);
+		new Element('div').setProperty('id', 'lbDescription').injectInside(this.bottom);
+		this.number = new Element('div').setProperty('id', 'lbNumber').injectInside(this.bottom);
+		this.title = new Element('div').setProperty('id', 'lbTitle').injectInside(this.description);
+		this.caption = new Element('div').setProperty('id', 'lbCaption').injectInside(this.description);
+		new Element('div').setStyle('clear', 'both').injectInside(this.bottom);
+	},
+	open: function(num) {
+		this.position();
+		this.setup(true);
+		this.top = Window.getScrollTop() + (Window.getHeight() / 15);
+		this.center.setStyles({top: this.top+'px', display: ''});
+		this.fx.overlay.custom(0.8);
+		return this.changeImage(num);
+	},
+	changeImage: function(num) {		
+		if(this.step || (num < 0) || (num >= this.images.length)) return false;
+		this.step = 1;
+		this.activeImage = num;
+		
+		this.prevLink.style.display = this.nextLink.style.display = 'none';
+		this.bottom.setStyles({opacity: '0', height: '0px', display: 'none'});
+		this.fx.image.hide();
+		this.center.className = 'lbLoading';
+		
+		this.preload = new Image();
+		this.preload.onload = this.nextEffect.bind(this);
+		this.preload.src = this.images[num].imagepath;
+		return false;
+	},
+	nextEffect: function() {
+		switch(this.step++) {
+		case 1:
+			this.center.className = '';
+			this.image.setStyles({backgroundImage: 'url('+this.images[this.activeImage].imagepath+')', width: this.preload.width+'px'});
+			this.image.style.height = this.prevLink.style.height = this.nextLink.style.height = this.preload.height+'px';
+			
+			this.title.setHTML(this.images[this.activeImage].title || '');
+			this.caption.setHTML(this.images[this.activeImage].description || '');
+			this.number.setHTML((this.images.length == 1) ? '' : 'Image '+(this.activeImage+1)+' of '+this.images.length);
+	
+			if(this.activeImage != 0) this.preloadPrev.src = this.images[this.activeImage - 1].imagepath;
+			if(this.activeImage != (this.images.length - 1)) this.preloadNext.src = this.images[this.activeImage + 1].imagepath;
+			if(this.center.clientHeight != this.image.offsetHeight+20) {
+				this.fx.resize.custom({height: [this.center.clientHeight, this.image.offsetHeight]});
+				break;
+			}
+			this.step++;
+		case 2:
+			if(this.center.clientWidth != this.image.offsetWidth+20) {
+				this.fx.resize.custom({width: [this.center.clientWidth, this.image.offsetWidth], marginLeft: [-this.center.clientWidth/2, -this.image.offsetWidth/2]});
+				break;
+			}
+			this.step++;
+		case 3:
+			this.bottom.setStyles({top: (this.top + this.center.clientHeight)+'px', width: this.image.style.width, marginLeft: this.center.style.marginLeft, display: ''});
+			this.fx.image.custom(0, 1);
+			break;
+		case 4:
+			if(this.options.animateCaption) {
+				this.fx.bottom.custom({opacity: [0, 1], height: [0, this.bottom.scrollHeight]});
+				break;
+			}
+			this.bottom.setStyles({opacity: '1', height: this.bottom.scrollHeight+'px'});
+		case 5:
+			if(this.activeImage != 0) this.prevLink.style.display = '';
+			if(this.activeImage != (this.images.length - 1)) this.nextLink.style.display = '';
+			this.step = 0;
+		}
+	}
+});
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/swfobject.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/swfobject.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/swfobject.js	(revision 80)
@@ -0,0 +1,8 @@
+/**
+ * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
+ *
+ * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/theme.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/theme.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/theme.js	(revision 80)
@@ -0,0 +1,32 @@
+$(document).ready(function(){
+
+// cache la liste des menus et declinaisons, ajoute un onclick, deroule si clicque
+$(".liste-declinaison").hide();
+$(".declinaison").each(function(){
+if( $(this).attr("checked")==true){
+$(this).parent().show();
+}
+
+});
+
+$(".vignette-autres-theme").css({ display:"block",position:"absolute",top:"0",left:"0px" });
+
+$(".conteneur-theme .theme").each(function(){
+$(this).css("cursor","pointer");
+	$(this).click(function(){
+		$(this).next().toggle();
+	});
+	$(this).hover(function(e){
+	lien=$(this).attr("rel");
+	$("body").after("<img src='"+ lien +"' id='lavignette' />");
+	posbasex=e.pageX;
+	posbasey=e.pageY;
+	$('#lavignette').css("top", (posbasey -20) + "px").css("left", (posbasex -320) + "px");
+	},function(){
+	$("#lavignette").remove();
+	});
+	
+});
+
+
+});
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/thickbox.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/thickbox.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/thickbox.js	(revision 80)
@@ -0,0 +1,10 @@
+/*
+ * Thickbox 3 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
Index: trunk/spip/esqueleto-redcta/plugins/magusine/javascript/ufo.js
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/javascript/ufo.js	(revision 80)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/javascript/ufo.js	(revision 80)
@@ -0,0 +1,286 @@
+/*	Unobtrusive Flash Objects (UFO) v3.20 <http://www.bobbyvandersluis.com/ufo/>
+	Copyright 2005, 2006 Bobby van der Sluis
+	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+var UFO = {
+	req: ["movie", "width", "height", "majorversion", "build"],
+	opt: ["play", "loop", "menu", "quality", "scale", "salign", "wmode", "bgcolor", "base", "flashvars", "devicefont", "allowscriptaccess", "seamlesstabbing"],
+	optAtt: ["id", "name", "align"],
+	optExc: ["swliveconnect"],
+	ximovie: "ufo.swf",
+	xiwidth: "215",
+	xiheight: "138",
+	ua: navigator.userAgent.toLowerCase(),
+	pluginType: "",
+	fv: [0,0],
+	foList: [],
+		
+	create: function(FO, id) {
+		if (!UFO.uaHas("w3cdom") || UFO.uaHas("ieMac")) return;
+		UFO.getFlashVersion();
+		UFO.foList[id] = UFO.updateFO(FO);
+		UFO.createCSS("#" + id, "visibility:hidden;");
+		UFO.domLoad(id);
+	},
+
+	updateFO: function(FO) {
+		if (typeof FO.xi != "undefined" && FO.xi == "true") {
+			if (typeof FO.ximovie == "undefined") FO.ximovie = UFO.ximovie;
+			if (typeof FO.xiwidth == "undefined") FO.xiwidth = UFO.xiwidth;
+			if (typeof FO.xiheight == "undefined") FO.xiheight = UFO.xiheight;
+		}
+		FO.mainCalled = false;
+		return FO;
+	},
+
+	domLoad: function(id) {
+		var _t = setInterval(function() {
+			if ((document.getElementsByTagName("body")[0] != null || document.body != null) && document.getElementById(id) != null) {
+				UFO.main(id);
+				clearInterval(_t);
+			}
+		}, 250);
+		if (typeof document.addEventListener != "undefined") {
+			document.addEventListener("DOMContentLoaded", function() { UFO.main(id); clearInterval(_t); } , null); // Gecko, Opera 9+
+		}
+	},
+
+	main: function(id) {
+		var _fo = UFO.foList[id];
+		if (_fo.mainCalled) return;
+		UFO.foList[id].mainCalled = true;
+		document.getElementById(id).style.visibility = "hidden";
+		if (UFO.hasRequired(id)) {
+			if (UFO.hasFlashVersion(parseInt(_fo.majorversion, 10), parseInt(_fo.build, 10))) {
+				if (typeof _fo.setcontainercss != "undefined" && _fo.setcontainercss == "true") UFO.setContainerCSS(id);
+				UFO.writeSWF(id);
+			}
+			else if (_fo.xi == "true" && UFO.hasFlashVersion(6, 65)) {
+				UFO.createDialog(id);
+			}
+		}
+		document.getElementById(id).style.visibility = "visible";
+	},
+	
+	createCSS: function(selector, declaration) {
+		var _h = document.getElementsByTagName("head")[0]; 
+		var _s = UFO.createElement("style");
+		if (!UFO.uaHas("ieWin")) _s.appendChild(document.createTextNode(selector + " {" + declaration + "}")); // bugs in IE/Win
+		_s.setAttribute("type", "text/css");
+		_s.setAttribute("media", "screen"); 
+		_h.appendChild(_s);
+		if (UFO.uaHas("ieWin") && document.styleSheets && document.styleSheets.length > 0) {
+			var _ls = document.styleSheets[document.styleSheets.length - 1];
+			if (typeof _ls.addRule == "object") _ls.addRule(selector, declaration);
+		}
+	},
+	
+	setContainerCSS: function(id) {
+		var _fo = UFO.foList[id];
+		var _w = /%/.test(_fo.width) ? "" : "px";
+		var _h = /%/.test(_fo.height) ? "" : "px";
+		UFO.createCSS("#" + id, "width:" + _fo.width + _w +"; height:" + _fo.height + _h +";");
+		if (_fo.width == "100%") {
+			UFO.createCSS("body", "margin-left:0; margin-right:0; padding-left:0; padding-right:0;");
+		}
+		if (_fo.height == "100%") {
+			UFO.createCSS("html", "height:100%; overflow:hidden;");
+			UFO.createCSS("body", "margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0; height:100%;");
+		}
+	},
+
+	createElement: function(el) {
+		return (UFO.uaHas("xml") && typeof document.createElementNS != "undefined") ?  document.createElementNS("http://www.w3.org/1999/xhtml", el) : document.createElement(el);
+	},
+
+	createObjParam: function(el, aName, aValue) {
+		var _p = UFO.createElement("param");
+		_p.setAttribute("name", aName);	
+		_p.setAttribute("value", aValue);
+		el.appendChild(_p);
+	},
+
+	uaHas: function(ft) {
+		var _u = UFO.ua;
+		switch(ft) {
+			case "w3cdom":
+				return (typeof document.getElementById != "undefined" && typeof document.getElementsByTagName != "undefined" && (typeof document.createElement != "undefined" || typeof document.createElementNS != "undefined"));
+			case "xml":
+				var _m = document.getElementsByTagName("meta");
+				var _l = _m.length;
+				for (var i = 0; i < _l; i++) {
+					if (/content-type/i.test(_m[i].getAttribute("http-equiv")) && /xml/i.test(_m[i].getAttribute("content"))) return true;
+				}
+				return false;
+			case "ieMac":
+				return /msie/.test(_u) && !/opera/.test(_u) && /mac/.test(_u);
+			case "ieWin":
+				return /msie/.test(_u) && !/opera/.test(_u) && /win/.test(_u);
+			case "gecko":
+				return /gecko/.test(_u) && !/applewebkit/.test(_u);
+			case "opera":
+				return /opera/.test(_u);
+			case "safari":
+				return /applewebkit/.test(_u);
+			default:
+				return false;
+		}
+	},
+	
+	getFlashVersion: function() {
+		if (UFO.fv[0] != 0) return;  
+		if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
+			UFO.pluginType = "npapi";
+			var _d = navigator.plugins["Shockwave Flash"].description;
+			if (typeof _d != "undefined") {
+				_d = _d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
+				var _m = parseInt(_d.replace(/^(.*)\..*$/, "$1"), 10);
+				var _r = /r/.test(_d) ? parseInt(_d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
+				UFO.fv = [_m, _r];
+			}
+		}
+		else if (window.ActiveXObject) {
+			UFO.pluginType = "ax";
+			try { // avoid fp 6 crashes
+				var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
+			}
+			catch(e) {
+				try { 
+					var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
+					UFO.fv = [6, 0];
+					_a.AllowScriptAccess = "always"; // throws if fp < 6.47 
+				}
+				catch(e) {
+					if (UFO.fv[0] == 6) return;
+				}
+				try {
+					var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
+				}
+				catch(e) {}
+			}
+			if (typeof _a == "object") {
+				var _d = _a.GetVariable("$version"); // bugs in fp 6.21/6.23
+				if (typeof _d != "undefined") {
+					_d = _d.replace(/^\S+\s+(.*)$/, "$1").split(",");
+					UFO.fv = [parseInt(_d[0], 10), parseInt(_d[2], 10)];
+				}
+			}
+		}
+	},
+
+	hasRequired: function(id) {
+		var _l = UFO.req.length;
+		for (var i = 0; i < _l; i++) {
+			if (typeof UFO.foList[id][UFO.req[i]] == "undefined") return false;
+		}
+		return true;
+	},
+	
+	hasFlashVersion: function(major, release) {
+		return (UFO.fv[0] > major || (UFO.fv[0] == major && UFO.fv[1] >= release)) ? true : false;
+	},
+
+	writeSWF: function(id) {
+		var _fo = UFO.foList[id];
+		var _e = document.getElementById(id);
+		if (UFO.pluginType == "npapi") {
+			if (UFO.uaHas("gecko") || UFO.uaHas("xml")) {
+				while(_e.hasChildNodes()) {
+					_e.removeChild(_e.firstChild);
+				}
+				var _obj = UFO.createElement("object");
+				_obj.setAttribute("type", "application/x-shockwave-flash");
+				_obj.setAttribute("data", _fo.movie);
+				_obj.setAttribute("width", _fo.width);
+				_obj.setAttribute("height", _fo.height);
+				var _l = UFO.optAtt.length;
+				for (var i = 0; i < _l; i++) {
+					if (typeof _fo[UFO.optAtt[i]] != "undefined") _obj.setAttribute(UFO.optAtt[i], _fo[UFO.optAtt[i]]);
+				}
+				var _o = UFO.opt.concat(UFO.optExc);
+				var _l = _o.length;
+				for (var i = 0; i < _l; i++) {
+					if (typeof _fo[_o[i]] != "undefined") UFO.createObjParam(_obj, _o[i], _fo[_o[i]]);
+				}
+				_e.appendChild(_obj);
+			}
+			else {
+				var _emb = "";
+				var _o = UFO.opt.concat(UFO.optAtt).concat(UFO.optExc);
+				var _l = _o.length;
+				for (var i = 0; i < _l; i++) {
+					if (typeof _fo[_o[i]] != "undefined") _emb += ' ' + _o[i] + '="' + _fo[_o[i]] + '"';
+				}
+				_e.innerHTML = '<embed type="application/x-shockwave-flash" src="' + _fo.movie + '" width="' + _fo.width + '" height="' + _fo.height + '" pluginspage="http://www.macromedia.com/go/getflashplayer"' + _emb + '></embed>';
+			}
+		}
+		else if (UFO.pluginType == "ax") {
+			var _objAtt = "";
+			var _l = UFO.optAtt.length;
+			for (var i = 0; i < _l; i++) {
+				if (typeof _fo[UFO.optAtt[i]] != "undefined") _objAtt += ' ' + UFO.optAtt[i] + '="' + _fo[UFO.optAtt[i]] + '"';
+			}
+			var _objPar = "";
+			var _l = UFO.opt.length;
+			for (var i = 0; i < _l; i++) {
+				if (typeof _fo[UFO.opt[i]] != "undefined") _objPar += '<param name="' + UFO.opt[i] + '" value="' + _fo[UFO.opt[i]] + '" />';
+			}
+			var _p = window.location.protocol == "https:" ? "https:" : "http:";
+			_e.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + _objAtt + ' width="' + _fo.width + '" height="' + _fo.height + '" codebase="' + _p + '//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + _fo.majorversion + ',0,' + _fo.build + ',0"><param name="movie" value="' + _fo.movie + '" />' + _objPar + '</object>';
+		}
+	},
+		
+	createDialog: function(id) {
+		var _fo = UFO.foList[id];
+		UFO.createCSS("html", "height:100%; overflow:hidden;");
+		UFO.createCSS("body", "height:100%; overflow:hidden;");
+		UFO.createCSS("#xi-con", "position:absolute; left:0; top:0; z-index:1000; width:100%; height:100%; background-color:#fff; filter:alpha(opacity:75); opacity:0.75;");
+		UFO.createCSS("#xi-dia", "position:absolute; left:50%; top:50%; margin-left: -" + Math.round(parseInt(_fo.xiwidth, 10) / 2) + "px; margin-top: -" + Math.round(parseInt(_fo.xiheight, 10) / 2) + "px; width:" + _fo.xiwidth + "px; height:" + _fo.xiheight + "px;");
+		var _b = document.getElementsByTagName("body")[0];
+		var _c = UFO.createElement("div");
+		_c.setAttribute("id", "xi-con");
+		var _d = UFO.createElement("div");
+		_d.setAttribute("id", "xi-dia");
+		_c.appendChild(_d);
+		_b.appendChild(_c);
+		var _mmu = window.location;
+		if (UFO.uaHas("xml") && UFO.uaHas("safari")) {
+			var _mmd = document.getElementsByTagName("title")[0].firstChild.nodeValue = document.getElementsByTagName("title")[0].firstChild.nodeValue.slice(0, 47) + " - Flash Player Installation";
+		}
+		else {
+			var _mmd = document.title = document.title.slice(0, 47) + " - Flash Player Installation";
+		}
+		var _mmp = UFO.pluginType == "ax" ? "ActiveX" : "PlugIn";
+		var _uc = typeof _fo.xiurlcancel != "undefined" ? "&xiUrlCancel=" + _fo.xiurlcancel : "";
+		var _uf = typeof _fo.xiurlfailed != "undefined" ? "&xiUrlFailed=" + _fo.xiurlfailed : "";
+		UFO.foList["xi-dia"] = { movie:_fo.ximovie, width:_fo.xiwidth, height:_fo.xiheight, majorversion:"6", build:"65", flashvars:"MMredirectURL=" + _mmu + "&MMplayerType=" + _mmp + "&MMdoctitle=" + _mmd + _uc + _uf };
+		UFO.writeSWF("xi-dia");
+	},
+
+	expressInstallCallback: function() {
+		var _b = document.getElementsByTagName("body")[0];
+		var _c = document.getElementById("xi-con");
+		_b.removeChild(_c);
+		UFO.createCSS("body", "height:auto; overflow:auto;");
+		UFO.createCSS("html", "height:auto; overflow:auto;");
+	},
+
+	cleanupIELeaks: function() {
+		var _o = document.getElementsByTagName("object");
+		var _l = _o.length
+		for (var i = 0; i < _l; i++) {
+			_o[i].style.display = "none";
+			for (var x in _o[i]) {
+				if (typeof _o[i][x] == "function") {
+					_o[i][x] = null;
+				}
+			}
+		}
+	}
+
+};
+
+if (typeof window.attachEvent != "undefined" && UFO.uaHas("ieWin")) {
+	window.attachEvent("onunload", UFO.cleanupIELeaks);
+}
