;
/* AGGREGATED JS FILE: misc/jquery.js */
// $Id: jquery.js,v 1.6 2006/12/23 21:46:35 dries Exp $
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(1l 1x.6=="Q"){1x.Q=1x.Q;u 6=q(a,c){l(a&&1l a=="q"&&6.C.21&&!a.1G&&a[0]==Q)v 6(Y).21(a);a=a||Y;l(a.3n)v 6(6.1Q(a,[]));l(c&&c.3n)v 6(c).1X(a);l(1x==7)v 1m 6(a,c);l(1l a=="24"){u m=/^[^<]*(<.+>)[^>]*$/.3c(a);l(m)a=6.3F([m[1]])}7.2a(a.14==2o||a.D&&a!=1x&&!a.1G&&a[0]!=Q&&a[0].1G?6.1Q(a,[]):6.1X(a,c));u C=15[15.D-1];l(C&&1l C=="q")7.V(C);v 7};l(1l $!="Q")6.3W$=$;u $=6;6.C=6.8h={3n:"1.0.4",66:q(){v 7.D},1S:q(2R){v 2R==Q?6.1Q(7,[]):7[2R]},2a:q(64){7.D=0;[].1q.17(7,64);v 7},V:q(C,1h){v 6.V(7,C,1h)},8k:q(1j){u 2h=-1;7.V(q(i){l(7==1j)2h=i});v 2h},1r:q(1I,11,B){v 1I.14!=3X||11!=Q?7.V(q(){l(11==Q)J(u E 1z 1I)6.1r(B?7.1o:7,E,1I[E]);G 6.1r(B?7.1o:7,1I,11)}):6[B||"1r"](7[0],1I)},1a:q(1I,11){v 7.1r(1I,11,"3j")},2D:q(e){e=e||7;u t="";J(u j=0;j<e.D;j++){u r=e[j].2x;J(u i=0;i<r.D;i++)l(r[i].1G!=8)t+=r[i].1G!=1?r[i].56:6.C.2D([r[i]])}v t},1W:q(){u a=6.3F(15);v 7.V(q(){u b=a[0].3I(P);7.1i.2M(b,7);1V(b.26)b=b.26;b.49(7)})},5y:q(){v 7.2V(15,P,1,q(a){7.49(a)})},5z:q(){v 7.2V(15,P,-1,q(a){7.2M(a,7.26)})},5A:q(){v 7.2V(15,W,1,q(a){7.1i.2M(a,7)})},5C:q(){v 7.2V(15,W,-1,q(a){7.1i.2M(a,7.7L)})},4m:q(){l(!(7.2n&&7.2n.D))v 7;v 7.2a(7.2n.7W())},1X:q(t){v 7.2i(6.2C(7,q(a){v 6.1X(t,a)}),15)},4F:q(4E){v 7.2i(6.2C(7,q(a){v a.3I(4E!=Q?4E:P)}),15)},18:q(t){v 7.2i(t.14==2o&&6.2C(7,q(a){J(u i=0;i<t.D;i++)l(6.18(t[i],[a]).r.D)v a;v L})||t.14==8n&&(t?7.1S():[])||1l t=="q"&&6.2P(7,t)||6.18(t,7).r,15)},2q:q(t){v 7.2i(1l t=="24"?6.18(t,7,W).r:6.2P(7,q(a){v a!=t}),15)},29:q(t){v 7.2i(6.1Q(7,1l t=="24"?6.1X(t):t.14==2o?t:[t]),15)},4s:q(2z){v 2z?6.18(2z,7).r.D>0:W},2V:q(1h,23,2T,C){u 4F=7.66()>1;u a=6.3F(1h);v 7.V(q(){u 1j=7;l(23&&7.2t.2d()=="8p"&&a[0].2t.2d()!="8q"){u 25=7.51("25");l(!25.D){1j=Y.5Y("25");7.49(1j)}G 1j=25[0]}J(u i=(2T<0?a.D-1:0);i!=(2T<0?2T:a.D);i+=2T){C.17(1j,[4F?a[i].3I(P):a[i]])}})},2i:q(a,1h){u C=1h&&1h[1h.D-1];u 2m=1h&&1h[1h.D-2];l(C&&C.14!=1A)C=L;l(2m&&2m.14!=1A)2m=L;l(!C){l(!7.2n)7.2n=[];7.2n.1q(7.1S());7.2a(a)}G{u 20=7.1S();7.2a(a);l(2m&&a.D||!2m)7.V(2m||C).2a(20);G 7.2a(20).V(C)}v 7}};6.1y=6.C.1y=q(){u 1T=15[0],a=1;l(15.D==1){1T=7;a=0}u E;1V(E=15[a++])J(u i 1z E)1T[i]=E[i];v 1T};6.1y({5R:q(){6.68=P;6.V(6.2c.5J,q(i,n){6.C[i]=q(a){u R=6.2C(7,n);l(a&&1l a=="24")R=6.18(a,R).r;v 7.2i(R,15)}});6.V(6.2c.2w,q(i,n){6.C[i]=q(){u a=15;v 7.V(q(){J(u j=0;j<a.D;j++)6(a[j])[n](7)})}});6.V(6.2c.V,q(i,n){6.C[i]=q(){v 7.V(n,15)}});6.V(6.2c.18,q(i,n){6.C[n]=q(2R,C){v 7.18(":"+n+"("+2R+")",C)}});6.V(6.2c.1r,q(i,n){n=n||i;6.C[i]=q(h){v h==Q?7.D?7[0][n]:L:7.1r(n,h)}});6.V(6.2c.1a,q(i,n){6.C[n]=q(h){v h==Q?(7.D?6.1a(7[0],n):L):7.1a(n,h)}})},V:q(1j,C,1h){l(1j.D==Q)J(u i 1z 1j)C.17(1j[i],1h||[i,1j[i]]);G J(u i=0;i<1j.D;i++)l(C.17(1j[i],1h||[i,1j[i]])===W)3Y;v 1j},1e:{29:q(o,c){l(6.1e.3k(o,c))v;o.1e+=(o.1e?" ":"")+c},28:q(o,c){l(!c){o.1e=""}G{u 2N=o.1e.3B(" ");J(u i=0;i<2N.D;i++){l(2N[i]==c){2N.69(i,1);3Y}}o.1e=2N.4N(\' \')}},3k:q(e,a){l(e.1e!=Q)e=e.1e;v 1m 3V("(^|\\\\s)"+a+"(\\\\s|$)").1U(e)}},3O:q(e,o,f){J(u i 1z o){e.1o["20"+i]=e.1o[i];e.1o[i]=o[i]}f.17(e,[]);J(u i 1z o)e.1o[i]=e.1o["20"+i]},1a:q(e,p){l(p=="27"||p=="3J"){u 20={},3G,36,d=["6a","6p","6q","6j"];J(u i=0;i<d.D;i++){20["6e"+d[i]]=0;20["6c"+d[i]+"6h"]=0}6.3O(e,20,q(){l(6.1a(e,"1b")!="1O"){3G=e.78;36=e.6k}G{e=6(e.3I(P)).1X(":4n").5N("2U").4m().1a({4p:"1Y",2W:"6l",1b:"2r",8t:"0",5D:"0"}).5x(e.1i)[0];u 2I=6.1a(e.1i,"2W");l(2I==""||2I=="3M")e.1i.1o.2W="8s";3G=e.6n;36=e.6o;l(2I==""||2I=="3M")e.1i.1o.2W="3M";e.1i.3v(e)}});v p=="27"?3G:36}v 6.3j(e,p)},3j:q(I,E,4L){u R;l(E==\'1g\'&&6.T.1n)v 6.1r(I.1o,\'1g\');l(E=="3y"||E=="2B")E=6.T.1n?"3b":"2B";l(!4L&&I.1o[E]){R=I.1o[E]}G l(Y.3H&&Y.3H.3P){l(E=="2B"||E=="3b")E="3y";E=E.1E(/([A-Z])/g,"-$1").4A();u 1c=Y.3H.3P(I,L);l(1c)R=1c.4O(E);G l(E==\'1b\')R=\'1O\';G 6.3O(I,{1b:\'2r\'},q(){u c=Y.3H.3P(7,\'\');R=c&&c.4O(E)||\'\'})}G l(I.4w){u 4Q=E.1E(/\\-(\\w)/g,q(m,c){v c.2d()});R=I.4w[E]||I.4w[4Q]}v R},3F:q(a){u r=[];J(u i=0;i<a.D;i++){u 1C=a[i];l(1l 1C=="24"){u s=6.2Q(1C),2b=Y.5Y("2b"),1W=[0,"",""];l(!s.1f("<89"))1W=[1,"<3E>","</3E>"];G l(!s.1f("<6t")||!s.1f("<25"))1W=[1,"<23>","</23>"];G l(!s.1f("<3Q"))1W=[2,"<23>","</23>"];G l(!s.1f("<6v")||!s.1f("<6w"))1W=[3,"<23><25><3Q>","</3Q></25></23>"];2b.31=1W[1]+s+1W[2];1V(1W[0]--)2b=2b.26;1C=2b.2x}l(1C.D!=Q&&((6.T.2l&&1l 1C==\'q\')||!1C.1G))J(u n=0;n<1C.D;n++)r.1q(1C[n]);G r.1q(1C.1G?1C:Y.81(1C.7Z()))}v r},2z:{"":"m[2]== \'*\'||a.2t.2d()==m[2].2d()","#":"a.48(\'35\')&&a.48(\'35\')==m[2]",":":{5G:"i<m[3]-0",5H:"i>m[3]-0",5V:"m[3]-0==i",5F:"m[3]-0==i",2j:"i==0",1R:"i==r.D-1",5f:"i%2==0",5g:"i%2","5V-3z":"6.1B(a,m[3]).1c","2j-3z":"6.1B(a,0).1c","1R-3z":"6.1B(a,0).1R","6A-3z":"6.1B(a).D==1",5L:"a.2x.D",5P:"!a.2x.D",5I:"6.C.2D.17([a]).1f(m[3])>=0",6C:"a.B!=\'1Y\'&&6.1a(a,\'1b\')!=\'1O\'&&6.1a(a,\'4p\')!=\'1Y\'",1Y:"a.B==\'1Y\'||6.1a(a,\'1b\')==\'1O\'||6.1a(a,\'4p\')==\'1Y\'",6D:"!a.2O",2O:"a.2O",2U:"a.2U",4o:"a.4o || 6.1r(a, \'4o\')",2D:"a.B==\'2D\'",4n:"a.B==\'4n\'",5T:"a.B==\'5T\'",4G:"a.B==\'4G\'",5W:"a.B==\'5W\'",4x:"a.B==\'4x\'",4V:"a.B==\'4V\'",4v:"a.B==\'4v\'",4j:"a.B==\'4j\'",4W:"/4W|3E|6H|4j/i.1U(a.2t)"},".":"6.1e.3k(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z && !z.1f(m[4])","$=":"z && z.2Z(z.D - m[4].D,m[4].D)==m[4]","*=":"z && z.1f(m[4])>=0","":"z"},"[":"6.1X(m[2],a).D"},3u:["\\\\.\\\\.|/\\\\.\\\\.","a.1i",">|/","6.1B(a.26)","\\\\+","6.1B(a).3s","~",q(a){u s=6.1B(a);v s.n>=0?s.5o(s.n+1):[]}],1X:q(t,1u){l(1u&&1u.1G==Q)1u=L;1u=1u||Y;l(t.14!=3X)v[t];l(!t.1f("//")){1u=1u.47;t=t.2Z(2,t.D)}G l(!t.1f("/")){1u=1u.47;t=t.2Z(1,t.D);l(t.1f("/")>=1)t=t.2Z(t.1f("/"),t.D)}u R=[1u];u 1N=[];u 1R=L;1V(t.D>0&&1R!=t){u r=[];1R=t;t=6.2Q(t).1E(/^\\/\\//i,"");u 3t=W;J(u i=0;i<6.3u.D;i+=2){l(3t)5e;u 2p=1m 3V("^("+6.3u[i]+")");u m=2p.3c(t);l(m){r=R=6.2C(R,6.3u[i+1]);t=6.2Q(t.1E(2p,""));3t=P}}l(!3t){l(!t.1f(",")||!t.1f("|")){l(R[0]==1u)R.3S();1N=6.1Q(1N,R);r=R=[1u];t=" "+t.2Z(1,t.D)}G{u 4H=/^([#.]?)([a-5c-9\\\\*3W-]*)/i;u m=4H.3c(t);l(m[1]=="#"){u 3R=Y.5b(m[2]);r=R=3R?[3R]:[];t=t.1E(4H,"")}G{l(!m[2]||m[1]==".")m[2]="*";J(u i=0;i<R.D;i++)r=6.1Q(r,m[2]=="*"?6.4k(R[i]):R[i].51(m[2]))}}}l(t){u 1K=6.18(t,r);R=r=1K.r;t=6.2Q(1K.t)}}l(R&&R[0]==1u)R.3S();1N=6.1Q(1N,R);v 1N},4k:q(o,r){r=r||[];u s=o.2x;J(u i=0;i<s.D;i++)l(s[i].1G==1){r.1q(s[i]);6.4k(s[i],r)}v r},1r:q(I,19,11){u 2e={"J":"6L","6N":"1e","3y":6.T.1n?"3b":"2B",2B:6.T.1n?"3b":"2B",31:"31",1e:"1e",11:"11",2O:"2O",2U:"2U",6P:"7t"};l(19=="1g"&&6.T.1n&&11!=Q){I[\'6Q\']=1;l(11==1)v I["18"]=I["18"].1E(/3o\\([^\\)]*\\)/54,"");G v I["18"]=I["18"].1E(/3o\\([^\\)]*\\)/54,"")+"3o(1g="+11*55+")"}G l(19=="1g"&&6.T.1n){v I["18"]?3T(I["18"].6S(/3o\\(1g=(.*)\\)/)[1])/55:1}l(19=="1g"&&6.T.33&&11==1)11=0.6U;l(2e[19]){l(11!=Q)I[2e[19]]=11;v I[2e[19]]}G l(11==Q&&6.T.1n&&I.2t&&I.2t.2d()==\'7l\'&&(19==\'7k\'||19==\'6X\')){v I.6Y(19).56}G l(I.6Z){l(11!=Q)I.7f(19,11);v I.48(19)}G{19=19.1E(/-([a-z])/71,q(z,b){v b.2d()});l(11!=Q)I[19]=11;v I[19]}},58:["\\\\[ *(@)S *([!*$^=]*) *(\'?\\"?)(.*?)\\\\4 *\\\\]","(\\\\[)\\s*(.*?)\\s*\\\\]","(:)S\\\\(\\"?\'?([^\\\\)]*?)\\"?\'?\\\\)","([:.#]*)S"],18:q(t,r,2q){u g=2q!==W?6.2P:q(a,f){v 6.2P(a,f,P)};1V(t&&/^[a-z[({<*:.#]/i.1U(t)){u p=6.58;J(u i=0;i<p.D;i++){u 2p=1m 3V("^"+p[i].1E("S","([a-z*3W-][a-5c-73-]*)"),"i");u m=2p.3c(t);l(m){l(!i)m=["",m[1],m[3],m[2],m[5]];t=t.1E(2p,"");3Y}}l(m[1]==":"&&m[2]=="2q")r=6.18(m[3],r,W).r;G{u f=6.2z[m[1]];l(f.14!=3X)f=6.2z[m[1]][m[2]];4c("f = q(a,i){"+(m[1]=="@"?"z=6.1r(a,m[3]);":"")+"v "+f+"}");r=g(r,f)}}v{r:r,t:t}},2Q:q(t){v t.1E(/^\\s+|\\s+$/g,"")},3q:q(I){u 3Z=[];u 1c=I.1i;1V(1c&&1c!=Y){3Z.1q(1c);1c=1c.1i}v 3Z},1B:q(I,2h,2q){u 12=[];l(I){u 2g=I.1i.2x;J(u i=0;i<2g.D;i++){l(2q===P&&2g[i]==I)5e;l(2g[i].1G==1)12.1q(2g[i]);l(2g[i]==I)12.n=12.D-1}}v 6.1y(12,{1R:12.n==12.D-1,1c:2h=="5f"&&12.n%2==0||2h=="5g"&&12.n%2||12[2h]==I,4h:12[12.n-1],3s:12[12.n+1]})},1Q:q(2j,3a){u 1D=[];J(u k=0;k<2j.D;k++)1D[k]=2j[k];J(u i=0;i<3a.D;i++){u 40=P;J(u j=0;j<2j.D;j++)l(3a[i]==2j[j])40=W;l(40)1D.1q(3a[i])}v 1D},2P:q(12,C,42){l(1l C=="24")C=1m 1A("a","i","v "+C);u 1D=[];J(u i=0;i<12.D;i++)l(!42&&C(12[i],i)||42&&!C(12[i],i))1D.1q(12[i]);v 1D},2C:q(12,C){l(1l C=="24")C=1m 1A("a","v "+C);u 1D=[];J(u i=0;i<12.D;i++){u 1K=C(12[i],i);l(1K!==L&&1K!=Q){l(1K.14!=2o)1K=[1K];1D=6.1Q(1D,1K)}}v 1D},F:{29:q(O,B,1L){l(6.T.1n&&O.4d!=Q)O=1x;l(!1L.2s)1L.2s=7.2s++;l(!O.1H)O.1H={};u 2L=O.1H[B];l(!2L){2L=O.1H[B]={};l(O["2K"+B])2L[0]=O["2K"+B]}2L[1L.2s]=1L;O["2K"+B]=7.5n;l(!7.1k[B])7.1k[B]=[];7.1k[B].1q(O)},2s:1,1k:{},28:q(O,B,1L){l(O.1H)l(B&&O.1H[B])l(1L)5m O.1H[B][1L.2s];G J(u i 1z O.1H[B])5m O.1H[B][i];G J(u j 1z O.1H)7.28(O,j)},1J:q(B,H,O){H=$.1Q([],H||[]);l(!O){u g=7.1k[B];l(g)J(u i=0;i<g.D;i++)7.1J(B,H,g[i])}G l(O["2K"+B]){H.5p(7.2e({B:B,1T:O}));O["2K"+B].17(O,H)}},5n:q(F){l(1l 6=="Q")v W;F=6.F.2e(F||1x.F||{});l(!F)v W;u 3r=P;u c=7.1H[F.B];u 1h=[].5o.5a(15,1);1h.5p(F);J(u j 1z c){l(c[j].17(7,1h)===W){F.32();F.3i();3r=W}}l(6.T.1n)F.1T=F.32=F.3i=L;v 3r},2e:q(F){l(6.T.1n){l(F.5r)F.1T=F.5r;u e=Y.47,b=Y.7a;F.7c=F.7d+(e.5s||b.5s);F.7e=F.7g+(e.5t||b.5t)}G l(6.T.2l&&F.1T.1G==3){F=6.1y({},F);F.1T=F.1T.1i}l(!F.32)F.32=q(){7.3r=W};l(!F.3i)F.3i=q(){7.7h=P};v F}}});1m q(){u b=7i.7j.4A();6.T={2l:/5v/.1U(b),30:/30/.1U(b),1n:/1n/.1U(b)&&!/30/.1U(b),33:/33/.1U(b)&&!/(7m|5v)/.1U(b)};6.7n=!6.T.1n||Y.7o=="7p"};6.2c={2w:{5x:"5y",7q:"5z",2M:"5A",7s:"5C"},1a:"3J,27,7u,5D,2W,3y,43,7x,7y".3B(","),18:["5F","5G","5H","5I"],1r:{1K:"11",3D:"31",35:L,7z:L,19:L,7A:L,3w:L,7C:L},5J:{5L:"a.1i",7D:6.3q,3q:6.3q,3s:"6.1B(a).3s",4h:"6.1B(a).4h",2g:"6.1B(a, L, P)",7E:"6.1B(a.26)"},V:{5N:q(1I){6.1r(7,1I,"");7.7F(1I)},1s:q(){7.1o.1b=7.2G?7.2G:"";l(6.1a(7,"1b")=="1O")7.1o.1b="2r"},1p:q(){7.2G=7.2G||6.1a(7,"1b");l(7.2G=="1O")7.2G="2r";7.1o.1b="1O"},3h:q(){6(7)[6(7).4s(":1Y")?"1s":"1p"].17(6(7),15)},7H:q(c){6.1e.29(7,c)},7I:q(c){6.1e.28(7,c)},7J:q(c){6.1e[6.1e.3k(7,c)?"28":"29"](7,c)},28:q(a){l(!a||6.18(a,[7]).r)7.1i.3v(7)},5P:q(){1V(7.26)7.3v(7.26)},34:q(B,C){6.F.29(7,B,C)},4B:q(B,C){6.F.28(7,B,C)},1J:q(B,H){6.F.1J(B,H,7)}}};6.5R();6.C.1y({5S:6.C.3h,3h:q(a,b){v a&&b&&a.14==1A&&b.14==1A?7.5X(q(e){7.1R=7.1R==a?b:a;e.32();v 7.1R.17(7,[e])||W}):7.5S.17(7,15)},7M:q(f,g){q 4r(e){u p=(e.B=="39"?e.7N:e.7Q)||e.7R;1V(p&&p!=7)37{p=p.1i}3e(e){p=7};l(p==7)v W;v(e.B=="39"?f:g).17(7,[e])}v 7.39(4r).60(4r)},21:q(f){l(6.3d)f.17(Y);G{6.2y.1q(f)}v 7}});6.1y({3d:W,2y:[],21:q(){l(!6.3d){6.3d=P;l(6.2y){J(u i=0;i<6.2y.D;i++)6.2y[i].17(Y);6.2y=L}l(6.T.33||6.T.30)Y.7U("65",6.21,W)}}});1m q(){u e=("7V,7X,2Y,7Y,80,4D,5X,82,"+"83,84,85,39,60,86,4v,3E,"+"4x,8a,8b,8d,2E").3B(",");J(u i=0;i<e.D;i++)1m q(){u o=e[i];6.C[o]=q(f){v f?7.34(o,f):7.1J(o)};6.C["8e"+o]=q(f){v 7.4B(o,f)};6.C["8g"+o]=q(f){u O=6(7);u 1L=q(){O.4B(o,1L);O=L;v f.17(7,15)};v 7.34(o,1L)}};l(6.T.33||6.T.30){Y.8l("65",6.21,W)}G l(6.T.1n){Y.8o("<8r"+"8u 35=59 8v=P "+"3w=//:><\\/1Z>");u 1Z=Y.5b("59");l(1Z)1Z.2H=q(){l(7.38!="1t")v;7.1i.3v(7);6.21()};1Z=L}G l(6.T.2l){6.3L=4d(q(){l(Y.38=="6d"||Y.38=="1t"){5j(6.3L);6.3L=L;6.21()}},10)}6.F.29(1x,"2Y",6.21)};l(6.T.1n)6(1x).4D(q(){u F=6.F,1k=F.1k;J(u B 1z 1k){u 3N=1k[B],i=3N.D;l(i>0)6m l(B!=\'4D\')F.28(3N[i-1],B);1V(--i)}});6.C.1y({4M:6.C.1s,1s:q(16,K){v 16?7.22({27:"1s",3J:"1s",1g:"1s"},16,K):7.4M()},4P:6.C.1p,1p:q(16,K){v 16?7.22({27:"1p",3J:"1p",1g:"1p"},16,K):7.4P()},6r:q(16,K){v 7.22({27:"1s"},16,K)},6s:q(16,K){v 7.22({27:"1p"},16,K)},6u:q(16,K){v 7.V(q(){u 4T=6(7).4s(":1Y")?"1s":"1p";6(7).22({27:4T},16,K)})},6x:q(16,K){v 7.22({1g:"1s"},16,K)},6y:q(16,K){v 7.22({1g:"1p"},16,K)},6B:q(16,2w,K){v 7.22({1g:2w},16,K)},22:q(E,16,K){v 7.1w(q(){7.2S=6.1y({},E);J(u p 1z E){u e=1m 6.2X(7,6.16(16,K),p);l(E[p].14==4Y)e.2v(e.1c(),E[p]);G e[E[p]](E)}})},1w:q(B,C){l(!C){C=B;B="2X"}v 7.V(q(){l(!7.1w)7.1w={};l(!7.1w[B])7.1w[B]=[];7.1w[B].1q(C);l(7.1w[B].D==1)C.17(7)})}});6.1y({16:q(s,o){o=o||{};l(o.14==1A)o={1t:o};u 4Z={6E:6G,6I:4I};o.2J=(s&&s.14==4Y?s:4Z[s])||53;o.3x=o.1t;o.1t=q(){6.52(7,"2X");l(o.3x&&o.3x.14==1A)o.3x.17(7)};v o},1w:{},52:q(I,B){B=B||"2X";l(I.1w&&I.1w[B]){I.1w[B].3S();u f=I.1w[B][0];l(f)f.17(I)}},2X:q(I,2A,E){u z=7;z.o={2J:2A.2J||53,1t:2A.1t,2u:2A.2u};z.U=I;u y=z.U.1o;u 44=6.1a(z.U,\'1b\');y.1b="2r";y.43="1Y";z.a=q(){l(2A.2u)2A.2u.17(I,[z.2f]);l(E=="1g")6.1r(y,"1g",z.2f);G l(5w(z.2f))y[E]=5w(z.2f)+"6V"};z.57=q(){v 3T(6.1a(z.U,E))};z.1c=q(){u r=3T(6.3j(z.U,E));v r&&r>-70?r:z.57()};z.2v=q(4C,2w){z.4e=(1m 5h()).5i();z.2f=4C;z.a();z.41=4d(q(){z.2u(4C,2w)},13)};z.1s=q(){l(!z.U.1v)z.U.1v={};z.U.1v[E]=7.1c();z.o.1s=P;z.2v(0,z.U.1v[E]);l(E!="1g")y[E]="5d"};z.1p=q(){l(!z.U.1v)z.U.1v={};z.U.1v[E]=7.1c();z.o.1p=P;z.2v(z.U.1v[E],0)};z.3h=q(){l(!z.U.1v)z.U.1v={};z.U.1v[E]=7.1c();l(44==\'1O\'){z.o.1s=P;l(E!="1g")y[E]="5d";z.2v(0,z.U.1v[E])}G{z.o.1p=P;z.2v(z.U.1v[E],0)}};z.2u=q(4l,4f){u t=(1m 5h()).5i();l(t>z.o.2J+z.4e){5j(z.41);z.41=L;z.2f=4f;z.a();z.U.2S[E]=P;u 1N=P;J(u i 1z z.U.2S)l(z.U.2S[i]!==P)1N=W;l(1N){y.43=\'\';y.1b=44;l(6.1a(z.U,\'1b\')==\'1O\')y.1b=\'2r\';l(z.o.1p)y.1b=\'1O\';l(z.o.1p||z.o.1s)J(u p 1z z.U.2S)l(p=="1g")6.1r(y,p,z.U.1v[p]);G y[p]=\'\'}l(1N&&z.o.1t&&z.o.1t.14==1A)z.o.1t.17(z.U)}G{u p=(t-7.4e)/z.o.2J;z.2f=((-5B.7r(p*5B.7v)/2)+0.5)*(4f-4l)+4l;z.a()}}}});6.C.1y({7B:q(N,1P,K){7.2Y(N,1P,K,1)},2Y:q(N,1P,K,1F){l(N.14==1A)v 7.34("2Y",N);K=K||q(){};u B="67";l(1P){l(1P.14==1A){K=1P;1P=L}G{1P=6.3g(1P);B="62"}}u 4i=7;6.3C({N:N,B:B,H:1P,1F:1F,1t:q(2F,1d){l(1d=="2k"||!1F&&1d=="5u"){4i.3D(2F.3p).4y().V(K,[2F.3p,1d,2F])}G K.17(4i,[2F.3p,1d,2F])}});v 7},7G:q(){v 6.3g(7)},4y:q(){v 7.1X(\'1Z\').V(q(){l(7.3w)6.61(7.3w);G{6.4u(7.2D||7.7K||7.31||"")}}).4m()}});l(6.T.1n&&1l 3f=="Q")3f=q(){v 1m 7O("7S.7T")};1m q(){u e="4S,5O,5M,5K,5E,5q".3B(",");J(u i=0;i<e.D;i++)1m q(){u o=e[i];6.C[o]=q(f){v 7.34(o,f)}}};6.1y({1S:q(N,H,K,B,1F){l(H&&H.14==1A){K=H;H=L}6.3C({N:N,H:H,2k:K,3K:B,1F:1F})},87:q(N,H,K,B){6.1S(N,H,K,B,1)},61:q(N,K){l(K)6.1S(N,L,K,"1Z");G{6.1S(N,L,L,"1Z")}},8c:q(N,H,K){6.1S(N,H,K,"5Q")},8f:q(N,H,K,B){6.3C({B:"62",N:N,H:H,2k:K,3K:B})},1M:0,8i:q(1M){6.1M=1M},3A:{},3C:q(s){s=6.1y({1k:P,1F:W,B:"67",1M:6.1M,1t:L,2k:L,2E:L,3K:L,N:L,H:L,50:"8w/x-6b-6f-6i",4J:P,4U:P,46:L},s);l(s.H){l(s.4J&&1l s.H!=\'24\')s.H=6.3g(s.H);l(s.B.4A()=="1S")s.N+=((s.N.1f("?")>-1)?"&":"?")+s.H}l(s.1k&&!6.4z++)6.F.1J("4S");u 4q=W;u M=1m 3f();M.6z(s.B,s.N,s.4U);l(s.H)M.3l("6F-6J",s.50);l(s.1F)M.3l("6K-4t-6M",6.3A[s.N]||"6O, 6R 6T 6W 3U:3U:3U 72");M.3l("X-74-75","3f");l(M.76)M.3l("77","79");l(s.46)s.46(M);l(s.1k)6.F.1J("5q",[M,s]);u 2H=q(4b){l(M&&(M.38==4||4b=="1M")){4q=P;u 1d=6.63(M)&&4b!="1M"?s.1F&&6.4K(M,s.N)?"5u":"2k":"2E";l(1d!="2E"){u 3m;37{3m=M.45("4R-4t")}3e(e){}l(s.1F&&3m)6.3A[s.N]=3m;u H=6.5k(M,s.3K);l(s.2k)s.2k(H,1d);l(s.1k)6.F.1J("5E",[M,s])}G{l(s.2E)s.2E(M,1d);l(s.1k)6.F.1J("5K",[M,s])}l(s.1k)6.F.1J("5M",[M,s]);l(s.1k&&!--6.4z)6.F.1J("5O");l(s.1t)s.1t(M,1d);M.2H=q(){};M=L}};M.2H=2H;l(s.1M>0)5Z(q(){l(M){M.7P();l(!4q)2H("1M");M=L}},s.1M);M.88(s.H);v M},4z:0,63:q(r){37{v!r.1d&&8j.8m=="4G:"||(r.1d>=4I&&r.1d<6g)||r.1d==5U||6.T.2l&&r.1d==Q}3e(e){}v W},4K:q(M,N){37{u 4X=M.45("4R-4t");v M.1d==5U||4X==6.3A[N]||6.T.2l&&M.1d==Q}3e(e){}v W},5k:q(r,B){u 4a=r.45("7b-B");u H=!B&&4a&&4a.1f("M")>=0;H=B=="M"||H?r.7w:r.3p;l(B=="1Z"){6.4u(H)}l(B=="5Q")4c("H = "+H);l(B=="3D")6("<2b>").3D(H).4y();v H},3g:q(a){u s=[];l(a.14==2o||a.3n){J(u i=0;i<a.D;i++)s.1q(a[i].19+"="+4g(a[i].11))}G{J(u j 1z a){l(a[j].14==2o){J(u k=0;k<a[j].D;k++){s.1q(j+"="+4g(a[j][k]))}}G{s.1q(j+"="+4g(a[j]))}}}v s.4N("&")},4u:q(H){l(1x.5l)1x.5l(H);G l(6.T.2l)1x.5Z(H,0);G 4c.5a(1x,H)}})}',62,529,'||||||jQuery|this||||||||||||||if|||||function||||var|return||||||type|fn|length|prop|event|else|data|elem|for|callback|null|xml|url|element|true|undefined|ret||browser|el|each|false||document|||value|elems||constructor|arguments|speed|apply|filter|name|css|display|cur|status|className|indexOf|opacity|args|parentNode|obj|global|typeof|new|msie|style|hide|push|attr|show|complete|context|orig|queue|window|extend|in|Function|sibling|arg|result|replace|ifModified|nodeType|events|key|trigger|val|handler|timeout|done|none|params|merge|last|get|target|test|while|wrap|find|hidden|script|old|ready|animate|table|string|tbody|firstChild|height|remove|add|set|div|macros|toUpperCase|fix|now|siblings|pos|pushStack|first|success|safari|fn2|stack|Array|re|not|block|guid|nodeName|step|custom|to|childNodes|readyList|expr|options|cssFloat|map|text|error|res|oldblock|onreadystatechange|parPos|duration|on|handlers|insertBefore|classes|disabled|grep|trim|num|curAnim|dir|checked|domManip|position|fx|load|substr|opera|innerHTML|preventDefault|mozilla|bind|id|oWidth|try|readyState|mouseover|second|styleFloat|exec|isReady|catch|XMLHttpRequest|param|toggle|stopPropagation|curCSS|has|setRequestHeader|modRes|jquery|alpha|responseText|parents|returnValue|next|foundToken|token|removeChild|src|oldComplete|float|child|lastModified|split|ajax|html|select|clean|oHeight|defaultView|cloneNode|width|dataType|safariTimer|static|els|swap|getComputedStyle|tr|oid|shift|parseFloat|00|RegExp|_|String|break|matched|noCollision|timer|inv|overflow|oldDisplay|getResponseHeader|beforeSend|documentElement|getAttribute|appendChild|ct|isTimeout|eval|setInterval|startTime|lastNum|encodeURIComponent|prev|self|button|getAll|firstNum|end|radio|selected|visibility|requestDone|handleHover|is|Modified|globalEval|reset|currentStyle|submit|evalScripts|active|toLowerCase|unbind|from|unload|deep|clone|file|re2|200|processData|httpNotModified|force|_show|join|getPropertyValue|_hide|newProp|Last|ajaxStart|state|async|image|input|xmlRes|Number|ss|contentType|getElementsByTagName|dequeue|400|gi|100|nodeValue|max|parse|__ie_init|call|getElementById|z0|1px|continue|even|odd|Date|getTime|clearInterval|httpData|execScript|delete|handle|slice|unshift|ajaxSend|srcElement|scrollLeft|scrollTop|notmodified|webkit|parseInt|appendTo|append|prepend|before|Math|after|left|ajaxSuccess|eq|lt|gt|contains|axis|ajaxError|parent|ajaxComplete|removeAttr|ajaxStop|empty|json|init|_toggle|checkbox|304|nth|password|click|createElement|setTimeout|mouseout|getScript|POST|httpSuccess|array|DOMContentLoaded|size|GET|initDone|splice|Top|www|border|loaded|padding|form|300|Width|urlencoded|Left|offsetWidth|absolute|do|clientHeight|clientWidth|Bottom|Right|slideDown|slideUp|thead|slideToggle|td|th|fadeIn|fadeOut|open|only|fadeTo|visible|enabled|slow|Content|600|textarea|fast|Type|If|htmlFor|Since|class|Thu|readonly|zoom|01|match|Jan|9999|px|1970|method|getAttributeNode|tagName|10000|ig|GMT|9_|Requested|With|overrideMimeType|Connection|offsetHeight|close|body|content|pageX|clientX|pageY|setAttribute|clientY|cancelBubble|navigator|userAgent|action|FORM|compatible|boxModel|compatMode|CSS1Compat|prependTo|cos|insertAfter|readOnly|top|PI|responseXML|color|background|title|href|loadIfModified|rel|ancestors|children|removeAttribute|serialize|addClass|removeClass|toggleClass|textContent|nextSibling|hover|fromElement|ActiveXObject|abort|toElement|relatedTarget|Microsoft|XMLHTTP|removeEventListener|blur|pop|focus|resize|toString|scroll|createTextNode|dblclick|mousedown|mouseup|mousemove|change|getIfModified|send|opt|keydown|keypress|getJSON|keyup|un|post|one|prototype|ajaxTimeout|location|index|addEventListener|protocol|Boolean|write|TABLE|THEAD|scr|relative|right|ipt|defer|application'.split('|'),0,{}))

;
/* AGGREGATED JS FILE: misc/drupal.js */
// $Id: drupal.js,v 1.29.2.1 2007/07/15 23:07:06 drumm Exp $

var Drupal = Drupal || {};

/**
 * Set the variable that indicates if JavaScript behaviors should be applied
 */
Drupal.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;

/**
 * Extends the current object with the parameter. Works recursively.
 */
Drupal.extend = function(obj) {
  for (var i in obj) {
    if (this[i]) {
      Drupal.extend.apply(this[i], [obj[i]]);
    }
    else {
      this[i] = obj[i];
    }
  }
};

/**
 * Redirects a button's form submission to a hidden iframe and displays the result
 * in a given wrapper. The iframe should contain a call to
 * window.parent.iframeHandler() after submission.
 */
Drupal.redirectFormButton = function (uri, button, handler) {
  // Trap the button
  button.onmouseover = button.onfocus = function() {
    button.onclick = function() {
      // Create target iframe
      Drupal.createIframe();

      // Prepare variables for use in anonymous function.
      var button = this;
      var action = button.form.action;
      var target = button.form.target;

      // Redirect form submission to iframe
      this.form.action = uri;
      this.form.target = 'redirect-target';

      handler.onsubmit();

      // Set iframe handler for later
      window.iframeHandler = function () {
        var iframe = $('#redirect-target').get(0);
        // Restore form submission
        button.form.action = action;
        button.form.target = target;

        // Get response from iframe body
        try {
          response = (iframe.contentWindow || iframe.contentDocument || iframe).document.body.innerHTML;
          // Firefox 1.0.x hack: Remove (corrupted) control characters
          response = response.replace(/[\f\n\r\t]/g, ' ');
          if (window.opera) {
            // Opera-hack: it returns innerHTML sanitized.
            response = response.replace(/&quot;/g, '"');
          }
        }
        catch (e) {
          response = null;
        }

        response = Drupal.parseJson(response);
        // Check response code
        if (response.status == 0) {
          handler.onerror(response.data);
          return;
        }
        handler.oncomplete(response.data);

        return true;
      }

      return true;
    }
  }
  button.onmouseout = button.onblur = function() {
    button.onclick = null;
  }
};

/**
 * Retrieves the absolute position of an element on the screen
 */
Drupal.absolutePosition = function (el) {
  var sLeft = 0, sTop = 0;
  var isDiv = /^div$/i.test(el.tagName);
  if (isDiv && el.scrollLeft) {
    sLeft = el.scrollLeft;
  }
  if (isDiv && el.scrollTop) {
    sTop = el.scrollTop;
  }
  var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop };
  if (el.offsetParent) {
    var tmp = Drupal.absolutePosition(el.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

/**
 * Return the dimensions of an element on the screen
 */
Drupal.dimensions = function (el) {
  return { width: el.offsetWidth, height: el.offsetHeight };
};

/**
 *  Returns the position of the mouse cursor based on the event object passed
 */
Drupal.mousePosition = function(e) {
  return { x: e.clientX + document.documentElement.scrollLeft, y: e.clientY + document.documentElement.scrollTop };
};

/**
 * Parse a JSON response.
 *
 * The result is either the JSON object, or an object with 'status' 0 and 'data' an error message.
 */
Drupal.parseJson = function (data) {
  if ((data.substring(0, 1) != '{') && (data.substring(0, 1) != '[')) {
    return { status: 0, data: data.length ? data : 'Unspecified error' };
  }
  return eval('(' + data + ');');
};

/**
 * Create an invisible iframe for form submissions.
 */
Drupal.createIframe = function () {
  if ($('#redirect-holder').size()) {
    return;
  }
  // Note: some browsers require the literal name/id attributes on the tag,
  // some want them set through JS. We do both.
  window.iframeHandler = function () {};
  var div = document.createElement('div');
  div.id = 'redirect-holder';
  $(div).html('<iframe name="redirect-target" id="redirect-target" class="redirect" onload="window.iframeHandler();"></iframe>');
  var iframe = div.firstChild;
  $(iframe)
    .attr({
      name: 'redirect-target',
      id: 'redirect-target'
    })
    .css({
      position: 'absolute',
      height: '1px',
      width: '1px',
      visibility: 'hidden'
    });
  $('body').append(div);
};

/**
 * Delete the invisible iframe
 */
Drupal.deleteIframe = function () {
  $('#redirect-holder').remove();
};

/**
 * Freeze the current body height (as minimum height). Used to prevent
 * unnecessary upwards scrolling when doing DOM manipulations.
 */
Drupal.freezeHeight = function () {
  Drupal.unfreezeHeight();
  var div = document.createElement('div');
  $(div).css({
    position: 'absolute',
    top: '0px',
    left: '0px',
    width: '1px',
    height: $('body').css('height')
  }).attr('id', 'freeze-height');
  $('body').append(div);
};

/**
 * Unfreeze the body height
 */
Drupal.unfreezeHeight = function () {
  $('#freeze-height').remove();
};

/**
 * Wrapper to address the mod_rewrite url encoding bug
 * (equivalent of drupal_urlencode() in PHP).
 */
Drupal.encodeURIComponent = function (item, uri) {
  uri = uri || location.href;
  item = encodeURIComponent(item).replace(/%2F/g, '/');
  return (uri.indexOf('?q=') != -1) ? item : item.replace(/%26/g, '%2526').replace(/%23/g, '%2523').replace(/\/\//g, '/%252F');
};

// Global Killswitch on the <html> element
if (Drupal.jsEnabled) {
  document.documentElement.className = 'js';
}

;
/* AGGREGATED JS FILE: misc/textarea.js */
// $Id: textarea.js,v 1.11.2.1 2007/04/18 02:41:19 drumm Exp $

Drupal.textareaAttach = function() {
  $('textarea.resizable:not(.processed)').each(function() {
    var textarea = $(this).addClass('processed'), staticOffset = null;

    // When wrapping the text area, work around an IE margin bug.  See:
    // http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout
    $(this).wrap('<div class="resizable-textarea"><span></span></div>')
      .parent().append($('<div class="grippie"></div>').mousedown(startDrag));

    var grippie = $('div.grippie', $(this).parent())[0];
    grippie.style.marginRight = (grippie.offsetWidth - $(this)[0].offsetWidth) +'px';

    function startDrag(e) {
      staticOffset = textarea.height() - Drupal.mousePosition(e).y;
      textarea.css('opacity', 0.25);
      $(document).mousemove(performDrag).mouseup(endDrag);
      return false;
    }

    function performDrag(e) {
      textarea.height(Math.max(32, staticOffset + Drupal.mousePosition(e).y) + 'px');
      return false;
    }

    function endDrag(e) {
      $(document).unmousemove(performDrag).unmouseup(endDrag);
      textarea.css('opacity', 1);
    }
  });
}

if (Drupal.jsEnabled) {
  $(document).ready(Drupal.textareaAttach);
}

;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/interest.js */
function interest( checkbox_value,checkbox_name ){

var checkid='inter'+checkbox_value;
var checkstatus=document.getElementById(checkid).checked;

if (checkstatus == true)
{
var id="div"+checkbox_value;
var divid=document.getElementById(id);
divid.innerHTML="<div id='account_setting'><label for='edit-profile-location'>What am I looking for in my " +checkbox_name+":</label><textarea cols='60' rows='5' class='form-textarea txt_area_large'  name='textarea["+checkbox_value+"]' onkeyup='checkLongWord(this)'>"+ '   '

+"</textarea></div>";
}
else{
var id="div"+checkbox_value;
var divid=document.getElementById(id);
divid.innerHTML="";

}
}

//TRIM
function jtrim(value) {
        return LTrim(RTrim(value));
}
function trim(value) {
        return LTrim(RTrim(value));
}
// Removes leading whitespaces
function LTrim(value) {
        var re = /\s*((\S+\s*)*)/;
        return value.replace(re, "$1");
}
function RTrim(value) {
        var re = /((\s*\S+)*)\s*/;
        return value.replace(re, "$1");
}
function redirectToSearch(path){
	username = document.getElementById('user').value;
	if(username){
		document.myform.action = path+"search_boxresult?user="+username;
		document.myform.submit();
	}
}
;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/js/ajax.js */
var xmlHttp;
function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }

return xmlHttp;
}


;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/js/calendar_events.js */
//var this_overlay=null;
var site_path = '/';
var New_overlay=null;
var overlay=null;
/* Sub Category Result  */
/*function sub_category(CatId){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url=site_path+"data/getCategory.php"
   	url=url+"?Id="+CatId;

    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    if(CatId == 0){
    	document.getElementById("form-area").innerHTML = '';
    }
}*/
function create_event(subCatid){

	flag = subCatid.split(',');

	var form_area = document.getElementById("form-area");

	var htm = '';
	if(flag[2] == 3){
		form_area.innerHTML = '';
		alert('You can post maximum three event in a category');
		document.getElementById('category').selectedIndex = 0 ;
		return false;
	}
	
	if(flag[1] == 1){
		htm += '			<table width="285" border="0" cellspacing="0" cellpadding="0" class="overlayTable_sml_chrctr1">';
		htm += '				<tr>';	
		htm += '					<td width="35" height="0" align="left" valign="top">';	
		htm += '						From';
		htm += '					</td>';	
		htm += '					<td width="92" height="0" align="left" valign="top">';	
		htm += '						<input name="start_date" id="start_date" readonly="1" type="text" class="overlayTable_txtField_sml">';
		htm += '					</td>';	
		htm += ' 					<td width="21" height="0" align="left" valign="top">'; 
		htm += '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_s" style="cursor:pointer;" title="Date selector">';
		htm += '					</td>';
		htm += '					<td width="24" height="0" align="left" valign="top" style="padding-left:5px;">';	
		htm += '						to';
		htm += '					</td>';	
		htm += '					<td  width="92" height="0" align="left" valign="top">';	
		htm += '						<input name="end_date" id="end_date" readonly="1" type="text" class="overlayTable_txtField_sml">';
		htm += '					</td>';	
		htm += ' 					<td width="21" height="0" align="left" valign="top">'; 
		htm += '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_e" style="cursor:pointer;" title="Date selector">';
		htm += '					</td>';
		htm += '				</tr>';	
		htm += '			</table>';	
	}else{
		htm += '			<table width="285" border="0" cellspacing="0" cellpadding="0" class="overlayTable_sml_chrctr1">';
		htm += '				<tr>';	
		htm += '					<td width="92" height="0" align="left" valign="top">';	
		htm += '						<input name="start_date" id="start_date" readonly="1" type="text" class="overlayTable_txtField_sml">';
		htm += '					</td>';	
		htm += ' 					<td height="0" align="left" valign="top">'; 
		htm += '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_s" style=cursor:pointer;" title="Date selector">';
		htm += '					</td>';
		htm += '				</tr>';	
		htm += '			</table>';	
		
	}
	var html =  '	<table width="700" border="0" cellspacing="0" cellpadding="0">';
		html += '		<tr>';	
		html += '			<td align="right" colspan="2" style="padding-right:15px;">';	
		html += '				<a href="" onclick="return closeForm()"><img src="sites/all/themes/findmeclub/images/close_bnt.gif"></a>';
		html += '			</td>';	
		html += '		</tr>';	
		html += '  		<tr>';
		html += '    		<td class="overlayTable_mid1">';
		html += '      			<table width="370" border="0" cellpadding="0" cellspacing="0" >';
		html += '        			<tr>';
		html += '          				<td width="150" height="40" align="left" valign="top">Event Title:</td>';
		html += '          				<td width="220" height="40" align="left" valign="top">';
		html += '            				<label>';
		html += '              					<input type="text" name="event_title" id="event_title" class="overlayTable_txt_field" MAXLENGTH="40"/>';
		html += '              				</label>';
		html += '          				</td>';
		html += '        			</tr>';
		html += '        			<tr>';
		html += '          				<td width="150" height="0" align="left" valign="top">Description:</td>';
		html += '          				<td width="220" height="0" align="left" valign="top">';
		html += '            				<label>';
		html += '            					<textarea  name="desc" id="desc" onKeyDown="docount(this,300)" onKeyUp="docount(this,300),checkLongWord(this)" class="overlayTable_txtarea"></textarea>';
		html += '            				</label>';
		html += '          				</td>';
		html += '        			</tr>';
		html += '        			<tr>';
		html += '          				<td width="150" height="40" align="left" valign="top">&nbsp;</td>';
		html += '          				<td width="220" height="40" align="left" valign="top">';
		html += '							<table width="250" border="0" cellspacing="0" cellpadding="0">';
		html += ' 				           		<tr>';
		html += '              						<td width="40" height="0"><input type="text" id="counter" value="300" readonly class="overlayTable_txt_field_sml" /></td>';
		html += '              						<td width="210" height="0" align="left" valign="top" class="overlayTable_sml_chrctr">Characters left</td>';
		html += '            					</tr>';
		html += '          					</table>';
		html += '      				 	</td>';
		html += '   				</tr>';
		html += '      				<tr>';
		html += '       				<td width="150" height="40" align="left" valign="top">Dates:</td>';
		html += '         				<td width="220" height="40">';
		html +=								htm;
		html += '          				</td>';
		html += '					</tr>';
		html += '       			<tr>';
		html += '      				 	<td width="150" height="0">&nbsp;</td>';
		html += '          				<td width="220" height="0" align="left" valign="top">';
		html += '							<input type="hidden" name="submit" value="Submit"><input type="image" name="submit"  value="Submit" src="sites/all/themes/findmeclub/images/submit.png" width="74" height="24"  onclick="return validate('+flag[1]+')"/>';
		html += '						</td>';
		html += '     				</tr>';
		html += '  				</table>';
		html += '    		</td>';
		html += '    	</tr>';
		html += '  	</table>';
	
	form_area.innerHTML = html;
    if(flag[0] == 0){
    	form_area.innerHTML = '';
    }
	if(flag[0] != 0){
		Calendar.setup({
			inputField     :    "start_date",     // id of the input field
			ifFormat       :    "%Y-%m-%d",      // format of the input field
			button         :    "f_trigger_s",  // trigger for the calendar (button ID)
			align          :    "Tl",           // alignment (defaults to "Bl")
			singleClick    :    true
		});
		if(flag[1] == 1){
		
			Calendar.setup({
				inputField     :    "end_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_e",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
			});
		}
	}
}
function stateChanged(){
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
      document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
//	related_main_cat()
  }
}
function validate(subCatid){

       
	var status = false;

	var cat = document.getElementsByName("Category")[0].value;
	//var subcat = document.getElementById("subcategory").value;
	var title = document.getElementById("event_title").value;
	var desc = document.getElementById("desc").value;
	var start_date = document.getElementById("start_date").value;

	var date1 = start_date.split('-');
	var begdate = new Date(date1[0],date1[1]-1,date1[2]);
	var sd = begdate.getTime();

	//set current date time stamp
	var curdate = new Date();
	curdate.setHours(00,00,00,00);
	cd = curdate.getTime();
	
	//end
	if(subCatid){
	
		var end_date = document.getElementById("end_date").value;
		var date2 = end_date.split('-');
		var enddate = new Date(date2[0],date2[1]-1,date2[2]);
		var ed = enddate.getTime();
	}

	if(title == ''){
		alert('Please enter title of Event');
	}else if(desc == ''){
		alert('Please enter description for Event');
	}else if(subCatid == 0){
		if(start_date == ''){
			alert('Please select Event date');
		}else if(cd > sd){
			alert('Event date should be the current date or some future date');
		}else{
			status = true;
		}
	}else{
		if(start_date == ''){
			alert('Please select Event start date');
		}else if(end_date == ''){
			alert('Please select Event end date');
		}else if(cd > sd){
			alert('Event date should be the current date or some future date');
		}else if(sd >= ed){
			alert('Event start date must be before end date');	
			status = false;
		}else{
			status = true;
		}
	}
	if(status == true){
		return true;
	}else{
		return false;
	}
	
}
function validate_searchBox(){
    var postalcode=document.getElementById('search').value;
        xmlHttp=GetXmlHttpObject()
                if (xmlHttp==null)
                        {
                   alert ("Browser does not support HTTP Request")
               return
            }
                var url=site_path+"data/postalcode.php";
                url=url+"?postalcode="+postalcode

                xmlHttp.onreadystatechange=postalcode_status
                xmlHttp.open("GET",url,true)
                xmlHttp.send(null)
           return false;
}
function postalcode_status() {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){

                var response=xmlHttp.responseText;
                var postalcode=document.getElementById('search').value;
                var start_date = document.getElementById("start_date").value;
        var date1 = start_date.split('-');

                var begdate = new Date(date1[0],date1[1]-1,date1[2]);
                var sd = begdate.getTime();
                //set current date time stamp
                var curdate = new Date();
                curdate.setHours(00,00,00,00);
                cd = curdate.getTime();
                //end

                var end_date = document.getElementById("end_date").value;
                var date2 = end_date.split('-');
                var enddate = new Date(date2[0],date2[1]-1,date2[2]);
                var ed = enddate.getTime();
                var postalcode=document.getElementById('search').value;
        if(cd > sd){
                        alert('Event date should be the current date or some future date');

                }else if(sd >= ed){
                        alert('Event start date must be before to date');

                }else if(end_date == '' && start_date != ''){
                    alert('Enter Both dates');
                }else if(end_date != '' && start_date == ''){
                    alert('Enter Both dates');
                }else if(postalcode == ''){
                        document.Companionsearch.submit();
                }else if(response == 2){
                        var value=document.getElementById('edit-location').value;
                        if(value == "0"){
                                alert("Please select Location.");
                        }else{
                    document.Companionsearch.submit();
                        }
                }else if(response == 1){
                alert("Postal code is  not valid");
                        document.getElementById('search').value='';
                        var id=document.getElementById('edit-location');
            id.innerHTML='';
                }else{
                document.Companionsearch.submit();
                }
        }
}
                	
                

function show_description(id){
	var xcordinate = document.getElementById("xcordinate").value;
	xcordinate = parseInt(xcordinate)+50;
	var ycordinate = document.getElementById("ycordinate").value;	
	ycordinate = parseInt(ycordinate);
	//alert(xcordinate)
	var desc = document.getElementById("desc"+id).value;
  	var content = '';
	content+= '<table width="419" border="0" cellspacing="0" cellpadding="0">';
	content+= '	<tr>';
	content+= '		<td class="overlayTable_top">';
	content+= '			<table width="100%" border="0" cellpadding="0" cellspacing="0">';
	content+= '				<tr>';
	content+= '					<td align="left" valign="top" class="rgtTxt">Description</td>';
	content+= '					<td align="right" valign="top">&nbsp;</td>';
	content+= '				</tr>';
	content+= '			</table>';
	content+= '    </td>';
	content+= '  </tr>';
	content+= '  <tr>';
	content+= '		<td class="overlayTable_mid"><div class="overlayTable_sml_chrctr">';
	content+= 						desc;
	content+= '		</div></td>';
	content+= '  </tr>';
	content+= '  <tr>';
	content+= '    <td style="background:url('+site_path+'sites/all/themes/findmeclub/images/2.gif) no-repeat center bottom;">&nbsp;</td>';
	content+= ' </tr>';
	content+= '</table>';

	this_overlay = document.getElementById("alertlayer"+id);
	this_overlay.innerHTML = content;
	overlay = new YAHOO.widget.Overlay("alertlayer"+id, {xy:[xcordinate,ycordinate], 
	visible:true,
    width:"420px",
    fixedcenter: false});
	overlay.render();
    overlay.show();
    return false;
}
function close_desc(){
	overlay.hide();
	return true;
}
function editEvent(eId,uid){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url=site_path+"data/getEvents.php"
   	url=url+"?Id="+eId+"&uid="+uid;
    xmlHttp.onreadystatechange=populate
    xmlHttp.open("GET",url,true)

    xmlHttp.send(null)

	return false;
}
function populate(){

  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		window.scroll(0,240);
		var content = xmlHttp.responseText;
		this_overlay = document.getElementById("alertlayer");
		this_overlay.innerHTML = content;
		New_overlay = new YAHOO.widget.Overlay("alertlayer", {xy:[300,290],
		visible:true,
	    width:"500px",
	    fixedcenter: false});
		New_overlay.render();
	    New_overlay.show();

		Calendar.setup({
				inputField     :    "start_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_s",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
		});
		var flag = document.getElementById("end_date");
		if(flag){
		
			Calendar.setup({
				inputField     :    "end_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_e",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
			});
		}
	
  }
}
function checkLimit(el , val, catid, multi){
	var flag = val.split(',');	
	if(flag[2] == 3){
		alert('You can post maximum three event in a category')
		el.selectedIndex = catid-1;
		return false;
	}

	if((flag[1]==1 && multi == 0) || (flag[1]== 1 && multi == 1)){
		var secondcal = document.getElementById("second");
		var sd = document.getElementById("sd").value;
		var ed = document.getElementById("ed").value;
		
		var htm= '		<table width="285" border="0" cellspacing="0" cellpadding="0" class="overlayTable_sml_chrctr1">';
		htm+= '				<tr>';	
		htm+= '					<td width="35" align="left" valign="top">';	
		htm+= '						From';
		htm+= '					</td>';	
		htm+= '					<td width="92" align="left" valign="top">';
		htm+= '						<input name="start_date" id="start_date" readonly="1" type="text" value="'+sd+'" class="overlayTable_txtField_sml"/></td>';	
		htm+= '					</td>';	
		htm+= ' 					<td width="21" align="left" valign="top" style="padding-left:5px;">'; 
		htm+= '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_s" style="cursor: pointer;" title="Date selector">';
		htm+= '					</td>';
		htm+= '					<td width="24" align="left" valign="top">';	
		htm+= '						to';
		htm+= '					</td>';	
		htm+= '					<td width="92" align="left" valign="top">';	
		htm+= '						<input name="end_date" id="end_date" readonly="1" type="text" value="'+ed+'" class="overlayTable_txtField_sml"/>';
		htm+= '					</td>';	
		htm+= ' 					<td align="left" valign="top" style="padding-left:5px;">'; 
		htm+= '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_e" style="cursor: pointer;" title="Date selector">';
		htm+= '					</td>';
		htm+= '				</tr>';	
		htm+= '			</table>';	

		
		secondcal.innerHTML = htm;
		Calendar.setup({
				inputField     :    "start_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_s",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
		});
		Calendar.setup({
				inputField     :    "end_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_e",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
			});
		
	}
	if((flag[1]== 0 && multi == 1) || (flag[1]== 0 && multi == 0)){
		var secondcal = document.getElementById("second");
		var sd = document.getElementById("sd").value;
		var htm= '			<table width="285" border="0" cellspacing="0" cellpadding="0" class = "overlayTable_sml_chrctr1">';
		htm+= '				<tr>';	
		htm+= '					<td width="92" align="left" valign="top">';
		htm+= '						<input name="start_date" id="start_date" readonly="1" type="text" value="'+sd+'" class="overlayTable_txtField_sml"/></td>';	
		htm+= '					</td>';	
		htm+= ' 					<td align="left" valign="top" style="padding-left:5px;">'; 
		htm+= '						<img src="sites/all/themes/findmeclub/images/calendar.png" id="f_trigger_s" style="cursor: pointer;" title="Date selector">';
		htm+= '					</td>';
		htm+= '				</tr>';	
		htm+= '			</table>';	

		secondcal.innerHTML = htm;
		Calendar.setup({
				inputField     :    "start_date",     // id of the input field
				ifFormat       :    "%Y-%m-%d",      // format of the input field
				button         :    "f_trigger_s",  // trigger for the calendar (button ID)
				align          :    "Tl",           // alignment (defaults to "Bl")
				singleClick    :    true
		});
	}
}
function closeForm(){
	var cat = document.getElementById("category");
	cat.selectedIndex = 0;
	document.getElementById("form-area").innerHTML = '';
	return false;
}
function docount(el,limit){
	
	val = el.value.length;
	var left = limit-val;
	var counter = document.getElementById("counter");

	if(left <= limit && left >= 0){
		counter.value = left;
	}

	if(val >= limit){
		el.value = el.value.substring(0, limit);
	}
}
function inviteForEvent(uid , fid){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url=site_path+"data/sendEventInvitation.php"
   	url=url+"?sid="+uid+"&fid="+fid;
    xmlHttp.onreadystatechange=showMessageLayer
    xmlHttp.open("GET",url,true)

    xmlHttp.send(null)

	return false;
}
function populateSubject(id){
	var eid = id;
	if(eid != 0){
		var subject = document.getElementById(id).value;
	}
	if(eid == 0){
		document.getElementById('subject').value = "";
	}else{
		document.getElementById('subject').value = "Invitation for "+subject;
	}
}
function validateMessage(uid , fid){
	var cat = document.getElementById("Category").value;
	var sub = document.getElementById("subject").value;
	var msg = document.getElementById("message").value;
	
	if(cat == 0){
		alert('Please select event type')
	}else if(msg == ''){
		alert('Please write message')
	}else{

		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null){
			alert ("Browser does not support HTTP Request")
			return
		}
		var url=site_path+"data/sendEventInvitation.php"
	   	url=url+"?uid="+uid+"&fid="+fid+"&cat="+cat+"&sub="+sub+"&msg="+msg;
	    xmlHttp.onreadystatechange=showMessageLayer
	    xmlHttp.open("GET",url,true)
	
	    xmlHttp.send(null)
	
		return false;
	}
}
function showMessageLayer(){

  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		var content = xmlHttp.responseText;
		this_overlay = document.getElementById("invite");
		this_overlay.innerHTML = content;
		New_overlay = new YAHOO.widget.Overlay("invite", {xy:[100,50],
		visible:true,
	    width:"500px",
	    fixedcenter: true});
		New_overlay.render();
	    New_overlay.show();
  }
}
function setstaus(uid , fid, state){
	if(state == 1){
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null){
			alert ("Browser does not support HTTP Request")
			return
		}
		var url=site_path+"data/viewStatus.php"
	   	url=url+"?uid="+uid+"&fid="+fid+"&state="+state;
	    xmlHttp.onreadystatechange=showStatus;
	    xmlHttp.open("GET",url,true)
	
	    xmlHttp.send(null)
	
		return false;
	}else{
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null){
			alert ("Browser does not support HTTP Request")
			return
		}
		var url=site_path+"data/viewStatus.php"
	   	url=url+"?uid="+uid+"&fid="+fid+"&state="+state;
	    xmlHttp.onreadystatechange=showStatus;
	    xmlHttp.open("GET",url,true)
	
	    xmlHttp.send(null)
	
		return false;
	}
}
function showStatus(){
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
      var view_status = xmlHttp.responseText;
      alert(view_status)
      var host = window.location.host;
      window.location ="http://"+host+"/buddylist";
  }
}
function showAvaialability(uid, bid){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url=site_path+"data/showavaialability.php"
   	url=url+"?uid="+uid+"&fid="+bid;
    xmlHttp.onreadystatechange=populateAvailablity
    xmlHttp.open("GET",url,true)

    xmlHttp.send(null)

	return false;
	
}
function populateAvailablity(){
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		var content=xmlHttp.responseText;
		window.scroll(0,40);
		this_overlay = document.getElementById("available");
		this_overlay.innerHTML = content;
		New_overlay = new YAHOO.widget.Overlay("available", {xy:[0,50],
		visible:true,
	    width:"100%",
	    fixedcenter: false});
		New_overlay.render();
	    New_overlay.show();
	}	
}
function sendmail(uid, bid){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url=site_path+"data/sendmail.php"
   	url=url+"?uid="+uid+"&fid="+bid;
    xmlHttp.onreadystatechange=mailStatus
    xmlHttp.open("GET",url,true)

    xmlHttp.send(null)

	return false;
}
function mailStatus(){
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
	var mailstatus=xmlHttp.responseText;
  	var content = '';
	content+= '<table width="400" border="0" cellspacing="0" cellpadding="0">';
	content+= '	<tr>';
	content+= '		<td class="overlayTable_top">';
	content+= '			<table width="100%" border="0" cellpadding="0" cellspacing="0">';
	content+= '				<tr>';
	content+= '					<td align="left" valign="top" class="rgtTxt">Description</td>';
	content+= '					<td align="right" valign="top"><a href="javascript:void(0)" onclick="return closeLayer()"><img src="'+site_path+'sites/all/themes/findmeclub/images/overlay_close.png" width="40" height="23" class="img" /></a></td>';
	content+= '				</tr>';
	content+= '			</table>';
	content+= '    </td>';
	content+= '  </tr>';
	content+= '  <tr>';
	content+= '		<td class="overlayTable_mid"><div class="overlayTable_sml_chrctr">';
	content+= 						mailstatus;
	content+= '		</div></td>';
	content+= '  </tr>';
	content+= '  <tr>';
	content+= '    <td style="background:url('+site_path+'sites/all/themes/findmeclub/images/2.gif) no-repeat center bottom;">&nbsp;</td>';
	content+= ' </tr>';
	content+= '</table>';

	this_overlay = document.getElementById("available");
	this_overlay.innerHTML = content;
	New_overlay = new YAHOO.widget.Overlay("available", {xy:[100,50], 
	visible:true,
    width:"420px",
    fixedcenter: true});
	New_overlay.render();
    New_overlay.show();
    return false;
  }
}

var tempX = 0;
var tempY = 0;
var IE = document.all?true:false;

function getMouseXY(e) {
		if (!IE) 
			document.captureEvents(Event.MOUSEMOVE);
		if (IE){
			tempX = event.clientX + document.body.scrollLeft;
			tempY = event.clientY + document.body.scrollTop;
		}else {
			tempX = e.pageX;
			tempY = e.pageY;
		}  
		if (tempX < 0){
			tempX = 0;
		}
		if (tempY < 0){
			tempY = 0;
		}  
		document.getElementById("xcordinate").value = tempX;
		document.getElementById("ycordinate").value = tempY;
	return true;
}	
function closeLayer(){
	New_overlay.hide();
	return false;
}
function makePassEmpty(){
	var pass = document.getElementById('edit-pass-pass1');
	pass.value = '';
}
function showUploading(){
	document.getElementById("submitbutton").style.display = "none";
	document.getElementById("account_setting1").style.display = "none";	
	document.getElementById("description").style.display = "none";	
	document.getElementById("loading").style.display = "block";
	
}

;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/findmeclub.js */
var site_path = '/';
   	
   function explodearray(item,delimiter) {
		temparray=new Array();
		var Count=0;
		var tempString=new String(item);

		while (tempString.indexOf(delimiter)>0) {
			temparray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
			tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
			Count=Count+1
		}

		temparray[Count]=tempString;
		return temparray;
} 
   
	function gettownName( value ){
                updatecounter(value);

        }


	var xmlHttp
	function hideStatus( user_id ){
		xmlHttp=GetXmlHttpObject()
		        if (xmlHttp==null)
			{
	                alert ("Browser does not support HTTP Request")
        	        return
        		 }
		var url=site_path+"data/updateStatus.php";
		url=url+"?user_id="+user_id
 

	        xmlHttp.onreadystatechange=updateStatus
	        xmlHttp.open("GET",url,true)
	        xmlHttp.send(null)
        }

	function updateStatus()
        {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
	//          alert(xmlHttp.responseText);
		document.getElementById('headerdiv').style.display = 'none';
    
         }
        }
	

function fallowthis(nid,uid,flag){
	xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/fallowthis.php";
        url=url+"?nid="+nid+"&uid="+uid+"&flag="+flag;
        
        
        xmlHttp.onreadystatechange=stateChangedfallow
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
}
function stateChangedfallow(){
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
        {
         var response=xmlHttp.responseText;
         var brokenstring=explodearray(response,'*');
         var id = document.getElementById('fallow'); 
         if(brokenstring[2] == 0){
         	var str="Follow this";
         	brokenstring[2] =1;
         }else{
         	brokenstring[2] =0;
         	var str="Un follow this";
         }
         id.innerHTML= '<a href="javascript:void(0);" onclick="fallowthis('+brokenstring[0]+','+brokenstring[1]+','+brokenstring[2]+');" class="followthis"  >'+str+'</a>';
         
        }
}
	function updatecounter(value)
        {
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/townnamesearch.php";
        url=url+"?postalcode="+value


        xmlHttp.onreadystatechange=stateChanged
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
        }

	

	function stateChanged()
        {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
          var response=xmlHttp.responseText;
         
          var content=response.split("&");
          if(content[0] == 'No'){
          //alert("Postal code is not valid ");
     //          document.getElementById('search').value='';
         }
          var id = document.getElementById('changelocation');
            id.innerHTML= '<select name="location" id="edit-location" class="txt_field_large_drp_dwn">'+content[1]+'</select>';

         }
        }

	
	
	function gettownNamereg(value)
        {
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/townname.php";
        url=url+"?postalcode="+value


        xmlHttp.onreadystatechange=stateChanged2
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
        }


        function stateChanged2()
        {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
          var content=xmlHttp.responseText;
          var id = document.getElementById('change_location_registration');
          id.innerHTML= '<select name="profile_location" id="edit-profile-location" class="txt_field_large_drp_dwn_reg">'+content+'</select>';

         }
        }

	
	function gettownNameedit(value)
        {
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/townname.php";
        url=url+"?postalcode="+value


        xmlHttp.onreadystatechange=stateChanged3
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
        }


        function stateChanged3()
        {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
          var content=xmlHttp.responseText;
          var id = document.getElementById('change_location_registration');
          id.innerHTML= '<div class="form-item"> <label for="edit-profile-location">Location: </label><select name="profile_location" id="edit-profile-location" class="form-select txt_field_large_drp_dwn">'+content+'</select></div>';

         }
        }
	
	
	function LoginData()
	{
        var emailid=document.getElementById('user-name').value;
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/loginbyemailid.php";
        url=url+"?mail="+emailid
        
        
    
        xmlHttp.onreadystatechange=stateChanged1
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
        return false;
        
	}
	

	function stateChanged1()
	{
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
          var content=xmlHttp.responseText;
          document.getElementById('edit-name').value=content;
          
          
          document.login.submit();
         }
	}
	
	function changeAlbumCover(check,photoid,albumid){
	   
	   	xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
                alert ("Browser does not support HTTP Request")
                return
         }
        var url=site_path+"data/albumCover.php";
        url=url+"?photoid="+photoid+"&albumid="+albumid;
        
        
    
        xmlHttp.onreadystatechange=albumCover
        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
       
    }
    function albumCover()
	{
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
          var content=xmlHttp.responseText;

          alert('Album cover has been changed')
         }
	}
	 function up_launchWM( userID, destinationUserID){
                        /*window.open("wm.php?strDestinationUserID="+destinationUserID,"WMWindow_","width=468,
height=595,toolbar=0,directories=0,menubar=0,status=0,location=0,scrollbars=0,resizable=1");*/
                        window.open( "/findmeclub/sites/all/themes/findmeclub/userplane/wm.php?strDestinationUserID=" + destinationUserID, "WMWindow_" + up_replaceAlpha(userID) + "_" + up_replaceAlpha(destinationUserID), "width=468,height=595,toolbar=0,directories=0,menubar=0,status=0,location=0,scrollbars=0,resizable=1" ); }
/*===========Next Function===================*/
                function up_launchUL(){
                        window.open("ul.php","UL_Window","width=220,height=700,toolbar=0,directories=0,menubar=0,status=0,location=0,scrollbars=0,resizable=1" );
                }
/*===============Next Function===============*/
                function up_replaceAlpha(strIn){
                       var strOut="";
                       for(var i=0; i<strIn.length; i++){
                       var cChar = strIn.charAt(i);
                       if((cChar>='A' && cChar<='Z') || (cChar>='a' && cChar<='z') || (cChar>='0' && cChar<='9')){                     strOut+=cChar;
                        }
                     else{
                         strOut+="_";
                        }
                }
			return strOut;
			}
			
		
		
	

;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/js/calendar.js */
/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
 * -----------------------------------------------------------
 *
 * The DHTML Calendar, version 1.0 "It is happening again"
 *
 * Details and latest version at:
 * www.dynarch.com/projects/calendar
 *
 * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 */

// $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $

/** The Calendar object constructor. */
Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
	// member variables
	this.activeDiv = null;
	this.currentDateEl = null;
	this.getDateStatus = null;
	this.getDateToolTip = null;
	this.getDateText = null;
	this.timeout = null;
	this.onSelected = onSelected || null;
	this.onClose = onClose || null;
	this.dragging = false;
	this.hidden = false;
	this.minYear = 1970;
	this.maxYear = 2050;
	this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
	this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
	this.isPopup = true;
	this.weekNumbers = true;
	this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
	this.showsOtherMonths = false;
	this.dateStr = dateStr;
	this.ar_days = null;
	this.showsTime = false;
	this.time24 = true;
	this.yearStep = 2;
	this.hiliteToday = true;
	this.multiple = null;
	// HTML elements
	this.table = null;
	this.element = null;
	this.tbody = null;
	this.firstdayname = null;
	// Combo boxes
	this.monthsCombo = null;
	this.yearsCombo = null;
	this.hilitedMonth = null;
	this.activeMonth = null;
	this.hilitedYear = null;
	this.activeYear = null;
	// Information
	this.dateClicked = false;

	// one-time initializations
	if (typeof Calendar._SDN == "undefined") {
		// table of short day names
		if (typeof Calendar._SDN_len == "undefined")
			Calendar._SDN_len = 3;
		var ar = new Array();
		for (var i = 8; i > 0;) {
			ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
		}
		Calendar._SDN = ar;
		// table of short month names
		if (typeof Calendar._SMN_len == "undefined")
			Calendar._SMN_len = 3;
		ar = new Array();
		for (var i = 12; i > 0;) {
			ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
		}
		Calendar._SMN = ar;
	}
};

// ** constants

/// "static", needed for event handlers.
Calendar._C = null;

/// detect a special case of "web browser"
Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
		   !/opera/i.test(navigator.userAgent) );

Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );

/// detect Opera browser
Calendar.is_opera = /opera/i.test(navigator.userAgent);

/// detect KHTML-based browsers
Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);

// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
//        library, at some point.

Calendar.getAbsolutePos = function(el) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = this.getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

Calendar.isRelated = function (el, evt) {
	var related = evt.relatedTarget;
	if (!related) {
		var type = evt.type;
		if (type == "mouseover") {
			related = evt.fromElement;
		} else if (type == "mouseout") {
			related = evt.toElement;
		}
	}
	while (related) {
		if (related == el) {
			return true;
		}
		related = related.parentNode;
	}
	return false;
};

Calendar.removeClass = function(el, className) {
	if (!(el && el.className)) {
		return;
	}
	var cls = el.className.split(" ");
	var ar = new Array();
	for (var i = cls.length; i > 0;) {
		if (cls[--i] != className) {
			ar[ar.length] = cls[i];
		}
	}
	el.className = ar.join(" ");
};

Calendar.addClass = function(el, className) {
	Calendar.removeClass(el, className);
	el.className += " " + className;
};

// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately.
Calendar.getElement = function(ev) {
	var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
	while (f.nodeType != 1 || /^div$/i.test(f.tagName))
		f = f.parentNode;
	return f;
};

Calendar.getTargetElement = function(ev) {
	var f = Calendar.is_ie ? window.event.srcElement : ev.target;
	while (f.nodeType != 1)
		f = f.parentNode;
	return f;
};

Calendar.stopEvent = function(ev) {
	ev || (ev = window.event);
	if (Calendar.is_ie) {
		ev.cancelBubble = true;
		ev.returnValue = false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
	return false;
};

Calendar.addEvent = function(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
};

Calendar.removeEvent = function(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
};

Calendar.createElement = function(type, parent) {
	var el = null;
	if (document.createElementNS) {
		// use the XHTML namespace; IE won't normally get here unless
		// _they_ "fix" the DOM2 implementation.
		el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
	} else {
		el = document.createElement(type);
	}
	if (typeof parent != "undefined") {
		parent.appendChild(el);
	}
	return el;
};

// END: UTILITY FUNCTIONS

// BEGIN: CALENDAR STATIC FUNCTIONS

/** Internal -- adds a set of events to make some element behave like a button. */
Calendar._add_evs = function(el) {
	with (Calendar) {
		addEvent(el, "mouseover", dayMouseOver);
		addEvent(el, "mousedown", dayMouseDown);
		addEvent(el, "mouseout", dayMouseOut);
		if (is_ie) {
			addEvent(el, "dblclick", dayMouseDblClick);
			el.setAttribute("unselectable", true);
		}
	}
};

Calendar.findMonth = function(el) {
	if (typeof el.month != "undefined") {
		return el;
	} else if (typeof el.parentNode.month != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.findYear = function(el) {
	if (typeof el.year != "undefined") {
		return el;
	} else if (typeof el.parentNode.year != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.showMonthsCombo = function () {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var mc = cal.monthsCombo;
	if (cal.hilitedMonth) {
		Calendar.removeClass(cal.hilitedMonth, "hilite");
	}
	if (cal.activeMonth) {
		Calendar.removeClass(cal.activeMonth, "active");
	}
	var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
	Calendar.addClass(mon, "active");
	cal.activeMonth = mon;
	var s = mc.style;
	s.display = "block";
	if (cd.navtype < 0)
		s.left = cd.offsetLeft + "px";
	else {
		var mcw = mc.offsetWidth;
		if (typeof mcw == "undefined")
			// Konqueror brain-dead techniques
			mcw = 50;
		s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
	}
	s.top = (cd.offsetTop + cd.offsetHeight) + "px";
};

Calendar.showYearsCombo = function (fwd) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var yc = cal.yearsCombo;
	if (cal.hilitedYear) {
		Calendar.removeClass(cal.hilitedYear, "hilite");
	}
	if (cal.activeYear) {
		Calendar.removeClass(cal.activeYear, "active");
	}
	cal.activeYear = null;
	var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
	var yr = yc.firstChild;
	var show = false;
	for (var i = 12; i > 0; --i) {
		if (Y >= cal.minYear && Y <= cal.maxYear) {
			yr.innerHTML = Y;
			yr.year = Y;
			yr.style.display = "block";
			show = true;
		} else {
			yr.style.display = "none";
		}
		yr = yr.nextSibling;
		Y += fwd ? cal.yearStep : -cal.yearStep;
	}
	if (show) {
		var s = yc.style;
		s.display = "block";
		if (cd.navtype < 0)
			s.left = cd.offsetLeft + "px";
		else {
			var ycw = yc.offsetWidth;
			if (typeof ycw == "undefined")
				// Konqueror brain-dead techniques
				ycw = 50;
			s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
		}
		s.top = (cd.offsetTop + cd.offsetHeight) + "px";
	}
};

// event handlers

Calendar.tableMouseUp = function(ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	if (cal.timeout) {
		clearTimeout(cal.timeout);
	}
	var el = cal.activeDiv;
	if (!el) {
		return false;
	}
	var target = Calendar.getTargetElement(ev);
	ev || (ev = window.event);
	Calendar.removeClass(el, "active");
	if (target == el || target.parentNode == el) {
		Calendar.cellClick(el, ev);
	}
	var mon = Calendar.findMonth(target);
	var date = null;
	if (mon) {
		date = new Date(cal.date);
		if (mon.month != date.getMonth()) {
			date.setMonth(mon.month);
			cal.setDate(date);
			cal.dateClicked = false;
			cal.callHandler();
		}
	} else {
		var year = Calendar.findYear(target);
		if (year) {
			date = new Date(cal.date);
			if (year.year != date.getFullYear()) {
				date.setFullYear(year.year);
				cal.setDate(date);
				cal.dateClicked = false;
				cal.callHandler();
			}
		}
	}
	with (Calendar) {
		removeEvent(document, "mouseup", tableMouseUp);
		removeEvent(document, "mouseover", tableMouseOver);
		removeEvent(document, "mousemove", tableMouseOver);
		cal._hideCombos();
		_C = null;
		return stopEvent(ev);
	}
};

Calendar.tableMouseOver = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return;
	}
	var el = cal.activeDiv;
	var target = Calendar.getTargetElement(ev);
	if (target == el || target.parentNode == el) {
		Calendar.addClass(el, "hilite active");
		Calendar.addClass(el.parentNode, "rowhilite");
	} else {
		if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
			Calendar.removeClass(el, "active");
		Calendar.removeClass(el, "hilite");
		Calendar.removeClass(el.parentNode, "rowhilite");
	}
	ev || (ev = window.event);
	if (el.navtype == 50 && target != el) {
		var pos = Calendar.getAbsolutePos(el);
		var w = el.offsetWidth;
		var x = ev.clientX;
		var dx;
		var decrease = true;
		if (x > pos.x + w) {
			dx = x - pos.x - w;
			decrease = false;
		} else
			dx = pos.x - x;

		if (dx < 0) dx = 0;
		var range = el._range;
		var current = el._current;
		var count = Math.floor(dx / 10) % range.length;
		for (var i = range.length; --i >= 0;)
			if (range[i] == current)
				break;
		while (count-- > 0)
			if (decrease) {
				if (--i < 0)
					i = range.length - 1;
			} else if ( ++i >= range.length )
				i = 0;
		var newval = range[i];
		el.innerHTML = newval;

		cal.onUpdateTime();
	}
	var mon = Calendar.findMonth(target);
	if (mon) {
		if (mon.month != cal.date.getMonth()) {
			if (cal.hilitedMonth) {
				Calendar.removeClass(cal.hilitedMonth, "hilite");
			}
			Calendar.addClass(mon, "hilite");
			cal.hilitedMonth = mon;
		} else if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
	} else {
		if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
		var year = Calendar.findYear(target);
		if (year) {
			if (year.year != cal.date.getFullYear()) {
				if (cal.hilitedYear) {
					Calendar.removeClass(cal.hilitedYear, "hilite");
				}
				Calendar.addClass(year, "hilite");
				cal.hilitedYear = year;
			} else if (cal.hilitedYear) {
				Calendar.removeClass(cal.hilitedYear, "hilite");
			}
		} else if (cal.hilitedYear) {
			Calendar.removeClass(cal.hilitedYear, "hilite");
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.tableMouseDown = function (ev) {
	if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
		return Calendar.stopEvent(ev);
	}
};

Calendar.calDragIt = function (ev) {
	var cal = Calendar._C;
	if (!(cal && cal.dragging)) {
		return false;
	}
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posX = ev.pageX;
		posY = ev.pageY;
	}
	cal.hideShowCovered();
	var st = cal.element.style;
	st.left = (posX - cal.xOffs) + "px";
	st.top = (posY - cal.yOffs) + "px";
	return Calendar.stopEvent(ev);
};

Calendar.calDragEnd = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	cal.dragging = false;
	with (Calendar) {
		removeEvent(document, "mousemove", calDragIt);
		removeEvent(document, "mouseup", calDragEnd);
		tableMouseUp(ev);
	}
	cal.hideShowCovered();
};

Calendar.dayMouseDown = function(ev) {
	var el = Calendar.getElement(ev);
	if (el.disabled) {
		return false;
	}
	var cal = el.calendar;
	cal.activeDiv = el;
	Calendar._C = cal;
	if (el.navtype != 300) with (Calendar) {
		if (el.navtype == 50) {
			el._current = el.innerHTML;
			addEvent(document, "mousemove", tableMouseOver);
		} else
			addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
		addClass(el, "hilite active");
		addEvent(document, "mouseup", tableMouseUp);
	} else if (cal.isPopup) {
		cal._dragStart(ev);
	}
	if (el.navtype == -1 || el.navtype == 1) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
	} else if (el.navtype == -2 || el.navtype == 2) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
	} else {
		cal.timeout = null;
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseDblClick = function(ev) {
	Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
	if (Calendar.is_ie) {
		document.selection.empty();
	}
};

Calendar.dayMouseOver = function(ev) {
	var el = Calendar.getElement(ev);
	if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
		return false;
	}
	if (el.ttip) {
		if (el.ttip.substr(0, 1) == "_") {
			el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
		}
		el.calendar.tooltips.innerHTML = el.ttip;
	}
	if (el.navtype != 300) {
		Calendar.addClass(el, "hilite");
		if (el.caldate) {
			Calendar.addClass(el.parentNode, "rowhilite");
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseOut = function(ev) {
	with (Calendar) {
		var el = getElement(ev);
		if (isRelated(el, ev) || _C || el.disabled)
			return false;
		removeClass(el, "hilite");
		if (el.caldate)
			removeClass(el.parentNode, "rowhilite");
		if (el.calendar)
			el.calendar.tooltips.innerHTML = _TT["SEL_DATE"];
		return stopEvent(ev);
	}
};

/**
 *  A generic "click" handler :) handles all types of buttons defined in this
 *  calendar.
 */
Calendar.cellClick = function(el, ev) {
	var cal = el.calendar;
	var closing = false;
	var newdate = false;
	var date = null;
	if (typeof el.navtype == "undefined") {
		if (cal.currentDateEl) {
			Calendar.removeClass(cal.currentDateEl, "selected");
			Calendar.addClass(el, "selected");
			closing = (cal.currentDateEl == el);
			if (!closing) {
				cal.currentDateEl = el;
			}
		}
		cal.date.setDateOnly(el.caldate);
		date = cal.date;
		var other_month = !(cal.dateClicked = !el.otherMonth);
		if (!other_month && !cal.currentDateEl)
			cal._toggleMultipleDate(new Date(date));
		else
			newdate = !el.disabled;
		// a date was clicked
		if (other_month)
			cal._init(cal.firstDayOfWeek, date);
	} else {
		if (el.navtype == 200) {
			Calendar.removeClass(el, "hilite");
			cal.callCloseHandler();
			return;
		}
		date = new Date(cal.date);
		if (el.navtype == 0)
			date.setDateOnly(new Date()); // TODAY
		// unless "today" was clicked, we assume no date was clicked so
		// the selected handler will know not to close the calenar when
		// in single-click mode.
		// cal.dateClicked = (el.navtype == 0);
		cal.dateClicked = false;
		var year = date.getFullYear();
		var mon = date.getMonth();
		function setMonth(m) {
			var day = date.getDate();
			var max = date.getMonthDays(m);
			if (day > max) {
				date.setDate(max);
			}
			date.setMonth(m);
		};
		switch (el.navtype) {
		    case 400:
			Calendar.removeClass(el, "hilite");
			var text = Calendar._TT["ABOUT"];
			if (typeof text != "undefined") {
				text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
			} else {
				// FIXME: this should be removed as soon as lang files get updated!
				text = "Help and about box text is not translated into this language.\n" +
					"If you know this language and you feel generous please update\n" +
					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +
					"Thank you!\n" +
					"http://dynarch.com/mishoo/calendar.epl\n";
			}
			alert(text);
			return;
		    case -2:
			if (year > cal.minYear) {
				date.setFullYear(year - 1);
			}
			break;
		    case -1:
			if (mon > 0) {
				setMonth(mon - 1);
			} else if (year-- > cal.minYear) {
				date.setFullYear(year);
				setMonth(11);
			}
			break;
		    case 1:
			if (mon < 11) {
				setMonth(mon + 1);
			} else if (year < cal.maxYear) {
				date.setFullYear(year + 1);
				setMonth(0);
			}
			break;
		    case 2:
			if (year < cal.maxYear) {
				date.setFullYear(year + 1);
			}
			break;
		    case 100:
			cal.setFirstDayOfWeek(el.fdow);
			return;
		    case 50:
			var range = el._range;
			var current = el.innerHTML;
			for (var i = range.length; --i >= 0;)
				if (range[i] == current)
					break;
			if (ev && ev.shiftKey) {
				if (--i < 0)
					i = range.length - 1;
			} else if ( ++i >= range.length )
				i = 0;
			var newval = range[i];
			el.innerHTML = newval;
			cal.onUpdateTime();
			return;
		    case 0:
			// TODAY will bring us here
			if ((typeof cal.getDateStatus == "function") &&
			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
				return false;
			}
			break;
		}
		if (!date.equalsTo(cal.date)) {
			cal.setDate(date);
			newdate = true;
		} else if (el.navtype == 0)
			newdate = closing = true;
	}
	if (newdate) {
		ev && cal.callHandler();
	}
	if (closing) {
		Calendar.removeClass(el, "hilite");
		ev && cal.callCloseHandler();
	}
};

// END: CALENDAR STATIC FUNCTIONS

// BEGIN: CALENDAR OBJECT FUNCTIONS

/**
 *  This function creates the calendar inside the given parent.  If _par is
 *  null than it creates a popup calendar inside the BODY element.  If _par is
 *  an element, be it BODY, then it creates a non-popup calendar (still
 *  hidden).  Some properties need to be set before calling this function.
 */
Calendar.prototype.create = function (_par) {
	var parent = null;
	if (! _par) {
		// default parent is the document body, in which case we create
		// a popup calendar.
		parent = document.getElementsByTagName("body")[0];
		this.isPopup = true;
	} else {
		parent = _par;
		this.isPopup = false;
	}
	this.date = this.dateStr ? new Date(this.dateStr) : new Date();

	var table = Calendar.createElement("table");
	this.table = table;
	table.cellSpacing = 0;
	table.cellPadding = 0;
	table.calendar = this;
	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);

	var div = Calendar.createElement("div");
	this.element = div;
	div.className = "calendar";
	if (this.isPopup) {
		div.style.position = "absolute";
		div.style.display = "none";
	}
	div.appendChild(table);

	var thead = Calendar.createElement("thead", table);
	var cell = null;
	var row = null;

	var cal = this;
	var hh = function (text, cs, navtype) {
		cell = Calendar.createElement("td", row);
		cell.colSpan = cs;
		cell.className = "button";
		if (navtype != 0 && Math.abs(navtype) <= 2)
			cell.className += " nav";
		Calendar._add_evs(cell);
		cell.calendar = cal;
		cell.navtype = navtype;
		cell.innerHTML = "<div unselectable='on'>" + text + "</div>";
		return cell;
	};

	row = Calendar.createElement("tr", thead);
	var title_length = 6;
	(this.isPopup) && --title_length;
	(this.weekNumbers) && ++title_length;

	hh("?", 1, 400).ttip = Calendar._TT["INFO"];
	this.title = hh("", title_length, 300);
	this.title.className = "title";
	if (this.isPopup) {
		this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
		this.title.style.cursor = "move";
		hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
	}

	row = Calendar.createElement("tr", thead);
	row.className = "headrow";

	this._nav_py = hh("&#x00ab;", 1, -2);
	this._nav_py.ttip = Calendar._TT["PREV_YEAR"];

	this._nav_pm = hh("&#x2039;", 1, -1);
	this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];

	this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
	this._nav_now.ttip = Calendar._TT["GO_TODAY"];

	this._nav_nm = hh("&#x203a;", 1, 1);
	this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];

	this._nav_ny = hh("&#x00bb;", 1, 2);
	this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];

	// day names
	row = Calendar.createElement("tr", thead);
	row.className = "daynames";
	if (this.weekNumbers) {
		cell = Calendar.createElement("td", row);
		cell.className = "name wn";
		cell.innerHTML = Calendar._TT["WK"];
	}
	for (var i = 7; i > 0; --i) {
		cell = Calendar.createElement("td", row);
		if (!i) {
			cell.navtype = 100;
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}
	this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
	this._displayWeekdays();

	var tbody = Calendar.createElement("tbody", table);
	this.tbody = tbody;

	for (i = 6; i > 0; --i) {
		row = Calendar.createElement("tr", tbody);
		if (this.weekNumbers) {
			cell = Calendar.createElement("td", row);
		}
		for (var j = 7; j > 0; --j) {
			cell = Calendar.createElement("td", row);
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}

	if (this.showsTime) {
		row = Calendar.createElement("tr", tbody);
		row.className = "time";

		cell = Calendar.createElement("td", row);
		cell.className = "time";
		cell.colSpan = 2;
		cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";

		cell = Calendar.createElement("td", row);
		cell.className = "time";
		cell.colSpan = this.weekNumbers ? 4 : 3;

		(function(){
			function makeTimePart(className, init, range_start, range_end) {
				var part = Calendar.createElement("span", cell);
				part.className = className;
				part.innerHTML = init;
				part.calendar = cal;
				part.ttip = Calendar._TT["TIME_PART"];
				part.navtype = 50;
				part._range = [];
				if (typeof range_start != "number")
					part._range = range_start;
				else {
					for (var i = range_start; i <= range_end; ++i) {
						var txt;
						if (i < 10 && range_end >= 10) txt = '0' + i;
						else txt = '' + i;
						part._range[part._range.length] = txt;
					}
				}
				Calendar._add_evs(part);
				return part;
			};
			var hrs = cal.date.getHours();
			var mins = cal.date.getMinutes();
			var t12 = !cal.time24;
			var pm = (hrs > 12);
			if (t12 && pm) hrs -= 12;
			var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
			var span = Calendar.createElement("span", cell);
			span.innerHTML = ":";
			span.className = "colon";
			var M = makeTimePart("minute", mins, 0, 59);
			var AP = null;
			cell = Calendar.createElement("td", row);
			cell.className = "time";
			cell.colSpan = 2;
			if (t12)
				AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
			else
				cell.innerHTML = "&nbsp;";

			cal.onSetTime = function() {
				var pm, hrs = this.date.getHours(),
					mins = this.date.getMinutes();
				if (t12) {
					pm = (hrs >= 12);
					if (pm) hrs -= 12;
					if (hrs == 0) hrs = 12;
					AP.innerHTML = pm ? "pm" : "am";
				}
				H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;
				M.innerHTML = (mins < 10) ? ("0" + mins) : mins;
			};

			cal.onUpdateTime = function() {
				var date = this.date;
				var h = parseInt(H.innerHTML, 10);
				if (t12) {
					if (/pm/i.test(AP.innerHTML) && h < 12)
						h += 12;
					else if (/am/i.test(AP.innerHTML) && h == 12)
						h = 0;
				}
				var d = date.getDate();
				var m = date.getMonth();
				var y = date.getFullYear();
				date.setHours(h);
				date.setMinutes(parseInt(M.innerHTML, 10));
				date.setFullYear(y);
				date.setMonth(m);
				date.setDate(d);
				this.dateClicked = false;
				this.callHandler();
			};
		})();
	} else {
		this.onSetTime = this.onUpdateTime = function() {};
	}

	var tfoot = Calendar.createElement("tfoot", table);

	row = Calendar.createElement("tr", tfoot);
	row.className = "footrow";

	cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
	cell.className = "ttip";
	if (this.isPopup) {
		cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
		cell.style.cursor = "move";
	}
	this.tooltips = cell;

	div = Calendar.createElement("div", this.element);
	this.monthsCombo = div;
	div.className = "combo";
	for (i = 0; i < Calendar._MN.length; ++i) {
		var mn = Calendar.createElement("div");
		mn.className = Calendar.is_ie ? "label-IEfix" : "label";
		mn.month = i;
		mn.innerHTML = Calendar._SMN[i];
		div.appendChild(mn);
	}

	div = Calendar.createElement("div", this.element);
	this.yearsCombo = div;
	div.className = "combo";
	for (i = 12; i > 0; --i) {
		var yr = Calendar.createElement("div");
		yr.className = Calendar.is_ie ? "label-IEfix" : "label";
		div.appendChild(yr);
	}

	this._init(this.firstDayOfWeek, this.date);
	parent.appendChild(this.element);
};

/** keyboard navigation, only for popup calendars */
Calendar._keyEvent = function(ev) {
	var cal = window._dynarch_popupCalendar;
	if (!cal || cal.multiple)
		return false;
	(Calendar.is_ie) && (ev = window.event);
	var act = (Calendar.is_ie || ev.type == "keypress"),
		K = ev.keyCode;
	if (ev.ctrlKey) {
		switch (K) {
		    case 37: // KEY left
			act && Calendar.cellClick(cal._nav_pm);
			break;
		    case 38: // KEY up
			act && Calendar.cellClick(cal._nav_py);
			break;
		    case 39: // KEY right
			act && Calendar.cellClick(cal._nav_nm);
			break;
		    case 40: // KEY down
			act && Calendar.cellClick(cal._nav_ny);
			break;
		    default:
			return false;
		}
	} else switch (K) {
	    case 32: // KEY space (now)
		Calendar.cellClick(cal._nav_now);
		break;
	    case 27: // KEY esc
		act && cal.callCloseHandler();
		break;
	    case 37: // KEY left
	    case 38: // KEY up
	    case 39: // KEY right
	    case 40: // KEY down
		if (act) {
			var prev, x, y, ne, el, step;
			prev = K == 37 || K == 38;
			step = (K == 37 || K == 39) ? 1 : 7;
			function setVars() {
				el = cal.currentDateEl;
				var p = el.pos;
				x = p & 15;
				y = p >> 4;
				ne = cal.ar_days[y][x];
			};setVars();
			function prevMonth() {
				var date = new Date(cal.date);
				date.setDate(date.getDate() - step);
				cal.setDate(date);
			};
			function nextMonth() {
				var date = new Date(cal.date);
				date.setDate(date.getDate() + step);
				cal.setDate(date);
			};
			while (1) {
				switch (K) {
				    case 37: // KEY left
					if (--x >= 0)
						ne = cal.ar_days[y][x];
					else {
						x = 6;
						K = 38;
						continue;
					}
					break;
				    case 38: // KEY up
					if (--y >= 0)
						ne = cal.ar_days[y][x];
					else {
						prevMonth();
						setVars();
					}
					break;
				    case 39: // KEY right
					if (++x < 7)
						ne = cal.ar_days[y][x];
					else {
						x = 0;
						K = 40;
						continue;
					}
					break;
				    case 40: // KEY down
					if (++y < cal.ar_days.length)
						ne = cal.ar_days[y][x];
					else {
						nextMonth();
						setVars();
					}
					break;
				}
				break;
			}
			if (ne) {
				if (!ne.disabled)
					Calendar.cellClick(ne);
				else if (prev)
					prevMonth();
				else
					nextMonth();
			}
		}
		break;
	    case 13: // KEY enter
		if (act)
			Calendar.cellClick(cal.currentDateEl, ev);
		break;
	    default:
		return false;
	}
	return Calendar.stopEvent(ev);
};

/**
 *  (RE)Initializes the calendar to the given date and firstDayOfWeek
 */
Calendar.prototype._init = function (firstDayOfWeek, date) {
	var today = new Date(),
		TY = today.getFullYear(),
		TM = today.getMonth(),
		TD = today.getDate();
	this.table.style.visibility = "hidden";
	var year = date.getFullYear();
	if (year < this.minYear) {
		year = this.minYear;
		date.setFullYear(year);
	} else if (year > this.maxYear) {
		year = this.maxYear;
		date.setFullYear(year);
	}
	this.firstDayOfWeek = firstDayOfWeek;
	this.date = new Date(date);
	var month = date.getMonth();
	var mday = date.getDate();
	var no_days = date.getMonthDays();

	// calendar voodoo for computing the first day that would actually be
	// displayed in the calendar, even if it's from the previous month.
	// WARNING: this is magic. ;-)
	date.setDate(1);
	var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
	if (day1 < 0)
		day1 += 7;
	date.setDate(-day1);
	date.setDate(date.getDate() + 1);

	var row = this.tbody.firstChild;
	var MN = Calendar._SMN[month];
	var ar_days = this.ar_days = new Array();
	var weekend = Calendar._TT["WEEKEND"];
	var dates = this.multiple ? (this.datesCells = {}) : null;
	for (var i = 0; i < 6; ++i, row = row.nextSibling) {
		var cell = row.firstChild;
		if (this.weekNumbers) {
			cell.className = "day wn";
			cell.innerHTML = date.getWeekNumber();
			cell = cell.nextSibling;
		}
		row.className = "daysrow";
		var hasdays = false, iday, dpos = ar_days[i] = [];
		for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {
			iday = date.getDate();
			var wday = date.getDay();
			cell.className = "day";
			cell.pos = i << 4 | j;
			dpos[j] = cell;
			var current_month = (date.getMonth() == month);
			if (!current_month) {
				if (this.showsOtherMonths) {
					cell.className += " othermonth";
					cell.otherMonth = true;
				} else {
					cell.className = "emptycell";
					cell.innerHTML = "&nbsp;";
					cell.disabled = true;
					continue;
				}
			} else {
				cell.otherMonth = false;
				hasdays = true;
			}
			cell.disabled = false;
			cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;
			if (dates)
				dates[date.print("%Y%m%d")] = cell;
			if (this.getDateStatus) {
				var status = this.getDateStatus(date, year, month, iday);
				if (this.getDateToolTip) {
					var toolTip = this.getDateToolTip(date, year, month, iday);
					if (toolTip)
						cell.title = toolTip;
				}
				if (status === true) {
					cell.className += " disabled";
					cell.disabled = true;
				} else {
					if (/disabled/i.test(status))
						cell.disabled = true;
					cell.className += " " + status;
				}
			}
			if (!cell.disabled) {
				cell.caldate = new Date(date);
				cell.ttip = "_";
				if (!this.multiple && current_month
				    && iday == mday && this.hiliteToday) {
					cell.className += " selected";
					this.currentDateEl = cell;
				}
				if (date.getFullYear() == TY &&
				    date.getMonth() == TM &&
				    iday == TD) {
					cell.className += " today";
					cell.ttip += Calendar._TT["PART_TODAY"];
				}
				if (weekend.indexOf(wday.toString()) != -1)
					cell.className += cell.otherMonth ? " oweekend" : " weekend";
			}
		}
		if (!(hasdays || this.showsOtherMonths))
			row.className = "emptyrow";
	}
	this.title.innerHTML = Calendar._MN[month] + ", " + year;
	this.onSetTime();
	this.table.style.visibility = "visible";
	this._initMultipleDates();
	// PROFILE
	// this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
};

Calendar.prototype._initMultipleDates = function() {
	if (this.multiple) {
		for (var i in this.multiple) {
			var cell = this.datesCells[i];
			var d = this.multiple[i];
			if (!d)
				continue;
			if (cell)
				cell.className += " selected";
		}
	}
};

Calendar.prototype._toggleMultipleDate = function(date) {
	if (this.multiple) {
		var ds = date.print("%Y%m%d");
		var cell = this.datesCells[ds];
		if (cell) {
			var d = this.multiple[ds];
			if (!d) {
				Calendar.addClass(cell, "selected");
				this.multiple[ds] = date;
			} else {
				Calendar.removeClass(cell, "selected");
				delete this.multiple[ds];
			}
		}
	}
};

Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
	this.getDateToolTip = unaryFunction;
};

/**
 *  Calls _init function above for going to a certain date (but only if the
 *  date is different than the currently selected one).
 */
Calendar.prototype.setDate = function (date) {
	if (!date.equalsTo(this.date)) {
		this._init(this.firstDayOfWeek, date);
	}
};

/**
 *  Refreshes the calendar.  Useful if the "disabledHandler" function is
 *  dynamic, meaning that the list of disabled date can change at runtime.
 *  Just * call this function if you think that the list of disabled dates
 *  should * change.
 */
Calendar.prototype.refresh = function () {
	this._init(this.firstDayOfWeek, this.date);
};

/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
	this._init(firstDayOfWeek, this.date);
	this._displayWeekdays();
};

/**
 *  Allows customization of what dates are enabled.  The "unaryFunction"
 *  parameter must be a function object that receives the date (as a JS Date
 *  object) and returns a boolean value.  If the returned value is true then
 *  the passed date will be marked as disabled.
 */
Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
	this.getDateStatus = unaryFunction;
};

/** Customization of allowed year range for the calendar. */
Calendar.prototype.setRange = function (a, z) {
	this.minYear = a;
	this.maxYear = z;
};

/** Calls the first user handler (selectedHandler). */
Calendar.prototype.callHandler = function () {
	if (this.onSelected) {
		this.onSelected(this, this.date.print(this.dateFormat));
	}
};

/** Calls the second user handler (closeHandler). */
Calendar.prototype.callCloseHandler = function () {
	if (this.onClose) {
		this.onClose(this);
	}
	this.hideShowCovered();
};

/** Removes the calendar object from the DOM tree and destroys it. */
Calendar.prototype.destroy = function () {
	var el = this.element.parentNode;
	el.removeChild(this.element);
	Calendar._C = null;
	window._dynarch_popupCalendar = null;
};

/**
 *  Moves the calendar element to a different section in the DOM tree (changes
 *  its parent).
 */
Calendar.prototype.reparent = function (new_parent) {
	var el = this.element;
	el.parentNode.removeChild(el);
	new_parent.appendChild(el);
};

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
Calendar._checkCalendar = function(ev) {
	var calendar = window._dynarch_popupCalendar;
	if (!calendar) {
		return false;
	}
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null && el != calendar.element; el = el.parentNode);
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		window._dynarch_popupCalendar.callCloseHandler();
		return Calendar.stopEvent(ev);
	}
};

/** Shows the calendar. */
Calendar.prototype.show = function () {
	var rows = this.table.getElementsByTagName("tr");
	for (var i = rows.length; i > 0;) {
		var row = rows[--i];
		Calendar.removeClass(row, "rowhilite");
		var cells = row.getElementsByTagName("td");
		for (var j = cells.length; j > 0;) {
			var cell = cells[--j];
			Calendar.removeClass(cell, "hilite");
			Calendar.removeClass(cell, "active");
		}
	}
	this.element.style.display = "block";
	this.hidden = false;
	if (this.isPopup) {
		window._dynarch_popupCalendar = this;
		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.hideShowCovered();
};

/**
 *  Hides the calendar.  Also removes any "hilite" from the class of any TD
 *  element.
 */
Calendar.prototype.hide = function () {
	if (this.isPopup) {
		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.element.style.display = "none";
	this.hidden = true;
	this.hideShowCovered();
};

/**
 *  Shows the calendar at a given absolute position (beware that, depending on
 *  the calendar element style -- position property -- this might be relative
 *  to the parent's containing rectangle).
 */
Calendar.prototype.showAt = function (x, y) {
	var s = this.element.style;
	s.left = x + "px";
	s.top = y + "px";
	this.show();
};

/** Shows the calendar near a given element. */
Calendar.prototype.showAtElement = function (el, opts) {
	var self = this;
	var p = Calendar.getAbsolutePos(el);
	if (!opts || typeof opts != "string") {
		this.showAt(p.x, p.y + el.offsetHeight);
		return true;
	}
	function fixPosition(box) {
		if (box.x < 0)
			box.x = 0;
		if (box.y < 0)
			box.y = 0;
		var cp = document.createElement("div");
		var s = cp.style;
		s.position = "absolute";
		s.right = s.bottom = s.width = s.height = "0px";
		document.body.appendChild(cp);
		var br = Calendar.getAbsolutePos(cp);
		document.body.removeChild(cp);
		if (Calendar.is_ie) {
			br.y += document.body.scrollTop;
			br.x += document.body.scrollLeft;
		} else {
			br.y += window.scrollY;
			br.x += window.scrollX;
		}
		var tmp = box.x + box.width - br.x;
		if (tmp > 0) box.x -= tmp;
		tmp = box.y + box.height - br.y;
		if (tmp > 0) box.y -= tmp;
	};
	this.element.style.display = "block";
	Calendar.continuation_for_the_fucking_khtml_browser = function() {
		var w = self.element.offsetWidth;
		var h = self.element.offsetHeight;
		self.element.style.display = "none";
		var valign = opts.substr(0, 1);
		var halign = "l";
		if (opts.length > 1) {
			halign = opts.substr(1, 1);
		}
		// vertical alignment
		switch (valign) {
		    case "T": p.y -= h; break;
		    case "B": p.y += el.offsetHeight; break;
		    case "C": p.y += (el.offsetHeight - h) / 2; break;
		    case "t": p.y += el.offsetHeight - h; break;
		    case "b": break; // already there
		}
		// horizontal alignment
		switch (halign) {
		    case "L": p.x -= w; break;
		    case "R": p.x += el.offsetWidth; break;
		    case "C": p.x += (el.offsetWidth - w) / 2; break;
		    case "l": p.x += el.offsetWidth - w; break;
		    case "r": break; // already there
		}
		p.width = w;
		p.height = h + 40;
		self.monthsCombo.style.display = "none";
		fixPosition(p);
		self.showAt(p.x, p.y);
	};
	if (Calendar.is_khtml)
		setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
	else
		Calendar.continuation_for_the_fucking_khtml_browser();
};

/** Customizes the date format. */
Calendar.prototype.setDateFormat = function (str) {
	this.dateFormat = str;
};

/** Customizes the tooltip date format. */
Calendar.prototype.setTtDateFormat = function (str) {
	this.ttDateFormat = str;
};

/**
 *  Tries to identify the date represented in a string.  If successful it also
 *  calls this.setDate which moves the calendar to the given date.
 */
Calendar.prototype.parseDate = function(str, fmt) {
	if (!fmt)
		fmt = this.dateFormat;
	this.setDate(Date.parseDate(str, fmt));
};

Calendar.prototype.hideShowCovered = function () {
	if (!Calendar.is_ie && !Calendar.is_opera)
		return;
	function getVisib(obj){
		var value = obj.style.visibility;
		if (!value) {
			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
				if (!Calendar.is_khtml)
					value = document.defaultView.
						getComputedStyle(obj, "").getPropertyValue("visibility");
				else
					value = '';
			} else if (obj.currentStyle) { // IE
				value = obj.currentStyle.visibility;
			} else
				value = '';
		}
		return value;
	};

	var tags = new Array("applet", "iframe", "select");
	var el = this.element;

	var p = Calendar.getAbsolutePos(el);
	var EX1 = p.x;
	var EX2 = el.offsetWidth + EX1;
	var EY1 = p.y;
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			p = Calendar.getAbsolutePos(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				cc.style.visibility = cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				cc.style.visibility = "hidden";
			}
		}
	}
};

/** Internal function; it displays the bar with the names of the weekday. */
Calendar.prototype._displayWeekdays = function () {
	var fdow = this.firstDayOfWeek;
	var cell = this.firstdayname;
	var weekend = Calendar._TT["WEEKEND"];
	for (var i = 0; i < 7; ++i) {
		cell.className = "day name";
		var realday = (i + fdow) % 7;
		if (i) {
			cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
			cell.navtype = 100;
			cell.calendar = this;
			cell.fdow = realday;
			Calendar._add_evs(cell);
		}
		if (weekend.indexOf(realday.toString()) != -1) {
			Calendar.addClass(cell, "weekend");
		}
		cell.innerHTML = Calendar._SDN[(i + fdow) % 7];
		cell = cell.nextSibling;
	}
};

/** Internal function.  Hides all combo boxes that might be displayed. */
Calendar.prototype._hideCombos = function () {
	this.monthsCombo.style.display = "none";
	this.yearsCombo.style.display = "none";
};

/** Internal function.  Starts dragging the element. */
Calendar.prototype._dragStart = function (ev) {
	if (this.dragging) {
		return;
	}
	this.dragging = true;
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posY = ev.clientY + window.scrollY;
		posX = ev.clientX + window.scrollX;
	}
	var st = this.element.style;
	this.xOffs = posX - parseInt(st.left);
	this.yOffs = posY - parseInt(st.top);
	with (Calendar) {
		addEvent(document, "mousemove", calDragIt);
		addEvent(document, "mouseup", calDragEnd);
	}
};

// BEGIN: DATE OBJECT PATCHES

/** Adds the number of days array to the Date object. */
Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/** Constants used for time computations */
Date.SECOND = 1000 /* milliseconds */;
Date.MINUTE = 60 * Date.SECOND;
Date.HOUR   = 60 * Date.MINUTE;
Date.DAY    = 24 * Date.HOUR;
Date.WEEK   =  7 * Date.DAY;

Date.parseDate = function(str, fmt) {
	var today = new Date();
	var y = 0;
	var m = -1;
	var d = 0;
	var a = str.split(/\W+/);
	var b = fmt.match(/%./g);
	var i = 0, j = 0;
	var hr = 0;
	var min = 0;
	for (i = 0; i < a.length; ++i) {
		if (!a[i])
			continue;
		switch (b[i]) {
		    case "%d":
		    case "%e":
			d = parseInt(a[i], 10);
			break;

		    case "%m":
			m = parseInt(a[i], 10) - 1;
			break;

		    case "%Y":
		    case "%y":
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
			break;

		    case "%b":
		    case "%B":
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
			}
			break;

		    case "%H":
		    case "%I":
		    case "%k":
		    case "%l":
			hr = parseInt(a[i], 10);
			break;

		    case "%P":
		    case "%p":
			if (/pm/i.test(a[i]) && hr < 12)
				hr += 12;
			else if (/am/i.test(a[i]) && hr >= 12)
				hr -= 12;
			break;

		    case "%M":
			min = parseInt(a[i], 10);
			break;
		}
	}
	if (isNaN(y)) y = today.getFullYear();
	if (isNaN(m)) m = today.getMonth();
	if (isNaN(d)) d = today.getDate();
	if (isNaN(hr)) hr = today.getHours();
	if (isNaN(min)) min = today.getMinutes();
	if (y != 0 && m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	y = 0; m = -1; d = 0;
	for (i = 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) != -1) {
			var t = -1;
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
			}
			if (t != -1) {
				if (m != -1) {
					d = m+1;
				}
				m = t;
			}
		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
			m = a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y == 0) {
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
		} else if (d == 0) {
			d = a[i];
		}
	}
	if (y == 0)
		y = today.getFullYear();
	if (m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	return today;
};

/** Returns the number of days in the current month */
Date.prototype.getMonthDays = function(month) {
	var year = this.getFullYear();
	if (typeof month == "undefined") {
		month = this.getMonth();
	}
	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
		return 29;
	} else {
		return Date._MD[month];
	}
};

/** Returns the number of day in the year. */
Date.prototype.getDayOfYear = function() {
	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
	var time = now - then;
	return Math.floor(time / Date.DAY);
};

/** Returns the number of the week in year, as defined in ISO 8601. */
Date.prototype.getWeekNumber = function() {
	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var DoW = d.getDay();
	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
	var ms = d.valueOf(); // GMT
	d.setMonth(0);
	d.setDate(4); // Thu in Week 1
	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
};

/** Checks date and time equality */
Date.prototype.equalsTo = function(date) {
	return ((this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() == date.getDate()) &&
		(this.getHours() == date.getHours()) &&
		(this.getMinutes() == date.getMinutes()));
};

/** Set only the year, month, date parts (keep existing time) */
Date.prototype.setDateOnly = function(date) {
	var tmp = new Date(date);
	this.setDate(1);
	this.setFullYear(tmp.getFullYear());
	this.setMonth(tmp.getMonth());
	this.setDate(tmp.getDate());
};

/** Prints the date in a string according to the given format. */
Date.prototype.print = function (str) {
	var m = this.getMonth();
	var d = this.getDate();
	var y = this.getFullYear();
	var wn = this.getWeekNumber();
	var w = this.getDay();
	var s = {};
	var hr = this.getHours();
	var pm = (hr >= 12);
	var ir = (pm) ? (hr - 12) : hr;
	var dy = this.getDayOfYear();
	if (ir == 0)
		ir = 12;
	var min = this.getMinutes();
	var sec = this.getSeconds();
	s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
	s["%A"] = Calendar._DN[w]; // full weekday name
	s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
	s["%B"] = Calendar._MN[m]; // full month name
	// FIXME: %c : preferred date and time representation for the current locale
	s["%C"] = 1 + Math.floor(y / 100); // the century number
	s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
	s["%e"] = d; // the day of the month (range 1 to 31)
	// FIXME: %D : american date style: %m/%d/%y
	// FIXME: %E, %F, %G, %g, %h (man strftime)
	s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
	s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
	s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
	s["%k"] = hr;		// hour, range 0 to 23 (24h format)
	s["%l"] = ir;		// hour, range 1 to 12 (12h format)
	s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
	s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
	s["%n"] = "\n";		// a newline character
	s["%p"] = pm ? "PM" : "AM";
	s["%P"] = pm ? "pm" : "am";
	// FIXME: %r : the time in am/pm notation %I:%M:%S %p
	// FIXME: %R : the time in 24-hour notation %H:%M
	s["%s"] = Math.floor(this.getTime() / 1000);
	s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
	s["%t"] = "\t";		// a tab character
	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
	s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
	s["%u"] = w + 1;	// the day of the week (range 1 to 7, 1 = MON)
	s["%w"] = w;		// the day of the week (range 0 to 6, 0 = SUN)
	// FIXME: %x : preferred date representation for the current locale without the time
	// FIXME: %X : preferred time representation for the current locale without the date
	s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
	s["%Y"] = y;		// year with the century
	s["%%"] = "%";		// a literal '%' character

	var re = /%./g;
	if (!Calendar.is_ie5 && !Calendar.is_khtml)
		return str.replace(re, function (par) { return s[par] || par; });

	var a = str.match(re);
	for (var i = 0; i < a.length; i++) {
		var tmp = s[a[i]];
		if (tmp) {
			re = new RegExp(a[i], 'g');
			str = str.replace(re, tmp);
		}
	}

	return str;
};

Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
Date.prototype.setFullYear = function(y) {
	var d = new Date(this);
	d.__msh_oldSetFullYear(y);
	if (d.getMonth() != this.getMonth())
		this.setDate(28);
	this.__msh_oldSetFullYear(y);
};

// END: DATE OBJECT PATCHES


// global object that remembers the calendar
window._dynarch_popupCalendar = null;

;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/js/calendar-setup.js */
/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
 * ---------------------------------------------------------------------------
 *
 * The DHTML Calendar
 *
 * Details and latest version at:
 * http://dynarch.com/mishoo/calendar.epl
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 *
 * This file defines helper functions for setting up the calendar.  They are
 * intended to help non-programmers get a working calendar on their site
 * quickly.  This script should not be seen as part of the calendar.  It just
 * shows you what one can do with the calendar, while in the same time
 * providing a quick and simple method for setting it up.  If you need
 * exhaustive customization of the calendar creation process feel free to
 * modify this code to suit your needs (this is recommended and much better
 * than modifying calendar.js itself).
 */

// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $

/**
 *  This function "patches" an input field (or other element) to use a calendar
 *  widget for date selection.
 *
 *  The "params" is a single object that can have the following properties:
 *
 *    prop. name   | description
 *  -------------------------------------------------------------------------------------------------
 *   inputField    | the ID of an input field to store the date
 *   displayArea   | the ID of a DIV or other element to show the date
 *   button        | ID of a button or other element that will trigger the calendar
 *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
 *   ifFormat      | date format that will be stored in the input field
 *   daFormat      | the date format that will be used to display the date in displayArea
 *   singleClick   | (true/false) wether the calendar is in single click mode or not (default: true)
 *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
 *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
 *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
 *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
 *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
 *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
 *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
 *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
 *   onClose       | function that gets called when the calendar is closed.  [default]
 *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
 *   date          | the date that the calendar will be initially displayed to
 *   showsTime     | default: false; if true the calendar will include a time selector
 *   timeFormat    | the time format; can be "12" or "24", default is "12"
 *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
 *   step          | configures the step of the years in drop-down boxes; default: 2
 *   position      | configures the calendar absolute position; default: null
 *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
 *   showOthers    | if "true" (but default: "false") it will show days from other months too
 *
 *  None of them is required, they all have default values.  However, if you
 *  pass none of "inputField", "displayArea" or "button" you'll get a warning
 *  saying "nothing to setup".
 */
Calendar.setup = function (params) {
	function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
	param_default("inputField",     null);
	param_default("displayArea",    null);
	param_default("button",         null);
	param_default("eventName",      "click");
	param_default("ifFormat",       "%Y/%m/%d");
	param_default("daFormat",       "%Y/%m/%d");
	param_default("singleClick",    true);
	param_default("disableFunc",    null);
	param_default("dateStatusFunc", params["disableFunc"]);	// takes precedence if both are defined
	param_default("dateText",       null);
	param_default("firstDay",       null);
	param_default("align",          "Br");
	param_default("range",          [1900, 2999]);
	param_default("weekNumbers",    true);
	param_default("flat",           null);
	param_default("flatCallback",   null);
	param_default("onSelect",       null);
	param_default("onClose",        null);
	param_default("onUpdate",       null);
	param_default("date",           null);
	param_default("showsTime",      false);
	param_default("timeFormat",     "24");
	param_default("electric",       true);
	param_default("step",           2);
	param_default("position",       null);
	param_default("cache",          false);
	param_default("showOthers",     false);
	param_default("multiple",       null);

	var tmp = ["inputField", "displayArea", "button"];
	for (var i in tmp) {
		if (typeof params[tmp[i]] == "string") {
			params[tmp[i]] = document.getElementById(params[tmp[i]]);
		}
	}
	if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
		alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
		return false;
	}

	function onSelect(cal) {
		var p = cal.params;
		var update = (cal.dateClicked || p.electric);
		if (update && p.inputField) {
			p.inputField.value = cal.date.print(p.ifFormat);
			if (typeof p.inputField.onchange == "function")
				p.inputField.onchange();
		}
		if (update && p.displayArea)
			p.displayArea.innerHTML = cal.date.print(p.daFormat);
		if (update && typeof p.onUpdate == "function")
			p.onUpdate(cal);
		if (update && p.flat) {
			if (typeof p.flatCallback == "function")
				p.flatCallback(cal);
		}
		if (update && p.singleClick && cal.dateClicked)
			cal.callCloseHandler();
	};

	if (params.flat != null) {
		if (typeof params.flat == "string")
			params.flat = document.getElementById(params.flat);
		if (!params.flat) {
			alert("Calendar.setup:\n  Flat specified but can't find parent.");
			return false;
		}
		var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
		cal.showsOtherMonths = params.showOthers;
		cal.showsTime = params.showsTime;
		cal.time24 = (params.timeFormat == "24");
		cal.params = params;
		cal.weekNumbers = params.weekNumbers;
		cal.setRange(params.range[0], params.range[1]);
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText = params.dateText;
		if (params.ifFormat) {
			cal.setDateFormat(params.ifFormat);
		}
		if (params.inputField && typeof params.inputField.value == "string") {
			cal.parseDate(params.inputField.value);
		}
		cal.create(params.flat);
		cal.show();
		return false;
	}

	var triggerEl = params.button || params.displayArea || params.inputField;
	triggerEl["on" + params.eventName] = function() {
		var dateEl = params.inputField || params.displayArea;
		var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
		var mustCreate = false;
		var cal = window.calendar;
		if (dateEl)
			params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
		if (!(cal && params.cache)) {
			window.calendar = cal = new Calendar(params.firstDay,
							     params.date,
							     params.onSelect || onSelect,
							     params.onClose || function(cal) { cal.hide(); });
			cal.showsTime = params.showsTime;
			cal.time24 = (params.timeFormat == "24");
			cal.weekNumbers = params.weekNumbers;
			mustCreate = true;
		} else {
			if (params.date)
				cal.setDate(params.date);
			cal.hide();
		}
		if (params.multiple) {
			cal.multiple = {};
			for (var i = params.multiple.length; --i >= 0;) {
				var d = params.multiple[i];
				var ds = d.print("%Y%m%d");
				cal.multiple[ds] = d;
			}
		}
		cal.showsOtherMonths = params.showOthers;
		cal.yearStep = params.step;
		cal.setRange(params.range[0], params.range[1]);
		cal.params = params;
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText = params.dateText;
		cal.setDateFormat(dateFmt);
		if (mustCreate)
			cal.create();
		cal.refresh();
		if (!params.position)
			cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
		else
			cal.showAt(params.position[0], params.position[1]);
		return false;
	};

	return cal;
};

;
/* AGGREGATED JS FILE: sites/all/themes/findmeclub/js/calendar-en.js */
// ** I18N

// Calendar EN language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Encoding: any
// Distributed under the same terms as the calendar itself.

// For translators: please use UTF-8 if possible.  We strongly believe that
// Unicode is the answer to a real internationalized world.  Also please
// include your contact information in the header, as can be seen above.

// full day names
Calendar._DN = new Array
("Sunday",
 "Monday",
 "Tuesday",
 "Wednesday",
 "Thursday",
 "Friday",
 "Saturday",
 "Sunday");

// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary.  We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
//   Calendar._SDN_len = N; // short day name length
//   Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.

// short day names
Calendar._SDN = new Array
("Sun",
 "Mon",
 "Tue",
 "Wed",
 "Thu",
 "Fri",
 "Sat",
 "Sun");

// First day of the week. "0" means display Sunday first, "1" means display
// Monday first, etc.
Calendar._FD = 0;

// full month names
Calendar._MN = new Array
("January",
 "February",
 "March",
 "April",
 "May",
 "June",
 "July",
 "August",
 "September",
 "October",
 "November",
 "December");

// short month names
Calendar._SMN = new Array
("Jan",
 "Feb",
 "Mar",
 "Apr",
 "May",
 "Jun",
 "Jul",
 "Aug",
 "Sep",
 "Oct",
 "Nov",
 "Dec");

// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "About the calendar";

Calendar._TT["ABOUT"] =
"DHTML Date/Time Selector\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
"\n\n" +
"Date selection:\n" +
"- Use the \xab, \xbb buttons to select year\n" +
"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
"- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";

Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] = "Go Today";
Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] = "Select date";
Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
Calendar._TT["PART_TODAY"] = " (today)";

// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] = "Display %s first";

// This may be locale-dependent.  It specifies the week-end days, as an array
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] = "0,6";

Calendar._TT["CLOSE"] = "Close";
Calendar._TT["TODAY"] = "Today";
Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";

// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";

Calendar._TT["WK"] = "wk";
Calendar._TT["TIME"] = "Time:";


