diff --git a/.gitattributes b/.gitattributes
index 5c464c161bd1921612c0199c817000d7b60b8a81..3fad44c0ebb6a734503cb72de28e7b73126419a9 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -213,8 +213,8 @@ dist/inc-petition.html -text
 dist/inc-pied.html -text
 dist/inc-rss-item.html -text
 dist/inc-rubriques.html -text
-dist/javascript/jquery-1.0.1-forms.js -text
-dist/javascript/jquery-1.0.1-forms.pack.js -text
+dist/javascript/jquery-1.0.2-forms.js -text
+dist/javascript/jquery-1.0.2-forms.pack.js -text
 dist/modeles/article_mots.html -text
 dist/modeles/article_traductions.html -text
 dist/modeles/doc.html -text
diff --git a/dist/javascript/jquery-1.0.1-forms.pack.js b/dist/javascript/jquery-1.0.1-forms.pack.js
deleted file mode 100644
index 719de3dc3599d78c907f80a1731a386db08a3244..0000000000000000000000000000000000000000
--- a/dist/javascript/jquery-1.0.1-forms.pack.js
+++ /dev/null
@@ -1 +0,0 @@
-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}('1P.W=1P.W;q 7(a,c){l(a&&a.I==1b&&7.C.25)v 7(18).25(a);a=a||7.1f||18;l(a.30)v $(7.24(a,[]));l(c&&c.30)v $(c).2h(a);l(1P==6)v 1a 7(a,c);u m=/^[^<]*(<.+>)[^>]*$/.35(a);l(m)a=7.3y([m[1]]);6.1r(a.I==2p||a.D&&!a.1R&&a[0]!=W&&a[0].1R?7.24(a,[]):7.2h(a,c));u C=1d[1d.D-1];l(C&&C.I==1b)6.O(C)}l(40 $!="W")7.4h$=$;u $=7;7.C=7.8g={30:"$8h: 8i $",5R:q(){v 6.D},1r:q(23){l(23&&23.I==2p){6.D=0;[].17.19(6,23);v 6}E v 23==W?7.2f(6,q(a){v a}):6[23]},O:q(C,1E){v 7.O(6,C,1E)},8j:q(14){u 2a=-1;6.O(q(i){l(6==14)2a=i});v 2a},1H:q(1O,U,B){v 1O.I!=1z||U!=W?6.O(q(){l(U==W)F(u H 1o 1O)7.1H(B?6.1g:6,H,1O[H]);E 7.1H(B?6.1g:6,1O,U)}):7[B||"1H"](6[0],1O)},1i:q(1O,U){v 6.1H(1O,U,"1Q")},42:q(e){e=e||6;u t="";F(u j=0;j<e.D;j++){u r=e[j].29;F(u i=0;i<r.D;i++)l(r[i].1R!=8)t+=r[i].1R!=1?r[i].4j:7.C.42([r[i]])}v t},8k:q(){u a=7.3y(1d);v 6.O(q(){u b=a[0].3k(Y);6.1t.2L(b,6);2s(b.1F)b=b.1F;b.4w(6)})},4W:q(){v 6.2V(1d,Y,1,q(a){6.4w(a)})},52:q(){v 6.2V(1d,Y,-1,q(a){6.2L(a,6.1F)})},53:q(){v 6.2V(1d,16,1,q(a){6.1t.2L(a,6)})},54:q(){v 6.2V(1d,16,-1,q(a){6.1t.2L(a,6.8l)})},5p:q(){v 6.1r(6.3j.8m())},2h:q(t){v 6.2d(7.2f(6,q(a){v 7.2h(t,a)}),1d)},3H:q(45){v 6.2d(7.2f(6,q(a){v a.3k(45!=W?45:Y)}),1d)},1k:q(t){v 6.2d(t.I==2p&&7.2f(6,q(a){F(u i=0;i<t.D;i++)l(7.1k(t[i],[a]).r.D)v a})||t.I==8n&&(t?6.1r():[])||t.I==1b&&7.2G(6,t)||7.1k(t,6).r,1d)},2m:q(t){v 6.2d(t.I==1z?7.1k(t,6,16).r:7.2G(6,q(a){v a!=t}),1d)},21:q(t){v 6.2d(7.24(6,t.I==1z?7.2h(t):t.I==2p?t:[t]),1d)},4r:q(2y){v 2y?7.1k(2y,6).r.D>0:6.D>0},2V:q(1E,1l,2O,C){u 3H=6.5R()>1;u a=7.3y(1E);v 6.O(q(){u 14=6;l(1l&&6.4l=="8o"&&a[0].4l!="8p"){u 27=6.4J("27");l(!27.D){14=18.5F("27");6.4w(14)}E 14=27[0]}F(u i=(2O<0?a.D-1:0);i!=(2O<0?2O:a.D);i+=2O){C.19(14,[3H?a[i].3k(Y):a[i]])}})},2d:q(a,1E){u C=1E&&1E[1E.D-1];l(!C||C.I!=1b){l(!6.3j)6.3j=[];6.3j.17(6.1r());6.1r(a)}E{u 1Y=6.1r();6.1r(a);l(C.I==1b)v 6.O(C);6.1r(1Y)}v 6}};7.1V=7.C.1V=q(14,H){l(!H){H=14;14=6}F(u i 1o H)14[i]=H[i];v 14};7.1V({5m:q(){7.6H=Y;7.O(7.2e.5f,q(i,n){7.C[i]=q(a){u L=7.2f(6,n);l(a&&a.I==1z)L=7.1k(a,L).r;v 6.2d(L,1d)}});7.O(7.2e.2q,q(i,n){7.C[i]=q(){u a=1d;v 6.O(q(){F(u j=0;j<a.D;j++)$(a[j])[n](6)})}});7.O(7.2e.O,q(i,n){7.C[i]=q(){v 6.O(n,1d)}});7.O(7.2e.1k,q(i,n){7.C[n]=q(23,C){v 6.1k(":"+n+"("+23+")",C)}});7.O(7.2e.1H,q(i,n){n=n||i;7.C[i]=q(h){v h==W?6.D?6[0][n]:V:6.1H(n,h)}});7.O(7.2e.1i,q(i,n){7.C[n]=q(h){v h==W?(6.D?7.1i(6[0],n):V):6.1i(n,h)}})},O:q(14,C,1E){l(14.D==W)F(u i 1o 14)C.19(14[i],1E||[i,14[i]]);E F(u i=0;i<14.D;i++)C.19(14[i],1E||[i,14[i]]);v 14},1h:{21:q(o,c){l(7.1h.3i(o,c))v;o.1h+=(o.1h?" ":"")+c},2g:q(o,c){o.1h=!c?"":o.1h.1u(1a 3o("(^|\\\\s*\\\\b[^-])"+c+"($|\\\\b(?=[^-]))","g"),"")},3i:q(e,a){l(e.1h!=W)e=e.1h;v 1a 3o("(^|\\\\s)"+a+"(\\\\s|$)").28(e)}},3M:q(e,o,f){F(u i 1o o){e.1g["1Y"+i]=e.1g[i];e.1g[i]=o[i]}f.19(e,[]);F(u i 1o o)e.1g[i]=e.1g["1Y"+i]},1i:q(e,p){l(p=="1x"||p=="2k"){u 1Y={},3E,3D,d=["5W","5X","5Y","6a"];F(u i 1o d){1Y["5Z"+d[i]]=0;1Y["60"+d[i]+"62"]=0}7.3M(e,1Y,q(){l(7.1i(e,"1q")!="26"){3E=e.63;3D=e.64}E{e=$(e.3k(Y)).1i({4d:"1W",57:"65",1q:"2I"}).51("8s")[0];3E=e.66;3D=e.69;e.1t.3t(e)}});v p=="1x"?3E:3D}E l(p=="1A"&&7.1n.1Z)v 4i(7.1Q(e,"1k").1u(/[^0-9.]/,""))||1;v 7.1Q(e,p)},1Q:q(K,H,4y){u L;l(!4y&&K.1g[H]){L=K.1g[H]}E l(K.2W){u 4z=H.1u(/\\-(\\w)/g,q(m,c){v c.3m()});L=K.2W[H]||K.2W[4z]}E l(18.3B&&18.3B.4s){H=H.1u(/([A-Z])/g,"-$1").3R();u 1j=18.3B.4s(K,V);l(1j)L=1j.4B(H);E l(H==\'1q\')L=\'26\';E 7.3M(K,{1q:\'2I\'},q(){L=18.3B.4s(6,V).4B(H)})}v L},3y:q(a){u r=[];F(u i=0;i<a.D;i++){l(a[i].I==1z){u 1l="";l(!a[i].1e("<4p")||!a[i].1e("<27")){1l="4p";a[i]="<1l>"+a[i]+"</1l>"}E l(!a[i].1e("<2Y")){1l="2Y";a[i]="<1l>"+a[i]+"</1l>"}E l(!a[i].1e("<3N")||!a[i].1e("<8d")){1l="3N";a[i]="<1l><27><2Y>"+a[i]+"</2Y></27></1l>"}u 1C=18.5F("1C");1C.2u=a[i];l(1l){1C=1C.1F;l(1l!="4p")1C=1C.1F;l(1l=="3N")1C=1C.1F}F(u j=0;j<1C.29.D;j++)r.17(1C.29[j])}E l(a[i].30||a[i].D&&!a[i].1R)F(u k=0;k<a[i].D;k++)r.17(a[i][k]);E l(a[i]!==V)r.17(a[i].1R?a[i]:18.6j(a[i].6k()))}v r},2y:{"":"m[2]== \'*\'||a.4l.3m()==m[2].3m()","#":"a.3n(\'2R\')&&a.3n(\'2R\')==m[2]",":":{5b:"i<m[3]-0",5c:"i>m[3]-0",5v:"m[3]-0==i",5a:"m[3]-0==i",2j:"i==0",1M:"i==r.D-1",4T:"i%2==0",4U:"i%2","5v-3G":"7.1s(a,m[3]).1j","2j-3G":"7.1s(a,0).1j","1M-3G":"7.1s(a,0).1M","6l-3G":"7.1s(a).D==1",5g:"a.29.D",5j:"!a.29.D",5d:"(a.6n||a.2u).1e(m[3])>=0",6o:"a.B!=\'1W\'&&7.1i(a,\'1q\')!=\'26\'&&7.1i(a,\'4d\')!=\'1W\'",1W:"a.B==\'1W\'||7.1i(a,\'1q\')==\'26\'||7.1i(a,\'4d\')==\'1W\'",4K:"!a.2B",2B:"a.2B",4u:"a.4u",4c:"a.4c"},".":"7.1h.3i(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"!z.1e(m[4])","$=":"z.2S(z.D - m[4].D,m[4].D)==m[4]","*=":"z.1e(m[4])>=0","":"z"},"[":"7.2h(m[2],a).D"},3q:["\\\\.\\\\.|/\\\\.\\\\.","a.1t",">|/","7.1s(a.1F)","\\\\+","7.1s(a).3f","~",q(a){u r=[];u s=7.1s(a);l(s.n>0)F(u i=s.n;i<s.D;i++)r.17(s[i]);v r}],2h:q(t,1f){l(1f&&1f.1R==W)1f=V;1f=1f||7.1f||18;l(t.I!=1z)v[t];l(!t.1e("//")){1f=1f.4H;t=t.2S(2,t.D)}E l(!t.1e("/")){1f=1f.4H;t=t.2S(1,t.D);l(t.1e("/")>=1)t=t.2S(t.1e("/"),t.D)}u L=[1f];u 1L=[];u 1M=V;2s(t.D>0&&1M!=t){u r=[];1M=t;t=7.36(t).1u(/^\\/\\//i,"");u 3w=16;F(u i=0;i<7.3q.D;i+=2){l(3w)4S;u 2z=1a 3o("^("+7.3q[i]+")");u m=2z.35(t);l(m){r=L=7.2f(L,7.3q[i+1]);t=7.36(t.1u(2z,""));3w=Y}}l(!3w){l(!t.1e(",")||!t.1e("|")){l(L[0]==1f)L.4t();1L=7.24(1L,L);r=L=[1f];t=" "+t.2S(1,t.D)}E{u 3P=/^([#.]?)([a-4O-9\\\\*4h-]*)/i;u m=3P.35(t);l(m[1]=="#"){u 4k=18.5x(m[2]);r=L=4k?[4k]:[];t=t.1u(3P,"")}E{l(!m[2]||m[1]==".")m[2]="*";F(u i=0;i<L.D;i++)r=7.24(r,m[2]=="*"?7.3Q(L[i]):L[i].4J(m[2]))}}}l(t){u 1v=7.1k(t,r);L=r=1v.r;t=7.36(1v.t)}}l(L&&L[0]==1f)L.4t();1L=7.24(1L,L);v 1L},3Q:q(o,r){r=r||[];u s=o.29;F(u i=0;i<s.D;i++)l(s[i].1R==1){r.17(s[i]);7.3Q(s[i],r)}v r},1H:q(K,1c,U){u 2b={"F":"6r","6s":"1h","58":"7I",2u:"2u",1h:"1h",U:"U",2B:"2B"};l(2b[1c]){l(U!=W)K[2b[1c]]=U;v K[2b[1c]]}E l(K.3n){l(U!=W)K.6t(1c,U);v K.3n(1c,2)}E{1c=1c.1u(/-([a-z])/6u,q(z,b){v b.3m()});l(U!=W)K[1c]=U;v K[1c]}},4M:[["\\\\[ *(@)S *([!*$^=]*) *Q\\\\]",1],["(\\\\[)Q\\\\]",0],["(:)S\\\\(Q\\\\)",0],["([:.#]*)S",0]],1k:q(t,r,2m){u g=2m!==16?7.2G:q(a,f){v 7.2G(a,f,Y)};2s(t&&/^[a-z[({<*:.#]/i.28(t)){u p=7.4M;F(u i=0;i<p.D;i++){u 2z=1a 3o("^"+p[i][0].1u(\'S\',"([a-z*4h-][a-4O-6w-]*)").1u(\'Q\'," *\'?\\"?([^\'\\"]*?)\'?\\"? *"),"i");u m=2z.35(t);l(m){l(p[i][1])m=["",m[1],m[3],m[2],m[4]];t=t.1u(2z,"");6y}}l(m[1]==":"&&m[2]=="2m")r=7.1k(m[3],r,16).r;E{u f=7.2y[m[1]];l(f.I!=1z)f=7.2y[m[1]][m[2]];2Q("f = q(a,i){"+(m[1]=="@"?"z=7.1H(a,m[3]);":"")+"v "+f+"}");r=g(r,f)}}v{r:r,t:t}},36:q(t){v t.1u(/^\\s+|\\s+$/g,"")},31:q(K){u 4a=[];u 1j=K.1t;2s(1j&&1j!=18){4a.17(1j);1j=1j.1t}v 4a},1s:q(K,2a,2m){u 11=[];u 2i=K.1t.29;F(u i=0;i<2i.D;i++){l(2m===Y&&2i[i]==K)4S;l(2i[i].1R==1)11.17(2i[i]);l(2i[i]==K)11.n=11.D-1}v 7.1V(11,{1M:11.n==11.D-1,1j:2a=="4T"&&11.n%2==0||2a=="4U"&&11.n%2||11[2a]==K,44:11[11.n-1],3f:11[11.n+1]})},24:q(2j,3h){u 1y=[];F(u k=0;k<2j.D;k++)1y[k]=2j[k];F(u i=0;i<3h.D;i++){u 3U=Y;F(u j=0;j<2j.D;j++)l(3h[i]==2j[j])3U=16;l(3U)1y.17(3h[i])}v 1y},2G:q(11,C,3V){l(C.I==1z)C=1a 1b("a","i","v "+C);u 1y=[];F(u i=0;i<11.D;i++)l(!3V&&C(11[i],i)||3V&&!C(11[i],i))1y.17(11[i]);v 1y},2f:q(11,C){l(C.I==1z)C=1a 1b("a","v "+C);u 1y=[];F(u i=0;i<11.D;i++){u 1v=C(11[i],i);l(1v!==V&&1v!=W){l(1v.I!=2p)1v=[1v];1y=7.24(1y,1v)}}v 1y},P:{21:q(R,B,22){l(7.1n.1Z&&R.4o!=W)R=1P;l(!22.2A)22.2A=6.2A++;l(!R.1D)R.1D={};u 2M=R.1D[B];l(!2M){2M=R.1D[B]={};l(R["2K"+B])2M[0]=R["2K"+B]}2M[22.2A]=22;R["2K"+B]=6.4X;l(!6.2J[B])6.2J[B]=[];6.2J[B].17(R)},2A:1,2J:{},2g:q(R,B,22){l(R.1D)l(B&&R.1D[B])l(22)5h R.1D[B][22.2A];E F(u i 1o R.1D[B])5h R.1D[B][i];E F(u j 1o R.1D)6.2g(R,j)},1N:q(B,J,R){J=J||[];l(!R){u g=6.2J[B];l(g)F(u i=0;i<g.D;i++)6.1N(B,J,g[i])}E l(R["2K"+B]){J.6F(6.2b({B:B,1I:R}));R["2K"+B].19(R,J)}},4X:q(P){l(40 7=="W")v;P=P||7.P.2b(1P.P);l(!P)v;u 3b=Y;u c=6.1D[P.B];F(u j 1o c){l(c[j].19(6,[P])===16){P.47();P.4Z();3b=16}}v 3b},2b:q(P){l(P){P.47=q(){6.3b=16};P.4Z=q(){6.6I=Y}}v P}}});1a q(){u b=4R.59.3R();7.1n={37:/6S/.28(b),3r:/3r/.28(b),1Z:/1Z/.28(b)&&!/3r/.28(b),3g:/3g/.28(b)&&!/6J/.28(b)};7.6L=!7.1n.1Z||18.6M=="6N"};7.2e={2q:{6O:"4W",51:"52",2L:"53",6Q:"54"},1i:"2k,1x,6R,6T,57,58,33,6U,6V".43(","),1k:["5a","5b","5c","5d"],1H:{1v:"U",4Y:"2u",2R:V,70:V,1c:V,72:V,3c:V,73:V},5f:{5g:"a.1t",74:7.31,31:7.31,3f:"7.1s(a).3f",44:"7.1s(a).44",2i:7.1s,75:"7.1s(a.1F)"},O:{76:q(1O){6.79(1O)},1B:q(){6.1g.1q=6.2n?6.2n:"";l(7.1i(6,"1q")=="26")6.1g.1q="2I"},1m:q(){6.2n=6.2n||7.1i(6,"1q");l(6.2n=="26")6.2n="2I";6.1g.1q="26"},3J:q(){$(6)[$(6).4r(":1W")?"1B":"1m"].19($(6),1d)},7a:q(c){7.1h.21(6,c)},7c:q(c){7.1h.2g(6,c)},7d:q(c){7.1h[7.1h.3i(6,c)?"2g":"21"](6,c)},2g:q(a){l(!a||7.1k(a,[6]).r)6.1t.3t(6)},5j:q(){2s(6.1F)6.3t(6.1F)},2Z:q(B,C){l(C.I==1z)C=1a 1b("e",(!C.1e(".")?"$(6)":"v ")+C);7.P.21(6,B,C)},5t:q(B,C){7.P.2g(6,B,C)},1N:q(B,J){7.P.1N(B,J,6)}}};7.5m();7.C.1V({5n:7.C.3J,3J:q(a,b){v a&&b&&a.I==1b&&b.I==1b?6.3L(q(e){6.1M=6.1M==a?b:a;e.47();v 6.1M.19(6,[e])||16}):6.5n.19(6,1d)},7h:q(f,g){q 4b(e){u p=(e.B=="3p"?e.7j:e.7k)||e.7m;2s(p&&p!=6)32{p=p.1t}38(e){p=6};l(p==6)v 16;v(e.B=="3p"?f:g).19(6,[e])}v 6.3p(4b).5q(4b)},25:q(f){l(7.3l)f.19(18);E{7.2E.17(f)}v 6}});7.1V({3l:16,2E:[],25:q(){l(!7.3l){7.3l=Y;l(7.2E){F(u i=0;i<7.2E.D;i++)7.2E[i].19(18);7.2E=V}}}});1a q(){u e=("7q,7r,2C,7t,7u,7x,3L,7y,"+"7A,7B,7E,3p,5q,7G,5C,3x,"+"2X,7J,7K,7M,2l").43(",");F(u i=0;i<e.D;i++)1a q(){u o=e[i];7.C[o]=q(f){v f?6.2Z(o,f):6.1N(o)};7.C["7N"+o]=q(f){v 6.5t(o,f)};7.C["7O"+o]=q(f){v 6.O(q(){u 5u=0;7.P.21(6,o,q(e){l(5u++)v;v f.19(6,[e])})})}};l(7.1n.3g||7.1n.3r){18.7R("7S",7.25,16)}E l(7.1n.1Z){18.7U("<7V"+"7X 2R=5y 7Y=Y "+"3c=//:><\\/2c>");u 2c=18.5x("5y");2c.2v=q(){l(6.3v!="1w")v;6.1t.3t(6);7.25()};2c=V}E l(7.1n.37){7.4n=4o(q(){l(18.3v=="80"||18.3v=="1w"){4G(7.4n);7.4n=V;7.25()}},10)}7.P.21(1P,"2C",7.25)};7.C.1V({5A:7.C.1B,1B:q(12,G){v 12?6.1U({1x:"1B",2k:"1B",1A:"1B"},12,G):6.5A()},5B:7.C.1m,1m:q(12,G){v 12?6.1U({1x:"1m",2k:"1m",1A:"1m"},12,G):6.5B()},83:q(12,G){v 6.1U({1x:"1B"},12,G)},84:q(12,G){v 6.1U({1x:"1m"},12,G)},85:q(12,G){v 6.O(q(){u 5D=$(6).4r(":1W")?"1B":"1m";$(6).1U({1x:5D},12,G)})},86:q(12,G){v 6.1U({1A:"1B"},12,G)},87:q(12,G){v 6.1U({1A:"1m"},12,G)},88:q(12,2q,G){v 6.1U({1A:2q},12,G)},1U:q(H,12,G){v 6.1p(q(){6.2T=H;F(u p 1o H){u e=1a 7.2N(6,7.12(12,G),p);l(H[p].I==5M)e.3A(e.1j(),H[p]);E e[H[p]](H)}})},1p:q(B,C){l(!C){C=B;B="2N"}v 6.O(q(){l(!6.1p)6.1p={};l(!6.1p[B])6.1p[B]=[];6.1p[B].17(C);l(6.1p[B].D==1)C.19(6)})}});7.1V({4Q:q(e,p){l(e.5J)v;l(p=="1x"&&e.5G!=34(7.1Q(e,p)))v;l(p=="2k"&&e.5H!=34(7.1Q(e,p)))v;u a=e.1g[p];u o=7.1Q(e,p,1);l(p=="1x"&&e.5G!=o||p=="2k"&&e.5H!=o)v;e.1g[p]=e.2W?"":"5I";u n=7.1Q(e,p,1);l(o!=n&&n!="5I"){e.1g[p]=a;e.5J=Y}},12:q(s,o){o=o||{};l(o.I==1b)o={1w:o};u 5N={8b:8c,8e:5z};o.2P=(s&&s.I==5M?s:5N[s])||5o;o.3C=o.1w;o.1w=q(){7.5P(6,"2N");l(o.3C&&o.3C.I==1b)o.3C.19(6)};v o},1p:{},5P:q(K,B){B=B||"2N";l(K.1p&&K.1p[B]){K.1p[B].4t();u f=K.1p[B][0];l(f)f.19(K)}},2N:q(K,2o,H){u z=6;z.o={2P:2o.2P||5o,1w:2o.1w,2x:2o.2x};z.T=K;u y=z.T.1g;z.a=q(){l(2o.2x)2o.2x.19(K,[z.1K]);l(H=="1A"){l(7.1n.3g&&z.1K==1)z.1K=0.8q;l(1P.55)y.1k="5T(1A="+z.1K*5V+")";E y.1A=z.1K}E l(34(z.1K))y[H]=34(z.1K)+"4P";y.1q="2I"};z.4x=q(){v 4i(7.1i(z.T,H))};z.1j=q(){u r=4i(7.1Q(z.T,H));v r&&r>-61?r:z.4x()};z.3A=q(4v,2q){z.3T=(1a 4E()).5w();z.1K=4v;z.a();z.3O=4o(q(){z.2x(4v,2q)},13)};z.1B=q(p){l(!z.T.1X)z.T.1X={};z.T.1X[H]=6.1j();z.3A(0,z.T.1X[H]);l(H!="1A")y[H]="6b"};z.1m=q(){l(!z.T.1X)z.T.1X={};z.T.1X[H]=6.1j();z.o.1m=Y;z.3A(z.T.1X[H],0)};l(7.1n.1Z&&!z.T.2W.6e)y.6f="1";l(!z.T.6h)z.T.5r=7.1i(z.T,"33");y.33="1W";z.2x=q(3Y,3X){u t=(1a 4E()).5w();l(t>z.o.2P+z.3T){4G(z.3O);z.3O=V;z.1K=3X;z.a();z.T.2T[H]=Y;u 1L=Y;F(u i 1o z.T.2T)l(z.T.2T[i]!==Y)1L=16;l(1L){y.33=z.T.5r;l(z.o.1m)y.1q=\'26\';l(z.o.1m){F(u p 1o z.T.2T){y[p]=z.T.1X[p]+(p=="1A"?"":"4P");l(p==\'1x\'||p==\'2k\')7.4Q(z.T,p)}}}l(1L&&z.o.1w&&z.o.1w.I==1b)z.o.1w.19(z.T)}E{u p=(t-6.3T)/z.o.2P;z.1K=((-4V.6A(p*4V.6C)/2)+0.5)*(3X-3Y)+3Y;z.a()}}}});7.C.6G=q(M,1J,G){6.2C(M,1J,G,1)};7.C.2C=q(M,1J,G,1T){l(M.I==1b)v 6.2Z("2C",M);G=G||q(){};u B="48";l(1J){l(1J.I==1b){G=1J;1J=V}E{1J=7.2D(1J);B="4m"}}u 3d=6;7.2F(B,M,1J,q(3a,15){l(15=="2r"||!1T&&15=="5E"){3d.4Y(3a.2H).O(G,[3a.2H,15]);$("2c",3d).O(q(){l(6.3c)$.5i(6.3c);E 2Q.56(1P,6.42||6.6K||6.2u||"")})}E G.19(3d,[3a.2H,15])},1T);v 6};l(7.1n.1Z&&40 3s=="W")3s=q(){v 1a 55(4R.59.1e("6W 5")>=0?"6Z.5e":"71.5e")};1a q(){u e="5l,5S,5O,5L,5K".43(\',\');F(u i=0;i<e.D;i++)1a q(){u o=e[i];7.C[o]=q(f){v 6.2Z(o,f)}}};7.1V({1r:q(M,J,G,B,1T){l(J.I==1b){B=G;G=J;J=V}l(J)M+="?"+7.2D(J);7.2F("48",M,V,q(r,15){l(G)G(7.3W(r,B),15)},1T)},77:q(M,J,G,B){7.1r(M,J,G,B,1)},5i:q(M,J,G){7.1r(M,J,G,"2c")},7b:q(M,J,G,B){7.2F("4m",M,7.2D(J),q(r,15){l(G)G(7.3W(r,B),15)})},1S:0,7e:q(1S){7.1S=1S},3F:{},2F:q(B,M,J,L,1T){l(!M){L=B.1w;u 2r=B.2r;u 2l=B.2l;J=B.J;M=B.M;B=B.B}l(!7.3K++)7.P.1N("5l");u 3I=16;u N=1a 3s();N.7f(B||"48",M,Y);l(J)N.3u("7i-7l","7n/x-7p-1G-7s");l(1T)N.3u("7v-4e-7z",7.3F[M]||"7C, 7F 7H 7L 4f:4f:4f 7P");N.3u("X-7T-7W","3s");l(N.7Z)N.3u("81","82");u 2v=q(4q){l(N&&(N.3v==4||4q=="1S")){3I=Y;u 15=7.4A(N)&&4q!="1S"?1T&&7.4F(N,M)?"5E":"2r":"2l";l(15!="2l"){u 3z;32{3z=N.3Z("4I-4e")}38(e){}l(1T&&3z)7.3F[M]=3z;l(2r)2r(N,15);7.P.1N("5K")}E{l(2l)2l(N,15);7.P.1N("5L")}7.P.1N("5O");l(!--7.3K)7.P.1N("5S");l(L)L(N,15);N.2v=q(){};N=V}};N.2v=2v;l(7.1S>0)8r(q(){l(N){N.5U();l(!3I)2v("1S");N=V}},7.1S);N.67(J)},3K:0,4A:q(r){32{v!r.15&&6d.6g=="6i:"||(r.15>=5z&&r.15<6m)||r.15==4L||7.1n.37&&r.15==W}38(e){}v 16},4F:q(N,M){32{u 4N=N.3Z("4I-4e");v N.15==4L||4N==7.3F[M]||7.1n.37&&N.15==W}38(e){}v 16},3W:q(r,B){u 3S=r.3Z("6E-B");u J=!B&&3S&&3S.1e("N")>=0;J=B=="N"||J?r.6P:r.2H;l(B=="2c")2Q.56(1P,J);l(B=="6X")2Q("J = "+J);v J},2D:q(a){u s=[];l(a.I==2p){F(u i=0;i<a.D;i++)s.17(a[i].1c+"="+5k(a[i].U))}E{F(u j 1o a)s.17(j+"="+5k(a[j]))}v s.7o("&")}});$.C.50=q(1I,39,2w,M,2U){l(!6.20)6.46();l(2w&&2w.I==1b&&2w(6.20)===16)v;u f=6.1r(0);u M=M||f.5s(\'7D\').4j||\'\';u 2U=2U||f.5s(\'7Q\').4j||\'4m\';l(1I&&1I.I==1b)$.2F(2U,M,$.2D(6.20),1I);E l(1I&&1I.I==1z)$(1I).2C(M,6.20,39);E{6.20.17({1c:\'89\',U:1});$.2F(2U,M,$.2D(6.20),q(r){2Q(r.2H)})}v 6};$.C.68=q(1I,39,2w){v 6.O(q(){$("49[@B=2X],49[@B=41]",6).3L(q(2t){6.1G.4D=6;l(2t.4C!=W){6.1G.3e=2t.4C;6.1G.4g=2t.6p}E{6.1G.3e=2t.6v-6.6x;6.1G.4g=2t.6B-6.6D}})}).2X(q(e){$(6).50(1I,39,2w);v 16})};$.C.78=q(){6.46();v 6.20};$.C.46=q(){u a=[];$(\'49,7w,3x,5Q\',6).O(q(){u n=6.1c||6.2R;u t=6.B;l(!n||6.2B||t==\'5C\'||(t==\'8a\'||t==\'8f\')&&!6.4u||(t==\'2X\'||t==\'41\'||t==\'5Q\')&&6.1G.4D!=6||6.6q.3R()==\'3x\'&&6.6z==-1)v;l(t==\'41\'&&6.1G.3e)v a.17({1c:n+\'6Y\',U:6.1G.3e},{1c:n+\'7g\',U:6.1G.4g});l(t==\'3x-8t\'){$(\'6c:4K\',6).O(q(){l(6.4c)a.17({1c:n,U:6.U})});v}a.17({1c:n,U:6.U})}).5p();6.20=a;v 6};',62,526,'||||||this|jQuery||||||||||||||if|||||function||||var|return||||||type|fn|length|else|for|callback|prop|constructor|data|elem|ret|url|xml|each|event||element||el|value|null|undefined||true|||elems|speed||obj|status|false|push|document|apply|new|Function|name|arguments|indexOf|context|style|className|css|cur|filter|table|hide|browser|in|queue|display|get|sibling|parentNode|replace|val|complete|height|result|String|opacity|show|div|events|args|firstChild|form|attr|target|params|now|done|last|trigger|key|window|curCSS|nodeType|timeout|ifModified|animate|extend|hidden|orig|old|msie|vars|add|handler|num|merge|ready|none|tbody|test|childNodes|pos|fix|script|pushStack|macros|map|remove|find|siblings|first|width|error|not|oldblock|options|Array|to|success|while|ev|innerHTML|onreadystatechange|pre_cb|step|expr|re|guid|disabled|load|param|readyList|ajax|grep|responseText|block|global|on|insertBefore|handlers|fx|dir|duration|eval|id|substr|curAnim|mth|domManip|currentStyle|submit|tr|bind|jquery|parents|try|overflow|parseInt|exec|trim|safari|catch|post_cb|res|returnValue|src|self|clicked_x|next|mozilla|second|has|stack|cloneNode|isReady|toUpperCase|getAttribute|RegExp|mouseover|token|opera|XMLHttpRequest|removeChild|setRequestHeader|readyState|foundToken|select|clean|modRes|custom|defaultView|oldComplete|oWidth|oHeight|lastModified|child|clone|requestDone|toggle|active|click|swap|td|timer|re2|getAll|toLowerCase|ct|startTime|noCollision|inv|httpData|lastNum|firstNum|getResponseHeader|typeof|image|text|split|prev|deep|serialize|preventDefault|GET|input|matched|handleHover|selected|visibility|Modified|00|clicked_y|_|parseFloat|nodeValue|oid|nodeName|POST|safariTimer|setInterval|thead|istimeout|is|getComputedStyle|shift|checked|from|appendChild|max|force|newProp|httpSuccess|getPropertyValue|offsetX|clicked|Date|httpNotModified|clearInterval|documentElement|Last|getElementsByTagName|enabled|304|parse|xmlRes|z0|px|setAuto|navigator|continue|even|odd|Math|append|handle|html|stopPropagation|ajaxSubmit|prependTo|prepend|before|after|ActiveXObject|call|position|float|userAgent|eq|lt|gt|contains|XMLHTTP|axis|parent|delete|getScript|empty|encodeURIComponent|ajaxStart|init|_toggle|400|end|mouseout|oldOverflow|getAttributeNode|unbind|count|nth|getTime|getElementById|__ie_init|200|_show|_hide|reset|state|notmodified|createElement|scrollHeight|scrollWidth|auto|notAuto|ajaxSuccess|ajaxError|Number|ss|ajaxComplete|dequeue|button|size|ajaxStop|alpha|abort|100|Top|Bottom|Right|padding|border|10000|Width|offsetHeight|offsetWidth|absolute|clientHeight|send|ajaxForm|clientWidth|Left|1px|option|location|hasLayout|zoom|protocol|oldOverlay|file|createTextNode|toString|only|300|innerText|visible|offsetY|tagName|htmlFor|class|setAttribute|ig|pageX|9_|offsetLeft|break|selectedIndex|cos|pageY|PI|offsetTop|content|unshift|loadIfModified|initDone|cancelBubble|compatible|textContent|boxModel|compatMode|CSS1Compat|appendTo|responseXML|insertAfter|top|webkit|left|color|background|MSIE|json|_x|Microsoft|title|Msxml2|href|rel|ancestors|children|removeAttr|getIfModified|formdata|removeAttribute|addClass|post|removeClass|toggleClass|ajaxTimeout|open|_y|hover|Content|fromElement|toElement|Type|relatedTarget|application|join|www|blur|focus|urlencoded|resize|scroll|If|textarea|unload|dblclick|Since|mousedown|mouseup|Thu|action|mousemove|01|change|Jan|cssFloat|keydown|keypress|1970|keyup|un|one|GMT|method|addEventListener|DOMContentLoaded|Requested|write|scr|With|ipt|defer|overrideMimeType|loaded|Connection|close|slideDown|slideUp|slideToggle|fadeIn|fadeOut|fadeTo|evaljs|checkbox|slow|600|th|fast|radio|prototype|Rev|249|index|wrap|nextSibling|pop|Boolean|TABLE|THEAD|9999|setTimeout|body|multiple'.split('|'),0,{}))
diff --git a/dist/javascript/jquery-1.0.1-forms.js b/dist/javascript/jquery-1.0.2-forms.js
similarity index 83%
rename from dist/javascript/jquery-1.0.1-forms.js
rename to dist/javascript/jquery-1.0.2-forms.js
index b928e55ada59294b1914bf415eaaab4aee0fa65c..0fad433cee187b1a170495d37b09d54200fb276c 100644
--- a/dist/javascript/jquery-1.0.1-forms.js
+++ b/dist/javascript/jquery-1.0.2-forms.js
@@ -1,20 +1,22 @@
+/* prevent execution of jQuery if included more then once */
+if(typeof window.jQuery == "undefined") {
 /*
- * jQuery - New Wave Javascript
+ * jQuery 1.0.2 - New Wave Javascript
  *
  * Copyright (c) 2006 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt) 
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
  * and GPL (GPL-LICENSE.txt) licenses.
  *
- * $Date: 2006-08-31 13:26:31 -0400 (Thu, 31 Aug 2006) $
- * $Rev: 249 $
+ * $Date: 2006-10-09 20:23:18 -0400 (Mon, 09 Oct 2006) $
+ * $Rev: 413 $
  */
 
 // Global undefined variable
 window.undefined = window.undefined;
-function jQuery(a,c) {
+jQuery = function(a,c) {
 
 	// Shortcut for document ready (because $(document).each() is silly)
-	if ( a && a.constructor == Function && jQuery.fn.ready )
+	if ( a && typeof a == "function" && jQuery.fn.ready )
 		return jQuery(document).ready(a);
 
 	// Make sure that a selection was provided
@@ -22,12 +24,12 @@ function jQuery(a,c) {
 
 	// Watch for when a jQuery object is passed as the selector
 	if ( a.jquery )
-		return $( jQuery.merge( a, [] ) );
+		return jQuery( jQuery.merge( a, [] ) );
 
 	// Watch for when a jQuery object is passed at the context
 	if ( c && c.jquery )
-		return $( c ).find(a);
-	
+		return jQuery( c ).find(a);
+
 	// If the context is global, return a new object
 	if ( window == this )
 		return new jQuery(a,c);
@@ -46,11 +48,11 @@ function jQuery(a,c) {
 
   // See if an extra function was provided
 	var fn = arguments[ arguments.length - 1 ];
-	
+
 	// If so, execute it in context
-	if ( fn && fn.constructor == Function )
+	if ( fn && typeof fn == "function" )
 		this.each(fn);
-}
+};
 
 // Map over the $ in case of overwrite
 if ( typeof $ != "undefined" )
@@ -60,7 +62,7 @@ if ( typeof $ != "undefined" )
 var $ = jQuery;
 
 jQuery.fn = jQuery.prototype = {
-	jquery: "$Rev: 249 $",
+	jquery: "1.0.2",
 
 	size: function() {
 		return this.length;
@@ -74,13 +76,13 @@ jQuery.fn = jQuery.prototype = {
 			// look and feel like an array
 			this.length = 0;
 			[].push.apply( this, num );
-			
+
 			return this;
 		} else
 			return num == undefined ?
 
 				// Return a 'clean' array
-				jQuery.map( this, function(a){ return a } ) :
+				jQuery.merge( this, [] ) :
 
 				// Return just the object
 				this[num];
@@ -88,7 +90,6 @@ jQuery.fn = jQuery.prototype = {
 	each: function( fn, args ) {
 		return jQuery.each( this, fn, args );
 	},
-
 	index: function( obj ) {
 		var pos = -1;
 		this.each(function(i){
@@ -109,7 +110,7 @@ jQuery.fn = jQuery.prototype = {
 							type ? this.style : this,
 							prop, key[prop]
 						);
-				
+
 				// See if we're setting a single key/value style
 				else
 					jQuery.attr(
@@ -117,7 +118,7 @@ jQuery.fn = jQuery.prototype = {
 						key, value
 					);
 			}) :
-			
+
 			// Look for the case where we're accessing a style value
 			jQuery[ type || "attr" ]( this[0], key );
 	},
@@ -137,41 +138,46 @@ jQuery.fn = jQuery.prototype = {
 		}
 		return t;
 	},
+
 	wrap: function() {
 		// The elements to wrap the target around
 		var a = jQuery.clean(arguments);
-		
+
 		// Wrap each of the matched elements individually
 		return this.each(function(){
 			// Clone the structure that we're using to wrap
 			var b = a[0].cloneNode(true);
-			
+
 			// Insert it before the element to be wrapped
 			this.parentNode.insertBefore( b, this );
-			
-			// Find he deepest point in the wrap structure
+
+			// Find the deepest point in the wrap structure
 			while ( b.firstChild )
 				b = b.firstChild;
-			
+
 			// Move the matched element to within the wrap structure
 			b.appendChild( this );
 		});
 	},
+
 	append: function() {
 		return this.domManip(arguments, true, 1, function(a){
 			this.appendChild( a );
 		});
 	},
+
 	prepend: function() {
 		return this.domManip(arguments, true, -1, function(a){
 			this.insertBefore( a, this.firstChild );
 		});
 	},
+
 	before: function() {
 		return this.domManip(arguments, false, 1, function(a){
 			this.parentNode.insertBefore( a, this );
 		});
 	},
+
 	after: function() {
 		return this.domManip(arguments, false, -1, function(a){
 			this.parentNode.insertBefore( a, this.nextSibling );
@@ -185,7 +191,6 @@ jQuery.fn = jQuery.prototype = {
 			return jQuery.find(t,a);
 		}), arguments );
 	},
-
 	clone: function(deep) {
 		return this.pushStack( jQuery.map( this, function(a){
 			return a.cloneNode( deep != undefined ? deep : true );
@@ -204,7 +209,7 @@ jQuery.fn = jQuery.prototype = {
 			t.constructor == Boolean &&
 			( t ? this.get() : [] ) ||
 
-			t.constructor == Function &&
+			typeof t == "function" &&
 			jQuery.grep( this, t ) ||
 
 			jQuery.filter(t,this).r, arguments );
@@ -221,16 +226,16 @@ jQuery.fn = jQuery.prototype = {
 			jQuery.find(t) : t.constructor == Array ? t : [t] ), arguments );
 	},
 	is: function(expr) {
-		return expr ? jQuery.filter(expr,this).r.length > 0 : this.length > 0;
+		return expr ? jQuery.filter(expr,this).r.length > 0 : false;
 	},
 	domManip: function(args, table, dir, fn){
 		var clone = this.size() > 1;
 		var a = jQuery.clean(args);
-		
+
 		return this.each(function(){
 			var obj = this;
-			
-			if ( table && this.nodeName == "TABLE" && a[0].nodeName != "THEAD" ) {
+
+			if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() != "THEAD" ) {
 				var tbody = this.getElementsByTagName("tbody");
 
 				if ( !tbody.length ) {
@@ -248,17 +253,23 @@ jQuery.fn = jQuery.prototype = {
 	},
 	pushStack: function(a,args) {
 		var fn = args && args[args.length-1];
+		var fn2 = args && args[args.length-2];
+		
+		if ( fn && fn.constructor != Function ) fn = null;
+		if ( fn2 && fn2.constructor != Function ) fn2 = null;
 
-		if ( !fn || fn.constructor != Function ) {
+		if ( !fn ) {
 			if ( !this.stack ) this.stack = [];
 			this.stack.push( this.get() );
 			this.get( a );
 		} else {
 			var old = this.get();
 			this.get( a );
-			if ( fn.constructor == Function )
-				return this.each( fn );
-			this.get( old );
+
+			if ( fn2 && a.length || !fn2 )
+				this.each( fn2 || fn ).get( old );
+			else
+				this.get( old ).each( fn );
 		}
 
 		return this;
@@ -274,7 +285,7 @@ jQuery.extend = jQuery.fn.extend = function(obj,prop) {
 jQuery.extend({
 	init: function(){
 		jQuery.initDone = true;
-		
+
 		jQuery.each( jQuery.macros.axis, function(i,n){
 			jQuery.fn[ i ] = function(a) {
 				var ret = jQuery.map(this,n);
@@ -283,17 +294,17 @@ jQuery.extend({
 				return this.pushStack( ret, arguments );
 			};
 		});
-		
+
 		jQuery.each( jQuery.macros.to, function(i,n){
 			jQuery.fn[ i ] = function(){
 				var a = arguments;
 				return this.each(function(){
 					for ( var j = 0; j < a.length; j++ )
-						$(a[j])[n]( this );
+						jQuery(a[j])[n]( this );
 				});
 			};
 		});
-		
+
 		jQuery.each( jQuery.macros.each, function(i,n){
 			jQuery.fn[ i ] = function() {
 				return this.each( n, arguments );
@@ -305,7 +316,7 @@ jQuery.extend({
 				return this.filter( ":" + n + "(" + num + ")", fn );
 			};
 		});
-		
+
 		jQuery.each( jQuery.macros.attr, function(i,n){
 			n = n || i;
 			jQuery.fn[ i ] = function(h) {
@@ -314,7 +325,7 @@ jQuery.extend({
 					this.attr( n, h );
 			};
 		});
-	
+
 		jQuery.each( jQuery.macros.css, function(i,n){
 			jQuery.fn[ n ] = function(h) {
 				return h == undefined ?
@@ -322,7 +333,7 @@ jQuery.extend({
 					this.css( n, h );
 			};
 		});
-	
+
 	},
 	each: function( obj, fn, args ) {
 		if ( obj.length == undefined )
@@ -333,16 +344,25 @@ jQuery.extend({
 				fn.apply( obj[i], args || [i, obj[i]] );
 		return obj;
 	},
-	
+
 	className: {
 		add: function(o,c){
 			if (jQuery.className.has(o,c)) return;
 			o.className += ( o.className ? " " : "" ) + c;
 		},
 		remove: function(o,c){
-			o.className = !c ? "" :
-				o.className.replace(
-					new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))", "g"), "");
+			if( !c ) {
+				o.className = "";
+			} else {
+				var classes = o.className.split(" ");
+				for(var i=0; i<classes.length; i++) {
+					if(classes[i] == c) {
+						classes.splice(i, 1);
+						break;
+					}
+				}
+				o.className = classes.join(' ');
+			}
 		},
 		has: function(e,a) {
 			if ( e.className != undefined )
@@ -359,49 +379,58 @@ jQuery.extend({
 		for ( var i in o )
 			e.style[i] = e.style["old"+i];
 	},
-	
+
 	css: function(e,p) {
 		if ( p == "height" || p == "width" ) {
 			var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"];
-	
+
 			for ( var i in d ) {
 				old["padding" + d[i]] = 0;
 				old["border" + d[i] + "Width"] = 0;
 			}
-	
+
 			jQuery.swap( e, old, function() {
 				if (jQuery.css(e,"display") != "none") {
 					oHeight = e.offsetHeight;
 					oWidth = e.offsetWidth;
 				} else {
-					e = $(e.cloneNode(true)).css({
-						visibility: "hidden", position: "absolute", display: "block"
-					}).prependTo("body")[0];
+					e = jQuery(e.cloneNode(true)).css({
+						visibility: "hidden", position: "absolute", display: "block", right: "0", left: "0"
+					}).appendTo(e.parentNode)[0];
+
+					var parPos = jQuery.css(e.parentNode,"position");
+					if ( parPos == "" || parPos == "static" )
+						e.parentNode.style.position = "relative";
 
 					oHeight = e.clientHeight;
 					oWidth = e.clientWidth;
-					
+
+					if ( parPos == "" || parPos == "static" )
+						e.parentNode.style.position = "static";
+
 					e.parentNode.removeChild(e);
 				}
 			});
-	
+
 			return p == "height" ? oHeight : oWidth;
-		} else if ( p == "opacity" && jQuery.browser.msie )
-			return parseFloat( jQuery.curCSS(e,"filter").replace(/[^0-9.]/,"") ) || 1;
+		}
 
 		return jQuery.curCSS( e, p );
 	},
 
 	curCSS: function(elem, prop, force) {
 		var ret;
-	
+		
+		if (prop == 'opacity' && jQuery.browser.msie)
+			return jQuery.attr(elem.style, 'opacity');
+
 		if (!force && elem.style[prop]) {
 
 			ret = elem.style[prop];
 
 		} else if (elem.currentStyle) {
 
-			var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase()}); 
+			var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();});
 			ret = elem.currentStyle[prop] || elem.currentStyle[newProp];
 
 		} else if (document.defaultView && document.defaultView.getComputedStyle) {
@@ -419,17 +448,19 @@ jQuery.extend({
 				});
 
 		}
-		
+
 		return ret;
 	},
-	
+
 	clean: function(a) {
 		var r = [];
 		for ( var i = 0; i < a.length; i++ ) {
 			if ( a[i].constructor == String ) {
-
+				// trim whitespace, otherwise indexOf won't work as expected
+				a[i] = jQuery.trim(a[i]);
+				
 				var table = "";
-	
+
 				if ( !a[i].indexOf("<thead") || !a[i].indexOf("<tbody") ) {
 					table = "thead";
 					a[i] = "<table>" + a[i] + "</table>";
@@ -440,16 +471,16 @@ jQuery.extend({
 					table = "td";
 					a[i] = "<table><tbody><tr>" + a[i] + "</tr></tbody></table>";
 				}
-	
+
 				var div = document.createElement("div");
 				div.innerHTML = a[i];
-	
+
 				if ( table ) {
 					div = div.firstChild;
 					if ( table != "thead" ) div = div.firstChild;
 					if ( table == "td" ) div = div.firstChild;
 				}
-	
+
 				for ( var j = 0; j < div.childNodes.length; j++ )
 					r.push( div.childNodes[j] );
 				} else if ( a[i].jquery || a[i].length && !a[i].nodeType )
@@ -460,7 +491,7 @@ jQuery.extend({
 		}
 		return r;
 	},
-	
+
 	expr: {
 		"": "m[2]== '*'||a.nodeName.toUpperCase()==m[2].toUpperCase()",
 		"#": "a.getAttribute('id')&&a.getAttribute('id')==m[2]",
@@ -474,42 +505,54 @@ jQuery.extend({
 			last: "i==r.length-1",
 			even: "i%2==0",
 			odd: "i%2",
-			
+
 			// Child Checks
 			"nth-child": "jQuery.sibling(a,m[3]).cur",
 			"first-child": "jQuery.sibling(a,0).cur",
 			"last-child": "jQuery.sibling(a,0).last",
 			"only-child": "jQuery.sibling(a).length==1",
-			
+
 			// Parent Checks
 			parent: "a.childNodes.length",
 			empty: "!a.childNodes.length",
-			
+
 			// Text Check
 			contains: "(a.innerText||a.innerHTML).indexOf(m[3])>=0",
-			
+
 			// Visibility
 			visible: "a.type!='hidden'&&jQuery.css(a,'display')!='none'&&jQuery.css(a,'visibility')!='hidden'",
 			hidden: "a.type=='hidden'||jQuery.css(a,'display')=='none'||jQuery.css(a,'visibility')=='hidden'",
-			
-			// Form elements
+
+			// Form attributes
 			enabled: "!a.disabled",
 			disabled: "a.disabled",
 			checked: "a.checked",
-			selected: "a.selected"
+			selected: "a.selected || jQuery.attr(a, 'selected')",
+
+			// Form elements
+			text: "a.type=='text'",
+			radio: "a.type=='radio'",
+			checkbox: "a.type=='checkbox'",
+			file: "a.type=='file'",
+			password: "a.type=='password'",
+			submit: "a.type=='submit'",
+			image: "a.type=='image'",
+			reset: "a.type=='reset'",
+			button: "a.type=='button'",
+			input: "a.nodeName.toLowerCase().match(/input|select|textarea|button/)"
 		},
 		".": "jQuery.className.has(a,m[2])",
 		"@": {
 			"=": "z==m[4]",
 			"!=": "z!=m[4]",
-			"^=": "!z.indexOf(m[4])",
-			"$=": "z.substr(z.length - m[4].length,m[4].length)==m[4]",
-			"*=": "z.indexOf(m[4])>=0",
+			"^=": "z && !z.indexOf(m[4])",
+			"$=": "z && z.substr(z.length - m[4].length,m[4].length)==m[4]",
+			"*=": "z && z.indexOf(m[4])>=0",
 			"": "z"
 		},
 		"[": "jQuery.find(m[2],a).length"
 	},
-	
+
 	token: [
 		"\\.\\.|/\\.\\.", "a.parentNode",
 		">|/", "jQuery.sibling(a.firstChild)",
@@ -527,12 +570,12 @@ jQuery.extend({
 		// Make sure that the context is a DOM Element
 		if ( context && context.nodeType == undefined )
 			context = null;
-	
+
 		// Set the correct context (if none is provided)
 		context = context || jQuery.context || document;
-	
+
 		if ( t.constructor != String ) return [t];
-	
+
 		if ( !t.indexOf("//") ) {
 			context = context.documentElement;
 			t = t.substr(2,t.length);
@@ -543,32 +586,32 @@ jQuery.extend({
 			if ( t.indexOf("/") >= 1 )
 				t = t.substr(t.indexOf("/"),t.length);
 		}
-	
+
 		var ret = [context];
 		var done = [];
 		var last = null;
-	
+
 		while ( t.length > 0 && last != t ) {
 			var r = [];
 			last = t;
-	
+
 			t = jQuery.trim(t).replace( /^\/\//i, "" );
-			
+
 			var foundToken = false;
-			
+
 			for ( var i = 0; i < jQuery.token.length; i += 2 ) {
 				if ( foundToken ) continue;
 
 				var re = new RegExp("^(" + jQuery.token[i] + ")");
 				var m = re.exec(t);
-				
+
 				if ( m ) {
 					r = ret = jQuery.map( ret, jQuery.token[i+1] );
 					t = jQuery.trim( t.replace( re, "" ) );
 					foundToken = true;
 				}
 			}
-			
+
 			if ( !foundToken ) {
 				if ( !t.indexOf(",") || !t.indexOf("|") ) {
 					if ( ret[0] == context ) ret.shift();
@@ -578,7 +621,7 @@ jQuery.extend({
 				} else {
 					var re2 = /^([#.]?)([a-z0-9\\*_-]*)/i;
 					var m = re2.exec(t);
-		
+
 					if ( m[1] == "#" ) {
 						// Ummm, should make this work in all XML docs
 						var oid = document.getElementById(m[2]);
@@ -586,7 +629,7 @@ jQuery.extend({
 						t = t.replace( re2, "" );
 					} else {
 						if ( !m[2] || m[1] == "." ) m[2] = "*";
-		
+
 						for ( var i = 0; i < ret.length; i++ )
 							r = jQuery.merge( r,
 								m[2] == "*" ?
@@ -595,7 +638,7 @@ jQuery.extend({
 							);
 					}
 				}
-	
+
 			}
 
 			if ( t ) {
@@ -604,13 +647,13 @@ jQuery.extend({
 				t = jQuery.trim(val.t);
 			}
 		}
-	
+
 		if ( ret && ret[0] == context ) ret.shift();
 		done = jQuery.merge( done, ret );
-	
+
 		return done;
 	},
-	
+
 	getAll: function(o,r) {
 		r = r || [];
 		var s = o.childNodes;
@@ -621,7 +664,7 @@ jQuery.extend({
 			}
 		return r;
 	},
-	
+
 	attr: function(elem, name, value){
 		var fix = {
 			"for": "htmlFor",
@@ -630,13 +673,32 @@ jQuery.extend({
 			innerHTML: "innerHTML",
 			className: "className",
 			value: "value",
-			disabled: "disabled"
+			disabled: "disabled",
+			checked: "checked"
 		};
+		
+		// IE actually uses filters for opacity ... elem is actually elem.style
+		if (name == "opacity" && jQuery.browser.msie && value != undefined) {
+			// IE has trouble with opacity if it does not have layout
+			// Would prefer to check element.hasLayout first but don't have access to the element here
+			elem['zoom'] = 1; 
+			if (value == 1) // Remove filter to avoid more IE weirdness
+				return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"");
+			else
+				return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"") + "alpha(opacity=" + value * 100 + ")";
+		} else if (name == "opacity" && jQuery.browser.msie) {
+			return elem["filter"] ? parseFloat( elem["filter"].match(/alpha\(opacity=(.*)\)/)[1] )/100 : 1;
+		}
+		
+		// Mozilla doesn't play well with opacity 1
+		if (name == "opacity" && jQuery.browser.mozilla && value == 1) value = 0.9999;
 
 		if ( fix[name] ) {
 			if ( value != undefined ) elem[fix[name]] = value;
 			return elem[fix[name]];
-		} else if ( elem.getAttribute ) {
+		} else if( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) {
+			return elem.getAttributeNode(name).nodeValue;
+		} else if ( elem.getAttribute != undefined ) {
 			if ( value != undefined ) elem.setAttribute( name, value );
 			return elem.getAttribute( name, 2 );
 		} else {
@@ -649,42 +711,40 @@ jQuery.extend({
 	// The regular expressions that power the parsing engine
 	parse: [
 		// Match: [@value='test'], [@foo]
-		[ "\\[ *(@)S *([!*$^=]*) *Q\\]", 1 ],
+		"\\[ *(@)S *([!*$^=]*) *('?\"?)(.*?)\\4 *\\]",
 
 		// Match: [div], [div p]
-		[ "(\\[)Q\\]", 0 ],
+		"(\\[)\s*(.*?)\s*\\]",
 
 		// Match: :contains('foo')
-		[ "(:)S\\(Q\\)", 0 ],
+		"(:)S\\(\"?'?([^\\)]*?)\"?'?\\)",
 
 		// Match: :even, :last-chlid
-		[ "([:.#]*)S", 0 ]
+		"([:.#]*)S"
 	],
-	
+
 	filter: function(t,r,not) {
 		// Figure out if we're doing regular, or inverse, filtering
 		var g = not !== false ? jQuery.grep :
 			function(a,f) {return jQuery.grep(a,f,true);};
-		
+
 		while ( t && /^[a-z[({<*:.#]/i.test(t) ) {
 
 			var p = jQuery.parse;
 
 			for ( var i = 0; i < p.length; i++ ) {
-				var re = new RegExp( "^" + p[i][0]
-
-					// Look for a string-like sequence
-					.replace( 'S', "([a-z*_-][a-z0-9_-]*)" )
-
-					// Look for something (optionally) enclosed with quotes
-					.replace( 'Q', " *'?\"?([^'\"]*?)'?\"? *" ), "i" );
+		
+				// Look for, and replace, string-like sequences
+				// and finally build a regexp out of it
+				var re = new RegExp(
+					"^" + p[i].replace("S", "([a-z*_-][a-z0-9_-]*)"), "i" );
 
 				var m = re.exec( t );
 
 				if ( m ) {
-					// Re-organize the match
-					if ( p[i][1] )
-						m = ["", m[1], m[3], m[2], m[4]];
+					// Re-organize the first match
+					if ( !i )
+						m = ["",m[1], m[3], m[2], m[5]];
 
 					// Remove what we just matched
 					t = t.replace( re, "" );
@@ -692,28 +752,28 @@ jQuery.extend({
 					break;
 				}
 			}
-	
-			// :not() is a special case that can be optomized by
+
+			// :not() is a special case that can be optimized by
 			// keeping it out of the expression list
 			if ( m[1] == ":" && m[2] == "not" )
 				r = jQuery.filter(m[3],r,false).r;
-			
+
 			// Otherwise, find the expression to execute
 			else {
 				var f = jQuery.expr[m[1]];
 				if ( f.constructor != String )
 					f = jQuery.expr[m[1]][m[2]];
-					
+
 				// Build a custom macro to enclose it
-				eval("f = function(a,i){" + 
-					( m[1] == "@" ? "z=jQuery.attr(a,m[3]);" : "" ) + 
+				eval("f = function(a,i){" +
+					( m[1] == "@" ? "z=jQuery.attr(a,m[3]);" : "" ) +
 					"return " + f + "}");
-				
+
 				// Execute it against the current filter
 				r = g( r, f );
 			}
 		}
-	
+
 		// Return an array of filtered elements (r)
 		// and the modified expression string (t)
 		return { r: r, t: t };
@@ -732,15 +792,17 @@ jQuery.extend({
 	},
 	sibling: function(elem, pos, not) {
 		var elems = [];
-
-		var siblings = elem.parentNode.childNodes;
-		for ( var i = 0; i < siblings.length; i++ ) {
-			if ( not === true && siblings[i] == elem ) continue;
-
-			if ( siblings[i].nodeType == 1 )
-				elems.push( siblings[i] );
-			if ( siblings[i] == elem )
-				elems.n = elems.length - 1;
+		
+		if(elem) {
+			var siblings = elem.parentNode.childNodes;
+			for ( var i = 0; i < siblings.length; i++ ) {
+				if ( not === true && siblings[i] == elem ) continue;
+	
+				if ( siblings[i].nodeType == 1 )
+					elems.push( siblings[i] );
+				if ( siblings[i] == elem )
+					elems.n = elems.length - 1;
+			}
 		}
 
 		return jQuery.extend( elems, {
@@ -752,27 +814,27 @@ jQuery.extend({
 	},
 	merge: function(first, second) {
 		var result = [];
-		
+
 		// Move b over to the new array (this helps to avoid
 		// StaticNodeList instances)
 		for ( var k = 0; k < first.length; k++ )
 			result[k] = first[k];
-	
+
 		// Now check for duplicates between a and b and only
 		// add the unique items
 		for ( var i = 0; i < second.length; i++ ) {
 			var noCollision = true;
-			
+
 			// The collision-checking process
 			for ( var j = 0; j < first.length; j++ )
 				if ( second[i] == first[j] )
 					noCollision = false;
-				
+
 			// If the item is unique, add it
 			if ( noCollision )
 				result.push( second[i] );
 		}
-	
+
 		return result;
 	},
 	grep: function(elems, fn, inv) {
@@ -780,15 +842,15 @@ jQuery.extend({
 		// for it (a handy shortcut)
 		if ( fn.constructor == String )
 			fn = new Function("a","i","return " + fn);
-			
+
 		var result = [];
-		
+
 		// Go through the array, only saving the items
 		// that pass the validator function
 		for ( var i = 0; i < elems.length; i++ )
 			if ( !inv && fn(elems[i],i) || inv && !fn(elems[i],i) )
 				result.push( elems[i] );
-		
+
 		return result;
 	},
 	map: function(elems, fn) {
@@ -796,9 +858,9 @@ jQuery.extend({
 		// for it (a handy shortcut)
 		if ( fn.constructor == String )
 			fn = new Function("a","return " + fn);
-		
+
 		var result = [];
-		
+
 		// Go through the array, translating each of the items to their
 		// new value (or values).
 		for ( var i = 0; i < elems.length; i++ ) {
@@ -812,13 +874,13 @@ jQuery.extend({
 
 		return result;
 	},
-	
+
 	/*
 	 * A number of helper functions used for managing events.
 	 * Many of the ideas behind this code orignated from Dean Edwards' addEvent library.
 	 */
 	event: {
-	
+
 		// Bind an event to an element
 		// Original by Dean Edwards
 		add: function(element, type, handler) {
@@ -826,23 +888,23 @@ jQuery.extend({
 			// around, causing it to be cloned in the process
 			if ( jQuery.browser.msie && element.setInterval != undefined )
 				element = window;
-		
+
 			// Make sure that the function being executed has a unique ID
 			if ( !handler.guid )
 				handler.guid = this.guid++;
-				
+
 			// Init the element's event structure
 			if (!element.events)
 				element.events = {};
-			
+
 			// Get the current list of functions bound to this event
 			var handlers = element.events[type];
-			
+
 			// If it hasn't been initialized yet
 			if (!handlers) {
 				// Init the event handler queue
 				handlers = element.events[type] = {};
-				
+
 				// Remember an existing handler, if it's already there
 				if (element["on" + type])
 					handlers[0] = element["on" + type];
@@ -850,19 +912,19 @@ jQuery.extend({
 
 			// Add the function to the element's handler list
 			handlers[handler.guid] = handler;
-			
+
 			// And bind the global event handler to the element
 			element["on" + type] = this.handle;
-	
+
 			// Remember the function in a global list (for triggering)
 			if (!this.global[type])
 				this.global[type] = [];
 			this.global[type].push( element );
 		},
-		
+
 		guid: 1,
 		global: {},
-		
+
 		// Detach an event or set of events from an element
 		remove: function(element, type, handler) {
 			if (element.events)
@@ -876,68 +938,70 @@ jQuery.extend({
 					for ( var j in element.events )
 						this.remove( element, j );
 		},
-		
+
 		trigger: function(type,data,element) {
 			// Touch up the incoming data
 			data = data || [];
-	
+
 			// Handle a global trigger
 			if ( !element ) {
 				var g = this.global[type];
 				if ( g )
 					for ( var i = 0; i < g.length; i++ )
 						this.trigger( type, data, g[i] );
-	
+
 			// Handle triggering a single element
 			} else if ( element["on" + type] ) {
 				// Pass along a fake event
 				data.unshift( this.fix({ type: type, target: element }) );
-	
+
 				// Trigger the event
 				element["on" + type].apply( element, data );
 			}
 		},
-		
+
 		handle: function(event) {
 			if ( typeof jQuery == "undefined" ) return;
 
 			event = event || jQuery.event.fix( window.event );
-	
+
 			// If no correct event was found, fail
 			if ( !event ) return;
-		
+
 			var returnValue = true;
 
 			var c = this.events[event.type];
-		
+
+			var args = [].slice.call( arguments, 1 );
+			args.unshift( event );
+
 			for ( var j in c ) {
-				if ( c[j].apply( this, [event] ) === false ) {
+				if ( c[j].apply( this, args ) === false ) {
 					event.preventDefault();
 					event.stopPropagation();
 					returnValue = false;
 				}
 			}
-			
+
 			return returnValue;
 		},
-		
+
 		fix: function(event) {
 			if ( event ) {
 				event.preventDefault = function() {
 					this.returnValue = false;
 				};
-			
+
 				event.stopPropagation = function() {
 					this.cancelBubble = true;
 				};
 			}
-			
+
 			return event;
 		}
-	
+
 	}
 });
-
 new function() {
 	var b = navigator.userAgent.toLowerCase();
 
@@ -946,7 +1010,7 @@ new function() {
 		safari: /webkit/.test(b),
 		opera: /opera/.test(b),
 		msie: /msie/.test(b) && !/opera/.test(b),
-		mozilla: /mozilla/.test(b) && !/compatible/.test(b)
+		mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b)
 	};
 
 	// Check to see if the W3C box model is being used
@@ -961,7 +1025,6 @@ jQuery.macros = {
 		insertAfter: "after"
 	},
 
-	
 	css: "width,height,top,left,position,float,overflow,color,background".split(","),
 
 	filter: [ "eq", "lt", "gt", "contains" ],
@@ -984,7 +1047,7 @@ jQuery.macros = {
 
 		rel: null
 	},
-	
+
 	axis: {
 
 		parent: "a.parentNode",
@@ -997,13 +1060,12 @@ jQuery.macros = {
 
 		prev: "jQuery.sibling(a).prev",
 
-		siblings: jQuery.sibling,
+		siblings: "jQuery.sibling(a, null, true)",
 
 		children: "jQuery.sibling(a.firstChild)"
 	},
 
 	each: {
-
 		removeAttr: function( key ) {
 			this.removeAttribute( key );
 		},
@@ -1019,7 +1081,7 @@ jQuery.macros = {
 			this.style.display = "none";
 		},
 		toggle: function(){
-			$(this)[ $(this).is(":hidden") ? "show" : "hide" ].apply( $(this), arguments );
+			jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ].apply( jQuery(this), arguments );
 		},
 		addClass: function(c){
 			jQuery.className.add(this,c);
@@ -1041,7 +1103,7 @@ jQuery.macros = {
 		},
 		bind: function( type, fn ) {
 			if ( fn.constructor == String )
-				fn = new Function("e", ( !fn.indexOf(".") ? "$(this)" : "return " ) + fn);
+				fn = new Function("e", ( !fn.indexOf(".") ? "jQuery(this)" : "return " ) + fn);
 			jQuery.event.add( this, type, fn );
 		},
 
@@ -1077,7 +1139,6 @@ jQuery.fn.extend({
 		// Otherwise, execute the old toggle function
 		this._toggle.apply( this, arguments );
 	},
-
 	hover: function(f,g) {
 		
 		// A private function for haandling mouse 'hovering'
@@ -1086,7 +1147,7 @@ jQuery.fn.extend({
 			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
 	
 			// Traverse up the tree
-			while ( p && p != this ) try {p = p.parentNode;} catch(e) {p = this;};
+			while ( p && p != this ) try { p = p.parentNode } catch(e) { p = this; };
 			
 			// If we actually just moused on to a sub-element, ignore it
 			if ( p == this ) return false;
@@ -1137,6 +1198,9 @@ jQuery.extend({
 				// Reset the list of functions
 				jQuery.readyList = null;
 			}
+			// Remove event lisenter to avoid memory leak
+			if ( jQuery.browser.mozilla || jQuery.browser.opera )
+				document.removeEventListener( "DOMContentLoaded", jQuery.ready, false );
 		}
 	}
 });
@@ -1227,6 +1291,15 @@ new function(){
 	jQuery.event.add( window, "load", jQuery.ready );
 	
 };
+
+// Clean up after IE to avoid memory leaks
+if (jQuery.browser.msie) jQuery(window).unload(function() {
+	var event = jQuery.event, global = event.global;
+	for (var type in global) {
+ 		var els = global[type], i = els.length;
+		if (i>0) do if (type != 'unload') event.remove(els[i-1], type); while (--i);
+	}
+});
 jQuery.fn.extend({
 
 	// overwrite the old show method
@@ -1257,8 +1330,8 @@ jQuery.fn.extend({
 
 	slideToggle: function(speed,callback){
 		return this.each(function(){
-			var state = $(this).is(":hidden") ? "show" : "hide";
-			$(this).animate({height: state}, speed, callback);
+			var state = jQuery(this).is(":hidden") ? "show" : "hide";
+			jQuery(this).animate({height: state}, speed, callback);
 		});
 	},
 
@@ -1403,16 +1476,10 @@ jQuery.extend({
 		z.a = function(){
 			if ( options.step )
 				options.step.apply( elem, [ z.now ] );
-
-			if ( prop == "opacity" ) {
-				if (jQuery.browser.mozilla && z.now == 1) z.now = 0.9999;
-				if (window.ActiveXObject)
-					y.filter = "alpha(opacity=" + z.now*100 + ")";
-				else
-					y.opacity = z.now;
-
-			// My hate for IE will never die
-			} else if ( parseInt(z.now) )
+ 
+			if ( prop == "opacity" )
+				jQuery.attr(y, "opacity", z.now); // Let attr handle opacity
+			else if ( parseInt(z.now) ) // My hate for IE will never die
 				y[prop] = parseInt(z.now) + "px";
 				
 			y.display = "block";
@@ -1446,8 +1513,12 @@ jQuery.extend({
 
 			// Remember where we started, so that we can go back to it later
 			z.el.orig[prop] = this.cur();
-
-			z.custom( 0, z.el.orig[prop] );
+			
+			// Begin the animation
+			if (prop == "opacity")
+				z.custom(z.el.orig[prop], 1);
+			else
+				z.custom(0, z.el.orig[prop]);
 
 			// Stupid IE, look what you made me do
 			if ( prop != "opacity" )
@@ -1467,10 +1538,6 @@ jQuery.extend({
 			z.custom(z.el.orig[prop], 0);
 		};
 	
-		// IE has trouble with opacity if it does not have layout
-		if ( jQuery.browser.msie && !z.el.currentStyle.hasLayout )
-			y.zoom = "1";
-	
 		// Remember  the overflow of the element
 		if ( !z.el.oldOverlay )
 			z.el.oldOverflow = jQuery.css( z.el, "overflow" );
@@ -1508,7 +1575,10 @@ jQuery.extend({
 					// Reset the property, if the item has been hidden
 					if ( z.o.hide ) {
 						for ( var p in z.el.curAnim ) {
-							y[ p ] = z.el.orig[p] + ( p == "opacity" ? "" : "px" );
+							if (p == "opacity" && jQuery.browser.msie)
+								jQuery.attr(y, p, z.el.orig[p]);
+							else
+								y[ p ] = z.el.orig[p] + "px";
 	
 							// set its height and/or width to auto
 							if ( p == 'height' || p == 'width' )
@@ -1534,60 +1604,62 @@ jQuery.extend({
 	}
 
 });
-// AJAX Plugin
-// Docs Here:
-// http://jquery.com/docs/ajax/
-jQuery.fn.loadIfModified = function( url, params, callback ) {
-	this.load( url, params, callback, 1 );
-};
-
-jQuery.fn.load = function( url, params, callback, ifModified ) {
-	if ( url.constructor == Function )
-		return this.bind("load", url);
-
-	callback = callback || function(){};
-
-	// Default to a GET request
-	var type = "GET";
-
-	// If the second parameter was provided
-	if ( params ) {
-		// If it's a function
-		if ( params.constructor == Function ) {
-			// We assume that it's the callback
-			callback = params;
-			params = null;
-			
-		// Otherwise, build a param string
-		} else {
-			params = jQuery.param( params );
-			type = "POST";
-		}
-	}
+jQuery.fn.extend({
+	loadIfModified: function( url, params, callback ) {
+		this.load( url, params, callback, 1 );
+	},
+	load: function( url, params, callback, ifModified ) {
+		if ( url.constructor == Function )
+			return this.bind("load", url);
 	
-	var self = this;
+		callback = callback || function(){};
 	
-	// Request the remote document
-	jQuery.ajax( type, url, params,function(res, status){
+		// Default to a GET request
+		var type = "GET";
+	
+		// If the second parameter was provided
+		if ( params ) {
+			// If it's a function
+			if ( params.constructor == Function ) {
+				// We assume that it's the callback
+				callback = params;
+				params = null;
+				
+			// Otherwise, build a param string
+			} else {
+				params = jQuery.param( params );
+				type = "POST";
+			}
+		}
+		
+		var self = this;
 		
-		if ( status == "success" || !ifModified && status == "notmodified" ) {
-			// Inject the HTML into all the matched elements
-			self.html(res.responseText).each( callback, [res.responseText, status] );
+		// Request the remote document
+		jQuery.ajax( type, url, params,function(res, status){
 			
-			// Execute all the scripts inside of the newly-injected HTML
-			$("script", self).each(function(){
-				if ( this.src )
-					$.getScript( this.src );
-				else
-					eval.call( window, this.text || this.textContent || this.innerHTML || "" );
-			});
-		} else
-			callback.apply( self, [res.responseText, status] );
-
-	}, ifModified);
+			if ( status == "success" || !ifModified && status == "notmodified" ) {
+				// Inject the HTML into all the matched elements
+				self.html(res.responseText).each( callback, [res.responseText, status] );
+				
+				// Execute all the scripts inside of the newly-injected HTML
+				jQuery("script", self).each(function(){
+					if ( this.src )
+						jQuery.getScript( this.src );
+					else
+						eval.call( window, this.text || this.textContent || this.innerHTML || "" );
+				});
+			} else
+				callback.apply( self, [res.responseText, status] );
 	
-	return this;
-};
+		}, ifModified);
+		
+		return this;
+	},
+	serialize: function() {
+		return jQuery.param( this );
+	}
+	
+});
 
 // If IE is used, create a wrapper for the XMLHttpRequest object
 if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
@@ -1599,8 +1671,11 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
 	};
 
 // Attach a bunch of functions for handling common AJAX events
+
+ 
+
 new function(){
-	var e = "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess".split(',');
+	var e = "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess".split(",");
 	
 	for ( var i = 0; i < e.length; i++ ) new function(){
 		var o = e[i];
@@ -1618,20 +1693,26 @@ jQuery.extend({
 			data = null;
 		}
 		
-		if ( data ) url += "?" + jQuery.param(data);
+		// append ? + data or & + data, in case there are already params
+		if ( data ) url += ((url.indexOf("?") > -1) ? "&" : "?") + jQuery.param(data);
 		
 		// Build and start the HTTP Request
 		jQuery.ajax( "GET", url, null, function(r, status) {
 			if ( callback ) callback( jQuery.httpData(r,type), status );
 		}, ifModified);
 	},
-
 	getIfModified: function( url, data, callback, type ) {
 		jQuery.get(url, data, callback, type, 1);
 	},
-
-	getScript: function( url, data, callback ) {
-		jQuery.get(url, data, callback, "script");
+	getScript: function( url, callback ) {
+		jQuery.get(url, callback, "script");
+	},
+	getJSON: function( url, data, callback ) {
+		if(callback)
+			jQuery.get(url, data, callback, "json");
+		else {
+			jQuery.get(url, data, "json");
+		}
 	},
 	post: function( url, data, callback, type ) {
 		// Build and start the HTTP Request
@@ -1642,7 +1723,6 @@ jQuery.extend({
 	
 	// timeout (ms)
 	timeout: 0,
-
 	ajaxTimeout: function(timeout) {
 		jQuery.timeout = timeout;
 	},
@@ -1656,13 +1736,17 @@ jQuery.extend({
 			ret = type.complete;
 			var success = type.success;
 			var error = type.error;
+			var dataType = type.dataType;
+			var global = typeof type.global == "boolean" ? type.global : true;
+			var timeout = typeof type.timeout == "number" ? type.timeout : jQuery.timeout;
+			var ifModified = type.ifModified || false;
 			data = type.data;
 			url = type.url;
 			type = type.type;
 		}
 		
 		// Watch for a new set of requests
-		if ( ! jQuery.active++ )
+		if ( global && ! jQuery.active++ )
 			jQuery.event.trigger( "ajaxStart" );
 
 		var requestDone = false;
@@ -1682,7 +1766,7 @@ jQuery.extend({
 			xml.setRequestHeader("If-Modified-Since",
 				jQuery.lastModified[url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
 		
-		// Set header so calling script knows that it's an XMLHttpRequest
+		// Set header so the called script knows that it's an XMLHttpRequest
 		xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
 	
 		// Make sure the browser sends the right content length
@@ -1702,16 +1786,20 @@ jQuery.extend({
 				if ( status != "error" ) {
 					// Cache Last-Modified header, if ifModified mode.
 					var modRes;
-          try {
-           modRes = xml.getResponseHeader("Last-Modified");
-          } catch(e) {}
-					if ( ifModified && modRes ) jQuery.lastModified[url] = modRes;
+					try {
+						modRes = xml.getResponseHeader("Last-Modified");
+					} catch(e) {} // swallow exception thrown by FF if header is not available
+					
+					if ( ifModified && modRes )
+						jQuery.lastModified[url] = modRes;
 					
 					// If a local callback was specified, fire it
-					if ( success ) success( xml, status );
+					if ( success )
+						success( jQuery.httpData( xml, dataType ), status );
 					
 					// Fire the global callback
-					jQuery.event.trigger( "ajaxSuccess" );
+					if( global )
+						jQuery.event.trigger( "ajaxSuccess" );
 				
 				// Otherwise, the request was not successful
 				} else {
@@ -1719,14 +1807,16 @@ jQuery.extend({
 					if ( error ) error( xml, status );
 					
 					// Fire the global callback
-					jQuery.event.trigger( "ajaxError" );
+					if( global )
+						jQuery.event.trigger( "ajaxError" );
 				}
 				
 				// The request was completed
-				jQuery.event.trigger( "ajaxComplete" );
+				if( global )
+					jQuery.event.trigger( "ajaxComplete" );
 				
 				// Handle the global AJAX counter
-				if ( ! --jQuery.active )
+				if ( global && ! --jQuery.active )
 					jQuery.event.trigger( "ajaxStop" );
 	
 				// Process result
@@ -1741,7 +1831,7 @@ jQuery.extend({
 		xml.onreadystatechange = onreadystatechange;
 		
 		// Timeout checker
-		if(jQuery.timeout > 0)
+		if(timeout > 0)
 			setTimeout(function(){
 				// Check to see if the request is still happening
 				if (xml) {
@@ -1753,7 +1843,7 @@ jQuery.extend({
 					// Clear from memory
 					xml = null;
 				}
-			}, jQuery.timeout);
+			}, timeout);
 		
 		// Send the data
 		xml.send(data);
@@ -1786,9 +1876,12 @@ jQuery.extend({
 		return false;
 	},
 	
-	// Get the data out of an XMLHttpRequest.
-	// Return parsed XML if content-type header is "xml" and type is "xml" or omitted,
-	// otherwise return plain text.
+	/* Get the data out of an XMLHttpRequest.
+	 * Return parsed XML if content-type header is "xml" and type is "xml" or omitted,
+	 * otherwise return plain text.
+	 * (String) data - The type of data that you're expecting back,
+	 * (e.g. "xml", "html", "script")
+	 */
 	httpData: function(r,type) {
 		var ct = r.getResponseHeader("content-type");
 		var data = !type && ct && ct.indexOf("xml") >= 0;
@@ -1810,7 +1903,7 @@ jQuery.extend({
 		
 		// If an array was passed in, assume that it is an array
 		// of form elements
-		if ( a.constructor == Array ) {
+		if ( a.constructor == Array || a.jquery ) {
 			// Serialize the form elements
 			for ( var i = 0; i < a.length; i++ )
 				s.push( a[i].name + "=" + encodeURIComponent( a[i].value ) );
@@ -1827,6 +1920,7 @@ jQuery.extend({
 	}
 
 });
+} // close: if(typeof window.jQuery == "undefined") {
 /**
  * A method for submitting an HTML form using AJAX, as opposed to the
  * standard page-load way.
diff --git a/dist/javascript/jquery-1.0.2-forms.pack.js b/dist/javascript/jquery-1.0.2-forms.pack.js
new file mode 100644
index 0000000000000000000000000000000000000000..7980511a2d11869a622a649f73da142fa763ddf1
--- /dev/null
+++ b/dist/javascript/jquery-1.0.2-forms.pack.js
@@ -0,0 +1 @@
+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}('l(1U 1P.6=="R"){1P.R=1P.R;6=q(a,c){l(a&&1U a=="q"&&6.C.1W)v 6(17).1W(a);a=a||6.1o||17;l(a.2X)v 6(6.1V(a,[]));l(c&&c.2X)v 6(c).2h(a);l(1P==7)v 1f 6(a,c);u m=/^[^<]*(<.+>)[^>]*$/.3O(a);l(m)a=6.3Q([m[1]]);7.1n(a.L==2w||a.D&&!a.1X&&a[0]!=R&&a[0].1X?6.1V(a,[]):6.2h(a,c));u C=1e[1e.D-1];l(C&&1U C=="q")7.Q(C)};l(1U $!="R")6.4c$=$;u $=6;6.C=6.8o={2X:"1.0.2",6b:q(){v 7.D},1n:q(29){l(29&&29.L==2w){7.D=0;[].19.18(7,29);v 7}E v 29==R?6.1V(7,[]):7[29]},Q:q(C,1i){v 6.Q(7,C,1i)},83:q(15){u 2e=-1;7.Q(q(i){l(7==15)2e=i});v 2e},1t:q(1M,O,B){v 1M.L!=1z||O!=R?7.Q(q(){l(O==R)G(u I 1r 1M)6.1t(B?7.1b:7,I,1M[I]);E 6.1t(B?7.1b:7,1M,O)}):6[B||"1t"](7[0],1M)},1g:q(1M,O){v 7.1t(1M,O,"22")},2P:q(e){e=e||7;u t="";G(u j=0;j<e.D;j++){u r=e[j].2j;G(u i=0;i<r.D;i++)l(r[i].1X!=8)t+=r[i].1X!=1?r[i].3K:6.C.2P([r[i]])}v t},8r:q(){u a=6.3Q(1e);v 7.Q(q(){u b=a[0].3e(Y);7.1m.2R(b,7);2n(b.1Q)b=b.1Q;b.4L(7)})},5o:q(){v 7.2Z(1e,Y,1,q(a){7.4L(a)})},5q:q(){v 7.2Z(1e,Y,-1,q(a){7.2R(a,7.1Q)})},5r:q(){v 7.2Z(1e,11,1,q(a){7.1m.2R(a,7)})},5s:q(){v 7.2Z(1e,11,-1,q(a){7.1m.2R(a,7.8s)})},5I:q(){v 7.1n(7.3V.8u())},2h:q(t){v 7.2b(6.2s(7,q(a){v 6.2h(t,a)}),1e)},4t:q(4s){v 7.2b(6.2s(7,q(a){v a.3e(4s!=R?4s:Y)}),1e)},1c:q(t){v 7.2b(t.L==2w&&6.2s(7,q(a){G(u i=0;i<t.D;i++)l(6.1c(t[i],[a]).r.D)v a})||t.L==8v&&(t?7.1n():[])||1U t=="q"&&6.2U(7,t)||6.1c(t,7).r,1e)},2z:q(t){v 7.2b(t.L==1z?6.1c(t,7,11).r:6.2U(7,q(a){v a!=t}),1e)},26:q(t){v 7.2b(6.1V(7,t.L==1z?6.2h(t):t.L==2w?t:[t]),1e)},4H:q(2I){v 2I?6.1c(2I,7).r.D>0:11},2Z:q(1i,1q,2Y,C){u 4t=7.6b()>1;u a=6.3Q(1i);v 7.Q(q(){u 15=7;l(1q&&7.2t.2l()=="8w"&&a[0].2t.2l()!="8x"){u 23=7.50("23");l(!23.D){15=17.4Q("23");7.4L(15)}E 15=23[0]}G(u i=(2Y<0?a.D-1:0);i!=(2Y<0?2Y:a.D);i+=2Y){C.18(15,[4t?a[i].3e(Y):a[i]])}})},2b:q(a,1i){u C=1i&&1i[1i.D-1];u 2p=1i&&1i[1i.D-2];l(C&&C.L!=1p)C=T;l(2p&&2p.L!=1p)2p=T;l(!C){l(!7.3V)7.3V=[];7.3V.19(7.1n());7.1n(a)}E{u 1Y=7.1n();7.1n(a);l(2p&&a.D||!2p)7.Q(2p||C).1n(1Y);E 7.1n(1Y).Q(C)}v 7}};6.1S=6.C.1S=q(15,I){l(!I){I=15;15=7}G(u i 1r I)15[i]=I[i];v 15};6.1S({5F:q(){6.8y=Y;6.Q(6.2d.5A,q(i,n){6.C[i]=q(a){u M=6.2s(7,n);l(a&&a.L==1z)M=6.1c(a,M).r;v 7.2b(M,1e)}});6.Q(6.2d.2J,q(i,n){6.C[i]=q(){u a=1e;v 7.Q(q(){G(u j=0;j<a.D;j++)6(a[j])[n](7)})}});6.Q(6.2d.Q,q(i,n){6.C[i]=q(){v 7.Q(n,1e)}});6.Q(6.2d.1c,q(i,n){6.C[n]=q(29,C){v 7.1c(":"+n+"("+29+")",C)}});6.Q(6.2d.1t,q(i,n){n=n||i;6.C[i]=q(h){v h==R?7.D?7[0][n]:T:7.1t(n,h)}});6.Q(6.2d.1g,q(i,n){6.C[n]=q(h){v h==R?(7.D?6.1g(7[0],n):T):7.1g(n,h)}})},Q:q(15,C,1i){l(15.D==R)G(u i 1r 15)C.18(15[i],1i||[i,15[i]]);E G(u i=0;i<15.D;i++)C.18(15[i],1i||[i,15[i]]);v 15},1h:{26:q(o,c){l(6.1h.3w(o,c))v;o.1h+=(o.1h?" ":"")+c},27:q(o,c){l(!c){o.1h=""}E{u 2V=o.1h.3g(" ");G(u i=0;i<2V.D;i++){l(2V[i]==c){2V.8z(i,1);5a}}o.1h=2V.5L(\' \')}},3w:q(e,a){l(e.1h!=R)e=e.1h;v 1f 4r("(^|\\\\s)"+a+"(\\\\s|$)").24(e)}},42:q(e,o,f){G(u i 1r o){e.1b["1Y"+i]=e.1b[i];e.1b[i]=o[i]}f.18(e,[]);G(u i 1r o)e.1b[i]=e.1b["1Y"+i]},1g:q(e,p){l(p=="1I"||p=="2k"){u 1Y={},3T,3f,d=["8A","8C","8D","8E"];G(u i 1r d){1Y["8F"+d[i]]=0;1Y["6g"+d[i]+"6h"]=0}6.42(e,1Y,q(){l(6.1g(e,"1w")!="25"){3T=e.6J;3f=e.6i}E{e=6(e.3e(Y)).1g({4z:"20",2L:"6j",1w:"3b",6l:"0",5t:"0"}).5m(e.1m)[0];u 39=6.1g(e.1m,"2L");l(39==""||39=="40")e.1m.1b.2L="6m";3T=e.6n;3f=e.6o;l(39==""||39=="40")e.1m.1b.2L="40";e.1m.3p(e)}});v p=="1I"?3T:3f}v 6.22(e,p)},22:q(F,I,69){u M;l(I==\'1j\'&&6.1a.1y)v 6.1t(F.1b,\'1j\');l(!69&&F.1b[I]){M=F.1b[I]}E l(F.3R){u 4N=I.1G(/\\-(\\w)/g,q(m,c){v c.2l()});M=F.3R[I]||F.3R[4N]}E l(17.3U&&17.3U.43){I=I.1G(/([A-Z])/g,"-$1").3x();u 1l=17.3U.43(F,T);l(1l)M=1l.4O(I);E l(I==\'1w\')M=\'25\';E 6.42(F,{1w:\'3b\'},q(){M=17.3U.43(7,T).4O(I)})}v M},3Q:q(a){u r=[];G(u i=0;i<a.D;i++){l(a[i].L==1z){a[i]=6.2O(a[i]);u 1q="";l(!a[i].1d("<46")||!a[i].1d("<23")){1q="46";a[i]="<1q>"+a[i]+"</1q>"}E l(!a[i].1d("<3N")){1q="3N";a[i]="<1q>"+a[i]+"</1q>"}E l(!a[i].1d("<47")||!a[i].1d("<6t")){1q="47";a[i]="<1q><23><3N>"+a[i]+"</3N></23></1q>"}u 1D=17.4Q("1D");1D.2u=a[i];l(1q){1D=1D.1Q;l(1q!="46")1D=1D.1Q;l(1q=="47")1D=1D.1Q}G(u j=0;j<1D.2j.D;j++)r.19(1D.2j[j])}E l(a[i].2X||a[i].D&&!a[i].1X)G(u k=0;k<a[i].D;k++)r.19(a[i][k]);E l(a[i]!==T)r.19(a[i].1X?a[i]:17.8f(a[i].6w()))}v r},2I:{"":"m[2]== \'*\'||a.2t.2l()==m[2].2l()","#":"a.3J(\'31\')&&a.3J(\'31\')==m[2]",":":{5x:"i<m[3]-0",5y:"i>m[3]-0",5Y:"m[3]-0==i",5w:"m[3]-0==i",2g:"i==0",1K:"i==r.D-1",5d:"i%2==0",5e:"i%2","5Y-3v":"6.1x(a,m[3]).1l","2g-3v":"6.1x(a,0).1l","1K-3v":"6.1x(a,0).1K","6y-3v":"6.1x(a).D==1",5B:"a.2j.D",5D:"!a.2j.D",5z:"(a.6z||a.2u).1d(m[3])>=0",6A:"a.B!=\'20\'&&6.1g(a,\'1w\')!=\'25\'&&6.1g(a,\'4z\')!=\'20\'",20:"a.B==\'20\'||6.1g(a,\'1w\')==\'25\'||6.1g(a,\'4z\')==\'20\'",51:"!a.2F",2F:"a.2F",3a:"a.3a",3y:"a.3y || 6.1t(a, \'3y\')",2P:"a.B==\'2P\'",4B:"a.B==\'4B\'",4I:"a.B==\'4I\'",4y:"a.B==\'4y\'",4U:"a.B==\'4U\'",2G:"a.B==\'2G\'",2S:"a.B==\'2S\'",3P:"a.B==\'3P\'",38:"a.B==\'38\'",33:"a.2t.3x().53(/33|36|5N|38/)"},".":"6.1h.3w(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z && !z.1d(m[4])","$=":"z && z.2W(z.D - m[4].D,m[4].D)==m[4]","*=":"z && z.1d(m[4])>=0","":"z"},"[":"6.2h(m[2],a).D"},3H:["\\\\.\\\\.|/\\\\.\\\\.","a.1m",">|/","6.1x(a.1Q)","\\\\+","6.1x(a).3t","~",q(a){u r=[];u s=6.1x(a);l(s.n>0)G(u i=s.n;i<s.D;i++)r.19(s[i]);v r}],2h:q(t,1o){l(1o&&1o.1X==R)1o=T;1o=1o||6.1o||17;l(t.L!=1z)v[t];l(!t.1d("//")){1o=1o.4W;t=t.2W(2,t.D)}E l(!t.1d("/")){1o=1o.4W;t=t.2W(1,t.D);l(t.1d("/")>=1)t=t.2W(t.1d("/"),t.D)}u M=[1o];u 1R=[];u 1K=T;2n(t.D>0&&1K!=t){u r=[];1K=t;t=6.2O(t).1G(/^\\/\\//i,"");u 3E=11;G(u i=0;i<6.3H.D;i+=2){l(3E)5b;u 2C=1f 4r("^("+6.3H[i]+")");u m=2C.3O(t);l(m){r=M=6.2s(M,6.3H[i+1]);t=6.2O(t.1G(2C,""));3E=Y}}l(!3E){l(!t.1d(",")||!t.1d("|")){l(M[0]==1o)M.4M();1R=6.1V(1R,M);r=M=[1o];t=" "+t.2W(1,t.D)}E{u 4v=/^([#.]?)([a-59-9\\\\*4c-]*)/i;u m=4v.3O(t);l(m[1]=="#"){u 4u=17.5U(m[2]);r=M=4u?[4u]:[];t=t.1G(4v,"")}E{l(!m[2]||m[1]==".")m[2]="*";G(u i=0;i<M.D;i++)r=6.1V(r,m[2]=="*"?6.49(M[i]):M[i].50(m[2]))}}}l(t){u 1F=6.1c(t,r);M=r=1F.r;t=6.2O(1F.t)}}l(M&&M[0]==1o)M.4M();1R=6.1V(1R,M);v 1R},49:q(o,r){r=r||[];u s=o.2j;G(u i=0;i<s.D;i++)l(s[i].1X==1){r.19(s[i]);6.49(s[i],r)}v r},1t:q(F,W,O){u 2f={"G":"6D","6E":"1h","5u":"6F",2u:"2u",1h:"1h",O:"O",2F:"2F",3a:"3a"};l(W=="1j"&&6.1a.1y&&O!=R){F[\'6G\']=1;l(O==1)v F["1c"]=F["1c"].1G(/3B\\([^\\)]*\\)/5M,"");E v F["1c"]=F["1c"].1G(/3B\\([^\\)]*\\)/5M,"")+"3B(1j="+O*54+")"}E l(W=="1j"&&6.1a.1y){v F["1c"]?3Y(F["1c"].53(/3B\\(1j=(.*)\\)/)[1])/54:1}l(W=="1j"&&6.1a.2T&&O==1)O=0.6H;l(2f[W]){l(O!=R)F[2f[W]]=O;v F[2f[W]]}E l(O==R&&6.1a.1y&&F.2t&&F.2t.2l()==\'7L\'&&(W==\'5P\'||W==\'5T\')){v F.4k(W).3K}E l(F.3J!=R){l(O!=R)F.6K(W,O);v F.3J(W,2)}E{W=W.1G(/-([a-z])/6L,q(z,b){v b.2l()});l(O!=R)F[W]=O;v F[W]}},56:["\\\\[ *(@)S *([!*$^=]*) *(\'?\\"?)(.*?)\\\\4 *\\\\]","(\\\\[)\\s*(.*?)\\s*\\\\]","(:)S\\\\(\\"?\'?([^\\\\)]*?)\\"?\'?\\\\)","([:.#]*)S"],1c:q(t,r,2z){u g=2z!==11?6.2U:q(a,f){v 6.2U(a,f,Y)};2n(t&&/^[a-z[({<*:.#]/i.24(t)){u p=6.56;G(u i=0;i<p.D;i++){u 2C=1f 4r("^"+p[i].1G("S","([a-z*4c-][a-59-6N-]*)"),"i");u m=2C.3O(t);l(m){l(!i)m=["",m[1],m[3],m[2],m[5]];t=t.1G(2C,"");5a}}l(m[1]==":"&&m[2]=="2z")r=6.1c(m[3],r,11).r;E{u f=6.2I[m[1]];l(f.L!=1z)f=6.2I[m[1]][m[2]];3c("f = q(a,i){"+(m[1]=="@"?"z=6.1t(a,m[3]);":"")+"v "+f+"}");r=g(r,f)}}v{r:r,t:t}},2O:q(t){v t.1G(/^\\s+|\\s+$/g,"")},3F:q(F){u 4e=[];u 1l=F.1m;2n(1l&&1l!=17){4e.19(1l);1l=1l.1m}v 4e},1x:q(F,2e,2z){u 14=[];l(F){u 2a=F.1m.2j;G(u i=0;i<2a.D;i++){l(2z===Y&&2a[i]==F)5b;l(2a[i].1X==1)14.19(2a[i]);l(2a[i]==F)14.n=14.D-1}}v 6.1S(14,{1K:14.n==14.D-1,1l:2e=="5d"&&14.n%2==0||2e=="5e"&&14.n%2||14[2e]==F,4m:14[14.n-1],3t:14[14.n+1]})},1V:q(2g,3h){u 1B=[];G(u k=0;k<2g.D;k++)1B[k]=2g[k];G(u i=0;i<3h.D;i++){u 4l=Y;G(u j=0;j<2g.D;j++)l(3h[i]==2g[j])4l=11;l(4l)1B.19(3h[i])}v 1B},2U:q(14,C,4h){l(C.L==1z)C=1f 1p("a","i","v "+C);u 1B=[];G(u i=0;i<14.D;i++)l(!4h&&C(14[i],i)||4h&&!C(14[i],i))1B.19(14[i]);v 1B},2s:q(14,C){l(C.L==1z)C=1f 1p("a","v "+C);u 1B=[];G(u i=0;i<14.D;i++){u 1F=C(14[i],i);l(1F!==T&&1F!=R){l(1F.L!=2w)1F=[1F];1B=6.1V(1B,1F)}}v 1B},N:{26:q(U,B,21){l(6.1a.1y&&U.3Z!=R)U=1P;l(!21.2E)21.2E=7.2E++;l(!U.1A)U.1A={};u 2Q=U.1A[B];l(!2Q){2Q=U.1A[B]={};l(U["2M"+B])2Q[0]=U["2M"+B]}2Q[21.2E]=21;U["2M"+B]=7.5h;l(!7.1k[B])7.1k[B]=[];7.1k[B].19(U)},2E:1,1k:{},27:q(U,B,21){l(U.1A)l(B&&U.1A[B])l(21)5g U.1A[B][21.2E];E G(u i 1r U.1A[B])5g U.1A[B][i];E G(u j 1r U.1A)7.27(U,j)},1O:q(B,K,U){K=K||[];l(!U){u g=7.1k[B];l(g)G(u i=0;i<g.D;i++)7.1O(B,K,g[i])}E l(U["2M"+B]){K.5i(7.2f({B:B,1T:U}));U["2M"+B].18(U,K)}},5h:q(N){l(1U 6=="R")v;N=N||6.N.2f(1P.N);l(!N)v;u 3m=Y;u c=7.1A[N.B];u 1i=[].6W.4a(1e,1);1i.5i(N);G(u j 1r c){l(c[j].18(7,1i)===11){N.4o();N.5j();3m=11}}v 3m},2f:q(N){l(N){N.4o=q(){7.3m=11};N.5j=q(){7.6Y=Y}}v N}}});1f q(){u b=5n.5p.3x();6.1a={3j:/5k/.24(b),32:/32/.24(b),1y:/1y/.24(b)&&!/32/.24(b),2T:/2T/.24(b)&&!/(6Z|5k)/.24(b)};6.70=!6.1a.1y||17.71=="72"};6.2d={2J:{5m:"5o",75:"5q",2R:"5r",77:"5s"},1g:"2k,1I,78,5t,2L,5u,3G,7b,7c".3g(","),1c:["5w","5x","5y","5z"],1t:{1F:"O",5f:"2u",31:T,7d:T,W:T,7e:T,3S:T,7g:T},5A:{5B:"a.1m",7i:6.3F,3F:6.3F,3t:"6.1x(a).3t",4m:"6.1x(a).4m",2a:"6.1x(a, T, Y)",7l:"6.1x(a.1Q)"},Q:{7m:q(1M){7.7n(1M)},1J:q(){7.1b.1w=7.2A?7.2A:"";l(6.1g(7,"1w")=="25")7.1b.1w="3b"},1s:q(){7.2A=7.2A||6.1g(7,"1w");l(7.2A=="25")7.2A="3b";7.1b.1w="25"},4n:q(){6(7)[6(7).4H(":20")?"1J":"1s"].18(6(7),1e)},7p:q(c){6.1h.26(7,c)},7q:q(c){6.1h.27(7,c)},7t:q(c){6.1h[6.1h.3w(7,c)?"27":"26"](7,c)},27:q(a){l(!a||6.1c(a,[7]).r)7.1m.3p(7)},5D:q(){2n(7.1Q)7.3p(7.1Q)},3s:q(B,C){l(C.L==1z)C=1f 1p("e",(!C.1d(".")?"6(7)":"v ")+C);6.N.26(7,B,C)},5Q:q(B,C){6.N.27(7,B,C)},1O:q(B,K){6.N.1O(B,K,7)}}};6.5F();6.C.1S({5H:6.C.4n,4n:q(a,b){v a&&b&&a.L==1p&&b.L==1p?7.45(q(e){7.1K=7.1K==a?b:a;e.4o();v 7.1K.18(7,[e])||11}):7.5H.18(7,1e)},7y:q(f,g){q 4q(e){u p=(e.B=="3D"?e.7z:e.7B)||e.7C;2n(p&&p!=7)3W{p=p.1m}3k(e){p=7};l(p==7)v 11;v(e.B=="3D"?f:g).18(7,[e])}v 7.3D(4q).5O(4q)},1W:q(f){l(6.3A)f.18(17);E{6.2y.19(f)}v 7}});6.1S({3A:11,2y:[],1W:q(){l(!6.3A){6.3A=Y;l(6.2y){G(u i=0;i<6.2y.D;i++)6.2y[i].18(17);6.2y=T}l(6.1a.2T||6.1a.32)17.7F("5S",6.1W,11)}}});1f q(){u e=("7G,7I,2r,7J,7M,4E,45,7N,"+"7P,7Q,7S,3D,5O,7U,3P,36,"+"2G,7W,7X,7Z,2o").3g(",");G(u i=0;i<e.D;i++)1f q(){u o=e[i];6.C[o]=q(f){v f?7.3s(o,f):7.1O(o)};6.C["80"+o]=q(f){v 7.5Q(o,f)};6.C["81"+o]=q(f){v 7.Q(q(){u 5R=0;6.N.26(7,o,q(e){l(5R++)v;v f.18(7,[e])})})}};l(6.1a.2T||6.1a.32){17.84("5S",6.1W,11)}E l(6.1a.1y){17.86("<88"+"89 31=5V 8a=Y "+"3S=//:><\\/2m>");u 2m=17.5U("5V");2m.2K=q(){l(7.3M!="1H")v;7.1m.3p(7);6.1W()};2m=T}E l(6.1a.3j){6.4C=3Z(q(){l(17.3M=="8c"||17.3M=="1H"){4S(6.4C);6.4C=T;6.1W()}},10)}6.N.26(1P,"2r",6.1W)};l(6.1a.1y)6(1P).4E(q(){u N=6.N,1k=N.1k;G(u B 1r 1k){u 4F=1k[B],i=4F.D;l(i>0)8g l(B!=\'4E\')N.27(4F[i-1],B);2n(--i)}});6.C.1S({5Z:6.C.1J,1J:q(12,H){v 12?7.1Z({1I:"1J",2k:"1J",1j:"1J"},12,H):7.5Z()},60:6.C.1s,1s:q(12,H){v 12?7.1Z({1I:"1s",2k:"1s",1j:"1s"},12,H):7.60()},8h:q(12,H){v 7.1Z({1I:"1J"},12,H)},8i:q(12,H){v 7.1Z({1I:"1s"},12,H)},8j:q(12,H){v 7.Q(q(){u 62=6(7).4H(":20")?"1J":"1s";6(7).1Z({1I:62},12,H)})},8k:q(12,H){v 7.1Z({1j:"1J"},12,H)},8l:q(12,H){v 7.1Z({1j:"1s"},12,H)},8m:q(12,2J,H){v 7.1Z({1j:2J},12,H)},1Z:q(I,12,H){v 7.1v(q(){7.30=I;G(u p 1r I){u e=1f 6.35(7,6.12(12,H),p);l(I[p].L==5K)e.37(e.1l(),I[p]);E e[I[p]](I)}})},1v:q(B,C){l(!C){C=B;B="35"}v 7.Q(q(){l(!7.1v)7.1v={};l(!7.1v[B])7.1v[B]=[];7.1v[B].19(C);l(7.1v[B].D==1)C.18(7)})}});6.1S({57:q(e,p){l(e.67)v;l(p=="1I"&&e.63!=3X(6.22(e,p)))v;l(p=="2k"&&e.65!=3X(6.22(e,p)))v;u a=e.1b[p];u o=6.22(e,p,1);l(p=="1I"&&e.63!=o||p=="2k"&&e.65!=o)v;e.1b[p]=e.3R?"":"66";u n=6.22(e,p,1);l(o!=n&&n!="66"){e.1b[p]=a;e.67=Y}},12:q(s,o){o=o||{};l(o.L==1p)o={1H:o};u 6a={8p:8q,8t:4T};o.2N=(s&&s.L==5K?s:6a[s])||6e;o.3C=o.1H;o.1H=q(){6.6c(7,"35");l(o.3C&&o.3C.L==1p)o.3C.18(7)};v o},1v:{},6c:q(F,B){B=B||"35";l(F.1v&&F.1v[B]){F.1v[B].4M();u f=F.1v[B][0];l(f)f.18(F)}},35:q(F,2v,I){u z=7;z.o={2N:2v.2N||6e,1H:2v.1H,2D:2v.2D};z.V=F;u y=z.V.1b;z.a=q(){l(2v.2D)2v.2D.18(F,[z.2i]);l(I=="1j")6.1t(y,"1j",z.2i);E l(3X(z.2i))y[I]=3X(z.2i)+"5J";y.1w="3b"};z.6f=q(){v 3Y(6.1g(z.V,I))};z.1l=q(){u r=3Y(6.22(z.V,I));v r&&r>-6k?r:z.6f()};z.37=q(41,2J){z.4d=(1f 5W()).4R();z.2i=41;z.a();z.4x=3Z(q(){z.2D(41,2J)},13)};z.1J=q(p){l(!z.V.1E)z.V.1E={};z.V.1E[I]=7.1l();l(I=="1j")z.37(z.V.1E[I],1);E z.37(0,z.V.1E[I]);l(I!="1j")y[I]="6r"};z.1s=q(){l(!z.V.1E)z.V.1E={};z.V.1E[I]=7.1l();z.o.1s=Y;z.37(z.V.1E[I],0)};l(!z.V.6u)z.V.4X=6.1g(z.V,"3G");y.3G="20";z.2D=q(4g,4f){u t=(1f 5W()).4R();l(t>z.o.2N+z.4d){4S(z.4x);z.4x=T;z.2i=4f;z.a();z.V.30[I]=Y;u 1R=Y;G(u i 1r z.V.30)l(z.V.30[i]!==Y)1R=11;l(1R){y.3G=z.V.4X;l(z.o.1s)y.1w=\'25\';l(z.o.1s){G(u p 1r z.V.30){l(p=="1j"&&6.1a.1y)6.1t(y,p,z.V.1E[p]);E y[p]=z.V.1E[p]+"5J";l(p==\'1I\'||p==\'2k\')6.57(z.V,p)}}}l(1R&&z.o.1H&&z.o.1H.L==1p)z.o.1H.18(z.V)}E{u p=(t-7.4d)/z.o.2N;z.2i=((-5c.6P(p*5c.6Q)/2)+0.5)*(4f-4g)+4g;z.a()}}}});6.C.1S({6T:q(J,1L,H){7.2r(J,1L,H,1)},2r:q(J,1L,H,1C){l(J.L==1p)v 7.3s("2r",J);H=H||q(){};u B="4p";l(1L){l(1L.L==1p){H=1L;1L=T}E{1L=6.2c(1L);B="4D"}}u 3n=7;6.2q(B,J,1L,q(3o,16){l(16=="2H"||!1C&&16=="61"){3n.5f(3o.3d).Q(H,[3o.3d,16]);6("2m",3n).Q(q(){l(7.3S)6.5C(7.3S);E 3c.4a(1P,7.2P||7.6X||7.2u||"")})}E H.18(3n,[3o.3d,16])},1C);v 7},3z:q(){v 6.2c(7)}});l(6.1a.1y&&1U 3I=="R")3I=q(){v 1f 73(5n.5p.1d("76 5")>=0?"79.5v":"7a.5v")};1f q(){u e="5E,6d,5X,68,64".3g(",");G(u i=0;i<e.D;i++)1f q(){u o=e[i];6.C[o]=q(f){v 7.3s(o,f)}}};6.1S({1n:q(J,K,H,B,1C){l(K.L==1p){B=H;H=K;K=T}l(K)J+=((J.1d("?")>-1)?"&":"?")+6.2c(K);6.2q("4p",J,T,q(r,16){l(H)H(6.3r(r,B),16)},1C)},7h:q(J,K,H,B){6.1n(J,K,H,B,1)},5C:q(J,H){6.1n(J,H,"2m")},7j:q(J,K,H){l(H)6.1n(J,K,H,"48");E{6.1n(J,K,"48")}},7k:q(J,K,H,B){6.2q("4D",J,6.2c(K),q(r,16){l(H)H(6.3r(r,B),16)})},1u:0,7o:q(1u){6.1u=1u},3i:{},2q:q(B,J,K,M,1C){l(!J){M=B.1H;u 2H=B.2H;u 2o=B.2o;u 4J=B.4J;u 1k=1U B.1k=="7r"?B.1k:Y;u 1u=1U B.1u=="7u"?B.1u:6.1u;u 1C=B.1C||11;K=B.K;J=B.J;B=B.B}l(1k&&!6.4K++)6.N.1O("5E");u 44=11;u P=1f 3I();P.7v(B||"4p",J,Y);l(K)P.3L("7x-7A","7D/x-7E-1N-7H");l(1C)P.3L("7K-4b-7O",6.3i[J]||"7R, 7T 7V 7Y 4w:4w:4w 82");P.3L("X-85-87","3I");l(P.8b)P.3L("8d","8e");u 2K=q(4G){l(P&&(P.3M==4||4G=="1u")){44=Y;u 16=6.4P(P)&&4G!="1u"?1C&&6.4Z(P,J)?"61":"2H":"2o";l(16!="2o"){u 3l;3W{3l=P.4i("52-4b")}3k(e){}l(1C&&3l)6.3i[J]=3l;l(2H)2H(6.3r(P,4J),16);l(1k)6.N.1O("64")}E{l(2o)2o(P,16);l(1k)6.N.1O("68")}l(1k)6.N.1O("5X");l(1k&&!--6.4K)6.N.1O("6d");l(M)M(P,16);P.2K=q(){};P=T}};P.2K=2K;l(1u>0)8B(q(){l(P){P.8G();l(!44)2K("1u");P=T}},1u);P.6q(K)},4K:0,4P:q(r){3W{v!r.16&&6v.6x=="4y:"||(r.16>=4T&&r.16<6B)||r.16==55||6.1a.3j&&r.16==R}3k(e){}v 11},4Z:q(P,J){3W{u 58=P.4i("52-4b");v P.16==55||58==6.3i[J]||6.1a.3j&&P.16==R}3k(e){}v 11},3r:q(r,B){u 4j=r.4i("6V-B");u K=!B&&4j&&4j.1d("P")>=0;K=B=="P"||K?r.74:r.3d;l(B=="2m")3c.4a(1P,K);l(B=="48")3c("K = "+K);v K},2c:q(a){u s=[];l(a.L==2w||a.2X){G(u i=0;i<a.D;i++)s.19(a[i].W+"="+5G(a[i].O))}E{G(u j 1r a)s.19(j+"="+5G(a[j]))}v s.5L("&")}})}$.C.5l=q(1T,3q,2x,J,34){l(!7.28)7.3z();l(2x&&2x.L==1p&&2x(7.28)===11)v;u f=7.1n(0);u J=J||f.4k(\'5P\').3K||\'\';u 34=34||f.4k(\'5T\').3K||\'4D\';l(1T&&1T.L==1p)$.2q(34,J,$.2c(7.28),1T);E l(1T&&1T.L==1z)$(1T).2r(J,7.28,3q);E{7.28.19({W:\'8n\',O:1});$.2q(34,J,$.2c(7.28),q(r){3c(r.3d)})}v 7};$.C.6s=q(1T,3q,2x){v 7.Q(q(){$("33[@B=2G],33[@B=2S]",7).45(q(2B){7.1N.4V=7;l(2B.4Y!=R){7.1N.3u=2B.4Y;7.1N.4A=2B.6C}E{7.1N.3u=2B.6M-7.6O;7.1N.4A=2B.6R-7.6U}})}).2G(q(e){$(7).5l(1T,3q,2x);v 11})};$.C.7s=q(){7.3z();v 7.28};$.C.3z=q(){u a=[];$(\'33,5N,36,38\',7).Q(q(){u n=7.W||7.31;u t=7.B;l(!n||7.2F||t==\'3P\'||(t==\'4I\'||t==\'4B\')&&!7.3a||(t==\'2G\'||t==\'2S\'||t==\'38\')&&7.1N.4V!=7||7.6I.3x()==\'36\'&&7.6S==-1)v;l(t==\'2S\'&&7.1N.3u)v a.19({W:n+\'7f\',O:7.1N.3u},{W:n+\'7w\',O:7.1N.4A});l(t==\'36-8H\'){$(\'6p:51\',7).Q(q(){l(7.3y)a.19({W:n,O:7.O})});v}a.19({W:n,O:7.O})}).5I();7.28=a;v 7};',62,540,'||||||jQuery|this||||||||||||||if|||||function||||var|return||||||type|fn|length|else|elem|for|callback|prop|url|data|constructor|ret|event|value|xml|each|undefined||null|element|el|name||true|||false|speed||elems|obj|status|document|apply|push|browser|style|filter|indexOf|arguments|new|css|className|args|opacity|global|cur|parentNode|get|context|Function|table|in|hide|attr|timeout|queue|display|sibling|msie|String|events|result|ifModified|div|orig|val|replace|complete|height|show|last|params|key|form|trigger|window|firstChild|done|extend|target|typeof|merge|ready|nodeType|old|animate|hidden|handler|curCSS|tbody|test|none|add|remove|vars|num|siblings|pushStack|param|macros|pos|fix|first|find|now|childNodes|width|toUpperCase|script|while|error|fn2|ajax|load|map|nodeName|innerHTML|options|Array|pre_cb|readyList|not|oldblock|ev|re|step|guid|disabled|submit|success|expr|to|onreadystatechange|position|on|duration|trim|text|handlers|insertBefore|image|mozilla|grep|classes|substr|jquery|dir|domManip|curAnim|id|opera|input|mth|fx|select|custom|button|parPos|checked|block|eval|responseText|cloneNode|oWidth|split|second|lastModified|safari|catch|modRes|returnValue|self|res|removeChild|post_cb|httpData|bind|next|clicked_x|child|has|toLowerCase|selected|serialize|isReady|alpha|oldComplete|mouseover|foundToken|parents|overflow|token|XMLHttpRequest|getAttribute|nodeValue|setRequestHeader|readyState|tr|exec|reset|clean|currentStyle|src|oHeight|defaultView|stack|try|parseInt|parseFloat|setInterval|static|from|swap|getComputedStyle|requestDone|click|thead|td|json|getAll|call|Modified|_|startTime|matched|lastNum|firstNum|inv|getResponseHeader|ct|getAttributeNode|noCollision|prev|toggle|preventDefault|GET|handleHover|RegExp|deep|clone|oid|re2|00|timer|file|visibility|clicked_y|radio|safariTimer|POST|unload|els|istimeout|is|checkbox|dataType|active|appendChild|shift|newProp|getPropertyValue|httpSuccess|createElement|getTime|clearInterval|200|password|clicked|documentElement|oldOverflow|offsetX|httpNotModified|getElementsByTagName|enabled|Last|match|100|304|parse|setAuto|xmlRes|z0|break|continue|Math|even|odd|html|delete|handle|unshift|stopPropagation|webkit|ajaxSubmit|appendTo|navigator|append|userAgent|prepend|before|after|left|float|XMLHTTP|eq|lt|gt|contains|axis|parent|getScript|empty|ajaxStart|init|encodeURIComponent|_toggle|end|px|Number|join|gi|textarea|mouseout|action|unbind|count|DOMContentLoaded|method|getElementById|__ie_init|Date|ajaxComplete|nth|_show|_hide|notmodified|state|scrollHeight|ajaxSuccess|scrollWidth|auto|notAuto|ajaxError|force|ss|size|dequeue|ajaxStop|400|max|border|Width|offsetWidth|absolute|10000|right|relative|clientHeight|clientWidth|option|send|1px|ajaxForm|th|oldOverlay|location|toString|protocol|only|innerText|visible|300|offsetY|htmlFor|class|cssFloat|zoom|9999|tagName|offsetHeight|setAttribute|ig|pageX|9_|offsetLeft|cos|PI|pageY|selectedIndex|loadIfModified|offsetTop|content|slice|textContent|cancelBubble|compatible|boxModel|compatMode|CSS1Compat|ActiveXObject|responseXML|prependTo|MSIE|insertAfter|top|Microsoft|Msxml2|color|background|title|href|_x|rel|getIfModified|ancestors|getJSON|post|children|removeAttr|removeAttribute|ajaxTimeout|addClass|removeClass|boolean|formdata|toggleClass|number|open|_y|Content|hover|fromElement|Type|toElement|relatedTarget|application|www|removeEventListener|blur|urlencoded|focus|resize|If|FORM|scroll|dblclick|Since|mousedown|mouseup|Thu|mousemove|01|change|Jan|keydown|keypress|1970|keyup|un|one|GMT|index|addEventListener|Requested|write|With|scr|ipt|defer|overrideMimeType|loaded|Connection|close|createTextNode|do|slideDown|slideUp|slideToggle|fadeIn|fadeOut|fadeTo|evaljs|prototype|slow|600|wrap|nextSibling|fast|pop|Boolean|TABLE|THEAD|initDone|splice|Top|setTimeout|Bottom|Right|Left|padding|abort|multiple'.split('|'),0,{}))
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 1801cb319e07bf4a70b8c8fd126fe4b76e6534c5..ceff95301b69d00956372367e4591a0a5aa96657 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -1688,9 +1688,9 @@ function env_to_attributs ($texte){
 // http://doc.spip.org/@f_jQuery
 function f_jQuery ($texte) {
 	if (!_request('jquery_debug'))
-		$js = "<script src=\""._DIR_JAVASCRIPT."jquery-1.0.1-forms.pack.js\" type=\"text/javascript\"></script>\n";
+		$js = "<script src=\""._DIR_JAVASCRIPT."jquery-1.0.2-forms.pack.js\" type=\"text/javascript\"></script>\n";
 	else
-		$js = "<script src=\""._DIR_JAVASCRIPT."jquery-1.0.1-forms.js\" type=\"text/javascript\"></script>\n";
+		$js = "<script src=\""._DIR_JAVASCRIPT."jquery-1.0.2-forms.js\" type=\"text/javascript\"></script>\n";
  	
  	return $js.$texte;
 }